.clinical-context-session-detail { padding:12px 0 14px; border-bottom:1px solid rgba(111,83,180,.12); }
.clinical-context-session-detail h5 { margin:12px 0 5px; font-size:.88rem; }
.clinical-context-session-detail p,.clinical-context-session-detail ul { margin:5px 0; font-size:.9rem; line-height:1.5; overflow-wrap:anywhere; }
.clinical-context-session-detail ul { padding-left:0; list-style:none; }
.clinical-context-session-detail li { display:grid; gap:2px; margin:8px 0; }
.clinical-context-session-detail li span,.clinical-context-session-detail > small { color:var(--text-muted,#79718a); font-size:.82rem; }
.clinical-context-session-detail details { margin-top:10px; }
.session-followup-notes { display:grid; gap:14px; }
.session-followup-notes label { display:grid; gap:6px; font-weight:600; }
.session-followup-notes label small { color:var(--text-muted,#79718a); font-weight:400; }
.session-followup-notes textarea { box-sizing:border-box; width:100%; min-height:76px; padding:12px 14px; border:1px solid rgba(111,83,180,.18); border-radius:16px; background:rgba(255,255,255,.72); color:inherit; font:inherit; resize:vertical; }
.session-followup-notes textarea:focus-visible { outline:3px solid rgba(111,83,180,.22); outline-offset:2px; }
.session-followup-notes p { margin:0; color:var(--text-muted,#79718a); font-size:.84rem; }
.session-conclusion-history ol { padding-left:20px; }
.session-conclusion-history li { margin:12px 0; overflow-wrap:anywhere; }
.session-conclusion-history p { margin:5px 0; }
@media(max-width:600px) { .session-end-panel-actions { flex-wrap:wrap; } .session-end-panel-actions > button { min-height:44px; } }

/* ════════════════════════════════════════════════════════════════
   SYNAPSE — DESIGN SYSTEM v1.0
   Inspiré de Notion · Linear · Stripe · Apple Health
   ════════════════════════════════════════════════════════════════
   §01  DESIGN TOKENS (variables CSS)
   §02  RESET & BASE
   §03  TYPOGRAPHIE
   §04  LAYOUT (grid, sidebar, topbar)
   §05  BOUTONS
   §06  CHAMPS DE FORMULAIRE
   §07  SEARCHBAR
   §08  AVATAR
   §09  BADGE & CHIP
   §10  CARDS & KPI CARDS
   §11  MODAL
   §12  DRAWER
   §13  SIDEBAR
   §14  NAVBAR / TOPBAR
   §15  ONGLETS (TABS)
   §16  ACCORDÉON
   §17  TIMELINE
   §18  PROGRESS BAR
   §19  EMPTY STATES
   §20  SKELETON LOADERS
   §21  TOASTS
   §22  TABLES
   §23  GRAPHIQUES CSS
   §24  COMPOSANTS PATIENTS
   §25  COMPOSANTS BILANS
   §26  COMPOSANTS EXERCICES
   §27  ANIMATIONS
   §28  UTILITAIRES
   §29  RESPONSIVE
   ════════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════
   §01  DESIGN TOKENS
   ══════════════════════════════════════════════════════ */
:root {
  /* ── Palette primaire ─────────────────────────────── */
  --clr-p-50:  #eef3fb;
  --clr-p-100: #dbe6f5;
  --clr-p-200: #b8cdea;
  --clr-p-300: #8facdb;
  --clr-p-400: #6689c6;
  --clr-p-500: #4568ad;   /* Bleu clinique principal */
  --clr-p-600: #385898;
  --clr-p-700: #30497d;
  --clr-p-800: #283c66;
  --clr-p-900: #202f50;

  /* ── Gris neutres ─────────────────────────────────── */
  --clr-g-50:   #f9fafb;
  --clr-g-100:  #f3f4f6;
  --clr-g-150:  #eff0f3;
  --clr-g-200:  #e5e7eb;
  --clr-g-300:  #d1d5db;
  --clr-g-400:  #9ca3af;
  --clr-g-500:  #6b7280;
  --clr-g-600:  #4b5563;
  --clr-g-700:  #374151;
  --clr-g-800:  #1f2937;
  --clr-g-900:  #111827;
  --clr-g-950:  #0a0e1a;

  /* ── Succès ───────────────────────────────────────── */
  --clr-ok-50:  #ecfdf5;
  --clr-ok-100: #d1fae5;
  --clr-ok-200: #a7f3d0;
  --clr-ok-500: #10b981;
  --clr-ok-600: #059669;
  --clr-ok-700: #047857;

  /* ── Erreur ───────────────────────────────────────── */
  --clr-er-50:  #fef2f2;
  --clr-er-100: #fee2e2;
  --clr-er-200: #fecaca;
  --clr-er-500: #ef4444;
  --clr-er-600: #dc2626;
  --clr-er-700: #b91c1c;

  /* ── Avertissement ────────────────────────────────── */
  --clr-wa-50:  #fffbeb;
  --clr-wa-100: #fef3c7;
  --clr-wa-200: #fde68a;
  --clr-wa-500: #f59e0b;
  --clr-wa-600: #d97706;
  --clr-wa-700: #b45309;

  /* ── Info ─────────────────────────────────────────── */
  --clr-in-50:  #eff6ff;
  --clr-in-100: #dbeafe;
  --clr-in-200: #bfdbfe;
  --clr-in-500: #3b82f6;
  --clr-in-600: #2563eb;
  --clr-in-700: #1d4ed8;

  /* ── Violet ───────────────────────────────────────── */
  --clr-vi-50:  #f5f3ff;
  --clr-vi-100: #ede9fe;
  --clr-vi-200: #ddd6fe;
  --clr-vi-500: #8b5cf6;
  --clr-vi-600: #7c3aed;
  --clr-vi-700: #6d28d9;

  /* ── Rose ─────────────────────────────────────────── */
  --clr-ro-50:  #fff1f2;
  --clr-ro-100: #ffe4e6;
  --clr-ro-500: #f43f5e;
  --clr-ro-600: #e11d48;

  /* ── Tokens sémantiques ───────────────────────────── */
  --bg:           var(--clr-g-50);
  --surface-2:    var(--clr-g-50);
  --surface-3:    var(--clr-g-100);
  --border:       var(--clr-g-200);
  --border-s:     var(--clr-g-300);
  --tx:           var(--clr-g-900);
  --tx-2:         var(--clr-g-700);
  --tx-3:         var(--clr-g-500);
  --tx-4:         var(--clr-g-400);
  --primary:      var(--clr-p-500);
  --primary-bg:   var(--clr-p-50);
  --primary-dk:   var(--clr-p-600);
  --primary-rgb:  69, 104, 173;
  --success:      var(--clr-ok-500);
  --error:        var(--clr-er-500);
  --warning:      var(--clr-wa-500);
  --info:         var(--clr-in-500);

  /* ── Interactions Synapse ─────────────────────────── */
  --ix-surface:       #fcfcff;
  --ix-surface-hover: #f7f8ff;
  --ix-selected:      #edf1ff;
  --ix-mint:          #edf9f5;
  --ix-mint-strong:   #2f806f;
  --ix-warm:          #fff8ee;
  --ix-warm-strong:   #9b642c;
  --ix-border:        rgba(55, 62, 107, .14);
  --ix-border-strong: rgba(var(--primary-rgb), .34);
  --ix-radius:        15px;
  --ix-shadow:        0 9px 24px rgba(42, 49, 92, .055), inset 0 1px 0 rgba(255, 255, 255, .9);
  --ix-shadow-hover:  0 12px 30px rgba(42, 49, 92, .09), inset 0 1px 0 rgba(255, 255, 255, .96);

  /* ── Sidebar ──────────────────────────────────────── */
  --sb-bg:      #16181d;
  --sb-border:  rgba(255,255,255,.06);
  --sb-tx:      rgba(255,255,255,.50);
  --sb-tx-h:    rgba(255,255,255,.88);
  --sb-active:  rgba(255,255,255,.07);
  --sb-w:       220px;

  /* ── Typographie ──────────────────────────────────── */
  --font:  'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --mono:  'JetBrains Mono', 'Fira Code', Consolas, monospace;

  --text-xs:   11px;   /* Micro-labels, légendes */
  --text-sm:   12px;   /* Méta, sous-labels */
  --text-base: 13px;   /* Corps de texte */
  --text-md:   14px;   /* Corps légèrement plus grand */
  --text-lg:   16px;   /* Sous-titres */
  --text-xl:   20px;   /* Titres de section */
  --text-2xl:  24px;   /* Titres de page */
  --text-3xl:  30px;   /* Grands titres */
  --text-4xl:  38px;   /* Hero */

  --fw-r: 400;  --fw-m: 500;  --fw-sb: 600;  --fw-b: 700;  --fw-eb: 800;

  /* ── Espacement 8px grid ──────────────────────────── */
  --s1: 4px;   --s2: 8px;   --s3: 12px;  --s4: 16px;
  --s5: 20px;  --s6: 24px;  --s7: 28px;  --s8: 32px;
  --s9: 36px;  --s10: 40px; --s12: 48px; --s16: 64px;

  /* ── Rayons ───────────────────────────────────────── */
  --r-xs:   3px;  --r-sm:  5px;  --r-md:  8px;
  --r-lg:  10px;  --r-xl: 14px;  --r-2xl: 20px;
  --r-3xl: 28px;  --r-full: 9999px;

  /* ── Ombres ───────────────────────────────────────── */
  --sh-xs: 0 1px 2px rgba(0,0,0,.05);
  --sh-sm: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);
  --sh-md: 0 4px 8px rgba(0,0,0,.06), 0 1px 3px rgba(0,0,0,.04);
  --sh-lg: 0 10px 24px rgba(0,0,0,.07), 0 4px 8px rgba(0,0,0,.04);
  --sh-xl: 0 20px 40px rgba(0,0,0,.08), 0 8px 16px rgba(0,0,0,.04);
  --sh-2xl:0 32px 64px rgba(0,0,0,.10), 0 12px 24px rgba(0,0,0,.06);
  --sh-focus: 0 0 0 2px var(--surface), 0 0 0 4px var(--primary);
  --sh-focus-er: 0 0 0 2px var(--surface), 0 0 0 4px var(--error);
  --sh-inner: inset 0 2px 4px rgba(0,0,0,.04);

  /* ── Z-index ──────────────────────────────────────── */
  --z-below:    -1;
  --z-base:      0;
  --z-raised:    10;
  --z-dropdown:  100;
  --z-sticky:    200;
  --z-modal:     1000;
  --z-toast:     2000;
  --z-overlay:   9999;

  /* ── Motion ───────────────────────────────────────── */
  --ease:        cubic-bezier(.16,1,.3,1);
  --ease-spring: cubic-bezier(.34,1.56,.64,1);
  --ease-out:    cubic-bezier(0,0,.2,1);
  --dur-fast:    120ms;
  --dur-mid:     200ms;
  --dur-slow:    320ms;
  --dur-slower:  480ms;

  /* ── Layout ───────────────────────────────────────── */
  --topbar-h: 56px;
}

/* ══════════════════════════════════════════════════════
   2026-10-01 — SOCLE D'INTERACTIONS SYNAPSE
   Chaleureux et tactile, sans codes de jeu ni animation captatrice.
   ══════════════════════════════════════════════════════ */

:where(.input, input[type="text"], input[type="search"], input[type="date"], input[type="time"], input[type="number"], input[type="email"], textarea, select:not([multiple])) {
  min-height: 46px;
  border-color: var(--ix-border);
  border-radius: var(--ix-radius);
  background-color: var(--ix-surface);
  box-shadow: var(--ix-shadow);
  transition:
    border-color var(--dur-fast) var(--ease),
    background-color var(--dur-fast) var(--ease),
    box-shadow var(--dur-fast) var(--ease),
    transform var(--dur-fast) var(--ease);
}

:where(.input, input[type="text"], input[type="search"], input[type="date"], input[type="time"], input[type="number"], input[type="email"], textarea, select:not([multiple])):hover:not(:disabled) {
  border-color: rgba(var(--primary-rgb), .24);
  background-color: #fff;
  box-shadow: var(--ix-shadow-hover);
}

:where(.input, input[type="text"], input[type="search"], input[type="date"], input[type="time"], input[type="number"], input[type="email"], textarea, select:not([multiple])):focus {
  border-color: var(--primary);
  background-color: #fff;
  box-shadow: 0 0 0 4px rgba(var(--primary-rgb), .12), var(--ix-shadow-hover);
}

select:not([multiple]) {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 42px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='m3.25 5.25 3.75 3.5 3.75-3.5' fill='none' stroke='%234568ad' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 15px center;
  cursor: pointer;
}

:where(.btn, .primary-btn, .secondary-btn) {
  min-height: 44px;
  border-radius: 14px;
  font-family: var(--font);
  font-weight: 750;
  transition:
    background-color var(--dur-fast) var(--ease),
    border-color var(--dur-fast) var(--ease),
    color var(--dur-fast) var(--ease),
    box-shadow var(--dur-fast) var(--ease),
    transform var(--dur-fast) var(--ease);
}

:where(.btn--primary, .primary-btn) {
  border: 1px solid rgba(var(--primary-rgb), .12);
  background: linear-gradient(145deg, var(--primary), var(--primary-dk));
  color: #fff;
  box-shadow: 0 8px 19px rgba(var(--primary-rgb), .2), inset 0 1px 0 rgba(255,255,255,.18);
}

:where(.btn--primary, .primary-btn):hover:not(:disabled) {
  box-shadow: 0 11px 25px rgba(var(--primary-rgb), .28), inset 0 1px 0 rgba(255,255,255,.2);
  transform: translateY(-1px);
}

.secondary-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px 15px;
  border: 1px solid var(--ix-border);
  background: var(--ix-surface);
  color: var(--primary-dk);
  box-shadow: var(--ix-shadow);
  cursor: pointer;
  text-decoration: none;
}

.secondary-btn:hover:not(:disabled) {
  border-color: var(--ix-border-strong);
  background: var(--ix-surface-hover);
  box-shadow: var(--ix-shadow-hover);
  transform: translateY(-1px);
}

:where(.btn, .primary-btn, .secondary-btn):active:not(:disabled) {
  box-shadow: var(--sh-xs);
  transform: translateY(1px) scale(.995);
}

:where(.btn, .primary-btn, .secondary-btn):focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px rgba(var(--primary-rgb), .16), var(--ix-shadow-hover);
}

/* Cases réellement visibles. Les entrées masquées des cartes de choix ne sont pas touchées. */
:where(
  .checkbox-label > input[type="checkbox"],
  .health-profile-life-stage input[type="checkbox"],
  .clinician-health-life-stage input[type="checkbox"],
  .health-screening-item input[type="checkbox"],
  .care-network-consent input[type="checkbox"],
  .care-network-expertise-grid input[type="checkbox"],
  .clinical-circle-participants input[type="checkbox"],
  .neuro-check input[type="checkbox"],
  .measurement-active-choice input[type="checkbox"],
  .patient-guidance-check input[type="checkbox"],
  .daily-life-impact-domains input[type="checkbox"],
  input.inline-checkbox[type="checkbox"]
) {
  display: grid;
  width: 22px;
  min-width: 22px;
  height: 22px;
  min-height: 22px;
  margin: 0;
  padding: 0;
  flex: 0 0 22px;
  place-content: center;
  appearance: none;
  -webkit-appearance: none;
  border: 1.5px solid rgba(var(--primary-rgb), .3);
  border-radius: 7px;
  background: #fff;
  box-shadow: inset 0 1px 2px rgba(40,48,88,.04);
  cursor: pointer;
  transition: border-color var(--dur-fast), background var(--dur-fast), box-shadow var(--dur-fast), transform var(--dur-fast);
}

:where(
  .checkbox-label > input[type="checkbox"],
  .health-profile-life-stage input[type="checkbox"],
  .clinician-health-life-stage input[type="checkbox"],
  .health-screening-item input[type="checkbox"],
  .care-network-consent input[type="checkbox"],
  .care-network-expertise-grid input[type="checkbox"],
  .clinical-circle-participants input[type="checkbox"],
  .neuro-check input[type="checkbox"],
  .measurement-active-choice input[type="checkbox"],
  .patient-guidance-check input[type="checkbox"],
  .daily-life-impact-domains input[type="checkbox"],
  input.inline-checkbox[type="checkbox"]
):checked {
  border-color: var(--primary);
  background-color: var(--primary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='m2.6 7.2 2.7 2.7 6.1-6.1' fill='none' stroke='white' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  box-shadow: 0 5px 12px rgba(var(--primary-rgb), .23);
}

:where(
  .checkbox-label > input[type="checkbox"],
  .health-profile-life-stage input[type="checkbox"],
  .clinician-health-life-stage input[type="checkbox"],
  .health-screening-item input[type="checkbox"],
  .care-network-consent input[type="checkbox"],
  .care-network-expertise-grid input[type="checkbox"],
  .clinical-circle-participants input[type="checkbox"],
  .neuro-check input[type="checkbox"],
  .measurement-active-choice input[type="checkbox"],
  .patient-guidance-check input[type="checkbox"],
  .daily-life-impact-domains input[type="checkbox"],
  input.inline-checkbox[type="checkbox"]
):focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px rgba(var(--primary-rgb), .15);
}

:where(.health-profile-life-stage label, .clinician-health-life-stage label, .care-network-expertise-grid label, .measurement-active-choice, .patient-guidance-check) {
  border: 1px solid var(--ix-border);
  background: var(--ix-surface);
  box-shadow: var(--ix-shadow);
  transition: border-color var(--dur-fast), background var(--dur-fast), box-shadow var(--dur-fast), transform var(--dur-fast);
}

:where(.health-profile-life-stage label, .clinician-health-life-stage label, .care-network-expertise-grid label, .measurement-active-choice, .patient-guidance-check):has(input:checked) {
  border-color: var(--ix-border-strong);
  background: var(--ix-selected);
  box-shadow: 0 8px 20px rgba(var(--primary-rgb), .1);
}

.health-screening-answer-options { gap: 8px; }
.health-screening-answer-options button {
  min-height: 44px;
  border-color: var(--ix-border);
  border-radius: 14px;
  background: var(--ix-surface);
  color: var(--tx-2);
  box-shadow: var(--ix-shadow);
  cursor: pointer;
  transition: border-color var(--dur-fast), background var(--dur-fast), color var(--dur-fast), box-shadow var(--dur-fast), transform var(--dur-fast);
}
.health-screening-answer-options button:hover:not([aria-pressed="true"]) {
  border-color: rgba(var(--primary-rgb), .25);
  background: var(--ix-surface-hover);
  box-shadow: var(--ix-shadow-hover);
  transform: translateY(-1px);
}
.health-screening-answer-options button[aria-pressed="true"] {
  border-color: var(--ix-border-strong);
  background: var(--ix-selected);
  color: var(--primary-dk);
  box-shadow: 0 8px 19px rgba(var(--primary-rgb), .11), inset 0 0 0 1px rgba(var(--primary-rgb), .08);
}
.health-screening-answer-options button[aria-pressed="true"]::before {
  content: '✓';
  margin-right: 5px;
  color: var(--primary);
  font-weight: 900;
}

:where(.session-type-options, .session-template-mode-options) {
  padding: 5px;
  border: 1px solid rgba(var(--primary-rgb), .08);
  border-radius: 16px;
  background: rgba(var(--primary-rgb), .045);
}
:where(.session-type-options, .session-template-mode-options) span {
  border-radius: 12px;
  transition: background var(--dur-fast), color var(--dur-fast), box-shadow var(--dur-fast), transform var(--dur-fast);
}
:where(.session-type-options, .session-template-mode-options) input:checked + span {
  background: #fff;
  color: var(--primary-dk);
  box-shadow: 0 8px 20px rgba(42,49,92,.09), inset 0 0 0 1px rgba(var(--primary-rgb), .08);
}

@media (prefers-reduced-motion: reduce) {
  :where(.input, input, textarea, select, button, .btn, .primary-btn, .secondary-btn) {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}

/* 2026-09-26 — valeur économique du cabinet, distincte des données cliniques. */
.cabinet-mobile-view-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  width: min(100%, 560px);
  margin: 0 0 22px;
  padding: 5px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 16px;
  background: rgba(var(--primary-rgb), .055);
}
.cabinet-mobile-view-tabs button {
  min-height: 42px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--tx-3);
  font: 750 13px/1 var(--font);
  cursor: pointer;
}
.cabinet-mobile-view-tabs button.is-active {
  background: #fff;
  color: var(--primary);
  box-shadow: 0 7px 18px rgba(39,49,91,.08);
}
.cabinet-impact-view:not(.hidden),
.cabinet-upcoming-view:not(.hidden) {
  display: grid;
  gap: 18px;
}
.cabinet-impact-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: clamp(20px, 3vw, 32px);
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 24px;
  background:
    radial-gradient(circle at 88% 20%, rgba(157, 228, 211, .34), transparent 32%),
    linear-gradient(145deg, #fff, rgba(var(--primary-rgb), .075));
  box-shadow: 0 18px 52px rgba(39,49,91,.07);
}
.cabinet-impact-hero h2,
.cabinet-impact-hero p,
.cabinet-impact-section-heading h3,
.cabinet-impact-section-heading p,
.cabinet-impact-proof h3,
.cabinet-impact-proof p { margin: 0; }
.cabinet-impact-hero h2 { margin-top: 6px; color: var(--tx); font-size: clamp(25px, 3.5vw, 38px); line-height: 1.04; letter-spacing: -.045em; }
.cabinet-impact-hero p:last-child { max-width: 690px; margin-top: 11px; color: var(--tx-3); font-size: 13px; line-height: 1.55; }
.cabinet-impact-status { flex: 0 0 auto; padding: 8px 11px; border-radius: 999px; background: rgba(157, 228, 211, .26); color: #217d6c; font-size: 10px; font-weight: 850; }
.cabinet-impact-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(390px, 1.1fr); gap: 14px; }
.cabinet-impact-assumptions,
.cabinet-impact-results,
.cabinet-impact-value,
.cabinet-impact-proof { padding: clamp(18px, 2.3vw, 26px); border: 1px solid rgba(var(--primary-rgb), .11); border-radius: 22px; background: rgba(255,255,255,.76); }
.cabinet-impact-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.cabinet-impact-section-heading h3,
.cabinet-impact-proof h3 { margin-top: 3px; color: var(--tx); font-size: 19px; letter-spacing: -.025em; }
.cabinet-impact-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.cabinet-impact-fields label { display: grid; gap: 7px; color: var(--tx-3); font-size: 10px; font-weight: 800; }
.cabinet-impact-fields input { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid rgba(var(--primary-rgb), .15); border-radius: 12px; background: #fff; color: var(--tx); font: 800 14px/1 var(--font); outline: none; }
.cabinet-impact-fields input:focus { border-color: rgba(var(--primary-rgb), .55); box-shadow: 0 0 0 3px rgba(var(--primary-rgb), .09); }
.cabinet-impact-input-unit { position: relative; display: block; }
.cabinet-impact-input-unit input { padding-right: 40px; }
.cabinet-impact-input-unit em { position: absolute; top: 50%; right: 12px; color: var(--tx-4); font-size: 11px; font-style: normal; transform: translateY(-50%); }
.cabinet-impact-form-note { margin: 14px 0 0; color: var(--tx-4); font-size: 9px; line-height: 1.45; }
.cabinet-impact-results { background: linear-gradient(150deg, #253762, #4568ad); color: #fff; }
.cabinet-impact-results .section-kicker { color: #9de4d3; }
.cabinet-impact-results .cabinet-impact-section-heading h3 { color: #fff; }
.cabinet-impact-metrics { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 8px; margin-top: 18px; }
.cabinet-impact-metrics article { display: grid; min-width: 0; align-content: start; gap: 5px; padding: 16px; border: 1px solid rgba(255,255,255,.13); border-radius: 17px; background: rgba(255,255,255,.07); }
.cabinet-impact-metrics article.is-primary { background: rgba(157,228,211,.14); }
.cabinet-impact-metrics small { color: rgba(255,255,255,.68); font-size: 9px; font-weight: 750; line-height: 1.35; }
.cabinet-impact-metrics strong { overflow: hidden; color: #fff; font-size: clamp(22px, 3vw, 34px); line-height: 1; letter-spacing: -.045em; text-overflow: ellipsis; white-space: nowrap; }
.cabinet-impact-metrics span { color: rgba(255,255,255,.72); font-size: 9px; line-height: 1.35; }
.cabinet-impact-reading { margin-top: 15px; padding-top: 15px; border-top: 1px solid rgba(255,255,255,.12); }
.cabinet-impact-reading strong { font-size: 12px; line-height: 1.4; }
.cabinet-impact-reading p { margin: 5px 0 0; color: rgba(255,255,255,.68); font-size: 10px; line-height: 1.55; }
.cabinet-impact-value-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 16px; }
.cabinet-impact-value-grid article { display: grid; gap: 7px; padding: 16px; border-radius: 17px; background: rgba(var(--primary-rgb), .045); }
.cabinet-impact-value-grid span { color: var(--primary); font-size: 10px; font-weight: 900; }
.cabinet-impact-value-grid strong { color: var(--tx); font-size: 13px; }
.cabinet-impact-value-grid p { margin: 0; color: var(--tx-3); font-size: 10px; line-height: 1.5; }
.cabinet-impact-proof { display: grid; grid-template-columns: minmax(210px, .7fr) minmax(0, 1.3fr); align-items: start; gap: 24px; }
.cabinet-impact-proof ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.cabinet-impact-proof li { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 10px; padding: 9px 0; border-bottom: 1px solid rgba(var(--primary-rgb), .08); color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.cabinet-impact-proof li:last-child { border-bottom: 0; }
.cabinet-impact-proof li span { color: var(--primary-dk); font-weight: 850; }
.cabinet-impact-boundary { margin: 0; color: var(--tx-4); font-size: 9px; line-height: 1.45; }

@media (max-width: 900px) {
  .cabinet-impact-layout { grid-template-columns: 1fr; }
  .cabinet-impact-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .cabinet-mobile-view-tabs { width: 100%; margin-bottom: 14px; }
  .cabinet-mobile-view-tabs button { min-height: 40px; padding: 0 5px; font-size: 11px; }
  .cabinet-impact-hero { display: grid; gap: 14px; padding: 19px; border-radius: 20px; }
  .cabinet-impact-status { justify-self: start; }
  .cabinet-impact-fields { grid-template-columns: 1fr 1fr; gap: 10px; }
  .cabinet-impact-metrics { grid-template-columns: 1fr; }
  .cabinet-impact-metrics article { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .cabinet-impact-metrics article small,
  .cabinet-impact-metrics article span { grid-column: 1; }
  .cabinet-impact-metrics article strong { grid-column: 2; grid-row: 1 / span 2; font-size: 26px; }
  .cabinet-impact-value-grid { grid-template-columns: 1fr; }
  .cabinet-impact-proof { grid-template-columns: 1fr; gap: 12px; }
}
@media (max-width: 390px) {
  .cabinet-impact-fields { grid-template-columns: 1fr; }
}

/* L’espace patient conserve la palette violette historique de Synapse.
   Le professionnel peut aussi la choisir sans modifier la couleur du patient. */
.app-shell.patient-mode,
.app-shell.praticien-mode[data-practitioner-palette="violet"] {
  --clr-p-50:  #eef0fb;
  --clr-p-100: #dde2f7;
  --clr-p-200: #bbc4ef;
  --clr-p-300: #99a7e7;
  --clr-p-400: #7789df;
  --clr-p-500: #5e6ad2;
  --clr-p-600: #4856c0;
  --clr-p-700: #3842a0;
  --clr-p-800: #2a3180;
  --clr-p-900: #1c2060;
  --primary-rgb: 94, 106, 210;
}

.app-shell.praticien-mode[data-practitioner-palette="sage"] {
  --clr-p-50: #eef7f5;
  --clr-p-100: #dceeea;
  --clr-p-200: #b9ddd6;
  --clr-p-300: #8fc6bc;
  --clr-p-400: #63a89c;
  --clr-p-500: #3f8176;
  --clr-p-600: #326c63;
  --clr-p-700: #2a5851;
  --clr-p-800: #234741;
  --clr-p-900: #1d3a35;
  --primary-rgb: 63, 129, 118;
}

.app-shell.praticien-mode[data-practitioner-palette="terracotta"] {
  --clr-p-50: #fbf2ef;
  --clr-p-100: #f4e2dc;
  --clr-p-200: #e9c3b8;
  --clr-p-300: #d99d8c;
  --clr-p-400: #c57a66;
  --clr-p-500: #a95f4e;
  --clr-p-600: #914c3e;
  --clr-p-700: #773f35;
  --clr-p-800: #62362f;
  --clr-p-900: #512e29;
  --primary-rgb: 169, 95, 78;
}

/* ══════════════════════════════════════════════════════
   §02  RESET & BASE
   ══════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { height: 100%; scroll-behavior: smooth; }
body {
  font-size: var(--text-base);
  line-height: 1.5;
  background: var(--bg);
  height: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

@supports (height: 100dvh) {
  .app-layout,
  .app-main { height: 100dvh; }
}
img, svg { display: block; max-width: 100%; }
button { font-family: inherit; font-size: inherit; cursor: pointer; border: none; background: none; }
input, textarea, select { font-family: inherit; font-size: inherit; color: var(--tx); }
a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; }
fieldset { border: none; padding: 0; }

/* ══════════════════════════════════════════════════════
   §03  TYPOGRAPHIE
   ══════════════════════════════════════════════════════ */
.display-1  { font-size: var(--text-4xl); font-weight: var(--fw-eb); line-height: 1.1; letter-spacing: -.03em; }
.display-2  { font-size: var(--text-3xl); font-weight: var(--fw-b);  line-height: 1.15; letter-spacing: -.02em; }
.heading-1  { font-size: var(--text-2xl); font-weight: var(--fw-b);  line-height: 1.2; letter-spacing: -.015em; }
.heading-2  { font-size: var(--text-xl);  font-weight: var(--fw-sb); line-height: 1.3; }
.heading-3  { font-size: var(--text-lg);  font-weight: var(--fw-sb); line-height: 1.35; }
.heading-4  { font-size: var(--text-md);  font-weight: var(--fw-sb); line-height: 1.4; }
.body-lg    { font-size: var(--text-md);  font-weight: var(--fw-r);  line-height: 1.6; }
.body       { font-size: var(--text-base);font-weight: var(--fw-r);  line-height: 1.55; }
.body-sm    { font-size: var(--text-sm);  font-weight: var(--fw-r);  line-height: 1.5; }
.label      { font-size: var(--text-xs);  font-weight: var(--fw-sb); letter-spacing: .06em; text-transform: uppercase; color: var(--tx-3); }
.caption    { font-size: var(--text-xs);  font-weight: var(--fw-r);  color: var(--tx-4); }
.mono       { font-family: var(--mono); }

.text-primary { color: var(--primary); }
.text-success { color: var(--success); }
.text-error   { color: var(--error); }
.text-warning { color: var(--warning); }
.text-muted   { color: var(--tx-3); }
.text-faint   { color: var(--tx-4); }
.text-truncate{ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ══════════════════════════════════════════════════════
   §04  LAYOUT
   ══════════════════════════════════════════════════════ */
.app-layout {
  display: grid;
  grid-template-columns: var(--sb-w) 1fr;
}
.app-main {
  display: flex;
  flex-direction: column;
}
.main-content {
  flex: 1;
  padding: var(--s8);
  min-height: 0;
  scroll-padding-top: var(--s4);
}
.container { max-width: 1100px; margin: 0 auto; }
.page-header { margin-bottom: var(--s6); }
.page-header .page-title { font-size: var(--text-2xl); font-weight: var(--fw-b); letter-spacing: -.015em; }
.page-header .page-subtitle { color: var(--tx-3); margin-top: var(--s1); }

/* ══════════════════════════════════════════════════════
   §05  BOUTONS
   ══════════════════════════════════════════════════════ */

/* Base */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s2);
  border: 1px solid transparent;
  border-radius: var(--r-md);
  font-size: var(--text-sm);
  font-weight: var(--fw-sb);
  line-height: 1;
  cursor: pointer;
  white-space: nowrap;
  text-decoration: none !important;
  transition:
    background var(--dur-fast) var(--ease),
    border-color var(--dur-fast) var(--ease),
    color var(--dur-fast) var(--ease),
    box-shadow var(--dur-fast) var(--ease),
    transform var(--dur-fast) var(--ease);
  user-select: none;
  position: relative;
  overflow: hidden;
}
.btn:focus-visible { outline: none; box-shadow: var(--sh-focus); }
.btn:active:not(:disabled) { transform: translateY(1px); }
.btn:disabled { opacity: .45; cursor: not-allowed; pointer-events: none; }

/* Tailles */
.btn--xs { padding: 4px 10px; font-size: var(--text-xs); border-radius: var(--r-sm); gap: var(--s1); }
.btn--sm { padding: 6px 12px;  font-size: var(--text-sm); }
.btn--md { padding: 8px 16px;  font-size: var(--text-sm); }
.btn--lg { padding: 11px 22px; font-size: var(--text-md); }
.btn--xl { padding: 14px 28px; font-size: var(--text-lg); border-radius: var(--r-lg); }
/* Default taille */
.btn:not([class*="btn--"]) { padding: 8px 16px; }

/* Icône seule */
.btn--icon { width: 32px; height: 32px; padding: 0; border-radius: var(--r-md); }
.btn--icon.btn--sm { width: 28px; height: 28px; }
.btn--icon.btn--lg { width: 40px; height: 40px; border-radius: var(--r-lg); }
.btn--icon-round { border-radius: var(--r-full); }

/* Variantes */
.btn--primary {
  background: var(--primary);
  color: #fff;
}
.btn--primary:hover  { background: var(--primary-dk); box-shadow: 0 4px 14px rgba(var(--primary-rgb), .35); }

.btn--secondary {
  background: var(--surface);
  color: var(--tx-2);
  border-color: var(--border);
}
.btn--secondary:hover { background: var(--surface-2); border-color: var(--border-s); }

.btn--ghost {
  background: transparent;
  color: var(--tx-2);
}
.btn--ghost:hover { background: var(--surface-3); }

.btn--danger {
  background: var(--clr-er-500);
  color: #fff;
}
.btn--danger:hover { background: var(--clr-er-600); box-shadow: 0 4px 14px rgba(239,68,68,.3); }

.btn--danger-ghost {
  background: transparent;
  color: var(--clr-er-600);
}
.btn--danger-ghost:hover { background: var(--clr-er-50); }

.btn--success {
  background: var(--clr-ok-500);
  color: #fff;
}
.btn--success:hover { background: var(--clr-ok-600); }

.btn--link {
  background: none;
  color: var(--primary);
  border: none;
  padding-left: 0;
  padding-right: 0;
  font-weight: var(--fw-m);
}
.btn--link:hover { text-decoration: underline; }

/* État loading */
.btn--loading { pointer-events: none; }
.btn--loading .btn-text { opacity: 0; }
.btn--loading::after {
  content: '';
  position: absolute;
  width: 14px; height: 14px;
  border: 2px solid rgba(255,255,255,.35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin .7s linear infinite;
}
.btn--primary:not(.btn--loading) { }

/* Groupe de boutons */
.btn-group { display: inline-flex; }
.btn-group .btn { border-radius: 0; margin-left: -1px; }
.btn-group .btn:first-child { border-radius: var(--r-md) 0 0 var(--r-md); margin-left: 0; }
.btn-group .btn:last-child  { border-radius: 0 var(--r-md) var(--r-md) 0; }

/* Alias pour la compatibilité existante */
.btn-primary, .primary-btn, button[type="submit"], #addPatientBtn { }
.primary-btn, button[type="submit"], #addPatientBtn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: var(--s2);
  border: none; border-radius: var(--r-md); padding: 8px 16px;
  font-size: var(--text-sm); font-weight: var(--fw-sb); cursor: pointer;
  transition: background var(--dur-fast), box-shadow var(--dur-fast);
  white-space: nowrap; font-family: inherit;
}
.primary-btn:hover, button[type="submit"]:hover, #addPatientBtn:hover {
  box-shadow: 0 4px 14px rgba(var(--primary-rgb), .3);
}
.primary-btn:disabled { opacity: .45; cursor: not-allowed; }

.session-inline-link {
  display: inline-flex; align-items: center; gap: var(--s1);
  background: none; border: none; color: var(--primary);
  font-size: var(--text-sm); font-weight: var(--fw-m); cursor: pointer;
  padding: 4px 8px; border-radius: var(--r-sm); font-family: inherit;
  transition: background var(--dur-fast);
}
.session-inline-link:hover { background: var(--primary-bg); }
.session-inline-link:disabled { color: var(--tx-4); cursor: not-allowed; }

/* ══════════════════════════════════════════════════════
   §06  CHAMPS DE FORMULAIRE
   ══════════════════════════════════════════════════════ */

/* Label + input group */
.field { display: flex; flex-direction: column; gap: var(--s1); }
.field-label {
  font-size: var(--text-sm);
  font-weight: var(--fw-sb);
  color: var(--tx-2);
  display: flex;
  align-items: center;
  gap: var(--s2);
}
.field-label .required { color: var(--error); font-size: var(--text-xs); }
.field-hint  { font-size: var(--text-xs); color: var(--tx-3); margin-top: 2px; }
.field-error { font-size: var(--text-xs); color: var(--error); margin-top: 2px; font-weight: var(--fw-m); }

/* Base input */
.input {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 9px 12px;
  font-size: var(--text-base);
  color: var(--tx);
  outline: none;
  width: 100%;
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast);
  font-family: var(--font);
}
.input::placeholder { color: var(--tx-4); }
.input:hover:not(:disabled) { border-color: var(--border-s); }
.input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-bg); }
.input--error { border-color: var(--error) !important; }
.input--error:focus { box-shadow: var(--sh-focus-er); }
.input:disabled { background: var(--surface-3); color: var(--tx-4); cursor: not-allowed; }
.input--sm { padding: 6px 10px; font-size: var(--text-sm); }
.input--lg { padding: 11px 14px; font-size: var(--text-md); border-radius: var(--r-lg); }

/* Textarea */
.textarea { resize: vertical; min-height: 88px; }

/* Select */
.select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 34px;
  cursor: pointer;
}

/* Checkbox & Radio */
.checkbox-label, .radio-label {
  display: flex;
  align-items: center;
  gap: var(--s2);
  font-size: var(--text-base);
  color: var(--tx-2);
  cursor: pointer;
  user-select: none;
}
.checkbox-label input[type="checkbox"],
.radio-label    input[type="radio"] {
  width: 16px; height: 16px;
  border: 1.5px solid var(--border-s);
  border-radius: var(--r-sm);
  appearance: none;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  background: var(--surface);
  transition: border-color var(--dur-fast), background var(--dur-fast);
}
.checkbox-label input[type="checkbox"]:checked {
  background: var(--primary);
  border-color: var(--primary);
}
.checkbox-label input[type="checkbox"]:checked::after {
  content: '';
  position: absolute;
  inset: 2px 3px;
  border-left: 1.5px solid #fff;
  border-bottom: 1.5px solid #fff;
  transform: rotate(-45deg) translate(0, -2px);
}
.radio-label input[type="radio"] { border-radius: 50%; }
.radio-label input[type="radio"]:checked {
  border-color: var(--primary);
  background: var(--surface);
  box-shadow: inset 0 0 0 4px var(--primary);
}
.checkbox-label input:focus-visible,
.radio-label    input:focus-visible { outline: none; box-shadow: var(--sh-focus); }

/* Toggle switch */
.toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--s3);
  cursor: pointer;
}
.toggle__track {
  position: relative;
  width: 36px; height: 20px;
  background: var(--clr-g-300);
  border-radius: var(--r-full);
  transition: background var(--dur-fast);
}
.toggle__thumb {
  position: absolute;
  top: 2px; left: 2px;
  width: 16px; height: 16px;
  background: #fff;
  border-radius: 50%;
  box-shadow: var(--sh-sm);
  transition: transform var(--dur-fast) var(--ease);
}
.toggle--on .toggle__track { background: var(--primary); }
.toggle--on .toggle__thumb { transform: translateX(16px); }
.toggle input { position: absolute; opacity: 0; width: 0; height: 0; }

/* Natives (compatibilité existante) */
label { display: flex; flex-direction: column; gap: var(--s1); font-size: var(--text-sm); font-weight: var(--fw-sb); }
input[type="text"], input[type="search"], input[type="date"], input[type="time"],
input[type="number"], input[type="email"], textarea, select {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-md); padding: 9px 12px;
  font-size: var(--text-base); color: var(--tx); outline: none;
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast);
  width: 100%; font-family: var(--font);
}
input[type="text"]:focus, input[type="search"]:focus, input[type="date"]:focus,
input[type="time"]:focus, input[type="number"]:focus, input[type="email"]:focus,
textarea:focus, select:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--primary-bg);
}
input::placeholder, textarea::placeholder { color: var(--tx-4); }
textarea { resize: vertical; min-height: 80px; }
.form-error { font-size: var(--text-xs); color: var(--error); font-weight: var(--fw-m); margin-top: var(--s1); }
.form-error.hidden { display: none !important; }

/* ══════════════════════════════════════════════════════
   §07  SEARCHBAR
   ══════════════════════════════════════════════════════ */
.searchbar {
  position: relative;
  display: flex;
  align-items: center;
}
.searchbar__icon {
  position: absolute;
  left: 12px;
  color: var(--tx-4);
  pointer-events: none;
  font-size: 14px;
  display: flex;
}
.searchbar__input {
  width: 100%;
  padding: 8px 12px 8px 36px;
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  background: var(--surface-2);
  font-size: var(--text-base);
  color: var(--tx);
  outline: none;
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast), background var(--dur-fast);
  font-family: var(--font);
}
.searchbar__input::placeholder { color: var(--tx-4); }
.searchbar__input:focus {
  border-color: var(--primary);
  background: var(--surface);
  box-shadow: 0 0 0 3px var(--primary-bg);
}
.searchbar__clear {
  position: absolute;
  right: 10px;
  background: var(--clr-g-300);
  border: none;
  border-radius: 50%;
  width: 16px; height: 16px;
  display: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 10px;
  color: var(--tx-3);
}
.searchbar--has-value .searchbar__clear { display: flex; }
.searchbar--lg .searchbar__input { padding: 11px 14px 11px 42px; font-size: var(--text-md); border-radius: var(--r-full); }
.searchbar--lg .searchbar__icon { left: 14px; font-size: 16px; }

/* ══════════════════════════════════════════════════════
   §08  AVATAR
   ══════════════════════════════════════════════════════ */
.avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-weight: var(--fw-sb);
  background: var(--primary-bg);
  color: var(--primary);
  flex-shrink: 0;
  overflow: hidden;
  line-height: 1;
}
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.avatar--xs  { width: 20px; height: 20px; font-size: 9px; }
.avatar--sm  { width: 28px; height: 28px; font-size: 11px; }
.avatar--md  { width: 36px; height: 36px; font-size: 13px; }
.avatar--lg  { width: 48px; height: 48px; font-size: 16px; }
.avatar--xl  { width: 64px; height: 64px; font-size: 22px; }
.avatar--2xl { width: 80px; height: 80px; font-size: 28px; }

/* Couleurs avatar */
.avatar--blue   { background: var(--clr-in-100); color: var(--clr-in-700); }
.avatar--green  { background: var(--clr-ok-100); color: var(--clr-ok-700); }
.avatar--red    { background: var(--clr-er-100); color: var(--clr-er-700); }
.avatar--amber  { background: var(--clr-wa-100); color: var(--clr-wa-700); }
.avatar--violet { background: var(--clr-vi-100); color: var(--clr-vi-700); }
.avatar--gray   { background: var(--clr-g-100);  color: var(--clr-g-700); }

/* Groupe d'avatars */
.avatar-group { display: flex; }
.avatar-group .avatar { border: 2px solid var(--surface); margin-left: -8px; }
.avatar-group .avatar:first-child { margin-left: 0; }

/* Indicateur de statut */
.avatar-wrapper { position: relative; display: inline-flex; }
.avatar-status {
  position: absolute;
  bottom: 0; right: 0;
  width: 8px; height: 8px;
  border-radius: 50%;
  border: 2px solid var(--surface);
}
.avatar-status--online  { background: var(--success); }
.avatar-status--offline { background: var(--clr-g-400); }
.avatar-status--busy    { background: var(--error); }

/* ══════════════════════════════════════════════════════
   §09  BADGE & CHIP
   ══════════════════════════════════════════════════════ */

/* Badge */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--text-xs);
  font-weight: var(--fw-sb);
  line-height: 1;
  padding: 3px 8px;
  border-radius: var(--r-full);
  white-space: nowrap;
  border: 1px solid transparent;
}
.badge--dot::before {
  content: '';
  width: 5px; height: 5px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}

/* Couleurs */
.badge--default { background: var(--surface-3); color: var(--tx-2); border-color: var(--border); }
.badge--primary { background: var(--primary-bg); color: var(--primary); border-color: rgba(var(--primary-rgb), .2); }
.badge--success { background: var(--clr-ok-50);  color: var(--clr-ok-700); border-color: var(--clr-ok-200); }
.badge--error   { background: var(--clr-er-50);  color: var(--clr-er-700); border-color: var(--clr-er-200); }
.badge--warning { background: var(--clr-wa-50);  color: var(--clr-wa-700); border-color: var(--clr-wa-200); }
.badge--info    { background: var(--clr-in-50);  color: var(--clr-in-700); border-color: var(--clr-in-200); }
.badge--violet  { background: var(--clr-vi-50);  color: var(--clr-vi-700); border-color: var(--clr-vi-200); }
.badge--gray    { background: var(--clr-g-100);  color: var(--clr-g-600);  border-color: var(--clr-g-200); }

/* Tailles */
.badge--sm { font-size: 10px; padding: 2px 6px; }
.badge--lg { font-size: var(--text-sm); padding: 4px 10px; border-radius: var(--r-md); }

/* Chip (sélectionnable) */
.chip {
  display: inline-flex;
  align-items: center;
  gap: var(--s1);
  padding: 5px 12px;
  border-radius: var(--r-full);
  font-size: var(--text-sm);
  font-weight: var(--fw-m);
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--tx-2);
  cursor: pointer;
  transition: all var(--dur-fast);
  user-select: none;
}
.chip:hover { border-color: var(--primary); color: var(--primary); }
.chip--active { background: var(--primary-bg); border-color: var(--primary); color: var(--primary); font-weight: var(--fw-sb); }
.chip--sm { padding: 3px 10px; font-size: var(--text-xs); }

/* Domain badges (usage app) */
.badge--session  { background: var(--clr-in-50);  color: var(--clr-in-700);  border-color: var(--clr-in-200); }
.badge--feedback { background: var(--clr-vi-50);  color: var(--clr-vi-700);  border-color: var(--clr-vi-200); }
.badge--bilan    { background: var(--clr-ok-50);  color: var(--clr-ok-700);  border-color: var(--clr-ok-200); }
.badge--urgent   { background: var(--clr-er-50);  color: var(--clr-er-700);  border-color: var(--clr-er-200); }
.badge--kine     { background: var(--clr-in-50);  color: var(--clr-in-700);  border-color: var(--clr-in-200); }
.badge--patient  { background: var(--clr-vi-50);  color: var(--clr-vi-700);  border-color: var(--clr-vi-200); }
.badge--done     { background: var(--clr-ok-50);  color: var(--clr-ok-700);  border-color: var(--clr-ok-200); }

/* Progress state chips */
.chip--progress   { background: var(--clr-ok-50);  color: var(--clr-ok-700); }
.chip--maintain   { background: var(--clr-in-50);  color: var(--clr-in-700); }
.chip--stagnation { background: var(--clr-wa-50);  color: var(--clr-wa-700); }
.chip--regression { background: var(--clr-er-50);  color: var(--clr-er-700); }
.chip--stop       { background: var(--clr-ro-50);  color: var(--clr-ro-600); }

/* Aliases existants */
.feedback-source { display: inline-flex; align-items: center; font-size: 10px; font-weight: var(--fw-sb); text-transform: uppercase; letter-spacing: .04em; padding: 2px 8px; border-radius: var(--r-full); }
.feedback-source-kine    { background: var(--clr-in-50);  color: var(--clr-in-700); }
.feedback-source-patient { background: var(--clr-vi-50);  color: var(--clr-vi-700); }
.feedback-tags { display: flex; flex-wrap: wrap; gap: var(--s2); margin-top: var(--s2); }
.feedback-tag  { display: inline-block; background: var(--primary-bg); color: var(--primary); font-size: var(--text-xs); font-weight: var(--fw-sb); padding: 3px 10px; border-radius: var(--r-full); border: 1px solid rgba(var(--primary-rgb), .2); }
.progress-chip { display: inline-block; font-size: 10px; font-weight: var(--fw-sb); padding: 2px 8px; border-radius: var(--r-full); text-transform: uppercase; letter-spacing: .04em; }
.progress-state-progress  { background: var(--clr-ok-50);  color: var(--clr-ok-700); }
.progress-state-maintain  { background: var(--clr-in-50);  color: var(--clr-in-700); }
.progress-state-stagnation{ background: var(--clr-wa-50);  color: var(--clr-wa-700); }
.progress-state-regression{ background: var(--clr-er-50);  color: var(--clr-er-700); }
.progress-state-stop      { background: var(--clr-ro-50);  color: var(--clr-ro-600); }

/* ══════════════════════════════════════════════════════
   §10  CARDS & KPI CARDS
   ══════════════════════════════════════════════════════ */

/* Card base */
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: var(--sh-xs);
}
.card--flat   { box-shadow: none; }
.card--raised { box-shadow: var(--sh-md); }
.card--interactive {
  cursor: pointer;
  transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast), border-color var(--dur-fast);
}
.card--interactive:hover { transform: translateY(-2px); box-shadow: var(--sh-lg); border-color: var(--border-s); }
.card--interactive:focus-visible { outline: none; box-shadow: var(--sh-focus); }
.card--interactive.card--active { border-color: var(--primary); box-shadow: 0 0 0 1px var(--primary), var(--sh-md); }

.card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--s4) var(--s5);
  border-bottom: 1px solid var(--border);
  gap: var(--s3);
}
.card__title { font-size: var(--text-md); font-weight: var(--fw-sb); }
.card__subtitle { font-size: var(--text-sm); color: var(--tx-3); margin-top: 2px; }
.card__body  { padding: var(--s5); }
.card__footer {
  padding: var(--s3) var(--s5);
  border-top: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--s3);
}

/* Card header tools */
.card-header { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.card-tools  { display: flex; align-items: center; gap: var(--s2); }

/* KPI card */
.kpi-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: var(--s5) var(--s6);
  position: relative;
  overflow: hidden;
  box-shadow: var(--sh-xs);
  cursor: pointer;
  transition: transform var(--dur-fast), box-shadow var(--dur-fast);
}
.kpi-card:hover { transform: translateY(-2px); box-shadow: var(--sh-md); }
.kpi-card::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  border-radius: 3px 0 0 3px;
}
.kpi-card--blue::before   { background: var(--primary); }
.kpi-card--green::before  { background: var(--success); }
.kpi-card--amber::before  { background: var(--warning); }
.kpi-card--red::before    { background: var(--error); }
.kpi-card--violet::before { background: var(--clr-vi-500); }

.kpi-card__label {
  font-size: var(--text-xs);
  font-weight: var(--fw-sb);
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--tx-3);
  margin-bottom: var(--s2);
}
.kpi-card__value {
  font-size: 32px;
  font-weight: var(--fw-eb);
  line-height: 1;
  color: var(--tx);
  margin-bottom: var(--s1);
}
.kpi-card__sub { font-size: var(--text-sm); color: var(--tx-3); }
.kpi-card__trend {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: var(--text-xs);
  font-weight: var(--fw-sb);
  margin-top: var(--s2);
}
.kpi-card__trend--up   { color: var(--success); }
.kpi-card__trend--down { color: var(--error); }
.kpi-card__trend--flat { color: var(--tx-4); }
.kpi-card--active { border-color: var(--primary); box-shadow: 0 0 0 1px var(--primary); }

/* Grid KPI */
.kpi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s4); }

/* Aliases existants */
.metric-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-xl); padding: var(--s5) var(--s6);
  box-shadow: var(--sh-xs); cursor: pointer;
  transition: transform var(--dur-fast), box-shadow var(--dur-fast);
}
.metric-card::before { content: ''; position: absolute; top: 0; left: 0; width: 3px; height: 100%; border-radius: 3px 0 0 3px; }
.metric-blue::before   { background: var(--primary); }
.metric-purple::before { background: var(--clr-vi-500); }
.metric-teal::before   { background: var(--success); }
.metric-card[role="button"]:hover { transform: translateY(-2px); box-shadow: var(--sh-md); }
.metric-card[role="button"]:focus-visible { outline: none; box-shadow: var(--sh-focus); }
.metric-card-content { display: flex; flex-direction: column; gap: var(--s2); }
.metric-card-content p { font-size: var(--text-xs); font-weight: var(--fw-sb); text-transform: uppercase; letter-spacing: .06em; color: var(--tx-3); margin: 0; }
.metric-card h2 { font-size: 32px; font-weight: var(--fw-eb); color: var(--tx); margin: var(--s1) 0; }
.metric-subtext { font-size: var(--text-sm); color: var(--tx-3); }
.metric-card.metric-card-active { border-color: var(--primary); box-shadow: 0 0 0 1px var(--primary), var(--sh-md); transform: translateY(-2px); }
.metric-breakdown-grid { gap: var(--s2); margin-top: var(--s2); }
.metric-breakdown-btn { display: flex; align-items: center; gap: var(--s1); padding: 3px 10px; border-radius: var(--r-full); background: var(--surface-2); border: 1px solid var(--border); font-weight: var(--fw-m); color: var(--tx-3); cursor: pointer; transition: all var(--dur-fast); font-family: var(--font); }
.metric-breakdown-btn:hover { border-color: var(--primary); color: var(--primary); }
.metric-breakdown-btn.active { background: var(--primary-bg); border-color: var(--primary); color: var(--primary); }
.metric-breakdown-value { font-weight: var(--fw-b); }

/* ══════════════════════════════════════════════════════
   §11  MODAL
   ══════════════════════════════════════════════════════ */
.modal {
  position: fixed;
  inset: 0;
  background: rgba(15,18,30,.6);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: grid;
  place-items: center;
  z-index: var(--z-modal);
  padding: var(--s6);
  animation: fadeIn var(--dur-fast) var(--ease);
}
.modal.hidden { display: none !important; }
#patientAccessInviteModal .modal-content { max-height: calc(100dvh - 32px); overflow-y: auto; }
.authentication-view[hidden] { display: none !important; }

.modal__content, .modal-content {
  background: var(--surface);
  border-radius: var(--r-2xl);
  width: 100%;
  max-width: 480px;
  box-shadow: var(--sh-2xl);
  overflow: hidden;
  animation: slideUp var(--dur-mid) var(--ease);
}
.modal__content--sm { max-width: 380px; }
.modal__content--lg { max-width: 680px; }
.modal__content--xl { max-width: 880px; }
.modal__content--full { max-width: calc(100vw - 48px); max-height: calc(100vh - 48px); overflow-y: auto; }

.modal__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: var(--s6) var(--s7);
  border-bottom: 1px solid var(--border);
  gap: var(--s4);
}
.modal__title { font-size: var(--text-lg); font-weight: var(--fw-b); }
.modal__subtitle { font-size: var(--text-sm); color: var(--tx-3); margin-top: 2px; }
.modal__close {
  width: 28px; height: 28px;
  border-radius: var(--r-md);
  background: var(--surface-2);
  border: 1px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: var(--tx-3); font-size: 14px; flex-shrink: 0;
  transition: background var(--dur-fast);
}
.modal__close:hover { background: var(--surface-3); }
.modal__body  { padding: var(--s6) var(--s7); }
.modal__footer {
  padding: var(--s4) var(--s7);
  border-top: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--s3);
}

/* Compatibilité existante */
.modal-content { padding: var(--s8); }
.modal-content h3 { font-size: var(--text-lg); font-weight: var(--fw-b); margin-bottom: var(--s6); }
.patient-birth-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 96px;
  align-items: end;
  gap: var(--s3);
}
.patient-birth-row > label { min-width: 0; }
.patient-birth-row input { width: 100%; min-width: 0; }
.session-modal-slot-summary {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  margin: calc(var(--s3) * -1) 0 var(--s5);
  padding: 7px 12px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: var(--r-full);
  background: rgba(var(--primary-rgb), .07);
  color: var(--primary-dk);
  font-size: var(--text-sm);
  font-weight: var(--fw-sb);
}
.session-creation-wizard-open .modal-content { max-width: 560px; }
.session-creation-progress {
  display: grid;
  gap: 3px;
  margin: -8px 0 18px;
  padding: 11px 13px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(var(--primary-rgb), .09), rgba(var(--primary-rgb), .035));
}
.session-creation-progress span {
  color: var(--primary);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.session-creation-progress strong { color: var(--tx); font-size: 15px; }
.session-patient-picker { margin-bottom: var(--s4); }
.session-patient-picker-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s3);
  margin-bottom: var(--s2);
}
.session-patient-picker-head label {
  margin: 0;
  font-size: var(--text-sm);
  font-weight: var(--fw-sb);
}
.session-patient-picker-head button {
  padding: 4px 0;
  border: 0;
  background: transparent;
  color: var(--primary-dk);
  font-size: var(--text-xs);
  font-weight: var(--fw-b);
  cursor: pointer;
}
.session-patient-picker-head button:hover { color: var(--primary); }
.session-patient-picker > input { width: 100%; }
.session-type-selector {
  margin: 0 0 var(--s4);
  padding: 0;
  border: 0;
}
.session-type-selector legend {
  margin-bottom: var(--s2);
  color: var(--tx-2);
  font-size: var(--text-sm);
  font-weight: var(--fw-sb);
}
.session-modal-context-note {
  margin: 0 0 var(--s3);
  padding: 10px 12px;
  border-radius: var(--r-lg);
  background: rgba(var(--primary-rgb), .065);
  color: var(--tx-2);
  font-size: var(--text-xs);
  line-height: 1.45;
}
.session-type-selector-single .session-type-options {
  grid-template-columns: minmax(0, 1fr);
}
.session-type-selector-pair .session-type-options {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.session-type-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  padding: 4px;
  border: 1px solid rgba(23, 27, 36, .08);
  border-radius: var(--r-xl);
  background: rgba(23, 27, 36, .035);
}
.session-visit-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.session-assessment-target-field { margin: 0 0 var(--s4); padding: var(--s3); border: 1px solid rgba(var(--primary-rgb), .16); border-radius: var(--r-lg); background: rgba(var(--primary-rgb), .055); }
.session-assessment-target-field label { margin-bottom: var(--s2); color: var(--tx-2); font-size: var(--text-sm); font-weight: var(--fw-sb); }
.session-assessment-target-field select { width: 100%; }
.session-assessment-target-field > p:not(.form-error) { margin: var(--s2) 0 0; color: var(--tx-3); font-size: var(--text-xs); }
.session-assessment-target { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 7px; margin: var(--s2) 0; padding: 8px 10px; border-left: 3px solid var(--primary); border-radius: 0 var(--r-md) var(--r-md) 0; background: var(--primary-bg); color: var(--tx-2); font-size: 11px; }
.session-assessment-target span { color: var(--tx-3); }
.session-assessment-target strong { color: var(--primary-dk); }
.measurement-context-help { grid-column: 1 / -1; margin: -4px 0 var(--s3); color: var(--tx-3); font-size: var(--text-xs); }
.session-reassessment-prompt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
  padding: 13px 15px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: var(--r-lg);
  background: rgba(var(--primary-rgb), .045);
}
.session-reassessment-prompt > div { display: grid; gap: 2px; min-width: 0; }
.session-reassessment-prompt span { color: var(--primary-dk); font-size: 11px; font-weight: 850; text-transform: uppercase; letter-spacing: .045em; }
.session-reassessment-prompt strong { color: var(--tx); font-size: 14px; }
.session-reassessment-prompt small { color: var(--tx-3); font-size: 11px; line-height: 1.35; }
.session-reassessment-prompt button {
  flex: 0 0 auto;
  min-height: 36px;
  padding: 0 13px;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 11px;
  background: var(--primary);
  color: white;
  font-weight: 800;
  cursor: pointer;
}
.session-reassessment-prompt button:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .22); outline-offset: 2px; }
@media (max-width: 560px) {
  .session-reassessment-prompt { align-items: stretch; flex-direction: column; gap: 10px; }
  .session-reassessment-prompt button { width: 100%; }
}
.session-type-options label { margin: 0; cursor: pointer; }
.session-type-options input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.session-type-options span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 7px 8px;
  border-radius: calc(var(--r-xl) - 4px);
  color: var(--tx-3);
  font-size: var(--text-xs);
  font-weight: var(--fw-sb);
  text-align: center;
  transition: background var(--dur-fast), box-shadow var(--dur-fast), color var(--dur-fast), transform var(--dur-fast);
}
.session-type-options input:checked + span {
  background: #fff;
  color: var(--primary-dk);
  box-shadow: 0 3px 10px rgba(23, 27, 36, .09);
}
.session-type-options input:focus-visible + span {
  outline: 2px solid var(--primary);
  outline-offset: 1px;
}
.session-type-options label:active span { transform: scale(.98); }
.session-template-mode {
  margin: 0 0 var(--s4);
  padding: 0;
  border: 0;
}
.session-template-mode legend { margin-bottom: var(--s2); color: var(--tx-2); font-size: var(--text-sm); font-weight: var(--fw-sb); }
.session-template-mode-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  padding: 4px;
  border-radius: var(--r-lg);
  background: var(--surface-2);
}
.session-template-mode-options label { margin: 0; cursor: pointer; }
.session-template-mode-options input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.session-template-mode-options span { display: grid; min-height: 40px; padding: 8px 11px; place-items: center; border-radius: 11px; color: var(--tx-3); font-size: 12px; font-weight: 750; text-align: center; }
.session-template-mode-options input:checked + span { background: #fff; color: var(--primary-dk); box-shadow: var(--sh-sm); }
.session-template-mode-options input:focus-visible + span { outline: 3px solid rgba(var(--primary-rgb), .14); }
.session-template-picker { display: grid; gap: 8px; margin-top: 10px; padding: 12px; border: 1px solid rgba(var(--primary-rgb), .13); border-radius: var(--r-lg); background: rgba(var(--primary-rgb), .045); }
.session-template-picker > label { margin: 0; color: var(--tx-2); font-size: 11px; font-weight: 800; }
.session-template-picker select { width: 100%; min-height: 42px; border-color: rgba(var(--primary-rgb), .17); background: #fff; }
.session-template-preview { display: grid; gap: 3px; padding: 9px 10px; border-radius: 11px; background: rgba(255,255,255,.75); color: var(--tx-3); font-size: 11px; }
.session-template-preview strong { color: var(--tx); font-size: 12px; }
.session-template-preview small { color: var(--tx-4); }
.session-template-save-content { max-width: 480px; }
#sessionTemplateSaveModal { z-index: 1800; }
#sessionModal .modal-content,
#sessionTemplateSaveModal .modal-content { max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; }
.session-template-save-note { margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.5; }
.modal-actions { display: flex; justify-content: flex-end; gap: var(--s3); margin-top: var(--s6); padding-top: var(--s5); border-top: 1px solid var(--border); }
.detail-modal-content { max-width: 820px; max-height: calc(100vh - 48px); overflow-y: auto; padding: 0; }

/* ══════════════════════════════════════════════════════
   §12  DRAWER
   ══════════════════════════════════════════════════════ */
.drawer-overlay {
  position: fixed; inset: 0;
  background: rgba(15,18,30,.5);
  backdrop-filter: blur(4px);
  z-index: var(--z-modal);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--dur-mid);
}
.drawer-overlay--open { opacity: 1; pointer-events: auto; }

.drawer {
  position: fixed;
  top: 0; bottom: 0;
  width: 420px;
  background: var(--surface);
  box-shadow: var(--sh-2xl);
  z-index: calc(var(--z-modal) + 1);
  display: flex;
  flex-direction: column;
  transition: transform var(--dur-slow) var(--ease);
}
.drawer--right { right: 0; transform: translateX(100%); }
.drawer--left  { left: 0;  transform: translateX(-100%); }
.drawer--right.drawer--open { transform: translateX(0); }
.drawer--left.drawer--open  { transform: translateX(0); }
.drawer--sm { width: 320px; }
.drawer--lg { width: 560px; }

.drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--s5) var(--s6);
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.drawer__title { font-size: var(--text-lg); font-weight: var(--fw-b); }
.drawer__body  { flex: 1; overflow-y: auto; padding: var(--s6); }
.drawer__footer {
  padding: var(--s4) var(--s6);
  border-top: 1px solid var(--border);
  display: flex;
  gap: var(--s3);
  flex-shrink: 0;
}

/* ══════════════════════════════════════════════════════
   §13  SIDEBAR
   ══════════════════════════════════════════════════════ */
.sidebar {
  background: var(--sb-bg);
  display: flex;
  flex-direction: column;
  height: 100vh;
  overflow-y: auto;
  overflow-x: hidden;
  flex-shrink: 0;
  scrollbar-width: none;
  position: relative;
}
.sidebar::-webkit-scrollbar { display: none; }
.sidebar-header {
  padding: var(--s5) var(--s4);
  border-bottom: 1px solid var(--sb-border);
  flex-shrink: 0;
}
.sidebar-brand { display: flex; align-items: center; gap: var(--s3); padding: var(--s2); border-radius: var(--r-lg); }
.sidebar-brand-icon {
  width: 28px; height: 28px;
  border-radius: var(--r-md);
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: var(--fw-eb); flex-shrink: 0;
}
.sidebar-brand-name { font-weight: var(--fw-b); color: #fff; }
.sidebar-section { padding: var(--s4) var(--s3) var(--s2); flex: 1; }
.sidebar-section-label {
  font-size: 10px; font-weight: var(--fw-b); text-transform: uppercase;
  letter-spacing: .08em; color: rgba(255,255,255,.25);
  padding: var(--s2) var(--s3); margin-bottom: var(--s1);
}
.sidebar-nav-item {
  display: flex; align-items: center; gap: var(--s3);
  padding: 8px var(--s3); border-radius: var(--r-lg); font-weight: var(--fw-m);
  width: 100%; text-align: left;
  transition: background var(--dur-fast), color var(--dur-fast);
  margin-bottom: 2px; cursor: pointer; border: none; background: none;
  font-family: var(--font);
}
.sidebar-nav-item:hover { background: var(--sb-active); }
.sidebar-nav-item.active { background: var(--sb-active); }
.nav-icon { width: 18px; height: 18px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; opacity: .75; font-size: 15px; }
.sidebar-nav-item.active .nav-icon { opacity: 1; }
.nav-badge {
  margin-left: auto; background: var(--primary); color: #fff;
  font-size: 10px; font-weight: var(--fw-b);
  padding: 1px 6px; border-radius: var(--r-full); line-height: 16px;
}
.sidebar-footer { padding: var(--s3) var(--s3) var(--s4); border-top: 1px solid var(--sb-border); flex-shrink: 0; }
.sidebar-user {
  display: flex; align-items: center; gap: var(--s3);
  padding: var(--s2) var(--s3); border-radius: var(--r-lg); cursor: pointer;
  transition: background var(--dur-fast); font-family: var(--font);
  border: none; background: none; width: 100%; text-align: left;
}
.sidebar-user:hover { background: var(--sb-active); }
.sidebar-user-avatar {
  width: 28px; height: 28px; background: var(--primary); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: var(--fw-b); color: #fff; flex-shrink: 0;
}
.sidebar-user-name { font-size: 13px; font-weight: var(--fw-m); color: var(--sb-tx-h); }
.sidebar-user-role { font-size: 11px; color: var(--sb-tx); }

/* ══════════════════════════════════════════════════════
   §14  NAVBAR / TOPBAR
   ══════════════════════════════════════════════════════ */
.app-main > .topbar {
  height: var(--topbar-h);
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  display: flex; align-items: center;
  gap: var(--s3); padding: 0 var(--s6);
  flex-shrink: 0; z-index: var(--z-sticky);
}
.topbar-search { flex: 1; max-width: 380px; position: relative; }
.topbar-search-icon {
  position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
  color: var(--tx-4); pointer-events: none; font-size: 13px;
}
.topbar-search input {
  width: 100%; background: var(--surface-2); border: 1px solid var(--border);
  border-radius: var(--r-full); padding: 7px 14px 7px 34px; outline: none;
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast);
  font-family: var(--font);
}
.topbar-search input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-bg); }
.topbar-search input::placeholder { color: var(--tx-4); }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: var(--s2); }
.live-patient-navigator {
  display: flex;
  align-items: stretch;
  padding: 3px;
  border: 1px solid rgba(57,120,255,.16);
  border-radius: 15px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 5px 16px rgba(15,23,42,.06);
}
.live-patient-step {
  width: 30px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--primary-dk);
  font-size: 24px;
  line-height: 1;
}
.live-patient-step:hover:not(:disabled) { background: var(--primary-bg); }
.live-patient-step:disabled { cursor: default; opacity: .25; }
.live-patient-access {
  display: grid;
  grid-template-columns: 9px minmax(0, auto) auto;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 6px 9px 6px 11px;
  border: 0;
  border-radius: 10px;
  background: rgba(255,255,255,.9);
  color: var(--tx);
  box-shadow: none;
  text-align: left;
}
.live-patient-access:hover { border-color: rgba(57,120,255,.42); background: #fff; transform: translateY(-1px); }
.live-patient-indicator { width: 9px; height: 9px; border-radius: 50%; background: var(--primary); }
.live-patient-copy { display: flex; min-width: 0; flex-direction: column; line-height: 1.15; }
.live-patient-copy > span { color: var(--tx-4); font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.live-patient-copy strong { max-width: 150px; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.live-patient-time { padding: 5px 8px; border-radius: 7px; background: var(--primary-bg); color: var(--primary-dk); font-size: 11px; font-weight: 800; }
.live-patient-access[data-state="live"] { border-color: rgba(22,163,74,.28); background: rgba(240,253,244,.94); }
.live-patient-access[data-state="live"] .live-patient-indicator { background: var(--clr-ok-500); animation: livePatientPulse 1.8s ease-out infinite; }
.live-patient-access[data-state="autonomy"] { background: rgba(239,246,255,.94); }
.live-patient-access[data-state="autonomy"] .live-patient-indicator { background: #60a5fa; }
.live-patient-access[data-state="ready"] { border-color: rgba(245,158,11,.32); background: rgba(255,251,235,.96); }
.live-patient-access[data-state="ready"] .live-patient-indicator { background: #f59e0b; }
@keyframes livePatientPulse { 0% { box-shadow: 0 0 0 0 rgba(22,163,74,.3); } 70%, 100% { box-shadow: 0 0 0 7px rgba(22,163,74,0); } }
.topbar-btn {
  width: 32px; height: 32px; border-radius: var(--r-lg); border: 1px solid var(--border);
  background: var(--surface); color: var(--tx-3); font-size: 15px;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
  transition: background var(--dur-fast), border-color var(--dur-fast);
}
.topbar-btn:hover { background: var(--surface-2); border-color: var(--border-s); }

.header-filters { display: flex; align-items: center; gap: var(--s2); }
.dashboard-session-filter {
  padding: 4px 12px; border-radius: var(--r-full); font-size: var(--text-sm);
  font-weight: var(--fw-m); color: var(--tx-3); background: var(--surface-2);
  border: 1px solid var(--border); cursor: pointer; transition: all var(--dur-fast); font-family: var(--font);
}
.dashboard-session-filter:hover { border-color: var(--primary); color: var(--primary); }
.dashboard-session-filter.active { background: var(--primary); border-color: var(--primary); }

/* Mobile nav */
.mobile-nav {
  position: fixed; bottom: 0; left: 0; right: 0;
  background: var(--surface); border-top: 1px solid var(--border);
  display: none; padding: var(--s2) var(--s4);
  padding-bottom: calc(var(--s2) + env(safe-area-inset-bottom));
  justify-content: space-around; z-index: var(--z-sticky);
}
.mobile-nav-item {
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  padding: 6px 12px; border-radius: var(--r-lg); border: none; background: none;
  font-size: 10px; font-weight: var(--fw-sb);
  cursor: pointer; transition: color var(--dur-fast); font-family: var(--font);
}
.mobile-nav-item.active { color: var(--primary); }
.mobile-nav-item .nav-icon { font-size: 20px; }

/* ══════════════════════════════════════════════════════
   §15  ONGLETS (TABS)
   ══════════════════════════════════════════════════════ */

/* Tabs line (sous-titre) */
.tabs {
  display: flex;
  border-bottom: 1px solid var(--border);
  gap: var(--s1);
  overflow-x: auto;
  scrollbar-width: none;
}
.tabs::-webkit-scrollbar { display: none; }
.tab {
  display: flex; align-items: center; gap: var(--s2);
  padding: 9px 14px;
  font-size: var(--text-sm); font-weight: var(--fw-m);
  color: var(--tx-3); background: none; border: none;
  border-bottom: 2px solid transparent; margin-bottom: -1px;
  cursor: pointer; white-space: nowrap;
  transition: color var(--dur-fast), border-color var(--dur-fast); font-family: var(--font);
}
.tab:hover { color: var(--tx); }
.tab.active { color: var(--primary); border-bottom-color: var(--primary); font-weight: var(--fw-sb); }
.tab .tab-count {
  display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px; border-radius: var(--r-full);
  background: var(--surface-3); font-size: 10px; font-weight: var(--fw-b);
  color: var(--tx-3);
}
.tab.active .tab-count { background: var(--primary-bg); color: var(--primary); }

/* Tabs pill (style capsule) */
.tabs--pill { border-bottom: none; background: var(--surface-2); border-radius: var(--r-xl); padding: var(--s1); gap: var(--s1); width: fit-content; }
.tabs--pill .tab { border-radius: var(--r-lg); border-bottom: none; padding: 6px 14px; margin-bottom: 0; }
.tabs--pill .tab.active { background: var(--surface); color: var(--tx); box-shadow: var(--sh-sm); }

/* Alias detail-tabs existants */
.detail-tabs { display: flex; gap: var(--s2); padding: var(--s3) var(--s6); border-bottom: 1px solid var(--border); background: var(--surface); }
.tab-button { padding: 6px 14px; border-radius: var(--r-full); font-size: 13px; font-weight: var(--fw-m); color: var(--tx-3); background: none; border: none; cursor: pointer; transition: background var(--dur-fast), color var(--dur-fast); font-family: var(--font); }
.tab-button:hover { background: var(--surface-2); color: var(--tx); }
.tab-button.active { background: var(--primary-bg); color: var(--primary); font-weight: var(--fw-sb); }

.main-tab { padding: 10px 16px; font-size: var(--text-sm); font-weight: var(--fw-m); color: var(--tx-3); background: none; border: none; border-bottom: 2px solid transparent; cursor: pointer; font-family: var(--font); transition: color var(--dur-fast), border-color var(--dur-fast); }
.main-tab.active, .main-tab:hover { color: var(--primary); border-bottom-color: var(--primary); }

/* ══════════════════════════════════════════════════════
   §16  ACCORDÉON
   ══════════════════════════════════════════════════════ */
.accordion { border: 1px solid var(--border); border-radius: var(--r-xl); overflow: hidden; }
.accordion + .accordion { margin-top: var(--s2); }
.accordion__header {
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--s4) var(--s5); cursor: pointer; background: var(--surface);
  transition: background var(--dur-fast); user-select: none;
  list-style: none; font-family: var(--font);
}
.accordion__header::-webkit-details-marker { display: none; }
.accordion__header:hover { background: var(--surface-2); }
.accordion__title { font-size: var(--text-md); font-weight: var(--fw-sb); }
.accordion__subtitle { font-size: var(--text-sm); color: var(--tx-3); margin-top: 2px; }
.accordion__icon {
  width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;
  border-radius: 50%; background: var(--surface-3); color: var(--tx-3); flex-shrink: 0;
  transition: transform var(--dur-fast) var(--ease); font-size: 12px;
}
details[open] .accordion__icon { transform: rotate(180deg); }
.accordion__body { padding: var(--s4) var(--s5) var(--s5); border-top: 1px solid var(--border); }

/* Alias existants (sessions, exercises) */
details.session-dependency-details summary,
details.session-exercise-details summary,
details.session-feedback-details summary { list-style: none; cursor: pointer; }
details.session-dependency-details summary::-webkit-details-marker,
details.session-exercise-details summary::-webkit-details-marker,
details.session-feedback-details summary::-webkit-details-marker { display: none; }

/* ══════════════════════════════════════════════════════
   §17  TIMELINE
   ══════════════════════════════════════════════════════ */
.timeline { display: flex; flex-direction: column; }
.timeline__item {
  display: flex;
  gap: var(--s4);
  padding-bottom: var(--s6);
  position: relative;
}
.timeline__item::before {
  content: '';
  position: absolute;
  left: 15px;
  top: 28px;
  bottom: 0;
  width: 1px;
  background: var(--border);
}
.timeline__item:last-child::before { display: none; }
.timeline__item:last-child { padding-bottom: 0; }

.timeline__dot {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--surface);
  border: 2px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  font-size: 13px;
  z-index: 1;
}
.timeline__dot--primary { border-color: var(--primary); background: var(--primary-bg); color: var(--primary); }
.timeline__dot--success { border-color: var(--success); background: var(--clr-ok-50); color: var(--success); }
.timeline__dot--error   { border-color: var(--error);   background: var(--clr-er-50); color: var(--error); }
.timeline__dot--warning { border-color: var(--warning);  background: var(--clr-wa-50); color: var(--warning); }

.timeline__content { flex: 1; padding-top: 4px; min-width: 0; }
.timeline__header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); margin-bottom: 4px; }
.timeline__title  { font-size: var(--text-md); font-weight: var(--fw-sb); }
.timeline__date   { font-size: var(--text-xs); color: var(--tx-4); white-space: nowrap; }
.timeline__body   { font-size: var(--text-sm); color: var(--tx-3); line-height: 1.5; }

/* ══════════════════════════════════════════════════════
   §18  PROGRESS BAR
   ══════════════════════════════════════════════════════ */
.progress {
  background: var(--surface-3);
  border-radius: var(--r-full);
  overflow: hidden;
  height: 6px;
}
.progress--sm  { height: 4px; }
.progress--md  { height: 8px; }
.progress--lg  { height: 12px; }
.progress--xl  { height: 16px; border-radius: var(--r-md); }

.progress__bar {
  height: 100%;
  border-radius: var(--r-full);
  background: var(--primary);
  transition: width var(--dur-slow) var(--ease);
  min-width: 4px;
}
.progress__bar--success { background: var(--success); }
.progress__bar--warning { background: var(--warning); }
.progress__bar--error   { background: var(--error); }
.progress__bar--gradient{ background: linear-gradient(90deg, var(--primary) 0%, var(--clr-vi-500) 100%); }
.progress__bar--striped {
  background-image: repeating-linear-gradient(
    45deg, rgba(255,255,255,.15) 0, rgba(255,255,255,.15) 6px,
    transparent 6px, transparent 12px
  );
  animation: progress-stripe .8s linear infinite;
}

.progress-with-label { display: flex; flex-direction: column; gap: var(--s1); }
.progress-label { display: flex; justify-content: space-between; align-items: center; }
.progress-label-text { font-size: var(--text-sm); font-weight: var(--fw-m); color: var(--tx-2); }
.progress-label-value{ font-size: var(--text-sm); font-weight: var(--fw-b); color: var(--primary); }

/* Score circle */
.score-circle {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: conic-gradient(var(--primary) calc(var(--score, 50) * 1%), var(--border) 0);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.score-circle__inner {
  width: 44px; height: 44px; border-radius: 50%; background: var(--surface);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  font-size: 12px; font-weight: var(--fw-eb); color: var(--tx); line-height: 1;
}
.score-circle__inner span { font-size: 9px; color: var(--tx-4); }

/* ══════════════════════════════════════════════════════
   §19  EMPTY STATES
   ══════════════════════════════════════════════════════ */
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: var(--s16) var(--s8);
  max-width: 360px;
  margin: 0 auto;
}
.empty-state__icon {
  font-size: 48px;
  margin-bottom: var(--s5);
  opacity: .5;
}
.empty-state__illustration {
  width: 80px; height: 80px;
  border-radius: var(--r-2xl);
  background: var(--surface-3);
  display: flex; align-items: center; justify-content: center;
  font-size: 32px; margin-bottom: var(--s5);
}
.empty-state__title { font-size: var(--text-lg); font-weight: var(--fw-sb); margin-bottom: var(--s2); }
.empty-state__body  { font-size: var(--text-base); color: var(--tx-3); line-height: 1.6; margin-bottom: var(--s6); }
.empty-state--compact { padding: var(--s8) var(--s6); }
.empty-state--compact .empty-state__icon { font-size: 32px; }
.empty-state--compact .empty-state__title { font-size: var(--text-md); }

/* ══════════════════════════════════════════════════════
   §20  SKELETON LOADERS
   ══════════════════════════════════════════════════════ */
.skeleton {
  background: linear-gradient(90deg, var(--clr-g-150) 25%, var(--clr-g-100) 50%, var(--clr-g-150) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
  border-radius: var(--r-md);
}
.skeleton--text { height: 12px; border-radius: var(--r-full); }
.skeleton--text-sm { height: 10px; }
.skeleton--text-lg { height: 16px; }
.skeleton--title  { height: 20px; border-radius: var(--r-full); }
.skeleton--avatar { border-radius: 50%; }
.skeleton--avatar-sm { width: 28px; height: 28px; }
.skeleton--avatar-md { width: 36px; height: 36px; }
.skeleton--avatar-lg { width: 48px; height: 48px; }
.skeleton--badge  { height: 20px; border-radius: var(--r-full); }
.skeleton--btn    { height: 34px; border-radius: var(--r-md); }
.skeleton--input  { height: 38px; border-radius: var(--r-md); }

/* Skeleton card */
.skeleton-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: var(--s5);
  display: flex; flex-direction: column; gap: var(--s3);
}
.skeleton-card .skeleton-card__header { display: flex; align-items: center; gap: var(--s3); }

/* Skeleton table row */
.skeleton-row { display: flex; align-items: center; gap: var(--s4); padding: var(--s3) 0; border-bottom: 1px solid var(--border); }

/* Skeleton KPI */
.skeleton-kpi {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl);
  padding: var(--s5) var(--s6); display: flex; flex-direction: column; gap: var(--s3);
}

/* ══════════════════════════════════════════════════════
   §21  TOASTS & NOTIFICATIONS
   ══════════════════════════════════════════════════════ */
.toast-container {
  position: fixed;
  bottom: var(--s6);
  left: 50%;
  transform: translateX(-50%);
  z-index: var(--z-toast);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--s2);
  pointer-events: none;
}

.toast, .action-toast {
  display: inline-flex;
  align-items: center;
  gap: var(--s3);
  background: var(--clr-g-900);
  color: #fff;
  font-size: 13px;
  font-weight: var(--fw-m);
  padding: 10px 18px;
  border-radius: var(--r-full);
  box-shadow: var(--sh-xl);
  pointer-events: auto;
  white-space: nowrap;
  animation: toastIn var(--dur-mid) var(--ease);
}
.toast__icon { font-size: 15px; flex-shrink: 0; }
.toast--success { background: var(--clr-ok-700); }
.toast--error   { background: var(--clr-er-600); }
.toast--warning { background: var(--clr-wa-600); color: #fff; }
.toast--info    { background: var(--clr-in-600); }
.toast--primary { background: var(--primary); }

/* Toast banner (plus large) */
.toast-banner {
  position: fixed;
  top: var(--s4);
  left: 50%; transform: translateX(-50%);
  max-width: 500px; width: calc(100% - var(--s8));
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: var(--s4) var(--s5);
  box-shadow: var(--sh-xl);
  display: flex; align-items: flex-start; gap: var(--s3);
  z-index: var(--z-toast);
  animation: slideDown var(--dur-mid) var(--ease);
}
.toast-banner--success { border-left: 3px solid var(--success); }
.toast-banner--error   { border-left: 3px solid var(--error); }
.toast-banner--warning { border-left: 3px solid var(--warning); }
.toast-banner--info    { border-left: 3px solid var(--info); }
.toast-banner__icon { font-size: 18px; flex-shrink: 0; padding-top: 1px; }
.toast-banner__title { font-size: var(--text-md); font-weight: var(--fw-sb); margin-bottom: 2px; }
.toast-banner__body  { font-size: var(--text-sm); color: var(--tx-3); }
.toast-banner__close { margin-left: auto; flex-shrink: 0; }

/* ══════════════════════════════════════════════════════
   §22  TABLES
   ══════════════════════════════════════════════════════ */
.table-wrapper {
  overflow-x: auto;
  border-radius: var(--r-xl);
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: var(--sh-xs);
}

.ds-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-base);
}
.ds-table thead { }
.ds-table th {
  font-size: 11px;
  font-weight: var(--fw-b);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--tx-4);
  background: var(--surface-2);
  padding: 10px 18px;
  text-align: left;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.ds-table th.sortable { cursor: pointer; user-select: none; }
.ds-table th.sortable:hover { color: var(--tx-2); }
.ds-table th.sorted { color: var(--primary); }
.ds-table th .sort-icon { margin-left: 4px; opacity: .5; }
.ds-table th.sorted .sort-icon { opacity: 1; }

.ds-table td {
  padding: 12px 18px;
  color: var(--tx);
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
}
.ds-table td:first-child { font-weight: var(--fw-sb); }
.ds-table tbody tr { transition: background var(--dur-fast); }
.ds-table tbody tr:hover td { background: var(--clr-p-50); }
.ds-table tbody tr:last-child td { border-bottom: none; }
.ds-table tbody tr.selected td { background: var(--primary-bg); }
.ds-table tbody tr.clickable { cursor: pointer; }

.ds-table--compact th { padding: 8px 14px; }
.ds-table--compact td { padding: 8px 14px; font-size: var(--text-sm); }
.ds-table--striped tbody tr:nth-child(even) td { background: var(--surface-2); }

/* Alias patient-table */
.patient-table { width: 100%; border-collapse: collapse; }
.patient-table th { font-size: 11px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .06em; color: var(--tx-4); padding: 10px 20px; text-align: left; border-bottom: 1px solid var(--border); }
.patient-table td { padding: 12px 20px; font-size: 13px; color: var(--tx); border-bottom: 1px solid var(--border); }
.patient-table tbody tr { cursor: pointer; transition: background var(--dur-fast); }
.patient-table tbody tr:hover td { }
.patient-table tbody tr:last-child td { border-bottom: none; }
.patient-table td:first-child { font-weight: var(--fw-sb); }

/* ══════════════════════════════════════════════════════
   §23  GRAPHIQUES CSS
   ══════════════════════════════════════════════════════ */

/* Bar chart horizontal */
.chart-bar { display: flex; flex-direction: column; gap: var(--s2); }
.chart-bar__row {
  display: flex; align-items: center;
  gap: var(--s3); font-size: var(--text-sm);
}
.chart-bar__label { width: 80px; text-align: right; color: var(--tx-3); font-size: var(--text-xs); flex-shrink: 0; }
.chart-bar__track {
  flex: 1; height: 6px; background: var(--surface-3);
  border-radius: var(--r-full); overflow: hidden;
}
.chart-bar__fill {
  height: 100%; border-radius: var(--r-full); background: var(--primary);
  transition: width var(--dur-slower) var(--ease);
  min-width: 2px;
}
.chart-bar__value { width: 28px; font-size: var(--text-xs); font-weight: var(--fw-b); color: var(--tx-2); }

/* Sparkline (mini trend) */
.sparkline { display: flex; align-items: flex-end; gap: 2px; height: 32px; }
.sparkline__bar {
  flex: 1; border-radius: 2px 2px 0 0; background: var(--clr-p-200);
  transition: height .3s var(--ease), background .2s;
}
.sparkline__bar--active { background: var(--primary); }
.sparkline__bar--error  { background: var(--clr-er-300); }
.sparkline__bar--success{ background: var(--clr-ok-300); }

/* Donut chart (CSS only, single value) */
.donut {
  width: 80px; height: 80px;
  border-radius: 50%;
  background: conic-gradient(var(--primary) calc(var(--pct, 0) * 1%), var(--surface-3) 0);
  display: flex; align-items: center; justify-content: center; position: relative;
}
.donut__inner {
  width: 56px; height: 56px; border-radius: 50%; background: var(--surface);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.donut__value { font-size: 16px; font-weight: var(--fw-eb); color: var(--tx); line-height: 1; }
.donut__label { font-size: 10px; color: var(--tx-4); }

/* Alias bar-row existant */
.bar-row { display: flex; align-items: center; gap: var(--s3); padding: 5px 0; font-size: var(--text-sm); }
.bar-row > span { width: 36px; color: var(--tx-4); flex-shrink: 0; }
.bar-row > strong { width: 24px; text-align: right; flex-shrink: 0; color: var(--tx-2); }
.bar-track { flex: 1; height: 6px; background: var(--border); border-radius: var(--r-full); overflow: hidden; }
.bar-fill  { height: 100%; background: var(--primary); border-radius: var(--r-full); transition: width var(--dur-slow) var(--ease); }

/* ══════════════════════════════════════════════════════
   §24  COMPOSANTS PATIENTS
   ══════════════════════════════════════════════════════ */

/* Patient card (liste compacte) */
.patient-card {
  display: flex;
  align-items: center;
  gap: var(--s4);
  padding: var(--s4) var(--s5);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  cursor: pointer;
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast), transform var(--dur-fast);
}
.patient-card:hover { border-color: var(--primary); box-shadow: var(--sh-md); transform: translateX(2px); }
.patient-card__info { flex: 1; min-width: 0; }
.patient-card__name { font-size: var(--text-md); font-weight: var(--fw-sb); margin-bottom: 2px; }
.patient-card__condition { font-size: var(--text-sm); color: var(--tx-3); }
.patient-card__meta { display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap; }
.patient-card__next { font-size: var(--text-xs); color: var(--tx-4); }
.patient-card--urgent { border-left: 2px solid var(--error); }

/* Patient detail header */
.patient-detail-header {
  padding: var(--s6);
  border-bottom: 1px solid var(--border);
  position: static;
  background: var(--surface);
  display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s4);
}
.patient-detail-meta { display: flex; align-items: center; gap: var(--s3); margin-top: var(--s2); flex-wrap: wrap; }
.patient-detail-header h3 { font-size: 18px; font-weight: var(--fw-b); }
.patient-follow-up-header {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}
.patient-follow-up-picker { display: grid; gap: 5px; min-width: min(100%, 292px); }
.patient-follow-up-label { color: var(--tx-4); font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.patient-follow-up-menu { position: relative; width: min(340px, 70vw); }
.patient-follow-up-trigger {
  width: min(340px, 70vw);
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 10px 7px 11px;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: var(--surface-2);
  color: var(--tx-2);
  text-align: left;
  font: 750 12px/1 var(--font);
  box-shadow: 0 1px 0 rgba(24, 35, 75, .03);
  cursor: pointer;
}
.patient-follow-up-trigger:focus-visible { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(var(--primary-rgb), .12); }
.patient-follow-up-chevron { color: var(--primary); font-size: 17px; line-height: .7; transition: transform var(--dur-fast); }
.patient-follow-up-trigger[aria-expanded="true"] .patient-follow-up-chevron { transform: rotate(180deg); }
.patient-follow-up-options {
  position: absolute;
  z-index: 20;
  top: calc(100% + 6px);
  left: 0;
  width: 100%;
  overflow: hidden;
  padding: 5px;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: 0 12px 28px rgba(24, 35, 75, .14);
}
.patient-follow-up-options.hidden { display: none; }
.patient-follow-up-option-group {
  display: grid;
  gap: 3px;
  padding: 2px 0 5px;
}
.patient-follow-up-option-group + .patient-follow-up-option-group {
  margin-top: 4px;
  padding-top: 7px;
  border-top: 1px solid var(--border);
}
.patient-follow-up-option-group > p {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
  padding: 4px 8px 3px;
  color: var(--tx-4);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.patient-follow-up-option-group > p span {
  display: grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--tx-3);
  font-size: 9px;
  letter-spacing: 0;
}
.patient-follow-up-option-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 4px;
}
.patient-follow-up-option-row.is-closed { opacity: .78; }
.patient-follow-up-option {
  width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 34px;
  padding: 8px 9px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--tx-2);
  text-align: left;
  font: 700 12px/1.25 var(--font);
  cursor: pointer;
}
.patient-follow-up-option > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.patient-follow-up-option:hover, .patient-follow-up-option.is-active { background: rgba(var(--primary-rgb), .09); color: var(--primary); }
.patient-follow-up-option small { color: var(--tx-4); font-size: 10px; font-weight: 700; }
.patient-follow-up-status-action {
  min-height: 30px;
  padding: 0 8px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--tx-4);
  font: 750 10px/1 var(--font);
  cursor: pointer;
}
.patient-follow-up-status-action:hover,
.patient-follow-up-status-action:focus-visible {
  border-color: rgba(var(--primary-rgb), .2);
  background: rgba(var(--primary-rgb), .07);
  color: var(--primary);
  outline: none;
}
.patient-follow-up-option-row.is-closed .patient-follow-up-status-action { color: var(--primary); }
.patient-follow-up-add {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 12px 0 9px;
  border: 1px solid rgba(var(--primary-rgb), .22);
  border-radius: 11px;
  background: rgba(var(--primary-rgb), .07);
  color: var(--primary);
  font: 800 12px/1 var(--font);
  cursor: pointer;
  transition: background var(--dur-fast), border-color var(--dur-fast), transform var(--dur-fast);
}
.patient-follow-up-add > span {
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  line-height: 1;
}
.patient-follow-up-add:hover { background: rgba(var(--primary-rgb), .13); border-color: rgba(var(--primary-rgb), .35); transform: translateY(-1px); }
.patient-follow-up-add:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .2); outline-offset: 2px; }
.patient-follow-up-header small { flex-basis: 100%; color: var(--tx-4); font-size: 10px; line-height: 1.35; }
.patient-follow-up-create {
  width: min(100%, 520px);
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 8px;
}
.patient-follow-up-create .patient-follow-up-picker { flex: 1 1 280px; }
.patient-follow-up-create input {
  width: 100%;
  min-height: 38px;
  padding: 7px 11px;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: var(--surface-2);
  color: var(--tx-2);
  font: 750 12px/1 var(--font);
  box-shadow: 0 1px 0 rgba(24, 35, 75, .03);
}
.patient-follow-up-create input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(var(--primary-rgb), .12); }
.patient-follow-up-create-actions { display: flex; align-items: center; gap: 6px; min-height: 38px; }
.patient-follow-up-confirm, .patient-follow-up-cancel {
  min-height: 38px;
  border-radius: 11px;
  padding: 0 11px;
  font: 800 12px/1 var(--font);
  cursor: pointer;
}
.patient-follow-up-confirm { border: 1px solid var(--primary); background: var(--primary); color: #fff; }
.patient-follow-up-cancel { border: 1px solid transparent; background: transparent; color: var(--tx-3); }
@media (max-width: 560px) {
  .patient-follow-up-header { align-items: stretch; }
  .patient-follow-up-picker { width: 100%; }
  .patient-follow-up-menu, .patient-follow-up-trigger { width: 100%; max-width: none; }
  .patient-follow-up-create { width: 100%; }
  .patient-follow-up-create-actions { width: 100%; }
  .patient-follow-up-confirm { flex: 1; }
  .patient-follow-up-add { align-self: flex-start; }
}

/* Patient metrics header */
.patient-metrics-header { padding: var(--s5) var(--s6); }
.patient-metrics-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s4); }
.patient-metric-card {
  background: var(--surface-2); border: 1px solid var(--border);
  border-radius: var(--r-xl); padding: var(--s4) var(--s5);
}
.patient-metric-card p { font-size: 10px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .06em; color: var(--tx-4); margin-bottom: var(--s2); }
.metric-score-display { display: flex; align-items: baseline; gap: 4px; }
.metric-score-value { font-size: 28px; font-weight: var(--fw-eb); color: var(--tx); }
.metric-score-unit  { font-size: 14px; color: var(--tx-3); }
.metric-status-label{ font-size: 12px; color: var(--tx-3); margin-top: 4px; }
.metric-score-row { display: grid; grid-template-columns: auto minmax(5rem, 1fr); align-items: center; gap: var(--s3); }
.metric-progress-track { width: 100%; height: 9px; overflow: hidden; border-radius: var(--r-full); background: rgba(255,255,255,.72); box-shadow: inset 0 0 0 1px rgba(15,23,42,.08); }
.metric-progress-fill { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--primary), var(--clr-ok-500)); transition: width var(--dur-slow) var(--ease); }
.recent-session-form { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); margin-top: var(--s3); padding-top: var(--s3); border-top: 1px solid var(--border); }
.recent-session-form-label { color: var(--tx-4); font-size: 10px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .05em; }
.recent-session-form-dots { display: flex; gap: 7px; }
.session-form-dot { display: inline-flex; flex: 0 0 25px; align-items: center; justify-content: center; width: 25px; min-width: 25px; height: 25px; aspect-ratio: 1; border-radius: 999px; color: #fff; font-size: 14px; font-weight: var(--fw-eb); box-shadow: 0 1px 2px rgba(15,23,42,.14); }
.session-form-positive { background: var(--clr-ok-500); }
.session-form-stable { background: var(--clr-in-500); }
.session-form-attention { background: var(--clr-wa-500); }
.session-form-unknown { background: var(--clr-g-400); }
.session-form-empty { color: var(--tx-4); font-size: var(--text-xs); }
.session-form-legend { display: flex; justify-content: flex-end; gap: var(--s3); margin-top: 7px; color: var(--tx-4); font-size: 9px; }
.progression-status-good     { background: var(--clr-ok-50) !important; border-color: var(--clr-ok-200) !important; }
.progression-status-neutral  { background: var(--clr-in-50) !important; border-color: var(--clr-in-200) !important; }
.progression-status-warning  { background: var(--clr-wa-50) !important; border-color: var(--clr-wa-200) !important; }
.progression-status-danger   { background: var(--clr-er-50) !important; border-color: var(--clr-er-200) !important; }
.progression-status-critical { background: var(--clr-er-50) !important; border-color: var(--clr-er-200) !important; }

/* Next session card */
#detailNextSessionCard {
  background: var(--primary-bg); border: 1px solid rgba(var(--primary-rgb), .2);
  border-radius: var(--r-xl); padding: var(--s4) var(--s5); margin-bottom: var(--s4);
  cursor: pointer; transition: box-shadow var(--dur-fast);
}
#detailNextSessionCard:hover { box-shadow: var(--sh-md); }
#detailNextSession { font-weight: var(--fw-sb); font-size: 14px; color: var(--primary); }
#detailNextSessionMeta { font-size: 12px; color: var(--tx-3); margin-top: 2px; }

/* Identity popover */
.detail-identity-popover {
}
.detail-identity-popover p { margin: 0; }
.detail-identity-popover strong { color: var(--tx-3); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }

/* Patient home (mode patient) */
.patient-home-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--s5); }
.patient-home-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-2xl); padding: var(--s6); box-shadow: var(--sh-xs); }
.patient-home-header { margin-bottom: var(--s6); }
.patient-home-header h1 { font-size: 22px; font-weight: var(--fw-b); }
.patient-sessions-list, .patient-history-list { display: flex; flex-direction: column; gap: var(--s3); margin-top: var(--s4); }
.patient-questionnaire-section { margin-top: var(--s4); }

/* Session items */
.session-list { display: flex; flex-direction: column; gap: var(--s3); }
.session-group { display: flex; flex-direction: column; gap: var(--s3); }
.session-item {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-xl); padding: var(--s5);
  transition: border-color var(--dur-fast);
}
.session-item:hover { border-color: var(--border-s); }
.session-item.session-item-next-highlight { border-color: var(--primary); background: var(--primary-bg); }
.session-item.session-item-done { opacity: .75; background: var(--surface-2); }
.session-item.session-item-today { padding: var(--s6); border-width: 2px; opacity: 1; }
.session-item.session-item-priority-future { border-color: rgba(var(--primary-rgb), .42); background: linear-gradient(145deg, var(--surface), var(--primary-bg)); }
.session-priority-heading { display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap; }
.session-priority-heading > strong { color: var(--tx); font-size: 16px; line-height: 1.35; }
.session-priority-badge { padding: 4px 9px; border-radius: var(--r-full); background: var(--primary); color: #fff; font-size: 11px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .05em; }
.session-priority-future-note { margin: var(--s3) 0; padding: var(--s3); border-radius: var(--r-lg); background: var(--surface); color: var(--tx-3); font-size: 13px; line-height: 1.55; }
.session-item.session-item-compact { padding: var(--s4) var(--s5); opacity: 1; }
.session-compact-header { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.session-item > .session-compact-header { scroll-margin-top: 210px; }
.session-compact-header > div { display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap; }
.session-compact-header > div > strong { color: var(--tx); font-size: 15px; line-height: 1.35; }
.session-item-done .session-completed-header-meta { min-width: 0; }
.session-item-done .session-done-badge { margin-left: 0; }
.session-completed-archive-header {
  position: relative;
  display: grid;
  gap: 10px;
  min-width: 0;
}
.session-completed-archive-header .session-compact-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34px;
  align-items: center;
  column-gap: 12px;
}
.session-completed-archive-header .session-completed-header-meta {
  display: flex;
  min-width: 0;
  min-height: 34px;
  align-items: center;
  gap: 6px 9px;
}
.session-completed-archive-header .session-completed-header-meta .session-origin-badge {
  display: inline-flex;
  min-height: 22px;
  box-sizing: border-box;
  align-items: center;
  margin-top: 0;
  padding-block: 3px;
  line-height: 1;
}
.session-completed-archive-header .session-header-actions {
  position: relative;
  width: 34px;
}
.session-completed-archive-date {
  line-height: 1.2;
  white-space: nowrap;
}
.session-completed-archive-date > time { display: none; }
.session-practitioner-attribution.is-compact {
  min-height: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--tx-3);
  font-size: 11px;
  line-height: 1.2;
}
.session-completed-primary-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(76px, auto);
  min-width: 0;
  align-items: center;
  column-gap: 12px;
}
.session-completed-primary-copy { display: grid; min-width: 0; gap: 4px; }
.session-completed-primary-kicker {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
}
.session-completed-primary-kicker > span {
  color: var(--primary);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .065em;
  line-height: 1.15;
  text-transform: uppercase;
}
.session-completed-primary-heading {
  display: block;
  min-width: 0;
}
.session-completed-primary-heading > h3 {
  min-width: 0;
  margin: 0;
  color: var(--tx);
  font-size: clamp(16px, 1.7vw, 20px);
  font-weight: 880;
  letter-spacing: -.02em;
  line-height: 1.22;
}
.session-completed-primary-copy .session-work-track-title {
  margin: 12px 0 0;
  padding: 0;
  border-bottom: 0;
}
.session-completed-archive-header .session-completed-primary-copy .session-work-track-title,
.session-completed-archive-header .session-completed-activity-title,
.session-completed-archive-header .session-completed-primary-row > .session-completed-score {
  margin-top: 0;
}
.session-completed-archive-header .session-completed-primary-row > .session-completed-score { justify-self: end; }
.session-completed-context.session-completed-context-inline {
  position: static;
  flex: 0 0 auto;
  margin: 0;
  border: 0;
}
.session-completed-context.session-completed-context-inline > summary {
  display: grid;
  width: 22px;
  height: 22px;
  min-height: 22px;
  box-sizing: border-box;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 50%;
  background: rgba(var(--primary-rgb), .035);
  color: var(--tx-3);
  cursor: pointer;
  list-style: none;
  font-size: 11px;
  font-weight: var(--fw-b);
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.session-completed-context.session-completed-context-inline > summary::-webkit-details-marker { display: none; }
.session-completed-context.session-completed-context-inline > summary::before {
  display: grid;
  width: 20px;
  height: 20px;
  box-sizing: border-box;
  place-items: center;
  padding-bottom: 1px;
  color: var(--primary);
  content: 'i';
  font: 850 10px/1 var(--font);
  text-align: center;
}
.session-completed-context.session-completed-context-inline > summary:hover,
.session-completed-context.session-completed-context-inline > summary:focus-visible,
.session-completed-context.session-completed-context-inline[open] > summary {
  border-color: rgba(var(--primary-rgb), .24);
  outline: none;
  background: rgba(var(--primary-rgb), .075);
  color: var(--primary-dk);
}
.session-completed-context.session-completed-context-inline > summary:focus-visible { box-shadow: 0 0 0 3px rgba(var(--primary-rgb), .13); }
.session-completed-context-inline > .session-completed-context-body {
  position: absolute;
  z-index: 40;
  top: calc(100% + 7px);
  right: 0;
  display: grid;
  width: min(680px, calc(100vw - 48px));
  max-height: min(68vh, 520px);
  box-sizing: border-box;
  gap: 10px;
  padding: 13px;
  overflow: auto;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 15px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 16px 42px rgba(35, 40, 78, .14);
}
.session-completed-context-inline .session-care-chain { margin-top: 3px; }
.session-completed-activity-title {
  margin: 11px 0 0;
  color: var(--tx);
  font-size: 15px;
  font-weight: var(--fw-b);
  line-height: 1.4;
}
.session-completed-primary-copy .session-work-track-title + .session-completed-activity-title {
  margin-top: 1px;
  color: var(--tx-3);
  font-size: 12px;
  font-weight: var(--fw-sb);
}
.session-completed-primary-row > .session-completed-score { align-self: center; margin-top: 10px; }
.session-completed-summary, .session-future-summary { margin: var(--s3) 0; color: var(--tx-2); font-size: 14px; line-height: 1.55; }
.session-completed-score {
  display: inline-grid;
  min-width: 76px;
  min-height: 50px;
  padding: 7px 12px;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: 13px;
  background: rgba(255,255,255,.88);
  color: var(--tx);
  font: inherit;
  align-content: center;
  gap: 3px;
  white-space: nowrap;
}
button.session-completed-score { cursor: pointer; transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; box-shadow: 0 4px 12px rgba(35,40,78,.06); }
button.session-completed-score:hover { border-color: rgba(var(--primary-rgb), .32); box-shadow: 0 7px 16px rgba(35,40,78,.09); transform: translateY(-1px); }
button.session-completed-score:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .15); outline-offset: 2px; }
.session-completed-score small { color: var(--tx-3); font-size: 8px; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.session-completed-score strong { color: var(--primary); font-size: 19px; font-weight: 900; letter-spacing: -.04em; line-height: 1; }
.session-completed-score-missing { border-color: rgba(67,75,104,.08); background: rgba(255,255,255,.58); }
.session-completed-score-missing strong { color: var(--tx-4); }
.session-completed-score-available,
.session-completed-score-good,
.session-completed-score-warning,
.session-completed-score-danger,
.session-completed-score-attention { background: rgba(255,255,255,.88); }
.session-completed-score-missing { box-shadow: none; }
.quiet-completion-indicator {
  display: inline-grid;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  box-sizing: border-box;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 50%;
  background: rgba(var(--primary-rgb), .055);
  color: var(--primary);
  font: 850 10px/1 var(--font);
}
button.quiet-completion-indicator { cursor: pointer; }
button.quiet-completion-indicator:hover { border-color: rgba(var(--primary-rgb), .3); background: rgba(var(--primary-rgb), .1); }
button.quiet-completion-indicator:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .16); outline-offset: 2px; }
.session-completed-primary-row > .quiet-completion-indicator { align-self: center; margin-top: 10px; }
.session-score-analysis .post-session-score-components { margin: 4px 0 0; padding-top: 10px; border-top: 1px solid rgba(var(--primary-rgb), .1); }
.session-score-analysis .post-session-score-component { gap: 4px; }
.session-compact-metadata { display: flex; flex-wrap: wrap; gap: var(--s2); color: var(--tx-3); font-size: 12px; line-height: 1.35; }
.session-compact-metadata span { padding: 5px 9px; border-radius: var(--r-full); background: var(--surface); border: 1px solid var(--border); }
.session-future-badge { display: inline-block; padding: 3px 8px; border-radius: var(--r-full); background: var(--clr-in-50); color: var(--clr-in-700); font-size: 11px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .04em; }
.session-completed-correction, .session-future-preparation { margin-top: var(--s3); border-top: 1px solid var(--border); }
.session-completed-correction > summary, .session-future-preparation > summary { padding-top: var(--s3); color: var(--primary-dk); cursor: pointer; font-size: 13px; font-weight: var(--fw-b); }
.session-completed-correction-body, .session-future-preparation-body { display: flex; flex-direction: column; gap: var(--s3); padding-top: var(--s3); }
.session-future-preparation:not([open]) > .session-future-preparation-body { display: none; }
.session-care-chain { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: calc(100% - 26px); min-width: 0; max-width: 100%; box-sizing: border-box; margin: 10px 13px 2px; padding: 0; list-style: none; }
.session-care-chain li { position: relative; display: grid; justify-items: center; gap: 5px; min-width: 0; color: var(--tx-4); text-align: center; }
.session-care-chain li:not(:last-child)::after { position: absolute; z-index: 0; top: 10px; left: calc(50% + 12px); width: calc(100% - 24px); height: 2px; border-radius: 2px; background: rgba(var(--primary-rgb), .1); content: ''; }
.session-care-chain li.is-done:not(:last-child)::after { background: rgba(var(--primary-rgb), .3); }
.session-care-chain li > span { position: relative; z-index: 1; display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid rgba(var(--primary-rgb), .14); border-radius: 50%; background: #fff; color: var(--tx-4); font-size: 10px; font-weight: 850; }
.session-care-chain li.is-done > span { border-color: rgba(var(--primary-rgb), .22); background: var(--primary); color: #fff; }
.session-care-chain li.is-current > span { border-color: rgba(var(--primary-rgb), .38); box-shadow: 0 0 0 4px rgba(var(--primary-rgb), .08); color: var(--primary); }
.session-care-chain li > strong { max-width: 100%; font-size: 9px; font-weight: 800; line-height: 1.25; overflow-wrap: anywhere; }
.session-care-chain li.is-done > strong, .session-care-chain li.is-current > strong { color: var(--tx-2); }
.session-clinical-return {
  margin-top: var(--s3);
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 15px;
  background: linear-gradient(135deg, rgba(240, 242, 255, .82), rgba(255, 255, 255, .9));
}
.session-clinical-return > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s3);
  min-height: 58px;
  padding: 11px 13px;
  cursor: pointer;
  list-style: none;
}
.session-clinical-return > summary::-webkit-details-marker { display: none; }
.session-clinical-return > summary > span { display: grid; gap: 3px; }
.session-clinical-return > summary small { color: var(--tx-3); font-size: 10px; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.session-clinical-return > summary strong { color: var(--tx); font-size: 14px; }
.session-clinical-return > summary em { color: var(--primary); font-size: 11px; font-style: normal; font-weight: 800; }
.session-clinical-return > summary em::after { content: '⌄'; display: inline-block; margin-left: 6px; transition: transform .18s ease; }
.session-clinical-return[open] > summary em::after { transform: rotate(180deg); }
.session-clinical-return-header {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: var(--s3);
  padding: 11px 13px;
}
.session-clinical-return-header > span { display: grid; gap: 3px; }
.session-clinical-return-header small { color: var(--tx-3); font-size: 10px; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.session-clinical-return-header strong { color: var(--tx); font-size: 17px; letter-spacing: -.015em; }
.session-clinical-return-body { display: grid; gap: 11px; padding: 0 13px 13px; border-top: 1px solid rgba(var(--primary-rgb), .1); }
.session-clinical-return-body > dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin: 11px 0 0; }
.session-clinical-return-body > dl > div { display: grid; gap: 2px; padding: 8px 9px; border-radius: 10px; background: rgba(255, 255, 255, .72); }
.session-clinical-return-body dt { color: var(--tx-4); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.session-clinical-return-body dd { margin: 0; color: var(--tx-2); font-size: 11px; font-weight: 750; line-height: 1.35; }
.session-clinical-return-body > p { margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.45; }
.session-clinical-return-body > label { display: grid; gap: 5px; color: var(--tx-2); font-size: 11px; font-weight: 800; }
.session-clinical-return-body textarea { min-height: 52px; padding: 8px 9px; border: 1px solid rgba(var(--primary-rgb), .14); border-radius: 10px; background: rgba(255, 255, 255, .82); color: var(--tx-2); font: inherit; font-size: 12px; font-weight: 600; line-height: 1.4; resize: vertical; }
.session-clinical-return-body textarea:focus { border-color: rgba(var(--primary-rgb), .38); outline: 3px solid rgba(var(--primary-rgb), .09); }
.session-clinical-return-body > .session-inline-link { justify-self: start; }
.session-return-review-action { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 11px; border-radius: 12px; background: rgba(var(--primary-rgb), .07); }
.session-return-review-action p, .session-return-review-status { margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.4; }
.session-return-review-action .primary-btn { flex: 0 0 auto; min-height: 34px; padding: 7px 11px; font-size: 11px; }
.session-return-review-status.is-reviewed { padding-left: 18px; color: var(--primary-dk); font-weight: 750; }
.session-return-review-status.is-reviewed::before { margin-left: -18px; margin-right: 6px; content: '✓'; }
.session-global-feedback-note { padding: 8px 10px; border-radius: 10px; background: rgba(255,255,255,.58); }
.session-clinician-reading-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 7px; }
.session-clinician-reading-summary > div { display: grid; gap: 4px; padding: 9px 10px; border: 1px solid rgba(var(--primary-rgb), .1); border-radius: 10px; background: rgba(255,255,255,.68); }
.session-clinician-reading-summary span { color: var(--tx-4); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.session-clinician-reading-summary strong { color: var(--tx-2); font-size: 11px; line-height: 1.4; }
.session-practitioner-attribution { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 8px; border-radius: 999px; background: rgba(var(--primary-rgb), .08); color: var(--tx-3); font-size: 10px; font-weight: 750; line-height: 1.2; }
.session-contribution-attribution { color: var(--tx-4); font-size: 9px; font-weight: 700; line-height: 1.35; }
.session-collaborator-observations { display: grid; gap: 10px; padding: 12px 0 2px; border-top: 1px solid rgba(var(--primary-rgb), .1); }
.session-collaborator-observations > header { display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.session-collaborator-observations > header > div { display: grid; gap: 2px; }
.session-collaborator-observations > header span { color: var(--tx-4); font-size: 9px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.session-collaborator-observations > header h5 { margin: 0; color: var(--tx-1); font-size: 13px; }
.session-collaborator-observations > header > small { color: var(--tx-4); font-size: 9px; }
.session-collaborator-observation-list { display: grid; gap: 7px; }
.session-collaborator-observation { display: grid; gap: 5px; padding: 9px 10px; border-left: 3px solid rgba(var(--primary-rgb), .34); background: linear-gradient(90deg, rgba(var(--primary-rgb), .06), transparent 82%); border-radius: 0 9px 9px 0; }
.session-collaborator-observation p { margin: 0; color: var(--tx-2); font-size: 11px; line-height: 1.45; white-space: pre-line; }
.session-collaborator-observation-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 7px; }
.session-collaborator-observation-form label { grid-column: 1 / -1; color: var(--tx-3); font-size: 10px; font-weight: 800; }
.session-collaborator-observation-form textarea { min-height: 56px; resize: vertical; }
.session-collaborator-readonly-note { display: flex; align-items: baseline; gap: 8px; margin: 0 0 10px; padding: 8px 10px; border-radius: 10px; background: rgba(var(--primary-rgb), .065); color: var(--tx-3); font-size: 10px; line-height: 1.4; }
.session-collaborator-readonly-note strong { color: var(--brand); white-space: nowrap; }
.session-item-collaborator-readonly :disabled { cursor: default; }
.session-patient-return-summary { overflow: hidden; border: 1px solid rgba(var(--primary-rgb), .11); border-radius: 11px; background: rgba(255,255,255,.72); }
.session-patient-return-summary > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 10px; border-bottom: 1px solid rgba(var(--primary-rgb), .09); }
.session-patient-return-summary > header span { color: var(--tx-4); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.session-patient-return-summary > header strong { color: var(--tx-2); font-size: 11px; }
.session-patient-return-summary > div { padding: 10px; color: var(--tx-3); font-size: 11px; }
.session-patient-return-summary > div > p { margin: 4px 0; }
.session-early-stop-alert { grid-column: 1 / -1; margin-top: 11px; padding: 10px 11px; border: 1px solid rgba(182,95,80,.22); border-radius: 11px; background: rgba(182,95,80,.09); }
.session-early-stop-alert strong { color: #91483d; font-size: 12px; }
.session-early-stop-alert p { margin: 3px 0 0; color: var(--tx-2); font-size: 11px; line-height: 1.4; }
.session-completed-correction.hidden { display: none !important; }
.session-completed-correction:not(.hidden) { padding-top: var(--s3); }
.session-completed-notes { display: grid; gap: var(--s2); color: var(--tx-3); font-size: 11px; font-weight: var(--fw-sb); }
.session-completed-global-edit { display: grid; gap: 10px; margin: 0; padding: 12px; border: 1px solid rgba(var(--primary-rgb), .14); border-radius: 13px; background: rgba(247,248,255,.72); }
.session-completed-global-edit legend { padding: 0 5px; color: var(--primary-dk); font-size: 11px; font-weight: 800; }
.session-completed-global-edit > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.session-completed-global-edit > div + div { grid-template-columns: minmax(180px,.7fr) minmax(240px,1.3fr); }
.session-completed-global-edit label { display: grid; gap: 5px; color: var(--tx-3); font-size: 10px; font-weight: 750; }
.session-completed-global-edit input,
.session-completed-global-edit select { min-height: 40px; width: 100%; padding: 8px 10px; border: 1px solid rgba(var(--primary-rgb), .16); border-radius: 10px; background: #fff; color: var(--tx); font: inherit; font-size: 12px; }
@media (max-width: 560px) {
  .session-care-chain { width: calc(100% - 8px); margin-inline: 4px; }
  .session-care-chain li > strong { font-size: 8px; }
  .session-return-review-action { align-items: stretch; flex-direction: column; }
  .session-return-review-action .primary-btn { width: 100%; }
  .session-clinical-return-body > dl,
  .session-clinician-reading-summary { grid-template-columns: 1fr; }
  .session-collaborator-observations > header { align-items: start; flex-direction: column; gap: 3px; }
  .session-collaborator-observation-form { grid-template-columns: 1fr; }
  .session-collaborator-observation-form label { grid-column: auto; }
  .session-collaborator-readonly-note { align-items: start; flex-direction: column; gap: 2px; }
  .session-clinical-return-header { align-items: flex-start; }
  .session-completed-global-edit > div,
  .session-completed-global-edit > div + div { grid-template-columns: 1fr; }
}
.session-today-preparation { margin-bottom: var(--s4); padding: var(--s4); border: 1px solid rgba(var(--primary-rgb), .28); border-radius: var(--r-xl); background: linear-gradient(145deg, var(--surface), var(--primary-bg)); }
.session-today-preparation .session-preparation-highlights { margin-bottom: var(--s3); }
.session-today-orientation {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 7px;
  padding-top: var(--s4);
  border-top: 1px solid rgba(23,27,36,.08);
  color: var(--tx-2);
  font-size: 12px;
  font-weight: var(--fw-b);
}
.session-today-orientation select,
.session-day-form select {
  appearance: none;
  -webkit-appearance: none;
  min-height: 42px;
  padding: 9px 38px 9px 13px;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 11px;
  background-color: rgba(255,255,255,.94);
  background-image:
    linear-gradient(45deg, transparent 50%, var(--tx-3) 50%),
    linear-gradient(135deg, var(--tx-3) 50%, transparent 50%);
  background-position:
    calc(100% - 17px) 18px,
    calc(100% - 12px) 18px;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  color: var(--tx);
  font-size: 12px;
  font-weight: var(--fw-b);
  line-height: 1.25;
  box-shadow: 0 1px 2px rgba(17,24,39,.035);
}
.session-today-orientation select:hover,
.session-day-form select:hover {
  border-color: rgba(var(--primary-rgb), .32);
  background-color: #fff;
}
.session-today-orientation select:focus,
.session-day-form select:focus {
  border-color: rgba(var(--primary-rgb), .42);
  box-shadow: 0 0 0 3px rgba(var(--primary-rgb), .1);
}
.session-preparation-saved { margin-top: var(--s2); color: var(--tx-4); font-size: 10px; }
.session-done-badge { display: inline-block; background: var(--clr-ok-50); color: var(--clr-ok-700); font-size: 11px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .04em; padding: 3px 8px; border-radius: var(--r-full); margin-left: var(--s2); }
.session-item-active { border-color: var(--primary) !important; }
.session-guidance-augmentation { border-left: 2px solid var(--success); }
.session-guidance-maintien     { border-left: 2px solid var(--info); }
.session-guidance-repos        { border-left: 2px solid var(--warning); }
.session-guidance-medecin      { border-left: 2px solid var(--error); }
.session-actions-inline { display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap; margin-top: var(--s4); padding-top: var(--s4); border-top: 1px solid var(--border); }
.session-panel-header { display: flex; align-items: center; gap: var(--s4); margin-bottom: var(--s5); flex-wrap: wrap; }
.session-add-button {
  border-color: var(--syn-blue-500, #4c7dff) !important;
  background: var(--syn-blue-500, #4c7dff) !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(76,125,255,.22);
}
.session-add-button:hover {
  border-color: #3f6fe8 !important;
  background: #3f6fe8 !important;
  box-shadow: 0 10px 24px rgba(76,125,255,.3);
}
.session-search-box { display: flex; align-items: center; gap: var(--s2); }
.session-search-input { border: 1px solid var(--border); border-radius: var(--r-full); padding: 6px 14px; font-size: 12px; background: var(--surface-2); outline: none; width: 220px; transition: border-color var(--dur-fast); font-family: var(--font); }
.session-search-input:focus { border-color: var(--primary); }
.session-search-hint { font-size: 11px; color: var(--tx-4); }
.session-history-section { }
.session-history-header { display: flex; align-items: center; justify-content: space-between; padding: var(--s3) 0; margin-bottom: var(--s3); }
.session-history-header h4 { font-size: 12px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .06em; color: var(--tx-4); }
.session-history-frame { display: flex; flex-direction: column; gap: var(--s3); }
.session-validation-blocked { animation: shakeBlock .35s ease; border-color: var(--error) !important; }
.session-validation-hint { font-size: 11px; color: var(--error); font-weight: var(--fw-sb); margin-top: var(--s2); }
.session-origin-badge { display: inline-block; background: var(--clr-vi-50); color: var(--clr-vi-700); font-size: 10px; font-weight: var(--fw-b); padding: 2px 8px; border-radius: var(--r-full); margin-top: var(--s2); }
.session-day-form {
  display: grid;
  grid-template-columns: auto minmax(170px, 220px);
  align-items: center;
  gap: var(--s3);
  width: fit-content;
  margin: var(--s4) 0;
  padding: 8px 9px 8px 13px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 13px;
  background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(238,240,251,.68));
  color: var(--tx-2);
}
.session-day-form-label {
  flex-shrink: 0;
  color: var(--primary-dk);
  font-size: 10px;
  font-weight: var(--fw-b);
  letter-spacing: .065em;
  text-transform: uppercase;
}
.session-day-form select { width: 100%; max-width: none; }
.session-day-form select:disabled { opacity: .72; cursor: not-allowed; background: var(--surface-2); color: var(--tx-2); }
.session-day-form-lock { font-size: 10px; color: var(--tx-4); font-weight: var(--fw-sb); }
.session-kine-feedback { border-top: 1px solid var(--border); margin-top: var(--s4); padding-top: var(--s4); }
.session-dependency-summary, .session-exercise-summary, .session-feedback-summary {
  display: flex; align-items: center; gap: var(--s2); padding: var(--s2) 0;
  font-size: 12px; font-weight: var(--fw-sb); color: var(--tx-2);
}
.session-field-label { color: var(--tx-2); font-size: 12px; font-weight: var(--fw-b); letter-spacing: 0; text-transform: none; }
.session-summary-block { margin-top: var(--s4); display: flex; flex-direction: column; gap: var(--s2); }
.session-intercurrent-issue { margin: var(--s4) 0; overflow: hidden; border: 1px solid rgba(var(--primary-rgb), .18); border-radius: var(--r-xl); background: rgba(255,255,255,.82); }
.session-intercurrent-issue > summary { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); padding: 12px 14px; color: var(--primary-dk); cursor: pointer; list-style: none; font-size: 12px; font-weight: var(--fw-b); }
.session-intercurrent-issue > summary::-webkit-details-marker { display: none; }
.session-intercurrent-issue[open] > summary { border-bottom: 1px solid var(--border); background: var(--primary-bg); }
.intercurrent-status { flex-shrink: 0; padding: 4px 8px; border-radius: var(--r-full); font-size: 9px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .04em; }
.intercurrent-status-verify { background: var(--primary-bg); color: var(--primary-dk); }
.intercurrent-status-reviewed { background: var(--clr-ok-50); color: var(--clr-ok-700); }
.intercurrent-status-medical-review { background: var(--clr-er-50); color: var(--clr-er-700); }
.intercurrent-compact-summary { margin: 0; padding: 0 14px 13px; color: var(--tx-3); font-size: 11px; line-height: 1.5; }
.intercurrent-issue-form { display: grid; gap: var(--s4); padding: var(--s4); }
.intercurrent-issue-form label { color: var(--tx-2); font-size: 11px; font-weight: var(--fw-sb); }
.intercurrent-issue-form textarea, .intercurrent-issue-form select { margin-top: 6px; border-color: rgba(23,27,36,.1); border-radius: 11px; background: var(--surface); color: var(--tx); font-size: 12px; line-height: 1.5; }
.intercurrent-safety-check { display: grid; gap: var(--s3); padding: var(--s3); border: 1px solid var(--border); border-radius: var(--r-lg); }
.intercurrent-safety-check legend { padding: 0 5px; color: var(--tx); font-size: 11px; font-weight: var(--fw-b); }
.intercurrent-review-check, .intercurrent-alert-list label { display: flex; align-items: flex-start; gap: 8px; font-weight: var(--fw-m); line-height: 1.4; }
.intercurrent-review-check input, .intercurrent-alert-list input { width: 15px; height: 15px; flex-shrink: 0; margin-top: 1px; accent-color: var(--primary); }
.intercurrent-alert-list { display: grid; gap: 8px; padding-top: var(--s3); border-top: 1px solid var(--border); }
.intercurrent-alert-group { display: grid; gap: 8px; }
.intercurrent-change-type { display: grid; gap: var(--s2); padding: 0; border: 0; }
.intercurrent-change-type legend { margin-bottom: var(--s2); color: var(--tx-2); font-size: 11px; font-weight: var(--fw-b); }
.intercurrent-change-type > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--s2); }
.intercurrent-change-type label { display: flex; align-items: flex-start; gap: 7px; min-width: 0; padding: 9px; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--surface); font-size: 10px; line-height: 1.35; cursor: pointer; }
.intercurrent-change-type input { flex-shrink: 0; margin-top: 1px; accent-color: var(--primary); }
.intercurrent-neurology-grid { display: grid; grid-template-columns: minmax(180px,.7fr) minmax(260px,1.3fr); gap: var(--s3); }
.intercurrent-issue-actions { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.intercurrent-issue-actions small { color: var(--tx-4); font-size: 9px; line-height: 1.45; }
.clinical-decision-tree { display: grid; gap: var(--s3); padding: var(--s4); border: 1px solid rgba(var(--primary-rgb), .2); border-radius: var(--r-lg); background: linear-gradient(145deg, rgba(255,255,255,.95), rgba(238,240,255,.72)); }
body.clinical-tree-focus-open { overflow: hidden; }
.clinical-decision-tree.is-focus-mode { position: fixed; inset: 0; z-index: 10000; align-content: start; overflow: auto; padding: clamp(18px, 3vw, 46px); border: 0; border-radius: 0; background: linear-gradient(145deg, #fffdf9, #eef0ff); }
.clinical-decision-tree.is-focus-mode > :not(.clinical-tree-step-page):not(.clinical-tree-tests):not(.clinical-tree-decision) { display: none; }
.clinical-decision-tree.is-focus-mode .clinical-tree-step-page { min-height: min(54vh, 560px); align-content: center; padding: clamp(24px, 4vw, 54px); }
.clinical-decision-tree.is-focus-mode .clinical-tree-map-node.is-current { width: min(380px, 78vw); }
.clinical-decision-tree.is-focus-mode .clinical-tree-map-viewport { padding-block: 18px; }
.initial-assessment-clinical-tree { display: grid; gap: var(--s3); margin-bottom: var(--s4); }
.assessment-clinical-source { display: grid; gap: var(--s3); padding: var(--s4); border: 1px solid rgba(242, 139, 60, .28); border-radius: var(--r-lg); background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(255,244,232,.88)); }
.assessment-clinical-source.is-validated { border-color: rgba(46, 142, 101, .28); background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(234,249,241,.8)); }
.assessment-clinical-source > header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); }
.assessment-clinical-source > header div { display: grid; gap: 3px; }
.assessment-clinical-source > header span, .assessment-clinical-source > header small, .assessment-clinical-source-grid span { color: var(--tx-3); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.assessment-clinical-source > header strong { font-size: 15px; }
.assessment-clinical-source-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s2); }
.assessment-clinical-source-grid > div { display: grid; gap: 4px; min-width: 0; padding: 10px 12px; border-radius: var(--r-sm); background: rgba(255,255,255,.72); }
.assessment-clinical-source-grid strong { white-space: pre-line; font-size: 12px; line-height: 1.45; }
.assessment-clinical-watch { margin: 0; padding: 10px 12px; border-left: 3px solid var(--warning); border-radius: 0 var(--r-sm) var(--r-sm) 0; background: rgba(242,139,60,.1); color: var(--tx-2); font-size: 12px; line-height: 1.45; }
.assessment-clinical-watch strong { display: block; color: var(--warning-strong, #a45418); }
.assessment-clinical-source-status { margin: 0; color: var(--tx-3); font-size: 11px; }
.assessment-clinical-source > .primary-btn { justify-self: start; }
.clinical-decision-tree-blocked { border-color: rgba(172,54,65,.24); background: linear-gradient(145deg, var(--surface), var(--clr-er-50)); }
.clinical-tree-header, .clinical-tree-footer { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.clinical-tree-header > div { display: grid; gap: 2px; }
.clinical-tree-header span { color: var(--primary); font-size: 9px; font-weight: var(--fw-b); letter-spacing: .06em; text-transform: uppercase; }
.clinical-tree-header strong { color: var(--tx); font-size: 14px; }
.clinical-tree-header small, .clinical-tree-footer small { color: var(--tx-4); font-size: 9px; line-height: 1.4; }
.clinical-tree-header-actions { display: flex !important; align-items: center; justify-content: flex-end; gap: 10px; }
.clinical-tree-focus-btn { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 7px 11px; border: 1px solid rgba(var(--primary-rgb), .24); border-radius: var(--r-full); background: rgba(255,255,255,.86); color: var(--primary-dk); cursor: pointer; }
.clinical-tree-focus-btn > span { font-size: 17px; line-height: 1; }
.clinical-tree-focus-btn > strong { font-size: 10px; }
.clinical-tree-focus-btn:hover, .clinical-tree-focus-btn[aria-pressed="true"] { border-color: rgba(var(--primary-rgb), .48); background: var(--primary-bg); }
.clinical-tree-step-page { display: grid; gap: clamp(14px, 2vw, 24px); padding: clamp(18px, 3vw, 34px); overflow: hidden; border: 1px solid rgba(242,139,60,.34); border-radius: var(--r-lg); background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(255,242,226,.88)); box-shadow: 0 12px 34px rgba(176,91,27,.08); }
.clinical-tree-step-page-header { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.clinical-tree-step-page-header > div { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.clinical-tree-step-page-header > .clinical-tree-step-page-actions { justify-content: flex-end; }
.clinical-tree-step-page-header > div > span { color: var(--warning-strong, #a45418); font-size: 10px; font-weight: var(--fw-b); letter-spacing: .06em; text-transform: uppercase; }
.clinical-tree-step-page-header small { padding: 4px 8px; border-radius: var(--r-full); background: rgba(242,139,60,.12); color: var(--tx-3); font-size: 9px; font-weight: var(--fw-sb); }
.clinical-tree-step-page-content { display: grid; gap: 8px; width: min(760px, 100%); margin-inline: auto; text-align: center; }
.clinical-tree-step-page-content > strong { color: var(--tx); font-size: clamp(20px, 3vw, 32px); line-height: 1.16; }
.clinical-tree-step-page-content > em { color: var(--warning-strong, #a45418); font-size: 11px; font-style: normal; font-weight: var(--fw-b); }
.clinical-tree-step-page-content > p { max-width: 680px; margin: 0 auto; color: var(--tx-3); font-size: clamp(11px, 1.35vw, 14px); line-height: 1.55; }
.clinical-tree-step-answers { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; width: min(820px, 100%); margin-inline: auto; }
.clinical-tree-step-answers button { min-height: 46px; padding: 10px 16px; border: 1px solid rgba(242,139,60,.4); border-radius: var(--r-full); background: rgba(255,255,255,.9); color: var(--tx-2); font-size: 11px; font-weight: var(--fw-sb); cursor: pointer; animation: clinical-tree-node-in .32s ease both; }
.clinical-tree-step-answers button:hover { border-color: var(--warning); background: rgba(255,239,220,.9); transform: translateY(-1px); }
.clinical-tree-step-note { width: min(680px, 100%); margin: 2px auto 0; padding-top: 14px; }
.clinical-tree-full-map { border: 1px solid rgba(var(--primary-rgb), .18); border-radius: var(--r-lg); background: rgba(255,255,255,.6); }
.clinical-tree-full-map > summary { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 9px 14px; color: var(--primary-dk); font-size: 10px; font-weight: var(--fw-b); cursor: pointer; list-style: none; }
.clinical-tree-full-map > summary::-webkit-details-marker { display: none; }
.clinical-tree-full-map > summary::before { content: '⌘'; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--primary-bg); color: var(--primary); font-size: 11px; }
.clinical-tree-full-map > summary em { color: var(--tx-4); font-size: 9px; font-style: normal; font-weight: var(--fw-sb); }
.clinical-tree-full-map-open { display: none; }
.clinical-tree-full-map[open] .clinical-tree-full-map-closed { display: none; }
.clinical-tree-full-map[open] .clinical-tree-full-map-open { display: inline; }
.clinical-tree-full-map > .clinical-tree-map { margin: 0 10px 10px; }
.clinical-tree-map { display: grid; gap: var(--s3); padding: 12px; overflow: hidden; border: 1px solid rgba(var(--primary-rgb), .18); border-radius: var(--r-lg); background: rgba(255,255,255,.68); }
.clinical-tree-map > header { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.clinical-tree-map > header > div { display: grid; gap: 2px; }
.clinical-tree-map > header span { color: var(--primary); font-size: 9px; font-weight: var(--fw-b); letter-spacing: .06em; text-transform: uppercase; }
.clinical-tree-map > header strong { color: var(--tx-3); font-size: 10px; }
.clinical-tree-back-btn { display: grid; place-items: center; flex: 0 0 auto; width: 36px; height: 36px; padding: 0; border: 1px solid rgba(var(--primary-rgb), .24); border-radius: 50%; background: var(--surface); color: var(--primary); cursor: pointer; }
.clinical-tree-back-btn span { font-size: 23px; line-height: 1; transform: translateY(-1px); }
.clinical-tree-back-btn:hover:not(:disabled) { background: var(--primary-bg); transform: rotate(-18deg); }
.clinical-tree-back-btn:disabled { opacity: .32; cursor: default; }
.clinical-tree-map-viewport { overflow-x: auto; overflow-y: hidden; padding: 6px 2px 10px; scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: rgba(var(--primary-rgb), .22) transparent; }
.clinical-tree-map-path { display: flex; align-items: flex-start; justify-content: flex-end; min-width: max-content; transform-origin: right center; }
.clinical-tree-map-step { position: relative; display: grid; place-items: center; align-self: start; gap: 0; padding-bottom: 88px; }
.clinical-tree-map-node { display: grid; gap: 4px; width: 176px; min-height: 86px; padding: 11px 12px; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--surface); color: var(--tx-2); text-align: left; transition: width .24s ease, opacity .24s ease, transform .24s ease; animation: clinical-tree-node-in .32s ease both; }
button.clinical-tree-map-node { cursor: pointer; }
.clinical-tree-map-node > span { color: var(--tx-4); font-size: 8px; font-weight: var(--fw-b); letter-spacing: .05em; text-transform: uppercase; }
.clinical-tree-map-node > strong { overflow: hidden; font-size: 10px; line-height: 1.35; }
.clinical-tree-map-node > em { color: var(--tx-3); font-size: 9px; font-style: normal; line-height: 1.35; }
.clinical-tree-map-node.is-completed { border-color: rgba(47,133,90,.22); background: var(--clr-ok-50); }
.clinical-tree-map-node.is-completed::after { content: '✓'; justify-self: end; color: var(--clr-ok-700); font-weight: var(--fw-b); }
.clinical-tree-map-node.is-current { border: 2px solid rgba(242,139,60,.7); background: linear-gradient(145deg, #fff, rgba(255,239,220,.92)); box-shadow: 0 8px 22px rgba(176,91,27,.12); transform: scale(1.03); }
.clinical-tree-map-node.is-current.has-note-editor { width: 286px; }
.clinical-tree-node-note { display: grid; gap: 6px; margin-top: 7px; padding-top: 8px; border-top: 1px solid rgba(242,139,60,.24); }
.clinical-tree-node-note > span { color: var(--tx-2); font-size: 9px; font-weight: var(--fw-b); letter-spacing: .03em; text-transform: uppercase; }
.clinical-tree-node-note textarea { width: 100%; min-height: 66px; resize: vertical; border: 1px solid rgba(176,91,27,.22); border-radius: var(--r-sm); background: rgba(255,255,255,.9); color: var(--tx); font: inherit; font-size: 10px; line-height: 1.45; }
.clinical-tree-node-note small { color: var(--tx-4); font-size: 8px; line-height: 1.35; }
.clinical-tree-node-note .secondary-btn { justify-self: start; min-height: 30px; padding: 6px 10px; font-size: 9px; }
.clinical-tree-node-note-indicator { color: var(--clr-ok-700); font-size: 8px; font-weight: var(--fw-sb); }
.clinical-tree-map-node:not(.is-focus) { width: 46px; min-height: 64px; padding: 9px; opacity: .46; }
.clinical-tree-map-node:not(.is-focus) > strong, .clinical-tree-map-node:not(.is-focus) > em { display: none; }
.clinical-tree-map-connector { align-self: flex-start; flex: 0 0 30px; height: 2px; margin-top: 42px; background: linear-gradient(90deg, rgba(47,133,90,.55), rgba(var(--primary-rgb), .38)); transform-origin: left center; animation: clinical-tree-line-draw .4s ease both; }
.clinical-tree-terminal-branch { position: absolute; top: 92px; left: 50%; display: grid; justify-items: center; width: 154px; transform: translateX(-50%); }
.clinical-tree-terminal-line { position: relative; display: block; width: 2px; height: 27px; background: rgba(172,54,65,.38); }
.clinical-tree-terminal-line b { position: absolute; left: 50%; bottom: -9px; display: grid; place-items: center; width: 18px; height: 18px; border: 2px solid rgba(172,54,65,.68); border-radius: 50%; background: var(--surface); color: var(--clr-er-700); font-size: 13px; line-height: 1; transform: translateX(-50%); }
.clinical-tree-terminal-branch article { display: grid; gap: 2px; width: 100%; margin-top: 14px; padding: 8px 10px; border: 1px dashed rgba(172,54,65,.3); border-radius: var(--r-sm); background: var(--clr-er-50); color: var(--tx-3); text-align: center; }
.clinical-tree-terminal-branch strong { font-size: 9px; line-height: 1.3; }
.clinical-tree-terminal-branch small { color: var(--clr-er-700); font-size: 8px; }
.clinical-tree-terminal-branch.is-selected article { border-style: solid; border-color: rgba(172,54,65,.58); box-shadow: 0 5px 14px rgba(172,54,65,.08); }
.clinical-tree-map-branches { position: relative; display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; padding-top: 18px; }
.clinical-tree-map-branches::before { content: ''; position: absolute; top: 0; left: 50%; width: 2px; height: 12px; background: rgba(242,139,60,.58); animation: clinical-tree-line-draw-y .3s ease both; }
.clinical-tree-map-branches button { position: relative; min-height: 38px; padding: 8px 12px; border: 1px solid rgba(242,139,60,.32); border-radius: var(--r-full); background: var(--surface); color: var(--tx-2); font-size: 10px; font-weight: var(--fw-sb); cursor: pointer; animation: clinical-tree-node-in .32s ease both; }
.clinical-tree-map-branches button:hover { border-color: var(--warning); background: rgba(255,239,220,.8); transform: translateY(-1px); }
.clinical-tree-optional-question { padding: 8px 10px; border: 1px dashed var(--border-s); border-radius: var(--r-md); background: rgba(255,255,255,.5); }
.clinical-tree-optional-question summary { color: var(--tx-3); font-size: 10px; font-weight: var(--fw-b); cursor: pointer; }
.clinical-tree-optional-question label { display: grid; gap: 6px; margin-top: 10px; color: var(--tx-3); font-size: 10px; }
.clinical-tree-optional-question select { width: 100%; }
.clinical-tree-reasoning-details { border-top: 1px solid var(--border); }
.clinical-tree-reasoning-details > summary { padding-top: 10px; color: var(--primary-dk); font-size: 10px; font-weight: var(--fw-b); cursor: pointer; }
.clinical-tree-reasoning-details[open] > .clinical-reasoning-board { margin-top: 10px; }
@keyframes clinical-tree-line-draw { from { transform: scaleX(0); opacity: 0; } to { transform: scaleX(1); opacity: 1; } }
@keyframes clinical-tree-line-draw-y { from { transform: scaleY(0); opacity: 0; } to { transform: scaleY(1); opacity: 1; } }
@keyframes clinical-tree-node-in { from { opacity: 0; transform: translateY(8px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
.clinical-tree-levels { display: flex; align-items: center; gap: 5px; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
.clinical-tree-levels::-webkit-scrollbar { display: none; }
.clinical-tree-levels span { display: inline-flex; align-items: center; gap: 5px; flex: 0 0 auto; color: var(--tx-4); font-size: 9px; font-weight: var(--fw-sb); }
.clinical-tree-levels span:not(:last-child)::after { content: '›'; color: var(--border-s); font-size: 13px; }
.clinical-tree-levels .is-current { color: var(--primary-dk); }
.clinical-tree-result { display: grid; gap: 3px; padding: 10px 12px; border-radius: var(--r-md); background: rgba(var(--primary-rgb), .08); }
.clinical-decision-tree-blocked .clinical-tree-result { background: rgba(172,54,65,.08); }
.clinical-tree-result strong { color: var(--tx); font-size: 12px; }
.clinical-tree-result p { color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.clinical-tree-questions { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: var(--s2); }
.clinical-tree-questions label { min-width: 0; }
.clinical-tree-questions select { width: 100%; }
.clinical-tree-test-task { display: grid; gap: 6px; margin: var(--s2) 0; color: var(--tx-2); font-size: 11px; font-weight: 700; }
.clinical-tree-test-task input { width: 100%; font-weight: 500; }
.clinical-tree-tests { display: grid; gap: var(--s2); }
.clinical-tree-test { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: var(--s2); padding: 10px; border: 1px solid var(--border); border-radius: var(--r-md); background: rgba(255,255,255,.74); }
.clinical-tree-test.is-validated { border-color: rgba(47,133,90,.22); background: rgba(239,250,245,.72); }
.clinical-tree-test-index { display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: var(--primary-bg); color: var(--primary); font-size: 10px; font-weight: var(--fw-b); }
.clinical-tree-test strong { color: var(--tx-2); font-size: 11px; }
.clinical-tree-test p { margin: 2px 0 7px; color: var(--tx-4); font-size: 9px; line-height: 1.4; }
.clinical-tree-test-fields { display: grid; grid-template-columns: minmax(170px,.75fr) minmax(180px,1.25fr); gap: var(--s2); }
.clinical-tree-test-fields select, .clinical-tree-test-fields input { width: 100%; margin: 0; min-width: 0; }
.clinical-tree-test-validation { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); margin-top: var(--s2); padding-top: var(--s2); border-top: 1px solid var(--border); }
.clinical-tree-test-validation span { color: var(--tx-4); font-size: 9px; font-weight: var(--fw-sb); }
.clinical-tree-test.is-validated .clinical-tree-test-validation span { color: var(--clr-ok-700); }
.clinical-tree-test-validation button { min-height: 30px; padding: 6px 9px; font-size: 9px; }
.clinical-tree-validation-rule { margin: 0; padding: 8px 10px; border-left: 3px solid var(--primary); border-radius: 0 var(--r-sm) var(--r-sm) 0; background: var(--primary-bg); color: var(--tx-3); font-size: 9px; line-height: 1.45; }
.clinical-test-guide { margin-top: 7px; border-top: 1px solid var(--border); }
.clinical-test-guide > summary { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); padding-top: 7px; color: var(--primary-dk); cursor: pointer; list-style: none; font-size: 9px; font-weight: var(--fw-b); }
.clinical-test-guide > summary::-webkit-details-marker { display: none; }
.clinical-test-guide > summary::after { content: '+'; display: flex; align-items: center; justify-content: center; width: 16px; height: 16px; margin-left: auto; border-radius: 50%; background: var(--primary-bg); color: var(--primary); }
.clinical-test-guide[open] > summary::after { content: '–'; }
.clinical-test-guide > summary em { color: var(--tx-4); font-size: 8px; font-style: normal; font-weight: var(--fw-sb); }
.clinical-test-guide-body { display: grid; gap: var(--s2); padding: 9px 0 2px; color: var(--tx-3); font-size: 9px; line-height: 1.5; }
.clinical-test-guide-body ol { display: grid; gap: 4px; margin: 0; padding-left: 18px; }
.clinical-test-guide-body p { display: grid; gap: 2px; margin: 0; }
.clinical-test-guide-body p strong { color: var(--tx-2); font-size: 8px; letter-spacing: .04em; text-transform: uppercase; }
.clinical-test-sources { display: flex; flex-wrap: wrap; gap: 5px; }
.clinical-test-sources a { padding: 3px 6px; border-radius: var(--r-full); background: var(--surface-2); color: var(--primary-dk); font-size: 8px; font-weight: var(--fw-sb); text-decoration: none; }
.clinical-test-sources a:hover { text-decoration: underline; }
.clinical-tree-hypotheses { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.clinical-tree-hypotheses span, .clinical-tree-next span { color: var(--tx-4); font-size: 9px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .04em; }
.clinical-tree-hypotheses em { padding: 4px 8px; border-radius: var(--r-full); background: var(--surface-2); color: var(--tx-2); font-size: 9px; font-style: normal; font-weight: var(--fw-sb); }
.clinical-tree-next { display: grid; gap: 3px; }
.clinical-tree-next strong { color: var(--tx-2); font-size: 10px; line-height: 1.45; }
.clinical-tree-decision { display: grid; gap: var(--s3); padding: 11px 12px; border: 1px solid rgba(var(--primary-rgb), .2); border-radius: var(--r-md); background: rgba(255,255,255,.78); }
.clinical-tree-decision.is-validated { border-color: rgba(47,133,90,.2); background: var(--clr-ok-50); }
.clinical-tree-decision > header { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); }
.clinical-tree-decision > header strong { color: var(--tx); font-size: 11px; }
.clinical-tree-decision > header span { padding: 3px 7px; border-radius: var(--r-full); background: var(--primary-bg); color: var(--primary-dk); font-size: 8px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .04em; }
.clinical-tree-decision.is-validated > header span { background: rgba(47,133,90,.12); color: var(--clr-ok-700); }
.clinical-tree-decision-fields { display: grid; grid-template-columns: minmax(180px,.75fr) minmax(240px,1.25fr); gap: var(--s2); }
.clinical-tree-decision-fields label { min-width: 0; }
.clinical-tree-decision-fields select, .clinical-tree-decision-fields textarea { width: 100%; margin-top: 5px; }
.clinical-tree-decision > p { color: var(--tx-4); font-size: 8px; line-height: 1.45; }
.clinical-tree-decision > .primary-btn { justify-self: end; }
.clinical-reasoning-board { display: grid; gap: var(--s3); padding: 12px; border: 1px solid rgba(var(--primary-rgb), .16); border-radius: var(--r-lg); background: rgba(255,255,255,.62); }
.clinical-reasoning-board > header { display: flex; align-items: baseline; justify-content: space-between; gap: var(--s2); }
.clinical-reasoning-board > header span { color: var(--tx); font-size: 11px; font-weight: var(--fw-b); }
.clinical-reasoning-board > header small { color: var(--tx-4); font-size: 8px; }
.clinical-reasoning-columns { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--s2); }
.clinical-reasoning-column { min-width: 0; padding: 8px; border-radius: var(--r-md); background: var(--surface); box-shadow: var(--shadow-xs); }
.clinical-reasoning-column h5 { margin: 0 0 5px; color: var(--tx-4); font-size: 8px; font-weight: var(--fw-b); letter-spacing: .05em; text-transform: uppercase; }
.clinical-reasoning-item { border-top: 1px solid var(--border); }
.clinical-reasoning-item:first-of-type { border-top: 0; }
.clinical-reasoning-item summary { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 6px; padding: 7px 0; cursor: pointer; list-style: none; }
.clinical-reasoning-item summary::-webkit-details-marker { display: none; }
.clinical-reasoning-item summary span { min-width: 0; color: var(--tx-2); font-size: 9px; font-weight: var(--fw-sb); line-height: 1.25; }
.clinical-reasoning-item summary em { padding: 3px 6px; border-radius: var(--r-full); background: var(--surface-2); color: var(--tx-3); font-size: 7px; font-style: normal; font-weight: var(--fw-b); white-space: nowrap; }
.clinical-reasoning-item[open] { padding-bottom: 7px; }
.clinical-reasoning-item > strong { display: block; color: var(--tx-2); font-size: 9px; }
.clinical-reasoning-item > p { margin-top: 3px; color: var(--tx-4); font-size: 8px; line-height: 1.4; }
.clinical-reasoning-present summary em,
.clinical-reasoning-concordant summary em,
.clinical-reasoning-reinforced summary em { background: var(--primary-bg); color: var(--primary-dk); }
.clinical-reasoning-priority summary em { background: var(--clr-er-50); color: var(--clr-er-700); }
.clinical-reasoning-pending summary em,
.clinical-reasoning-uncertain summary em,
.clinical-reasoning-inconclusive summary em,
.clinical-reasoning-interrupted summary em { background: var(--surface-2); color: var(--tx-4); }
.clinical-reasoning-empty { color: var(--tx-4); font-size: 8px; line-height: 1.4; }
.clinical-reasoning-route { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(180px,.65fr); gap: var(--s3); padding: 10px 12px; border-left: 3px solid var(--primary); border-radius: var(--r-md); background: var(--primary-bg); }
.clinical-reasoning-route-blocked { border-left-color: var(--clr-er-600); background: var(--clr-er-50); }
.clinical-reasoning-route > div { display: grid; gap: 2px; }
.clinical-reasoning-route span { color: var(--tx-4); font-size: 7px; font-weight: var(--fw-b); letter-spacing: .05em; text-transform: uppercase; }
.clinical-reasoning-route strong { color: var(--tx); font-size: 10px; line-height: 1.35; }
.clinical-reasoning-route p { color: var(--tx-3); font-size: 8px; line-height: 1.4; }
.clinical-reasoning-route-next { align-content: center; padding-left: var(--s3); border-left: 1px solid rgba(var(--primary-rgb), .18); }
.clinical-tree-footer { padding-top: var(--s2); border-top: 1px solid var(--border); }
.clinical-tree-footer small { max-width: 68%; }
.clinical-tree-footer .primary-btn { flex-shrink: 0; }
.session-summary-block textarea {
  border-color: rgba(23,27,36,.09);
  border-radius: 12px;
  background: rgba(255,255,255,.9);
  color: var(--tx);
  font-size: 13px;
  font-weight: var(--fw-m);
  line-height: 1.55;
}
.session-success-wrap { display: flex; align-items: center; gap: var(--s4); padding: var(--s3) 0; }
.session-success-circle { width: 56px; height: 56px; border-radius: 50%; background: conic-gradient(var(--primary) calc(var(--success-score, 50) * 1%), var(--border) 0); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.session-success-circle-inner { width: 44px; height: 44px; border-radius: 50%; background: var(--surface); display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 12px; font-weight: var(--fw-eb); color: var(--tx); line-height: 1; }
.session-success-circle-inner strong { font-size: 14px; }
.session-success-circle-inner span { font-size: 9px; color: var(--tx-4); }
.session-suggestion-line { font-size: 12px; color: var(--tx-3); }
.session-exercise-table-wrap {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: scroll;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 7px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 18px;
  background: linear-gradient(155deg, rgba(255,255,255,.98), rgba(247,248,255,.88));
  box-shadow: 0 12px 30px rgba(29, 36, 74, .07);
  scrollbar-width: auto;
  scrollbar-color: rgba(var(--primary-rgb), .45) rgba(17, 24, 39, .06);
}
.session-exercise-table-wrap::-webkit-scrollbar { height: 10px; }
.session-exercise-table-wrap::-webkit-scrollbar-track { border-radius: 999px; background: rgba(17, 24, 39, .06); }
.session-exercise-table-wrap::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: rgba(var(--primary-rgb), .45); background-clip: padding-box; }
.session-exercise-table { width: 100%; min-width: 715px; table-layout: fixed; border-collapse: separate; border-spacing: 0; background: transparent; font-size: 13px; }
.session-exercise-table th:nth-child(1), .session-exercise-table td:nth-child(1) { width: 310px; }
.session-exercise-table th:nth-child(2), .session-exercise-table td:nth-child(2) { width: 190px; }
.session-exercise-table th:nth-child(3), .session-exercise-table td:nth-child(3) { width: 110px; }
.session-exercise-table th:nth-child(4), .session-exercise-table td:nth-child(4) { width: 105px; }
.session-exercise-table th { background: rgba(var(--primary-rgb), .045); border: 0; border-bottom: 1px solid rgba(var(--primary-rgb), .1); padding: 10px 10px 9px; font-size: 10px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .055em; color: var(--tx-3); text-align: left; white-space: nowrap; }
.session-exercise-table th:not(:first-child) { text-align: center; }
.session-exercise-table td { border: 0; border-bottom: 1px solid rgba(17, 24, 39, .065); padding: 9px 8px; transition: background-color .18s ease; }
.session-exercise-table tbody tr:last-child td { border-bottom: 0; }
.session-exercise-table tbody tr:hover td { background: rgba(var(--primary-rgb), .025); }
.session-exercise-table th:first-child,
.session-exercise-table td:first-child { padding-left: 13px; }
.session-exercise-table td.session-exercise-intent-cell { position: relative; padding-right: 70px; }
.session-exercise-table td.session-exercise-intent-cell.is-reorderable { padding-left: 39px; }
.session-exercise-reorder {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 8px;
  display: grid;
  width: 25px;
  height: 34px;
  padding: 0;
  place-items: center;
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  color: rgba(67, 74, 104, .46);
  cursor: grab;
  touch-action: none;
  transform: translateY(-50%);
  transition: color .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;
  -webkit-user-select: none;
  user-select: none;
}
.session-exercise-reorder svg { width: 12px; height: 18px; fill: currentColor; pointer-events: none; }
.session-exercise-reorder:hover,
.session-exercise-reorder:focus-visible {
  border-color: rgba(var(--primary-rgb), .18);
  outline: none;
  background: rgba(var(--primary-rgb), .07);
  color: var(--primary);
  box-shadow: 0 4px 11px rgba(40,48,90,.08);
}
.session-exercise-reordering,
.session-exercise-reordering * { cursor: grabbing !important; }
.session-exercise-table tbody.is-reordering tr { transition: transform .14s ease, opacity .14s ease, background-color .14s ease; }
.session-exercise-table tbody tr.is-reordering { position: relative; z-index: 3; opacity: .82; }
.session-exercise-table tbody tr.is-reordering td { background: rgba(var(--primary-rgb), .075); box-shadow: inset 0 1px rgba(var(--primary-rgb), .11), inset 0 -1px rgba(var(--primary-rgb), .11); }
.session-exercise-table tbody tr.is-reordering .session-exercise-reorder { color: var(--primary); background: rgba(255,255,255,.9); box-shadow: 0 5px 14px rgba(40,48,90,.12); }
.session-exercise-table th:last-child,
.session-exercise-table td:last-child { padding-right: 13px; }
.session-exercise-table td input,
.session-exercise-table td select,
.session-exercise-table td textarea { border: none; background: none; padding: 3px 4px; color: var(--tx-2); font-family: inherit; font-size: 13px; font-weight: 650; line-height: 1.35; width: 100%; min-width: 60px; border-radius: var(--r-sm); }
.session-exercise-table td textarea { display: block; min-height: 0; box-sizing: border-box; overflow: hidden; resize: none; }
.session-exercise-history-reference { display: grid; gap: 4px; margin: 7px 4px 2px; color: var(--tx-4); }
.session-exercise-history-reference > span { font-size: 8px; font-weight: 850; letter-spacing: .025em; }
.session-exercise-history-reference > small { display: flex; min-width: 0; flex-wrap: wrap; gap: 4px; }
.session-exercise-history-reference em {
  display: inline-flex;
  min-height: 18px;
  align-items: center;
  padding: 3px 6px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .045);
  color: var(--tx-3);
  font-size: 8px;
  font-style: normal;
  font-weight: 780;
  line-height: 1.15;
}
.session-exercise-history-reference em.is-notable {
  border-color: rgba(193, 131, 27, .24);
  background: rgba(255, 184, 58, .12);
  color: #80530a;
}
.session-exercise-history-reference em.is-attention {
  border-color: rgba(193, 131, 27, .34);
  background: rgba(255, 184, 58, .19);
  color: #684205;
}
.session-exercise-table td:nth-child(n+2):nth-child(-n+4) input {
  min-height: 32px;
  border: 1px solid rgba(17, 24, 39, .045);
  border-radius: 10px;
  background: rgba(17, 24, 39, .032);
  text-align: center;
}
.session-exercise-dose-pair { display: grid; grid-template-columns: 1fr auto 1fr; align-items: start; gap: 4px; }
.session-exercise-dose-pair::before { align-self: center; color: var(--tx-4); content: '×'; font-size: 14px; font-weight: var(--fw-b); }
.session-exercise-dose-pair .session-dose-field:first-child { grid-column: 1; grid-row: 1; }
.session-exercise-dose-pair .session-dose-field:last-child { grid-column: 3; grid-row: 1; }
.session-dose-mode-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  max-width: 112px;
  margin: 4px auto 0;
  padding: 2px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .055);
}
.session-dose-mode-switch button {
  min-width: 0;
  min-height: 22px;
  padding: 3px 7px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--tx-4);
  font-family: inherit;
  font-size: 9px;
  font-weight: 760;
  line-height: 1;
  cursor: pointer;
  transition: color .16s ease, background-color .16s ease, box-shadow .16s ease;
}
.session-dose-mode-switch button[aria-pressed="true"] {
  background: rgba(255,255,255,.96);
  color: var(--primary-dk);
  box-shadow: 0 2px 7px rgba(45,54,120,.11);
}
.session-dose-mode-switch button:hover { color: var(--primary-dk); }
.session-dose-mode-switch button:focus-visible {
  outline: 2px solid rgba(var(--primary-rgb), .28);
  outline-offset: 1px;
}
.session-exercise-table td input:focus,
.session-exercise-table td select:focus,
.session-exercise-table td textarea:focus { border-color: rgba(var(--primary-rgb), .18); background: var(--primary-bg); outline: none; box-shadow: inset 0 0 0 1px rgba(var(--primary-rgb), .14); }

.session-exercise-table.is-overview-only {
  min-width: 0;
  table-layout: auto;
}
.session-exercise-table.is-overview-only th {
  padding: 9px 15px;
  text-align: left;
}
.session-exercise-overview-cell {
  padding: 10px 15px !important;
}
.session-exercise-overview-layout {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  min-height: 58px;
}
.session-exercise-overview-index {
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border-radius: 50%;
  background: rgba(var(--primary-rgb), .08);
  color: var(--primary-dk);
  font-size: 11px;
  font-weight: 850;
}
.session-exercise-overview-row.is-done .session-exercise-overview-index {
  background: var(--primary);
  color: #fff;
}
.session-exercise-overview-copy {
  display: grid;
  min-width: 0;
  gap: 4px;
}
.session-exercise-overview-copy .session-exercise-role {
  justify-self: start;
}
.session-exercise-overview-copy .session-exercise-name-with-preview,
.session-exercise-overview-copy .session-exercise-name-control,
.session-exercise-overview-copy .session-exercise-name-static {
  min-width: 0;
  max-width: 100%;
}
.session-exercise-overview-copy .session-exercise-name-control,
.session-exercise-overview-copy .session-exercise-name-static {
  font-size: 14px;
  line-height: 1.3;
}
.session-exercise-overview-feedback {
  display: flex;
  min-width: 0;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 8px;
  margin-top: 3px;
  color: var(--tx-4);
}
.session-exercise-overview-feedback > span {
  flex: 0 0 auto;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.session-exercise-overview-feedback > strong { display: flex; min-width: 0; flex-wrap: wrap; gap: 4px; }
.session-exercise-overview-feedback em {
  padding: 3px 6px;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .065);
  color: var(--tx-3);
  font-size: 8px;
  font-style: normal;
  font-weight: 780;
  line-height: 1.2;
}
.session-exercise-overview-status {
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(17, 24, 39, .045);
  color: var(--tx-3);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .035em;
  text-transform: uppercase;
  white-space: nowrap;
}
.session-exercise-overview-row.is-started .session-exercise-overview-status,
.session-exercise-overview-row.is-done .session-exercise-overview-status {
  background: rgba(var(--primary-rgb), .11);
  color: var(--primary-dk);
}
.session-mode-outcome.session-mode-outcome-compact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.session-mode-outcome-compact > span {
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .045em;
}
.session-mode-outcome-compact > strong {
  color: var(--tx);
  font-size: 12px;
}

@media (max-width: 560px) {
  .session-exercise-overview-cell { padding: 9px 11px !important; }
  .session-exercise-overview-layout {
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 9px;
  }
  .session-exercise-overview-status {
    grid-column: 2;
    justify-self: start;
  }
  .session-exercise-overview-feedback { align-items: flex-start; flex-direction: column; gap: 4px; }
  .session-mode-outcome-compact {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }
}
.session-exercise-rpe { display: grid; gap: 4px; margin: 8px 4px 2px; }
.session-exercise-rpe > div { display: flex; min-width: 0; align-items: center; gap: 6px; color: var(--tx-4); font-size: 8px; line-height: 1; }
.session-exercise-rpe > div strong { margin-right: auto; color: var(--tx-3); font-size: 8px; letter-spacing: .04em; text-transform: uppercase; }
.session-exercise-rpe > div span,
.session-exercise-rpe > div em { display: inline-flex; align-items: center; gap: 3px; white-space: nowrap; font-style: normal; font-weight: 800; }
.session-exercise-rpe > div span i { width: 7px; height: 7px; border: 1.5px solid rgba(38,45,71,.55); border-radius: 50%; background: #fff; }
.session-exercise-rpe > div em { color: var(--primary-dk); }
.session-exercise-rpe > div em i { width: 7px; height: 7px; border: 1px solid #fff; border-radius: 50%; background: var(--primary); box-shadow: 0 0 0 1px rgba(var(--primary-rgb), .2); }
.session-exercise-rpe-track { position: relative; display: block; height: 5px; margin: 2px 4px 0; border-radius: 999px; background: rgba(var(--primary-rgb), .1); }
.session-exercise-rpe-track i { position: absolute; z-index: 1; top: 50%; display: block; transform: translate(-50%,-50%); }
.session-exercise-rpe-track .is-target { width: 2px; height: 13px; border-radius: 999px; background: rgba(38,45,71,.58); }
.session-exercise-rpe-track .is-actual { z-index: 2; width: 11px; height: 11px; border: 2px solid #fff; border-radius: 50%; background: var(--primary); box-shadow: 0 2px 6px rgba(52,64,164,.25); }
.session-exercise-rpe > small { color: var(--tx-4); font-size: 7px; font-weight: 700; }
.session-exercise-load-report { display: block; margin: 7px 4px 2px; color: var(--tx-4); font-size: 8px; }
.session-exercise-load-report summary { display: flex; align-items: baseline; gap: 3px 7px; cursor: pointer; list-style: none; }
.session-exercise-load-report summary::-webkit-details-marker { display: none; }
.session-exercise-load-report span { font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.session-exercise-load-report strong { color: var(--primary-dk); font-size: 11px; }
.session-exercise-load-report i { color: var(--primary); font-size: 11px; font-style: normal; font-weight: var(--fw-b); }
.session-exercise-load-report small { display: block; margin-top: 3px; color: var(--tx-4); font-size: 7px; line-height: 1.35; }
.session-item,
.session-kine-feedback,
.session-future-preparation-body,
.session-exercise-details-body { min-width: 0; }
.session-dose-field { display: grid; gap: 3px; min-width: 0; }
.session-relief-suggestion {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  padding: 8px 10px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 11px;
  background: rgba(var(--primary-rgb), .055);
  color: var(--tx-2);
}
.session-relief-suggestion span {
  flex: 0 0 auto;
  color: var(--primary-dk);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.session-relief-suggestion strong { font-size: 11px; line-height: 1.35; }
.session-relief-vigilance {
  border-color: rgba(31,36,56,.15);
  background: rgba(31,36,56,.07);
}
.session-relief-vigilance span,
.session-relief-vigilance strong { color: var(--tx); }
.session-no-exercise-state {
  display: grid;
  gap: 4px;
  margin: 0 0 var(--s4);
  padding: var(--s4);
  border: 1px solid rgba(var(--primary-rgb), .2);
  border-radius: var(--r-lg);
  background: rgba(var(--primary-rgb), .055);
  color: var(--tx-2);
}
.session-no-exercise-state strong { color: var(--tx); font-size: 14px; }
.session-no-exercise-state span { font-size: 12px; line-height: 1.5; }
.session-manual-care-add {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px var(--s2);
  min-height: 30px;
}
.session-manual-care-add-button {
  border: 1px dashed rgba(34, 169, 154, .35);
  color: #187b70;
}
.session-manual-care-add small { color: var(--tx-4); font-size: 10px; }
.session-manual-care {
  display: grid;
  gap: var(--s3);
  padding: var(--s4);
  border: 1px solid rgba(34, 169, 154, .22);
  border-radius: var(--r-xl);
  background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(34,169,154,.055));
}
.session-manual-care-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); }
.session-manual-care-heading h5 { margin: 2px 0 0; color: var(--tx); font-size: 17px; }
.session-manual-care-heading-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: var(--s2); }
.session-manual-care-badge {
  flex: 0 0 auto;
  padding: 5px 9px;
  border-radius: var(--r-full);
  background: rgba(34, 169, 154, .11);
  color: #187b70;
  font-size: 10px;
  font-weight: var(--fw-b);
}
.session-manual-care-remove-section,
.session-manual-care-remove-entry { color: #9c3f55; font-size: 11px; }
.session-manual-care-list { display: grid; gap: var(--s3); }
.session-manual-care-context { display: grid; gap: 8px; padding: var(--s3); border-radius: var(--r-lg); background: rgba(34,169,154,.07); }
.session-manual-care-context div { display: grid; gap: 2px; }
.session-manual-care-context span { color: #187b70; font-size: 9px; font-weight: var(--fw-b); letter-spacing: .045em; text-transform: uppercase; }
.session-manual-care-context strong { color: var(--tx-2); font-size: 12px; line-height: 1.45; }
.session-manual-care-context small { color: var(--tx-4); font-size: 10px; line-height: 1.4; }
.session-manual-care-entry { padding: var(--s3); border: 1px solid rgba(17,24,39,.08); border-radius: var(--r-lg); background: rgba(255,255,255,.82); }
.session-manual-care-entry-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); margin-bottom: var(--s3); }
.session-manual-care-entry-heading strong { color: var(--tx); font-size: 14px; }
.session-manual-care-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); }
.session-manual-care-fields label { display: grid; gap: 5px; margin: 0; color: var(--tx-3); font-size: 11px; font-weight: var(--fw-b); }
.session-manual-care-fields label:first-child { grid-column: 1 / -1; }
.session-manual-care-fields input,
.session-manual-care-fields textarea { width: 100%; padding: 9px 10px; font: inherit; color: var(--tx-2); }
.session-manual-care-fields textarea { min-height: 64px; resize: vertical; }
.session-manual-care-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--s2); }
.session-manual-care-empty { margin: 0; padding: var(--s3); border-radius: var(--r-lg); background: rgba(34,169,154,.06); color: var(--tx-3); font-size: 12px; }
.session-manual-care-disclaimer { margin: 0; color: var(--tx-4); font-size: 10px; }
@media (max-width: 560px) {
  .session-relief-suggestion { align-items: flex-start; flex-direction: column; gap: 3px; }
  .session-manual-care { padding: var(--s3); }
  .session-manual-care-heading { align-items: flex-start; flex-direction: column; }
  .session-manual-care-heading-actions { align-items: flex-start; justify-content: flex-start; }
  .session-manual-care-fields { grid-template-columns: 1fr; }
  .session-manual-care-fields label:first-child { grid-column: auto; }
  .session-manual-care-footer { align-items: flex-start; flex-direction: column; }
}
.session-exercise-intent-cell { vertical-align: top; }
.session-exercise-intent-cell .session-exercise-role { margin-bottom: 5px; }
.session-exercise-means { display: block; }
.session-exercise-table td .session-exercise-means { margin-top: 3px; color: var(--tx); font-size: 14px; font-style: normal; font-weight: 800; line-height: 1.35; }
.session-exercise-role {
  display: inline-flex;
  align-items: center;
  min-height: 17px;
  margin: 0 2px 3px;
  padding: 2px 5px;
  border-radius: var(--r-full);
  background: rgba(var(--primary-rgb), .07);
  color: var(--tx-3);
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}
.session-exercise-role-activation { background: rgba(34, 169, 154, .09); color: #187b70; }
.session-exercise-role-main { background: rgba(var(--primary-rgb), .11); color: var(--primary-dk); }
.session-exercise-type-control { position: relative; display: inline-flex; align-items: center; vertical-align: top; }
.session-exercise-type-trigger { border: 0; font-family: inherit; cursor: pointer; transition: background-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.session-exercise-type-trigger:hover,
.session-exercise-type-trigger:focus-visible { background: rgba(var(--primary-rgb), .15); box-shadow: 0 0 0 2px rgba(var(--primary-rgb), .12); outline: 0; }
.session-exercise-type-trigger[aria-expanded="true"] { background: rgba(var(--primary-rgb), .16); }
.session-exercise-type-menu {
  position: absolute;
  z-index: 30;
  top: calc(100% + 5px);
  left: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(100px, 1fr));
  width: 230px;
  padding: 6px;
  border: 1px solid rgba(69, 77, 126, .12);
  border-radius: var(--r-lg);
  background: rgba(255,255,255,.98);
  box-shadow: 0 14px 30px rgba(39, 43, 76, .14);
}
.session-exercise-type-menu.hidden { display: none; }
.session-exercise-type-menu button { min-height: 30px; padding: 6px 8px; border: 0; border-radius: var(--r-md); background: transparent; color: var(--tx-2); font: 700 11px/1.2 inherit; text-align: left; cursor: pointer; }
.session-exercise-type-menu button:hover,
.session-exercise-type-menu button:focus-visible { background: rgba(var(--primary-rgb), .07); color: var(--primary-dk); outline: 0; }
.session-exercise-type-menu button.is-selected { background: rgba(var(--primary-rgb), .11); color: var(--primary-dk); }
@media (max-width: 560px) {
  .session-exercise-type-menu { grid-template-columns: 1fr 1fr; width: min(220px, calc(100vw - 48px)); }
}
.session-exercise-table td .session-exercise-variant-select {
  min-height: 34px;
  margin-top: 3px;
  padding: 4px 28px 4px 4px;
  border: 0;
  background-color: transparent;
  color: var(--tx);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.35;
  cursor: pointer;
}
.session-exercise-table td .session-exercise-variant-select:hover,
.session-exercise-table td .session-exercise-variant-select:focus {
  background-color: rgba(var(--primary-rgb), .055);
  box-shadow: none;
}
.session-exercise-related-control { position: relative; display: grid; min-width: 0; }
.session-exercise-name-control {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 7px;
  width: 100%;
  min-height: 34px;
  margin-top: 3px;
  padding: 4px 7px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--tx);
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}
.session-exercise-name-control:hover,
.session-exercise-name-control:focus-visible {
  border-color: rgba(var(--primary-rgb), .2);
  outline: none;
  background: rgba(var(--primary-rgb), .075);
  box-shadow: 0 5px 13px rgba(40, 48, 90, .08);
  transform: translateY(-1px);
}
.session-exercise-name-control > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.session-related-wheel {
  position: absolute;
  z-index: 35;
  top: calc(100% + 4px);
  left: 0;
  display: grid;
  gap: 3px;
  width: 100%;
  max-height: min(58vh, 420px);
  margin: 0;
  padding: 4px;
  overflow-y: auto;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 14px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 12px 26px rgba(29, 36, 74, .1);
  animation: sessionRelatedWheelIn 180ms var(--synapse-motion-ease) both;
}
.session-related-wheel.hidden { display: none; }
@keyframes sessionRelatedWheelIn {
  from { opacity: 0; transform: translateY(-3px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.session-exercise-table tr.has-related-wheel td { background: rgba(var(--primary-rgb), .025); }
.session-exercise-table tr.has-related-wheel { position: relative; z-index: 25; }
.session-related-wheel-entry {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) 46px;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-height: 42px;
  padding: 3px 7px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--tx-2);
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  text-align: left;
  cursor: pointer;
}
.session-related-wheel-entry:hover,
.session-related-wheel-entry:focus-within { border-color: rgba(var(--primary-rgb), .15); outline: none; background: rgba(var(--primary-rgb), .055); }
.session-related-wheel-current { background: rgba(var(--primary-rgb), .085); }
.session-related-wheel-name {
  min-width: 0;
  padding: 7px 2px;
  overflow: hidden;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: inherit;
  font-weight: inherit;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}
.session-related-wheel-name:hover,
.session-related-wheel-name:focus-visible { outline: none; background: rgba(var(--primary-rgb), .06); }
.session-related-direction { color: var(--tx-4); font-size: 12px; font-weight: 900; text-align: center; }
.session-related-wheel-current .session-related-direction { color: var(--primary); font-size: 8px; }
.session-exercise-name-with-preview { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; }
.session-exercise-name-with-preview.has-inline-preview { grid-template-columns: minmax(0, 1fr) 30px; gap: 5px; }
.session-exercise-inline-preview {
  display: grid;
  width: 30px;
  height: 30px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 9px;
  background: rgba(var(--primary-rgb), .045);
  color: var(--primary-dk);
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}
.session-exercise-inline-preview svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.session-exercise-inline-preview svg path { fill: currentColor; stroke: none; }
.session-exercise-inline-preview:hover,
.session-exercise-inline-preview:focus-visible {
  border-color: rgba(var(--primary-rgb), .3);
  outline: none;
  background: rgba(var(--primary-rgb), .1);
  box-shadow: 0 5px 13px rgba(40, 48, 90, .09);
  transform: translateY(-1px);
}
.session-exercise-name-static { min-width: 0; padding: 7px; overflow: hidden; color: var(--tx); font-size: 14px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.session-exercise-name-open { width: 100%; }
.session-related-static-preview { display: grid; height: 38px; place-items: center; }
.session-exercise-search-button {
  display: grid;
  width: 30px;
  height: 30px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 9px;
  background: rgba(255, 255, 255, .72);
  color: var(--tx-3);
  cursor: pointer;
  transition: border-color .16s ease, color .16s ease, background .16s ease, transform .16s ease;
}
.session-exercise-search-button span { font-size: 18px; line-height: 1; transform: translateY(-1px); }
.session-exercise-search-button:hover,
.session-exercise-search-button:focus-visible {
  border-color: rgba(var(--primary-rgb), .32);
  outline: none;
  background: white;
  color: var(--primary);
  transform: translateY(-1px);
}
.session-related-wheel-current .session-related-wheel-search {
  width: 24px;
  height: 24px;
  border-color: rgba(var(--primary-rgb), .18);
  background: rgba(255, 255, 255, .78);
}
.session-related-wheel-current .session-related-wheel-search span { font-size: 15px; }
.exercise-search-overlay {
  position: fixed;
  z-index: 1900;
  inset: 0;
  background: transparent;
}
.exercise-search-overlay.hidden { display: none; }
body.exercise-search-open { overflow: hidden; }
.exercise-search-surface {
  position: fixed;
  display: grid;
  width: min(360px, calc(100vw - 24px));
  max-height: min(430px, calc(100vh - 24px));
  padding: 14px;
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: 18px;
  background: rgba(255, 255, 255, .985);
  box-shadow: 0 22px 60px rgba(21, 27, 56, .22);
  animation: none;
}
.exercise-search-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.exercise-search-heading span { color: var(--primary); font-size: 9px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.exercise-search-heading h3 { margin: 2px 0 0; color: var(--tx); font-size: 16px; }
.exercise-search-close {
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(17, 24, 39, .055);
  color: var(--tx-2);
  font-size: 19px;
  cursor: pointer;
}
.exercise-search-field { display: block; margin-top: 11px; }
.exercise-search-field input {
  width: 100%;
  min-height: 42px;
  padding: 9px 12px;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 11px;
  background: rgba(247, 248, 255, .84);
  color: var(--tx);
  font: inherit;
  font-size: 14px;
}
.exercise-search-field input:focus { border-color: rgba(var(--primary-rgb), .42); outline: 3px solid rgba(var(--primary-rgb), .1); }
.exercise-search-results { display: grid; gap: 4px; margin-top: 8px; overflow-y: auto; overscroll-behavior: contain; }
.exercise-search-result {
  display: grid;
  gap: 2px;
  width: 100%;
  padding: 9px 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--tx-2);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.exercise-search-result:hover,
.exercise-search-result:focus-visible { border-color: rgba(var(--primary-rgb), .16); outline: none; background: rgba(var(--primary-rgb), .06); }
.exercise-search-result strong { color: var(--tx); font-size: 12px; }
.exercise-search-result span { color: var(--tx-4); font-size: 10px; }
.exercise-search-result:disabled { cursor: not-allowed; opacity: .48; }
.exercise-search-no-result { margin: 8px 2px; color: var(--tx-4); font-size: 12px; text-align: center; }
.exercise-search-empty { display: grid; gap: 7px; padding: 4px 2px; }
.exercise-search-empty .session-inline-link { justify-self: center; }
.session-exercise-preview-button {
  position: relative;
  display: grid;
  width: 42px;
  height: 38px;
  padding: 1px;
  overflow: hidden;
  place-items: center;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 10px;
  background: rgba(247, 248, 255, .8);
  box-shadow: 0 2px 7px rgba(29, 36, 74, .04);
  cursor: pointer;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease;
}
.session-exercise-preview-button::after {
  position: absolute;
  right: 3px;
  bottom: 3px;
  display: grid;
  width: 14px;
  height: 14px;
  place-items: center;
  border-radius: 50%;
  color: white;
  background: rgba(70, 84, 207, .9);
  box-shadow: 0 2px 6px rgba(29, 36, 74, .22);
  content: "▶";
  font-size: 6px;
  line-height: 1;
  transition: transform .16s ease, background .16s ease;
}
.session-exercise-preview-button:hover,
.session-exercise-preview-button:focus-visible {
  border-color: rgba(var(--primary-rgb), .3);
  outline: none;
  background: #fff;
  box-shadow: 0 7px 18px rgba(29, 36, 74, .14);
  transform: translateY(-1px);
}
.session-exercise-preview-button:hover::after,
.session-exercise-preview-button:focus-visible::after {
  background: var(--primary);
  transform: scale(1.22);
}
.session-exercise-official-frame { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; max-width: 100%; max-height: 100%; border: 0; object-fit: contain; object-position: center; pointer-events: none; background: rgb(251, 246, 243); }
.session-exercise-preview-button .session-exercise-official-frame {
  position: absolute;
  inset: 1px;
  width: calc(100% - 2px);
  height: calc(100% - 2px);
}
.session-exercise-preview-missing {
  display: grid;
  width: 42px;
  height: 38px;
  padding: 3px;
  place-items: center;
  gap: 1px;
  border: 1px dashed rgba(var(--primary-rgb), .22);
  border-radius: 10px;
  color: var(--tx-4);
  background: rgba(247, 248, 255, .72);
  line-height: 1;
  text-align: center;
}
.session-exercise-preview-missing > span { color: rgba(var(--primary-rgb), .5); font-size: 10px; }
.session-exercise-preview-missing small { font-size: 5px; font-weight: 850; line-height: 1.05; text-transform: uppercase; }
.session-exercise-adaptation-btn {
  justify-self: start;
  margin-top: 9px;
  padding: 8px 12px;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: var(--r-full);
  background: rgba(255, 255, 255, .8);
  color: var(--primary-dk);
  font-size: 11px;
  font-weight: 800;
}
.session-exercise-adaptation-btn:hover,
.session-exercise-adaptation-btn.is-active { background: rgba(var(--primary-rgb), .09); }
.exercise-animation-overlay {
  position: fixed;
  z-index: 1800;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(24, 28, 43, .32);
  backdrop-filter: blur(5px);
}
.exercise-animation-overlay.hidden { display: none; }
body.exercise-animation-open { overflow: hidden; }
.exercise-animation-dialog {
  position: relative;
  width: min(500px, 100%);
  padding: 22px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 24px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 24px 70px rgba(21, 27, 56, .2);
  color: var(--tx);
  text-align: center;
  animation: synapseSurfaceIn var(--synapse-motion-duration) var(--synapse-motion-ease) both;
}
.exercise-animation-close {
  position: absolute;
  z-index: 2;
  top: 11px;
  right: 11px;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: rgba(17, 24, 39, .05);
  color: var(--tx-2);
  font-size: 21px;
  cursor: pointer;
}
.exercise-animation-stage { position: relative; display: grid; place-items: center; height: min(62vh, 520px); min-height: 340px; margin-bottom: 10px; border-radius: 18px; background: rgb(251, 246, 243); color: var(--primary-dk); overflow: hidden; }
.exercise-animation-stage .session-exercise-official-motion {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  background: rgb(251, 246, 243);
}
.exercise-animation-dialog h3 { margin: 0; font-size: 18px; }
.exercise-animation-dialog p { margin: 7px 0 0; color: var(--tx-3); font-size: 11px; line-height: 1.45; }
.exercise-animation-mode-switch {
  display: inline-grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  margin: 0 auto 12px;
  padding: 4px;
  border-radius: 14px;
  background: rgba(var(--primary-rgb), .07);
}
.exercise-animation-mode-switch.hidden { display: none; }
.exercise-animation-mode-switch button {
  min-height: 38px;
  padding: 8px 13px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: var(--tx-3);
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}
.exercise-animation-mode-switch button.is-active {
  background: #fff;
  color: var(--primary-dk);
  box-shadow: 0 4px 14px rgba(45, 55, 110, .1);
}
.exercise-animation-mode-switch button:focus-visible,
.exercise-animation-step-arrow:focus-visible {
  outline: 3px solid rgba(var(--primary-rgb), .22);
  outline-offset: 2px;
}
.exercise-animation-key-frame {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  background: rgb(251, 246, 243);
}
.exercise-animation-step-arrow {
  position: absolute;
  z-index: 2;
  top: 50%;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, .75);
  border-radius: 50%;
  background: rgba(25, 31, 58, .72);
  box-shadow: 0 6px 20px rgba(17, 24, 39, .18);
  color: #fff;
  font-size: 31px;
  line-height: 1;
  cursor: pointer;
  transform: translateY(-50%);
}
.exercise-animation-step-previous { left: 12px; }
.exercise-animation-step-next { right: 12px; }
.exercise-animation-step-copy {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 3px 10px;
  margin: 0 0 12px;
  padding: 12px 14px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 15px;
  background: rgba(var(--primary-rgb), .055);
  text-align: left;
}
.exercise-animation-step-copy.hidden { display: none; }
.exercise-animation-step-copy > span {
  grid-row: 1 / span 2;
  align-self: start;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .12);
  color: var(--primary-dk);
  font-size: 10px;
  font-weight: 850;
  white-space: nowrap;
}
.exercise-animation-step-copy > strong { color: var(--tx); font-size: 13px; }
.exercise-animation-step-copy > p { margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.5; }
.exercise-animation-support-note { margin-top: 4px !important; }
.exercise-animation-gallery-link {
  display: inline-flex;
  margin-top: 12px;
  align-items: center;
  gap: 5px;
  color: var(--primary-dk);
  font-size: 11px;
  font-weight: 800;
  text-decoration: none;
}
.exercise-animation-gallery-link::after { content: "↗"; font-size: 10px; }
.exercise-animation-gallery-link:hover,
.exercise-animation-gallery-link:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.session-dose-comparison { display: flex; align-items: center; gap: 4px; padding: 0 4px; color: var(--tx-4); font-size: 8px; line-height: 1.15; white-space: nowrap; }
.session-dose-comparison s { opacity: .72; }
.session-dose-comparison strong { color: var(--primary-dk); font-size: 9px; }
.session-exercise-table tr.session-exercise-stopped td { background: rgba(17, 24, 39, .035); }
.session-exercise-table tr.session-exercise-stopped .session-dose-field input {
  color: var(--tx-4);
  text-decoration: line-through;
  opacity: .58;
}
.session-exercise-table tr.session-exercise-stopped td textarea {
  color: var(--tx-4);
  text-decoration: line-through;
  opacity: .58;
}
.session-exercise-table tr.session-exercise-stopped .session-dose-comparison { display: none; }
.session-exercise-adjustment {
  display: contents;
}
.session-exercise-pause {
  min-height: 26px;
  padding: 4px 7px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: rgba(17, 24, 39, .025);
  color: var(--tx-4);
  font-size: 9px;
  font-weight: 700;
  cursor: pointer;
}
.session-exercise-pause:hover,
.session-exercise-pause:focus-visible,
.session-exercise-pause.is-selected { border-color: rgba(17, 24, 39, .08); outline: none; background: rgba(17, 24, 39, .065); color: var(--tx-2); }
.session-exercise-decision-cell {
  position: absolute;
  z-index: 3;
  top: 8px;
  right: 8px;
}
.session-exercise-more-menu { position: relative; }
.session-exercise-more-menu > summary {
  display: flex;
  min-width: 28px;
  min-height: 27px;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  padding: 4px 6px;
  border-radius: 9px;
  color: var(--tx-4);
  cursor: pointer;
  list-style: none;
}
.session-exercise-more-menu > summary::-webkit-details-marker { display: none; }
.session-exercise-more-menu > summary span { color: var(--tx-4); font-size: 8px; font-weight: 800; }
.session-exercise-more-menu > summary i { font: 800 13px/1 var(--font); letter-spacing: 1px; }
.session-exercise-more-menu > summary:hover,
.session-exercise-more-menu > summary:focus-visible,
.session-exercise-more-menu[open] > summary {
  outline: none;
  background: rgba(17, 24, 39, .055);
  color: var(--tx-2);
}
.session-exercise-more-menu > div {
  position: absolute;
  z-index: 12;
  top: calc(100% + 4px);
  right: 0;
  display: grid;
  width: max-content;
  min-width: 130px;
  gap: 3px;
  padding: 5px;
  border: 1px solid rgba(17, 24, 39, .08);
  border-radius: 11px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 12px 28px rgba(31, 37, 68, .13);
}
.session-exercise-more-menu .session-exercise-pause,
.session-exercise-more-menu .session-exercise-delete {
  display: flex;
  width: 100%;
  min-height: 32px;
  align-items: center;
  justify-content: flex-start;
  padding: 7px 9px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--tx-3);
  font: 750 10px/1.2 var(--font);
  text-decoration: none;
  transform: none;
}
.session-exercise-delete {
  display: grid;
  width: 26px;
  height: 26px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--tx-4);
  font: 700 17px/1 var(--font);
  cursor: pointer;
  transition: color .16s ease, background .16s ease, transform .16s ease;
}
.session-exercise-delete:hover,
.session-exercise-delete:focus-visible {
  outline: none;
  background: rgba(17, 24, 39, .06);
  color: var(--tx-2);
  transform: scale(1.04);
}
.session-exercise-more-menu .session-exercise-pause:hover,
.session-exercise-more-menu .session-exercise-pause:focus-visible,
.session-exercise-more-menu .session-exercise-pause.is-selected,
.session-exercise-more-menu .session-exercise-delete:hover,
.session-exercise-more-menu .session-exercise-delete:focus-visible {
  outline: none;
  background: rgba(var(--primary-rgb), .07);
  color: var(--tx-2);
  transform: none;
}
@media (min-width: 700px) {
  .session-exercise-table-wrap { overflow: visible; }
  .session-exercise-table { min-width: 0; }
  .session-exercise-table th { padding-inline: 5px; white-space: normal; line-height: 1.15; }
  .session-exercise-table td { padding-inline: 5px; }
  .session-exercise-table th:first-child,
  .session-exercise-table td:first-child { padding-left: 12px; }
  .session-exercise-table td.session-exercise-intent-cell.is-reorderable { padding-left: 36px; }
  .session-exercise-reorder { left: 5px; }
  .session-exercise-table th:last-child,
  .session-exercise-table td:last-child { padding-right: 12px; }
  .session-exercise-table td input { min-width: 0; padding-inline: 2px; }
  .session-exercise-table th:nth-child(1), .session-exercise-table td:nth-child(1) { width: 43%; }
  .session-exercise-table th:nth-child(2), .session-exercise-table td:nth-child(2) { width: 27%; }
  .session-exercise-table th:nth-child(3), .session-exercise-table td:nth-child(3) { width: 15%; }
  .session-exercise-table th:nth-child(4), .session-exercise-table td:nth-child(4) { width: 15%; }
}
@media (max-width: 699px) {
  .session-exercise-table-wrap {
    overflow: visible;
    padding-bottom: 0;
    border-radius: 15px;
    scrollbar-width: none;
  }
  .session-exercise-table-wrap::-webkit-scrollbar { display: none; }
  .session-exercise-table,
  .session-exercise-table tbody { display: block; width: 100%; min-width: 0; }
  .session-exercise-table thead { display: none; }
  .session-exercise-table tbody tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    padding: 10px;
    border-bottom: 1px solid rgba(17, 24, 39, .065);
  }
  .session-exercise-table tbody tr:last-child { border-bottom: 0; }
  .session-exercise-table td,
  .session-exercise-table td:first-child,
  .session-exercise-table td:last-child {
    display: block;
    width: auto;
    padding: 6px 4px;
    border: 0;
  }
  .session-exercise-table td.session-exercise-intent-cell {
    grid-column: 1 / -1;
    padding: 3px 42px 9px 4px;
  }
  .session-exercise-table td:nth-child(2) { grid-column: 1 / -1; }
  .session-exercise-table td.session-exercise-intent-cell.is-reorderable { padding-left: 32px; }
  .session-exercise-reorder { left: 0; }
  .session-exercise-table td:nth-child(n+2)::before {
    display: block;
    margin: 0 0 4px 3px;
    color: var(--tx-4);
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .045em;
    text-transform: uppercase;
  }
  .session-exercise-table td:nth-child(2)::before { content: 'Dosage'; }
  .session-exercise-table td:nth-child(3)::before { content: 'Charge'; }
  .session-exercise-table td:nth-child(4)::before { content: 'Repos'; }
  .session-exercise-table td:nth-child(n+2):nth-child(-n+4) input { min-width: 0; }
  .session-exercise-dose-pair { gap: 5px; }
  .session-exercise-rpe > div { align-items: flex-start; flex-wrap: wrap; gap: 4px 6px; }
  .session-exercise-rpe > div strong { width: 100%; }
  .session-exercise-rpe > small { line-height: 1.25; }
}
.synapse-session-proposal { display: flex; flex-direction: column; gap: var(--s2); margin-top: var(--s4); padding: var(--s3) var(--s4); border: 1px solid rgba(var(--primary-rgb), .26); border-radius: var(--r-xl); background: linear-gradient(145deg, var(--surface), var(--primary-bg)); }
.synapse-session-proposal-header { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.synapse-session-proposal-header h4 { color: var(--tx); font-size: 13px; font-weight: var(--fw-b); }
.synapse-session-proposal-header span { flex-shrink: 0; padding: 3px 9px; border-radius: var(--r-full); background: var(--clr-vi-50); color: var(--clr-vi-700); font-size: 9px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .05em; }
.synapse-session-proposal-orientation { color: var(--primary); font-size: 12px; }
.synapse-session-proposal > p { color: var(--tx-3); font-size: 11px; line-height: 1.45; }
.synapse-session-proposal ul { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s2); margin: 2px 0; padding: 0; list-style: none; }
.synapse-session-proposal li { min-width: 0; padding: 7px 9px; border: 1px solid var(--border); border-radius: var(--r-md); background: rgba(255, 255, 255, .62); }
.synapse-session-proposal li strong, .synapse-session-proposal li span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.synapse-session-proposal li strong { color: var(--tx-2); font-size: 10px; }
.synapse-session-proposal li span { margin-top: 2px; color: var(--tx-4); font-size: 9px; }
.synapse-session-proposal > small { color: var(--tx-4); font-size: 9px; }
.session-exercise-table-ai-updated {
  animation: sessionExerciseTableAiUpdate 500ms ease-out;
}
@keyframes sessionExerciseTableAiUpdate {
  0% { background: rgba(var(--primary-rgb), .1); transform: translateY(2px); }
  100% { background: transparent; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .session-exercise-table-ai-updated { animation: none; }
}

@media (max-width: 700px) {
  .synapse-session-proposal ul { grid-template-columns: 1fr; }
  .synapse-session-proposal li strong, .synapse-session-proposal li span { white-space: normal; }
  .session-intercurrent-issue > summary, .intercurrent-issue-actions { align-items: flex-start; flex-direction: column; }
  .intercurrent-neurology-grid { grid-template-columns: 1fr; }
  .intercurrent-issue-actions .primary-btn { width: 100%; }
  .clinical-tree-questions, .clinical-tree-test-fields, .clinical-tree-decision-fields, .clinical-reasoning-columns, .clinical-reasoning-route, .assessment-clinical-source-grid { grid-template-columns: 1fr; }
  .assessment-clinical-source > header { flex-direction: column; }
  .clinical-tree-map-node { width: 138px; min-height: 82px; }
  .clinical-tree-map-node.is-current.has-note-editor { width: min(260px, 72vw); }
  .clinical-decision-tree.is-focus-mode { padding: 14px; }
  .clinical-decision-tree.is-focus-mode .clinical-tree-step-page { min-height: 52vh; padding: 22px 14px; }
  .clinical-tree-step-page { padding: 16px 12px; }
  .clinical-tree-step-page-content > strong { font-size: 21px; }
  .clinical-tree-step-answers { display: grid; grid-template-columns: 1fr; }
  .clinical-tree-step-answers button { width: 100%; }
  .clinical-tree-header { align-items: flex-start; }
  .clinical-tree-header-actions { align-items: flex-end; flex-direction: column; }
  .clinical-tree-map-node:not(.is-focus) { width: 36px; }
  .clinical-tree-map-connector { flex-basis: 18px; }
  .clinical-tree-map-branches { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .clinical-tree-map-branches button { border-radius: var(--r-md); }
  .clinical-tree-test-validation { align-items: stretch; flex-direction: column; }
  .clinical-tree-test-validation button { width: 100%; }
  .clinical-reasoning-board > header { align-items: flex-start; flex-direction: column; }
  .clinical-reasoning-route-next { padding-top: var(--s2); padding-left: 0; border-top: 1px solid rgba(var(--primary-rgb), .18); border-left: 0; }
  .clinical-tree-footer { align-items: flex-start; flex-direction: column; }
  .clinical-tree-footer small { max-width: none; }
  .clinical-tree-footer .primary-btn { width: 100%; }
  .clinical-test-guide > summary { align-items: flex-start; flex-wrap: wrap; }
  .clinical-test-guide > summary em { order: 3; width: 100%; }
  .clinical-tree-decision > .primary-btn { width: 100%; justify-self: stretch; }
}

/* Liberté clinique : ajouts du kiné et modèles personnels de bilan. */
.assessment-free-entry-space {
  display: grid;
  gap: 16px;
  padding: 22px 0 4px;
  border-top: 1px solid rgba(var(--primary-rgb), .12);
}

.assessment-free-entry-space > header {
  display: grid;
  gap: 5px;
}

.assessment-free-entry-space > header > div {
  display: grid;
  gap: 4px;
}

.assessment-free-entry-space > header span,
.assessment-template-form > header span {
  color: var(--primary);
  font-size: .78rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.assessment-free-entry-space > header strong {
  color: var(--ink);
  font-size: 1.15rem;
}

.assessment-free-entry-space > header p,
.assessment-template-form > p {
  margin: 0;
  color: var(--muted);
}

.assessment-free-entry-list {
  display: grid;
  gap: 12px;
}

.assessment-free-entry-list article {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 20px;
  background: rgba(var(--primary-rgb), .035);
}

.assessment-free-entry-list article .is-danger {
  justify-self: end;
}

.assessment-free-entry-space > footer,
.assessment-template-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.assessment-templates-modal-content {
  width: min(880px, calc(100vw - 32px));
  max-height: min(860px, calc(100vh - 32px));
  overflow: auto;
}

.assessment-templates-list,
.assessment-template-question-groups {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.assessment-templates-list > article {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 18px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 20px;
  background: var(--ix-surface, #fcfcff);
}

.assessment-templates-list > article > div:first-child,
.assessment-template-form,
.assessment-template-question-groups label {
  display: grid;
  gap: 7px;
}

.assessment-templates-list > article > div:last-child {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.assessment-templates-list small {
  color: var(--muted);
}

.assessment-template-form {
  gap: 18px;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid rgba(var(--primary-rgb), .12);
}

.assessment-template-form > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.assessment-template-form h4,
.assessment-template-form > header div {
  margin: 0;
}

.assessment-template-question-groups label {
  padding: 15px;
  border-radius: 18px;
  background: rgba(var(--primary-rgb), .035);
}

.assessment-template-question-groups label > span {
  color: var(--ink);
  font-weight: 800;
}

.assessment-template-empty {
  padding: 24px;
  border: 1px dashed rgba(var(--primary-rgb), .24);
  border-radius: 20px;
  text-align: center;
}

@media (max-width: 700px) {
  .assessment-free-entry-space {
    padding-top: 18px;
  }

  .assessment-free-entry-space > footer,
  .assessment-free-entry-space > footer button,
  .assessment-template-toolbar,
  .assessment-template-toolbar button,
  .assessment-templates-list > article,
  .assessment-templates-list > article > div:last-child,
  .assessment-templates-list > article button {
    width: 100%;
  }

  .assessment-templates-list > article {
    align-items: stretch;
    flex-direction: column;
  }
}

/* Navigation secondaire : un seul repère pour quitter une page imbriquée. */
.app-page-back {
  align-items: center;
  gap: 7px;
  width: fit-content;
  min-height: 36px;
  padding: 0 11px;
  border: 1px solid rgba(var(--primary-rgb), .15) !important;
  border-radius: 11px !important;
  background: rgba(var(--primary-rgb), .055) !important;
  color: var(--primary-dk) !important;
  font: 800 11px/1 var(--font) !important;
  text-decoration: none !important;
  white-space: nowrap;
  cursor: pointer;
}
button.app-page-back:not(.pre-intake-back) { display: inline-flex; }
.pre-intake-back.app-page-back { display: none; }
.app-shell.patient-pre-intake-focus .pre-intake-back.app-page-back { display: inline-flex; }
.app-page-back svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.app-page-back:hover,
.app-page-back:focus-visible {
  border-color: rgba(var(--primary-rgb), .32) !important;
  outline: 3px solid rgba(var(--primary-rgb), .09);
  outline-offset: 1px;
  background: rgba(var(--primary-rgb), .10) !important;
}
.app-page-back.hidden { display: none !important; }
.initial-assessment-workspace > .initial-assessment-page-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
}
.initial-assessment-workspace > .initial-assessment-page-header .initial-assessment-page-identity {
  flex: none;
}
.initial-assessment-exit-btn > span[aria-hidden="true"] { display: none; }

@media (max-width: 700px) {
  .initial-assessment-workspace > .initial-assessment-page-header {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }
  .initial-assessment-exit-btn > span:last-child {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip-path: none;
  }

}

/* Shared body chart — patient declaration and clinician-confirmed copy */
.body-chart-card {
  margin: 18px 0;
  padding: 18px;
  overflow: hidden;
  border: 1px solid rgba(68, 96, 165, .14);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(247, 250, 255, .98), rgba(242, 247, 252, .9));
  box-shadow: 0 18px 42px rgba(38, 56, 103, .07);
}
.body-chart-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 6px;
}
.body-chart-card > header span {
  display: block;
  margin-bottom: 4px;
  color: #4267a9;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.body-chart-card > header h5 {
  margin: 0;
  color: #172441;
  font-size: clamp(18px, 2vw, 23px);
  line-height: 1.15;
}
.body-chart-card > header small {
  flex: 0 0 auto;
  padding: 6px 10px;
  border-radius: 999px;
  background: #e7f0fb;
  color: #45648f;
  font-weight: 750;
}
.body-chart-card > p {
  max-width: 760px;
  margin: 0 0 16px;
  color: #647087;
  line-height: 1.5;
}
.body-chart-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 14px;
  margin-bottom: 16px;
}
.body-chart-symptom-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.body-chart-symptom-picker button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 38px;
  padding: 8px 11px;
  border: 1px solid #dbe4f2;
  border-radius: 999px;
  background: #fff;
  color: #45516a;
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}
.body-chart-symptom-picker button i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--body-chart-color);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--body-chart-color), transparent 80%);
}
.body-chart-symptom-picker button.is-active {
  border-color: #5276b9;
  background: #edf4ff;
  color: #284f92;
  box-shadow: inset 0 0 0 1px rgba(82,118,185,.1);
}
.body-chart-toolbar > label {
  display: grid;
  gap: 5px;
  color: #536078;
  font-size: 11px;
  font-weight: 800;
}
.body-chart-toolbar select {
  min-height: 40px;
  padding: 7px 34px 7px 11px;
  border: 1px solid #dbe4f2;
  border-radius: 12px;
  background-color: #fff;
  color: #1f2c49;
  font: inherit;
}
.body-chart-stage {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.body-chart-figure {
  position: relative;
  margin: 0;
  padding: 13px 12px 8px;
  border: 1px solid #e0e7f2;
  border-radius: 20px;
  background: rgba(255,255,255,.82);
}
.body-chart-figure figcaption {
  position: absolute;
  top: 12px;
  left: 14px;
  z-index: 1;
  color: #5c6982;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
  pointer-events: none;
}
.body-chart-figure svg {
  display: block;
  width: 100%;
  height: min(360px, 46vh);
  min-height: 250px;
  cursor: crosshair;
  touch-action: manipulation;
}
.body-chart-silhouette circle,
.body-chart-silhouette path {
  fill: rgba(113, 136, 174, .08);
  stroke: #7890b4;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.body-chart-silhouette path { fill: none; }
.body-chart-midline {
  fill: none;
  stroke: rgba(120,144,180,.35);
  stroke-width: .8;
  stroke-dasharray: 3 4;
}
.body-chart-marker { cursor: pointer; }
.body-chart-marker text {
  fill: #fff;
  font-size: 4px;
  font-weight: 900;
  pointer-events: none;
}
.body-chart-help {
  margin: 10px 2px !important;
  color: #68758d !important;
  font-size: 12px;
}
.body-chart-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.body-chart-summary > p {
  grid-column: 1 / -1;
  margin: 0;
  padding: 11px 13px;
  border-radius: 14px;
  background: rgba(255,255,255,.68);
  color: #718099;
  font-size: 12px;
}
.body-chart-summary article {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) 30px;
  align-items: center;
  gap: 9px;
  min-width: 0;
  padding: 9px;
  border: 1px solid #e1e8f2;
  border-radius: 14px;
  background: #fff;
}
.body-chart-summary article > i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: var(--body-chart-color);
  color: #fff;
  font-style: normal;
  font-size: 11px;
  font-weight: 900;
}
.body-chart-summary article span { min-width: 0; }
.body-chart-summary article strong,
.body-chart-summary article small { display: block; }
.body-chart-summary article strong {
  overflow: hidden;
  color: #23304b;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.body-chart-summary article small {
  margin-top: 2px;
  color: #768197;
  font-size: 10px;
}
.body-chart-summary article button {
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 50%;
  background: #f0f3f8;
  color: #53617b;
  font-size: 18px;
  cursor: pointer;
}
.body-chart-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
}
.body-chart-actions span {
  margin-right: auto;
  color: #778399;
  font-size: 11px;
  font-weight: 750;
}
.body-chart-actions button {
  min-height: 35px;
  padding: 7px 10px;
  border: 1px solid #dbe4f2;
  border-radius: 11px;
  background: #fff;
  color: #40516e;
  font: inherit;
  font-size: 11px;
  font-weight: 750;
  cursor: pointer;
}
.body-chart-actions button:disabled { opacity: .45; cursor: default; }
.body-chart-card--clinician {
  border-color: rgba(62,126,140,.18);
  background: linear-gradient(145deg, rgba(246,251,251,.98), rgba(239,247,247,.9));
}
.body-chart-card--clinician > header span { color: #34798a; }

@media (max-width: 700px) {
  .body-chart-card { margin-inline: -2px; padding: 14px; border-radius: 20px; }
  .body-chart-card > header { display: grid; gap: 8px; }
  .body-chart-card > header small { justify-self: start; }
  .body-chart-toolbar { grid-template-columns: 1fr; }
  .body-chart-symptom-picker { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 3px; scrollbar-width: none; }
  .body-chart-symptom-picker::-webkit-scrollbar { display: none; }
  .body-chart-symptom-picker button { flex: 0 0 auto; }
  .body-chart-stage { gap: 8px; }
  .body-chart-figure { padding-inline: 6px; border-radius: 16px; }
  .body-chart-figure svg { height: 285px; min-height: 0; }
  .body-chart-summary { grid-template-columns: 1fr; }
  .body-chart-actions { flex-wrap: wrap; }
  .body-chart-actions span { width: 100%; }
}
.session-patient-return-detail { background: var(--surface-2); border-radius: var(--r-lg); padding: var(--s3) var(--s4); margin-top: var(--s2); font-size: 12px; color: var(--tx-2); line-height: 1.6; }
.session-patient-return-detail p { margin-bottom: 4px; }
.session-adjustment-status-badge { display: inline-block; font-size: 10px; font-weight: var(--fw-sb); padding: 2px 8px; border-radius: var(--r-full); margin-top: var(--s2); }
.session-adjustment-status-badge-done { background: var(--clr-ok-50); color: var(--clr-ok-700); }
.session-info-tooltip { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 50%; background: var(--border); color: var(--tx-3); font-size: 10px; font-weight: var(--fw-b); cursor: help; font-style: normal; }
#kineFeedbackNotice { font-size: 12px; color: var(--tx-3); margin-bottom: var(--s3); }

/* Feedback sections */
.feedback-list { display: flex; flex-direction: column; gap: var(--s3); }
.feedback-item { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--r-lg); padding: var(--s4); font-size: 13px; line-height: 1.5; }
.feedback-item time { font-size: 11px; color: var(--tx-4); display: block; margin-bottom: 4px; }
.feedback-list-header { display: flex; align-items: center; justify-content: space-between; padding: var(--s3) 0; margin-bottom: var(--s3); border-bottom: 1px solid var(--border); }
.feedback-list-header h4 { font-size: 12px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .06em; color: var(--tx-3); }
.feedback-options { border: none; padding: 0; margin-top: var(--s4); }
.feedback-options legend { font-size: 11px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .06em; color: var(--tx-4); margin-bottom: var(--s2); }
.feedback-options label { flex-direction: row; align-items: center; gap: var(--s2); font-weight: var(--fw-r); font-size: 13px; color: var(--tx-2); padding: 4px 0; }
.feedback-options.feedback-inline { display: flex; flex-wrap: wrap; gap: var(--s3); }

/* Dashboard lists */
.dashboard-list { }
.dashboard-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--sh-xs); }
.dashboard-chart-card .card-header { padding: var(--s4) var(--s5); border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--surface); z-index: 2; display: flex; align-items: center; justify-content: space-between; }
.dashboard-chart-card .dashboard-list { max-height: 65vh; overflow-y: auto; padding: var(--s3) var(--s4); display: flex; flex-direction: column; gap: var(--s2); }
.dashboard-item { padding: var(--s3) var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); transition: border-color var(--dur-fast), box-shadow var(--dur-fast), transform var(--dur-fast); }
.dashboard-item.clickable { cursor: pointer; }
.dashboard-item.clickable:hover { border-color: var(--primary); box-shadow: 0 2px 8px rgba(var(--primary-rgb), .12); transform: translateY(-1px); }
.dashboard-item-shell { display: flex; flex-direction: column; gap: 6px; }
.dashboard-item-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); }
.dashboard-item-head-main { display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap; }
.dashboard-item-title { font-size: 13px; font-weight: var(--fw-sb); color: var(--tx); }
.dashboard-item-badges { display: flex; align-items: center; gap: var(--s1); flex-shrink: 0; }
.dashboard-item-meta { display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap; }
.dashboard-item-meta-row { font-size: 11px; color: var(--tx-4); }
.dashboard-item-note { font-size: 12px; color: var(--tx-3); line-height: 1.4; }
.dashboard-item-priority-high  { border-left: 2px solid var(--error); }
.dashboard-chart-card.dashboard-card-active { border-color: var(--primary); box-shadow: 0 0 0 1px var(--primary); }
.dashboard-chart-card.dashboard-card-pulse  { animation: cardPulse .8s var(--ease); }
.dashboard-section-title { font-size: 13px; font-weight: var(--fw-sb); color: var(--tx); margin: 0; }
.dashboard-card-tools { display: flex; align-items: center; gap: var(--s2); }
.dashboard-columns-grid { grid-template-columns: 1fr; }
.dashboard-columns-grid.dashboard-focused { grid-template-columns: 1fr; }
.dashboard-detail-section { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s4); margin-bottom: var(--s5); }
.dashboard-detail-section > .dashboard-card:only-child { grid-column: 1 / -1; }
.dashboard-kind-chip { display: inline-block; font-size: 10px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .04em; padding: 2px 7px; border-radius: var(--r-full); border: 1px solid transparent; }
.dashboard-kind-chip-session  { background: var(--clr-in-50); color: var(--clr-in-700); border-color: rgba(59,130,246,.2); }
.dashboard-kind-chip-feedback { background: var(--clr-vi-50); color: var(--clr-vi-700); border-color: rgba(139,92,246,.2); }
.dashboard-kind-chip-bilan    { background: var(--clr-ok-50); color: var(--clr-ok-700); border-color: rgba(16,185,129,.2); }
.dashboard-kind-chip-letter   { background: var(--clr-wa-50); color: var(--clr-wa-700); border-color: rgba(245,158,11,.2); }
.dashboard-priority-badge { display: inline-block; font-size: 10px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .04em; padding: 2px 7px; border-radius: var(--r-full); }
.dashboard-priority-high   { background: var(--clr-er-50); color: var(--clr-er-700); }
.dashboard-priority-normal { background: var(--surface-2); color: var(--tx-4); }

/* ══════════════════════════════════════════════════════
   §25  COMPOSANTS BILANS
   ══════════════════════════════════════════════════════ */

/* Bilan wizard */
.bilan-wizard { display: flex; flex-direction: column; gap: var(--s6); }
.bilan-progress { display: flex; align-items: center; gap: var(--s3); margin-bottom: var(--s8); }
.bilan-step-dot {
  width: 28px; height: 28px; border-radius: 50%;
  border: 2px solid var(--border); background: var(--surface);
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: var(--fw-b); color: var(--tx-4);
  flex-shrink: 0; transition: all var(--dur-fast);
}
.bilan-step-dot--active { border-color: var(--primary); background: var(--primary); color: #fff; }
.bilan-step-dot--done   { border-color: var(--success); background: var(--success); color: #fff; }
.bilan-step-connector { flex: 1; height: 1px; background: var(--border); }
.bilan-step-connector--done { background: var(--success); }

/* Bilan step card */
.bilan-step-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-2xl); padding: var(--s7); box-shadow: var(--sh-sm);
}
.bilan-step-header { display: flex; align-items: center; gap: var(--s4); margin-bottom: var(--s6); }
.bilan-step-number {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--primary-bg); color: var(--primary);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: var(--fw-b); flex-shrink: 0;
}
.bilan-step-title   { font-size: var(--text-xl); font-weight: var(--fw-b); }
.bilan-step-subtitle{ font-size: var(--text-sm); color: var(--tx-3); margin-top: 2px; }

/* Clinical test card */
.test-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-xl); padding: var(--s5);
  display: flex; flex-direction: column; gap: var(--s4);
  box-shadow: var(--sh-xs);
}
.test-card__header { display: flex; align-items: flex-start; gap: var(--s3); }
.test-card__icon   { font-size: 24px; flex-shrink: 0; }
.test-card__title  { font-size: var(--text-md); font-weight: var(--fw-sb); }
.test-card__meta   { display: flex; gap: var(--s2); flex-wrap: wrap; margin-top: var(--s1); }
.test-card__body   { font-size: var(--text-sm); color: var(--tx-3); line-height: 1.6; }
.test-card__stats  { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s3); }
.test-stat { background: var(--surface-2); border-radius: var(--r-lg); padding: var(--s3) var(--s4); }
.test-stat__label { font-size: var(--text-xs); color: var(--tx-4); font-weight: var(--fw-sb); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 4px; }
.test-stat__value { font-size: var(--text-lg); font-weight: var(--fw-b); color: var(--tx); }
.test-stat__sub   { font-size: var(--text-xs); color: var(--tx-3); margin-top: 2px; }

/* Bilan items existants */
.bilan-list { display: flex; flex-direction: column; gap: var(--s3); }
.bilan-item { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--r-lg); padding: var(--s4); }
.bilan-item strong { font-size: 13px; font-weight: var(--fw-sb); display: block; margin-bottom: 4px; }
.bilan-item p { font-size: 12px; color: var(--tx-3); }
.bilan-item time { font-size: 11px; color: var(--tx-4); margin-top: var(--s2); display: block; }
.bilans-panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s4); margin-bottom: var(--s5); flex-wrap: wrap; }
.bilans-panel-header h4 { font-size: 14px; font-weight: var(--fw-sb); }
.bilans-panel-header p  { font-size: 12px; color: var(--tx-3); margin-top: 4px; }
#evaluationTrendSummary { margin-bottom: var(--s5); padding: var(--s5); border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface-2); }
.evaluation-analysis-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s4); margin-bottom: var(--s4); }
.evaluation-analysis-heading h5 { margin-top: 3px; color: var(--tx); font-size: 16px; }
.evaluation-analysis-badge { flex-shrink: 0; padding: 4px 10px; border-radius: var(--r-full); background: var(--primary-bg); color: var(--primary); font-size: 9px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .04em; }
.evaluation-analysis-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); }
.evaluation-analysis-card { min-width: 0; padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); }
.evaluation-analysis-card h5 { margin: 5px 0 4px; color: var(--tx); font-size: 14px; }
.evaluation-analysis-card > p { min-height: 38px; color: var(--tx-3); font-size: 11px; line-height: 1.5; }
.evaluation-analysis-label { color: var(--tx-4); font-size: 9px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .06em; }
.evaluation-analysis-favorable { border-color: rgba(36, 153, 113, .28); }
.evaluation-analysis-attention { border-color: rgba(217, 146, 52, .38); }
.evaluation-analysis-variable { border-color: rgba(var(--primary-rgb), .3); }
.evaluation-analysis-incomplete { border-style: dashed; }
.evaluation-analysis-card dl { display: grid; gap: 6px; margin-top: var(--s3); }
.evaluation-analysis-card dl div { display: flex; align-items: baseline; justify-content: space-between; gap: var(--s3); padding-top: 6px; border-top: 1px solid var(--border); }
.evaluation-analysis-card dt { color: var(--tx-4); font-size: 9px; }
.evaluation-analysis-card dd { color: var(--tx-2); font-size: 10px; font-weight: var(--fw-sb); text-align: right; }
.evaluation-trend-points { display: flex; align-items: center; gap: 6px; min-height: 28px; margin-top: var(--s3); }
.evaluation-trend-point { display: inline-flex; align-items: center; justify-content: center; width: 25px; height: 25px; border-radius: 50%; font-size: 12px; font-weight: var(--fw-b); }
.evaluation-trend-point-favorable { background: var(--clr-ok-50); color: var(--clr-ok-700); }
.evaluation-trend-point-stable { background: var(--clr-in-50); color: var(--clr-in-700); }
.evaluation-trend-point-attention { background: var(--clr-wa-50); color: var(--clr-wa-700); }
.evaluation-trend-point-incomplete { background: var(--surface-2); border: 1px dashed var(--border-strong); color: var(--tx-4); }
.evaluation-trend-empty { color: var(--tx-4); font-size: 10px; }
.evaluation-analysis-disclaimer { margin-top: var(--s3); color: var(--tx-4); font-size: 9px; line-height: 1.45; }
@media (max-width: 700px) {
  #evaluationTrendSummary { padding: var(--s4); }
  .evaluation-analysis-heading { flex-direction: column; }
  .evaluation-analysis-grid { grid-template-columns: 1fr; }
  .evaluation-analysis-card > p { min-height: 0; }
}

.knee-assessment {
  margin-bottom: var(--s7);
  padding: var(--s6);
  border: 1px solid var(--border);
  border-radius: var(--r-2xl);
  background: linear-gradient(145deg, var(--surface), var(--primary-bg));
  box-shadow: var(--sh-sm);
}
.initial-assessment-overview {
  display: grid;
  gap: var(--s4);
  margin-bottom: var(--s5);
  padding: var(--s5);
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: var(--r-2xl);
  background: linear-gradient(145deg, var(--surface), rgba(var(--primary-rgb), .055));
  box-shadow: var(--sh-sm);
}
.general-health-record {
  display: grid;
  gap: var(--s4);
  margin-bottom: var(--s5);
  padding: var(--s5);
  border: 1px solid rgba(22, 142, 128, .2);
  border-radius: var(--r-2xl);
  background: linear-gradient(145deg, var(--surface), rgba(224, 248, 243, .58));
  box-shadow: var(--sh-sm);
}
.general-health-record-header,
.general-health-record-actions,
.general-health-form-actions,
.general-health-history-item header,
.general-health-history-item footer {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s4);
}
.general-health-record-header h4 { margin-top: 2px; font-size: var(--text-lg); }
.general-health-record-header p:not(.section-kicker) { max-width: 720px; margin-top: 4px; color: var(--tx-3); font-size: var(--text-sm); }
.general-health-record-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s3); }
.general-health-record-summary > div { padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: rgba(255,255,255,.78); }
.general-health-record-summary strong { display: block; color: #0f766e; font-size: var(--text-xl); }
.general-health-record-summary span { color: var(--tx-3); font-size: var(--text-xs); }
.general-health-record-summary .needs-review { border-color: var(--clr-wa-200); background: var(--clr-wa-50); }
.general-health-record-summary .needs-review strong { color: var(--clr-wa-700); }
.general-health-record-empty { grid-column: 1 / -1; padding: var(--s4); border: 1px dashed rgba(22,142,128,.3); border-radius: var(--r-lg); color: var(--tx-3); font-size: var(--text-sm); }
.general-health-record-actions { align-items: center; padding-top: var(--s3); border-top: 1px solid var(--border); }
.general-health-record-actions small { color: var(--tx-4); font-size: var(--text-xs); }
.general-health-record-editor { padding: var(--s5); border: 1px solid rgba(22,142,128,.18); border-radius: var(--r-xl); background: rgba(255,255,255,.86); }
.general-health-record-boundary { margin-bottom: var(--s4); padding: var(--s3) var(--s4); border-left: 4px solid var(--syn-amber-500); border-radius: 0 var(--r-lg) var(--r-lg) 0; background: var(--clr-wa-50); }
.general-health-record-boundary strong { color: var(--tx-2); font-size: var(--text-xs); }
.general-health-record-boundary p { margin-top: 3px; color: var(--tx-3); font-size: 10px; }
.general-health-record-editor form { display: grid; gap: var(--s4); }
.general-health-record-editor label { display: grid; gap: var(--s2); color: var(--tx-2); font-size: var(--text-xs); font-weight: var(--fw-sb); }
.general-health-record-editor input,
.general-health-record-editor select,
.general-health-record-editor textarea { width: 100%; }
.general-health-record-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); }
.general-health-traceability-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.general-health-form-actions { align-items: center; }
.general-health-record-history { display: grid; gap: var(--s3); }
.general-health-history-item { padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-xl); background: rgba(255,255,255,.82); }
.general-health-history-item.needs-review { border-left: 4px solid var(--syn-amber-500); }
.general-health-history-item header span { display: block; margin-bottom: 3px; color: #0f766e; font-size: 10px; font-weight: var(--fw-b); text-transform: uppercase; }
.general-health-history-item header strong { color: var(--tx-2); font-size: var(--text-sm); }
.general-health-history-item time { color: var(--tx-4); font-size: var(--text-xs); white-space: nowrap; }
.general-health-history-item > p { margin-top: var(--s3); color: var(--tx-3); font-size: var(--text-xs); line-height: 1.55; white-space: pre-line; }
.general-health-history-item footer { justify-content: flex-start; flex-wrap: wrap; margin-top: var(--s3); }
.general-health-history-item footer span { padding: 4px 7px; border-radius: var(--r-full); background: var(--surface-2); color: var(--tx-3); font-size: 9px; }
.general-health-history-item details { margin-top: var(--s3); color: var(--tx-4); font-size: 10px; }
.general-health-history-item details p { margin-top: var(--s2); line-height: 1.5; }
.assessment-general-health-context {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--s4);
  margin-top: var(--s4);
  padding: var(--s4);
  border: 1px solid rgba(var(--primary-rgb), .2);
  border-radius: var(--r-xl);
  background: linear-gradient(135deg, rgba(244, 246, 255, .98), rgba(224, 248, 243, .72));
}
.assessment-general-health-context-copy { min-width: 0; }
.assessment-general-health-context-copy > span {
  display: block;
  margin-bottom: 3px;
  color: var(--primary);
  font-size: 10px;
  font-weight: var(--fw-b);
  letter-spacing: .07em;
  text-transform: uppercase;
}
.assessment-general-health-context strong { display: block; color: var(--tx-1); font-size: var(--text-sm); }
.assessment-general-health-context p { margin-top: 4px; color: var(--tx-3); font-size: var(--text-xs); line-height: 1.5; }
.assessment-general-health-context .primary-btn { white-space: nowrap; }
.general-health-assessment-return {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
  padding: var(--s3) var(--s4);
  border-radius: var(--r-lg);
  background: rgba(var(--primary-rgb), .08);
}
.general-health-assessment-return span { color: var(--tx-3); font-size: var(--text-xs); }
.initial-assessment-overview-header,
.initial-assessment-overview-footer,
.initial-assessment-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
}
.initial-assessment-overview-header { align-items: flex-start; }
.initial-assessment-overview-header h4 { margin-top: 2px; font-size: var(--text-lg); }
.initial-assessment-overview-header p:not(.section-kicker) { margin-top: 4px; color: var(--tx-3); font-size: var(--text-sm); }
.initial-assessment-overview-content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); }
.initial-assessment-overview-item {
  min-width: 0;
  padding: var(--s4);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: rgba(255, 255, 255, .78);
}
.initial-assessment-overview-item span { display: block; margin-bottom: 4px; color: var(--tx-4); font-size: 10px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .05em; }
.initial-assessment-overview-item strong { display: -webkit-box; overflow: hidden; color: var(--tx-2); font-size: var(--text-sm); font-weight: var(--fw-sb); line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.initial-assessment-overview-empty { grid-column: 1 / -1; padding: var(--s4); border: 1px dashed var(--border-strong); border-radius: var(--r-lg); color: var(--tx-3); font-size: var(--text-sm); }
.initial-assessment-overview-footer { padding-top: var(--s3); border-top: 1px solid var(--border); }
.initial-assessment-overview-footer small { color: var(--tx-4); font-size: var(--text-xs); }
.assessment-context-actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--s2); flex-wrap: wrap; }
.initial-assessment-workspace,
.follow-up-assessment-workspace { display: none; }
.detail-modal-content.initial-assessment-page-open > .detail-tabs,
.detail-modal-content.initial-assessment-page-open > .patient-unified-header,
.detail-modal-content.initial-assessment-page-open > .detail-panel:not(#bilansPanel),
.detail-modal-content.follow-up-assessments-page-open > .detail-tabs,
.detail-modal-content.follow-up-assessments-page-open > .patient-unified-header,
.detail-modal-content.follow-up-assessments-page-open > .detail-panel:not(#bilansPanel) { display: none !important; }
#bilansPanel.initial-assessment-open > * { display: none !important; }
#bilansPanel.initial-assessment-open > .initial-assessment-workspace { display: flex !important; flex-direction: column; }
#bilansPanel.initial-assessment-open.initial-assessment-health-open > .initial-assessment-workspace { display: none !important; }
#bilansPanel.initial-assessment-open.initial-assessment-health-open > .general-health-record { display: grid !important; }
#bilansPanel.follow-up-assessments-open > * { display: none !important; }
#bilansPanel.follow-up-assessments-open > .follow-up-assessment-workspace { display: flex !important; flex-direction: column; }
.initial-assessment-workspace > .initial-assessment-page-header { order: 0; }
.initial-assessment-workspace > .knee-assessment-header { order: 1; }
.initial-assessment-workspace > .knee-assessment-form { order: 2; }
.initial-assessment-workspace > .initial-assessment-questionnaires { order: 3; }
.initial-assessment-workspace > .measurement-module { order: 4; }
.initial-assessment-workspace > .clinical-links-panel { order: 5; }
.initial-assessment-workspace > .assessment-summary { order: 6; }
.initial-assessment-questionnaires {
  margin-top: var(--s5);
  padding-top: var(--s5);
  border-top: 1px solid var(--border);
}
.initial-assessment-questionnaires > header { margin-bottom: var(--s4); }
.initial-assessment-questionnaires > header h5 { margin-top: 2px; color: var(--tx); font-size: var(--text-md); }
.initial-assessment-questionnaires > header p:not(.section-kicker) { margin-top: 4px; color: var(--tx-3); font-size: var(--text-sm); }
.initial-assessment-questionnaires .daily-life-impact { margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.initial-assessment-page-header {
  position: sticky;
  z-index: 12;
  top: 0;
  margin: calc(var(--s6) * -1) calc(var(--s6) * -1) var(--s5);
  padding: var(--s4) var(--s6);
  border-bottom: 1px solid var(--border);
  background: rgba(255, 255, 255, .82);
  backdrop-filter: blur(14px);
}
.initial-assessment-page-header > div { flex: 1; }
.initial-assessment-page-header strong { display: block; margin-top: 2px; color: var(--tx); font-size: var(--text-md); }
.initial-assessment-validated-summary {
  order: 1;
  display: grid;
  gap: 18px;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 22px;
  background:
    radial-gradient(circle at 92% 8%, rgba(242,139,60,.10), transparent 28%),
    linear-gradient(145deg, rgba(255,255,255,.97), rgba(247,248,255,.94));
  box-shadow: 0 14px 34px rgba(35,40,78,.055);
}
.initial-assessment-validated-summary > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.initial-assessment-validated-summary > header span { color: #168b72; font-size: 9px; font-weight: 850; letter-spacing: .075em; text-transform: uppercase; }
.initial-assessment-validated-summary > header h4 { margin-top: 3px; color: var(--tx); font-size: clamp(20px, 2.4vw, 27px); letter-spacing: -.03em; }
.initial-assessment-validated-summary > header small { display: block; margin-top: 4px; color: var(--tx-4); font-size: 10px; }
.initial-assessment-validated-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.initial-assessment-summary-card {
  min-width: 0;
  padding: 17px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 17px;
  background: rgba(255,255,255,.82);
}
.initial-assessment-summary-card.is-important { border-top: 3px solid #e18a3c; }
.initial-assessment-summary-card.is-goals { border-top: 3px solid #626be0; }
.initial-assessment-summary-card.is-plan { border-top: 3px solid #168b72; }
.initial-assessment-summary-card > span { color: var(--tx); font-size: 14px; font-weight: 850; }
.initial-assessment-summary-card dl { display: grid; gap: 10px; margin-top: 13px; }
.initial-assessment-summary-card dl > div { display: grid; gap: 3px; padding-top: 9px; border-top: 1px solid rgba(var(--primary-rgb), .09); }
.initial-assessment-summary-card dt { color: var(--tx-4); font-size: 8px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.initial-assessment-summary-card dd {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  color: var(--tx-2);
  font-size: 11px;
  line-height: 1.5;
  white-space: pre-line;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}
.initial-assessment-summary-card > p { margin-top: 13px; color: var(--tx-4); font-size: 10px; }
.initial-assessment-workspace.assessment-summary-first > .knee-assessment-header,
.initial-assessment-workspace.assessment-summary-first > .knee-assessment-form,
.initial-assessment-workspace.assessment-summary-first > .assessment-tools-toggle,
.initial-assessment-workspace.assessment-summary-first > .initial-assessment-questionnaires,
.initial-assessment-workspace.assessment-summary-first > .measurement-module,
.initial-assessment-workspace.assessment-summary-first > .clinical-links-panel,
.initial-assessment-workspace.assessment-summary-first > .assessment-summary { display: none !important; }
.initial-assessment-back-btn {
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid rgba(17, 24, 39, .08);
  border-radius: var(--r-lg);
  background: var(--surface);
  color: var(--tx-2);
  font-size: var(--text-xs);
  font-weight: var(--fw-b);
}
.initial-assessment-back-btn:hover { border-color: rgba(var(--primary-rgb), .2); color: var(--primary); }
.knee-assessment-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s4);
  margin-bottom: var(--s5);
}
.knee-assessment-header h4 { font-size: var(--text-lg); margin-top: 2px; }
.knee-assessment-header p:not(.section-kicker) { color: var(--tx-3); font-size: var(--text-sm); margin-top: 4px; }
.assessment-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--s3); flex-wrap: wrap; }
.assessment-header-actions .primary-btn { min-height: 38px; padding: 8px 12px; white-space: nowrap; }
.assessment-status {
  flex-shrink: 0;
  padding: 5px 10px;
  border-radius: var(--r-full);
  background: var(--surface-2);
  border: 1px solid var(--border);
  color: var(--tx-3);
  font-size: var(--text-xs);
  font-weight: var(--fw-sb);
}
.assessment-status.is-saved { background: var(--clr-ok-50); border-color: var(--clr-ok-200); color: var(--clr-ok-700); }
.assessment-status.needs-review { background: var(--clr-wa-50); border-color: var(--clr-wa-200); color: var(--clr-wa-700); }
.knee-assessment-form { display: flex; flex-direction: column; gap: var(--s4); }
.assessment-section {
  padding: var(--s5);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--surface);
}
.assessment-section legend {
  display: flex;
  align-items: center;
  gap: var(--s2);
  padding-right: var(--s2);
  color: var(--tx);
  font-size: var(--text-sm);
  font-weight: var(--fw-sb);
}
.assessment-section legend span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--primary-bg);
  color: var(--primary);
  font-size: var(--text-xs);
}
.assessment-section label { display: flex; flex-direction: column; gap: var(--s2); margin-top: var(--s4); font-size: var(--text-sm); font-weight: var(--fw-sb); }
.assessment-section textarea,
.assessment-section input,
.assessment-section select {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--surface);
  font-weight: var(--fw-r);
}
.assessment-section textarea:focus,
.assessment-section input:focus,
.assessment-section select:focus { outline: 2px solid var(--primary-bg); border-color: var(--primary); }
.assessment-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); }
.assessment-section-intro { margin: var(--s3) 0 0; color: var(--tx-3); font-size: var(--text-xs); line-height: 1.5; }
.assessment-quick-modules-panel { margin-top: var(--s4); }
.assessment-quick-modules-empty {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
  padding: var(--s4);
  border: 1px dashed rgba(var(--primary-rgb), .26);
  border-radius: var(--r-xl);
  background: linear-gradient(145deg, var(--surface), var(--primary-bg));
}
.assessment-quick-modules-empty strong { display: block; color: var(--primary-dk); font-size: var(--text-sm); }
.assessment-quick-modules-empty p { margin-top: 3px; color: var(--tx-3); font-size: var(--text-xs); line-height: 1.45; }
.assessment-added-module-list { display: grid; gap: var(--s3); }
.assessment-added-module {
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: var(--r-xl);
  background: var(--surface);
  box-shadow: var(--sh-xs);
}
.assessment-added-module-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); padding: var(--s4); background: linear-gradient(145deg, var(--primary-bg), var(--surface)); }
.assessment-added-module-header h5 { color: var(--tx); font-size: var(--text-sm); }
.assessment-added-module-header p { margin-top: 3px; color: var(--tx-3); font-size: 11px; line-height: 1.4; }
.assessment-added-module-header button { flex: 0 0 auto; padding: 6px 9px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); color: var(--tx-3); font-size: 11px; font-weight: var(--fw-sb); cursor: pointer; }
.assessment-added-module-scope { padding: 0 var(--s4) var(--s3); color: var(--tx-3); font-size: var(--text-xs); line-height: 1.45; }
.assessment-added-module-guidance {
  display: grid;
  gap: 4px;
  margin: 0 var(--s4) var(--s4);
  padding: 12px 14px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: var(--r-lg);
  background: linear-gradient(145deg, rgba(246, 247, 255, .94), rgba(255, 255, 255, .98));
}
.assessment-added-module-guidance > strong { color: var(--primary-dk); font-size: var(--text-xs); }
.assessment-added-module-guidance > p { color: var(--tx-3); font-size: 11px; line-height: 1.5; }
.assessment-added-module-guidance details { margin-top: 2px; }
.assessment-added-module-guidance summary { width: fit-content; color: var(--primary); font-size: 10px; font-weight: var(--fw-sb); cursor: pointer; }
.assessment-added-module-guidance ul { display: grid; gap: 4px; margin: 7px 0 0; padding-left: 17px; }
.assessment-added-module-guidance li { color: var(--tx-3); font-size: 10px; line-height: 1.4; }
.assessment-added-module-guidance a { color: var(--primary-dk); text-decoration-thickness: 1px; text-underline-offset: 2px; }
.assessment-added-measures { display: grid; gap: 1px; border-top: 1px solid var(--border); background: var(--border); }
.assessment-added-measure { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--s3); padding: 11px var(--s4); background: var(--surface); }
.assessment-added-measure input { width: 16px; height: 16px; accent-color: var(--primary); }
.assessment-added-measure-content strong { display: block; color: var(--tx-2); font-size: var(--text-xs); }
.assessment-added-measure-content small { display: block; margin-top: 2px; color: var(--tx-4); font-size: 10px; line-height: 1.35; }
.assessment-measure-priority { display: inline-flex; margin-left: 5px; padding: 2px 6px; border-radius: var(--r-full); background: var(--surface-2); color: var(--tx-3); font-size: 9px; font-style: normal; font-weight: var(--fw-sb); vertical-align: 1px; }
.assessment-measure-priority--essential { background: var(--primary-bg); color: var(--primary-dk); }
.assessment-measure-priority--clinical { background: var(--clr-wa-50); color: var(--clr-wa-700); }
.assessment-added-measure button { padding: 6px 9px; border: 1px solid rgba(var(--primary-rgb), .2); border-radius: var(--r-lg); background: var(--primary-bg); color: var(--primary-dk); font-size: 11px; font-weight: var(--fw-sb); cursor: pointer; }
.assessment-added-measure.is-excluded .assessment-added-measure-content { opacity: .55; }
.assessment-added-measure.is-excluded button { display: none; }
.assessment-quick-module-message { margin-top: var(--s3); color: var(--clr-ok-700); font-size: var(--text-xs); }
.assessment-quick-module-modal-content { width: min(980px, calc(100vw - 32px)); max-width: 980px; max-height: calc(100vh - 40px); overflow: auto; }
.assessment-quick-module-intro { margin: 0 0 var(--s4); color: var(--tx-3); font-size: var(--text-sm); line-height: 1.5; }
.assessment-quick-module-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); }
.assessment-quick-module-entry { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr); gap: var(--s4); padding: var(--s4); border: 1px solid rgba(var(--primary-rgb), .16); border-radius: var(--r-xl); background: linear-gradient(135deg, rgba(var(--primary-rgb), .08), rgba(255, 255, 255, .92)); }
.assessment-quick-module-entry > div:first-child { display: flex; flex-direction: column; justify-content: center; gap: var(--s2); padding: var(--s3); }
.assessment-quick-module-entry > div:first-child span { color: var(--primary-dk); font-size: 10px; font-weight: var(--fw-bold); letter-spacing: .08em; text-transform: uppercase; }
.assessment-quick-module-entry > div:first-child strong { color: var(--tx-1); font-size: var(--text-lg); }
.assessment-quick-module-entry > div:first-child p { margin: 0; color: var(--tx-3); font-size: var(--text-sm); line-height: 1.5; }
.assessment-quick-module-specialized { grid-column: 1 / -1; border: 1px solid rgba(17, 19, 24, .09); border-radius: var(--r-xl); background: var(--surface); }
.assessment-quick-module-specialized > summary { display: grid; grid-template-columns: 1fr auto; gap: 3px var(--s3); padding: var(--s4) var(--s5); cursor: pointer; list-style: none; }
.assessment-quick-module-specialized > summary::-webkit-details-marker { display: none; }
.assessment-quick-module-specialized > summary span { color: var(--tx-1); font-weight: var(--fw-bold); }
.assessment-quick-module-specialized > summary strong { grid-row: 1 / span 2; grid-column: 2; align-self: center; min-width: 34px; padding: 6px 9px; border-radius: var(--r-full); background: var(--primary-bg); color: var(--primary-dk); text-align: center; }
.assessment-quick-module-specialized > summary small { color: var(--tx-3); }
.assessment-quick-module-specialized-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); padding: 0 var(--s4) var(--s4); }
.assessment-quick-module-card { display: flex; min-width: 0; flex-direction: column; gap: var(--s3); padding: var(--s5); border: 1px solid rgba(17, 19, 24, .09); border-radius: var(--r-xl); background: var(--surface); box-shadow: var(--sh-sm); }
.assessment-quick-module-card header { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.assessment-quick-module-card header span { padding: 4px 8px; border-radius: var(--r-full); background: var(--primary-bg); color: var(--primary-dk); font-size: 10px; font-weight: var(--fw-sb); }
.assessment-quick-module-card header small { color: var(--tx-4); font-size: 10px; }
.assessment-quick-module-card h4 { font-size: var(--text-md); }
.assessment-quick-module-card > p { color: var(--tx-3); font-size: var(--text-xs); line-height: 1.45; }
.assessment-quick-module-card ul { display: grid; gap: 5px; margin: 0; padding-left: 18px; color: var(--tx-2); font-size: 11px; line-height: 1.4; }
.assessment-quick-module-card .primary-btn { align-self: flex-start; margin-top: auto; }
.assessment-quick-module-card .primary-btn:disabled { opacity: .62; cursor: default; }
.assessment-field-origin {
  width: fit-content;
  padding: 3px 7px;
  border-radius: var(--r-full);
  background: var(--surface-2);
  color: var(--tx-4);
  font-size: 10px;
  font-weight: var(--fw-sb);
}
.assessment-field-origin.is-patient { background: var(--clr-wa-50); color: var(--clr-wa-700); }
.assessment-field-origin.is-clinician { background: var(--clr-ok-50); color: var(--clr-ok-700); }
.assessment-measure-notice {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px var(--s4);
  margin-top: var(--s4);
  padding: var(--s4);
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: var(--r-lg);
  background: var(--primary-bg);
}
.assessment-measure-notice strong { color: var(--primary-dk); font-size: var(--text-sm); }
.assessment-measure-notice p { color: var(--tx-3); font-size: var(--text-xs); line-height: 1.45; }
.assessment-measure-notice span { grid-column: 2; grid-row: 1 / span 2; align-self: center; padding: 5px 9px; border-radius: var(--r-full); background: #fff; color: var(--primary-dk); font-size: 11px; font-weight: var(--fw-sb); }
.assessment-reasoning-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--s4); }
.assessment-reasoning-grid label { min-width: 0; }
.assessment-reasoning-grid label small { color: var(--tx-4); font-size: 10px; font-weight: var(--fw-r); }
.assessment-fact-field textarea { border-color: var(--clr-ok-200); background: linear-gradient(145deg, #fff, var(--clr-ok-50)); }
.assessment-hypothesis-field textarea { border-color: var(--clr-in-200); background: linear-gradient(145deg, #fff, var(--clr-in-50)); }
.assessment-watch-field textarea { border-color: var(--clr-wa-200); background: linear-gradient(145deg, #fff, var(--clr-wa-50)); }
.pain-mechanism-profile {
  display: grid;
  gap: 16px;
  margin: 8px 0 18px;
  padding: 20px;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(255, 249, 244, .94), rgba(246, 247, 255, .96));
}
.pain-mechanism-profile > header,
.pain-mechanism-profile > footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.pain-mechanism-profile > header > div { display: grid; gap: 3px; }
.pain-mechanism-profile > header > div > span { color: var(--primary-dk); font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.pain-mechanism-profile > header h3 { font-size: 18px; line-height: 1.25; }
.pain-mechanism-profile > header > label { width: min(220px, 100%); margin: 0; font-size: 11px; }
.pain-mechanism-profile select {
  width: 100%;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 12px;
  background: rgba(255, 255, 255, .9);
  color: var(--tx-2);
  font: 700 12px/1.2 var(--font);
}
.pain-mechanism-profile > p { margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.55; }
.pain-mechanism-profile-editor { display: grid; grid-template-columns: minmax(160px, 190px) minmax(0, 1fr); align-items: center; gap: 24px; }
.pain-mechanism-chart-column { display: grid; justify-items: center; gap: 9px; }
.pain-mechanism-chart {
  position: relative;
  display: grid;
  width: 164px;
  aspect-ratio: 1;
  place-items: center;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(51, 58, 92, .05), 0 16px 30px rgba(51, 58, 92, .1);
  transition: background .2s ease;
}
.pain-mechanism-chart::after {
  position: absolute;
  width: 58%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 0 0 1px rgba(51, 58, 92, .06);
  content: '';
}
.pain-mechanism-chart > span { position: relative; z-index: 1; display: grid; justify-items: center; gap: 1px; color: var(--tx-2); }
.pain-mechanism-chart strong { font-size: 24px; font-weight: 900; letter-spacing: -.04em; }
.pain-mechanism-chart small { color: var(--tx-4); font-size: 9px; font-weight: 750; }
.pain-mechanism-total-message { margin: 0; color: var(--tx-4); font-size: 10px; font-weight: 700; text-align: center; }
.pain-mechanism-total-message.is-complete { color: var(--clr-ok-700); }
.pain-mechanism-total-message.is-invalid { color: var(--clr-er-700); }
.pain-mechanism-controls { display: grid; gap: 9px; }
.pain-mechanism-controls > label {
  display: flex;
  min-width: 0;
  margin: 0;
  padding: 9px 11px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 13px;
  background: rgba(255, 255, 255, .76);
  color: var(--tx-2);
  font-size: 12px;
  font-weight: 800;
}
.pain-mechanism-controls > label > span { display: inline-flex; align-items: center; gap: 8px; }
.pain-mechanism-controls i { width: 10px; height: 10px; flex: 0 0 auto; border-radius: 50%; background: #9aa1b5; }
.pain-mechanism-controls .is-nociceptive i { background: #e88957; }
.pain-mechanism-controls .is-neuropathic i { background: #6d70d8; }
.pain-mechanism-controls .is-nociplastic i { background: #2f9b83; }
.pain-mechanism-controls input {
  width: 72px;
  min-height: 36px;
  padding: 6px 8px;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 10px;
  background: #fff;
  color: var(--tx);
  font: 800 13px/1 var(--font);
  text-align: right;
}
.pain-mechanism-controls > .pain-mechanism-confidence { display: grid; grid-template-columns: minmax(0, 1fr) minmax(130px, 180px); }
.pain-mechanism-profile > footer { padding-top: 12px; border-top: 1px solid rgba(var(--primary-rgb), .11); }
.pain-mechanism-profile > footer p { margin: 0; color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.pain-mechanism-profile > footer button { flex: 0 0 auto; }
.pain-mechanism-profile > footer button:disabled { cursor: not-allowed; opacity: .45; }
@media (max-width: 700px) {
  .pain-mechanism-profile { padding: 17px 15px; }
  .pain-mechanism-profile > header,
  .pain-mechanism-profile > footer { align-items: stretch; flex-direction: column; }
  .pain-mechanism-profile > header > label,
  .pain-mechanism-profile > footer button { width: 100%; }
  .pain-mechanism-profile-editor { grid-template-columns: 1fr; gap: 16px; }
  .pain-mechanism-chart { width: 148px; }
  .pain-mechanism-controls > .pain-mechanism-confidence { grid-template-columns: 1fr; }
}
.assessment-plan-boundary { margin-top: var(--s4); padding: var(--s3) var(--s4); border-radius: var(--r-lg); background: var(--surface-2); color: var(--tx-3); font-size: var(--text-xs); line-height: 1.45; }
.assessment-actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--s4); }
.assessment-save-message { color: var(--clr-ok-700); font-size: var(--text-sm); }
.assessment-summary {
  margin-top: var(--s5);
  padding: var(--s5);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--surface);
}
.assessment-summary-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s4);
  margin-bottom: var(--s4);
}
.assessment-summary-header h5 { font-size: var(--text-md); }
.assessment-summary-header p { margin-top: 4px; color: var(--tx-3); font-size: var(--text-xs); }
.assessment-summary-header button { padding: 8px 12px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface-2); font-weight: var(--fw-sb); white-space: nowrap; }
.assessment-summary-field { display: flex; flex-direction: column; gap: var(--s2); font-size: var(--text-sm); font-weight: var(--fw-sb); }
.assessment-summary-field textarea { width: 100%; padding: 12px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); font-weight: var(--fw-r); line-height: 1.55; }
.assessment-summary-field textarea:focus { outline: 2px solid var(--primary-bg); border-color: var(--primary); }
.measurement-module {
  margin-top: var(--s5);
  padding: var(--s5);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--surface);
}
.measurement-form { display: flex; flex-direction: column; gap: var(--s4); }
.measurement-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s3); }
.measurement-grid--top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.measurement-form label { display: flex; flex-direction: column; gap: var(--s2); font-size: var(--text-sm); font-weight: var(--fw-sb); }
.measurement-form input,
.measurement-form select,
.measurement-form textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); font-weight: var(--fw-r); }
.measurement-form input:focus,
.measurement-form select:focus,
.measurement-form textarea:focus { outline: 2px solid var(--primary-bg); border-color: var(--primary); }
.measurement-history { display: flex; flex-direction: column; gap: var(--s3); margin-top: var(--s5); }
.measurement-empty { padding: var(--s4); border: 1px dashed var(--border); border-radius: var(--r-lg); color: var(--tx-3); font-size: var(--text-sm); text-align: center; }
.measurement-entry { padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface-2); }
.measurement-entry-header { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); margin-bottom: var(--s3); }
.measurement-entry-title { font-size: var(--text-sm); font-weight: var(--fw-sb); }
.measurement-entry-type { padding: 3px 8px; border-radius: var(--r-full); background: var(--primary-bg); color: var(--primary); font-size: var(--text-xs); font-weight: var(--fw-sb); }
.measurement-values { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s2); }
.measurement-value { padding: var(--s3); border-radius: var(--r-lg); background: var(--surface); }
.measurement-value span { display: block; color: var(--tx-4); font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }
.measurement-value strong { display: block; margin-top: 3px; font-size: var(--text-sm); }
.measurement-delta { color: var(--tx-3); font-size: var(--text-xs); font-weight: var(--fw-r); }
.measurement-entry-note { margin-top: var(--s3); color: var(--tx-3); font-size: var(--text-xs); }
.measurement-active-choice { flex-direction: row !important; align-items: center; gap: 9px !important; padding: var(--s3) var(--s4); border: 1px solid rgba(var(--primary-rgb), .14); border-radius: var(--r-lg); background: var(--primary-bg); color: var(--primary-dk); }
.measurement-active-choice input { width: auto; }
.measurement-entry.is-active { border-color: rgba(var(--primary-rgb), .3); box-shadow: 0 8px 24px rgba(var(--primary-rgb), .08); }
.measurement-pin-btn { margin-top: var(--s3); padding: 7px 10px; border: 1px solid rgba(var(--primary-rgb), .18); border-radius: var(--r-lg); background: #fff; color: var(--primary-dk); font-size: 11px; font-weight: var(--fw-sb); cursor: pointer; }

.pre-intake {
  margin: var(--s6) 0;
  padding: var(--s6);
  border: 1px solid var(--border);
  border-radius: var(--r-2xl);
  background: linear-gradient(145deg, var(--surface), var(--primary-bg));
  box-shadow: var(--sh-sm);
}
.pre-intake-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s4); }
.pre-intake-heading h3 { margin-top: 2px; font-size: var(--text-xl); }
.pre-intake-heading p:not(.section-kicker) { margin-top: 4px; color: var(--tx-3); font-size: var(--text-sm); }
.pre-intake-progress { margin: var(--s5) 0; color: var(--tx-3); font-size: var(--text-xs); font-weight: var(--fw-sb); }
.pre-intake-progress-track { height: 7px; margin-top: var(--s2); overflow: hidden; border-radius: var(--r-full); background: var(--border); }
.pre-intake-progress-track span { display: block; width: 33.333%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--primary), var(--success)); transition: width var(--dur-mid) var(--ease); }
.pre-intake-form { display: flex; flex-direction: column; gap: var(--s5); }
.pre-intake-step { padding: var(--s5); border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface); }
.pre-intake-step-header { display: flex; align-items: center; gap: var(--s3); margin-bottom: var(--s5); }
.pre-intake-step-header > span { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex-shrink: 0; border-radius: 50%; background: var(--primary-bg); color: var(--primary); font-weight: var(--fw-b); }
.pre-intake-step-header h4 { font-size: var(--text-md); }
.pre-intake-step-header p { margin-top: 2px; color: var(--tx-3); font-size: var(--text-xs); }
.pre-intake-step > label,
.pre-intake-score-grid label { display: flex; flex-direction: column; gap: var(--s2); margin-top: var(--s4); font-size: var(--text-sm); font-weight: var(--fw-sb); }
.pre-intake-step input,
.pre-intake-step select,
.pre-intake-step textarea { width: 100%; padding: 11px 12px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); font-weight: var(--fw-r); line-height: 1.45; }
.pre-intake-step input:focus,
.pre-intake-step select:focus,
.pre-intake-step textarea:focus { outline: 2px solid var(--primary-bg); border-color: var(--primary); }
.pre-intake-score-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s3); }
.pre-intake-score-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pre-intake-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s2); margin-top: var(--s5); padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface-2); }
.pre-intake-checks legend { grid-column: 1 / -1; padding-right: var(--s2); font-size: var(--text-sm); font-weight: var(--fw-sb); }
.pre-intake-checks label { display: flex; align-items: flex-start; gap: var(--s2); color: var(--tx-2); font-size: var(--text-xs); }
.pre-intake-checks input { width: auto; margin-top: 2px; }
.pre-intake-actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--s3); }
.pre-intake-actions > p { flex: 1; color: var(--tx-3); font-size: var(--text-xs); }
.pre-intake-actions button { padding: 10px 14px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); font-weight: var(--fw-sb); }
.pre-intake-actions button.primary-btn { border-color: var(--primary); background: var(--primary); color: #fff; }
.pre-intake-review-summary { display: grid; gap: var(--s3); }
.pre-intake-review-empty { padding: var(--s3) var(--s4); border-radius: var(--r-lg); background: var(--primary-bg); color: var(--tx-2); font-size: var(--text-sm); }
.pre-intake-review-item { padding: var(--s4); border-radius: var(--r-lg); background: var(--surface-2); }
.pre-intake-review-item > div { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.pre-intake-review-item strong { color: var(--tx-1); font-size: var(--text-sm); }
.pre-intake-review-item button { padding: 5px 8px; border: 0; border-radius: var(--r-md); background: transparent; color: var(--primary); font-size: var(--text-xs); font-weight: var(--fw-sb); }
.pre-intake-review-item button:hover,
.pre-intake-review-item button:focus-visible { background: var(--primary-bg); outline: none; }
.pre-intake-review-item p { margin-top: var(--s2); color: var(--tx-2); font-size: var(--text-sm); line-height: 1.5; }
.pre-intake-review-item.is-empty p { color: var(--tx-3); }
.patient-choice-notice,
.patient-consent-summary { margin: var(--s3) 0; padding: var(--s3) var(--s4); border-radius: var(--r-lg); background: var(--primary-bg); color: var(--tx-2); font-size: var(--text-xs); line-height: 1.5; }
.functional-activity-list { display: flex; flex-direction: column; gap: var(--s3); margin-top: var(--s4); }
.functional-activity-row { display: grid; grid-template-columns: minmax(0, 1fr) 180px; gap: var(--s3); padding: var(--s3); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface-2); }
.functional-activity-row label { display: flex; flex-direction: column; gap: var(--s2); font-size: var(--text-xs); font-weight: var(--fw-sb); }
.functional-scale-help { margin-top: var(--s2); color: var(--tx-3); font-size: var(--text-xs); }
.pre-intake-step label:has(.inline-checkbox) { flex-direction: row; align-items: flex-start; font-weight: var(--fw-r); }
.pre-intake-in-person-choice { display: flex; gap: var(--s3); align-items: flex-start; margin: var(--s3) 0; padding: var(--s4); border: 1px solid rgba(88,101,216,.28); border-radius: var(--r-xl); background: rgba(88,101,216,.06); color: var(--tx-1); }
.pre-intake-in-person-choice input { flex: 0 0 auto; margin-top: 3px; }
.pre-intake-in-person-choice strong { display: block; font-size: var(--text-sm); line-height: 1.35; }
.pre-intake-in-person-choice small { display: block; margin-top: 4px; color: var(--tx-3); font-size: var(--text-xs); line-height: 1.45; }
.inline-checkbox { width: auto !important; margin-top: 2px; }
.safety-follow-up { margin-top: var(--s3); padding: var(--s4); border: 1px solid var(--warning); border-radius: var(--r-lg); background: var(--clr-wa-50); color: var(--tx-2); font-size: var(--text-xs); line-height: 1.5; }
.safety-follow-up.is-urgent { border-color: var(--error); background: var(--clr-er-50); }
.safety-follow-up.is-urgent strong { color: var(--error); }
.safety-follow-up p { margin-top: var(--s2); }
.safety-follow-up textarea { margin-top: var(--s3); }

.app-shell.patient-mode .sidebar-section,
.app-shell.patient-mode .topbar,
.app-shell.patient-mode .mobile-nav { display: none; }
.app-shell.patient-mode .sidebar { justify-content: space-between; }
.app-shell.patient-mode .main-content { padding-top: var(--s6); }
.patient-area-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s2); margin: var(--s5) 0; padding: 5px; border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface-2); }
.patient-area-nav button { padding: 10px 12px; border-radius: var(--r-lg); color: var(--tx-3); font-size: var(--text-xs); font-weight: var(--fw-sb); }
.patient-area-nav button.active { background: var(--surface); color: var(--primary); box-shadow: var(--sh-xs); }
.patient-area-panel { animation: synapseRise 240ms var(--ease) both; }
.patient-home-area { display: grid; gap: var(--s5); }
.patient-home-welcome { padding-top: var(--s2); }
.patient-home-welcome h2 { margin: 0; font-size: clamp(28px, 4vw, 38px); letter-spacing: -.035em; }
.patient-home-welcome p:last-child { margin: var(--s2) 0 0; color: var(--tx-3); }
.patient-home-primary { padding: clamp(var(--s5), 4vw, var(--s7)); border-radius: var(--r-2xl); color: #fff; background: linear-gradient(135deg, var(--primary), #6777df); box-shadow: 0 18px 42px rgba(88,101,216,.25); }
.patient-home-primary > span { display: block; margin-bottom: var(--s2); color: rgba(255,255,255,.78); font-size: 10px; font-weight: var(--fw-b); letter-spacing: .09em; text-transform: uppercase; }
.patient-home-priority-label { display: inline-flex; margin-bottom: var(--s4); padding: 6px 10px; border-radius: var(--r-pill); background: rgba(255,255,255,.16); color: #fff; font-size: 11px; letter-spacing: .04em; }
.patient-home-primary--pre-intake { background: linear-gradient(135deg, #5968d8, #5b90de); }
.patient-home-primary h3 { margin: 0; font-size: clamp(22px, 3vw, 30px); line-height: 1.12; }
.patient-home-primary p { max-width: 620px; margin: var(--s3) 0 var(--s5); color: rgba(255,255,255,.9); line-height: 1.55; }
.patient-home-primary .primary-btn { background: #fff; color: var(--primary-dk); box-shadow: none; }
.patient-home-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s3); }
.patient-home-summary-card { min-height: 138px; padding: var(--s5); border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface); text-align: left; box-shadow: var(--sh-xs); transition: transform var(--dur-fast), box-shadow var(--dur-fast), border-color var(--dur-fast); }
.patient-home-summary-card:hover { transform: translateY(-2px); border-color: rgba(88,101,216,.3); box-shadow: var(--sh-md); }
.patient-home-summary-card--action { border-color: rgba(88,101,216,.28); background: linear-gradient(135deg, rgba(88,101,216,.08), var(--surface)); }
.patient-home-summary-card span { display: block; margin-bottom: var(--s2); color: var(--tx-3); font-size: var(--text-xs); font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .06em; }
.patient-home-summary-card strong { display: block; color: var(--tx-1); font-size: var(--text-md); line-height: 1.3; }
.patient-home-summary-card small { display: block; margin-top: var(--s2); color: var(--primary); font-size: var(--text-xs); }

.patient-workspace { position: relative; }
.patient-app-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  padding-bottom: var(--s4);
  border-bottom: 1px solid var(--border);
}
.patient-app-heading { min-width: 0; flex: 1; }
.patient-app-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--s3); }
.settings-account-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s2); }
.settings-account-actions { margin-top: var(--s3); }
.session-logout-btn { color: var(--tx-3); }
.session-logout-btn:hover { color: var(--tx); }
.patient-profile-context { display: flex; align-items: center; gap: var(--s2); }
.patient-account-control { position: relative; display: inline-flex; align-items: center; gap: 8px; }
.patient-notifications-center { position: relative; z-index: 82; flex: 0 0 auto; }
.patient-notifications-center > summary { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 43px; min-height: 43px; cursor: pointer; list-style: none; color: var(--primary); }
.patient-notifications-center > summary::-webkit-details-marker { display: none; }
.patient-notifications-trigger { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 1px solid var(--border); border-radius: var(--r-full); background: var(--surface); box-shadow: var(--sh-xs); }
.patient-notifications-trigger svg { width: 18px; height: 18px; }
.patient-notifications-center > summary:hover .patient-notifications-trigger,
.patient-notifications-center[open] .patient-notifications-trigger { border-color: rgba(88,101,216,.35); background: var(--primary-bg); }
.patient-notifications-center > summary > b { position: absolute; top: 1px; right: 0; display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; border: 2px solid var(--surface); border-radius: var(--r-full); background: var(--primary); color: #fff; box-shadow: var(--sh-xs); font-size: 9px; line-height: 1; }
.patient-notifications-center > summary > b.hidden { display: none; }
.patient-notifications-center > summary:focus-visible { border-radius: var(--r-full); outline: 3px solid rgba(88,101,216,.18); outline-offset: 2px; }
.patient-notifications-center[open] > summary > b { background: var(--primary-dk); }
.patient-notifications-panel { position: absolute; z-index: 80; top: calc(100% + 9px); right: -5px; width: min(370px, calc(100vw - 32px)); padding: var(--s3); border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface); box-shadow: var(--sh-lg); }
.patient-notifications-panel-head { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); padding: 3px 4px var(--s3); }
.patient-notifications-panel-head strong { font-size: 13px; }
.patient-notifications-panel-head button { color: var(--primary); font-size: 9px; font-weight: var(--fw-sb); }
.patient-notifications-list { display: grid; gap: 5px; max-height: min(470px, 62vh); overflow-y: auto; }
.patient-notification-item { padding: 11px 12px; border: 1px solid transparent; border-radius: var(--r-lg); background: var(--surface-2); }
.patient-notification-item.is-unread { border-color: rgba(88,101,216,.18); background: var(--primary-bg); }
.patient-notification-item-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); }
.patient-notification-item-head strong { color: var(--tx); font-size: 11px; line-height: 1.35; }
.patient-notification-item-head time { flex-shrink: 0; color: var(--tx-4); font-size: 8px; }
.patient-notification-item p { margin-top: 4px; color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.patient-notification-actions { display: flex; align-items: center; gap: var(--s3); margin-top: 8px; }
.patient-notification-actions button { color: var(--primary); font-size: 9px; font-weight: var(--fw-sb); }
.patient-notification-actions button[data-notification-action="dismiss"] { color: var(--tx-4); }
.patient-notifications-empty { padding: var(--s5) var(--s3); color: var(--tx-3); font-size: 10px; text-align: center; }
.patient-notification-preferences { margin-top: var(--s2); border-top: 1px solid var(--border); }
.patient-notification-preferences > summary { padding: 10px 4px 4px; color: var(--tx-3); font-size: 9px; font-weight: var(--fw-sb); cursor: pointer; list-style: none; }
.patient-notification-preferences > summary::-webkit-details-marker { display: none; }
.patient-notification-preferences-form { display: grid; gap: 8px; padding: 8px 4px 4px; }
.patient-notification-preferences-form label { display: flex; flex-direction: row !important; align-items: center; gap: 8px; margin: 0; color: var(--tx-2); font-size: 10px; line-height: 1.35; }
.patient-notification-preferences-form input { width: 14px !important; height: 14px; flex-shrink: 0; margin: 0 !important; accent-color: var(--primary); }
.patient-notification-preferences-form .patient-notification-master { padding-bottom: 8px; border-bottom: 1px solid var(--border); color: var(--tx); font-weight: var(--fw-sb); }
.patient-notification-preferences-form p { color: var(--tx-4); font-size: 8px; line-height: 1.45; }
.patient-notification-preferences-form.is-disabled label:not(.patient-notification-master) { opacity: .45; }
.patient-identity-chip { display: grid; grid-template-columns: 36px minmax(0, 1fr) 14px; min-width: 220px; min-height: 52px; align-items: center; gap: 10px; padding: 6px 11px 6px 6px; border: 1px solid var(--border); border-radius: 15px; background: var(--surface); color: var(--tx-2); font-family: inherit; text-align: left; cursor: pointer; transition: border-color var(--dur-fast), background var(--dur-fast), box-shadow var(--dur-fast); }
.patient-identity-chip:hover,
.patient-identity-chip[aria-expanded="true"] { border-color: rgba(88,101,216,.28); background: var(--primary-bg); box-shadow: var(--sh-xs); }
.patient-identity-chip:focus-visible { outline: 3px solid rgba(88,101,216,.18); outline-offset: 2px; }
.patient-identity-avatar { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border-radius: 11px; background: var(--primary); color: #fff; font-size: 11px; font-weight: var(--fw-b); letter-spacing: .02em; }
.patient-identity-copy { display: grid; min-width: 0; gap: 2px; }
.patient-identity-copy small { color: var(--tx-4); font-size: 8px; font-weight: var(--fw-b); line-height: 1; text-transform: uppercase; letter-spacing: .08em; }
.patient-identity-copy strong { min-width: 0; overflow: hidden; color: var(--tx); font-size: 12px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.patient-identity-chevron { width: 7px; height: 7px; justify-self: center; border-right: 1.5px solid var(--tx-4); border-bottom: 1.5px solid var(--tx-4); transform: rotate(45deg) translateY(-2px); transition: transform var(--dur-fast); }
.patient-identity-chip[aria-expanded="true"] .patient-identity-chevron { transform: rotate(225deg) translate(-2px, -2px); }
.patient-profile-panel { position: absolute; z-index: 81; top: calc(100% + 10px); right: 0; width: min(310px, calc(100vw - 32px)); max-height: calc(100vh - 88px); padding: var(--s4); overflow-y: auto; border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface); box-shadow: var(--sh-lg); }
.patient-profile-panel-head { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); padding-bottom: var(--s3); }
.patient-profile-panel-head > strong { font-size: 13px; }
.patient-profile-panel-head > button { display: inline-grid; width: 28px; height: 28px; padding: 0; place-items: center; border: 1px solid var(--border); border-radius: 50%; background: var(--surface-2); color: var(--tx-3); cursor: pointer; }
.patient-profile-panel-identity { display: flex; align-items: center; gap: var(--s3); padding: var(--s3); border-radius: var(--r-lg); background: var(--primary-bg); }
.patient-profile-panel-identity > span { display: inline-flex; width: 38px; height: 38px; flex: 0 0 auto; align-items: center; justify-content: center; border-radius: 50%; background: var(--primary); color: #fff; font-size: 12px; font-weight: var(--fw-b); }
.patient-profile-panel-identity > div { display: grid; min-width: 0; gap: 3px; }
.patient-profile-panel-identity strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.patient-profile-panel-identity small { overflow: hidden; color: var(--tx-3); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.patient-profile-details { display: grid; gap: 8px; margin-top: var(--s3); }
.patient-profile-details > div { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: var(--s2); font-size: 10px; line-height: 1.4; }
.patient-profile-details dt { color: var(--tx-4); }
.patient-profile-details dd { min-width: 0; margin: 0; overflow-wrap: anywhere; color: var(--tx-2); font-weight: var(--fw-m); }
.patient-profile-test-switcher { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 7px var(--s2); margin-top: var(--s4); padding-top: var(--s3); border-top: 1px dashed rgba(88,101,216,.24); }
.patient-profile-test-switcher > span { color: var(--primary); font-size: 9px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .08em; }
.patient-profile-test-switcher label { color: var(--tx-3); font-size: 10px; font-weight: var(--fw-sb); }
.patient-profile-test-switcher select { grid-column: 1 / -1; width: 100%; min-height: 38px; padding: 0 32px 0 11px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface-2); color: var(--tx); font: var(--fw-m) 11px/1.2 var(--font); cursor: pointer; }
.patient-profile-test-switcher select:focus-visible { border-color: rgba(88,101,216,.35); outline: 3px solid rgba(88,101,216,.1); }
.patient-profile-test-switcher small { grid-column: 1 / -1; color: var(--tx-4); font-size: 9px; line-height: 1.4; }
.patient-profile-logout-btn { width: 100%; min-height: 38px; margin-top: var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); color: var(--tx-3); font: var(--fw-sb) 11px/1 var(--font); cursor: pointer; transition: border-color var(--dur-fast), background var(--dur-fast), color var(--dur-fast); }
.patient-profile-logout-btn:hover,
.patient-profile-logout-btn:focus-visible { border-color: rgba(88,101,216,.25); background: var(--primary-bg); color: var(--primary); outline: none; }
.patient-care-profile-header { grid-column: 1 / -1; width: min(620px, 100%); margin: var(--s3) 0 0; }
.patient-care-profile-select { position: relative; width: 100%; border: 1px solid rgba(88,101,216,.1); border-radius: var(--r-xl); background: var(--surface-2); }
.patient-care-profile-select summary { display: grid; grid-template-columns: auto minmax(0, 1fr) 22px; width: 100%; min-height: 46px; align-items: center; gap: 12px; padding: 9px 12px 9px 13px; border-radius: inherit; cursor: pointer; list-style: none; }
.patient-care-profile-select summary::-webkit-details-marker { display: none; }
.patient-care-profile-select summary > i { position: relative; display: block; width: 22px; height: 22px; border-radius: 50%; background: rgba(88,101,216,.08); }
.patient-care-profile-select summary > i::before { position: absolute; top: 6px; left: 7px; width: 6px; height: 6px; border-right: 1.5px solid var(--primary); border-bottom: 1.5px solid var(--primary); content: ""; transform: rotate(45deg); transition: transform var(--dur-fast) var(--ease); }
.patient-care-profile-select[open] summary > i::before { top: 9px; transform: rotate(225deg); }
.patient-care-profile-select:focus-within { border-color: rgba(88,101,216,.3); box-shadow: 0 0 0 3px rgba(88,101,216,.08); }
.patient-care-profile-select summary > span,
.patient-session-shortcut > span { color: var(--tx-3); font-size: 12px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .06em; }
.patient-care-profile-select summary > span { padding: 5px 8px; border-radius: var(--r-md); background: var(--primary); color: #fff; }
.patient-care-profile-select summary > strong { min-width: 0; color: var(--tx); font: var(--fw-sb) 12px/1.4 var(--font); overflow-wrap: anywhere; }
.patient-care-profile-options { position: absolute; z-index: 30; top: calc(100% + 7px); right: 0; left: 0; display: grid; gap: 5px; padding: 7px; border: 1px solid rgba(88,101,216,.14); border-radius: var(--r-xl); background: rgba(255,255,255,.98); box-shadow: var(--sh-md); }
.patient-care-profile-options button { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; width: 100%; min-height: 42px; padding: 9px 11px; border: 0; border-radius: var(--r-lg); background: transparent; color: var(--tx-2); font: var(--fw-sb) 12px/1.4 var(--font); text-align: left; cursor: pointer; }
.patient-care-profile-options button small { padding: 4px 7px; border-radius: var(--r-full); background: var(--surface-2); color: var(--tx-3); font: var(--fw-b) 9px/1 var(--font); text-transform: uppercase; letter-spacing: .05em; }
.patient-care-profile-options button:hover,
.patient-care-profile-options button:focus-visible { background: var(--primary-bg); color: var(--primary-dk); outline: none; }
.patient-care-profile-options button.is-selected { background: rgba(88,101,216,.1); color: var(--primary-dk); }
.patient-care-overview { display: grid; grid-template-columns: repeat(2, minmax(210px, 1fr)); gap: var(--s3); }
.patient-session-shortcut { min-height: 94px; padding: 15px 17px; border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface); }
.patient-session-shortcut { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; text-align: left; cursor: pointer; transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease); }
.patient-session-shortcut strong { color: var(--tx); font-size: 16px; line-height: 1.35; }
.patient-session-shortcut small { color: var(--primary); font-size: 13px; font-weight: var(--fw-sb); }
.patient-session-shortcut:hover { transform: translateY(-1px); border-color: rgba(88,101,216,.28); box-shadow: var(--sh-sm); }
.patient-session-shortcut-next { background: linear-gradient(145deg, var(--surface), var(--primary-bg)); }
.patient-session-shortcut:disabled { cursor: default; opacity: .62; transform: none; box-shadow: none; }
.patient-priority-action { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--s4); margin: 0 0 var(--s4); padding: 17px 18px; border: 1px solid rgba(88,101,216,.22); border-radius: var(--r-xl); background: linear-gradient(135deg, rgba(88,101,216,.1), rgba(255,255,255,.94)); box-shadow: 0 14px 34px rgba(41,52,125,.08); }
.patient-priority-action-icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--primary); color: #fff; font-size: 16px; font-weight: var(--fw-b); }
.patient-priority-action-copy { min-width: 0; }
.patient-priority-action-copy > span { display: block; margin-bottom: 3px; color: var(--primary); font-size: 9px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .07em; }
.patient-priority-action-copy h3 { font-size: 16px; line-height: 1.25; }
.patient-priority-action-copy p { margin-top: 4px; color: var(--tx-3); font-size: 11px; line-height: 1.5; }
.patient-priority-action-buttons { display: flex; align-items: center; gap: var(--s2); }
.patient-priority-action-buttons .primary-btn { min-height: 38px; white-space: nowrap; }
.patient-priority-action.hidden { display: none; }
.patient-area-nav { gap: 6px; margin: var(--s5) 0 var(--s6); padding: 7px; border: 0; background: rgba(88,101,216,.08); }
.patient-app-header + .patient-area-nav { margin-top: var(--s3); }
.patient-area-nav button { min-height: 48px; padding: 12px 16px; color: var(--tx-2); font-size: 13px; }
.patient-area-nav button.active { background: var(--primary); color: #fff; box-shadow: 0 10px 24px rgba(88,101,216,.18); }
.patient-follow-nav { display: inline-grid; grid-template-columns: repeat(2, minmax(130px, 1fr)); gap: 4px; margin-bottom: var(--s5); padding: 4px; border-radius: var(--r-lg); background: var(--surface-2); }
.patient-follow-nav button { min-height: 38px; padding: 8px 16px; border-radius: calc(var(--r-lg) - 3px); color: var(--tx-3); font-size: 12px; font-weight: var(--fw-sb); }
.patient-follow-nav button.active { background: var(--surface); color: var(--primary); box-shadow: var(--sh-xs); }
.patient-session-detail { margin-top: var(--s2); overflow: hidden; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); }
.patient-session-detail summary { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); padding: 12px 14px; cursor: pointer; list-style: none; }
.patient-session-detail summary::-webkit-details-marker { display: none; }
.patient-session-detail summary > span { display: flex; flex-direction: column; gap: 2px; }
.patient-session-detail summary strong { font-size: 15px; line-height: 1.35; }
.patient-session-detail summary small { color: var(--tx-3); font-size: 13px; }
.patient-session-detail summary b { color: var(--primary); font-size: 13px; }
.patient-session-detail[open] summary { border-bottom: 1px solid var(--border); background: var(--primary-bg); }
.patient-session-detail-content { padding: 14px 15px; color: var(--tx-2); font-size: 14px; line-height: 1.5; }
.patient-session-detail-content > p { margin-bottom: 8px; }
.patient-session-transcript {
  position: relative;
  margin: 0 0 var(--s3);
  padding: 11px 14px 11px 31px;
  border: 0;
  border-left: 3px solid rgba(88,101,216,.36);
  border-radius: 0 var(--r-lg) var(--r-lg) 0;
  background: linear-gradient(135deg, rgba(88,101,216,.1), rgba(88,101,216,.045));
  color: var(--primary-dk);
}
.patient-session-transcript::before {
  position: absolute;
  top: 6px;
  left: 10px;
  color: rgba(88,101,216,.46);
  content: "“";
  font: 800 25px/1 var(--font);
}
.patient-session-transcript p {
  margin: 0;
  color: var(--tx-2);
  font-size: 14px;
  font-style: italic;
  line-height: 1.55;
  white-space: pre-line;
}
.patient-session-detail-content ul { display: grid; gap: 7px; }
.patient-session-detail-content li { display: flex; align-items: baseline; justify-content: space-between; gap: var(--s3); }
.patient-session-detail-content li span { color: var(--tx-3); text-align: right; }
.patient-completed-session-overview { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; gap: 0; }
.patient-session-detail-content .session-care-chain li { display: grid; align-items: initial; justify-content: initial; justify-items: center; flex-direction: initial; gap: 5px; }
.patient-session-detail-content .session-care-chain li > span { color: var(--tx-4); text-align: center; }
.patient-session-detail-content .session-care-chain li.is-done > span { color: #fff; }
.patient-session-detail-content .session-care-chain li.is-current > span { color: var(--primary); }
.patient-completed-session-section { padding: 13px 0; border-bottom: 1px solid var(--border); }
.patient-completed-session-section:first-child { padding-top: 0; }
.patient-completed-session-section:last-child { padding-bottom: 0; border-bottom: 0; }
.patient-completed-session-section > h4 { margin: 0 0 9px; color: var(--tx); font-size: 15px; font-weight: var(--fw-b); letter-spacing: -.01em; }
.patient-completed-session-section > span { display: block; margin-bottom: 5px; color: var(--primary); font-size: 10px; font-weight: var(--fw-b); letter-spacing: .07em; text-transform: uppercase; }
.patient-completed-session-section > p { margin: 0; color: var(--tx); font-weight: var(--fw-sb); }
.patient-completed-session-section ul { display: grid; gap: 5px; margin: 9px 0 0; padding: 0; list-style: none; }
.patient-completed-session-section li { position: relative; display: block; padding-left: 16px; color: var(--tx-2); }
.patient-completed-session-section li::before { position: absolute; left: 1px; color: var(--primary); content: '•'; }
.patient-completed-session-section li strong { display: block; color: var(--tx); font-weight: var(--fw-sb); }
.patient-completed-session-section li small { display: block; margin-top: 1px; color: var(--tx-3); font-size: 12px; }
.patient-completed-session-section li .patient-exercise-variation-detail { margin-top: 4px; color: var(--primary-dk); font-size: 11px; }
.patient-completed-session-note > p { color: var(--tx-2); font-weight: var(--fw-r); white-space: pre-line; }
.patient-completed-session-return .patient-session-feedback-summary { margin: 0; padding: 0; border: 0; background: transparent; }
.prototype-sync-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 750;
}
.prototype-sync-status::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #a0a6b6;
  content: '';
}
.prototype-sync-status[data-state="pending"]::before { background: #d79b4d; }
.prototype-sync-status[data-state="synced"] { color: #327c70; }
.prototype-sync-status[data-state="synced"]::before { background: #39aa98; }
.completed-session-exercise-table-wrap { overflow-x: auto; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 12px; background: rgba(255, 255, 255, .66); }
.completed-session-exercise-table { width: 100%; min-width: 620px; border-collapse: collapse; color: var(--tx-2); font-size: 12px; }
.completed-session-exercise-table th,
.completed-session-exercise-table td { padding: 9px 10px; border-bottom: 1px solid rgba(17, 24, 39, .065); text-align: center; vertical-align: middle; }
.completed-session-exercise-table thead th { color: var(--tx-4); font-size: 9px; font-weight: var(--fw-b); letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.completed-session-exercise-table thead th:first-child,
.completed-session-exercise-table tbody th { text-align: left; }
.completed-session-exercise-table tbody th { color: var(--tx); font-weight: var(--fw-sb); }
.completed-exercise-name { display: block; }
.completed-exercise-attention-markers { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.completed-session-exercise-table td > .completed-exercise-attention-markers { justify-content: center; }
.completed-exercise-remark-marker {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  margin-top: 6px;
  padding: 4px 7px;
  border: 1px solid rgba(206,132,48,.2);
  border-radius: 999px;
  background: rgba(255,244,226,.78);
  color: #8d581f;
  font: inherit;
  font-size: 9px;
  font-weight: 800;
  white-space: nowrap;
}
button.completed-exercise-remark-marker { cursor: pointer; }
.completed-exercise-remark-marker > span { width: 6px; height: 6px; flex: 0 0 auto; border-radius: 50%; background: #d38a36; }
.completed-exercise-remark-marker.is-change { border-color: rgba(var(--primary-rgb), .2); background: rgba(238,240,255,.84); color: var(--primary-dk); }
.completed-exercise-remark-marker.is-change > span { background: var(--primary); }
.completed-exercise-remark-marker.is-stop { border-color: rgba(181,99,68,.22); background: rgba(255,238,232,.86); color: #985238; }
.completed-exercise-remark-marker.is-stop > span { background: #c16b4a; }
.completed-exercise-remark-marker.is-pain-neutral { border-color: rgba(var(--primary-rgb), .16); background: rgba(241,243,255,.82); color: var(--primary-dk); }
.completed-exercise-remark-marker.is-pain-neutral > span { background: rgba(var(--primary-rgb), .62); }
.completed-exercise-remark-marker.is-pain-rise { border-color: rgba(211,138,54,.24); background: rgba(255,244,226,.88); color: #8d581f; }
.completed-exercise-remark-marker.is-pain-strong { border-color: rgba(198,99,45,.3); background: rgba(255,232,215,.92); color: #a4512c; }
.completed-exercise-remark-marker.is-pain-rise > span { background: #d38a36; }
.completed-exercise-remark-marker.is-pain-strong > span { background: #c6632d; }
.completed-exercise-remark-marker.is-rpe-rise { border-color: rgba(211,138,54,.22); background: rgba(255,246,229,.9); color: #8d581f; }
.completed-exercise-remark-marker.is-rpe-strong { border-color: rgba(198,99,45,.28); background: rgba(255,234,217,.92); color: #a4512c; }
.completed-exercise-remark-marker.is-rpe-rise > span { background: #d38a36; }
.completed-exercise-remark-marker.is-rpe-strong > span { background: #c6632d; }
button.completed-exercise-remark-marker:hover,
button.completed-exercise-remark-marker:focus-visible { border-color: rgba(190,112,26,.42); outline: 3px solid rgba(211,138,54,.12); background: rgba(255,239,215,.96); }
button.completed-exercise-remark-marker.is-change:hover,
button.completed-exercise-remark-marker.is-change:focus-visible { border-color: rgba(var(--primary-rgb), .42); outline-color: rgba(var(--primary-rgb), .13); background: rgba(235,238,255,.98); }
button.completed-exercise-remark-marker.is-stop:hover,
button.completed-exercise-remark-marker.is-stop:focus-visible { border-color: rgba(193,107,74,.42); outline-color: rgba(193,107,74,.13); background: rgba(255,235,229,.98); }
.completed-session-exercise-table tbody tr:last-child > * { border-bottom: 0; }
.patient-completed-session-manual-care > h4 { color: var(--primary-dk); }
.session-completed-plan-summary { margin-top: 10px; border-top: 1px solid rgba(var(--primary-rgb), .1); }
.session-completed-plan-summary > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 13px; cursor: pointer; list-style: none; }
.session-completed-plan-summary > summary::-webkit-details-marker { display: none; }
.session-completed-plan-summary > summary strong { color: var(--tx); font-size: 15px; letter-spacing: -.01em; }
.session-completed-plan-summary > summary em { color: var(--primary); font-size: 11px; font-style: normal; font-weight: var(--fw-b); }
.session-completed-plan-summary > summary em::after { content: '⌄'; display: inline-block; margin-left: 6px; transition: transform .18s ease; }
.session-completed-plan-summary[open] > summary em::after { transform: rotate(180deg); }
.session-completed-plan-summary-body { padding: 0 13px 13px; }
.session-completed-report {
  margin-top: 8px;
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .15);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(247, 248, 255, .9), rgba(255, 255, 255, .96));
  box-shadow: 0 8px 22px rgba(50, 59, 128, .045);
}
.session-completed-report-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 4px;
  border-bottom: 1px solid rgba(var(--primary-rgb), .1);
  background: rgba(255, 255, 255, .62);
}
.session-completed-report-tab {
  position: relative;
  min-width: 0;
  min-height: 42px;
  padding: 8px 12px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--tx-3);
  font: inherit;
  font-size: 13px;
  font-weight: var(--fw-sb);
  cursor: pointer;
  transition: background .18s ease, color .18s ease, box-shadow .18s ease;
}
.session-completed-report-tab:hover { color: var(--tx); background: rgba(var(--primary-rgb), .045); }
.session-completed-report-tab.is-active {
  background: #fff;
  color: var(--primary-dk);
  box-shadow: 0 3px 10px rgba(50, 59, 128, .08);
}
.session-completed-report-tab:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .18); outline-offset: 1px; }
.session-completed-report-tab.has-unread-return::after {
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-left: 7px;
  border-radius: 50%;
  background: var(--primary);
  vertical-align: 2px;
  content: '';
}
.session-completed-report-tab.is-reviewed::after {
  display: inline-grid;
  width: 15px;
  height: 15px;
  margin-left: 6px;
  place-items: center;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: 50%;
  background: rgba(var(--primary-rgb), .06);
  color: var(--primary);
  font-size: 8px;
  vertical-align: 1px;
  content: '✓';
}
.session-completed-report-viewport { overflow: hidden; touch-action: auto; }
.session-completed-report-track { position: relative; min-width: 0; }
.session-completed-report-page {
  width: 100%;
  box-sizing: border-box;
  transition: transform .22s ease, opacity .16s ease;
}
.session-completed-report .session-completed-plan-summary,
.session-completed-report .session-clinical-return {
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.session-completed-report .session-completed-plan-summary-body { padding: 14px; }
.session-completed-activity-detail {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}
.session-completed-activity-detail > div { display: grid; gap: 3px; padding: 11px 12px; border-radius: 11px; background: rgba(255, 255, 255, .76); }
.session-completed-activity-detail dt { color: var(--tx-4); font-size: 9px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.session-completed-activity-detail dd { margin: 0; color: var(--tx); font-size: 15px; font-weight: var(--fw-b); }
.session-completed-activity-detail + .completed-session-exercise-table-wrap { margin-top: 10px; }
.session-completed-report .session-clinical-return { touch-action: pan-y; }
.session-completed-report .session-clinical-return-body { padding: 0 14px 14px; border-top: 0; }
.session-exercise-patient-remarks { display: grid; gap: 9px; margin: 2px 0 13px; }
.session-exercise-patient-remarks > header { display: flex; align-items: baseline; gap: 8px; }
.session-exercise-patient-remarks > header span { color: #9a5f21; font-size: 9px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.session-exercise-patient-remarks > header h5 { margin: 0; color: var(--tx); font-size: 14px; }
.session-exercise-patient-remarks > div { display: grid; gap: 8px; }
.session-exercise-patient-remark { display: grid; gap: 7px; padding: 12px 13px; border: 1px solid rgba(211,138,54,.2); border-radius: 13px; background: linear-gradient(145deg, rgba(255,250,242,.98), rgba(255,244,228,.78)); transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
.session-exercise-patient-remark > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.session-exercise-patient-remark > div strong { color: var(--tx); font-size: 12px; }
.session-exercise-patient-remark > div span { padding: 4px 7px; border-radius: 999px; background: rgba(211,138,54,.13); color: #8d581f; font-size: 9px; font-weight: 850; white-space: nowrap; }
.session-exercise-patient-remark p { margin: 0; color: var(--tx-2); font-size: 12px; line-height: 1.5; }
.session-exercise-patient-remark small { color: var(--tx-4); font-size: 9px; font-weight: 720; }
.session-exercise-patient-remark.is-targeted { border-color: rgba(190,112,26,.48); box-shadow: 0 0 0 4px rgba(211,138,54,.1); }
.session-exercise-patient-remark.is-change { border-color: rgba(var(--primary-rgb), .18); background: linear-gradient(145deg, rgba(249,250,255,.98), rgba(239,241,255,.78)); }
.session-exercise-patient-remark.is-change > div span { background: rgba(var(--primary-rgb), .11); color: var(--primary-dk); }
.session-exercise-patient-remark.is-stop { border-color: rgba(193,107,74,.2); background: linear-gradient(145deg, rgba(255,249,247,.98), rgba(255,239,234,.8)); }
.session-exercise-patient-remark.is-stop > div span { background: rgba(193,107,74,.12); color: #985238; }
.session-exercise-patient-remark.is-pain-neutral { border-color: rgba(var(--primary-rgb), .14); background: linear-gradient(145deg, rgba(250,251,255,.98), rgba(241,243,255,.76)); }
.session-exercise-patient-remark.is-pain-neutral > div span { background: rgba(var(--primary-rgb), .09); color: var(--primary-dk); }
.session-exercise-patient-remark.is-pain-rise > div span { background: rgba(211,138,54,.13); color: #8d581f; }
.session-exercise-patient-remark.is-pain-strong { border-color: rgba(198,99,45,.24); background: linear-gradient(145deg, rgba(255,248,242,.98), rgba(255,230,213,.82)); }
.session-exercise-patient-remark.is-pain-strong > div span { background: rgba(198,99,45,.14); color: #a4512c; }
.session-exercise-patient-remark.is-rpe-rise > div span { background: rgba(211,138,54,.13); color: #8d581f; }
.session-exercise-patient-remark.is-rpe-strong { border-color: rgba(198,99,45,.24); background: linear-gradient(145deg, rgba(255,248,242,.98), rgba(255,230,213,.82)); }
.session-exercise-patient-remark.is-rpe-strong > div span { background: rgba(198,99,45,.14); color: #a4512c; }
.session-exercise-patient-remark[data-exercise-attention-detail].is-targeted { border-color: rgba(var(--primary-rgb), .5); box-shadow: 0 0 0 4px rgba(var(--primary-rgb), .1); }
.session-running-pain-events article.is-targeted { box-shadow: 0 0 0 4px rgba(211,138,54,.12); outline: 1px solid rgba(190,112,26,.4); }
.session-completed-report[data-active-page="summary"] [data-session-report-panel="summary"],
.session-completed-report[data-active-page="return"] [data-session-report-panel="return"] {
  position: relative;
  z-index: 1;
  transform: translateX(0);
  opacity: 1;
}
.session-completed-report[data-active-page="summary"] [data-session-report-panel="return"] {
  position: absolute;
  inset: 0;
  transform: translateX(100%);
  opacity: 0;
  pointer-events: none;
}
.session-completed-report[data-active-page="return"] [data-session-report-panel="summary"] {
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  opacity: 0;
  pointer-events: none;
}
.session-completed-report-empty { margin: 0; padding: 14px; color: var(--tx-3); font-size: 13px; text-align: center; }
@media (max-width: 699px) {
  .completed-session-exercise-table { min-width: 555px; font-size: 11px; }
  .completed-session-exercise-table th,
  .completed-session-exercise-table td { padding: 8px 7px; }
  .session-completed-report-tab { min-height: 44px; padding-inline: 8px; font-size: 12px; }
  .session-completed-primary-row {
    grid-template-columns: minmax(0, 1fr) minmax(68px, auto);
    column-gap: 9px;
  }
  .session-completed-primary-row > .session-completed-score { min-width: 68px; padding-inline: 9px; }
  .session-completed-archive-date > span { display: none; }
  .session-completed-archive-date > time { display: inline; }
  .session-completed-archive-header { gap: 8px; }
  .session-completed-archive-header .session-compact-header {
    grid-template-columns: minmax(0, 1fr) 36px;
    align-items: center;
    column-gap: 9px;
  }
  .session-completed-archive-header .session-completed-header-meta {
    min-height: 36px;
    gap: 6px 7px;
  }
  .session-completed-archive-header .session-header-actions { width: 36px; }
  .session-completed-primary-kicker { gap: 5px; }
  .session-completed-primary-heading > h3 {
    display: -webkit-box;
    overflow: hidden;
    font-size: 15px;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }
  .session-practitioner-attribution.is-compact { font-size: 10px; }
  .session-completed-activity-detail { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .session-completed-report-page,
  .session-completed-report-tab { transition: none; }
}
.patient-sessions-actions { display: flex; justify-content: flex-start; margin-bottom: var(--s4); }
.patient-session-page-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: var(--s5);
  width: min(100%, 920px);
  margin: 0 auto var(--s5);
  padding-bottom: var(--s5);
  border-bottom: 1px solid var(--border);
}
.patient-session-page-header.hidden { display: none; }
.patient-session-page-back {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  gap: 8px;
  padding: 9px 13px;
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  background: var(--surface);
  color: var(--primary-dk);
  font: var(--fw-b) 12px/1 var(--font);
  cursor: pointer;
}
.patient-session-page-back:hover,
.patient-session-page-back:focus-visible { border-color: rgba(88,101,216,.35); background: var(--primary-bg); outline: none; }
.patient-session-page-header > div { min-width: 0; }
.patient-session-page-header > div > span { color: var(--primary); font-size: 10px; font-weight: var(--fw-b); letter-spacing: .08em; text-transform: uppercase; }
.patient-session-page-header h3 { margin-top: 4px; color: var(--tx); font-size: clamp(22px, 3vw, 30px); line-height: 1.18; }
.patient-session-page-header p { margin-top: 7px; color: var(--tx-3); font-size: 13px; line-height: 1.5; }
.patient-session-page-open .patient-sessions-actions,
.patient-app-tab.patient-session-page-open .patient-area-nav,
.patient-app-tab.patient-session-page-open #patientAppProfile,
.patient-app-tab.patient-session-page-open #patientPriorityAction { display: none; }
.patient-session-page-open #patientAppSessionsList { width: min(100%, 920px); margin: 0 auto; }
.patient-session-detail-page { border-radius: var(--r-xl); box-shadow: 0 18px 45px rgba(41,52,125,.08); }
.patient-session-detail-page > summary { cursor: default; }
.patient-add-activity { position: relative; }
.patient-add-activity > summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 9px 15px 9px 10px;
  border: 1px solid rgba(88,101,216,.2);
  border-radius: var(--r-full);
  background: rgba(88,101,216,.08);
  color: var(--primary-dk);
  font-size: 13px;
  font-weight: var(--fw-b);
  cursor: pointer;
  list-style: none;
  transition: border-color var(--dur-fast), background var(--dur-fast), transform var(--dur-fast);
}
.patient-add-activity > summary::before {
  display: grid;
  width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  content: "+";
  font-size: 17px;
  line-height: 1;
}
.patient-add-activity > summary:hover { border-color: rgba(88,101,216,.34); background: rgba(88,101,216,.13); transform: translateY(-1px); }
.patient-add-activity > summary:focus-visible { outline: 3px solid rgba(88,101,216,.14); outline-offset: 2px; }
.patient-add-activity > summary::-webkit-details-marker { display: none; }
.patient-add-activity[open] { width: min(620px, 100%); padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface); box-shadow: var(--sh-md); }
.patient-add-activity[open] > summary { margin-bottom: var(--s3); background: var(--primary-bg); transform: none; }
.patient-session-creation-mode { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding: 4px; border-radius: var(--r-full); background: rgba(88,101,216,.07); }
.patient-session-creation-mode button { min-height: 38px; padding: 7px 12px; border: 0; border-radius: var(--r-full); background: transparent; color: var(--tx-3); font: inherit; font-size: 12px; font-weight: var(--fw-b); cursor: pointer; }
.patient-session-creation-mode button.is-selected { background: var(--surface); color: var(--primary-dk); box-shadow: 0 3px 12px rgba(44,51,103,.09); }
.patient-session-creation-mode button:focus-visible { outline: 3px solid rgba(88,101,216,.16); outline-offset: 1px; }
.patient-session-creation-help { margin: -2px 2px 2px; color: var(--tx-3); font-size: 11px; line-height: 1.45; }
.patient-add-activity-assessment { display: grid; gap: 10px; }
.patient-add-activity-assessment-header { display: grid; gap: 3px; padding-top: 4px; border-top: 1px solid var(--border); }
.patient-add-activity-assessment-header strong { color: var(--tx); font-size: 14px; }
.patient-add-activity-assessment-header small { color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.patient-add-activity-assessment .session-before-check-in { margin: 0; }
.patient-add-activity-assessment .session-decision-surface { gap: 10px; }
.patient-autonomy-guidance { margin-top: 10px; }
.patient-autonomy-guidance-card { padding: 12px 13px; border-left: 3px solid rgba(88,101,216,.45); background: rgba(88,101,216,.055); color: var(--tx-2); }
.patient-autonomy-guidance-card.is-restricted { border-left-color: #c1831b; background: rgba(255,184,58,.1); }
.patient-autonomy-guidance-card > span { display: block; margin-bottom: 3px; color: var(--primary); font-size: 9px; font-weight: var(--fw-b); letter-spacing: .06em; text-transform: uppercase; }
.patient-autonomy-guidance-card.is-restricted > span { color: #80530a; }
.patient-autonomy-guidance-card > strong { display: block; color: var(--tx); font-size: 13px; }
.patient-autonomy-guidance-card > p { margin: 5px 0 0; font-size: 12px; line-height: 1.45; white-space: pre-line; }
.patient-autonomy-guidance-card > small { display: block; margin-top: 7px; color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.patient-personal-session-confirmation-dialog { display: grid; width: min(440px, 100%); gap: 10px; padding: 24px; }
.patient-personal-session-confirmation-marker { display: block; width: 32px; height: 5px; border-radius: 999px; background: #d99b37; }
.patient-personal-session-confirmation-dialog .app-label { margin: 2px 0 -5px; color: #8a5c16; }
.patient-personal-session-confirmation-dialog h3 { margin: 0; font-size: 21px; letter-spacing: -.025em; }
.patient-personal-session-confirmation-dialog > p:not(.app-label) { margin: 0; color: var(--tx-2); font-size: 13px; line-height: 1.55; }
.patient-personal-session-confirmation-frame { display: grid; gap: 3px; margin: 4px 0; padding: 11px 13px; border-left: 3px solid rgba(217,155,55,.75); background: rgba(255,184,58,.1); }
.patient-personal-session-confirmation-frame span { color: #80530a; font-size: 9px; font-weight: var(--fw-b); letter-spacing: .06em; text-transform: uppercase; }
.patient-personal-session-confirmation-frame strong { color: var(--tx); font-size: 13px; }
.patient-personal-session-confirmation-dialog .patient-personal-session-confirmation-safety { color: var(--tx-3); }
.patient-personal-session-confirmation-dialog .modal-actions { margin-top: 6px; }
@media (max-width: 600px) {
  .patient-personal-session-confirmation-dialog { padding: 20px 17px; }
  .patient-personal-session-confirmation-dialog .modal-actions { display: grid; grid-template-columns: 1fr; }
  .patient-personal-session-confirmation-dialog .modal-actions button { width: 100%; }
}
.patient-activity-log,
.patient-activity-post-session,
.patient-running-plan { display: grid; gap: 10px; min-width: 0; margin: 0; padding: 13px; border: 1px solid var(--border); border-radius: var(--r-lg); background: rgba(255,255,255,.58); }
.patient-activity-log legend,
.patient-activity-post-session legend,
.patient-running-plan legend { padding: 0 4px; color: var(--tx); font-size: 13px; font-weight: var(--fw-b); }
.patient-activity-log > p { margin: -3px 0 0; color: var(--tx-3); font-size: 11px; line-height: 1.4; }
.patient-running-plan-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.patient-running-plan-grid label,
.patient-running-plan-flow label,
.patient-session-creation-note { display: grid; gap: 4px; color: var(--tx-3); font-size: 10px; font-weight: var(--fw-b); }
.patient-running-plan-flow { display: grid; gap: 8px; }
.patient-running-plan input,
.patient-running-plan select,
.patient-session-creation-note textarea { min-width: 0; box-sizing: border-box; padding: 9px 10px; border: 1px solid rgba(var(--primary-rgb), .15); border-radius: 9px; background: rgba(255,255,255,.92); color: var(--tx); font: inherit; font-size: 12px; }
.patient-session-creation-note textarea { resize: vertical; }
.patient-activity-exercise-rows { display: grid; gap: 10px; }
.patient-activity-exercise-row { display: grid; gap: 8px; margin: 0; padding: 11px; border: 1px solid rgba(var(--primary-rgb), .14); border-radius: var(--r-md); background: var(--primary-bg); }
.patient-activity-exercise-row > legend { padding: 0 3px; color: var(--primary-dk); font-size: 11px; font-weight: var(--fw-b); }
.patient-activity-exercise-grid { display: grid; grid-template-columns: 2fr repeat(5, minmax(72px, 1fr)); gap: 7px; }
.patient-activity-exercise-grid.is-planned { grid-template-columns: minmax(150px, 2fr) repeat(3, minmax(72px, 1fr)); }
.patient-activity-exercise-grid label,
.patient-activity-exercise-note,
.patient-activity-post-session label { display: grid; gap: 4px; color: var(--tx-3); font-size: 10px; font-weight: var(--fw-b); }
.patient-activity-exercise-grid input,
.patient-activity-exercise-note textarea,
.patient-activity-post-session input,
.patient-activity-post-session textarea { min-width: 0; box-sizing: border-box; padding: 8px; border: 1px solid rgba(var(--primary-rgb), .15); border-radius: 9px; background: rgba(255,255,255,.9); color: var(--tx); font: inherit; font-size: 12px; }
.patient-activity-exercise-note textarea,
.patient-activity-post-session textarea { resize: vertical; }
.patient-activity-post-session > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.patient-activity-remove-exercise { justify-self: start; }
.assessment-autonomy-frame { display: grid; gap: var(--s3); margin: var(--s3) 0; padding: var(--s3); border: 1px solid rgba(88,101,216,.16); border-radius: var(--r-lg); background: rgba(88,101,216,.035); }
.assessment-autonomy-frame legend { padding: 0 5px; color: var(--primary-dk); font-size: 12px; font-weight: var(--fw-b); }
.assessment-autonomy-frame small { display: block; margin-top: 5px; color: var(--tx-3); font-size: 11px; line-height: 1.4; }
.assessment-phase-plan { display: grid; gap: var(--s3); margin: var(--s4) 0; padding: var(--s4); border: 1px solid rgba(88,101,216,.14); border-radius: var(--r-xl); background: linear-gradient(145deg, rgba(88,101,216,.045), rgba(255,255,255,.86)); }
.assessment-phase-plan > header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); }
.assessment-phase-plan > header span { color: var(--primary); font-size: 11px; font-weight: var(--fw-b); letter-spacing: .06em; text-transform: uppercase; }
.assessment-phase-plan > header h3 { margin: 3px 0 0; color: var(--tx-1); font-size: var(--text-md); }
.assessment-phase-plan > p { margin: 0; color: var(--tx-3); font-size: var(--text-xs); line-height: 1.45; }
.assessment-phase-plan-list { display: grid; gap: var(--s3); }
.assessment-phase-plan-item { display: grid; gap: var(--s3); padding: var(--s4); border: 1px solid rgba(88,101,216,.12); border-radius: var(--r-lg); background: rgba(255,255,255,.82); box-shadow: 0 8px 24px rgba(47,52,83,.04); }
.assessment-phase-plan-item > header { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); }
.assessment-phase-plan-item > header strong { color: var(--primary-dk); font-size: var(--text-sm); }
.assessment-phase-plan-item > header div { display: flex; gap: 5px; }
.assessment-phase-plan-item > header button { width: 30px; height: 30px; padding: 0; border: 0; border-radius: 999px; background: var(--surface-2); color: var(--tx-2); font: inherit; cursor: pointer; }
.assessment-phase-plan-item > header button:hover,
.assessment-phase-plan-item > header button:focus-visible { background: rgba(88,101,216,.1); color: var(--primary-dk); outline: none; }
.assessment-phase-plan-item > header button:disabled { opacity: .35; cursor: default; }
.assessment-phase-plan-main { display: grid; grid-template-columns: minmax(220px, 1.7fr) minmax(130px, .8fr) minmax(150px, 1fr) minmax(150px, 1fr); gap: var(--s3); align-items: end; }
.assessment-phase-plan-item label { min-width: 0; }
.assessment-phase-pain-rule { display: grid; grid-template-columns: minmax(230px, .8fr) minmax(0, 1.8fr); gap: var(--s3); align-items: end; padding: 11px 12px; border-radius: 13px; background: rgba(255,244,226,.68); }
.assessment-phase-pain-rule label { display: grid; gap: 5px; color: var(--tx-2); font-size: var(--text-xs); font-weight: var(--fw-b); }
.assessment-phase-pain-rule small { color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.assessment-phase-plan-item details { border-top: 1px solid rgba(88,101,216,.1); padding-top: var(--s2); }
.assessment-phase-plan-item summary { color: var(--primary-dk); font-size: var(--text-xs); font-weight: var(--fw-b); cursor: pointer; }
.assessment-phase-plan-criteria { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); margin-top: var(--s3); }
.assessment-phase-plan-empty { padding: var(--s4); border-radius: var(--r-lg); background: var(--surface-2); color: var(--tx-3); text-align: center; }
.assessment-prerequisite-library { display: grid; gap: 10px; padding: 12px; border-radius: 16px; background: linear-gradient(135deg, rgba(var(--primary-rgb), .075), rgba(75,177,154,.055)); }
.assessment-prerequisite-library > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.assessment-prerequisite-library > header > div { display: grid; gap: 2px; }
.assessment-prerequisite-library > header span { color: var(--primary); font-size: 9px; font-weight: 820; letter-spacing: .06em; text-transform: uppercase; }
.assessment-prerequisite-library > header strong { color: var(--tx-1); font-size: 14px; }
.assessment-prerequisite-library > header small { max-width: 250px; color: var(--tx-4); font-size: 9px; line-height: 1.4; text-align: right; }
.assessment-prerequisite-card { display: grid; gap: 8px; padding: 12px; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 13px; background: rgba(255,255,255,.86); }
.assessment-prerequisite-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.assessment-prerequisite-card > header > div { display: grid; gap: 2px; }
.assessment-prerequisite-card > header span { color: #95651c; font-size: 8px; font-weight: 820; letter-spacing: .05em; text-transform: uppercase; }
.assessment-prerequisite-card > header strong { color: var(--tx-1); font-size: 12px; line-height: 1.35; }
.assessment-prerequisite-card > header button { width: auto; height: auto; min-height: 28px; padding: 5px 8px; border: 0; border-radius: 8px; background: rgba(191,118,95,.08); color: #975a47; font-size: 9px; font-weight: 760; }
.assessment-prerequisite-card > p,
.assessment-prerequisite-empty { margin: 0; color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.assessment-prerequisite-card > details { padding-top: 0; border-top: 0; }
.assessment-prerequisite-card > details summary { color: var(--primary-dk); font-size: 9px; }
.assessment-prerequisite-card ul { display: grid; gap: 5px; margin: 8px 0 0; padding: 0; list-style: none; }
.assessment-prerequisite-card li { display: flex; align-items: flex-start; gap: 8px; color: var(--tx-2); font-size: 9px; line-height: 1.4; }
.assessment-prerequisite-card li::before { content: ''; flex: 0 0 auto; width: 6px; height: 6px; margin-top: 4px; border-radius: 50%; background: rgba(var(--primary-rgb), .38); }
.assessment-prerequisite-card li strong { margin-left: auto; color: #95651c; font-size: 7px; letter-spacing: .04em; text-transform: uppercase; }
.assessment-prerequisite-card > a { justify-self: start; color: var(--primary-dk); font-size: 9px; font-weight: 720; text-decoration: none; }
.assessment-prerequisite-card > a:hover { text-decoration: underline; }
.assessment-prerequisite-picker { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 9px; }
.assessment-prerequisite-picker label { display: grid; gap: 4px; color: var(--tx-3); font-size: 9px; font-weight: 750; }
.assessment-prerequisite-picker select { width: 100%; min-height: 36px; padding: 7px 9px; border: 1px solid rgba(var(--primary-rgb), .16); border-radius: 10px; background: #fff; color: var(--tx-1); font: inherit; font-size: 10px; }
.assessment-prerequisite-picker .secondary-btn { min-height: 36px; white-space: nowrap; }
.assessment-prerequisite-all-linked { color: #357563; font-size: 9px; font-weight: 720; }
@media (max-width: 760px) {
  .assessment-phase-plan { padding: var(--s3); }
  .assessment-phase-plan > header { align-items: stretch; flex-direction: column; }
  .assessment-phase-plan > header .secondary-btn { align-self: flex-start; }
  .assessment-phase-plan-main,
  .assessment-phase-pain-rule,
  .assessment-phase-plan-criteria,
  .assessment-prerequisite-picker { grid-template-columns: 1fr; }
  .assessment-prerequisite-library > header { display: grid; }
  .assessment-prerequisite-library > header small { text-align: left; }
  .assessment-prerequisite-picker .secondary-btn { justify-self: start; }
}

.patient-pre-session-unusual-details { display: grid; gap: 6px; padding: 0 2px; color: var(--tx-2); font-size: 11px; font-weight: var(--fw-sb); }
.patient-pre-session-unusual-details textarea { width: 100%; resize: vertical; }
.patient-pre-session-unusual-details small { color: var(--tx-4); font-size: 9px; font-weight: var(--fw-m); line-height: 1.45; }
.patient-pre-session-assessment-summary { display: grid; gap: 9px; padding: 12px 13px; border: 1px solid rgba(88,101,216,.14); border-radius: var(--r-lg); background: var(--primary-bg); }
.patient-pre-session-assessment-summary > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.patient-pre-session-assessment-summary > header span { color: var(--primary-dk); font-size: 12px; font-weight: var(--fw-b); }
.patient-pre-session-assessment-summary > header small { color: var(--tx-3); font-size: 9px; font-weight: var(--fw-sb); }
.patient-pre-session-assessment-summary dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.patient-pre-session-assessment-summary dl > div { display: grid; gap: 2px; padding: 8px 9px; border-radius: var(--r-md); background: rgba(255,255,255,.76); }
.patient-pre-session-assessment-summary dt { color: var(--tx-4); font-size: 9px; font-weight: var(--fw-sb); }
.patient-pre-session-assessment-summary dd { margin: 0; color: var(--tx-2); font-size: 11px; font-weight: var(--fw-b); }
.patient-pre-session-assessment-summary > p { margin: 0; color: var(--tx-2); font-size: 11px; line-height: 1.5; }
.patient-prescribed-pre-session-assessment {
  display: grid;
  gap: 12px;
  margin-bottom: 14px;
  padding: 14px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: var(--r-xl);
  background: linear-gradient(145deg, rgba(247,248,255,.96), rgba(255,255,255,.88));
}
.patient-prescribed-pre-session-assessment > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.patient-prescribed-pre-session-assessment > header strong { color: var(--tx-1); font-size: 14px; }
.patient-prescribed-pre-session-assessment > header span { color: var(--tx-4); font-size: 10px; font-weight: var(--fw-b); }
.patient-prescribed-pre-session-assessment.is-complete > header span { color: var(--primary); }
.patient-prescribed-pre-session-assessment [data-field="patient-prescribed-session-unusual-description"] {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 9px 11px;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: 11px;
  background: rgba(255,255,255,.92);
  color: var(--tx-1);
  font: inherit;
  font-size: 11px;
}
.patient-prescribed-pre-session-status { margin: 0; color: var(--tx-4); font-size: 10px; font-weight: var(--fw-sb); }
.session-pre-assessment-readonly { display: grid; gap: 6px; min-width: 0; }
.session-pre-assessment-readonly > small { color: var(--tx-4); font-size: 10px; font-weight: var(--fw-sb); }
.session-pre-assessment-readonly.is-clinician .patient-pre-session-assessment-summary { padding: 0; border: 0; background: transparent; }
.session-pre-assessment-waiting {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  border-radius: var(--r-lg);
  background: rgba(var(--primary-rgb), .055);
}
.session-pre-assessment-waiting strong { color: var(--tx-2); font-size: 12px; }
.session-pre-assessment-waiting span { color: var(--tx-4); font-size: 10px; line-height: 1.4; text-align: right; }
.patient-declared-post-session dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin: 0; }
.patient-declared-post-session dl > div { display: grid; gap: 2px; padding: 8px 9px; border-radius: var(--r-md); background: var(--primary-bg); }
.patient-declared-post-session dt { color: var(--tx-4); font-size: 9px; font-weight: var(--fw-b); text-transform: uppercase; }
.patient-declared-post-session dd { margin: 0; color: var(--tx-2); font-size: 12px; font-weight: var(--fw-b); }
.patient-unified-sessions { display: grid; gap: var(--s2); }
.patient-session-group-title { margin: var(--s4) 0 2px; color: var(--tx-3); font-size: 12px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .08em; }
.patient-session-group-title:first-child { margin-top: 0; }
.patient-session-detail { margin-top: 0; }
.patient-session-detail-upcoming {
  border-color: rgba(88,101,216,.18);
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(88,101,216,.055));
  box-shadow: 0 8px 22px rgba(41,52,125,.045);
}
.patient-session-detail-upcoming summary { min-height: 64px; padding: 14px 16px; }
.patient-session-detail-upcoming summary > span { gap: 5px; }
.patient-session-detail-upcoming summary strong { color: var(--tx); font-size: 16px; }
.patient-session-detail-upcoming summary b {
  padding: 6px 10px;
  border-radius: var(--r-full);
  background: rgba(88,101,216,.1);
  font-size: 11px;
}
.patient-session-detail-upcoming[open] summary {
  border-bottom-color: rgba(88,101,216,.13);
  background: rgba(88,101,216,.065);
}
.patient-session-plan {
  display: grid;
  gap: var(--s3);
  padding: var(--s4);
  border: 1px solid rgba(88,101,216,.16);
  border-radius: var(--r-xl);
  background: rgba(255,255,255,.8);
}
.patient-session-plan header { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.patient-session-plan header div { display: grid; gap: 2px; }
.patient-session-plan header strong { color: var(--tx); font-size: 18px; }
.patient-session-plan header small { color: var(--tx-3); font-size: 12px; font-weight: var(--fw-sb); }
.patient-session-plan ol { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.patient-session-plan ol li {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  justify-content: initial;
  gap: 10px;
  min-height: 38px;
  padding: 5px 9px;
  border-radius: var(--r-lg);
  background: var(--surface);
}
.patient-session-plan ol li > span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--primary-bg);
  color: var(--primary);
  font-size: 12px;
  font-weight: var(--fw-b);
  text-align: center;
}
.patient-session-plan ol li > strong { min-width: 0; color: var(--tx-1); font-size: 14px; }
.patient-session-plan ol li.is-done > span { background: rgba(39,174,96,.12); color: #18834a; }
.patient-session-plan ol li.is-stopped { grid-template-columns: 28px minmax(0, 1fr) auto; background: rgba(199,122,65,.07); }
.patient-session-plan ol li.is-stopped > span { background: rgba(199,122,65,.14); color: #9a5b2c; }
.patient-session-plan ol li.is-stopped > small { color: #8a5a35; font-size: 10px; font-weight: 800; }
.patient-session-mode-launch { justify-self: start; min-height: 44px; margin-top: 2px; }
.patient-session-mode-locked { display: grid; gap: 3px; padding: 11px 13px; border: 1px solid rgba(88,101,216,.12); border-radius: var(--r-lg); background: var(--surface-2); }
.patient-session-mode-locked strong { color: var(--tx-2); font-size: 13px; }
.patient-session-mode-locked span { color: var(--tx-3); font-size: 12px; line-height: 1.45; }
.patient-session-plan > p { margin: -3px 0 0; color: var(--tx-3); font-size: 12px; line-height: 1.45; }
.patient-session-plan-pending { display: grid; gap: 3px; padding: var(--s4); border-radius: var(--r-lg); background: var(--surface-2); }
.patient-session-plan-pending strong { color: var(--tx-1); font-size: 14px; }
.patient-session-plan-pending span { color: var(--tx-3); font-size: 13px; line-height: 1.45; }
.patient-session-detail-completed { background: var(--surface); }
.patient-session-detail-action {
  border-color: rgba(88,101,216,.24);
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(88,101,216,.075));
  box-shadow: 0 8px 22px rgba(41,52,125,.05);
}
.patient-session-detail-next { border-color: rgba(88,101,216,.26); box-shadow: 0 8px 24px rgba(41,52,125,.06); }
.patient-session-detail-autonomy { background: rgba(88,101,216,.025); }
.patient-session-detail summary small em { color: var(--primary); font-style: normal; font-weight: var(--fw-sb); }
.patient-session-feedback-summary { display: grid; gap: var(--s2); margin-top: var(--s4); padding: var(--s3); border-radius: var(--r-lg); background: var(--primary-bg); }
.patient-session-feedback-summary > span { color: var(--primary); font-size: 11px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .06em; }
.patient-session-feedback-summary > strong { color: var(--tx-1); font-size: 16px; line-height: 1.35; }
.patient-session-feedback-summary dl { display: flex; flex-wrap: wrap; gap: var(--s3); }
.patient-session-feedback-summary dl div { display: flex; gap: 4px; color: var(--tx-3); }
.patient-session-feedback-summary dt { font-size: 13px; }
.patient-session-feedback-summary dd { color: var(--tx-1); font-size: 15px; font-weight: var(--fw-b); }
.patient-session-feedback-summary p { margin: 0; color: var(--tx-2); font-size: 14px; line-height: 1.5; }
.patient-questionnaire-edit-row { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); margin-top: var(--s3); padding-top: var(--s3); border-top: 1px solid var(--border); }
.patient-questionnaire-edit-row > span { color: var(--tx-3); font-size: 13px; }
.patient-questionnaire-edit-row .session-inline-link { flex-shrink: 0; font-size: 13px; }
.patient-session-questionnaire { margin-top: var(--s4); padding-top: var(--s4); border-top: 1px solid var(--border); }
.patient-session-questionnaire.hidden { display: none; }
.patient-older-sessions { margin-top: var(--s3); }
.patient-older-sessions > summary { padding: 11px 13px; border-radius: var(--r-lg); background: var(--surface-2); color: var(--tx-3); font-size: 13px; font-weight: var(--fw-sb); cursor: pointer; list-style: none; }
.patient-older-sessions > summary::-webkit-details-marker { display: none; }
.patient-older-sessions-list { display: grid; gap: var(--s2); margin-top: var(--s2); }
.patient-evolution-card { padding: var(--s5); border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface); }
.patient-evolution-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s4); }
.patient-evolution-heading h3 { margin-top: 3px; font-size: 21px; }
.patient-evolution-score { display: flex; align-items: baseline; color: var(--primary-dk); }
.patient-evolution-score strong { font-size: 38px; line-height: 1; }
.patient-evolution-score span { font-size: 12px; }
.patient-evolution-status { margin-top: var(--s4); padding: 12px 14px; border-left: 3px solid var(--primary); border-radius: 0 var(--r-lg) var(--r-lg) 0; background: var(--surface-2); }
.patient-evolution-status p { margin-top: 3px; color: var(--tx-3); font-size: 11px; }
.patient-evolution-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s2); margin-top: var(--s4); }
.patient-evolution-point { display: flex; flex-direction: column; gap: 3px; padding: 11px; border: 1px solid var(--border); border-radius: var(--r-lg); }
.patient-evolution-point time,
.patient-evolution-point span { color: var(--tx-4); font-size: 9px; }
.patient-evolution-point strong { font-size: 11px; }
.patient-evolution-empty { grid-column: 1 / -1; color: var(--tx-3); font-size: 12px; }
.patient-evolution-disclaimer { margin-top: var(--s4); color: var(--tx-4); font-size: 10px; }
.patient-progression-view .prototype-cockpit-title .section-kicker { color: var(--primary); }
.patient-progression-view .prototype-final-objective {
  gap: 4px;
  margin-top: 12px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.patient-progression-view .prototype-final-objective > span {
  font-size: 9px;
}
.patient-progression-view .prototype-final-objective > strong {
  max-width: 46rem;
  font-size: clamp(15px, 1.6vw, 18px);
  font-weight: var(--fw-eb);
  line-height: 1.3;
}
.patient-progression-view .prototype-final-objective > small {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  align-items: center;
  margin-top: 6px;
  padding: 6px 9px;
  border: 1px solid rgba(88,101,216,.2);
  border-radius: var(--r-full);
  background: rgba(88,101,216,.1);
  color: var(--primary-dk);
  font-size: 11px;
  font-weight: var(--fw-b);
  line-height: 1.25;
}

@media (max-width: 760px) {
  .patient-app-header { align-items: flex-start; }
  .patient-app-header-actions { flex-direction: column-reverse; align-items: flex-end; }
  .patient-profile-context { align-items: flex-end; flex-direction: column-reverse; }
  .patient-notifications-panel { right: -5px; }
  .patient-care-overview { grid-template-columns: 1fr 1fr; }
  .patient-sessions-actions { justify-content: stretch; }
  .patient-sessions-actions .patient-add-activity { width: 100%; }
  .patient-add-activity[open] { width: 100%; }
  .patient-evolution-points { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .patient-workspace { padding: 14px !important; }
  .patient-app-header { grid-template-columns: 1fr; gap: 12px; }
  .patient-app-header-actions,
  .patient-profile-context,
  .patient-account-control { width: 100%; }
  .patient-app-header-actions { align-items: stretch; }
  .patient-profile-context { justify-content: stretch; }
  .patient-identity-chip { min-width: 0; flex: 1 1 auto; }
  .patient-identity-last-name { display: none; }
  .patient-profile-context { flex-direction: row; align-items: center; flex-wrap: nowrap; }
  .patient-notifications-panel { position: fixed; top: 72px; right: 14px; left: 14px; width: auto; }
  .patient-profile-panel { position: fixed; top: 72px; right: 14px; left: 14px; width: auto; max-height: calc(100vh - 88px); }
  .patient-care-overview { grid-template-columns: 1fr; }
  .patient-session-shortcut { min-height: 82px; }
  .patient-session-page-header { grid-template-columns: 1fr; gap: 14px; margin-bottom: 18px; padding-bottom: 18px; }
  .patient-session-page-back { width: fit-content; }
  .patient-priority-action { grid-template-columns: auto minmax(0, 1fr); padding: 14px; }
  .patient-priority-action-icon { width: 34px; height: 34px; }
  .patient-priority-action-buttons { grid-column: 1 / -1; justify-content: flex-end; }
  .patient-area-nav { grid-template-columns: repeat(4, minmax(112px, 1fr)); overflow-x: auto; }
  .patient-area-nav button { min-height: 46px; padding: 10px 11px; white-space: nowrap; }
  .patient-home-summary { grid-template-columns: 1fr; }
  .patient-follow-nav { display: grid; width: 100%; }
  .patient-evolution-points { grid-template-columns: 1fr; }
  .session-completed-summary,
  .session-future-summary,
  .patient-session-detail-content,
  .patient-session-feedback-summary p { font-size: 15px; }
  .session-compact-metadata { font-size: 13px; }
  .patient-session-detail-content li { align-items: flex-start; flex-direction: column; gap: 2px; }
  .patient-session-detail-content li span { text-align: left; }
  .patient-session-plan header { align-items: flex-start; flex-direction: column; }
  .patient-session-mode-launch { width: 100%; }
  .patient-questionnaire-edit-row { align-items: flex-start; flex-direction: column; }
}

.clinician-pre-intake {
  margin-bottom: var(--s7);
  padding: var(--s6);
  border: 1px solid var(--border);
  border-radius: var(--r-2xl);
  background: linear-gradient(145deg, var(--surface), var(--clr-in-50));
  box-shadow: var(--sh-sm);
}
.clinician-pre-intake-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s4); margin-bottom: var(--s5); }
.clinician-pre-intake-header h4 { margin-top: 2px; font-size: var(--text-lg); }
.clinician-pre-intake-header p:not(.section-kicker) { margin-top: 4px; color: var(--tx-3); font-size: var(--text-sm); }
.clinician-pre-intake-content { display: flex; flex-direction: column; gap: var(--s4); }
.clinician-pre-intake-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s3); }
.clinician-pre-intake-card { display: flex; flex-direction: column; gap: var(--s3); padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface); }
.clinician-pre-intake-card-header { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); }
.clinician-pre-intake-card h5 { font-size: var(--text-sm); }
.clinician-pre-intake-card select { max-width: 145px; padding: 6px 8px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface-2); color: var(--tx-2); font-size: 11px; }
.clinician-pre-intake-list { display: flex; flex-direction: column; gap: var(--s2); }
.clinician-pre-intake-item { padding-top: var(--s2); border-top: 1px solid var(--border); }
.clinician-pre-intake-item:first-child { padding-top: 0; border-top: 0; }
.clinician-pre-intake-item span { display: block; color: var(--tx-4); font-size: 10px; font-weight: var(--fw-sb); text-transform: uppercase; letter-spacing: .04em; }
.clinician-pre-intake-item p { margin-top: 2px; color: var(--tx-2); font-size: var(--text-xs); line-height: 1.45; white-space: pre-wrap; }
.clinician-review-note { display: flex; flex-direction: column; gap: var(--s2); font-size: var(--text-sm); font-weight: var(--fw-sb); }
.clinician-review-note textarea { width: 100%; padding: 11px 12px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); font-weight: var(--fw-r); }

.scientific-resource-card {
  position: relative;
  margin: 0 0 var(--s5);
  padding: var(--s6);
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .2);
  border-radius: var(--r-xl);
  background: linear-gradient(145deg, rgba(245, 247, 255, .98), rgba(255, 252, 244, .96));
  box-shadow: var(--sh-xs);
}
.scientific-resource-card::before { position: absolute; inset: 0 auto 0 0; width: 4px; background: linear-gradient(180deg, var(--primary), #e2a43a); content: ''; }
.scientific-resource-header,
.scientific-resource-actions { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); flex-wrap: wrap; }
.scientific-resource-meta { display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap; color: var(--tx-3); font-size: 11px; font-weight: var(--fw-sb); }
.scientific-resource-meta span { padding: 4px 9px; border: 1px solid rgba(var(--primary-rgb), .14); border-radius: var(--r-full); background: rgba(255, 255, 255, .72); }
.scientific-resource-meta .scientific-resource-type { color: var(--primary); background: var(--primary-bg); }
.scientific-resource-intro { margin: var(--s5) 0; }
.scientific-resource-intro h4 { margin-top: 4px; max-width: 760px; font-size: var(--text-xl); line-height: 1.25; }
.scientific-resource-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); }
.scientific-resource-grid section { min-width: 0; padding: var(--s4); border: 1px solid rgba(17, 19, 24, .075); border-radius: var(--r-lg); background: rgba(255, 255, 255, .72); }
.scientific-resource-grid h5,
.scientific-resource-traceability h5 { margin-bottom: var(--s2); font-size: var(--text-sm); }
.scientific-resource-grid p,
.scientific-resource-grid li { color: var(--tx-2); font-size: var(--text-xs); line-height: 1.55; }
.scientific-resource-grid ul { display: grid; gap: var(--s1); margin: 0; padding-left: 18px; }
.scientific-resource-main-message { border-color: rgba(var(--primary-rgb), .2) !important; background: rgba(239, 242, 255, .9) !important; }
.scientific-resource-main-message p { font-size: var(--text-sm); font-weight: var(--fw-sb); }
.scientific-resource-scope { border-color: rgba(226, 164, 58, .25) !important; background: rgba(255, 249, 232, .88) !important; }
.scientific-resource-traceability { margin-top: var(--s4); padding: var(--s4); border: 1px dashed rgba(var(--primary-rgb), .28); border-radius: var(--r-lg); background: rgba(255, 255, 255, .74); }
.scientific-resource-traceability dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s2) var(--s5); }
.scientific-resource-traceability dl div { min-width: 0; padding-top: var(--s2); border-top: 1px solid var(--border); }
.scientific-resource-traceability dt { color: var(--tx-4); font-size: 10px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .04em; }
.scientific-resource-traceability dd { margin: 2px 0 0; overflow-wrap: anywhere; color: var(--tx-2); font-size: var(--text-xs); line-height: 1.45; }
.scientific-resource-external-note { margin-top: var(--s3); color: var(--warning); font-size: 11px; font-weight: var(--fw-b); }
.scientific-resource-actions { justify-content: flex-start; margin-top: var(--s4); }
.scientific-resource-source-link { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 8px 14px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); color: var(--tx-2); font-size: var(--text-xs); font-weight: var(--fw-b); text-decoration: none; }
.scientific-resource-source-link:hover { border-color: rgba(var(--primary-rgb), .28); color: var(--primary); background: var(--primary-bg); }
.scientific-resource-actions button:disabled { opacity: .72; cursor: default; }
.scientific-resource-card .assessment-save-message { margin-top: var(--s3); }
.calf-achilles-suggestion { display: grid; gap: var(--s3); }
.calf-achilles-priority { padding: clamp(18px, 2.5vw, 28px); border: 1px solid rgba(var(--primary-rgb), .18); border-radius: var(--r-xl); background: linear-gradient(145deg, rgba(var(--primary-rgb), .085), rgba(255, 255, 255, .9)); }
.calf-achilles-priority-label { display: block; margin-bottom: var(--s2); color: var(--primary); font-size: 10px; font-weight: var(--fw-b); letter-spacing: .08em; text-transform: uppercase; }
.calf-achilles-priority h5 { margin: 0 0 var(--s2); font-size: clamp(18px, 2vw, 24px); line-height: 1.2; }
.calf-achilles-priority > p { max-width: 760px; margin: 0; color: var(--tx-2); line-height: 1.55; }
.calf-achilles-missing { display: flex; gap: var(--s2); align-items: baseline; flex-wrap: wrap; margin-top: var(--s4); padding: var(--s3); border-radius: var(--r-md); background: rgba(255, 255, 255, .78); font-size: var(--text-xs); }
.calf-achilles-missing span { color: var(--tx-3); }
.calf-achilles-option,
.calf-achilles-alternative { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: var(--s3); margin-top: var(--s3); padding-top: var(--s3); border-top: 1px solid rgba(var(--primary-rgb), .12); font-size: var(--text-xs); }
.calf-achilles-option p,
.calf-achilles-alternative p { margin: 0; color: var(--tx-2); line-height: 1.5; }
.calf-achilles-alternative strong { color: var(--tx-3); }
.calf-achilles-saved { margin-top: var(--s3) !important; color: var(--primary) !important; font-size: var(--text-xs); font-weight: var(--fw-b); }
.calf-achilles-next { margin-top: var(--s3); }
.calf-achilles-next details { padding: var(--s3) var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: rgba(255, 255, 255, .7); }
.calf-achilles-next summary { color: var(--tx-2); font-size: var(--text-xs); font-weight: var(--fw-b); cursor: pointer; }
.calf-achilles-next article { display: grid; gap: 3px; margin-top: var(--s3); padding-top: var(--s3); border-top: 1px solid var(--border); }
.calf-achilles-next article strong { font-size: var(--text-xs); }
.calf-achilles-next article span { color: var(--tx-3); font-size: 11px; line-height: 1.45; }
.calf-achilles-pilot .scientific-resource-traceability p,
.calf-achilles-pilot .scientific-resource-traceability li { color: var(--tx-2); font-size: var(--text-xs); line-height: 1.5; }
.calf-achilles-pilot .scientific-resource-traceability ul { display: grid; gap: var(--s2); margin: var(--s3) 0 0; padding-left: 18px; }
.calf-achilles-pilot .scientific-resource-traceability li small { display: block; margin-top: 2px; color: var(--tx-3); }
.calf-achilles-pilot [data-calf-achilles-decision].is-selected { border-color: var(--primary); box-shadow: 0 0 0 2px rgba(var(--primary-rgb), .12); }

.gym-page { display: grid; gap: var(--s5); }
.gym-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s5);
  padding: clamp(22px, 3vw, 34px);
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: var(--r-xl);
  background: linear-gradient(135deg, #fff 0%, #f2f3ff 58%, #fff7df 100%);
  box-shadow: var(--sh-sm);
}
.gym-hero h2 { margin-top: 2px; font-size: clamp(30px, 4vw, 46px); line-height: 1; }
.gym-hero p:not(.section-kicker) { max-width: 650px; margin-top: var(--s3); color: var(--tx-3); font-size: var(--text-sm); line-height: 1.5; }
.gym-clinical-library-link { flex: 0 0 auto; }
.gym-custom-exercise { padding: 0; border: 1px solid rgba(var(--primary-rgb), .14); border-radius: var(--r-lg); background: rgba(255,255,255,.64); }
.gym-custom-exercise > summary { display: flex; min-height: 46px; align-items: center; padding: 0 14px; color: var(--primary-dk); font-size: 12px; font-weight: var(--fw-b); cursor: pointer; list-style: none; }
.gym-custom-exercise > summary::-webkit-details-marker { display: none; }
.gym-custom-exercise[open] > summary { border-bottom: 1px solid rgba(var(--primary-rgb), .1); background: rgba(var(--primary-rgb), .05); }
.gym-custom-exercise-form { display: grid; grid-template-columns: minmax(220px, 1.4fr) repeat(2, minmax(150px, .75fr)) auto; gap: 10px; align-items: end; padding: 13px 14px; }
.gym-custom-exercise-form label { display: grid; gap: 5px; color: var(--tx-3); font-size: 10px; font-weight: var(--fw-b); }
.gym-custom-exercise-form input { min-height: 40px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--tx); font: inherit; font-size: 12px; }
.gym-custom-exercise-form input:focus { border-color: rgba(var(--primary-rgb), .38); outline: 3px solid rgba(var(--primary-rgb), .09); }
.gym-custom-exercise-form > div { display: grid; gap: 4px; }
.gym-custom-exercise-form .primary-btn { min-height: 40px; white-space: nowrap; }
.gym-custom-exercise-form .assessment-save-message { min-height: 0; margin: 0; color: var(--tx-3); font-size: 10px; }
.gym-view-switch { display: inline-grid; grid-template-columns: repeat(2, auto); justify-self: start; gap: 4px; padding: 4px; border-radius: var(--r-full); background: rgba(var(--primary-rgb), .075); }
.gym-view-switch button { min-height: 37px; padding: 7px 14px; border: 0; border-radius: var(--r-full); background: transparent; color: var(--tx-3); font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.gym-view-switch button[aria-selected="true"] { background: #fff; color: var(--primary-dk); box-shadow: var(--sh-sm); }
.gym-view-switch button:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .14); }
#gymExercisesView { display: grid; gap: var(--s5); }
.gym-toolbar {
  display: grid;
  grid-template-columns: minmax(250px, 1.4fr) repeat(2, minmax(155px, .55fr)) auto;
  gap: var(--s3);
  align-items: end;
}
.gym-toolbar label { display: grid; gap: 6px; color: var(--tx-3); font-size: 11px; font-weight: var(--fw-b); }
.gym-toolbar input[type="search"],
.gym-toolbar select { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); color: var(--tx); font: inherit; }
.gym-toolbar input[type="search"]:focus,
.gym-toolbar select:focus { border-color: rgba(var(--primary-rgb), .38); outline: 3px solid rgba(var(--primary-rgb), .09); }
.gym-toolbar .gym-favorites-filter { display: flex; min-height: 44px; align-items: center; gap: 8px; padding: 0 13px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); color: var(--tx-2); cursor: pointer; }
.gym-toolbar .gym-favorites-filter input { accent-color: var(--primary); }
.gym-context-line { display: flex; align-items: center; gap: 9px; min-height: 38px; padding: 7px 11px; border-radius: var(--r-lg); background: rgba(var(--primary-rgb), .055); color: var(--tx-3); font-size: var(--text-xs); }
.gym-context-line span { padding: 4px 8px; border-radius: var(--r-full); background: rgba(var(--primary-rgb), .1); color: var(--primary-dk); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.gym-context-line strong { color: var(--tx-2); font-size: 11px; }
.gym-results-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); color: var(--tx-4); font-size: var(--text-xs); }
.gym-results-heading strong { color: var(--tx); font-size: var(--text-sm); }
.gym-exercise-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s4); }
.gym-exercise-card {
  position: relative;
  display: grid;
  grid-template-rows: 220px auto auto;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(17,19,24,.08);
  border-radius: var(--r-xl);
  background: var(--surface);
  box-shadow: 0 10px 28px rgba(31,36,68,.055);
  transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast), box-shadow var(--dur-fast);
}
.gym-exercise-card:hover { transform: translateY(-2px); border-color: rgba(var(--primary-rgb), .18); box-shadow: 0 16px 34px rgba(31,36,68,.09); }
.gym-exercise-preview { position: relative; display: grid; width: 100%; height: 100%; min-width: 0; padding: 0; overflow: hidden; place-items: center; border: 0; background: rgb(251, 246, 243); color: inherit; }
.gym-exercise-preview-button { cursor: zoom-in; }
.gym-exercise-preview .session-exercise-official-frame { width: 100%; height: 100%; object-fit: contain; object-position: center; background: rgb(251, 246, 243); transition: transform var(--dur-fast) var(--ease); }
.gym-exercise-preview-button:hover .session-exercise-official-frame,
.gym-exercise-preview-button:focus-visible .session-exercise-official-frame { transform: scale(1.025); }
.gym-exercise-preview-button:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .2); outline-offset: -3px; }
.gym-exercise-preview-action { position: absolute; right: 12px; bottom: 11px; padding: 5px 9px; border: 1px solid rgba(var(--primary-rgb), .14); border-radius: var(--r-full); background: rgba(255,255,255,.9); color: var(--primary-dk); font-size: 9px; font-weight: 800; box-shadow: var(--sh-sm); }
.gym-exercise-preview .session-exercise-preview-missing { display: grid; gap: 4px; place-items: center; color: rgba(var(--primary-rgb), .56); }
.gym-exercise-preview .session-exercise-preview-missing > span { font-size: 32px; }
.gym-exercise-preview .session-exercise-preview-missing small { color: var(--tx-4); font-size: 9px; }
.gym-favorite-button { position: absolute; z-index: 2; top: 10px; right: 10px; display: grid; width: 38px; height: 38px; padding: 0; place-items: center; border: 1px solid rgba(17,19,24,.08); border-radius: 50%; background: rgba(255,255,255,.94); color: var(--tx-3); font-size: 19px; box-shadow: var(--sh-sm); cursor: pointer; }
.gym-favorite-button:hover,
.gym-favorite-button:focus-visible { outline: none; border-color: rgba(var(--primary-rgb), .28); color: var(--primary); }
.gym-favorite-button.is-favorite { border-color: rgba(190,138,37,.3); background: #fff7dd; color: #b77d12; }
.gym-exercise-copy { display: grid; gap: 8px; padding: var(--s4) var(--s4) var(--s3); }
.gym-exercise-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.gym-exercise-tags span { padding: 4px 7px; border-radius: var(--r-full); background: var(--primary-bg); color: var(--primary-dk); font-size: 9px; font-weight: 750; }
.gym-exercise-copy h3 { font-size: 15px; line-height: 1.3; }
.gym-add-button { min-height: 39px; margin: 0 var(--s4) var(--s4); padding: 8px 11px; border: 1px solid rgba(var(--primary-rgb), .18); border-radius: var(--r-lg); background: rgba(var(--primary-rgb), .08); color: var(--primary-dk); font: inherit; font-size: 10px; font-weight: 800; cursor: pointer; }
.gym-add-button:hover,
.gym-add-button:focus-visible { outline: none; background: var(--primary); color: #fff; }
.gym-add-button:disabled { cursor: default; opacity: .55; background: var(--surface-2); color: var(--tx-4); }
.gym-empty-state { grid-column: 1 / -1; display: grid; gap: 4px; padding: var(--s7); border: 1px dashed var(--border); border-radius: var(--r-xl); color: var(--tx-3); text-align: center; }
.gym-empty-state strong { color: var(--tx); }
.gym-templates-view { display: grid; gap: var(--s4); }
.gym-template-heading > div { display: grid; gap: 3px; }
.gym-template-heading strong { color: var(--tx); font-size: 16px; }
.gym-template-heading span { color: var(--tx-3); font-size: 11px; }
.gym-template-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s4); }
.gym-template-card { display: grid; min-width: 0; gap: 11px; padding: var(--s5); border: 1px solid rgba(var(--primary-rgb), .11); border-radius: var(--r-xl); background: linear-gradient(145deg,#fff,rgba(246,247,255,.82)); box-shadow: 0 10px 28px rgba(31,36,68,.05); }
.gym-template-card-head, .gym-template-meta { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px; }
.gym-template-card-head span { padding: 4px 8px; border-radius: var(--r-full); background: var(--primary-bg); color: var(--primary-dk); font-size: 9px; font-weight: 800; }
.gym-template-card-head em { color: var(--tx-4); font-size: 9px; font-style: normal; font-weight: 750; }
.gym-template-card h3 { color: var(--tx); font-size: 16px; line-height: 1.3; }
.gym-template-card p { margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.5; }
.gym-template-meta { color: var(--tx-4); font-size: 10px; }
.gym-template-card .gym-add-button { align-self: end; margin: 2px 0 0; }

.clinical-library-page { display: grid; gap: var(--s5); }
.clinical-library-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s5); padding: var(--s6); overflow: hidden; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: var(--r-xl); background: linear-gradient(135deg, #fff 0%, #f1f3ff 58%, #fff6dc 100%); }
.clinical-library-hero h2 { max-width: 760px; margin-top: 4px; font-size: clamp(25px, 4vw, 40px); line-height: 1.08; }
.clinical-library-hero p:not(.section-kicker) { max-width: 760px; margin-top: var(--s3); color: var(--tx-3); font-size: var(--text-sm); line-height: 1.55; }
.clinical-library-summary { display: grid; flex: 0 0 190px; justify-items: center; padding: var(--s4); border: 1px solid rgba(var(--primary-rgb), .14); border-radius: var(--r-xl); background: rgba(255, 255, 255, .78); text-align: center; box-shadow: var(--sh-sm); }
.clinical-library-summary strong { color: var(--primary); font-size: 42px; line-height: 1; }
.clinical-library-summary span { margin-top: 4px; color: var(--tx-2); font-size: 12px; font-weight: var(--fw-b); }
.clinical-library-summary small { margin-top: var(--s2); color: var(--warning); font-size: 10px; font-weight: var(--fw-b); }
.clinical-library-notice { display: grid; gap: 3px; padding: var(--s4) var(--s5); border: 1px solid rgba(226, 164, 58, .24); border-radius: var(--r-lg); background: rgba(255, 249, 232, .8); }
.clinical-library-notice strong { color: #825f16; font-size: var(--text-sm); }
.clinical-library-notice p { color: var(--tx-3); font-size: var(--text-xs); line-height: 1.5; }
.clinical-library-toolbar { display: grid; grid-template-columns: minmax(240px, 1.5fr) repeat(2, minmax(180px, .7fr)); gap: var(--s3); }
.clinical-library-toolbar label { display: grid; gap: 6px; color: var(--tx-3); font-size: 11px; font-weight: var(--fw-b); }
.clinical-library-toolbar input,
.clinical-library-toolbar select { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); color: var(--tx); }
.clinical-library-results-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); color: var(--tx-3); font-size: var(--text-xs); }
.clinical-library-results-heading strong { color: var(--tx); font-size: var(--text-sm); }
.clinical-library-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); }
.clinical-library-test-card { display: flex; min-width: 0; flex-direction: column; gap: var(--s3); padding: var(--s5); border: 1px solid rgba(17, 19, 24, .09); border-radius: var(--r-xl); background: var(--surface); box-shadow: 0 12px 34px rgba(30, 36, 68, .06); }
.clinical-library-test-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); }
.clinical-library-card-tags { display: flex; min-width: 0; flex-wrap: wrap; gap: 5px; }
.clinical-library-card-tags span { padding: 4px 8px; border-radius: var(--r-full); background: var(--primary-bg); color: var(--primary-dk); font-size: 9px; font-weight: var(--fw-b); }
.clinical-library-status { flex: 0 0 auto; padding: 4px 8px; border-radius: var(--r-full); background: rgba(226, 164, 58, .14); color: #825f16; font-size: 9px; font-weight: var(--fw-b); }
.clinical-library-test-card h3 { font-size: var(--text-lg); line-height: 1.25; }
.clinical-library-purpose { color: var(--tx-2); font-size: var(--text-sm); line-height: 1.5; }
.clinical-library-card-meta { display: grid; grid-template-columns: minmax(0, 1fr) 120px; gap: var(--s3); margin: 0; }
.clinical-library-card-meta div { min-width: 0; padding: var(--s3); border-radius: var(--r-lg); background: var(--surface-2); }
.clinical-library-card-meta dt { color: var(--tx-4); font-size: 9px; font-weight: var(--fw-b); letter-spacing: .04em; text-transform: uppercase; }
.clinical-library-card-meta dd { margin: 4px 0 0; color: var(--tx-2); font-size: 11px; line-height: 1.45; }
.clinical-library-card-details { margin-top: auto; border-top: 1px solid var(--border); }
.clinical-library-card-details > summary { padding-top: var(--s3); color: var(--primary-dk); cursor: pointer; font-size: 11px; font-weight: var(--fw-b); }
.clinical-library-card-details > div { display: grid; gap: var(--s2); padding-top: var(--s3); color: var(--tx-3); font-size: 11px; line-height: 1.5; }
.clinical-library-card-details h4 { margin-top: var(--s1); color: var(--tx-2); font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }
.clinical-library-card-details ol { display: grid; gap: 5px; margin: 0; padding-left: 19px; }
.clinical-library-rights { padding: var(--s2) var(--s3); border-radius: var(--r-md); background: rgba(226, 164, 58, .1); color: #735411; }
.clinical-library-sources { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--s1); }
.clinical-library-sources a { padding: 5px 8px; border-radius: var(--r-full); background: var(--primary-bg); color: var(--primary-dk); font-size: 9px; font-weight: var(--fw-sb); text-decoration: none; }
.clinical-library-sources a:hover { text-decoration: underline; }
.clinical-library-test-card > .primary-btn { align-self: flex-start; margin-top: var(--s2); }
.clinical-library-empty { grid-column: 1 / -1; padding: var(--s6); border: 1px dashed var(--border); border-radius: var(--r-xl); color: var(--tx-3); text-align: center; }
.clinical-library-secondary { margin-top: var(--s5); }
.clinical-test-picker-content { width: min(980px, calc(100vw - 32px)); max-width: 980px; max-height: calc(100vh - 40px); overflow: auto; }
.assessment-test-search-entry { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; padding:17px 20px; margin-bottom:18px; border:1px solid #cfc1ed; border-radius:17px; color:#4d3684; background:linear-gradient(125deg,#fff,#f0eafa); box-shadow:0 4px 0 #ded3ef,0 8px 18px #4b326610; font:inherit; font-weight:750; cursor:pointer; }
.assessment-test-search-entry span { font-size:12px; font-weight:500; }
.assessment-test-search-entry:hover { border-color:#8f75ce; box-shadow:0 4px 0 #c5b3e6,0 8px 18px #4b326620; }
.assessment-test-search-entry:focus-visible { outline:3px solid #b19ce5; outline-offset:3px; }
body #clinicalTestPickerModal.clinical-test-drawer { position:fixed; inset:12px 12px 12px auto; width:min(440px,calc(100vw - 24px)); height:auto; padding:0; background:transparent; z-index:12000; align-items:stretch; }
body #clinicalTestPickerModal .clinical-test-picker-content { width:100%; max-width:none; min-height:0; height:100%; max-height:100%; padding:20px; border:1px solid #cfc2e8; border-radius:22px; background:linear-gradient(145deg,#fff,#f7f3fc); box-shadow:-12px 0 40px #43315b24; overflow-y:auto; }
#clinicalTestPickerModal .clinical-library-toolbar { display:grid; grid-template-columns:1fr; gap:8px; position:sticky; top:-20px; background:#f8f5fc; padding:12px 0; z-index:1; }
#clinicalTestPickerModal input[type="search"] { min-height:46px; border-radius:13px; box-shadow:inset 0 2px 4px #55416e0d; }
#clinicalTestPickerModal .clinical-test-picker-list { display:block; }
#clinicalTestPickerModal .detail-header { position:static; padding:0 0 12px; margin:0; background:transparent; }
#clinicalTestPickerModal .clinical-library-test-card { margin:10px 0 16px; border-radius:16px; box-shadow:0 3px 0 #e6dff0; }
#clinicalTestPickerModal .clinical-library-test-card h3 { font-size:16px; }
.clinical-test-reason { color:#694ba5; font-size:12px; margin-bottom:0; }
.clinical-test-already-measured { color:#647867; font-size:12px; }
.clinical-test-contextual>p { font-size:12px; color:#766982; }
.clinical-test-all>summary { padding:12px 0; font-weight:700; cursor:pointer; }
@media(min-width:1100px) { body.clinical-test-drawer-open #initialAssessmentWorkspace { margin-right:460px; } }
@media(max-width:600px) { .assessment-test-search-entry { flex-direction:column; align-items:flex-start; } }
.clinical-test-picker-intro { margin: 0 0 var(--s4); color: var(--tx-3); font-size: var(--text-sm); }
.clinical-library-toolbar--picker { grid-template-columns: minmax(220px, 1fr) minmax(180px, .45fr); margin-bottom: var(--s4); }
.clinical-test-picker-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); }

.assessment-symptom-test-suggestions { display: grid; gap: var(--s3); margin-top: var(--s4); padding: var(--s4); border: 1px solid rgba(var(--primary-rgb), .14); border-radius: var(--r-xl); background: linear-gradient(135deg, rgba(241, 243, 255, .88), rgba(255, 255, 255, .96)); }
.assessment-symptom-test-suggestions.hidden { display: none; }
.assessment-symptom-test-suggestions > header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); }
.assessment-symptom-test-suggestions > header span { color: var(--primary); font-size: 9px; font-weight: var(--fw-b); letter-spacing: .06em; text-transform: uppercase; }
.assessment-symptom-test-suggestions > header h3 { margin-top: 2px; font-size: var(--text-md); line-height: 1.3; }
.assessment-symptom-test-suggestions > header button { flex: 0 0 auto; padding: 6px 9px; border: 0; background: transparent; color: var(--primary-dk); cursor: pointer; font-size: 10px; font-weight: var(--fw-b); }
.assessment-symptom-test-suggestions > p { max-width: 780px; color: var(--tx-3); font-size: 11px; line-height: 1.5; }
.assessment-symptom-test-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s3); }
.assessment-symptom-test-card { display: flex; min-width: 0; flex-direction: column; gap: var(--s2); padding: var(--s3); border: 1px solid rgba(17, 19, 24, .08); border-radius: var(--r-lg); background: rgba(255, 255, 255, .88); }
.assessment-symptom-test-card > header { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); color: var(--primary-dk); font-size: 9px; font-weight: var(--fw-b); }
.assessment-symptom-test-card > header small { color: var(--warning); font-size: 8px; }
.assessment-symptom-test-card > strong { color: var(--tx); font-size: 12px; line-height: 1.35; }
.assessment-symptom-test-card > p { color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.assessment-symptom-test-match { color: var(--primary-dk); font-size: 9px; line-height: 1.4; }
.assessment-symptom-test-card details { border-top: 1px solid var(--border); }
.assessment-symptom-test-card summary { padding-top: var(--s2); color: var(--tx-2); cursor: pointer; font-size: 9px; font-weight: var(--fw-b); }
.assessment-symptom-test-card details > div { display: grid; gap: var(--s2); padding-top: var(--s2); color: var(--tx-3); font-size: 9px; line-height: 1.45; }
.assessment-symptom-test-card details p strong { display: block; color: var(--tx-2); }
.assessment-symptom-test-card details ol { display: grid; gap: 4px; margin: 0; padding-left: 17px; }
.assessment-symptom-test-card .clinical-test-sources { display: flex; flex-wrap: wrap; gap: 5px; }
.assessment-symptom-test-card .clinical-test-sources a { color: var(--primary-dk); font-weight: var(--fw-sb); }
.assessment-symptom-test-card > .secondary-btn { width: 100%; min-height: 34px; margin-top: auto; padding: 7px 9px; font-size: 9px; }
.assessment-symptom-test-empty { padding: var(--s3); border: 1px dashed var(--border); border-radius: var(--r-lg); background: rgba(255, 255, 255, .72); }

/* Bilan tactile : une section repérable et un seul bloc de saisie à la fois. */
@media (max-width: 1100px) {
  .initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid {
    z-index: 30;
    border: 1px solid rgba(var(--primary-rgb), .14);
    background: rgba(247,248,255,.96);
    box-shadow: 0 12px 28px rgba(45,49,92,.10);
    backdrop-filter: blur(14px);
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid > .assessment-step-nav {
    gap: 5px;
    padding: 5px;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid > .assessment-step-nav::-webkit-scrollbar { display: none; }
  .initial-assessment-workspace.assessment-guided-draft .assessment-step-nav button {
    min-height: 40px;
    padding: 7px 9px;
    scroll-snap-align: center;
    white-space: normal;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-progress {
    padding: 10px 12px;
    border-top: 1px solid rgba(var(--primary-rgb), .10);
    border-radius: 0 0 16px 16px;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-heading strong {
    font-size: clamp(14px, 2.1vw, 17px);
    white-space: normal;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-heading em {
    padding: 4px 7px;
    white-space: nowrap;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-requirement {
    padding: 6px 9px;
    font-size: 10px;
  }
  .initial-assessment-workspace.assessment-guided-draft .knee-assessment-form.is-guided-assessment .assessment-section {
    min-height: 0;
  }
  .initial-assessment-workspace.assessment-guided-draft .knee-assessment-form.is-guided-assessment .assessment-guided-item.is-guided-current {
    min-height: 0;
    padding: clamp(15px, 3vw, 24px);
    border-radius: 18px;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-step-actions {
    z-index: 25;
    margin: 0 -4px -4px;
    padding: 10px 4px calc(10px + env(safe-area-inset-bottom));
    background: linear-gradient(180deg, rgba(250,250,253,0), rgba(250,250,253,.96) 22%);
    backdrop-filter: blur(10px);
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-step-actions > button {
    min-height: 44px;
  }
}

@media (max-width: 520px) {
  .initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid > .assessment-step-nav {
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-heading {
    align-items: flex-start;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-heading span { font-size: 8px; }
  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-heading em { font-size: 9px; }
}

.shared-timeline {
  margin: var(--s6) 0;
  padding: var(--s5);
  border: 1px solid var(--border);
  border-radius: var(--r-2xl);
  background: var(--surface);
  box-shadow: var(--sh-xs);
}
.shared-timeline-header { margin-bottom: var(--s4); }
.shared-timeline-header h3,
.shared-timeline-header h4 { margin-top: 2px; font-size: var(--text-lg); }
.shared-timeline-header p:not(.section-kicker) { margin-top: 4px; color: var(--tx-3); font-size: var(--text-xs); }
.shared-timeline-list { position: relative; display: flex; flex-direction: column; gap: var(--s3); }
.shared-timeline-empty { padding: var(--s4); border: 1px dashed var(--border); border-radius: var(--r-lg); color: var(--tx-3); font-size: var(--text-sm); text-align: center; }
.shared-timeline-event { position: relative; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: var(--s3); padding: var(--s3); border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface-2); }
.shared-timeline-icon { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--primary-bg); color: var(--primary); font-size: 12px; font-weight: var(--fw-b); }
.shared-timeline-event[data-author="patient"] .shared-timeline-icon { background: var(--clr-ok-50); color: var(--clr-ok-700); }
.shared-timeline-event[data-visibility="clinician"] { border-style: dashed; }
.shared-timeline-event-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); }
.shared-timeline-event-title { font-size: var(--text-sm); font-weight: var(--fw-sb); }
.shared-timeline-event time { color: var(--tx-4); font-size: 10px; white-space: nowrap; }
.shared-timeline-event-description { margin-top: 3px; color: var(--tx-3); font-size: var(--text-xs); line-height: 1.45; }
.shared-timeline-meta { display: flex; gap: var(--s2); flex-wrap: wrap; margin-top: var(--s2); }
.shared-timeline-chip { padding: 2px 7px; border-radius: var(--r-full); background: var(--surface); border: 1px solid var(--border); color: var(--tx-3); font-size: 9px; font-weight: var(--fw-sb); }

.shared-goals {
  margin: var(--s6) 0;
  padding: var(--s5);
  border: 1px solid var(--border);
  border-radius: var(--r-2xl);
  background: var(--surface);
  box-shadow: var(--sh-xs);
}
.shared-goals-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); }
.shared-goal-card { padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface-2); }
.shared-goal-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); }
.shared-goal-card-title { font-size: var(--text-sm); font-weight: var(--fw-sb); }
.shared-goal-status { padding: 3px 8px; border-radius: var(--r-full); background: var(--primary-bg); color: var(--primary); font-size: 9px; font-weight: var(--fw-sb); white-space: nowrap; }
.shared-goal-criterion { margin-top: var(--s2); color: var(--tx-3); font-size: var(--text-xs); line-height: 1.45; }
.shared-goal-meta { display: flex; gap: var(--s2); flex-wrap: wrap; margin-top: var(--s3); color: var(--tx-4); font-size: 10px; }
.shared-goal-card-actions { display: flex; justify-content: flex-end; gap: 7px; margin-top: var(--s3); padding-top: var(--s3); border-top: 1px solid var(--border); }
.shared-goal-card-actions button,
.shared-goal-inline-editor footer button { padding: 6px 9px; border: 0; border-radius: 9px; background: transparent; color: var(--primary-dk); font: 750 10px/1 var(--font); cursor: pointer; }
.shared-goal-card-actions button:hover,
.shared-goal-inline-editor footer button:hover { background: var(--primary-bg); }
.shared-goal-card-actions .is-danger { color: #a34b44; }
.shared-goal-card-actions .is-danger:hover { background: rgba(190,75,65,.08); }
.shared-goal-inline-editor { display: grid; gap: 9px; margin-top: var(--s3); padding-top: var(--s3); border-top: 1px solid var(--border); }
.shared-goal-inline-editor.hidden { display: none; }
.shared-goal-inline-editor > label { display: grid; gap: 5px; color: var(--tx-3); font-size: 10px; font-weight: var(--fw-b); }
.shared-goal-inline-editor > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.shared-goal-inline-editor > div label { display: grid; gap: 5px; color: var(--tx-3); font-size: 10px; font-weight: var(--fw-b); }
.shared-goal-inline-editor input,
.shared-goal-inline-editor textarea,
.shared-goal-inline-editor select { width: 100%; min-height: 36px; padding: 8px 9px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--tx); font: 650 11px/1.3 var(--font); }
.shared-goal-inline-editor .shared-goal-inline-visible { display: flex; align-items: center; gap: 7px; }
.shared-goal-inline-editor .shared-goal-inline-visible input { width: auto; min-height: auto; }
.shared-goal-inline-editor footer { display: flex; justify-content: flex-end; gap: 7px; }
.shared-goal-inline-editor footer .primary-btn { color: white; background: var(--primary); }
.shared-goal-form { display: flex; flex-direction: column; gap: var(--s3); margin-bottom: var(--s4); padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface-2); }
.shared-goal-form label { display: flex; flex-direction: column; gap: var(--s2); font-size: var(--text-xs); font-weight: var(--fw-sb); }
.shared-goal-form input,
.shared-goal-form textarea { width: 100%; padding: 10px 11px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); font-weight: var(--fw-r); }
.shared-goal-form-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: end; gap: var(--s3); }
.shared-goal-form-row .shared-goal-visibility { flex-direction: row; align-items: center; padding-bottom: 10px; }
.shared-goal-visibility input { width: auto; }

.shared-program {
  margin: var(--s6) 0;
  padding: var(--s5);
  border: 1px solid var(--border);
  border-radius: var(--r-2xl);
  background: var(--surface);
  box-shadow: var(--sh-xs);
}
.shared-program-list { display: flex; flex-direction: column; gap: var(--s3); }
.shared-program-card { padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface-2); }
.shared-program-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); }
.shared-program-card-title { font-size: var(--text-sm); font-weight: var(--fw-sb); }
.shared-program-dosage { padding: 3px 8px; border-radius: var(--r-full); background: var(--primary-bg); color: var(--primary); font-size: 9px; font-weight: var(--fw-sb); }
.shared-program-instructions { margin-top: var(--s2); color: var(--tx-3); font-size: var(--text-xs); line-height: 1.5; white-space: pre-wrap; }
.shared-program-meta { display: flex; gap: var(--s2); flex-wrap: wrap; margin-top: var(--s3); color: var(--tx-4); font-size: 10px; }
.shared-program-feedback { display: grid; grid-template-columns: minmax(130px, .7fr) minmax(0, 1fr) auto; gap: var(--s2); margin-top: var(--s3); padding-top: var(--s3); border-top: 1px solid var(--border); }
.shared-program-feedback select,
.shared-program-feedback input { width: 100%; padding: 8px 9px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); font-size: var(--text-xs); }
.shared-program-feedback button { padding: 8px 11px; border-radius: var(--r-lg); background: var(--primary); color: #fff; font-size: var(--text-xs); font-weight: var(--fw-sb); }
.shared-program-latest-feedback { margin-top: var(--s3); padding: var(--s3); border-radius: var(--r-lg); background: var(--clr-ok-50); color: var(--tx-2); font-size: var(--text-xs); }
.shared-program-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); }

.first-session-preparation { margin-bottom: var(--s5); padding: var(--s5); border: 1px solid var(--primary); border-radius: var(--r-xl); background: var(--primary-bg); }
.first-session-preparation h4 { margin-top: 2px; font-size: var(--text-md); }
.first-session-preparation-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s3); margin-top: var(--s4); }
.first-session-preparation-item { padding: var(--s3); border-radius: var(--r-lg); background: var(--surface); }
.first-session-preparation-item span { display: block; color: var(--tx-4); font-size: 10px; font-weight: var(--fw-sb); text-transform: uppercase; }
.first-session-preparation-item strong { display: block; margin-top: 3px; font-size: var(--text-sm); }
.session-preparation-summary { margin-bottom: var(--s5); padding: var(--s5); border: 1px solid var(--clr-in-200); border-radius: var(--r-xl); background: var(--surface); box-shadow: var(--shadow-sm); }
.session-preparation-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s4); }
.session-preparation-heading h4 { margin: 2px 0 var(--s1); font-size: var(--text-lg); }
.session-preparation-heading p { margin: 0; color: var(--tx-3); }
.preparation-aid-label { flex-shrink: 0; padding: 6px 10px; border-radius: var(--r-full); background: var(--clr-in-50); color: var(--clr-in-700); font-size: 11px; font-weight: var(--fw-sb); }
.session-preparation-highlights { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); margin: var(--s4) 0; }
.session-preparation-highlight { padding: var(--s3) var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface-2); }
.session-preparation-highlight span { display: block; margin-bottom: 4px; color: var(--tx-4); font-size: 10px; font-weight: var(--fw-sb); text-transform: uppercase; }
.session-preparation-highlight strong { display: block; color: var(--tx); font-size: var(--text-sm); line-height: 1.45; }
.session-preparation-highlight-action {
  width: 100%;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast), transform var(--dur-fast);
}
.session-preparation-highlight-action:hover {
  border-color: var(--primary);
  box-shadow: var(--sh-xs);
  transform: translateY(-1px);
}
.session-preparation-highlight-action:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}
.preparation-tone-good { border-color: var(--clr-ok-200); background: var(--clr-ok-50); }
.preparation-tone-warning { border-color: var(--clr-wa-200); background: var(--clr-wa-50); }
.preparation-tone-danger { border-color: var(--clr-er-200); background: var(--clr-er-50); }
.session-preparation-decision { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(260px, 1.3fr) auto; gap: var(--s3); align-items: end; padding-top: var(--s4); border-top: 1px solid var(--border); }
.session-preparation-decision label { display: grid; gap: var(--s2); font-size: var(--text-sm); font-weight: var(--fw-sb); }
.session-preparation-decision textarea { resize: vertical; min-height: 44px; }
.first-session-badge { padding: 3px 8px; border-radius: var(--r-full); background: var(--clr-in-50); color: var(--clr-in-700); font-size: 9px; font-weight: var(--fw-sb); }

@media (max-width: 700px) {
  .knee-assessment { padding: var(--s4); }
  .knee-assessment-header { flex-direction: column; }
  .assessment-header-actions { width: 100%; justify-content: space-between; }
  .assessment-grid { grid-template-columns: 1fr; gap: 0; }
  .assessment-reasoning-grid { grid-template-columns: 1fr; }
  .assessment-measure-notice { grid-template-columns: 1fr; }
  .assessment-measure-notice span { grid-column: 1; grid-row: auto; justify-self: start; }
  .assessment-actions { align-items: stretch; flex-direction: column; }
  .assessment-actions .primary-btn { width: 100%; }
  .assessment-summary-header { flex-direction: column; }
  .assessment-summary-header button { width: 100%; }
  .measurement-grid,
  .measurement-grid--top,
  .measurement-values { grid-template-columns: 1fr 1fr; }
  .assessment-quick-module-list { grid-template-columns: 1fr; }
  .assessment-quick-module-entry { grid-template-columns: 1fr; }
  .assessment-quick-module-specialized-grid { grid-template-columns: 1fr; }
  .pre-intake { padding: var(--s4); }
  .pre-intake-heading { flex-direction: column; }
  .pre-intake-score-grid,
  .pre-intake-score-grid--two,
  .pre-intake-checks { grid-template-columns: 1fr; }
  .pre-intake-checks legend { grid-column: 1; }
  .pre-intake-actions { flex-wrap: wrap; }
  .pre-intake-actions > p { flex-basis: 100%; order: -1; }
  .patient-area-nav { grid-template-columns: 1fr; }
  .functional-activity-row { grid-template-columns: 1fr; }
  .clinician-pre-intake { padding: var(--s4); }
  .clinician-pre-intake-header { flex-direction: column; }
  .clinician-pre-intake-grid { grid-template-columns: 1fr; }
  .scientific-resource-card { padding: var(--s4); }
  .scientific-resource-header { align-items: flex-start; flex-direction: column; }
  .scientific-resource-grid,
  .scientific-resource-traceability dl { grid-template-columns: 1fr; }
  .scientific-resource-actions > * { width: 100%; }
  .calf-achilles-option,
  .calf-achilles-alternative { grid-template-columns: 1fr; gap: 4px; }
  .shared-goals-list { grid-template-columns: 1fr; }
  .shared-goal-form-row { grid-template-columns: 1fr; align-items: stretch; }
  .shared-goal-inline-editor > div { grid-template-columns: 1fr; }
  .shared-program-form-grid,
  .shared-program-feedback { grid-template-columns: 1fr; }
  .first-session-preparation-grid { grid-template-columns: 1fr; }
  .session-preparation-heading { display: grid; }
  .session-preparation-highlights, .session-preparation-decision { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .initial-assessment-overview-content { grid-template-columns: 1fr; }
  .initial-assessment-overview-header,
  .initial-assessment-overview-footer { align-items: stretch; flex-direction: column; }
  .initial-assessment-overview-footer .primary-btn { width: 100%; }
  .assessment-context-actions { width: 100%; }
  .assessment-context-actions > button { flex: 1 1 180px; }
  .initial-assessment-page-header {
    align-items: flex-start;
    flex-direction: column;
    margin: calc(var(--s4) * -1) calc(var(--s4) * -1) var(--s5);
    padding: var(--s4);
  }
}

@media (max-width: 430px) {
  .measurement-grid,
  .measurement-grid--top,
  .measurement-values { grid-template-columns: 1fr; }
  .assessment-quick-modules-empty,
  .assessment-added-module-header { align-items: stretch; flex-direction: column; }
  .assessment-quick-modules-empty .primary-btn,
  .assessment-added-module-header button { width: 100%; }
  .assessment-added-measure { grid-template-columns: auto minmax(0, 1fr); }
  .assessment-added-measure button { grid-column: 1 / -1; width: 100%; }
  .assessment-quick-module-modal-content { width: 100%; max-width: none; max-height: 100dvh; min-height: 100dvh; border-radius: 0; }
}

/* ══════════════════════════════════════════════════════
   §26  COMPOSANTS EXERCICES
   ══════════════════════════════════════════════════════ */

/* Exercise card */
.exercise-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-xl); padding: var(--s5);
  display: flex; align-items: flex-start; gap: var(--s4);
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast);
}
.exercise-card:hover { border-color: var(--border-s); box-shadow: var(--sh-sm); }
.exercise-card__thumbnail {
  width: 56px; height: 56px; border-radius: var(--r-lg);
  background: var(--primary-bg); display: flex; align-items: center;
  justify-content: center; font-size: 24px; flex-shrink: 0;
}
.exercise-card__info { flex: 1; min-width: 0; }
.exercise-card__name { font-size: var(--text-md); font-weight: var(--fw-sb); margin-bottom: var(--s1); }
.exercise-card__meta { display: flex; gap: var(--s2); flex-wrap: wrap; margin-bottom: var(--s2); }
.exercise-card__desc { font-size: var(--text-sm); color: var(--tx-3); line-height: 1.5; }

/* Exercise prescription row */
.exercise-row {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr 120px;
  gap: var(--s3); align-items: center;
  padding: var(--s3) 0;
  border-bottom: 1px solid var(--border);
  font-size: var(--text-sm);
}
.exercise-row:last-child { border-bottom: none; }
.exercise-row__name { font-weight: var(--fw-m); }
.exercise-row__param { text-align: center; }

/* Exercise difficulty */
.difficulty { display: flex; gap: 3px; }
.difficulty__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--border); }
.difficulty--1 .difficulty__dot:nth-child(-n+1) { background: var(--clr-ok-500); }
.difficulty--2 .difficulty__dot:nth-child(-n+2) { background: var(--clr-wa-500); }
.difficulty--3 .difficulty__dot:nth-child(-n+3) { background: var(--clr-er-500); }

/* Community */
.library-tab, .community-tab { }
.library-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); padding: var(--s6); box-shadow: var(--sh-xs); display: flex; flex-direction: column; gap: var(--s5); }
.library-list { display: flex; flex-direction: column; gap: var(--s3); }
.library-import-row { display: flex; align-items: center; gap: var(--s3); margin-top: var(--s3); flex-wrap: wrap; }
.import-status { font-size: 12px; color: var(--tx-4); margin-top: 6px; }
.community-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: var(--s5); }
.community-profile-row { display: flex; gap: var(--s4); flex-wrap: wrap; padding: var(--s4); background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--r-xl); }
.community-filters-row { display: flex; gap: var(--s4); flex-wrap: wrap; margin-bottom: var(--s4); }
.community-inline-action-wrap { display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap; }
.community-notification-unread { border-left: 2px solid var(--primary); background: var(--primary-bg); }
.community-role-badge { display: inline-block; font-size: 10px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .04em; padding: 2px 7px; border-radius: var(--r-full); }
.community-role-kine     { background: var(--clr-in-50);  color: var(--clr-in-700); }
.community-role-medecin  { background: var(--clr-ok-50);  color: var(--clr-ok-700); }
.community-role-collegue { background: var(--clr-wa-50);  color: var(--clr-wa-700); }
.community-role-admin    { background: var(--clr-er-50);  color: var(--clr-er-700); }
.community-post-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); padding: var(--s4) var(--s5); }
.community-post-header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: var(--s2); }
.community-post-footer { display: flex; align-items: center; gap: var(--s3); margin-top: var(--s3); flex-wrap: wrap; }
.community-post-votes { display: flex; align-items: center; gap: var(--s2); font-size: 12px; font-weight: var(--fw-sb); }
.community-vote-btn { background: none; border: none; cursor: pointer; padding: 2px 4px; border-radius: var(--r-sm); }
.community-vote-btn:hover { background: var(--surface-2); }
.community-post-action { font-size: 12px; color: var(--primary); font-weight: var(--fw-m); background: none; border: none; cursor: pointer; }
.community-post-content { font-size: 13px; color: var(--tx-2); line-height: 1.5; }
.community-reported-badge { background: var(--clr-er-50); color: var(--clr-er-700); font-size: 10px; font-weight: var(--fw-b); padding: 2px 8px; border-radius: var(--r-full); }
.community-followed-tag-chip { cursor: pointer; transition: background var(--dur-fast); }
.community-followed-tag-chip:hover { background: var(--clr-er-50); color: var(--clr-er-700); }

/* Patient app */
.questionnaire-form { display: flex; flex-direction: column; gap: var(--s4); padding: var(--s5); background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--r-xl); }
.patient-data-choice-note { padding: var(--s4); border-radius: var(--r-lg); background: var(--primary-bg); border: 1px solid rgba(var(--primary-rgb), .18); }
.patient-data-choice-note strong { display: block; margin-bottom: var(--s1); }
.patient-data-choice-note p { margin: 0; color: var(--tx-2); line-height: 1.55; }
.post-score-summary { background: var(--primary-bg); border: 1px solid rgba(var(--primary-rgb), .2); border-radius: var(--r-lg); padding: var(--s3) var(--s4); font-size: 13px; }
.post-score-summary > p { margin: var(--s3) 0 0; color: var(--tx-2); }
.post-session-score-card { overflow: hidden; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); box-shadow: var(--sh-xs); }
.post-session-score-card > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: var(--s4); align-items: center; padding: var(--s4); cursor: pointer; list-style: none; }
.post-session-score-card > summary::-webkit-details-marker { display: none; }
.post-session-score-heading { display: flex; align-items: baseline; gap: var(--s3); min-width: 0; }
.post-session-score-heading small { color: var(--tx-2); font-weight: var(--fw-sb); }
.post-session-score-heading strong { color: var(--tx-1); font-size: 26px; line-height: 1; }
.post-session-score-heading strong small { margin-left: 2px; color: var(--tx-3); font-size: 13px; }
.post-session-score-status { justify-self: end; padding: 5px 9px; border-radius: 999px; background: var(--primary-bg); color: var(--primary); font-size: 11px; font-weight: var(--fw-b); }
.post-session-score-action { color: var(--primary); font-size: 12px; font-weight: var(--fw-sb); white-space: nowrap; }
.post-session-score-action::after { content: '⌄'; display: inline-block; margin-left: 6px; transition: transform .2s ease; }
.post-session-score-card[open] .post-session-score-action::after { transform: rotate(180deg); }
.post-session-score-detail { padding: 0 var(--s4) var(--s4); border-top: 1px solid var(--border); }
.post-session-score-detail > p:first-child { margin-top: var(--s4); }
.post-session-score-components { display: grid; gap: var(--s3); margin: var(--s4) 0; }
.post-session-score-component { display: grid; gap: 5px; }
.post-session-score-component-head { display: flex; justify-content: space-between; gap: var(--s3); font-size: 12px; }
.post-session-score-component-head strong { white-space: nowrap; }
.post-session-score-bar { height: 6px; overflow: hidden; border-radius: 999px; background: var(--surface-3); }
.post-session-score-bar span { display: block; height: 100%; border-radius: inherit; background: var(--primary); }
.post-session-score-component > small, .post-session-score-method { color: var(--tx-3); }
.post-session-score-component.is-missing { opacity: .62; }
.post-session-score-experimental { margin-bottom: 0; padding-top: var(--s3); border-top: 1px solid var(--border); color: var(--tx-2); font-size: 11px; font-weight: var(--fw-sb); }
.post-session-score-alert { color: var(--danger); font-weight: var(--fw-sb); }
.post-session-raw-answers { margin-top: var(--s3); border-top: 1px solid var(--border); }
.post-session-raw-answers > summary { padding: var(--s3) 0; cursor: pointer; color: var(--primary); font-size: 12px; font-weight: var(--fw-sb); }
.post-session-raw-answers > div { padding-bottom: var(--s2); }

@media (max-width: 640px) {
  .post-session-score-card > summary { grid-template-columns: 1fr auto; gap: var(--s2) var(--s3); }
  .post-session-score-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  .post-session-score-status { align-self: start; }
  .post-session-score-action { grid-column: 1 / -1; }
  .patient-pre-session-assessment-summary dl { grid-template-columns: 1fr; }
  .patient-activity-exercise-grid,
  .patient-activity-exercise-grid.is-planned { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .patient-activity-exercise-grid label:first-child { grid-column: 1 / -1; }
  .patient-running-plan-grid { grid-template-columns: 1fr; }
  .patient-session-creation-mode { grid-template-columns: 1fr; border-radius: var(--r-lg); }
  .patient-session-creation-mode button { border-radius: var(--r-md); }
}
.patient-side-session-form, .patient-exercise-form { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--r-xl); padding: var(--s5); }
.patient-exercise-table-wrap { overflow-x: auto; margin: var(--s3) 0; }

/* Summary card */
.patient-summary-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); padding: var(--s5) var(--s6); margin-bottom: var(--s4); box-shadow: var(--sh-xs); }
.summary-card { display: flex; align-items: center; justify-content: space-between; }
.patient-summary-card p { font-size: 11px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .06em; color: var(--tx-3); margin-bottom: 4px; }
.patient-summary-card h2 { font-size: 24px; font-weight: var(--fw-b); }
.search-panel { margin-bottom: var(--s4); }
.search-panel label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: var(--fw-sb); color: var(--tx-3); }
.patient-list-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--sh-xs); }
.patient-list-card .card-header { padding: var(--s4) var(--s6); border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; }
.patient-list-card .card-header h2 { font-size: 14px; font-weight: var(--fw-sb); }

/* Role selection */
.role-selection-overlay { position: fixed; inset: 0; background: linear-gradient(135deg, #1e1f2e 0%, #2d2f4e 100%); display: flex; align-items: center; justify-content: center; z-index: var(--z-overlay); padding: var(--s6); }
.role-selection-overlay.hidden { display: none; }
.role-selection-modal { background: var(--surface); border-radius: var(--r-2xl); padding: var(--s10) var(--s8); max-width: 460px; width: 100%; box-shadow: 0 32px 80px rgba(0,0,0,.4); }
.role-selection-header { text-align: center; margin-bottom: var(--s8); }
.role-selection-header h1 { font-size: 22px; font-weight: var(--fw-b); margin-bottom: var(--s2); }
.role-selection-header p  { color: var(--tx-3); font-size: 14px; }
.role-selection-content { display: flex; flex-direction: column; gap: var(--s3); }
.role-selection-btn { display: flex; align-items: center; gap: var(--s4); padding: var(--s4) var(--s5); border: 1.5px solid var(--border); border-radius: var(--r-xl); background: var(--surface-2); text-align: left; cursor: pointer; transition: border-color var(--dur-fast), background var(--dur-fast), transform var(--dur-fast); font-family: var(--font); width: 100%; }
.role-selection-btn:hover { border-color: var(--primary); background: var(--primary-bg); transform: translateY(-1px); }
.role-icon { font-size: 28px; flex-shrink: 0; }
.role-title { font-weight: var(--fw-b); font-size: 15px; display: block; }
.role-description { font-size: 12px; color: var(--tx-3); margin-top: 2px; display: block; }
.role-divider { text-align: center; color: var(--tx-4); font-size: 12px; padding: var(--s1) 0; }
.role-selection-footer { text-align: center; margin-top: var(--s6); }
.role-selection-note { font-size: 11px; color: var(--tx-4); }

/* Modal detail */
.detail-header { display: flex; align-items: flex-start; justify-content: space-between; padding: var(--s6); border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--surface); z-index: 10; gap: var(--s4); }
.app-label { font-size: 10px; font-weight: var(--fw-b); text-transform: uppercase; letter-spacing: .08em; color: var(--primary); margin-bottom: 2px; }
.detail-header h3 { font-size: 18px; font-weight: var(--fw-b); margin: 0; }
.detail-header-actions { display: flex; align-items: center; gap: var(--s2); flex-shrink: 0; }
.close-icon { width: 30px; height: 30px; border-radius: var(--r-lg); background: var(--surface-2); border: 1px solid var(--border); color: var(--tx-3); font-size: 14px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background var(--dur-fast); }
.close-icon:hover { background: var(--border); }
.identity-quick-btn, .detail-option-btn { width: 30px; height: 30px; border-radius: var(--r-lg); background: var(--surface-2); border: 1px solid var(--border); font-size: 13px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background var(--dur-fast); }
.identity-quick-btn:hover, .detail-option-btn:hover { background: var(--border); }
.detail-option-delete { color: var(--error); }
.detail-option-delete:hover { background: var(--clr-er-50) !important; border-color: var(--error); }
.detail-identity-popover { margin: var(--s4) var(--s6); background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--r-xl); padding: var(--s4) var(--s5); display: flex; flex-direction: column; gap: var(--s2); font-size: 13px; }
.detail-panel { padding: var(--s6); }
.detail-panel.hidden { display: none !important; }

/* Misc */
.suggestion-list { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); box-shadow: var(--sh-md); overflow: hidden; max-height: 200px; overflow-y: auto; }
.suggestion-item { display: block; width: 100%; text-align: left; padding: 9px 14px; font-size: 13px; color: var(--tx); border: none; background: none; cursor: pointer; transition: background var(--dur-fast); font-family: var(--font); }
.suggestion-item:hover { background: var(--primary-bg); }
.suggestion-item.empty { color: var(--tx-4); font-style: italic; cursor: default; }
.kine-settings-modal-content { max-width: 500px; }

/* ══════════════════════════════════════════════════════
   §27  ANIMATIONS
   ══════════════════════════════════════════════════════ */
@keyframes spin           { to { transform: rotate(360deg); } }
@keyframes shimmer        { to { background-position: -200% 0; } }
@keyframes fadeIn         { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeOut        { from { opacity: 1; } to { opacity: 0; } }
@keyframes slideUp        { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideDown      { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideLeft      { from { opacity: 0; transform: translateX(12px); } to { opacity: 1; transform: translateX(0); } }
@keyframes slideRight     { from { opacity: 0; transform: translateX(-12px); } to { opacity: 1; transform: translateX(0); } }
@keyframes scaleIn        { from { opacity: 0; transform: scale(.95); } to { opacity: 1; transform: scale(1); } }
@keyframes pulse          { 0%,100% { opacity: 1; } 50% { opacity: .4; } }
@keyframes ping           { 75%,100% { transform: scale(2); opacity: 0; } }
@keyframes bounce         { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes shakeBlock     { 0%,100% { transform: translateX(0); } 20%,60% { transform: translateX(-4px); } 40%,80% { transform: translateX(4px); } }
@keyframes toastIn        { from { opacity: 0; transform: translateX(-50%) translateY(8px); } to { opacity: 1; transform: translateX(-50%) translateY(0); } }
@keyframes cardPulse      { 0% { box-shadow: 0 0 0 0 rgba(var(--primary-rgb), .35); } 100% { box-shadow: 0 0 0 12px rgba(var(--primary-rgb), 0); } }
@keyframes progress-stripe{ from { background-position: 0 0; } to { background-position: 24px 0; } }
@keyframes dotPulse       { 0%,80%,100% { transform: scale(0); } 40% { transform: scale(1); } }
@keyframes ripple {
  0%   { transform: scale(0); opacity: .4; }
  100% { transform: scale(4); opacity: 0; }
}

/* Classes d'animation */
.animate-fade-in  { animation: fadeIn  var(--dur-mid)  var(--ease); }
.animate-fade-out { animation: fadeOut var(--dur-mid)  var(--ease); }
.animate-slide-up { animation: slideUp var(--dur-mid)  var(--ease); }
.animate-scale-in { animation: scaleIn var(--dur-mid)  var(--ease); }
.animate-pulse    { animation: pulse 2s infinite; }
.animate-spin     { animation: spin   .8s linear infinite; }
.animate-bounce   { animation: bounce 1s var(--ease-spring) infinite; }

/* Loading dots */
.loading-dots { display: flex; align-items: center; gap: 4px; }
.loading-dots span {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--primary); animation: dotPulse 1.2s infinite;
}
.loading-dots span:nth-child(2) { animation-delay: .2s; }
.loading-dots span:nth-child(3) { animation-delay: .4s; }

/* Spinner */
.spinner {
  display: inline-block;
  width: 20px; height: 20px;
  border: 2px solid var(--border);
  border-top-color: var(--primary);
  border-radius: 50%;
  animation: spin .7s linear infinite;
}
.spinner--sm { width: 14px; height: 14px; }
.spinner--lg { width: 32px; height: 32px; }
.spinner--white { border-color: rgba(255,255,255,.3); border-top-color: #fff; }

/* ══════════════════════════════════════════════════════
   §28  UTILITAIRES
   ══════════════════════════════════════════════════════ */
.hidden          { display: none !important; }
.invisible       { visibility: hidden; }
.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; }
.truncate        { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.break-words     { overflow-wrap: break-word; }
.cursor-pointer  { cursor: pointer; }
.select-none     { user-select: none; }
.pointer-events-none { pointer-events: none; }

/* Flex */
.flex            { display: flex; }
.inline-flex     { display: inline-flex; }
.flex-col        { flex-direction: column; }
.flex-wrap       { flex-wrap: wrap; }
.items-center    { align-items: center; }
.items-start     { align-items: flex-start; }
.justify-between { justify-content: space-between; }
.justify-center  { justify-content: center; }
.justify-end     { justify-content: flex-end; }
.gap-1 { gap: var(--s1); } .gap-2 { gap: var(--s2); } .gap-3 { gap: var(--s3); }
.gap-4 { gap: var(--s4); } .gap-5 { gap: var(--s5); } .gap-6 { gap: var(--s6); }
.flex-1 { flex: 1; } .flex-shrink-0 { flex-shrink: 0; }
.min-w-0 { min-width: 0; }

/* Grid */
.grid            { display: grid; }
.grid-cols-2     { grid-template-columns: repeat(2, 1fr); }
.grid-cols-3     { grid-template-columns: repeat(3, 1fr); }
.grid-cols-4     { grid-template-columns: repeat(4, 1fr); }
.grid-auto       { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }

/* Spacing */
.m-0  { margin: 0; }
.mt-2 { margin-top: var(--s2); } .mt-4 { margin-top: var(--s4); }
.mt-6 { margin-top: var(--s6); } .mt-8 { margin-top: var(--s8); }
.mb-2 { margin-bottom: var(--s2); } .mb-4 { margin-bottom: var(--s4); }
.mb-6 { margin-bottom: var(--s6); }
.p-0  { padding: 0; }
.p-4  { padding: var(--s4); } .p-6 { padding: var(--s6); }
.px-4 { padding-left: var(--s4); padding-right: var(--s4); }
.py-2 { padding-top: var(--s2); padding-bottom: var(--s2); }
.py-4 { padding-top: var(--s4); padding-bottom: var(--s4); }

/* Widths */
.w-full { width: 100%; } .h-full { height: 100%; }
.max-w-sm  { max-width: 360px; }
.max-w-md  { max-width: 480px; }
.max-w-lg  { max-width: 640px; }
.max-w-xl  { max-width: 800px; }
.max-w-2xl { max-width: 1024px; }

/* Divider */
.divider {
  height: 1px; background: var(--border); border: none; margin: 0;
}
.divider--vertical { width: 1px; height: auto; align-self: stretch; }
.divider--thick { height: 2px; }

/* Misc */
.modal-lock-dashboard-filters .header-filters { display: none !important; }
.flash-confirm { animation: flashGreen .6s var(--ease); }
@keyframes flashGreen { 0%,100% { background: inherit; } 20% { background: var(--clr-ok-50); } }

/* ══════════════════════════════════════════════════════
   §29  RESPONSIVE
   ══════════════════════════════════════════════════════ */
@media (max-width: 900px) {
  :root { --sb-w: 0px; }

  .app-layout {
    display: flex;
    flex-direction: column;
  }
  .sidebar {
    display: none;
    position: fixed; inset: 0;
    z-index: var(--z-modal);
    width: 260px;
    box-shadow: var(--sh-2xl);
  }
  .sidebar.open { display: flex; }
  .mobile-nav { display: flex; }
  .main-content { padding: var(--s5); padding-bottom: calc(72px + var(--s4)); }
  .kpi-grid { grid-template-columns: 1fr 1fr; }
  .grid-cols-3 { grid-template-columns: 1fr 1fr; }
  .grid-cols-4 { grid-template-columns: 1fr 1fr; }
  .dashboard-metrics-grid { grid-template-columns: 1fr; }
  .dashboard-detail-section { grid-template-columns: 1fr; }
  .patient-metrics-grid { grid-template-columns: 1fr; }
  .exercise-row { grid-template-columns: 1fr; gap: var(--s2); }
  .bilan-progress { flex-wrap: wrap; }
  .topbar-search { max-width: 100%; flex: 1; }
  .modal { padding: var(--s3); }
  .drawer { width: 100% !important; }
  .patient-home-container { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .kpi-grid { grid-template-columns: 1fr; }
  .grid-cols-2 { grid-template-columns: 1fr; }
  .patient-metrics-grid { grid-template-columns: 1fr; }
  .test-card__stats { grid-template-columns: 1fr; }
  .topbar { padding: 0 var(--s4); }
}

@media (min-width: 901px) {
  .mobile-nav { display: none !important; }
}

/* Respect des préférences motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* Préparation unifiée : une carte, une saisie assistée, un repère facultatif. */
.session-item.session-item-upcoming {
  border: 1px solid rgba(17, 24, 39, .09);
  border-radius: 18px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 8px 24px rgba(40, 48, 90, .055);
}

.session-item.session-item-upcoming.session-item-is-today {
  border-color: rgba(70, 84, 207, .24);
  box-shadow: 0 0 0 3px rgba(var(--primary-rgb), .055), 0 10px 28px rgba(40, 48, 90, .065);
}

.session-item-upcoming .session-compact-header {
  min-height: 38px;
}

.session-item-upcoming .session-future-preparation {
  margin-top: 12px;
  border-top: 1px solid rgba(17, 24, 39, .075);
}

.session-item-upcoming .session-future-preparation > summary {
  padding-top: 12px;
  color: var(--tx);
  font-size: 13px;
}

.session-item-upcoming .session-future-preparation > .session-workspace-toggle {
  display: flex;
  min-height: 34px;
  align-items: center;
  justify-content: flex-end;
  padding-top: 4px;
  list-style: none;
}
.session-workspace-toggle::-webkit-details-marker { display: none; }
.session-workspace-toggle::after {
  content: '⌄';
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 50%;
  background: rgba(255,255,255,.78);
  color: var(--primary);
  font-size: 14px;
  line-height: 1;
  box-shadow: 0 4px 12px rgba(35,40,78,.05);
  transition: transform 240ms cubic-bezier(.22,1,.36,1), background 180ms ease;
}
.session-future-preparation[open] > .session-workspace-toggle::after { transform: rotate(180deg); }
.session-workspace-toggle:hover::after { background: var(--primary-bg); }

.session-item-upcoming .session-future-preparation-body {
  gap: 14px;
}

.session-ready-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 9px;
  border: 1px solid rgba(70, 84, 207, .18);
  border-radius: var(--r-full);
  background: rgba(240, 242, 255, .9);
  color: var(--primary-dk);
  font-size: 11px;
  font-weight: 800;
}

.session-inline-edit {
  display: grid;
  grid-template-columns: repeat(2, minmax(140px, 210px));
  gap: 10px;
  margin-top: 10px;
  padding: 12px;
  border-radius: 14px;
  background: rgba(245, 246, 250, .82);
  animation: synapseSurfaceIn var(--synapse-motion-duration) var(--synapse-motion-ease) both;
}

.session-inline-edit.hidden { display: none; }
.session-inline-edit label {
  display: grid;
  gap: 5px;
  color: var(--tx-3);
  font-size: 11px;
  font-weight: 750;
}
.session-autonomy-control {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 5px 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(17,24,39,.07);
}
.session-autonomy-control > div { display: grid; gap: 2px; }
.session-autonomy-control span { color: var(--tx-3); font-size: 10px; font-weight: 750; }
.session-autonomy-control strong { color: var(--tx-1); font-size: 13px; }
.session-autonomy-control button { min-height: 38px; padding: 8px 12px; border: 1px solid rgba(var(--primary-rgb), .2); border-radius: var(--r-full); background: var(--primary-bg); color: var(--primary-dk); font: 800 11px/1.2 var(--font); cursor: pointer; }
.session-autonomy-control button:hover,
.session-autonomy-control button:focus-visible { border-color: rgba(var(--primary-rgb), .36); outline: 3px solid rgba(var(--primary-rgb), .09); }
.session-autonomy-control small { grid-column: 1 / -1; color: var(--tx-4); font-size: 10px; line-height: 1.45; }

.session-assistant-composer {
  display: grid;
  gap: 7px;
}

.session-preparation-hint {
  position: absolute;
  right: 56px;
  bottom: 10px;
  left: 15px;
  margin: 0;
  color: var(--tx-4);
  font-size: 10px;
  line-height: 1.4;
  pointer-events: none;
}

.session-unified-workspace .session-kine-feedback {
  display: grid;
  gap: 14px;
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.session-unified-workspace .session-assistant-composer + .session-today-preparation {
  margin-top: 2px;
}

.session-assistant-input {
  position: relative;
}

.session-assistant-input textarea {
  width: 100%;
  min-height: 82px;
  padding: 14px 54px 38px 15px;
  resize: vertical;
  border-radius: 16px;
  background: rgba(248, 249, 252, .9);
  color: var(--tx);
  font-size: 14px;
  line-height: 1.55;
}

.session-microphone-btn {
  position: absolute;
  top: 11px;
  right: 11px;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(var(--primary-rgb), .11);
  color: var(--primary);
  cursor: pointer;
  transition: transform var(--synapse-motion-duration) var(--synapse-motion-ease), background var(--synapse-motion-duration) var(--synapse-motion-ease);
}

.session-microphone-btn:hover { transform: translateY(-1px); background: rgba(var(--primary-rgb), .17); }
.session-microphone-btn:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .22); outline-offset: 2px; }
.session-microphone-btn svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.session-microphone-btn.is-listening { background: var(--primary); color: white; animation: sessionListeningPulse 1.25s ease-in-out infinite; }
.session-microphone-btn.is-requesting { opacity: .65; cursor: progress; }
.session-microphone-btn.hidden { display: none; }

.session-prototype-assistant .session-assistant-input textarea {
  min-height: 96px;
  padding: 14px 15px 72px;
}
.session-prototype-assistant .session-microphone-btn {
  top: auto;
  right: 11px;
  bottom: 11px;
}
.session-assistant-input > .session-dictation-controls {
  position: absolute;
  right: 8px;
  bottom: 8px;
  z-index: 5;
  flex-wrap: nowrap;
  gap: 3px;
  padding: 4px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 14px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 8px 22px rgba(34, 40, 79, .12);
  backdrop-filter: blur(12px);
}
.session-assistant-input > .session-dictation-controls:not(.hidden) ~ .session-preparation-hint {
  opacity: 0;
}
.session-assistant-input > .session-dictation-controls .session-dictation-icon {
  width: 34px;
  min-width: 34px;
  height: 34px;
  min-height: 34px;
}
.session-prototype-assistant .session-voice-status {
  position: absolute;
  right: 8px;
  bottom: 50px;
  z-index: 6;
  max-width: calc(100% - 16px);
}

@keyframes sessionListeningPulse {
  50% { box-shadow: 0 0 0 7px rgba(var(--primary-rgb), .12); }
}

.session-assistant-meta {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 700;
}

.session-assistant-meta [data-state="working"] { color: var(--primary-dk); }

.session-assistant-input textarea.is-dictating {
  color: rgba(50, 58, 78, .58);
  border-color: rgba(var(--primary-rgb), .22);
}
.session-assistant-input textarea.has-interim-dictation { font-style: italic; }
.session-dictation-controls { display: flex; flex-wrap: wrap; gap: 6px; padding: 7px; border-radius: 12px; background: rgba(245, 246, 251, .9); }
.session-dictation-controls.hidden { display: none; }
.session-dictation-controls button { min-height: 32px; padding: 6px 10px; border: 0; border-radius: 9px; background: transparent; color: var(--tx-3); font-size: 11px; font-weight: 750; }
.session-dictation-controls button:hover { background: rgba(var(--primary-rgb), .08); color: var(--primary-dk); }
.session-dictation-controls button.is-primary { margin-left: auto; background: var(--primary); color: white; }
.session-dictation-controls small { flex-basis: 100%; padding: 1px 4px 0; color: var(--tx-4); font-size: 9px; line-height: 1.35; }
.session-dictation-controls .session-dictation-icon {
  display: grid;
  place-items: center;
  width: 40px;
  min-width: 40px;
  height: 40px;
  min-height: 40px;
  padding: 0;
  border-radius: 10px;
}
.session-dictation-controls .session-dictation-icon svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.session-dictation-controls .session-dictation-icon.is-danger { color: var(--error); }
.session-dictation-controls .session-dictation-icon:focus-visible {
  outline: 3px solid rgba(var(--primary-rgb), .24);
  outline-offset: 2px;
}
.session-microphone-btn[data-tooltip]::after,
.session-dictation-icon[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  right: 0;
  bottom: calc(100% + 7px);
  z-index: 12;
  width: max-content;
  max-width: 170px;
  padding: 6px 8px;
  border-radius: 8px;
  background: rgba(28, 31, 47, .94);
  box-shadow: 0 8px 20px rgba(20, 23, 39, .18);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.2;
  opacity: 0;
  pointer-events: none;
  transform: translateY(4px);
  transition: opacity 140ms ease, transform 180ms ease;
}
.session-microphone-btn[data-tooltip]:hover::after,
.session-microphone-btn[data-tooltip]:focus-visible::after,
.session-dictation-icon[data-tooltip]:hover::after,
.session-dictation-icon[data-tooltip]:focus-visible::after {
  opacity: 1;
  transform: translateY(0);
}
.session-voice-status { width: fit-content; padding: 5px 9px; border-radius: 999px; background: var(--primary-bg); color: var(--primary-dk); font-size: 10px; font-weight: 750; }
.session-voice-status.hidden { display: none; }
.session-voice-status[data-state="error"],
.session-voice-status[data-state="unavailable"] { background: rgba(196, 72, 72, .08); color: var(--error); }
.session-voice-status[data-state="deleted"] { background: rgba(105, 115, 134, .09); color: var(--tx-3); }

.session-prototype-workspace {
  margin-top: 12px !important;
  padding: 0;
  border-top: 0 !important;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.session-prototype-workspace > h4 { margin: 0 0 12px; color: var(--tx); font-size: 15px; font-weight: 850; }
.session-prototype-workspace > .session-future-preparation-body { padding-top: 0; }
.session-exercise-static { display: grid; gap: 9px; }
.session-exercise-static > h5 { color: var(--tx-2); font-size: 13px; font-weight: 850; }

/* Carte de séance : hiérarchie synthétique, sans modifier le parcours clinique. */
.session-item-upcoming .session-compact-header {
  align-items: flex-start;
  padding-bottom: 2px;
}
.session-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  flex: 0 0 auto;
}
.session-more-actions { position: relative; }
.session-more-trigger {
  display: grid;
  width: 34px;
  height: 34px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(17, 24, 39, .08);
  border-radius: 11px;
  background: rgba(var(--primary-rgb), .045);
  color: var(--tx-3);
  cursor: pointer;
  box-shadow: none;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, color 180ms ease;
}
.session-header-edit {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 6px;
  padding: 0 10px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 11px;
  background: rgba(var(--primary-rgb), .045);
  color: var(--tx-3);
  font-size: 11px;
  font-weight: 780;
}
.session-header-edit svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.session-header-edit:hover,
.session-header-edit:focus-visible,
.session-header-edit[aria-expanded="true"] {
  border-color: rgba(var(--primary-rgb), .27);
  outline: 3px solid rgba(var(--primary-rgb), .09);
  outline-offset: 1px;
  background: rgba(var(--primary-rgb), .085);
  color: var(--primary-dk);
}
.session-more-trigger svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}
.session-more-trigger:hover,
.session-more-trigger:focus-visible,
.session-more-trigger[aria-expanded="true"] {
  border-color: rgba(var(--primary-rgb), .2);
  outline: none;
  background: rgba(var(--primary-rgb), .08);
  color: var(--primary-dk);
  transform: translateY(-1px);
}
.session-more-trigger:focus-visible { box-shadow: 0 0 0 3px rgba(var(--primary-rgb), .1); }
.session-more-menu {
  position: absolute;
  z-index: 80;
  top: calc(100% + 7px);
  right: 0;
  display: grid;
  width: min(230px, calc(100vw - 38px));
  padding: 6px;
  border: 1px solid rgba(17, 24, 39, .08);
  border-radius: 15px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 18px 44px rgba(27, 32, 63, .16);
  backdrop-filter: blur(14px);
  animation: synapseSurfaceIn 180ms cubic-bezier(.22, 1, .36, 1) both;
}
.session-more-menu.hidden { display: none; }
.session-more-menu > button {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 39px;
  padding: 7px 9px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--tx-2);
  font: 750 12px/1.25 var(--font);
  text-align: left;
  cursor: pointer;
}
.session-more-menu > button svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.session-more-menu > button:hover,
.session-more-menu > button:focus-visible {
  outline: none;
  background: rgba(var(--primary-rgb), .07);
  color: var(--primary-dk);
}
.session-more-menu > button.is-danger { color: #9c3f55; }
.session-more-menu > button.is-danger:hover,
.session-more-menu > button.is-danger:focus-visible { background: rgba(156, 63, 85, .07); color: #842f47; }
.session-more-divider { height: 1px; margin: 5px 8px; background: rgba(17, 24, 39, .075); }
.session-item-upcoming .session-compact-header > div {
  row-gap: 7px;
}
.session-header-date {
  flex-basis: 100%;
  order: 10;
  font-size: clamp(17px, 2vw, 21px) !important;
  font-weight: 850;
  letter-spacing: -.02em;
}
.session-header-date-short { display: none; }
.session-state-chip {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  border: 1px solid transparent;
  font-size: 10px;
  letter-spacing: .035em;
}
.session-state-chip.is-pending {
  border-color: rgba(var(--primary-rgb), .1);
  background: rgba(var(--primary-rgb), .035);
  color: var(--tx-3);
}
.session-state-chip.is-ready {
  border-color: rgba(var(--primary-rgb), .17);
  background: rgba(var(--primary-rgb), .09);
  color: var(--primary-dk);
}
.session-state-chip.is-active {
  border-color: rgba(var(--primary-rgb), .22);
  background: rgba(var(--primary-rgb), .12);
  color: var(--primary-dk);
}
.session-phase-chip {
  display: inline-flex;
  max-width: min(100%, 520px);
  min-height: 26px;
  min-width: 0;
  align-items: center;
  gap: 6px;
  padding: 4px 9px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .065);
  color: var(--primary-dk);
}
.session-phase-chip small {
  flex: 0 0 auto;
  color: var(--tx-4);
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.session-phase-chip strong {
  min-width: 0;
  overflow: hidden;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.session-card-goal {
  margin: 12px 0 5px;
}
.session-work-track-title {
  display: grid;
  gap: 5px;
  margin: 14px 0 10px;
  padding: 2px 0 11px;
  border-bottom: 1px solid rgba(var(--primary-rgb), .1);
}
.session-work-track-title > span,
.patient-session-work-track-title > span,
.session-live-observation > span {
  color: var(--primary);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .065em;
  text-transform: uppercase;
}
.session-work-track-title h3,
.session-work-track-title p,
.patient-session-work-track-title h4,
.patient-session-work-track-title p {
  margin: 0;
}
.session-work-track-title h3 {
  color: var(--tx);
  font-size: clamp(18px, 2vw, 23px);
  font-weight: 900;
  letter-spacing: -.025em;
  line-height: 1.18;
}
.session-work-track-title > p,
.session-work-track-title-copy > .session-objective-chip > p {
  color: var(--tx-3);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}
.session-work-track-title-row {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 10px;
}
.session-work-track-title-copy {
  display: grid;
  min-width: 0;
  gap: 5px;
}
.session-work-track-title .session-objective-chip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 26px;
  max-width: none;
  align-items: center;
  gap: 6px;
  border-radius: 0;
  background: transparent;
}
.session-work-track-title .session-objective-chip h3,
.session-work-track-title .session-objective-chip p {
  min-width: 0;
}
.session-work-track-empty { color: var(--tx-4) !important; font-weight: 750 !important; }
.session-framework-selection {
  display: flex;
  min-width: 0;
  width: fit-content;
  max-width: 100%;
  align-items: center;
  gap: 7px;
  padding: 6px 8px 6px 10px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .055);
  color: var(--tx-3);
  font-size: 10px;
  font-weight: 750;
}
.session-framework-selection > span { white-space: nowrap; }
.session-framework-selection strong {
  min-width: 0;
  overflow: hidden;
  color: var(--primary-dk);
  font-size: 11px;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.session-framework-selection button {
  display: grid;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--tx-3);
  font: 850 15px/1 var(--font);
  cursor: pointer;
}
.session-framework-selection button:hover { background: rgba(var(--primary-rgb), .11); color: var(--primary-dk); }
.session-framework-selection button:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .18); }
.session-live-observation {
  display: grid;
  gap: 7px;
  margin-bottom: 12px;
}
.session-live-observation textarea {
  min-height: 86px;
  resize: vertical;
}
.patient-session-work-track-title {
  display: grid;
  gap: 5px;
  padding: 0 0 13px;
  border-bottom: 1px solid var(--border);
}
.patient-session-work-track-title h4 {
  color: var(--tx);
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -.02em;
  line-height: 1.25;
}
.patient-session-work-track-title p {
  color: var(--tx-3);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}
.session-clinical-rationale {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  margin: 9px 0 12px;
  padding: 10px 0;
  border-top: 1px solid rgba(var(--primary-rgb), .09);
  border-bottom: 1px solid rgba(var(--primary-rgb), .09);
}
.session-clinical-rationale > span {
  padding-top: 2px;
  color: var(--primary-dk);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .035em;
  white-space: nowrap;
}
.session-clinical-rationale > div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
  min-width: 0;
}
.session-clinical-rationale-item {
  display: grid;
  min-width: 0;
  gap: 2px;
  padding: 0 11px;
  border-left: 2px solid rgba(var(--primary-rgb), .18);
}
.session-clinical-rationale button.session-clinical-rationale-item {
  width: 100%;
  border-top: 0;
  border-right: 0;
  border-bottom: 0;
  background: transparent;
  text-align: left;
  font: inherit;
  cursor: pointer;
}
.session-clinical-rationale button.session-clinical-rationale-item:hover,
.session-clinical-rationale button.session-clinical-rationale-item:focus-visible {
  border-left-color: var(--primary);
  outline: 0;
  background: rgba(var(--primary-rgb), .045);
}
.session-clinical-rationale-item strong {
  color: var(--tx-2);
  font-size: 11px;
  line-height: 1.35;
}
.session-clinical-rationale-detail {
  color: var(--tx-3);
  font-size: 10px;
  font-weight: 650;
  line-height: 1.4;
}
.session-clinical-rationale-item small {
  color: var(--tx-4);
  font-size: 9px;
  font-weight: 700;
  line-height: 1.35;
}
@media (max-width: 640px) {
  .session-clinical-rationale { grid-template-columns: 1fr; gap: 7px; }
  .session-clinical-rationale > div { grid-template-columns: 1fr; gap: 8px; }
  .session-clinical-rationale-item { padding: 0 0 0 9px; }
}
.session-card-goal.session-objectives {
  grid-template-columns: auto minmax(0, 1fr);
}
.session-card-goal .session-objective-chips em {
  padding: 9px 15px;
  font-size: clamp(14px, 1.65vw, 17px);
  font-weight: 800;
  line-height: 1.35;
}
.session-card-goal .session-objective-entry {
  grid-column: 1 / -1;
}
.session-summary-section,
.session-work-plan,
.session-today-preparation {
  min-width: 0;
}
.session-summary-section {
  display: grid;
  gap: 9px;
  padding: 15px;
  border-radius: 17px;
  background: rgba(255, 255, 255, .76);
  box-shadow: inset 0 0 0 1px rgba(var(--primary-rgb), .075);
}
.session-summary-section > h4 {
  margin: 0;
  color: var(--tx);
  font-size: 15px;
  font-weight: 850;
  letter-spacing: -.01em;
}
.session-work-plan {
  display: grid;
  gap: 16px;
  padding: 2px 0 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.session-work-plan-kicker {
  color: var(--tx);
  font-size: 20px;
  font-weight: 900;
  letter-spacing: -.025em;
  line-height: 1.1;
}
.session-work-plan .session-exercise-static {
  gap: 11px;
  padding-top: 14px;
  border-top: 1px solid rgba(17, 24, 39, .07);
}
.session-work-plan .session-exercise-static > h5 {
  margin: 0;
  color: var(--tx-2);
  font-size: 14px;
  font-weight: 850;
  letter-spacing: -.01em;
}
.session-work-plan .session-manual-care {
  padding-top: 14px;
  border-top: 1px solid rgba(17, 24, 39, .07);
}
.session-work-plan .session-manual-care-heading h5 {
  color: var(--tx-2);
  font-size: 14px;
  font-weight: 850;
  letter-spacing: -.01em;
}
.session-work-plan .session-manual-care-add {
  align-items: center;
  min-height: 42px;
}
.session-work-plan .session-manual-care-add-button,
.session-work-plan .session-exercise-add-button {
  min-height: 38px;
  padding: 9px 13px;
  border: 1px dashed rgba(var(--primary-rgb), .27);
  border-radius: 12px;
  background: rgba(var(--primary-rgb), .045);
  color: var(--primary-dk);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}
.session-work-plan .session-manual-care-add-button:hover,
.session-work-plan .session-manual-care-add-button:focus-visible,
.session-work-plan .session-exercise-add-button:hover,
.session-work-plan .session-exercise-add-button:focus-visible {
  border-style: solid;
  background: rgba(var(--primary-rgb), .09);
  outline: 3px solid rgba(var(--primary-rgb), .08);
}
.session-exercise-add {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--s3);
  min-height: 42px;
}
.session-exercise-add > div { display: grid; gap: 3px; }
.session-exercise-add strong { color: var(--tx-2); font-size: 12px; }
.session-exercise-add small { color: var(--tx-4); font-size: 10px; line-height: 1.4; }
.session-exercise-table-footer {
  display: flex;
  align-items: center;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-top: 0;
  border-radius: 0 0 var(--r-lg) var(--r-lg);
  background: rgba(var(--primary-rgb), .025);
}
.session-exercise-table-footer .session-inline-link {
  color: var(--primary-dk);
  font-size: 12px;
  font-weight: 800;
}
.session-exercise-table-footer.hidden { display: none; }
.session-objectives-title {
  display: block;
  margin-bottom: 7px;
  color: var(--tx-3);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .045em;
  text-transform: uppercase;
}

@media (max-width: 560px) {
  .session-header-date-long { display: none; }
  .session-header-date-short { display: inline; }
  .session-header-date { font-size: 17px !important; }
  .session-card-goal.session-objectives { grid-template-columns: minmax(0, 1fr); }
  .session-card-goal .session-objective-chips {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    width: 100%;
  }
  .session-card-goal .session-objective-chip { grid-column: 1 / -1; width: 100%; }
  .session-card-goal .session-objective-chips em { grid-column: 1 / -1; width: 100%; font-size: 14px; }
  .session-card-goal .session-objective-add { grid-column: 1; justify-self: start; }
  .session-summary-section { padding: 13px; }
  .session-work-plan { padding: 2px 0 0; }
  .session-work-plan-kicker { font-size: 18px; }
  .session-work-plan .session-manual-care-add { align-items: flex-start; flex-direction: column; }
  .session-exercise-add { align-items: flex-start; flex-direction: column; }
  .session-header-actions { align-items: flex-start; }
  .session-more-trigger { width: 36px; height: 36px; }
  .detail-panel:has(.session-more-menu:not(.hidden)),
  .session-group:has(.session-more-menu:not(.hidden)) {
    animation: none !important;
    transform: none !important;
  }
  .session-more-menu { position: fixed; z-index: 1500; top: auto; right: 14px; bottom: calc(76px + env(safe-area-inset-bottom)); left: 14px; width: auto; padding: 8px; border-radius: 18px; }
  .session-more-menu > button { min-height: 46px; font-size: 13px; }
}

.session-exercise-table tr.session-exercise-suggestion td { background: rgba(var(--primary-rgb), .035); border-color: rgba(var(--primary-rgb), .1); }
.session-exercise-table tr.session-exercise-suggestion input { color: var(--tx-3); font-style: italic; }
.session-suggestion-actions { display: flex; flex-wrap: wrap; gap: 4px; }
.session-suggestion-actions button { padding: 5px 7px; border: 0; border-radius: 8px; background: rgba(var(--primary-rgb), .1); color: var(--primary-dk); font-size: 10px; font-weight: 800; }
.session-suggestion-actions button:last-child { background: transparent; color: var(--tx-4); }

.session-end-panel { display: grid; gap: 11px; padding: 14px; border: 1px solid rgba(17, 24, 39, .08); border-radius: 16px; background: rgba(248, 249, 252, .94); animation: synapseSurfaceIn var(--synapse-motion-duration) var(--synapse-motion-ease) both; }
.session-end-panel.hidden { display: none; }
.session-end-panel-heading { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.session-end-panel-heading strong { color: var(--tx); font-size: 14px; }
.session-end-panel-heading span { color: var(--primary-dk); font-size: 11px; font-weight: 800; }
.session-end-quick-fields { display: grid; grid-template-columns: repeat(3, minmax(80px, 1fr)); gap: 8px; }
.session-end-quick-fields label { display: grid; gap: 4px; color: var(--tx-3); font-size: 10px; font-weight: 800; }
.session-end-quick-fields input,
.session-end-panel > input { width: 100%; min-height: 38px; padding: 8px 10px; border: 1px solid rgba(17, 24, 39, .1); border-radius: 10px; background: white; }
.session-end-completion-fields { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(0, 1.2fr); gap: 8px; }
.session-end-completion-fields label { display: grid; gap: 4px; color: var(--tx-3); font-size: 10px; font-weight: 800; }
.session-end-completion-fields select,
.session-end-completion-fields input { width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid rgba(17,24,39,.1); border-radius: 10px; background: #fff; }
.session-end-panel-actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; }
.patient-finish-autonomy-btn { margin-top: 10px; }

.session-ready-btn {
  min-height: 40px;
}

.session-ready-btn.is-ready {
  padding: 9px 15px;
  border: 1px solid rgba(70, 84, 207, .2);
  border-radius: var(--r-full);
  background: rgba(240, 242, 255, .92);
  color: var(--primary-dk);
  font-weight: 800;
}

@media (max-width: 720px) {
  .session-inline-edit { grid-template-columns: 1fr 1fr; }
  .session-assistant-meta { align-items: flex-start; flex-direction: column; gap: 3px; }
  .session-item-upcoming .session-actions-inline { align-items: stretch; }
  .session-ready-btn { width: 100%; }
  .session-end-quick-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .session-end-completion-fields { grid-template-columns: 1fr; }
  .session-end-panel-actions { align-items: stretch; flex-direction: column-reverse; }
  .session-end-panel-actions button { width: 100%; }
  .session-related-wheel-entry { grid-template-columns: 26px minmax(0, 1fr) 38px; padding-inline: 5px; font-size: 11px; }
  .session-related-static-preview { height: 34px; }
  .session-exercise-preview-button { width: 38px; height: 34px; }
  .session-exercise-search-button { width: 34px; height: 34px; }
  .exercise-search-overlay { display: flex; align-items: flex-end; padding: 10px; background: rgba(24, 28, 43, .34); backdrop-filter: blur(5px); }
  .exercise-search-overlay.hidden { display: none; }
  .exercise-search-surface {
    position: relative;
    top: auto !important;
    left: auto !important;
    width: 100%;
    max-height: min(72vh, 560px);
    padding: 17px 15px max(18px, env(safe-area-inset-bottom));
    border-radius: 22px;
  }
  .exercise-search-field input { min-height: 46px; font-size: 16px; }
  .exercise-search-result { min-height: 49px; padding: 10px 11px; }
  .exercise-animation-overlay { align-items: end; padding: 10px; }
  .exercise-animation-dialog { width: 100%; padding: 19px 16px 18px; border-radius: 24px; }
  .exercise-animation-stage { height: min(58vh, 480px); min-height: 300px; }
  .exercise-animation-stage .session-exercise-official-motion {
    transform: scale(1.18);
    transform-origin: 50% 54%;
  }
  .session-exercise-adaptation-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .session-microphone-btn,
  .session-microphone-btn.is-listening,
  .session-inline-edit {
    animation: none;
    transition: none;
  }
  .session-exercise-preview-button,
  .session-exercise-preview-button::after,
  .session-exercise-search-button,
  .session-exercise-reorder,
  .session-exercise-table tbody.is-reordering tr,
  .session-dose-mode-switch button { transition: none; }
}

/* Dossier patient : cinq espaces stables répartis sur toute la largeur. */
.detail-tabs {
  --active-detail-index: 0;
  --visible-detail-tabs: 5;
  position: sticky;
  top: 76px;
  z-index: 9;
  display: grid;
  grid-template-columns: repeat(var(--visible-detail-tabs), minmax(0, 1fr));
  gap: 5px;
  padding: 7px 20px;
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(12px);
}

.detail-tabs::before {
  content: '';
  position: absolute;
  top: 7px;
  bottom: 7px;
  left: 20px;
  width: calc((100% - 40px) / var(--visible-detail-tabs));
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(239,241,255,.84));
  box-shadow: 0 7px 20px rgba(40,46,91,.13), inset 0 1px rgba(255,255,255,.9);
  transform: translateX(calc(var(--active-detail-index) * (100% + 5px)));
  transition: transform 440ms cubic-bezier(.22,1,.36,1);
}

.detail-tabs .tab-button {
  position: relative;
  z-index: 1;
  min-height: 38px;
  padding: 8px 10px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 800;
  background: transparent;
  box-shadow: none;
  transition: color 240ms ease, transform 240ms cubic-bezier(.22,1,.36,1);
}
.detail-tab-attention-dot {
  position: absolute;
  top: 7px;
  right: 8px;
  width: 7px;
  height: 7px;
  border: 1.5px solid #fff;
  border-radius: 50%;
  background: #f4c542;
  box-shadow: 0 1px 5px rgba(126,86,0,.28);
}
.detail-tab-attention-dot.hidden { display: none; }
.detail-tabs .tab-button:hover { background: transparent; color: var(--primary); transform: translateY(-1px); }
.detail-tabs .tab-button.active { background: transparent; color: var(--primary-dk); box-shadow: none; }
.detail-tabs .tab-button:focus,
.detail-tabs .tab-button:focus-visible { outline: 0; box-shadow: inset 0 0 0 2px rgba(89,103,232,.24); }

/* Tableau de bord du dossier : navigation horizontale commune sur toute la largeur. */
#patientDetailModal.patient-detail-page .detail-header { position: static; }
.patient-dashboard-panel { min-height: 470px; }
.patient-dashboard-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: clamp(18px, 3vw, 30px);
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(236,242,255,.78));
}
.patient-dashboard-hero-intro { max-width: 530px; }
.patient-dashboard-hero h4 { margin: 0; color: var(--primary-dk); font-size: clamp(20px, 2.2vw, 27px); letter-spacing: -.04em; }
.patient-dashboard-hero p:not(.app-label) { margin: 8px 0 0; color: var(--tx-3); font-size: 13px; line-height: 1.55; }
.patient-dashboard-trend { flex: 0 0 auto; margin: 0; }
.patient-persistent-trend.patient-dashboard-trend-wide {
  --dashboard-trend-color: var(--primary);
  --dashboard-trend-soft: rgba(var(--primary-rgb), .10);
  width: 100%;
  max-width: none;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(18px, 3vw, 34px);
  margin: 0;
  padding: clamp(18px, 3vw, 28px);
  border-color: color-mix(in srgb, var(--dashboard-trend-color) 24%, transparent);
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(255,255,255,.98), var(--dashboard-trend-soft));
  box-shadow: 0 12px 30px rgba(37,47,91,.07);
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.patient-persistent-trend.patient-dashboard-trend-wide.patient-trend-favorable { --dashboard-trend-color: #168b72; --dashboard-trend-soft: rgba(22,139,114,.12); }
.patient-persistent-trend.patient-dashboard-trend-wide.patient-trend-stable { --dashboard-trend-color: #5662c9; --dashboard-trend-soft: rgba(86,98,201,.11); }
.patient-persistent-trend.patient-dashboard-trend-wide.patient-trend-variable { --dashboard-trend-color: #a66d17; --dashboard-trend-soft: rgba(166,109,23,.12); }
.patient-persistent-trend.patient-dashboard-trend-wide.patient-trend-attention { --dashboard-trend-color: #b65f50; --dashboard-trend-soft: rgba(182,95,80,.12); }
.patient-dashboard-trend-wide .patient-persistent-trend-score {
  min-width: 126px;
  gap: 7px;
  padding-right: clamp(18px, 3vw, 32px);
}
.patient-dashboard-trend-wide:hover,
.patient-dashboard-trend-wide:focus-visible {
  border-color: color-mix(in srgb, var(--dashboard-trend-color) 42%, transparent);
  box-shadow: 0 16px 38px rgba(37,47,91,.10);
  outline: 0;
  transform: translateY(-1px);
}
.patient-dashboard-trend-wide .patient-persistent-score-ring { width: 92px; height: 92px; }
.patient-dashboard-trend-wide .patient-persistent-score-ring { background: conic-gradient(var(--dashboard-trend-color) calc(var(--score, 0) * 1%), color-mix(in srgb, var(--dashboard-trend-color) 13%, transparent) 0); }
.patient-dashboard-trend-wide .patient-persistent-score-ring::after { inset: 8px; }
.patient-dashboard-trend-wide .patient-persistent-score-ring strong { font-size: 34px; }
.patient-dashboard-trend-wide .patient-persistent-score-ring small { font-size: 11px; }
.patient-dashboard-trend-wide .patient-persistent-trend-score em { font-size: 10px; }
.patient-dashboard-score-delta {
  max-width: 118px;
  color: var(--tx-3);
  font-size: 9px;
  font-weight: 720;
  line-height: 1.35;
  text-align: center;
}
.patient-dashboard-score-analysis { display: grid; min-width: 0; gap: 11px; }
.patient-dashboard-score-heading {
  display: flex;
  min-width: 0;
  align-items: start;
  justify-content: space-between;
  gap: 18px;
}
.patient-dashboard-score-heading > span { display: grid; min-width: 0; gap: 3px; }
.patient-dashboard-score-heading small,
.patient-dashboard-score-footer small {
  color: var(--tx-4);
  font-size: 8px;
  font-weight: 820;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.patient-dashboard-score-heading strong { color: var(--tx); font-size: clamp(18px, 2.1vw, 24px); line-height: 1.16; letter-spacing: -.025em; }
.patient-dashboard-score-update { flex: 0 0 auto; text-align: right; }
.patient-dashboard-score-update strong { color: var(--tx-3); font-size: 10px; letter-spacing: 0; }
.patient-dashboard-score-analysis > p {
  max-width: 780px;
  margin: 0;
  color: var(--tx-3);
  font-size: 11px;
  font-weight: 620;
  line-height: 1.5;
}
.patient-dashboard-score-footer {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) auto auto auto;
  align-items: end;
  gap: 18px;
}
.patient-dashboard-score-history { display: grid; min-width: 0; gap: 6px; }
.patient-dashboard-score-history > span { display: flex; align-items: center; gap: 6px; }
.patient-dashboard-score-point {
  position: relative;
  isolation: isolate;
  display: grid;
  width: 27px;
  height: 27px;
  flex: 0 0 27px;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(var(--dashboard-trend-color) calc(var(--point-score, 0) * 1%), color-mix(in srgb, var(--dashboard-trend-color) 12%, transparent) 0);
}
.patient-dashboard-score-point::after {
  position: absolute;
  z-index: -1;
  inset: 3px;
  border-radius: 50%;
  background: rgba(255,255,255,.96);
  content: '';
}
.patient-dashboard-score-point strong { color: var(--tx-2); font-size: 8px; font-weight: 850; }
.patient-dashboard-score-history.is-empty > span { color: var(--tx-4); font-size: 10px; }
.patient-dashboard-score-confidence,
.patient-dashboard-score-source { display: grid; min-width: 0; gap: 4px; }
.patient-dashboard-score-confidence strong,
.patient-dashboard-score-source strong { max-width: 150px; overflow: hidden; color: var(--tx-2); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.patient-dashboard-score-open {
  align-self: center;
  color: var(--primary-dk);
  font-size: 10px;
  font-weight: 850;
  white-space: nowrap;
}
.patient-persistent-trend.patient-dashboard-trend-wide .synapse-trajectory-context strong { font-size: clamp(20px, 2.6vw, 28px); }
.patient-persistent-trend.patient-dashboard-trend-wide .synapse-trajectory-context-heading { gap: 10px; }
.patient-persistent-trend.patient-dashboard-trend-wide .synapse-trend-icon { width: 70px; height: 58px; flex-basis: 70px; color: var(--dashboard-trend-color); stroke-width: 2.5; }
.patient-dashboard-trend-wide .synapse-recent-decisions { margin-top: 10px; }
.patient-dashboard-trend-wide .synapse-recent-decision { width: 30px; height: 30px; font-size: 14px; }
.patient-dashboard-mosaic {
  display: grid;
  gap: 12px;
  margin-top: 14px;
  padding: clamp(14px, 2vw, 20px);
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(247,248,255,.94), rgba(255,251,246,.98));
  box-shadow: 0 10px 28px rgba(37,47,91,.05);
}
.patient-dashboard-mosaic > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.patient-dashboard-mosaic > header h4 { margin-top: 3px; color: var(--tx); font-size: clamp(18px, 2vw, 22px); letter-spacing: -.025em; }
.patient-dashboard-mosaic > header small { color: var(--tx-4); font-size: 10px; text-align: right; }
.medical-follow-up-header.medical-follow-up-header-actions-only { justify-content: flex-end; }
.patient-dashboard-mosaic-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-items: stretch; }
.patient-dashboard-mosaic-column { display: grid; min-width: 0; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 10px; }
.patient-dashboard-mosaic-card {
  min-width: 0;
  min-height: 146px !important;
  height: 100%;
  padding: 14px !important;
}
.patient-dashboard-mosaic-card > strong,
.patient-dashboard-mosaic-card .patient-dashboard-session-title {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.patient-dashboard-mosaic-card > small,
.patient-dashboard-mosaic-card .patient-dashboard-session-date {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.patient-dashboard-mosaic-card .patient-dashboard-session-title { font-size: 16px; }
.patient-dashboard-mosaic-card .patient-dashboard-session-open { padding-top: 10px; }
.patient-dashboard-mosaic-card .patient-dashboard-link { margin-top: auto; }
.patient-dashboard-sporting-deadlines {
  display: grid;
  gap: 10px;
  margin-top: 2px;
  padding-top: 14px;
  border-top: 1px solid rgba(var(--primary-rgb), .12);
}
.patient-dashboard-sporting-deadlines > header { display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.patient-dashboard-sporting-deadlines > header > div { display: grid; gap: 2px; }
.patient-dashboard-sporting-deadlines > header span { color: var(--primary-dk); font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.patient-dashboard-sporting-deadlines > header h3 { margin: 0; color: var(--tx); font-size: 17px; letter-spacing: -.02em; }
.patient-dashboard-sporting-deadlines > header button { padding: 0; border: 0; background: transparent; color: var(--primary); font-size: 11px; font-weight: 800; }
.patient-dashboard-deadline-context { color: var(--tx-3); font-size: 10px; font-weight: 700; text-transform: none !important; letter-spacing: 0 !important; }
.patient-dashboard-sporting-deadlines > div { display: flex; align-items: stretch; flex-wrap: wrap; gap: 8px; }
.patient-dashboard-sporting-deadline { display: grid; gap: 2px; min-width: 150px; padding: 9px 11px; border: 1px solid rgba(var(--primary-rgb), .13); border-radius: 12px; background: rgba(255, 255, 255, .68); text-align: left; }
.patient-dashboard-sporting-deadline span { overflow: hidden; color: var(--tx-2); font-size: 11px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.patient-dashboard-sporting-deadline strong { color: var(--primary-dk); font-size: 10px; }
.patient-dashboard-sporting-more { align-self: center; color: var(--tx-4); font-size: 10px; font-weight: 750; }
.patient-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(180px, 1fr)); gap: 12px; margin-top: 14px; }
.patient-dashboard-assessments { display: grid; gap: 12px; margin-top: 14px; padding: clamp(16px, 2.5vw, 24px); border: 1px solid rgba(242,139,60,.25); border-radius: 20px; background: linear-gradient(145deg, rgba(255,248,239,.96), rgba(255,255,255,.98)); box-shadow: 0 10px 26px rgba(176,91,27,.06); }
.patient-dashboard-assessments > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; }
.patient-dashboard-assessments > header h4 { margin-top: 3px; color: var(--tx); font-size: clamp(18px, 2vw, 23px); letter-spacing: -.025em; }
.patient-dashboard-assessments > header small { max-width: 280px; color: var(--tx-4); font-size: 10px; line-height: 1.4; text-align: right; }
.patient-dashboard-assessment-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.patient-dashboard-assessment-card { display: flex; min-width: 0; min-height: 150px; flex-direction: column; align-items: flex-start; padding: 16px; border: 1px solid rgba(var(--primary-rgb), .16); border-radius: 15px; background: rgba(255,255,255,.9); color: var(--tx); font: inherit; text-align: left; cursor: pointer; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.patient-dashboard-assessment-card:hover, .patient-dashboard-assessment-card:focus-visible { border-color: rgba(242,139,60,.48); box-shadow: 0 10px 24px rgba(176,91,27,.09); outline: 0; transform: translateY(-2px); }
.patient-dashboard-assessment-card > span { color: var(--warning-strong, #a45418); font-size: 10px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.patient-dashboard-assessment-card > strong { margin-top: 10px; color: var(--tx); font-size: 16px; line-height: 1.3; }
.patient-dashboard-assessment-card > small { margin-top: 5px; color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.patient-dashboard-assessment-card > em { margin-top: auto; padding-top: 14px; color: var(--primary); font-size: 11px; font-style: normal; font-weight: 850; }
.patient-dashboard-assessment-card.is-initial { border-color: rgba(242,139,60,.35); background: linear-gradient(145deg, rgba(255,239,220,.88), #fff); }
.patient-dashboard-conventional-note { margin: 0; padding-top: 2px; color: var(--tx-4); font-size: 9px; line-height: 1.45; }
.patient-dashboard-action, .patient-dashboard-card {
  display: flex;
  min-height: 172px;
  flex-direction: column;
  align-items: flex-start;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--surface);
  box-shadow: 0 8px 20px rgba(37,47,91,.04);
}
.patient-dashboard-action { border-color: rgba(var(--primary-rgb), .22); background: linear-gradient(145deg, rgba(var(--primary-rgb), .10), rgba(255,255,255,.98)); }
.patient-dashboard-action--alert { border-color: rgba(215,123,59,.26); background: linear-gradient(145deg, rgba(255,241,222,.88), rgba(255,255,255,.98)); }
.patient-dashboard-kicker { color: var(--tx-4); font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.patient-dashboard-action h4 { margin: 8px 0 4px; color: var(--primary-dk); font-size: 18px; letter-spacing: -.025em; }
.patient-dashboard-action p { margin: 0; color: var(--tx-3); font-size: 12px; line-height: 1.45; }
.patient-dashboard-card strong { margin-top: 10px; color: var(--tx-2); font-size: 13px; line-height: 1.45; }
.patient-dashboard-session-card {
  width: 100%;
  appearance: none;
  color: inherit;
  font-family: var(--font);
  text-align: left;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.patient-dashboard-session-card:hover,
.patient-dashboard-session-card:focus-visible {
  border-color: rgba(var(--primary-rgb), .34);
  box-shadow: 0 12px 28px rgba(37,47,91,.09);
  transform: translateY(-2px);
}
.patient-dashboard-session-card:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .16); outline-offset: 2px; }
.patient-dashboard-session-card:disabled { cursor: default; opacity: .7; transform: none; }
.patient-dashboard-session-card .patient-dashboard-session-title {
  margin-top: 10px;
  color: var(--primary-dk);
  font-size: 18px;
  line-height: 1.28;
  letter-spacing: -.025em;
}
.patient-dashboard-session-date { margin-top: 6px; color: var(--tx-3); font-size: 12px; line-height: 1.4; }
.patient-dashboard-session-open { margin-top: auto; padding-top: 14px; color: var(--primary); font-size: 12px; font-weight: 850; }
.patient-dashboard-primary, .patient-dashboard-link { margin-top: auto; border: 0; background: transparent; font: 800 12px/1 var(--font); cursor: pointer; }
.patient-dashboard-primary { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; margin-top: 14px; padding: 0 11px; border-radius: 10px; background: var(--primary); color: #fff; }
.patient-dashboard-primary:hover { background: var(--primary-dk); }
.patient-dashboard-link { padding: 6px 0 0; color: var(--primary); }

.patient-dashboard-evolution-card {
  display: grid;
  overflow: visible;
  margin: 0 0 14px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 22px;
  background:
    radial-gradient(circle at 10% 12%, rgba(125,211,191,.12), transparent 31%),
    radial-gradient(circle at 88% 8%, rgba(var(--primary-rgb), .10), transparent 37%),
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(246,248,255,.94));
  box-shadow: 0 12px 30px rgba(37,47,91,.07);
}
.patient-dashboard-evolution-card.hidden { display: none; }
.patient-dashboard-evolution-card > .patient-persistent-trend.patient-dashboard-trend-wide {
  margin: 0;
  border: 0;
  border-radius: 22px 22px 0 0;
  background: transparent;
  box-shadow: none;
}
.patient-dashboard-evolution-card > .patient-persistent-trend.patient-dashboard-trend-wide:hover,
.patient-dashboard-evolution-card > .patient-persistent-trend.patient-dashboard-trend-wide:focus-visible {
  border-color: transparent;
  background: rgba(255,255,255,.26);
  box-shadow: none;
  transform: none;
}
.patient-dashboard-evolution-card.has-score.has-timeline > #patientDashboardTimelineMount {
  border-top: 1px solid rgba(var(--primary-rgb), .10);
}
#patientDashboardTimelineMount:empty { display: none; }
.patient-dashboard-evolution-card:not(.has-score) #patientDashboardTimelineMount .patient-dashboard-timeline {
  border-radius: 22px;
}
.patient-dashboard-evolution-card #patientDashboardTimelineMount .patient-dashboard-timeline {
  margin: 0;
  padding: 15px 18px 11px;
  border: 0;
  border-radius: 0 0 22px 22px;
  background: transparent;
  box-shadow: none;
}

.patient-dashboard-timeline {
  display: grid;
  gap: 8px;
  margin: 0 0 14px;
  padding: 14px 16px 10px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(244,246,255,.94), rgba(255,255,255,.88));
  box-shadow: 0 10px 28px rgba(52,61,140,.06);
}
.patient-progressive-dashboard .patient-dashboard-timeline { margin: 14px 0 0; }
.patient-dashboard-timeline > header,
.patient-dashboard-timeline > footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.patient-dashboard-timeline > header > button { display: grid; min-width: 0; gap: 2px; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.patient-dashboard-timeline > header > button small { color: var(--primary); font-size: 9px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.patient-dashboard-timeline > header > button strong { overflow: hidden; color: var(--tx); font-size: 17px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.patient-dashboard-timeline > header > button span { color: var(--tx-4); font-size: 9px; }
.patient-dashboard-timeline > header > button:hover strong,
.patient-dashboard-timeline > header > button:focus-visible strong { color: var(--primary-dk); }
.patient-dashboard-timeline > header > button:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .15); outline-offset: 4px; border-radius: 6px; }
.patient-dashboard-timeline-key { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 5px; color: var(--tx-4); font-size: 8px; }
.patient-dashboard-timeline-key i { width: 7px; height: 7px; border: 2px solid #fff; border-radius: 50%; background: var(--primary); box-shadow: 0 0 0 1px rgba(var(--primary-rgb), .25); }
.patient-dashboard-timeline-key i + i { margin-left: 5px; border-color: var(--primary); background: #fff; }
.patient-dashboard-timeline-chart { min-width: 0; overflow: hidden; border-radius: 12px; background: rgba(255,255,255,.5); }
.patient-dashboard-timeline-chart svg { display: block; width: 100%; min-height: 134px; }
.patient-dashboard-timeline-chart svg > text { fill: var(--tx-4); font: 8px var(--font); }
.patient-dashboard-timeline-axis { stroke: rgba(17,19,24,.13); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.patient-dashboard-timeline-target { fill: none; stroke: rgba(123,118,220,.42); stroke-width: 2; stroke-dasharray: 5 7; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.patient-dashboard-timeline-today { stroke: rgba(17,19,24,.17); stroke-width: 1; stroke-dasharray: 2 4; vector-effect: non-scaling-stroke; }
.patient-dashboard-timeline-future { fill: rgba(var(--primary-rgb), .025); cursor: crosshair; outline: none; }
.patient-dashboard-timeline-future:hover,
.patient-dashboard-timeline-future:focus { fill: rgba(var(--primary-rgb), .075); }
.patient-dashboard-timeline-hit { fill: transparent; cursor: pointer; }
.patient-dashboard-timeline-dot { fill: var(--primary); stroke: #fff; stroke-width: 2.5; filter: drop-shadow(0 2px 3px rgba(52,61,140,.2)); cursor: pointer; }
.patient-dashboard-timeline-point.is-upcoming .patient-dashboard-timeline-dot { fill: #fff; stroke: var(--primary); stroke-width: 3; }
.patient-dashboard-timeline-point:hover .patient-dashboard-timeline-dot,
.patient-dashboard-timeline-point:focus .patient-dashboard-timeline-dot { stroke-width: 4; filter: drop-shadow(0 3px 5px rgba(52,61,140,.3)); }
.patient-dashboard-timeline-point:focus { outline: none; }

.patient-dashboard-timeline-next-ring {
  fill: rgba(255,255,255,.82);
  stroke: var(--primary);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}
.patient-dashboard-timeline-point.is-next .patient-dashboard-timeline-dot {
  fill: #fff;
  stroke: var(--primary-dk);
  stroke-width: 3;
}
.patient-dashboard-timeline-landmark { cursor: pointer; outline: none; }
.patient-dashboard-timeline-landmark-guide {
  stroke: rgba(242,139,60,.20);
  stroke-width: 1;
  stroke-dasharray: 2 5;
  vector-effect: non-scaling-stroke;
}
.patient-dashboard-timeline-landmark-halo {
  fill: rgba(255,255,255,.9);
  stroke: rgba(242,139,60,.32);
  stroke-width: 1.5;
}
.patient-dashboard-timeline-landmark-dot { fill: #e58a3e; }
.patient-dashboard-timeline-landmark.is-assessment .patient-dashboard-timeline-landmark-dot,
.patient-dashboard-timeline-landmark.is-initial-assessment .patient-dashboard-timeline-landmark-dot { fill: #6e6bcf; }
.patient-dashboard-timeline-landmark:hover .patient-dashboard-timeline-landmark-halo,
.patient-dashboard-timeline-landmark:focus .patient-dashboard-timeline-landmark-halo {
  stroke-width: 3;
  filter: drop-shadow(0 3px 5px rgba(52,61,140,.2));
}
.patient-dashboard-timeline-key i.is-landmark {
  margin-left: 5px;
  border: 0;
  border-radius: 2px;
  background: #e58a3e;
  box-shadow: none;
  transform: rotate(45deg) scale(.78);
}
.patient-dashboard-pending {
  display: grid;
  gap: 9px;
  margin-top: 12px;
  padding: 12px 14px;
  border-top: 1px solid rgba(var(--primary-rgb), .10);
}
.patient-dashboard-pending > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
}
.patient-dashboard-pending > header > span { display: grid; gap: 2px; }
.patient-dashboard-pending > header small {
  color: var(--primary);
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.patient-dashboard-pending > header strong { color: var(--tx); font-size: 14px; }
.patient-dashboard-pending > header button {
  padding: 5px 0;
  border: 0;
  background: transparent;
  color: var(--primary);
  font: 800 10px/1 var(--font);
  cursor: pointer;
}
.patient-dashboard-pending > div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  gap: 7px;
}
.patient-dashboard-pending-item {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 11px;
  border: 1px solid rgba(242,139,60,.16);
  border-radius: 12px;
  background: rgba(255,252,248,.78);
  color: inherit;
  font-family: var(--font);
  text-align: left;
  cursor: pointer;
}
.patient-dashboard-pending-item:hover,
.patient-dashboard-pending-item:focus-visible {
  border-color: rgba(242,139,60,.34);
  background: #fff;
  outline: 0;
}
.patient-dashboard-pending-item > span { display: grid; min-width: 0; gap: 3px; }
.patient-dashboard-pending-item strong {
  overflow: hidden;
  color: var(--tx-2);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.patient-dashboard-pending-item small { color: var(--tx-4); font-size: 9px; }
.patient-dashboard-pending-item b { color: var(--primary); font-size: 12px; }

.patient-dashboard-timeline-add-cue { pointer-events: none; }
.patient-dashboard-timeline-add-cue circle { fill: var(--primary); opacity: .9; }
.patient-dashboard-timeline-add-cue text { fill: #fff; font: 850 14px var(--font); }
.patient-dashboard-timeline > footer { min-height: 28px; padding-top: 8px; border-top: 1px solid rgba(var(--primary-rgb), .08); }
.patient-dashboard-timeline > footer p { overflow: hidden; margin: 0; color: var(--tx-3); font-size: 9px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.patient-dashboard-timeline > footer nav { display: inline-flex; flex: 0 0 auto; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 5px 13px; }
.patient-dashboard-timeline > footer button { flex: 0 0 auto; padding: 5px 0; border: 0; background: transparent; color: var(--primary); font: 800 10px/1 var(--font); cursor: pointer; }
.patient-dashboard-timeline > footer button:hover,
.patient-dashboard-timeline > footer button:focus-visible { color: var(--primary-dk); outline: none; text-decoration: underline; text-underline-offset: 3px; }

@media (min-width: 860px) {
  #patientDetailModal.patient-detail-page .patient-record-navigation {
    position: sticky;
    top: 0;
    z-index: 9;
    display: grid;
    width: 100%;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 5px;
    margin: 0;
    padding: 7px 20px;
    border: 0;
    border-bottom: 1px solid rgba(var(--primary-rgb), .11);
    border-radius: 0;
    background: rgba(255,255,255,.94);
    box-shadow: none;
    backdrop-filter: blur(12px);
  }
  #patientDetailModal.patient-detail-page .patient-record-navigation::before { display: block; }
  #patientDetailModal.patient-detail-page .patient-record-navigation .tab-button { justify-content: center; min-width: 0; min-height: 40px; padding: 9px 11px; border-radius: 10px; text-align: center; }
  #patientDetailModal.patient-detail-page .detail-panel { margin-left: 0; }
}

@media (max-width: 859px) {
  #patientDetailModal.patient-detail-page .patient-record-navigation {
    position: sticky;
    top: 0;
    z-index: 9;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 5px;
    overflow: visible;
    padding: 8px 14px;
    border-bottom: 1px solid var(--border);
    background: rgba(255,255,255,.94);
    scrollbar-width: none;
  }
  #patientDetailModal.patient-detail-page .patient-record-navigation::-webkit-scrollbar { display: none; }
  #patientDetailModal.patient-detail-page .patient-record-navigation::before { display: none; }
  #patientDetailModal.patient-detail-page .patient-record-navigation .tab-button { min-width: 0; padding: 8px 5px; white-space: normal; }
  #patientDetailModal.patient-detail-page .patient-record-navigation .tab-button.active { background: rgba(var(--primary-rgb), .10); color: var(--primary-dk); }
  .patient-dashboard-hero { align-items: flex-start; flex-direction: column; }
  .patient-dashboard-trend { width: 100%; }
  .patient-dashboard-grid { grid-template-columns: 1fr; }
  .patient-dashboard-assessments > header { align-items: flex-start; flex-direction: column; }
  .patient-dashboard-assessments > header small { text-align: left; }
  .patient-dashboard-assessment-grid { grid-template-columns: 1fr; }
  .patient-dashboard-assessment-card { min-height: 124px; }
  .patient-dashboard-action, .patient-dashboard-card { min-height: 144px; }
  .patient-dashboard-mosaic { gap: 10px; padding: 12px; border-radius: 17px; }
  .patient-dashboard-mosaic > header { align-items: flex-start; }
  .patient-dashboard-mosaic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .patient-dashboard-mosaic-column { gap: 8px; }
  .patient-dashboard-mosaic-card { min-height: 132px !important; padding: 12px !important; border-radius: 14px; }
  .patient-dashboard-mosaic-card > strong,
  .patient-dashboard-mosaic-card .patient-dashboard-session-title { margin-top: 8px; font-size: 14px; }
  .patient-dashboard-mosaic-card > small,
  .patient-dashboard-mosaic-card .patient-dashboard-session-date { margin-top: 4px; font-size: 9px; }
  .patient-dashboard-mosaic-card > em,
  .patient-dashboard-mosaic-card .patient-dashboard-session-open { padding-top: 9px; font-size: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .patient-dashboard-session-card,
  .patient-dashboard-trend-wide { transition: none; }
}

@media (max-width: 560px) {
  .patient-dashboard-evolution-card { border-radius: 17px; }
  .patient-dashboard-evolution-card > .patient-persistent-trend.patient-dashboard-trend-wide { border-radius: 17px 17px 0 0; }
  .patient-dashboard-evolution-card #patientDashboardTimelineMount .patient-dashboard-timeline {
    padding: 12px 10px 8px;
    border-radius: 0 0 17px 17px;
  }
  .patient-dashboard-timeline { padding: 12px 10px 8px; border-radius: 15px; }
  .patient-dashboard-timeline > header { align-items: flex-start; }
  .patient-dashboard-timeline > header > button strong { max-width: 220px; font-size: 15px; }
  .patient-dashboard-timeline-key { display: none; }
  .patient-dashboard-timeline-chart { overflow: hidden; }
  .patient-dashboard-timeline-chart svg { width: 100%; min-height: 118px; }
  .patient-dashboard-timeline > footer { align-items: flex-start; flex-direction: column; gap: 5px; }
  .patient-dashboard-timeline > footer p { max-width: 100%; white-space: normal; }
  .patient-dashboard-timeline > footer nav { width: 100%; justify-content: flex-start; gap: 4px 12px; }
  .patient-persistent-trend.patient-dashboard-trend-wide {
    grid-template-columns: 86px minmax(0, 1fr);
    gap: 12px;
    padding: 14px;
  }
  .patient-dashboard-trend-wide .patient-persistent-trend-score { min-width: 0; padding-right: 12px; }
  .patient-dashboard-trend-wide .patient-persistent-score-ring { width: 68px; height: 68px; }
  .patient-dashboard-trend-wide .patient-persistent-score-ring strong { font-size: 25px; }
  .patient-dashboard-trend-wide .patient-persistent-trend-score em { font-size: 8px; }
  .patient-persistent-trend.patient-dashboard-trend-wide .synapse-trajectory-context strong { font-size: 17px; }
  .patient-persistent-trend.patient-dashboard-trend-wide .synapse-trend-icon { width: 46px; height: 40px; flex-basis: 46px; }
  .patient-persistent-trend.patient-dashboard-trend-wide .synapse-recent-decisions { display: flex; }
  .patient-dashboard-score-delta { max-width: 78px; font-size: 7px; }
  .patient-dashboard-score-heading { gap: 9px; }
  .patient-dashboard-score-heading strong { font-size: 15px; }
  .patient-dashboard-score-update strong { font-size: 8px; }
  .patient-dashboard-score-analysis > p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 9px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .patient-dashboard-score-footer { grid-template-columns: minmax(0, 1fr) auto; gap: 9px; }
  .patient-dashboard-score-history { grid-column: 1 / -1; }
  .patient-dashboard-score-source { display: none; }
  .patient-dashboard-score-open { font-size: 9px; }
  .patient-dashboard-score-point { width: 24px; height: 24px; flex-basis: 24px; }
  .patient-dashboard-score-point strong { font-size: 7px; }
  .patient-dashboard-mosaic > header small { max-width: 125px; line-height: 1.3; }
}

@media (max-width: 340px) {
  .patient-dashboard-mosaic-grid { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .patient-dashboard-sporting-deadlines > header { align-items: flex-start; flex-direction: column; }
  .patient-dashboard-sporting-deadline { min-width: 100%; }
}

.identity-quick-btn {
  transition: transform 160ms var(--ease), background 160ms var(--ease), border-color 160ms var(--ease), box-shadow 160ms var(--ease);
}

.identity-quick-btn:hover {
  transform: translateY(-2px);
}

.detail-notification-btn {
  position: relative;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--surface-2);
  color: var(--tx-4);
  cursor: pointer;
}
.detail-notification-btn > span { font-size: 8px; }
.detail-notification-btn.has-notifications { color: #d9a514; background: #fffaf0; border-color: rgba(217,165,20,.28); }
.detail-notification-btn strong {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 17px;
  height: 17px;
  display: grid;
  place-items: center;
  padding: 0 4px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #f4c542;
  color: #533b00;
  font-size: 9px;
  line-height: 1;
}
.detail-notification-btn strong.hidden { display: none; }

.clinician-notifications-panel {
  position: absolute;
  top: 64px;
  right: 74px;
  z-index: 32;
  width: min(360px, calc(100% - 32px));
  max-height: min(520px, calc(100vh - 120px));
  overflow-y: auto;
  padding: 10px;
  border: 1px solid rgba(17,24,39,.09);
  border-radius: 16px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 24px 60px rgba(23,29,53,.2);
  backdrop-filter: blur(16px);
}
.clinician-notifications-panel.hidden { display: none; }
.clinician-notifications-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 8px 10px;
}
.clinician-notifications-heading strong { font-size: 13px; }
.clinician-notifications-heading span {
  min-width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(244,197,66,.2);
  color: #725300;
  font-size: 10px;
  font-weight: 800;
}
.clinician-notifications-list { display: grid; gap: 7px; }
.clinician-notification-item {
  padding: 8px;
  border: 1px solid rgba(17,24,39,.065);
  border-radius: 12px;
  background: #fbfbfa;
}
.clinician-notification-target {
  width: 100%;
  display: grid;
  grid-template-columns: 9px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 2px;
  border: 0;
  background: transparent;
  color: var(--tx);
  text-align: left;
  cursor: pointer;
}
.clinician-notification-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #f4c542;
  box-shadow: 0 0 0 3px rgba(244,197,66,.17);
}
.clinician-notification-target span:last-child { display: grid; gap: 2px; min-width: 0; }
.clinician-notification-target strong { font-size: 12px; }
.clinician-notification-target small { overflow: hidden; color: var(--tx-4); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.clinician-notification-actions { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0 17px; }
.clinician-notification-actions button,
.clinician-notification-secondary {
  min-height: 28px;
  padding: 5px 8px;
  border: 1px solid rgba(17,24,39,.09);
  border-radius: 8px;
  background: #fff;
  color: var(--tx-3);
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}
.clinician-notification-secondary { margin: 8px 0 0 17px; }
.clinician-notifications-empty { margin: 0; padding: 14px; color: var(--tx-4); font-size: 12px; text-align: center; }

.session-attendance-resolution {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 8px 0 0;
  padding: 5px 8px;
  border: 1px solid rgba(217,165,20,.2);
  border-radius: 999px;
  background: rgba(244,197,66,.1);
  color: #725300;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}
.session-attendance-resolution span { width: 7px; height: 7px; border-radius: 50%; background: #f4c542; }

.sensitive-action-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(17,24,39,.36);
  backdrop-filter: blur(6px);
}
.sensitive-action-dialog {
  width: min(420px, 100%);
  padding: 22px;
  border: 1px solid rgba(17,24,39,.08);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 30px 80px rgba(17,24,39,.24);
}
.sensitive-action-marker { display: block; width: 28px; height: 5px; margin-bottom: 14px; border-radius: 99px; background: #f4c542; }
.sensitive-action-dialog h3 { margin: 0 0 8px; font-size: 18px; }
.sensitive-action-dialog p { margin: 0; color: var(--tx-3); font-size: 13px; line-height: 1.55; }
.sensitive-action-dialog > div { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; }

@media (max-width: 600px) {
  .clinician-notifications-panel { position: fixed; top: 72px; right: 12px; left: 12px; width: auto; max-height: calc(100vh - 96px); }
  .detail-tab-attention-dot { top: 5px; right: 5px; }
}

.medical-follow-up {
  padding: 18px;
}

.coordination-appointment-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 16px;
  padding: 13px 14px;
  border: 1px solid rgba(17,19,24,.075);
  border-radius: 10px;
  background: rgba(17,19,24,.025);
}

.coordination-appointment-card > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.coordination-appointment-card .section-kicker { margin: 0; }
.coordination-appointment-card strong { color: var(--tx); font-size: 14px; }
.coordination-appointment-card small { overflow: hidden; color: var(--tx-3); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.coordination-appointment-summary-list {
  width: min(480px, 58%);
  gap: 7px !important;
}
.coordination-appointment-summary-list article {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 10px;
  padding: 8px 10px;
  border-radius: 9px;
  background: rgba(255,255,255,.72);
}
.coordination-appointment-summary-list time {
  color: var(--primary-dk);
  font-size: 10px;
  font-weight: 760;
}
.coordination-appointment-summary-list article > div { display: grid; gap: 2px; min-width: 0; }
.coordination-appointment-summary-list article strong { font-size: 11px; }
.coordination-appointment-summary-list article small { font-size: 10px; }

.coordination-inline-editor,
.medical-document-composer {
  margin-top: 12px;
  padding: 16px;
  border: 1px solid rgba(89,103,232,.12);
  border-radius: 12px;
  background: rgba(240,242,255,.5);
}

.medical-document-composer-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.medical-document-composer-header h5 { margin-top: 2px; font-size: 16px; }
.medical-document-reason { grid-column: 1 / -1; }
.medical-document-reason textarea { width: 100%; resize: vertical; }
.medical-letter-section-picker {
  display: flex;
  grid-column: 1 / -1;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  border: 0;
}
.medical-letter-section-picker legend {
  width: 100%;
  margin-bottom: 2px;
  color: var(--tx);
  font-size: 13px;
  font-weight: 750;
}
.medical-letter-section-picker label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 7px 10px;
  border: 1px solid rgba(17,19,24,.1);
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  color: var(--tx-2);
  font-size: 12px;
  font-weight: 650;
}
.medical-letter-section-picker input { accent-color: var(--primary); }
.medical-letter-section-help { grid-column: 1 / -1; margin: -4px 0 0; color: var(--tx-3); font-size: 12px; line-height: 1.45; }

.clinician-shared-timeline {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(17,19,24,.07);
}

.follow-up-sharing-card {
  margin-top: 16px;
  padding: 18px;
  border: 1px solid rgba(89,103,232,.14);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(240,242,255,.74), rgba(255,255,255,.96));
}

.follow-up-sharing-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.follow-up-sharing-header h4 { margin: 2px 0 4px; font-size: 17px; }
.follow-up-sharing-header p:not(.section-kicker) { margin: 0; color: var(--tx-3); font-size: 12px; line-height: 1.45; }
.follow-up-sharing-editor { margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(89,103,232,.14); }
.follow-up-sharing-notice { padding: 12px; border-radius: 10px; background: rgba(255,255,255,.75); color: var(--tx-3); font-size: 11px; line-height: 1.45; }
.follow-up-sharing-notice strong { display: block; margin-bottom: 3px; color: var(--primary-dk); font-size: 11px; }
.follow-up-sharing-notice p { margin: 0; }
.follow-up-sharing-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.follow-up-sharing-grid label { display: grid; gap: 5px; color: var(--tx-2); font-size: 11px; font-weight: 750; }
.follow-up-sharing-grid input, .follow-up-sharing-grid select { width: 100%; min-height: 38px; padding: 8px 9px; border: 1px solid var(--border); border-radius: 9px; background: #fff; color: var(--tx); font: inherit; font-weight: 500; }
.follow-up-sharing-scope { display: flex; flex-wrap: wrap; gap: 10px 14px; margin: 14px 0 0; padding: 0; border: 0; }
.follow-up-sharing-scope legend { margin-bottom: 7px; color: var(--tx-2); font-size: 11px; font-weight: 750; }
.follow-up-sharing-scope label { display: inline-flex; align-items: center; gap: 6px; color: var(--tx-2); font-size: 11px; }
.follow-up-sharing-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.follow-up-sharing-active { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 14px; padding: 12px; border-radius: 10px; background: rgba(34,169,154,.09); }
.follow-up-sharing-active > div { display: grid; gap: 2px; min-width: 0; }
.follow-up-sharing-active strong { color: var(--tx); font-size: 12px; }
.follow-up-sharing-active span, .follow-up-sharing-active small { color: var(--tx-3); font-size: 11px; line-height: 1.4; }

@media (max-width: 700px) {
  .follow-up-sharing-header { align-items: stretch; flex-direction: column; }
  .follow-up-sharing-header .primary-btn { width: 100%; }
  .follow-up-sharing-grid { grid-template-columns: 1fr; }
  .follow-up-sharing-active { align-items: stretch; flex-direction: column; }
  .follow-up-sharing-active .secondary-btn { width: 100%; }
  .follow-up-sharing-actions { flex-direction: column; }
  .follow-up-sharing-actions > button { width: 100%; }
}

.assessment-step-nav {
  position: sticky;
  z-index: 10;
  top: 70px;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px;
  margin-bottom: 16px;
  padding: 5px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(17,19,24,.025);
}

.reassessment-overview-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
  padding-top: var(--s3);
  border-top: 1px solid var(--border);
}
.reassessment-overview-footer small { color: var(--tx-4); font-size: var(--text-xs); }
.reassessment-overview-record,
.follow-up-assessment-card header,
.follow-up-assessment-card footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s3);
}
.reassessment-overview-record { padding: var(--s3) var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: rgba(255,255,255,.78); }
.reassessment-overview-record div,
.follow-up-assessment-card header > div { display: grid; gap: 2px; }
.reassessment-overview-record span,
.follow-up-assessment-card header span { color: var(--primary-dk); font-size: 9px; font-weight: var(--fw-b); text-transform: uppercase; }
.reassessment-overview-record strong { color: var(--tx-2); font-size: var(--text-xs); }
.reassessment-overview-record time { color: var(--tx-4); font-size: var(--text-xs); }
.reassessment-next-point { padding: var(--s3) var(--s4); border-left: 4px solid var(--syn-amber-500); border-radius: 0 var(--r-lg) var(--r-lg) 0; background: var(--clr-wa-50); }

.follow-up-assessment-workspace { gap: var(--s5); }
.follow-up-assessment-heading,
.follow-up-assessment-editor-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s4);
}
.follow-up-assessment-heading h4 { margin-top: 2px; font-size: var(--text-xl); }
.follow-up-assessment-heading p:not(.section-kicker) { max-width: 720px; margin-top: 4px; color: var(--tx-3); font-size: var(--text-sm); line-height: 1.5; }
.follow-up-assessment-list { display: grid; gap: var(--s3); }
.follow-up-assessment-card { padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-xl); background: rgba(255,255,255,.88); box-shadow: var(--sh-xs); }
.follow-up-assessment-card.needs-review { border-left: 4px solid var(--syn-amber-500); }
.follow-up-assessment-card header strong { color: var(--tx); font-size: var(--text-sm); }
.follow-up-assessment-card time { color: var(--tx-4); font-size: var(--text-xs); }
.follow-up-assessment-card > p { margin: var(--s3) 0; color: var(--tx-3); font-size: var(--text-xs); line-height: 1.55; }
.follow-up-assessment-card footer { padding-top: var(--s3); border-top: 1px solid var(--border); }
.follow-up-assessment-card footer small { color: var(--tx-4); font-size: 10px; }
.follow-up-assessment-empty { padding: var(--s6); border: 1px dashed var(--border-strong); border-radius: var(--r-xl); text-align: center; }
.follow-up-assessment-empty strong { color: var(--tx-2); font-size: var(--text-sm); }
.follow-up-assessment-empty p { margin-top: 4px; color: var(--tx-4); font-size: var(--text-xs); }
.follow-up-assessment-form { display: grid; gap: var(--s4); padding: var(--s5); border: 1px solid rgba(var(--primary-rgb), .18); border-radius: var(--r-xl); background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(240,242,255,.58)); }
.follow-up-assessment-editor-heading h5 { margin-top: 6px; color: var(--tx); font-size: var(--text-lg); }
.follow-up-assessment-step-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); top: 70px; background: rgba(248,249,255,.94); backdrop-filter: blur(12px); }
.follow-up-measure-selection { padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: rgba(255,255,255,.72); }
.follow-up-measure-selection > strong { color: var(--tx-2); font-size: var(--text-xs); }
.follow-up-measure-selection > p { margin: 3px 0 var(--s3); color: var(--tx-4); font-size: 10px; line-height: 1.45; }
.follow-up-measure-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s2); }
.follow-up-measure-options label { display: flex; align-items: flex-start; gap: var(--s2); min-width: 0; padding: var(--s3); border: 1px solid var(--border); border-radius: var(--r-lg); background: #fff; }
.follow-up-measure-options input { width: auto; margin-top: 2px; accent-color: var(--primary); }
.follow-up-measure-options span { display: grid; min-width: 0; gap: 2px; }
.follow-up-measure-options strong { color: var(--tx-2); font-size: var(--text-xs); }
.follow-up-measure-options small { color: var(--tx-4); font-size: 10px; }
.follow-up-measures-empty { grid-column: 1 / -1; color: var(--tx-3); font-size: var(--text-xs); }
.follow-up-assessment-actions { grid-template-columns: auto minmax(0, 1fr) auto auto auto auto; }
.follow-up-assessment-actions #followUpAssessmentStepStatus { color: var(--tx-4); font-size: 11px; font-weight: 750; }

.assessment-workspace-nav {
  display: flex;
  gap: 6px;
  margin-bottom: 16px;
  padding: 5px;
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(17,19,24,.025);
}

.assessment-workspace-nav button {
  min-height: 36px;
  padding: 7px 12px;
  border-radius: 9px;
  color: var(--tx-3);
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.assessment-workspace-nav button.active {
  background: #fff;
  color: var(--primary-dk);
  box-shadow: var(--shadow-soft);
}

.assessment-workspace-hidden { display: none !important; }

.functional-screening {
  display: grid;
  gap: 16px;
  padding: 20px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: var(--r-xl);
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(238,246,255,.72));
}

.functional-screening-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.functional-screening-header h4 { margin-top: 3px; font-size: 20px; }
.functional-screening-header p:not(.section-kicker) { max-width: 680px; margin-top: 4px; color: var(--tx-3); font-size: 12px; line-height: 1.5; }
.functional-screening-boundary { padding: 13px 15px; border-left: 4px solid var(--syn-amber-500); border-radius: 0 10px 10px 0; background: rgba(255,248,234,.76); }
.functional-screening-boundary strong { color: var(--tx-2); font-size: 12px; }
.functional-screening-boundary p { margin-top: 3px; color: var(--tx-3); font-size: 11px; line-height: 1.5; }
.functional-screening-form { display: grid; gap: 15px; }
.functional-screening-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.functional-screening-measure-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.functional-screening-form label { display: grid; gap: 6px; color: var(--tx-2); font-size: 11px; font-weight: 700; }
.functional-screening-form input,
.functional-screening-form select,
.functional-screening-form textarea { width: 100%; }
.functional-screening-form textarea { resize: vertical; }
.functional-screening-wide > small { color: var(--tx-4); font-size: 9px; font-weight: 500; }
.functional-screening-link-option { display: flex !important; align-items: flex-start; gap: 9px; padding: 12px 13px; border: 1px solid rgba(89,103,232,.14); border-radius: 12px; background: rgba(240,242,255,.48); }
.functional-screening-link-option input { width: auto; margin-top: 2px; }
.functional-screening-link-option span { display: grid; gap: 3px; }
.functional-screening-link-option strong { color: var(--tx-2); font-size: 11px; }
.functional-screening-link-option small { color: var(--tx-3); font-size: 10px; font-weight: 500; line-height: 1.45; }
.functional-screening-domains,
.functional-screening-measures { padding: 13px; border: 1px solid var(--border); border-radius: 12px; background: rgba(255,255,255,.74); }
.functional-screening-domains legend,
.functional-screening-measures legend { padding: 0 5px; color: var(--tx-2); font-size: 11px; font-weight: 800; }
.functional-screening-measures legend span { color: var(--tx-4); font-size: 9px; font-weight: 600; }
.functional-screening-domains { display: flex; flex-wrap: wrap; gap: 8px; }
.functional-screening-domains legend { width: 100%; }
.functional-screening-domains label { display: flex; align-items: center; gap: 6px; padding: 7px 9px; border-radius: 9px; background: var(--surface-2); font-size: 10px; }
.functional-screening-domains input { width: auto; }
.functional-screening-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.functional-screening-actions .assessment-save-message { min-width: 220px; margin-right: auto; }

.clinical-workflow-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.clinical-workflow-strip article {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  column-gap: 9px;
  align-items: center;
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 13px;
  background: rgba(255,255,255,.72);
}
.clinical-workflow-strip article > span {
  display: grid;
  grid-row: 1 / span 2;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 9px;
  background: rgba(var(--primary-rgb), .1);
  color: var(--primary-dk);
  font-size: 11px;
  font-weight: 900;
}
.clinical-workflow-strip strong { color: var(--tx-2); font-size: 11px; }
.clinical-workflow-strip small { overflow: hidden; color: var(--tx-4); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }

.symptom-modulation {
  display: grid;
  gap: 16px;
  padding: 20px;
  border: 1px solid rgba(42, 141, 133, .16);
  border-radius: var(--r-xl);
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(237,249,247,.76));
}
.symptom-modulation-form { display: grid; gap: 13px; }
.symptom-modulation-form fieldset {
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(57, 126, 130, .14);
  border-radius: 15px;
  background: rgba(255,255,255,.76);
}
.symptom-modulation-form legend {
  padding: 0 6px;
  color: #276d70;
  font-size: 11px;
  font-weight: 850;
}
.symptom-modulation-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}
.symptom-modulation-form label {
  display: grid;
  gap: 6px;
  color: var(--tx-2);
  font-size: 11px;
  font-weight: 700;
}
.symptom-modulation-form input,
.symptom-modulation-form select,
.symptom-modulation-form textarea { width: 100%; }
.symptom-modulation-wide { grid-column: 1 / -1; }
.symptom-modulation-history { display: grid; gap: 10px; }
.symptom-modulation-history > .measurement-empty { margin: 0; }
.symptom-modulation-record {
  display: grid;
  gap: 9px;
  padding: 14px;
  border: 1px solid rgba(42, 141, 133, .14);
  border-radius: 15px;
  background: #fff;
}
.symptom-modulation-record header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.symptom-modulation-record header div { display: grid; gap: 3px; }
.symptom-modulation-record header span { color: #2d817d; font-size: 9px; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.symptom-modulation-record header strong { color: var(--tx-1); font-size: 14px; }
.symptom-modulation-record header button {
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 50%;
  background: var(--surface-2);
  color: var(--tx-3);
  font-size: 17px;
}
.symptom-modulation-record > p { margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.45; }
.symptom-modulation-record > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}
.symptom-modulation-record > div > span { display: grid; gap: 3px; padding: 9px; border-radius: 10px; background: rgba(237,249,247,.76); }
.symptom-modulation-record small { color: var(--tx-4); font-size: 9px; }
.symptom-modulation-record > div strong { color: var(--tx-2); font-size: 10px; line-height: 1.35; }
.symptom-modulation-record footer { color: #24726d; font-size: 10px; font-weight: 800; }

@media (max-width: 680px) {
  .functional-screening { padding: 15px; }
  .functional-screening-header { flex-direction: column; }
  .functional-screening-grid,
  .functional-screening-measure-grid { grid-template-columns: 1fr; }
  .functional-screening-actions { align-items: stretch; flex-direction: column; }
  .functional-screening-actions .assessment-save-message { min-width: 0; margin-right: 0; }
  .clinical-workflow-strip { display: flex; overflow-x: auto; padding-bottom: 3px; scroll-snap-type: x proximity; scrollbar-width: none; }
  .clinical-workflow-strip::-webkit-scrollbar { display: none; }
  .clinical-workflow-strip article { flex: 0 0 155px; scroll-snap-align: start; }
  .symptom-modulation { padding: 15px; }
  .symptom-modulation-grid { grid-template-columns: 1fr; }
  .symptom-modulation-wide { grid-column: auto; }
  .symptom-modulation-record > div { grid-template-columns: 1fr; }
}

.assessment-step-nav button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 38px;
  padding: 7px 8px;
  border-radius: 9px;
  color: var(--tx-3);
  font-size: 11px;
  font-weight: 800;
}

.assessment-step-nav button span {
  display: inline-grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 7px;
  background: rgba(17,19,24,.06);
  font-size: 10px;
}

.assessment-step-nav button.active {
  background: #fff;
  color: var(--primary-dk);
  box-shadow: var(--shadow-soft);
}

.assessment-step-nav button.completed { color: var(--success); }
.assessment-step-actions {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 10px;
}
.assessment-step-actions #kneeAssessmentStepStatus { color: var(--tx-4); font-size: 11px; font-weight: 750; }

/* Bilan initial guidé : une action routinière à la fois, sans retirer les données. */
.assessment-progress-hybrid {
  position: sticky;
  z-index: 10;
  top: 70px;
  display: grid;
  gap: 0;
  border-radius: 17px;
  box-shadow: 0 10px 28px rgba(45,49,92,.05);
}
.assessment-progress-hybrid > .assessment-step-nav {
  position: static;
  margin: 0;
  border-color: rgba(var(--primary-rgb), .14);
  border-bottom: 0;
  border-radius: 17px 17px 0 0;
  background: rgba(247,248,255,.97);
}
.assessment-progress-hybrid > .assessment-step-nav button.active {
  box-shadow: inset 0 -2px 0 var(--primary);
}
.assessment-progress-hybrid > .assessment-step-nav button.completed:not(.active) {
  color: var(--tx-3);
}
.assessment-guided-progress {
  display: grid;
  gap: 10px;
  padding: 15px 17px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 0 0 17px 17px;
  background:
    radial-gradient(circle at 92% 10%, rgba(242,139,60,.10), transparent 34%),
    linear-gradient(135deg, rgba(247,248,255,.96), rgba(255,252,248,.96));
}
.assessment-guided-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.assessment-guided-heading > div { display: grid; min-width: 0; gap: 2px; }
.assessment-guided-heading span { color: var(--primary); font-size: 9px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.assessment-guided-heading strong { overflow: hidden; color: var(--tx); font-size: 18px; letter-spacing: -.02em; text-overflow: ellipsis; white-space: nowrap; }
.assessment-guided-heading em { flex: 0 0 auto; padding: 5px 9px; border-radius: 999px; background: rgba(255,255,255,.72); color: var(--tx-3); font-size: 10px; font-style: normal; font-weight: 800; }
.assessment-guided-track { height: 6px; overflow: hidden; border-radius: 999px; background: rgba(var(--primary-rgb), .10); }
.assessment-guided-track i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--primary), var(--syn-amber-500)); transition: width .22s ease; }
.assessment-guided-view-toggle {
  width: fit-content;
  min-height: 30px;
  padding: 0 9px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 9px;
  background: rgba(255,255,255,.68);
  color: var(--primary-dk);
  font: 800 10px/1 var(--font);
  cursor: pointer;
}
.assessment-guided-view-toggle:hover,
.assessment-guided-view-toggle:focus-visible { border-color: rgba(var(--primary-rgb), .32); background: #fff; outline: 0; }
.knee-assessment-form.is-guided-assessment .assessment-section {
  min-height: 160px;
  padding: 0;
  border: 0;
  background: transparent;
}
.initial-assessment-workspace.assessment-guided-active > .knee-assessment-header { justify-content: flex-end; margin-bottom: 10px; }
.initial-assessment-workspace.assessment-guided-active > .knee-assessment-header > div:first-child { display: none; }
.knee-assessment-form.is-guided-assessment .assessment-section > legend,
.knee-assessment-form.is-guided-assessment .assessment-section > .assessment-section-intro,
.knee-assessment-form.is-guided-assessment .assessment-section > .assessment-plan-boundary { display: none; }
.knee-assessment-form.is-guided-assessment .assessment-guided-item { display: none; }
.knee-assessment-form.is-guided-assessment .assessment-guided-item.is-guided-current {
  display: block;
  min-height: 160px;
  margin: 0;
  padding: clamp(22px, 4vw, 34px);
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 22px;
  background: rgba(255,255,255,.90);
  box-shadow: 0 14px 34px rgba(45,49,92,.06);
  animation: assessmentCardIn .18s ease both;
}
.knee-assessment-form.is-guided-assessment .assessment-guided-item.is-guided-current > label:first-child,
.knee-assessment-form.is-guided-assessment .assessment-guided-item.is-guided-current > :first-child { margin-top: 0; }
.knee-assessment-form.is-guided-assessment .assessment-guided-item.is-guided-completed.is-guided-current { border-color: rgba(22,139,114,.24); }
.knee-assessment-form.is-guided-assessment .assessment-grid { align-content: start; }
.assessment-tools-toggle {
  order: 3;
  width: fit-content;
  min-height: 38px;
  margin-top: 12px;
  padding: 0 12px;
  border: 1px dashed rgba(var(--primary-rgb), .22);
  border-radius: 11px;
  background: rgba(var(--primary-rgb), .045);
  color: var(--primary-dk);
  font: 800 11px/1 var(--font);
  cursor: pointer;
}
.assessment-tools-toggle:hover,
.assessment-tools-toggle:focus-visible { border-style: solid; background: rgba(var(--primary-rgb), .09); outline: 0; }
.initial-assessment-workspace > .initial-assessment-questionnaires { order: 4; }
.initial-assessment-workspace > .measurement-module { order: 5; }
.initial-assessment-workspace > .clinical-links-panel { order: 6; }
.initial-assessment-workspace > .assessment-summary { order: 7; }
.initial-assessment-workspace.assessment-guided-active:not(.assessment-tools-open) > .initial-assessment-questionnaires,
.initial-assessment-workspace.assessment-guided-active:not(.assessment-tools-open) > .measurement-module,
.initial-assessment-workspace.assessment-guided-active:not(.assessment-tools-open) > .clinical-links-panel,
.initial-assessment-workspace.assessment-guided-active:not(.assessment-tools-open):not(.assessment-review-open) > .assessment-summary { display: none !important; }
@keyframes assessmentCardIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 700px) {
  .assessment-progress-hybrid { position: static; }
  .assessment-guided-progress { padding: 13px 14px; }
  .assessment-guided-heading strong { font-size: 16px; }
  .knee-assessment-form.is-guided-assessment .assessment-section,
  .knee-assessment-form.is-guided-assessment .assessment-guided-item.is-guided-current { min-height: 140px; }
  .knee-assessment-form.is-guided-assessment .assessment-guided-item.is-guided-current { padding: 18px 16px; border-radius: 18px; }
  .knee-assessment-form.is-guided-assessment .assessment-grid { grid-template-columns: 1fr; gap: 12px; }
  .assessment-tools-toggle { width: 100%; }
  .initial-assessment-validated-summary { gap: 14px; padding: 16px; border-radius: 18px; }
  .initial-assessment-validated-summary > header { align-items: stretch; flex-direction: column; }
  .initial-assessment-validated-summary > header .secondary-btn { width: 100%; }
  .initial-assessment-validated-summary-grid { gap: 9px; }
  .initial-assessment-summary-card { padding: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .assessment-guided-track i { transition: none; }
  .knee-assessment-form.is-guided-assessment .assessment-guided-item.is-guided-current { animation: none; }
}

.clinical-traceability-data.hidden { display: none !important; }

@media (max-width: 700px) {
  .general-health-record-header,
  .general-health-record-actions,
  .general-health-form-actions,
  .general-health-history-item header { align-items: stretch; flex-direction: column; }
  .general-health-record-summary,
  .general-health-record-grid,
  .general-health-traceability-grid { grid-template-columns: 1fr; }
  .general-health-record-actions .primary-btn,
  .general-health-form-actions .primary-btn { width: 100%; }
  .assessment-general-health-context { grid-template-columns: 1fr; }
  .assessment-general-health-context .primary-btn { width: 100%; }
  .general-health-assessment-return { align-items: stretch; flex-direction: column; }
  .detail-tabs {
    display: grid;
    grid-template-columns: repeat(var(--visible-detail-tabs),minmax(0,1fr));
    overflow: visible;
    padding: 6px 12px;
  }
  .detail-tabs::before { top: 6px; bottom: 6px; left: 12px; width: calc((100% - 24px) / var(--visible-detail-tabs)); }
  .detail-tabs .tab-button {
    min-width: 0;
    padding: 7px 3px;
    font-size: 10px;
  }
  .medical-follow-up-header,
  .coordination-appointment-card,
  .medical-document-composer-header { align-items: stretch; flex-direction: column; }
  .coordination-appointment-card small { white-space: normal; }
  .coordination-appointment-summary-list { width: 100%; }
  .assessment-step-nav {
    grid-template-columns: repeat(6, minmax(116px, 1fr));
    overflow-x: auto;
  }
  .follow-up-assessment-heading,
  .follow-up-assessment-editor-heading,
  .reassessment-overview-footer { align-items: stretch; flex-direction: column; }
  .follow-up-assessment-heading .primary-btn,
  .reassessment-overview-footer .primary-btn { width: 100%; }
  .follow-up-assessment-form { padding: var(--s4); }
  .follow-up-assessment-step-nav { grid-template-columns: repeat(4, minmax(116px, 1fr)); }
  .follow-up-measure-options { grid-template-columns: 1fr; }
  .follow-up-assessment-actions { grid-template-columns: 1fr 1fr; }
  .follow-up-assessment-actions .assessment-save-message,
  .follow-up-assessment-actions #followUpAssessmentStepStatus { grid-column: 1 / -1; }
  .follow-up-assessment-card header,
  .follow-up-assessment-card footer { align-items: stretch; flex-direction: column; }
  .assessment-step-actions { grid-template-columns: 1fr 1fr; }
  .assessment-step-actions .assessment-save-message,
  .assessment-step-actions #kneeAssessmentStepStatus { grid-column: 1 / -1; }
}

/* La forme du jour appartient à la préparation de la séance actuelle. */
.session-today-preparation .session-day-form-integrated {
  width: 100%;
  margin: 13px 0 16px;
  padding: 13px 0;
  grid-template-columns: minmax(100px, auto) minmax(180px, 260px) minmax(160px, 1fr);
  border: 0;
  border-top: 1px solid rgba(89,103,232,.11);
  border-bottom: 1px solid rgba(89,103,232,.11);
  border-radius: 0;
  background: transparent;
}

.session-today-preparation .session-day-form-integrated small {
  margin: 0;
  color: var(--tx-3);
  font-size: 11px;
}

.session-before-check-in {
  display: grid;
  gap: var(--s2);
  margin: 13px 0 16px;
  padding: 13px 0;
  border-top: 1px solid rgba(89,103,232,.11);
  border-bottom: 1px solid rgba(89,103,232,.11);
}

.session-before-check-in-fields {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: var(--s3);
}

.session-before-check-in .session-day-form-integrated,
.session-before-check-in .session-clinical-status {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.session-before-check-in select {
  width: 100%;
  min-width: 0;
  margin: 0;
}

.session-before-check-in label small {
  margin: 0;
  color: var(--tx-4);
  font-size: 9px;
  font-weight: var(--fw-sb);
}

.session-before-check-in .session-intercurrent-issue {
  margin: var(--s2) 0 0;
  border-width: 1px 0 0;
  border-radius: 0;
  background: transparent;
}

.session-before-check-in .session-intercurrent-issue > summary {
  padding: 10px 0 0;
}

.session-before-check-in .session-intercurrent-issue[open] > summary {
  padding: 10px 0;
  background: transparent;
}

.session-before-check-in .intercurrent-compact-summary { padding: 0 0 10px; }
.session-before-check-in .intercurrent-issue-form { padding: var(--s3) 0 0; }

@media (max-width: 700px) {
  .session-today-preparation .session-day-form-integrated {
    grid-template-columns: 1fr;
    gap: 7px;
  }
  .session-before-check-in-fields,
  .intercurrent-change-type > div { grid-template-columns: 1fr; }
}

/* Hiérarchie clinique : valeurs, évolution et vigilances au premier regard */
.metric-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.78);
  background:
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(240,242,255,.76));
  box-shadow:
    0 1px 0 rgba(255,255,255,.92) inset,
    0 12px 30px rgba(40,48,90,.075);
}

.metric-card::after {
  content: '';
  position: absolute;
  right: -34px;
  bottom: -58px;
  width: 132px;
  height: 132px;
  border-radius: 50%;
  background: rgba(89,103,232,.09);
  pointer-events: none;
}

.metric-purple,
.metric-teal {
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(240,242,255,.76));
}

.metric-purple::after,
.metric-teal::after { background: rgba(89,103,232,.09); }

.metric-card h2 {
  position: relative;
  z-index: 1;
  font-size: clamp(38px, 4vw, 48px);
  line-height: .95;
  letter-spacing: -.065em;
  text-shadow: 0 1px 0 rgba(255,255,255,.8);
}

.metric-card-content > p:first-child {
  color: var(--tx-2);
  font-size: 10px;
  letter-spacing: .085em;
}

.metric-card.metric-card-active {
  transform: translateY(-3px);
  box-shadow:
    0 0 0 1px rgba(89,103,232,.18),
    0 22px 52px rgba(40,48,90,.14);
}

.patient-metrics-header {
  padding-top: var(--s4);
}

.clinical-journey-timeline {
  padding: 18px 20px 20px;
  border: 1px solid rgba(89,103,232,.14);
  border-radius: var(--r-xl);
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(244,241,255,.76));
  box-shadow: 0 12px 30px rgba(35,42,74,.07);
}

.clinical-journey-timeline-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}

.clinical-journey-timeline-header h4 { margin-top: 2px; font-size: 18px; }
.clinical-journey-timeline-header > p { max-width: 390px; color: var(--tx-3); font-size: 11px; text-align: right; }

.clinical-journey-timeline-track {
  position: relative;
  display: flex;
  gap: 12px;
  padding: 4px 2px 8px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

.clinical-journey-timeline-track::before {
  content: '';
  position: absolute;
  top: 21px;
  right: 20px;
  left: 20px;
  height: 2px;
  background: linear-gradient(90deg, rgba(89,103,232,.34), rgba(34,169,154,.3));
}

.clinical-journey-event {
  position: relative;
  z-index: 1;
  display: grid;
  flex: 0 0 205px;
  align-content: start;
  gap: 4px;
  min-width: 0;
  padding: 0 12px 12px;
  border: 1px solid rgba(89,103,232,.12);
  border-radius: 14px;
  background: rgba(255,255,255,.94);
  color: var(--tx);
  text-align: left;
  box-shadow: 0 5px 14px rgba(35,42,74,.055);
}

button.clinical-journey-event { cursor: pointer; }
button.clinical-journey-event:hover,
button.clinical-journey-event:focus-visible {
  border-color: rgba(89,103,232,.36);
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(35,42,74,.1);
}

.clinical-journey-marker {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin-top: 0;
  border: 4px solid rgba(255,255,255,.96);
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  box-shadow: 0 0 0 1px rgba(89,103,232,.22);
}

.clinical-journey-event-goal .clinical-journey-marker { background: #e17b4d; }
.clinical-journey-event-milestone .clinical-journey-marker { background: #22a99a; }
.clinical-journey-event.is-target { border-style: dashed; }
.clinical-journey-event time { margin-top: 3px; color: var(--tx-4); font-size: 10px; font-weight: 700; }
.clinical-journey-event strong { font-size: 12px; line-height: 1.35; }
.clinical-journey-event small { color: var(--tx-3); font-size: 10px; line-height: 1.4; }
.clinical-journey-open { margin-top: 3px; color: var(--primary-dk); font-size: 10px; font-weight: 750; }
.clinical-journey-timeline-empty { width: 100%; padding: 14px; border: 1px dashed var(--border); border-radius: 12px; color: var(--tx-3); font-size: 12px; text-align: center; }

@media (max-width: 620px) {
  .clinical-journey-timeline { padding: 15px; }
  .clinical-journey-timeline-header { align-items: flex-start; flex-direction: column; gap: 4px; }
  .clinical-journey-timeline-header > p { text-align: left; }
  .clinical-journey-timeline-track { display: grid; gap: 8px; overflow: visible; }
  .clinical-journey-timeline-track::before { top: 18px; bottom: 18px; left: 17px; width: 2px; height: auto; }
  .clinical-journey-event { grid-template-columns: 34px minmax(0, 1fr); flex-basis: auto; padding: 0 11px 10px 0; }
  .clinical-journey-marker { grid-row: 1 / span 4; }
  .clinical-journey-event time,
  .clinical-journey-event strong,
  .clinical-journey-event small,
  .clinical-journey-open { grid-column: 2; }
}

.patient-metrics-grid {
  gap: 14px;
}

.patient-metric-card {
  position: relative;
  overflow: hidden;
  min-height: 166px;
  padding: 20px 22px;
  border: 1px solid rgba(255,255,255,.82);
  background:
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(239,242,255,.86));
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 16px 38px rgba(35,42,74,.09);
}

.patient-metric-card::after {
  content: '';
  position: absolute;
  right: -48px;
  top: -52px;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: rgba(89,103,232,.09);
  pointer-events: none;
}

.patient-metric-card.progression-status-good {
  background: linear-gradient(145deg, #fff, rgba(230,250,244,.92)) !important;
  border-color: rgba(34,169,154,.22) !important;
}

.patient-metric-card.progression-status-good::after { background: rgba(34,169,154,.12); }
.patient-metric-card.progression-status-warning {
  background: linear-gradient(145deg, #fff, rgba(255,246,224,.95)) !important;
  border-color: rgba(196,124,18,.25) !important;
}
.patient-metric-card.progression-status-warning::after { background: rgba(196,124,18,.11); }

.patient-metric-card > p:first-child {
  position: relative;
  z-index: 1;
  color: var(--tx-2);
  font-size: 10px;
  letter-spacing: .09em;
}

.metric-score-value {
  position: relative;
  z-index: 1;
  font-size: clamp(42px, 5vw, 58px);
  line-height: .92;
  letter-spacing: -.07em;
}

.metric-score-unit {
  position: relative;
  z-index: 1;
  font-weight: 750;
}

.metric-status-label {
  color: var(--tx-2);
  font-size: 13px;
  font-weight: 800;
}

.metric-progress-track {
  height: 12px;
  background: rgba(255,255,255,.88);
  box-shadow: inset 0 1px 3px rgba(17,19,24,.1);
}

.metric-progress-fill {
  box-shadow: 0 4px 12px rgba(34,169,154,.26);
}

#evaluationTrendSummary {
  border: 1px solid rgba(89,103,232,.12);
  background:
    radial-gradient(circle at 100% 0, rgba(89,103,232,.09), transparent 34%),
    rgba(255,255,255,.82);
  box-shadow: 0 18px 48px rgba(35,42,74,.085);
}

.evaluation-analysis-heading h5 {
  font-size: 20px;
  letter-spacing: -.025em;
}

.evaluation-analysis-card {
  position: relative;
  overflow: hidden;
  padding: 20px;
  border-width: 1px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 10px 26px rgba(35,42,74,.065);
}

.evaluation-analysis-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: var(--primary);
}

.evaluation-analysis-favorable::before { background: var(--success); }
.evaluation-analysis-attention::before { background: var(--syn-amber-500); }
.evaluation-analysis-incomplete::before { background: var(--tx-4); }

.evaluation-analysis-result {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 8px 0 6px;
}

.evaluation-analysis-result h5 {
  margin: 0;
  font-size: 20px;
  line-height: 1.12;
  letter-spacing: -.025em;
}

.evaluation-analysis-result-mark {
  display: inline-grid;
  width: 34px;
  height: 34px;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 11px;
  background: var(--primary-bg);
  color: var(--primary-dk);
  font-size: 20px;
  font-weight: 900;
  box-shadow: inset 0 0 0 1px rgba(89,103,232,.1);
}

.evaluation-analysis-favorable .evaluation-analysis-result-mark { background: var(--syn-teal-50); color: #087a6f; }
.evaluation-analysis-attention .evaluation-analysis-result-mark { background: var(--syn-amber-50); color: #9a5b00; }

.evaluation-analysis-result-score {
  align-items: flex-end;
}

.evaluation-analysis-result-score > strong {
  display: flex;
  align-items: baseline;
  color: var(--tx);
  font-size: 48px;
  line-height: .88;
  letter-spacing: -.075em;
}

.evaluation-analysis-result-score > strong small {
  margin-left: 4px;
  color: var(--tx-4);
  font-size: 13px;
  letter-spacing: 0;
}

.evaluation-analysis-result-score h5 {
  padding-bottom: 2px;
}

.evaluation-analysis-card dl div {
  padding: 9px 10px;
  border-top: 0;
  border-radius: 8px;
  background: rgba(17,19,24,.035);
}

.evaluation-analysis-card dt {
  font-size: 10px;
  font-weight: 750;
}

.evaluation-analysis-card dd {
  color: var(--tx);
  font-size: 12px;
  font-weight: 850;
}

.evaluation-trend-point {
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255,255,255,.78);
  font-size: 15px;
  box-shadow: 0 5px 12px rgba(35,42,74,.1);
}

.session-open-actions,
.dashboard-overdue-sessions {
  position: relative;
  overflow: hidden;
  border-color: rgba(196,124,18,.28);
  background:
    linear-gradient(145deg, rgba(255,255,255,.96), rgba(255,246,224,.94));
  box-shadow: 0 12px 28px rgba(121,78,14,.08);
}

.session-open-actions::before,
.dashboard-overdue-sessions::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: var(--syn-amber-500);
}

.session-open-actions-header strong,
.dashboard-overdue-sessions strong {
  color: #744500;
  font-size: 15px;
}

.session-open-action {
  border: 1px solid rgba(196,124,18,.14);
  background: rgba(255,255,255,.82);
  box-shadow: 0 6px 16px rgba(121,78,14,.055);
}

.synapse-session-proposal {
  border: 1px solid rgba(89,103,232,.16);
  background:
    radial-gradient(circle at 100% 0, rgba(89,103,232,.11), transparent 38%),
    linear-gradient(145deg, #fff, rgba(240,242,255,.88));
  box-shadow: 0 14px 34px rgba(40,48,90,.09);
}

@media (max-width: 700px) {
  .metric-card h2 { font-size: 40px; }
  .patient-metric-card { min-height: 0; padding: 18px; }
  .metric-score-value { font-size: 46px; }
  .evaluation-analysis-result-score { align-items: flex-start; flex-direction: column; }
  .evaluation-analysis-result-score > strong { font-size: 44px; }
}

/* Mini-navigation des séances du dossier patient */
.session-view-tabs {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 4px 0 14px;
  padding: 4px;
  border: 1px solid rgba(17,19,24,.075);
  border-radius: 11px;
  background: rgba(247,249,252,.9);
}

.session-view-tab {
  min-height: 34px;
  padding: 7px 12px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--tx-3);
  font-size: 12px;
  font-weight: 800;
}

.session-view-tab span {
  display: inline-grid;
  min-width: 20px;
  height: 20px;
  margin-left: 5px;
  place-items: center;
  border-radius: 10px;
  background: rgba(17,19,24,.06);
  font-size: 10px;
}

.session-view-tab .session-view-tab-label,
.session-view-tab.active .session-view-tab-label {
  display: inline;
  min-width: 0;
  height: auto;
  margin: 0;
  border-radius: 0;
  background: transparent;
  font-size: inherit;
}

.session-view-tab.active {
  background: #fff;
  color: var(--primary-dk);
  box-shadow: 0 3px 10px rgba(17,24,39,.08);
}

.session-view-tab.active span { background: rgba(var(--primary-rgb), .1); }
.session-view-tab.active span.session-view-tab-label { background: transparent; }
.session-history-section {
  display: grid;
  gap: var(--s4);
  margin-top: var(--s6);
  padding-top: var(--s5);
  border-top: 1px solid rgba(17,19,24,.08);
}
.session-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
  margin-bottom: var(--s3);
}
.session-section-heading span { color: var(--tx-4); font-size: 10px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.session-section-heading h4 { margin-top: 2px; color: var(--tx); font-size: var(--text-lg); }
.session-section-heading > strong {
  display: inline-grid;
  min-width: 30px;
  height: 30px;
  padding: 0 8px;
  place-items: center;
  border-radius: var(--r-full);
  background: var(--primary-bg);
  color: var(--primary-dk);
  font-size: var(--text-xs);
}
.session-section-heading-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.session-section-heading .session-section-heading-actions > strong {
  display: inline-grid;
  min-width: 30px;
  height: 30px;
  padding: 0 8px;
  place-items: center;
  border-radius: var(--r-full);
  background: var(--primary-bg);
  color: var(--primary-dk);
  font-size: var(--text-xs);
}
.session-section-heading .session-section-heading-actions .session-planning-card-add > span {
  color: inherit;
  font-size: 17px;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
}
.session-section-empty {
  padding: var(--s4);
  border: 1px dashed var(--border-strong);
  border-radius: var(--r-xl);
  color: var(--tx-3);
  font-size: var(--text-sm);
}
.rehabilitation-phase-summary { display: grid; gap: 4px; margin-top: 9px; max-width: 680px; }
.rehabilitation-phase-summary > span,
.session-phase-history-heading > span { color: var(--primary); font-size: 10px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.rehabilitation-phase-summary > strong { color: var(--primary-dk); font-size: 13px; line-height: 1.35; }
.rehabilitation-phase-summary > p { margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.45; }
.rehabilitation-protocol-reference { display: grid; gap: 7px; margin-top: 5px; }
.rehabilitation-protocol-reference > div { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.rehabilitation-protocol-reference small { color: var(--tx-4); font-size: 10px; font-weight: 750; }
.rehabilitation-protocol-reference a { color: var(--primary); font-size: 10px; font-weight: 800; text-decoration: none; }
.rehabilitation-protocol-reference a:hover { text-decoration: underline; }
.rehabilitation-protocol-reference ol { display: flex; gap: 5px; overflow-x: auto; margin: 0; padding: 1px 0 3px; list-style: none; scrollbar-width: thin; }
.rehabilitation-protocol-reference li { flex: 0 0 auto; padding: 5px 8px; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 999px; background: rgba(255,255,255,.66); color: var(--tx-4); font-size: 9px; font-weight: 760; }
.rehabilitation-protocol-reference li.is-current { border-color: rgba(var(--primary-rgb), .26); background: rgba(var(--primary-rgb), .09); color: var(--primary-dk); }
.rehabilitation-phase-pathway { display: grid; gap: 9px; min-width: 0; margin-top: 8px; padding: 12px 13px; border-radius: 14px; background: rgba(var(--primary-rgb), .055); }
.rehabilitation-phase-pathway-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.rehabilitation-phase-pathway-heading > strong { color: var(--primary-dk); font-size: 12px; }
.rehabilitation-phase-pathway-heading > small { color: var(--tx-4); font-size: 9px; line-height: 1.35; text-align: right; }
.rehabilitation-phase-tabs { display: flex; gap: 5px; overflow-x: auto; padding: 1px 0 4px; scrollbar-width: thin; }
.rehabilitation-phase-tabs > button { flex: 0 0 auto; min-height: 29px; padding: 5px 9px; border: 0; border-radius: 999px; background: rgba(255,255,255,.7); color: var(--tx-3); font: inherit; font-size: 9px; font-weight: 780; cursor: pointer; transition: background-color .16s ease, color .16s ease, box-shadow .16s ease; }
.rehabilitation-phase-tabs > button:hover { color: var(--primary-dk); background: rgba(255,255,255,.96); }
.rehabilitation-phase-tabs > button.is-selected { color: #fff; background: var(--primary); box-shadow: 0 4px 10px rgba(var(--primary-rgb), .18); }
.rehabilitation-phase-tabs > button:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .2); outline-offset: 2px; }
.rehabilitation-phase-panels > section { display: grid; gap: 9px; }
.rehabilitation-phase-panels > section[hidden] { display: none; }
.rehabilitation-phase-panels > section > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.rehabilitation-phase-panels > section > header > div { display: grid; gap: 2px; }
.rehabilitation-phase-panels > section > header strong { color: var(--tx); font-size: 14px; line-height: 1.25; }
.rehabilitation-phase-panels > section > header small { color: var(--tx-4); font-size: 9px; font-weight: 680; }
.rehabilitation-phase-panels > section > header > span { flex: 0 0 auto; padding: 4px 7px; border-radius: 999px; background: rgba(255,255,255,.8); color: var(--primary-dk); font-size: 8px; font-weight: 800; }
.rehabilitation-phase-panel-summary { margin: 0; color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.rehabilitation-phase-pain-summary { margin: 0; padding: 7px 9px; border-radius: 9px; background: rgba(255,244,226,.68); color: #86561f; font-size: 9px; font-weight: 720; line-height: 1.4; }
.trajectory-phase-prerequisites { display: grid; gap: 10px; margin-top: var(--s4); padding: var(--s4); border-top: 1px solid rgba(var(--primary-rgb), .12); background: linear-gradient(180deg, rgba(var(--primary-rgb), .025), transparent); }
.trajectory-graph-controls,
.trajectory-prerequisites-backdrop,
.trajectory-prerequisites-sheet-close { display: none; }
.trajectory-phase-prerequisites > header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); }
.trajectory-phase-prerequisites > header > div { display: grid; gap: 2px; }
.trajectory-phase-prerequisites > header span { color: var(--primary); font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.trajectory-phase-prerequisites > header h4 { margin: 0; color: var(--tx); font-size: 14px; }
.trajectory-phase-prerequisites > header small { color: var(--tx-4); font-size: 9px; }
.trajectory-phase-prerequisites > header > strong { flex: 0 0 auto; padding: 4px 8px; border-radius: var(--r-full); background: rgba(var(--primary-rgb), .08); color: var(--primary-dk); font-size: 9px; }
.trajectory-phase-prerequisites-header-actions { display: grid; justify-items: end; gap: 7px; }
.trajectory-phase-prerequisites-header-actions > strong { padding: 4px 8px; border-radius: var(--r-full); background: rgba(var(--primary-rgb), .08); color: var(--primary-dk); font-size: 9px; }
.trajectory-phase-prerequisites-header-actions > button { padding: 0; border: 0; background: transparent; color: var(--primary); font: inherit; font-size: 9px; font-weight: 800; cursor: pointer; text-decoration: underline; text-decoration-color: rgba(var(--primary-rgb), .28); text-underline-offset: 3px; }
.trajectory-phase-prerequisites-header-actions > button:hover { color: var(--primary-dk); text-decoration-color: currentColor; }
.trajectory-phase-prerequisites-header-actions > button:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .18); outline-offset: 3px; border-radius: 4px; }
.trajectory-phase-prerequisites.is-current-phase-overview { border-top-color: rgba(var(--primary-rgb), .2); background: linear-gradient(180deg, rgba(var(--primary-rgb), .05), transparent); }
.trajectory-phase-prerequisites-summary,
.trajectory-phase-prerequisites-empty { margin: 0; color: var(--tx-3); font-size: 10px; line-height: 1.5; }
.rehabilitation-criteria-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.rehabilitation-criteria-group { display: grid; align-content: start; gap: 6px; }
.rehabilitation-criteria-group > h4 { margin: 0; color: var(--primary-dk); font-size: 10px; font-weight: 820; }
.rehabilitation-criteria-group > ul { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.rehabilitation-readiness-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; align-items: center; padding: 9px 10px; border-radius: 10px; background: rgba(255,255,255,.72); }
.rehabilitation-readiness-summary strong { color: var(--tx); font-size: 11px; }
.rehabilitation-readiness-summary small { grid-column: 1; color: var(--tx-4); font-size: 8px; }
.rehabilitation-readiness-summary span { grid-column: 2; grid-row: 1 / span 2; color: var(--primary-dk); font-size: 9px; font-weight: 800; text-align: right; }
.rehabilitation-readiness-summary.has-blocker { background: rgba(191,118,95,.09); }
.rehabilitation-readiness-summary.has-blocker span { color: #9a513e; }
.rehabilitation-criterion { display: block; min-width: 0; }
.rehabilitation-criterion-toggle { display: grid; grid-template-columns: 9px minmax(0, 1fr); align-items: start; gap: 7px; width: 100%; padding: 3px 4px; border: 0; border-radius: 8px; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.rehabilitation-criterion-toggle:hover { background: rgba(255,255,255,.76); }
.rehabilitation-criterion-toggle:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .18); outline-offset: 1px; }
.rehabilitation-criterion-status { width: 8px; height: 8px; margin-top: 4px; border: 2px solid rgba(var(--primary-rgb), .36); border-radius: 999px; background: transparent; }
.rehabilitation-criterion.is-validated .rehabilitation-criterion-status { border-color: #57a98e; background: #57a98e; }
.rehabilitation-criterion.is-to-reassess .rehabilitation-criterion-status { border-color: #d3a75c; background: #f7e7c8; }
.rehabilitation-criterion.is-not-validated .rehabilitation-criterion-status { border-color: #bf765f; background: #bf765f; }
.rehabilitation-criterion.is-not-applicable .rehabilitation-criterion-status { border-color: rgba(17,24,39,.22); }
.rehabilitation-criterion-copy { display: grid; gap: 1px; min-width: 0; }
.rehabilitation-criterion strong { color: var(--tx); font-size: 10px; font-weight: 730; line-height: 1.35; }
.rehabilitation-criterion small { color: var(--primary); font-size: 8px; font-weight: 760; line-height: 1.3; }
.rehabilitation-criterion p { margin: 1px 0 0; color: var(--tx-4); font-size: 8px; line-height: 1.4; }
.rehabilitation-criterion-editor { display: grid; gap: 8px; margin: 5px 0 7px 16px; padding: 9px; border-radius: 10px; background: rgba(255,255,255,.86); box-shadow: 0 5px 14px rgba(35,40,78,.06); }
.rehabilitation-criterion-editor[hidden] { display: none; }
.rehabilitation-criterion-state-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.rehabilitation-criterion-state-options button { min-height: 29px; padding: 4px 5px; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 8px; background: #fff; color: var(--tx-3); font: inherit; font-size: 8px; font-weight: 760; cursor: pointer; }
.rehabilitation-criterion-state-options button[aria-pressed="true"] { border-color: rgba(var(--primary-rgb), .32); background: rgba(var(--primary-rgb), .09); color: var(--primary-dk); }
.rehabilitation-criterion-state-options button:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .18); outline-offset: 1px; }
.rehabilitation-criterion-measurement-grid { display: grid; grid-template-columns: 1.1fr .8fr .65fr .9fr; gap: 6px; }
.rehabilitation-criterion-measurement-grid label { display: grid; gap: 3px; color: var(--tx-4); font-size: 8px; font-weight: 760; }
.rehabilitation-criterion-measurement-grid input,
.rehabilitation-criterion-measurement-grid select { min-width: 0; min-height: 30px; padding: 5px 7px; border: 1px solid rgba(17,24,39,.1); border-radius: 8px; background: #fff; color: var(--tx); font: inherit; font-size: 9px; }
.rehabilitation-criterion-source-field { grid-column: 1 / -1; }
.rehabilitation-criterion-blocking { display: flex; align-items: center; gap: 6px; color: var(--tx-3); font-size: 9px; font-weight: 700; }
.rehabilitation-criterion-blocking input { margin: 0; }
.rehabilitation-criterion-autosave { justify-self: end; color: var(--tx-4) !important; font-weight: 650 !important; }
.rehabilitation-phase-safety-note,
.rehabilitation-criteria-empty { margin: 0; color: var(--tx-4); font-size: 8px; line-height: 1.4; }
.rehabilitation-phase-safety-note { padding-top: 6px; border-top: 1px solid rgba(var(--primary-rgb), .1); }
.phase-decision-panel { display: grid; gap: 9px; padding: 12px 13px; border-radius: 13px; background: rgba(var(--primary-rgb), .065); }
.phase-decision-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.phase-decision-panel > header > div { display: grid; gap: 2px; }
.phase-decision-panel > header small { color: var(--primary); font-size: 8px; font-weight: 820; letter-spacing: .06em; text-transform: uppercase; }
.phase-decision-panel > header strong { color: var(--tx); font-size: 12px; }
.phase-decision-panel > header > span { padding: 4px 7px; border-radius: 999px; background: rgba(211,167,92,.16); color: #896229; font-size: 8px; font-weight: 820; }
.phase-decision-panel > p { margin: 0; color: var(--tx-3); font-size: 9px; line-height: 1.45; }
.phase-decision-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.phase-decision-actions button,
.phase-continuation-form footer button { min-height: 32px; padding: 7px 10px; border: 1px solid rgba(var(--primary-rgb), .15); border-radius: 9px; background: rgba(255,255,255,.82); color: var(--primary-dk); font: inherit; font-size: 9px; font-weight: 780; cursor: pointer; }
.phase-decision-actions .primary-btn,
.phase-continuation-form footer .primary-btn { border-color: var(--primary); background: var(--primary); color: #fff; }
.phase-decision-actions button:disabled { cursor: not-allowed; opacity: .46; }
.phase-continuation-form { display: grid; grid-template-columns: minmax(150px,.45fr) minmax(220px,1fr); gap: 8px; padding-top: 9px; border-top: 1px solid rgba(var(--primary-rgb), .1); }
.phase-continuation-form.hidden { display: none; }
.phase-continuation-form label { display: grid; gap: 4px; color: var(--tx-3); font-size: 8px; font-weight: 760; }
.phase-continuation-form input,
.phase-continuation-form textarea { width: 100%; min-height: 34px; padding: 7px 8px; border: 1px solid rgba(17,24,39,.1); border-radius: 9px; background: #fff; color: var(--tx); font: inherit; font-size: 10px; }
.phase-continuation-form footer { display: flex; justify-content: flex-end; gap: 7px; grid-column: 1 / -1; }
.phase-continuation-form [role="status"] { align-self: center; margin: 0 auto 0 0; color: #9a513e; font-size: 8px; }
.phase-decision-history summary { color: var(--primary-dk); font-size: 9px; font-weight: 780; cursor: pointer; }
.phase-decision-history summary span { display: inline-grid; min-width: 17px; height: 17px; margin-left: 4px; place-items: center; border-radius: 50%; background: rgba(var(--primary-rgb), .1); }
.phase-decision-history ol { display: grid; gap: 6px; margin: 8px 0 0; padding: 0; list-style: none; }
.phase-decision-history li { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 2px 8px; padding-left: 10px; border-left: 2px solid rgba(var(--primary-rgb), .18); }
.phase-decision-history li strong { color: var(--tx-2); font-size: 9px; }
.phase-decision-history li small { color: var(--tx-4); font-size: 8px; }
.phase-decision-history li p { grid-column: 1 / -1; margin: 0; color: var(--tx-3); font-size: 8px; }
.phase-decision-patient-summary { display: flex; justify-content: space-between; gap: 8px; padding: 9px 10px; border-radius: 10px; background: rgba(var(--primary-rgb), .06); }
.phase-decision-patient-summary strong { color: var(--primary-dk); font-size: 9px; }
.phase-decision-patient-summary small { color: var(--tx-4); font-size: 8px; }
.rehabilitation-card-switcher { display: grid; gap: 8px; min-width: 0; margin-top: 10px; }
.rehabilitation-card-view-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-self: end; width: min(250px, 100%); padding: 3px; border-radius: 11px; background: rgba(var(--primary-rgb), .07); }
.rehabilitation-card-view-tabs > button { min-height: 31px; padding: 6px 12px; border: 0; border-radius: 8px; background: transparent; color: var(--tx-3); font: inherit; font-size: 10px; font-weight: 800; cursor: pointer; }
.rehabilitation-card-view-tabs > button[aria-selected="true"] { background: #fff; color: var(--primary-dk); box-shadow: 0 3px 9px rgba(35,40,78,.09); }
.rehabilitation-card-view-tabs > button:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .18); outline-offset: 1px; }
.rehabilitation-card-switcher [data-rehabilitation-card-view-panel][hidden] { display: none; }
.rehabilitation-card-switcher .rehabilitation-phase-pathway,
.rehabilitation-card-switcher .prototype-progression-layout { margin-top: 0; }
@media (max-width: 620px) {
  .trajectory-phase-prerequisites > header { display: grid; }
  .trajectory-phase-prerequisites-header-actions { }
}
.session-phase-navigation { display: flex; gap: 7px; overflow-x: auto; padding: 2px 0 6px; scrollbar-width: thin; }
.session-phase-navigation > button { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; min-height: 32px; padding: 6px 10px; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 999px; background: rgba(255,255,255,.72); color: var(--tx-3); font: inherit; font-size: 11px; font-weight: 760; text-align: left; cursor: pointer; }
.session-phase-navigation > button:hover { border-color: rgba(var(--primary-rgb), .28); color: var(--primary-dk); }
.session-phase-navigation > button.active { border-color: rgba(var(--primary-rgb), .26); background: rgba(var(--primary-rgb), .1); color: var(--primary-dk); }
.session-phase-navigation > button > span { display: inline-grid; min-width: 18px; height: 18px; place-items: center; border-radius: 999px; background: rgba(var(--primary-rgb), .1); color: inherit; font-size: 10px; }
.session-phase-history-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s4); margin: 2px 0 8px; padding: 4px 1px 10px; border-bottom: 1px solid rgba(var(--primary-rgb), .1); }
.session-phase-history-heading > div { display: grid; gap: 4px; }
.session-phase-history-heading > div > span { color: var(--primary); font-size: 10px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.session-phase-history-heading > div > strong { color: var(--tx); font-size: 16px; line-height: 1.3; }
.session-phase-history-heading > div > p { margin: 0; max-width: 700px; color: var(--tx-3); font-size: 12px; line-height: 1.45; }
.session-phase-history-heading > button { flex: 0 0 auto; }
.session-phase-history-empty { margin: 0; padding: 13px 0 4px; color: var(--tx-3); font-size: 12px; }
.session-history-month { overflow: hidden; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 16px; background: rgba(255,255,255,.68); }
.session-history-month > summary { display: grid; grid-template-columns: minmax(0,1fr) auto 18px; align-items: center; gap: 10px; min-height: 48px; padding: 11px 13px; cursor: pointer; list-style: none; }
.session-history-month > summary::-webkit-details-marker { display: none; }
.session-history-month > summary span { color: var(--tx); font-size: 14px; font-weight: 850; }
.session-history-month > summary strong { color: var(--tx-4); font-size: 10px; font-weight: 800; }
.session-history-month > summary i { width: 8px; height: 8px; border-right: 2px solid var(--tx-4); border-bottom: 2px solid var(--tx-4); transform: rotate(45deg) translate(-2px,-2px); transition: transform 160ms var(--ease); }
.session-history-month[open] > summary { border-bottom: 1px solid rgba(var(--primary-rgb), .1); background: rgba(var(--primary-rgb), .045); }
.session-history-month[open] > summary i { transform: rotate(225deg) translate(-1px,-1px); }
.session-history-month-list { display: grid; gap: var(--s3); padding: var(--s3); }
.session-history-list-card {
  position: relative;
  display: grid;
  gap: 9px;
  min-width: 0;
  padding: 14px 42px 14px 15px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 14px;
  background: rgba(255,255,255,.86);
  transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.session-history-list-card:hover,
.session-history-list-card:has(.session-history-list-open:focus-visible) { transform: translateY(-1px); border-color: rgba(var(--primary-rgb), .25); box-shadow: 0 10px 26px rgba(39,46,91,.07); }
.session-history-list-card-topline,
.session-history-list-card-main,
.session-history-list-card-main > div { display: flex; align-items: center; gap: 7px; min-width: 0; flex-wrap: wrap; }
.session-history-list-card-topline > strong { margin-right: 2px; color: var(--tx); font-size: 12px; }
.session-history-list-card-topline > span,
.session-history-list-card-topline > em { padding: 4px 7px; border-radius: 999px; background: rgba(var(--primary-rgb), .07); color: var(--tx-3); font-size: 9px; font-style: normal; font-weight: 780; }
.session-history-list-card-topline > em { margin-left: auto; background: rgba(56,169,141,.1); color: #2c7c69; }
.session-history-list-card-main { justify-content: space-between; gap: 10px; }
.session-history-list-card-main h5 { min-width: 0; margin: 0; color: var(--tx-2); font-size: 13px; line-height: 1.4; }
.session-history-list-card-main > div { justify-content: flex-end; }
.session-history-list-score { display: inline-flex; align-items: baseline; gap: 4px; color: var(--primary-dk); }
.session-history-list-score small { color: var(--tx-4); font-size: 8px; font-weight: 760; }
.session-history-list-score strong { font-size: 12px; }
.session-history-list-score-warning,
.session-history-list-score-attention { color: #965a1c; }
.session-history-list-score-missing { color: var(--tx-4); }
.session-history-list-remark { display: inline-flex; align-items: center; gap: 5px; color: #8d581f; font-size: 9px; font-weight: 820; }
.session-history-list-remark i { width: 6px; height: 6px; border-radius: 50%; background: #d38a36; }
.session-history-list-open { position: absolute; inset: 0; z-index: 1; width: 100%; border: 0; border-radius: inherit; background: transparent; cursor: pointer; }
.session-history-list-open:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .25); outline-offset: 2px; }
.session-history-list-arrow { position: absolute; top: 50%; right: 16px; color: var(--primary); font-size: 20px; font-style: normal; transform: translateY(-50%); }
.session-history-more-months { align-self: center; min-height: 38px; padding: 8px 14px; border: 1px solid rgba(var(--primary-rgb), .15); border-radius: 999px; background: rgba(var(--primary-rgb), .06); color: var(--primary-dk); font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.session-history-more-months:hover { border-color: rgba(var(--primary-rgb), .3); background: rgba(var(--primary-rgb), .1); }

@media (max-width: 560px) {
  .session-view-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; }
  .session-view-tab { width: 100%; }
  .session-item.session-item-today { padding: var(--s4); }
  .session-compact-header { align-items: flex-start; }
  .session-today-preparation { padding: var(--s3); }
  .session-today-orientation { grid-template-columns: 1fr; }
  .session-day-form {
    grid-template-columns: 1fr;
    width: 100%;
  }
  .rehabilitation-phase-pathway { padding: 10px; }
  .rehabilitation-phase-pathway-heading { display: grid; gap: 2px; }
  .rehabilitation-phase-pathway-heading > small { text-align: left; }
  .trajectory-phase-prerequisites { padding: var(--s3); }
  .trajectory-phase-prerequisites > header { display: grid; }
  .trajectory-phase-prerequisites > header > strong { justify-self: start; }
  .rehabilitation-criteria-layout { grid-template-columns: 1fr; gap: 11px; }
  .rehabilitation-readiness-summary { grid-template-columns: 1fr; }
  .rehabilitation-readiness-summary span { grid-column: 1; grid-row: auto; text-align: left; }
  .rehabilitation-criterion-state-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rehabilitation-criterion-measurement-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rehabilitation-criterion-source-field { grid-column: 1 / -1; }
  .phase-decision-actions { display: grid; grid-template-columns: 1fr; }
  .phase-decision-actions button { width: 100%; }
  .phase-continuation-form { grid-template-columns: 1fr; }
  .rehabilitation-phase-panels > section > header { align-items: center; }
  .rehabilitation-card-view-tabs { justify-self: stretch; width: 100%; }
}

/* Bandeau clinique temps réel : date, patient et contexte de prise en charge */
.topbar {
  justify-content: center;
  padding: 5px 18px;
}

.topbar .live-patient-navigator.topbar-clinical-ribbon {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  width: min(1040px, 100%);
  flex: 1 1 auto;
}

.live-patient-ribbon-viewport {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  min-width: 0;
}

.live-patient-ribbon-controls {
  display: grid;
  grid-template-columns: 30px auto 30px;
  align-items: center;
  gap: 4px;
}

.live-patient-ribbon-control {
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid rgba(17,19,24,.08);
  border-radius: 50%;
  background: rgba(255,255,255,.76);
  color: var(--tx-2);
  font: inherit;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.live-patient-ribbon-control:hover:not(:disabled),
.live-patient-ribbon-control:focus-visible {
  border-color: rgba(var(--primary-rgb), .28);
  background: #fff;
  color: var(--primary);
}

.live-patient-ribbon-control:disabled {
  opacity: .34;
  cursor: default;
}

.live-patient-ribbon-now {
  width: 30px;
  min-width: 30px;
  padding: 0;
  border-radius: 50%;
  color: rgba(var(--primary-rgb), .54);
  font-size: 11px;
}

.live-patient-ribbon-now.is-away-from-now {
  border-color: rgba(var(--primary-rgb), .24);
  background: rgba(var(--primary-rgb), .1);
  color: var(--primary);
}

.live-patient-navigator.is-browsing-time .patient-context-current {
  box-shadow: 0 0 0 2px rgba(var(--primary-rgb), .1), 0 4px 14px rgba(17,24,39,.07);
}

.patient-context-card {
  position: relative;
  min-width: 0;
  min-height: 48px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border: 1px solid rgba(17,19,24,.07);
  border-radius: 10px;
  background: rgba(255,255,255,.64);
  color: var(--tx);
  text-align: left;
  cursor: pointer;
}

.patient-context-card:hover:not(:disabled) {
  border-color: rgba(var(--primary-rgb), .22);
  background: #fff;
}

.patient-context-card:disabled { cursor: default; opacity: .62; }
.patient-context-card[data-state="live"] { border-color: rgba(22,163,74,.3); background: rgba(240,253,244,.96); }
.patient-context-card[data-state="live"] .live-patient-indicator { background: var(--clr-ok-500); animation: livePatientPulse 1.8s ease-out infinite; }
.patient-context-card[data-state="autonomy"] { background: rgba(239,246,255,.92); }
.patient-context-card[data-state="autonomy"] .live-patient-indicator { background: #60a5fa; }
.patient-context-card[data-state="ready"] { background: rgba(255,251,235,.96); }
.patient-context-card[data-state="ready"] .live-patient-indicator { background: #f59e0b; }
.patient-context-card[data-state="upcoming"] .live-patient-indicator { background: var(--primary); }
.patient-context-card[data-state="previous"] .live-patient-indicator,
.patient-context-card[data-state="empty"] .live-patient-indicator { background: var(--tx-4); }
.patient-context-card.is-current-patient {
  border-color: rgba(var(--primary-rgb), .38);
  background: linear-gradient(145deg, rgba(246,247,255,.98), rgba(235,238,255,.92));
  box-shadow: 0 0 0 2px rgba(var(--primary-rgb), .09), 0 5px 16px rgba(35,40,78,.08);
}
.patient-context-card.is-current-patient .live-patient-indicator { background: var(--primary); }
.patient-context-card .live-patient-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 5px;
}
.patient-context-card .live-patient-copy > span:first-child {
  grid-column: 1 / -1;
  color: var(--tx-4);
  font-size: 9px;
  font-weight: 760;
  letter-spacing: 0;
  text-transform: none;
}
.patient-context-card .live-patient-copy strong {
  grid-column: 1;
  max-width: none;
  min-width: 0;
  font-size: 13px;
  font-weight: 850;
}
.patient-context-card .live-patient-time {
  padding: 4px 7px;
  font-size: 9px;
  white-space: nowrap;
}
.patient-context-card .live-patient-time.is-autonomy {
  background: rgba(96,165,250,.14);
  color: #356fa8;
}
.patient-context-card.has-action-alert { border-color: rgba(217,119,6,.28); }
.live-patient-copy > .patient-context-alert {
  display: grid;
  grid-column: 2;
  width: 18px;
  height: 18px;
  margin: 0;
  padding: 0;
  place-items: center;
  border-radius: 50%;
  background: rgba(245,158,11,.13);
  color: #8a5200;
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
}
.live-patient-copy > .patient-context-alert.hidden { display: none; }

.feedback-item-pending { border-color: rgba(245,158,11,.28); }
.feedback-review-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s3);
  margin-top: var(--s3);
  padding-top: var(--s3);
  border-top: 1px solid var(--border);
}
.feedback-review-status { color: var(--tx-3); font-size: 11px; font-weight: 800; }
.feedback-review-btn { min-height: 32px; padding: 6px 10px; font-size: 11px; }

/* Parcours clinique court : actions immédiates et vues d’évaluation */
.session-open-actions {
  margin-bottom: var(--s4);
  padding: var(--s4);
  border: 1px solid rgba(245,158,11,.26);
  border-radius: var(--r-xl);
  background: rgba(255,251,235,.82);
}
.session-open-actions-header,
.session-open-action,
.synapse-session-proposal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s3);
}
.session-open-actions-header div { display: grid; gap: 2px; }
.session-open-actions-header span,
.session-open-action span { color: var(--tx-4); font-size: 10px; font-weight: 700; }
.session-open-actions-list { display: grid; gap: var(--s2); margin-top: var(--s3); }
.session-open-action { padding: var(--s3); border-radius: var(--r-lg); background: var(--surface); }
.session-open-action > div { min-width: 0; }
.session-open-action p { margin: 3px 0 0; color: var(--tx-3); font-size: 12px; line-height: 1.4; }
.session-day-form small { display: block; margin-top: 3px; color: var(--tx-4); font-size: 10px; font-weight: 600; }
.synapse-session-proposal-footer { margin-top: var(--s3); }
.synapse-session-proposal-footer .primary-btn { min-height: 34px; padding: 7px 11px; font-size: 11px; }

/* Décision du jour : une seule lecture, du retour aux exercices proposés. */
.session-today-preparation {
  margin-bottom: var(--s3);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.session-before-check-in {
  gap: 10px;
  margin: 0;
  padding: 0;
  border: 0;
}

.session-decision-strip {
  display: grid;
  grid-template-columns: 1.05fr 1.1fr 1fr .8fr;
  gap: 8px;
}

.session-return-score,
.session-decision-strip > label,
.session-day-proposal,
.session-global-progress {
  min-width: 0;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid rgba(17,19,24,.075);
  border-radius: 12px;
  background: rgba(255,255,255,.84);
}

.session-return-score > summary,
.session-day-proposal,
.session-global-progress {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.session-return-score > summary { cursor: pointer; list-style: none; }
.session-return-score > summary::-webkit-details-marker { display: none; }
.session-return-score span,
.session-day-proposal > span,
.session-global-progress > span,
.session-decision-strip .session-day-form-label {
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .02em;
}
.session-return-score strong,
.session-day-proposal strong,
.session-global-progress strong { color: var(--tx); font-size: 16px; }
.session-day-proposal strong { display: flex; align-items: baseline; gap: 6px; }
.session-day-proposal em { color: var(--primary); font-size: 11px; font-style: normal; }
.session-day-proposal-increase,
.session-day-proposal-decrease,
.session-day-proposal-review { border-color: rgba(89,103,232,.25); background: rgba(238,240,255,.94); }
.session-return-score-detail { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--border); }
.session-return-score-detail p { margin: 5px 0; color: var(--tx-3); font-size: 12px; line-height: 1.35; }

.session-decision-strip > label {
  display: grid;
  grid-template-columns: 1fr;
  gap: 5px;
}
.session-decision-strip select { width: 100%; min-width: 0; margin: 0; border: 0; background-color: transparent; font-size: 14px; font-weight: 800; }

.session-before-check-in .session-intercurrent-issue { margin-top: 0; }
.session-before-check-in .session-intercurrent-issue > summary { padding-top: 7px; }

.synapse-session-proposal { gap: 10px; padding: 12px; }
.synapse-session-proposal-header h4 { font-size: 15px; }
.synapse-session-proposal-header > strong { color: var(--primary); font-size: 14px; }
.synapse-session-proposal ul { display: grid; grid-template-columns: 1fr; gap: 6px; }
.synapse-session-proposal li { display: grid; grid-template-columns: minmax(110px,.65fr) minmax(0,1.8fr); align-items: center; gap: 10px; padding: 9px 10px; }
.synapse-session-proposal li strong { font-size: 12px; white-space: normal; }
.synapse-session-proposal li div { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 8px; }
.synapse-session-proposal li span,
.synapse-session-proposal li em { overflow: hidden; color: var(--tx-3); font-size: 11px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.synapse-session-proposal li em { color: var(--tx); font-weight: 800; }
.synapse-session-proposal li b { color: var(--primary); }

@media (max-width: 900px) {
  .session-decision-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 560px) {
  .session-decision-strip { }
  .synapse-session-proposal li { grid-template-columns: 1fr; }
  .synapse-session-proposal li div { grid-template-columns: 1fr; gap: 3px; }
  .synapse-session-proposal li b { transform: rotate(90deg); width: fit-content; }
  .synapse-session-proposal-footer { align-items: stretch; flex-direction: column; }
}

/* Score Synapse et réglage clinique sur une seule surface. */
.session-decision-strip {
  grid-template-columns: minmax(180px,.8fr) minmax(190px,1fr) minmax(270px,1.45fr);
  align-items: stretch;
}

.session-synapse-score,
.session-decision-strip > label,
.session-day-proposal {
  min-width: 0;
  margin: 0;
  padding: 14px;
  border: 1px solid rgba(52,57,102,.09);
  border-radius: 18px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 8px 24px rgba(35,40,78,.055);
}

.session-synapse-score {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
}
.session-synapse-score-main {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  min-height: 76px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.session-synapse-score-copy {
  display: grid;
  flex: 1;
  gap: 3px;
  min-width: 0;
}
.session-compact-label { color: var(--tx-4); font-size: 10px; font-weight: 850; letter-spacing: .02em; }
.synapse-trajectory-context {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(var(--primary-rgb), .055);
  color: var(--tx-2);
}
.synapse-trajectory-context-heading {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-width: 0;
}
.synapse-trend-icon {
  width: 30px;
  height: 26px;
  flex: 0 0 30px;
  overflow: visible;
  color: var(--tx-3);
  fill: none;
  stroke: currentColor;
  stroke-width: 2.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.synapse-trajectory-favorable .synapse-trend-icon,
.synapse-trajectory-favorable strong { color: #168b72; }
.synapse-trajectory-stable .synapse-trend-icon,
.synapse-trajectory-stable strong { color: #5662c9; }
.synapse-trajectory-variable .synapse-trend-icon,
.synapse-trajectory-variable strong { color: #a66d17; }
.synapse-trajectory-attention .synapse-trend-icon,
.synapse-trajectory-attention strong { color: #b65f50; }
.synapse-trajectory-context strong { font-size: 11px; line-height: 1.25; }
.synapse-trajectory-context-heading .session-info-tip {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  font-size: 9px;
}
.synapse-recent-decisions {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-left: auto;
  padding-left: 8px;
}
.synapse-recent-decision {
  position: relative;
  display: inline-grid;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 50%;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  cursor: help;
  box-shadow: 0 3px 10px rgba(35,40,78,.08);
}
.synapse-recent-decision-increase { background: rgba(var(--primary-rgb), .88); color: #fff; }
.synapse-recent-decision-maintain { background: rgba(67,75,104,.13); color: var(--tx-2); }
.synapse-recent-decision-decrease { background: rgba(189,112,91,.16); color: #8a4d3f; }
.synapse-recent-decision-unknown { background: rgba(67,75,104,.07); color: var(--tx-4); }
.synapse-recent-decision::after {
  position: absolute;
  z-index: 40;
  right: 50%;
  bottom: calc(100% + 8px);
  width: max-content;
  max-width: min(240px, 74vw);
  padding: 8px 10px;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 11px;
  background: rgba(31,35,54,.92);
  box-shadow: 0 12px 28px rgba(18,22,43,.2);
  color: #fff;
  content: attr(data-tooltip);
  font-size: 9px;
  font-weight: 650;
  line-height: 1.4;
  opacity: 0;
  pointer-events: none;
  transform: translate(50%, 4px);
  transition: opacity 160ms ease, transform 200ms cubic-bezier(.22,1,.36,1);
}
.synapse-recent-decision:hover::after,
.synapse-recent-decision:focus-visible::after { opacity: 1; transform: translate(50%, 0); }
.synapse-recent-decision:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .16); outline-offset: 2px; }
.synapse-trajectory-context small {
  color: var(--tx-4);
  font-size: 8px;
  font-weight: 750;
  letter-spacing: 0;
  line-height: 1.3;
  text-transform: none;
}
.synapse-trajectory-context.is-compact { margin-top: 3px; padding: 6px 8px; }
.synapse-trajectory-context:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .12); outline-offset: 2px; }
.synapse-trajectory-context.synapse-trajectory-favorable { background: rgba(var(--primary-rgb), .065); }
.synapse-trajectory-context.synapse-trajectory-variable,
.synapse-trajectory-context.synapse-trajectory-attention { background: rgba(17, 24, 39, .045); }

@property --score {
  syntax: '<number>';
  inherits: false;
  initial-value: 0;
}

.synapse-score-ring {
  --ring-size: 70px;
  position: relative;
  display: grid;
  flex: 0 0 var(--ring-size);
  width: var(--ring-size);
  height: var(--ring-size);
  place-content: center;
  border-radius: 50%;
  background: conic-gradient(var(--primary) calc(var(--score) * 1%), rgba(89,103,232,.11) 0);
  box-shadow: 0 8px 18px rgba(89,103,232,.16);
  transition: --score 420ms cubic-bezier(.22,1,.36,1), box-shadow 220ms ease;
}
.synapse-score-ring::after { content: ''; position: absolute; inset: 7px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1px rgba(89,103,232,.07); }
.synapse-score-ring strong,
.synapse-score-ring small { position: relative; z-index: 1; line-height: 1; text-align: center; }
.synapse-score-ring strong { color: var(--tx); font-size: 22px; }
.synapse-score-ring small { margin-top: 2px; color: var(--tx-4); font-size: 8px; font-weight: 800; }
.synapse-score-ring.is-updating { box-shadow: 0 9px 22px rgba(89,103,232,.22); }
.synapse-score-ring.is-updating strong { animation: synapseScoreUpdate 420ms cubic-bezier(.22,1,.36,1); }

@keyframes synapseScoreUpdate {
  0% { opacity: .45; transform: translateY(3px) scale(.94); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

.session-info-tip {
  position: relative;
  z-index: 3;
  display: inline-grid;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  place-items: center;
  border: 1px solid rgba(89,103,232,.2);
  border-radius: 50%;
  background: rgba(255,255,255,.72);
  color: var(--primary);
  font-family: ui-rounded, "SF Pro Rounded", var(--font);
  font-size: 10px;
  font-weight: 850;
  line-height: 1;
  cursor: help;
}
.session-info-tip::after {
  content: attr(data-tooltip);
  position: absolute;
  right: -8px;
  bottom: calc(100% + 10px);
  width: min(260px, 74vw);
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.6);
  border-radius: 13px;
  background: rgba(31,35,54,.9);
  box-shadow: 0 14px 34px rgba(18,22,43,.22);
  color: #fff;
  font-size: 10px;
  font-weight: 650;
  line-height: 1.45;
  opacity: 0;
  pointer-events: none;
  transform: translateY(5px) scale(.97);
  transform-origin: bottom right;
  transition: opacity 170ms ease, transform 240ms cubic-bezier(.22,1,.36,1);
}
.session-info-tip:hover::after,
.session-info-tip:focus::after { opacity: 1; transform: translateY(0) scale(1); }

.session-day-form-integrated {
  display: grid;
  align-content: center;
  gap: 10px;
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(52,57,102,.09);
  border-radius: 18px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 8px 24px rgba(35,40,78,.055);
}
.session-compact-label { display: flex; align-items: center; justify-content: space-between; gap: 7px; }
.session-day-form-options { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 4px; }
.session-day-form-options button,
.session-day-pain-options button,
.session-binary-choice button {
  min-height: 34px;
  padding: 5px 6px;
  border: 0;
  border-radius: 11px;
  background: rgba(29,33,52,.045);
  color: var(--tx-4);
  font: inherit;
  font-size: 9px;
  font-weight: 800;
  cursor: pointer;
  transition: color 180ms ease, background 240ms ease, box-shadow 240ms ease, transform 240ms cubic-bezier(.22,1,.36,1);
}
.session-day-form-options button:hover,
.session-day-pain-options button:hover,
.session-binary-choice button:hover { color: var(--primary); transform: translateY(-1px); }
.session-day-form-options button.is-selected,
.session-day-pain-options button.is-selected,
.session-binary-choice button.is-selected { background: #fff; color: var(--primary); box-shadow: 0 5px 16px rgba(46,53,102,.13); }

.session-day-pain { display: grid; gap: 8px; min-width: 0; }
.session-day-pain-options { display: grid; grid-template-columns: repeat(11,minmax(0,1fr)); gap: 4px; }
.session-day-pain-options button { min-width: 0; padding-inline: 2px; }

.session-day-proposal { display: grid; grid-template-columns: 1fr auto; align-content: center; gap: 8px 14px; }
.session-day-proposal > span { grid-column: 1 / -1; }
.session-day-proposal > strong { font-size: 17px; }
.session-day-proposal > small { align-self: center; color: var(--tx-4); font-size: 10px; font-weight: 750; text-align: right; }
.session-direction-scale {
  --direction-index: 1;
  position: relative;
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 3px;
  overflow: hidden;
  padding: 3px;
  border: 1px solid rgba(89,103,232,.08);
  border-radius: 13px;
  background: rgba(28,31,47,.055);
}
.session-direction-decrease { --direction-index: 0; }
.session-direction-maintain { --direction-index: 1; }
.session-direction-increase { --direction-index: 2; }
.session-direction-pending::before { opacity: 0; }
.session-direction-scale::before {
  content: '';
  position: absolute;
  top: 3px;
  bottom: 3px;
  left: 3px;
  width: calc((100% - 12px) / 3);
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 9px;
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(246,247,255,.86));
  box-shadow: 0 5px 14px rgba(35,40,78,.13), inset 0 1px rgba(255,255,255,.85);
  transform: translateX(calc(var(--direction-index) * (100% + 3px)));
  transition: transform 410ms cubic-bezier(.22,1,.36,1), opacity 180ms ease;
}
.session-direction-scale span { position: relative; z-index: 1; padding: 6px 8px; border-radius: 8px; color: var(--tx-4); font-size: 10px; font-weight: 800; text-align: center; transition: color 260ms ease; }
.session-direction-scale span.is-selected { color: var(--primary); }

/* La forme, les symptômes et la décision restent intégrés sans carte imbriquée. */
.session-decision-surface {
  display: grid;
  gap: 14px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.session-decision-overview {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.session-decision-surface .session-synapse-score,
.session-decision-surface .session-day-form-integrated,
.session-decision-surface .session-day-pain,
.session-decision-surface .session-unusual-question {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.session-decision-surface .session-synapse-score { flex: 1; }
.session-decision-surface .session-synapse-score-main { min-height: 70px; }

.session-decision-comparison {
  display: grid;
  grid-template-columns: minmax(110px, 1fr) minmax(150px, auto) minmax(140px, auto);
  align-items: center;
  gap: 10px;
}
.session-decision-option {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  gap: 9px;
  min-width: 0;
}
.session-synapse-result.session-day-proposal-increase,
.session-synapse-result.session-day-proposal-decrease,
.session-synapse-result.session-day-proposal-review {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.session-decision-option small {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.session-decision-option small i,
.session-decision-option small b {
  display: inline-block;
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
}
.session-synapse-result small i {
  background: #f4c542;
  box-shadow: 0 0 0 2px rgba(244,197,66,.18);
}
.session-clinician-result small b {
  border: 2px solid var(--primary);
  background: #fff;
}
.session-decision-option strong {
  display: flex;
  align-items: baseline;
  gap: 6px;
  color: var(--primary-dk);
  font-size: 16px;
  line-height: 1.05;
}
.session-decision-option em {
  font-size: inherit;
  font-style: normal;
  font-weight: inherit;
}
.session-synapse-result small,
.session-synapse-result strong,
.session-synapse-result em {
  color: var(--tx-2);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: none;
}
.session-clinician-result {
  padding: 8px 11px;
  border: 1px solid rgba(89,103,232,.13);
  border-radius: 13px;
  background: rgba(89,103,232,.07);
  box-shadow: inset 0 1px rgba(255,255,255,.72);
}
.session-clinician-result strong { color: var(--primary-dk); font-weight: 850; }

.session-decision-surface .session-day-form-integrated { gap: 8px; }
.session-decision-surface .session-unusual-symptom { gap: 8px; }
.session-decision-surface .session-unusual-question { min-height: 38px; }
.session-decision-surface .session-day-form-integrated,
.session-decision-surface .session-day-pain,
.session-decision-surface .session-unusual-question,
.session-decision-surface .session-load-decision {
  display: grid;
  grid-template-columns: minmax(150px, 180px) minmax(0, 1fr);
  align-items: center;
  gap: 8px 14px;
}
.session-decision-surface .session-day-form-integrated > .session-compact-label,
.session-decision-surface .session-day-pain > .session-compact-label,
.session-decision-surface .session-unusual-question > .session-compact-label {
  color: var(--tx-2);
  font-size: 13px;
  font-weight: 850;
  letter-spacing: 0;
}
.session-decision-surface .session-day-form-options button,
.session-decision-surface .session-day-pain-options button,
.session-decision-surface .session-binary-choice button {
  min-height: 38px;
  background: rgba(29,33,52,.065);
  color: var(--tx-3);
  font-size: 10.5px;
}
.session-decision-surface .session-day-form-options button.is-selected,
.session-decision-surface .session-day-pain-options button.is-selected,
.session-decision-surface .session-binary-choice button.is-selected {
  background: rgba(255,255,255,.98);
  color: var(--primary-dk);
  box-shadow: 0 6px 18px rgba(46,53,102,.16), inset 0 0 0 1px rgba(var(--primary-rgb), .08);
}

.session-load-decision { display: grid; gap: 7px; }
.session-pain-required { color: var(--tx-4); font-size: 10px; font-weight: 650; }
.session-load-decision-title {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 6px;
  padding-inline: 2px;
  color: var(--tx-2);
  font-size: 13px;
  font-weight: 850;
}
.session-decision-surface .session-load-decision .session-direction-scale {
  grid-column: 2;
  width: 100%;
  margin-inline: 0;
}
.session-decision-surface .session-load-decision .session-pain-required { grid-column: 2; }
.session-analysis-score { color: var(--primary); font-variant-numeric: tabular-nums; }
.session-application-decision-dot {
  position: relative;
  display: inline-block;
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border: 1px solid rgba(255,255,255,.92);
  border-radius: 50%;
  background: #f4c542;
  box-shadow: 0 0 0 2px rgba(244,197,66,.2);
  cursor: help;
}
.session-application-decision-dot::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  z-index: 8;
  width: max-content;
  padding: 7px 9px;
  border-radius: 9px;
  background: rgba(28,31,47,.94);
  box-shadow: 0 8px 22px rgba(20,23,39,.18);
  color: #fff;
  font-size: 10px;
  font-weight: 750;
  line-height: 1.2;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 4px);
  transition: opacity 150ms ease, transform 180ms ease;
}
.session-application-decision-dot:hover::after,
.session-application-decision-dot:focus-visible::after {
  opacity: 1;
  transform: translate(-50%, 0);
}
.session-decision-key {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--tx-4);
  font-size: 9px;
  font-weight: 800;
}
.session-decision-key i,
.session-decision-key b { display: inline-block; width: 7px; height: 7px; border-radius: 50%; }
.session-decision-key i { background: #f4c542; box-shadow: 0 0 0 2px rgba(244,197,66,.18); }
.session-decision-key b { border: 2px solid var(--primary); background: #fff; }

.session-load-decision .session-direction-scale {
  display: grid;
  width: calc(100% + 8px);
  min-height: 44px;
  margin-inline: -4px;
  overflow: visible;
}
.session-load-decision .session-direction-scale::before {
  border-color: rgba(89,103,232,.34);
  background: linear-gradient(145deg, #6878ee, #5262d9);
  box-shadow: 0 7px 18px rgba(65,78,188,.24), inset 0 1px rgba(255,255,255,.26);
}
.session-direction-scale button {
  position: relative;
  z-index: 1;
  min-height: 38px;
  padding: 7px 10px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--tx-4);
  font: inherit;
  font-size: 10px;
  font-weight: 850;
  cursor: pointer;
  transition: color 220ms ease, transform 220ms ease;
}
.session-direction-scale button:hover { color: var(--primary); transform: translateY(-1px); }
.session-direction-scale button:focus-visible {
  outline: 2px solid rgba(var(--primary-rgb), .45);
  outline-offset: -3px;
}
.session-direction-scale button.is-clinician:focus-visible { outline-color: rgba(255,255,255,.9); }
.session-direction-scale button.is-clinician { color: #fff; }
.session-application-direction {
  position: absolute;
  top: 2px;
  right: 6px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 5px;
  border-radius: 999px;
  background: rgba(244,197,66,.2);
  color: #765000;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 1px 4px rgba(126,86,0,.09);
  white-space: nowrap;
}
.session-application-direction i {
  display: inline-block;
  width: 7px;
  height: 7px;
  border: 1px solid rgba(255,255,255,.9);
  border-radius: 50%;
  background: #f4c542;
  box-shadow: 0 1px 4px rgba(126,86,0,.24);
}
.session-direction-scale button.is-clinician .session-application-direction {
  background: rgba(255,226,122,.16);
  color: #fff0a6;
}
.session-clinician-direction-decrease { --direction-index: 0; }
.session-clinician-direction-maintain { --direction-index: 1; }
.session-clinician-direction-complete { --direction-index: 1; }
.session-clinician-direction-increase { --direction-index: 2; }
.session-clinician-direction-reorient { --direction-index: 2; }
.session-load-decision .session-clinician-direction-pending::before { opacity: 0; }
.session-clinical-caution {
  display: block;
  margin: 7px 4px 0;
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 650;
}
.session-patient-signal-context {
  display: block;
  padding: 0 12px;
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 650;
}

@media (max-width: 700px) {
  .session-unified-workspace .session-kine-feedback,
  .session-before-check-in,
  .session-decision-surface,
  .session-load-decision {
    grid-template-columns: minmax(0, 1fr);
  }
  .session-decision-surface { padding: 0; }
  .session-decision-surface .session-day-form-integrated,
  .session-decision-surface .session-day-pain,
  .session-decision-surface .session-unusual-question,
  .session-decision-surface .session-load-decision {
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
  }
  .session-decision-surface .session-binary-choice {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    box-sizing: border-box;
  }
  .patient-prescribed-pre-session-assessment { padding: 12px; }
  .patient-prescribed-pre-session-assessment > header,
  .session-pre-assessment-waiting { align-items: flex-start; flex-direction: column; }
  .session-pre-assessment-waiting span { text-align: left; }
  .patient-pre-session-assessment-summary dl { grid-template-columns: 1fr; }
  .session-decision-surface .session-load-decision .session-direction-scale,
  .session-decision-surface .session-load-decision .session-pain-required { grid-column: 1; }
  .session-decision-overview { align-items: flex-start; }
  .session-decision-comparison { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 8px; }
  .session-decision-comparison > .session-compact-label { grid-column: 1 / -1; }
  .session-decision-option { align-items: flex-start; flex-direction: column; gap: 3px; }
  .session-decision-option strong { font-size: 14px; }
  .session-clinician-result { padding: 7px 9px; }
  .session-today-preparation,
  .session-before-check-in,
  .session-decision-surface,
  .session-decision-overview,
  .session-day-form-integrated,
  .session-unusual-symptom,
  .session-load-decision,
  .session-load-decision .session-direction-scale {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .session-load-decision .session-direction-scale {
    width: 100%;
    margin-inline: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .session-direction-scale button {
    display: flex;
    min-width: 0;
    padding-inline: 4px;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    gap: 1px;
  }
  .session-direction-scale button.is-synapse .session-direction-label { transform: translateY(5px); }
  .session-unusual-description { grid-template-columns: 1fr; padding: 0 4px; }
}

.session-unusual-symptom { display: grid; gap: 7px; }
.session-unusual-question { display: flex; align-items: center; justify-content: flex-start; gap: 12px; padding: 9px 12px; border: 1px solid rgba(52,57,102,.08); border-radius: 14px; background: rgba(255,255,255,.72); }
.session-unusual-control-stack { display: grid; min-width: 0; gap: 4px; }
.session-unusual-control-line { display: flex; min-width: 0; align-items: center; flex-wrap: wrap; gap: 8px; }
.session-unusual-control-line > .session-binary-choice { flex: 0 0 auto; }
.session-unusual-control-line > .session-unusual-description-control { flex: 1 1 280px; }
.session-unusual-confirmation-status { color: var(--tx-4); font-size: 9px; font-weight: 500; line-height: 1.35; }
.session-unusual-description { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 10px; padding: 0 12px; color: var(--tx-4); font-size: 10px; font-weight: var(--fw-sb); }
.session-unusual-description-control { display: flex; align-items: center; gap: 7px; min-width: 0; }
.session-unusual-description-control input { flex: 1; min-width: 0; }
.session-unusual-confirm-button { min-height: 34px; padding: 7px 11px; border: 1px solid rgba(var(--primary-rgb), .2); border-radius: 10px; background: var(--primary-bg); color: var(--primary-dk); font: 700 10px/1.2 var(--font); }
.session-unusual-confirm-button:disabled { cursor: default; opacity: .45; }
.session-unusual-description > small { grid-column: 2; color: var(--tx-4); font-size: 9px; font-weight: 500; line-height: 1.4; }
.session-unusual-description input,
.session-unusual-description-control input,
.patient-unusual-description input { min-height: 36px; border: 1px solid rgba(var(--primary-rgb), .14); border-radius: 11px; background: rgba(255,255,255,.9); color: var(--tx); font: 12px/1.35 var(--font); }
.session-exercise-symptom-state,
.session-incoming-preparation { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 12px; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 12px; background: rgba(var(--primary-rgb), .055); }
.session-exercise-symptom-state > div:first-child,
.session-incoming-preparation { min-width: 0; }
.session-exercise-symptom-state > div:first-child { display: grid; flex: 1 1 260px; gap: 2px; }
.session-exercise-symptom-state strong,
.session-incoming-preparation strong { color: var(--tx); font-size: 11px; }
.session-exercise-symptom-state span,
.session-incoming-preparation span { color: var(--tx-3); font-size: 10px; line-height: 1.4; }
.session-exercise-symptom-state > button,
.session-prepared-deferral-action,
.session-prepared-deferral-status button { padding: 6px 9px; border: 1px solid rgba(var(--primary-rgb), .17); border-radius: 9px; background: rgba(255,255,255,.85); color: var(--primary-dk); font: 700 9px/1.2 var(--font); }
.session-exercise-symptom-state.is-maintain { border-color: rgba(210,143,42,.18); background: rgba(210,143,42,.065); }
.session-exercise-symptom-state.is-complete { border-color: rgba(var(--primary-rgb), .2); background: rgba(var(--primary-rgb), .07); }
.session-exercise-symptom-state.is-decrease { border-color: rgba(var(--primary-rgb), .2); background: rgba(var(--primary-rgb), .08); }
.session-exercise-symptom-state.is-reorient { border-color: rgba(83,145,120,.22); background: rgba(83,145,120,.08); }
.session-exercise-details-body.is-symptom-maintained .session-exercise-table tbody td:first-child { box-shadow: inset 3px 0 rgba(210,143,42,.24); }
.session-exercise-details-body.is-symptom-completed .session-exercise-table tbody tr:last-child td:first-child { box-shadow: inset 3px 0 rgba(var(--primary-rgb), .28); }
.session-symptom-exploration { display: grid; gap: 9px; padding: 13px; border: 1px solid rgba(var(--primary-rgb), .18); border-radius: 15px; background: linear-gradient(135deg, rgba(246,247,255,.96), rgba(255,255,255,.9)); box-shadow: 0 8px 22px rgba(35,40,78,.06); }
.session-symptom-exploration-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.session-symptom-exploration-heading > div { display: grid; gap: 2px; }
.session-symptom-exploration-heading span,
.session-symptom-secondary-module span { color: var(--primary); font-size: 8px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.session-symptom-exploration-heading strong { color: var(--tx); font-size: 13px; }
.session-symptom-exploration-heading em { padding: 4px 7px; border-radius: 999px; background: rgba(83,145,120,.1); color: #39765f; font-size: 8px; font-style: normal; font-weight: 800; white-space: nowrap; }
.session-symptom-exploration > p { color: var(--tx-2); font-size: 11px; font-weight: 700; line-height: 1.45; }
.session-symptom-exploration > small { color: var(--tx-4); font-size: 9px; line-height: 1.45; }
.session-symptom-exploration-actions { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
.session-symptom-exploration-actions button { min-height: 38px; padding: 7px 8px; border: 1px solid rgba(var(--primary-rgb), .14); border-radius: 10px; background: rgba(255,255,255,.82); color: var(--tx-2); font: 750 9px/1.25 var(--font); cursor: pointer; }
.session-symptom-exploration-actions button:hover,
.session-symptom-exploration-actions button:focus-visible { border-color: rgba(var(--primary-rgb), .35); color: var(--primary-dk); }
.session-symptom-exploration-actions button.is-selected { border-color: var(--primary); background: var(--primary-bg); color: var(--primary-dk); box-shadow: inset 0 0 0 1px rgba(var(--primary-rgb), .12); }
.session-symptom-secondary-module { display: grid; grid-template-columns: minmax(130px,.7fr) minmax(180px,1.3fr); gap: 8px 14px; padding: 10px; border-radius: 11px; background: rgba(var(--primary-rgb), .065); }
.session-symptom-secondary-module > div { display: grid; gap: 2px; }
.session-symptom-secondary-module strong { color: var(--tx); font-size: 10px; }
.session-symptom-secondary-module p { color: var(--tx-3); font-size: 9px; line-height: 1.45; }
.session-symptom-manual-care-note { padding-top: 7px; border-top: 1px solid rgba(var(--primary-rgb), .1); }
.session-prepared-deferral-confirm { flex: 1 0 100%; display: grid; gap: 8px; padding-top: 8px; border-top: 1px solid rgba(var(--primary-rgb), .12); }
.session-prepared-deferral-confirm p { color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.session-prepared-deferral-confirm > div { display: flex; flex-wrap: wrap; gap: 7px; }
.session-prepared-deferral-status { flex: 1 0 100%; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 7px; border-top: 1px solid rgba(var(--primary-rgb), .12); }
.session-incoming-preparation { display: grid; gap: 2px; margin-bottom: 9px; border-color: rgba(83,145,120,.2); background: rgba(83,145,120,.07); }
.patient-unusual-description { display: grid; gap: 6px; }
.session-compact-label em { color: var(--primary-dk); font-size: 8px; font-style: normal; font-weight: var(--fw-b); letter-spacing: .04em; text-transform: uppercase; }
.ai-narrative-input { display: grid; gap: 10px; padding: 12px; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 14px; background: rgba(255,255,255,.74); }
.ai-narrative-input label { color: var(--tx-2); font-size: 11px; font-weight: var(--fw-sb); }
.ai-narrative-input textarea { min-height: 78px; margin-top: 7px; border-color: rgba(var(--primary-rgb), .14); border-radius: 12px; background: var(--surface); color: var(--tx); font-size: 12px; line-height: 1.5; resize: vertical; }
.ai-narrative-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ai-narrative-actions small { color: var(--tx-4); font-size: 8px; line-height: 1.4; }
.ai-narrative-result { display: grid; gap: 5px; padding: 11px; border-radius: 12px; background: rgba(var(--primary-rgb), .07); }
.ai-narrative-result.is-vigilant { background: rgba(210,143,42,.1); }
.ai-narrative-result > span { color: var(--primary-dk); font-size: 8px; font-weight: var(--fw-b); letter-spacing: .06em; text-transform: uppercase; }
.ai-narrative-result > strong { color: var(--tx); font-size: 13px; }
.ai-narrative-result > p { color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.ai-narrative-result > .primary-btn { justify-self: end; margin-top: 3px; }
.ai-narrative-questions { display: grid; gap: 5px; margin-top: 4px; }
.ai-narrative-questions small { color: var(--tx-4); font-size: 8px; font-weight: var(--fw-b); text-transform: uppercase; }
.ai-narrative-questions button { padding: 7px 9px; border: 0; border-radius: 9px; background: rgba(255,255,255,.75); color: var(--tx-2); font: 9px/1.35 var(--font); text-align: left; opacity: 1; }
.session-binary-choice { display: grid; grid-template-columns: repeat(2,52px); gap: 4px; padding: 3px; border-radius: 13px; background: rgba(29,33,52,.045); }
.session-binary-choice button { min-height: 29px; background: transparent; }
.session-intercurrent-issue:not(.is-active) { display: none; }
.intercurrent-symptom-options { display: grid; gap: 8px; padding: 0; border: 0; }
.intercurrent-symptom-options legend { margin-bottom: 2px; color: var(--tx-2); font-size: 11px; font-weight: 800; }
.intercurrent-symptom-options > div { display: flex; flex-wrap: wrap; gap: 6px; }
.intercurrent-symptom-options label { padding: 7px 10px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); cursor: pointer; }
.intercurrent-symptom-options label:has(input:checked) { border-color: rgba(89,103,232,.28); background: var(--primary-bg); color: var(--primary-dk); }
.intercurrent-symptom-options input { width: 13px; height: 13px; margin: 0 5px 0 0; accent-color: var(--primary); vertical-align: -2px; }

@media (max-width: 560px) {
  .ai-narrative-actions { align-items: stretch; flex-direction: column; }
  .ai-narrative-actions .secondary-btn, .ai-narrative-result > .primary-btn { width: 100%; justify-self: stretch; }
  .session-symptom-exploration-heading { align-items: stretch; flex-direction: column; }
  .session-symptom-exploration-heading em { justify-self: start; }
  .session-symptom-exploration-actions { grid-template-columns: 1fr; }
  .session-symptom-exploration-actions button { min-height: 42px; text-align: left; }
  .session-symptom-secondary-module { grid-template-columns: 1fr; }
}

.prototype-loop-tester {
  display: grid;
  grid-template-columns: minmax(170px,.8fr) minmax(280px,1.5fr) minmax(230px,1fr) auto;
  align-items: center;
  gap: 10px;
  margin: 2px 0 14px;
  padding: 9px 11px;
  border: 1px solid rgba(89,103,232,.14);
  border-radius: 15px;
  background: linear-gradient(135deg, rgba(246,247,255,.92), rgba(255,255,255,.82));
  box-shadow: 0 7px 20px rgba(35,40,78,.05);
}
.prototype-loop-heading { display: grid; gap: 1px; min-width: 0; }
.prototype-loop-heading > span { color: var(--primary); font-size: 8px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.prototype-loop-heading > strong { overflow: hidden; color: var(--tx-2); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.prototype-loop-heading > small { color: var(--tx-4); font-size: 8px; font-weight: 700; }
.prototype-loop-scenarios { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3px; padding: 3px; border-radius: 12px; background: rgba(29,33,52,.045); }
.prototype-loop-scenarios button {
  min-height: 31px;
  padding: 5px 7px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--tx-4);
  font: inherit;
  font-size: 9px;
  font-weight: 800;
  cursor: pointer;
  transition: color 180ms ease, background 240ms ease, box-shadow 240ms ease, transform 240ms cubic-bezier(.22,1,.36,1);
}
.prototype-loop-scenarios button:hover { color: var(--primary); transform: translateY(-1px); }
.prototype-loop-scenarios button.is-selected { background: #fff; color: var(--primary-dk); box-shadow: 0 4px 13px rgba(35,40,78,.12); }
.prototype-loop-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 4px; }
.prototype-loop-steps span { position: relative; padding-top: 9px; color: var(--tx-4); font-size: 8px; font-weight: 750; text-align: center; }
.prototype-loop-steps span::before { content: ''; position: absolute; top: 1px; left: calc(50% - 3px); width: 6px; height: 6px; border-radius: 50%; background: rgba(105,115,134,.25); transition: transform 240ms ease, background 240ms ease, box-shadow 240ms ease; }
.prototype-loop-steps span.is-done { color: var(--primary-dk); }
.prototype-loop-steps span.is-done::before { background: var(--primary); box-shadow: 0 0 0 3px rgba(89,103,232,.12); transform: scale(1.08); }
.prototype-loop-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.prototype-loop-actions .primary-btn { min-height: 31px; padding: 6px 10px; font-size: 9px; white-space: nowrap; }
.prototype-loop-actions .session-inline-link { font-size: 9px; white-space: nowrap; }

.session-live-workspace { display: grid; gap: 10px; }
.session-live-workspace-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 2px; }
.session-live-workspace-heading > div:first-child { display: grid; gap: 2px; }
.session-live-workspace-heading span { color: var(--tx-4); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .045em; }
.session-live-workspace-heading strong { color: var(--tx-2); font-size: 14px; }
.session-live-projection { display: grid; justify-items: end; gap: 1px; padding: 7px 11px; border-radius: 12px; background: var(--primary-bg); }
.session-live-projection strong { color: var(--primary-dk); font-size: 15px; }
.session-live-exercises { display: grid; gap: 8px; }
.session-live-exercise-row { padding: 12px; border: 1px solid rgba(52,57,102,.09); border-radius: 16px; background: rgba(255,255,255,.92); box-shadow: 0 6px 18px rgba(35,40,78,.045); }
.session-live-exercise-row > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.session-live-exercise-row > header strong { color: var(--tx); font-size: 14px; }
.session-live-exercise-row > header span { color: var(--tx-4); font-size: 9px; font-weight: 800; }
.session-live-metrics { display: grid; grid-template-columns: .7fr 1.2fr 1fr .85fr; gap: 7px; }
.session-live-metric { min-width: 0; padding: 8px; border-radius: 11px; background: rgba(246,247,251,.92); }
.session-live-metric > span { display: block; margin-bottom: 4px; color: var(--tx-4); font-size: 9px; font-weight: 800; }
.session-live-metric > small { display: flex; align-items: center; gap: 4px; min-height: 14px; overflow: hidden; font-size: 9px; white-space: nowrap; }
.session-live-metric > small b { overflow: hidden; color: var(--tx-4); font-weight: 650; text-overflow: ellipsis; }
.session-live-metric > small i { color: var(--primary); font-style: normal; }
.session-live-metric > small strong { overflow: hidden; color: var(--tx-2); text-overflow: ellipsis; }
.session-live-stepper { display: grid; grid-template-columns: 26px minmax(0,1fr) 26px; gap: 3px; margin-top: 7px; }
.session-live-stepper button { min-height: 30px; padding: 0; border: 0; border-radius: 8px; background: #fff; color: var(--primary); font-size: 17px; font-weight: 800; box-shadow: 0 2px 7px rgba(35,40,78,.08); cursor: pointer; }
.session-live-stepper button:disabled { opacity: .3; cursor: not-allowed; }
.session-live-stepper input { width: 100%; min-width: 0; height: 30px; padding: 4px 5px; border: 1px solid rgba(52,57,102,.1); border-radius: 8px; background: #fff; color: var(--tx); font-size: 11px; font-weight: 800; text-align: center; }
.session-live-empty { padding: 18px; border: 1px dashed var(--border); border-radius: 14px; color: var(--tx-3); text-align: center; }

@media (max-width: 900px) {
  .session-decision-strip { grid-template-columns: 1fr 1fr; }
  .session-day-proposal { grid-column: 1 / -1; }
  .session-live-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .prototype-loop-tester { grid-template-columns: 1fr 1.5fr; }
  .prototype-loop-steps, .prototype-loop-actions { grid-column: auto; }
}

@media (max-width: 560px) {
  .session-decision-strip { grid-template-columns: 1fr; }
  .session-day-proposal { grid-column: auto; }
  .session-synapse-score-main { min-height: 66px; }
  .synapse-score-ring { --ring-size: 62px; }
  .session-day-form-options { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .session-live-workspace-heading { align-items: flex-start; }
  .session-live-metrics { grid-template-columns: 1fr; }
  .session-live-metric { display: grid; grid-template-columns: 70px minmax(0,1fr); align-items: center; gap: 4px 8px; }
  .session-live-metric > span { margin: 0; }
  .session-live-stepper { grid-column: 1 / -1; }
  .prototype-loop-tester { grid-template-columns: 1fr; gap: 8px; padding: 10px; }
  .prototype-loop-heading > strong { white-space: normal; }
  .prototype-loop-actions { justify-content: space-between; }
}

.evaluation-view-nav {
  position: sticky;
  top: 0;
  z-index: 5;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  margin-bottom: var(--s5);
  padding: 5px;
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(10px);
}
.evaluation-view-nav button { padding: 10px 12px; border-radius: var(--r-lg); color: var(--tx-3); font-size: 12px; font-weight: 750; }
.evaluation-view-nav button.active { background: var(--primary-bg); color: var(--primary-dk); box-shadow: var(--sh-xs); }
.evaluation-view-hidden { display: none !important; }
.evaluation-view-section { display: grid; gap: var(--s4); }
.evaluation-history-details { border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--surface); }
.evaluation-history-details > summary { display: flex; justify-content: space-between; gap: var(--s3); padding: var(--s4); font-size: 13px; font-weight: 800; cursor: pointer; }
.evaluation-history-details[open] { padding: 0 var(--s4) var(--s4); }
.evaluation-history-details[open] > summary { margin: 0 calc(var(--s4) * -1) var(--s4); border-bottom: 1px solid var(--border); }

.dashboard-overdue-sessions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s3);
  margin-bottom: var(--s3);
  padding: var(--s3) var(--s4);
  border: 1px solid rgba(245,158,11,.24);
  border-radius: var(--r-lg);
  background: rgba(255,251,235,.82);
}
.dashboard-overdue-sessions div { display: grid; gap: 2px; }
.dashboard-overdue-sessions span { color: var(--tx-4); font-size: 11px; }

.timeline-toggle-btn { justify-self: start; margin-top: var(--s2); }
.patient-program-submit { margin-top: var(--s3); }
.patient-secondary-section {
  margin-top: var(--s4);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--surface);
}
.patient-secondary-section > summary {
  padding: var(--s4);
  color: var(--tx-2);
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}
.patient-secondary-section[open] { padding: 0 var(--s4) var(--s4); }
.patient-secondary-section[open] > summary { margin: 0 calc(var(--s4) * -1) var(--s3); padding: var(--s4); border-bottom: 1px solid var(--border); }

@media (max-width: 700px) {
  .evaluation-view-nav { position: static; grid-template-columns: 1fr; }
  .session-open-actions-header,
  .session-open-action,
  .synapse-session-proposal-footer,
  .dashboard-overdue-sessions { align-items: stretch; flex-direction: column; }
  .session-open-action button,
  .synapse-session-proposal-footer button { width: 100%; }
}

@media (max-width: 700px) {
  .app-main > .topbar { padding: 6px 10px; }
  .live-patient-ribbon-viewport {
    grid-template-columns: repeat(3, minmax(220px, 1fr));
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .live-patient-ribbon-viewport::-webkit-scrollbar { display: none; }
  .live-patient-ribbon-controls { grid-template-columns: 28px auto 28px; }
  .live-patient-ribbon-control { width: 28px; height: 28px; }
  .live-patient-ribbon-now { width: 28px; min-width: 28px; }
  .patient-context-card {
    grid-template-columns: auto minmax(0, 1fr);
    scroll-snap-align: center;
  }
  .patient-context-card .live-patient-time { grid-column: 2; justify-self: start; }
}

.session-attendance-badge {
  display: inline-flex;
  margin: 6px 0 0 8px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
}
.session-attendance-alert { background: rgba(239,68,68,.1); color: #b42318; }
.session-attendance-warning { background: rgba(245,158,11,.12); color: #a15c00; }
.feedback-source-followup { background: rgba(245,158,11,.12); color: #8a5200; }

.planning-page-actions {
  align-items: flex-end;
  flex-direction: column;
  flex: 0 0 auto;
}

.planning-page-actions .primary-btn {
  min-width: 174px;
}

@media (max-width: 900px) {
  .planning-page-actions {
    align-items: stretch;
  }
  .planning-page-actions .planning-sync-note { align-self: flex-start; }
  .planning-page-actions .primary-btn { width: 100%; }
}

/* Tableau de bord unifié : indicateurs fixes, contenu interactif */
.dashboard-clinical-cockpit {
  overflow: hidden;
  border: 1px solid rgba(17,19,24,.075);
  border-radius: 14px;
  background: rgba(255,255,255,.82);
  box-shadow: var(--shadow-hairline);
}

.dashboard-clinical-cockpit .dashboard-metrics-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  padding: 8px;
  border-bottom: 1px solid rgba(17,19,24,.07);
  background: rgba(247,249,252,.82);
}

.dashboard-clinical-cockpit .metric-card {
  min-height: 98px;
  border-radius: 10px;
  background: transparent;
  transform: none;
}

.dashboard-clinical-cockpit .metric-card[role="button"]:hover {
  border-color: rgba(var(--primary-rgb), .12);
  background: rgba(255,255,255,.62);
  box-shadow: none;
  transform: none;
}

.dashboard-clinical-cockpit .metric-card.metric-card-active {
  border-color: rgba(var(--primary-rgb), .18);
  background: #fff;
  box-shadow: 0 5px 16px rgba(17,24,39,.07);
}

.dashboard-clinical-cockpit .metric-card.metric-card-active::after {
  content: '';
  position: absolute;
  right: 16px;
  bottom: 10px;
  left: 16px;
  height: 2px;
  border-radius: 2px;
}

.dashboard-clinical-cockpit .dashboard-detail { margin: 0; }
.dashboard-clinical-cockpit .dashboard-columns-grid { gap: 0; }
.dashboard-clinical-cockpit .dashboard-card {
  border: 0;
  border-radius: 0;
  background: transparent;
}
.dashboard-clinical-cockpit .dashboard-chart-card.dashboard-card-active {
  border: 0;
  box-shadow: none;
}
.dashboard-clinical-cockpit .dashboard-chart-card .card-header {
  padding: 18px 22px;
  background: rgba(255,255,255,.94);
}
.dashboard-clinical-cockpit .dashboard-chart-card .dashboard-list {
  padding: 12px 18px 18px;
}
.dashboard-action-link {
  display: inline-flex;
  margin-top: 8px;
  color: var(--primary-dk);
  font-size: 11px;
  font-weight: 800;
}
.dashboard-compact-hero .dashboard-clinical-scope { display: none; }
.dashboard-item-empty {
  min-height: 78px;
  display: grid;
  place-items: center start;
  color: var(--tx-3);
  font-size: 12px;
}

.dashboard-documents-list {
  gap: 16px;
}

.dashboard-document-section {
  display: grid;
  gap: 10px;
}

.dashboard-document-section + .dashboard-document-section {
  padding-top: 16px;
  border-top: 1px solid rgba(17,19,24,.075);
}

.dashboard-document-section-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 0 4px;
}

.dashboard-document-section-header h3 {
  margin: 0;
  font-size: .96rem;
}

.dashboard-document-section-header .metric-subtext {
  margin: 4px 0 0;
}

.dashboard-document-section-list {
  display: grid;
  gap: 10px;
}

@media (max-width: 700px) {
  .dashboard-clinical-cockpit .dashboard-metrics-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(158px, 1fr));
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
  }
  .dashboard-clinical-cockpit .metric-card {
    min-height: 94px;
    scroll-snap-align: start;
  }
  .dashboard-clinical-cockpit .metric-breakdown-grid {
    display: none;
  }
}

.metric-amber::before { background: #d08b28; }
.metric-amber { background: linear-gradient(135deg, #fff, #fff8e8); }

.medical-follow-up,
.patient-medical-documents {
  margin: 18px 0;
  padding: 20px;
  border: 1px solid rgba(17,19,24,.075);
  border-radius: 12px;
  background: rgba(255,255,255,.82);
  box-shadow: var(--shadow-hairline);
}

.medical-follow-up-header,
.medical-follow-up-actions,
.medical-letter-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.medical-follow-up-header h4,
.patient-medical-documents h3 { margin: 2px 0 4px; }
.medical-follow-up-header p,
.patient-medical-documents p { margin: 0; color: var(--muted); }

.medical-appointment-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 18px 0;
}

.medical-appointment-form label,
.medical-letter-editor > label {
  display: grid;
  gap: 7px;
  font-weight: 750;
}

.medical-appointment-form .medical-appointment-none-option {
  display: flex;
  width: 100%;
  height: 44px;
  box-sizing: border-box;
  flex-direction: row;
  align-items: center;
  align-self: end;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(17,19,24,.1);
  border-radius: 12px;
  background: rgba(255,255,255,.7);
  cursor: pointer;
}

.medical-appointment-form input[type="date"] {
  min-height: 44px;
  box-sizing: border-box;
}

.medical-appointment-none-option input {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  margin: 0;
  accent-color: var(--primary);
}

.coordination-inline-editor.is-no-appointment .medical-appointment-form label:not(.medical-appointment-none-option) {
  opacity: .48;
}

.medical-letter-editor {
  display: grid;
  gap: 14px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(17,19,24,.08);
}

.medical-letter-editor textarea {
  width: 100%;
  min-height: 320px;
  resize: vertical;
  line-height: 1.6;
  font-family: inherit;
}

.medical-letter-actions button:disabled { opacity: .48; cursor: not-allowed; }
.medical-documents-list { display: grid; gap: 10px; margin-top: 16px; }
.medical-document-item {
  border: 1px solid rgba(17,19,24,.08);
  border-radius: 10px;
  background: #fff;
}
.medical-document-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
}
.medical-document-item summary::-webkit-details-marker { display: none; }
.medical-document-item summary span:first-child { display: grid; gap: 3px; }
.medical-document-item summary small { color: var(--muted); }
.medical-document-content { padding: 16px; border-top: 1px solid rgba(17,19,24,.08); line-height: 1.65; }
.medical-letter-print-sheet,
.session-print-sheet { display: none; }

@media (max-width: 700px) {
  .medical-appointment-form { grid-template-columns: 1fr; }
  .medical-follow-up { padding: 16px; }
  .medical-follow-up-actions > button,
  .medical-letter-actions > button { width: 100%; }
  .medical-document-item summary { align-items: flex-start; flex-direction: column; }
}

@media print {
  body.printing-medical-letter .app-shell,
  body.printing-medical-letter .authentication-overlay,
  body.printing-medical-letter .role-selection-overlay,
  body.printing-medical-letter .action-toast { display: none !important; }
  body.printing-medical-letter .medical-letter-print-sheet {
    display: block;
    padding: 18mm 16mm;
    color: #111;
    background: #fff;
    font-family: Arial, sans-serif;
    font-size: 11pt;
    line-height: 1.55;
  }
  .medical-letter-print-sheet header { display: flex; justify-content: space-between; padding-bottom: 10mm; border-bottom: 1px solid #bbb; }
  .medical-letter-print-sheet h1 { margin: 10mm 0 2mm; font-size: 17pt; }
  .medical-print-meta { margin-bottom: 10mm; color: #444; }

  body.printing-session .app-shell,
  body.printing-session .authentication-overlay,
  body.printing-session .role-selection-overlay,
  body.printing-session .action-toast,
  body.printing-session .medical-letter-print-sheet { display: none !important; }
  body.printing-session .session-print-sheet {
    display: block;
    padding: 15mm;
    color: #111;
    background: #fff;
    font-family: Arial, sans-serif;
    font-size: 10.5pt;
    line-height: 1.5;
  }
  .session-print-sheet header { display: flex; justify-content: space-between; padding-bottom: 7mm; border-bottom: 1px solid #bbb; }
  .session-print-sheet h1 { margin: 8mm 0 1mm; font-size: 19pt; }
  .session-print-sheet h2 { margin: 7mm 0 2mm; font-size: 12pt; }
  .session-print-meta { margin: 0 0 8mm; color: #444; }
  .session-print-sheet ul { margin: 0; padding-left: 5mm; }
  .session-print-sheet table { width: 100%; border-collapse: collapse; }
  .session-print-sheet th,
  .session-print-sheet td { padding: 2.5mm 2mm; border-bottom: 1px solid #ddd; text-align: left; vertical-align: top; }
  .session-print-sheet th { color: #444; font-size: 9pt; }
  .session-print-sheet article { margin-top: 3mm; padding: 3mm; border: 1px solid #ddd; border-radius: 2mm; }
  .session-print-sheet article p { margin: 1mm 0 0; }
}

/* Bilan initial : focus compact, vue d’ensemble ouverte uniquement à la demande. */
.initial-assessment-workspace.assessment-guided-draft .assessment-guided-heading strong {
  display: block !important;
}

.initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid > .assessment-step-nav {
  display: none !important;
}

.initial-assessment-workspace.assessment-guided-draft.assessment-overview-open .assessment-progress-hybrid > .assessment-step-nav {
  display: grid !important;
}

.initial-assessment-workspace.assessment-guided-draft .assessment-global-progress-track,
.initial-assessment-workspace.assessment-guided-draft .assessment-footer-step-status {
  display: none !important;
}

.initial-assessment-workspace.assessment-guided-draft:not(.assessment-overview-open) .assessment-guided-progress {
  border-radius: 17px;
}

/* Essai Focus : une seule priorité clinique, sans masquer les sorties du bilan. */
.initial-assessment-workspace.assessment-health-focus-active .initial-assessment-health-priority,
#bilansPanel:not(.initial-assessment-open) .initial-assessment-health-priority,
.initial-assessment-health-priority.hidden {
  display: none !important;
}

body.clinical-focus-active .sidebar-projects,
body.clinical-focus-active #synapseAgentLauncher,
body.clinical-focus-active #mobileSynapseAgentLauncher {
  display: none !important;
}

@media (max-width: 700px) {
  .assessment-block-picker { width: 100%; }
  .assessment-block-picker > summary { width: 100%; justify-content: space-between; }
  .assessment-block-picker > label { width: 100%; }
}

/* Planning clinique — miroir visuel du planning principal */
.icon-calendar { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2h2v3h6V2h2v3h2a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2V2Zm12 8H5v10h14V10ZM7 12h3v3H7v-3Zm5 0h3v3h-3v-3Z'/%3E%3C/svg%3E"); }
.planning-tab { display: flex; flex-direction: column; gap: 18px; }
.planning-page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.planning-page-header h1 { margin: 0 0 6px; font-size: clamp(30px, 4vw, 42px); letter-spacing: -.045em; }
.planning-page-header > div > p:last-child { max-width: 720px; color: var(--tx-3); font-size: 14px; line-height: 1.55; }
.planning-sync-note { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; padding: 8px 11px; border: 1px solid rgba(57,120,255,.16); border-radius: var(--r-full); background: rgba(255,255,255,.8); color: var(--tx-3); font-size: 11px; font-weight: 700; }
.planning-sync-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--primary); }
.planning-toolbar { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 7px 0; border: 0; background: rgba(247,249,252,.94); box-shadow: none; backdrop-filter: blur(14px); }
.planning-date-navigation, .planning-view-switch { display: flex; align-items: center; gap: 6px; }
.planning-date-navigation { position: relative; padding: 3px; border: 1px solid rgba(17,19,24,.07); border-radius: 12px; background: rgba(255,255,255,.86); }
.planning-date-navigation button, .planning-view-switch button { min-height: 34px; padding: 6px 11px; border: 0; border-radius: 9px; background: transparent; color: var(--tx-3); font-size: 12px; font-weight: 750; }
.planning-date-navigation button:hover, .planning-view-switch button:hover { background: rgba(57,120,255,.07); color: var(--primary-dk); }
.planning-date-navigation button:first-child, .planning-date-navigation button:nth-child(3) { width: 32px; padding: 0; color: var(--tx-4); font-size: 21px; }
.planning-date-display { min-width: 150px; color: var(--tx) !important; font-weight: 800 !important; }
.planning-today-shortcut { margin-left: 4px; color: var(--primary-dk) !important; }
.planning-date-input-hidden { position: absolute; top: 50%; left: 50%; width: 1px; height: 1px; margin: 0; padding: 0; overflow: hidden; opacity: 0; pointer-events: none; }
.planning-view-switch { padding: 3px; border: 1px solid rgba(17,19,24,.07); border-radius: 12px; background: rgba(255,255,255,.86); }
.planning-view-switch button.active { border-color: var(--primary); background: var(--primary); color: #fff; }
.planning-surface { overflow: hidden; border: 1px solid rgba(17,19,24,.07); border-radius: 15px; background: rgba(255,255,255,.9); box-shadow: var(--sh-sm); }
.planning-surface-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding: 16px 18px; border-bottom: 1px solid var(--border); }
.planning-surface-header h2 { margin: 0 0 3px; font-size: 17px; }
.planning-surface-header p { color: var(--tx-4); font-size: 11px; }
.planning-surface-header > p { max-width: 430px; text-align: right; }
.planning-calendar { max-height: none; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
.planning-calendar-inner { display: grid; min-width: max-content; }
.planning-corner, .planning-day-header { position: sticky; top: 0; z-index: 8; height: 58px; border-bottom: 1px solid var(--border); background: rgba(248,250,252,.96); backdrop-filter: blur(12px); }
.planning-corner { left: 0; z-index: 10; border-right: 1px solid var(--border); }
.planning-day-header { display: flex; align-items: center; justify-content: center; gap: 7px; border-right: 1px solid var(--border); color: var(--tx-4); text-transform: capitalize; }
.planning-day-header span { font-size: 11px; font-weight: 750; }
.planning-day-header strong { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; color: var(--tx); font-size: 14px; }
.planning-day-header.is-today strong { background: var(--primary); color: #fff; }
.planning-time-axis, .planning-day-lane { position: relative; height: 975px; }
.planning-time-axis { position: sticky; left: 0; z-index: 5; border-right: 1px solid var(--border); background: rgba(255,255,255,.96); }
.planning-time-axis span { position: absolute; right: 9px; transform: translateY(-7px); color: var(--tx-4); font-size: 10px; font-weight: 700; }
.planning-day-lane { position: relative; min-width: 190px; border-right: 1px solid var(--border); background: repeating-linear-gradient(to bottom, transparent 0, transparent 38px, rgba(17,19,24,.055) 39px); cursor: crosshair; transition: background-color var(--dur-fast); }
.planning-day-lane.is-today { background-color: rgba(57,120,255,.025); }
.planning-day-lane.is-drop-target { background-color: rgba(57,120,255,.09); box-shadow: inset 0 0 0 2px rgba(57,120,255,.28); }
.planning-day-lane.is-slot-preview::after { content: "+  " var(--planning-slot-preview-time) " · Ajouter"; position: absolute; z-index: 2; top: var(--planning-slot-preview-top); left: 5px; right: 5px; height: 35px; display: flex; align-items: center; justify-content: center; border: 1px dashed rgba(57,120,255,.48); border-radius: 7px; background: rgba(235,243,255,.88); color: var(--primary-dk); font-size: 10px; font-weight: 800; pointer-events: none; }
.planning-appointment { position: absolute; z-index: 3; left: 5px; width: calc(100% - 10px); display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 1px 7px; overflow: hidden; padding: 4px 8px; border: 1px solid rgba(57,120,255,.2); border-left: 3px solid var(--primary); border-radius: 7px; background: linear-gradient(135deg, #fff, #edf5ff); color: var(--tx); text-align: left; box-shadow: 0 3px 9px rgba(15,23,42,.07); cursor: pointer; }
.planning-appointment:hover { z-index: 5; border-color: rgba(57,120,255,.45); box-shadow: 0 6px 16px rgba(15,23,42,.12); transform: translateY(-1px); }
.planning-appointment.is-dragging { opacity: .45; }
.planning-appointment-time { color: var(--primary-dk); font-size: 10px; font-weight: 850; }
.planning-appointment strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.planning-appointment-note { grid-column: 2; overflow: hidden; color: var(--tx-4); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.planning-appointment-kind { color: var(--tx-4); font-size: 8px; font-weight: var(--fw-b); text-transform: uppercase; }
.planning-appointment-done { border-left-color: var(--clr-ok-500); background: linear-gradient(135deg, #fff, #f0fdf4); cursor: pointer; opacity: .78; }
.planning-appointment-first { border-left-color: #f59e0b; background: linear-gradient(135deg, #fff, #fffbeb); }
.planning-new-patient-dot { position: absolute; top: 4px; right: 4px; width: 6px; height: 6px; border-radius: 50%; background: #f59e0b; }
.planning-now-line { position: absolute; z-index: 6; left: 0; right: 0; height: 2px; background: #ef4444; pointer-events: none; }
.planning-now-line::before { content: ''; position: absolute; left: -4px; top: -3px; width: 8px; height: 8px; border-radius: 50%; background: #ef4444; }
.planning-now-line span { position: absolute; right: 4px; top: -18px; padding: 2px 5px; border-radius: 5px; background: #ef4444; color: #fff; font-size: 9px; font-weight: 850; }

@media (max-width: 900px) {
  .planning-page-header, .planning-surface-header { align-items: flex-start; flex-direction: column; }
  .planning-surface-header > p { text-align: left; }
  .planning-toolbar { align-items: stretch; flex-direction: column; }
  .planning-date-navigation { flex-wrap: wrap; }
  .planning-view-switch { display: grid; grid-template-columns: repeat(3, 1fr); }
  .planning-sync-note { align-self: flex-start; }
  .planning-calendar { max-height: none; overflow-x: auto; overflow-y: hidden; }
}

/* Repères de navigation stables */
.topbar .live-patient-navigator { width: 310px; flex: 0 0 310px; }
.topbar .live-patient-access { flex: 1; min-width: 0; }
.live-patient-access[data-state="empty"] { background: rgba(255,255,255,.62); opacity: .72; }
.live-patient-access[data-state="empty"] .live-patient-indicator { background: var(--tx-4); }
.dashboard-clinical-scope { display: flex; align-items: center; justify-content: flex-end; gap: 12px; min-height: 38px; }
.dashboard-clinical-scope > span { color: var(--tx-4); font-size: 10px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.dashboard-clinical-scope .header-filters { padding: 3px; border: 1px solid rgba(17,19,24,.07); border-radius: 11px; background: rgba(255,255,255,.72); }
.dashboard-clinical-scope .dashboard-session-filter { border: 0; background: transparent; }
.dashboard-clinical-scope .dashboard-session-filter.active { background: var(--primary); color: #fff; }

@media (max-width: 700px) {
  .topbar-search { display: none; }
  .topbar-actions { width: 100%; }
  .topbar .live-patient-navigator { width: auto; flex: 1 1 auto; }
  .dashboard-clinical-scope { align-items: flex-start; flex-direction: column; }
  .dashboard-clinical-scope .header-filters { width: 100%; overflow-x: auto; }
  .dashboard-clinical-scope .dashboard-session-filter { flex: 1 0 auto; }
}

/* ══════════════════════════════════════════════════════
   §30  PREMIUM POLISH — LINEAR-INSPIRED APPLICATION SKIN
   Objectif : moins de contours, plus de hiérarchie, lecture clinique rapide.
   ══════════════════════════════════════════════════════ */
:root {
  --bg: #fbfbfc;
  --surface-2: #fafafa;
  --surface-3: #f4f4f5;
  --border: rgba(17, 24, 39, .08);
  --border-s: rgba(17, 24, 39, .14);
  --primary: #5865d8;
  --primary-bg: rgba(88, 101, 216, .08);
  --error: #d92d20;
  --sb-bg: #111318;
  --sb-active: rgba(255,255,255,.075);
  --sh-xs: none;
  --sh-sm: none;
  --sh-md: 0 8px 24px rgba(15, 23, 42, .055);
}

body {
  background:
    radial-gradient(circle at 20% -10%, rgba(88,101,216,.06), transparent 34%),
    var(--bg);
}

.main-content {
  padding: 40px 52px;
}

.section-kicker {
  font-size: 10px;
  font-weight: var(--fw-b);
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--tx-4);
  margin: 0 0 6px;
}

.dashboard-assistant-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 32px;
  align-items: end;
  margin-bottom: 34px;
}

.dashboard-assistant-copy h1 {
  font-size: 34px;
  letter-spacing: -.045em;
  margin-bottom: 10px;
}

.dashboard-assistant-copy p:last-child {
  max-width: 560px;
}

.dashboard-today-strip {
  display: grid;
  grid-template-columns: repeat(3, auto);
  gap: 24px;
  align-items: end;
  padding: 0 2px 3px;
}

.dashboard-today-stat {
  min-width: 92px;
}

.dashboard-today-value {
  display: block;
  font-size: 28px;
  line-height: 1;
  font-weight: var(--fw-eb);
  letter-spacing: -.04em;
}

.dashboard-today-label {
  display: block;
  margin-top: 6px;
  font-size: 11px;
  color: var(--tx-4);
  white-space: nowrap;
}

.dashboard-today-stat-alert .dashboard-today-value {
  color: var(--error);
}

.dashboard-metrics-grid {
  margin-bottom: 28px;
}

.workday-planner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: end;
  margin: -12px 0 28px;
  padding: 18px 0;
  border-top: 1px solid rgba(17,24,39,.06);
  border-bottom: 1px solid rgba(17,24,39,.06);
}

.workday-planner h2 {
  font-size: 17px;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin-bottom: 4px;
}

.workday-planner p:not(.section-kicker) {
  font-size: 12px;
}

.workday-planner-actions {
  display: flex;
  gap: 10px;
}

.workday-planner-actions label {
  font-size: 11px;
  font-weight: var(--fw-b);
  color: var(--tx-4);
  text-transform: uppercase;
  letter-spacing: .06em;
}

.workday-planner-actions input[type="date"] {
  min-height: 36px;
  border: 1px solid rgba(17,24,39,.1);
  border-radius: 999px;
  background: #fff;
  padding: 0 12px;
  font-size: 12px;
  color: var(--tx-2);
}

.settings-backup-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}

.settings-backup-actions input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.install-app-card {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
}

.install-app-identity img {
  width: 48px;
  height: 48px;
  border-radius: 13px;
  box-shadow: 0 8px 18px rgba(72,86,192,.2);
}

.install-app-copy {
  min-width: 0;
}

.install-app-copy p {
  margin-top: 3px;
}

@media (max-width: 560px) {
  .install-app-card {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .install-app-identity img {
    width: 44px;
    height: 44px;
    border-radius: 12px;
  }

  .install-app-card .primary-btn {
    grid-column: 1 / -1;
    width: 100%;
  }
}

@media (display-mode: standalone) {
  .topbar {
    padding-top: env(safe-area-inset-top);
  }

  .main-content {
    padding-left: max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
  }
}

.secondary-file-btn {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(17,24,39,.1);
  border-radius: 999px;
  background: #fff;
  color: var(--tx-2);
  padding: 0 14px;
  font-size: 12px;
  font-weight: var(--fw-sb);
  cursor: pointer;
}

.secondary-file-btn:hover {
  color: var(--primary);
  border-color: rgba(88,101,216,.24);
}

.metric-card {
  border: 0;
  border-radius: 16px;
  background: rgba(255,255,255,.72);
  box-shadow: none;
}

.metric-card::before,
.metric-card.metric-card-active::after {
  display: none;
}

.metric-card h2 {
  letter-spacing: -.045em;
}

.metric-card.metric-card-active {
  background: #fff;
  border-color: transparent;
  box-shadow: 0 0 0 1px rgba(88,101,216,.16), 0 18px 44px rgba(15,23,42,.075);
}

.dashboard-card,
.patient-list-card,
.library-card,
.patient-summary-card,
.card {
  border: 0;
  box-shadow: none;
  background: transparent;
}

.dashboard-chart-card .card-header,
.patient-list-card .card-header {
  padding: 0 0 14px;
  border-bottom: 1px solid rgba(17,24,39,.06);
  background: transparent;
}

.dashboard-chart-card .dashboard-list {
  padding: 12px 0 0;
  gap: 0;
}

.dashboard-item {
  border: 0;
  border-radius: 0;
  padding: 14px 4px;
  border-bottom: 1px solid rgba(17,24,39,.06);
}

.dashboard-item.clickable:hover {
  transform: none;
  box-shadow: none;
  background: rgba(88,101,216,.045);
  border-color: rgba(17,24,39,.06);
}

.dashboard-item-priority-high {
  border-left: 0;
}

.dashboard-item-priority-high .dashboard-item-title::before {
  content: '';
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--error);
  margin-right: 8px;
  vertical-align: 1px;
}

.patient-summary-card {
  padding: 0;
  margin-bottom: 18px;
}

.summary-card {
  justify-content: flex-start;
}

.summary-card h2 {
  font-size: 30px;
  letter-spacing: -.045em;
}

.search-panel {
  max-width: 360px;
  margin-bottom: 28px;
}

.search-panel label {
  color: var(--tx-4);
}

.patient-list-surface {
  max-width: 940px;
}

.patient-card-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.clinical-patient-row {
  width: 100%;
  display: grid;
  grid-template-columns: 42px minmax(180px, 1.45fr) minmax(130px, .8fr) minmax(130px, .8fr) 88px 20px;
  gap: 16px;
  align-items: center;
  text-align: left;
  padding: 17px 4px;
  border-bottom: 1px solid rgba(17,24,39,.06);
  color: var(--tx);
  font-family: var(--font);
  transition: background var(--dur-fast), padding var(--dur-fast);
}

.clinical-patient-row:hover {
  background: rgba(88,101,216,.045);
}

.clinical-patient-row-test-one {
  grid-template-columns: 42px minmax(0, 1fr) 20px;
}

.clinical-patient-row-test-one .clinical-patient-arrow {
  justify-self: end;
}

.clinical-patient-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--primary-bg);
  color: var(--primary);
  font-size: 12px;
  font-weight: var(--fw-b);
}

.clinical-patient-main,
.clinical-patient-meta,
.clinical-patient-score {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.clinical-patient-main strong {
  font-size: 14px;
  font-weight: var(--fw-sb);
}

.prototype-patient-badge {
  display: inline-flex;
  width: fit-content;
  margin-left: 8px;
  padding: 3px 7px;
  border-radius: var(--r-full);
  background: rgba(var(--primary-rgb), .1);
  color: var(--primary-dk);
  font-size: 8px;
  font-style: normal;
  font-weight: var(--fw-b);
  letter-spacing: .05em;
  line-height: 1.2;
  text-transform: uppercase;
  vertical-align: middle;
}

.detail-title-line { display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap; }
.prototype-patient-badge-detail { margin-left: 0; font-size: 9px; }

.prototype-progression {
  margin-top: var(--s4);
  padding: clamp(18px, 2.5vw, 28px);
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: var(--r-xl);
  background:
    radial-gradient(circle at 12% 0%, rgba(var(--primary-rgb), .11), transparent 240px),
    linear-gradient(145deg, rgba(255,255,255,.96), rgba(238,246,255,.78));
  box-shadow: 0 18px 46px rgba(32, 42, 90, .08);
}

.prototype-progression-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s5); }
.prototype-progression-heading h4 { margin: 4px 0; font-size: clamp(20px, 2.2vw, 28px); }
.prototype-progression-heading p { color: var(--tx-3); font-size: 12px; }
.prototype-progression-score { display: grid; grid-template-columns: auto auto; align-items: baseline; min-width: 118px; }
.prototype-progression-score strong { color: var(--primary-dk); font-size: 46px; line-height: 1; }
.prototype-progression-score > span { color: var(--tx-3); font-size: 15px; }
.prototype-progression-score small { grid-column: 1 / -1; margin-top: 4px; color: var(--tx-4); font-size: 9px; text-transform: uppercase; letter-spacing: .05em; }
.prototype-progression-score .synapse-trajectory-context {
  display: flex;
  grid-column: 1 / -1;
  width: fit-content;
  max-width: 100%;
  align-items: center;
  gap: 4px;
  margin-top: 3px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--tx-3);
  text-align: left;
}
.prototype-progression-score .synapse-trajectory-context::before {
  width: 4px;
  height: 4px;
  flex: 0 0 4px;
  border-radius: 50%;
  background: rgba(var(--primary-rgb), .48);
  content: '';
}
.prototype-progression-score .synapse-trajectory-context strong {
  color: var(--tx-3);
  font-size: 9px;
  font-weight: 650;
  line-height: 1.3;
}
.prototype-progression-score .synapse-trajectory-context small {
  display: none;
}
.prototype-progression-score .synapse-trajectory-context.synapse-trajectory-favorable,
.prototype-progression-score .synapse-trajectory-context.synapse-trajectory-variable,
.prototype-progression-score .synapse-trajectory-context.synapse-trajectory-attention {
  background: transparent;
}
.prototype-chart-period {
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  gap: 10px;
  margin: 12px 0 8px;
}
.prototype-chart-period > span {
  flex: 0 0 auto;
  color: var(--tx-4);
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.prototype-chart-period > div {
  display: flex;
  flex: 1 1 auto;
  max-width: 100%;
  min-width: 0;
  padding: 3px;
  gap: 3px;
  overflow-x: auto;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: var(--r-full);
  background: rgba(var(--primary-rgb), .045);
  scrollbar-width: none;
}
.prototype-chart-period > div::-webkit-scrollbar { display: none; }
.prototype-chart-period button {
  flex: 0 0 auto;
  min-height: 29px;
  padding: 5px 11px;
  border: 0;
  border-radius: var(--r-full);
  background: transparent;
  color: var(--tx-3);
  font: 700 9px/1.2 var(--font);
  cursor: pointer;
  white-space: nowrap;
}
.prototype-chart-period button:hover,
.prototype-chart-period button:focus-visible { outline: none; background: rgba(255, 255, 255, .72); color: var(--primary-dk); }
.prototype-chart-period button[aria-pressed="true"] {
  background: #fff;
  color: var(--primary-dk);
  box-shadow: 0 4px 12px rgba(54, 63, 132, .12);
}
.prototype-chart-period button:disabled {
  color: var(--tx-4);
  cursor: not-allowed;
  opacity: .56;
}
.prototype-chart-period button:disabled:hover { background: transparent; color: var(--tx-4); }
.prototype-progression-layout { display: grid; width: 100%; min-width: 0; grid-template-columns: minmax(0, 1.7fr) minmax(220px, .7fr); gap: var(--s4); margin-top: var(--s5); }
.prototype-chart-shell, .prototype-activity-summary { border: 1px solid rgba(17, 19, 24, .07); border-radius: var(--r-lg); background: rgba(255,255,255,.72); }
.prototype-chart-shell { min-width: 0; padding: var(--s3); }
.prototype-chart { display: block; width: 100%; height: clamp(250px, 34vw, 330px); }
.prototype-chart.has-phase-axis { height: calc(clamp(250px, 34vw, 330px) + var(--phase-axis-extra, 30px)); }
.prototype-chart-legend { display: flex; justify-content: flex-start; gap: var(--s4); padding: 4px var(--s2) 8px; color: var(--tx-3); font-size: 10px; font-weight: 650; }
.prototype-chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.prototype-chart-legend i { display: inline-block; width: 18px; border-top: 3px solid var(--primary); }
.prototype-chart-legend .legend-measured { width: 6px; height: 6px; border: 0; border-radius: 50%; background: rgba(var(--primary-rgb), .66); }
.prototype-chart-legend .legend-assessment { width: 13px; height: 13px; border: 3px solid #6d67d7; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px rgba(109,103,215,.1); }
.prototype-chart-legend .legend-target { width: 18px; height: 8px; border: 1px solid rgba(123,118,220,.28); border-radius: 4px; background: rgba(123,118,220,.13); }
.prototype-chart-legend .legend-milestone { width: 13px; height: 13px; border: 3px solid #6d67d7; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px rgba(109,103,215,.1); }
.prototype-chart-legend .legend-goal { width: 13px; height: 13px; border: 3px solid #fff; border-radius: 50%; background: #e58a55; box-shadow: 0 0 0 3px rgba(229,138,85,.14); }
.prototype-chart-legend .legend-phases { width: 18px; height: 8px; border: 0; border-radius: 3px; background: linear-gradient(90deg, rgba(var(--primary-rgb), .2) 0 25%, rgba(52,145,127,.18) 25% 50%, rgba(226,151,82,.18) 50% 75%, rgba(147,112,196,.17) 75%); }
.prototype-chart-phase-background { pointer-events: none; }
.prototype-chart-phase-background[data-trajectory-period] { pointer-events: visiblePainted; cursor: zoom-in; }
.prototype-progression.is-phase-period .prototype-chart-phase-background[data-trajectory-period] { cursor: default; }
.prototype-chart-phase-background rect { stroke: none; }
.prototype-chart-phase-background line { stroke-width: 1; vector-effect: non-scaling-stroke; }
.prototype-chart-phase-background.phase-tone-1 rect { fill: rgba(var(--primary-rgb), .055); }
.prototype-chart-phase-background.phase-tone-1 line { stroke: rgba(var(--primary-rgb), .13); }
.prototype-chart-phase-background.phase-tone-2 rect { fill: rgba(52,145,127,.05); }
.prototype-chart-phase-background.phase-tone-2 line { stroke: rgba(52,145,127,.12); }
.prototype-chart-phase-background.phase-tone-3 rect { fill: rgba(226,151,82,.052); }
.prototype-chart-phase-background.phase-tone-3 line { stroke: rgba(190,116,53,.12); }
.prototype-chart-phase-background.phase-tone-4 rect { fill: rgba(147,112,196,.048); }
.prototype-chart-phase-background.phase-tone-4 line { stroke: rgba(147,112,196,.12); }
.prototype-chart-grid { stroke: rgba(17, 19, 24, .12); stroke-width: 1; }
.prototype-chart-axis-label, .prototype-chart-date { fill: var(--tx-4); font: 10px var(--font); }
.prototype-chart-time-axis-line { stroke: var(--tx-2); stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.prototype-chart-time-axis-tick { stroke: var(--tx-3); stroke-width: 2; vector-effect: non-scaling-stroke; }
.prototype-chart-time-axis-date { fill: var(--tx-2); font: 700 11px var(--font); }
.prototype-chart-phase-axis-label { fill: var(--tx-3); font: 800 10px var(--font); letter-spacing: .09em; }
.prototype-chart-phase-band { cursor: pointer; outline: none; }
.prototype-chart-phase-band rect { fill: rgba(var(--primary-rgb), .12); stroke: rgba(var(--primary-rgb), .22); stroke-width: 1; vector-effect: non-scaling-stroke; }
.prototype-chart-phase-band text { fill: var(--primary-dk); font: 800 11px var(--font); letter-spacing: .01em; pointer-events: none; }
.prototype-chart-phase-band.phase-tone-1 rect { fill: rgba(var(--primary-rgb), .12); stroke: rgba(var(--primary-rgb), .22); }
.prototype-chart-phase-band.phase-tone-2 rect { fill: rgba(86,178,158,.13); stroke: rgba(52,145,127,.22); }
.prototype-chart-phase-band.phase-tone-3 rect { fill: rgba(226,151,82,.13); stroke: rgba(190,116,53,.22); }
.prototype-chart-phase-band.phase-tone-4 rect { fill: rgba(147,112,196,.12); stroke: rgba(125,90,176,.2); }
.prototype-chart-phase-band:hover rect,
.prototype-chart-phase-band:focus rect { fill: rgba(var(--primary-rgb), .22); stroke: var(--primary); stroke-width: 2; }
.prototype-chart-phase-band:focus-visible rect { filter: drop-shadow(0 0 4px rgba(var(--primary-rgb), .28)); }
.prototype-chart-target-band { fill: rgba(123,118,220,.11); stroke: none; }
.prototype-chart-target { fill: none; stroke: rgba(123,118,220,.58); stroke-width: 1.6; stroke-dasharray: 6 8; stroke-linecap: round; stroke-linejoin: round; }
.prototype-chart-measured { fill: none; stroke: rgba(var(--primary-rgb), .72); stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; }
.prototype-progression.is-phase-period .prototype-chart-target {
  stroke: rgba(118, 112, 208, .72);
  stroke-width: 2.2;
  stroke-dasharray: 7 7;
}
.prototype-progression.is-phase-period .prototype-chart-measured {
  stroke: var(--primary);
  stroke-width: 3.4;
  stroke-dasharray: none;
  stroke-linecap: round;
}
.prototype-chart-legend .legend-mechanical-planned {
  width: 20px;
  border-top: 2px dashed rgba(118, 112, 208, .78);
}
.prototype-chart-legend .legend-mechanical-actual {
  width: 20px;
  border-top: 3px solid var(--primary);
}
.prototype-phase-zoom-navigation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 12px 0 0;
}
.prototype-phase-zoom-back {
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 10px;
  background: rgba(255,255,255,.76);
  color: var(--primary-dk);
  font: 750 10px/1.2 var(--font);
  cursor: pointer;
}
.prototype-phase-zoom-back:hover,
.prototype-phase-zoom-back:focus-visible { border-color: var(--primary); background: rgba(var(--primary-rgb), .08); outline: none; }
.prototype-phase-zoom-navigation p { display: flex; align-items: baseline; gap: 7px; margin: 0; color: var(--tx-4); font-size: 9px; }
.prototype-phase-zoom-navigation p strong { color: var(--tx-2); font-size: 10px; }
.prototype-phase-subobjectives {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 10px 16px;
  margin-top: 10px;
  padding: 10px 0;
  border-block: 1px solid rgba(var(--primary-rgb), .1);
}
.prototype-phase-subobjectives > span { padding-top: 2px; color: var(--primary-dk); font-size: 9px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.prototype-phase-subobjectives ul { display: flex; flex-wrap: wrap; gap: 5px 14px; margin: 0; padding: 0; list-style: none; }
.prototype-phase-subobjectives li { position: relative; padding-left: 10px; color: var(--tx-3); font-size: 9px; line-height: 1.45; }
.prototype-phase-subobjectives li::before { position: absolute; top: .55em; left: 0; width: 4px; height: 4px; border-radius: 50%; background: rgba(var(--primary-rgb), .55); content: ''; }
.prototype-chart-phase-note { margin: 8px 2px 0; color: var(--tx-4); font-size: 9px; line-height: 1.45; }
.prototype-chart-measured-dot { fill: rgba(var(--primary-rgb), .68); stroke: rgba(255,255,255,.92); stroke-width: 1.5; transition: r .16s ease, fill .16s ease, stroke-width .16s ease; }
.prototype-progression.is-phase-period .prototype-chart-measured-point.is-session-measurement .prototype-chart-measured-dot {
  fill: var(--primary);
  stroke: #fff;
  stroke-width: 2;
  filter: drop-shadow(0 1px 2px rgba(52,61,140,.2));
}
.prototype-chart-major-halo { fill: rgba(109,103,215,.11); stroke: rgba(109,103,215,.08); stroke-width: 1; pointer-events: none; transition: fill .16s ease, stroke .16s ease; }
.prototype-chart-measured-point.is-key-measurement .prototype-chart-measured-dot { fill: #fff; stroke: #5f5ac9; stroke-width: 4; filter: drop-shadow(0 3px 5px rgba(var(--primary-rgb), .25)); }
.prototype-progression.is-dense-complete .prototype-chart-measured-point.is-session-measurement .prototype-chart-measured-dot { opacity: .2; }
.prototype-progression.is-dense-complete .prototype-chart-measured-point.is-session-measurement:focus .prototype-chart-measured-dot,
.prototype-progression.is-dense-complete .prototype-chart-measured-point.is-session-measurement.is-active .prototype-chart-measured-dot { opacity: 1; }
.prototype-chart-below-target-ring { fill: none; stroke: rgba(214,149,82,.88); stroke-width: 2; filter: drop-shadow(0 2px 3px rgba(170,104,43,.14)); }
.prototype-chart-measured-point.is-below-target-band:focus .prototype-chart-below-target-ring,
.prototype-chart-measured-point.is-below-target-band.is-active .prototype-chart-below-target-ring { stroke: #c77f3d; stroke-width: 3; }
.prototype-chart-milestone-guide { stroke: rgba(109,103,215,.44); stroke-width: 3; stroke-dasharray: 4 5; }
.prototype-chart-milestone .prototype-chart-major-halo { fill: rgba(109,103,215,.12); }
.prototype-chart-milestone .prototype-chart-milestone-dot { fill: #fff; stroke: #5f5ac9; stroke-width: 4; filter: drop-shadow(0 4px 6px rgba(74,67,163,.24)); }
.prototype-chart-milestone text { fill: #5f5ac9; font: 850 11px var(--font); pointer-events: none; }
.prototype-chart-milestone .prototype-chart-milestone-caption,
.prototype-chart-milestone .prototype-chart-milestone-date,
.prototype-chart-goal .prototype-chart-goal-label,
.prototype-chart-goal .prototype-chart-goal-date { paint-order: stroke; stroke: rgba(255,255,255,.92); stroke-width: 4px; stroke-linejoin: round; }
.prototype-chart-milestone .prototype-chart-milestone-caption { fill: var(--tx); font: 850 10.5px var(--font); }
.prototype-chart-milestone .prototype-chart-milestone-date { fill: var(--tx-2); font: 750 9px var(--font); }
.prototype-chart-goal-guide { stroke: rgba(229,138,85,.42); stroke-width: 2.5; stroke-dasharray: 3 6; }
.prototype-chart-goal .prototype-chart-major-halo { fill: rgba(229,138,85,.15); stroke: rgba(229,138,85,.1); }
.prototype-chart-goal .prototype-chart-goal-dot { fill: #e58a55; stroke: #fff; stroke-width: 4; filter: drop-shadow(0 4px 6px rgba(143,77,40,.24)); }
.prototype-chart-goal text { fill: #fff; font: 850 10px var(--font); pointer-events: none; }
.prototype-chart-goal .prototype-chart-goal-label { fill: #944722; font: 900 11px var(--font); }
.prototype-chart-goal .prototype-chart-goal-date { fill: #76513d; font: 800 9px var(--font); }
.prototype-chart-goal.is-completed .prototype-chart-goal-dot { fill: #8bb8aa; }
.prototype-patient-milestones { margin: 0 var(--s2) var(--s2); padding: 12px 13px; border: 1px solid rgba(210,143,42,.22); border-radius: var(--r-lg); background: rgba(255,248,234,.72); }
.prototype-patient-milestones-heading { display: flex; align-items: baseline; justify-content: space-between; gap: var(--s3); }
.prototype-patient-milestones-heading > strong { color: var(--tx-2); font-size: 10px; line-height: 1.35; text-align: right; }
.prototype-patient-milestones ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin: 10px 0 0; padding: 0; list-style: none; }
.prototype-patient-milestones li { min-width: 0; }
.prototype-shared-journey-step {
  display: grid;
  width: 100%;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  min-width: 0;
  padding: 6px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
}
button.prototype-shared-journey-step { cursor: pointer; }
button.prototype-shared-journey-step:hover,
button.prototype-shared-journey-step:focus-visible {
  border-color: rgba(var(--primary-rgb), .24);
  background: rgba(255,255,255,.74);
  outline: none;
}
.prototype-shared-journey-marker { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 7px; background: var(--syn-amber-500); color: #fff; font-size: 10px; font-weight: var(--fw-eb); }
.prototype-shared-journey li.is-assessment .prototype-shared-journey-marker { background: #7456c8; }
.prototype-shared-journey li.is-goal .prototype-shared-journey-marker { background: #e17b4d; }
.prototype-shared-journey li.is-milestone .prototype-shared-journey-marker { background: #22a99a; }
.prototype-shared-journey-step > div { display: grid; min-width: 0; gap: 2px; }
.prototype-shared-journey-open { color: var(--primary); font-size: 13px; font-weight: var(--fw-eb); }
.prototype-patient-milestones li strong { color: var(--tx); font-size: 9px; line-height: 1.3; }
.prototype-patient-milestones li small { color: var(--tx-3); font-size: 8px; }
.prototype-patient-milestones > p { margin-top: 9px; color: var(--tx-3); font-size: 8px; line-height: 1.4; }
.prototype-activity-summary { padding: var(--s4); }
.prototype-activity-summary h5 { margin: 4px 0 var(--s3); font-size: 14px; }
.prototype-activity-totals { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s2); }
.prototype-activity-totals > div { padding: var(--s3); border-radius: var(--r-md); background: var(--surface-2); }
.prototype-activity-totals strong { display: block; color: var(--tx); font-size: 25px; line-height: 1; }
.prototype-activity-totals strong small { color: var(--tx-4); font-size: 12px; }
.prototype-activity-totals span { color: var(--tx-3); font-size: 10px; }
.prototype-activity-bars { display: flex; align-items: flex-end; justify-content: space-between; gap: 7px; height: 92px; margin: var(--s4) 0 var(--s3); }
.prototype-activity-period { display: grid; justify-items: center; gap: 5px; height: 100%; flex: 1; color: var(--tx-4); font-size: 8px; }
.prototype-activity-bar { display: flex; align-items: flex-end; justify-content: center; gap: 3px; width: 100%; height: 70px; padding: 3px; border-radius: 6px; background: rgba(17,19,24,.05); }
.prototype-activity-bar b { width: 7px; min-height: 3px; border-radius: 4px 4px 2px 2px; }
.prototype-activity-cabinet { background: var(--primary); }
.prototype-activity-autonomy { background: var(--success); }
.prototype-activity-summary > p { color: var(--tx-4); font-size: 9px; line-height: 1.45; }
.prototype-milestone-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s2); margin-top: var(--s4); }
.prototype-milestone-list > span { display: grid; grid-template-columns: 12px 1fr; column-gap: 7px; padding: var(--s3); border-radius: var(--r-md); background: rgba(255,255,255,.72); }
.prototype-milestone-list i { width: 9px; height: 9px; margin-top: 3px; background: var(--syn-amber-500); transform: rotate(45deg); }
.prototype-milestone-list strong, .prototype-milestone-list small { grid-column: 2; }
.prototype-milestone-list strong { font-size: 10px; }
.prototype-milestone-list small { margin-top: 2px; color: var(--tx-4); font-size: 8px; }
.prototype-progression-disclaimer { margin-top: var(--s3); color: var(--tx-4); font-size: 9px; line-height: 1.5; }
.prototype-chart-range-note { margin: 6px 0 0; color: var(--tx-4); font-size: 9px; line-height: 1.45; }

@media (max-width: 820px) {
  .prototype-progression-layout { grid-template-columns: 1fr; }
  .prototype-chart { min-width: 0; min-height: 170px; }
  .prototype-chart-shell { overflow: hidden; }
  .prototype-chart-legend { justify-content: flex-start; flex-wrap: wrap; }
}

@media (max-width: 560px) {
  .prototype-progression-heading { flex-direction: column; }
  .prototype-progression-score { min-width: 0; }
  .prototype-milestone-list { grid-template-columns: 1fr; }
  .prototype-patient-badge { display: block; margin: 4px 0 0; }
}

/* Charlotte Prototype — cockpit d'évolution compact et interactif */
.prototype-progression-compact { margin-top: 0; padding: 20px; }
.patient-progression-view.prototype-progression-compact {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.prototype-cockpit-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px 18px;
}
.prototype-current-phase {
  display: grid;
  align-content: center;
  min-width: 0;
  padding: 11px 14px;
  border-left: 3px solid rgba(var(--primary-rgb), .58);
  border-radius: 0 13px 13px 0;
  background: linear-gradient(90deg, rgba(var(--primary-rgb), .09), rgba(var(--primary-rgb), .025) 72%, transparent);
}
.prototype-current-phase small { color: var(--primary); font-size: 9px; font-weight: 800; letter-spacing: .065em; text-transform: uppercase; }
.prototype-current-phase h3 { max-width: 34ch; margin: 5px 0 0; color: var(--tx); font-size: clamp(22px, 2.5vw, 30px); font-weight: var(--fw-eb); letter-spacing: -.035em; line-height: 1.13; overflow-wrap: anywhere; text-wrap: balance; }
.prototype-progression-score-soft {
  padding: 10px 12px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 13px;
  background: rgba(var(--primary-rgb), .055);
}
.prototype-cockpit-title h4 { margin: 3px 0; font-size: clamp(19px, 2vw, 25px); }
.prototype-cockpit-title > p { color: var(--tx-3); font-size: 11px; }
.prototype-cockpit-title .prototype-next-objective-title { color: var(--primary); }
.prototype-next-objective-timing { margin-right: 7px; color: var(--primary-2); font-variant-numeric: tabular-nums; }
.patient-progression-view .rehabilitation-phase-summary { gap: 6px; margin: 0; max-width: 760px; }
.patient-progression-view .rehabilitation-phase-summary > h3 { margin: 0; color: var(--primary-dk); font-size: clamp(25px, 3vw, 34px); font-weight: var(--fw-eb); letter-spacing: -.035em; line-height: 1.05; }
.patient-progression-view .rehabilitation-phase-summary > p { max-width: 680px; font-size: 12px; line-height: 1.5; }
.patient-progression-view .rehabilitation-phase-summary > .rehabilitation-phase-description { color: var(--tx); font-size: 15px; font-weight: var(--fw-b); }
.patient-progression-view .rehabilitation-next-objective { display: flex; align-items: baseline; flex-wrap: wrap; gap: 7px; margin-top: 5px; color: var(--primary-dk); }
.patient-progression-view .rehabilitation-next-objective > span { color: var(--tx-4); font-size: 11px; font-weight: var(--fw-b); font-variant-numeric: tabular-nums; }
.patient-progression-view .rehabilitation-next-objective > strong { color: var(--primary); font-size: 13px; line-height: 1.4; }
.prototype-final-objective {
  display: grid;
  gap: 2px;
  margin-top: 8px;
  padding: 9px 11px;
  border-left: 3px solid var(--primary);
  border-radius: 0 9px 9px 0;
  background: linear-gradient(90deg, rgba(var(--primary-rgb), .1), rgba(255,255,255,.48));
}
.prototype-final-objective > span { color: var(--primary-dk); font-size: 7px; font-weight: var(--fw-b); letter-spacing: .08em; text-transform: uppercase; }
.prototype-final-objective > strong { color: var(--tx); font-size: 14px; line-height: 1.25; }
.prototype-final-objective > small { color: var(--tx-4); font-size: 8px; }
.prototype-timeline-zoom {
  margin-top: 10px;
  padding: 9px 11px;
  border: 1px solid rgba(17, 19, 24, .07);
  border-radius: 10px;
  background: rgba(255, 255, 255, .68);
}
.prototype-timeline-zoom > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.prototype-timeline-zoom > header strong { display: block; color: var(--tx-2); font-size: 11px; }
.prototype-timeline-zoom > header small { display: block; margin-top: 2px; color: var(--tx-4); font-size: 8px; }
.prototype-progression-compact .prototype-progression-layout {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  margin-top: 12px;
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: var(--r-lg);
  background: linear-gradient(155deg, rgba(248, 249, 255, .98), rgba(255, 255, 255, .88));
  box-shadow: 0 18px 40px rgba(64, 70, 137, .09);
}
.prototype-progression-compact .prototype-chart-shell {
  padding: 14px 18px 8px;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.prototype-progression-compact .prototype-chart { min-height: 270px; }
.prototype-progression-compact .prototype-chart-legend { gap: 16px; padding: 0 4px 8px; }
.prototype-chart-interactive { cursor: pointer; outline: none; }
.prototype-chart-hit-area { fill: transparent; }
.prototype-chart-interactive:focus .prototype-chart-measured-dot,
.prototype-chart-interactive.is-active .prototype-chart-measured-dot {
  fill: var(--primary);
  stroke: #fff;
  stroke-width: 4;
  filter: drop-shadow(0 0 7px rgba(var(--primary-rgb), .55));
}
.prototype-chart-milestone:focus .prototype-chart-milestone-dot,
.prototype-chart-milestone.is-active .prototype-chart-milestone-dot {
  stroke: var(--primary-dk);
  stroke-width: 5;
  filter: drop-shadow(0 0 5px rgba(210, 143, 42, .45));
}
.prototype-chart-milestone:focus .prototype-chart-major-halo,
.prototype-chart-milestone.is-active .prototype-chart-major-halo,
.prototype-chart-goal:focus .prototype-chart-major-halo,
.prototype-chart-goal.is-active .prototype-chart-major-halo { fill-opacity: .95; stroke-width: 2; }
.prototype-chart-goal:focus .prototype-chart-goal-dot,
.prototype-chart-goal.is-active .prototype-chart-goal-dot { stroke-width: 5; filter: drop-shadow(0 0 6px rgba(229,138,85,.48)); }
.prototype-insight-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 220px;
  padding: 22px;
  border: 0;
  border-left: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 0;
  background: rgba(var(--primary-rgb), .035);
}
.prototype-progression-compact .prototype-insight-panel {
  min-height: 96px;
  padding: 16px 20px;
  border-top: 1px solid rgba(var(--primary-rgb), .12);
  border-left: 0;
  background: rgba(var(--primary-rgb), .025);
}
.prototype-insight-panel h5 { margin: 0 0 9px; color: var(--tx); font-size: 18px; line-height: 1.3; }
.prototype-insight-panel > strong { color: var(--primary-dk); font-size: 12px; line-height: 1.4; }
.prototype-insight-panel > p { margin-top: 10px; color: var(--tx-3); font-size: 11px; line-height: 1.55; }
.prototype-insight-panel > small { margin-top: 12px; color: var(--tx-4); font-size: 10px; line-height: 1.4; }
.prototype-week-controls { display: flex; gap: 5px; }
.prototype-week-controls button {
  appearance: none;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: 8px;
  background: rgba(255, 255, 255, .82);
  color: var(--primary-dk);
  font-family: var(--font);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}
.prototype-week-controls button:hover, .prototype-week-controls button:focus-visible { border-color: var(--primary); background: rgba(var(--primary-rgb), .09); outline: none; }
.prototype-week-controls button:disabled { opacity: .3; cursor: default; }
.prototype-week-details { margin-top: 9px; }
.prototype-week-detail { min-width: 0; }
.prototype-week-detail[hidden] { display: none; }
.prototype-timeline-zoom-events {
  position: relative;
  display: flex;
  gap: 8px;
  margin: 0;
  padding: 2px 0 5px;
  overflow-x: auto;
  list-style: none;
  scrollbar-width: thin;
}
.prototype-timeline-zoom-events::before {
  position: absolute;
  top: 14px;
  right: 16px;
  left: 16px;
  height: 2px;
  background: rgba(var(--primary-rgb), .18);
  content: '';
}
.prototype-timeline-zoom-event { position: relative; z-index: 1; flex: 0 0 190px; min-width: 0; }
.prototype-timeline-zoom-event button,
.prototype-timeline-zoom-event article {
  display: grid;
  width: 100%;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: start;
  gap: 7px;
  padding: 0 8px 8px 0;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 9px;
  background: rgba(255,255,255,.92);
  color: var(--tx);
  font-family: var(--font);
  text-align: left;
}
.prototype-timeline-zoom-event button { cursor: pointer; }
.prototype-timeline-zoom-event button:hover,
.prototype-timeline-zoom-event button:focus-visible { border-color: rgba(var(--primary-rgb), .38); background: #fff; outline: none; }
.prototype-timeline-zoom-dot {
  display: block;
  width: 24px;
  height: 24px;
  border: 5px solid #fff;
  border-radius: 50%;
  background: var(--primary);
  box-shadow: 0 0 0 1px rgba(var(--primary-rgb), .18);
}
.prototype-timeline-zoom-event.is-assessment .prototype-timeline-zoom-dot { background: #7456c8; }
.prototype-timeline-zoom-event.is-goal .prototype-timeline-zoom-dot { background: #e17b4d; }
.prototype-timeline-zoom-event.is-milestone .prototype-timeline-zoom-dot { background: #22a99a; }
.prototype-timeline-zoom-event.is-measure .prototype-timeline-zoom-dot { background: #d28f2a; }
.prototype-timeline-zoom-event div { display: grid; min-width: 0; gap: 2px; padding-top: 4px; }
.prototype-timeline-zoom-type { color: var(--primary-dk); font-size: 7px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.prototype-timeline-zoom-event strong { overflow: hidden; font-size: 9px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.prototype-timeline-zoom-event small { color: var(--tx-4); font-size: 7px; line-height: 1.35; }
.prototype-timeline-zoom-open { align-self: center; padding-top: 3px; color: var(--primary); font-size: 12px; font-weight: 800; }
.prototype-timeline-zoom-empty { padding: 12px; border: 1px dashed var(--border); border-radius: 9px; color: var(--tx-4); font-size: 9px; text-align: center; }
.prototype-progression-compact .prototype-progression-disclaimer { margin-top: 8px; }
.prototype-progression-completion-rule {
  margin: 8px 0 0;
  padding: 10px 12px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 12px;
  background: rgba(var(--primary-rgb), .045);
  color: var(--tx-3);
  font-size: 10px;
  line-height: 1.5;
}
.prototype-progression-completion-rule strong { color: var(--primary-dk); }
.prototype-evaluation-analysis-hidden { display: none !important; }

@media (max-width: 820px) {
  .prototype-progression-compact .prototype-progression-layout { grid-template-columns: 1fr; }
  .prototype-insight-panel { min-height: 150px; padding: 18px; border-top: 1px solid rgba(var(--primary-rgb), .13); border-left: 0; }
  .prototype-progression-compact .prototype-insight-panel { min-height: 92px; padding: 15px 18px; }
}

@media (max-width: 560px) {
  #patientMetricsHeader:has(.prototype-progression-compact) { padding: 10px; }
  .prototype-progression-compact { padding: 13px; }
  .prototype-cockpit-header { grid-template-columns: minmax(0, 1fr) auto; gap: 9px; }
  .prototype-current-phase { padding: 9px 10px; }
  .prototype-current-phase h3 { font-size: 19px; }
  .prototype-cockpit-title h4 { font-size: 15px; line-height: 1.18; }
  .prototype-cockpit-title > p { font-size: 8px; line-height: 1.3; }
  .prototype-progression-score strong { font-size: 32px; }
  .prototype-final-objective { margin-top: 5px; padding: 7px 8px; }
  .prototype-final-objective > strong { font-size: 11px; }
  .prototype-timeline-zoom { padding: 8px; }
  .prototype-progression-compact .prototype-chart-shell { padding: 11px 10px 6px; }
  .prototype-progression-compact .prototype-chart { height: 230px; min-height: 230px; }
  .prototype-progression-compact .prototype-chart.has-phase-axis { height: calc(230px + var(--phase-axis-extra, 30px)); min-height: calc(230px + var(--phase-axis-extra, 30px)); }
  .prototype-chart-legend { gap: 10px; font-size: 8px; }
  .prototype-phase-zoom-navigation { align-items: flex-start; flex-direction: column; gap: 7px; }
  .prototype-phase-zoom-navigation p { align-items: flex-start; flex-direction: column; gap: 2px; }
  .prototype-phase-subobjectives { grid-template-columns: 1fr; gap: 7px; }
  .prototype-phase-subobjectives ul { display: grid; grid-template-columns: 1fr; gap: 5px; }
  .prototype-chart-legend i { width: 14px; }
  .prototype-chart-time-axis-date { font-size: 10px; }
  .prototype-insight-panel { min-height: 112px; padding: 14px; }
  .prototype-progression-compact .prototype-insight-panel { min-height: 82px; padding: 12px 14px; }
  .prototype-insight-panel h5 { margin: 0 0 7px; font-size: 15px; }
  .prototype-insight-panel > strong { font-size: 11px; }
  .prototype-insight-panel > p { margin-top: 7px; font-size: 10px; }
  .prototype-insight-panel > small { margin-top: 8px; font-size: 9px; }
  .prototype-patient-milestones-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .prototype-patient-milestones-heading > strong { text-align: left; }
  .prototype-patient-milestones ol { grid-template-columns: 1fr; }
  .prototype-timeline-zoom-event { flex-basis: 168px; }
}

@media (max-width: 620px) {
  body.trajectory-sheet-open { overflow: hidden; }

  .prototype-phase-zoom-navigation,
  .prototype-phase-subobjectives { display: none; }

  .trajectory-graph-controls {
    display: grid;
    gap: 8px;
    margin: 4px 0 2px;
  }

  .trajectory-phase-navigation {
    display: flex;
    gap: 7px;
    margin-inline: -2px;
    padding: 2px 2px 5px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .trajectory-phase-navigation::-webkit-scrollbar { display: none; }

  .trajectory-phase-navigation > button {
    display: grid;
    flex: 0 0 auto;
    min-width: 112px;
    max-width: 176px;
    min-height: 48px;
    align-content: center;
    gap: 2px;
    padding: 7px 10px;
    border: 1px solid rgba(var(--primary-rgb), .13);
    border-radius: 12px;
    background: rgba(255,255,255,.72);
    color: var(--tx-3);
    font: inherit;
    text-align: left;
    scroll-snap-align: start;
  }

  .trajectory-phase-navigation > button > span {
    overflow: hidden;
    font-size: 10px;
    font-weight: 820;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .trajectory-phase-navigation > button > small {
    overflow: hidden;
    color: var(--tx-4);
    font-size: 8px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .trajectory-phase-navigation > button[aria-pressed="true"] {
    border-color: rgba(var(--primary-rgb), .34);
    background: rgba(var(--primary-rgb), .1);
    color: var(--primary-dk);
    box-shadow: inset 0 0 0 1px rgba(var(--primary-rgb), .06);
  }

  .trajectory-phase-navigation > button:focus-visible {
    outline: 3px solid rgba(var(--primary-rgb), .18);
    outline-offset: 1px;
  }

  .trajectory-phase-context {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    gap: 9px;
    padding: 9px 10px;
    border: 1px solid rgba(var(--primary-rgb), .13);
    border-radius: 13px;
    background: linear-gradient(110deg, rgba(var(--primary-rgb), .075), rgba(255,255,255,.76));
  }

  .trajectory-phase-context > div { display: grid; min-width: 0; gap: 2px; }
  .trajectory-phase-context > div > span { color: var(--primary); font-size: 7px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
  .trajectory-phase-context > div > strong { overflow: hidden; color: var(--tx); font-size: 11px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
  .trajectory-phase-context > div > small { color: var(--tx-4); font-size: 8px; }

  .trajectory-phase-context > button {
    display: grid;
    min-width: 90px;
    min-height: 40px;
    align-content: center;
    gap: 1px;
    padding: 6px 9px;
    border: 1px solid rgba(var(--primary-rgb), .18);
    border-radius: 11px;
    background: #fff;
    color: var(--primary-dk);
    font: inherit;
    text-align: left;
    cursor: pointer;
  }

  .trajectory-phase-context > button > span { font-size: 8px; font-weight: 750; }
  .trajectory-phase-context > button > strong { font-size: 10px; }
  .trajectory-phase-context > button.has-blocker { border-color: rgba(190,126,74,.28); color: #895326; }
  .trajectory-phase-context > button:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .18); outline-offset: 2px; }

  .prototype-progression-compact .prototype-insight-panel.is-empty { display: none; }

  .trajectory-prerequisites-backdrop:not([hidden]) {
    position: fixed;
    z-index: 1590;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: rgba(25,28,49,.34);
    cursor: default;
  }

  .trajectory-phase-prerequisites {
    position: fixed;
    z-index: 1600;
    right: 8px;
    bottom: max(8px, env(safe-area-inset-bottom));
    left: 8px;
    display: none;
    max-height: min(82dvh, 720px);
    margin: 0 auto;
    padding: 11px 14px max(16px, env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid rgba(var(--primary-rgb), .16);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 24px 64px rgba(31,35,73,.25);
  }

  .trajectory-phase-prerequisites.is-panel-open { display: grid; }

  .trajectory-prerequisites-sheet-close {
    position: sticky;
    z-index: 2;
    top: 0;
    display: grid;
    width: 34px;
    height: 34px;
    margin: 0 0 -34px auto;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(var(--primary-rgb), .13);
    border-radius: 50%;
    background: rgba(247,248,255,.96);
    color: var(--primary-dk);
    font: 500 21px/1 var(--font);
    cursor: pointer;
    box-shadow: 0 3px 10px rgba(35,40,78,.08);
  }

  .trajectory-phase-prerequisites > header { padding-right: 42px; }
  .trajectory-phase-prerequisites-header-actions { justify-items: start; }
}

@media (min-width: 621px) {
  body.trajectory-sheet-open { overflow: hidden; }

  .prototype-phase-zoom-navigation,
  .prototype-phase-subobjectives { display: none; }

  .prototype-progression-compact .patient-evolution-trend-summary { margin-top: 7px; }
  .prototype-progression-compact .rehabilitation-card-switcher { gap: 6px; margin-top: 6px; }

  .trajectory-graph-controls {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(260px, .7fr);
    align-items: stretch;
    gap: 8px;
  }

  .trajectory-phase-navigation {
    display: flex;
    min-width: 0;
    gap: 6px;
    padding: 2px;
    overflow-x: auto;
    scrollbar-width: thin;
  }

  .trajectory-phase-navigation > button {
    display: grid;
    flex: 0 0 auto;
    min-width: 132px;
    max-width: 190px;
    min-height: 46px;
    align-content: center;
    gap: 2px;
    padding: 7px 10px;
    border: 1px solid rgba(var(--primary-rgb), .12);
    border-radius: 11px;
    background: rgba(255,255,255,.7);
    color: var(--tx-3);
    font: inherit;
    text-align: left;
    cursor: pointer;
  }

  .trajectory-phase-navigation > button > span {
    overflow: hidden;
    font-size: 10px;
    font-weight: 820;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .trajectory-phase-navigation > button > small {
    overflow: hidden;
    color: var(--tx-4);
    font-size: 8px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .trajectory-phase-navigation > button[aria-pressed="true"] {
    border-color: rgba(var(--primary-rgb), .3);
    background: rgba(var(--primary-rgb), .09);
    color: var(--primary-dk);
  }

  .trajectory-phase-navigation > button:focus-visible {
    outline: 3px solid rgba(var(--primary-rgb), .18);
    outline-offset: 1px;
  }

  .trajectory-phase-context {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    gap: 8px;
    padding: 7px 9px;
    border: 1px solid rgba(var(--primary-rgb), .12);
    border-radius: 11px;
    background: linear-gradient(110deg, rgba(var(--primary-rgb), .065), rgba(255,255,255,.78));
  }

  .trajectory-phase-context > div { display: grid; min-width: 0; gap: 1px; }
  .trajectory-phase-context > div > span { color: var(--primary); font-size: 7px; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
  .trajectory-phase-context > div > strong { overflow: hidden; color: var(--tx); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
  .trajectory-phase-context > div > small { color: var(--tx-4); font-size: 8px; }

  .trajectory-phase-context > button {
    display: grid;
    min-width: 88px;
    min-height: 36px;
    align-content: center;
    gap: 1px;
    padding: 5px 8px;
    border: 1px solid rgba(var(--primary-rgb), .18);
    border-radius: 9px;
    background: #fff;
    color: var(--primary-dk);
    font: inherit;
    text-align: left;
    cursor: pointer;
  }

  .trajectory-phase-context > button > span { font-size: 8px; font-weight: 750; }
  .trajectory-phase-context > button > strong { font-size: 9px; }
  .trajectory-phase-context > button.has-blocker { border-color: rgba(190,126,74,.28); color: #895326; }
  .trajectory-phase-context > button:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .18); outline-offset: 2px; }

  .trajectory-prerequisites-backdrop:not([hidden]) {
    position: fixed;
    z-index: 1590;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: rgba(25,28,49,.25);
  }

  .trajectory-phase-prerequisites {
    position: fixed;
    z-index: 1600;
    top: 16px;
    right: 16px;
    bottom: 16px;
    display: none;
    width: min(500px, calc(100vw - 32px));
    margin: 0;
    padding: 16px 18px;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid rgba(var(--primary-rgb), .16);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 26px 70px rgba(31,35,73,.25);
  }

  .trajectory-phase-prerequisites.is-panel-open { display: grid; }

  .trajectory-prerequisites-sheet-close {
    position: sticky;
    z-index: 2;
    top: 0;
    display: grid;
    width: 34px;
    height: 34px;
    margin: 0 0 -34px auto;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(var(--primary-rgb), .13);
    border-radius: 50%;
    background: rgba(247,248,255,.97);
    color: var(--primary-dk);
    font: 500 21px/1 var(--font);
    cursor: pointer;
    box-shadow: 0 3px 10px rgba(35,40,78,.08);
  }

  .trajectory-phase-prerequisites > header { padding-right: 42px; }
}

@media (min-width: 960px) {
  .prototype-progression-compact .prototype-progression-layout {
    grid-template-columns: minmax(0,1fr) minmax(240px,280px);
  }

  .prototype-progression-compact .prototype-insight-panel {
    min-height: 100%;
    padding: 16px;
    border-top: 0;
    border-left: 1px solid rgba(var(--primary-rgb), .12);
  }
}

.clinical-patient-main span,
.clinical-patient-meta span:last-child,
.clinical-patient-score small {
  color: var(--tx-3);
  font-size: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.clinical-patient-main {
  gap: 2px;
}

.clinical-patient-care-link {
  overflow: hidden;
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 650;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.clinical-patient-label {
  font-size: 10px;
  color: var(--tx-4);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 2px;
}

.clinical-patient-score {
  align-items: flex-end;
}

.clinical-patient-score span {
  font-size: 19px;
  line-height: 1;
  font-weight: var(--fw-eb);
  letter-spacing: -.035em;
}

.clinical-patient-arrow {
  color: var(--tx-4);
  font-size: 16px;
}

.detail-modal-content {
  position: relative;
  border-radius: 22px;
}

/* Le dossier patient est une page du produit, pas une fenêtre dans la page. */
#patientDetailModal.patient-detail-page {
  position: fixed;
  inset: var(--topbar-h) 0 0 var(--sb-w);
  z-index: calc(var(--z-sticky) - 10);
  display: block;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0;
  background:
    radial-gradient(circle at 20% -10%, rgba(88,101,216,.06), transparent 34%),
    var(--bg);
  backdrop-filter: none;
  animation: slideLeft var(--dur-mid) var(--ease);
}

#patientDetailModal.patient-detail-page > .detail-modal-content {
  width: min(1180px, 100%);
  max-width: none;
  min-height: 100%;
  max-height: none;
  margin: 0 auto;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  animation: none;
}

#patientDetailModal.patient-detail-page .detail-header {
  border-radius: 0;
}

.detail-back-btn {
  font-size: 19px;
  font-weight: 800;
}

@media (max-width: 900px) {
  #patientDetailModal.patient-detail-page {
    inset: var(--topbar-h) 0 calc(65px + env(safe-area-inset-bottom)) 0;
  }

  #patientDetailModal.patient-detail-page > .detail-modal-content {
    width: 100%;
  }
}

.detail-header {
  border-bottom: 0;
  padding-bottom: 12px;
}

.detail-tabs {
  border-bottom: 1px solid rgba(17,24,39,.06);
}

.patient-metric-card {
  border: 0;
  background: rgba(17,24,39,.035);
}

@media (max-width: 900px) {
  .main-content { padding: 24px 20px 88px; }
  .dashboard-assistant-hero { grid-template-columns: 1fr; gap: 20px; }
  .dashboard-today-strip { grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .workday-planner { }
  .workday-planner-actions { flex-direction: column; }
  .clinical-patient-row {
    grid-template-columns: 38px 1fr 32px;
  }
  .clinical-patient-meta,
  .clinical-patient-score { }
}

/* ══════════════════════════════════════════════════════
   SYNAPSE DESIGN SYSTEM v2 — CLINICAL WARMTH
   Direction : structure sérieuse du PDF + chaleur visuelle du HTML.

   Règles d'utilisation des couleurs :
   - 78 % neutres chauds pour la lecture longue.
   - 14 % surfaces bleu/brume pour les zones cliniques et cartes.
   - 6 % indigo Synapse pour les actions, focus et états actifs.
   - 2 % rouge uniquement pour urgence, erreur ou risque clinique.
   - Les dégradés restent doux, réservés aux surfaces d'accueil et KPI.
   ══════════════════════════════════════════════════════ */
:root {
  /* Palette */
  --syn-ink-950: #10131a;
  --syn-ink-900: #171b24;
  --syn-ink-700: #394150;
  --syn-ink-500: #697386;
  --syn-ink-400: #9099aa;
  --syn-mist-25: #fdfdfc;
  --syn-mist-50: #faf9f7;
  --syn-mist-100: #f4f1ec;
  --syn-line: rgba(23, 27, 36, .085);
  --syn-line-strong: rgba(23, 27, 36, .14);
  --syn-blue-500: #4c7dff;
  --syn-indigo-50: #f0f2ff;
  --syn-indigo-100: #e2e6ff;
  --syn-indigo-500: #5967e8;
  --syn-indigo-600: #4654cf;
  --syn-teal-50: #ecfbf8;
  --syn-teal-500: #22a99a;
  --syn-rose-50: #fff1f1;
  --syn-rose-600: #cf2e2e;
  --syn-amber-500: #c47c12;

  /* Typographie */
  --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --syn-display-size: 36px;
  --syn-title-size: 22px;
  --syn-section-size: 16px;
  --syn-body-size: 13px;
  --syn-caption-size: 11px;
  --syn-tight: -.035em;

  /* Grille 8 px */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;

  /* Rayons */
  --radius-control: 10px;
  --radius-card: 18px;
  --radius-panel: 24px;
  --radius-pill: 999px;

  /* Ombres */
  --shadow-soft: 0 1px 2px rgba(16, 19, 26, .04), 0 10px 30px rgba(16, 19, 26, .045);
  --shadow-lift: 0 18px 50px rgba(16, 19, 26, .09);
  --shadow-focus: 0 0 0 4px rgba(89, 103, 232, .14);

  /* Tokens sémantiques */
  --bg: var(--syn-mist-50);
  --surface-2: rgba(255,255,255,.78);
  --surface-3: var(--syn-mist-100);
  --border-s: var(--syn-line-strong);
  --primary-dk: var(--syn-indigo-600);
  --primary-bg: rgba(89,103,232,.1);
  --error: var(--syn-rose-600);
  --warning: var(--syn-amber-500);
  --sb-bg: #141821;
  --sb-active: rgba(255,255,255,.09);
}

body {
  background:
    linear-gradient(180deg, rgba(238,246,255,.72) 0%, rgba(250,249,247,.94) 320px, var(--syn-mist-50) 100%),
    var(--syn-mist-50);
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(23,27,36,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(23,27,36,.02) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,.6), transparent 58%);
}

/* Layout & navigation */
.app-layout { background: transparent; }
.sidebar {
  background: linear-gradient(180deg, #171b24, #11141b);
  border-right: 1px solid rgba(255,255,255,.06);
}
.sidebar-brand-icon {
  background: linear-gradient(135deg, var(--syn-indigo-500), var(--syn-blue-500));
  box-shadow: 0 10px 28px rgba(89,103,232,.28);
}
.sidebar-nav-item {
  min-height: 38px;
  border-radius: 10px;
  transition: background var(--dur-fast), color var(--dur-fast), transform var(--dur-fast);
}
.sidebar-nav-item:hover { transform: translateX(2px); }
.sidebar-nav-item.active { box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
.topbar {
  background: rgba(253,253,252,.82);
  border-bottom: 1px solid rgba(23,27,36,.07);
  backdrop-filter: blur(18px);
}
.topbar-search input {
  border-color: transparent;
  background: rgba(23,27,36,.045);
  border-radius: var(--radius-pill);
}
.topbar-search input:focus {
  background: #fff;
  border-color: rgba(89,103,232,.26);
}
.topbar-btn {
  border-radius: var(--radius-pill);
  background: #fff;
}

/* Typographie */
.dashboard-assistant-copy h1,
.detail-title,
.patient-home-hero h1 {
  letter-spacing: var(--syn-tight);
}
.section-kicker {
  color: var(--primary);
  letter-spacing: .12em;
}

/* Boutons */
.primary-btn,
button[type="submit"],
#addPatientBtn {
  border-radius: var(--radius-pill);
  background: linear-gradient(135deg, var(--syn-indigo-500), var(--syn-blue-500));
  color: #fff;
  box-shadow: 0 8px 22px rgba(89,103,232,.18);
  transition: transform var(--dur-fast), box-shadow var(--dur-fast), filter var(--dur-fast);
}
.primary-btn:hover,
button[type="submit"]:hover,
#addPatientBtn:hover {
  box-shadow: 0 14px 34px rgba(89,103,232,.24);
  filter: saturate(1.04);
}
.session-inline-link,
.secondary-file-btn,
.dashboard-session-filter {
  border-radius: var(--radius-pill);
}

/* Grandes cartes & surfaces */
.dashboard-assistant-hero {
  padding: var(--space-10);
  border: 1px solid rgba(255,255,255,.68);
  border-radius: 30px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.94), rgba(238,246,255,.74)),
    #fff;
}
.dashboard-assistant-copy h1 {
  font-size: clamp(30px, 4vw, 44px);
}
.dashboard-today-strip {
  padding: 12px 16px;
  border-radius: 22px;
  box-shadow: inset 0 0 0 1px rgba(23,27,36,.055);
}
.dashboard-today-value { color: var(--syn-ink-950); }
.workday-planner {
  padding: var(--space-6);
  border: 1px solid rgba(23,27,36,.07);
  border-radius: var(--radius-panel);
  background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(236,251,248,.62));
  box-shadow: var(--shadow-soft);
}
.metric-card {
  min-height: 154px;
  border-radius: var(--radius-panel);
  background: #fff;
  padding: var(--space-6);
}
.metric-blue { background: linear-gradient(135deg, #fff, var(--syn-blue-50)); }
.metric-purple { background: linear-gradient(135deg, #fff, var(--syn-indigo-50)); }
.metric-teal { background: linear-gradient(135deg, #fff, var(--syn-teal-50)); }
.metric-card.metric-card-active {
  box-shadow: 0 0 0 1px rgba(89,103,232,.18), var(--shadow-lift);
}
.dashboard-card,
.patient-list-surface,
.library-card,
.community-card,
.modal-content {
  border-radius: var(--radius-panel);
  background: rgba(255,255,255,.82);
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(23,27,36,.065);
}
.dashboard-card,
.patient-list-surface,
.library-card { padding: var(--space-6); }
.dashboard-chart-card .card-header,
.patient-list-card .card-header {
  border-bottom-color: rgba(23,27,36,.07);
}
.dashboard-item {
  border-bottom-color: rgba(23,27,36,.07);
  border-radius: 14px;
  padding: 15px 12px;
}
.dashboard-item.clickable:hover {
  background: rgba(89,103,232,.07);
}

/* Patients & espace clinique */
.summary-card,
.patient-metric-card,
.score-card,
.session-item,
.feedback-item,
.bilan-item,
.library-item {
  border-radius: var(--radius-card);
  border: 1px solid rgba(23,27,36,.065);
  background: rgba(255,255,255,.86);
  box-shadow: var(--shadow-soft);
}
.clinical-patient-row {
  border-bottom-color: rgba(23,27,36,.065);
  border-radius: 16px;
  padding: 18px 14px;
}
.clinical-patient-row:hover {
  background: linear-gradient(135deg, rgba(89,103,232,.065), rgba(34,169,154,.055));
  padding-left: 18px;
  padding-right: 18px;
}
.clinical-patient-avatar {
  background: linear-gradient(135deg, var(--syn-indigo-50), var(--syn-blue-50));
  color: var(--syn-indigo-600);
}
.detail-modal-content {
  background: var(--syn-mist-25);
  box-shadow: 0 34px 90px rgba(16,19,26,.18);
}
.detail-header {
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(238,246,255,.68));
  border-radius: 22px 22px 0 0;
}

/* Formulaires */
input,
textarea,
select,
.workday-planner-actions input[type="date"],
.session-search-input {
  border-color: rgba(23,27,36,.09);
  border-radius: var(--radius-control);
  background: rgba(255,255,255,.92);
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast), background var(--dur-fast);
}
input:focus,
textarea:focus,
select:focus,
.session-search-input:focus {
  border-color: rgba(89,103,232,.34);
  outline: none;
  background: #fff;
}
label {
  color: var(--tx-2);
}

/* Badges, chips, tableaux */
.badge,
.dashboard-kind-chip,
.session-done-badge,
.session-origin-badge,
.metric-breakdown-btn,
.dashboard-session-filter {
  border-radius: var(--radius-pill);
  border-color: rgba(23,27,36,.08);
}
.dashboard-kind-chip-session,
.badge--session { color: #2c5dcc; }
.dashboard-priority-high,
.badge.urgent { background: var(--syn-rose-50); color: var(--syn-rose-600); }
.dashboard-priority-normal,
.badge.normal { background: rgba(23,27,36,.055); }
.patient-table th {
  background: rgba(23,27,36,.035);
  border-bottom-color: rgba(23,27,36,.08);
}
.patient-table td { border-bottom-color: rgba(23,27,36,.06); }
.patient-table tbody tr:hover td { background: rgba(89,103,232,.055); }

/* Animations */
@keyframes synapseRise {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.dashboard-assistant-hero,
.workday-planner,
.metric-card,
.dashboard-card,
.clinical-patient-row {
  animation: synapseRise var(--dur-slow) var(--ease) both;
}
@media (prefers-reduced-motion: reduce) {
  .dashboard-assistant-hero,
  .workday-planner,
  .metric-card,
  .dashboard-card,
  .clinical-patient-row { animation: none; }
}

@media (max-width: 900px) {
  .dashboard-assistant-hero,
  .workday-planner,
  .dashboard-card,
  .patient-list-surface { padding: var(--space-5); }
  .dashboard-today-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .metric-card { min-height: 128px; }
}

/* Icônes professionnelles — monochromes, sobres, cohérentes */
.nav-icon,
.topbar-search-icon,
.role-icon,
.topbar-btn.icon-settings,
.identity-quick-btn.icon-user {
  color: currentColor;
}

.nav-icon::before,
.topbar-search-icon::before,
.role-icon::before,
.topbar-btn.icon-settings::before,
.identity-quick-btn.icon-user::before {
  content: '';
  display: block;
  width: 18px;
  height: 18px;
  background: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}

.role-icon {
  width: 44px;
  height: 44px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--syn-blue-50), var(--syn-indigo-50));
  color: var(--primary);
}

.role-icon::before {
  width: 24px;
  height: 24px;
}

.topbar-btn.icon-settings::before,
.identity-quick-btn.icon-user::before {
  width: 17px;
  height: 17px;
}

.mobile-nav-item .nav-icon::before {
  width: 20px;
  height: 20px;
}

.icon-home { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 10.8 12 4l8 6.8V20a1 1 0 0 1-1 1h-5v-6h-4v6H5a1 1 0 0 1-1-1z'/%3E%3C/svg%3E"); }
.icon-users { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm6.5 1a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7ZM2 20a7 7 0 0 1 14 0v1H2v-1Zm13.7-5.6A8.5 8.5 0 0 1 18 20v1h4v-1a6 6 0 0 0-6.3-5.6Z'/%3E%3C/svg%3E"); }
.icon-message { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 5h14a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-6.7L7 21v-4H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2Z'/%3E%3C/svg%3E"); }
.icon-device { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 2h8a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Zm2 3v14h4V5h-4Z'/%3E%3C/svg%3E"); }
.icon-library { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h6a2 2 0 0 1 2 2v14a2 2 0 0 0-2-2H4V4Zm10 2a2 2 0 0 1 2-2h4v14h-4a2 2 0 0 0-2 2V6Z'/%3E%3C/svg%3E"); }
.icon-gym { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 9h2V7h2v4h10V7h2v2h2v6h-2v2h-2v-4H7v4H5v-2H3V9Z'/%3E%3C/svg%3E"); }
.icon-search { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.5 4a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm0-2a8.5 8.5 0 0 1 6.7 13.7l4 4-1.5 1.5-4-4A8.5 8.5 0 1 1 10.5 2Z'/%3E%3C/svg%3E"); }
.icon-settings { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.5 2h3l.5 2.5c.7.2 1.3.5 1.9.8l2.1-1.4 2.1 2.1-1.4 2.1c.4.6.6 1.2.8 1.9l2.5.5v3l-2.5.5a8 8 0 0 1-.8 1.9l1.4 2.1-2.1 2.1-2.1-1.4c-.6.4-1.2.6-1.9.8l-.5 2.5h-3l-.5-2.5a8 8 0 0 1-1.9-.8L6 20.1 3.9 18l1.4-2.1a8 8 0 0 1-.8-1.9L2 13.5v-3l2.5-.5c.2-.7.5-1.3.8-1.9L3.9 6 6 3.9l2.1 1.4c.6-.4 1.2-.6 1.9-.8L10.5 2Zm1.5 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z'/%3E%3C/svg%3E"); }
.icon-user { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm-9 9a9 9 0 0 1 18 0v1H3v-1Z'/%3E%3C/svg%3E"); }
.icon-clinician { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm-8 9a8 8 0 0 1 16 0v1H4v-1Zm7-6h2v2h2v2h-2v2h-2v-2H9v-2h2v-2Z'/%3E%3C/svg%3E"); }

/* Passe finale : réduire le bruit visuel et augmenter la sensation premium */
.role-selection-overlay {
  background:
    radial-gradient(circle at 20% 10%, rgba(89,103,232,.2), transparent 32%),
    linear-gradient(135deg, #f7fbff, #faf9f7 58%, #eefbf8);
}

.role-selection-modal {
  border: 1px solid rgba(255,255,255,.75);
  box-shadow: 0 34px 90px rgba(16,19,26,.16);
}

.role-selection-btn {
  border: 1px solid rgba(23,27,36,.07);
  background: rgba(255,255,255,.78);
  border-radius: 20px;
  transition: transform var(--dur-fast), box-shadow var(--dur-fast), border-color var(--dur-fast);
}

.role-selection-btn:hover {
  transform: translateY(-2px);
  border-color: rgba(89,103,232,.2);
  box-shadow: var(--shadow-soft);
}

.app-main {
}

.main-content {
  max-width: 1280px;
  margin: 0 auto;
}

.dashboard-columns-grid {
  gap: 22px;
}

.library-list,
.community-grid,
.patient-home-grid,
.dashboard-detail-section {
  gap: 18px;
}

.close-icon,
.identity-quick-btn,
.topbar-btn {
  border-color: rgba(23,27,36,.07);
  box-shadow: 0 1px 2px rgba(16,19,26,.04);
}

.close-icon:hover,
.identity-quick-btn:hover,
.topbar-btn:hover {
  background: #fff;
  border-color: rgba(89,103,232,.18);
  box-shadow: var(--shadow-soft);
}

.session-item:hover,
.feedback-item:hover,
.bilan-item:hover,
.library-item:hover {
  border-color: rgba(89,103,232,.14);
  box-shadow: var(--shadow-soft);
}

/* ══════════════════════════════════════════════════════
   SYNAPSE ART DIRECTION v3 — FUNDED STARTUP POLISH
   Objectif : interface publiable, moins démonstrative, plus précise.
   ══════════════════════════════════════════════════════ */
:root {
  --font: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --syn-ink-950: #111318;
  --syn-ink-900: #181b22;
  --syn-ink-700: #3e4654;
  --syn-ink-500: #6e7787;
  --syn-ink-400: #9aa3b2;
  --syn-paper: #fbfaf7;
  --syn-paper-2: #f5f2eb;
  --syn-glass: rgba(255,255,255,.78);
  --syn-line: rgba(17,19,24,.085);
  --syn-blue-50: #eef6ff;
  --syn-blue-100: #dcecff;
  --syn-blue-500: #3978ff;
  --syn-indigo-50: #f0f3ff;
  --syn-indigo-500: #5264e7;
  --syn-teal-50: #eafbf7;
  --syn-teal-500: #1fa999;
  --syn-coral-50: #fff2ee;
  --syn-coral-600: #c9472f;
  --syn-amber-50: #fff8e8;
  --syn-amber-600: #ad6b0b;
  --bg: var(--syn-paper);
  --surface-2: rgba(255,255,255,.72);
  --surface-3: var(--syn-paper-2);
  --border: var(--syn-line);
  --border-s: rgba(17,19,24,.14);
  --tx: var(--syn-ink-950);
  --tx-2: var(--syn-ink-700);
  --tx-3: var(--syn-ink-500);
  --tx-4: var(--syn-ink-400);
  --primary: var(--syn-indigo-500);
  --primary-dk: #4252c7;
  --primary-bg: rgba(var(--primary-rgb), .1);
  --success: var(--syn-teal-500);
  --error: var(--syn-coral-600);
  --warning: var(--syn-amber-600);
  --sb-w: 236px;
  --topbar-h: 60px;
  --radius-control: 10px;
  --radius-card: 8px;
  --radius-panel: 12px;
  --shadow-hairline: 0 0 0 1px rgba(17,19,24,.065);
  --shadow-soft: 0 1px 1px rgba(17,19,24,.025), 0 16px 44px rgba(17,19,24,.06);
  --shadow-lift: 0 1px 1px rgba(17,19,24,.035), 0 24px 70px rgba(17,19,24,.105);
  --shadow-focus: 0 0 0 4px rgba(var(--primary-rgb), .16);
}

* { letter-spacing: 0; }

html,
body {
  min-height: 100%;
  background: var(--syn-paper);
}

body {
  font-family: var(--font);
  color: var(--tx);
  background:
    linear-gradient(180deg, rgba(238,246,255,.86) 0, rgba(251,250,247,.92) 260px, var(--syn-paper) 100%),
    radial-gradient(circle at 76px 84px, rgba(var(--primary-rgb), .14), transparent 210px),
    radial-gradient(circle at calc(100% - 160px) 170px, rgba(31,169,153,.12), transparent 260px),
    var(--syn-paper);
}

body::before {
  opacity: .62;
  background-image:
    linear-gradient(rgba(17,19,24,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(17,19,24,.018) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,.55), transparent 52%);
}

.app-layout {
  grid-template-columns: var(--sb-w) minmax(0, 1fr);
  height: 100vh;
  overflow: hidden;
}

.app-main {
  min-width: 0;
  height: 100vh;
  overflow: hidden;
}

.sidebar {
  padding: 18px 12px;
  background: linear-gradient(180deg, #171a21 0%, #11141a 58%, #101218 100%);
  border-right: 1px solid rgba(255,255,255,.075);
  box-shadow: inset -1px 0 0 rgba(0,0,0,.28);
}

.sidebar-header {
  padding: 0 0 28px;
}

.sidebar-brand {
  padding: 8px 10px;
  gap: 12px;
}

.sidebar-brand-icon {
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: linear-gradient(145deg, #6d7dff, #2f66ff 54%, #15a996);
  color: #fff;
  box-shadow: 0 16px 34px rgba(var(--primary-rgb), .34);
}

.sidebar-brand-name {
  font-size: 15px;
  font-weight: 800;
}

.sidebar-section {
  padding: 0;
}

.sidebar-section nav {
  display: grid;
  gap: 5px;
}

.sidebar-nav-item {
  min-height: 42px;
  padding: 0 12px;
  border-radius: 9px;
  color: rgba(255,255,255,.55);
  font-size: 13px;
  font-weight: 700;
  transition: background 160ms var(--ease), color 160ms var(--ease), transform 160ms var(--ease), box-shadow 160ms var(--ease);
}

.sidebar-nav-item:hover {
  transform: translateX(1px);
  background: rgba(255,255,255,.055);
  color: rgba(255,255,255,.86);
}

.sidebar-nav-item.active {
  background: rgba(255,255,255,.11);
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 10px 26px rgba(0,0,0,.18);
}

.nav-icon {
  opacity: .78;
}

.sidebar-footer {
  padding: 14px 0 0;
  border-top: 1px solid rgba(255,255,255,.075);
}

.sidebar-user {
  border-radius: 10px;
  padding: 10px;
}

.sidebar-user-avatar {
  border-radius: 9px;
  background: linear-gradient(145deg, #6d7dff, #5264e7);
}

.topbar {
  height: var(--topbar-h);
  padding: 10px 24px;
  background: rgba(251,250,247,.72);
  border-bottom: 1px solid rgba(17,19,24,.07);
  backdrop-filter: blur(24px) saturate(1.22);
}

.topbar-search {
  max-width: 430px;
}

.topbar-search input {
  height: 40px;
  border-radius: 10px;
  background: rgba(17,19,24,.045);
  border: 1px solid transparent;
  color: var(--tx);
  font-size: 13px;
  font-weight: 600;
}

.topbar-search input::placeholder {
  color: #9aa3b2;
}

.topbar-search input:focus {
  background: rgba(255,255,255,.94);
  border-color: rgba(var(--primary-rgb), .28);
  box-shadow: var(--shadow-focus);
}

.topbar-actions {
  gap: 8px;
}

.dashboard-session-filter,
.session-inline-link,
.secondary-file-btn,
.topbar-btn,
.identity-quick-btn,
.close-icon {
  border-radius: 9px;
  border: 1px solid rgba(17,19,24,.075);
  background: rgba(255,255,255,.76);
  box-shadow: 0 1px 1px rgba(17,19,24,.025);
  color: var(--tx-2);
  font-weight: 700;
}

.dashboard-session-filter:hover,
.session-inline-link:hover,
.secondary-file-btn:hover,
.topbar-btn:hover,
.identity-quick-btn:hover,
.close-icon:hover {
  background: #fff;
  border-color: rgba(var(--primary-rgb), .2);
  box-shadow: var(--shadow-soft);
}

.dashboard-session-filter.active {
  background: #171a21;
  border-color: #171a21;
  color: #fff;
  box-shadow: 0 12px 30px rgba(17,19,24,.18);
}

.main-content {
  padding: 34px 44px 56px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

.dashboard-tab,
.patient-tab,
.gym-tab,
.library-tab,
.patient-app-tab,
.patient-home-tab {
  animation: synapseRise 420ms var(--ease) both;
}

.dashboard-tab {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.dashboard-assistant-hero {
  position: relative;
  overflow: hidden;
  align-items: center;
  margin: 0;
  padding: 30px 32px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.78);
  background:
    linear-gradient(135deg, rgba(255,255,255,.96) 0%, rgba(240,243,255,.9) 52%, rgba(234,251,247,.82) 100%);
  box-shadow: var(--shadow-soft);
}

.dashboard-assistant-hero::after {
  content: '';
  position: absolute;
  inset: auto -90px -150px auto;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(57,120,255,.16), transparent 68%);
  pointer-events: none;
}

.section-kicker,
.app-label,
.clinical-patient-label,
.metric-card-content p,
.dashboard-today-label {
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.section-kicker {
  color: var(--primary-dk);
  margin-bottom: 8px;
}

.dashboard-assistant-copy h1 {
  margin: 0 0 9px;
  font-size: 40px;
  line-height: 1.05;
  letter-spacing: 0;
  font-weight: 800;
}

.dashboard-assistant-copy p:last-child {
  max-width: 610px;
  color: var(--tx-3);
  font-size: 14px;
  line-height: 1.65;
  font-weight: 600;
}

.dashboard-today-strip {
  grid-template-columns: repeat(3, minmax(88px, 1fr));
  gap: 8px;
  min-width: 330px;
  padding: 8px;
  border-radius: 12px;
  background: rgba(255,255,255,.68);
  border: 1px solid rgba(17,19,24,.06);
  box-shadow: none;
}

.dashboard-today-stat {
  min-width: 0;
  padding: 11px 12px;
  border-radius: 8px;
  background: rgba(255,255,255,.72);
}

.dashboard-today-value {
  font-size: 24px;
  font-weight: 800;
  color: var(--tx);
}

.dashboard-today-stat-alert .dashboard-today-value {
  color: var(--syn-coral-600);
}

.workday-planner {
  margin: 0;
  grid-template-columns: minmax(0, 1fr) minmax(300px, auto);
  align-items: center;
  padding: 20px 24px;
  border-radius: 12px;
  border: 1px solid rgba(17,19,24,.07);
  background: rgba(255,255,255,.76);
  box-shadow: var(--shadow-hairline);
}

.workday-planner h2,
.dashboard-section-title,
.patient-list-card .card-header h2,
.library-card .card-header h2,
.card-header h2,
.card-header h3,
.feedback-list-header h4 {
  color: var(--tx);
  font-weight: 800;
  letter-spacing: 0;
}

.workday-planner p:not(.section-kicker) {
  max-width: 650px;
  color: var(--tx-3);
  line-height: 1.6;
  font-weight: 600;
}

.workday-planner-actions {
  display: grid;
  grid-template-columns: auto 132px auto;
  align-items: center;
  justify-content: end;
  gap: 8px;
}

.workday-planner-actions label {
  margin-right: 2px;
}

.workday-planner-actions input[type="date"] {
  height: 38px;
  border-radius: 9px;
}

.primary-btn,
button[type="submit"],
#addPatientBtn {
  min-height: 38px;
  border-radius: 9px;
  background: #171a21;
  box-shadow: 0 12px 28px rgba(17,19,24,.16);
  font-weight: 800;
}

.primary-btn:hover,
button[type="submit"]:hover,
#addPatientBtn:hover {
  transform: translateY(-1px);
  background: #0f1116;
  box-shadow: 0 18px 42px rgba(17,19,24,.2);
}

.dashboard-metrics-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
}

.metric-card {
  min-height: 118px;
  padding: 18px 20px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.74);
  box-shadow: var(--shadow-soft);
  transition: transform 180ms var(--ease), box-shadow 180ms var(--ease), border-color 180ms var(--ease);
}

.metric-card[role="button"]:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-lift);
}

.metric-card.metric-card-active {
  border-color: rgba(var(--primary-rgb), .22);
  box-shadow: 0 0 0 1px rgba(var(--primary-rgb), .12), var(--shadow-lift);
}

.metric-card h2 {
  margin: 4px 0 0;
  font-size: 30px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: 0;
}

.metric-subtext {
  margin-top: 10px !important;
  color: var(--syn-coral-600) !important;
}

.metric-breakdown-grid {
  margin-top: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.metric-breakdown-btn {
  min-height: 26px;
  border-radius: 8px;
  background: rgba(255,255,255,.72);
  font-size: 11px;
  font-weight: 800;
}

.dashboard-detail {
  margin-top: 6px;
}

.dashboard-columns-grid {
  gap: 16px;
}

.dashboard-card,
.patient-list-surface,
.library-card,
.community-card,
.patient-home-card,
.modal-content,
.summary-card,
.search-panel,
.feedback-item,
.session-item,
.bilan-item,
.library-item,
.score-card,
.patient-metric-card {
  border-radius: 12px;
  border: 1px solid rgba(17,19,24,.075);
  background: rgba(255,255,255,.8);
  box-shadow: var(--shadow-hairline);
}

.dashboard-card,
.patient-list-surface,
.library-card,
.patient-home-card {
  padding: 24px;
}

.dashboard-card:hover,
.patient-list-surface:hover,
.library-card:hover,
.patient-home-card:hover {
  box-shadow: var(--shadow-soft);
}

.card-header,
.dashboard-chart-card .card-header,
.patient-list-card .card-header {
  padding: 0 0 16px;
  border-bottom: 1px solid rgba(17,19,24,.07);
  background: transparent;
}

.dashboard-list,
.feedback-list,
.library-list,
.patient-sessions-list,
.patient-history-list {
  gap: 8px;
}

.dashboard-item {
  padding: 14px 12px;
  border-radius: 8px;
  border: 1px solid transparent;
  border-bottom-color: rgba(17,19,24,.06);
  background: transparent;
}

.dashboard-item.clickable:hover,
.dashboard-item:hover {
  border-color: rgba(var(--primary-rgb), .12);
  background: rgba(var(--primary-rgb), .055);
  box-shadow: none;
}

.dashboard-item-title,
.dashboard-item strong,
.clinical-patient-main strong {
  color: var(--tx);
  font-weight: 800;
}

.dashboard-item p,
.dashboard-item-meta,
.clinical-patient-main span,
.clinical-patient-meta span,
.clinical-patient-score small,
.library-card .card-header p {
  color: var(--tx-3);
  font-weight: 600;
}

.patient-summary-card {
  margin-bottom: 14px;
}

.summary-card {
  padding: 18px 20px;
  background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(238,246,255,.78));
}

.summary-card h2 {
  font-size: 28px;
  letter-spacing: 0;
}

.search-panel {
  max-width: 440px;
  padding: 12px;
  margin-bottom: 18px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  background: rgba(255,255,255,.68);
}

.search-panel label,
label {
  font-size: 12px;
  font-weight: 800;
  color: var(--tx-2);
}

input,
textarea,
select,
.session-search-input {
  border-radius: 9px;
  border: 1px solid rgba(17,19,24,.09);
  background: rgba(255,255,255,.86);
  font-weight: 600;
}

input:focus,
textarea:focus,
select:focus,
.session-search-input:focus {
  border-color: rgba(var(--primary-rgb), .32);
  box-shadow: var(--shadow-focus);
}

.patient-list-surface {
  max-width: none;
}

/* Grammaire d’interface Synapse : un mouvement et une surface secondaire uniques. */
:root {
  --synapse-motion-duration: 260ms;
  --synapse-motion-ease: cubic-bezier(.22, 1, .36, 1);
  --synapse-floating-width: 360px;
  --synapse-floating-radius: 18px;
  --synapse-floating-padding: 16px;
}

@keyframes synapseSurfaceIn {
  from { opacity: 0; transform: translateY(8px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.detail-panel:not(.hidden),
.patient-area-panel:not(.hidden),
[data-session-view]:not(.hidden),
.session-future-preparation[open] > .session-future-preparation-body,
.session-completed-correction[open] > .session-completed-correction-body {
  animation: synapseSurfaceIn var(--synapse-motion-duration) var(--synapse-motion-ease) both;
}

.synapse-floating-card {
  position: fixed;
  top: calc(var(--topbar-h) + 12px);
  right: max(18px, env(safe-area-inset-right));
  z-index: calc(var(--z-modal) + 20);
  width: min(var(--synapse-floating-width), calc(100vw - 32px));
  max-height: min(520px, calc(100dvh - var(--topbar-h) - 28px));
  margin: 0;
  padding: var(--synapse-floating-padding);
  overflow-y: auto;
  border: 1px solid rgba(17,24,39,.09);
  border-radius: var(--synapse-floating-radius);
  background: rgba(255,255,255,.98);
  box-shadow: 0 24px 60px rgba(23,29,53,.2);
  backdrop-filter: blur(16px);
  font-family: var(--font);
  animation: synapseSurfaceIn var(--synapse-motion-duration) var(--synapse-motion-ease) both;
  transform-origin: top right;
}
.synapse-floating-card.hidden { display: none; }
.patient-notifications-panel.synapse-floating-card { top: calc(var(--topbar-h) + 12px); right: max(18px, env(safe-area-inset-right)); }
.detail-identity-popover.synapse-floating-card { display: grid; gap: 8px; font-size: 12px; }
.clinician-notifications-panel.synapse-floating-card { padding: var(--synapse-floating-padding); }
.patient-identity-quick-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.patient-identity-quick-heading strong { color: var(--tx); font-size: 15px; font-weight: 850; letter-spacing: -.015em; text-transform: none; }
.patient-identity-quick-heading > span { color: var(--tx-4); font-size: 11px; font-weight: 750; }
.patient-identity-quick-condition { overflow: hidden; margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.patient-identity-quick-contact { display: grid; gap: 4px; padding: 9px 10px; border-radius: 12px; background: rgba(17,24,39,.035); color: var(--tx-2); font-size: 11px; font-weight: 650; line-height: 1.35; }
.patient-identity-quick-contact span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.patient-identity-edit-btn {
  min-height: 36px;
  margin-top: 2px;
  border: 0;
  border-radius: 11px;
  background: var(--primary);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}
.patient-identity-edit-btn:hover { background: var(--primary-dk); }

.detail-modal-content.patient-information-open > .detail-tabs,
.detail-modal-content.patient-information-open > .detail-panel { display: none !important; }
.patient-information-page {
  width: min(900px, 100%);
  margin: 0 auto;
  padding: 24px clamp(18px, 4vw, 42px) 48px;
  animation: synapseSurfaceIn var(--synapse-motion-duration) var(--synapse-motion-ease) both;
}
.patient-information-page.hidden { display: none; }
.patient-information-page-header {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 16px;
  margin-bottom: 18px;
}
.patient-information-page-header h4 { margin: 2px 0 0; color: var(--tx); font-size: 21px; letter-spacing: -.025em; }
.patient-information-back-btn {
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid rgba(17,24,39,.08);
  border-radius: 11px;
  background: #fff;
  color: var(--tx-2);
  font-size: 11px;
  font-weight: 800;
}
.patient-information-back-btn:hover { border-color: rgba(var(--primary-rgb), .18); color: var(--primary); }
.patient-information-save-status { color: var(--tx-4); font-size: 10px; font-weight: 700; }
.patient-information-form { display: grid; gap: 12px; }
.patient-information-form fieldset {
  margin: 0;
  padding: 16px;
  border: 1px solid rgba(17,24,39,.07);
  border-radius: 16px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 8px 24px rgba(35,40,78,.04);
}
.patient-information-form legend { padding: 0 4px; color: var(--tx-3); font-size: 10px; font-weight: 850; letter-spacing: .045em; text-transform: uppercase; }
.patient-information-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.patient-information-grid label { display: grid; gap: 6px; color: var(--tx-3); font-size: 11px; font-weight: 750; }
.patient-information-grid input { width: 100%; min-height: 42px; padding: 9px 11px; color: var(--tx); font-size: 13px; font-weight: 650; }
.patient-information-wide { grid-column: 1 / -1; }

.sensitive-action-overlay { animation: fadeIn var(--synapse-motion-duration) var(--synapse-motion-ease) both; }
.sensitive-action-dialog {
  width: min(var(--synapse-floating-width), calc(100vw - 32px));
  padding: var(--synapse-floating-padding);
  border-radius: var(--synapse-floating-radius);
  font-family: var(--font);
  animation: synapseSurfaceIn var(--synapse-motion-duration) var(--synapse-motion-ease) both;
}

.session-toolbar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  margin: 4px 0 14px;
}
.session-toolbar .session-view-tabs { margin: 0; }
.session-toolbar .session-add-button { flex: 0 0 auto; }
.session-view-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.session-group > .session-item:first-child {
  border-color: rgba(var(--primary-rgb), .2);
  background: linear-gradient(145deg, #fff, rgba(246,247,255,.74));
  box-shadow: 0 12px 30px rgba(40,48,90,.07);
}
.session-item.session-item-next-highlight,
.session-item.session-item-priority-future { border-color: rgba(var(--primary-rgb), .2); }
.session-item.session-item-is-today {
  border-color: rgba(76,125,255,.34);
  box-shadow: 0 0 0 3px rgba(76,125,255,.055), 0 12px 30px rgba(40,48,90,.075);
}
.session-item-is-today .session-priority-badge {
  background: rgba(76,125,255,.1);
  color: #3568dc;
}

@media (max-width: 600px) {
  .synapse-floating-card {
    position: fixed;
    top: calc(var(--topbar-h) + 8px);
    right: 12px;
    left: 12px;
    width: auto;
    max-height: calc(100dvh - var(--topbar-h) - 28px);
  }
  .patient-notifications-panel.synapse-floating-card { top: calc(var(--topbar-h) + 8px); right: 12px; }
  .patient-information-page { padding: 16px 14px 36px; }
  .patient-information-page-header { grid-template-columns: 1fr auto; gap: 10px; }
  .patient-information-page-header .patient-information-back-btn { grid-column: 1; grid-row: 1; justify-self: start; }
  .patient-information-save-status { grid-column: 2; grid-row: 1; text-align: right; }
  .patient-information-grid { grid-template-columns: 1fr; }
  .patient-information-wide { grid-column: auto; }
  .session-toolbar { align-items: stretch; }
  .session-toolbar .session-add-button { min-width: 44px; padding-inline: 12px; }
  .session-section-heading h4 { font-size: var(--text-md); }
}

@media (prefers-reduced-motion: reduce) {
  .detail-panel:not(.hidden),
  .patient-area-panel:not(.hidden),
  [data-session-view]:not(.hidden),
  .synapse-floating-card,
  .sensitive-action-overlay,
  .sensitive-action-dialog { animation: none; }
}

.clinical-patient-row {
  grid-template-columns: 42px minmax(210px, 1.4fr) minmax(150px, .85fr) minmax(150px, .85fr) 90px 24px;
  gap: 18px;
  padding: 16px 12px;
  border-radius: 8px;
  border-bottom: 1px solid rgba(17,19,24,.06);
  transition: background 160ms var(--ease), transform 160ms var(--ease), box-shadow 160ms var(--ease);
}

.clinical-patient-row:hover {
  padding-left: 12px;
  padding-right: 12px;
  transform: translateY(-1px);
  background: rgba(var(--primary-rgb), .055);
  box-shadow: 0 10px 28px rgba(17,19,24,.055);
}

.clinical-patient-avatar {
  width: 36px;
  height: 36px;
  border-radius: 9px;
  background: linear-gradient(145deg, var(--syn-indigo-50), var(--syn-teal-50));
  color: var(--primary-dk);
}

.clinical-patient-score {
  align-items: flex-start;
}

.badge,
.dashboard-kind-chip,
.session-done-badge,
.session-origin-badge,
.dashboard-priority-high,
.dashboard-priority-normal {
  border-radius: 7px;
  font-weight: 800;
}

.dashboard-kind-chip-session,
.badge--session {
  background: var(--syn-blue-50);
  color: #245fce;
}

.dashboard-priority-high,
.badge.urgent {
  background: var(--syn-coral-50);
  color: var(--syn-coral-600);
}

.dashboard-priority-normal,
.badge.normal {
  background: rgba(17,19,24,.055);
  color: var(--tx-3);
}

.modal {
  background: rgba(17,19,24,.38);
  backdrop-filter: blur(14px) saturate(1.08);
}

.modal-content,
.detail-modal-content {
  border-radius: 12px;
  background: rgba(251,250,247,.96);
  border: 1px solid rgba(255,255,255,.72);
  box-shadow: 0 34px 90px rgba(17,19,24,.2);
}

.detail-header {
  border-radius: 12px 12px 0 0;
  background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(238,246,255,.76));
}

.role-selection-overlay {
  background:
    linear-gradient(135deg, rgba(238,246,255,.98), rgba(251,250,247,.96) 48%, rgba(234,251,247,.92)),
    radial-gradient(circle at 22% 18%, rgba(var(--primary-rgb), .18), transparent 280px);
}

.role-selection-modal {
  max-width: 500px;
  border-radius: 12px;
  padding: 42px;
}

.role-selection-header h1 {
  font-size: 28px;
  letter-spacing: 0;
}

.role-selection-btn {
  border-radius: 12px;
  padding: 18px;
}

.role-icon {
  border-radius: 10px;
}

.mobile-nav {
  background: rgba(251,250,247,.86);
  border-top: 1px solid rgba(17,19,24,.075);
  backdrop-filter: blur(20px) saturate(1.18);
}

.mobile-nav-item {
  color: var(--tx-3);
  font-weight: 800;
}

.mobile-nav-item.active {
  color: var(--primary-dk);
}

@keyframes synapseReveal {
  from { opacity: 0; transform: translateY(12px) scale(.99); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.dashboard-assistant-hero,
.workday-planner,
.metric-card,
.dashboard-card,
.patient-list-surface,
.library-card,
.patient-home-card {
  animation: synapseReveal 520ms var(--ease) both;
}

.metric-card:nth-child(2) { animation-delay: 45ms; }
.metric-card:nth-child(3) { animation-delay: 90ms; }
.dashboard-card { animation-delay: 120ms; }

@media (max-width: 1100px) {
  .main-content { padding: 28px 28px 48px; }
  .dashboard-assistant-hero { grid-template-columns: 1fr; }
  .dashboard-today-strip { width: 100%; min-width: 0; }
}

@media (max-width: 900px) {
  .app-layout { grid-template-columns: 1fr; }
  .topbar { padding: 10px 16px; }
  .main-content { padding: 22px 16px 92px; }
  .dashboard-tab { gap: 16px; }
  .dashboard-assistant-hero,
  .workday-planner,
  .dashboard-card,
  .patient-list-surface,
  .library-card { padding: 18px; }
  .dashboard-assistant-copy h1 { font-size: 32px; }
  .dashboard-today-strip,
  .dashboard-metrics-grid { grid-template-columns: 1fr; }
  .metric-card { min-height: 110px; }
  .workday-planner { grid-template-columns: 1fr; }
  .workday-planner-actions {
    grid-template-columns: 1fr;
    align-items: stretch;
    justify-content: stretch;
  }
  .clinical-patient-row {
    grid-template-columns: 38px minmax(0, 1fr) 22px;
    gap: 12px;
  }
  .clinical-patient-meta,
  .clinical-patient-score { display: none; }
}

@media (max-width: 560px) {
  .topbar { height: auto; align-items: stretch; gap: 10px; }
  .topbar-actions { justify-content: space-between; }
  .header-filters { overflow-x: auto; }
  .dashboard-assistant-copy h1 { font-size: 29px; }
  .dashboard-card,
  .patient-list-surface,
  .gym-exercise-card,
  .library-card,
  .patient-home-card { padding: 16px; }
  .search-panel { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .dashboard-assistant-hero,
  .workday-planner,
  .metric-card,
  .dashboard-card,
  .patient-list-surface,
  .library-card,
  .patient-home-card,
  .dashboard-tab,
  .patient-tab,
  .gym-tab,
  .library-tab,
  .patient-app-tab,
  .patient-home-tab {
    animation: none;
  }
  .gym-exercise-card { transition: none; }
}

.patient-workspace .patient-area-nav {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 560px) {
  .patient-workspace .patient-area-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.patient-initial-assessment,
.patient-bilans,
.patient-medical-documents {
  margin-bottom: var(--s4);
  padding: var(--s5);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--surface);
}
.patient-initial-assessment .shared-timeline-header { align-items: center; }
.patient-pre-intake-details { margin-top: var(--s4); }
.patient-pre-intake-details > summary { cursor: pointer; font-weight: var(--fw-sb); }
.patient-pre-intake-details .pre-intake { margin-top: var(--s4); }
.pre-intake-back { display: none; margin: 0 0 var(--s3); padding: 0; color: var(--primary); font-size: var(--text-sm); font-weight: var(--fw-sb); }
/* Le pré-bilan est un temps de saisie dédié : le reste du dossier reprend à la fermeture. */
.patient-initial-assessment:has(.patient-pre-intake-details[open]) ~ .patient-bilans,
.patient-initial-assessment:has(.patient-pre-intake-details[open]) ~ .patient-medical-documents { display: none; }
.app-shell.patient-pre-intake-focus.app-layout { grid-template-columns: minmax(0, 1fr); }
.app-shell.patient-pre-intake-focus .app-main { grid-column: 1; }
.app-shell.patient-pre-intake-focus .sidebar,
.app-shell.patient-pre-intake-focus .patient-app-header,
.app-shell.patient-pre-intake-focus .patient-area-nav,
.app-shell.patient-pre-intake-focus #patientPriorityAction,
.app-shell.patient-pre-intake-focus #patientAppProfile { display: none; }
.app-shell.patient-pre-intake-focus .main-content { max-width: none; padding-top: var(--s6); }
.app-shell.patient-pre-intake-focus #patientDocumentsArea { max-width: 820px; margin: 0 auto; }
.app-shell.patient-pre-intake-focus .patient-initial-assessment { padding: 0; border: 0; background: transparent; box-shadow: none; }
.app-shell.patient-pre-intake-focus .patient-initial-assessment > .shared-timeline-header,
.app-shell.patient-pre-intake-focus .patient-pre-intake-details > summary { display: none; }
.app-shell.patient-pre-intake-focus .patient-pre-intake-details { margin: 0; }
.app-shell.patient-pre-intake-focus .patient-pre-intake-details .pre-intake { margin-top: 0; padding: clamp(var(--s4), 4vw, var(--s7)); border: 1px solid var(--border); border-radius: var(--r-2xl); background: var(--surface); box-shadow: var(--sh-md); }
.app-shell.patient-pre-intake-focus .pre-intake-back { display: inline-flex; }
.app-shell.patient-pre-intake-focus #patientAppTab,
.app-shell.patient-pre-intake-focus .patient-workspace,
.app-shell.patient-pre-intake-focus #patientDocumentsArea,
.app-shell.patient-pre-intake-focus .patient-initial-assessment,
.app-shell.patient-pre-intake-focus .patient-pre-intake-details,
.app-shell.patient-pre-intake-focus #patientBeforeArea,
.app-shell.patient-pre-intake-focus .pre-intake,
.app-shell.patient-pre-intake-focus .pre-intake-form,
.app-shell.patient-pre-intake-focus .pre-intake-step { width: 100%; min-width: 0; }
.app-shell.patient-pre-intake-focus .pre-intake-step[hidden] { display: none !important; }

@media (max-width: 700px) {
  .app-shell.patient-pre-intake-focus .main-content {
    position: fixed;
    inset: 0;
    z-index: calc(var(--z-modal) + 10);
    width: 100%;
    max-width: none;
    padding: max(14px, env(safe-area-inset-top)) 14px max(18px, env(safe-area-inset-bottom));
    overflow-x: hidden;
    overflow-y: auto;
    background: var(--bg);
  }
  .app-shell.patient-pre-intake-focus #patientDocumentsArea { max-width: 640px; }
  .app-shell.patient-pre-intake-focus .patient-pre-intake-details .pre-intake {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  .app-shell.patient-pre-intake-focus .pre-intake-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 12px;
    align-items: center;
  }
  .app-shell.patient-pre-intake-focus .pre-intake-heading > div { min-width: 0; }
  .app-shell.patient-pre-intake-focus .pre-intake-back { margin-bottom: 10px; }
  .app-shell.patient-pre-intake-focus .pre-intake-heading .section-kicker,
  .app-shell.patient-pre-intake-focus .pre-intake-heading p:not(.section-kicker) { display: none; }
  .app-shell.patient-pre-intake-focus .pre-intake-heading h3 {
    margin: 0;
    font-size: clamp(22px, 7vw, 28px);
    line-height: 1.1;
  }
  .app-shell.patient-pre-intake-focus .pre-intake-heading .assessment-status {
    max-width: 112px;
    text-align: right;
  }
  .app-shell.patient-pre-intake-focus .pre-intake-progress { margin: 14px 0 16px; }
  .app-shell.patient-pre-intake-focus .pre-intake-form { gap: 12px; }
  .app-shell.patient-pre-intake-focus .pre-intake-step {
    padding: 16px;
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(31, 35, 67, .055);
  }
  .app-shell.patient-pre-intake-focus .pre-intake-step-header {
    align-items: flex-start;
    margin-bottom: 14px;
  }
  .app-shell.patient-pre-intake-focus .pre-intake-step-header > span {
    width: 30px;
    height: 30px;
  }
  .app-shell.patient-pre-intake-focus .pre-intake-step-header h4 {
    font-size: 17px;
    line-height: 1.25;
  }
  .app-shell.patient-pre-intake-focus .pre-intake-actions {
    position: sticky;
    bottom: max(0px, env(safe-area-inset-bottom));
    z-index: 2;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px;
    margin: 0 -4px;
    padding: 10px 4px 4px;
    background: linear-gradient(180deg, transparent, var(--bg) 24%);
  }
  .app-shell.patient-pre-intake-focus .pre-intake-actions > p {
    grid-column: 1 / -1;
    margin: 0;
  }
  .app-shell.patient-pre-intake-focus .pre-intake-actions button { min-height: 46px; }
  .app-shell.patient-pre-intake-focus .pre-intake-actions .primary-btn { width: 100%; }
}
.patient-bilans-list { display: grid; gap: var(--s3); }
.patient-bilan-card { display: grid; grid-template-columns: minmax(190px, .7fr) minmax(0, 1.3fr); gap: var(--s4); padding: var(--s4); border: 1px solid var(--border); background: var(--surface-2); }
.patient-bilan-card > div { display: flex; flex-direction: column; gap: 4px; }
.patient-bilan-card span { color: var(--tx-4); font-size: 10px; }
.patient-bilan-card strong { font-size: 13px; }
.patient-bilan-card p { color: var(--tx-3); font-size: 11px; line-height: 1.5; }

@media (max-width: 560px) {
  .patient-workspace .patient-area-nav button { white-space: normal; }
  .patient-initial-assessment,
  .patient-bilans,
  .patient-medical-documents { padding: var(--s4); }
  .patient-bilan-card { grid-template-columns: 1fr; gap: var(--s2); }
}

/* Accueil clinique compact : une information, un seul emplacement */
.dashboard-assistant-hero.dashboard-compact-hero {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  padding: 22px 24px;
}

.dashboard-compact-hero .dashboard-assistant-copy h1 {
  margin-bottom: 6px;
  font-size: clamp(28px, 3vw, 34px);
}

.dashboard-compact-hero .dashboard-assistant-copy p:last-child {
  max-width: 620px;
  font-size: 13px;
  line-height: 1.5;
}

.dashboard-compact-hero .dashboard-clinical-scope {
  position: relative;
  z-index: 1;
  min-height: 0;
  flex: 0 0 auto;
}

.dashboard-compact-hero .dashboard-clinical-scope .header-filters {
  background: rgba(255,255,255,.82);
}

.dashboard-tab { gap: 16px; }
.dashboard-metrics-grid { gap: 12px; }
.dashboard-metrics-grid .metric-card { min-height: 104px; padding: 16px 18px; }

@media (max-width: 900px) {
  .dashboard-assistant-hero.dashboard-compact-hero {
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 16px;
  }
  .dashboard-compact-hero .dashboard-clinical-scope {
    align-items: flex-start;
  }
}

/* Hiérarchie des actions : relief ton sur ton, couleur vive réservée au risque */
.session-open-actions,
.dashboard-overdue-sessions {
  border-color: rgba(70, 84, 207, .16);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .96), rgba(240, 242, 255, .68));
  box-shadow: 0 12px 28px rgba(40, 48, 90, .065);
}

.session-open-actions::before,
.dashboard-overdue-sessions::before {
  background: rgba(70, 84, 207, .72);
}

.session-open-actions-header strong,
.dashboard-overdue-sessions strong {
  color: var(--tx);
}

.session-open-action {
  border-color: rgba(70, 84, 207, .1);
  background: rgba(255, 255, 255, .84);
  box-shadow: 0 6px 16px rgba(40, 48, 90, .045);
}

.patient-context-card[data-state="ready"] {
  border-color: rgba(70, 84, 207, .16);
  background: rgba(240, 242, 255, .76);
}

.patient-context-card[data-state="ready"] .live-patient-indicator {
  background: var(--primary);
}

.patient-context-card.has-action-alert {
  border-color: rgba(70, 84, 207, .2);
}

.live-patient-copy > .patient-context-alert {
  background: rgba(70, 84, 207, .09);
  color: var(--primary-dk);
}

.feedback-item-pending {
  border-color: rgba(70, 84, 207, .18);
  box-shadow: inset 3px 0 0 rgba(70, 84, 207, .5);
}

.preparation-tone-warning {
  border-color: rgba(57, 65, 80, .16);
  background: rgba(57, 65, 80, .055);
}

.metric-subtext {
  color: var(--tx-2) !important;
  font-weight: 800;
}

/* Fil clinique : mêmes éléments du bilan à la séance et à l'évolution */
.clinical-links-panel,
.clinical-links-evolution {
  margin-top: 14px;
  padding: 16px;
  border: 1px solid rgba(70, 84, 207, .14);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .96), rgba(240, 242, 255, .56));
}

.clinical-links-heading,
.clinical-links-evolution-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.clinical-links-heading h5,
.clinical-links-evolution-heading h5 {
  margin: 0;
  color: var(--tx);
  font-size: 14px;
}
.clinical-links-heading > div > p:not(.section-kicker) { margin-top: 4px; max-width: 680px; color: var(--tx-3); font-size: 11px; line-height: 1.45; }

.clinical-links-evolution-heading span {
  color: var(--tx-3);
  font-size: 12px;
  font-weight: 700;
}

.clinical-links-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.clinical-link-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 3px 9px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid rgba(70, 84, 207, .1);
  border-radius: 12px;
  background: rgba(255, 255, 255, .82);
}

.clinical-link-item > input { width: 16px; height: 16px; margin: 0; accent-color: var(--primary); }
.clinical-link-item > .clinical-link-item-copy {
  display: grid;
  min-width: 0;
  gap: 2px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font-size: inherit;
  font-style: normal;
  font-weight: inherit;
  text-transform: none;
  letter-spacing: normal;
}
.clinical-link-item-copy > span { color: var(--primary-dk); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.clinical-link-item > em { color: var(--tx-4); font-size: 10px; font-style: normal; font-weight: 750; }
.clinical-link-item.is-selected { border-color: rgba(70, 84, 207, .24); background: rgba(240, 242, 255, .72); }
.clinical-link-item.is-selected > em { color: var(--primary-dk); }
.clinical-funnel-empty { grid-column: 1 / -1; padding: var(--s4); border: 1px dashed var(--border-strong); border-radius: var(--r-lg); color: var(--tx-3); font-size: var(--text-xs); }

.reassessment-overview {
  display: grid;
  gap: var(--s4);
  margin-bottom: var(--s5);
  padding: var(--s5);
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: var(--r-xl);
  background: rgba(255, 255, 255, .9);
  box-shadow: var(--sh-xs);
}
.reassessment-overview-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s4); }
.reassessment-overview-header h4 { margin-top: 2px; font-size: var(--text-lg); }
.reassessment-overview-header p:not(.section-kicker) { margin-top: 4px; color: var(--tx-3); font-size: var(--text-sm); }
.reassessment-overview-content { display: grid; gap: var(--s3); }
.reassessment-overview-items { display: flex; flex-wrap: wrap; gap: 7px; }
.reassessment-overview-items span { padding: 6px 9px; border-radius: var(--r-full); background: var(--primary-bg); color: var(--primary-dk); font-size: 11px; font-weight: 750; }
.reassessment-overview-content > p,
.reassessment-overview-empty { margin: 0; color: var(--tx-3); font-size: var(--text-xs); line-height: 1.5; }

.contextual-report-modal-content {
  width: min(920px, calc(100vw - 32px));
  max-width: 920px;
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
}
.contextual-report-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s4); }
.contextual-report-header h3 { margin: 2px 0 0; }
.contextual-report-header p:not(.section-kicker) { margin-top: 4px; color: var(--tx-3); font-size: var(--text-xs); }
.contextual-report-boundary { margin: var(--s4) 0; padding: var(--s4); border-left: 4px solid var(--syn-amber-500); border-radius: 0 var(--r-lg) var(--r-lg) 0; background: var(--clr-wa-50); }
.contextual-report-boundary strong { color: var(--tx-2); font-size: var(--text-xs); }
.contextual-report-boundary p { margin-top: 3px; color: var(--tx-3); font-size: 10px; line-height: 1.5; }
.contextual-report-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); }
.contextual-report-options label,
.contextual-report-editor { display: grid; gap: var(--s2); color: var(--tx-2); font-size: var(--text-xs); font-weight: var(--fw-sb); }
.contextual-report-editor { margin-top: var(--s4); }
.contextual-report-options select,
.contextual-report-editor textarea { width: 100%; }
.contextual-report-editor textarea { min-height: 360px; resize: vertical; font-family: var(--font); line-height: 1.55; }
.contextual-report-footer { display: flex; align-items: center; justify-content: flex-end; gap: var(--s2); margin-top: var(--s4); flex-wrap: wrap; }
.contextual-report-footer .assessment-save-message { min-width: 220px; margin-right: auto; }
@media (max-width: 700px) {
  .contextual-report-modal-content { width: 100%; max-width: none; min-height: 100dvh; max-height: 100dvh; border-radius: 0; }
  .contextual-report-options { grid-template-columns: 1fr; }
  .contextual-report-editor textarea { min-height: 320px; }
  .contextual-report-footer { align-items: stretch; flex-direction: column; }
  .contextual-report-footer .assessment-save-message { min-width: 0; margin-right: 0; }
  .contextual-report-footer > button { width: 100%; }
  .session-phase-history-heading { align-items: stretch; flex-direction: column; }
  .session-phase-history-heading > button { width: 100%; }
}

.clinical-link-item > span {
  grid-row: 1 / span 2;
  align-self: start;
  padding: 3px 7px;
  border-radius: 999px;
  background: var(--clr-p-50);
  color: var(--primary-dk);
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.clinical-link-item strong {
  min-width: 0;
  color: var(--tx);
  font-size: 13px;
  line-height: 1.35;
}

.clinical-link-item small {
  color: var(--tx-3);
  font-size: 11px;
}

.session-clinical-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 9px 0;
}

.session-clinical-links > span {
  color: var(--tx-3);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.session-clinical-links em {
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(70, 84, 207, .08);
  color: var(--primary-dk);
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
}

.session-active-measures {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 8px 10px;
  margin: 7px 0 11px;
}
.session-active-measures > span { color: var(--tx-3); font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.session-active-measures > div { display: flex; min-width: 0; flex-wrap: wrap; gap: 6px; }
.session-active-measure {
  display: inline-grid;
  grid-template-columns: auto auto;
  gap: 1px 6px;
  padding: 6px 9px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 11px;
  background: rgba(var(--primary-rgb), .055);
}
.session-active-measure strong { color: var(--primary-dk); font-size: 11px; }
.session-active-measure em { padding: 0; background: transparent; color: var(--tx); font-size: 11px; font-style: normal; }
.session-active-measure small { grid-column: 1 / -1; color: var(--tx-4); font-size: 9px; }

.session-objectives {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 8px 10px;
  margin: 10px 0 6px;
}
.session-objectives > span { color: var(--primary-dk); font-size: 13px; letter-spacing: 0; text-transform: none; }
.session-objective-chips { display: flex; min-width: 0; align-items: center; flex-wrap: wrap; gap: 7px; }
.session-objective-chip {
  display: inline-flex;
  max-width: min(100%, 680px);
  min-width: 0;
  align-items: center;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(var(--primary-rgb), .13), rgba(var(--primary-rgb), .08));
}
.session-objective-chips em {
  max-width: min(100%, 680px);
  padding: 7px 13px;
  background: transparent;
  color: var(--primary-dk);
  font-size: 13px;
  line-height: 1.35;
}
.session-objective-remove {
  display: grid;
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  margin-right: 5px;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .08);
  color: var(--primary-dk);
  font: 700 17px/1 var(--font);
  cursor: pointer;
  transition: background 160ms ease, transform 160ms ease;
}
.session-objective-remove:hover { background: rgba(var(--primary-rgb), .17); transform: scale(1.04); }
.session-objective-remove:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .22); outline-offset: 1px; }
.session-objective-add {
  display: grid;
  width: 31px;
  height: 31px;
  flex: 0 0 31px;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: var(--primary);
  box-shadow: 0 5px 14px rgba(var(--primary-rgb), .2);
  color: #fff;
  font: 800 18px/1 var(--font);
  cursor: pointer;
  transition: transform 180ms ease, box-shadow 180ms ease;
}
.session-objective-add:hover { transform: translateY(-1px); box-shadow: 0 7px 18px rgba(var(--primary-rgb), .25); }
.session-objective-add:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .2); outline-offset: 2px; }
.session-objective-entry {
  grid-column: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 9px;
}
.session-objective-entry.hidden { display: none; }
.session-framework-suggestions {
  display: grid;
  min-width: 0;
  gap: 7px;
  padding: 10px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 15px;
  background: linear-gradient(135deg, rgba(var(--primary-rgb), .055), rgba(255, 255, 255, .8));
}
.session-framework-suggestions.is-empty { color: var(--tx-3); }
.session-framework-suggestions.is-empty > span,
.session-framework-suggestions-heading > span {
  color: var(--tx-2);
  font-size: 11px;
  font-weight: 850;
}
.session-framework-suggestions.is-empty p { margin: 0; font-size: 11px; line-height: 1.45; }
.session-framework-suggestions-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.session-framework-suggestions-heading small {
  color: var(--tx-4);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.session-framework-suggestions > div:last-child { display: grid; min-width: 0; gap: 7px; }
.session-framework-suggestions > div:last-child > button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  min-width: 0;
  align-items: start;
  gap: 9px;
  padding: 10px 11px;
  border: 1px solid rgba(var(--primary-rgb), .11);
  border-radius: 12px;
  background: rgba(255, 255, 255, .78);
  color: var(--tx);
  font: 700 11px/1.35 var(--font);
  text-align: left;
  cursor: pointer;
}
.session-framework-suggestions > div:last-child > button:hover,
.session-framework-suggestions > div:last-child > button:focus-visible {
  border-color: rgba(var(--primary-rgb), .3);
  outline: 3px solid rgba(var(--primary-rgb), .08);
  background: #fff;
}
.session-framework-copy { display: grid; min-width: 0; gap: 3px; }
.session-framework-copy strong { color: var(--primary-dk); font-size: 12px; font-weight: 850; }
.session-framework-copy small { color: var(--tx-3); font-size: 10px; line-height: 1.35; overflow-wrap: anywhere; }
.session-framework-copy small em { color: var(--tx-2); font-style: normal; font-weight: 800; }
.session-framework-copy .session-framework-limitation { color: var(--tx-4); }
.session-framework-coverage {
  padding: 4px 7px;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .08);
  color: var(--tx-3);
  font-size: 9px;
  font-weight: 800;
  white-space: nowrap;
}
.session-work-track-suggestions { display: grid; min-width: 0; gap: 7px; }
.session-work-track-suggestions > span { color: var(--tx-3); font-size: 10px; font-weight: 800; letter-spacing: .02em; }
.session-work-track-suggestions > div { display: grid; min-width: 0; gap: 6px; }
.session-work-track-suggestions button {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 12px;
  background: rgba(var(--primary-rgb), .055);
  color: var(--primary-dk);
  font: 750 12px/1.3 var(--font);
  text-align: left;
  cursor: pointer;
}
.session-work-track-suggestions button:hover,
.session-work-track-suggestions button:focus-visible { border-color: rgba(var(--primary-rgb), .32); outline: 3px solid rgba(var(--primary-rgb), .08); background: rgba(var(--primary-rgb), .1); }
.session-work-track-rank {
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 50%;
  background: rgba(var(--primary-rgb), .12);
  color: var(--primary-dk);
  font-size: 10px;
  font-weight: 850;
}
.session-work-track-copy { display: grid; min-width: 0; gap: 3px; padding-top: 2px; }
.session-work-track-label { min-width: 0; overflow-wrap: anywhere; font: inherit; }
.session-work-track-copy small {
  color: var(--tx-3);
  font: 650 10px/1.35 var(--font);
  overflow-wrap: anywhere;
}
.session-work-track-copy small em { color: var(--tx-2); font-style: normal; font-weight: 800; }
.session-work-track-empty { margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.45; }
.session-objective-custom-entry { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 7px; align-items: center; }
.session-objective-custom-entry input { min-height: 38px; border: 1px solid rgba(var(--primary-rgb), .15); border-radius: 12px; background: #fff; font-size: 13px; }
.session-objective-custom-entry .primary-btn { min-height: 38px; padding: 8px 12px; }

@media (max-width: 680px) {
  .clinical-links-list { grid-template-columns: 1fr; }
  .clinical-links-heading,
  .clinical-links-evolution-heading { align-items: flex-start; }
  .clinical-links-evolution-heading { flex-direction: column; gap: 4px; }
  .clinical-links-panel,
  .clinical-links-evolution { padding: 13px; }
  .session-objectives { grid-template-columns: 1fr; }
  .session-active-measures { grid-template-columns: 1fr; }
  .session-objective-chips, .session-objective-entry { grid-column: 1; }
  .session-work-track-suggestions { align-items: stretch; }
  .session-framework-suggestions > div:last-child > button { grid-template-columns: 1fr; }
  .session-framework-coverage { width: fit-content; }
  .session-framework-selection { border-radius: 13px; }
  .session-framework-selection > span { display: none; }
  .session-objective-custom-entry { grid-template-columns: 1fr auto; }
  .session-objective-custom-entry .session-inline-link { grid-column: 1 / -1; justify-self: start; }
  .session-prototype-workspace { padding: 0; }
  .session-unusual-description { grid-template-columns: 1fr; padding: 0 4px; }
  .session-unusual-description > small { grid-column: 1; }
  .session-unusual-description-control { align-items: stretch; flex-direction: column; }
  .session-unusual-confirm-button { width: 100%; }
  .session-exercise-symptom-state { align-items: stretch; flex-direction: column; }
  .session-exercise-symptom-state > div:first-child { flex-basis: auto; }
  .session-exercise-symptom-state > button,
  .session-prepared-deferral-action { width: 100%; min-height: 36px; }
  .session-prepared-deferral-status { align-items: stretch; flex-direction: column; }
}

/* Écran d’entrée — prototype d’authentification */
.authentication-overlay {
  position: fixed;
  inset: 0;
  z-index: calc(var(--z-overlay) + 2);
  display: grid;
  place-items: center;
  min-height: 100dvh;
  padding: clamp(20px, 4vw, 48px);
  overflow: auto;
  background:
    radial-gradient(circle at 18% 14%, rgba(108, 126, 236, .17), transparent 31%),
    radial-gradient(circle at 84% 82%, rgba(144, 128, 232, .13), transparent 30%),
    linear-gradient(145deg, #edf3ff 0%, #fbfaf7 48%, #f3efff 100%);
  isolation: isolate;
}

.authentication-overlay.hidden { display: none; }

.authentication-ambient {
  position: fixed;
  z-index: -1;
  border-radius: 999px;
  filter: blur(1px);
  opacity: .58;
  pointer-events: none;
}

.authentication-ambient-one {
  top: -110px;
  right: 8%;
  width: 330px;
  height: 330px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  box-shadow: inset 0 0 80px rgba(255, 255, 255, .42);
}

.authentication-ambient-two {
  bottom: -160px;
  left: 3%;
  width: 410px;
  height: 410px;
  background: rgba(255, 255, 255, .24);
  border: 1px solid rgba(var(--primary-rgb), .08);
}

.authentication-card {
  width: min(100%, 440px);
  padding: clamp(27px, 4vw, 34px);
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 30px;
  background: rgba(255, 255, 255, .82);
  box-shadow: 0 30px 85px rgba(37, 46, 91, .14), 0 4px 16px rgba(37, 46, 91, .06);
  backdrop-filter: blur(28px) saturate(1.12);
  transition: box-shadow 220ms ease, border-color 220ms ease;
}

.authentication-brand {
  display: grid;
  justify-items: center;
  margin-bottom: 18px;
  text-align: center;
}

.authentication-brand-lockup {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
}

.authentication-brand-copy { text-align: left; }
.authentication-logo-shell { position: relative; flex: 0 0 auto; }

.authentication-logo {
  display: block;
  width: 60px;
  height: 60px;
}

.authentication-wordmark {
  color: #171c32;
  font-size: clamp(28px, 7vw, 33px);
  font-weight: 800;
  letter-spacing: -.045em;
  line-height: 1;
}

.authentication-brand p {
  margin: 6px 0 0;
  color: #6c7288;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .015em;
}

.authentication-profile-switch {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  width: min(100%, 330px);
  margin-top: 15px;
  padding: 4px;
  border: 1px solid rgba(31, 42, 89, .07);
  border-radius: 15px;
  background: rgba(236, 239, 247, .72);
}

.authentication-profile-option {
  display: inline-flex;
  min-height: 37px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 15px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: #7b8193;
  font: 750 12px/1 var(--font);
  cursor: pointer;
  transition: color 180ms ease, background 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.authentication-profile-option:hover { color: #4856c0; }
.authentication-profile-option.active {
  background: rgba(255, 255, 255, .96);
  color: #4856c0;
  box-shadow: 0 4px 12px rgba(42, 52, 102, .1);
}
.authentication-profile-option:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .16); outline-offset: 2px; }

.authentication-view[hidden] { display: none; }

.authentication-heading { margin-bottom: 19px; text-align: center; }
.authentication-heading h1 {
  margin: 0;
  color: #171c32;
  font-size: clamp(22px, 5vw, 27px);
  font-weight: 750;
  letter-spacing: -.025em;
}
.authentication-heading p {
  margin: 8px auto 0;
  max-width: 330px;
  color: #777d91;
  font-size: 13px;
  line-height: 1.55;
}

.authentication-form { display: grid; gap: 9px; }
.authentication-form label,
.authentication-label-row label {
  color: #343a50;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .01em;
}

.authentication-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 7px;
}

.authentication-form input {
  width: 100%;
  min-height: 50px;
  padding: 0 15px;
  border: 1px solid rgba(31, 42, 89, .11);
  border-radius: 15px;
  outline: none;
  background: rgba(250, 251, 255, .9);
  color: #171c32;
  font: 600 14px/1 var(--font);
  box-shadow: inset 0 1px 1px rgba(32, 42, 82, .02);
  transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.authentication-form input:hover { border-color: rgba(var(--primary-rgb), .26); }
.authentication-form input:focus {
  border-color: rgba(var(--primary-rgb), .64);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(var(--primary-rgb), .1);
}

.authentication-password-field { position: relative; }
.authentication-password-field input { padding-right: 52px; }
.authentication-password-toggle {
  position: absolute;
  top: 50%;
  right: 8px;
  display: grid;
  width: 36px;
  height: 36px;
  padding: 0;
  place-items: center;
  transform: translateY(-50%);
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: #777d91;
  cursor: pointer;
}
.authentication-password-toggle:hover,
.authentication-password-toggle:focus-visible { background: rgba(var(--primary-rgb), .08); color: #4856c0; outline: none; }
.authentication-eye-icon {
  width: 18px;
  height: 18px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5C6.8 5 3.2 8.4 1.8 11.2a1.8 1.8 0 0 0 0 1.6C3.2 15.6 6.8 19 12 19s8.8-3.4 10.2-6.2a1.8 1.8 0 0 0 0-1.6C20.8 8.4 17.2 5 12 5Zm0 11a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5C6.8 5 3.2 8.4 1.8 11.2a1.8 1.8 0 0 0 0 1.6C3.2 15.6 6.8 19 12 19s8.8-3.4 10.2-6.2a1.8 1.8 0 0 0 0-1.6C20.8 8.4 17.2 5 12 5Zm0 11a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.account-credentials-dialog {
  width: min(520px, calc(100vw - 28px));
  padding: 0;
  border: 0;
  border-radius: 24px;
  background: transparent;
  box-shadow: 0 28px 80px rgba(20, 32, 70, .28);
}
.account-credentials-dialog::backdrop { background: rgba(25, 32, 57, .34); backdrop-filter: blur(5px); }
.account-credentials-card { display: grid; gap: 14px; padding: 24px; border: 1px solid rgba(var(--primary-rgb), .14); border-radius: 24px; background: #fff; }
.account-credentials-card header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.account-credentials-card header span { color: var(--primary); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.account-credentials-card h3 { margin: 4px 0 0; color: #1e2742; font-size: 24px; }
.account-credentials-card > p { margin: 0; color: #69718a; font-size: 13px; line-height: 1.5; }
.account-credentials-card label { display: grid; gap: 6px; color: #303952; font-size: 12px; font-weight: 750; }
.account-credentials-card input { box-sizing: border-box; width: 100%; min-height: 48px; padding: 0 13px; border: 1px solid rgba(var(--primary-rgb), .2); border-radius: 13px; background: #fbfcff; color: #171c32; font: 650 14px/1 var(--font); }
.account-credentials-card input:focus { border-color: rgba(var(--primary-rgb), .7); outline: 3px solid rgba(var(--primary-rgb), .12); }
.account-credentials-close { width: 36px; height: 36px; border: 0; border-radius: 50%; background: rgba(var(--primary-rgb), .08); color: #4f5871; font-size: 22px; cursor: pointer; }
.account-credentials-card .account-credentials-hint { font-size: 11px; }
#accountCredentialsStatus { min-height: 18px; color: #69718a; }
#accountCredentialsStatus.is-error { color: #b33a45; }
#accountCredentialsStatus.is-success { color: #23755f; }
.account-credentials-actions { display: grid; grid-template-columns: auto minmax(180px, 1fr); gap: 10px; }
.account-credentials-actions button { min-height: 46px; }
@media (max-width: 520px) {
  .account-credentials-card { padding: 19px; }
  .account-credentials-actions { grid-template-columns: 1fr; }
}

.authentication-text-action,
.authentication-secondary-action button,
.authentication-back {
  padding: 0;
  border: 0;
  background: transparent;
  color: #5261ca;
  font: 700 12px/1.25 var(--font);
  cursor: pointer;
}
.authentication-text-action:hover,
.authentication-secondary-action button:hover,
.authentication-back:hover { color: #3842a0; text-decoration: underline; text-underline-offset: 3px; }
.authentication-text-action:focus-visible,
.authentication-secondary-action button:focus-visible,
.authentication-back:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .16); outline-offset: 4px; border-radius: 4px; }

.authentication-form button.authentication-submit {
  min-height: 52px;
  margin-top: 8px;
  border: 0;
  border-radius: 16px;
  background: linear-gradient(135deg, #6f7ce7, #4c5ac5);
  color: #fff;
  font: 750 14px/1 var(--font);
  box-shadow: 0 10px 22px rgba(76, 90, 197, .22);
  cursor: pointer;
  transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}
.authentication-form button.authentication-submit:hover { transform: translateY(-1px); background: linear-gradient(135deg, #6573df, #4351bb); filter: saturate(1.08); box-shadow: 0 13px 27px rgba(76, 90, 197, .27); }
.authentication-form button.authentication-submit:active { transform: translateY(0); }
.authentication-form button.authentication-submit:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .2); outline-offset: 3px; }
.authentication-quick-demo { width: 100%; min-height: 42px; margin-top: 2px; border: 1px solid rgba(82,97,202,.2); border-radius: 13px; background: rgba(82,97,202,.06); color: #4654bc; font: 750 12px/1 var(--font); cursor: pointer; }
.authentication-quick-demo:hover { background: rgba(82,97,202,.11); }
.authentication-quick-demo[hidden], html.native-mobile-app .authentication-quick-demo { display: none !important; }
.authentication-status {
  min-height: 18px;
  margin: 2px 0 -2px;
  color: #6f7588;
  font-size: 11px;
  line-height: 1.45;
}
.authentication-status.is-error { color: #b33a45; }
.authentication-status.is-success { color: #23755f; }

.authentication-secondary-action {
  margin: 17px 0 0;
  color: #777d91;
  font-size: 12px;
  text-align: center;
}
.authentication-secondary-action button { font-size: inherit; }
.authentication-back { display: inline-flex; margin-bottom: 25px; color: #656c81; }
.authentication-prototype-note {
  margin: 20px 0 -3px;
  color: #959aac;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .02em;
  line-height: 1.45;
  text-align: center;
}

@media (max-width: 560px) {
  .authentication-overlay { align-items: start; padding: max(18px, env(safe-area-inset-top)) 14px max(18px, env(safe-area-inset-bottom)); }
  .authentication-card { margin: auto 0; padding: 27px 21px 24px; border-radius: 24px; }
  .authentication-brand { margin-bottom: 20px; }
  .authentication-brand-lockup { gap: 13px; }
  .authentication-logo { width: 58px; height: 58px; }
  .authentication-heading { margin-bottom: 21px; }
  .authentication-form input { min-height: 50px; font-size: 16px; }
  .authentication-submit { min-height: 52px; }
}

@media (prefers-reduced-motion: reduce) {
  .authentication-form input,
  .authentication-submit { transition: none; }
}

/* Guide intégré pour les binômes du test pilote. */
#pilotGuideModal { z-index: calc(var(--z-overlay) + 3); }
.authentication-pilot-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
  padding: 12px 13px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 16px;
  background: rgba(var(--primary-rgb), .055);
}
.authentication-pilot-entry > div { display: grid; gap: 3px; min-width: 0; }
.authentication-pilot-entry strong { color: #343a50; font-size: 11px; }
.authentication-pilot-entry span { color: #777d91; font-size: 9px; line-height: 1.45; }
.authentication-pilot-entry button,
.patient-profile-pilot-btn {
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid rgba(var(--primary-rgb), .2);
  border-radius: 11px;
  background: rgba(255, 255, 255, .82);
  color: #4856c0;
  font: 700 10px/1.2 var(--font);
  cursor: pointer;
}
.authentication-pilot-entry button:hover,
.authentication-pilot-entry button:focus-visible,
.patient-profile-pilot-btn:hover,
.patient-profile-pilot-btn:focus-visible {
  border-color: rgba(var(--primary-rgb), .42);
  background: #fff;
  outline: 3px solid rgba(var(--primary-rgb), .1);
}
.patient-profile-pilot-btn { width: 100%; margin-top: var(--s4); }
.patient-profile-pilot-btn + .patient-profile-logout-btn { margin-top: var(--s2); }
.pilot-guide-settings-card { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); }
.pilot-guide-settings-card > div { display: grid; min-width: 0; gap: 5px; }
.pilot-guide-settings-card .primary-btn { flex: 0 0 auto; }
.pilot-guide-modal-content {
  width: min(660px, 100%);
  max-width: 660px;
  max-height: min(780px, calc(100dvh - 40px));
  padding: 0;
  overflow-y: auto;
}
.pilot-guide-header { padding: 22px 24px 16px; border-bottom: 1px solid var(--border); }
.pilot-guide-header h3 { margin: 3px 0 0; }
.pilot-guide-body { display: grid; gap: 20px; padding: 20px 24px; }
.pilot-guide-role-card {
  display: grid;
  gap: 5px;
  padding: 16px 17px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: var(--r-xl);
  background: linear-gradient(135deg, rgba(var(--primary-rgb), .09), rgba(153, 130, 225, .07));
}
.pilot-guide-role-card span { color: var(--primary); font-size: 9px; font-weight: var(--fw-b); letter-spacing: .08em; text-transform: uppercase; }
.pilot-guide-role-card strong { color: var(--tx); font-size: 18px; }
.pilot-guide-role-card p { margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.55; }
.pilot-guide-section { display: grid; gap: 11px; }
.pilot-guide-section h4 { margin: 0; color: var(--tx); font-size: 13px; }
.pilot-guide-section-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.pilot-guide-section-heading span {
  padding: 5px 9px;
  border-radius: var(--r-full);
  background: var(--primary-bg);
  color: var(--primary-dk);
  font-size: 9px;
  font-weight: var(--fw-b);
}
.pilot-guide-rules,
.pilot-guide-missions { display: grid; gap: 9px; margin: 0; padding-left: 23px; color: var(--tx-2); font-size: 11px; line-height: 1.55; }
.pilot-guide-rules li::marker { color: var(--primary); }
.pilot-guide-missions { padding: 0; list-style: none; counter-reset: pilot-mission; }
.pilot-guide-missions li {
  position: relative;
  min-height: 34px;
  padding: 9px 12px 9px 46px;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--surface-2);
  counter-increment: pilot-mission;
}
.pilot-guide-missions li::before {
  position: absolute;
  top: 8px;
  left: 10px;
  display: grid;
  width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 50%;
  background: var(--primary-bg);
  color: var(--primary);
  content: counter(pilot-mission);
  font-size: 10px;
  font-weight: var(--fw-b);
}
.pilot-campaign-section { padding: 16px; border-radius: var(--r-xl); background: linear-gradient(145deg, rgba(var(--primary-rgb), .08), rgba(246, 179, 74, .07)); }
.pilot-campaign-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); }
.pilot-campaign-heading > div { display: grid; gap: 3px; }
.pilot-campaign-heading p { margin: 0; color: var(--primary); font-size: 9px; font-weight: var(--fw-b); letter-spacing: .07em; text-transform: uppercase; }
.pilot-campaign-heading h4 { font-size: 14px; }
.pilot-campaign-heading > span { padding: 5px 9px; border-radius: var(--r-full); background: rgba(255, 255, 255, .8); color: var(--primary-dk); font-size: 9px; font-weight: var(--fw-b); }
.pilot-campaign-timeline { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.pilot-campaign-timeline span { display: grid; gap: 2px; padding-top: 8px; border-top: 2px solid rgba(var(--primary-rgb), .18); color: var(--tx-4); font-size: 8px; line-height: 1.35; }
.pilot-campaign-timeline b { color: var(--tx-2); font-size: 9px; }
.pilot-campaign-patient-list { display: grid; gap: 7px; }
.pilot-campaign-patient { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 11px; border: 1px solid rgba(var(--primary-rgb), .1); border-radius: var(--r-lg); background: rgba(255, 255, 255, .72); }
.pilot-campaign-patient > div { display: grid; gap: 2px; min-width: 0; }
.pilot-campaign-patient span { color: var(--primary); font-size: 8px; font-weight: var(--fw-b); text-transform: uppercase; }
.pilot-campaign-patient strong { color: var(--tx); font-size: 11px; }
.pilot-campaign-patient p { margin: 0; color: var(--tx-3); font-size: 9px; line-height: 1.4; }
.pilot-campaign-patient button { min-height: 32px; padding: 6px 10px; white-space: nowrap; }
.pilot-campaign-actions { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.pilot-campaign-actions small { max-width: 310px; color: var(--tx-4); font-size: 8px; line-height: 1.4; }
.pilot-guide-handoff { padding: 13px 15px; border-radius: var(--r-lg); background: rgba(224, 164, 69, .09); }
.pilot-guide-handoff strong { color: var(--tx); font-size: 11px; }
.pilot-guide-handoff p { margin: 4px 0 0; color: var(--tx-3); font-size: 10px; line-height: 1.5; }
.pilot-guide-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
  padding: 15px 24px 20px;
  border-top: 1px solid var(--border);
}
.pilot-guide-footer p { max-width: 390px; margin: 0; color: var(--tx-4); font-size: 9px; line-height: 1.45; }
.pilot-guide-footer .primary-btn { flex: 0 0 auto; }

@media (max-width: 560px) {
  .authentication-pilot-entry { grid-template-columns: 1fr; }
  .authentication-pilot-entry button { width: 100%; }
  .pilot-guide-settings-card { align-items: stretch; flex-direction: column; }
  .pilot-guide-settings-card .primary-btn { width: 100%; }
  .pilot-guide-modal-content { max-height: calc(100dvh - 24px); border-radius: 22px; }
  .pilot-guide-header { padding: 18px 18px 14px; }
  .pilot-guide-body { gap: 17px; padding: 17px 18px; }
  .pilot-guide-footer { align-items: stretch; flex-direction: column; padding: 14px 18px 18px; }
  .pilot-campaign-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pilot-campaign-patient { grid-template-columns: 1fr; }
  .pilot-campaign-actions { align-items: stretch; flex-direction: column; }
  .pilot-guide-footer .primary-btn { width: 100%; min-height: 44px; }
}

/* Tutoriel de première utilisation : quatre repères, distincts du guide de recette. */
.first-use-tutorial-settings-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
}
.first-use-tutorial-settings-card > div { display: grid; min-width: 0; gap: 5px; }
.first-use-tutorial-settings-card .secondary-btn { flex: 0 0 auto; }
.first-use-tutorial-modal {
  padding: 20px;
  background: rgba(27, 31, 54, .46);
  backdrop-filter: blur(8px);
}
.first-use-tutorial-content {
  width: min(600px, 100%);
  max-width: 600px;
  min-height: 520px;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: 30px;
  background:
    radial-gradient(circle at 90% 8%, rgba(245, 176, 91, .2), transparent 30%),
    linear-gradient(155deg, #fff 0%, #fbfaff 62%, #f5f1ff 100%);
  box-shadow: 0 28px 80px rgba(29, 31, 55, .22);
}
.first-use-tutorial-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s4);
  padding: 24px 26px 8px;
}
.first-use-tutorial-header > div { display: grid; gap: 4px; }
.first-use-tutorial-header .app-label { margin: 0; color: var(--primary); }
.first-use-tutorial-header #firstUseTutorialCounter {
  color: var(--tx-4);
  font-size: 11px;
  font-weight: var(--fw-b);
}
.first-use-tutorial-progress {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  padding: 10px 26px 0;
}
.first-use-tutorial-progress span {
  height: 4px;
  overflow: hidden;
  border-radius: var(--r-full);
  background: rgba(var(--primary-rgb), .13);
}
.first-use-tutorial-progress span.is-active { background: linear-gradient(90deg, var(--primary), #9580e1); }
.first-use-tutorial-step {
  display: grid;
  align-content: start;
  min-height: 330px;
  padding: 34px 42px 26px;
}
.first-use-tutorial-icon {
  display: grid;
  width: 62px;
  height: 62px;
  margin-bottom: 24px;
  place-items: center;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: 21px;
  background: linear-gradient(145deg, rgba(var(--primary-rgb), .14), rgba(246, 179, 74, .15));
  color: var(--primary-dk);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -.02em;
  box-shadow: 0 12px 28px rgba(var(--primary-rgb), .1);
}
.first-use-tutorial-eyebrow {
  margin: 0 0 7px;
  color: var(--primary);
  font-size: 11px;
  font-weight: var(--fw-b);
  letter-spacing: .07em;
  text-transform: uppercase;
}
.first-use-tutorial-step h2 {
  max-width: 480px;
  margin: 0;
  color: var(--tx);
  font-size: clamp(25px, 4vw, 34px);
  line-height: 1.08;
  letter-spacing: -.035em;
}
.first-use-tutorial-step > p:not(.first-use-tutorial-eyebrow) {
  max-width: 490px;
  margin: 15px 0 0;
  color: var(--tx-2);
  font-size: 14px;
  line-height: 1.55;
}
.first-use-tutorial-step ul {
  display: grid;
  gap: 8px;
  margin: 19px 0 0;
  padding: 0;
  color: var(--tx-3);
  line-height: 1.45;
  list-style: none;
}
.first-use-tutorial-step li {
  position: relative;
  padding-left: 20px;
}
.first-use-tutorial-step li::before {
  position: absolute;
  top: .46em;
  left: 2px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #69bcae;
  content: '';
}
.first-use-tutorial-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
  padding: 17px 26px 24px;
  border-top: 1px solid rgba(var(--primary-rgb), .1);
  background: rgba(255, 255, 255, .5);
}
.first-use-tutorial-footer > div { display: flex; align-items: center; gap: 9px; }
.first-use-tutorial-footer button { min-height: 42px; }
.first-use-tutorial-footer .session-inline-link { padding-inline: 2px; color: var(--tx-4); }
.first-use-tutorial-footer .is-invisible { visibility: hidden; }

@media (max-width: 560px) {
  .first-use-tutorial-settings-card { align-items: stretch; flex-direction: column; }
  .first-use-tutorial-settings-card .secondary-btn { width: 100%; }
  .first-use-tutorial-modal {
    align-items: end;
    padding: 10px;
  }
  .first-use-tutorial-content {
    width: 100%;
    min-height: min(590px, calc(100dvh - 20px));
    max-height: calc(100dvh - 20px);
    border-radius: 25px;
  }
  .first-use-tutorial-header { padding: 19px 19px 7px; }
  .first-use-tutorial-progress { padding: 9px 19px 0; }
  .first-use-tutorial-step {
    min-height: 0;
    padding: 28px 22px 20px;
  }
  .first-use-tutorial-icon {
    width: 54px;
    height: 54px;
    margin-bottom: 20px;
    border-radius: 18px;
    font-size: 16px;
  }
  .first-use-tutorial-step h2 { font-size: clamp(24px, 8vw, 31px); }
  .first-use-tutorial-step > p:not(.first-use-tutorial-eyebrow) { font-size: 13px; }
  .first-use-tutorial-step ul { margin-top: 16px; font-size: 11px; }
  .first-use-tutorial-footer {
    align-items: stretch;
    padding: 14px 19px 18px;
  }
  .first-use-tutorial-footer > div { flex: 1; justify-content: flex-end; }
  .first-use-tutorial-footer .primary-btn { min-width: 118px; }
}

@media (max-height: 620px) {
  .first-use-tutorial-content { min-height: 0; max-height: calc(100dvh - 20px); overflow-y: auto; }
  .first-use-tutorial-step { min-height: 0; padding-block: 20px; }
  .first-use-tutorial-icon { width: 46px; height: 46px; margin-bottom: 14px; }
}

/* Mode séance : parcours actif mono-exercice, distinct de la préparation kiné. */
.session-ready-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.session-ready-patient-status { display: inline-flex; align-items: center; min-height: 38px; padding: 8px 12px; border-radius: var(--r-full); background: var(--primary-bg); color: var(--primary-dk); font-size: 12px; font-weight: var(--fw-b); }
.session-ready-actions .session-ready-btn.is-ready { min-height: 38px; background: transparent; box-shadow: none; }

.session-mode-overlay {
  position: fixed;
  z-index: 1700;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 22px;
  overflow-y: auto;
  background:
    radial-gradient(circle at 12% 8%, rgba(129, 142, 244, .24), transparent 34%),
    radial-gradient(circle at 88% 86%, rgba(244, 177, 128, .2), transparent 32%),
    rgba(31, 35, 58, .6);
  backdrop-filter: blur(14px);
}
.session-mode-overlay.hidden { display: none; }
body.session-mode-open { overflow: hidden; }
.session-mode-shell {
  position: relative;
  width: min(980px, 100%);
  min-height: min(760px, calc(100vh - 44px));
  padding: 22px;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 30px;
  background: linear-gradient(145deg, rgba(255,255,255,.99), rgba(246,247,255,.98));
  box-shadow: 0 30px 90px rgba(19, 24, 53, .3);
  color: var(--tx);
  animation: synapseSurfaceIn var(--synapse-motion-duration) var(--synapse-motion-ease) both;
  transform-origin: var(--session-mode-origin-x, 50%) var(--session-mode-origin-y, 50%);
  transition: opacity 240ms cubic-bezier(.22,1,.36,1), transform 240ms cubic-bezier(.22,1,.36,1);
}
.session-mode-overlay.is-entering .session-mode-shell { opacity: 0; transform: translateY(10px) scale(.97); }
.session-mode-overlay.is-exiting .session-mode-shell { opacity: 0; transform: translateY(9px) scale(.975); }
.session-mode-header,
.session-mode-progress > div:first-child,
.session-mode-footer,
.session-mode-navigation { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.session-mode-header {
  position: sticky;
  z-index: 8;
  top: -10px;
  margin: -10px -10px 16px;
  padding: 10px;
  border-radius: 18px;
  background: rgba(250,251,255,.94);
  box-shadow: 0 8px 18px rgba(32,39,84,.055);
  backdrop-filter: blur(12px);
}
.session-mode-header-actions { display: flex; align-items: center; gap: 7px; }
.session-mode-brand { display: grid; gap: 1px; }
.session-mode-brand span { color: var(--primary); font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.session-mode-brand strong { font-size: 20px; letter-spacing: -.02em; }
.session-mode-pause {
  padding: 9px 13px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 999px;
  background: rgba(255,255,255,.7);
  color: var(--tx-3);
  font: 750 11px/1 var(--font);
  cursor: pointer;
}
.session-mode-sound {
  padding: 9px 11px;
  border: 0;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .07);
  color: var(--primary-dk);
  font: 750 10px/1 var(--font);
  cursor: pointer;
}
.session-mode-adapt {
  padding: 9px 12px;
  border: 1px solid rgba(var(--primary-rgb), .2);
  border-radius: 999px;
  background: var(--primary);
  color: #fff;
  font: 850 10px/1 var(--font);
  cursor: pointer;
}
.session-mode-adapt:hover,
.session-mode-adapt:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .13); filter: brightness(.98); }
.session-mode-plan-trigger {
  display: grid;
  width: 36px;
  height: 36px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(var(--primary-rgb), .11);
  border-radius: 50%;
  background: rgba(255,255,255,.72);
  color: var(--primary-dk);
  cursor: pointer;
}
.session-mode-plan-trigger > span { display: grid; width: 14px; gap: 3px; }
.session-mode-plan-trigger i { display: block; height: 1.5px; border-radius: 999px; background: currentColor; }
.session-mode-plan-trigger:hover,
.session-mode-plan-trigger:focus-visible,
.session-mode-plan-trigger[aria-expanded="true"] { border-color: rgba(var(--primary-rgb), .3); outline: 3px solid rgba(var(--primary-rgb), .09); background: #fff; }
.session-mode-sound:hover,
.session-mode-sound:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .1); background: rgba(var(--primary-rgb), .12); }
.session-mode-pause:hover,
.session-mode-pause:focus-visible { border-color: rgba(var(--primary-rgb), .3); outline: none; color: var(--primary-dk); }
.session-mode-progress { display: grid; gap: 7px; margin-bottom: 14px; }
.session-mode-progress > div:first-child span { color: var(--tx-3); font-size: 11px; font-weight: 700; }
.session-mode-progress > div:first-child strong { color: var(--primary-dk); font-size: 15px; }
.session-mode-progress-track { height: 7px; overflow: hidden; border-radius: 999px; background: rgba(var(--primary-rgb), .1); }
.session-mode-progress-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #7b86ed, #5264db); transition: width 260ms cubic-bezier(.22,1,.36,1); }
.session-mode-progress small { color: var(--tx-4); font-size: 9px; font-weight: 700; }
.session-mode-modulation-compact {
  display: flex;
  justify-content: flex-end;
  margin: -2px 2px 8px;
}
.session-mode-modulation-compact button {
  min-height: 32px;
  padding: 7px 12px;
  border: 1px solid rgba(42,141,133,.22);
  border-radius: 999px;
  background: rgba(235,249,247,.72);
  color: #27756f;
  font: 800 10px/1 var(--font);
  cursor: pointer;
}
.session-mode-modulation-compact button span { margin-right: 3px; font-size: 15px; font-weight: 600; vertical-align: -1px; }
.session-mode-modulation-compact button:hover,
.session-mode-modulation-compact button:focus-visible { border-color: rgba(42,141,133,.42); outline: 3px solid rgba(42,141,133,.1); background: rgba(220,246,241,.96); }
.session-mode-modulation-panel {
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(42,141,133,.2);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(235,249,247,.92), rgba(255,255,255,.94));
}
.session-mode-modulation-panel header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.session-mode-modulation-panel header div { display: grid; gap: 2px; }
.session-mode-modulation-panel header span { color: #27756f; font-size: 8px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.session-mode-modulation-panel header strong { color: var(--tx); font-size: 13px; }
.session-mode-modulation-panel header em { color: #27756f; font-size: 9px; font-style: normal; font-weight: 800; }
.session-mode-modulation-panel > p { margin: 0; color: var(--tx-3); font-size: 9px; }
.session-mode-modulation-panel > div { display: flex; flex-wrap: wrap; gap: 7px; }
.session-mode-modulation-panel > div button {
  display: grid;
  min-width: min(220px, 100%);
  gap: 2px;
  padding: 9px 11px;
  border: 1px solid rgba(42,141,133,.18);
  border-radius: 12px;
  background: rgba(255,255,255,.86);
  color: var(--tx-2);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.session-mode-modulation-panel > div button.is-new { min-width: 150px; border-style: dashed; }
.session-mode-modulation-panel > div button.is-planned { border-color: rgba(42,141,133,.42); background: rgba(220,246,241,.96); box-shadow: 0 0 0 2px rgba(42,141,133,.07); }
.session-mode-modulation-panel button strong { font-size: 10px; }
.session-mode-modulation-panel button span { color: var(--tx-4); font-size: 8px; }
.session-mode-modulation-panel button:hover,
.session-mode-modulation-panel button:focus-visible { border-color: rgba(42,141,133,.42); outline: 3px solid rgba(42,141,133,.1); }
.session-mode-modulation-backdrop {
  position: fixed;
  z-index: 20;
  inset: 0;
  display: grid;
  overflow-y: auto;
  padding: 18px;
  place-items: center;
  background: rgba(25,39,51,.36);
  backdrop-filter: blur(5px);
}
.session-mode-modulation-dialog {
  display: grid;
  width: min(680px, 100%);
  max-height: calc(100dvh - 36px);
  gap: 13px;
  padding: 20px;
  overflow-y: auto;
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(22,28,61,.24);
}
.session-mode-modulation-dialog > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.session-mode-modulation-dialog > header div { display: grid; gap: 3px; }
.session-mode-modulation-dialog > header span { color: #27756f; font-size: 8px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.session-mode-modulation-dialog h3 { margin: 0; font-size: 20px; }
.session-mode-modulation-dialog > header button { width: 32px; height: 32px; border: 0; border-radius: 50%; background: var(--surface-2); color: var(--tx-3); font-size: 18px; cursor: pointer; }
.session-mode-modulation-dialog > p { margin: 0; color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.session-mode-modulation-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.session-mode-modulation-grid label { display: grid; gap: 5px; color: var(--tx-2); font-size: 9px; font-weight: 800; }
.session-mode-modulation-grid label.is-wide { grid-column: 1 / -1; }
.session-mode-modulation-grid input,
.session-mode-modulation-grid select,
.session-mode-modulation-grid textarea { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-2); color: var(--tx); font: 700 11px/1.35 var(--font); }
.session-mode-modulation-grid textarea { resize: vertical; }
.session-mode-modulation-dialog > footer {
  position: sticky;
  bottom: -20px;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 10px 0 0;
  background: #fff;
}
.session-mode-modulation-dialog > footer button { min-height: 40px; padding: 9px 13px; border: 1px solid var(--border); border-radius: 11px; background: #fff; color: var(--tx-2); font: 800 10px/1 var(--font); cursor: pointer; }
.session-mode-modulation-dialog > footer button.is-primary { border-color: #2a8d85; background: #2a8d85; color: #fff; }
.session-mode-plan-backdrop {
  position: absolute;
  z-index: 4;
  inset: 0;
  width: 100%;
  border: 0;
  border-radius: inherit;
  background: rgba(246,247,255,.62);
  backdrop-filter: blur(3px);
  cursor: default;
}
.session-mode-plan-panel {
  position: absolute;
  z-index: 5;
  top: 70px;
  right: 22px;
  display: grid;
  width: min(390px, calc(100% - 44px));
  max-height: min(650px, calc(100% - 92px));
  padding: 17px;
  overflow: auto;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 22px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 24px 65px rgba(28,34,72,.18);
  animation: sessionModePlanIn 170ms cubic-bezier(.22,1,.36,1) both;
}
@keyframes sessionModePlanIn {
  from { opacity: 0; transform: translateY(-5px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.session-mode-plan-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.session-mode-plan-panel > header div { display: grid; gap: 1px; }
.session-mode-plan-panel > header span { color: var(--primary); font-size: 8px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.session-mode-plan-panel > header h2 { margin: 0; font-size: 18px; letter-spacing: -.02em; }
.session-mode-plan-panel > header button {
  display: grid;
  width: 34px;
  height: 34px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(17,24,39,.045);
  color: var(--tx-2);
  font-size: 20px;
  cursor: pointer;
}
.session-mode-plan-panel ol { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.session-mode-plan-order-note {
  display: grid;
  gap: 3px;
  margin: 0 0 11px;
  padding: 10px 12px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 14px;
  background: rgba(var(--primary-rgb), .05);
}
.session-mode-plan-order-note strong { color: var(--primary-dk); font-size: 14px; }
.session-mode-plan-order-note span { color: var(--tx-4); font-size: 12px; line-height: 1.4; }
.session-mode-plan-order-note.is-unlocked { border-color: rgba(62,151,115,.16); background: rgba(62,151,115,.055); }
.session-mode-plan-order-note.is-unlocked strong { color: #277355; }
.session-mode-plan-panel li { position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 6px; }
.session-mode-plan-panel li > .session-mode-plan-item { grid-column: 1 / -1; }
.session-mode-plan-panel li.is-reorderable > .session-mode-plan-item { grid-column: 1; }
.session-mode-plan-order-actions { display: grid; grid-template-columns: repeat(2, 44px); gap: 4px; }
.session-mode-plan-order-actions button {
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(var(--primary-rgb), .15);
  border-radius: 10px;
  background: rgba(var(--primary-rgb), .055);
  color: var(--primary-dk);
  font: 900 14px/1 var(--font);
  cursor: pointer;
}
.session-mode-plan-order-actions button:hover,
.session-mode-plan-order-actions button:focus-visible { border-color: rgba(var(--primary-rgb), .32); outline: 3px solid rgba(var(--primary-rgb), .09); background: rgba(var(--primary-rgb), .1); }
.session-mode-plan-order-actions button:disabled { cursor: default; opacity: .28; }
.session-mode-plan-protected {
  position: absolute;
  z-index: 1;
  right: 10px;
  bottom: 6px;
  padding: 3px 6px;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .07);
  color: var(--tx-4);
  font-size: 7px;
  font-weight: 850;
  letter-spacing: .02em;
}
.session-mode-plan-item {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  width: 100%;
  min-height: 58px;
  grid-template-columns: 30px minmax(0,1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border: 1px solid transparent;
  border-radius: 15px;
  background: transparent;
  color: var(--tx);
  text-align: left;
  cursor: pointer;
}
.session-mode-plan-item::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0 auto 0 0;
  width: var(--session-series-progress, 0%);
  background: rgba(var(--primary-rgb), .055);
  transition: width .22s ease, background-color .18s ease;
}
.session-mode-plan-item:hover,
.session-mode-plan-item:focus-visible { border-color: rgba(var(--primary-rgb), .13); outline: none; background: rgba(var(--primary-rgb), .045); }
.session-mode-plan-item.is-current { border-color: rgba(var(--primary-rgb), .2); background: rgba(var(--primary-rgb), .085); }
.session-mode-plan-item.is-done::before { background: rgba(62,151,115,.075); }
.session-mode-plan-item.is-stopped::before { background: rgba(199,122,65,.08); }
.session-mode-plan-index { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: rgba(255,255,255,.68); color: var(--tx-3); font-size: 10px; font-weight: 900; box-shadow: inset 0 0 0 1px rgba(var(--primary-rgb), .14); }
.session-mode-plan-item.is-started .session-mode-plan-index { background: rgba(var(--primary-rgb), .1); color: var(--primary-dk); box-shadow: inset 0 0 0 1px rgba(var(--primary-rgb), .16); }
.session-mode-plan-item.is-done .session-mode-plan-index { background: rgba(62,151,115,.13); color: #277355; }
.session-mode-plan-item.is-stopped .session-mode-plan-index { background: rgba(199,122,65,.14); color: #915628; }
.session-mode-plan-item > span:nth-child(2) { display: grid; min-width: 0; gap: 2px; }
.session-mode-plan-item strong { overflow: hidden; font-size: 12px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.session-mode-plan-item small { color: var(--tx-4); font-size: 8px; font-weight: 700; }
.session-mode-plan-item em { color: var(--tx-4); font-size: 8px; font-style: normal; font-weight: 800; white-space: nowrap; }
.session-mode-plan-item.is-current em { color: var(--primary-dk); }
.session-mode-plan-edit {
  display: grid;
  width: 100%;
  min-height: 45px;
  margin-top: 12px;
  padding: 9px 12px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 14px;
  background: rgba(var(--primary-rgb), .055);
  color: var(--primary-dk);
  font: 800 11px/1.2 var(--font);
  cursor: pointer;
}
.session-mode-plan-edit span { color: var(--tx-4); font-size: 7px; letter-spacing: .06em; text-transform: uppercase; }
.session-mode-current-card {
  display: grid;
  grid-template-columns: minmax(230px, .82fr) minmax(340px, 1.18fr);
  gap: 16px 20px;
  padding: 20px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 24px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 14px 38px rgba(35,40,78,.08);
  animation: sessionModeCardIn 180ms cubic-bezier(.22,1,.36,1) both;
}
@keyframes sessionModeCardIn {
  from { opacity: .25; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}
.session-mode-current-card.is-done { border-color: rgba(62,151,115,.28); box-shadow: 0 14px 38px rgba(44,119,89,.09); }
.session-mode-current-card.is-stopped { border-color: rgba(199,122,65,.25); box-shadow: 0 14px 38px rgba(130,85,51,.08); }
.session-mode-current-copy { display: grid; align-content: center; gap: 5px; min-width: 0; }
.session-mode-current-copy > span { color: var(--primary); font-size: 9px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.session-mode-current-copy h2 { margin: 0; font-size: clamp(25px, 3.3vw, 42px); line-height: 1.06; letter-spacing: -.04em; }
.session-mode-current-copy p { margin: 5px 0 0; color: var(--tx-3); font-size: 12px; line-height: 1.5; }
.session-mode-media {
  position: relative;
  display: grid;
  min-height: 330px;
  overflow: hidden;
  place-items: center;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 20px;
  background: rgb(251, 246, 243);
}
.session-mode-media-button { width: 100%; padding: 0; background: rgb(251, 246, 243); font: inherit; cursor: pointer; }
.session-mode-media-button img { display: block; width: 100%; height: 330px; object-fit: contain; object-position: center; background: rgb(251, 246, 243); }
.session-mode-media-button > span {
  position: absolute;
  right: 12px;
  bottom: 12px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 12px;
  border-radius: 999px;
  background: rgba(68,81,188,.94);
  color: #fff;
  font-size: 10px;
  font-weight: 850;
  box-shadow: 0 7px 18px rgba(35,40,78,.2);
}
.session-mode-media-button > span i { font-style: normal; font-size: 8px; }
.session-mode-media-button:hover,
.session-mode-media-button:focus-visible { border-color: rgba(var(--primary-rgb), .35); outline: 4px solid rgba(var(--primary-rgb), .1); }
.session-mode-media-missing { align-content: center; gap: 5px; color: var(--tx-4); text-align: center; }
.session-mode-media-missing > span { color: rgba(var(--primary-rgb), .42); font-size: 25px; }
.session-mode-media-missing strong { color: var(--tx-3); font-size: 13px; }
.session-mode-media-missing small { font-size: 9px; }
.session-mode-dose-grid { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.session-mode-dose { display: grid; gap: 3px; padding: 12px; border-radius: 14px; background: rgba(var(--primary-rgb), .055); }
.session-mode-dose span { color: var(--tx-4); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.session-mode-dose strong { color: var(--tx); font-size: 15px; line-height: 1.2; }
.session-mode-dose small { color: var(--tx-4); font-size: 8px; line-height: 1.3; }
.session-mode-dose-editable { border: 1px solid rgba(var(--primary-rgb), .18); color: inherit; font-family: var(--font); text-align: left; cursor: pointer; }
.session-mode-dose-editable em { justify-self: start; color: var(--primary-dk); font-size: 8px; font-style: normal; font-weight: 850; }
.session-mode-dose-editable:hover,
.session-mode-dose-editable:focus-visible { border-color: rgba(var(--primary-rgb), .38); outline: 3px solid rgba(var(--primary-rgb), .1); background: rgba(var(--primary-rgb), .09); }
.session-mode-load-backdrop { position: fixed; z-index: 4; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(31,35,58,.32); backdrop-filter: blur(5px); }
.session-mode-load-dialog { display: grid; width: min(390px, 100%); gap: 15px; padding: 20px; border: 1px solid rgba(255,255,255,.76); border-radius: 22px; background: #fff; box-shadow: 0 24px 70px rgba(22,28,61,.24); }
.session-mode-load-dialog header { display: grid; gap: 3px; }
.session-mode-load-dialog header span { color: var(--primary); font-size: 9px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.session-mode-load-dialog h3 { margin: 0; font-size: 20px; letter-spacing: -.025em; }
.session-mode-load-dialog header p { margin: 0; color: var(--tx-3); font-size: 11px; }
.session-mode-load-input { display: grid; gap: 6px; color: var(--tx-2); font-size: 10px; font-weight: 800; }
.session-mode-load-input input { min-height: 44px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); color: var(--tx); font: 750 14px/1 var(--font); }
.session-mode-load-input input:focus { border-color: rgba(var(--primary-rgb), .38); outline: 3px solid rgba(var(--primary-rgb), .1); }
.session-mode-load-reasons { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; margin: 0; padding: 0; border: 0; }
.session-mode-load-reasons legend { grid-column: 1 / -1; margin-bottom: 7px; color: var(--tx-2); font-size: 10px; font-weight: 850; }
.session-mode-load-reasons label { margin: 0; cursor: pointer; }
.session-mode-load-reasons input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.session-mode-load-reasons span { display: grid; min-height: 42px; padding: 8px; place-items: center; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 12px; background: var(--surface-2); color: var(--tx-3); font-size: 10px; font-weight: 800; text-align: center; }
.session-mode-load-reasons input:checked + span { border-color: rgba(var(--primary-rgb), .36); background: rgba(var(--primary-rgb), .11); color: var(--primary-dk); }
.session-mode-load-reasons input:focus-visible + span { outline: 3px solid rgba(var(--primary-rgb), .12); }
.session-mode-load-actions { display: flex; justify-content: flex-end; gap: 8px; }
.session-mode-load-actions button { min-height: 40px; padding: 9px 13px; border: 1px solid rgba(var(--primary-rgb), .15); border-radius: 11px; background: #fff; color: var(--tx-2); font: 800 10px/1 var(--font); cursor: pointer; }
.session-mode-load-actions button:last-child { border-color: transparent; background: var(--primary); color: #fff; }
.session-mode-load-actions button:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .14); }
.session-mode-stop-backdrop { position: fixed; z-index: 5; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(31,35,58,.32); backdrop-filter: blur(5px); }
.session-mode-stop-dialog { display: grid; width: min(430px, 100%); gap: 15px; padding: 20px; border: 1px solid rgba(255,255,255,.76); border-radius: 22px; background: #fff; box-shadow: 0 24px 70px rgba(22,28,61,.24); }
.session-mode-stop-dialog header { display: grid; gap: 3px; }
.session-mode-stop-dialog header span { color: #9a5b2c; font-size: 9px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.session-mode-stop-dialog h3 { margin: 0; font-size: 20px; letter-spacing: -.025em; }
.session-mode-stop-dialog header p { margin: 0; color: var(--tx-3); font-size: 11px; }
.session-mode-stop-reasons { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin: 0; padding: 0; border: 0; }
.session-mode-stop-reasons legend { grid-column: 1 / -1; margin-bottom: 7px; color: var(--tx-2); font-size: 10px; font-weight: 850; }
.session-mode-stop-reasons label { margin: 0; cursor: pointer; }
.session-mode-stop-reasons input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.session-mode-stop-reasons span { display: grid; min-height: 42px; padding: 8px; place-items: center; border: 1px solid rgba(199,122,65,.13); border-radius: 12px; background: rgba(199,122,65,.045); color: var(--tx-3); font-size: 10px; font-weight: 800; text-align: center; }
.session-mode-stop-reasons input:checked + span { border-color: rgba(199,122,65,.38); background: rgba(199,122,65,.12); color: #855027; }
.session-mode-stop-reasons input:focus-visible + span { outline: 3px solid rgba(199,122,65,.12); }
.session-mode-stop-detail { display: grid; gap: 6px; color: var(--tx-2); font-size: 10px; font-weight: 850; }
.session-mode-stop-detail > span { color: var(--tx-4); font-size: 8px; font-weight: 700; }
.session-mode-stop-detail textarea { min-height: 66px; resize: vertical; padding: 10px 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); color: var(--tx); font: 700 12px/1.4 var(--font); }
.session-mode-stop-detail textarea:focus { border-color: rgba(199,122,65,.38); outline: 3px solid rgba(199,122,65,.1); }
.session-mode-stop-actions { display: flex; justify-content: flex-end; gap: 8px; }
.session-mode-stop-actions button { min-height: 40px; padding: 9px 13px; border: 1px solid rgba(var(--primary-rgb), .15); border-radius: 11px; background: #fff; color: var(--tx-2); font: 800 10px/1 var(--font); cursor: pointer; }
.session-mode-stop-actions button:last-child { border-color: transparent; background: #a76637; color: #fff; }
.session-mode-stop-actions button:focus-visible { outline: 3px solid rgba(199,122,65,.15); }
.session-mode-adaptation-backdrop { position: fixed; z-index: 6; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(31,35,58,.28); backdrop-filter: blur(5px); }
.session-mode-adaptation-dialog { display: grid; width: min(560px, 100%); max-height: min(88dvh, 760px); overflow: auto; gap: 16px; padding: 22px; border: 1px solid rgba(255,255,255,.8); border-radius: 24px; background: #fff; box-shadow: 0 24px 70px rgba(22,28,61,.24); }
.session-mode-adaptation-dialog > header { display: grid; gap: 4px; }
.session-mode-adaptation-dialog > header > span { color: var(--primary); font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.session-mode-adaptation-dialog h3 { margin: 0; color: var(--tx); font-size: 23px; letter-spacing: -.03em; }
.session-mode-adaptation-dialog header p { margin: 0; color: var(--tx-4); font-size: 10px; }
.session-mode-adaptation-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.session-mode-adaptation-actions button { display: grid; align-content: start; gap: 4px; min-height: 76px; padding: 13px; border: 1px solid rgba(var(--primary-rgb), .13); border-radius: 15px; background: rgba(var(--primary-rgb), .045); color: var(--tx); font-family: var(--font); text-align: left; cursor: pointer; }
.session-mode-adaptation-actions button:first-child { grid-column: 1 / -1; background: rgba(var(--primary-rgb), .08); }
.session-mode-adaptation-actions button strong { font-size: 11px; }
.session-mode-adaptation-actions button span { color: var(--tx-4); font-size: 9px; line-height: 1.35; }
.session-mode-adaptation-actions button:hover,
.session-mode-adaptation-actions button:focus-visible { border-color: rgba(var(--primary-rgb), .34); outline: 3px solid rgba(var(--primary-rgb), .09); }
.session-mode-adaptation-reasons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin: 0; padding: 14px 0 0; border: 0; border-top: 1px solid rgba(17,24,39,.08); }
.session-mode-adaptation-reasons legend { grid-column: 1 / -1; margin-bottom: 6px; color: var(--tx-2); font-size: 10px; font-weight: 850; }
.session-mode-adaptation-reasons legend span { color: var(--tx-4); font-weight: 700; }
.session-mode-adaptation-reasons label { cursor: pointer; }
.session-mode-adaptation-reasons input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.session-mode-adaptation-reasons label span { display: grid; min-height: 39px; padding: 7px; place-items: center; border: 1px solid rgba(var(--primary-rgb), .11); border-radius: 11px; background: var(--surface-2); color: var(--tx-3); font-size: 9px; font-weight: 800; text-align: center; }
.session-mode-adaptation-reasons input:checked + span { border-color: rgba(var(--primary-rgb), .34); background: rgba(var(--primary-rgb), .1); color: var(--primary-dk); }
.session-mode-adaptation-detail { display: grid; gap: 6px; color: var(--tx-3); font-size: 9px; font-weight: 800; }
.session-mode-adaptation-detail textarea { min-height: 62px; resize: vertical; padding: 10px 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); color: var(--tx); font: 700 11px/1.4 var(--font); }
.session-mode-adaptation-detail textarea:focus { border-color: rgba(var(--primary-rgb), .38); outline: 3px solid rgba(var(--primary-rgb), .1); }
.session-mode-adaptation-footer { display: flex; justify-content: flex-end; gap: 8px; }
.session-mode-adaptation-footer button { min-height: 40px; padding: 9px 13px; border: 1px solid rgba(var(--primary-rgb), .15); border-radius: 11px; background: #fff; color: var(--tx-2); font: 800 10px/1 var(--font); cursor: pointer; }
.session-mode-adaptation-footer button:last-child { border-color: transparent; background: #485cae; color: #fff; }
.session-mode-active-actions { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.session-mode-active-actions .session-mode-done-btn { grid-column: auto; }
.session-mode-stop-btn,
.session-mode-stop-link { min-height: 44px; padding: 9px 14px; border: 1px solid rgba(199,122,65,.2); border-radius: 13px; background: rgba(199,122,65,.055); color: #87522c; font: 800 10px/1 var(--font); cursor: pointer; }
.session-mode-stop-btn:hover,
.session-mode-stop-btn:focus-visible,
.session-mode-stop-link:hover,
.session-mode-stop-link:focus-visible { border-color: rgba(199,122,65,.38); outline: 3px solid rgba(199,122,65,.09); background: rgba(199,122,65,.1); }
.session-mode-stop-link { min-height: 34px; margin-top: 4px; border-color: transparent; background: transparent; }
.session-mode-done-btn {
  grid-column: 1 / -1;
  min-height: 48px;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 14px;
  background: linear-gradient(135deg, #6f7ce7, #5261ca);
  color: #fff;
  font: 850 12px/1 var(--font);
  cursor: pointer;
  box-shadow: 0 9px 22px rgba(76,90,197,.2);
}
.session-mode-done-btn.is-done { border-color: rgba(47,135,99,.18); background: rgba(54,145,106,.11); color: #277355; box-shadow: none; }
.session-mode-done-btn span { margin-right: 5px; }
.session-mode-rating,
.session-mode-work-timer,
.session-mode-rest,
.session-mode-exercise-summary { grid-column: 1 / -1; }
.session-mode-rating {
  display: grid;
  gap: 14px;
  padding: 15px 16px;
  border-radius: 17px;
  background: rgba(var(--primary-rgb), .055);
}
.session-mode-rating > header { display: grid; gap: 2px; }
.session-mode-rating > header span { color: var(--tx-4); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.session-mode-rating h3 { margin: 0; font-size: 15px; }
.session-mode-series-actual-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.session-mode-repetitions-field { display: grid; grid-template-columns: 1fr minmax(150px, .65fr); align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid rgba(var(--primary-rgb), .09); border-radius: 14px; background: rgba(255,255,255,.72); }
.session-mode-repetitions-field > span { display: grid; gap: 2px; }
.session-mode-repetitions-field strong { color: var(--tx); font-size: 11px; }
.session-mode-repetitions-field small { color: var(--tx-4); font-size: 8px; font-weight: 750; }
.session-mode-repetitions-field input { min-width: 0; min-height: 40px; padding: 8px 10px; border: 1px solid rgba(var(--primary-rgb), .14); border-radius: 11px; background: #fff; color: var(--tx); font: 800 12px/1 var(--font); }
.session-mode-repetitions-field input:focus { border-color: rgba(var(--primary-rgb), .38); outline: 3px solid rgba(var(--primary-rgb), .1); }
.session-mode-feedback-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.session-mode-feedback-field {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 9px 12px;
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(var(--primary-rgb), .09);
  border-radius: 14px;
  background: rgba(255,255,255,.7);
}
.session-mode-feedback-field > span:first-child { display: grid; gap: 2px; }
.session-mode-feedback-field > span:first-child strong { color: var(--tx); font-size: 11px; }
.session-mode-feedback-field > span:first-child small { color: var(--tx-4); font-size: 8px; font-weight: 750; }
.session-mode-feedback-field output { align-self: center; color: var(--primary-dk); font-size: 24px; font-weight: 900; }
.session-mode-feedback-field input[type="range"] {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 32px;
  accent-color: var(--primary);
  cursor: pointer;
}
.session-mode-feedback-field input[type="range"]:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .14); outline-offset: 3px; }
.session-mode-rating-scale { grid-column: 1 / -1; display: flex; justify-content: space-between; color: var(--tx-4); font-size: 8px; font-weight: 700; }
.session-mode-rating-scale i { font-style: normal; }
.session-mode-quality { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; }
.session-mode-quality legend { padding: 0; color: var(--tx); font-size: 10px; font-weight: 850; }
.session-mode-quality legend small { margin-left: 5px; color: var(--tx-4); font-size: 8px; font-weight: 750; text-transform: uppercase; }
.session-mode-quality > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
.session-mode-quality button {
  min-height: 38px;
  padding: 7px 9px;
  border: 1px solid rgba(var(--primary-rgb), .11);
  border-radius: 11px;
  background: rgba(255,255,255,.78);
  color: var(--tx-3);
  font: 800 10px/1.2 var(--font);
  cursor: pointer;
}
.session-mode-quality button.is-selected { border-color: rgba(var(--primary-rgb), .32); background: rgba(var(--primary-rgb), .11); color: var(--primary-dk); }
.session-mode-quality button:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .13); }
.session-mode-feedback-save {
  width: 100%;
  justify-self: stretch;
  min-height: 42px;
  padding: 9px 16px;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(135deg,#6f7ce7,#5261ca);
  color: #fff;
  font: 850 11px/1 var(--font);
  cursor: pointer;
  box-shadow: 0 7px 18px rgba(76,90,197,.18);
}
.session-mode-feedback-save:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .18); outline-offset: 3px; }
.session-mode-series-guidance {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: auto 1fr;
  gap: 2px 10px;
  padding: 11px 13px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 14px;
  background: rgba(var(--primary-rgb), .05);
}
.session-mode-series-guidance > span { grid-row: 1 / 4; align-self: center; color: var(--primary); font-size: 8px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.session-mode-series-guidance strong { color: var(--tx); font-size: 12px; }
.session-mode-series-guidance p,
.session-mode-series-guidance small { margin: 0; color: var(--tx-4); font-size: 9px; line-height: 1.35; }
.session-mode-outcome {
  display: grid;
  gap: 7px;
  padding: 12px 14px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 15px;
  background: rgba(var(--primary-rgb), .045);
}
.session-mode-outcome > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 5px 12px; }
.session-mode-outcome > div span { color: var(--primary); font-size: 8px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.session-mode-outcome > div strong { color: var(--tx); font-size: 12px; }
.session-mode-outcome p { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.session-mode-outcome p span { padding: 5px 8px; border-radius: 999px; background: rgba(255,255,255,.8); color: var(--tx-3); font-size: 9px; font-weight: 800; }
.session-mode-outcome small { color: var(--tx-4); font-size: 8px; line-height: 1.35; }
.session-mode-rest {
  display: grid;
  justify-items: center;
  gap: 5px;
  padding: 18px;
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(var(--primary-rgb), .075), rgba(255,255,255,.75));
  text-align: center;
}
.session-mode-rest > span { color: var(--primary); font-size: 9px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.session-mode-rest h2 { margin: 0; font-size: 16px; }
.session-mode-rest > strong { color: var(--primary-dk); font-size: clamp(38px, 6vw, 58px); line-height: 1; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.session-mode-rest-count { min-height: 34px; color: var(--primary); font-size: 30px; font-weight: 950; line-height: 1; }
.session-mode-rest p { margin: 0; color: var(--tx-4); font-size: 10px; }
.session-mode-rest-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(105px, 1fr));
  gap: 8px;
  margin-top: 7px;
}
.session-mode-rest-actions button {
  min-width: 105px;
  min-height: 40px;
  padding: 8px 13px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 12px;
  background: rgba(255,255,255,.88);
  color: var(--primary-dk);
  font: 800 11px/1 var(--font);
  cursor: pointer;
}
.session-mode-rest-actions button:hover,
.session-mode-rest-actions button:focus-visible { border-color: rgba(var(--primary-rgb), .32); outline: 3px solid rgba(var(--primary-rgb), .09); }
.session-mode-rest-actions .session-mode-rest-skip {
  grid-column: 1 / -1;
  border-color: rgba(var(--primary-rgb), .22);
  background: var(--primary);
  color: #fff;
}
.session-mode-rest-actions .session-mode-rest-skip:hover,
.session-mode-rest-actions .session-mode-rest-skip:focus-visible { border-color: var(--primary-dk); }
.session-mode-work-timer {
  display: grid;
  justify-items: center;
  gap: 6px;
  padding: 18px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(var(--primary-rgb), .11), rgba(255,255,255,.78));
  text-align: center;
}
.session-mode-work-timer.is-preparing { background: linear-gradient(145deg, rgba(242,169,77,.14), rgba(255,255,255,.82)); }
.session-mode-work-timer.is-recovering { background: linear-gradient(145deg, rgba(79,177,168,.14), rgba(255,255,255,.82)); }
.session-mode-work-timer > span { color: var(--primary); font-size: 9px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.session-mode-work-timer h2 { margin: 0; font-size: 16px; }
.session-mode-work-timer > strong { color: var(--primary-dk); font-size: clamp(42px, 7vw, 64px); line-height: 1; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.session-mode-work-timer.is-preparing > strong { color: #a46430; font-size: clamp(54px, 9vw, 76px); }
.session-mode-work-count { min-height: 34px; color: #a46430; font-size: 30px; font-weight: 950; line-height: 1; }
.session-mode-work-timer p { margin: 0; color: var(--tx-4); font-size: 10px; }
.session-mode-timer-sequence { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 3px; }
.session-mode-timer-sequence span { padding: 6px 8px; border-radius: 999px; background: rgba(255,255,255,.78); color: var(--tx-3); font-size: 9px; font-weight: 800; }
.session-mode-timer-sequence span.is-format { background: rgba(var(--primary-rgb), .11); color: var(--primary-dk); }
.session-mode-work-actions { display: grid; grid-template-columns: repeat(2, minmax(112px, 1fr)); gap: 7px; width: min(100%, 410px); margin-top: 7px; }
.session-mode-work-actions button {
  min-width: 0;
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 12px;
  background: rgba(255,255,255,.9);
  color: var(--primary-dk);
  font: 800 11px/1 var(--font);
  cursor: pointer;
}
.session-mode-work-actions .session-mode-timer-next { grid-column: 1 / -1; border-color: rgba(var(--primary-rgb), .24); background: var(--primary); color: #fff; }
.session-mode-work-actions button:hover,
.session-mode-work-actions button:focus-visible { border-color: rgba(var(--primary-rgb), .34); outline: 3px solid rgba(var(--primary-rgb), .1); }
.session-mode-exercise-summary {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 11px;
  padding: 14px 15px;
  border-radius: 17px;
  background: rgba(54,145,106,.075);
}
.session-mode-exercise-summary > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: rgba(54,145,106,.14); color: #277355; font-size: 14px; font-weight: 900; }
.session-mode-exercise-summary.is-stopped { background: rgba(199,122,65,.075); }
.session-mode-exercise-summary.is-stopped > span { background: rgba(199,122,65,.15); color: #915628; }
.session-mode-exercise-summary h3 { margin: 0 0 2px; font-size: 14px; }
.session-mode-exercise-summary p { margin: 0; color: var(--tx-3); font-size: 10px; line-height: 1.4; }
.session-mode-exercise-summary dl { display: flex; flex-wrap: wrap; gap: 12px 18px; margin: 0; }
.session-mode-exercise-summary dl div { display: grid; gap: 2px; }
.session-mode-exercise-summary dt { color: var(--tx-4); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.session-mode-exercise-summary dd { margin: 0; color: var(--tx); font-size: 12px; font-weight: 850; }
.session-mode-navigation { padding: 15px 3px 8px; }
.session-mode-navigation > button {
  min-width: 112px;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 12px;
  background: rgba(255,255,255,.75);
  color: var(--primary-dk);
  font: 800 11px/1 var(--font);
  cursor: pointer;
}
.session-mode-navigation > button:disabled { cursor: default; opacity: .35; }
.session-mode-navigation > div { display: flex; align-items: center; justify-content: center; gap: 6px; }
.session-mode-navigation > div i { width: 7px; height: 7px; border-radius: 50%; background: rgba(var(--primary-rgb), .16); }
.session-mode-navigation > div i.is-current { width: 19px; border-radius: 999px; background: var(--primary); }
.session-mode-navigation > div i.is-done { background: #4f9b79; }
.session-mode-navigation > div i.is-stopped { background: #c27a46; }
.session-mode-footer { margin-top: 4px; padding: 12px 3px 0; border-top: 1px solid rgba(17,24,39,.07); }
.session-mode-footer > div { display: grid; gap: 2px; }
.session-mode-footer > div strong { font-size: 11px; }
.session-mode-footer > div span { color: var(--tx-4); font-size: 9px; }
.session-mode-footer > button { display: grid; gap: 1px; padding: 8px 11px; border: 0; background: transparent; color: var(--primary-dk); font: 800 11px/1.2 var(--font); text-align: right; cursor: pointer; }
.session-mode-footer > button span { color: var(--tx-4); font-size: 7px; letter-spacing: .06em; text-transform: uppercase; }

@media (max-width: 720px) {
  .session-ready-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .session-ready-actions .session-ready-btn.is-ready { width: 100%; }
  .session-mode-overlay { display: block; padding: 0; background: #f7f8fe; backdrop-filter: none; }
  .session-mode-overlay.hidden { display: none; }
  .session-mode-shell { width: 100%; min-height: 100dvh; padding: max(15px, env(safe-area-inset-top)) 14px max(18px, env(safe-area-inset-bottom)); border: 0; border-radius: 0; box-shadow: none; }
  .session-mode-header { margin-bottom: 13px; }
  .session-mode-header-actions { gap: 5px; }
  .session-mode-plan-trigger { width: 34px; height: 34px; }
  .session-mode-sound,
  .session-mode-pause,
  .session-mode-adapt { padding-inline: 9px; font-size: 9px; }
  .session-mode-brand strong { font-size: 18px; }
  .session-mode-current-card { grid-template-columns: 1fr; gap: 13px; padding: 15px; border-radius: 20px; }
  .session-mode-current-copy h2 { font-size: clamp(25px, 8vw, 34px); }
  .session-mode-media { min-height: min(43vh, 330px); }
  .session-mode-media-button img { height: min(43vh, 330px); }
  .session-mode-dose-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .session-mode-dose { padding: 10px; }
  .session-mode-load-backdrop { align-items: end; padding: 10px; }
  .session-mode-load-dialog { width: 100%; padding: 18px; border-radius: 20px; }
  .session-mode-load-reasons { grid-template-columns: 1fr; }
  .session-mode-stop-backdrop { align-items: end; padding: 10px; }
  .session-mode-stop-dialog { width: 100%; padding: 18px; border-radius: 20px; }
  .session-mode-stop-reasons { grid-template-columns: 1fr; }
  .session-mode-stop-actions { align-items: stretch; flex-direction: column-reverse; }
  .session-mode-adaptation-backdrop { align-items: end; padding: 10px; }
  .session-mode-adaptation-dialog { width: 100%; max-height: 88dvh; padding: 18px; border-radius: 22px; }
  .session-mode-adaptation-actions,
  .session-mode-adaptation-reasons { grid-template-columns: 1fr; }
  .session-mode-adaptation-actions button:first-child { grid-column: auto; }
  .session-mode-adaptation-footer { align-items: stretch; flex-direction: column-reverse; }
  .session-mode-active-actions { }
  .session-mode-repetitions-field { grid-template-columns: 1fr; }
  .session-mode-series-actual-fields { grid-template-columns: 1fr; }
  .session-mode-feedback-fields { grid-template-columns: 1fr; }
  .session-mode-feedback-save { width: 100%; justify-self: stretch; }
  .session-mode-series-guidance { grid-template-columns: 1fr; }
  .session-mode-series-guidance > span { grid-row: auto; }
  .session-mode-exercise-summary { grid-template-columns: auto 1fr; }
  .session-mode-exercise-summary dl { grid-column: 1 / -1; padding-left: 39px; }
  .session-mode-navigation > button { min-width: 0; padding-inline: 9px; }
  .session-mode-navigation > div { gap: 4px; }
  .session-mode-footer { align-items: flex-start; }
  .session-mode-footer > div span { max-width: 210px; }
  .session-mode-plan-backdrop { position: fixed; border-radius: 0; }
  .session-mode-plan-panel {
    position: fixed;
    top: auto;
    right: 10px;
    bottom: max(10px, env(safe-area-inset-bottom));
    left: 10px;
    width: auto;
    max-height: min(72dvh, 620px);
    padding: 16px 14px;
    border-radius: 23px;
  }
}

@media (max-width: 430px) {
  .session-mode-brand span { display: none; }
  .session-mode-sound { width: 34px; padding-inline: 0; font-size: 0; }
  .session-mode-sound::before { content: '♪'; font-size: 13px; }
}

@media (max-width: 390px) {
  .session-mode-progress > div:first-child span { max-width: 205px; }
  .session-mode-navigation > button { font-size: 9px; }
  .session-mode-navigation > div i { width: 6px; height: 6px; }
  .session-mode-navigation > div i.is-current { width: 14px; }
  .session-mode-quality > div { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .session-mode-shell,
  .session-mode-current-card,
  .session-mode-progress-track i,
  .session-mode-plan-panel,
  .session-mode-plan-item::before { animation: none; transition: none; }
}

@media (max-width: 860px) {
  .gym-hero { flex-direction: column; }
  .gym-toolbar { grid-template-columns: 1fr 1fr; }
  .gym-custom-exercise-form { grid-template-columns: 1fr 1fr; }
  .gym-custom-exercise-form > div { grid-column: 1 / -1; }
  .gym-search-field { grid-column: 1 / -1; }
  .gym-exercise-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gym-template-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .clinical-library-hero { flex-direction: column; }
  .clinical-library-summary { width: 100%; grid-template-columns: auto 1fr; justify-items: start; align-items: center; text-align: left; }
  .clinical-library-summary strong { grid-row: 1 / 3; margin-right: var(--s3); }
  .clinical-library-summary small { margin-top: 1px; }
  .clinical-library-toolbar { grid-template-columns: 1fr; }
  .clinical-library-grid,
  .clinical-test-picker-list { grid-template-columns: 1fr; }
  .assessment-symptom-test-list { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .mobile-nav { justify-content: space-between; padding-inline: 5px; }
  .mobile-nav-item { min-width: 0; padding-inline: 5px; font-size: 9px; }
  .mobile-nav-item .nav-icon { font-size: 18px; }
  .gym-hero { padding: var(--s4); }
  .gym-clinical-library-link { width: 100%; }
  .gym-toolbar { grid-template-columns: 1fr; }
  .gym-custom-exercise-form { grid-template-columns: 1fr; }
  .gym-custom-exercise-form > div { grid-column: auto; }
  .gym-search-field { grid-column: auto; }
  .gym-context-line,
  .gym-results-heading { align-items: flex-start; flex-direction: column; }
  .gym-exercise-grid { grid-template-columns: 1fr; }
  .gym-template-grid { grid-template-columns: 1fr; }
  .gym-exercise-card { grid-template-rows: 220px auto auto; }
  .session-template-mode-options { grid-template-columns: 1fr; }
  .clinical-library-hero { padding: var(--s4); }
  .clinical-library-results-heading { align-items: flex-start; flex-direction: column; }
  .clinical-library-test-card { padding: var(--s4); }
  .clinical-library-card-meta { grid-template-columns: 1fr; }
  .clinical-test-picker-content { width: 100%; max-width: none; max-height: 100dvh; min-height: 100dvh; border-radius: 0; }
  .assessment-symptom-test-suggestions { padding: var(--s3); }
  .assessment-symptom-test-suggestions > header { display: grid; }
  .assessment-symptom-test-suggestions > header button { justify-self: start; padding-left: 0; }
}

/* Défilement robuste dans les cadres intégrés et sur écran tactile. */
.app-main { min-height: 0; }
.main-content,
#patientDetailModal.patient-detail-page {
  overscroll-behavior-y: auto;
  scrollbar-color: rgba(var(--primary-rgb), .3) transparent;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  touch-action: pan-y;
}
.main-content::-webkit-scrollbar,
#patientDetailModal.patient-detail-page::-webkit-scrollbar { width: 9px; }
.main-content::-webkit-scrollbar-track,
#patientDetailModal.patient-detail-page::-webkit-scrollbar-track { background: transparent; }
.main-content::-webkit-scrollbar-thumb,
#patientDetailModal.patient-detail-page::-webkit-scrollbar-thumb {
  border: 3px solid transparent;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .28);
  background-clip: padding-box;
}
.main-content::-webkit-scrollbar-thumb:hover,
#patientDetailModal.patient-detail-page::-webkit-scrollbar-thumb:hover { background-color: rgba(var(--primary-rgb), .5); }

/* Repère patient permanent : même contexte dans tous les onglets du dossier. */
.patient-persistent-trend {
  position: relative;
  display: grid;
  width: fit-content;
  max-width: min(520px, 100%);
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  margin-top: 7px;
  padding: 7px 9px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 14px;
  background: rgba(255,255,255,.68);
  box-shadow: 0 7px 20px rgba(35,40,78,.045);
}
.patient-persistent-trend-score {
  display: grid;
  min-width: 60px;
  justify-items: center;
  gap: 3px;
  padding-right: 9px;
  border-right: 1px solid rgba(var(--primary-rgb), .12);
}
.patient-persistent-score-ring {
  position: relative;
  isolation: isolate;
  display: grid;
  width: 46px;
  height: 46px;
  place-content: center;
  border-radius: 50%;
  background: conic-gradient(var(--primary) calc(var(--score, 0) * 1%), rgba(var(--primary-rgb), .11) 0);
  box-shadow: 0 6px 16px rgba(35,40,78,.09);
}
.patient-persistent-score-ring::after {
  position: absolute;
  z-index: -1;
  inset: 5px;
  border: 1px solid rgba(var(--primary-rgb), .07);
  border-radius: 50%;
  background: rgba(255,255,255,.96);
  content: '';
}
.patient-persistent-score-ring strong,
.patient-persistent-score-ring small { line-height: 1; text-align: center; }
.patient-persistent-score-ring strong { color: var(--primary-dk); font-size: 16px; font-weight: 850; letter-spacing: -.04em; }
.patient-persistent-score-ring small { margin-top: 1px; color: var(--tx-3); font-size: 7px; font-weight: 750; }
.patient-persistent-trend-score em { color: var(--tx-4); font-size: 7px; font-style: normal; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; white-space: nowrap; }
.patient-persistent-trend .synapse-trajectory-context {
  padding: 0;
  background: transparent;
}
.patient-persistent-trend .synapse-trajectory-context.synapse-trajectory-favorable,
.patient-persistent-trend .synapse-trajectory-context.synapse-trajectory-variable,
.patient-persistent-trend .synapse-trajectory-context.synapse-trajectory-attention { background: transparent; }
.patient-persistent-trend .synapse-trajectory-context strong { font-size: 10px; }
.patient-persistent-trend .synapse-trajectory-context small { font-size: 7px; }
.patient-trend-title-row,
.patient-trend-title-copy,
.patient-trend-load-history {
  display: flex;
  align-items: center;
  min-width: 0;
}
.patient-trend-title-row { justify-content: space-between; gap: 8px; }
.patient-trend-title-copy {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.patient-trend-phase {
  overflow: hidden;
  margin: 3px 0 0;
  color: var(--tx-3);
  font-size: 9px;
  font-weight: 690;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.patient-trend-load-history { gap: 7px; margin-top: 7px; }
.patient-trend-load-history > small {
  flex: 0 0 auto;
  color: var(--tx-4);
  font-size: 8px;
  font-weight: 720;
}
.patient-trend-load-history .synapse-recent-decisions {
  display: inline-flex;
  gap: 4px;
  margin-left: 0;
  padding-left: 0;
}
.patient-trend-explanation { position: static; flex: 0 0 auto; }
.patient-trend-explanation > summary {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border: 1px solid rgba(var(--primary-rgb), .22);
  border-radius: 50%;
  background: rgba(255,255,255,.8);
  color: var(--primary);
  font-family: ui-rounded, "SF Pro Rounded", var(--font);
  font-size: 10px;
  font-weight: 850;
  line-height: 1;
  list-style: none;
  cursor: pointer;
}
.patient-trend-explanation > summary::-webkit-details-marker { display: none; }
.patient-trend-explanation > summary:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .2); outline-offset: 2px; }
.patient-trend-explanation[open] > summary { border-color: rgba(var(--primary-rgb), .42); background: rgba(var(--primary-rgb), .1); }
.patient-trend-explanation-panel {
  position: absolute;
  z-index: 18;
  top: calc(100% + 8px);
  right: 0;
  width: min(420px, calc(100vw - 32px));
  padding: 15px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 16px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 18px 48px rgba(35,40,78,.18);
  color: var(--tx-2);
  cursor: default;
}
.patient-trend-explanation-panel > strong { color: var(--tx-1) !important; font-size: 13px !important; }
.patient-trend-explanation-panel dl { display: grid; gap: 9px; margin: 12px 0 10px; }
.patient-trend-explanation-panel dl > div { display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 10px; }
.patient-trend-explanation-panel dt { color: var(--tx-4); font-size: 9px; font-weight: 780; }
.patient-trend-explanation-panel dd { margin: 0; color: var(--tx-2); font-size: 10px; font-weight: 680; line-height: 1.45; }
.patient-trend-explanation-panel p { margin: 0; color: var(--tx-3); font-size: 9px; line-height: 1.45; }
.patient-trend-explanation-panel button {
  margin-top: 12px;
  padding: 7px 10px;
  border: 0;
  border-radius: 10px;
  background: rgba(var(--primary-rgb), .1);
  color: var(--primary-dk);
  font-size: 9px;
  font-weight: 820;
  cursor: pointer;
}
.patient-trend-explanation-panel button:hover,
.patient-trend-explanation-panel button:focus-visible { background: rgba(var(--primary-rgb), .17); outline: 0; }
.patient-header-trend { cursor: pointer; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.detail-modal-content > .patient-header-trend { width: fit-content; max-width: calc(100% - 40px); margin: 7px 20px 10px; }
.patient-header-trend:hover, .patient-header-trend:focus-visible { border-color: rgba(var(--primary-rgb), .3); background: rgba(255,255,255,.92); outline: 0; transform: translateY(-1px); }
.patient-unified-header {
  position: relative;
  z-index: 5;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  gap: 0;
  margin: 14px 20px 10px;
  padding-right: 48px;
  overflow: visible;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 22px;
  background:
    radial-gradient(circle at 10% 15%, rgba(242,139,60,.10), transparent 34%),
    radial-gradient(circle at 88% 20%, rgba(var(--primary-rgb), .11), transparent 40%),
    linear-gradient(135deg, rgba(255,252,248,.97), rgba(247,248,255,.95));
  box-shadow: 0 11px 30px rgba(35,40,78,.055);
}
#patientDetailModal.patient-detail-page .patient-unified-header .detail-header {
  position: static;
  min-width: 0;
  padding: 18px 20px;
  border: 0;
  background: transparent;
}
.patient-unified-header .detail-header > div:first-child {
  display: grid;
  flex: 1;
  min-width: 0;
  align-content: center;
  gap: 8px;
}
.patient-unified-header .detail-title-line { min-width: 0; }
.patient-unified-header .detail-title-line h3 {
  font-size: 22px;
  line-height: 1.1;
  letter-spacing: -.035em;
  overflow-wrap: anywhere;
}
.patient-unified-header .detail-header-actions {
  position: absolute;
  z-index: 8;
  top: 50%;
  right: 7px;
  flex-direction: column;
  align-self: auto;
  gap: 6px;
  margin-top: 0;
  opacity: .72;
  transform: translateY(-50%);
  transition: opacity .18s ease;
}
.patient-unified-header .detail-header-actions:hover,
.patient-unified-header .detail-header-actions:focus-within { opacity: 1; }
.patient-unified-header .identity-quick-btn,
.patient-unified-header .detail-option-btn {
  border-color: rgba(23,27,36,.055);
  background: rgba(255,255,255,.38);
  box-shadow: none;
  color: var(--tx-4);
}
.patient-unified-header .identity-quick-btn:hover,
.patient-unified-header .identity-quick-btn:focus-visible,
.patient-unified-header .detail-option-btn:hover,
.patient-unified-header .detail-option-btn:focus-visible {
  border-color: rgba(var(--primary-rgb), .15);
  background: rgba(255,255,255,.82);
  box-shadow: 0 5px 14px rgba(35,40,78,.065);
  color: var(--tx-2);
  transform: none;
}
.patient-unified-header .patient-follow-up-header {
  width: min(100%, 560px);
  display: flex;
  min-width: 0;
  align-items: stretch;
  flex-wrap: nowrap;
  margin-top: 0;
  opacity: 1;
}
.patient-unified-header .patient-follow-up-picker { min-width: 0; flex: 1 1 auto; }
.patient-unified-header .patient-follow-up-menu,
.patient-unified-header .patient-follow-up-trigger { width: 100%; max-width: none; }
.patient-unified-header .patient-follow-up-trigger,
.patient-unified-header .patient-follow-up-add {
  border-color: rgba(var(--primary-rgb), .12);
  background: rgba(255,255,255,.58);
  box-shadow: none;
}
.patient-unified-header .patient-follow-up-trigger {
  padding: 6px 8px 6px 12px;
  border-radius: 13px;
}
.patient-follow-up-trigger-copy { display: grid; min-width: 0; gap: 3px; }
.patient-unified-header .patient-follow-up-trigger-copy small { display: none; }
.patient-follow-up-trigger-copy strong { overflow: hidden; color: var(--tx-2); font-size: 14px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.patient-unified-header .patient-follow-up-chevron {
  display: grid;
  width: 27px;
  height: 27px;
  flex: 0 0 27px;
  place-items: center;
  border-radius: 50%;
  background: rgba(var(--primary-rgb), .08);
}
.patient-unified-header .patient-follow-up-option-add {
  justify-content: flex-start;
  border-radius: 0 0 8px 8px;
  color: var(--primary-dk);
}
.patient-unified-header .patient-follow-up-option-add > span {
  display: grid;
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  place-items: center;
  border-radius: 50%;
  background: rgba(var(--primary-rgb), .11);
  font-size: 14px;
}
.patient-unified-header .patient-follow-up-option-add > strong { font-size: 11px; }
.patient-unified-header .detail-notification-btn,
.patient-unified-header .identity-quick-btn,
.patient-unified-header .detail-option-btn,
.patient-unified-header .detail-back-btn { width: 34px; height: 34px; border-radius: 11px; }
.patient-unified-header .identity-quick-btn,
.patient-unified-header .detail-option-btn { width: 31px; height: 31px; border-radius: 10px; }
.patient-unified-header .identity-quick-btn.icon-user::before { width: 15px; height: 15px; }
.patient-unified-header .detail-title-line .detail-notification-btn {
  position: static;
  width: auto;
  min-width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
}
.patient-unified-header .detail-title-line .detail-notification-btn > span { display: none; }
.patient-unified-header .detail-title-line .detail-notification-btn.has-notifications {
  background: transparent;
  color: var(--primary);
}
.patient-unified-header .detail-title-line .detail-notification-btn strong {
  position: static;
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  border: 0;
  background: var(--primary);
  color: #fff;
  font-size: 9px;
  box-shadow: 0 3px 9px rgba(var(--primary-rgb), .22);
}
.patient-header-more-menu { position: relative; }
.patient-header-more-trigger { color: var(--tx-3); font-size: 12px !important; font-weight: 900; letter-spacing: .05em; }
.patient-header-more-panel {
  position: absolute;
  z-index: 60;
  top: calc(100% + 7px);
  left: auto;
  right: 0;
  display: grid;
  width: 202px;
  gap: 3px;
  padding: 6px;
  border: 1px solid rgba(var(--primary-rgb), .15);
  border-radius: 13px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 16px 34px rgba(35,40,78,.16);
}
.patient-unified-header .patient-header-more-panel {
  top: 50%;
  right: calc(100% + 9px);
  transform: translateY(-50%);
}
.patient-header-more-panel.hidden { display: none; }
.patient-header-more-action {
  display: flex;
  width: 100%;
  min-height: 38px;
  align-items: center;
  gap: 9px;
  padding: 0 10px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--tx-2);
  font: 750 11px/1.2 var(--font);
  text-align: left;
  cursor: pointer;
}
.patient-header-more-action:hover,
.patient-header-more-action:focus-visible { background: rgba(var(--primary-rgb), .08); outline: 0; }
.patient-header-more-action > span { display: grid; width: 20px; height: 20px; place-items: center; border-radius: 6px; background: rgba(var(--primary-rgb), .08); }
.patient-header-more-action.is-danger { color: var(--error); }
.patient-header-more-action.is-danger:hover,
.patient-header-more-action.is-danger:focus-visible { background: var(--clr-er-50); }
.patient-unified-header > .patient-header-trend {
  display: grid;
  width: auto;
  min-width: 132px;
  max-width: none;
  grid-template-columns: 1fr;
  place-items: center;
  margin: 0;
  padding: 13px 20px;
  border: 0;
  border-left: 1px solid rgba(var(--primary-rgb), .10);
  border-radius: 0;
  background:
    radial-gradient(circle at 50% 42%, rgba(255,255,255,.9), transparent 52%),
    linear-gradient(145deg, rgba(var(--primary-rgb), .085), rgba(125,211,191,.055));
  box-shadow: none;
  opacity: 1;
}
.patient-unified-header .patient-persistent-trend-score { min-width: 0; gap: 6px; padding-right: 0; border-right: 0; }
.patient-unified-header .patient-persistent-score-ring {
  width: 82px;
  height: 82px;
  box-shadow: 0 9px 22px rgba(var(--primary-rgb), .15), 0 0 0 1px rgba(var(--primary-rgb), .045);
}
.patient-unified-header .patient-persistent-score-ring::after { inset: 7px; }
.patient-unified-header .patient-persistent-score-ring strong { font-size: 29px; }
.patient-unified-header .patient-persistent-score-ring small { font-size: 9px; }
.patient-unified-header .patient-persistent-trend-score em { color: var(--primary-dk); font-size: 8.5px; letter-spacing: .06em; }
.patient-unified-header .patient-persistent-trend .synapse-trajectory-context strong { font-size: 12px; }
.patient-unified-header .patient-persistent-trend .synapse-trajectory-context small { font-size: 8px; }
.patient-unified-header .patient-trend-load-history > small { font-size: 8px; }
.patient-unified-header > .patient-header-trend:hover,
.patient-unified-header > .patient-header-trend:focus-visible {
  background: rgba(255,255,255,.38);
  opacity: 1;
  transform: none;
}
.patient-evolution-trend-summary {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  margin: 10px 0 0;
  padding: 10px 12px;
  border: 0;
  border-radius: 13px;
  background: rgba(var(--primary-rgb), .055);
}
.patient-evolution-trend-summary > .synapse-trajectory-context {
  width: 100%;
  padding: 0;
  background: transparent;
}
.patient-evolution-trend-summary .patient-trend-title-copy { font-size: 13px; }
.patient-evolution-trend-summary .patient-trend-load-history { margin-top: 9px; }
.prototype-cockpit-header.without-current-score { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 760px) {
  .patient-unified-header {
    grid-template-columns: 1fr;
    margin: 10px 14px 8px;
    padding-right: 45px;
    border-radius: 19px;
  }
  #patientDetailModal.patient-detail-page .patient-unified-header .detail-header {
    position: static;
    display: block;
    padding: 15px 15px 11px;
  }
  .patient-unified-header .detail-header > div:first-child { display: grid; width: 100%; gap: 10px; }
  .patient-unified-header .detail-title-line { margin-top: 0; padding-right: 0; }
  .patient-unified-header .detail-header-actions {
    top: 50%;
    right: 7px;
    flex-direction: column;
    margin-top: 0;
    transform: translateY(-50%);
  }
  .patient-unified-header .patient-follow-up-header { width: 100%; }
  .patient-unified-header .patient-follow-up-picker { flex: 1 1 0; }
  .patient-unified-header .patient-follow-up-menu,
  .patient-unified-header .patient-follow-up-trigger { width: 100%; max-width: none; }
  .patient-unified-header > .patient-header-trend {
    margin: 0 12px 12px;
    padding: 13px 16px 15px;
    border-top: 1px solid rgba(var(--primary-rgb), .09);
    border-left: 0;
    border-radius: 15px;
  }
  .patient-unified-header > .patient-header-trend:hover,
  .patient-unified-header > .patient-header-trend:focus-visible {
    background:
      radial-gradient(circle at 50% 42%, rgba(255,255,255,.9), transparent 52%),
      linear-gradient(145deg, rgba(var(--primary-rgb), .085), rgba(125,211,191,.055));
  }
}
@media (max-width: 560px) {
  .patient-unified-header .detail-title-line h3 { font-size: 20px; }
  .patient-unified-header .patient-follow-up-trigger-copy strong { font-size: 12px; }
  .patient-unified-header .patient-persistent-trend-score { min-width: 0; padding-right: 0; }
  .patient-unified-header .patient-persistent-score-ring { width: 68px; height: 68px; }
  .patient-unified-header .patient-persistent-score-ring strong { font-size: 24px; }
  .patient-unified-header .patient-persistent-trend .synapse-trajectory-context strong { font-size: 11px; }
  .detail-header > div:first-child { min-width: 0; }
  .patient-persistent-trend { width: 100%; gap: 7px; padding: 6px 7px; }
  .patient-unified-header > .patient-header-trend { width: auto; }
  .detail-modal-content > .patient-header-trend { width: auto; max-width: none; margin: 6px 14px 8px; }
  .patient-persistent-trend .synapse-trajectory-context,
  .patient-persistent-trend .synapse-trajectory-context-heading { min-width: 0; }
  .patient-persistent-trend .synapse-trajectory-context strong,
  .patient-persistent-trend .synapse-trajectory-context small { overflow-wrap: anywhere; }
  .patient-dashboard-trend .synapse-recent-decisions { display: none; }
  .patient-persistent-trend-score { min-width: 54px; padding-right: 7px; }
  .patient-persistent-score-ring { width: 42px; height: 42px; }
  .patient-persistent-score-ring strong { font-size: 15px; }
  .patient-persistent-trend .synapse-trajectory-context-heading { gap: 4px; }
  .patient-persistent-trend .synapse-trajectory-context strong { font-size: 9px; }
  .patient-persistent-trend .synapse-trajectory-context small { font-size: 6.5px; }
  .patient-trend-phase { font-size: 8px; }
  .patient-trend-load-history { gap: 5px; }
  .patient-trend-load-history > small { font-size: 7px; }
  .patient-trend-explanation-panel { width: 100%; padding: 13px; }
  .patient-trend-explanation-panel dl > div { grid-template-columns: 80px minmax(0,1fr); gap: 8px; }
  .patient-evolution-trend-summary { padding: 9px 10px; }
}

/* Mode séance : un écran de pilotage qui occupe le cadre sans devenir une longue page. */
@media (min-width: 721px) {
  .session-mode-overlay {
    padding: 12px;
    overflow: hidden;
  }

  .session-mode-shell {
    display: flex;
    flex-direction: column;
    width: min(1080px, 100%);
    height: min(840px, calc(100dvh - 24px));
    min-height: 0;
    padding: 15px 17px;
    overflow: hidden;
  }

  .session-mode-shell > .clinical-work-context {
    position: static;
    flex: 0 0 auto;
  }
  .session-mode-header { flex: 0 0 auto; margin-bottom: 8px; }
  .session-mode-progress { flex: 0 0 auto; gap: 5px; margin-bottom: 8px; }
  .session-mode-modulation-panel,
  .session-mode-modulation-compact,
  .session-mode-sport-exposure { flex: 0 0 auto; }
  .session-mode-modulation-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
    padding: 8px 10px;
  }
  .session-mode-modulation-panel > header { flex: 1 1 auto; }
  .session-mode-modulation-panel > p { display: none; }
  .session-mode-modulation-panel > div { flex: 0 0 auto; }
  .session-mode-modulation-panel > div button { min-width: 0; padding: 7px 9px; }
  .session-mode-modulation-panel button span { display: none; }

  .session-mode-current-card {
    flex: 1 1 0;
    min-height: 0;
    grid-template-columns: minmax(280px, .9fr) minmax(360px, 1.1fr);
    align-content: stretch;
    gap: 16px;
    padding: 15px;
    overflow: hidden;
  }

  .session-mode-exercise-overview,
  .session-mode-execution {
    display: grid;
    min-width: 0;
    min-height: 0;
    align-content: start;
    gap: 10px;
    overflow: visible;
  }
  .session-mode-exercise-overview {
    padding-right: 10px;
  }
  .session-mode-execution {
    padding: 2px 2px 2px 0;
  }

  .session-mode-dose-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .session-mode-dose { padding: 8px 9px; }
  .session-mode-dose strong { font-size: 13px; }
  .session-mode-current-copy h2 { font-size: clamp(24px, 2.8vw, 36px); }
  .session-mode-rating {
    grid-template-columns: minmax(0, 1fr) minmax(132px, .34fr);
    gap: 6px 9px;
    padding: 9px 10px;
  }
  .session-mode-rating > header,
  .session-mode-repetitions-field,
  .session-mode-series-actual-fields,
  .session-mode-feedback-fields { grid-column: 1 / -1; }
  .session-mode-series-actual-fields > .session-mode-repetitions-field {
    grid-column: auto;
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 8px 10px;
  }
  .session-mode-feedback-field { gap: 4px 8px; padding: 6px 8px; }
  .session-mode-feedback-field input[type="range"] { min-height: 20px; }
  .session-mode-quality { grid-column: 1; align-self: end; gap: 5px; }
  .session-mode-quality > div { gap: 4px; }
  .session-mode-quality button { min-height: 34px; padding: 5px 7px; }
  .session-mode-feedback-save {
    grid-column: 2;
    grid-row: auto;
    align-self: end;
    min-height: 36px;
    padding: 8px 13px;
  }
  .session-mode-navigation { padding: 8px 3px 4px; }
  .session-mode-footer { margin-top: 0; padding-top: 7px; }
}

/* Bureau peu haut : conserver toutes les commandes de la série dans le viewport. */
@media (min-width: 721px) and (max-height: 700px) {
  .session-mode-overlay { padding: 4px; }
  .session-mode-shell {
    height: calc(100dvh - 8px);
    padding: 7px 11px;
    border-radius: 22px;
  }
  .session-mode-shell > .clinical-work-context {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 5px 10px;
  }
  .session-mode-shell > .clinical-work-context strong { font-size: 12px; }
  .session-mode-shell > .clinical-work-context span { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
  .session-mode-header {
    min-height: 38px;
    margin: 0 0 3px;
    padding: 4px 8px;
  }
  .session-mode-brand span { display: none; }
  .session-mode-brand strong { font-size: 17px; }
  .session-mode-header-actions { gap: 5px; }
  .session-mode-plan-trigger { width: 30px; height: 30px; }
  .session-mode-sound,
  .session-mode-pause,
  .session-mode-adapt { padding: 7px 9px; }
  .session-mode-progress { gap: 3px; margin-bottom: 4px; }
  .session-mode-progress > div:first-child span { font-size: 9px; }
  .session-mode-progress > div:first-child strong { font-size: 13px; }
  .session-mode-progress-track { height: 5px; }
  .session-mode-progress small { font-size: 7px; }
  .session-mode-modulation-panel {
    min-height: 34px;
    margin-bottom: 5px;
    padding: 5px 8px;
  }
  .session-mode-modulation-panel header span { display: none; }
  .session-mode-modulation-panel header strong { font-size: 11px; }
  .session-mode-modulation-panel header em { font-size: 8px; }
  .session-mode-modulation-panel > div button { padding: 5px 8px; }
  .session-mode-current-card { gap: 11px; padding: 9px 11px; border-radius: 18px; }
  .session-mode-exercise-overview,
  .session-mode-execution { gap: 5px; }
  .session-mode-current-copy { gap: 2px; }
  .session-mode-current-copy > span { font-size: 7px; }
  .session-mode-current-copy h2 { font-size: 27px; }
  .session-mode-current-copy p { margin-top: 1px; font-size: 10px; }
  .session-mode-effort-context { padding-block: 5px; }
  .session-mode-dose-grid { gap: 5px; }
  .session-mode-dose { gap: 1px; padding: 5px 7px; }
  .session-mode-dose span { font-size: 7px; }
  .session-mode-dose strong { font-size: 11px; }
  .session-mode-rating { gap: 4px 7px; padding: 6px 7px; }
  .session-mode-rating > header { gap: 0; }
  .session-mode-rating > header span { font-size: 7px; }
  .session-mode-rating h3 { font-size: 13px; }
  .session-mode-series-actual-fields,
  .session-mode-feedback-fields { gap: 6px; }
  .session-mode-series-actual-fields > .session-mode-repetitions-field { gap: 2px; padding: 5px 7px; }
  .session-mode-repetitions-field strong,
  .session-mode-feedback-field > span:first-child strong { font-size: 9px; }
  .session-mode-repetitions-field small,
  .session-mode-feedback-field > span:first-child small,
  .session-mode-rating-scale { font-size: 6px; }
  .session-mode-repetitions-field input { min-height: 31px; padding: 5px 7px; font-size: 10px; }
  .session-mode-feedback-field { gap: 2px 6px; padding: 4px 6px; }
  .session-mode-feedback-field output { font-size: 18px; }
  .session-mode-feedback-field input[type="range"] { min-height: 14px; }
  .session-mode-quality { gap: 3px; }
  .session-mode-quality legend { font-size: 8px; }
  .session-mode-quality button { min-height: 28px; padding: 4px 6px; font-size: 8px; }
  .session-mode-feedback-save { min-height: 30px; padding: 6px 9px; font-size: 9px; }
  .session-mode-navigation { min-height: 31px; padding: 3px 2px 2px; }
  .session-mode-navigation > button { padding-block: 5px; }
  .session-mode-footer { min-height: 32px; padding: 3px 2px 0; }
  .session-mode-footer > div { display: flex; align-items: baseline; gap: 8px; }
  .session-mode-footer > div strong { font-size: 9px; }
  .session-mode-footer > div span { overflow: hidden; max-width: 360px; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
  .session-mode-footer > button { padding-block: 4px; font-size: 9px; }
}

/* Le dossier patient utilise désormais la mosaïque comme menu principal. */
#patientDetailModal.patient-detail-page .patient-record-navigation { display: none !important; }
.patient-section-back {
  display: inline-flex;
  width: fit-content;
  min-height: 36px;
  align-items: center;
  margin: 12px 20px 0;
  padding: 0 12px;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: 11px;
  background: rgba(var(--primary-rgb), .06);
  color: var(--primary-dk);
  font: 800 11px/1 var(--font);
  cursor: pointer;
}
.patient-section-back:hover,
.patient-section-back:focus-visible { border-color: rgba(var(--primary-rgb), .32); background: rgba(var(--primary-rgb), .11); outline: 0; }
.patient-section-back.hidden { display: none !important; }
.detail-modal-content.initial-assessment-page-open > .patient-section-back,
.detail-modal-content.follow-up-assessments-page-open > .patient-section-back,
.detail-modal-content.patient-information-open > .patient-section-back,
#patientDetailModal.patient-detail-page.session-preparation-page-open .patient-section-back,
#patientDetailModal.patient-detail-page.session-directory-page-open .patient-section-back,
#patientDetailModal.patient-detail-page.session-completed-page-open .patient-section-back { display: none !important; }

@media (max-width: 560px) {
  .patient-section-back { margin: 10px 14px 0; }
}

/* Dossier patient : planning, identité et mosaïque reposent sur un même plan visuel. */
body:has(#patientDetailModal.patient-detail-page:not(.hidden)) .topbar {
  border-bottom-color: rgba(var(--primary-rgb), .10);
  background:
    linear-gradient(90deg, rgba(255,252,248,.96), rgba(248,248,255,.96));
  box-shadow: none;
}
body:has(#patientDetailModal.patient-detail-page:not(.hidden)) #patientDetailModal.patient-detail-page {
  background:
    radial-gradient(circle at 18% 2%, rgba(242,139,60,.07), transparent 30%),
    radial-gradient(circle at 84% 7%, rgba(var(--primary-rgb), .08), transparent 34%),
    linear-gradient(180deg, #fbfaff 0%, #faf9f7 420px, #fbfaf8 100%);
}
body:has(#patientDetailModal.patient-detail-page:not(.hidden)) #patientDetailModal.patient-detail-page > .detail-modal-content {
  background: transparent;
}
#patientDetailModal.patient-detail-page .patient-unified-header {
  margin: 8px 20px 0;
  box-shadow: 0 8px 24px rgba(35,40,78,.045);
}
#patientDetailModal.patient-detail-page #patientDashboardPanel {
  padding: 8px 20px 32px;
}
#patientDetailModal.patient-detail-page #patientDashboardPanel .patient-dashboard-mosaic {
  margin-top: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

@media (max-width: 760px) {
  #patientDetailModal.patient-detail-page .patient-unified-header { margin: 7px 14px 0; }
  #patientDetailModal.patient-detail-page #patientDashboardPanel { padding: 8px 14px 24px; }
}

/* Direction visuelle Synapse v2 — claire, lavande et continue sur tous les espaces. */
:root {
  --bg: #fbfaff;
  --surface-2: #f7f5ff;
  --surface-3: #eeebfa;
  --border: #e5e1f1;
  --border-s: #d5ceed;
  --tx: #292542;
  --tx-2: #45405d;
  --tx-3: #706a82;
  --tx-4: #978fa8;
  --sb-bg: #f4f1ff;
  --sb-tx: #746d8b;
  --sb-tx-h: #37314e;
  --sb-border: #e2ddef;
  --sb-active: #e4dfff;
}

body {
  background: linear-gradient(135deg, #fbfaff 0%, #f7f5ff 100%);
}

/* Une navigation légère : le violet foncé n'est plus une masse permanente. */
.sidebar {
  border-right: 1px solid var(--sb-border);
  background: linear-gradient(180deg, #f7f5ff 0%, #f0edfc 100%);
  box-shadow: none;
}

.sidebar-brand-name { color: var(--tx); }
.sidebar-brand-icon { background: var(--primary); box-shadow: 0 8px 18px rgba(98, 88, 232, .2); }
.sidebar-section-label { color: var(--tx-4); }
.sidebar-nav-item { color: var(--sb-tx); }
.sidebar-nav-item:hover { background: rgba(98, 88, 232, .07); color: var(--sb-tx-h); }
.sidebar-nav-item.active,
.sidebar .nav-item.active,
.sidebar .nav-item[aria-current="page"] {
  background: var(--sb-active);
  color: var(--primary-dk);
  box-shadow: inset 3px 0 0 var(--primary);
}
.sidebar-user-name { color: var(--tx-2); }
.sidebar-user-role { color: var(--tx-4); }

.topbar {
  border-bottom-color: var(--border);
  background: rgba(255, 255, 255, .88);
  box-shadow: none;
}

.topbar-search input,
.topbar-btn,
input,
textarea,
select {
  border-color: var(--border);
  background: rgba(255, 255, 255, .9);
}

.primary-btn,
button[type="submit"],
#addPatientBtn {
  box-shadow: 0 10px 22px rgba(98, 88, 232, .2);
}

/* Socle unique : chaque espace utilise les mêmes surfaces, bords et niveaux de lecture. */
.patient-list-surface,
.library-card,
.community-card,
.patient-home-card,
.modal-content,
.summary-card,
.search-panel,
.feedback-item,
.session-item,
.bilan-item,
.library-item,
.score-card,
.patient-metric-card,
.patient-dashboard-card,
.patient-dashboard-action,
.patient-bilan-card {
  border-color: var(--border);
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 8px 22px rgba(52, 44, 102, .045);
}

.patient-list-surface:hover,
.library-card:hover,
.patient-home-card:hover,
.session-item:hover,
.library-item:hover {
  border-color: rgba(98, 88, 232, .3);
  box-shadow: 0 12px 28px rgba(52, 44, 102, .08);
}

.card-header,
.dashboard-chart-card .card-header,
.patient-list-card .card-header,
.session-item + .session-item,
.patient-bilan-card[open] summary {
  border-bottom-color: var(--border);
}

.patient-table th { background: var(--surface-2); }
.patient-table tbody tr:hover td { background: var(--primary-bg); }
.session-item.session-item-next-highlight,
.session-item.session-item-priority-future,
.patient-context-card[data-state="ready"] {
  border-color: rgba(98, 88, 232, .34);
  background: linear-gradient(135deg, #fff 0%, var(--primary-bg) 100%);
}

/* Accueil : la priorité ressort par le relief et non par un aplat sombre. */
.dashboard-assistant-hero.dashboard-compact-hero {
  border: 1px solid #e0dbf6;
  background:
    radial-gradient(circle at 94% 14%, rgba(146, 130, 239, .22), transparent 20rem),
    linear-gradient(135deg, #f5f2ff 0%, #ece8ff 100%);
  box-shadow: 0 14px 32px rgba(71, 58, 171, .08);
}

.dashboard-compact-hero .section-kicker,
.dashboard-compact-hero .dashboard-assistant-copy p:last-child { color: var(--tx-3); }
.dashboard-compact-hero .section-kicker { color: var(--primary-dk); }
.dashboard-compact-hero .dashboard-assistant-copy h1 { }

.dashboard-clinical-cockpit #dashboardSessionsCard {
  border: 1px solid #dcd6f3;
  border-left: 4px solid var(--primary);
  background: #fff;
  box-shadow: 0 12px 28px rgba(71, 58, 171, .08);
}

.dashboard-clinical-cockpit #dashboardSessionsCard .card-header { border-bottom-color: var(--border); }
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-section-title,
.dashboard-clinical-cockpit #dashboardSessionsCard .session-inline-link { color: var(--tx); }

.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item {
  border-color: rgba(98, 88, 232, .13);
  background: #f9f8ff;
}

.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item:hover,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item.clickable:hover { background: var(--primary-bg); }

.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-title,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item strong,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-note,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-meta,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-meta-row,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-empty { color: var(--tx-2); }

.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-action-link { color: var(--primary-dk); }

@media (max-width: 720px) {
  .sidebar { border-right: 0; border-bottom: 1px solid var(--sb-border); }
}

/* ════════════════════════════════════════════════════════════════
   Direction visuelle Synapse — août 2026
   La couleur sert à orienter. Les surfaces restent calmes pour laisser
   apparaître l'action clinique et les données utiles.
   ════════════════════════════════════════════════════════════════ */
:root {
  --clr-p-50: #f1efff;
  --clr-p-100: #e6e2ff;
  --clr-p-200: #d1caff;
  --clr-p-300: #b6a9fa;
  --clr-p-400: #9182ef;
  --clr-p-500: #6b5ce7;
  --clr-p-600: #5849cf;
  --clr-p-700: #473aab;
  --clr-p-800: #352d82;
  --clr-p-900: #24213d;
  --primary: #6258e8;
  --primary-dk: #473aab;
  --primary-bg: #efedff;
  --bg: #faf9fe;
  --surface: #ffffff;
  --surface-2: #f7f5fd;
  --surface-3: #eeecf7;
  --border: #e4e0ef;
  --border-s: #d8d2e7;
  --tx: #24213d;
  --tx-2: #393452;
  --tx-3: #6d6681;
  --tx-4: #938ca3;
  --sb-bg: #24213d;
  --sb-active: rgba(238, 234, 254, .15);
}

body {
  background:
    radial-gradient(circle at 5% 0%, rgba(107, 92, 231, .1), transparent 30rem),
    var(--bg);
}

.sidebar {
  background:
    radial-gradient(circle at 10% 0%, rgba(161, 149, 255, .19), transparent 16rem),
    var(--sb-bg);
}

.sidebar .nav-item.active,
.sidebar .nav-item[aria-current="page"] {
  background: var(--sb-active);
  color: #fff;
  box-shadow: inset 3px 0 0 #bdb4ff;
}

.primary-btn,
button[type="submit"],
#addPatientBtn {
  background: var(--primary);
  box-shadow: 0 12px 28px rgba(71, 58, 171, .22);
}

.primary-btn:hover,
button[type="submit"]:hover,
#addPatientBtn:hover {
  background: var(--primary-dk);
  box-shadow: 0 18px 38px rgba(71, 58, 171, .27);
}

/* Tableau de bord : lecture en trois temps — priorité, repères, détail. */
.dashboard-tab {
  gap: 20px;
}

.dashboard-assistant-hero.dashboard-compact-hero {
  min-height: 164px;
  padding: 28px 30px;
  border-radius: 20px;
  background:
    radial-gradient(circle at 94% 14%, rgba(185, 177, 255, .28), transparent 18rem),
    linear-gradient(135deg, #29254a 0%, #383061 58%, #5545a2 100%);
  box-shadow: 0 20px 48px rgba(36, 33, 61, .18);
}

.dashboard-assistant-hero::after {
  width: 380px;
  height: 380px;
  background: radial-gradient(circle, rgba(217, 212, 255, .17), transparent 69%);
}

.dashboard-compact-hero .section-kicker,
.dashboard-compact-hero .dashboard-assistant-copy p:last-child {
  color: rgba(245, 243, 255, .75);
}

.dashboard-compact-hero .section-kicker {
  margin-bottom: 10px;
  letter-spacing: .12em;
}

.dashboard-compact-hero .dashboard-assistant-copy h1 {
  color: #fff;
  font-size: clamp(31px, 3vw, 38px);
}

.dashboard-compact-hero .dashboard-assistant-copy p:last-child {
  max-width: 650px;
  font-size: 14px;
  font-weight: 600;
}

.dashboard-clinical-cockpit {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.dashboard-clinical-cockpit .dashboard-metrics-grid {
  gap: 10px;
  padding: 0;
  border: 0;
  background: transparent;
}

.dashboard-clinical-cockpit .metric-card {
  position: relative;
  min-height: 108px;
  padding: 17px 18px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255, 255, 255, .72);
}

.dashboard-clinical-cockpit .metric-card[role="button"]:hover,
.dashboard-clinical-cockpit .metric-card.metric-card-active {
  border-color: rgba(98, 88, 232, .36);
  background: #fff;
  box-shadow: 0 10px 24px rgba(65, 53, 130, .08);
}

.dashboard-clinical-cockpit .metric-card.metric-card-active::after {
  right: 18px;
  bottom: 0;
  left: 18px;
  height: 3px;
  background: var(--primary);
}

.dashboard-clinical-cockpit .metric-card h2 {
  font-size: 32px;
}

.dashboard-clinical-cockpit .metric-card .metric-subtext {
}

.dashboard-clinical-cockpit .dashboard-columns-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}

.dashboard-clinical-cockpit .dashboard-card {
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(255, 255, 255, .78);
  box-shadow: none;
}

.dashboard-clinical-cockpit #dashboardSessionsCard {
  grid-column: 1 / -1;
  border: 0;
  background: linear-gradient(135deg, #29254a 0%, #37305f 100%);
  box-shadow: 0 16px 34px rgba(36, 33, 61, .16);
}

.dashboard-clinical-cockpit .dashboard-chart-card .card-header {
  padding: 18px 20px 14px;
  border-bottom-color: rgba(57, 52, 82, .1);
  background: transparent;
}

.dashboard-clinical-cockpit .dashboard-chart-card .dashboard-list {
  padding: 8px 14px 14px;
}

.dashboard-clinical-cockpit .dashboard-item {
  padding: 14px;
  border-color: rgba(57, 52, 82, .08);
  border-radius: 13px;
  background: rgba(255, 255, 255, .76);
}

.dashboard-clinical-cockpit .dashboard-item.clickable:hover,
.dashboard-clinical-cockpit .dashboard-item:hover {
  border-color: rgba(98, 88, 232, .36);
  background: #fff;
}

.dashboard-clinical-cockpit #dashboardSessionsCard .card-header {
  border-bottom-color: rgba(255, 255, 255, .15);
}

.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-section-title,
.dashboard-clinical-cockpit #dashboardSessionsCard .session-inline-link {
  color: #fff;
}

.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item {
  border-color: rgba(255, 255, 255, .12);
  background: rgba(255, 255, 255, .1);
}

.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item:hover,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item.clickable:hover {
  border-color: rgba(255, 255, 255, .32);
  background: rgba(255, 255, 255, .17);
}

.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-title,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item strong,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-note,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-meta,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-meta-row,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-empty,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-action-link {
  color: rgba(255, 255, 255, .88);
}

.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-action-link {
  color: #d9d4ff;
}

.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-empty {
  color: rgba(255, 255, 255, .7);
}

@media (max-width: 720px) {
  .main-content { padding: 22px 18px 42px; }
  .dashboard-assistant-hero.dashboard-compact-hero { min-height: 148px; padding: 24px 22px; border-radius: 18px; }
  .dashboard-clinical-cockpit .dashboard-columns-grid { }
  .dashboard-clinical-cockpit #dashboardSessionsCard { }
  .dashboard-clinical-cockpit .dashboard-metrics-grid { gap: 8px; }
  .dashboard-clinical-cockpit .metric-card { min-height: 98px; }
}

/* Course · conduite à tenir validée par le kiné et signalement de douleur en direct. */
.running-pain-plan-editor {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 14px;
  border: 1px solid rgba(232, 184, 121, .34);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(255, 250, 242, .9), rgba(255, 255, 255, .76));
}
.running-pain-plan-editor legend { display: grid; gap: 2px; padding: 0 5px; color: var(--tx); }
.running-pain-plan-editor legend span { font-size: 12px; font-weight: 850; }
.running-pain-plan-editor legend small { color: var(--tx-4); font-size: 8px; font-weight: 650; }
.running-pain-plan-editor > label,
.running-pain-plan-thresholds label { display: grid; gap: 5px; color: var(--tx-3); font-size: 9px; font-weight: 800; }
.running-pain-plan-editor label small { color: var(--tx-4); font-size: 8px; }
.running-pain-plan-editor input,
.running-pain-plan-editor textarea {
  width: 100%;
  padding: 9px 10px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 11px;
  background: rgba(255, 255, 255, .92);
  color: var(--tx);
  font: 700 10px/1.4 var(--font);
  resize: vertical;
}
.running-pain-plan-editor input:focus,
.running-pain-plan-editor textarea:focus { border-color: rgba(var(--primary-rgb), .38); outline: 3px solid rgba(var(--primary-rgb), .08); }
.running-pain-plan-thresholds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.running-pain-plan-editor > p { margin: 0; color: var(--tx-4); font-size: 8px; line-height: 1.45; }

.session-mode-pain-btn {
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid rgba(210, 142, 72, .32);
  border-radius: 13px;
  background: #fff8ee;
  color: #9b572d;
  font: 850 11px/1 var(--font);
  cursor: pointer;
}
.session-mode-pain-btn:hover,
.session-mode-pain-btn:focus-visible { border-color: rgba(210, 142, 72, .55); background: #fff2df; outline: 3px solid rgba(232, 184, 121, .18); }
.session-mode-running-pain {
  display: grid;
  gap: 12px;
  grid-column: 1 / -1;
  min-width: 0;
  padding: clamp(14px, 2vw, 20px);
  border: 1px solid rgba(232, 184, 121, .34);
  border-radius: 20px;
  background: linear-gradient(150deg, rgba(255, 249, 240, .96), rgba(255, 255, 255, .92));
  box-shadow: 0 14px 34px rgba(116, 85, 50, .08);
}
.session-mode-running-pain > header { display: grid; gap: 3px; }
.session-mode-running-pain > header > span { color: #a86438; font-size: 9px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.session-mode-running-pain h2 { margin: 0; color: var(--tx); font-size: clamp(22px, 3vw, 30px); letter-spacing: -.04em; }
.session-mode-running-pain header p,
.session-mode-running-pain > p { margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.5; }
.session-mode-pain-choice { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; border: 0; }
.session-mode-pain-choice legend { width: 100%; margin-bottom: 2px; color: var(--tx-2); font-size: 10px; font-weight: 850; }
.session-mode-pain-choice label { position: relative; display: inline-flex; min-height: 36px; align-items: center; }
.session-mode-pain-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.session-mode-pain-choice span { display: inline-flex; min-height: 36px; align-items: center; padding: 8px 11px; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 999px; background: rgba(255, 255, 255, .82); color: var(--tx-3); font-size: 9px; font-weight: 780; cursor: pointer; }
.session-mode-pain-choice input:checked + span { border-color: rgba(var(--primary-rgb), .34); background: var(--primary-bg); color: var(--primary-dk); box-shadow: inset 0 0 0 1px rgba(var(--primary-rgb), .08); }
.session-mode-pain-choice input:focus-visible + span { outline: 3px solid rgba(var(--primary-rgb), .13); outline-offset: 2px; }
.session-mode-pain-rating { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; color: var(--tx-2); }
.session-mode-pain-rating > span { display: contents; }
.session-mode-pain-rating strong { font-size: 10px; }
.session-mode-pain-rating output { color: var(--primary); font-size: 18px; font-weight: 900; }
.session-mode-pain-rating input { grid-column: 1 / -1; width: 100%; accent-color: var(--primary); }
.session-mode-pain-rating > small { display: flex; justify-content: space-between; grid-column: 1 / -1; color: var(--tx-4); font-size: 8px; }
.session-mode-pain-rating i { font-style: normal; }
.session-mode-pain-location,
.session-mode-pain-detail { display: grid; gap: 5px; color: var(--tx-2); font-size: 10px; font-weight: 850; }
.session-mode-pain-location input,
.session-mode-pain-detail textarea { width: 100%; padding: 10px 11px; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 12px; background: white; color: var(--tx); font: 700 11px/1.4 var(--font); }
.session-mode-pain-detail small { color: var(--tx-4); font-size: 8px; font-weight: 650; }
.session-mode-pain-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.session-mode-pain-actions button { min-height: 40px; padding: 9px 13px; border: 1px solid rgba(var(--primary-rgb), .13); border-radius: 12px; background: white; color: var(--primary-dk); font: 820 10px/1 var(--font); cursor: pointer; }
.session-mode-pain-actions button.is-primary { border-color: var(--primary); background: var(--primary); color: white; }
.session-mode-pain-actions button:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .15); outline-offset: 2px; }
.session-mode-pain-clock { color: var(--primary-dk); font-size: clamp(44px, 8vw, 72px); font-variant-numeric: tabular-nums; letter-spacing: -.06em; }
.session-mode-running-pain aside { display: grid; gap: 4px; padding: 12px 14px; border-radius: 14px; background: rgba(var(--primary-rgb), .07); }
.session-mode-running-pain aside span { color: var(--primary); font-size: 8px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.session-mode-running-pain aside p { margin: 0; color: var(--tx-2); font-size: 11px; font-weight: 720; line-height: 1.5; }
.session-mode-running-pain.is-hold aside { background: rgba(232, 184, 121, .14); }
.session-mode-running-pain dl { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0; }
.session-mode-running-pain dl div { display: grid; gap: 2px; }
.session-mode-running-pain dt { color: var(--tx-4); font-size: 8px; }
.session-mode-running-pain dd { margin: 0; color: var(--tx-2); font-size: 10px; font-weight: 800; }
.session-mode-pain-boundary { color: var(--tx-4) !important; font-size: 8px !important; }

.session-running-pain-events { display: grid; gap: 10px; margin-bottom: 12px; padding: 13px; border: 1px solid rgba(232, 184, 121, .3); border-radius: 16px; background: rgba(255, 249, 240, .72); }
.session-running-pain-events > header { display: grid; gap: 2px; }
.session-running-pain-events > header span { color: #a86438; font-size: 8px; font-weight: 850; text-transform: uppercase; }
.session-running-pain-events h5 { margin: 0; color: var(--tx); font-size: 14px; }
.session-running-pain-events > div { display: grid; gap: 7px; }
.session-running-pain-events article { display: grid; gap: 4px; padding: 10px 11px; border-radius: 12px; background: rgba(255, 255, 255, .82); }
.session-running-pain-events article > div { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.session-running-pain-events strong { color: var(--tx-2); font-size: 10px; }
.session-running-pain-events span,
.session-running-pain-events small { color: var(--tx-4); font-size: 8px; }
.session-running-pain-events p { margin: 0; color: var(--tx-3); font-size: 9px; }
.session-running-pain-events em { width: fit-content; padding: 4px 7px; border-radius: 999px; background: var(--primary-bg); color: var(--primary-dk); font-size: 8px; font-style: normal; font-weight: 800; }

@media (max-width: 720px) {
  .running-pain-plan-thresholds { grid-template-columns: 1fr; }
  .session-mode-active-actions { grid-template-columns: 1fr; }
  .session-mode-pain-btn { width: 100%; }
  .session-mode-pain-choice { display: grid; grid-template-columns: 1fr; }
  .session-mode-pain-choice label,
  .session-mode-pain-choice span { width: 100%; }
  .session-mode-pain-actions { display: grid; grid-template-columns: 1fr; }
  .session-mode-pain-actions button { width: 100%; }
  .session-running-pain-events article > div { align-items: flex-start; flex-direction: column; gap: 2px; }
}

@media (prefers-reduced-motion: reduce) {
  .session-mode-pain-btn,
  .session-mode-running-pain { transition: none; }
}

/* Assistant Synapse — prototype local et contrôlé */
.synapse-agent-settings-card { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.synapse-agent-settings-card > div { display: grid; gap: 3px; }
.synapse-agent-settings-card > div p { margin: 0; }
.synapse-agent-settings-card .toggle { flex: 0 0 auto; }
.synapse-agent-launcher {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 930;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 9px 15px 9px 10px;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 999px;
  background: linear-gradient(145deg, #6473ef, #4d5ccc);
  color: #fff;
  box-shadow: 0 15px 40px rgba(50,61,148,.28);
  font: inherit;
  font-size: 12px;
  font-weight: 850;
  cursor: pointer;
  transition: transform var(--dur-fast), box-shadow var(--dur-fast);
}
.synapse-agent-launcher:hover { transform: translateY(-2px); box-shadow: 0 18px 46px rgba(50,61,148,.34); }
.synapse-agent-launcher:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .2); outline-offset: 3px; }
.synapse-agent-launcher-mark { position: relative; width: 28px; height: 28px; border-radius: 50%; background: rgba(255,255,255,.14); }
.synapse-agent-launcher-mark i { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 2px rgba(255,255,255,.08); }
.synapse-agent-launcher-mark i:nth-child(1) { top: 6px; left: 6px; }
.synapse-agent-launcher-mark i:nth-child(2) { top: 11px; right: 5px; }
.synapse-agent-launcher-mark i:nth-child(3) { bottom: 5px; left: 9px; }
.synapse-agent-launcher-mark::before,
.synapse-agent-launcher-mark::after { position: absolute; height: 1px; background: rgba(255,255,255,.72); content: ""; transform-origin: left center; }
.synapse-agent-launcher-mark::before { top: 9px; left: 9px; width: 11px; transform: rotate(17deg); }
.synapse-agent-launcher-mark::after { top: 14px; left: 11px; width: 9px; transform: rotate(-41deg); }
.synapse-agent-panel {
  position: fixed;
  right: 24px;
  bottom: 84px;
  z-index: 940;
  display: grid;
  width: min(390px, calc(100vw - 32px));
  max-height: min(650px, calc(100dvh - 112px));
  grid-template-rows: auto auto auto minmax(150px, 1fr) auto auto auto;
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 24px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 28px 80px rgba(24,30,72,.24);
  animation: synapseSurfaceIn var(--synapse-motion-duration) var(--synapse-motion-ease) both;
}
.synapse-agent-panel > * { box-sizing: border-box; min-width: 0; max-width: 100%; }
.synapse-agent-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 17px 18px 13px; border-bottom: 1px solid rgba(var(--primary-rgb), .08); }
.synapse-agent-header > div { display: grid; gap: 2px; }
.synapse-agent-header span { color: var(--primary); font-size: 9px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.synapse-agent-header h3 { margin: 0; color: var(--tx); font-size: 18px; letter-spacing: -.02em; }
.synapse-messaging-contact-bar { display: flex; align-items: center; gap: 7px; padding: 10px 12px 8px; border-bottom: 1px solid rgba(var(--primary-rgb), .07); }
.synapse-messaging-contact-list { display: flex; flex: 1 1 auto; gap: 7px; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.synapse-messaging-contact-list::-webkit-scrollbar { display: none; }
.synapse-messaging-contact { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; min-height: 34px; padding: 4px 9px 4px 5px; border: 1px solid rgba(var(--primary-rgb), .1); border-radius: 999px; background: #fff; color: var(--tx-2); font: inherit; cursor: pointer; }
.synapse-messaging-contact strong { max-width: 112px; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.synapse-messaging-contact[aria-pressed="true"] { border-color: rgba(var(--primary-rgb), .25); background: rgba(var(--primary-rgb), .085); color: var(--primary-dk); box-shadow: inset 0 0 0 1px rgba(var(--primary-rgb), .05); }
.synapse-messaging-avatar { display: inline-grid; flex: 0 0 auto; width: 25px; height: 25px; place-items: center; border-radius: 50%; background: #edf0ff; color: var(--primary-dk); font-size: 10px; font-weight: 900; }
.synapse-messaging-avatar.is-secretaire { background: #fff2e8; color: #a6592b; }
.synapse-messaging-avatar.is-collegue, .synapse-messaging-avatar.is-kine { background: #e9f8f4; color: #247968; }
.synapse-messaging-avatar.is-medecin { background: #eef5ff; color: #336ca9; }
.synapse-messaging-add-contact { display: inline-grid; flex: 0 0 auto; width: 32px; height: 32px; place-items: center; border: 1px dashed rgba(var(--primary-rgb), .3); border-radius: 50%; background: rgba(var(--primary-rgb), .04); color: var(--primary); font: inherit; font-size: 18px; cursor: pointer; }
.synapse-messaging-contact:focus-visible, .synapse-messaging-add-contact:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .18); outline-offset: 2px; }
.synapse-messaging-context { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 16px; background: rgba(250,250,255,.8); }
.synapse-messaging-context > div:first-child { display: grid; min-width: 0; gap: 1px; }
.synapse-messaging-context strong { overflow: hidden; color: var(--tx); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.synapse-messaging-context small { color: var(--tx-3); font-size: 9px; }
.synapse-messaging-context-actions { display: flex; flex: 0 0 auto; gap: 8px; }
.synapse-messaging-context-actions .session-inline-link { font-size: 9px; }
.synapse-messaging-thread-stage { min-height: 0; overflow: hidden; }
.synapse-messaging-thread-stage > .synapse-agent-messages { height: 100%; }
.synapse-agent-messages { display: grid; align-content: start; gap: 10px; min-height: 0; padding: 16px 16px 8px; overflow-y: auto; overscroll-behavior: contain; }
.synapse-agent-message { display: grid; gap: 8px; width: fit-content; max-width: 91%; padding: 10px 12px; border-radius: 15px 15px 15px 5px; background: rgba(var(--primary-rgb), .075); color: var(--tx-2); }
.synapse-agent-message.is-user { justify-self: end; border-radius: 15px 15px 5px 15px; background: var(--primary); color: #fff; }
.synapse-agent-message p { margin: 0; font-size: 12px; line-height: 1.5; }
.synapse-agent-message small { color: rgba(255,255,255,.72); font-size: 8px; }
.synapse-messaging-empty { display: grid; gap: 5px; align-self: center; justify-self: center; max-width: 280px; padding: 18px; text-align: center; }
.synapse-messaging-empty strong { color: var(--tx); font-size: 13px; }
.synapse-messaging-empty p { margin: 0; color: var(--tx-3); font-size: 10px; line-height: 1.5; }
.synapse-agent-action-preview { display: grid; gap: 4px; margin-top: 2px; padding: 11px; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 13px; background: #fff; color: var(--tx); }
.synapse-agent-action-preview > span { color: var(--primary); font-size: 9px; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.synapse-agent-action-preview > strong { font-size: 13px; }
.synapse-agent-action-preview > small { color: var(--tx-3); font-size: 10px; }
.synapse-agent-action-preview > div { display: flex; justify-content: flex-end; gap: 7px; margin-top: 6px; }
.synapse-agent-action-preview button { min-height: 32px; padding: 6px 10px; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 9px; background: #fff; color: var(--tx-2); font: inherit; font-size: 10px; font-weight: 800; cursor: pointer; }
.synapse-agent-action-preview button.primary-btn { border-color: transparent; background: var(--primary); color: #fff; }
.synapse-agent-suggestions { display: flex; gap: 6px; padding: 6px 16px 10px; overflow-x: auto; }
.synapse-agent-suggestions button { flex: 0 0 auto; min-height: 30px; padding: 5px 9px; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 999px; background: rgba(var(--primary-rgb), .045); color: var(--primary-dk); font: inherit; font-size: 9px; font-weight: 800; cursor: pointer; }
.synapse-agent-composer { display: grid; box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; grid-template-columns: minmax(0,1fr) auto auto; gap: 8px; overflow: hidden; padding: 12px 16px 7px; border-top: 1px solid rgba(var(--primary-rgb), .08); }
.synapse-agent-composer textarea { box-sizing: border-box; width: 100%; min-width: 0; min-height: 42px; max-height: 100px; padding: 10px 11px; resize: vertical; font-size: 12px; }
.synapse-agent-composer .primary-btn { align-self: end; min-height: 42px; }
.synapse-agent-voice-btn { display: inline-grid; width: 42px; min-height: 42px; place-items: center; align-self: end; border: 1px solid rgba(var(--primary-rgb), .17); border-radius: 10px; background: #fff; color: var(--primary-dk); cursor: pointer; }
.synapse-agent-voice-btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.synapse-agent-voice-btn[aria-pressed="true"] { border-color: transparent; background: var(--primary); color: #fff; box-shadow: 0 5px 15px rgba(var(--primary-rgb), .24); }
.synapse-agent-voice-status { margin: 0; padding: 0 16px 10px; color: var(--tx-3); font-size: 10px; font-weight: 750; }
.synapse-agent-voice-status.is-listening { color: var(--primary-dk); }
.synapse-agent-boundary { margin: 0; padding: 0 16px 13px; color: var(--tx-4); font-size: 9px; line-height: 1.4; }

@media (max-width: 600px) {
  .synapse-agent-launcher { right: 13px; bottom: 82px; width: 48px; padding: 9px; }
  .synapse-agent-launcher > span:last-child { display: none; }
  .synapse-agent-panel { right: 12px; bottom: 78px; width: calc(100vw - 24px); max-height: min(620px, calc(100dvh - 100px)); border-radius: 21px; }
  .synapse-agent-composer { grid-template-columns: 1fr; }
  .synapse-agent-composer .primary-btn { width: 100%; }
  .synapse-agent-voice-btn { width: 100%; }
  .synapse-messaging-context { align-items: flex-start; }
  .synapse-messaging-context-actions { flex-direction: column; align-items: flex-end; gap: 3px; }
}

@media (prefers-reduced-motion: reduce) {
  .synapse-agent-launcher,
  .synapse-agent-panel { animation: none; transition: none; }
}

/* Réseau professionnel relié à Messages. */
.community-directory-card { display: grid; gap: 14px; padding: var(--s5); border: 1px solid rgba(var(--primary-rgb), .1); border-radius: var(--r-xl); background: linear-gradient(145deg, rgba(247,248,255,.96), rgba(255,255,255,.98)); }
.community-directory-header { align-items: flex-start; }
.community-directory-header > div { display: grid; gap: 4px; }
.community-directory-header h3, .community-directory-header p { margin: 0; }
.community-directory-header p { color: var(--tx-3); font-size: 12px; }
.community-directory-header > span { padding: 4px 8px; border-radius: 999px; background: rgba(var(--primary-rgb), .07); color: var(--primary-dk); font-size: 9px; font-weight: 800; }
.community-contact-form { display: grid; grid-template-columns: minmax(150px,1fr) minmax(140px,.7fr) minmax(180px,1fr) auto; align-items: end; gap: 10px; }
.community-contact-form label { display: grid; gap: 5px; color: var(--tx-3); font-size: 10px; font-weight: 750; }
.community-contact-form input, .community-contact-form select { min-height: 40px; }
.community-contact-form .primary-btn { min-height: 40px; }
.community-contacts-list { display: grid; grid-template-columns: repeat(auto-fill,minmax(260px,1fr)); gap: 10px; }
.community-contact-card { display: grid; gap: 10px; padding: 12px; border: 1px solid rgba(var(--primary-rgb), .09); border-radius: 15px; background: #fff; }
.community-contact-identity { display: flex; align-items: center; gap: 9px; min-width: 0; }
.community-contact-identity > div { display: grid; min-width: 0; gap: 2px; }
.community-contact-identity strong { overflow: hidden; color: var(--tx); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.community-contact-identity small { overflow: hidden; color: var(--tx-3); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.community-contact-actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.community-contact-actions .session-inline-link { font-size: 9px; }
.community-contact-remove { margin-left: auto; color: var(--tx-4) !important; }

@media (max-width: 760px) {
  .community-contact-form { grid-template-columns: 1fr; }
  .community-contact-form .primary-btn { width: 100%; }
}

/* Prescription de course : synthèse légère dans le plan, détails seulement à l’édition ou en Mode séance. */
.running-prescription-summary {
  display: grid;
  gap: 2px;
  margin-top: 6px;
  padding: 7px 9px;
  border-left: 2px solid rgba(var(--primary-rgb), .3);
  border-radius: 0 9px 9px 0;
  background: rgba(var(--primary-rgb), .045);
}
.running-prescription-summary strong { color: var(--primary-dk); font-size: 10px; line-height: 1.35; }
.running-prescription-summary span { color: var(--tx-4); font-size: 8px; line-height: 1.35; }
.running-prescription-summary.is-compact { max-width: 100%; }
.running-prescription-editors:empty { display: none; }
.session-running-only-plan { min-width: 0; }
.session-running-support-table[hidden] { display: none !important; }
.running-prescription-overview {
  position: relative;
  display: grid;
  gap: 18px;
  padding: 20px 22px 22px;
  overflow: hidden;
  border: 1px solid rgba(54,61,105,.09);
  border-radius: 22px;
  background:
    radial-gradient(circle at 100% 0%, rgba(255,184,108,.11), transparent 32%),
    linear-gradient(150deg, rgba(255,255,255,.99), rgba(247,247,251,.94));
  box-shadow: 0 12px 30px rgba(35,40,78,.05);
}
.running-prescription-overview-heading { display: grid; grid-template-columns: minmax(150px,.72fr) minmax(0,1.6fr); align-items: end; gap: 22px; }
.running-prescription-overview-title { display: grid; gap: 3px; }
.running-prescription-overview-title > span { color: var(--primary); font-size: 9px; font-weight: 900; letter-spacing: .075em; text-transform: uppercase; }
.running-prescription-overview h6 { margin: 0; color: var(--tx); font-size: clamp(20px,2.2vw,27px); letter-spacing: -.04em; line-height: 1.05; }
.running-prescription-overview-heading > small { align-self: center; color: var(--tx-4); font-size: 10px; }
.running-prescription-overview-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); min-width: 0; border-block: 1px solid rgba(54,61,105,.08); }
.running-prescription-overview-metrics > span { position: relative; display: grid; min-width: 0; gap: 2px; padding: 11px 13px; }
.running-prescription-overview-metrics > span + span::before { position: absolute; inset: 11px auto 11px 0; width: 1px; content: ''; background: rgba(54,61,105,.08); }
.running-prescription-overview-metrics small { color: var(--tx-4); font-size: 8px; font-weight: 750; }
.running-prescription-overview-metrics strong { overflow: hidden; color: var(--tx); font-size: 14px; line-height: 1.25; letter-spacing: -.025em; text-overflow: ellipsis; white-space: nowrap; }
.running-prescription-graphics { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(180px,.65fr); gap: 20px; padding: 2px 1px 0; }
.running-duration-graphic,
.running-effort-graphic { display: grid; align-content: start; gap: 8px; min-width: 0; }
.running-graphic-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.running-graphic-heading span { color: var(--tx-4); font-size: 8px; font-weight: 800; }
.running-graphic-heading strong { color: var(--tx-2); font-size: 10px; }
.running-duration-bar { display: flex; gap: 3px; height: 15px; padding: 3px; overflow: hidden; border-radius: 999px; background: rgba(54,61,105,.055); }
.running-duration-bar > i { flex: var(--running-duration) 1 0; min-width: 5px; border-radius: 999px; background: #aeb8fa; }
.running-duration-bar > i.is-warmup { background: #91c9d8; }
.running-duration-bar > i.is-drills { background: #a9a7e9; }
.running-duration-bar > i.is-plyometrics { background: #e8b879; }
.running-duration-bar > i.is-main { background: #f28b52; }
.running-duration-bar > i.is-cooldown { background: #8fc7b8; }
.running-duration-legend { display: flex; flex-wrap: wrap; gap: 5px 11px; }
.running-duration-legend > span { display: inline-flex; align-items: center; gap: 4px; color: var(--tx-4); font-size: 8px; white-space: nowrap; }
.running-duration-legend > span > i { width: 6px; height: 6px; border-radius: 50%; background: #aeb8fa; }
.running-duration-legend > span.is-warmup > i { background: #91c9d8; }
.running-duration-legend > span.is-drills > i { background: #a9a7e9; }
.running-duration-legend > span.is-plyometrics > i { background: #e8b879; }
.running-duration-legend > span.is-main > i { background: #f28b52; }
.running-duration-legend > span.is-cooldown > i { background: #8fc7b8; }
.running-duration-legend strong { color: var(--tx-3); font-size: inherit; }
.running-effort-track { position: relative; height: 15px; overflow: hidden; border-radius: 999px; background: linear-gradient(90deg, #d7eee8 0%, #e8e8fb 48%, #f4c4a7 100%); }
.running-effort-track::after { position: absolute; inset: 3px; content: ''; border-radius: inherit; background: rgba(255,255,255,.52); }
.running-effort-track > i { position: absolute; z-index: 1; top: 2px; bottom: 2px; left: var(--effort-start); width: var(--effort-width); min-width: 5px; border: 2px solid white; border-radius: 999px; background: var(--primary); box-shadow: 0 2px 8px rgba(var(--primary-rgb), .2); transform: translateX(-1px); }
.running-effort-scale { display: flex; justify-content: space-between; gap: 6px; color: var(--tx-4); font-size: 7px; }
.running-prescription-flow-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 2px; }
.running-prescription-flow-heading strong { color: var(--tx-2); font-size: 11px; }
.running-prescription-flow-heading span { color: var(--tx-4); font-size: 9px; font-weight: 700; }
.running-prescription-overview-blocks { position: relative; display: grid; grid-template-columns: repeat(var(--running-step-count),minmax(0,1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.running-prescription-overview-blocks::before { position: absolute; z-index: 0; top: 17px; right: calc(50% / var(--running-step-count)); left: calc(50% / var(--running-step-count)); height: 2px; content: ''; background: linear-gradient(90deg, rgba(var(--primary-rgb), .18), rgba(var(--primary-rgb), .38), rgba(255,170,87,.32)); }
.running-prescription-overview-blocks li { position: relative; z-index: 1; display: grid; grid-template-rows: 34px auto; align-items: start; justify-items: center; gap: 7px; min-width: 0; text-align: center; }
.running-prescription-overview-blocks li > i { display: grid; width: 34px; height: 34px; place-items: center; border: 5px solid rgba(250,250,252,.99); border-radius: 50%; background: #e7eaff; color: var(--primary-dk); box-shadow: 0 3px 8px rgba(var(--primary-rgb), .1); font-size: 9px; font-style: normal; font-weight: 900; }
.running-prescription-overview-blocks li > span { display: grid; width: 100%; min-width: 0; gap: 3px; padding: 7px 5px 0; }
.running-prescription-overview-blocks small { color: var(--tx-4); font-size: 8px; font-weight: 800; }
.running-prescription-overview-blocks strong { overflow: hidden; color: var(--tx-2); font-size: 10px; line-height: 1.38; text-overflow: ellipsis; }
.running-prescription-overview-blocks li.is-main > i { background: #f28b52; color: white; box-shadow: 0 4px 12px rgba(242,139,82,.23); }
.running-prescription-overview-blocks li.is-main small { color: #b8582f; }
.running-prescription-overview-blocks li.is-main strong { color: var(--tx); font-size: 11px; font-weight: 850; }
.running-prescription-overview-blocks li.is-empty > i { background: #f0f1f5; color: var(--tx-4); box-shadow: none; }
.running-prescription-overview-blocks li.is-empty strong { color: var(--tx-4); font-weight: 650; }
.running-prescription-editor {
  display: grid;
  gap: 13px;
  margin-top: 10px;
  padding: 15px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(var(--primary-rgb), .045));
  box-shadow: 0 10px 28px rgba(35,40,78,.055);
}
.running-prescription-editor > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.running-prescription-editor > header div { display: grid; gap: 1px; }
.running-prescription-editor > header span { color: var(--primary); font-size: 8px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.running-prescription-editor > header h6 { margin: 0; color: var(--tx); font-size: 17px; letter-spacing: -.02em; }
.running-prescription-editor > header small { color: var(--tx-4); font-size: 9px; }
.running-prescription-core { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 8px; }
.running-prescription-core label,
.running-prescription-blocks label,
.session-mode-running-actual label { display: grid; gap: 5px; color: var(--tx-3); font-size: 9px; font-weight: 800; }
.running-prescription-core label small,
.session-mode-running-actual label small { color: var(--tx-4); font-size: 7px; font-weight: 650; }
.running-prescription-core input,
.running-prescription-core select,
.running-prescription-blocks input,
.session-mode-running-actual input { width: 100%; min-height: 38px; padding: 8px 9px; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 11px; background: rgba(255,255,255,.9); color: var(--tx); font: 700 11px/1.25 var(--font); }
.running-prescription-core input:focus,
.running-prescription-core select:focus,
.running-prescription-blocks input:focus,
.session-mode-running-actual input:focus { border-color: rgba(var(--primary-rgb), .36); outline: 3px solid rgba(var(--primary-rgb), .08); }
.running-prescription-blocks { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 7px; }
.running-prescription-blocks label { grid-template-columns: minmax(105px,.36fr) minmax(0,1fr); align-items: center; padding: 5px 7px; border-radius: 12px; background: rgba(255,255,255,.68); }
.running-prescription-blocks label:last-child { grid-column: 1 / -1; }
.running-prescription-blocks label > span { display: flex; align-items: center; gap: 7px; color: var(--tx-2); }
.running-prescription-blocks label i { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: rgba(var(--primary-rgb), .09); color: var(--primary-dk); font-size: 8px; font-style: normal; }

.session-mode-running-plan {
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 330px;
  padding: 17px;
  overflow: auto;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 20px;
  background: linear-gradient(150deg, rgba(247,248,255,.98), rgba(255,249,244,.94));
}
.session-mode-running-plan header { display: grid; gap: 2px; }
.session-mode-running-plan header span { color: var(--primary); font-size: 8px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.session-mode-running-plan h3 { margin: 0; font-size: 18px; }
.session-mode-running-plan ol { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.session-mode-running-plan li { display: grid; grid-template-columns: 28px minmax(0,1fr); align-items: center; gap: 9px; padding: 8px 9px; border-radius: 13px; background: rgba(255,255,255,.74); }
.session-mode-running-plan li > i { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; background: rgba(var(--primary-rgb), .1); color: var(--primary-dk); font-size: 9px; font-style: normal; font-weight: 900; }
.session-mode-running-plan li > div { display: grid; gap: 2px; }
.session-mode-running-plan li strong { color: var(--tx-2); font-size: 10px; }
.session-mode-running-plan li span { color: var(--tx-3); font-size: 11px; line-height: 1.35; }
.session-mode-running-plan > p { margin: 0; color: var(--tx-4); font-size: 11px; }
.session-mode-running-dose { grid-template-columns: repeat(5, minmax(0,1fr)); }
.session-mode-running-rating { grid-template-columns: 1fr; }
.session-mode-running-actual { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; grid-column: 1 / -1; }
.session-mode-running-prescribed { grid-column: 1 / -1; color: var(--tx-4); font-size: 8px; }

@media (min-width: 721px) {
  .session-mode-running-plan { grid-column: 2; grid-row: 1 / span 5; height: 100%; min-height: 0; }
}

@media (max-width: 780px) {
  .running-prescription-overview-heading { grid-template-columns: 1fr; align-items: start; gap: 12px; }
  .running-prescription-core { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .running-prescription-core label:first-child { grid-column: 1 / -1; }
  .running-prescription-blocks { grid-template-columns: 1fr; }
  .running-prescription-blocks label:last-child { grid-column: auto; }
}

@media (max-width: 560px) {
  .running-prescription-overview { gap: 14px; padding: 15px; border-radius: 18px; }
  .running-prescription-overview h6 { font-size: 22px; }
  .running-prescription-overview-metrics { width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .running-prescription-overview-metrics > span { min-width: 0; padding: 9px 10px; }
  .running-prescription-overview-metrics > span:nth-child(odd)::before { display: none; }
  .running-prescription-overview-metrics > span:nth-child(n+3) { border-top: 1px solid rgba(var(--primary-rgb), .09); }
  .running-prescription-graphics { grid-template-columns: 1fr; gap: 14px; }
  .running-effort-scale { font-size: 6px; }
  .running-prescription-flow-heading { margin-top: 1px; }
  .running-prescription-overview-blocks { grid-template-columns: 1fr; gap: 5px; }
  .running-prescription-overview-blocks::before { top: 17px; right: auto; bottom: 17px; left: 16px; width: 2px; height: auto; }
  .running-prescription-overview-blocks li { grid-template-columns: 34px minmax(0,1fr); grid-template-rows: auto; align-items: center; justify-items: start; gap: 9px; text-align: left; }
  .running-prescription-overview-blocks li > span { padding: 9px 11px; }
  .running-prescription-editor { padding: 12px; }
  .running-prescription-editor > header { align-items: flex-start; flex-direction: column; gap: 4px; }
  .running-prescription-core { grid-template-columns: 1fr; }
  .running-prescription-core label:first-child { grid-column: auto; }
  .running-prescription-blocks label { grid-template-columns: 1fr; }
  .session-mode-running-plan { min-height: 0; max-height: none; padding: 13px; }
  .session-mode-running-dose { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .session-mode-running-actual { grid-template-columns: 1fr; }
}

/* Séances à venir : une liste homogène, puis une page de préparation dédiée. */
.synapse-role-workspace .session-list-card {
  position: relative;
  cursor: pointer;
}

.synapse-role-workspace .session-list-open-button {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  border: 0;
  border-radius: inherit;
  background: transparent;
  cursor: pointer;
  outline: 0;
}

.synapse-role-workspace .session-list-open-button:focus-visible {
  outline: 3px solid rgba(var(--primary-rgb), .34);
  outline-offset: 2px;
}

.synapse-role-workspace .session-item-nearest-upcoming > .session-list-open-button:focus-visible {
  outline-color: rgba(218,137,43,.48);
}

.synapse-role-workspace .session-list-card .session-header-actions {
  position: relative;
  z-index: 2;
}

.synapse-role-workspace .session-list-card::after {
  content: "›";
  position: absolute;
  right: 18px;
  bottom: 12px;
  color: var(--tx-4);
  font-size: 20px;
  font-weight: 750;
  line-height: 1;
  opacity: 0;
  transform: translateX(-3px);
  transition: opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}

.synapse-role-workspace .session-list-card:hover,
.synapse-role-workspace .session-list-card:has(> .session-list-open-button:focus-visible) {
  transform: translateY(-1px);
  border-color: rgba(var(--primary-rgb), .25);
  box-shadow: 0 14px 34px rgba(40,48,90,.075);
}

.synapse-role-workspace .session-list-card:hover::after,
.synapse-role-workspace .session-list-card:has(> .session-list-open-button:focus-visible)::after {
  opacity: 1;
  transform: translateX(0);
}

.synapse-role-workspace .session-list-card:has(> .session-list-open-button:focus-visible) {
  box-shadow: 0 0 0 3px rgba(var(--primary-rgb), .12), 0 14px 34px rgba(40,48,90,.075);
}

.synapse-role-workspace .session-list-card .session-inline-link[data-action="toggle-session-inline-edit"] {
  display: none;
}

.synapse-role-workspace .session-item.session-item-nearest-upcoming,
.synapse-role-workspace .session-group > .session-item.session-item-nearest-upcoming:first-child {
  border-color: rgba(218,137,43,.30);
  background: linear-gradient(135deg, rgba(255,250,243,.99), rgba(255,237,210,.76));
  box-shadow: inset 4px 0 0 rgba(224,143,48,.78), 0 12px 30px rgba(126,81,29,.075);
}

.synapse-role-workspace .session-item.session-item-nearest-upcoming:hover,
.synapse-role-workspace .session-item.session-item-nearest-upcoming:has(> .session-list-open-button:focus-visible) {
  border-color: rgba(205,120,27,.46);
  box-shadow: inset 4px 0 0 rgba(224,143,48,.9), 0 16px 36px rgba(126,81,29,.11);
}

/* Planification : deux repères immédiats, puis une vue complète à la demande. */
.session-planning-overview {
  display: grid;
  gap: 16px;
}

.session-planning-overview-heading { margin-bottom: 0; }

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

.session-planning-card {
  position: relative;
  display: grid;
  align-content: start;
  gap: 10px;
  min-width: 0;
  min-height: 330px;
  padding: 20px;
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(255,255,255,.99), rgba(246,247,255,.92));
  box-shadow: 0 12px 32px rgba(39,46,91,.055);
  transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}

.session-planning-card-upcoming {
  border-color: rgba(218,137,43,.28);
  background: linear-gradient(145deg, rgba(255,252,247,.99), rgba(255,239,216,.86));
  box-shadow: inset 4px 0 0 rgba(224,143,48,.72), 0 12px 32px rgba(126,81,29,.06);
}

.session-planning-card:hover,
.session-planning-card:has(.session-planning-card-open:focus-visible) {
  transform: translateY(-2px);
  border-color: rgba(var(--primary-rgb), .3);
  box-shadow: 0 18px 38px rgba(39,46,91,.09);
}

.session-planning-card-upcoming:hover,
.session-planning-card-upcoming:has(.session-planning-card-open:focus-visible) {
  border-color: rgba(205,120,27,.43);
  box-shadow: inset 4px 0 0 rgba(224,143,48,.86), 0 18px 38px rgba(126,81,29,.1);
}

.session-planning-card-open {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  border: 0;
  border-radius: inherit;
  background: transparent;
  cursor: pointer;
}

.session-planning-card-open:focus-visible {
  outline: 3px solid rgba(var(--primary-rgb), .3);
  outline-offset: -4px;
}

.session-planning-card-topline,
.session-planning-card-meta {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  flex-wrap: wrap;
}

.session-planning-card-topline { justify-content: space-between; }
.session-planning-card-kicker { color: var(--tx-4); font-size: 10px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.session-planning-card-state,
.session-planning-card-meta > span:not(.session-planning-card-score):not(.quiet-completion-indicator) {
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .07);
  color: var(--tx-3);
  font-size: 10px;
  font-weight: 780;
}
.session-planning-card-upcoming .session-planning-card-state { background: rgba(224,143,48,.13); color: #8c571c; }
.session-planning-card-date { color: var(--tx); font-size: clamp(19px, 2.3vw, 27px); line-height: 1.08; }
.session-planning-card h4 { margin: 0; color: var(--tx-2); font-size: 14px; font-weight: 730; line-height: 1.4; }
.session-planning-card.is-empty > strong { margin-top: 18px; color: var(--tx-2); font-size: 17px; }
.session-planning-card.is-empty p { margin: 0; color: var(--tx-4); font-size: 12px; line-height: 1.5; }
.session-planning-card-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; }
.session-planning-card-add {
  position: relative;
  z-index: 2;
  display: inline-flex;
  width: auto;
  min-width: 0;
  height: 32px;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 0 11px;
  border: 1px solid var(--syn-blue-500, #4c7dff);
  border-radius: 999px;
  background: var(--syn-blue-500, #4c7dff);
  color: #fff;
  box-shadow: 0 7px 18px rgba(39,46,91,.08);
  font: inherit;
  cursor: pointer;
  transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.session-planning-card-add > span { font-size: 17px; font-weight: 650; line-height: 1; }
.session-planning-card-add > strong { color: inherit; font-size: 10px; font-weight: 800; letter-spacing: .01em; }
.session-planning-card-add:hover { transform: translateY(-1px); border-color: #3f6fe8; background: #3f6fe8; }
.session-planning-card-add:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .25); outline-offset: 2px; }
.session-planning-card-meta { margin-top: auto; padding-top: 2px; }
.session-planning-card-score { display: inline-flex; align-items: baseline; gap: 4px; margin-left: auto; color: var(--primary-dk); }
.session-planning-card-score small { font-size: 9px; font-weight: 760; }
.session-planning-card-score strong { font-size: 14px; }
.session-planning-card-score-attention,
.session-planning-card-score-warning { color: #9a5b1e; }
.session-planning-card-score-missing { color: var(--tx-4); }

.session-directory-open {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 11px;
  min-height: 48px;
  padding: 10px 14px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 15px;
  background: rgba(var(--primary-rgb), .035);
  color: var(--tx-2);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.session-directory-open > span { font-size: 12px; font-weight: 820; }
.session-directory-open > small { color: var(--tx-4); font-size: 10px; }
.session-directory-open > i { color: var(--primary); font-size: 21px; font-style: normal; }
.session-directory-open:hover,
.session-directory-open:focus-visible { border-color: rgba(var(--primary-rgb), .27); outline: 3px solid rgba(var(--primary-rgb), .08); background: rgba(var(--primary-rgb), .07); }

.session-directory-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(17,24,39,.075);
}
.session-directory-header > div:nth-child(2) > span { color: var(--tx-4); font-size: 10px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.session-directory-header h3 { margin: 2px 0 0; color: var(--tx); font-size: clamp(20px, 2.4vw, 28px); }
.session-directory-tabs { display: inline-flex; gap: 4px; padding: 4px; border-radius: 13px; background: rgba(var(--primary-rgb), .055); }
.session-directory-tabs button { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 11px; border: 0; border-radius: 10px; background: transparent; color: var(--tx-3); font: 780 11px/1 var(--font); cursor: pointer; }
.session-directory-tabs button span { display: inline-grid; min-width: 19px; height: 19px; place-items: center; border-radius: 999px; background: rgba(17,24,39,.06); font-size: 9px; }
.session-directory-tabs button.active { background: #fff; color: var(--primary-dk); box-shadow: 0 3px 10px rgba(17,24,39,.07); }
.session-directory-tabs button:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .16); outline-offset: 1px; }

.session-directory-page-open .session-history-section { margin-top: 0; padding-top: 0; border-top: 0; }

.session-preparation-page-navigation {
  display: flex;
  align-items: center;
  min-height: 48px;
}

.session-preparation-back {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 11px;
  background: rgba(var(--primary-rgb), .045);
  color: var(--tx-3);
  font: 780 12px/1 var(--font);
  cursor: pointer;
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.session-preparation-back:hover,
.session-preparation-back:focus-visible {
  border-color: rgba(var(--primary-rgb), .27);
  outline: 3px solid rgba(var(--primary-rgb), .09);
  outline-offset: 1px;
  background: rgba(var(--primary-rgb), .085);
  color: var(--primary-dk);
}
.session-preparation-back svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

#patientDetailModal.patient-detail-page.session-preparation-page-open .detail-header,
#patientDetailModal.patient-detail-page.session-preparation-page-open .patient-unified-header,
#patientDetailModal.patient-detail-page.session-preparation-page-open .patient-record-navigation,
#patientDetailModal.patient-detail-page.session-preparation-page-open .session-toolbar,
#patientDetailModal.patient-detail-page.session-directory-page-open .detail-header,
#patientDetailModal.patient-detail-page.session-directory-page-open .patient-unified-header,
#patientDetailModal.patient-detail-page.session-directory-page-open .patient-record-navigation,
#patientDetailModal.patient-detail-page.session-directory-page-open .session-toolbar,
#patientDetailModal.patient-detail-page.session-completed-page-open .detail-header,
#patientDetailModal.patient-detail-page.session-completed-page-open .patient-unified-header,
#patientDetailModal.patient-detail-page.session-completed-page-open .patient-record-navigation,
#patientDetailModal.patient-detail-page.session-completed-page-open .session-toolbar {
  display: none;
}

#patientDetailModal.patient-detail-page.session-preparation-page-open > .detail-modal-content,
#patientDetailModal.patient-detail-page.session-directory-page-open > .detail-modal-content,
#patientDetailModal.patient-detail-page.session-completed-page-open > .detail-modal-content {
  width: min(1180px, 100%);
  background: var(--syn-mist-50, #faf9f7);
}

#patientDetailModal.patient-detail-page.session-preparation-page-open .synapse-role-workspace-sessions,
#patientDetailModal.patient-detail-page.session-directory-page-open .synapse-role-workspace-sessions,
#patientDetailModal.patient-detail-page.session-completed-page-open .synapse-role-workspace-sessions {
  min-height: 100%;
  padding: clamp(16px, 3vw, 34px);
}

#patientDetailModal.patient-detail-page.session-preparation-page-open .session-list,
#patientDetailModal.patient-detail-page.session-preparation-page-open .session-group-focused {
  min-height: 100%;
  gap: 10px;
}

.session-completed-page { display: grid; gap: 10px; min-height: 100%; }
.session-completed-page-navigation { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; }
.session-completed-page-stepper { display: inline-flex; align-items: center; gap: 6px; }
.session-completed-page-stepper button { display: inline-grid; width: 34px; height: 34px; place-items: center; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 11px; background: rgba(var(--primary-rgb), .045); color: var(--primary-dk); font: 800 18px/1 var(--font); cursor: pointer; }
.session-completed-page-stepper button:disabled { opacity: .35; cursor: default; }
.session-completed-page-stepper button:not(:disabled):hover,
.session-completed-page-stepper button:not(:disabled):focus-visible { border-color: rgba(var(--primary-rgb), .27); outline: 3px solid rgba(var(--primary-rgb), .08); background: rgba(var(--primary-rgb), .085); }
.session-completed-page-stepper span { min-width: 42px; color: var(--tx-4); font-size: 10px; font-weight: 780; text-align: center; }
#patientDetailModal.patient-detail-page.session-completed-page-open .session-item-completed-page { width: 100%; margin: 0; padding: clamp(18px, 3vw, 30px); border: 0; border-radius: 22px; background: var(--surface); box-shadow: 0 18px 44px rgba(35,40,78,.075); }

#patientDetailModal.patient-detail-page.session-preparation-page-open .session-item-preparation-page {
  width: 100%;
  margin: 0;
  padding: clamp(18px, 3vw, 30px);
  border: 0;
  border-radius: 22px;
  background: var(--surface);
  box-shadow: 0 18px 44px rgba(35,40,78,.075);
  animation: sessionPreparationPageIn 250ms var(--ease) both;
}

#patientDetailModal.patient-detail-page.session-preparation-page-open .session-header-edit,
#patientDetailModal.patient-detail-page.session-preparation-page-open .session-more-trigger {
  min-height: 34px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 11px;
  background: rgba(var(--primary-rgb), .045);
  box-shadow: none;
  color: var(--tx-3);
}

#patientDetailModal.patient-detail-page.session-preparation-page-open .session-header-edit:hover,
#patientDetailModal.patient-detail-page.session-preparation-page-open .session-header-edit:focus-visible,
#patientDetailModal.patient-detail-page.session-preparation-page-open .session-header-edit[aria-expanded="true"],
#patientDetailModal.patient-detail-page.session-preparation-page-open .session-more-trigger:hover,
#patientDetailModal.patient-detail-page.session-preparation-page-open .session-more-trigger:focus-visible,
#patientDetailModal.patient-detail-page.session-preparation-page-open .session-more-trigger[aria-expanded="true"] {
  border-color: rgba(var(--primary-rgb), .27);
  outline: 3px solid rgba(var(--primary-rgb), .08);
  outline-offset: 1px;
  background: rgba(var(--primary-rgb), .085);
  box-shadow: none;
  color: var(--primary-dk);
}

@keyframes sessionPreparationPageIn {
  from { opacity: 0; transform: translateY(6px) scale(.992); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 600px) {
  #patientDetailModal.patient-detail-page.session-preparation-page-open .synapse-role-workspace-sessions,
  #patientDetailModal.patient-detail-page.session-directory-page-open .synapse-role-workspace-sessions,
  #patientDetailModal.patient-detail-page.session-completed-page-open .synapse-role-workspace-sessions { padding: 10px 12px 28px; }
  #patientDetailModal.patient-detail-page.session-preparation-page-open .session-item-preparation-page { padding: 16px 14px; border-radius: 18px; }
  #patientDetailModal.patient-detail-page.session-completed-page-open .session-item-completed-page { padding: 16px 14px; border-radius: 18px; }
  .session-planning-overview-grid { grid-template-columns: 1fr; }
  .session-planning-card { min-height: 160px; padding: 17px; border-radius: 19px; }
  .session-directory-open { grid-template-columns: 1fr auto; }
  .session-directory-open > small { grid-column: 1; grid-row: 2; }
  .session-directory-open > i { grid-column: 2; grid-row: 1 / span 2; }
  .session-directory-header { grid-template-columns: auto minmax(0, 1fr); gap: 11px; }
  .session-directory-tabs { grid-column: 1 / -1; width: 100%; }
  .session-directory-tabs button { flex: 1; justify-content: center; }
  .session-completed-page-navigation { align-items: stretch; flex-direction: column; }
  .session-completed-page-stepper { align-self: flex-end; }
  .session-history-list-card-main { align-items: flex-start; flex-direction: column; }
  .session-history-list-card-main > div { justify-content: flex-start; }
  .session-exercise-patient-remark > div { align-items: flex-start; flex-direction: column; }
  .synapse-role-workspace .session-list-card::after { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .synapse-role-workspace .session-list-card::after,
  .session-planning-card,
  #patientDetailModal.patient-detail-page.session-preparation-page-open .session-item-preparation-page,
  .session-preparation-step-panel { animation: none; transition: none; }
}

/* Déroulé clinique d’une séance : quatre temps dans une seule surface. */
.session-workflow {
  display: grid;
  gap: 0;
}

.session-workflow-section {
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: 22px 0;
  border-top: 1px solid rgba(17,24,39,.075);
}

.session-workflow-section:first-child {
  padding-top: 8px;
  border-top: 0;
}

.session-workflow-heading {
  display: flex;
  align-items: center;
  gap: 10px;
}

.session-workflow-heading > span {
  display: inline-grid;
  width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(var(--primary-rgb), .12);
  background: rgba(var(--primary-rgb), .055);
  color: var(--primary-dk);
  font-size: 11px;
  font-weight: 900;
}

.session-workflow-heading h5 {
  margin: 0;
  color: var(--tx);
  font-size: 17px;
  font-weight: 900;
  letter-spacing: -.018em;
}

.session-workflow-heading .session-exercise-adaptation-btn {
  width: auto;
  margin: 0 0 0 auto;
  flex: 0 0 auto;
}

.session-item-preparation-page .session-info-tip {
  border-color: rgba(var(--primary-rgb), .12);
  background: rgba(var(--primary-rgb), .045);
  color: var(--primary-dk);
  box-shadow: none;
}

.session-item-preparation-page .session-objective-add {
  border: 1px solid transparent;
  background: var(--primary);
  box-shadow: 0 5px 14px rgba(var(--primary-rgb), .2);
  color: #fff;
}
.session-item-preparation-page .session-objective-add:hover,
.session-item-preparation-page .session-objective-add:focus-visible {
  border-color: transparent;
  outline: 3px solid rgba(var(--primary-rgb), .16);
  background: var(--primary-dk);
  box-shadow: 0 7px 18px rgba(var(--primary-rgb), .25);
}

.session-workflow .session-today-preparation { margin: 0; }
.session-workflow .session-work-plan { padding: 22px 0; }
.session-workflow .session-work-plan .session-exercise-static { gap: 11px; padding-top: 0; border-top: 0; }
.session-workflow .session-manual-work-section .session-manual-care {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

/* Préparation progressive : une seule décision visible à la fois. */
.session-preparation-wizard {
  display: grid;
  min-width: 0;
  gap: 18px;
}
.session-preparation-wizard-nav {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(var(--primary-rgb), .11);
  border-radius: 17px;
  background: linear-gradient(135deg, rgba(var(--primary-rgb), .055), rgba(255,255,255,.82));
}
.session-preparation-wizard-progress {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.session-preparation-wizard-progress span {
  color: var(--primary);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.session-preparation-wizard-progress strong {
  color: var(--tx);
  font-size: 16px;
  font-weight: 900;
}
.session-preparation-wizard-nav ol {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.session-preparation-step {
  display: grid;
  min-width: 0;
  min-height: 54px;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  padding: 8px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: rgba(255,255,255,.7);
  color: var(--tx-4);
  cursor: pointer;
  text-align: left;
}
.session-preparation-step > span {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 50%;
  background: rgba(var(--primary-rgb), .045);
  color: inherit;
  font-size: 10px;
  font-weight: 900;
}
.session-preparation-step > strong {
  min-width: 0;
  overflow: hidden;
  font-size: 10px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.session-preparation-step.is-complete { color: var(--primary-dk); }
.session-preparation-step.is-complete > span { background: rgba(var(--primary-rgb), .1); }
.session-preparation-step.is-current {
  border-color: rgba(var(--primary-rgb), .2);
  background: #fff;
  color: var(--primary-dk);
  box-shadow: 0 6px 16px rgba(51,62,122,.08);
}
.session-preparation-step.is-current > span { border-color: transparent; background: var(--primary); color: #fff; }
.session-preparation-step:hover,
.session-preparation-step:focus-visible { border-color: rgba(var(--primary-rgb), .25); outline: 3px solid rgba(var(--primary-rgb), .08); outline-offset: 1px; }
.session-preparation-wizard-stage { min-width: 0; }
.session-preparation-step-panel {
  display: grid;
  min-width: 0;
  min-height: clamp(260px, 34vh, 480px);
  align-content: start;
  gap: 18px;
  padding: 4px 2px;
  outline: none;
  animation: sessionPreparationStepIn 180ms var(--ease) both;
}
.session-preparation-step-heading {
  display: flex;
  align-items: center;
  gap: 11px;
}
.session-preparation-step-heading > span {
  display: grid;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  place-items: center;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  font-size: 11px;
  font-weight: 900;
}
.session-preparation-step-heading > div { display: grid; gap: 1px; }
.session-preparation-step-heading small {
  color: var(--primary);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.session-preparation-step-heading h5 { margin: 0; color: var(--tx); font-size: 20px; font-weight: 900; letter-spacing: -.02em; }
.session-preparation-step-panel > .session-work-track-title { margin: 0; padding: 0; border: 0; }
.session-preparation-step-panel[data-preparation-step-panel="2"] > .session-work-track-title > span { display: none; }
.session-preparation-step-panel > .session-exercise-block { margin: 0; }
.session-modulation-plan-intro { margin: 0; color: var(--tx-3); font-size: 12px; line-height: 1.55; }
.session-modulation-plan-options { display: grid; gap: 9px; }
.session-modulation-plan-option {
  display: grid;
  width: 100%;
  gap: 4px;
  padding: 13px 14px;
  border: 1px solid rgba(42,141,133,.18);
  border-radius: 15px;
  background: rgba(235,249,247,.55);
  color: var(--tx);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.session-modulation-plan-option > span { color: #27756f; font-size: 8px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.session-modulation-plan-option > strong { font-size: 13px; }
.session-modulation-plan-option > small { color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.session-modulation-plan-option.is-selected { border-color: rgba(42,141,133,.48); background: rgba(220,246,241,.95); box-shadow: 0 0 0 3px rgba(42,141,133,.08); }
.session-modulation-plan-option:hover,
.session-modulation-plan-option:focus-visible { border-color: rgba(42,141,133,.45); outline: 3px solid rgba(42,141,133,.08); }
.session-modulation-plan-decision { display: flex; align-items: center; gap: 12px; padding-top: 11px; border-top: 1px solid var(--border); }
.session-modulation-plan-decision .secondary-btn.is-selected { border-color: rgba(var(--primary-rgb),.32); background: rgba(var(--primary-rgb),.11); color: var(--primary-dk); }
.session-modulation-plan-decision small { color: var(--tx-4); font-size: 9px; line-height: 1.45; }
.session-preparation-frame-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}
.session-preparation-frame-summary > div {
  display: grid;
  min-width: 0;
  gap: 4px;
  padding: 12px;
  border-radius: 13px;
  background: rgba(var(--primary-rgb), .045);
}
.session-preparation-frame-summary span,
.session-preparation-summary-list span { color: var(--tx-4); font-size: 9px; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.session-preparation-frame-summary strong { color: var(--tx-2); font-size: 12px; line-height: 1.4; }
.session-preparation-frame-edit { justify-self: start; }
.session-preparation-summary { min-height: 0; }
.session-preparation-summary-list { display: grid; gap: 7px; }
.session-preparation-summary-list button {
  display: grid;
  min-width: 0;
  grid-template-columns: 125px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 13px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 13px;
  background: rgba(255,255,255,.82);
  color: var(--tx-2);
  cursor: pointer;
  text-align: left;
}
.session-preparation-summary-list button:hover,
.session-preparation-summary-list button:focus-visible { border-color: rgba(var(--primary-rgb), .25); outline: 3px solid rgba(var(--primary-rgb), .08); background: rgba(var(--primary-rgb), .04); }
.session-preparation-summary-list strong { min-width: 0; overflow-wrap: anywhere; font-size: 12px; line-height: 1.4; }
.session-preparation-summary-list i { color: var(--primary); font-size: 10px; font-style: normal; font-weight: 800; }
.session-preparation-summary-note { margin: 0; color: var(--tx-4); font-size: 11px; line-height: 1.5; }
.session-preparation-wizard-actions {
  position: sticky;
  z-index: 3;
  bottom: 0;
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0 2px;
  border-top: 1px solid rgba(17,24,39,.07);
  background: linear-gradient(180deg, rgba(255,255,255,.78), var(--surface) 28%);
}
.session-preparation-wizard-actions > .primary-btn { min-width: 128px; }
.session-preparation-wizard-actions .session-ready-actions { margin-left: auto; }
@keyframes sessionPreparationStepIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

.session-workflow-empty {
  margin: 0;
  color: var(--tx-4);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.45;
}

.session-workflow-empty-confirmed {
  display: flex;
  min-height: 42px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(17,24,39,.035);
}

.session-workflow-empty-confirmed strong { color: var(--tx-2); font-size: 12px; }
.session-workflow-empty-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.session-evaluation-section > .session-end-button { justify-self: start; }

/* Bi-set et circuit regroupent des lignes ; HIIT, AMRAP et EMOM restent attachés à un exercice. */
.session-exercise-parameter-controls {
  display: block;
  max-width: 100%;
}

.session-exercise-settings {
  position: relative;
  z-index: 3;
  width: fit-content;
  max-width: 100%;
  margin-top: 7px;
}
.session-exercise-settings[open] { z-index: 40; }
.session-exercise-settings > summary {
  display: inline-flex;
  min-height: 26px;
  max-width: 100%;
  align-items: center;
  gap: 6px;
  padding: 4px 2px;
  color: var(--tx-4);
  cursor: pointer;
  list-style: none;
}
.session-exercise-settings > summary::-webkit-details-marker { display: none; }
.session-exercise-settings > summary span { font-size: 9px; font-weight: 800; }
.session-exercise-settings > summary strong {
  overflow: hidden;
  color: var(--tx-3);
  font-size: 9px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.session-exercise-settings > summary::after {
  content: '›';
  color: var(--primary);
  font-size: 13px;
  line-height: 1;
  transform: rotate(0deg);
  transition: transform .16s ease;
}
.session-exercise-settings[open] > summary::after { transform: rotate(90deg); }
.session-exercise-settings > summary:hover,
.session-exercise-settings > summary:focus-visible {
  outline: none;
  color: var(--primary-dk);
}
.session-exercise-settings-panel {
  position: absolute;
  z-index: 40;
  top: calc(100% + 4px);
  left: 0;
  display: grid;
  width: min(440px, calc(100vw - 64px));
  max-height: min(62vh, 440px);
  gap: 8px;
  margin-top: 0;
  padding: 9px;
  overflow-y: auto;
  border: 1px solid rgba(var(--primary-rgb), .11);
  border-radius: 13px;
  background: rgba(250,251,255,.99);
  box-shadow: 0 18px 42px rgba(31,37,68,.16);
}
.session-exercise-settings-panel .session-exercise-effort-editor,
.session-exercise-settings-panel .session-exercise-contraction-editor {
  width: 100%;
  margin: 0;
}
.session-exercise-settings-panel .session-exercise-effort-editor > summary,
.session-exercise-settings-panel .session-exercise-contraction-editor > summary {
  min-height: 24px;
  padding: 3px 5px;
  border: 0;
  background: transparent;
}
.session-exercise-settings-panel .session-exercise-effort-editor > div,
.session-exercise-settings-panel .session-exercise-contraction-editor > div {
  width: 100%;
  margin-top: 3px;
  padding: 8px;
  box-shadow: none;
}
.session-exercise-clinical-targets {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 9px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 11px;
  background: rgba(var(--primary-rgb), .035);
}
.session-exercise-clinical-targets legend { padding: 0 3px; color: var(--tx-2); font-size: 10px; font-weight: 850; }
.session-exercise-clinical-targets legend small { color: var(--tx-4); font-size: 8px; font-weight: 700; }
.session-exercise-clinical-targets > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.session-exercise-clinical-targets label { display: grid; min-width: 0; gap: 4px; color: var(--tx-3); font-size: 9px; font-weight: 800; }
.session-exercise-clinical-targets input,
.session-exercise-clinical-targets select { width: 100%; min-width: 0; min-height: 35px; padding: 7px 8px; border: 1px solid rgba(var(--primary-rgb), .14); border-radius: 9px; background: var(--surface); color: var(--tx); font: 700 10px/1.2 var(--font); }
.session-exercise-clinical-targets p { margin: 0; color: var(--tx-4); font-size: 8px; line-height: 1.4; }

.session-exercise-effort-editor,
.session-exercise-contraction-editor {
  position: relative;
  width: fit-content;
  max-width: 100%;
  margin-top: 7px;
}

.session-exercise-effort-editor > summary,
.session-exercise-contraction-editor > summary {
  display: inline-flex;
  min-height: 28px;
  max-width: 100%;
  align-items: center;
  gap: 7px;
  padding: 5px 9px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 10px;
  background: rgba(var(--primary-rgb), .045);
  color: var(--tx-3);
  font-size: 9px;
  font-weight: 750;
  cursor: pointer;
  list-style: none;
}

.session-exercise-effort-editor > summary::-webkit-details-marker,
.session-exercise-contraction-editor > summary::-webkit-details-marker { display: none; }
.session-exercise-effort-editor > summary::after,
.session-exercise-contraction-editor > summary::after {
  content: '+';
  color: var(--primary);
  font-size: 12px;
  line-height: 1;
}
.session-exercise-effort-editor[open] > summary::after,
.session-exercise-contraction-editor[open] > summary::after { content: '−'; }
.session-exercise-effort-editor > summary strong,
.session-exercise-contraction-editor > summary strong {
  overflow: hidden;
  color: var(--primary-dk);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.session-exercise-effort-editor > summary:hover,
.session-exercise-effort-editor > summary:focus-visible,
.session-exercise-contraction-editor > summary:hover,
.session-exercise-contraction-editor > summary:focus-visible {
  border-color: rgba(var(--primary-rgb), .3);
  outline: 3px solid rgba(var(--primary-rgb), .07);
  background: rgba(var(--primary-rgb), .08);
}
.session-exercise-effort-editor > div,
.session-exercise-contraction-editor > div {
  display: grid;
  width: min(430px, calc(100vw - 64px));
  gap: 9px;
  margin-top: 6px;
  padding: 10px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 13px;
  background: rgba(249,250,255,.98);
  box-shadow: 0 10px 24px rgba(43,50,97,.08);
}
.session-exercise-effort-editor > div > label,
.session-exercise-effort-parameters label,
.session-exercise-contraction-editor > div > label,
.session-exercise-contraction-parameters label {
  display: grid;
  min-width: 0;
  gap: 4px;
  color: var(--tx-3);
  font-size: 9px;
  font-weight: 800;
}
.session-exercise-effort-editor select,
.session-exercise-effort-editor input,
.session-exercise-contraction-editor select,
.session-exercise-contraction-editor input {
  width: 100%;
  min-width: 0;
  min-height: 35px;
  padding: 7px 8px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 9px;
  background: var(--surface);
  color: var(--tx);
  font: 700 10px/1.2 var(--font);
}
.session-exercise-effort-parameters {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 7px;
}
.session-exercise-effort-parameters label.hidden { display: none; }
.session-exercise-effort-parameters small,
.session-exercise-contraction-parameters small { color: var(--tx-4); font-weight: 650; }
.session-exercise-contraction-parameters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 7px;
}
.session-exercise-contraction-parameters.hidden,
.session-exercise-contraction-editor label.hidden,
.session-exercise-contraction-note.hidden { display: none; }
.session-exercise-contraction-note {
  margin: 0;
  padding: 8px 9px;
  border-radius: 9px;
  background: rgba(var(--primary-rgb), .055);
  color: var(--tx-3);
  font-size: 9px;
  line-height: 1.4;
}
.session-exercise-effort-summary,
.session-exercise-contraction-summary {
  display: inline-flex;
  max-width: 100%;
  margin-top: 6px;
  padding: 4px 8px;
  border-radius: 9px;
  background: rgba(var(--primary-rgb), .075);
  color: var(--primary-dk);
}
.session-exercise-effort-summary strong,
.session-exercise-contraction-summary strong {
  overflow: hidden;
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.session-mode-effort-context {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  margin: 1px 0 2px;
  padding: 5px 8px;
  border-radius: 9px;
  background: rgba(var(--primary-rgb), .075);
  color: var(--primary-dk);
}
.session-mode-effort-context strong { font-size: 9px; }

.session-work-blocks { display: grid; gap: 10px; }
.session-work-blocks:empty { display: none; }
.session-work-block-list { display: grid; gap: 7px; }
.session-work-block-card {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid rgba(var(--primary-rgb), .11);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(var(--primary-rgb), .055), rgba(255,255,255,.7));
}
.session-work-block-index {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 9px;
  background: rgba(var(--primary-rgb), .12);
  color: var(--primary-dk);
  font-size: 11px;
  font-weight: 900;
}
.session-work-block-card > div:not(.session-work-block-actions) { display: grid; min-width: 0; gap: 2px; }
.session-work-block-card strong { color: var(--tx); font-size: 12px; }
.session-work-block-card span:not(.session-work-block-index) { overflow: hidden; color: var(--tx-3); font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.session-work-block-card small { color: var(--tx-4); font-size: 9px; font-weight: 650; }
.session-work-block-actions { display: flex; align-items: center; gap: 4px; }
.session-work-block-actions button,
.session-work-block-add {
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 10px;
  background: rgba(255,255,255,.78);
  color: var(--primary-dk);
  font: 800 10px/1.2 var(--font);
  cursor: pointer;
}
.session-work-block-actions button { min-height: 30px; padding: 6px 8px; }
.session-work-block-actions button:last-child { width: 30px; padding: 0; color: var(--tx-4); font-size: 15px; }
.session-work-block-actions button:hover,
.session-work-block-actions button:focus-visible,
.session-work-block-add:hover,
.session-work-block-add:focus-visible { border-color: rgba(var(--primary-rgb), .3); outline: 3px solid rgba(var(--primary-rgb), .08); background: rgba(var(--primary-rgb), .08); }
.session-work-block-add { justify-self: start; min-height: 34px; padding: 8px 11px; }
.session-work-block-add:disabled { cursor: default; opacity: .45; }
.session-work-block-editor {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: 17px;
  background: rgba(248,249,255,.92);
  box-shadow: 0 10px 26px rgba(43,50,97,.06);
}
.session-work-block-editor-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.session-work-block-editor-heading > div { display: grid; gap: 1px; }
.session-work-block-editor-heading span { color: var(--primary); font-size: 8px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.session-work-block-editor-heading strong { color: var(--tx); font-size: 16px; }
.session-work-block-editor-heading button { display: grid; width: 31px; height: 31px; padding: 0; place-items: center; border: 0; border-radius: 50%; background: rgba(17,24,39,.05); color: var(--tx-3); font-size: 19px; cursor: pointer; }
.session-work-block-format,
.session-work-block-parameters label { display: grid; gap: 5px; color: var(--tx-3); font-size: 10px; font-weight: 800; }
.session-work-block-format select,
.session-work-block-parameters input {
  min-width: 0;
  min-height: 39px;
  padding: 8px 10px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 11px;
  background: rgba(255,255,255,.94);
  color: var(--tx);
  font: 750 11px/1.2 var(--font);
}
.session-work-block-exercises { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 6px; margin: 0; padding: 0; border: 0; }
.session-work-block-exercises legend { grid-column: 1 / -1; margin-bottom: 2px; color: var(--tx-3); font-size: 10px; font-weight: 850; }
.session-work-block-exercises legend small { color: var(--tx-4); font-weight: 650; }
.session-work-block-exercises label { display: grid; min-width: 0; grid-template-columns: auto 22px minmax(0,1fr); align-items: center; gap: 6px; min-height: 38px; padding: 7px 8px; border: 1px solid rgba(var(--primary-rgb), .1); border-radius: 11px; background: rgba(255,255,255,.72); cursor: pointer; }
.session-work-block-exercises input { accent-color: var(--primary); }
.session-work-block-exercises label > span { display: grid; width: 21px; height: 21px; place-items: center; border-radius: 7px; background: rgba(var(--primary-rgb), .075); color: var(--primary-dk); font-size: 9px; font-weight: 900; }
.session-work-block-exercises label > strong { overflow: hidden; color: var(--tx-2); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.session-work-block-parameters { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; }
.session-work-block-parameters label small { color: var(--tx-4); font-weight: 600; }
.session-work-block-message { min-height: 15px; margin: -4px 0 0; color: #9a572c; font-size: 10px; font-weight: 750; }
.session-work-block-editor-actions { display: flex; justify-content: flex-end; gap: 8px; }
.session-work-block-editor-actions .primary-btn { min-height: 36px; padding: 8px 13px; font-size: 10px; }
.session-mode-block-context { display: inline-flex; width: max-content; max-width: 100%; align-items: center; gap: 7px; margin: 1px 0 2px; padding: 5px 8px; border-radius: 9px; background: rgba(var(--primary-rgb), .075); color: var(--primary-dk); }
.session-mode-block-context strong { font-size: 9px; }
.session-mode-block-context small { overflow: hidden; color: var(--tx-4); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 600px) {
  .session-creation-wizard-open { padding: 0; place-items: stretch; }
  .session-creation-wizard-open .modal-content { min-height: 100dvh; max-height: 100dvh !important; border: 0; border-radius: 0; }
  .session-workflow-section { gap: 12px; padding: 18px 0; }
  .session-workflow-heading h5 { font-size: 16px; }
  .session-workflow-heading .session-exercise-adaptation-btn { width: auto; padding: 7px 10px; }
  .session-workflow-empty-confirmed { align-items: flex-start; flex-direction: column; }
  .session-workflow-empty-actions { align-items: stretch; flex-direction: column; width: 100%; }
  .session-workflow-empty-actions button { width: 100%; }
  .session-work-block-card { grid-template-columns: 28px minmax(0,1fr); }
  .session-work-block-actions { grid-column: 2; justify-content: flex-start; }
  .session-work-block-exercises { grid-template-columns: 1fr; }
  .session-work-block-parameters { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .session-work-block-editor-actions { justify-content: stretch; }
  .session-work-block-editor-actions button { flex: 1; }
  .session-exercise-effort-editor > div,
  .session-exercise-contraction-editor > div { width: min(320px, calc(100vw - 58px)); }
  .session-exercise-settings { width: 100%; }
  .session-exercise-settings-panel {
    width: 100%;
    max-height: min(36vh, 280px);
    border-color: rgba(var(--primary-rgb), .16);
    box-shadow: 0 18px 38px rgba(31,37,68,.18);
  }
  .session-related-wheel { max-height: min(38vh, 300px); }
  .session-exercise-settings-panel .session-exercise-effort-editor > div,
  .session-exercise-settings-panel .session-exercise-contraction-editor > div { width: 100%; }
  .session-exercise-clinical-targets > div { grid-template-columns: 1fr; }
  .session-exercise-effort-parameters,
  .session-exercise-contraction-parameters { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .session-preparation-wizard { gap: 14px; }
  .session-preparation-wizard-nav { gap: 10px; padding: 11px; border-radius: 15px; }
  .session-preparation-wizard-progress strong { font-size: 14px; }
  .session-preparation-wizard-nav ol { gap: 5px; }
  .session-preparation-step { min-height: 38px; grid-template-columns: 1fr; justify-items: center; padding: 6px 3px; }
  .session-preparation-step > strong { display: none; }
  .session-preparation-step > span { width: 25px; height: 25px; }
  .session-preparation-step-panel { min-height: 330px; gap: 15px; }
  .session-preparation-step-heading h5 { font-size: 18px; }
  .session-modulation-plan-decision { align-items: stretch; flex-direction: column; }
  .session-modulation-plan-decision .secondary-btn { width: 100%; }
  .session-preparation-frame-summary { grid-template-columns: 1fr; }
  .session-preparation-summary-list button { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; }
  .session-preparation-summary-list button > span { grid-column: 1; }
  .session-preparation-summary-list button > strong { grid-column: 1; }
  .session-preparation-summary-list button > i { grid-column: 2; grid-row: 1 / span 2; }
  .session-preparation-wizard-actions { min-height: 62px; padding-bottom: max(4px, env(safe-area-inset-bottom)); }
}

/* Relie visuellement une notification kiné à son contenu lorsqu'il est présent dans la page. */
.synapse-role-workspace .notification-attention-highlight {
  border-color: rgba(232, 154, 48, .38) !important;
  background: linear-gradient(135deg, rgba(255, 249, 238, .96), rgba(255, 244, 224, .72)) !important;
  box-shadow: inset 4px 0 0 rgba(232, 154, 48, .72), 0 10px 26px rgba(141, 91, 22, .07) !important;
}

/* DA commune des espaces Séances et Bilans, contenu et droits propres à chaque rôle. */
.synapse-role-workspace {
  --role-workspace-border: rgba(var(--primary-rgb), .13);
  --role-workspace-surface: rgba(255, 255, 255, .94);
  --role-workspace-shadow: 0 10px 28px rgba(40, 48, 90, .055);
  --role-workspace-radius: var(--r-xl);
}

.synapse-role-workspace .session-item,
.synapse-role-workspace .patient-session-detail,
.synapse-role-workspace .patient-session-shortcut,
.synapse-role-workspace-assessments .patient-initial-assessment,
.synapse-role-workspace-assessments .patient-bilans,
.synapse-role-workspace-assessments .patient-medical-documents,
.knee-assessment {
  border-color: var(--role-workspace-border, rgba(var(--primary-rgb), .13));
  border-radius: var(--role-workspace-radius, var(--r-xl));
  background: var(--role-workspace-surface, rgba(255, 255, 255, .94));
  box-shadow: var(--role-workspace-shadow, 0 10px 28px rgba(40, 48, 90, .055));
}

.synapse-role-workspace .patient-session-detail,
.synapse-role-workspace .patient-session-shortcut,
.synapse-role-workspace .session-item {
  transition:
    border-color var(--dur-fast) var(--ease),
    box-shadow var(--dur-fast) var(--ease),
    transform var(--dur-fast) var(--ease);
}

.synapse-role-workspace .patient-session-detail:hover,
.synapse-role-workspace .patient-session-shortcut:hover,
.synapse-role-workspace .session-item:hover {
  border-color: rgba(var(--primary-rgb), .24);
  box-shadow: 0 14px 34px rgba(40, 48, 90, .075);
}

.synapse-role-workspace .patient-session-detail summary,
.synapse-role-workspace .session-compact-header {
  min-height: 64px;
}

.synapse-role-workspace .patient-session-detail summary strong,
.synapse-role-workspace .session-compact-header strong {
  color: var(--tx);
  font-size: 16px;
  line-height: 1.35;
}

.synapse-role-workspace .patient-session-detail summary small,
.synapse-role-workspace .session-compact-header time,
.synapse-role-workspace .session-compact-header small {
  color: var(--tx-3);
  font-size: 12px;
  font-weight: var(--fw-sb);
}

.synapse-role-workspace .patient-session-detail[open] summary,
.synapse-role-workspace .session-item-is-today,
.synapse-role-workspace .session-item-next-highlight {
  border-color: rgba(var(--primary-rgb), .23);
  background: linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(var(--primary-rgb), .055));
}

.synapse-role-workspace .session-view-tabs,
.assessment-workspace-nav {
  padding: 5px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: var(--r-lg);
  background: rgba(var(--primary-rgb), .055);
}

.synapse-role-workspace .session-view-tab,
.assessment-workspace-nav button {
  border-radius: calc(var(--r-lg) - 4px);
}

.synapse-role-workspace .session-view-tab.active,
.assessment-workspace-nav button.active {
  background: var(--surface);
  color: var(--primary-dk);
  box-shadow: 0 5px 16px rgba(40, 48, 90, .07);
}

.synapse-role-workspace-assessments .shared-timeline-header,
.knee-assessment-header,
.daily-life-impact-header {
  align-items: center;
  margin-bottom: var(--s4);
}

.synapse-role-workspace-assessments .shared-timeline-header h3,
.knee-assessment-header h4,
.daily-life-impact-header h4 {
  color: var(--tx);
  font-size: 18px;
  line-height: 1.3;
}

.synapse-role-workspace-assessments .section-kicker,
.knee-assessment-header .section-kicker,
.daily-life-impact-header .section-kicker {
  color: var(--primary);
  font-size: 10px;
  font-weight: var(--fw-b);
  letter-spacing: .08em;
}

.patient-bilan-card {
  display: block;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: var(--r-lg);
  background: rgba(255, 255, 255, .76);
}

.patient-bilan-card summary {
  display: flex;
  min-height: 64px;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
  padding: 13px 15px;
  cursor: pointer;
  list-style: none;
}

.patient-bilan-card summary::-webkit-details-marker { display: none; }
.patient-bilan-card summary > span { display: grid; min-width: 0; gap: 3px; }
.patient-bilan-card summary time { color: var(--tx-3); font-size: 12px; font-weight: var(--fw-sb); }
.patient-bilan-card summary strong { overflow: hidden; color: var(--tx); font-size: 15px; line-height: 1.35; text-overflow: ellipsis; }
.patient-bilan-card summary b { flex: 0 0 auto; color: var(--primary); font-size: 12px; }
.patient-bilan-card summary b::after { margin-left: 7px; content: '⌄'; }
.patient-bilan-card[open] summary { border-bottom: 1px solid rgba(var(--primary-rgb), .11); background: var(--primary-bg); }
.patient-bilan-card[open] summary b::after { content: '⌃'; }
.patient-bilan-card-content { padding: 14px 15px 16px; }
.patient-bilan-card-content p { margin: 0; color: var(--tx-2); font-size: 13px; line-height: 1.6; }
.patient-assessment-reader { display: grid; gap: 14px; }
.patient-assessment-reader-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.patient-assessment-reader-heading small { color: var(--tx-4); font-size: 10px; line-height: 1.4; text-align: right; }
.patient-assessment-validated { width: fit-content; padding: 5px 9px; border-radius: 999px; background: rgba(52, 168, 132, .1); color: #237a62; font-size: 10px; font-weight: var(--fw-b); }
.patient-assessment-stage-nav { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; padding: 5px; border: 1px solid rgba(var(--primary-rgb), .1); border-radius: 15px; background: var(--surface-2); }
.patient-assessment-stage-nav button { display: grid; min-width: 0; min-height: 58px; align-content: center; gap: 4px; padding: 8px 7px; border: 0; border-radius: 11px; background: transparent; color: var(--tx-3); font: inherit; text-align: left; cursor: pointer; }
.patient-assessment-stage-nav button:hover, .patient-assessment-stage-nav button:focus-visible { background: rgba(255,255,255,.7); color: var(--primary-dk); outline: 0; }
.patient-assessment-stage-nav button.is-active { background: #fff; color: var(--primary-dk); box-shadow: 0 5px 14px rgba(52, 44, 102, .08); }
.patient-assessment-stage-nav button span { color: inherit; font-size: 9px; font-weight: var(--fw-b); }
.patient-assessment-stage-nav button strong { display: -webkit-box; overflow: hidden; font-size: 10px; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.patient-assessment-stage-panels { min-height: 190px; }
.patient-assessment-stage { display: grid; gap: 14px; padding: 16px; border: 1px solid rgba(var(--primary-rgb), .1); border-radius: 16px; background: linear-gradient(145deg, rgba(249,249,255,.96), #fff); }
.patient-assessment-stage[hidden] { display: none; }
.patient-assessment-stage > header { display: grid; gap: 3px; }
.patient-assessment-stage > header span { color: var(--primary); font-size: 9px; font-weight: var(--fw-b); letter-spacing: .07em; text-transform: uppercase; }
.patient-assessment-stage > header h4 { margin: 0; color: var(--tx); font-size: 18px; line-height: 1.25; }
.patient-assessment-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin: 0; }
.patient-assessment-values > div { display: grid; gap: 5px; padding: 11px 12px; border-radius: 12px; background: #fff; }
.patient-assessment-values dt { color: var(--tx-4); font-size: 9px; font-weight: var(--fw-b); }
.patient-assessment-values dd { margin: 0; color: var(--tx-2); font-size: 12px; line-height: 1.5; white-space: pre-line; }
.patient-assessment-measures, .patient-assessment-phases { display: grid; gap: 8px; }
.patient-assessment-measures h5, .patient-assessment-phases h5 { margin: 0; color: var(--tx-3); font-size: 10px; }
.patient-assessment-measures ul, .patient-assessment-phases ol { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.patient-assessment-measures li, .patient-assessment-phases li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 12px; background: #fff; }
.patient-assessment-measures li span, .patient-assessment-phases li { min-width: 0; }
.patient-assessment-measures li strong, .patient-assessment-phases li strong { display: block; color: var(--tx-2); font-size: 11px; }
.patient-assessment-measures li small, .patient-assessment-phases li small { display: block; margin-top: 2px; color: var(--tx-4); font-size: 9px; }
.patient-assessment-measures li b { flex: 0 0 auto; color: var(--primary-dk); font-size: 12px; }
.patient-assessment-reassessment { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 12px; border-radius: 12px; background: var(--primary-bg); }
.patient-assessment-reassessment span { color: var(--tx-3); font-size: 10px; }
.patient-assessment-reassessment strong { color: var(--primary-dk); font-size: 12px; }
.patient-assessment-empty { color: var(--tx-4); font-size: 11px; }

@media (max-width: 720px) {
  .patient-assessment-reader-heading { align-items: flex-start; flex-direction: column; }
  .patient-assessment-reader-heading small { text-align: left; }
  .patient-assessment-stage-nav { display: flex; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; }
  .patient-assessment-stage-nav::-webkit-scrollbar { display: none; }
  .patient-assessment-stage-nav button { flex: 0 0 112px; scroll-snap-align: start; }
  .patient-assessment-stage-panels { min-height: 0; }
  .patient-assessment-values { grid-template-columns: 1fr; }
}

.daily-life-impact {
  display: grid;
  gap: var(--s4);
  margin-bottom: var(--s5);
  padding: var(--s5);
  border: 1px solid var(--role-workspace-border, rgba(var(--primary-rgb), .13));
  border-radius: var(--role-workspace-radius, var(--r-xl));
  background: var(--role-workspace-surface, rgba(255, 255, 255, .94));
  box-shadow: var(--role-workspace-shadow, 0 10px 28px rgba(40, 48, 90, .055));
}
.daily-life-impact-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s4); }
.daily-life-impact-header p:not(.section-kicker) { max-width: 650px; margin-top: 4px; color: var(--tx-3); font-size: var(--text-sm); }
.daily-life-impact-form { display: grid; gap: var(--s3); }
.daily-life-impact-form > label { display: grid; gap: 6px; color: var(--tx-2); font-size: 12px; font-weight: var(--fw-b); }
.daily-life-impact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); }
.daily-life-impact-grid label { display: grid; gap: 6px; color: var(--tx-2); font-size: 12px; font-weight: var(--fw-b); }
.daily-life-impact-domains { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; padding: 13px; border: 1px solid rgba(var(--primary-rgb), .11); border-radius: 17px; background: linear-gradient(145deg, rgba(246, 247, 255, .82), rgba(255, 255, 255, .96)); }
.daily-life-impact-domains legend { padding: 0 7px; color: var(--tx-2); font-size: 12px; font-weight: var(--fw-b); }
.daily-life-impact-domains label { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 10px 11px; border: 1px solid rgba(64, 72, 118, .08); border-radius: 13px; background: rgba(255, 255, 255, .88); color: var(--tx-2); font-size: 11px; font-weight: var(--fw-sb); line-height: 1.3; cursor: pointer; box-shadow: 0 4px 12px rgba(35, 40, 78, .035); transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease, transform 160ms ease; }
.daily-life-impact-domains label:hover { border-color: rgba(var(--primary-rgb), .22); box-shadow: 0 7px 18px rgba(35, 40, 78, .065); transform: translateY(-1px); }
.daily-life-impact-domains label:focus-within { outline: 2px solid rgba(var(--primary-rgb), .25); outline-offset: 2px; }
.daily-life-impact-domains label:has(input:checked) { border-color: rgba(var(--primary-rgb), .28); background: linear-gradient(135deg, rgba(235, 238, 255, .98), rgba(248, 249, 255, .98)); color: var(--primary-dk); box-shadow: 0 7px 18px rgba(var(--primary-rgb), .09); }
.daily-life-impact-domains input { display: grid; flex: 0 0 20px; width: 20px; height: 20px; margin: 0; padding: 0; place-content: center; appearance: none; border: 1.5px solid rgba(var(--primary-rgb), .28); border-radius: 7px; background: white; }
.daily-life-impact-domains input::before { width: 9px; height: 5px; content: ''; border-bottom: 2px solid white; border-left: 2px solid white; opacity: 0; transform: translateY(-1px) rotate(-45deg) scale(.6); transition: opacity 130ms ease, transform 150ms ease; }
.daily-life-impact-domains input:checked { border-color: var(--primary); background: var(--primary); }
.daily-life-impact-domains input:checked::before { opacity: 1; transform: translateY(-1px) rotate(-45deg) scale(1); }
.daily-life-impact-actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--s3); }
.daily-life-impact-actions .assessment-save-message { margin-right: auto; }
.daily-life-impact-history { display: grid; gap: 8px; padding-top: var(--s3); border-top: 1px solid rgba(var(--primary-rgb), .1); }
.daily-life-impact-history > p { margin: 0; color: var(--tx-3); font-size: 12px; }
.daily-life-impact-history > strong { color: var(--tx-2); font-size: 12px; }
.daily-life-impact-history ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.daily-life-impact-history li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 10px; color: var(--tx-3); font-size: 11px; }
.daily-life-impact-history time { color: var(--tx-2); font-weight: var(--fw-b); }
.daily-life-impact-history em { grid-column: 2; color: var(--primary-dk); font-style: normal; }
.daily-life-impact-note { margin: 0; color: var(--tx-4); font-size: 10px; line-height: 1.45; }
.targeted-impact-questionnaires { display: grid; gap: var(--s3); padding: var(--s4); border: 1px solid rgba(var(--primary-rgb), .13); border-radius: var(--r-lg); background: rgba(var(--primary-rgb), .028); }
.targeted-impact-questionnaires-header h5 { margin: 0; color: var(--tx); font-size: 14px; }
.targeted-impact-questionnaires-header p { margin: 4px 0 0; color: var(--tx-3); font-size: 11px; line-height: 1.45; }
.targeted-impact-questionnaire-form { display: grid; gap: var(--s3); }
.targeted-impact-questionnaire-form > label { display: grid; gap: 6px; color: var(--tx-2); font-size: 12px; font-weight: var(--fw-b); }
.targeted-impact-instrument-info { margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.5; }
.targeted-impact-instrument-info a { color: var(--primary-dk); font-weight: var(--fw-b); }
.targeted-impact-subscale-scores { display: grid; gap: 8px; padding: 12px; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 14px; background: rgba(255, 255, 255, .8); }
.targeted-impact-subscale-scores legend { padding: 0 5px; color: var(--tx-2); font-size: 12px; font-weight: var(--fw-b); }
.targeted-impact-subscale-scores > p { margin: 0; color: var(--tx-3); font-size: 10px; }
#targetedImpactSubscaleFields { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
#targetedImpactSubscaleFields label { display: grid; align-content: start; gap: 5px; min-width: 0; color: var(--tx-3); font-size: 10px; font-weight: var(--fw-b); line-height: 1.25; }
#targetedImpactSubscaleFields input { width: 100%; }
.targeted-impact-record-list { gap: 9px !important; }
.targeted-impact-record { display: grid !important; grid-template-columns: 1fr !important; gap: 8px !important; padding: 11px 12px; border: 1px solid rgba(var(--primary-rgb), .1); border-radius: 13px; background: rgba(255, 255, 255, .84); }
.targeted-impact-record-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 9px; }
.targeted-impact-record-heading span { color: var(--tx-2); font-weight: var(--fw-b); }
.targeted-impact-record-heading em { margin-left: auto; padding: 3px 7px; border-radius: var(--r-full); background: var(--primary-bg); color: var(--primary-dk); font-size: 9px; font-style: normal; font-weight: var(--fw-b); }
.targeted-impact-score-profile { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.targeted-impact-score-profile > span { display: grid; gap: 2px; padding: 7px 8px; border-radius: 10px; background: var(--surface-2); }
.targeted-impact-score-profile small { color: var(--tx-4); font-size: 9px; line-height: 1.2; }
.targeted-impact-score-profile strong { color: var(--primary-dk); font-size: 11px; }
.targeted-impact-record > p { margin: 0; color: var(--tx-3); font-size: 10px; }
.targeted-impact-no-answers { color: var(--tx-4); font-size: 9px; }
.targeted-impact-answers summary { display: inline-flex; align-items: center; gap: 6px; width: fit-content; color: var(--primary-dk); font-size: 10px; font-weight: var(--fw-b); cursor: pointer; list-style: none; }
.targeted-impact-answers summary::-webkit-details-marker { display: none; }
.targeted-impact-answers summary span { display: grid; min-width: 18px; height: 18px; padding: 0 5px; place-items: center; border-radius: var(--r-full); background: var(--primary-bg); }
.targeted-impact-answer-list { display: grid; gap: 1px; margin-top: 8px; border: 1px solid var(--border); border-radius: 11px; overflow: hidden; background: var(--border); }
.targeted-impact-answer-list > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(110px, .45fr); gap: 10px; padding: 8px 10px; background: var(--surface); }
.targeted-impact-answer-list dt { color: var(--tx-2); font-size: 10px; }
.targeted-impact-answer-list dd { margin: 0; color: var(--primary-dk); font-size: 10px; font-weight: var(--fw-b); }
.targeted-impact-answers > p { margin: 6px 0 0; color: var(--tx-4); font-size: 9px; }

.sporting-goals { display: grid; gap: 10px; margin: 12px 0; padding: 12px 14px; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: var(--r-lg); background: linear-gradient(135deg, rgba(var(--primary-rgb), .045), rgba(255, 255, 255, .82)); }
.sporting-goals > header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.sporting-goals > header > div { display: grid; gap: 1px; }
.sporting-goals > header small { color: var(--tx-4); font-size: 9px; font-weight: var(--fw-b); letter-spacing: .07em; text-transform: uppercase; }
.sporting-goals > header strong { color: var(--tx); font-size: 14px; }
.sporting-goal-list { display: flex; flex-wrap: wrap; gap: 8px; }
.sporting-goal-chip { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 9px; min-width: min(100%, 320px); padding: 9px 11px; border: 1px solid rgba(var(--primary-rgb), .13); border-radius: 13px; background: rgba(255, 255, 255, .88); }
.sporting-goal-count { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: var(--primary-bg); color: var(--primary-dk); font-size: 11px; font-weight: 850; }
.sporting-goal-chip > span:nth-child(2) { display: grid; min-width: 0; gap: 1px; }
.sporting-goal-chip strong { overflow: hidden; color: var(--tx); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.sporting-goal-chip small { color: var(--tx-3); font-size: 10px; }
.sporting-goal-chip em { color: var(--primary-dk); font-size: 9px; font-style: normal; font-weight: var(--fw-b); }
.sporting-goal-actions { position: relative; }
.sporting-goal-actions > summary { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 8px; color: var(--tx-4); cursor: pointer; font-size: 12px; font-weight: 900; letter-spacing: .08em; list-style: none; }
.sporting-goal-actions > summary::-webkit-details-marker { display: none; }
.sporting-goal-actions > summary:hover,
.sporting-goal-actions > summary:focus-visible { background: var(--primary-bg); color: var(--primary-dk); outline: none; }
.sporting-goal-actions > div { position: absolute; z-index: 8; top: calc(100% + 5px); right: 0; display: grid; min-width: 115px; padding: 5px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface); box-shadow: 0 12px 28px rgba(35,40,78,.13); }
.sporting-goal-actions button { padding: 8px 9px; border: 0; border-radius: 8px; background: transparent; color: var(--tx-2); text-align: left; font: 700 10px/1 var(--font); cursor: pointer; }
.sporting-goal-actions button:hover { background: var(--surface-2); }
.sporting-goal-actions button:disabled { cursor: not-allowed; opacity: .42; }
.sporting-goal-actions button.is-danger { color: #a34b44; }
.sporting-goal-inline-editor { display: grid; grid-template-columns: minmax(130px,1fr) 70px minmax(125px,.8fr) minmax(105px,.65fr); gap: 8px; grid-column: 1 / -1; width: 100%; padding-top: 10px; border-top: 1px solid rgba(var(--primary-rgb), .1); }
.sporting-goal-inline-editor.hidden { display: none; }
.sporting-goal-chip.is-editing { min-width: min(100%,700px); }
.sporting-goal-inline-editor label { display: grid; gap: 4px; color: var(--tx-3); font-size: 9px; font-weight: var(--fw-b); }
.sporting-goal-inline-editor input,
.sporting-goal-inline-editor select { width: 100%; min-height: 35px; padding: 7px 8px; }
.sporting-goal-inline-editor .sporting-goal-visible { display: flex; align-items: center; gap: 6px; grid-column: 1 / -1; }
.sporting-goal-inline-editor .sporting-goal-visible input { width: auto; min-height: auto; }
.sporting-goal-inline-editor footer { display: flex; justify-content: flex-end; gap: 7px; grid-column: 1 / -1; }
.sporting-goal-inline-editor footer button { padding: 7px 9px; border: 0; border-radius: 9px; background: transparent; color: var(--primary-dk); font: 750 10px/1 var(--font); cursor: pointer; }
.sporting-goal-inline-editor footer .primary-btn { color: white; background: var(--primary); }
.sporting-goal-outcome-form { display: grid; gap: 9px; grid-column: 1 / -1; width: 100%; padding-top: 10px; border-top: 1px solid rgba(var(--primary-rgb), .1); }
.sporting-goal-outcome-form.hidden { display: none; }
.sporting-goal-outcome-form > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.sporting-goal-outcome-form > header strong { color: var(--tx); font-size: 11px; }
.sporting-goal-outcome-form > header button { display: grid; width: 26px; height: 26px; padding: 0; place-items: center; border: 0; border-radius: 8px; background: transparent; color: var(--tx-4); cursor: pointer; }
.sporting-goal-outcome-form > div { display: grid; grid-template-columns: minmax(150px,.7fr) minmax(140px,.5fr); gap: 8px; }
.sporting-goal-outcome-form label { display: grid; gap: 4px; color: var(--tx-3); font-size: 9px; font-weight: 760; }
.sporting-goal-outcome-form input,
.sporting-goal-outcome-form select,
.sporting-goal-outcome-form textarea { width: 100%; min-height: 35px; padding: 7px 8px; border: 1px solid rgba(17,24,39,.1); border-radius: 9px; background: #fff; color: var(--tx); font: inherit; font-size: 10px; }
.sporting-goal-outcome-form .sporting-goal-outcome-review { display: flex; align-items: center; gap: 7px; }
.sporting-goal-outcome-form .sporting-goal-outcome-review input { width: auto; min-height: auto; }
.sporting-goal-outcome-form > small { color: var(--tx-4); font-size: 8px; }
.sporting-goal-outcome-form footer { display: flex; align-items: center; gap: 8px; }
.sporting-goal-outcome-form footer [role="status"] { margin: 0; color: #9a513e; font-size: 8px; }
.sporting-goal-outcome-summary { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 2px 8px; grid-column: 1 / -1; margin: 0; padding-top: 8px; border-top: 1px solid rgba(var(--primary-rgb), .08); }
.sporting-goal-outcome-summary strong { color: var(--primary-dk); font-size: 9px; }
.sporting-goal-outcome-summary span { color: var(--tx-4); font-size: 8px; }
.sporting-goal-outcome-summary small { grid-column: 1 / -1; color: var(--tx-3); font-size: 8px; white-space: normal; }
.sporting-goal-empty { margin: 0; color: var(--tx-4); font-size: 11px; }
.sporting-goal-add { position: relative; }
.sporting-goal-add > summary { display: inline-flex; padding: 7px 10px; border-radius: 999px; background: var(--primary-bg); color: var(--primary-dk); cursor: pointer; font-size: 10px; font-weight: var(--fw-b); list-style: none; }
.sporting-goal-add > summary::-webkit-details-marker { display: none; }
.sporting-goal-add[open] > summary { background: var(--primary); color: white; }
.sporting-goal-add form { display: grid; grid-template-columns: minmax(140px, 1fr) 78px minmax(135px, .8fr) minmax(120px, .7fr); gap: 9px; margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(var(--primary-rgb), .1); }
.sporting-goal-add[open] { width: 100%; }
.sporting-goal-add form label { display: grid; gap: 4px; color: var(--tx-3); font-size: 10px; font-weight: var(--fw-b); }
.sporting-goal-add form input, .sporting-goal-add form select { min-height: 36px; padding: 7px 9px; }
.sporting-goal-add form .sporting-goal-visible { display: flex; align-items: center; gap: 6px; grid-column: 1 / -1; }
.sporting-goal-visible input { width: auto; min-height: auto !important; }
.sporting-goal-add form .primary-btn { justify-self: start; }
.sporting-goal-add form [role="status"] { align-self: center; margin: 0; color: var(--tx-3); font-size: 10px; }
.prototype-progression [data-rehabilitation-card-view-panel="trajectory"] > .sporting-goals { margin: 10px 0 0; padding: 11px 0 0; border: 0; border-top: 1px solid rgba(var(--primary-rgb), .1); border-radius: 0; background: transparent; }
.prototype-progression [data-rehabilitation-card-view-panel="trajectory"] > .sporting-goals > header strong { font-size: 12px; }
.prototype-progression [data-rehabilitation-card-view-panel="trajectory"] > .sporting-goals > header small { display: none; }
.prototype-progression [data-rehabilitation-card-view-panel="trajectory"] > .sporting-goals .sporting-goal-chip { min-width: min(100%,280px); padding-block: 7px; box-shadow: none; }

@media (max-width: 900px) {
  .daily-life-impact-domains { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #targetedImpactSubscaleFields,
  .targeted-impact-score-profile { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  #targetedImpactSubscaleFields,
  .targeted-impact-score-profile { grid-template-columns: 1fr; }
  .targeted-impact-record-heading em { width: fit-content; margin-left: 0; }
  .targeted-impact-answer-list > div { grid-template-columns: 1fr; gap: 3px; }
  .synapse-role-workspace .patient-session-detail summary,
  .synapse-role-workspace .session-compact-header,
  .patient-bilan-card summary { min-height: 58px; }

  .synapse-role-workspace-assessments .patient-initial-assessment,
  .synapse-role-workspace-assessments .patient-bilans,
  .synapse-role-workspace-assessments .patient-medical-documents { padding: var(--s4); }
  .daily-life-impact { padding: var(--s4); }
  .daily-life-impact-header { flex-direction: column; }
  .daily-life-impact-grid { grid-template-columns: 1fr; }
  .daily-life-impact-domains { grid-template-columns: 1fr; padding: 11px; }
  .daily-life-impact-domains label { min-height: 48px; }
  .daily-life-impact-actions { align-items: stretch; flex-direction: column; }
  .daily-life-impact-actions .assessment-save-message { margin-right: 0; }
  .reassessment-overview { padding: var(--s4); }
  .reassessment-overview-header,
  .clinical-links-heading { align-items: stretch; flex-direction: column; }
  .clinical-links-list { grid-template-columns: 1fr; }
  .sporting-goals > header { align-items: flex-start; }
  .sporting-goal-add form { grid-template-columns: 1fr 86px; }
  .sporting-goal-add form label:nth-child(3), .sporting-goal-add form label:nth-child(4) { grid-column: 1 / -1; }
  .sporting-goal-chip { min-width: 100%; }
  .sporting-goal-inline-editor { grid-template-columns: 1fr 72px; }
  .sporting-goal-inline-editor label:nth-child(3),
  .sporting-goal-inline-editor label:nth-child(4) { grid-column: 1 / -1; }
  .sporting-goal-outcome-form > div { grid-template-columns: 1fr; }
  .sporting-goal-outcome-form footer { align-items: stretch; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .synapse-role-workspace .patient-session-detail,
  .synapse-role-workspace .patient-session-shortcut,
  .synapse-role-workspace .session-item { transition: none; }
}

.patient-directory-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.patient-directory-filter {
  display: flex;
  gap: 2px;
  padding: 3px;
  border: 1px solid rgba(var(--primary-rgb), .11);
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .045);
}
.patient-directory-filter button {
  min-height: 30px;
  padding: 0 12px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--tx-4);
  font: 800 10px/1 var(--font);
  cursor: pointer;
}
.patient-directory-filter button.active {
  background: #fff;
  color: var(--primary-dk);
  box-shadow: 0 3px 10px rgba(35,40,78,.08);
}
.clinical-patient-row.clinical-patient-row-archived {
  grid-template-columns: 42px minmax(220px, 1fr) minmax(140px, .55fr) auto;
  opacity: .86;
}
.clinical-patient-row-archived:hover {
  padding-left: 12px;
  padding-right: 12px;
  transform: none;
  background: rgba(var(--primary-rgb), .025);
  box-shadow: none;
}
.archived-patient-open {
  display: grid;
  min-width: 0;
  gap: 4px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--tx);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.archived-patient-open strong,
.archived-patient-open span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.archived-patient-open strong { font-size: 13px; }
.archived-patient-open > span { color: var(--tx-4); font-size: 10px; }
.patient-restore-btn {
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid rgba(var(--primary-rgb), .17);
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .06);
  color: var(--primary-dk);
  font: 800 10px/1 var(--font);
  white-space: nowrap;
  cursor: pointer;
}
.patient-restore-btn:hover,
.patient-restore-btn:focus-visible { background: rgba(var(--primary-rgb), .12); outline: 0; }

@media (max-width: 760px) {
  .patient-list-surface > .card-header { align-items: stretch; flex-direction: column; }
  .patient-directory-header-actions { justify-content: space-between; }
  .clinical-patient-row.clinical-patient-row-archived {
    grid-template-columns: 38px minmax(0, 1fr) auto;
    gap: 10px;
  }
  .clinical-patient-row-archived .clinical-patient-meta { display: none; }
  .patient-restore-btn { padding-inline: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .clinical-patient-row-archived,
  .patient-restore-btn { transition: none; }
}

@media (max-width: 720px) {
  .session-mode-overlay { overflow: hidden; }
  .session-mode-shell {
    display: flex;
    flex-direction: column;
    height: 100dvh;
    min-height: 0;
    overflow: hidden;
  }
  .session-mode-shell > .clinical-work-context { position: static; flex: 0 0 auto; }
  .session-mode-header { margin-bottom: 8px; }
  .session-mode-progress { gap: 4px; margin-bottom: 8px; }
  .session-mode-current-card {
    flex: 1 1 0;
    min-height: 0;
    gap: 8px;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .session-mode-exercise-overview,
  .session-mode-execution { display: grid; min-width: 0; gap: 8px; }
  .session-mode-current-card.is-timing .session-mode-media,
  .session-mode-current-card.is-timing .session-mode-dose-grid,
  .session-mode-current-card.is-timing .session-mode-series-guidance { display: none; }
  .session-mode-current-card.is-timing .session-mode-current-copy p { display: none; }
  .session-mode-current-card.is-timing .session-mode-current-copy h2 { font-size: 22px; }
  .session-mode-media { min-height: clamp(145px, 25dvh, 210px); }
  .session-mode-media-button img { height: clamp(145px, 25dvh, 210px); }
  .session-mode-dose { padding: 8px 9px; }
  .session-mode-navigation { padding: 7px 2px 3px; }
  .session-mode-footer { margin-top: 0; padding-top: 7px; }
}

/* Surface de page continue
   Le premier niveau de chaque onglet appartient au fond de page. Les cartes sont
   reservees aux objets fonctionnels contenus dans ces espaces. */
#planningTab > .planning-surface,
#patientTab > .patient-summary-card,
#patientTab > .search-panel,
#patientTab > .patient-list-surface,
#communityTab > .library-card,
#libraryTab > .library-card,
#patientAppTab > .patient-workspace {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

#patientTab > .patient-summary-card,
#patientTab > .search-panel,
#patientTab > .patient-list-surface,
#communityTab > .library-card,
#libraryTab > .library-card,
#patientAppTab > .patient-workspace {
  padding: 0;
}

#patientTab > .patient-summary-card > .summary-card {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

#planningTab > .planning-surface:hover,
#patientTab > .patient-list-surface:hover,
#communityTab > .library-card:hover,
#libraryTab > .library-card:hover,
#patientAppTab > .patient-workspace:hover {
  border-color: transparent;
  box-shadow: none;
  transform: none;
}

/* Sections de page, objets en carte
   Les grands chapitres utilisent directement le fond de page. Seuls leurs
   contenus manipulables conservent une surface de carte. */
#patientMetricsHeader,
#patientMetricsHeader:has(.prototype-progression-compact) {
  padding: 0;
}

#patientMetricsHeader > .prototype-progression,
.shared-timeline,
.shared-goals,
.shared-program,
.patient-initial-assessment,
.patient-bilans,
.patient-medical-documents,
.initial-assessment-overview,
.general-health-record,
.reassessment-overview,
.medical-follow-up {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

#patientMetricsHeader > .prototype-progression {
  margin: 0;
}

#patientMetricsHeader .prototype-current-phase {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

/* Évolution · étoile des cinq capacités décidées dans le bilan */
.capacity-star-card {
  margin-top: 26px;
  padding: clamp(18px, 2.6vw, 30px);
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 28px;
  background:
    radial-gradient(circle at 18% 12%, rgba(var(--primary-rgb), .12), transparent 38%),
    linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(var(--primary-rgb), .035));
  box-shadow: 0 18px 46px rgba(32, 45, 88, .08);
}

.capacity-star-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.capacity-star-heading h4 {
  margin: 5px 0 4px;
  color: var(--tx);
  font-size: clamp(21px, 2.7vw, 30px);
  line-height: 1.08;
}

.capacity-star-heading p {
  margin: 0;
  color: var(--tx-3);
  font-size: 13px;
}

.capacity-star-count {
  flex: 0 0 auto;
  padding: 8px 12px;
  border: 1px solid rgba(var(--primary-rgb), .15);
  border-radius: 999px;
  background: rgba(255, 255, 255, .84);
  color: var(--primary);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .02em;
}

.capacity-star-layout {
  display: grid;
  grid-template-columns: minmax(300px, 1.2fr) minmax(240px, .8fr);
  align-items: center;
  gap: clamp(18px, 3vw, 38px);
  margin-top: 14px;
}

.capacity-star-figure {
  min-width: 0;
  margin: 0;
}

.capacity-star-figure svg {
  display: block;
  width: min(100%, 490px);
  height: auto;
  margin-inline: auto;
  overflow: visible;
}

.capacity-star-grid-ring,
.capacity-star-axis {
  fill: rgba(255, 255, 255, .42);
  stroke: rgba(73, 89, 133, .14);
  stroke-width: 1;
}

.capacity-star-grid-ring.is-outer {
  fill: rgba(var(--primary-rgb), .025);
  stroke: rgba(var(--primary-rgb), .22);
  stroke-width: 1.5;
}

.capacity-star-initial-shape {
  fill: rgba(120, 132, 165, .06);
  stroke: rgba(102, 116, 151, .62);
  stroke-width: 2;
  stroke-dasharray: 5 5;
}

.capacity-star-current-shape {
  fill: rgba(var(--primary-rgb), .19);
  stroke: var(--primary);
  stroke-width: 3;
  stroke-linejoin: round;
  filter: drop-shadow(0 8px 10px rgba(var(--primary-rgb), .15));
}

.capacity-star-current-point {
  fill: #fff;
  stroke: var(--primary);
  stroke-width: 3;
}

.capacity-star-label {
  fill: var(--tx);
  font-family: inherit;
  font-size: 11px;
  font-weight: 800;
}

.capacity-star-label-value {
  fill: var(--primary);
  font-size: 10px;
  font-weight: 900;
}

.capacity-star-figure figcaption {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 16px;
  margin-top: -2px;
  color: var(--tx-3);
  font-size: 10px;
  font-weight: 700;
}

.capacity-star-figure figcaption span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.capacity-star-figure figcaption i {
  width: 18px;
  height: 3px;
  border-radius: 999px;
}

.capacity-star-legend-initial {
  border-top: 2px dashed rgba(102, 116, 151, .72);
}

.capacity-star-legend-current {
  background: var(--primary);
}

.capacity-star-details ol {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.capacity-star-details li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 12px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid rgba(75, 90, 130, .1);
  border-radius: 14px;
  background: rgba(255, 255, 255, .72);
}

.capacity-star-details li > span {
  color: var(--tx);
  font-size: 12px;
  font-weight: 780;
}

.capacity-star-details li > strong {
  color: var(--primary);
  font-size: 14px;
}

.capacity-star-details li > small {
  grid-column: 1 / -1;
  color: var(--tx-3);
  font-size: 9px;
}

.capacity-star-details li.is-unmeasured {
  border-style: dashed;
  background: rgba(255, 255, 255, .38);
}

.capacity-star-details li.is-unmeasured > strong {
  color: var(--tx-3);
  font-size: 11px;
}

.capacity-star-source {
  display: grid;
  gap: 3px;
  margin: 12px 0 0;
  color: var(--tx-3);
  font-size: 10px;
  line-height: 1.45;
}

.capacity-star-source span {
  color: var(--tx);
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.capacity-star-simulation {
  display: inline-flex;
  margin-top: 10px;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .08);
  color: var(--primary);
  font-size: 9px;
  font-weight: 850;
}

.capacity-star-boundary {
  margin: 18px 0 0;
  padding-top: 14px;
  border-top: 1px solid rgba(75, 90, 130, .1);
  color: var(--tx-3);
  font-size: 10px;
  line-height: 1.5;
}

@media (max-width: 700px) {
  .capacity-star-card {
    margin-top: 18px;
    padding: 16px 13px;
    border-radius: 22px;
  }

  .capacity-star-heading {
    gap: 10px;
  }

  .capacity-star-heading h4 {
    font-size: 20px;
  }

  .capacity-star-count {
    padding: 7px 9px;
    font-size: 9px;
  }

  .capacity-star-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    margin-top: 10px;
  }

  .capacity-star-figure svg {
    width: min(100%, 370px);
  }

  .capacity-star-details ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .capacity-star-details li:last-child {
    grid-column: 1 / -1;
  }

  .capacity-star-boundary {
    margin-top: 13px;
  }
}

/* Selecteur de suivi integre a l'entete */
.patient-unified-header .patient-follow-up-header {
}

.patient-unified-header .patient-follow-up-trigger {
  min-height: 42px;
  padding: 3px 2px 7px 0;
  border: 0;
  border-bottom: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transition: border-color var(--dur-fast), color var(--dur-fast);
}

.patient-unified-header .patient-follow-up-trigger:hover,
.patient-unified-header .patient-follow-up-trigger[aria-expanded="true"] {
  border-bottom-color: rgba(var(--primary-rgb), .52);
  background: transparent;
}

.patient-unified-header .patient-follow-up-trigger:focus-visible {
  border-bottom-color: var(--primary);
  outline: 3px solid rgba(var(--primary-rgb), .14);
  outline-offset: 3px;
  box-shadow: none;
}

.patient-unified-header .patient-follow-up-trigger-copy {
  gap: 2px;
}

.patient-unified-header .patient-follow-up-trigger-copy small {
  display: block;
  color: var(--primary);
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .09em;
  line-height: 1.15;
  text-transform: uppercase;
}

.patient-unified-header .patient-follow-up-trigger-copy strong {
  color: var(--tx);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.25;
}

.patient-unified-header .patient-follow-up-chevron {
  width: 24px;
  height: 24px;
  flex-basis: 24px;
  border-radius: 8px;
  background: transparent;
  color: var(--tx-3);
  font-size: 15px;
}

.patient-unified-header .patient-follow-up-trigger:hover .patient-follow-up-chevron,
.patient-unified-header .patient-follow-up-trigger[aria-expanded="true"] .patient-follow-up-chevron {
  background: rgba(var(--primary-rgb), .08);
  color: var(--primary);
}

.patient-unified-header .patient-follow-up-options {
  top: calc(100% + 8px);
  padding: 8px;
  border-color: rgba(17, 24, 39, .09);
  border-radius: 14px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 20px 48px rgba(23, 29, 53, .16);
  backdrop-filter: blur(16px);
}

.patient-unified-header .patient-follow-up-option {
  min-height: 38px;
  padding: 9px 10px;
  border-radius: 9px;
}

.patient-unified-header .patient-follow-up-option.is-active {
  background: rgba(var(--primary-rgb), .08);
  box-shadow: inset 3px 0 0 var(--primary);
  color: var(--primary-dk);
}

.patient-unified-header .patient-follow-up-option-add {
  margin-top: 3px;
  border-top: 1px solid rgba(var(--primary-rgb), .09);
  border-radius: 0 0 9px 9px;
}

.patient-unified-header .patient-follow-up-create input {
  border: 0;
  border-bottom: 1px solid rgba(var(--primary-rgb), .22);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.patient-unified-header .patient-follow-up-create input:focus {
  border-bottom-color: var(--primary);
  box-shadow: 0 2px 0 rgba(var(--primary-rgb), .16);
}

@media (max-width: 560px) {
  .patient-unified-header .patient-follow-up-header,
  .patient-unified-header .patient-follow-up-create {
    width: 100%;
  }
}


.session-clean-demo-chip {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 5px 9px;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .09);
  color: var(--primary-dk);
  font-size: 9px;
  font-weight: 850;
  white-space: nowrap;
}

.exercise-animation-overlay.is-patient-reader .exercise-animation-dialog { width: min(680px, calc(100vw - 24px)); }
.exercise-animation-overlay.is-patient-reader .exercise-animation-mode-switch { width: min(100%, 430px); }
.exercise-animation-overlay.is-patient-reader .exercise-animation-step-copy > strong { font-size: 15px; }
.exercise-animation-overlay.is-patient-reader .exercise-animation-step-copy > p { color: var(--tx-2); font-size: 13px; }
.exercise-animation-overlay.is-patient-reader .exercise-animation-support-note { padding: 10px 12px; border-radius: 12px; background: rgba(var(--primary-rgb), .055); color: var(--tx-3); font-size: 10px; }
.session-mode-media-button.is-patient-reader > span { min-height: 40px; padding-inline: 15px; font-size: 11px; }

/* Lecteur hybride animation / étapes clés — prototype Clean Charlotte */
@media (max-width: 720px) {
  .exercise-animation-dialog {
    max-height: calc(100dvh - 20px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .exercise-animation-mode-switch { display: grid; width: calc(100% - 44px); }
  .exercise-animation-mode-switch.hidden { display: none; }
  .exercise-animation-stage { height: min(49vh, 430px); min-height: 280px; }
  .exercise-animation-stage .session-exercise-official-motion { transform: none; }
  .exercise-animation-step-arrow { width: 42px; height: 42px; }
  .exercise-animation-step-previous { left: 8px; }
  .exercise-animation-step-next { right: 8px; }
  .exercise-animation-step-copy { grid-template-columns: 1fr; padding: 11px 12px; }
  .exercise-animation-step-copy > span { grid-row: auto; justify-self: start; }
}


/* ===== Équipe de suivi centrée sur le patient · 2026-09-01 ===== */
.patient-unified-header .patient-follow-up-header {
  width: min(100%, 520px);
  align-items: center;
  gap: 0;
}
.patient-record-share-grid.is-single { grid-template-columns: minmax(0, 1fr); }
.patient-record-share-item.patient-care-team-member { grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; }
.patient-record-share-item.patient-care-team-member.is-lead { background: linear-gradient(135deg, rgba(var(--primary-rgb), .07), rgba(255,255,255,.76)); }
.patient-record-share-item.patient-care-team-member > .patient-care-team-avatar {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 11px;
  background: rgba(var(--primary-rgb), .11);
  color: var(--primary-dk);
  font-size: 10px;
  font-weight: 900;
}
/* Mon cabinet : le fond reste la surface de travail ; les reliefs signalent seulement une action ou un suivi partagé. */
.cabinet-page-header { display: grid; gap: 7px; margin-bottom: 24px; }
.cabinet-page-header h1 { margin: 0; color: var(--tx); font-size: clamp(25px, 3vw, 34px); letter-spacing: -.04em; }
.cabinet-page-header p:last-child { max-width: 670px; margin: 0; color: var(--tx-3); font-size: 13px; line-height: 1.55; }
.cabinet-coordination,
.cabinet-shared-followups,
.cabinet-organization { margin-top: 26px; }
.cabinet-coordination-header,
.cabinet-organization-header { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 11px; }
.cabinet-coordination-header h2,
.cabinet-organization-header h2 { margin: 2px 0 0; color: var(--tx); font-size: 19px; letter-spacing: -.025em; }
.cabinet-organization-header > span { color: var(--tx-4); font-size: 10px; font-weight: 800; white-space: nowrap; }
.cabinet-coordination-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.cabinet-coordination-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 10px; min-width: 0; padding: 13px; border: 1px solid rgba(var(--primary-rgb), .11); border-radius: 15px; background: rgba(255,255,255,.56); }
.cabinet-coordination-item.is-share { background: linear-gradient(135deg, rgba(112,91,216,.10), rgba(255,255,255,.64)); border-color: rgba(112,91,216,.18); }
.cabinet-coordination-count { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 9px; background: rgba(var(--primary-rgb), .10); color: var(--primary-dk); font-size: 12px; font-weight: 900; }
.cabinet-coordination-item.is-share .cabinet-coordination-count { background: rgba(112,91,216,.15); color: #6550ba; }
.cabinet-coordination-item > div { display: grid; min-width: 0; gap: 3px; }
.cabinet-coordination-item strong { color: var(--tx-2); font-size: 11px; font-weight: 850; }
.cabinet-coordination-item small { color: var(--tx-4); font-size: 9px; font-weight: 700; line-height: 1.35; }
.cabinet-invitation-list,
.cabinet-share-preparation-list { display: grid; gap: 5px; margin-top: 4px; }
.cabinet-invitation-item { display: flex; align-items: center; justify-content: space-between; gap: 7px; }
.cabinet-invitation-item > span { display: grid; min-width: 0; gap: 1px; }
.cabinet-invitation-item strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.cabinet-invitation-item small { font-size: 8px; }
.cabinet-share-preparation { display: grid; gap: 1px; padding: 0; border: 0; background: transparent; color: var(--tx-3); text-align: left; cursor: pointer; }
.cabinet-share-preparation span { color: var(--primary-dk); font-size: 9px; font-weight: 850; }
.cabinet-share-preparation small { font-size: 8px; }
.cabinet-share-preparation:hover span,
.cabinet-share-preparation:focus-visible span { text-decoration: underline; }
.cabinet-shared-followups-intro,
.cabinet-team-intro { margin: -3px 0 10px; color: var(--tx-4); font-size: 10px; font-weight: 650; }
.cabinet-shared-followups-list { display: grid; gap: 7px; }
.cabinet-shared-followup { display: grid; grid-template-columns: minmax(92px, .72fr) minmax(180px, 1.4fr) minmax(145px, 1fr) auto; align-items: center; gap: 12px; width: 100%; min-width: 0; padding: 12px 13px; border: 1px solid rgba(var(--primary-rgb), .11); border-radius: 14px; background: rgba(255,255,255,.62); color: inherit; text-align: left; cursor: pointer; }
.cabinet-shared-followup:hover,
.cabinet-shared-followup:focus-visible { border-color: rgba(var(--primary-rgb), .3); outline: 3px solid rgba(var(--primary-rgb), .07); background: rgba(255,255,255,.86); }
.cabinet-shared-followup-patient { color: var(--primary-dk); font-size: 11px; font-weight: 900; }
.cabinet-shared-followup-copy { display: grid; min-width: 0; gap: 3px; }
.cabinet-shared-followup-copy strong { overflow: hidden; color: var(--tx-2); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.cabinet-shared-followup-copy small { overflow: hidden; color: var(--tx-4); font-size: 9px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.cabinet-shared-followup-deadline { color: var(--tx-3); font-size: 9px; font-weight: 750; line-height: 1.35; }
.cabinet-shared-followup-chevron { color: var(--primary); font-size: 19px; line-height: 1; }
.cabinet-shared-followups-empty,
.cabinet-member-records-empty { margin: 0; padding: 12px 0; color: var(--tx-4); font-size: 11px; }
.cabinet-team-map { display: grid; gap: 12px; }
.cabinet-team-hub { display: inline-flex; align-items: center; gap: 9px; width: max-content; max-width: 100%; color: var(--tx-2); }
.cabinet-team-hub > span:last-child { display: grid; gap: 1px; }
.cabinet-team-hub strong { font-size: 12px; }
.cabinet-team-hub small { color: var(--tx-4); font-size: 9px; font-weight: 700; }
.cabinet-team-hub-icon { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 10px; background: rgba(var(--primary-rgb), .10); }
.cabinet-team-branches { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.cabinet-member { min-width: 0; }
.cabinet-member-node { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 8px; width: 100%; min-width: 0; padding: 10px; border: 1px solid rgba(var(--primary-rgb), .10); border-radius: 13px; background: rgba(255,255,255,.46); color: inherit; text-align: left; cursor: pointer; }
.cabinet-member-node:hover,
.cabinet-member-node:focus-visible,
.cabinet-member.is-selected .cabinet-member-node { border-color: rgba(var(--primary-rgb), .31); outline: 3px solid rgba(var(--primary-rgb), .06); background: rgba(255,255,255,.83); }
.cabinet-member-avatar { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: linear-gradient(135deg, var(--primary), #8e7ce9); color: #fff; font-size: 9px; font-weight: 900; }
.cabinet-member-copy { display: grid; min-width: 0; gap: 2px; }
.cabinet-member-copy > span { display: flex; min-width: 0; align-items: center; gap: 4px; }
.cabinet-member-copy strong { overflow: hidden; color: var(--tx-2); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.cabinet-member-copy em { padding: 2px 4px; border-radius: 5px; background: rgba(var(--primary-rgb), .09); color: var(--primary-dk); font-size: 7px; font-style: normal; font-weight: 850; }
.cabinet-member-copy small,
.cabinet-member-node-count { overflow: hidden; color: var(--tx-4); font-size: 8px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.cabinet-member-node-count { grid-column: 2; }
.cabinet-member-focus { margin-top: 12px; padding-top: 13px; border-top: 1px solid rgba(var(--primary-rgb), .11); }
.cabinet-member-focus-header { display: flex; align-items: center; gap: 8px; }
.cabinet-member-focus-header > span:nth-child(2) { display: grid; min-width: 0; gap: 2px; }
.cabinet-member-focus-header small { color: var(--tx-4); font-size: 8px; font-weight: 750; }
.cabinet-member-focus-header strong { color: var(--tx-2); font-size: 11px; }
.cabinet-member-focus-header em { color: var(--tx-4); font-size: 8px; font-style: normal; font-weight: 650; }
.cabinet-access-chip { margin-left: auto; padding: 5px 7px; border-radius: 8px; background: rgba(var(--primary-rgb), .08); color: var(--primary-dk); font-size: 8px; font-weight: 850; }
.cabinet-member-records { margin-top: 11px; }
.cabinet-member-records-title { display: flex; align-items: center; gap: 7px; color: var(--tx-3); font-size: 10px; font-weight: 800; }
.cabinet-member-records-title strong { display: grid; min-width: 18px; height: 18px; padding: 0 5px; place-items: center; border-radius: 7px; background: rgba(var(--primary-rgb), .10); color: var(--primary-dk); font-size: 9px; }
details.cabinet-member-records > summary { min-height:44px;padding:10px 12px;box-sizing:border-box;border-radius:14px;background:rgba(var(--primary-rgb),.055);cursor:pointer;list-style:none;font-size:13px; }
details.cabinet-member-records > summary::-webkit-details-marker { display:none; }
details.cabinet-member-records > summary::after { content:'⌄';margin-left:auto;font-size:18px;line-height:1; }
details.cabinet-member-records[open] > summary::after { content:'⌃'; }
details.cabinet-member-records > summary:focus-visible { outline:2px solid var(--primary);outline-offset:3px; }
details.cabinet-member-records > summary:hover { background:rgba(var(--primary-rgb),.09); }
details.cabinet-member-records:not([open]) > .cabinet-member-record-list { display:none !important; }
.cabinet-member-record-list { display: grid; gap: 5px; margin-top: 7px; }
.cabinet-shared-record { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 8px; width: 100%; padding: 8px 0; border: 0; border-top: 1px solid rgba(var(--primary-rgb), .08); background: transparent; color: inherit; text-align: left; cursor: pointer; }
.cabinet-shared-record:hover strong,
.cabinet-shared-record:focus-visible strong { color: var(--primary-dk); text-decoration: underline; }
.cabinet-record-initials { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 8px; background: rgba(var(--primary-rgb), .08); color: var(--primary-dk); font-size: 8px; font-weight: 900; }
.cabinet-shared-record > span:nth-child(2) { display: grid; min-width: 0; gap: 1px; }
.cabinet-shared-record strong { overflow: hidden; color: var(--tx-2); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.cabinet-shared-record small,
.cabinet-shared-record em { overflow: hidden; color: var(--tx-4); font-size: 8px; font-style: normal; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.cabinet-prototype-boundary { margin: 22px 0 0; color: var(--tx-4); font-size: 9px; line-height: 1.45; }
@media (max-width: 820px) {
  .cabinet-coordination-list { grid-template-columns: 1fr; }
  .cabinet-shared-followup { grid-template-columns: minmax(82px, .7fr) minmax(0, 1.3fr) auto; }
  .cabinet-shared-followup-deadline { grid-column: 2; }
  .cabinet-shared-followup-chevron { grid-column: 3; grid-row: 1 / span 2; }
  .cabinet-team-branches { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .cabinet-coordination-header,
  .cabinet-organization-header { align-items: flex-start; flex-direction: column; gap: 5px; }
  .cabinet-coordination-item { grid-template-columns: auto minmax(0,1fr); }
  .cabinet-coordination-item > .session-inline-link { grid-column: 2; justify-self: start; }
  .cabinet-shared-followup { grid-template-columns: minmax(0,1fr) auto; gap: 5px 9px; }
  .cabinet-shared-followup-patient,
  .cabinet-shared-followup-copy,
  .cabinet-shared-followup-deadline { grid-column: 1; }
  .cabinet-shared-followup-chevron { grid-column: 2; grid-row: 1 / span 3; }
  .cabinet-shared-followup-copy small { white-space: normal; }
  .cabinet-team-branches { grid-template-columns: 1fr; }
  .cabinet-access-chip { display: none; }
}

/* Synapse Learning is a separate editorial web app, reached from the clinical navigation. */
.sidebar-nav-learning {
  text-decoration: none;
}

.mobile-nav-item.sidebar-nav-learning {
  display: flex;
  align-items: center;
  justify-content: center;
}


/* Bêta interne : consigne entre rendez-vous, limitée aux personnages de campagne. */
.patient-campaign-task {
  grid-column: 1 / -1;
  display: grid;
  gap: 5px;
  padding: 15px 16px;
  border: 1px solid color-mix(in srgb, var(--primary) 22%, var(--border));
  border-radius: var(--r-xl);
  background: color-mix(in srgb, var(--primary-bg) 72%, var(--surface));
}
.patient-campaign-task > span {
  color: var(--primary-strong, var(--primary));
  font-size: 11px;
  font-weight: var(--fw-b);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.patient-campaign-task > strong { font-size: 15px; }
.patient-campaign-task > p { margin: 0; color: var(--tx-2); font-size: 13px; }
.patient-campaign-task > small { color: var(--tx-3); font-size: 12px; }

/* Bilan initial séquentiel : le professionnel garde un seul contexte de saisie visible. */
.initial-assessment-summary-actions,
.assessment-quick-module-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  flex-wrap: wrap;
}

.assessment-quick-module-footer {
  justify-content: space-between;
  margin-top: 12px;
}

.assessment-quick-module-footer .assessment-quick-module-message {
  flex: 1 1 260px;
  margin: 0;
}

.assessment-guided-requirement {
  min-height: 34px;
  margin: 0;
  padding: 8px 11px;
  border-radius: 10px;
  color: var(--tx-3);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.45;
}

.assessment-guided-requirement.needs-input {
  background: rgba(255, 248, 232, .78);
  color: #825315;
}

.assessment-guided-requirement.is-ready {
  background: rgba(234, 251, 247, .8);
  color: #15786d;
}

.assessment-guided-requirement.is-blocked {
  display: grid;
  gap: 5px;
  border: 1px solid rgba(196, 121, 35, .24);
  background: rgba(255, 244, 220, .92);
}

.assessment-guided-requirement.is-blocked > strong { color: #71440e; font-size: 12px; }
.assessment-guided-requirement.is-blocked > span { display: block; }
.assessment-required-shortcuts { display: flex !important; flex-wrap: wrap; gap: 6px; }
.assessment-required-shortcuts button {
  padding: 5px 8px;
  border: 1px solid rgba(130, 83, 21, .22);
  border-radius: 999px;
  background: rgba(255,255,255,.76);
  color: #71440e;
  font: inherit;
  font-weight: 750;
  cursor: pointer;
}
.assessment-required-shortcuts button:hover { background: #fff; }

.assessment-field-error {
  display: block;
  margin-top: 5px;
  color: #9a5a10 !important;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
}
.knee-assessment-form [aria-invalid="true"] {
  border-color: rgba(196, 121, 35, .58);
  box-shadow: 0 0 0 3px rgba(240, 166, 69, .12);
}

.assessment-step-nav button.is-locked,
.assessment-step-nav button:disabled {
  cursor: not-allowed;
  opacity: .42;
  box-shadow: none;
}

.initial-assessment-workspace.assessment-guided-draft > .knee-assessment-header {
  display: none;
}

.initial-assessment-workspace.assessment-guided-draft:not(.assessment-overview-open) .assessment-guided-progress {
  border-radius: 17px;
}

.initial-assessment-workspace.assessment-guided-draft .assessment-step-actions {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.initial-assessment-workspace.assessment-guided-draft .assessment-step-actions .assessment-save-message,
.initial-assessment-workspace.assessment-guided-draft .assessment-step-actions #kneeAssessmentStepStatus {
  display: none;
}

.initial-assessment-workspace.assessment-guided-draft .assessment-step-actions #kneeAssessmentNextBtn,
.initial-assessment-workspace.assessment-guided-draft .assessment-step-actions #kneeAssessmentSaveBtn {
  margin-left: auto;
}

@media (max-width: 700px) {
  .initial-assessment-summary-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .initial-assessment-summary-actions .primary-btn,
  .initial-assessment-summary-actions .secondary-btn {
    width: 100%;
  }

  .assessment-guided-heading {
    align-items: flex-start;
  }

  .assessment-guided-heading strong {
    white-space: normal;
  }

  .assessment-guided-requirement {
    min-height: 0;
  }

  .assessment-quick-module-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .assessment-quick-module-footer .assessment-quick-module-message {
    flex-basis: auto;
  }
}
/* Dossier sans suivi actif : une seule progression avant le déblocage clinique. */
#patientDetailModal.patient-detail-page #patientDashboardPanel.is-initial-assessment-focus {
  display: grid;
  min-height: min(620px, calc(100vh - 210px));
  align-content: center;
}
.patient-initial-assessment-focus {
  display: grid;
  width: min(100%, 920px);
  gap: clamp(18px, 3vw, 30px);
  margin: 0 auto;
  padding: clamp(8px, 2vw, 18px) 0;
}
.patient-initial-assessment-focus-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}
.patient-initial-assessment-focus-header > div { max-width: 630px; }
.patient-initial-assessment-focus-header h4 {
  margin: 4px 0 0;
  color: var(--tx);
  font-size: clamp(26px, 4vw, 42px);
  line-height: 1.05;
  letter-spacing: -.045em;
}
.patient-initial-assessment-focus-header p:not(.section-kicker) {
  max-width: 590px;
  margin: 10px 0 0;
  color: var(--tx-3);
  font-size: 13px;
  line-height: 1.55;
}
.patient-initial-assessment-focus-position {
  flex: 0 0 auto;
  padding: 8px 11px;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .09);
  color: var(--primary-dk);
  font-size: 10px;
  font-weight: 850;
}
.patient-initial-assessment-path {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.patient-initial-assessment-path li {
  position: relative;
  display: grid;
  min-width: 0;
  grid-template-columns: 30px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  padding-right: 22px;
}
.patient-initial-assessment-path li:not(:last-child)::after {
  position: absolute;
  top: 15px;
  right: 5px;
  left: 35px;
  z-index: 0;
  height: 1px;
  background: rgba(var(--primary-rgb), .16);
  content: '';
}
.patient-initial-assessment-path li > span {
  position: relative;
  z-index: 1;
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 50%;
  background: #fff;
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 850;
}
.patient-initial-assessment-path li > div {
  position: relative;
  z-index: 1;
  display: grid;
  min-width: 0;
  gap: 2px;
  padding-right: 7px;
  background: #fbfaf8;
}
.patient-initial-assessment-path strong { color: var(--tx-2); font-size: 12px; }
.patient-initial-assessment-path small { overflow: hidden; color: var(--tx-4); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.patient-initial-assessment-path .is-complete > span {
  border-color: rgba(34,166,136,.22);
  background: rgba(34,166,136,.12);
  color: #168b72;
}
.patient-initial-assessment-path .is-current > span {
  border-color: transparent;
  background: var(--primary);
  color: #fff;
  box-shadow: 0 6px 14px rgba(var(--primary-rgb), .20);
}
.patient-initial-assessment-path .is-current strong { color: var(--primary-dk); }
.patient-initial-assessment-path .is-locked { opacity: .58; }
.patient-initial-assessment-current-action {
  display: flex;
  width: 100%;
  min-height: 128px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(237,239,255,.96));
  box-shadow: 0 14px 34px rgba(45,51,101,.07);
  color: var(--tx);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.patient-initial-assessment-current-action:hover,
.patient-initial-assessment-current-action:focus-visible {
  border-color: rgba(var(--primary-rgb), .38);
  box-shadow: 0 18px 40px rgba(45,51,101,.11);
  outline: 0;
  transform: translateY(-1px);
}
.patient-initial-assessment-current-action > span { display: grid; min-width: 0; gap: 5px; }
.patient-initial-assessment-current-action small {
  color: var(--primary);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.patient-initial-assessment-current-action strong {
  color: var(--tx);
  font-size: clamp(18px, 2.5vw, 25px);
  line-height: 1.16;
  letter-spacing: -.025em;
}
.patient-initial-assessment-current-action em {
  font-size: 11px;
  font-style: normal;
  line-height: 1.45;
}
.patient-initial-assessment-current-action b {
  display: grid;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  place-items: center;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  font-size: 18px;
}

@media (max-width: 760px) {
  #patientDetailModal.patient-detail-page #patientDashboardPanel.is-initial-assessment-focus {
    min-height: auto;
    align-content: start;
    padding-top: 22px;
  }
  .patient-initial-assessment-focus-header { display: grid; gap: 12px; }
  .patient-initial-assessment-focus-position { width: fit-content; }
  .patient-initial-assessment-path { grid-template-columns: 1fr; gap: 10px; }
  .patient-initial-assessment-path li { padding-right: 0; }
  .patient-initial-assessment-path li:not(:last-child)::after {
    top: 28px;
    right: auto;
    bottom: -11px;
    left: 15px;
    width: 1px;
    height: auto;
  }
  .patient-initial-assessment-path li > div { background: transparent; }
  .patient-initial-assessment-path small { white-space: normal; }
  .patient-initial-assessment-current-action {
    min-height: 116px;
    gap: 14px;
    border-radius: 17px;
  }
}
/* Bilan initial : distinguer la sortie du parcours de sa navigation interne. */
.initial-assessment-workspace > .initial-assessment-page-header {
  align-items: center;
}
.initial-assessment-page-identity {
  display: grid;
  min-width: 0;
  gap: 3px;
}
.initial-assessment-page-header .initial-assessment-page-identity > strong {
  margin: 0;
  color: var(--tx);
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.12;
  letter-spacing: -.025em;
}
.initial-assessment-patient-name {
  overflow: hidden;
  color: var(--tx-3);
  font-size: 11px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.initial-assessment-exit-btn {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}
.initial-assessment-exit-btn > span[aria-hidden="true"] {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 50%;
  background: rgba(var(--primary-rgb), .08);
  color: var(--primary-dk);
  font-size: 15px;
  font-weight: 500;
  line-height: 1;
}

@media (max-width: 700px) {
  .initial-assessment-workspace > .initial-assessment-page-header {
    align-items: center;
    flex-direction: row;
    gap: 12px;
  }
  .initial-assessment-page-identity { flex: 1; }
  .initial-assessment-exit-btn {
    min-height: 36px;
    padding: 7px 9px;
  }
  .initial-assessment-exit-btn > span:last-child {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
}
/* Hiérarchie allégée du dossier en attente de bilan. */
.patient-unified-header .patient-follow-up-picker--pending .patient-follow-up-trigger-copy {
  display: flex;
  align-items: baseline;
  gap: 9px;
}
.patient-unified-header .patient-follow-up-picker--pending .patient-follow-up-trigger-copy small {
  color: var(--tx);
  font-size: 14px;
  font-weight: 820;
  letter-spacing: -.015em;
  text-transform: none;
}
.patient-unified-header .patient-follow-up-picker--pending .patient-follow-up-trigger-copy strong {
  color: var(--tx-3);
  font-size: 11px;
  font-weight: 650;
}
.patient-initial-assessment-current-action strong {
  color: var(--primary-dk);
}
.patient-initial-assessment-current-action em {
  color: var(--tx-3);
  font-weight: 620;
}

@media (max-width: 560px) {
  .patient-unified-header .patient-follow-up-picker--pending .patient-follow-up-trigger-copy {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }
}

/* Dossier progressif : la densité suit les données réellement acquises. */
.patient-record-navigation.is-progressive-start {
  grid-template-columns: minmax(0, 1fr);
}
.patient-record-navigation.is-progressive-start::before {
  display: none;
}
.patient-progressive-dashboard {
  display: grid;
  gap: 18px;
  max-width: 980px;
  margin: 0 auto;
}
.patient-progressive-next-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  padding: 24px 26px;
  border: 1px solid rgba(98, 88, 232, .24);
  border-radius: 20px;
  background: linear-gradient(135deg, #f4f1ff 0%, #ebe7ff 100%);
  color: var(--tx);
  text-align: left;
  box-shadow: 0 14px 30px rgba(71, 58, 171, .08);
}
.patient-progressive-next-action > span {
  display: grid;
  gap: 5px;
}
.patient-progressive-next-action small,
.patient-progressive-objectives header span,
.patient-progressive-reference > span {
  color: var(--primary-dk);
  font-size: 10px;
  font-weight: 820;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.patient-progressive-next-action strong {
  font-size: clamp(20px, 2.4vw, 27px);
  letter-spacing: -.025em;
}
.patient-progressive-next-action em {
  color: var(--tx-3);
  font-size: 13px;
  font-style: normal;
  font-weight: 620;
}
.patient-progressive-next-action > b {
  flex: 0 0 auto;
  color: var(--primary-dk);
  font-size: 13px;
}
.patient-progressive-evidence {
  display: grid;
  grid-template-columns: minmax(190px, .72fr) minmax(0, 1.8fr);
  gap: 14px;
}
.patient-progressive-reference,
.patient-progressive-objectives {
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(255, 255, 255, .78);
  box-shadow: none;
}
.patient-progressive-reference {
  display: grid;
  align-content: start;
  gap: 5px;
  padding: 20px;
  color: var(--tx);
  text-align: left;
}
.patient-progressive-reference strong {
  font-size: 18px;
}
.patient-progressive-reference small {
  color: var(--tx-3);
  font-size: 12px;
}
.patient-progressive-reference em {
  align-self: end;
  margin-top: 14px;
  color: var(--primary-dk);
  font-size: 12px;
  font-style: normal;
  font-weight: 760;
}
.patient-progressive-objectives {
  padding: 20px 22px;
}
.patient-progressive-objectives header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
.patient-progressive-objectives h3 {
  margin: 3px 0 0;
  color: var(--tx);
  font-size: 18px;
}
.patient-progressive-objectives ol {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.patient-progressive-objectives li {
  display: grid;
  grid-template-columns: minmax(130px, .7fr) minmax(0, 1.6fr) auto;
  align-items: baseline;
  gap: 12px;
  padding: 11px 0;
  border-top: 1px solid rgba(57, 52, 82, .09);
}
.patient-progressive-objectives li > span {
  color: var(--tx-3);
  font-size: 12px;
  font-weight: 700;
}
.patient-progressive-objectives li > strong {
  color: var(--tx);
  font-size: 13px;
  line-height: 1.45;
}
.patient-progressive-objectives li > small {
  color: var(--tx-3);
  font-size: 11px;
  white-space: nowrap;
}

/* Accueil : les retards sont un état d’urgence temporaire, pas une catégorie. */
.dashboard-overdue-priority {
  margin: 14px 0 4px;
  padding: 18px 20px;
  border: 1px solid rgba(207, 122, 42, .28);
  border-radius: 18px;
  background: linear-gradient(135deg, #fff9f1 0%, #fff2df 100%);
}
.dashboard-overdue-priority > header span {
  color: #9a571c;
  font-size: 10px;
  font-weight: 820;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.dashboard-overdue-priority > header h2 {
  margin: 3px 0 13px;
  color: var(--tx);
  font-size: 20px;
}
.dashboard-overdue-priority-list {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 38px;
  align-items: stretch;
  gap: 9px;
  min-height: 106px;
}
.dashboard-overdue-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 13px 14px;
  border-radius: 13px;
  background: rgba(255, 255, 255, .76);
}
.dashboard-overdue-arrow {
  align-self: center;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(154, 87, 28, .18);
  border-radius: 50%;
  background: rgba(255, 255, 255, .8);
  color: #884d19;
  font: 800 17px/1 var(--font);
  cursor: pointer;
}
.dashboard-overdue-arrow:hover,
.dashboard-overdue-arrow:focus-visible {
  border-color: rgba(154, 87, 28, .42);
  outline: 3px solid rgba(207, 122, 42, .12);
}
.dashboard-overdue-arrow:disabled { opacity: .32; cursor: default; }
.dashboard-overdue-position {
  grid-column: 1 / -1;
  margin: -3px 0 0;
  color: #9a571c;
  font-size: 10px;
  font-weight: 780;
  text-align: center;
}
.dashboard-overdue-item > div:first-child {
  display: grid;
  gap: 3px;
}
.dashboard-overdue-item span,
.dashboard-overdue-item small {
  color: var(--tx-3);
  font-size: 11px;
}
.dashboard-overdue-item strong {
  color: var(--tx);
  font-size: 14px;
}
.dashboard-overdue-item-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.dashboard-overdue-item-actions .primary-btn {
  min-height: 36px;
  padding: 8px 14px;
  box-shadow: none;
}
.dashboard-overdue-item-actions .is-danger {
  color: #9a4a37;
}

@media (max-width: 700px) {
  .patient-progressive-next-action,
  .dashboard-overdue-item {
    align-items: stretch;
    flex-direction: column;
  }
  .patient-progressive-next-action { padding: 20px; }
  .patient-progressive-next-action > b { align-self: flex-start; }
  .patient-progressive-evidence { grid-template-columns: 1fr; }
  .patient-progressive-objectives li { grid-template-columns: 1fr; gap: 3px; }
  .patient-progressive-objectives header { align-items: stretch; flex-direction: column; }
  .dashboard-overdue-item-actions { flex-wrap: wrap; }
  .dashboard-overdue-priority-list {
    grid-template-columns: 32px minmax(0, 1fr) 32px;
    min-height: 166px;
  }
  .dashboard-overdue-arrow { width: 30px; height: 30px; font-size: 14px; }
}

.incomplete-work-pause-overlay {
  position: fixed;
  inset: 0;
  z-index: calc(var(--z-overlay) + 20);
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(20, 29, 52, .55);
  backdrop-filter: blur(8px);
}
.incomplete-work-pause-dialog {
  width: min(100%, 540px);
  max-height: min(760px, calc(100dvh - 40px));
  overflow: auto;
  padding: 26px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(20, 29, 52, .24);
}
.incomplete-work-pause-dialog > span {
  color: var(--primary);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.incomplete-work-pause-dialog h3 { margin: 7px 0 8px; color: var(--tx); font-size: 22px; }
.incomplete-work-pause-dialog > p { margin: 0 0 18px; color: var(--tx-3); line-height: 1.5; }
.incomplete-work-pause-dialog fieldset { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; }
.incomplete-work-pause-dialog legend { margin-bottom: 9px; color: var(--tx); font-size: 13px; font-weight: 780; }
.incomplete-work-pause-dialog fieldset label {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 9px 12px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 12px;
  background: rgba(var(--primary-rgb), .035);
  color: var(--tx);
  cursor: pointer;
}
.incomplete-work-pause-dialog fieldset label:has(input:checked) {
  border-color: rgba(var(--primary-rgb), .45);
  background: rgba(var(--primary-rgb), .09);
}
.incomplete-work-pause-detail { display: grid; gap: 6px; margin-top: 12px; color: var(--tx); font-size: 12px; font-weight: 730; }
.incomplete-work-pause-detail textarea {
  width: 100%;
  padding: 11px 12px;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 12px;
  color: var(--tx);
  font: 500 13px/1.45 var(--font);
  resize: vertical;
}
.incomplete-work-pause-error { margin: 10px 0 0 !important; color: #a24432 !important; font-size: 12px; font-weight: 760; }
.incomplete-work-pause-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }
@media (max-width: 600px) {
  .incomplete-work-pause-overlay { align-items: end; padding: 0; }
  .incomplete-work-pause-dialog { max-height: 88dvh; padding: 22px 18px calc(20px + env(safe-area-inset-bottom)); border-radius: 24px 24px 0 0; }
  .incomplete-work-pause-actions { position: sticky; bottom: 0; align-items: stretch; padding-top: 12px; background: #fff; }
  .incomplete-work-pause-actions button { flex: 1 1 0; padding-inline: 10px; }
}

/* Continuité clinique : le contexte du patient reste consultable sans quitter le travail en cours. */
.initial-assessment-page-actions {
  display: flex;
  flex: 0 0 auto !important;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
.clinical-context-trigger {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 11px;
  background: rgba(var(--primary-rgb), .065);
  color: var(--primary-dk);
  font: 780 11px/1 var(--font);
  white-space: nowrap;
  cursor: pointer;
}
.clinical-context-trigger:hover,
.clinical-context-trigger:focus-visible,
.clinical-context-trigger[aria-expanded="true"] {
  border-color: rgba(var(--primary-rgb), .34);
  outline: 3px solid rgba(var(--primary-rgb), .09);
  outline-offset: 1px;
  background: rgba(var(--primary-rgb), .11);
}
.clinical-context-backdrop {
  position: fixed;
  z-index: calc(var(--z-overlay) + 4);
  inset: 0;
  border: 0;
  background: rgba(28,32,54,.24);
  backdrop-filter: blur(3px);
  cursor: default;
}
.clinical-context-drawer {
  position: fixed;
  z-index: calc(var(--z-overlay) + 5);
  top: 0;
  right: 0;
  display: grid;
  width: min(430px, 100%);
  height: 100dvh;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border-left: 1px solid rgba(var(--primary-rgb), .12);
  background:
    radial-gradient(circle at 100% 0, rgba(242,139,60,.08), transparent 28%),
    linear-gradient(180deg, #fff 0%, #fbfaf8 100%);
  box-shadow: -24px 0 60px rgba(28,32,54,.16);
}
.clinical-context-drawer > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 20px 22px 17px;
  border-bottom: 1px solid rgba(17,24,39,.08);
}
.clinical-context-drawer > header > div {
  display: grid;
  gap: 3px;
}
.clinical-context-drawer > header span {
  color: var(--primary);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.clinical-context-drawer > header h3 {
  margin: 0;
  color: var(--tx);
  font-size: 21px;
  letter-spacing: -.025em;
}
.clinical-context-drawer > header button {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 50%;
  background: rgba(255,255,255,.82);
  color: var(--tx-3);
  font: 500 20px/1 var(--font);
  cursor: pointer;
}
.clinical-context-drawer > header button:hover,
.clinical-context-drawer > header button:focus-visible {
  border-color: rgba(var(--primary-rgb), .3);
  outline: 3px solid rgba(var(--primary-rgb), .09);
  color: var(--primary-dk);
}
.clinical-context-content {
  min-height: 0;
  overflow-y: auto;
  padding: 0 22px 26px;
}
.clinical-context-patient {
  display: grid;
  gap: 3px;
  padding: 22px 0 18px;
  border-bottom: 1px solid rgba(17,24,39,.075);
}
.clinical-context-patient > span,
.clinical-context-section > h4 {
  color: var(--tx-4);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.clinical-context-patient > strong {
  color: var(--tx);
  font-size: 19px;
  letter-spacing: -.02em;
}
.clinical-context-patient > p {
  color: var(--primary-dk);
  font-size: 12px;
  font-weight: 720;
}
.clinical-context-section {
  display: grid;
  gap: 12px;
  padding: 19px 0;
  border-bottom: 1px solid rgba(17,24,39,.075);
}
.clinical-context-section > h4 {
  margin: 0;
}
.clinical-context-section dl,
.clinical-context-timeline {
  display: grid;
  gap: 12px;
  margin: 0;
}
.clinical-context-section dl > div {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
}
.clinical-context-section dt {
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 700;
}
.clinical-context-section dd {
  margin: 0;
  color: var(--tx-2);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.45;
}
.clinical-context-vigilance {
  margin: 15px 0 0;
  padding: 14px 15px;
  border: 0;
  border-radius: 14px;
  background: rgba(22,142,128,.065);
}
.clinical-context-vigilance.is-attention {
  background: rgba(242,139,60,.1);
}
.clinical-context-vigilance > strong {
  color: var(--tx-2);
  font-size: 12px;
}
.clinical-context-vigilance > p {
  color: var(--tx-3);
  font-size: 11px;
  line-height: 1.5;
}
.clinical-context-timeline-row {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  gap: 3px 12px;
}
.clinical-context-timeline-row > span {
  grid-row: 1 / span 2;
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 700;
}
.clinical-context-timeline-row > strong {
  color: var(--tx-2);
  font-size: 12px;
  line-height: 1.4;
}
.clinical-context-timeline-row > small {
  color: var(--tx-4);
  font-size: 9px;
}
.clinical-context-timeline-row.is-empty > strong {
  color: var(--tx-4);
  font-weight: 620;
}
.clinical-context-boundary {
  padding: 16px 0 0;
  color: var(--tx-4);
  font-size: 9px;
  line-height: 1.5;
}
.session-preparation-page-navigation {
  justify-content: space-between;
  gap: 12px;
}
.session-completed-page-actions {
  display: flex;
  align-items: center;
  gap: 9px;
}

@media (max-width: 700px) {
  .initial-assessment-page-actions { gap: 5px; }
  .initial-assessment-page-actions .clinical-context-trigger {
    min-height: 34px;
    padding: 0 8px;
    font-size: 9px;
  }
  .clinical-context-drawer {
    top: auto;
    bottom: 0;
    width: 100%;
    height: min(86dvh, 760px);
    border-top: 1px solid rgba(var(--primary-rgb), .12);
    border-left: 0;
    border-radius: 24px 24px 0 0;
    box-shadow: 0 -24px 60px rgba(28,32,54,.18);
  }
  .clinical-context-drawer > header { padding: 17px 18px 14px; }
  .clinical-context-content { padding: 0 18px max(24px, env(safe-area-inset-bottom)); }
  .session-completed-page-navigation { gap: 8px; }
  .session-completed-page-actions { justify-content: space-between; }
}
/* Menu d’actions contextuelles du bilan initial. */
.initial-assessment-overview-controls {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
}
.initial-assessment-action-menu {
  position: relative;
  flex: 0 0 auto;
}
.initial-assessment-action-trigger {
  display: inline-grid;
  width: 36px;
  height: 36px;
  place-items: center;
  padding: 0 0 5px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 11px;
  background: rgba(255,255,255,.72);
  color: var(--tx-3);
  font: 850 13px/1 var(--font);
  letter-spacing: .06em;
  cursor: pointer;
}
.initial-assessment-action-trigger:hover,
.initial-assessment-action-trigger:focus-visible,
.initial-assessment-action-trigger[aria-expanded="true"] {
  border-color: rgba(var(--primary-rgb), .32);
  outline: 3px solid rgba(var(--primary-rgb), .08);
  outline-offset: 1px;
  background: rgba(var(--primary-rgb), .08);
  color: var(--primary-dk);
}
.initial-assessment-action-panel {
  position: absolute;
  z-index: 80;
  top: calc(100% + 7px);
  right: 0;
  display: grid;
  width: 232px;
  gap: 3px;
  padding: 6px;
  border: 1px solid rgba(var(--primary-rgb), .15);
  border-radius: 13px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 16px 34px rgba(35,40,78,.16);
}
.initial-assessment-action-panel.hidden { display: none; }
.initial-assessment-action-panel > button {
  display: flex;
  width: 100%;
  min-height: 40px;
  align-items: center;
  gap: 9px;
  padding: 0 10px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--tx-2);
  font: 750 11px/1.25 var(--font);
  text-align: left;
  cursor: pointer;
}
.initial-assessment-action-panel > button:hover,
.initial-assessment-action-panel > button:focus-visible {
  outline: 0;
  background: rgba(var(--primary-rgb), .08);
}
.initial-assessment-action-panel > button > span {
  display: grid;
  width: 21px;
  height: 21px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 7px;
  background: rgba(var(--primary-rgb), .08);
  color: var(--primary-dk);
  font-size: 12px;
}
.initial-assessment-action-panel > button.is-danger { color: #97465a; }
.initial-assessment-action-panel > button.is-danger:hover,
.initial-assessment-action-panel > button.is-danger:focus-visible { background: rgba(151,70,90,.07); }
.initial-assessment-action-panel > button.is-danger > span {
  background: rgba(151,70,90,.08);
  color: #97465a;
}

@media (max-width: 700px) {
  .initial-assessment-overview-controls {
    width: 100%;
    justify-content: space-between;
  }
  .initial-assessment-page-actions .initial-assessment-action-trigger {
    width: 34px;
    height: 34px;
  }
  .initial-assessment-action-panel {
    position: fixed;
    z-index: 1600;
    top: auto;
    right: 14px;
    bottom: calc(18px + env(safe-area-inset-bottom));
    left: 14px;
    width: auto;
    padding: 8px;
    border-radius: 18px;
  }
  .initial-assessment-action-panel > button {
    min-height: 46px;
    font-size: 13px;
  }
}

/* Progression visible du bilan initial. */
.initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid > .assessment-step-nav { display: grid; }
.initial-assessment-workspace.assessment-guided-draft .assessment-step-nav button { justify-content: flex-start; min-height: 48px; padding: 8px 9px; line-height: 1.25; text-align: left; }
.initial-assessment-workspace.assessment-guided-draft .assessment-step-nav button.active { background: rgba(255,255,255,.94); box-shadow: inset 0 -2px 0 var(--primary), 0 5px 14px rgba(45,49,92,.05); }
.initial-assessment-workspace.assessment-guided-draft .assessment-guided-progress { border-radius: 0 0 17px 17px; }
.initial-assessment-workspace.assessment-guided-draft .assessment-guided-heading strong { display: none; }
@media (max-width: 700px) {
  .initial-assessment-workspace.assessment-guided-draft .assessment-step-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; }
  .initial-assessment-workspace.assessment-guided-draft .assessment-step-nav button { min-height: 42px; padding: 7px; font-size: 9px; }
  .initial-assessment-workspace.assessment-guided-draft .assessment-step-nav button span { width: 18px; height: 18px; flex: 0 0 auto; }
}


/* Dossier patient : aucun contenu ne doit sortir du panneau étroit de Codex. */
#patientDetailModal.patient-detail-page > .detail-modal-content,
#patientDetailModal.patient-detail-page .detail-panel,
.initial-assessment-workspace,
.initial-assessment-workspace .knee-assessment-form,
.initial-assessment-workspace .assessment-progress-hybrid,
.initial-assessment-workspace .assessment-step-nav,
.initial-assessment-workspace .assessment-section,
.follow-up-assessment-workspace,
.follow-up-assessment-workspace .follow-up-assessment-form {
  min-width: 0;
  max-width: 100%;
}

.assessment-step-nav > button {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.assessment-step-nav > button > span { flex: 0 0 auto; }
.initial-assessment-page-header > *,
.initial-assessment-page-actions,
.assessment-guided-heading > * { min-width: 0; }
.initial-assessment-page-actions { max-width: 100%; flex-wrap: wrap; }
.assessment-guided-heading em { max-width: 100%; white-space: normal; text-align: right; }

/* Entre 901 et 1100 px, le dossier partage encore la largeur avec la barre latérale. */
@media (min-width: 701px) and (max-width: 1100px) {
  .initial-assessment-workspace > .initial-assessment-page-header {
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .initial-assessment-workspace > .initial-assessment-page-header .initial-assessment-page-identity {
    flex: 1 1 210px;
  }
  .initial-assessment-workspace > .initial-assessment-page-header .initial-assessment-page-actions {
    flex: 1 1 340px !important;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-step-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .assessment-phase-plan-main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .assessment-phase-pain-rule {
    grid-template-columns: minmax(0, 1fr);
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-step-actions,
  .follow-up-assessment-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-step-actions > button {
    width: 100%;
    min-width: 0;
    margin-left: 0 !important;
    white-space: normal;
  }
  .follow-up-assessment-actions .assessment-save-message,
  .follow-up-assessment-actions #followUpAssessmentStepStatus {
    grid-column: 1 / -1;
  }
}

@media (max-width: 700px) {
  .initial-assessment-workspace.assessment-guided-draft .assessment-step-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-step-actions > button {
    width: 100%;
    min-width: 0;
    margin-left: 0 !important;
    white-space: normal;
  }
}


/* Répertoire des professionnels du parcours de soins. */
.assessment-care-network,
.assessment-medical-appointments {
  display: grid;
  min-width: 0;
  gap: 12px;
  padding: 15px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(var(--primary-rgb), .045), rgba(255,255,255,.78));
}
.assessment-care-network > header,
.assessment-medical-appointments > header {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.assessment-care-network > header > div,
.assessment-medical-appointments > header > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}
.assessment-care-network > header strong,
.assessment-medical-appointments > header strong {
  color: var(--tx);
  font-size: 13px;
  font-weight: 780;
}
.assessment-care-network > header small,
.assessment-medical-appointments > header small {
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 600;
  line-height: 1.4;
}
.assessment-care-network-add {
  min-height: 36px;
  flex: 0 0 auto;
  gap: 6px;
  padding: 7px 11px;
  border-color: rgba(var(--primary-rgb), .2);
  color: var(--primary-dk);
}
.assessment-care-network-add > span {
  font-size: 17px;
  font-weight: 650;
  line-height: .8;
}
.assessment-care-network-list {
  display: grid;
  min-width: 0;
  gap: 9px;
}
.assessment-medical-appointments-list {
  display: grid;
  min-width: 0;
  gap: 9px;
}
.assessment-medical-appointment-row {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(132px,.72fr) minmax(150px,.9fr) minmax(170px,1fr) minmax(230px,1.35fr) 34px;
  align-items: end;
  gap: 9px;
  padding: 11px;
  border: 1px solid rgba(var(--primary-rgb), .11);
  border-radius: 13px;
  background: rgba(255,255,255,.84);
}
.assessment-medical-appointment-row > label {
  min-width: 0;
  gap: 5px;
  margin: 0;
}
.assessment-medical-appointment-row label > span {
  min-height: 13px;
  color: var(--tx-4);
  font-size: 9px;
  font-weight: 750;
}
.assessment-medical-appointment-row input,
.assessment-medical-appointment-row select {
  min-width: 0;
  min-height: 39px;
  padding: 8px 9px;
  border-radius: 10px;
  font-size: 11px;
}
.assessment-medical-appointments-none {
  display: grid !important;
  grid-template-columns: 20px auto;
  width: fit-content;
  align-items: center;
  gap: 10px !important;
  margin: 0 !important;
  padding: 10px 14px;
  border: 1px solid var(--ix-border);
  border-radius: 12px;
  background: var(--ix-surface);
  color: var(--tx-2);
  font-size: 13px;
  font-weight: 680;
  cursor: pointer;
}
.assessment-medical-appointments-none:has(input:checked) { background: var(--ix-selected); border-color: var(--primary); color: var(--primary-dk); }
.assessment-medical-appointments-none:focus-within { outline: 2px solid var(--primary); outline-offset: 3px; }
.assessment-medical-appointments-none input { width: 20px; height: 20px; margin: 0; accent-color: var(--primary); }
.assessment-medical-appointments > header { align-items: center; }
.assessment-medical-appointments > header > div { flex: 1; min-width: 0; }
.assessment-medical-appointments > header strong { font-size: 14px; }
.assessment-medical-appointments .assessment-care-network-add { flex: 0 0 auto; min-height: 44px; }
.assessment-appointments-empty { margin: 0; color: var(--tx-3); font-size: 12px; }
.assessment-care-professional-row {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(140px,1fr) minmax(150px,1fr) minmax(250px,1.25fr) minmax(180px,1.15fr) 34px;
  align-items: end;
  gap: 9px;
  padding: 11px;
  border: 1px solid rgba(var(--primary-rgb), .11);
  border-radius: 13px;
  background: rgba(255,255,255,.84);
}
.assessment-care-professional-row > label,
.assessment-care-professional-identifier label {
  min-width: 0;
  gap: 5px;
  margin: 0;
}
.assessment-care-professional-row label > span {
  min-height: 13px;
  color: var(--tx-4);
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .01em;
}
.assessment-care-professional-row input,
.assessment-care-professional-row select {
  min-width: 0;
  min-height: 39px;
  padding: 8px 9px;
  border-radius: 10px;
  font-size: 11px;
}
.assessment-care-professional-row input:disabled {
  background: rgba(237,239,246,.7);
  color: var(--tx-4);
  cursor: not-allowed;
}
.assessment-care-professional-identifier {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(104px,.8fr) minmax(110px,1.2fr);
  gap: 7px;
}
.assessment-care-professional-remove {
  display: grid;
  width: 34px;
  height: 39px;
  place-items: center;
  padding: 0 0 2px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--tx-4);
  font: 500 19px/1 var(--font);
  cursor: pointer;
}
.assessment-care-professional-remove:hover,
.assessment-care-professional-remove:focus-visible {
  outline: 0;
  background: rgba(151,70,90,.08);
  color: #97465a;
}
.assessment-care-network-empty {
  margin: 0;
  padding: 10px 12px;
  border: 1px dashed rgba(var(--primary-rgb), .16);
  border-radius: 12px;
  color: var(--tx-4);
  font-size: 10px;
  text-align: center;
}
.assessment-care-network-legacy {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  padding: 9px 11px;
  border-radius: 11px;
  background: rgba(240,166,69,.09);
  color: var(--tx-3);
  font-size: 10px;
  line-height: 1.45;
}
.assessment-care-network-legacy strong { flex: 0 0 auto; color: #8d5d23; }
.assessment-care-network-legacy span { min-width: 0; overflow-wrap: anywhere; }
.assessment-care-network-boundary {
  margin: 0;
  color: var(--tx-4);
  font-size: 9px;
  line-height: 1.45;
}

@media (max-width: 1180px) {
  .assessment-care-professional-row {
    grid-template-columns: repeat(2, minmax(0,1fr)) 34px;
  }
  .assessment-care-professional-identifier { grid-column: 1 / 3; }
  .assessment-care-professional-row > label:last-of-type { grid-column: 1 / 3; }
  .assessment-care-professional-remove {
    grid-column: 3;
    grid-row: 1;
  }
  .assessment-medical-appointment-row {
    grid-template-columns: repeat(2, minmax(0,1fr)) 34px;
  }
  .assessment-medical-appointment-row > label:nth-of-type(3),
  .assessment-medical-appointment-row > label:nth-of-type(4) { grid-column: span 1; }
  .assessment-medical-appointment-row .assessment-care-professional-remove {
    grid-column: 3;
    grid-row: 1;
  }
}

@media (max-width: 700px) {
  .assessment-care-network,
  .assessment-medical-appointments { padding: 13px; }
  .assessment-care-network > header,
  .assessment-medical-appointments > header { align-items: flex-start; }
  .assessment-care-network > header small,
  .assessment-medical-appointments > header small { max-width: 210px; }
  .assessment-care-network-add { padding-inline: 9px; }
  .assessment-care-professional-row {
    position: relative;
    grid-template-columns: minmax(0,1fr);
    padding: 12px 44px 12px 12px;
  }
  .assessment-care-professional-identifier,
  .assessment-care-professional-row > label:last-of-type {
    grid-column: 1;
  }
  .assessment-care-professional-identifier { grid-template-columns: minmax(96px,.85fr) minmax(0,1.15fr); }
  .assessment-care-professional-remove {
    position: absolute;
    top: 12px;
    right: 8px;
  }
  .assessment-medical-appointment-row {
    position: relative;
    grid-template-columns: minmax(0,1fr);
    padding: 12px 44px 12px 12px;
  }
  .assessment-medical-appointment-row > label:nth-of-type(3),
  .assessment-medical-appointment-row > label:nth-of-type(4) { grid-column: 1; }
  .assessment-medical-appointment-row .assessment-care-professional-remove {
    position: absolute;
    top: 12px;
    right: 8px;
  }
  .assessment-care-network-legacy { flex-direction: column; gap: 3px; }
}


/* 2026-09-09 — objectifs discrets, synthèse du bilan et réévaluation structurée */
.assessment-reassessment-plan {
  display: grid;
  grid-template-columns: minmax(150px, .34fr) minmax(0, 1fr);
  align-items: start;
  gap: 12px;
}
.assessment-reassessment-plan label { min-width: 0; }
.field-optional,
.trajectory-goal-add-form label > span,
.trajectory-goal-inline-editor label > span {
  color: var(--tx-4);
  font-size: 8px;
  font-weight: 650;
  text-transform: none;
}
.initial-assessment-summary-card dd:has(.initial-assessment-summary-phases),
.initial-assessment-summary-card dd:has(.initial-assessment-summary-reassessment) {
  display: block;
  overflow: visible;
  white-space: normal;
  -webkit-line-clamp: unset;
}
.initial-assessment-summary-phases {
  display: grid;
  gap: 5px;
  margin: 1px 0 0;
  padding: 0;
  list-style: none;
}
.initial-assessment-summary-phases li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 8px;
  padding-left: 10px;
  border-left: 2px solid rgba(22, 139, 114, .2);
}
.initial-assessment-summary-phases li span { color: var(--tx-2); }
.initial-assessment-summary-phases li small {
  color: var(--tx-4);
  font-size: 8px;
  white-space: nowrap;
}
.initial-assessment-summary-reassessment { display: grid; gap: 5px; }
.initial-assessment-summary-reassessment time {
  width: fit-content;
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(22, 139, 114, .09);
  color: #137761;
  font-size: 9px;
  font-weight: 800;
}
.initial-assessment-summary-reassessment p { margin: 0; color: var(--tx-2); }

.prototype-cockpit-header.without-current-score {
  grid-template-columns: minmax(0, 1fr) auto;
}
.trajectory-goal-control {
  position: relative;
  z-index: 15;
  justify-self: end;
}
.trajectory-goal-control > summary {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 6px;
  padding: 6px 11px 6px 8px;
  border: 1px solid rgba(var(--primary-rgb), .2);
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .08);
  color: var(--primary-dk);
  cursor: pointer;
  font-size: 10px;
  font-weight: 820;
  list-style: none;
}
.trajectory-goal-control > summary::-webkit-details-marker { display: none; }
.trajectory-goal-control > summary > span {
  display: grid;
  width: 21px;
  height: 21px;
  place-items: center;
  border-radius: 50%;
  background: var(--primary);
  color: white;
  font-size: 15px;
  line-height: 1;
}
.trajectory-goal-control > summary > small {
  display: grid;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  place-items: center;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .12);
  color: var(--primary-dk);
  font-size: 8px;
}
.trajectory-goal-control[open] > summary {
  border-color: var(--primary);
  background: var(--primary);
  color: white;
}
.trajectory-goal-control[open] > summary > span {
  background: rgba(255, 255, 255, .2);
}
.trajectory-goal-control[open] > summary > small {
  background: rgba(255, 255, 255, .2);
  color: white;
}
.trajectory-goal-popover {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  display: grid;
  width: min(690px, calc(100vw - 72px));
  max-height: min(620px, 76vh);
  gap: 12px;
  padding: 16px;
  overflow: auto;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 18px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 20px 55px rgba(35, 40, 78, .18);
}
.trajectory-goal-popover > header { display: grid; gap: 2px; }
.trajectory-goal-popover > header strong { color: var(--tx); font-size: 14px; }
.trajectory-goal-popover > header small { color: var(--tx-4); font-size: 9px; }
.trajectory-goal-add-form {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(105px, .55fr) minmax(135px, .65fr) auto;
  align-items: end;
  gap: 8px;
  padding: 11px;
  border-radius: 13px;
  background: rgba(var(--primary-rgb), .045);
}
.trajectory-goal-add-form label,
.trajectory-goal-inline-editor label,
.trajectory-goal-outcome-form label {
  display: grid;
  min-width: 0;
  gap: 4px;
  color: var(--tx-3);
  font-size: 9px;
  font-weight: 760;
}
.trajectory-goal-add-form input,
.trajectory-goal-add-form select,
.trajectory-goal-add-form textarea,
.trajectory-goal-inline-editor input,
.trajectory-goal-inline-editor select,
.trajectory-goal-inline-editor textarea,
.trajectory-goal-outcome-form input,
.trajectory-goal-outcome-form select,
.trajectory-goal-outcome-form textarea {
  width: 100%;
  min-height: 35px;
  padding: 7px 8px;
  border: 1px solid rgba(17, 24, 39, .1);
  border-radius: 9px;
  background: white;
  color: var(--tx);
  font: inherit;
  font-size: 10px;
}
.trajectory-goal-conditions { grid-column:1/-1; }
.trajectory-goal-conditions textarea { resize:vertical; min-height:76px; line-height:1.5; font-size:14px; }
@media(max-width:900px) { .trajectory-goal-conditions textarea { font-size:16px; } }
.trajectory-goal-add-form .trajectory-goal-visible,
.trajectory-goal-inline-editor .trajectory-goal-visible,
.trajectory-goal-outcome-form .trajectory-goal-outcome-review {
  display: flex;
  grid-column: 1 / -1;
  align-items: center;
  gap: 7px;
}
.trajectory-goal-add-form .trajectory-goal-visible input,
.trajectory-goal-inline-editor .trajectory-goal-visible input,
.trajectory-goal-outcome-form .trajectory-goal-outcome-review input {
  width: auto;
  min-height: auto;
}
.trajectory-goal-add-form [role="status"] {
  grid-column: 1 / -1;
  margin: 0;
  color: #9a513e;
  font-size: 9px;
}
.trajectory-goal-list { display: grid; gap: 6px; }
.trajectory-goal-item {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 9px;
  padding: 9px 10px;
  border-top: 1px solid rgba(var(--primary-rgb), .09);
}
.trajectory-goal-main { display: grid; min-width: 0; gap: 2px; }
.trajectory-goal-main strong {
  overflow: hidden;
  color: var(--tx);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.trajectory-goal-main small { color: var(--tx-4); font-size: 9px; }
.trajectory-goal-item > em {
  color: var(--primary-dk);
  font-size: 8px;
  font-style: normal;
  font-weight: 800;
}
.trajectory-goal-actions { position: relative; }
.trajectory-goal-actions > summary {
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border-radius: 8px;
  color: var(--tx-4);
  cursor: pointer;
  font-size: 11px;
  font-weight: 900;
  list-style: none;
}
.trajectory-goal-actions > summary::-webkit-details-marker { display: none; }
.trajectory-goal-actions > div {
  position: absolute;
  z-index: 4;
  top: calc(100% + 4px);
  right: 0;
  display: grid;
  min-width: 145px;
  padding: 5px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: white;
  box-shadow: 0 12px 28px rgba(35, 40, 78, .14);
}
.trajectory-goal-actions button {
  padding: 8px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--tx-2);
  text-align: left;
  font: 700 9px/1 var(--font);
  cursor: pointer;
}
.trajectory-goal-actions button:hover { background: var(--surface-2); }
.trajectory-goal-actions button.is-danger { color: #a34b44; }
.trajectory-goal-inline-editor,
.trajectory-goal-outcome-form {
  display: grid;
  grid-column: 1 / -1;
  gap: 8px;
  padding: 10px;
  border-radius: 12px;
  background: var(--surface-2);
}
.trajectory-goal-inline-editor { grid-template-columns: minmax(160px, 1fr) 105px 75px 130px 110px; }
.trajectory-goal-inline-editor.hidden,
.trajectory-goal-outcome-form.hidden { display: none; }
.trajectory-goal-inline-editor footer,
.trajectory-goal-outcome-form footer {
  display: flex;
  grid-column: 1 / -1;
  justify-content: flex-end;
  gap: 7px;
}
.trajectory-goal-inline-editor footer button {
  padding: 7px 9px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--primary-dk);
  font: 750 9px/1 var(--font);
  cursor: pointer;
}
.trajectory-goal-outcome-form > header,
.trajectory-goal-outcome-form > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.trajectory-goal-outcome-form > div > label { flex: 1; }
.trajectory-goal-outcome-form > header button {
  display: grid;
  width: 25px;
  height: 25px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--tx-4);
  cursor: pointer;
}
.trajectory-goal-outcome-form > small,
.trajectory-goal-outcome-summary { color: var(--tx-4); font-size: 8px; }
.trajectory-goal-outcome-summary {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 8px;
  margin: 0;
}
.trajectory-goal-outcome-summary small { grid-column: 1 / -1; }
.trajectory-goal-empty { margin: 0; color: var(--tx-4); font-size: 10px; }

.trajectory-cockpit-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
}
.trajectory-plan-control {
  position: relative;
  z-index: 16;
}
.trajectory-plan-control > summary {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 6px;
  padding: 6px 11px 6px 8px;
  border: 1px solid rgba(34,181,154,.22);
  border-radius: 999px;
  background: rgba(34,181,154,.08);
  color: #137761;
  cursor: pointer;
  font-size: 10px;
  font-weight: 820;
  list-style: none;
  white-space: nowrap;
}
.trajectory-plan-control > summary::-webkit-details-marker { display: none; }
.trajectory-plan-control > summary > span {
  display: grid;
  width: 21px;
  height: 21px;
  place-items: center;
  border-radius: 50%;
  background: #20a88e;
  color: white;
  font-size: 14px;
}
.trajectory-plan-control > summary > small {
  display: grid;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  place-items: center;
  border-radius: 999px;
  background: rgba(34,181,154,.12);
  font-size: 8px;
}
.trajectory-plan-control[open] > summary { color: white; background: #168b72; }
.trajectory-plan-control[open] > summary > span,
.trajectory-plan-control[open] > summary > small { color: white; background: rgba(255,255,255,.18); }
.trajectory-plan-popover {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  display: grid;
  width: min(610px, calc(100vw - 72px));
  max-height: min(620px, 76vh);
  gap: 12px;
  padding: 16px;
  overflow: auto;
  border: 1px solid rgba(34,181,154,.15);
  border-radius: 18px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 20px 55px rgba(35,40,78,.18);
}
.trajectory-plan-popover > header { display: grid; gap: 2px; }
.trajectory-plan-popover > header strong { color: var(--tx); font-size: 14px; }
.trajectory-plan-popover > header small { color: var(--tx-4); font-size: 9px; line-height: 1.4; }
.trajectory-plan-popover form,
.trajectory-milestone-inline-editor {
  display: grid;
  gap: 9px;
  padding: 11px;
  border-radius: 13px;
  background: rgba(34,181,154,.045);
}
.trajectory-plan-popover form > div,
.trajectory-milestone-inline-editor > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(100px, .4fr); gap: 8px; }
.trajectory-plan-popover label,
.trajectory-milestone-inline-editor label { display: grid; gap: 4px; color: var(--tx-3); font-size: 9px; font-weight: 750; }
.trajectory-plan-popover input,
.trajectory-milestone-inline-editor input { width: 100%; min-height: 36px; padding: 7px 9px; border: 1px solid rgba(var(--primary-rgb), .14); border-radius: 9px; background: #fff; color: var(--tx); }
.trajectory-plan-popover form > footer,
.trajectory-milestone-inline-editor > footer { display: flex; align-items: center; gap: 8px; }
.trajectory-plan-popover form > footer p,
.trajectory-milestone-inline-editor > footer p { margin: 0; color: #a33f3b; font-size: 9px; }
.trajectory-plan-popover ul { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.trajectory-plan-popover li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: 10px; background: rgba(var(--primary-rgb), .035); }
.trajectory-plan-popover li > span { display: grid; min-width: 0; gap: 2px; }
.trajectory-plan-popover li strong { color: var(--tx); font-size: 10px; }
.trajectory-plan-popover li small { color: var(--tx-4); font-size: 8px; }
.trajectory-plan-popover li em { color: #137761; font-size: 8px; font-style: normal; font-weight: 760; }
.trajectory-plan-popover li.is-locked { opacity: .66; }
.trajectory-plan-popover li.is-locked em { color: var(--tx-4); }
.trajectory-plan-empty,
.trajectory-context-locked-note { margin: 0; color: var(--tx-4); font-size: 10px; line-height: 1.45; }
.trajectory-context-locked-note { padding: 10px 12px; border-radius: 11px; background: rgba(72,78,110,.05); }
.trajectory-milestone-inline-editor[hidden] { display: none; }

.contextual-report-options { grid-template-columns: minmax(0, 360px); }

@media (max-width: 700px) {
  .assessment-reassessment-plan { grid-template-columns: 1fr; }
  .initial-assessment-summary-phases li { grid-template-columns: 1fr; gap: 1px; }
  .trajectory-goal-popover {
    position: fixed;
    inset: auto 10px 10px;
    width: auto;
    max-height: 78vh;
    border-radius: 18px;
  }
  .trajectory-goal-add-form,
  .trajectory-goal-inline-editor { grid-template-columns: 1fr; }
  .trajectory-goal-add-form > *,
  .trajectory-goal-inline-editor > * { grid-column: 1; }
  .trajectory-goal-outcome-form > div { align-items: stretch; flex-direction: column; }
  .trajectory-cockpit-actions { grid-column: 1 / -1; justify-content: flex-start; overflow-x: auto; }
  .trajectory-plan-popover { position: fixed; inset: auto 10px 10px; width: auto; max-height: 78vh; }
  .trajectory-plan-popover form > div,
  .trajectory-milestone-inline-editor > div { grid-template-columns: 1fr; }
}

/* 2026-09-09 — bibliothèque personnelle du kinésithérapeute */
.gym-personal-library {
  display: grid;
  gap: 10px;
  padding: 2px 0 14px;
  border-bottom: 1px solid rgba(var(--primary-rgb), .1);
}
.gym-personal-library > header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s3);
}
.gym-personal-library > header > div { display: grid; gap: 2px; }
.gym-personal-library > header span { color: var(--tx-4); font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.gym-personal-library > header strong { color: var(--tx); font-size: 15px; }
.gym-collection-composer { position: relative; }
.gym-collection-composer > summary {
  min-height: 36px;
  padding: 8px 12px;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: var(--r-full);
  background: rgba(var(--primary-rgb), .07);
  color: var(--primary-dk);
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
  list-style: none;
}
.gym-collection-composer > summary::-webkit-details-marker { display: none; }
.gym-collection-composer[open] > summary { background: var(--primary); color: #fff; }
.gym-collection-composer form {
  position: absolute;
  z-index: 30;
  top: calc(100% + 8px);
  right: 0;
  display: grid;
  width: min(320px, calc(100vw - 40px));
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: var(--r-xl);
  background: #fff;
  box-shadow: 0 18px 46px rgba(31,36,68,.16);
}
.gym-collection-composer form label { display: grid; gap: 5px; color: var(--tx-3); font-size: 10px; font-weight: 750; }
.gym-collection-composer form input { width: 100%; min-height: 40px; }
.gym-collection-composer form .primary-btn { min-height: 38px; }
.gym-collection-composer form p { min-height: 0; margin: 0; color: var(--warning); font-size: 10px; }
.gym-collection-filters {
  display: flex;
  gap: 7px;
  padding: 1px 0 2px;
  overflow-x: auto;
  scrollbar-width: thin;
}
.gym-collection-filters button {
  display: inline-flex;
  min-height: 34px;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: var(--r-full);
  background: rgba(255,255,255,.72);
  color: var(--tx-3);
  font: inherit;
  font-size: 10px;
  font-weight: 750;
  cursor: pointer;
}
.gym-collection-filters button small {
  display: grid;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  place-items: center;
  border-radius: var(--r-full);
  background: var(--surface-2);
  color: var(--tx-4);
  font-size: 8px;
}
.gym-collection-filters button[aria-pressed="true"] {
  border-color: rgba(var(--primary-rgb), .22);
  background: var(--primary);
  color: #fff;
  box-shadow: 0 8px 18px rgba(var(--primary-rgb), .16);
}
.gym-collection-filters button[aria-pressed="true"] small { background: rgba(255,255,255,.2); color: #fff; }
.gym-active-collection-actions {
  position: relative;
  display: flex;
  min-height: 24px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--tx-4);
  font-size: 10px;
}
.gym-active-collection-actions > span { text-transform: none; letter-spacing: normal; }
.gym-active-collection-actions details { position: relative; }
.gym-active-collection-actions summary {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  color: var(--tx-3);
  cursor: pointer;
  list-style: none;
}
.gym-active-collection-actions summary::-webkit-details-marker { display: none; }
.gym-active-collection-actions details > div {
  position: absolute;
  z-index: 25;
  top: calc(100% + 4px);
  right: 0;
  display: grid;
  min-width: 170px;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: var(--sh-lg);
}
.gym-active-collection-actions details button { padding: 9px 10px; border: 0; border-radius: 8px; background: transparent; color: var(--tx-2); font: inherit; font-size: 10px; text-align: left; cursor: pointer; }
.gym-active-collection-actions details button:hover { background: var(--surface-2); }
.gym-active-collection-actions details button.is-danger { color: var(--danger); }
.gym-toolbar { grid-template-columns: minmax(250px, 1.4fr) repeat(2, minmax(155px, .55fr)); }
.gym-exercise-card { }
.gym-exercise-preview { border-radius: var(--r-xl) var(--r-xl) 0 0; }
.gym-card-list-picker { position: relative; width: max-content; max-width: 100%; }
.gym-card-list-picker > summary {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  padding: 5px 9px;
  border-radius: var(--r-full);
  background: rgba(var(--primary-rgb), .065);
  color: var(--primary-dk);
  font-size: 9px;
  font-weight: 800;
  cursor: pointer;
  list-style: none;
}
.gym-card-list-picker > summary::-webkit-details-marker { display: none; }
.gym-card-list-picker[open] > summary { background: var(--primary); color: #fff; }
.gym-card-list-picker > div {
  position: absolute;
  z-index: 20;
  top: calc(100% + 6px);
  left: 0;
  display: grid;
  width: min(240px, calc(100vw - 52px));
  gap: 3px;
  padding: 7px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: var(--r-lg);
  background: #fff;
  box-shadow: 0 16px 38px rgba(31,36,68,.16);
}
.gym-card-list-picker label {
  display: flex;
  min-height: 34px;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border-radius: 8px;
  color: var(--tx-2);
  font-size: 10px;
  cursor: pointer;
}
.gym-card-list-picker label:hover { background: var(--surface-2); }
.gym-card-list-picker input { accent-color: var(--primary); }
.gym-card-list-empty { color: var(--tx-4); font-size: 9px; line-height: 1.4; text-transform: none; letter-spacing: normal; }

@media (max-width: 700px) {
  .gym-personal-library > header { align-items: flex-start; }
  .gym-collection-composer form {
    position: fixed;
    z-index: 200;
    inset: auto 12px 76px;
    width: auto;
  }
  .gym-card-list-picker > div {
    position: fixed;
    z-index: 190;
    inset: auto 12px 76px;
    width: auto;
    max-height: 50dvh;
    overflow-y: auto;
  }
}

/* 2026-09-09 — documents générés raccordés au dossier clinique */
.clinical-document-library {
  display: grid;
  gap: 10px;
  padding: 4px 0 18px;
  border-bottom: 1px solid rgba(var(--primary-rgb), .1);
}
.clinical-document-library > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--s3);
}
.clinical-document-library > header > div { display: grid; gap: 2px; }
.clinical-document-library > header h4 { margin: 0; font-size: 17px; }
.clinical-document-library > header > span { color: var(--tx-4); font-size: 10px; }
.clinical-document-list { display: grid; gap: 6px; }
.clinical-document-item {
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: var(--r-lg);
  background: rgba(255,255,255,.72);
}
.clinical-document-item > summary {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: var(--s3);
  padding: 10px 12px;
  cursor: pointer;
  list-style: none;
}
.clinical-document-item > summary::-webkit-details-marker { display: none; }
.clinical-document-item > summary > span:first-child { display: grid; min-width: 0; gap: 3px; }
.clinical-document-item > summary strong { overflow: hidden; color: var(--tx); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.clinical-document-item > summary small { overflow: hidden; color: var(--tx-4); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.clinical-document-meta { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; }
.clinical-document-meta time { color: var(--tx-3); font-size: 9px; }
.clinical-document-meta em {
  padding: 4px 7px;
  border-radius: var(--r-full);
  background: var(--clr-wa-50);
  color: var(--warning);
  font-size: 8px;
  font-style: normal;
  font-weight: 800;
}
.clinical-document-item[open] { background: #fff; box-shadow: 0 10px 28px rgba(31,36,68,.06); }
.clinical-document-content {
  max-height: 420px;
  padding: 14px 16px 18px;
  overflow-y: auto;
  border-top: 1px solid rgba(var(--primary-rgb), .08);
  color: var(--tx-2);
  font-size: 10px;
  line-height: 1.65;
}
.clinical-document-empty {
  margin: 0;
  padding: 13px 0;
  color: var(--tx-4);
  font-size: 10px;
}

@media (max-width: 700px) {
  .clinical-document-item > summary { align-items: flex-start; }
  .clinical-document-meta { align-items: flex-end; flex-direction: column; gap: 3px; }
}

/* Évolution — une seule carte, deux faces de même taille */
.prototype-progression-compact .rehabilitation-card-switcher {
  gap: 0;
  margin-top: 0;
  perspective: 1400px;
}

.trajectory-card-stage {
  position: relative;
  width: 100%;
  height: clamp(480px, 60vh, 570px);
  min-width: 0;
  transform-style: preserve-3d;
}

.trajectory-card-face {
  position: absolute;
  inset: 0;
  min-width: 0;
  padding: 2px;
  overflow-x: hidden;
  overflow-y: auto;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  scrollbar-gutter: stable;
  transform-style: preserve-3d;
  transition: transform .3s cubic-bezier(.2,.72,.28,1), opacity .18s ease;
}

.trajectory-card-front { transform: rotateY(0deg); }
.trajectory-card-back { opacity: 0; transform: rotateY(180deg); }
.rehabilitation-card-switcher[data-active-view="prerequisites"] .trajectory-card-front {
  opacity: 0;
  pointer-events: none;
  transform: rotateY(-180deg);
}
.rehabilitation-card-switcher[data-active-view="prerequisites"] .trajectory-card-back {
  opacity: 1;
  transform: rotateY(0deg);
}
.rehabilitation-card-switcher[data-active-view="trajectory"] .trajectory-card-back {
  pointer-events: none;
}

.trajectory-card-front .patient-evolution-trend-summary { margin-top: 6px; }
.trajectory-card-front .trajectory-graph-controls { margin: 5px 0 6px; }
.trajectory-card-front .prototype-progression-layout {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 0;
  margin-top: 0;
}
.trajectory-card-front .prototype-insight-panel.is-empty { display: none; }
.trajectory-card-front .prototype-insight-panel:not(.is-empty) {
  display: grid;
  grid-template-columns: minmax(140px, .7fr) minmax(0, 1.5fr);
  grid-template-rows: auto auto;
  min-height: 0;
  align-items: center;
  gap: 2px 14px;
  padding: 10px 14px;
  border-top: 1px solid rgba(var(--primary-rgb), .1);
  background: rgba(var(--primary-rgb), .025);
}
.trajectory-card-front .prototype-insight-panel:not(.is-empty) h5 {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
  font-size: 14px;
}
.trajectory-card-front .prototype-insight-panel:not(.is-empty) > strong {
  grid-column: 1;
  grid-row: 2;
  font-size: 10px;
}
.trajectory-card-front .prototype-insight-panel:not(.is-empty) > p {
  grid-column: 2;
  grid-row: 1 / span 2;
  margin: 0;
  font-size: 10px;
  line-height: 1.45;
}
.prototype-insight-summary {
  display: grid;
  min-width: 0;
  gap: 3px;
}
.trajectory-card-front .prototype-insight-panel:not(.is-empty) .prototype-insight-summary {
  grid-column: 1;
}
.trajectory-card-front .prototype-insight-panel:not(.is-empty) .prototype-insight-summary:only-child {
  grid-column: 1 / -1;
  grid-template-columns: minmax(150px,.7fr) minmax(0,1.5fr);
  align-items: center;
  gap: 3px 14px;
}
.prototype-insight-summary h5 { margin: 0; color: var(--tx); font-size: 14px; line-height: 1.3; }
.prototype-insight-summary strong { color: var(--primary-dk); font-size: 10px; line-height: 1.4; }
.prototype-insight-summary p { margin: 0; color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.trajectory-card-front .prototype-insight-panel:not(.is-empty) .prototype-insight-summary:only-child p { grid-column: 2; grid-row: 1 / span 2; }
.prototype-insight-actions {
  display: flex;
  grid-column: 2;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
}
.prototype-insight-actions small { margin-right: auto; color: var(--tx-4); font-size: 8px; font-weight: 760; }
.prototype-insight-actions button { min-height: 34px; padding: 7px 10px; border-radius: 9px; font-size: 9px; }
.trajectory-card-front .prototype-progression-disclaimer,
.trajectory-card-front .prototype-chart-range-note,
.trajectory-card-front .prototype-progression-completion-rule { margin-top: 5px; }

.trajectory-card-back .trajectory-phase-prerequisites {
  position: static;
  z-index: auto;
  inset: auto;
  display: grid;
  width: 100%;
  max-height: none;
  gap: 9px;
  margin: 0;
  padding: 12px 14px 16px;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.trajectory-card-back .trajectory-phase-prerequisites > header { padding-right: 0; }
.trajectory-card-back .trajectory-phase-prerequisites-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
}
.trajectory-card-return {
  min-height: 30px;
  padding: 6px 9px !important;
  border: 1px solid rgba(var(--primary-rgb), .16) !important;
  border-radius: 9px !important;
  background: rgba(255,255,255,.82) !important;
  color: var(--primary-dk) !important;
  font-size: 9px !important;
  text-decoration: none !important;
}
.trajectory-card-return:hover { border-color: rgba(var(--primary-rgb), .34) !important; }

@media (max-width: 620px) {
  .prototype-progression-compact { padding: 11px; }
  .trajectory-card-stage { height: clamp(480px, 68dvh, 590px); }
  .trajectory-card-face { padding: 1px; scrollbar-gutter: auto; }
  .trajectory-card-front .trajectory-graph-controls { gap: 6px; margin: 4px 0 5px; }
  .trajectory-card-front .trajectory-phase-navigation { gap: 5px; padding-bottom: 3px; }
  .trajectory-card-front .trajectory-phase-navigation > button {
    min-width: 106px;
    min-height: 43px;
    padding: 6px 8px;
  }
  .trajectory-card-front .trajectory-phase-context { gap: 7px; padding: 7px 8px; }
  .trajectory-card-front .prototype-chart-shell { padding-top: 9px; }
  .trajectory-card-front .prototype-insight-panel:not(.is-empty) {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 3px;
    padding: 9px 11px;
  }
  .trajectory-card-front .prototype-insight-panel:not(.is-empty) h5,
  .trajectory-card-front .prototype-insight-panel:not(.is-empty) > strong,
  .trajectory-card-front .prototype-insight-panel:not(.is-empty) > p {
    grid-column: 1;
    grid-row: auto;
  }
  .trajectory-card-back .trajectory-phase-prerequisites { padding: 9px 10px 14px; }
  .trajectory-card-back .trajectory-phase-prerequisites > header { display: grid; gap: 7px; }
  .trajectory-card-back .trajectory-phase-prerequisites-header-actions { justify-content: flex-start; }
  .trajectory-card-back .rehabilitation-criteria-layout { grid-template-columns: 1fr; gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .trajectory-card-face { transition: none; }
}

/* Frise clinique et détails contextuels — centrés sur la carte d’évolution */
.clinical-history-rail {
  display: grid;
  gap: 6px;
  margin: 5px 0 7px;
}
.clinical-history-rail > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 0 2px;
}
.clinical-history-rail > header strong { color: var(--tx-2); font-size: 10px; }
.clinical-history-rail > header small { color: var(--tx-4); font-size: 8px; }
.clinical-history-events {
  display: flex;
  gap: 5px;
  padding: 1px 1px 4px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}
.clinical-history-event {
  display: grid;
  flex: 0 0 118px;
  min-height: 48px;
  align-content: center;
  gap: 3px;
  padding: 7px 9px;
  scroll-snap-align: start;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 11px;
  background: rgba(255,255,255,.74);
  color: var(--tx-2);
  text-align: left;
}
.clinical-history-event:hover,
.clinical-history-event:focus-visible {
  border-color: rgba(var(--primary-rgb), .32);
  background: #fff;
  outline: none;
}
.clinical-history-event time { color: var(--tx-4); font-size: 8px; }
.clinical-history-event span {
  overflow: hidden;
  font-size: 9px;
  font-weight: 760;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.clinical-history-event.is-operation { background: rgba(245,159,91,.1); }
.clinical-history-event.is-assessment { background: rgba(var(--primary-rgb), .07); }
.clinical-history-event.is-goal { background: rgba(34,181,154,.09); }

.trajectory-context-detail {
  display: grid;
  align-content: start;
  gap: 14px;
  min-height: 100%;
  padding: 14px 16px 18px;
}
.trajectory-context-detail[hidden] { display: none; }
.trajectory-context-detail > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.trajectory-context-detail > header span {
  color: var(--tx-4);
  font-size: 9px;
  font-weight: 750;
}
.trajectory-context-detail-heading {
  display: grid;
  gap: 5px;
  padding: 16px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(var(--primary-rgb), .1), rgba(255,255,255,.82));
}
.trajectory-context-detail-heading small {
  color: var(--primary-dk);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.trajectory-context-detail-heading h4 { margin: 0; color: var(--tx); font-size: 20px; }
.trajectory-context-detail p { margin: 0; color: var(--tx-2); font-size: 11px; line-height: 1.55; }
.trajectory-context-detail > section {
  display: grid;
  gap: 5px;
  padding: 0 4px;
}
.trajectory-context-detail > section strong { color: var(--tx); font-size: 11px; }
.trajectory-context-readiness {
  padding: 12px !important;
  border: 1px solid rgba(var(--primary-rgb), .11);
  border-radius: 13px;
  background: rgba(var(--primary-rgb), .035);
}
.trajectory-context-detail > footer {
  margin-top: auto;
  padding: 10px 4px 0;
  border-top: 1px solid rgba(var(--primary-rgb), .09);
  color: var(--tx-4);
  font-size: 9px;
}

.trajectory-context-actions {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px !important;
  padding: 4px !important;
}
.trajectory-context-actions button {
  min-height: 36px;
  padding: 8px 13px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 780;
}
.trajectory-context-actions .is-danger {
  border-color: rgba(199,76,72,.2);
  color: #a33f3b;
  background: rgba(199,76,72,.055);
}

.trajectory-context-goal-list {
  display: grid !important;
  gap: 7px !important;
  padding: 2px 4px !important;
}
.trajectory-context-goal-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 11px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 12px;
  background: rgba(255,255,255,.72);
}
.trajectory-context-goal-row > span {
  display: grid;
  min-width: 0;
  gap: 2px;
}
.trajectory-context-goal-row > span strong {
  overflow: hidden;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.trajectory-context-goal-row > span small { color: var(--tx-4); font-size: 8px; }
.trajectory-context-goal-row > div { display: flex; flex: 0 0 auto; gap: 5px; }
.trajectory-context-goal-row button,
.trajectory-context-manage-all {
  min-height: 32px;
  padding: 6px 9px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 9px;
  color: var(--primary-dk);
  background: rgba(var(--primary-rgb), .06);
  font-size: 9px;
  font-weight: 760;
}
.trajectory-context-goal-row button.is-danger { color: #a33f3b; background: rgba(199,76,72,.055); }
.trajectory-context-manage-all { justify-self: start; margin-top: 3px; }

@media (max-width: 620px) {
  .clinical-history-rail { margin: 4px 0 5px; }
  .clinical-history-event { flex-basis: 108px; min-height: 44px; padding: 6px 8px; }
  .trajectory-context-detail { gap: 11px; padding: 10px 11px 14px; }
  .trajectory-context-detail-heading { padding: 13px; }
  .trajectory-context-detail-heading h4 { font-size: 17px; }
  .trajectory-context-goal-row { align-items: stretch; flex-direction: column; gap: 8px; }
  .trajectory-context-goal-row > div { align-self: flex-end; }
  .trajectory-card-front .prototype-insight-panel:not(.is-empty) .prototype-insight-summary,
  .trajectory-card-front .prototype-insight-panel:not(.is-empty) .prototype-insight-summary:only-child,
  .prototype-insight-actions { grid-column: 1 / -1; }
  .trajectory-card-front .prototype-insight-panel:not(.is-empty) .prototype-insight-summary:only-child { display: grid; grid-template-columns: 1fr; }
  .trajectory-card-front .prototype-insight-panel:not(.is-empty) .prototype-insight-summary:only-child p { grid-column: 1; grid-row: auto; }
  .prototype-insight-actions { justify-content: flex-start; }
}

/* Dossier avant le premier bilan : priorité visible, outils découvrables. */
#patientDetailModal.patient-detail-page #patientDashboardPanel.is-initial-assessment-focus {
  min-height: auto;
  align-content: start;
}
.patient-initial-assessment-focus {
  gap: 14px;
  padding-top: 6px;
}
.patient-initial-assessment-current-action {
  min-height: 104px;
  padding: 18px 20px;
}
.patient-starting-workspace {
  display: grid;
  gap: 9px;
  padding-top: 4px;
}
.patient-starting-workspace > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  padding: 0 2px;
}
.patient-starting-workspace > header > div { display: grid; gap: 2px; }
.patient-starting-workspace > header small {
  color: var(--primary);
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.patient-starting-workspace > header strong { color: var(--tx); font-size: 15px; }
.patient-starting-workspace > header p {
  max-width: 380px;
  margin: 0;
  color: var(--tx-4);
  font-size: 9px;
  line-height: 1.4;
  text-align: right;
}
.patient-starting-workspace-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
}
.patient-starting-workspace-grid > button {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 92px;
  align-content: start;
  gap: 4px;
  padding: 12px 30px 11px 12px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 14px;
  background: rgba(255,255,255,.64);
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.patient-starting-workspace-grid > button:hover,
.patient-starting-workspace-grid > button:focus-visible {
  border-color: rgba(var(--primary-rgb), .3);
  background: #fff;
  outline: 3px solid rgba(var(--primary-rgb), .06);
}
.patient-starting-workspace-grid span { color: var(--primary-dk); font-size: 9px; font-weight: 850; }
.patient-starting-workspace-grid strong { color: var(--tx-2); font-size: 11px; line-height: 1.3; }
.patient-starting-workspace-grid small { color: var(--tx-4); font-size: 8px; line-height: 1.35; }
.patient-starting-workspace-grid b {
  position: absolute;
  top: 11px;
  right: 11px;
  color: var(--primary);
  font-size: 13px;
}

@media (max-width: 820px) {
  .patient-starting-workspace-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .patient-initial-assessment-current-action { min-height: 96px; padding: 15px 16px; }
  .patient-starting-workspace > header { align-items: start; flex-direction: column; gap: 3px; }
  .patient-starting-workspace > header p { max-width: none; text-align: left; }
  .patient-starting-workspace-grid > button { min-height: 86px; }
}
/* Planning pleine page et réglages dédiés */
body[data-main-tab="planning"] .main-content {
  padding: 24px 28px 0;
}
#planningTab {
  min-height: calc(100dvh - 92px);
  gap: 12px;
}
#planningTab > .planning-page-header {
  align-items: center;
  padding: 0 2px;
}
#planningTab > .planning-page-header h1 { font-size: clamp(28px, 3vw, 38px); }
.planning-page-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.planning-settings-summary {
  color: var(--tx-4);
  font-size: 11px;
  font-weight: 750;
  white-space: nowrap;
}
.planning-settings-btn {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  gap: 7px;
  padding: 7px 11px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 10px;
  background: rgba(255,255,255,.78);
  color: var(--primary-dk);
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}
.planning-settings-btn:hover,
.planning-settings-btn:focus-visible {
  border-color: rgba(var(--primary-rgb), .3);
  background: #fff;
  outline: none;
}
.planning-toolbar {
  top: -24px;
  margin: 0 -28px;
  padding: 9px 30px;
  border-block: 1px solid rgba(17,19,24,.055);
}
.planning-toolbar-end {
  display: flex;
  align-items: center;
  gap: 8px;
}
#planningTab > .planning-surface {
  display: flex;
  min-height: 0;
  flex: 1;
  flex-direction: column;
  margin: 0 -28px;
  overflow: visible;
}
#planningTab .planning-surface-header {
  min-height: 52px;
  align-items: center;
  padding: 10px 30px;
  border-bottom: 0;
}
#planningTab .planning-surface-header h2 { margin-bottom: 1px; }
#planningTab .planning-calendar {
  width: 100%;
  flex: 1;
  border-top: 1px solid var(--border);
  background: rgba(255,255,255,.58);
}
#planningTab .planning-calendar-inner {
  width: 100%;
  min-width: 100%;
}
.planning-time-axis,
.planning-day-lane {
  height: var(--planning-grid-height, 975px);
}
.planning-day-header {
  height: 56px;
}
.planning-day-header.is-closed {
  color: var(--tx-4);
  background: rgba(245,246,248,.96);
}
.planning-day-header em {
  padding: 2px 5px;
  border-radius: 999px;
  background: rgba(88,101,216,.07);
  color: var(--tx-4);
  font-size: 8px;
  font-style: normal;
  font-weight: 800;
  text-transform: none;
}
.planning-day-lane.is-closed {
  background:
    repeating-linear-gradient(135deg, rgba(17,19,24,.018) 0, rgba(17,19,24,.018) 8px, transparent 8px, transparent 18px),
    rgba(246,247,249,.72);
  cursor: default;
}
.planning-closed-notice {
  position: sticky;
  top: 64px;
  z-index: 4;
  display: grid;
  gap: 1px;
  margin: 10px 8px 0;
  padding: 8px 10px;
  border: 1px solid rgba(17,19,24,.07);
  border-radius: 9px;
  background: rgba(255,255,255,.9);
  color: var(--tx-4);
  pointer-events: none;
}
.planning-closed-notice strong { color: var(--tx-3); font-size: 10px; }
.planning-closed-notice span { font-size: 9px; line-height: 1.35; }

.planning-settings-modal-content {
  max-width: 720px;
  max-height: calc(100dvh - 40px);
  overflow-y: auto;
}
.planning-settings-modal-content .detail-header {
  position: sticky;
  top: 0;
  z-index: 3;
  padding: 22px 24px 14px;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(12px);
}
.planning-settings-modal-content .detail-header h3 { margin: 0; }
.planning-settings-body {
  display: grid;
  gap: 14px;
  padding: 0 24px 20px;
}
.planning-settings-section {
  margin: 0;
  padding: 16px;
  border: 0;
  border-radius: 15px;
  background: var(--surface-2);
}
.planning-settings-section h4,
.planning-settings-section legend {
  margin: 0;
  color: var(--tx);
  font-size: 13px;
  font-weight: 850;
}
.planning-settings-section > p,
.planning-settings-section-heading p {
  margin: 3px 0 0;
  color: var(--tx-4);
  font-size: 10px;
  line-height: 1.45;
}
.planning-settings-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.planning-hours-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.planning-hours-fields label,
.planning-closure-row label {
  display: grid;
  gap: 5px;
  color: var(--tx-3);
  font-size: 10px;
  font-weight: 800;
}
.planning-hours-fields input,
.planning-closure-row input {
  width: 100%;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid rgba(17,19,24,.09);
  border-radius: 10px;
  background: #fff;
  color: var(--tx);
  font: inherit;
  font-size: 12px;
}
.planning-open-days { min-inline-size: 0; }
.planning-day-options {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 7px;
  margin-top: 12px;
}
.planning-day-options label {
  position: relative;
  display: grid;
  min-height: 40px;
  place-items: center;
  border: 1px solid rgba(17,19,24,.08);
  border-radius: 10px;
  background: #fff;
  color: var(--tx-3);
  font-size: 10px;
  font-weight: 850;
  cursor: pointer;
}
.planning-day-options input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.planning-day-options label:has(input:checked) {
  border-color: rgba(var(--primary-rgb), .28);
  background: var(--primary);
  color: #fff;
}
.planning-closures-list {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}
.planning-closures-empty {
  margin: 0;
  padding: 12px;
  border: 1px dashed rgba(17,19,24,.1);
  border-radius: 10px;
  color: var(--tx-4);
  font-size: 10px;
  text-align: center;
}
.planning-closure-row {
  display: grid;
  grid-template-columns: minmax(150px, 1.4fr) minmax(125px, 1fr) minmax(125px, 1fr) 34px;
  align-items: end;
  gap: 8px;
}
.planning-closure-remove {
  width: 34px;
  height: 40px;
  border: 0;
  border-radius: 9px;
  background: rgba(217,45,32,.06);
  color: var(--error);
  font-size: 11px;
  cursor: pointer;
}
.planning-settings-status {
  min-height: 18px;
  margin: 0;
  color: var(--error);
  font-size: 11px;
  font-weight: 700;
}
.planning-settings-footer {
  position: sticky;
  bottom: 0;
  z-index: 3;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 24px 20px;
  border-top: 1px solid var(--border);
  background: rgba(255,255,255,.97);
}

@media (max-width: 900px) {
  body[data-main-tab="planning"] .main-content { }
  #planningTab { min-height: auto; }
  #planningTab > .planning-page-header { align-items: flex-start; gap: 12px; }
  .planning-page-actions { width: 100%; justify-content: space-between; }
  .planning-toolbar {
    top: -18px;
    margin-inline: -16px;
    padding-inline: 16px;
  }
  .planning-toolbar-end,
  .planning-view-switch { width: 100%; }
  #planningTab > .planning-surface { margin-inline: -16px; }
  #planningTab .planning-surface-header { padding-inline: 16px; }
  #planningTab .planning-surface-header > p { display: none; }
}

@media (max-width: 620px) {
  .planning-page-header > div > p:last-child { display: none; }
  .planning-settings-summary { font-size: 10px; }
  .planning-settings-btn { width: 36px; padding: 0; justify-content: center; font-size: 0; }
  .planning-settings-btn span { font-size: 14px; }
  .planning-date-navigation { display: grid; grid-template-columns: 32px minmax(130px, 1fr) 32px; width: 100%; }
  .planning-date-navigation .planning-today-shortcut { grid-column: 1 / -1; }
  .planning-date-display { min-width: 0; }
  .planning-settings-modal-content {
    align-self: end;
    max-height: 92dvh;
    border-radius: 20px 20px 0 0;
  }
  .planning-settings-body { padding-inline: 16px; }
  .planning-settings-modal-content .detail-header,
  .planning-settings-footer { padding-inline: 16px; }
  .planning-hours-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .planning-day-options { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .planning-closure-row { grid-template-columns: repeat(2, minmax(0, 1fr)) 34px; }
  .planning-closure-label { grid-column: 1 / -1; }
  .planning-closure-remove { grid-column: 3; grid-row: 2; }
}

/* Courbe d’évolution : navigation directement intégrée au graphique. */
.prototype-chart-shell {
  position: relative;
}
.prototype-chart-direct-actions {
  position: absolute;
  z-index: 5;
  top: 48px;
  right: 22px;
  display: flex;
  align-items: center;
  gap: 6px;
  pointer-events: none;
}
.prototype-chart-direct-actions > button {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  gap: 5px;
  padding: 6px 9px;
  border: 1px solid rgba(var(--primary-rgb), .2);
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 4px 14px rgba(36,42,84,.08);
  color: var(--primary-dk);
  font: 780 9px/1 var(--font);
  cursor: pointer;
  pointer-events: auto;
  backdrop-filter: blur(8px);
}
.prototype-chart-direct-actions > button:hover,
.prototype-chart-direct-actions > button:focus-visible {
  border-color: rgba(var(--primary-rgb), .42);
  background: #fff;
  outline: 3px solid rgba(var(--primary-rgb), .12);
}
.prototype-chart-direct-actions > button strong {
  padding-left: 5px;
  border-left: 1px solid rgba(var(--primary-rgb), .16);
  font-size: 9px;
}
.prototype-chart-direct-actions > button.has-blocker {
  border-color: rgba(190,126,74,.3);
  color: #895326;
}

@media (max-width: 620px) {
  .prototype-chart-direct-actions {
    top: 46px;
    right: 12px;
    gap: 4px;
  }
}

.trajectory-card-front .prototype-insight-panel.is-phase-prerequisites {
  display: grid;
  min-height: 0;
  gap: 10px;
  padding: 12px 14px;
  border-top: 1px solid rgba(var(--primary-rgb), .12);
  background: rgba(var(--primary-rgb), .025);
}
.prototype-chart-phase-prerequisites {
  display: grid;
  min-width: 0;
  gap: 9px;
}
.prototype-chart-phase-prerequisites > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px;
}
.prototype-chart-phase-prerequisites > header > div {
  display: grid;
  min-width: 0;
  gap: 2px;
}
.prototype-chart-phase-prerequisites > header small {
  color: var(--primary);
  font-size: 8px;
  font-weight: 820;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.prototype-chart-phase-prerequisites > header strong {
  overflow: hidden;
  color: var(--tx);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.prototype-chart-phase-prerequisites > header > span {
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .08);
  color: var(--primary-dk);
  font-size: 9px;
  font-weight: 800;
  white-space: nowrap;
}
.prototype-chart-phase-prerequisites > header > button {
  min-height: 29px;
  padding: 6px 9px;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: 9px;
  background: rgba(255,255,255,.78);
  color: var(--primary-dk);
  font: 780 9px/1 var(--font);
  cursor: pointer;
}
.prototype-chart-phase-prerequisites > ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  max-height: 146px;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  list-style: none;
}
.prototype-chart-phase-prerequisites li {
  display: grid;
  min-width: 0;
  grid-template-columns: 8px minmax(0, 1fr);
  gap: 2px 7px;
  padding: 7px 8px;
  border-radius: 9px;
  background: rgba(255,255,255,.68);
}
.prototype-chart-phase-prerequisites li > span {
  width: 7px;
  height: 7px;
  margin-top: 3px;
  border-radius: 50%;
  background: #c2c6d6;
}
.prototype-chart-phase-prerequisites li > strong { overflow: hidden; color: var(--tx-2); font-size: 9px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.prototype-chart-phase-prerequisites li > small { grid-column: 2; color: var(--tx-4); font-size: 8px; }
.prototype-chart-phase-prerequisites li.is-validated > span { background: #2ea98b; }
.prototype-chart-phase-prerequisites li.is-not-validated > span { background: #d58a4a; }
.prototype-chart-phase-prerequisites li.is-to-reassess > span { background: #7f88d8; }

/* Surcharge finale : conserver le bilan tactile compact après les styles historiques. */
@media (max-width: 1100px) {
  .initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid {
    position: sticky;
    top: 0;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid > .assessment-step-nav {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(148px, 30vw);
    grid-template-columns: none;
    overflow-x: auto;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-heading strong { display: block; }
  .initial-assessment-workspace.assessment-guided-draft .assessment-step-actions {
    position: sticky;
    bottom: 0;
  }
}

@media (max-width: 520px) {
  .initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid > .assessment-step-nav {
    grid-auto-columns: minmax(142px, 72vw);
    grid-template-columns: none;
    overflow-x: auto;
  }
}

/* Synthèse du bilan : deux lectures courtes puis un plan transversal. */
.initial-assessment-validated-summary-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
}
.initial-assessment-summary-card.is-plan {
  grid-column: 1 / -1;
  background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(236,249,245,.78));
}
.initial-assessment-summary-card.is-plan > span {
  color: #126f5d;
  font-size: 16px;
}
.initial-assessment-summary-card.is-plan dl {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 14px;
}
.initial-assessment-summary-card.is-plan dl > div {
  min-width: 0;
  padding: 10px 12px;
  border: 0;
  border-radius: 12px;
  background: rgba(255,255,255,.72);
}
.initial-assessment-summary-card.is-plan dl > div:first-child,
.initial-assessment-summary-card.is-plan dl > div:has(.initial-assessment-summary-phases) {
  grid-column: 1 / -1;
}
.initial-assessment-summary-card.is-plan dt { color: #397d70; }
.initial-assessment-summary-card.is-plan dd {
  font-size: 12px;
  line-height: 1.45;
}
.initial-assessment-summary-card.is-plan .initial-assessment-summary-phases {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 7px;
}
.initial-assessment-summary-card.is-plan .initial-assessment-summary-phases li {
  align-content: start;
  grid-template-columns: 1fr;
  gap: 3px;
  min-width: 0;
  padding: 9px 10px;
  border: 0;
  border-radius: 10px;
  background: rgba(22,139,114,.07);
}
.initial-assessment-summary-card.is-plan .initial-assessment-summary-phases li span {
  overflow: hidden;
  font-weight: 750;
  line-height: 1.3;
  text-overflow: ellipsis;
}
.initial-assessment-summary-card.is-plan .initial-assessment-summary-phases li small { white-space: normal; }

@media (max-width: 700px) {
  .initial-assessment-validated-summary-grid { grid-template-columns: 1fr; }
  .initial-assessment-summary-card.is-plan { grid-column: 1; }
  .initial-assessment-summary-card.is-plan dl { grid-template-columns: 1fr; }
  .initial-assessment-summary-card.is-plan dl > div,
  .initial-assessment-summary-card.is-plan dl > div:first-child,
  .initial-assessment-summary-card.is-plan dl > div:has(.initial-assessment-summary-phases) { grid-column: 1; }
  .initial-assessment-summary-card.is-plan .initial-assessment-summary-phases {
    display: flex;
    gap: 8px;
    padding-bottom: 3px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
  }
  .initial-assessment-summary-card.is-plan .initial-assessment-summary-phases li {
    flex: 0 0 min(76vw, 220px);
    scroll-snap-align: start;
  }
}

/* Le libellé du retour reste visible sur téléphone comme sur ordinateur. */
@media (max-width: 700px) {
  .initial-assessment-exit-btn.app-page-back > span:last-child {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip-path: none;
    white-space: nowrap;
  }
}

/* Documents : le compositeur reste au premier plan et hors du flux de la page. */
.medical-document-modal {
  z-index: calc(var(--z-modal) + 4);
}
.medical-document-modal-content {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(860px, calc(100vw - 32px));
  max-width: 860px;
  max-height: calc(100dvh - 32px);
  overflow: hidden;
}
.medical-document-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px 15px;
  border-bottom: 1px solid var(--border);
}
.medical-document-modal-header h3 {
  margin-top: 2px;
  color: var(--tx);
  font-size: 20px;
}
.medical-document-modal-header p:not(.section-kicker) {
  margin-top: 4px;
  color: var(--tx-3);
  font-size: 12px;
}
.medical-document-modal-header-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
}
.medical-document-modal-body {
  min-height: 0;
  padding: 18px 20px 20px;
  overflow-y: auto;
}
.medical-document-modal .medical-document-composer,
.medical-document-modal .medical-letter-editor {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.medical-document-modal .medical-appointment-form {
  margin: 14px 0;
}
.medical-document-modal .medical-letter-editor textarea {
  min-height: clamp(280px, 45dvh, 470px);
}
.medical-document-modal .medical-letter-actions {
  justify-content: flex-end;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}

@media (max-width: 700px) {
  .medical-document-modal { padding: 0; }
  .medical-document-modal-content {
    width: 100%;
    max-width: none;
    min-height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
  }
  .medical-document-modal-header { padding: 16px 14px 13px; }
  .medical-document-modal-header-actions .assessment-status { display: none; }
  .medical-document-modal-body { padding: 15px 14px max(22px, env(safe-area-inset-bottom)); }
  .medical-document-modal .medical-letter-editor textarea { min-height: 46dvh; }
}


/* Dossier patient : identité et navigation forment un véritable haut de page. */
#patientDetailModal.patient-detail-page .patient-unified-header {
  position: relative;
  z-index: 12;
  display: block;
  margin: 0 20px;
  padding: 0;
  overflow: visible;
  border: 0;
  border-bottom: 1px solid rgba(var(--primary-rgb), .10);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
#patientDetailModal.patient-detail-page .patient-unified-header .detail-header {
  position: relative;
  display: flex;
  min-height: 92px;
  align-items: center;
  padding: 18px 118px 16px 0;
}
#patientDetailModal.patient-detail-page .patient-unified-header .detail-header > div:first-child {
  gap: 8px;
}
#patientDetailModal.patient-detail-page .patient-unified-header .detail-title-line h3 {
  font-size: clamp(23px, 2.4vw, 30px);
  line-height: 1.08;
  letter-spacing: -.04em;
}
#patientDetailModal.patient-detail-page .patient-unified-header .patient-follow-up-header {
  width: min(100%, 560px);
}
#patientDetailModal.patient-detail-page .patient-unified-header .patient-follow-up-trigger {
  width: fit-content;
  max-width: 100%;
  min-height: 34px;
  padding: 2px 2px 5px 0;
}
#patientDetailModal.patient-detail-page .patient-unified-header .patient-follow-up-trigger-copy small {
  display: block;
  font-size: 8px;
}
#patientDetailModal.patient-detail-page .patient-unified-header .patient-follow-up-trigger-copy strong {
  font-size: 13px;
}
#patientDetailModal.patient-detail-page .patient-unified-header .patient-follow-up-chevron {
  width: 22px;
  height: 22px;
  flex-basis: 22px;
}
#patientDetailModal.patient-detail-page .patient-unified-header .detail-header-actions {
  position: absolute;
  top: 18px;
  right: 0;
  display: flex;
  align-items: center;
  flex-direction: row;
  gap: 6px;
  opacity: .68;
  transform: none;
}
#patientDetailModal.patient-detail-page .patient-unified-header .patient-header-more-panel {
  top: calc(100% + 7px);
  right: 0;
  transform: none;
}
#patientDetailModal.patient-detail-page .patient-record-navigation {
  position: sticky;
  top: 0;
  z-index: 10;
  display: grid !important;
  width: 100%;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 4px;
  margin: 0;
  padding: 7px 20px 9px;
  border: 0;
  border-bottom: 1px solid rgba(var(--primary-rgb), .10);
  border-radius: 0;
  background: rgba(251,250,255,.94);
  box-shadow: none;
  backdrop-filter: blur(14px);
}
#patientDetailModal.patient-detail-page .patient-record-navigation::before { }
#patientDetailModal.patient-detail-page .patient-record-navigation .tab-button {
  justify-content: center;
  min-width: 0;
  min-height: 38px;
  padding: 8px 10px;
  border-radius: 10px;
  font-size: 11px;
  text-align: center;
}
#patientDetailModal.patient-detail-page.session-preparation-page-open .patient-record-navigation,
#patientDetailModal.patient-detail-page.session-directory-page-open .patient-record-navigation,
#patientDetailModal.patient-detail-page.session-completed-page-open .patient-record-navigation,
#patientDetailModal.patient-detail-page .detail-modal-content.initial-assessment-page-open > .patient-record-navigation,
#patientDetailModal.patient-detail-page .detail-modal-content.follow-up-assessments-page-open > .patient-record-navigation,
#patientDetailModal.patient-detail-page .detail-modal-content.patient-information-open > .patient-record-navigation {
  display: none !important;
}

@media (max-width: 760px) {
  #patientDetailModal.patient-detail-page .patient-unified-header {
    margin: 0 14px;
  }
  #patientDetailModal.patient-detail-page .patient-unified-header .detail-header {
    display: flex;
    min-height: 84px;
    padding: 14px 108px 12px 0;
  }
  #patientDetailModal.patient-detail-page .patient-unified-header .detail-header > div:first-child {
    width: 100%;
    gap: 7px;
  }
  #patientDetailModal.patient-detail-page .patient-unified-header .detail-title-line {
    padding-right: 0;
  }
  #patientDetailModal.patient-detail-page .patient-unified-header .detail-title-line h3 {
    font-size: clamp(20px, 6.2vw, 25px);
  }
  #patientDetailModal.patient-detail-page .patient-unified-header .detail-header-actions {
    top: 14px;
    right: 0;
    flex-direction: row;
    transform: none;
  }
  #patientDetailModal.patient-detail-page .patient-record-navigation {
    grid-template-columns: repeat(5, minmax(68px, 1fr));
    gap: 3px;
    padding: 6px 10px 8px;
    overflow-x: auto;
    scrollbar-width: none;
  }
  #patientDetailModal.patient-detail-page .patient-record-navigation::-webkit-scrollbar { display: none; }
  #patientDetailModal.patient-detail-page .patient-record-navigation .tab-button {
    min-height: 36px;
    padding: 7px 6px;
    font-size: 10px;
    white-space: nowrap;
  }
}

@media (max-width: 430px) {
  #patientDetailModal.patient-detail-page .patient-unified-header .detail-header {
    min-height: 94px;
    align-items: flex-start;
    padding-right: 96px;
  }
  #patientDetailModal.patient-detail-page .patient-unified-header .detail-title-line h3 {
    max-width: 100%;
    overflow-wrap: normal;
    word-break: normal;
  }
  #patientDetailModal.patient-detail-page .patient-unified-header .patient-follow-up-trigger-copy strong {
    max-width: min(58vw, 250px);
  }
}

#patientDetailModal.patient-detail-page .patient-record-navigation.is-progressive-start { grid-template-columns: minmax(0, 1fr); }


/* Accès au simulateur mobile depuis les paramètres uniquement. */
.mobile-preview-settings-card {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
}
.mobile-preview-settings-card > div {
  display: grid;
  min-width: 0;
  gap: 5px;
}
.mobile-preview-settings-card p { margin: 0; }
.mobile-preview-settings-link {
  justify-self: end;
  text-decoration: none;
  white-space: nowrap;
}
@media (max-width: 700px) {
  .mobile-preview-settings-card { display: none; }
}


/* Frise de rendez-vous intégrée en tête de l’accueil. */
.dashboard-planning-frame {
  display: grid;
  width: 100%;
  min-height: 172px;
  margin: 0 0 18px;
  gap: 10px;
}
.appointment-timeline-heading {
  display: flex;
  min-height: 38px;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  padding: 0 4px;
}
.appointment-timeline-heading > div {
  display: grid;
  gap: 2px;
}
.appointment-timeline-heading span {
  color: var(--primary);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.appointment-timeline-heading h2 {
  margin: 0;
  color: var(--tx);
  font-size: 18px;
  line-height: 1.1;
  letter-spacing: -.02em;
}
.appointment-timeline-heading p {
  margin: 0;
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 700;
}

.dashboard-planning-frame .live-patient-navigator.topbar-clinical-ribbon {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: stretch;
  gap: 12px;
  padding: 8px;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: 22px;
  background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(246,247,255,.94));
  box-shadow: 0 10px 28px rgba(35,40,78,.07);
}
.dashboard-planning-frame .live-patient-ribbon-viewport {
  grid-template-columns: minmax(0,.9fr) minmax(300px,1.2fr) minmax(0,.9fr);
  gap: 0;
  overflow: hidden;
  border-radius: 15px;
}
.dashboard-planning-frame .patient-context-card {
  min-height: 106px;
  align-items: center;
  gap: 10px;
  padding: 10px 15px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.dashboard-planning-frame .patient-context-card + .patient-context-card {
  border-left: 1px solid rgba(var(--primary-rgb), .11);
}
.dashboard-planning-frame .patient-context-card:hover:not(:disabled) {
  background: rgba(255,255,255,.72);
}
.dashboard-planning-frame .patient-context-card.is-current-patient {
  border-radius: 14px;
  background: linear-gradient(145deg,rgba(239,241,255,.98),rgba(229,233,255,.92));
  box-shadow: inset 0 0 0 1px rgba(var(--primary-rgb), .18);
}
.dashboard-planning-frame .patient-context-card .live-patient-copy {
  grid-template-rows: auto auto auto;
  align-content: center;
}
.dashboard-planning-frame .patient-context-card .live-patient-copy strong {
  overflow-wrap: anywhere;
  font-size: 14px;
  line-height: 1.18;
}
.dashboard-planning-frame .patient-context-current .live-patient-copy strong {
  color: var(--primary-dk);
  font-size: 15px;
}
.dashboard-planning-frame .patient-context-detail {
  display: block;
  grid-column: 1 / -1;
  min-width: 0;
  overflow: visible;
  color: var(--tx-3) !important;
  font-size: 10px !important;
  font-weight: 650 !important;
  letter-spacing: 0 !important;
  line-height: 1.3;
  text-overflow: clip;
  text-transform: none !important;
  white-space: normal;
}
.dashboard-planning-frame .live-patient-ribbon-controls {
  grid-template-columns: 36px auto 36px;
  align-content: center;
  gap: 6px;
}
.dashboard-planning-frame .live-patient-ribbon-control,
.dashboard-planning-frame .live-patient-ribbon-now {
  width: 36px;
  height: 36px;
  min-width: 36px;
}

@media (max-width: 980px) {
  .dashboard-planning-frame .live-patient-ribbon-viewport {
    grid-template-columns: repeat(3,minmax(240px,1fr));
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .dashboard-planning-frame .live-patient-ribbon-viewport::-webkit-scrollbar { display: none; }
  .dashboard-planning-frame .patient-context-card {
    border-left: 0 !important;
    border-radius: 14px;
    scroll-snap-align: center;
  }
}

@media (max-width: 700px) {
  .dashboard-planning-frame {
    min-height: 150px;
    margin-bottom: 14px;
    gap: 8px;
  }
  .appointment-timeline-heading {
    min-height: 34px;
  }
  .appointment-timeline-heading p {
    display: none;
  }
  .dashboard-planning-frame .live-patient-navigator.topbar-clinical-ribbon {
    gap: 8px;
    padding: 6px;
    border-radius: 18px;
  }
  .dashboard-planning-frame .live-patient-ribbon-viewport {
    grid-template-columns: repeat(3,minmax(260px,1fr));
  }
  .dashboard-planning-frame .patient-context-card {
    padding: 9px 12px;
  }
}

/* Accueil homogène : une seule famille de surfaces, la couleur reste un accent. */
.dashboard-tab {
  display: grid;
  gap: 0;
}
.dashboard-planning-frame {
  margin-bottom: 16px;
}
.dashboard-planning-frame .live-patient-navigator.topbar-clinical-ribbon,
.dashboard-overview-card,
.dashboard-clinical-cockpit .dashboard-card {
  border: 1px solid rgba(76,68,132,.11);
  border-radius: 20px;
  background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(249,248,255,.94));
  box-shadow: 0 9px 26px rgba(52,44,102,.055);
}
.dashboard-overview-card {
  display: grid;
  overflow: hidden;
}
.dashboard-assistant-hero.dashboard-compact-hero {
  min-height: 0;
  padding: 22px 24px 14px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.dashboard-assistant-hero::after {
  display: none;
}
.dashboard-compact-hero .section-kicker {
  margin-bottom: 7px;
  color: var(--primary);
}
.dashboard-compact-hero .dashboard-assistant-copy h1 {
  margin: 0;
  color: var(--tx);
  font-size: clamp(28px,3vw,34px);
}
.dashboard-compact-hero .dashboard-assistant-copy p:last-child {
  color: var(--tx-3);
}
.dashboard-clinical-cockpit {
  display: grid;
  gap: 0;
}
.dashboard-clinical-cockpit .dashboard-metrics-grid {
  gap: 8px;
  padding: 0 10px 10px;
}
.dashboard-clinical-cockpit .metric-card {
  min-height: 92px;
  padding: 14px 16px;
  border: 1px solid transparent;
  border-radius: 14px;
  background: rgba(var(--primary-rgb), .045);
  box-shadow: none;
}
.dashboard-clinical-cockpit .metric-card[role="button"]:hover,
.dashboard-clinical-cockpit .metric-card.metric-card-active {
  border-color: rgba(var(--primary-rgb), .16);
  background: rgba(var(--primary-rgb), .085);
  box-shadow: none;
  transform: none;
}
.dashboard-clinical-cockpit .metric-card.metric-card-active::after {
  display: none;
}
.dashboard-clinical-cockpit .metric-card h2 {
  color: var(--tx);
  font-size: 30px;
}
.dashboard-clinical-cockpit .metric-card .metric-subtext {
  color: var(--tx-3) !important;
}
.dashboard-clinical-cockpit .dashboard-columns-grid {
  gap: 12px;
  margin-top: 16px;
}
.dashboard-clinical-cockpit .dashboard-card,
.dashboard-clinical-cockpit #dashboardSessionsCard {
  min-width: 0;
  border: 1px solid rgba(76,68,132,.11);
  border-radius: 20px;
  background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(249,248,255,.94));
  box-shadow: 0 9px 26px rgba(52,44,102,.055);
}
.dashboard-clinical-cockpit .dashboard-chart-card .card-header,
.dashboard-clinical-cockpit #dashboardSessionsCard .card-header {
  padding: 17px 20px 13px;
  border-bottom: 1px solid rgba(76,68,132,.08);
  background: transparent;
}
.dashboard-clinical-cockpit .dashboard-chart-card .dashboard-list {
  padding: 10px 14px 14px;
}
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-section-title,
.dashboard-clinical-cockpit #dashboardSessionsCard .session-inline-link,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-title,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item strong,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-note,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-meta,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-meta-row,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item-empty,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-action-link {
  color: var(--tx-2);
}
.dashboard-clinical-cockpit .dashboard-item,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item {
  padding: 13px 14px;
  border: 1px solid rgba(76,68,132,.07);
  border-radius: 13px;
  background: rgba(var(--primary-rgb), .035);
}
.dashboard-clinical-cockpit .dashboard-item:hover,
.dashboard-clinical-cockpit .dashboard-item.clickable:hover,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item:hover,
.dashboard-clinical-cockpit #dashboardSessionsCard .dashboard-item.clickable:hover {
  border-color: rgba(var(--primary-rgb), .18);
  background: rgba(var(--primary-rgb), .07);
}
.dashboard-overdue-priority {
  margin: 0 10px 10px;
  border-radius: 14px;
  box-shadow: none;
}

@media (max-width: 720px) {
  .dashboard-planning-frame,
  .dashboard-clinical-cockpit .dashboard-columns-grid {
    margin-bottom: 14px;
  }
  .dashboard-assistant-hero.dashboard-compact-hero {
    min-height: 0;
    padding: 19px 18px 12px;
  }
  .dashboard-clinical-cockpit .dashboard-metrics-grid {
    grid-template-columns: repeat(3,minmax(150px,1fr));
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .dashboard-clinical-cockpit .dashboard-metrics-grid::-webkit-scrollbar { display: none; }
  .dashboard-clinical-cockpit .metric-card {
    min-height: 88px;
    scroll-snap-align: start;
  }
  .dashboard-clinical-cockpit .dashboard-columns-grid {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 14px;
  }
  .dashboard-clinical-cockpit #dashboardSessionsCard {
    grid-column: auto;
  }
}

/* Planning complet : espace de travail autonome, sans la frise de rendez-vous. */
body[data-main-tab="planning"] .main-content {
  width: 100%;
  max-width: none;
  height: 100%;
  margin: 0;
  padding: 22px 28px 18px;
  /* Unlike hidden, clip cannot be scrolled by focus restoration either. */
  overflow: clip;
}
body[data-main-tab="planning"] #planningTab {
  display: grid;
  height: 100%;
  min-height: 0;
  min-width: 0;
  overflow: clip;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto minmax(0,1fr);
  gap: 12px;
}
body[data-main-tab="planning"] #planningTab > .planning-page-header {
  min-height: 62px;
  align-items: center;
  padding: 0 2px;
}
body[data-main-tab="planning"] #planningTab > .planning-toolbar {
  position: relative;
  top: auto;
  margin: 0;
  padding: 7px 0;
}
body[data-main-tab="planning"] #planningTab > .planning-surface {
  display: grid;
  min-width: 0;
  min-height: 0;
  grid-template-rows: auto minmax(0,1fr);
  margin: 0;
}
body[data-main-tab="planning"] #planningTab .planning-calendar {
  min-width: 0;
  min-height: 0;
  max-height: none;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

@media (max-width: 900px) {
  body[data-main-tab="planning"] .main-content {
    height: auto;
    padding: 18px 16px 76px;
    overflow-y: auto;
  }
  body[data-main-tab="planning"] #planningTab {
    display: flex;
    height: auto;
    min-height: 100%;
  }
  body[data-main-tab="planning"] #planningTab > .planning-page-header {
    min-height: 0;
  }
  body[data-main-tab="planning"] #planningTab > .planning-toolbar {
    margin-inline: -16px;
    padding-inline: 16px;
  }
  body[data-main-tab="planning"] #planningTab > .planning-surface {
    min-height: 620px;
    margin-inline: -16px;
  }
  body[data-main-tab="planning"] #planningTab .planning-calendar {
    overflow-x: auto;
    overflow-y: hidden;
  }
}

/* Frise de rendez-vous : suivi opérationnel calme de la séance en cours. */
.dashboard-planning-frame {
  min-height: 226px;
}
.dashboard-planning-frame .live-patient-navigator.topbar-clinical-ribbon {
  min-height: 178px;
}
.dashboard-planning-frame .patient-context-card {
  min-height: 160px;
  align-items: start;
  padding-block: 16px;
}
.dashboard-planning-frame .patient-context-card .live-patient-copy {
  grid-template-rows: auto auto auto auto auto;
  align-content: start;
  row-gap: 5px;
}
.dashboard-planning-frame .patient-context-live-status {
  display: flex;
  grid-column: 1 / -1;
  align-items: center;
  gap: 6px;
  margin-top: 2px;
  color: var(--tx-2) !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  line-height: 1.25;
  text-transform: none !important;
}
.dashboard-planning-frame .patient-context-live-status::before {
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 50%;
  background: rgba(var(--primary-rgb), .52);
  content: "";
}
.dashboard-planning-frame .patient-context-card[data-state="live"] .patient-context-live-status::before {
  background: #22a06b;
}
.dashboard-planning-frame .patient-context-card[data-state="autonomy"] .patient-context-live-status::before {
  background: #4f8fd8;
}
.dashboard-planning-frame .patient-context-metrics {
  display: flex;
  grid-column: 1 / -1;
  flex-wrap: wrap;
  gap: 5px;
  min-width: 0;
  margin-top: 2px;
}
.dashboard-planning-frame .patient-context-metrics.hidden {
  display: none;
}
.dashboard-planning-frame .patient-context-metrics i {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  padding: 4px 8px;
  border: 1px solid rgba(var(--primary-rgb), .11);
  border-radius: 999px;
  background: rgba(255,255,255,.68);
  color: var(--tx-3);
  font-size: 9px;
  font-style: normal;
  font-weight: 750;
  line-height: 1.1;
  white-space: nowrap;
}
.dashboard-planning-frame .patient-context-card.has-live-pain-increase .patient-context-live-status {
  color: #925d13 !important;
}
.dashboard-planning-frame .patient-context-card.has-live-pain-increase .patient-context-live-status::before {
  background: #d89436;
}
.dashboard-planning-frame .patient-context-card.has-live-pain-increase .patient-context-metrics i {
  border-color: rgba(216,148,54,.22);
}
@media (max-width: 700px) {
  .dashboard-planning-frame {
    min-height: 206px;
  }
  .dashboard-planning-frame .live-patient-navigator.topbar-clinical-ribbon {
    min-height: 166px;
  }
  .dashboard-planning-frame .patient-context-card {
    min-height: 150px;
    padding-block: 14px;
  }
}

/* Démonstration réversible du flux de rendez-vous. */
.appointment-timeline-heading-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.appointment-timeline-heading-actions button {
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid rgba(var(--primary-rgb), .15);
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .055);
  color: var(--primary-dk);
  font: inherit;
  font-size: 9px;
  font-weight: 800;
  cursor: pointer;
}
.appointment-timeline-heading-actions button:hover,
.appointment-timeline-heading-actions button[aria-pressed="true"] {
  border-color: rgba(var(--primary-rgb), .28);
  background: rgba(var(--primary-rgb), .11);
}

@media (max-width: 700px) {
  .appointment-timeline-heading-actions p {
    display: none;
  }
}

/* Frise : correction des collisions de contenu à toutes les largeurs. */
.appointment-timeline-heading {
  flex-wrap: wrap;
}
.appointment-timeline-heading-actions {
  min-width: 0;
  flex-wrap: wrap;
}
.dashboard-planning-frame .patient-context-card {
  grid-template-columns: auto minmax(0,1fr);
  grid-template-rows: minmax(0,1fr) auto;
  align-content: start;
}
.dashboard-planning-frame .patient-context-card .live-patient-indicator {
  grid-column: 1;
  grid-row: 1;
  margin-top: 5px;
}
.dashboard-planning-frame .patient-context-card .live-patient-copy {
  grid-column: 2;
  grid-row: 1;
  width: 100%;
  min-width: 0;
}
.dashboard-planning-frame .patient-context-card .live-patient-time {
  grid-column: 2;
  grid-row: 2;
  justify-self: start;
  margin-top: 6px;
}
.dashboard-planning-frame .patient-context-card .live-patient-copy strong,
.dashboard-planning-frame .patient-context-detail,
.dashboard-planning-frame .patient-context-live-status {
  min-width: 0;
  overflow-wrap: anywhere;
}
.dashboard-planning-frame .patient-context-metrics {
  max-width: 100%;
}
.dashboard-planning-frame .patient-context-metrics i {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}
@media (max-width: 1100px) {
  .appointment-timeline-heading-actions > p {
    display: none;
  }
  .dashboard-planning-frame .live-patient-ribbon-viewport {
    grid-template-columns: repeat(3,minmax(260px,1fr));
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .dashboard-planning-frame .live-patient-ribbon-viewport::-webkit-scrollbar {
    display: none;
  }
  .dashboard-planning-frame .patient-context-card {
    border-left: 0 !important;
    border-radius: 14px;
    scroll-snap-align: center;
  }
}
@media (max-width: 700px) {
  .appointment-timeline-heading {
    align-items: center;
  }
  .appointment-timeline-heading-actions {
    margin-left: auto;
  }
  .dashboard-planning-frame .live-patient-ribbon-viewport {
    grid-template-columns: repeat(3,minmax(278px,1fr));
  }
}


/* Session mechanical exposure summary */
.session-mechanical-exposure {
  margin: 12px 0;
  padding: 14px 16px 11px;
  border-block: 1px solid rgba(var(--primary-rgb), .13);
  background: linear-gradient(110deg, rgba(238, 242, 255, .76), rgba(239, 252, 249, .58));
}
.session-mechanical-exposure > header {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}
.session-mechanical-exposure > header span {
  display: block;
  margin-bottom: 2px;
  color: var(--primary);
  font-size: 9px;
  font-weight: var(--fw-b);
  letter-spacing: .075em;
  text-transform: uppercase;
}
.session-mechanical-exposure h4 { margin: 0; color: var(--tx); font-size: 15px; letter-spacing: -.015em; }
.session-mechanical-exposure details { position: relative; flex: 0 0 auto; }
.session-mechanical-exposure summary {
  color: var(--primary-dk);
  font-size: 11px;
  font-weight: var(--fw-sb);
  cursor: pointer;
  list-style: none;
}
.session-mechanical-exposure summary::-webkit-details-marker { display: none; }
.session-mechanical-exposure details > p {
  position: absolute;
  z-index: 5;
  top: 22px;
  right: 0;
  width: min(320px, calc(100vw - 64px));
  margin: 0;
  padding: 11px 12px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(38, 45, 88, .14);
  color: var(--tx-2);
  font-size: 11px;
  line-height: 1.45;
}
.session-mechanical-exposure dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
}
.session-mechanical-exposure dl > div { min-width: 0; padding: 0 12px; border-left: 1px solid rgba(var(--primary-rgb), .12); }
.session-mechanical-exposure dl > div:first-child { padding-left: 0; border-left: 0; }
.session-mechanical-exposure dl > div:last-child { padding-right: 0; }
.session-mechanical-exposure dt { margin: 0 0 3px; color: var(--tx-4); font-size: 9px; font-weight: var(--fw-b); letter-spacing: .055em; text-transform: uppercase; }
.session-mechanical-exposure dd { margin: 0; color: var(--tx); font-size: 12px; font-weight: var(--fw-b); line-height: 1.25; overflow-wrap: anywhere; }
.session-mechanical-exposure small { display: block; margin-top: 3px; color: var(--tx-3); font-size: 9px; line-height: 1.3; }
.session-mechanical-exposure .has-response-signal dd { color: #a85828; }
.session-mechanical-exposure > p { margin: 10px 0 0; color: var(--tx-3); font-size: 9px; line-height: 1.4; }

@media (max-width: 720px) {
  .session-mechanical-exposure { padding: 13px 12px 10px; }
  .session-mechanical-exposure dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 0; }
  .session-mechanical-exposure dl > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .session-mechanical-exposure dd { font-size: 11px; }
}


/* Visual analysis shown after selecting a phase session */
.prototype-mechanical-insight { display: grid; grid-column: 1 / -1; min-width: 0; gap: 10px; }
.prototype-mechanical-insight > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.prototype-mechanical-insight > header small { display: block; margin-bottom: 2px; color: var(--tx-4); font-size: 8px; font-weight: 760; letter-spacing: .045em; text-transform: uppercase; }
.prototype-mechanical-insight > header h5 { margin: 0 !important; color: var(--tx); font-size: 14px !important; }
.prototype-mechanical-insight > header > span { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; background: rgba(var(--primary-rgb), .09); color: var(--primary-dk); font-size: 9px; font-weight: 780; }
.prototype-mechanical-insight.is-above > header > span { background: rgba(226,151,82,.15); color: #9a5727; }
.prototype-mechanical-insight-grid { display: grid; grid-template-columns: 104px minmax(180px,.9fr) minmax(220px,1.2fr); align-items: center; gap: 16px; }
.prototype-mechanical-dose-ring {
  display: grid;
  width: 88px;
  aspect-ratio: 1;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(var(--primary) var(--dose-ring-value), rgba(var(--primary-rgb), .1) 0);
}
.prototype-mechanical-dose-ring::before { grid-area: 1/1; width: 68px; aspect-ratio: 1; border-radius: 50%; background: #fff; content: ''; }
.prototype-mechanical-dose-ring > div { z-index: 1; grid-area: 1/1; display: grid; place-items: center; }
.prototype-mechanical-dose-ring strong { color: var(--primary-dk); font-size: 17px; line-height: 1; }
.prototype-mechanical-dose-ring span { margin-top: 3px; color: var(--tx-4); font-size: 8px; }
.prototype-mechanical-comparison { display: grid; gap: 7px; }
.prototype-mechanical-comparison > div { display: grid; grid-template-columns: 52px minmax(70px,1fr) 28px; align-items: center; gap: 7px; }
.prototype-mechanical-comparison span { color: var(--tx-3); font-size: 9px; font-weight: 720; }
.prototype-mechanical-comparison i { height: 7px; overflow: hidden; border-radius: 99px; background: rgba(118,112,208,.1); }
.prototype-mechanical-comparison b { display: block; height: 100%; border-radius: inherit; background: repeating-linear-gradient(90deg, rgba(118,112,208,.65) 0 6px, transparent 6px 10px); }
.prototype-mechanical-comparison .is-actual b { background: linear-gradient(90deg, #6170e8, #4baaa0); }
.prototype-mechanical-comparison strong { color: var(--tx-2); font-size: 10px; text-align: right; }
.prototype-mechanical-comparison > small { color: var(--tx-4); font-size: 8px; }
.prototype-mechanical-response { min-width: 0; padding-left: 15px; border-left: 1px solid rgba(var(--primary-rgb), .1); }
.prototype-mechanical-response > small { display: block; margin-bottom: 9px; color: var(--tx-3); font-size: 9px; font-weight: 760; }
.prototype-mechanical-response > div { display: grid; grid-template-columns: auto 1fr auto 1fr auto; align-items: center; gap: 7px; }
.prototype-mechanical-response span { display: grid; justify-items: center; gap: 2px; }
.prototype-mechanical-response b { color: var(--tx); font-size: 11px; }
.prototype-mechanical-response em { color: var(--tx-4); font-size: 8px; font-style: normal; white-space: nowrap; }
.prototype-mechanical-response i { height: 3px; border-radius: 99px; background: linear-gradient(90deg, rgba(var(--primary-rgb), .28), rgba(64,171,148,.52)); }
.prototype-mechanical-response.is-watch i { background: linear-gradient(90deg, rgba(var(--primary-rgb), .28), rgba(220,143,74,.6)); }
.prototype-mechanical-insight > footer { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; }
.prototype-mechanical-insight > footer > span { padding: 4px 7px; border-radius: 7px; background: rgba(255,255,255,.7); color: var(--tx-2); font-size: 8px; font-weight: 760; }
.prototype-mechanical-insight > footer > p { flex: 1 1 280px; margin: 0; color: var(--tx-4); font-size: 8px; line-height: 1.4; }
.trajectory-card-front .prototype-insight-panel:has(.prototype-mechanical-insight) { display: grid; grid-template-columns: 1fr; gap: 9px; padding: 12px 14px; }
.trajectory-card-front .prototype-insight-panel:has(.prototype-mechanical-insight) .prototype-insight-actions { grid-column: 1; justify-content: flex-start; }

@media (max-width: 760px) {
  .prototype-mechanical-insight-grid { grid-template-columns: 86px minmax(0,1fr); gap: 12px; }
  .prototype-mechanical-dose-ring { width: 76px; }
  .prototype-mechanical-dose-ring::before { width: 58px; }
  .prototype-mechanical-dose-ring strong { font-size: 15px; }
  .prototype-mechanical-response { grid-column: 1 / -1; padding: 9px 0 0; border-top: 1px solid rgba(var(--primary-rgb), .1); border-left: 0; }
}

@media (max-width: 430px) {
  .prototype-mechanical-insight > header { align-items: flex-start; flex-direction: column; gap: 6px; }
  .prototype-mechanical-insight-grid { grid-template-columns: 72px minmax(0,1fr); }
  .prototype-mechanical-dose-ring { width: 66px; }
  .prototype-mechanical-dose-ring::before { width: 50px; }
  .prototype-mechanical-dose-ring strong { font-size: 13px; }
  .prototype-mechanical-comparison > div { grid-template-columns: 44px minmax(54px,1fr) 24px; gap: 5px; }
}


/* Stabilize the phase insight area to prevent hover reflow loops. */
.prototype-progression.is-phase-period .prototype-insight-panel {
  min-height: 188px;
  align-content: center;
}
.prototype-progression.is-phase-period .prototype-chart-measured-point {
  touch-action: manipulation;
}

@media (max-width: 620px) {
  .prototype-progression.is-phase-period .prototype-insight-panel {
    min-height: 214px;
    align-content: start;
  }
}


/* Accueil : la frise de rendez-vous reprend le gabarit des autres bannières. */
.dashboard-tab > .dashboard-planning-frame {
  min-height: 164px;
  gap: 8px;
}
.dashboard-planning-frame .appointment-timeline-heading {
  min-height: 32px;
}
.dashboard-planning-frame .live-patient-navigator.topbar-clinical-ribbon {
  min-height: 124px;
}


@media (max-width: 700px) {
  .dashboard-tab > .dashboard-planning-frame {
    min-height: 150px;
  }
  .dashboard-planning-frame .live-patient-navigator.topbar-clinical-ribbon {
    min-height: 110px;
  }
  .dashboard-planning-frame .patient-context-card {
    min-height: 96px;
    padding-block: 10px;
  }
}


/* Accueil : même direction artistique pour Espace clinique et la frise de rendez-vous. */
.dashboard-tab > .dashboard-planning-frame {
  padding: 16px 20px;
  border: 1px solid rgba(76,68,132,.11);
  border-radius: 20px;
  background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(249,248,255,.94));
  box-shadow: 0 9px 26px rgba(52,44,102,.055);
}
.dashboard-planning-frame .appointment-timeline-heading {
  padding: 0 4px;
}
.dashboard-planning-frame .live-patient-navigator.topbar-clinical-ribbon {
  min-height: 108px;
  padding: 0;
  border: 0;
  border-radius: 15px;
  background: transparent;
  box-shadow: none;
}
.dashboard-planning-frame .patient-context-card {
  min-height: 100px;
  padding-block: 10px;
}


@media (max-width: 700px) {
  .dashboard-tab > .dashboard-planning-frame {
    padding: 14px;
    border-radius: 18px;
  }
  .dashboard-planning-frame .live-patient-navigator.topbar-clinical-ribbon {
    min-height: 102px;
  }
  .dashboard-planning-frame .patient-context-card {
    min-height: 94px;
  }
}


/* Accueil : frise de rendez-vous violette, lisible et distincte. */
.dashboard-tab > .dashboard-planning-frame {
  border-color: rgba(74,62,151,.32);
  background:
    radial-gradient(circle at 92% 12%, rgba(180,169,255,.28), transparent 18rem),
    linear-gradient(135deg,#2f294f 0%,#40366f 58%,#5a49aa 100%);
  box-shadow: 0 18px 42px rgba(36,33,61,.18);
}
.dashboard-planning-frame .appointment-timeline-heading span {
  color: #c9c2ff;
}
.dashboard-planning-frame .appointment-timeline-heading h2 {
}
.dashboard-planning-frame .appointment-timeline-heading p {
  color: rgba(246,244,255,.68);
}
.dashboard-planning-frame .appointment-timeline-heading-actions button,
.dashboard-planning-frame .live-patient-ribbon-control,
.dashboard-planning-frame .live-patient-ribbon-now {
  border-color: rgba(255,255,255,.2);
  background: rgba(255,255,255,.1);
  color: #fff;
}
.dashboard-planning-frame .appointment-timeline-heading-actions button:hover,
.dashboard-planning-frame .appointment-timeline-heading-actions button[aria-pressed="true"],
.dashboard-planning-frame .live-patient-ribbon-control:hover,
.dashboard-planning-frame .live-patient-ribbon-now:hover {
  border-color: rgba(255,255,255,.36);
  background: rgba(255,255,255,.18);
}
.dashboard-planning-frame .patient-context-card {
  background: rgba(255,255,255,.045);
}
.dashboard-planning-frame .patient-context-card + .patient-context-card {
  border-left-color: rgba(255,255,255,.14);
}
.dashboard-planning-frame .patient-context-card:hover:not(:disabled) {
  background: rgba(255,255,255,.11);
}
.dashboard-planning-frame .patient-context-card.is-current-patient {
  background: linear-gradient(145deg,rgba(255,255,255,.2),rgba(226,222,255,.12));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.24),0 8px 22px rgba(26,21,56,.16);
}
.dashboard-planning-frame .patient-context-card .live-patient-copy > span:first-child,
.dashboard-planning-frame .patient-context-card .patient-context-detail,
.dashboard-planning-frame .patient-context-card .patient-context-live-status,
.dashboard-planning-frame .patient-context-card .live-patient-time {
  color: rgba(246,244,255,.72) !important;
}
.dashboard-planning-frame .patient-context-card .live-patient-copy strong {
  color: #fff;
}
.dashboard-planning-frame .patient-context-metrics i {
  border-color: rgba(255,255,255,.17);
  background: rgba(255,255,255,.1);
  color: rgba(255,255,255,.84);
}
.dashboard-planning-frame .patient-context-live-status::before {
  box-shadow: 0 0 0 3px rgba(255,255,255,.1);
}


/* Frise de rendez-vous : hiérarchie courte, adaptée aux petits écrans. */
.dashboard-planning-frame .patient-context-card .live-patient-time {
  display: none !important;
}
.dashboard-planning-frame .patient-context-card {
  grid-template-rows: 1fr;
}
.dashboard-planning-frame .patient-context-card .live-patient-copy {
  grid-template-rows: repeat(4,auto);
  row-gap: 4px;
}
.dashboard-planning-frame .patient-context-card .patient-context-detail {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
.dashboard-planning-frame .patient-context-metrics {
  margin-top: 0;
}
.dashboard-planning-frame .patient-context-card:not(.patient-context-current) .patient-context-metrics {
  display: none !important;
}

@media (max-width: 700px) {
  .dashboard-planning-frame .patient-context-metrics {
    display: none !important;
  }
  .dashboard-planning-frame .patient-context-card {
    min-height: 88px;
    padding-block: 9px;
  }
  .dashboard-planning-frame .patient-context-card .live-patient-copy {
    row-gap: 3px;
  }
  .dashboard-planning-frame .patient-context-card .live-patient-copy strong {
    font-size: 14px;
  }
  .dashboard-planning-frame .patient-context-live-status,
  .dashboard-planning-frame .patient-context-detail {
    font-size: 9px !important;
  }
}


/* Frise de rendez-vous : en-tête éditorial réduit à l’essentiel. */
.dashboard-planning-frame .appointment-timeline-heading {
  min-height: 24px;
  align-items: center;
  padding: 0 2px;
}
.dashboard-planning-frame .appointment-timeline-heading h2 {
  font-size: 15px;
  font-weight: 780;
}
.dashboard-planning-frame .appointment-timeline-heading-actions {
  display: none;
}
.dashboard-tab > .dashboard-planning-frame {
  gap: 6px;
}


/* Frise de rendez-vous : cartouche de titre intégré à la bannière. */
.dashboard-planning-frame .appointment-timeline-heading h2 {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 9px;
  padding: 7px 12px 7px 9px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 12px;
  background: linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,.07));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
  color: #fff;
  font-size: 14px;
  font-weight: 790;
  letter-spacing: -.01em;
}
.dashboard-planning-frame .appointment-timeline-heading h2::before {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border: 2px solid rgba(255,255,255,.9);
  border-radius: 50%;
  background: #9ee6d4;
  box-shadow: 0 0 0 4px rgba(158,230,212,.12);
  content: "";
}

@media (max-width: 700px) {
  .dashboard-planning-frame .appointment-timeline-heading h2 {
    min-height: 31px;
    padding: 6px 10px 6px 8px;
    border-radius: 10px;
    font-size: 13px;
  }
}


/* Frise de rendez-vous : une date commune, puis uniquement les heures. */
.dashboard-planning-frame .appointment-timeline-heading h2 .appointment-timeline-date {
  margin-left: 2px;
  padding-left: 10px;
  border-left: 1px solid rgba(255,255,255,.2);
  color: rgba(246,244,255,.7);
  font-size: 11px;
  font-weight: 680;
  letter-spacing: 0;
  text-transform: none;
}
.dashboard-planning-frame .patient-context-card[data-state="empty"] .live-patient-copy {
  align-content: center;
}
.dashboard-planning-frame .patient-context-card[data-state="empty"] .live-patient-copy strong {
  color: rgba(255,255,255,.72);
  font-weight: 700;
}

@media (max-width: 700px) {
  .dashboard-planning-frame .appointment-timeline-heading h2 .appointment-timeline-date {
    padding-left: 8px;
    font-size: 10px;
  }
}


/* Frise de rendez-vous : flèches séparées aux deux extrémités. */
.dashboard-planning-frame .live-patient-navigator.topbar-clinical-ribbon {
  grid-template-columns: 38px minmax(0,1fr) 38px;
  align-items: center;
  gap: 10px;
}
.dashboard-planning-frame .live-patient-ribbon-viewport {
  grid-column: 2;
  grid-row: 1;
}
.dashboard-planning-frame .live-patient-ribbon-side {
  position: relative;
  z-index: 2;
  align-self: center;
  justify-self: center;
}
.dashboard-planning-frame .live-patient-ribbon-side-previous {
  grid-column: 1;
  grid-row: 1;
}
.dashboard-planning-frame .live-patient-ribbon-side-next {
  grid-column: 3;
  grid-row: 1;
}
.dashboard-planning-frame .live-patient-ribbon-now {
  display: none !important;
}

@media (max-width: 700px) {
  .dashboard-planning-frame .live-patient-navigator.topbar-clinical-ribbon {
    grid-template-columns: 32px minmax(0,1fr) 32px;
    gap: 6px;
  }
  .dashboard-planning-frame .live-patient-ribbon-side {
    width: 32px;
    height: 32px;
    min-width: 32px;
  }
}


/* Espace patient : accueil progressif, centré sur l’action du jour. */
.patient-app-tab.is-home-view .patient-workspace {
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}
.patient-app-tab.is-home-view .patient-home-area {
  width: min(100%, 880px);
  margin: 0 auto;
  gap: 16px;
}
.patient-home-welcome--simple {
  padding: 4px 2px 0;
}
.patient-home-welcome--simple h2 {
  font-size: clamp(27px,4vw,34px);
}
.patient-home-welcome--simple p:last-child {
  margin-top: 5px;
  font-size: 13px;
}
.patient-home-primary--simple {
  padding: clamp(20px,4vw,28px);
  border-radius: 22px;
}
.patient-home-primary--simple > span {
  margin-bottom: 7px;
}
.patient-home-primary--simple h3 {
  font-size: clamp(21px,3vw,27px);
}
.patient-home-primary--simple p {
  max-width: 560px;
  margin: 9px 0 16px;
  font-size: 13px;
  line-height: 1.45;
}
.patient-home-at-a-glance {
  display: grid;
  grid-template-columns: minmax(0,1.5fr) minmax(190px,.8fr);
  gap: 10px;
}
.patient-home-glance-card {
  display: grid;
  min-width: 0;
  min-height: 104px;
  align-content: center;
  gap: 5px;
  padding: 15px 17px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255,255,255,.88);
  color: var(--tx);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.patient-home-glance-card--progress {
  border-color: rgba(var(--primary-rgb), .18);
  background: linear-gradient(140deg,rgba(239,241,255,.96),rgba(255,255,255,.94));
}
.patient-home-glance-card:hover,
.patient-home-glance-card:focus-visible {
  border-color: rgba(var(--primary-rgb), .34);
  outline: 0;
  box-shadow: 0 9px 22px rgba(52,44,102,.08);
}
.patient-home-glance-card > span {
  color: var(--primary);
  font-size: 9px;
  font-weight: 820;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.patient-home-glance-card > strong {
  overflow: hidden;
  color: var(--tx);
  font-size: 15px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.patient-home-glance-card > small {
  color: var(--tx-3);
  font-size: 10px;
  line-height: 1.35;
}
@media (max-width: 700px) {
  .patient-app-tab.is-home-view .patient-workspace { padding: 10px 12px 18px; }
  .patient-app-tab.is-home-view .patient-home-area { gap: 12px; }
  .patient-home-at-a-glance { grid-template-columns: 1fr; }
  .patient-home-glance-card { min-height: 88px; padding: 13px 14px; }
}


/* 2026-09-12 — bibliothèque d’exercices allégée pour la bêta */
/* Les assets validés sont accessibles ; Motion Lab demeure séparé. */
.gym-exercise-card {
  grid-template-rows: minmax(138px, auto) auto;
  min-height: 220px;
  overflow: visible;
  background: linear-gradient(145deg, #fff 0%, rgba(246,247,255,.72) 100%);
}
.gym-exercise-copy { padding-top: 22px; }
.gym-exercise-card .gym-favorite-button { top: 14px; right: 14px; }
@media (max-width: 700px) {
  .gym-hero { align-items: stretch; flex-direction: column; }
  .gym-clinical-library-link { align-self: flex-start; }
  .gym-toolbar { grid-template-columns: 1fr; }
  .gym-exercise-grid { grid-template-columns: 1fr; }
  .gym-exercise-card { min-height: 0; }
}


/* Aperçu de fonctionnalité réutilisable : contenu perceptible, verrouillé et non interactif. */
.feature-preview-overlay {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.feature-preview-overlay__content {
  pointer-events: none !important;
  user-select: none;
  -webkit-user-select: none;
}
.feature-preview-overlay__content :is(a, button, input, select, textarea, summary, [tabindex]) {
  pointer-events: none !important;
}
.feature-preview-overlay__message {
  pointer-events: auto;
}

/* 2026-09-12 — aperçu verrouillé du futur Gymnase */
.gym-future-preview {
  position: relative;
  min-height: 330px;
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 22px;
  background: linear-gradient(135deg, #e8eaff, #f8eee8);
  isolation: isolate;
}
.gym-future-preview-stage {
  position: absolute;
  inset: -18px;
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 11px;
  padding: 24px;
  opacity: 1;
  transform: rotate(-1deg) scale(1.05);
}
.gym-future-preview-stage > figure {
  min-width: 0;
  display: grid;
  grid-template-rows: minmax(92px,1fr) 34px;
  min-height: 132px;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 15px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 10px 25px rgba(47,54,104,.15);
}
.gym-future-preview-stage figcaption {
  display: grid;
  align-content: center;
  gap: 6px;
  padding: 7px 10px;
  background: rgba(255,255,255,.94);
}
.gym-future-preview-stage figcaption i {
  display: block;
  height: 5px;
  border-radius: 999px;
  background: rgba(73,80,125,.2);
}
.gym-future-preview-stage figcaption i:first-child { width: 72%; }
.gym-future-preview-stage figcaption i:last-child { width: 43%; opacity: .62; }

.gym-future-preview-stage img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center;
  opacity: .92;
  filter: blur(2.5px) saturate(.82);
  -webkit-filter: blur(2.5px) saturate(.82);
  transform: scale(1.07);
}
.gym-future-preview::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(135deg,rgba(232,235,251,.08),rgba(251,241,235,.06));
}
.gym-future-preview-lock {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 6px;
  padding: 24px;
  background: transparent;
  text-align: center;
}
.gym-future-preview-lock::before {
  position: absolute;
  width: min(390px, calc(100% - 36px));
  height: 142px;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 22px;
  background: rgba(250,250,255,.82);
  -webkit-backdrop-filter: blur(13px);
  backdrop-filter: blur(13px);
  box-shadow: 0 18px 50px rgba(39,44,86,.16);
  content: "";
}
.gym-future-preview-lock > * {
  position: relative;
  z-index: 1;
}
.gym-future-preview-lock > span {
  color: var(--primary-dk);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.gym-future-preview-lock > strong {
  color: var(--tx);
  font-size: clamp(24px,4vw,36px);
  line-height: 1;
}
.gym-future-preview-lock > p {
  max-width: 440px;
  margin: 0;
  color: var(--tx-3);
  font-size: 11px;
  font-weight: 650;
}
.gym-beta-library-available {
  position: relative;
  z-index: 1;
  display: grid;
  gap: var(--s4);
  filter: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  opacity: 1 !important;
  pointer-events: auto;
}
.gym-beta-library-available::before { display: none !important; }
.gym-beta-library-heading { display: grid; gap: 4px; padding-top: 4px; }
.gym-beta-library-heading > span { color: #137761; font-size: 9px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.gym-beta-library-heading > h3 { margin: 0; color: var(--tx); font-size: clamp(20px,3vw,28px); }
.gym-beta-library-heading > p { margin: 0; color: var(--tx-3); font-size: 11px; }
@media (max-width: 700px) {
  .gym-future-preview { min-height: 270px; }
  .gym-future-preview-stage {
    inset: -14px;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 8px;
    padding: 18px;
    transform: rotate(-1deg) scale(1.06);
  }
  .gym-future-preview-stage > figure {
    grid-template-rows: minmax(78px,1fr) 28px;
    min-height: 110px;
    border-radius: 12px;
  }
  .gym-future-preview-stage figcaption { gap: 4px; padding: 6px 8px; }
  .gym-future-preview-stage figcaption i { height: 4px; }
  .gym-future-preview-lock { padding: 18px; }
}


/* Pilot reading cards share the clinical library styles, without nested decorative cards. */
.clinical-library-resource { border-color: rgba(var(--primary-rgb), .28); }
.clinical-library-resource .clinical-library-card-details section + section {
  margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--border);
}
.clinical-library-resource .clinical-library-card-details p { line-height: 1.65; }
.clinical-library-resource .clinical-library-sources a { overflow-wrap: anywhere; }
.clinical-library-resource summary { min-height: 44px; padding-block: 10px; cursor: pointer; }
.clinical-library-resource summary:focus-visible { outline: 3px solid var(--primary); outline-offset: 3px; border-radius: 8px; }

/* 2026-09-12 — aperçu verrouillé de la bibliothèque scientifique */
#libraryTab.beta-preview-only {
  position: relative;
  min-height: min(620px,76vh);
  max-height: min(620px,76vh);
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 22px;
  background: #f5f5fb;
  isolation: isolate;
}
#libraryTab.beta-preview-only > .clinical-library-page {
  display: block !important;
  min-height: 100%;
  margin: 0;
  pointer-events: none;
  user-select: none;
  filter: blur(13px) saturate(.68);
  opacity: .48;
  transform: scale(1.035);
  transform-origin: center top;
}
.scientific-future-preview {
  position: absolute;
  z-index: 3;
  inset: 0;
  min-height: 100%;
  border: 0;
  border-radius: inherit;
  background: rgba(238,240,251,.28);
}
.scientific-future-preview-stage { display: none; }
.scientific-future-preview .gym-future-preview-lock {
  background: rgba(247,247,252,.54);
  -webkit-backdrop-filter: blur(8px) saturate(.76);
  backdrop-filter: blur(8px) saturate(.76);
}
@media (max-width: 700px) {
  #libraryTab.beta-preview-only {
    min-height: calc(100dvh - 150px);
    max-height: calc(100dvh - 150px);
  }
}


/* 2026-09-12 — participation des kinés aux chantiers */
.feature-lab-open-btn {
  min-height: 38px;
  margin-top: 8px;
  padding: 8px 14px;
  border: 1px solid rgba(var(--primary-rgb), .2);
  border-radius: 999px;
  background: rgba(255,255,255,.84);
  color: var(--primary-dk);
  font: inherit;
  font-size: 10px;
  font-weight: 850;
  box-shadow: 0 8px 22px rgba(48,55,104,.1);
  cursor: pointer;
}
.feature-lab-open-btn:hover,
.feature-lab-open-btn:focus-visible { background: #fff; outline: 3px solid rgba(var(--primary-rgb), .12); }
.feature-lab-modal-content {
  width: min(980px,calc(100vw - 32px));
  max-height: min(880px,calc(100dvh - 32px));
  padding: 0;
  overflow: auto;
  border-radius: 24px;
}
.feature-lab-header {
  position: sticky;
  z-index: 4;
  top: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 24px 26px 18px;
  border-bottom: 1px solid rgba(var(--primary-rgb), .09);
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(18px);
}
.feature-lab-header > div { display: grid; min-width: 0; gap: 4px; }
.feature-lab-header > .close-icon { flex: 0 0 44px; width: 44px; min-width: 44px; height: 44px; padding: 0; font-size: 20px; line-height: 1; }
.feature-lab-header span { color: var(--primary-dk); font-size: 9px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.feature-lab-header h2 { margin: 0; font-size: clamp(26px,4vw,38px); }
.feature-lab-header p { max-width: 680px; margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.5; }
.feature-lab-boundary { margin: 16px 26px 0; padding: 10px 12px; border-radius: 12px; background: rgba(var(--primary-rgb), .055); color: var(--tx-3); font-size: 10px; }
.feature-lab-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; padding: 18px 26px 26px; }
.feature-lab-card { display: flex; min-width: 0; flex-direction: column; gap: 12px; padding: 17px; border: 1px solid rgba(var(--primary-rgb), .11); border-radius: 18px; background: linear-gradient(150deg,#fff,rgba(246,247,255,.72)); transition: border-color 160ms ease, box-shadow 160ms ease; }
.feature-lab-card.is-feature-focus { border-color: rgba(var(--primary-rgb), .38); box-shadow: 0 14px 34px rgba(48,55,104,.11); }
.feature-lab-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.feature-lab-card > header div { display: grid; gap: 3px; }
.feature-lab-card > header span { color: var(--tx-4); font-size: 8px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.feature-lab-card > header h3 { margin: 0; font-size: 18px; line-height: 1.15; }
.feature-lab-card > header em { flex: 0 0 auto; padding: 4px 7px; border-radius: 999px; background: rgba(232,157,112,.13); color: #9d5532; font-size: 8px; font-style: normal; font-weight: 800; }
.feature-lab-card > p { min-height: 48px; margin: 0; color: var(--tx-3); font-size: 10px; line-height: 1.5; }
.feature-lab-card details { border-top: 1px solid rgba(var(--primary-rgb), .08); border-bottom: 1px solid rgba(var(--primary-rgb), .08); }
.feature-lab-card details > summary { padding: 10px 0; color: var(--primary-dk); font-size: 9px; font-weight: 800; cursor: pointer; }
.feature-lab-card dl { display: grid; gap: 9px; margin: 0 0 12px; }
.feature-lab-card dl div { display: grid; gap: 2px; }
.feature-lab-card dt { color: var(--tx-4); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.feature-lab-card dd { margin: 0; color: var(--tx-2); font-size: 9px; line-height: 1.45; }
.feature-lab-card form { display: grid; gap: 10px; margin-top: auto; }
.feature-lab-card form fieldset { display: grid; gap: 6px; margin: 0; padding: 0; border: 0; }
.feature-lab-card form legend,
.feature-lab-card form > label:not(.feature-lab-test-optin) { display: grid; gap: 5px; color: var(--tx-3); font-size: 9px; font-weight: 750; }
.feature-lab-rating { display: grid; grid-template-columns: repeat(5,1fr); gap: 5px; }
.feature-lab-rating label { cursor: pointer; }
.feature-lab-rating input { position: absolute; opacity: 0; pointer-events: none; }
.feature-lab-rating span { display: grid; min-height: 44px; place-items: center; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 9px; background: #fff; color: var(--tx-3); font-size: 11px; font-weight: 850; }
.feature-lab-rating input:checked + span { border-color: var(--primary); background: var(--primary); color: #fff; }
.feature-lab-rating input:focus-visible + span { outline: 3px solid rgba(var(--primary-rgb), .15); }
.feature-lab-card fieldset small { color: var(--tx-4); font-size: 8px; }
.feature-lab-card textarea { width: 100%; resize: vertical; padding: 9px 10px; border: 1px solid rgba(var(--primary-rgb), .13); border-radius: 10px; background: #fff; color: var(--tx); font: inherit; font-size: 10px; }
.feature-lab-test-optin { display: flex; flex-direction: row; align-items: center; gap: 7px; color: var(--tx-2); font-size: 9px; font-weight: 750; }
.feature-lab-test-optin input { accent-color: var(--primary); }
.feature-lab-card form footer { display: grid; gap: 5px; }
.feature-lab-card form footer .primary-btn { width: 100%; min-height: 38px; }
.feature-lab-card form footer p { min-height: 14px; margin: 0; color: #137761; font-size: 8px; line-height: 1.4; }
@media (max-width: 900px) { .feature-lab-list { grid-template-columns: 1fr; } .feature-lab-card > p { min-height: 0; } }
@media (max-width: 700px) {
  .feature-lab-modal-content { width: 100%; max-height: 94dvh; margin-top: auto; border-radius: 22px 22px 0 0; }
  .feature-lab-header { padding: 18px 16px 14px; }
  .feature-lab-boundary { margin: 12px 16px 0; }
  .feature-lab-list { padding: 14px 16px 24px; }
}

.feature-lab-admin-summary {
  margin: 14px 26px 0;
  padding: 16px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 16px;
  background: linear-gradient(145deg,rgba(243,245,255,.95),rgba(255,255,255,.96));
}
.feature-lab-admin-summary > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.feature-lab-admin-summary > header div { display: grid; gap: 2px; }
.feature-lab-admin-summary > header span { color: var(--primary-dk); font-size: 8px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.feature-lab-admin-summary > header h3 { margin: 0; font-size: 17px; }
.feature-lab-admin-summary > header > small { color: var(--tx-4); font-size: 8px; }
#featureLabAdminResults { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.feature-lab-admin-card { min-width: 0; padding: 12px; border-radius: 13px; background: rgba(255,255,255,.84); }
.feature-lab-admin-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.feature-lab-admin-card h4 { margin: 0; font-size: 11px; line-height: 1.3; }
.feature-lab-admin-card > header strong { color: var(--primary-dk); font-size: 19px; white-space: nowrap; }
.feature-lab-admin-card > header strong small { color: var(--tx-4); font-size: 8px; }
.feature-lab-admin-metrics { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.feature-lab-admin-metrics span { padding: 4px 7px; border-radius: 999px; background: rgba(var(--primary-rgb), .07); color: var(--tx-3); font-size: 8px; font-weight: 750; }
.feature-lab-admin-card ul { display: grid; gap: 6px; margin: 10px 0 0; padding: 0; list-style: none; }
.feature-lab-admin-card li { padding-top: 6px; border-top: 1px solid rgba(var(--primary-rgb), .07); }
.feature-lab-admin-card li p { margin: 0; color: var(--tx-2); font-size: 8px; line-height: 1.4; }
.feature-lab-admin-card li small { display: block; margin-top: 2px; color: var(--tx-4); font-size: 7px; }
.feature-lab-admin-empty { margin: 8px 0 0; color: var(--tx-4); font-size: 8px; }
@media (max-width: 900px) { #featureLabAdminResults { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .feature-lab-admin-summary { margin: 12px 16px 0; } }

.authentication-card[data-auth-profile="admin"] .authentication-profile-option.active {
  background: linear-gradient(145deg,#ffffff,#f1efff);
  color: #5544ae;
  box-shadow: 0 4px 14px rgba(71,54,145,.14);
}
.authentication-card[data-auth-profile="admin"] .authentication-submit {
  background: linear-gradient(135deg,#6556cc,#4d439b);
}
@media (max-width: 390px) {
  .authentication-profile-switch { width: 100%; }
  .authentication-profile-option { padding-inline: 8px; }
}

/* 2026-09-12 — passage explicite au mode administrateur depuis les paramètres */
.role-btn-admin { border-color: rgba(var(--primary-rgb), .2); background: linear-gradient(135deg,rgba(var(--primary-rgb), .09),rgba(255,255,255,.9)); }
.role-admin-icon { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 11px; background: var(--primary); color: #fff; font-size: 15px; font-weight: 850; }
.admin-workspace-settings-card { align-items: center; grid-template-columns: minmax(0,1fr) auto; gap: var(--s4); background: linear-gradient(135deg,rgba(var(--primary-rgb), .1),rgba(255,255,255,.84)); border-color: rgba(var(--primary-rgb), .18); }
.admin-workspace-settings-card > div { display: grid; gap: 5px; }
.settings-account-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); }
.settings-account-heading > div { min-width: 0; }
.settings-mode-badge { width: max-content; padding: 5px 9px; border-radius: 999px; background: rgba(var(--primary-rgb), .12); color: var(--primary-dk); font-size: 9px; font-weight: 800; white-space: nowrap; }
.settings-mode-badge.is-neutral { background: var(--surface-2); color: var(--tx-3); }
.settings-mode-badge.is-admin { background: rgba(var(--primary-rgb), .14); color: var(--primary-dk); }
@media (max-width: 700px) {
  .admin-workspace-settings-card { grid-template-columns: 1fr; align-items: start; }
  .admin-workspace-settings-card .primary-btn { width: 100%; }
  .settings-account-heading { align-items: flex-start; }
}

/* 2026-09-12 — Gymnase séparé entre prescription active et animations futures */
.gym-page { gap: clamp(26px,4vw,44px); }
.gym-beta-library-available {
  order: 1;
  padding: clamp(18px,2.4vw,28px);
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 24px;
  background: rgba(255,255,255,.72);
}
.gym-beta-library-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-top: 0; }
.gym-beta-library-heading > div { display: grid; gap: 4px; min-width: 0; }
.gym-patient-link-badge,
.gym-coming-badge {
  flex: 0 0 auto;
  width: max-content;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 850;
  white-space: nowrap;
}
.gym-patient-link-badge { background: rgba(34,181,154,.11); color: #137761; }
.gym-animation-section {
  order: 2;
  display: grid;
  gap: 14px;
  padding-top: clamp(24px,3vw,36px);
  border-top: 1px solid rgba(var(--primary-rgb), .13);
}
.gym-animation-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.gym-animation-section-heading > div { display: grid; gap: 4px; min-width: 0; }
.gym-animation-section-heading > div > span { color: var(--primary-dk); font-size: 9px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.gym-animation-section-heading h3 { margin: 0; color: var(--tx); font-size: clamp(22px,3vw,30px); }
.gym-animation-section-heading p { max-width: 660px; margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.5; }
.gym-coming-badge { background: rgba(232,157,112,.16); color: #9d5532; }
.gym-animation-feedback {
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 18px;
  background: linear-gradient(145deg,rgba(246,247,255,.94),rgba(255,255,255,.96));
}
.gym-animation-feedback > summary {
  display: flex;
  min-height: 68px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 17px;
  cursor: pointer;
  list-style: none;
}
.gym-animation-feedback > summary::-webkit-details-marker { display: none; }
.gym-animation-feedback > summary > span:first-child { display: grid; gap: 2px; }
.gym-animation-feedback > summary strong { color: var(--tx); font-size: 13px; }
.gym-animation-feedback > summary small { color: var(--tx-3); font-size: 9px; }
.gym-feedback-open-label { padding: 7px 11px; border-radius: 999px; background: var(--primary); color: #fff; font-size: 9px; font-weight: 850; }
.gym-animation-feedback[open] .gym-feedback-open-label { background: rgba(var(--primary-rgb), .1); color: var(--primary-dk); }
.gym-animation-feedback[data-answered="true"] .gym-feedback-open-label { background: rgba(34,181,154,.12); color: #137761; }
.gym-animation-feedback > form {
  display: grid;
  grid-template-columns: minmax(220px,.8fr) minmax(260px,1.2fr);
  gap: 14px 18px;
  padding: 17px;
  border-top: 1px solid rgba(var(--primary-rgb), .1);
}
.gym-animation-feedback fieldset { display: grid; gap: 7px; margin: 0; padding: 0; border: 0; }
.gym-animation-feedback legend,
.gym-animation-feedback form > label:not(.feature-lab-test-optin) { display: grid; gap: 6px; color: var(--tx-3); font-size: 10px; font-weight: 750; }
.gym-animation-feedback textarea { width: 100%; resize: vertical; padding: 10px 11px; border: 1px solid rgba(var(--primary-rgb), .14); border-radius: 11px; background: #fff; color: var(--tx); font: inherit; font-size: 11px; }
.gym-animation-feedback fieldset > small { color: var(--tx-4); font-size: 8px; }
.gym-animation-feedback .feature-lab-test-optin { grid-column: 1; align-self: center; }
.gym-animation-feedback footer { grid-column: 2; display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.gym-animation-feedback footer p { margin: 0; color: #137761; font-size: 9px; }
@media (max-width: 700px) {
  .gym-beta-library-available { padding: 16px 14px; border-radius: 19px; }
  .gym-beta-library-heading,
  .gym-animation-section-heading { align-items: flex-start; flex-direction: column; gap: 9px; }
  .gym-animation-feedback > form { grid-template-columns: 1fr; padding: 14px; }
  .gym-animation-feedback .feature-lab-test-optin,
  .gym-animation-feedback footer { grid-column: 1; }
  .gym-animation-feedback footer { align-items: stretch; flex-direction: column; }
  .gym-animation-feedback footer .primary-btn { width: 100%; }
}


/* 2026-09-12 — médias futurs annoncés sans exposer un rendu provisoire */
.gym-locked-media-preview {
  display: grid;
  gap: 18px;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(245,246,252,.96), rgba(238,240,248,.92));
}
.gym-locked-media-copy { display: grid; gap: 4px; max-width: 620px; }
.gym-locked-media-copy > span { color: var(--primary-dk); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.gym-locked-media-copy > strong { color: var(--tx); font-size: clamp(19px, 2.6vw, 26px); line-height: 1.15; }
.gym-locked-media-copy > p { margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.5; }
.gym-locked-media-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; pointer-events: none; user-select: none; }
.gym-locked-media-card {
  position: relative;
  display: grid;
  min-height: 132px;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(75,84,118,.1);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(48,55,89,.07);
}
.gym-locked-media-card::before,
.gym-locked-media-card::after { position: absolute; right: 12px; left: 12px; height: 5px; border-radius: 999px; background: rgba(79,87,117,.08); content: ""; }
.gym-locked-media-card::before { bottom: 24px; }
.gym-locked-media-card::after { right: 42%; bottom: 13px; }
.gym-media-lock { position: relative; width: 34px; height: 28px; margin-bottom: 18px; border-radius: 8px; background: rgba(var(--primary-rgb), .12); }
.gym-media-lock::before { position: absolute; top: -17px; left: 8px; width: 14px; height: 19px; border: 3px solid rgba(var(--primary-rgb), .48); border-bottom: 0; border-radius: 10px 10px 0 0; content: ""; }
.gym-media-lock::after { position: absolute; top: 10px; left: 15px; width: 4px; height: 8px; border-radius: 999px; background: rgba(var(--primary-rgb), .55); content: ""; }
.gym-media-lock i { display: none; }
.gym-locked-media-card small { position: absolute; top: 10px; left: 11px; color: rgba(63,70,98,.45); font-size: 8px; font-weight: 780; letter-spacing: .05em; text-transform: uppercase; }
@media (max-width: 700px) {
  .gym-locked-media-preview { gap: 14px; padding: 16px; }
  .gym-locked-media-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .gym-locked-media-card { min-height: 112px; border-radius: 13px; }
}


/* Les trois animations référencées par VALIDATED_EXERCISE_ASSETS ne sont plus réservées à l’administration. */
.gym-exercise-preview-button { min-height: 180px; }
.gym-exercise-card:has(.gym-exercise-preview-button) { grid-template-rows: 180px auto auto; }
.session-exercise-name-open { cursor: pointer; }


/* 2026-09-12 — programmes préfaits depuis la bibliothèque personnelle */
.gym-personal-library-actions {
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  gap: 7px !important;
}
.gym-program-composer form { width: min(390px, calc(100vw - 40px)); }
.gym-collection-composer form select {
  width: 100%;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: #fff;
  color: var(--tx);
  font: inherit;
}
.gym-collection-composer form input:focus,
.gym-collection-composer form select:focus {
  border-color: rgba(var(--primary-rgb), .38);
  outline: 3px solid rgba(var(--primary-rgb), .09);
}
.gym-collection-composer form .gym-program-preview {
  padding: 9px 10px;
  border-radius: 10px;
  background: rgba(var(--primary-rgb), .06);
  color: var(--tx-3);
  line-height: 1.45;
}
.gym-exercise-card:not(:has(.gym-add-button)) { grid-template-rows: minmax(138px,auto); }
.gym-template-content { margin-top: 2px; border-top: 1px solid rgba(var(--primary-rgb), .1); }
.gym-template-content > summary {
  padding-top: 10px;
  color: var(--primary-dk);
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}
.gym-template-content ul { display: grid; gap: 5px; margin: 8px 0 0; padding-left: 18px; color: var(--tx-3); font-size: 10px; }
@media (max-width: 700px) {
  .gym-personal-library > header { display: grid; }
  .gym-personal-library-actions { justify-content: flex-start; flex-wrap: wrap; }
  .gym-view-switch { width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .gym-view-switch button { padding-inline: 9px; }
  .gym-template-grid { grid-template-columns: 1fr; }
}


/* 2026-09-12 — hiérarchie visuelle simplifiée du Gymnase */
.gym-page { gap: 18px; }
.gym-hero.gym-hero-compact {
  min-height: 0;
  padding: 2px 0 8px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.gym-hero-compact h2 { margin: 0; font-size: clamp(30px,4vw,42px); }
.gym-hero-compact p:not(.section-kicker) { margin-top: 5px; font-size: 12px; }
.gym-beta-library-available { gap: 14px; }
.gym-view-switch { margin-bottom: 2px; }
.gym-personal-library { gap: 8px; padding-bottom: 10px; }
.gym-personal-library > header > strong { color: var(--tx); font-size: 17px; }
.gym-personal-library-actions { gap: 6px !important; }
.gym-personal-library-actions .gym-collection-composer > summary { min-height: 34px; padding: 7px 10px; }
.gym-exercise-composer .gym-custom-exercise-form { grid-template-columns: 1fr; width: min(360px,calc(100vw - 40px)); }
.gym-toolbar { gap: 9px; }
.gym-results-heading { min-height: 22px; }
.gym-results-heading strong { font-size: 12px; }
.gym-animation-section { gap: 11px; margin-top: 6px; }
.gym-animation-section-heading-compact { align-items: center; }
.gym-animation-section-heading-compact h3 { margin: 0; font-size: 17px; }
.gym-locked-media-preview.gym-locked-media-preview-compact { gap: 0; padding: 15px; }
.gym-locked-media-preview-compact .gym-locked-media-grid { gap: 9px; }
.gym-locked-media-preview-compact .gym-locked-media-card { min-height: 104px; box-shadow: 0 5px 16px rgba(48,55,89,.05); }
@media (max-width: 700px) {
  .gym-page { gap: 14px; }
  .gym-hero.gym-hero-compact { padding: 0 0 5px; }
  .gym-hero-compact p:not(.section-kicker) { margin-top: 3px; }
  .gym-personal-library > header { gap: 9px; }
  .gym-personal-library-actions { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)); width: 100%; }
  .gym-personal-library-actions .gym-collection-composer > summary { display: grid; place-items: center; padding: 7px 5px; white-space: nowrap; }
  .gym-personal-library-actions .gym-collection-composer form { max-height: 70dvh; overflow-y: auto; }
  .gym-toolbar { grid-template-columns: 1fr 1fr; }
  .gym-toolbar .gym-search-field { grid-column: 1 / -1; }
  .gym-locked-media-preview.gym-locked-media-preview-compact { padding: 10px; }
  .gym-locked-media-preview-compact .gym-locked-media-card { min-height: 88px; }
}


/* One spacing rhythm for all home cards, including the nested clinical cards.
   Margins must not add to the grid gap around the appointment timeline. */
#dashboardTab {
  --dashboard-card-gap: 16px;
  gap: var(--dashboard-card-gap);
  align-content: start;
}
#dashboardTab > .dashboard-clinical-cockpit {
  gap: var(--dashboard-card-gap);
}
#dashboardTab > .dashboard-clinical-cockpit,
#dashboardTab > .dashboard-planning-frame,
#dashboardTab > .mobile-future-showcase,
#dashboardTab .dashboard-overview-card,
#dashboardTab .dashboard-detail,
#dashboardTab .dashboard-columns-grid {
  margin-block: 0;
}
@media (max-width: 900px) {
  #dashboardTab { --dashboard-card-gap: 14px; }
}

/* Native shell: one internal scroller, no document bounce behind fixed pages. */
/* Prevent field-focus magnification in WKWebView, including nested dialogs.
   Keep this native-only and respect a larger root font for readability. */
html.native-mobile-app input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]),
html.native-mobile-app select,
html.native-mobile-app textarea,
html.native-mobile-app [contenteditable="true"],
html.native-mobile-app [contenteditable=""],
html.native-mobile-app [contenteditable="plaintext-only"] {
  font-size: max(16px, 1rem) !important;
}
html.native-mobile-app,
html.native-mobile-app body {
  height: 100%;
  overflow: hidden;
  overscroll-behavior: none;
  background-color: #f8f7ff;
}
html.native-mobile-app body {
  position: fixed;
  inset: 0;
  width: 100%;
}
html.native-mobile-app .app-layout,
html.native-mobile-app .app-main {
  height: 100dvh;
  min-height: 0;
}
html.native-mobile-app .app-main {
  box-sizing: border-box;
  padding-top: env(safe-area-inset-top);
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}
html.native-mobile-app .main-content,
html.native-mobile-app #patientDetailModal.patient-detail-page {
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
}
html.native-mobile-app #patientDetailModal.patient-detail-page {
  top: env(safe-area-inset-top);
  padding-top: 12px;
  scroll-padding-top: 12px;
}
html.native-mobile-app body::after {
  content: '';
  position: fixed;
  inset: 0 0 auto;
  height: env(safe-area-inset-top);
  background: #f8f7ff;
  z-index: 2147483647;
  pointer-events: none;
}
html.native-mobile-app .authentication-overlay {
  align-items: start;
  min-height: 0;
  padding-top: calc(20px + env(safe-area-inset-top));
  padding-bottom: calc(20px + env(safe-area-inset-bottom));
  overflow-y: auto;
}

/* 2026-09-12 — squelette stable entre les pages principales. */
.main-content {
  box-sizing: border-box;
  width: 100%;
  max-width: 1180px;
  margin-inline: auto;
  overflow-x: hidden;
  scrollbar-gutter: stable;
}

.main-content > :is(
  .dashboard-tab,
  .planning-tab,
  .patient-tab,
  .cabinet-tab,
  .gym-tab,
  .library-tab,
  .patient-app-tab,
  .settings-tab
) {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  min-width: 0;
  margin-inline: 0;
  padding: 0;
  animation: none;
}

.main-content > .dashboard-tab :is(
  .dashboard-assistant-hero,
  .workday-planner,
  .metric-card,
  .dashboard-card
) {
  animation: none;
}

body:not([data-main-tab="planning"]) .main-content {
  padding: 28px clamp(22px, 3.4vw, 44px) 56px;
}

@media (max-width: 900px) {
  .main-content,
  body:not([data-main-tab="planning"]) .main-content {
    max-width: none;
    margin-inline: 0;
    padding: 20px 16px calc(88px + env(safe-area-inset-bottom));
    scrollbar-gutter: auto;
  }
}

@media (max-width: 430px) {
  .main-content,
  body:not([data-main-tab="planning"]) .main-content {
    padding-inline: 14px;
  }
}


/* 2026-09-12 — navigation mobile recentrée sur les usages fréquents. */
.mobile-nav-more {
  position: absolute;
  left: 12px;
  bottom: calc(100% + 10px);
  display: block;
  width: 40px;
  height: 40px;
}
.mobile-nav-more > .mobile-nav-item {
  width: 40px;
  height: 40px;
  min-height: 40px;
  padding: 0;
  justify-content: center;
  border: 1px solid rgba(43,39,75,.1);
  border-radius: 50%;
  background: rgba(255,255,255,.94);
  box-shadow: 0 10px 28px rgba(34,30,62,.13);
  backdrop-filter: blur(16px);
}
.mobile-nav-more-label { display: none; }
.mobile-nav-more-icon {
  display: grid;
  min-height: 20px;
  place-items: center;
  color: currentColor;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 1px;
  line-height: 1;
}
.mobile-nav-more-menu {
  position: absolute;
  right: auto;
  bottom: calc(100% + 8px);
  left: 0;
  display: grid;
  width: min(250px, calc(100vw - 24px));
  padding: 7px;
  border: 1px solid rgba(43,39,75,.1);
  border-radius: 16px;
  background: rgba(255,255,255,.97);
  box-shadow: 0 18px 46px rgba(34,30,62,.18);
  backdrop-filter: blur(18px) saturate(1.1);
}
.mobile-nav-more-menu > button {
  display: grid;
  grid-template-columns: 34px minmax(0,1fr);
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: var(--tx-2);
  text-align: left;
}
.mobile-nav-more-menu > button:hover,
.mobile-nav-more-menu > button:focus-visible { background: rgba(var(--primary-rgb), .07); }
.mobile-nav-more-menu .nav-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 10px;
  background: rgba(var(--primary-rgb), .08);
  color: var(--primary);
}
.mobile-nav-more-menu .nav-icon::before { width: 17px; height: 17px; }
.mobile-nav-more-menu strong,
.mobile-nav-more-menu small { display: block; }
.mobile-nav-more-menu strong { font-size: 12px; }
.mobile-nav-more-menu small { margin-top: 2px; color: var(--tx-4); font-size: 9px; }

/* Phone timeline: keep the selected appointment, vary only visible neighbours. */
@media (max-width: 900px) and (orientation: portrait), (max-width: 599px) {
  #livePatientRibbonViewport {
    grid-template-columns: minmax(0, 1fr);
    overflow-x: hidden;
    scroll-snap-type: none;
  }
  #livePatientRibbonViewport > .patient-context-previous,
  #livePatientRibbonViewport > .patient-context-next { display: none; }
  #livePatientRibbonViewport > .patient-context-current { width: 100%; min-width: 0; }
}
@media (min-width: 600px) and (max-width: 1100px) and (orientation: landscape) {
  #livePatientRibbonViewport {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow-x: hidden;
    scroll-snap-type: none;
  }
  #livePatientRibbonViewport > .patient-context-previous { display: none; }
  #livePatientRibbonViewport > .patient-context-card { min-width: 0; width: 100%; }
}
@media (min-width: 850px) and (max-width: 1100px) and (orientation: landscape) {
  #livePatientRibbonViewport { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #livePatientRibbonViewport > .patient-context-previous { display: grid; }
}

@media (min-width: 901px) {
  .mobile-nav-more { display: none !important; }
}

@media (max-width: 900px) and (orientation: portrait), (max-width: 599px) {
  #livePatientNavigator { grid-template-columns: minmax(0, 1fr); }
  #livePatientRibbonViewport { grid-column: 1; touch-action: pan-y pinch-zoom; }
  #livePatientEarlierBtn, #livePatientLaterBtn { display: none; }
  #livePatientNavigator #livePatientNowBtn:not(.hidden) {
    position: static;
    right: auto;
    bottom: auto;
    display: inline-flex !important;
    grid-column: 1;
    grid-row: 2;
    justify-self: center;
    align-items: center;
    justify-content: center;
    width: auto;
    height: auto;
    min-height: 36px;
    padding: 6px 14px;
    border-radius: 18px;
    font-size: 12px;
  }
}
@media (max-width: 900px) {
  html.native-mobile-app #patientDetailModal.patient-detail-page {
    left: env(safe-area-inset-left);
    right: env(safe-area-inset-right);
  }
}

/* Mobile agenda: the calendar owns both scroll axes; the shell stays still. */
.planning-mobile-display { display: none; }
html.native-mobile-app body[data-main-tab="planning"] #planningTab > .planning-page-header,
html.native-mobile-app body[data-main-tab="planning"] #planningTab > .planning-toolbar {
  /* Restrict gestures on controls only, never on the grid's ancestors. */
  touch-action: none;
}
@media (max-width: 900px) {
  body[data-main-tab="planning"] .main-content {
    height: 100%;
    min-height: 0;
    padding: 10px 10px calc(80px + env(safe-area-inset-bottom));
  }
  body[data-main-tab="planning"] #planningTab {
    display: grid;
    height: 100%;
    min-height: 0;
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 6px;
    padding: 0;
    margin: 0;
  }
  body[data-main-tab="planning"] #planningTab > .planning-page-header {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    min-height: 44px;
    gap: 8px;
  }
  #planningTab .planning-page-header h1 { margin: 0; font-size: 22px; }
  #planningTab .planning-page-actions { width: auto; flex: 0 0 auto; }
  #planningSettingsBtn > span[aria-hidden] { font-size: 23px; }
  #planningTab .planning-page-header p,
  #planningSettingsSummary,
  #planningSettingsBtn .planning-settings-label,
  #planningTab .planning-toolbar-end,
  #planningTab .planning-surface-header { display: none; }
  #planningSettingsBtn { width: 44px; min-width: 44px; height: 44px; padding: 0; justify-content: center; font-size: 23px; }
  body[data-main-tab="planning"] #planningTab > .planning-toolbar {
    min-height: 40px;
    margin: 0;
    padding: 0;
    display: block;
  }
  #planningTab .planning-date-navigation {
    display: flex;
    flex-wrap: nowrap;
    gap: 4px;
    width: 100%;
  }
  #planningTab .planning-date-display { flex: 1; min-width: 0; padding-inline: 4px; font-size: 12px; }
  #planningTab .planning-today-shortcut { padding-inline: 6px; font-size: 10px; }
  #planningCampaignWeekBtn { display: none; }
  body[data-main-tab="planning"] #planningTab > .planning-surface {
    min-height: 0;
    min-width: 0;
    overflow: hidden;
    margin: 0;
    grid-template-rows: minmax(0, 1fr);
    border-radius: 12px;
  }
  body[data-main-tab="planning"] #planningTab .planning-calendar {
    height: 100%;
    min-height: 0;
    overflow: auto;
    touch-action: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: auto;
    -webkit-overflow-scrolling: touch;
  }
  #planningCalendar .planning-calendar-inner { min-width: max-content; }
  #planningCalendar .planning-day-lane { min-width: 0; }
  #planningCalendar .planning-day-header { height: 46px; gap: 3px; flex-wrap: wrap; align-content: center; }
  #planningCalendar .planning-day-header span { font-size: 10px; }
  #planningCalendar .planning-day-header strong { width: 24px; height: 24px; font-size: 12px; }
  #planningCalendar .planning-corner { height: 46px; }
  #planningCalendar .planning-time-axis span { right: 4px; font-size: 10px; }
  #planningCalendar .planning-appointment {
    left: 2px;
    width: calc(100% - 4px);
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    gap: 0;
    padding: 3px;
    border-left-width: 2px;
    border-radius: 5px;
    touch-action: auto;
    -webkit-user-drag: none;
  }
  #planningCalendar .planning-appointment strong { font-size: 10px; line-height: 1.2; white-space: normal; overflow-wrap: anywhere; }
  #planningCalendar .planning-appointment-time { font-size: 9px; }
  #planningCalendar .planning-appointment-note,
  #planningCalendar .planning-appointment-kind { display: none; }
  .planning-mobile-display { display: grid; gap: 8px; }
  .planning-mobile-display select { min-height: 44px; }
  html.native-mobile-app #planningSettingsModal { padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom); }
  html.native-mobile-app #planningSettingsModal .planning-settings-modal-content { min-height: 0; max-height: 100%; }
}


/* Entrées de navigation en préparation : même traitement que les autres outils. */
.construction-badge {
  display: inline-block;
  width: 21px;
  height: 21px;
  flex: 0 0 21px;
  background: url('assets/icons/construction-cone.svg') center / contain no-repeat;
  vertical-align: middle;
}
.sidebar-feature-entry { gap: 10px; }
.sidebar-feature-entry .construction-badge { margin-left: auto; }
.cabinet-mobile-view-tabs button[data-open-feature-lab] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}
body.clinical-focus-active .sidebar-feature-entry { display: none; }

/* Styles historiques du bloc séparé, conservés pour les anciens aperçus. */
.sidebar-projects {
  display: grid;
  gap: 3px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(70,61,123,.1);
}
.sidebar-projects .sidebar-section-label {
  margin: 0 12px 5px;
  color: var(--tx-4);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.sidebar-project-item {
  grid-template-columns: 22px minmax(0,1fr) auto;
}
.sidebar-project-item > small {
  padding: 3px 6px;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .08);
  color: var(--primary-dk);
  font-size: 7px;
  font-weight: 850;
  letter-spacing: .02em;
  white-space: nowrap;
}

.mobile-future-showcase { display: none; }

@media (max-width: 900px) {
  .mobile-future-showcase {
    display: block;
    border: 1px solid rgba(67,57,120,.09);
    border-radius: 17px;
    background: linear-gradient(145deg,rgba(255,255,255,.95),rgba(246,244,255,.9));
    box-shadow: 0 8px 24px rgba(45,38,83,.055);
  }
  .mobile-future-showcase > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 14px;
    list-style: none;
    cursor: pointer;
  }
  .mobile-future-showcase > summary::-webkit-details-marker { display: none; }
  .mobile-future-showcase > summary > span:first-child { display: grid; gap: 2px; }
  .mobile-future-showcase > summary small {
    color: var(--primary-dk);
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .mobile-future-showcase > summary strong { color: var(--tx); font-size: 14px; }
  .mobile-future-showcase-toggle {
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--tx-4);
    border-bottom: 2px solid var(--tx-4);
    transform: rotate(45deg);
    transition: transform var(--dur-fast);
  }
  .mobile-future-showcase[open] .mobile-future-showcase-toggle { transform: rotate(225deg); }
  .mobile-future-showcase-list {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 7px;
    padding: 0 10px 10px;
  }
  .mobile-future-showcase-list > button {
    display: grid;
    min-width: 0;
    min-height: 76px;
    align-content: start;
    gap: 7px;
    padding: 10px;
    border: 1px solid rgba(var(--primary-rgb), .08);
    border-radius: 12px;
    background: rgba(255,255,255,.82);
    color: var(--tx-2);
    text-align: left;
  }
  .mobile-future-showcase-list .nav-icon { color: var(--primary); }
  .mobile-future-showcase-list .nav-icon::before { width: 16px; height: 16px; }
  .mobile-future-showcase-list strong,
  .mobile-future-showcase-list small { display: block; }
  .mobile-future-showcase-list strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; }
  .mobile-future-showcase-list small { margin-top: 2px; color: var(--tx-4); font-size: 7px; line-height: 1.3; }
  .mobile-nav-more > .mobile-nav-item .nav-icon::before { width: 17px; height: 17px; }
}

@media (max-width: 350px) {
  .mobile-future-showcase-list { grid-template-columns: 1fr; }
  .mobile-future-showcase-list > button { min-height: 58px; grid-template-columns: 22px minmax(0,1fr); align-items: center; }
}

/* Frise de rendez-vous : un en-tête composé, sans légende redondante. */
.dashboard-planning-frame > .appointment-timeline-heading {
  display: flex;
  min-height: 42px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 0 4px 10px;
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.dashboard-planning-frame .appointment-timeline-title-group {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 9px;
}
.dashboard-planning-frame .appointment-timeline-icon {
  position: relative;
  width: 27px;
  height: 27px;
  flex: 0 0 27px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 9px;
  background: rgba(255,255,255,.11);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14);
}
.dashboard-planning-frame .appointment-timeline-icon::before,
.dashboard-planning-frame .appointment-timeline-icon::after {
  position: absolute;
  content: "";
}
.dashboard-planning-frame .appointment-timeline-icon::before {
  inset: 7px 6px 6px;
  border: 1.5px solid rgba(255,255,255,.9);
  border-radius: 3px;
}
.dashboard-planning-frame .appointment-timeline-icon::after {
  top: 10px;
  left: 7px;
  width: 13px;
  border-top: 1.5px solid rgba(255,255,255,.72);
}
.dashboard-planning-frame .appointment-timeline-title-group > h2 {
  display: block;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -.015em;
}
.dashboard-planning-frame .appointment-timeline-title-group > h2::before { display: none; }
.dashboard-planning-frame .appointment-timeline-title-group > .appointment-timeline-date {
  display: inline-flex;
  min-height: 25px;
  align-items: center;
  margin: 0;
  padding: 4px 9px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  color: rgba(255,255,255,.78);
  font-size: 10px;
  font-weight: 720;
  line-height: 1;
  letter-spacing: .01em;
  text-transform: none;
  white-space: nowrap;
}
.dashboard-planning-frame > .appointment-timeline-heading .appointment-timeline-heading-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
}
.dashboard-planning-frame > .appointment-timeline-heading .appointment-timeline-heading-actions > button {
  min-height: 30px;
  padding: 6px 11px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.78);
  box-shadow: none;
  font-size: 10px;
  font-weight: 750;
}
.dashboard-planning-frame > .appointment-timeline-heading .appointment-timeline-heading-actions > button:hover,
.dashboard-planning-frame > .appointment-timeline-heading .appointment-timeline-heading-actions > button[aria-pressed="true"] {
  border-color: rgba(255,255,255,.3);
  background: rgba(255,255,255,.17);
  color: #fff;
}
@media (max-width: 700px) {
  .dashboard-planning-frame > .appointment-timeline-heading {
    min-height: 38px;
    padding: 0 1px 8px;
  }
  .dashboard-planning-frame .appointment-timeline-icon {
    width: 25px;
    height: 25px;
    flex-basis: 25px;
  }
  .dashboard-planning-frame .appointment-timeline-title-group > h2 { font-size: 14px; }
  .dashboard-planning-frame .appointment-timeline-title-group > .appointment-timeline-date {
    min-height: 23px;
    padding: 4px 7px;
    font-size: 9px;
  }
  .dashboard-planning-frame > .appointment-timeline-heading .appointment-timeline-heading-actions > button {
    min-height: 28px;
    padding: 5px 8px;
    font-size: 9px;
  }
}

/* Frise de rendez-vous : le titre appartient au même bandeau que les rendez-vous. */
.dashboard-tab .dashboard-planning-frame {
  box-sizing: border-box;
  overflow: hidden;
  padding: 14px 18px 16px;
  border: 1px solid rgba(151,137,235,.32);
  border-radius: 20px;
  background:
    radial-gradient(circle at 88% 0%,rgba(201,192,255,.3),transparent 21rem),
    linear-gradient(135deg,#433a6b 0%,#514486 58%,#6b59b8 100%);
  box-shadow: 0 16px 38px rgba(51,44,91,.16);
}
.dashboard-tab .dashboard-planning-frame > .appointment-timeline-heading {
  margin: 0;
  padding: 0 2px 11px;
}
.dashboard-tab .dashboard-planning-frame > .live-patient-navigator.topbar-clinical-ribbon {
  margin: 0;
  border: 1px solid rgba(255,255,255,.13);
  background: rgba(255,255,255,.055);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
@media (max-width: 700px) {
  .dashboard-tab .dashboard-planning-frame {
    padding: 12px;
    border-radius: 18px;
  }
}

/* Accueil : la date de la journée appartient au bandeau Bonjour. */
.dashboard-compact-hero .dashboard-assistant-copy .dashboard-today-date {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 7px;
  margin: 7px 0 0;
  color: var(--tx-3);
  font-size: 12px;
  font-weight: 680;
  line-height: 1.25;
}
.dashboard-compact-hero .dashboard-assistant-copy .dashboard-today-date::before {
  width: 13px;
  height: 13px;
  flex: 0 0 13px;
  border: 1.5px solid currentColor;
  border-radius: 4px;
  background: linear-gradient(to bottom,transparent 30%,currentColor 31% 39%,transparent 40%);
  content: "";
  opacity: .76;
}

/* Tutoriel contextuel : un repère calme par page. */
.first-use-tutorial-modal {
  display: block;
  padding: 0;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  pointer-events: none;
  animation: none;
}
.first-use-tutorial-content {
  position: fixed;
  top: 20px;
  left: 20px;
  width: min(360px, calc(100vw - 32px));
  min-height: 0;
  max-width: 360px;
  max-height: min(440px, calc(100dvh - 32px));
  overflow-y: auto;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 18px;
  background: #fff;
  opacity: 1;
  filter: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: 0 20px 55px rgba(34,31,67,.2),0 0 0 1px rgba(255,255,255,.8) inset;
  pointer-events: auto;
  animation: none;
}
/* The later shared .modal-content theme must not make help text translucent. */
#firstUseTutorialModal .first-use-tutorial-content {
  background: #fff;
  opacity: 1;
  filter: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.first-use-tutorial-header {
  align-items: center;
  padding: 12px 13px 7px;
}
.first-use-tutorial-header > div { gap: 1px; }
.first-use-tutorial-header .app-label { font-size: 8px; letter-spacing: .08em; }
.first-use-tutorial-header #firstUseTutorialCounter { font-size: 12px; color: var(--tx-2); }
.first-use-tutorial-header .close-icon { width: 44px; height: 44px; min-width: 44px; }
.first-use-tutorial-progress {
  gap: 4px;
  padding: 5px 13px 0;
}
.first-use-tutorial-progress span { height: 3px; }
.first-use-tutorial-progress span.is-seen { background: rgba(var(--primary-rgb), .34); }
.first-use-tutorial-progress span.is-active { background: var(--primary); }
.first-use-tutorial-step {
  grid-template-columns: 30px minmax(0,1fr);
  align-items: start;
  gap: 10px;
  min-height: 0;
  padding: 13px 15px 14px;
}
.first-use-tutorial-icon {
  width: 30px;
  height: 30px;
  margin: 1px 0 0;
  border-radius: 10px;
  font-size: 14px;
  box-shadow: none;
}
.first-use-tutorial-step > div { display: grid; min-width: 0; }
.first-use-tutorial-eyebrow { margin-bottom: 4px; font-size: 8px; }
.first-use-tutorial-step h2 {
  font-size: 18px;
  line-height: 1.18;
  letter-spacing: -.02em;
}
.first-use-tutorial-step > div > p:not(.first-use-tutorial-eyebrow) {
  margin: 7px 0 0;
  color: var(--tx-2);
  font-size: 13px;
  line-height: 1.5;
}
.first-use-tutorial-step ul {
  gap: 0;
  margin: 9px 0 0;
  font-size: 12px;
  line-height: 1.5;
  color: var(--tx-2);
}
.first-use-tutorial-step li { padding-left: 15px; }
.first-use-tutorial-step li::before { top: .48em; left: 1px; width: 6px; height: 6px; }
.first-use-tutorial-footer {
  padding: 10px 13px 12px;
}
.first-use-tutorial-footer button { min-height: 44px; }
.first-use-tutorial-footer .primary-btn { padding: 9px 12px; font-size: 12px; }
.first-use-tutorial-footer .session-inline-link { font-size: 12px; color: var(--tx-2); }
.first-use-tutorial-target {
  outline: 3px solid rgba(var(--primary-rgb), .26);
  outline-offset: 4px;
  scroll-margin: 16px;
}
@keyframes firstUseCoachmarkIn {
  from { opacity: 0; transform: translateY(5px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 700px) {
  .first-use-tutorial-modal { display: block; padding: 0; }
  .first-use-tutorial-content {
    top: auto !important;
    right: 12px;
    bottom: calc(82px + env(safe-area-inset-bottom));
    left: 12px !important;
    width: auto;
    max-width: none;
    max-height: min(360px, calc(100dvh - 118px));
    border-radius: 17px;
  }
  html.native-mobile-app .first-use-tutorial-content {
    bottom: calc(94px + env(safe-area-inset-bottom));
  }
  .first-use-tutorial-step { padding: 12px 14px 13px; }
  .first-use-tutorial-step h2 { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .first-use-tutorial-content { animation: none; }
}


/* Dossier patient : aucune ancienne barre supérieure ne doit laisser voir la page précédente. */
#patientDetailModal.patient-detail-page {
  inset: 0 0 0 var(--sb-w);
}
@media (max-width: 900px) {
  #patientDetailModal.patient-detail-page {
    inset: 0 0 calc(65px + env(safe-area-inset-bottom)) 0;
  }
}


/* Chantiers : chaque entrée ouvre un prototype autonome et manipulable. */
.feature-lab-admin-summary.is-prototype-hidden { display: none !important; }
.feature-lab-list.is-single-feature { grid-template-columns: minmax(0, 1fr); }
.feature-lab-list.is-single-feature .feature-lab-card.is-feature-focus {
  gap: 16px;
  padding: clamp(18px, 3vw, 26px);
  border-color: rgba(var(--primary-rgb), .22);
}
.feature-lab-list.is-single-feature .feature-lab-card.is-feature-focus > p { min-height: 0; font-size: 11px; }
.feature-lab-prototype {
  display: grid;
  gap: 12px;
  padding: clamp(14px, 2.4vw, 20px);
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 17px;
  background: linear-gradient(145deg, rgba(242,244,255,.9), rgba(255,255,255,.96));
}
.feature-lab-prototype > header { display: grid; gap: 2px; }
.feature-lab-prototype > header span { color: var(--primary); font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.feature-lab-prototype > header strong { color: var(--tx); font-size: 15px; line-height: 1.3; }
.feature-prototype-workspace { display: grid; gap: 12px; }
.feature-prototype-screen {
  display: grid;
  grid-template-columns: minmax(150px, .8fr) minmax(190px, 1.2fr);
  align-items: center;
  gap: 16px;
  min-height: 170px;
  padding: 14px;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(42,47,89,.07);
}
.feature-prototype-screen > div:last-child { display: grid; gap: 5px; }
.feature-prototype-screen small, .feature-prototype-question small { color: var(--tx-4); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.feature-prototype-screen strong, .feature-prototype-question strong { font-size: 15px; }
.feature-prototype-screen p, .feature-prototype-suggestion p, .feature-prototype-learning-card p { margin: 0; color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.feature-prototype-media { position: relative; min-height: 138px; overflow: hidden; border-radius: 12px; background: linear-gradient(145deg,#eef1ff,#eafbf7); }
.feature-prototype-media::before { position: absolute; top: 24px; left: 50%; width: 30px; height: 30px; border: 7px solid #6674dc; border-radius: 50%; content: ""; transform: translateX(-50%); }
.feature-prototype-media i { position: absolute; left: 50%; width: 8px; border-radius: 999px; background: #6674dc; transform-origin: top; }
.feature-prototype-media i:nth-child(1) { top: 55px; height: 52px; transform: translateX(-50%) rotate(4deg); }
.feature-prototype-media i:nth-child(2) { top: 84px; height: 48px; transform: translateX(-5px) rotate(42deg); }
.feature-prototype-media i:nth-child(3) { top: 84px; height: 48px; transform: translateX(-3px) rotate(-38deg); }
.feature-prototype-clean-media {
  display: grid;
  min-height: 220px;
  margin: 0;
  padding: 10px;
  background: linear-gradient(145deg, #f3f5ff, #edf9f6);
}
.feature-prototype-clean-media::before { content: none; }
.feature-prototype-clean-media img {
  width: 100%;
  height: 188px;
  object-fit: contain;
  border-radius: 9px;
  background: rgba(255,255,255,.7);
}
.feature-prototype-clean-media figcaption {
  align-self: end;
  justify-self: center;
  margin-top: 7px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .1);
  color: var(--primary);
  font-size: 8px;
  font-weight: 850;
}
.feature-prototype-controls { display: flex; flex-wrap: wrap; gap: 7px; }
.feature-prototype-controls button { min-height: 34px; padding: 7px 12px; border: 1px solid rgba(var(--primary-rgb), .13); border-radius: 999px; background: #fff; color: var(--tx-3); font-size: 9px; font-weight: 800; }
.feature-prototype-controls button.is-active { border-color: var(--primary); background: var(--primary); color: #fff; }
.feature-prototype-science { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); }
.feature-prototype-science .feature-prototype-controls { grid-column: 1 / -1; }
.feature-prototype-question, .feature-prototype-suggestion, .feature-prototype-learning-card { display: grid; align-content: center; gap: 5px; min-height: 116px; padding: 15px; border-radius: 13px; background: #fff; }
.feature-prototype-suggestion { border-left: 4px solid var(--primary); }
.feature-prototype-suggestion > span, .feature-prototype-learning-card > span { color: var(--primary); font-size: 8px; font-weight: 850; text-transform: uppercase; }
.feature-prototype-preview-status { justify-self: start; margin-top: 4px; padding: 5px 8px; border-radius: 999px; background: rgba(var(--primary-rgb), .08); color: var(--primary); font-size: 8px; font-weight: 800; }
.feature-lab-list.is-single-feature .feature-lab-card > details,
.feature-lab-list.is-single-feature .feature-lab-card > form { width: min(620px, 100%); }
@media (max-width: 700px) {
  .feature-prototype-screen, .feature-prototype-science { grid-template-columns: 1fr; }
  .feature-prototype-science .feature-prototype-controls { grid-column: 1; }
  .feature-prototype-media { min-height: 118px; }
  .feature-prototype-clean-media { min-height: 208px; }
  .feature-prototype-clean-media img { height: 176px; }
}

/* 2026-09-21 — démonstrateur du graphe de raisonnement clinique. */
.assessment-graph-feature-card { --assessment-ink: #17223f; --assessment-blue: #4568ad; --assessment-mint: #7fdcc7; }
.assessment-graph-prototype { padding: 0; overflow: hidden; background: #f6f8fc; }
.assessment-graph-shell { color: var(--assessment-ink); }
.assessment-graph-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: clamp(18px, 3vw, 28px);
  background: linear-gradient(135deg, #17264c 0%, #4568ad 62%, #647aca 100%);
  color: #fff;
}
.assessment-graph-hero > div { display: grid; max-width: 680px; gap: 4px; }
.assessment-graph-hero span { color: #a9f1de; font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.assessment-graph-hero h4 { margin: 0; color: #fff; font-size: clamp(23px, 4vw, 34px); line-height: 1.08; letter-spacing: -.035em; }
.assessment-graph-hero p { margin: 4px 0 0; color: rgba(255,255,255,.76); font-size: 11px; line-height: 1.55; }
.assessment-graph-reset { flex: 0 0 auto; min-height: 38px; padding: 8px 13px; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; background: rgba(255,255,255,.1); color: #fff; font: inherit; font-size: 9px; font-weight: 800; cursor: pointer; }
.assessment-graph-reset:hover, .assessment-graph-reset:focus-visible { background: rgba(255,255,255,.2); outline: 3px solid rgba(255,255,255,.13); }
.assessment-graph-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 240px); align-items: start; gap: 18px; padding: clamp(16px, 2.8vw, 26px); }
.assessment-graph-focus { min-width: 0; overflow: hidden; border: 1px solid rgba(69,104,173,.11); border-radius: 20px; background: #fff; box-shadow: 0 18px 45px rgba(27,42,78,.08); }
.assessment-graph-focus > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; min-height: 88px; padding: 18px 20px; border-bottom: 1px solid rgba(69,104,173,.08); }
.assessment-graph-focus > header > div { display: grid; gap: 3px; }
.assessment-graph-focus > header span:not(.assessment-graph-live) { color: var(--assessment-blue); font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.assessment-graph-focus > header h5 { margin: 0; color: var(--assessment-ink); font-size: clamp(18px, 3vw, 25px); line-height: 1.2; }
.assessment-graph-live { padding: 5px 9px; border-radius: 999px; background: #e5f8f2; color: #167361; font-size: 8px; font-weight: 850; text-transform: uppercase; }
.assessment-graph-body { min-height: 350px; padding: clamp(18px, 3vw, 26px); }
.assessment-graph-prompt { margin: 0; color: var(--assessment-ink); font-size: clamp(17px, 2.4vw, 22px); font-weight: 800; line-height: 1.35; }
.assessment-graph-help { max-width: 680px; margin: 7px 0 18px; color: #75809a; font-size: 10px; line-height: 1.55; }
.assessment-graph-choices { display: grid; gap: 9px; }
.assessment-graph-choice { display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 11px; width: 100%; padding: 13px; border: 1px solid #e2e7f2; border-radius: 14px; background: #fbfcff; color: var(--assessment-ink); text-align: left; cursor: pointer; }
.assessment-graph-choice:hover:not(:disabled), .assessment-graph-choice:focus-visible { border-color: rgba(69,104,173,.45); outline: 3px solid rgba(69,104,173,.08); }
.assessment-graph-choice.is-selected { border-color: rgba(69,104,173,.56); background: #f0f4ff; box-shadow: inset 3px 0 0 var(--assessment-blue); }
.assessment-graph-choice:disabled { opacity: .43; cursor: not-allowed; }
.assessment-graph-choice__mark { display: grid; width: 22px; height: 22px; place-items: center; border: 1px solid #ccd4e8; border-radius: 7px; color: #fff; font-size: 11px; font-weight: 900; }
.assessment-graph-choice.is-selected .assessment-graph-choice__mark { border-color: var(--assessment-blue); background: var(--assessment-blue); }
.assessment-graph-choice > span:last-child { display: grid; gap: 3px; }
.assessment-graph-choice em { color: var(--assessment-blue); font-size: 7px; font-style: normal; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.assessment-graph-choice strong { font-size: 11px; line-height: 1.35; }
.assessment-graph-choice small { color: #7a8499; font-size: 9px; font-weight: 500; line-height: 1.45; }
.assessment-graph-branch-summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 12px; padding: 9px 12px; border-radius: 11px; background: #eef9f6; color: #28695e; }
.assessment-graph-branch-summary span { font-size: 9px; font-weight: 850; }
.assessment-graph-branch-summary small { font-size: 8px; }
.assessment-graph-test-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.assessment-graph-test-card { display: grid; align-content: start; gap: 6px; min-height: 180px; padding: 17px; border: 1px solid #e2e7f2; border-radius: 16px; background: #fff; color: var(--assessment-ink); text-align: left; cursor: pointer; }
.assessment-graph-test-card.is-recommended { border-color: rgba(69,104,173,.38); background: linear-gradient(145deg, #f0f4ff, #fff); }
.assessment-graph-test-card:hover, .assessment-graph-test-card:focus-visible { transform: translateY(-1px); outline: 3px solid rgba(69,104,173,.08); box-shadow: 0 12px 26px rgba(28,45,84,.09); }
.assessment-graph-test-card span { color: var(--assessment-blue); font-size: 8px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.assessment-graph-test-card strong { font-size: 13px; line-height: 1.35; }
.assessment-graph-test-card small { color: #7a8499; font-size: 9px; line-height: 1.5; }
.assessment-graph-test-card em { align-self: end; margin-top: auto; color: var(--assessment-blue); font-size: 9px; font-style: normal; font-weight: 800; }
.assessment-graph-subpath { display: grid; gap: 10px; padding: 2px; }
.assessment-graph-inline-back { justify-self: start; padding: 0; border: 0; background: none; color: var(--assessment-blue); font: inherit; font-size: 9px; font-weight: 800; cursor: pointer; }
.assessment-graph-subpath__label { justify-self: start; padding: 5px 8px; border-radius: 999px; background: #e5f8f2; color: #167361; font-size: 8px; font-weight: 850; text-transform: uppercase; }
.assessment-graph-subpath h5 { margin: 0; font-size: 21px; }
.assessment-graph-subpath > p { margin: 0 0 5px; color: #75809a; font-size: 10px; line-height: 1.5; }
.assessment-graph-return-note { color: #75809a; font-size: 8px; font-style: italic; }
.assessment-graph-measure-counter { display: flex; align-items: baseline; gap: 5px; margin-bottom: 12px; color: var(--assessment-blue); }
.assessment-graph-measure-counter strong { font-size: 26px; }
.assessment-graph-measure-counter span { font-size: 9px; font-weight: 750; }
.assessment-graph-pain-profile { display: grid; gap: 12px; margin: 0 0 22px; padding: 16px; border: 1px solid #e1e7f2; border-radius: 17px; background: linear-gradient(145deg, #fbfcff, #f5f8fd); }
.assessment-graph-pain-profile > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.assessment-graph-pain-profile > header > div:first-child { display: grid; gap: 2px; }
.assessment-graph-pain-profile > header span { color: var(--assessment-blue); font-size: 7px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.assessment-graph-pain-profile h6 { margin: 0; color: var(--assessment-ink); font-size: 15px; }
.assessment-graph-pain-profile > p { max-width: 660px; margin: -4px 0 0; color: #75809a; font-size: 9px; line-height: 1.5; }
.assessment-graph-pain-status { display: flex; flex: 0 0 auto; gap: 3px; padding: 3px; border-radius: 10px; background: #e9edf6; }
.assessment-graph-pain-status button, .assessment-graph-pain-confidence button { min-height: 30px; padding: 5px 9px; border: 0; border-radius: 8px; background: transparent; color: #6f7990; font: inherit; font-size: 8px; font-weight: 800; cursor: pointer; }
.assessment-graph-pain-status button.is-active, .assessment-graph-pain-confidence button.is-active { background: #fff; color: var(--assessment-blue); box-shadow: 0 3px 10px rgba(38,55,91,.1); }
.assessment-graph-pain-editor { display: grid; grid-template-columns: 126px minmax(0, 1fr); align-items: center; gap: 18px; }
.assessment-graph-pain-chart { display: grid; width: 126px; height: 126px; place-items: center; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(42,57,91,.06); }
.assessment-graph-pain-chart::after { grid-area: 1 / 1; width: 72px; height: 72px; border-radius: 50%; background: #fff; box-shadow: 0 4px 15px rgba(35,49,80,.08); content: ''; }
.assessment-graph-pain-chart > span { z-index: 1; display: grid; grid-area: 1 / 1; gap: 0; text-align: center; }
.assessment-graph-pain-chart strong { color: var(--assessment-ink); font-size: 17px; }
.assessment-graph-pain-chart small { color: #8791a5; font-size: 7px; font-weight: 700; }
.assessment-graph-pain-controls { display: grid; gap: 7px; }
.assessment-graph-pain-controls > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 38px; padding: 6px 8px 6px 10px; border: 1px solid #e4e8f1; border-radius: 11px; background: #fff; }
.assessment-graph-pain-controls > div > span { display: flex; align-items: center; gap: 7px; }
.assessment-graph-pain-controls i { width: 8px; height: 8px; border-radius: 50%; background: #e88957; }
.assessment-graph-pain-controls .is-neuropathic i { background: #6d70d8; }
.assessment-graph-pain-controls .is-nociplastic i { background: #2f9b83; }
.assessment-graph-pain-controls strong { font-size: 9px; }
.assessment-graph-pain-controls > div > div { display: grid; grid-template-columns: 28px 54px 28px; align-items: center; gap: 4px; }
.assessment-graph-pain-controls button { display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid #dfe4ef; border-radius: 8px; background: #f8f9fc; color: var(--assessment-blue); font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; }
.assessment-graph-pain-controls button:hover, .assessment-graph-pain-controls button:focus-visible { border-color: rgba(69,104,173,.45); outline: 3px solid rgba(69,104,173,.08); }
.assessment-graph-pain-controls output { color: var(--assessment-ink); font-size: 9px; font-weight: 850; text-align: center; }
.assessment-graph-pain-confidence { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.assessment-graph-pain-confidence > span { color: #6f7990; font-size: 8px; font-weight: 800; }
.assessment-graph-pain-confidence > div { display: flex; gap: 3px; padding: 3px; border-radius: 10px; background: #e9edf6; }
.assessment-graph-pain-profile > footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 10px; border-top: 1px solid #e3e8f1; }
.assessment-graph-pain-profile > footer > span { color: #7b859a; font-size: 8px; font-weight: 650; letter-spacing: 0; text-transform: none; }
.assessment-graph-pain-profile > footer.is-validated > span { color: #167361; }
.assessment-graph-pain-profile > footer button { min-height: 34px; padding: 6px 11px; border: 1px solid var(--assessment-blue); border-radius: 9px; background: var(--assessment-blue); color: #fff; font: inherit; font-size: 8px; font-weight: 850; cursor: pointer; }
.assessment-graph-pain-profile > footer button:disabled { border-color: #dfe4ed; background: #e8ebf1; color: #929bad; cursor: default; }
.assessment-graph-pain-empty { padding: 11px 12px; border-radius: 11px; background: #eef2f8; color: #717c92; font-size: 8px; line-height: 1.45; }
.assessment-graph-measures-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 2px; }
.assessment-graph-measures-heading strong { font-size: 12px; }
.assessment-graph-measures-heading span { color: #828ca0; font-size: 8px; font-weight: 700; }
.assessment-graph-summary { display: grid; gap: 13px; }
.assessment-graph-summary > span { color: #167361; font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.assessment-graph-summary h5 { margin: 0; font-size: clamp(20px, 3vw, 28px); }
.assessment-graph-summary dl { display: grid; gap: 8px; margin: 0; }
.assessment-graph-summary dl div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 12px; padding: 11px 12px; border-radius: 11px; background: #f5f7fb; }
.assessment-graph-summary dt { color: #75809a; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.assessment-graph-summary dd { margin: 0; font-size: 9px; font-weight: 700; line-height: 1.45; }
.assessment-graph-summary > p { margin: 2px 0 0; font-size: 11px; font-weight: 800; }
.assessment-graph-followup-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.assessment-graph-followup-actions button { min-height: 36px; padding: 7px 11px; border: 1px solid #dce3f1; border-radius: 999px; background: #fff; color: var(--assessment-ink); font: inherit; font-size: 8px; font-weight: 800; cursor: pointer; }
.assessment-graph-followup-actions button.is-alert { border-color: #efd2d4; color: #a13d48; }
.assessment-graph-followup-note { padding: 10px; border-radius: 10px; background: #eef9f6; color: #28695e; font-size: 9px; line-height: 1.45; }
.assessment-graph-stop { display: flex; align-items: flex-start; gap: 14px; padding: 18px; border: 1px solid #efd2d4; border-radius: 16px; background: #fff6f6; }
.assessment-graph-stop > span { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: #a13d48; color: #fff; font-size: 17px; font-weight: 900; }
.assessment-graph-stop div { display: grid; gap: 5px; }
.assessment-graph-stop strong { font-size: 17px; }
.assessment-graph-stop p { margin: 0; color: #856a70; font-size: 10px; line-height: 1.5; }
.assessment-graph-focus > footer { display: flex; justify-content: space-between; gap: 10px; padding: 15px 20px; border-top: 1px solid rgba(69,104,173,.08); background: #fbfcff; }
.assessment-graph-focus > footer button { min-height: 40px; padding: 8px 15px; border-radius: 11px; font: inherit; font-size: 9px; font-weight: 850; cursor: pointer; }
.assessment-graph-focus > footer button:disabled { opacity: .35; cursor: not-allowed; }
.assessment-graph-secondary { border: 1px solid #dfe5f1; background: #fff; color: #66718a; }
.assessment-graph-primary { border: 1px solid var(--assessment-blue); background: var(--assessment-blue); color: #fff; box-shadow: 0 8px 18px rgba(69,104,173,.18); }
.assessment-graph-map { position: sticky; top: 88px; overflow: hidden; border: 1px solid rgba(69,104,173,.11); border-radius: 18px; background: #fff; box-shadow: 0 12px 32px rgba(27,42,78,.06); }
.assessment-graph-map > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; padding: 15px; border-bottom: 1px solid #edf0f6; }
.assessment-graph-map > header div { display: grid; gap: 2px; }
.assessment-graph-map > header span { color: #8a94aa; font-size: 7px; font-weight: 850; text-transform: uppercase; }
.assessment-graph-map > header strong { font-size: 10px; }
.assessment-graph-map > header button { padding: 0; border: 0; background: none; color: var(--assessment-blue); font: inherit; font-size: 8px; font-weight: 800; cursor: pointer; }
.assessment-graph-map ol { display: grid; gap: 0; margin: 0; padding: 9px 12px; list-style: none; }
.assessment-graph-map li { position: relative; }
.assessment-graph-map li:not(:last-child)::after { position: absolute; top: 34px; bottom: -5px; left: 15px; width: 1px; background: #dce3f0; content: ''; }
.assessment-graph-map li.is-complete:not(:last-child)::after { background: var(--assessment-blue); }
.assessment-graph-map li button { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 8px; width: 100%; align-items: center; padding: 8px 4px; border: 0; background: none; color: #8992a7; text-align: left; }
.assessment-graph-map li button > span { z-index: 1; display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid #dce3f0; border-radius: 50%; background: #fff; font-size: 7px; font-weight: 850; }
.assessment-graph-map li button strong { font-size: 9px; }
.assessment-graph-map li button small { grid-column: 2; margin-top: -7px; color: #8b95a8; font-size: 7px; }
.assessment-graph-map li.is-current button { color: var(--assessment-ink); }
.assessment-graph-map li.is-current button > span { border-color: var(--assessment-blue); background: var(--assessment-blue); color: #fff; box-shadow: 0 0 0 4px rgba(69,104,173,.1); }
.assessment-graph-map li.is-complete button { color: #4568ad; cursor: pointer; }
.assessment-graph-map li.is-complete button > span { border-color: #8fdac8; background: #e5f8f2; color: #167361; }
.assessment-graph-map li.is-upcoming button { cursor: default; }
.assessment-graph-map > p { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin: 0; padding: 10px 15px 14px; color: #8a94aa; font-size: 7px; }
.assessment-graph-map > p span { width: 7px; height: 7px; margin-left: 4px; border-radius: 50%; }
.assessment-graph-map > p span:first-child { margin-left: 0; }
.assessment-graph-map .is-open { background: var(--assessment-blue); }
.assessment-graph-map .is-done { background: #8fdac8; }
.assessment-graph-map .is-waiting { background: #dce3f0; }
.assessment-graph-boundary { margin: 0; padding: 0 clamp(16px, 2.8vw, 26px) 22px; color: #8892a6; font-size: 8px; line-height: 1.5; }
.assessment-graph-boundary strong { color: #6c768b; }
#featureLabModal.is-assessment-primary {
  align-items: center;
  padding: 16px;
  background: rgba(22, 31, 58, .38);
}
#featureLabModal.is-assessment-primary .feature-lab-modal-content {
  width: min(1500px, calc(100vw - 32px));
  max-width: none;
  height: min(960px, calc(100dvh - 32px));
  max-height: calc(100dvh - 32px);
  border-radius: 26px;
}
#featureLabModal.is-assessment-primary .feature-lab-header {
  padding: 18px 24px 15px;
}
#featureLabModal.is-assessment-primary .feature-lab-boundary { display: none; }
#featureLabModal.is-assessment-primary .feature-lab-list { padding: 0; }
#featureLabModal.is-assessment-primary .feature-lab-card.is-feature-focus {
  gap: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
#featureLabModal.is-assessment-primary .assessment-graph-prototype {
  border: 0;
  border-radius: 0;
}
@media (min-width: 701px) {
  .assessment-graph-map.is-expanded { grid-column: 1 / -1; position: static; }
  .assessment-graph-map.is-expanded ol { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
  .assessment-graph-map.is-expanded li:not(:last-child)::after { top: 23px; right: -5px; bottom: auto; left: 35px; width: auto; height: 1px; }
}
@media (min-width: 701px) and (max-width: 1150px) {
  .assessment-graph-layout { grid-template-columns: minmax(0, 1fr); }
  .assessment-graph-focus { order: 1; }
  .assessment-graph-map { position: static; order: 0; }
  .assessment-graph-map ol { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
  .assessment-graph-map li:not(:last-child)::after { top: 23px; right: -5px; bottom: auto; left: 35px; width: auto; height: 1px; }
  .assessment-graph-map li button { grid-template-columns: 30px minmax(0, 1fr); }
}
@media (max-width: 700px) {
  #featureLabModal.is-assessment-primary { align-items: flex-end; padding: 0; }
  #featureLabModal.is-assessment-primary .feature-lab-modal-content {
    width: 100%;
    height: 96dvh;
    max-height: 96dvh;
    border-radius: 22px 22px 0 0;
  }
  #featureLabModal.is-assessment-primary .feature-lab-header { padding: 14px 16px 12px; }
  .assessment-graph-hero { align-items: stretch; flex-direction: column; }
  .assessment-graph-reset { align-self: flex-start; }
  .assessment-graph-layout { grid-template-columns: 1fr; padding: 12px; }
  .assessment-graph-focus { order: 1; }
  .assessment-graph-map { position: static; order: 0; }
  .assessment-graph-map ol, .assessment-graph-map > p { display: none; }
  .assessment-graph-map.is-expanded ol { display: grid; }
  .assessment-graph-map.is-expanded > p { display: flex; }
  .assessment-graph-body { min-height: 0; padding: 18px 15px; }
  .assessment-graph-test-grid { grid-template-columns: 1fr; }
  .assessment-graph-test-card { min-height: 150px; }
  .assessment-graph-pain-profile > header, .assessment-graph-pain-confidence, .assessment-graph-pain-profile > footer { align-items: stretch; flex-direction: column; }
  .assessment-graph-pain-status, .assessment-graph-pain-confidence > div { align-self: stretch; }
  .assessment-graph-pain-status button, .assessment-graph-pain-confidence button { flex: 1; }
  .assessment-graph-pain-editor { grid-template-columns: 1fr; justify-items: center; }
  .assessment-graph-pain-controls { width: 100%; }
  .assessment-graph-summary dl div { grid-template-columns: 1fr; gap: 4px; }
  .assessment-graph-focus > footer { position: sticky; z-index: 2; bottom: 0; padding: 12px 14px; }
  .assessment-graph-focus > footer button { flex: 1; }
}


/* Annuaire patient : recherche et création sont distinctes du filtre de vue. */
.patient-directory-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.patient-directory-toolbar .search-panel {
  width: min(440px, 100%);
  margin-bottom: 0;
}
.patient-directory-header-actions { min-width: 0; }
@media (max-width: 620px) {
  .patient-directory-toolbar { align-items: stretch; flex-direction: column; }
  .patient-directory-toolbar .search-panel { width: 100%; max-width: none; }
  .patient-directory-toolbar #addPatientBtn { align-self: flex-start; }
}


/* Rubriques principales : un même repère visuel pour Patients, Planning et Gymnase. */
.app-section-header {
  display: flex;
  min-height: 112px;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin: 0 0 22px;
  padding: 4px 2px 18px;
  border: 0;
  border-bottom: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.app-section-header-copy {
  display: grid;
  min-width: 0;
  gap: 4px;
}
.app-section-header .section-kicker {
  margin: 0;
  color: var(--primary-dk);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.app-section-header h1 {
  margin: 0;
  color: var(--tx);
  font-size: clamp(32px, 4vw, 42px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -.045em;
}
.app-section-header .app-section-subtitle {
  max-width: 650px;
  margin: 3px 0 0;
  color: var(--tx-3);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: none;
}
.patient-summary-card.app-section-header {
  padding: 4px 2px 18px;
  margin-bottom: 22px;
}
.app-section-header-status {
  display: grid;
  flex: 0 0 auto;
  justify-items: end;
  gap: 2px;
  padding-bottom: 3px;
}
.app-section-header-status span {
  color: var(--tx-4);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.app-section-header-status strong {
  color: var(--primary-dk);
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -.025em;
}
#planningTab > .planning-page-header.app-section-header {
  min-height: 112px;
  padding: 4px 2px 18px;
}
.gym-hero.gym-hero-compact.app-section-header {
  min-height: 112px;
  margin-bottom: 0;
  padding: 4px 2px 18px;
  border-bottom: 1px solid rgba(var(--primary-rgb), .12);
}
.gym-hero-compact.app-section-header h1 {
  margin: 0;
  font-size: clamp(32px, 4vw, 42px);
}
@media (max-width: 900px) {
  .app-section-header,
  #planningTab > .planning-page-header.app-section-header,
  .gym-hero.gym-hero-compact.app-section-header {
    min-height: 56px;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
    padding: 0 0 12px;
  }
  .app-section-header .section-kicker,
  .app-section-header .app-section-subtitle { }
  .app-section-header h1,
  .gym-hero-compact.app-section-header h1 { font-size: 24px; }
  .app-section-header-status strong { font-size: 16px; }
  .app-section-header-status span { font-size: 8px; }
}


/* Transparence du chantier Motion : la provenance du prototype reste explicite. */
.feature-prototype-ai-note {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding-top: 10px;
  border-top: 1px solid rgba(var(--primary-rgb), .1);
  color: var(--tx-4);
  font-size: 8px;
  line-height: 1.45;
}
.feature-prototype-ai-note strong {
  flex: 0 0 auto;
  color: var(--tx-3);
  font-size: 8px;
}

/* Dossier : un seul indicateur attaché au bouton, jamais à une largeur calculée. */
#patientDetailModal.patient-detail-page .patient-record-navigation::before { display: none; }
#patientDetailModal.patient-detail-page .patient-record-navigation .tab-button {
  min-height: 44px;
  border: 1px solid transparent;
  background: transparent;
  box-shadow: none;
  color: var(--tx-3);
}
#patientDetailModal.patient-detail-page .patient-record-navigation .tab-button.active {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
}
#patientDetailModal.patient-detail-page .patient-record-navigation .tab-button:focus-visible {
  outline: 2px solid var(--primary-dk);
  outline-offset: -3px;
}
.cabinet-settings-link { display: none; }
/* This section receives programmatic focus to avoid opening the iOS keyboard.
   It is not a control; retain focus indicators on its inputs and buttons. */
#authenticationOverlay .authentication-view:focus {
  outline: none;
  box-shadow: none;
}
.authentication-biometric { margin-top: 16px; }
.authentication-biometric[hidden] { display: none; }
.authentication-biometric p { margin: 8px 0; font-size: 12px; line-height: 1.45; color: var(--tx-2); }
.authentication-biometric button { min-height: 44px; }
.authentication-biometric > .authentication-submit {
  width: 100%; padding: 12px 16px; border: 1px solid rgba(var(--primary-rgb), .25);
  border-radius: 14px; background: #f0efff; color: var(--primary-dk);
  font: 700 14px/1.3 var(--font); cursor: pointer;
}
.authentication-biometric > .authentication-submit:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.authentication-biometric > .authentication-submit:disabled { opacity: .55; cursor: default; }
.authentication-biometric button[hidden],
#manageLocalPINBtn[hidden], #patientManageLocalPINBtn[hidden] { display: none !important; }
#localAccessSettingsStatus, #patientLocalAccessStatus { font-size: 12px; line-height: 1.45; }
.desktop-local-access-card {
  position: relative;
  max-width: 460px;
  padding: 32px;
  border: 1px solid rgba(var(--primary-rgb), .14);
}
.desktop-local-access-card > .close-icon {
  position: absolute;
  top: 18px;
  right: 18px;
}
.desktop-local-access-kicker {
  display: block;
  margin-bottom: 8px;
  color: var(--primary);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.desktop-local-access-card h3 { margin: 0 44px 8px 0; font-size: 24px; }
.desktop-local-access-card > p { margin: 0 0 22px; color: var(--tx-2); line-height: 1.5; }
.desktop-local-access-card > small {
  display: block;
  margin-top: 18px;
  color: var(--tx-3);
  font-size: 12px;
  line-height: 1.45;
}
.desktop-touch-id-setup { width: 100%; margin-bottom: 14px; }
.desktop-pin-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: var(--surface-2);
}
.desktop-pin-form label, .desktop-pin-login label {
  display: grid;
  gap: 7px;
  color: var(--tx-2);
  font-size: 13px;
  font-weight: 700;
}
.desktop-pin-form input, .desktop-pin-login input {
  width: 100%;
  min-height: 48px;
  padding: 10px 14px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: var(--surface);
  color: var(--tx-1);
  font: 700 22px/1 var(--font);
  letter-spacing: .28em;
  text-align: center;
}
.desktop-pin-form button { grid-column: 1 / -1; }
.desktop-pin-login { display: grid; gap: 16px; }
.desktop-local-access-remove { margin-top: 16px; }
#desktopLocalAccessStatus {
  min-height: 20px;
  margin: 14px 0 0;
  color: var(--tx-2);
  font-size: 13px;
}
#desktopLocalAccessStatus.is-error,
#biometricLoginStatus.is-error { color: var(--danger, #b42318); }
@media (max-width: 620px) {
  .desktop-local-access-modal { padding: 12px; }
  .desktop-local-access-card { padding: 26px 20px; }
  .desktop-pin-form { grid-template-columns: 1fr; }
}
/* Bilan mobile : page complète dans le cadre sûr, pas une carte imbriquée. */
@media (max-width: 900px) {
  #patientDetailModal.patient-detail-page .detail-modal-content.initial-assessment-page-open {
    display: flex;
    flex-direction: column;
    min-height: 100%;
  }
  #patientDetailModal.patient-detail-page #bilansPanel.initial-assessment-open {
    display: flex;
    flex: 1;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    padding: 0;
    margin: 0;
  }
  #patientDetailModal.patient-detail-page #bilansPanel.initial-assessment-open > #initialAssessmentWorkspace {
    flex: 1;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 12px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }
  #patientDetailModal.patient-detail-page #initialAssessmentWorkspace > .initial-assessment-page-header {
    margin: -12px -12px 16px;
    padding: 12px;
    gap: 10px;
  }
  #patientDetailModal.patient-detail-page #initialAssessmentWorkspace .initial-assessment-back-btn,
  #patientDetailModal.patient-detail-page #initialAssessmentWorkspace .clinical-context-trigger {
    min-height: 44px;
  }
}
@media (max-width: 900px) {
  #patientDetailModal.patient-detail-page .patient-record-navigation {
    display: flex !important;
    gap: 6px;
    max-width: 100%;
    padding: 8px 12px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
  }
  #patientDetailModal.patient-detail-page .patient-record-navigation .tab-button {
    flex: 0 0 auto;
    width: auto;
    min-width: max-content;
    min-height: 44px;
    padding: 10px 16px;
    font-size: 13px;
    line-height: 20px;
    white-space: nowrap;
    border-radius: 12px;
  }
  #patientDetailModal.patient-detail-page .patient-record-navigation .tab-button:hover { transform: none; }
  .cabinet-page-header { flex-wrap: wrap; }
  .cabinet-settings-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--surface);
    color: var(--primary-dk);
    font: inherit;
    font-size: 13px;
    font-weight: 700;
  }
  .cabinet-settings-link .nav-icon { width: 18px; height: 18px; }
  .cabinet-settings-link .nav-icon::before { width: 18px; height: 18px; }
}
@media (max-width: 560px) {
  .feature-prototype-ai-note { align-items: flex-start; flex-direction: column; gap: 2px; }
}

/* Chantier Animations — aperçu réaliste d’une fiche exercice, limité au Clean. */
.clean-exercise-demo {
  background: linear-gradient(145deg, rgba(243,245,255,.92), rgba(248,252,251,.96));
}
.clean-exercise-card {
  width: min(780px, 100%);
  margin-inline: auto;
  overflow: hidden;
  border: 1px solid rgba(61,71,125,.12);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(36,42,78,.11);
}
.clean-exercise-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 20px 22px 15px;
}
.clean-exercise-card__header > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}
.clean-exercise-card__eyebrow {
  color: var(--primary);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .065em;
  text-transform: uppercase;
}
.clean-exercise-card__header h4 {
  margin: 0;
  color: var(--tx);
  font-size: clamp(25px, 3vw, 32px);
  line-height: 1.05;
  letter-spacing: -.035em;
}
.clean-exercise-card__header p {
  margin: 0;
  color: var(--tx-3);
  font-size: 11px;
}
.clean-exercise-favorite {
  display: grid;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 13px;
  background: #f7f8ff;
  color: var(--primary);
  cursor: pointer;
}
.clean-exercise-favorite span { font-size: 24px; line-height: 1; transform: translateY(-1px); }
.clean-exercise-favorite.is-active { border-color: rgba(var(--primary-rgb), .28); background: var(--primary); color: #fff; }
.clean-exercise-view-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin: 0 22px 16px;
  padding: 4px;
  border-radius: 13px;
  background: #f2f3f8;
}
.clean-exercise-view-switch button {
  min-height: 40px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--tx-3);
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}
.clean-exercise-view-switch button span {
  display: inline-grid;
  min-width: 19px;
  min-height: 19px;
  margin-left: 5px;
  place-items: center;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .1);
  color: var(--primary);
  font-size: 8px;
}
.clean-exercise-view-switch button.is-active {
  background: #fff;
  color: var(--primary-dk);
  box-shadow: 0 4px 14px rgba(42,47,89,.08);
}
.clean-exercise-stage {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(200px, .65fr);
  min-height: 340px;
  border-top: 1px solid rgba(61,71,125,.08);
  border-bottom: 1px solid rgba(61,71,125,.08);
}
.clean-exercise-media {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 340px;
  margin: 0;
  place-items: center;
  overflow: hidden;
  background: linear-gradient(145deg, #f6f3ed, #eef4f2);
}
.clean-exercise-media img {
  height: 340px;
}
.clean-exercise-replay {
  position: absolute;
  right: 13px;
  bottom: 13px;
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  gap: 6px;
  padding: 7px 11px;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 999px;
  background: rgba(37,41,67,.78);
  color: #fff;
  font: inherit;
  font-size: 9px;
  font-weight: 800;
  backdrop-filter: blur(10px);
  cursor: pointer;
}
.clean-exercise-replay span:first-child { font-size: 16px; line-height: 1; }
.clean-exercise-guidance {
  display: grid;
  align-content: center;
  gap: 8px;
  padding: clamp(22px, 4vw, 34px);
  background: linear-gradient(155deg, #fff, #fafaff);
}
.clean-exercise-guidance > span {
  justify-self: start;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .09);
  color: var(--primary);
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.clean-exercise-guidance h5 {
  margin: 0;
  color: var(--tx);
  font-size: clamp(18px, 2.5vw, 24px);
  line-height: 1.15;
  letter-spacing: -.025em;
}
.clean-exercise-guidance p {
  margin: 0;
  color: var(--tx-3);
  font-size: 11px;
  line-height: 1.55;
}
.clean-exercise-steps {
  display: grid;
  grid-template-columns: repeat(6, minmax(92px, 1fr));
  gap: 8px;
  padding: 14px;
  overflow-x: auto;
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
}
.clean-exercise-steps.hidden { display: none !important; }
.clean-exercise-steps button {
  display: grid;
  min-width: 92px;
  gap: 7px;
  padding: 6px 6px 9px;
  scroll-snap-align: start;
  border: 1px solid rgba(61,71,125,.1);
  border-radius: 12px;
  background: #fff;
  color: var(--tx-3);
  font: inherit;
  cursor: pointer;
  text-align: left;
}
.clean-exercise-steps button:hover,
.clean-exercise-steps button:focus-visible {
  border-color: rgba(var(--primary-rgb), .36);
  outline: none;
}
.clean-exercise-steps button.is-active {
  border-color: var(--primary);
  background: #f6f7ff;
  box-shadow: 0 0 0 2px rgba(var(--primary-rgb), .08);
  color: var(--primary-dk);
}
.clean-exercise-steps img {
  width: 100%;
  height: 82px;
  object-fit: contain;
  border-radius: 8px;
  background: linear-gradient(145deg, #f7f3ed, #eef5f2);
}
.clean-exercise-steps button > span {
  display: grid;
  gap: 1px;
  padding-inline: 3px;
  font-size: 9px;
  font-weight: 800;
  line-height: 1.2;
}
.clean-exercise-steps small {
  color: var(--primary);
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .08em;
}
@media (max-width: 700px) {
  .clean-exercise-card__header { padding: 17px 16px 13px; }
  .clean-exercise-view-switch { margin: 0 16px 14px; }
  .clean-exercise-stage { grid-template-columns: 1fr; min-height: 0; }
  .clean-exercise-media { min-height: 270px; }
  .clean-exercise-media img { height: 270px; }
  .clean-exercise-guidance { min-height: 142px; padding: 18px; }
  .clean-exercise-steps { grid-template-columns: repeat(6, 105px); padding: 12px 14px 15px; }
  .clean-exercise-steps img { height: 88px; }
}
@media (max-width: 420px) {
  .clean-exercise-card { border-radius: 17px; }
  .clean-exercise-card__header h4 { font-size: 25px; }
  .clean-exercise-media, .clean-exercise-media img { min-height: 238px; height: 238px; }
  .clean-exercise-replay span:last-child { display: none; }
  .clean-exercise-replay { width: 38px; padding: 0; justify-content: center; }
}

/* Le Clean s’ouvre comme une seule fenêtre légère, l’application reste perceptible. */
#featureLabModal.is-lightweight-preview {
  padding: clamp(14px, 3vw, 32px);
  background: rgba(28,31,54,.16);
  -webkit-backdrop-filter: blur(2px) saturate(.95);
  backdrop-filter: blur(2px) saturate(.95);
}
#featureLabModal.is-lightweight-preview .feature-lab-modal-content {
  width: min(880px, calc(100vw - 32px));
  max-height: min(860px, calc(100dvh - 32px));
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 24px;
  background: rgba(252,252,255,.98);
  box-shadow: 0 28px 80px rgba(25,29,55,.24);
}
#featureLabModal.is-lightweight-preview .feature-lab-header {
  padding: 18px 20px 14px;
  background: rgba(252,252,255,.94);
}
#featureLabModal.is-lightweight-preview .feature-lab-header h2 { font-size: clamp(24px, 3vw, 31px); }
#featureLabModal.is-lightweight-preview .feature-lab-header p { font-size: 10px; }
#featureLabModal.is-lightweight-preview .feature-lab-boundary { display: none; }
#featureLabModal.is-lightweight-preview .feature-lab-list { padding: 16px 20px 20px; }
#featureLabModal.is-lightweight-preview .feature-lab-card.is-feature-focus {
  gap: 12px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
#featureLabModal.is-lightweight-preview .feature-lab-card.is-feature-focus > header,
#featureLabModal.is-lightweight-preview .feature-lab-card.is-feature-focus > p,
#featureLabModal.is-lightweight-preview .clean-exercise-demo > header,
#featureLabModal.is-lightweight-preview .feature-lab-card.is-feature-focus > details:not(.feature-lab-feedback-compact) {
  display: none;
}
#featureLabModal.is-lightweight-preview .clean-exercise-demo {
  gap: 9px;
  padding: 0;
  border: 0;
  background: transparent;
}
#featureLabModal.is-lightweight-preview .clean-exercise-card {
  width: 100%;
  border-color: rgba(61,71,125,.1);
  box-shadow: 0 12px 34px rgba(36,42,78,.09);
}
#featureLabModal.is-lightweight-preview .feature-prototype-ai-note {
  padding: 4px 2px 0;
  border: 0;
}
.feature-lab-feedback-compact {
  width: 100% !important;
  margin: 0;
  border: 1px solid rgba(var(--primary-rgb), .1) !important;
  border-radius: 14px;
  background: rgba(255,255,255,.72);
}
.feature-lab-feedback-compact > summary {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 10px 13px !important;
  list-style: none;
}
.feature-lab-feedback-compact > summary::-webkit-details-marker { display: none; }
.feature-lab-feedback-compact > summary span {
  color: var(--tx-2);
  font-size: 10px;
  font-weight: 800;
}
.feature-lab-feedback-compact > summary strong {
  color: var(--primary);
  font-size: 9px;
  font-weight: 850;
}
.feature-lab-feedback-compact[open] > summary strong::after { content: " · Fermer"; }
.feature-lab-feedback-compact > form {
  padding: 2px 13px 13px;
}
@media (max-width: 700px) {
  #featureLabModal.is-lightweight-preview {
    align-items: end;
    padding: 0;
    background: rgba(28,31,54,.12);
    backdrop-filter: blur(1.5px);
  }
  #featureLabModal.is-lightweight-preview .feature-lab-modal-content {
    width: 100%;
    max-height: 92dvh;
    margin: 0;
    border-radius: 22px 22px 0 0;
  }
  #featureLabModal.is-lightweight-preview .feature-lab-list { padding: 12px 12px 18px; }
}

/* Clean — cadrage média resserré : aucune bande technique autour du visuel. */
.clean-exercise-media {
  isolation: isolate;
  background: #fbfaf6;
}
.clean-exercise-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: contain;
  object-position: 50% 50%;
  transform: none;
  transform-origin: center;
}
.clean-exercise-media::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  border: 1px solid rgba(61,71,125,.07);
  content: "";
  pointer-events: none;
}
.clean-exercise-replay {
  z-index: 2;
  right: 12px;
  bottom: 12px;
  min-height: 34px;
  padding: 6px 10px;
  background: rgba(42,46,72,.72);
  box-shadow: 0 5px 16px rgba(28,31,54,.16);
}
@media (max-width: 700px) {
  .clean-exercise-media {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 3;
  }
  .clean-exercise-media img {
    height: 100%;
    min-height: 0;
  }
}
@media (max-width: 420px) {
  .clean-exercise-media {
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 3;
  }
  .clean-exercise-media img {
    height: 100%;
    min-height: 0;
  }
}

/* Fenêtre Clean : cadrage intégral et composition stable dans les panneaux étroits. */
#featureLabModal.is-lightweight-preview .feature-lab-list,
#featureLabModal.is-lightweight-preview .feature-lab-card,
#featureLabModal.is-lightweight-preview .clean-exercise-demo,
#featureLabModal.is-lightweight-preview .clean-exercise-card {
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
  box-sizing: border-box;
}
#featureLabModal.is-lightweight-preview .clean-exercise-stage {
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
  min-height: 0;
}
#featureLabModal.is-lightweight-preview .clean-exercise-media {
  width: 100%;
  min-height: 0;
  aspect-ratio: 16 / 10;
}
#featureLabModal.is-lightweight-preview .clean-exercise-media img {
  padding: 12px;
  object-fit: contain;
  object-position: center;
  transform: none;
  box-sizing: border-box;
}
#featureLabModal.is-lightweight-preview .clean-exercise-guidance {
  min-height: 0;
  padding: 17px 22px 19px;
}
@media (max-width: 700px) {
  #featureLabModal.is-lightweight-preview .clean-exercise-media {
    aspect-ratio: 1 / 1;
  }
}
/* Accueil — un intervalle unique entre les surfaces de premier niveau. */
#dashboardTab {
  --dashboard-section-gap: 16px;
  row-gap: var(--dashboard-section-gap);
}
#dashboardTab > .dashboard-clinical-cockpit {
  display: grid;
  row-gap: var(--dashboard-section-gap);
}
#dashboardTab > :is(.dashboard-clinical-cockpit, .dashboard-planning-frame, .mobile-future-showcase),
#dashboardTab > .dashboard-clinical-cockpit > :is(.dashboard-overview-card, .dashboard-detail) {
  margin: 0;
}
@media (max-width: 900px) {
  #dashboardTab { --dashboard-section-gap: 14px; }
}

/* Chantiers — aperçus identifiables, jamais confondus avec les outils disponibles. */
.sidebar-projects {
  position: relative;
  gap: 4px;
  margin-top: 16px;
  padding: 12px 7px 7px;
  overflow: hidden;
  border: 1px dashed rgba(103,88,184,.24);
  border-radius: 15px;
  background:
    linear-gradient(135deg,rgba(122,105,218,.055) 25%,transparent 25%) 0 0 / 14px 14px,
    rgba(248,247,255,.74);
}
.sidebar-projects .sidebar-section-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 0 5px 5px;
  color: #6758a8;
}
.sidebar-projects .sidebar-section-label::after {
  padding: 3px 6px;
  border: 1px solid rgba(103,88,184,.14);
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  color: var(--tx-4);
  content: "À venir";
  font-size: 7px;
  letter-spacing: .04em;
  text-transform: none;
}
.sidebar-project-item {
  border: 1px solid transparent;
  color: rgba(50,45,78,.72);
}
.sidebar-project-item:hover,
.sidebar-project-item:focus-visible {
  border-color: rgba(103,88,184,.15);
  background: rgba(255,255,255,.72);
  color: var(--tx);
}
.sidebar-project-item > small {
  border: 1px solid rgba(103,88,184,.12);
  background: rgba(255,255,255,.66);
  color: #7669ad;
}

@media (max-width: 900px) {
  .mobile-future-showcase {
    position: relative;
    overflow: hidden;
    border: 1px dashed rgba(103,88,184,.28);
    background:
      radial-gradient(circle at 92% 8%,rgba(146,130,239,.15),transparent 10rem),
      linear-gradient(145deg,rgba(250,249,255,.97),rgba(242,239,252,.92));
    box-shadow: 0 8px 24px rgba(45,38,83,.045);
  }
  .mobile-future-showcase > summary::before {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    border: 1px solid rgba(103,88,184,.15);
    border-radius: 10px;
    background: rgba(255,255,255,.78);
    color: #6758a8;
    content: "◷";
    display: grid;
    place-items: center;
    font-size: 15px;
    font-weight: 800;
  }
  .mobile-future-showcase > summary > span:first-child {
    flex: 1 1 auto;
  }
  .mobile-future-showcase-list > button {
    position: relative;
    border-style: dashed;
    background: rgba(255,255,255,.58);
  }
  .mobile-future-showcase-list > button::after {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 7px;
    height: 6px;
    border: 1.5px solid rgba(103,88,184,.48);
    border-radius: 2px;
    content: "";
  }
  .mobile-future-showcase-list > button::before {
    position: absolute;
    z-index: 1;
    top: 4px;
    right: 10px;
    width: 4px;
    height: 6px;
    border: 1.5px solid rgba(103,88,184,.48);
    border-bottom: 0;
    border-radius: 4px 4px 0 0;
    content: "";
  }
}


/* 2026-09-13 — Connexion bureau : présentation du produit à gauche,
   authentification à droite. Sur mobile, seule la carte compacte reste visible. */
.authentication-desktop-shell {
  display: grid;
  width: 100%;
  place-items: center;
}
.authentication-story,
.authentication-desktop-status { display: none; }

@media (min-width: 760px) {
  .authentication-overlay { padding: clamp(26px, 4vw, 64px); }

  .authentication-desktop-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(390px, .88fr);
    grid-template-rows: minmax(0, 1fr) auto;
    width: min(1120px, calc(100vw - 64px));
    min-height: min(680px, calc(100dvh - 64px));
    overflow: hidden;
    place-items: stretch;
    border: 1px solid rgba(255, 255, 255, .88);
    border-radius: 32px;
    background: rgba(255, 255, 255, .86);
    box-shadow: 0 34px 100px rgba(37, 46, 91, .17), 0 6px 24px rgba(37, 46, 91, .07);
    backdrop-filter: blur(28px) saturate(1.08);
  }

  .authentication-story {
    position: relative;
    display: flex;
    min-width: 0;
    padding: clamp(40px, 5vw, 64px);
    flex-direction: column;
    overflow: hidden;
    color: #fff;
    background:
      radial-gradient(circle at 82% 18%, rgba(132, 240, 210, .22), transparent 30%),
      radial-gradient(circle at 18% 80%, rgba(141, 126, 238, .34), transparent 38%),
      linear-gradient(145deg, #24264d 0%, #373a72 55%, #5158a5 100%);
  }

  .authentication-story::after {
    content: '';
    position: absolute;
    right: -90px;
    bottom: -100px;
    width: 310px;
    height: 310px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    box-shadow: 0 0 0 52px rgba(255, 255, 255, .025), 0 0 0 104px rgba(255, 255, 255, .018);
    pointer-events: none;
  }

  .authentication-story-brand {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 12px;
    color: #fff;
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -.035em;
  }

  .authentication-story-brand img {
    width: 42px;
    height: 42px;
    filter: drop-shadow(0 8px 18px rgba(16, 22, 78, .22));
  }

  .authentication-story-copy {
    position: relative;
    z-index: 1;
    margin-top: auto;
    padding-top: 54px;
  }

  .authentication-story-kicker {
    margin: 0 0 14px;
    color: #a9f2dc;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
  }

  .authentication-story-copy h1 {
    margin: 0;
    max-width: 570px;
    color: #fff;
    font-size: clamp(38px, 4vw, 56px);
    font-weight: 750;
    letter-spacing: -.05em;
    line-height: 1.04;
  }

  .authentication-story-intro {
    max-width: 540px;
    margin: 20px 0 0;
    color: rgba(239, 241, 255, .76);
    font-size: 14px;
    line-height: 1.7;
  }

  .authentication-story-visual {
    position: relative;
    z-index: 1;
    margin-top: 30px;
    padding: 18px 20px 16px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 22px;
    background: rgba(255, 255, 255, .07);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
  }

  .authentication-story-curve {
    display: block;
    width: 100%;
    height: 118px;
    overflow: visible;
  }

  .authentication-story-guide {
    fill: none;
    stroke: rgba(255, 255, 255, .11);
    stroke-width: 13;
    stroke-linecap: round;
  }

  .authentication-story-path {
    fill: none;
    stroke: url(#authenticationCurveGradient);
    stroke-width: 4;
    stroke-linecap: round;
  }

  .authentication-story-curve circle {
    fill: #f8f9ff;
    stroke: rgba(105, 113, 204, .82);
    stroke-width: 4;
  }

  .authentication-story-curve .authentication-story-endpoint {
    fill: #a9f2dc;
    stroke: rgba(169, 242, 220, .25);
    stroke-width: 9;
  }

  .authentication-clinical-loop {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 2px 0 0;
    padding: 0;
    list-style: none;
  }

  .authentication-clinical-loop li { display: grid; gap: 4px; min-width: 0; }
  .authentication-clinical-loop span {
    color: rgba(224, 227, 248, .54);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .08em;
  }
  .authentication-clinical-loop strong {
    overflow: hidden;
    color: #fff;
    font-size: 12px;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .authentication-story-signature {
    position: relative;
    z-index: 1;
    margin: 22px 0 0;
    color: rgba(239, 241, 255, .58);
    font-size: 11px;
    font-weight: 650;
  }

  .authentication-card {
    align-self: center;
    width: 100%;
    max-width: none;
    padding: clamp(38px, 4.2vw, 56px);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }

  .authentication-card .authentication-brand-lockup,
  .authentication-card .authentication-prototype-note { display: none; }
  .authentication-card .authentication-brand { margin-bottom: 28px; }
  .authentication-card .authentication-profile-switch { width: 100%; margin-top: 0; }
  .authentication-card .authentication-heading { text-align: left; }
  .authentication-card .authentication-heading p { max-width: none; margin-left: 0; }

  .authentication-desktop-status {
    display: flex;
    grid-column: 1 / -1;
    min-height: 54px;
    padding: 12px 28px;
    align-items: center;
    gap: 18px;
    border-top: 1px solid rgba(42, 50, 95, .08);
    background: rgba(249, 250, 255, .9);
    color: #7d8295;
    font-size: 9px;
    font-weight: 650;
    letter-spacing: .01em;
  }

  .authentication-desktop-status strong {
    padding: 6px 9px;
    border-radius: 999px;
    background: rgba(var(--primary-rgb), .1);
    color: #4d59b8;
    font-size: 9px;
    letter-spacing: .06em;
    text-transform: uppercase;
  }

  .authentication-desktop-status span { position: relative; }
  .authentication-desktop-status span + span::before {
    content: '';
    position: absolute;
    top: 50%;
    left: -10px;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #b3b7c6;
    transform: translateY(-50%);
  }
}

/* Recueil santé synthétique : une question par ligne, un détail seulement si oui. */
.bmi-gauge { width: 100%; padding: 8px 5px 0; }
.bmi-gauge-track { position: relative; height: 6px; border-radius: 999px; background: rgba(var(--primary-rgb), .16); }
.bmi-gauge-marker { position: absolute; top: 50%; width: 14px; height: 14px; border: 3px solid #fff; border-radius: 50%; background: var(--primary); box-shadow: 0 0 0 1px var(--primary); transform: translate(-50%, -50%); }
.bmi-gauge-scale { display: flex; justify-content: space-between; margin-top: 7px; color: var(--tx-3); font-size: 10px; font-weight: 500; }
.bmi-gauge.is-empty { opacity: .45; }
.patient-health-declarations .clinician-health-profile {
  margin: 0;
  padding: 0 0 20px;
  gap: 18px;
  border: 0;
  border-bottom: 1px solid var(--ix-border);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.patient-health-declarations .clinician-health-profile-title strong {
  font-size: 14px;
  font-weight: 650;
}
.patient-health-declarations .clinician-health-measures > label,
.patient-health-declarations .clinician-health-age,
.patient-health-declarations .clinician-health-bmi,
.patient-health-declarations .clinician-health-habit {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.patient-health-declarations .clinician-health-measures {
  gap: 16px;
  align-items: start;
}
.patient-health-declarations .clinician-health-habits { gap: 16px; }
.patient-health-declarations .clinician-health-age strong,
.patient-health-declarations .clinician-health-bmi strong { font-size: 14px; font-weight: 600; }
.patient-health-declarations .clinician-health-measures input {
  min-height: 44px;
  border: 1px solid var(--ix-border);
  background: var(--ix-surface);
  box-shadow: none;
}

.health-profile-card,
.clinician-health-profile {
  display: grid;
  gap: 13px;
  margin-top: 14px;
  padding: 15px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(246, 247, 255, .96), rgba(236, 249, 245, .72));
}

.health-profile-card > header,
.clinician-health-profile-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.health-profile-card > header span,
.clinician-health-profile-title span {
  display: block;
  color: var(--primary);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.health-profile-card > header h5,
.clinician-health-profile-title strong { display: block; margin: 2px 0 0; color: var(--tx-1); font-size: 16px; line-height: 1.25; }
.health-profile-card > header > small,
.clinician-health-profile-title > small { color: var(--tx-4); font-size: 11px; }

.health-profile-measures,
.clinician-health-measures {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.health-profile-measures > label,
.health-profile-age,
.health-profile-bmi,
.clinician-health-measures > label,
.clinician-health-age,
.clinician-health-bmi {
  display: grid;
  align-content: center;
  gap: 5px;
  min-width: 0;
  min-height: 70px;
  margin: 0;
  padding: 10px 11px;
  border: 1px solid rgba(31, 42, 89, .09);
  border-radius: 13px;
  background: rgba(255, 255, 255, .86);
  color: var(--tx-3);
  font-size: 11px;
  font-weight: 700;
}

.health-profile-measures > label > span,
.clinician-health-measures > label > span { display: flex; align-items: center; gap: 5px; min-width: 0; }
.health-profile-measures input,
.clinician-health-measures input { width: 100%; min-width: 0; height: 30px; padding: 3px 6px; border: 0; border-radius: 7px; background: rgba(var(--primary-rgb), .06); color: var(--tx-1); font-weight: 750; }
.health-profile-measures small,
.clinician-health-measures small { color: var(--tx-4); font-size: 9px; font-weight: 600; }
.health-profile-age strong,
.health-profile-bmi strong,
.clinician-health-age strong,
.clinician-health-bmi strong { color: var(--tx-1); font-size: 17px; }
.health-profile-age small,
.health-profile-bmi small,
.clinician-health-bmi small { line-height: 1.25; }

.health-profile-habits,
.clinician-health-habits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.health-profile-habit,
.clinician-health-habit { min-width: 0; padding: 11px; border-radius: 13px; background: rgba(255, 255, 255, .72); }
.health-profile-habit > label,
.clinician-health-habit > label { display: grid; gap: 6px; margin: 0; color: var(--tx-2); font-size: 11px; font-weight: 750; }
.health-profile-habit select,
.clinician-health-habit select { width: 100%; min-width: 0; min-height: 36px; padding: 6px 9px; border: 1px solid rgba(31, 42, 89, .1); border-radius: 10px; background: #fff; color: var(--tx-1); }
.health-profile-conditional,
.clinician-health-conditional { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 8px; }
.health-profile-conditional[hidden] { display: none !important; }
.health-profile-conditional > label,
.clinician-health-conditional > label { display: grid; gap: 4px; min-width: 0; color: var(--tx-3); font-size: 9px; font-weight: 700; }
.health-profile-conditional input,
.clinician-health-conditional input { width: 100%; min-width: 0; height: 34px; padding: 5px 7px; border: 1px solid rgba(31, 42, 89, .1); border-radius: 9px; background: #fff; color: var(--tx-1); }

.health-profile-life-stage,
.clinician-health-life-stage { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; border: 0; }
.health-profile-life-stage legend,
.clinician-health-life-stage legend { width: 100%; margin-bottom: 1px; color: var(--tx-3); font-size: 10px; font-weight: 750; }
.health-profile-life-stage label,
.clinician-health-life-stage label { display: flex; align-items: center; gap: 6px; min-height: 35px; margin: 0; padding: 7px 10px; border: 1px solid rgba(31, 42, 89, .09); border-radius: 999px; background: rgba(255, 255, 255, .82); color: var(--tx-2); font-size: 10px; font-weight: 700; }
.health-profile-life-stage input,
.clinician-health-life-stage input { width: 16px; height: 16px; margin: 0; accent-color: var(--primary); }

.health-screening-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.health-screening-item {
  display: block;
  min-width: 0;
  margin: 0 !important;
  padding: 13px 14px;
  border: 1px solid rgba(54, 61, 102, .12);
  border-radius: 15px;
  background: rgba(255, 255, 255, .72);
  transition: border-color .18s ease, background .18s ease;
}

.health-screening-item > span {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.health-screening-item input[type="checkbox"] {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  margin: 0;
  accent-color: var(--primary);
}

.health-screening-item strong {
  color: var(--tx-1);
  font-size: 14px;
  line-height: 1.3;
}

.health-screening-item textarea {
  width: 100%;
  min-height: 72px;
  margin-top: 11px;
  resize: vertical;
}

.health-screening-item textarea[hidden] { display: none !important; }

.health-screening-item.is-positive {
  border-color: rgba(87, 83, 218, .34);
  background: rgba(87, 83, 218, .055);
}

.health-screening-question { display: grid; gap: 10px; }
.health-screening-answer-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.health-screening-answer-options button {
  min-height: 38px;
  border: 1px solid rgba(54, 61, 102, .12);
  border-radius: 12px;
  background: rgba(247, 248, 253, .9);
  color: var(--tx-3);
  font: inherit;
  font-size: 12px;
  font-weight: 750;
}
.health-screening-answer-options button[aria-pressed="true"] { border-color: rgba(var(--primary-rgb), .38); background: rgba(var(--primary-rgb), .1); color: var(--primary); box-shadow: inset 0 0 0 1px rgba(var(--primary-rgb), .08); }
.health-screening-note.needs-input { color: #8a5a18; font-weight: 700; }

.assessment-onset-context { display: grid; gap: 14px; padding: 18px; border: 1px solid rgba(var(--primary-rgb), .13); border-radius: 20px; background: linear-gradient(145deg, rgba(var(--primary-rgb), .055), rgba(255,255,255,.92)); }
.assessment-onset-context > header { display: grid; gap: 3px; }
.assessment-onset-context > header span { color: var(--primary); font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.assessment-onset-context > header strong { color: var(--tx-1); font-size: 18px; }
.assessment-onset-context > header p { margin: 0; color: var(--tx-3); font-size: 12px; }
.assessment-onset-context-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 10px; }
.assessment-onset-context-grid label { display: grid; gap: 7px; margin: 0; min-width: 0; color: var(--tx-2); font-size: 12px; font-weight: 750; }
.assessment-onset-context-grid input,
.assessment-onset-context-grid select { width: 100%; min-width: 0; min-height: 44px; }

/* Une même décision clinique forme une seule surface Focus, avec un ordre visible. */
.assessment-focus-cluster {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(var(--primary-rgb), .05), rgba(255,255,255,.94));
}
.assessment-focus-cluster > header { display: grid; gap: 4px; }
.assessment-focus-cluster > header span {
  color: var(--primary);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.assessment-focus-cluster > header strong { color: var(--tx-1); font-size: 18px; line-height: 1.2; }
.assessment-focus-cluster > header p { max-width: 760px; margin: 0; color: var(--tx-3); font-size: 12px; line-height: 1.5; }
.assessment-focus-cluster-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.assessment-focus-cluster-grid--three { grid-template-columns: 1fr; gap: 16px; }
.assessment-focus-cluster-grid > label,
.assessment-focus-cluster-grid > fieldset { min-width: 0; margin: 0; }
.assessment-focus-cluster-grid > label { display: grid; align-content: start; gap: 8px; color: var(--tx-2); font-size: 12px; font-weight: 780; }
.assessment-focus-cluster-grid label > i,
.assessment-focus-cluster-grid legend > i {
  display: inline-grid;
  width: 22px;
  height: 22px;
  margin-right: 5px;
  place-items: center;
  border-radius: 8px;
  background: rgba(var(--primary-rgb), .1);
  color: var(--primary);
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
}
.assessment-focus-cluster-grid :is(input, select, textarea) { width: 100%; min-width: 0; }
.assessment-focus-cluster-grid textarea { resize: vertical; }
.assessment-focus-cluster .assessment-autonomy-frame { height: 100%; }

.health-screening-more {
  margin-top: 12px;
  border-top: 1px solid rgba(54, 61, 102, .1);
}

.health-screening-more > summary {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 2px 4px;
  color: var(--tx-2);
  font-weight: 700;
  cursor: pointer;
}

.health-screening-more > summary span {
  color: var(--tx-4);
  font-size: 12px;
  font-weight: 600;
}

.health-screening-more[open] > summary { margin-bottom: 12px; }

.patient-health-declarations header > div { min-width: 0; }
.patient-health-declarations header h5 { margin: 0; }
.patient-health-declarations header p { margin: 3px 0 0; font-size: 13px; }
.patient-health-declarations .health-screening-list { margin: 14px 0 0; }
.patient-health-declarations .health-screening-note { margin: 12px 0 0; font-size: 12px; }
.health-screening-alert { display: grid; gap: 3px; margin-top: 12px; padding: 12px 14px; border-radius: 14px; background: rgba(219, 132, 31, .09); color: var(--tx-2); font-size: 13px; }
.health-screening-alert strong { color: #9b5f15; }
.general-health-record-actions { justify-content: flex-start; }

.patient-assessment-spine {
  display: grid;
  gap: 12px;
  margin: 14px 0;
  padding: 16px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(246, 247, 255, .98), rgba(255, 255, 255, .94));
}
.patient-assessment-spine > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; }
.patient-assessment-spine > header span { color: var(--primary); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.patient-assessment-spine > header h4 { margin: 2px 0 0; color: var(--tx-1); font-size: 17px; }
.patient-assessment-spine > header > small { max-width: 250px; color: var(--tx-4); font-size: 11px; text-align: right; }
.patient-assessment-spine ol { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 7px; margin: 0; padding: 0; list-style: none; }
.patient-assessment-spine li { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 9px; border: 1px solid rgba(31, 42, 89, .08); border-radius: 12px; background: #fff; }
.patient-assessment-spine li > span { display: grid; place-items: center; flex: 0 0 25px; width: 25px; height: 25px; border-radius: 50%; background: rgba(var(--primary-rgb), .1); color: var(--primary); font-size: 11px; font-weight: 850; }
.patient-assessment-spine li div { min-width: 0; }
.patient-assessment-spine li strong,
.patient-assessment-spine li small { display: block; overflow: hidden; text-overflow: ellipsis; }
.patient-assessment-spine li strong { color: var(--tx-2); font-size: 11px; line-height: 1.25; }
.patient-assessment-spine li small { margin-top: 3px; color: var(--tx-4); font-size: 9px; white-space: nowrap; }
.patient-assessment-spine li.is-active { border-color: rgba(var(--primary-rgb), .32); box-shadow: 0 7px 20px rgba(54, 63, 127, .08); }
.patient-assessment-spine li.is-active > span,
.patient-assessment-spine li.is-complete > span { background: var(--primary); color: #fff; }
.patient-assessment-spine li.is-complete small { color: #27765b; }
.patient-assessment-spine li.is-locked { border-style: dashed; background: rgba(239, 240, 248, .7); opacity: .68; }
.patient-assessment-spine li.is-locked > span { background: rgba(31, 42, 89, .08); color: var(--tx-4); }
.patient-assessment-spine li.is-locked small { white-space: normal; }

@media (max-width: 700px) {
  .patient-assessment-spine { padding: 13px; }
  .patient-assessment-spine > header { align-items: flex-start; }
  .patient-assessment-spine > header > small { display: none; }
  .patient-assessment-spine ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .patient-assessment-spine li { align-items: flex-start; padding: 8px; }
  .patient-assessment-spine li > span { flex-basis: 22px; width: 22px; height: 22px; }
  .patient-assessment-spine li strong { font-size: 10px; }
  .patient-assessment-spine li.is-locked small { display: none; }
  .health-profile-card,
  .clinician-health-profile { gap: 10px; padding: 12px; border-radius: 15px; }
  .health-profile-card > header > small,
  .clinician-health-profile-title > small { display: none; }
  .health-profile-measures,
  .clinician-health-measures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .health-profile-measures > label,
  .health-profile-age,
  .health-profile-bmi,
  .clinician-health-measures > label,
  .clinician-health-age,
  .clinician-health-bmi { min-height: 62px; padding: 9px; }
  .health-profile-habits,
  .clinician-health-habits { grid-template-columns: 1fr; }
  .health-profile-life-stage,
  .clinician-health-life-stage { gap: 6px; }
  .health-profile-life-stage label,
  .clinician-health-life-stage label { flex: 1 1 auto; justify-content: center; min-height: 38px; }
  .health-screening-list { grid-template-columns: 1fr; gap: 8px; }
  .health-screening-item { padding: 12px; }
  .health-screening-item strong { font-size: 13px; }
  .assessment-onset-context { padding: 14px; }
  .assessment-onset-context-grid { grid-template-columns: 1fr; }
  .assessment-focus-cluster { gap: 13px; padding: 14px; }
  .assessment-focus-cluster-grid,
  .assessment-focus-cluster-grid--three { grid-template-columns: 1fr; gap: 14px; }
  .patient-health-declarations { padding: 14px; }
  .patient-health-declarations header { align-items: flex-start; }
  .patient-health-declarations header h5 { font-size: 16px; }
  .patient-health-declarations header p { font-size: 12px; }
  .general-health-record-actions { display: grid; grid-template-columns: 1fr; }
  .general-health-record-actions .primary-btn,
  .general-health-record-actions .session-inline-link { width: 100%; justify-content: center; }
}

@media (min-width: 760px) and (max-height: 760px) {
  .authentication-desktop-shell { min-height: calc(100dvh - 40px); }
  .authentication-story { padding: 34px 42px; }
  .authentication-story-copy { padding-top: 26px; }
  .authentication-story-copy h1 { font-size: 39px; }
  .authentication-story-intro { margin-top: 13px; line-height: 1.55; }
  .authentication-story-visual { margin-top: 18px; }
  .authentication-story-curve { height: 88px; }
  .authentication-story-signature { margin-top: 14px; }
  .authentication-card { padding-block: 28px; }
}

/* Préparation du bilan : mêmes champs sur ordinateur et téléphone. */
.patient-preparation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.patient-preparation-grid label { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.patient-preparation-grid input { width: 100%; min-width: 0; min-height: 44px; box-sizing: border-box; }
.patient-preparation-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.patient-preparation-actions button { min-height: 44px; white-space: normal; }
@media (max-width: 600px) {
  .patient-preparation-grid { grid-template-columns: 1fr; }
  .patient-preparation-actions { flex-direction: column; }
}


/* 2026-09-13 — première connexion professionnelle guidée, simulation locale */
.authentication-registration { scrollbar-gutter: stable; }
.authentication-registration > .authentication-back { margin-bottom: 13px; }
.authentication-registration-heading { margin-bottom: 14px; }
.authentication-registration-heading > span { display: block; margin-bottom: 5px; color: var(--primary); font-size: 9px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.authentication-registration-progress { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 5px; margin: 0 0 18px; padding: 0; list-style: none; }
.authentication-registration-progress li { position: relative; display: grid; justify-items: center; gap: 5px; min-width: 0; color: #9a9fb0; }
.authentication-registration-progress li:not(:last-child)::after { content: ""; position: absolute; top: 13px; left: calc(50% + 16px); width: calc(100% - 27px); height: 2px; border-radius: 2px; background: rgba(var(--primary-rgb), .12); }
.authentication-registration-progress li.is-complete:not(:last-child)::after { background: rgba(58,151,120,.38); }
.authentication-registration-progress li > span { position: relative; z-index: 1; display: grid; width: 27px; height: 27px; place-items: center; border: 1px solid rgba(31,42,89,.11); border-radius: 50%; background: #fff; color: inherit; font-size: 10px; font-weight: 800; }
.authentication-registration-progress li.is-current { color: var(--primary-dk); }
.authentication-registration-progress li.is-current > span { border-color: rgba(var(--primary-rgb), .38); background: rgba(var(--primary-rgb), .11); box-shadow: 0 0 0 4px rgba(var(--primary-rgb), .06); }
.authentication-registration-progress li.is-complete { color: #2d8268; }
.authentication-registration-progress li.is-complete > span { border-color: rgba(45,130,104,.26); background: rgba(45,130,104,.1); }
.authentication-registration-progress small { overflow: hidden; max-width: 100%; font-size: 8px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.authentication-registration-panel { display: grid; gap: 12px; }
.authentication-registration-panel[hidden] { display: none; }
.authentication-registration-panel h2 { margin: 0; color: #20263d; font-size: 17px; line-height: 1.25; outline: none; }
.authentication-registration-panel > p { margin: -5px 0 0; color: #777d91; font-size: 11px; line-height: 1.5; }
.authentication-demo-notice { display: grid; gap: 3px; padding: 11px 12px; border: 1px solid rgba(198,145,51,.18); border-radius: 13px; background: rgba(255,246,225,.72); }
.authentication-demo-notice strong { color: #8b611f; font-size: 10px; }
.authentication-demo-notice span { color: #826f50; font-size: 9px; line-height: 1.45; }
.authentication-registration-panel button.authentication-submit { min-height: 46px; padding: 0 16px; border: 0; border-radius: 14px; background: linear-gradient(135deg,#6f7ce7,#4c5ac5); color: #fff; font: 750 12px/1.2 var(--font); box-shadow: 0 8px 18px rgba(76,90,197,.18); cursor: pointer; }
.authentication-verified-identity { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border: 1px solid rgba(45,130,104,.17); border-radius: 13px; background: rgba(231,248,241,.72); }
.authentication-verified-identity > span:last-child { display: grid; gap: 3px; min-width: 0; }
.authentication-verified-identity strong { color: #236c58; font-size: 10px; }
.authentication-verified-identity small { color: #5e7c72; font-size: 8px; line-height: 1.35; }
.authentication-verified-mark { display: grid; width: 28px; height: 28px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #358d70; color: #fff; font-size: 13px; font-weight: 850; }
.authentication-choice-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.authentication-choice-grid label { position: relative; display: flex; min-width: 0; min-height: 76px; padding: 11px; align-items: flex-start; gap: 8px; border: 1px solid rgba(31,42,89,.1); border-radius: 13px; background: rgba(250,251,255,.9); cursor: pointer; }
.authentication-choice-grid label:has(input:checked) { border-color: rgba(var(--primary-rgb), .38); background: rgba(var(--primary-rgb), .07); box-shadow: inset 0 0 0 1px rgba(var(--primary-rgb), .08); }
.authentication-choice-grid input { width: 16px; height: 16px; flex: 0 0 auto; accent-color: var(--primary); }
.authentication-choice-grid label > span { display: grid; gap: 4px; min-width: 0; }
.authentication-choice-grid strong { color: #343a50; font-size: 10px; line-height: 1.3; }
.authentication-choice-grid small { color: #7b8193; font-size: 8px; line-height: 1.4; }
.authentication-registration-field { display: grid; gap: 6px; color: #343a50; font-size: 10px; font-weight: 750; }
.authentication-registration-field input { width: 100%; min-height: 45px; padding: 0 13px; border: 1px solid rgba(31,42,89,.11); border-radius: 13px; outline: none; background: rgba(250,251,255,.92); color: #171c32; font: 600 13px/1 var(--font); }
.authentication-registration-field input:focus { border-color: rgba(var(--primary-rgb), .62); background: #fff; box-shadow: 0 0 0 4px rgba(var(--primary-rgb), .09); }
.authentication-password-rule { font-size: 9px !important; }
.authentication-registration-actions { display: grid; grid-template-columns: auto minmax(130px,1fr); align-items: center; gap: 10px; margin-top: 2px; }
.authentication-registration-actions .authentication-back { min-height: 44px; margin: 0; padding: 0 8px; }
.authentication-registration-success { display: grid; justify-items: center; gap: 7px; padding: 4px 8px 2px; text-align: center; }
.authentication-registration-success > span { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 50%; background: rgba(45,130,104,.12); color: #28765f; font-size: 18px; font-weight: 850; }
.authentication-registration-success p { margin: 0; max-width: 300px; color: #70768a; font-size: 10px; line-height: 1.45; }
.authentication-registration-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin: 0; }
.authentication-registration-summary > div { min-width: 0; padding: 9px 10px; border-radius: 11px; background: rgba(244,246,252,.82); }
.authentication-registration-summary dt { color: #858a9c; font-size: 7px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.authentication-registration-summary dd { margin: 4px 0 0; color: #343a50; font-size: 9px; font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
@media (max-width: 560px) {
  .authentication-registration { max-height: calc(100dvh - 190px); overflow-y: auto; }
  .authentication-registration-progress small { font-size: 7px; }
  .authentication-choice-grid { grid-template-columns: 1fr; }
  .authentication-choice-grid label { min-height: 62px; }
  .authentication-registration-summary { grid-template-columns: 1fr 1fr; }
}

/* Le recueil santé manquant précède les sections du bilan. */
.initial-assessment-health-priority { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: 24px; margin: 12px 0 24px; border: 2px solid var(--primary); border-radius: 20px; background: #f0ebff; }
.initial-assessment-health-priority h3 { margin: 6px 0 10px; font-size: 24px; color: var(--tx-1); }
.initial-assessment-health-priority p { line-height: 1.5; }
.initial-assessment-health-priority button { min-height: 48px; white-space: normal; }
@media (max-width: 700px) {
  .initial-assessment-health-priority { grid-template-columns: 1fr; padding: 18px; gap: 16px; }
  .initial-assessment-health-priority button { width: 100%; }
}

/* 2026-09-13 — Connexion ordinateur : véritable surface de logiciel,
   sans modifier la carte compacte utilisée sur téléphone. */
@media (min-width: 901px) {
  .authentication-overlay {
    align-items: stretch;
    padding: 24px;
  }

  .authentication-desktop-shell {
    width: min(1420px, 100%);
    min-height: calc(100dvh - 48px);
    max-height: calc(100dvh - 48px);
    grid-template-columns: minmax(460px, 1.18fr) minmax(420px, .82fr);
    border-radius: 26px;
  }

  .authentication-story {
    padding: clamp(42px, 4.5vw, 68px);
  }

  .authentication-story-copy {
    margin-top: clamp(64px, 9vh, 118px);
    padding-top: 0;
  }

  .authentication-story-copy h1 {
    max-width: 650px;
    font-size: clamp(42px, 4.25vw, 62px);
  }

  .authentication-story-intro {
    max-width: 590px;
    font-size: 15px;
  }

  .authentication-story-visual {
    width: min(650px, 100%);
    margin-top: clamp(30px, 5vh, 50px);
  }

  .authentication-story-signature {
    margin-top: auto;
    padding-top: 24px;
  }

  .authentication-card {
    display: flex;
    min-width: 0;
    align-self: stretch;
    justify-content: center;
    flex-direction: column;
    padding: clamp(40px, 4vw, 64px);
    border-left: 1px solid rgba(42, 50, 95, .07);
    background: rgba(255, 255, 255, .72);
    overflow-y: auto;
  }

  .authentication-card > .authentication-brand,
  .authentication-card > .authentication-view,
  .authentication-card > .authentication-prototype-note {
    width: min(450px, 100%);
    margin-inline: auto;
  }

  .authentication-card .authentication-brand {
    justify-items: stretch;
    margin-bottom: 34px;
  }

  .authentication-card .authentication-profile-switch {
    display: flex;
    width: 100%;
    gap: 24px;
    margin: 0;
    padding: 0;
    border: 0;
    border-bottom: 1px solid rgba(31, 42, 89, .11);
    border-radius: 0;
    background: transparent;
  }

  .authentication-card .authentication-profile-option {
    position: relative;
    min-height: 42px;
    flex: 0 0 auto;
    justify-content: flex-start;
    padding: 0 1px 12px;
    border-radius: 0;
  }

  .authentication-card .authentication-profile-option.active {
    background: transparent;
    box-shadow: none;
  }

  .authentication-card .authentication-profile-option.active::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 3px;
    border-radius: 3px 3px 0 0;
    background: currentColor;
    content: "";
  }

  .authentication-card .authentication-heading h1 {
    font-size: 30px;
  }

  .authentication-card .authentication-form input {
    border-radius: 11px;
    background: #fff;
  }

  .authentication-card .authentication-form button.authentication-submit {
    border-radius: 11px;
  }

  .authentication-card .authentication-pilot-entry {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 14px;
    border-radius: 13px;
  }

  .authentication-card .authentication-pilot-entry > div {
    grid-column: 1 / -1;
    margin-bottom: 3px;
  }

  .authentication-card .authentication-pilot-entry button {
    width: 100%;
    padding-inline: 8px;
  }

  .authentication-desktop-status {
    min-height: 48px;
  }
}

@media (min-width: 901px) and (max-height: 720px) {
  .authentication-overlay { padding: 12px; }
  .authentication-desktop-shell {
    min-height: calc(100dvh - 24px);
    max-height: calc(100dvh - 24px);
  }
  .authentication-story-copy { margin-top: 32px; }
  .authentication-story-visual { margin-top: 20px; }
  .authentication-card { padding-block: 26px; }
}

/* Profil kiné · accès discret aux missions du bêta-test */
.kine-profile-beta-badge {
  display: inline-flex;
  min-width: 64px;
  min-height: 40px;
  margin-left: auto;
  padding: 0 10px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid rgba(98, 88, 232, .18);
  border-radius: 999px;
  color: var(--primary-dk);
  background: rgba(255, 255, 255, .76);
  font: 800 11px/1 var(--font);
  letter-spacing: .02em;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(50, 43, 92, .07);
  transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}
.kine-profile-beta-badge svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.kine-profile-identity-card .kine-profile-beta-badge span:last-child { color: inherit; font-size: inherit; }
.kine-profile-beta-badge:hover {
  transform: translateY(-1px);
  border-color: rgba(98, 88, 232, .36);
  background: #fff;
}
.kine-profile-beta-badge:focus-visible {
  outline: 3px solid rgba(98, 88, 232, .18);
  outline-offset: 2px;
}
@media (max-width: 560px) {
  .kine-profile-identity-card { flex-wrap: wrap; }
  .kine-profile-beta-badge { min-height: 44px; margin-left: 69px; }
}

/* Recueil santé partagé, repères de navigation et relecture explicite. */
.patient-health-declarations { border: 1px solid var(--border); border-radius: 16px; padding: 18px; background: var(--surface); }
.patient-health-declarations header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; }
.patient-health-declarations header span { color: var(--primary); font-weight: 600; }
.patient-health-declarations dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 16px 0; }
.patient-health-declarations dt { font-weight: 600; margin-bottom: 4px; }
.patient-health-declarations dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.patient-health-declarations p { color: var(--tx-3); line-height: 1.5; }
.assessment-block-picker { position: relative; width: fit-content; margin-top: 2px; }
.assessment-block-picker > summary {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 10px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 9px;
  background: rgba(255,255,255,.68);
  color: var(--tx-3);
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
  list-style: none;
}
.assessment-block-picker > summary::-webkit-details-marker { display: none; }
.assessment-block-picker > summary::after { content: '⌄'; color: var(--primary); font-size: 14px; line-height: 1; }
.assessment-block-picker[open] > summary { border-color: rgba(var(--primary-rgb), .30); background: #fff; color: var(--primary-dk); }
.assessment-block-picker[open] > summary::after { transform: rotate(180deg); }
.assessment-block-picker > label {
  position: absolute;
  z-index: 20;
  top: calc(100% + 6px);
  left: 0;
  width: min(440px, calc(100vw - 48px));
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: 13px;
  background: #fff;
  color: var(--tx-3);
  font-size: 10px;
  font-weight: 800;
  box-shadow: 0 16px 34px rgba(45,49,92,.14);
}
.assessment-block-picker select { width: 100%; min-height: 44px; }
.initial-assessment-workspace.assessment-review-open > .assessment-summary { display: block !important; border: 2px solid var(--primary); }
@media (max-width: 700px) { .patient-health-declarations dl { grid-template-columns: 1fr; } }

/* Recueil santé : lecture synthétique et saisie en panneau d’application. */
.general-health-record-editor-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 4px;
}
.general-health-record-editor-header span {
  display: block;
  margin-bottom: 2px;
  color: #0f766e;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.general-health-record-editor-header h5 {
  color: var(--tx-1);
  font-size: 20px;
}
.general-health-record-editor-close {
  display: grid;
  width: 40px;
  min-width: 40px;
  height: 40px;
  place-items: center;
  border: 1px solid rgba(31, 42, 89, .12);
  border-radius: 50%;
  background: #fff;
  color: var(--tx-2);
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}
.general-health-record-editor-close:hover { background: var(--surface-2); }
.general-health-record-editor-intro {
  margin: 0 0 14px;
  color: var(--tx-3);
  font-size: 12px;
}
.general-health-record-advanced {
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 16px;
  background: rgba(246, 247, 255, .72);
}
.general-health-record-advanced > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  color: var(--tx-2);
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
  list-style: none;
}
.general-health-record-advanced > summary::-webkit-details-marker { display: none; }
.general-health-record-advanced > summary::after {
  content: '+';
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: var(--primary);
  font-size: 18px;
}
.general-health-record-advanced[open] > summary::after { content: '−'; }
.general-health-record-advanced > summary small {
  margin-left: auto;
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 600;
}
.general-health-record-advanced .general-health-record-boundary {
  margin: 0 16px 14px;
}
.general-health-record-advanced .general-health-traceability-grid {
  padding: 0 16px 16px;
}
.patient-health-declarations.is-empty {
  padding: 0;
  border: 0;
  background: transparent;
}
.patient-health-declarations-empty {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px 16px;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(246, 247, 255, .96), rgba(231, 248, 244, .78));
}
.patient-health-declarations-empty > span {
  display: grid;
  width: 36px;
  min-width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 12px;
  background: #fff;
  color: var(--primary);
  font-size: 20px;
  box-shadow: 0 5px 14px rgba(43, 52, 99, .08);
}
.patient-health-declarations-empty strong {
  display: block;
  color: var(--tx-2);
  font-size: 12px;
}
.patient-health-declarations-empty p {
  margin-top: 2px;
  font-size: 10px;
}

@media (max-width: 700px) {
  .general-health-record {
    gap: 13px;
    padding: 16px;
    border-radius: 22px;
  }
  .general-health-record-header {
    gap: 9px;
  }
  .general-health-record-header h4 {
    margin-top: 1px;
    font-size: 23px;
    line-height: 1.12;
  }
  .general-health-record-header p:not(.section-kicker) {
    display: none;
  }
  .general-health-record-header .assessment-status {
    width: fit-content;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(var(--primary-rgb), .08);
    font-size: 10px;
  }
  .general-health-assessment-return {
    align-items: center;
    flex-direction: row;
    padding: 0;
    background: transparent;
  }
  .general-health-assessment-return > span {
    display: none;
  }
  .general-health-assessment-return .app-page-back {
    min-height: 40px;
    padding: 8px 12px;
    border: 1px solid rgba(var(--primary-rgb), .16);
    border-radius: 12px;
    background: rgba(var(--primary-rgb), .06);
  }
  .patient-health-declarations {
    padding: 15px;
    border-radius: 17px;
  }
  .patient-health-declarations header {
    align-items: center;
    gap: 8px;
  }
  .patient-health-declarations header h5 { font-size: 14px; }
  .patient-health-declarations header span {
    padding: 5px 8px;
    border-radius: 999px;
    background: rgba(var(--primary-rgb), .08);
    font-size: 9px;
  }
  .patient-health-declarations dl {
    gap: 0;
    margin: 12px 0;
  }
  .patient-health-declarations dl > div {
    padding: 10px 0;
    border-top: 1px solid rgba(31, 42, 89, .08);
  }
  .patient-health-declarations dt { margin-bottom: 3px; font-size: 11px; }
  .patient-health-declarations dd { color: var(--tx-3); font-size: 11px; }
  .patient-health-declarations > p { margin: 0; font-size: 10px; }
  .general-health-record-actions {
    gap: 9px;
    padding-top: 0;
    border-top: 0;
  }
  .general-health-record-actions > small { display: none; }
  .general-health-record-actions .primary-btn,
  .general-health-record-actions .session-inline-link {
    min-height: 46px;
    border-radius: 14px;
  }
  .general-health-record-editor {
    position: fixed;
    z-index: 2147483600;
    inset: calc(env(safe-area-inset-top) + 8px) 0 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0 16px calc(22px + env(safe-area-inset-bottom));
    border: 0;
    border-radius: 26px 26px 0 0;
    background: #f8f9ff;
    box-shadow: 0 -12px 55px rgba(26, 32, 68, .2);
    -webkit-overflow-scrolling: touch;
  }
  .general-health-record-editor-header {
    position: sticky;
    z-index: 2;
    top: 0;
    margin: 0 -16px;
    padding: 15px 16px 13px;
    border-bottom: 1px solid rgba(31, 42, 89, .08);
    background: rgba(248, 249, 255, .94);
    backdrop-filter: blur(16px);
  }
  .general-health-record-editor-header h5 { font-size: 18px; }
  .general-health-record-editor-intro {
    margin: 14px 0;
    font-size: 11px;
  }
  .general-health-record-editor form { gap: 13px; }
  .general-health-record-editor label {
    gap: 6px;
    font-size: 11px;
  }
  .general-health-record-editor input,
  .general-health-record-editor select,
  .general-health-record-editor textarea {
    min-height: 48px;
    padding: 11px 13px;
    border-radius: 13px;
    background: #fff;
    font-size: 14px;
  }
  .general-health-record-editor textarea {
    min-height: 88px;
    resize: vertical;
  }
  .general-health-essential-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }
  .general-health-record-advanced > summary { min-height: 50px; padding: 11px 13px; }
  .general-health-record-advanced > summary small { display: none; }
  .general-health-record-advanced .general-health-record-boundary {
    margin: 0 12px 12px;
    padding: 10px 12px;
  }
  .general-health-record-advanced .general-health-traceability-grid {
    gap: 11px;
    padding: 0 12px 12px;
  }
  .general-health-form-actions {
    position: sticky;
    z-index: 2;
    bottom: calc(-22px - env(safe-area-inset-bottom));
    margin: 2px -16px calc(-22px - env(safe-area-inset-bottom));
    padding: 12px 16px calc(14px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(31, 42, 89, .08);
    background: rgba(248, 249, 255, .95);
    backdrop-filter: blur(16px);
  }
  .general-health-form-actions .assessment-save-message:empty { display: none; }
  .general-health-form-actions .primary-btn {
    min-height: 48px;
    border-radius: 14px;
  }
}

/* Bilan mobile calme : six sections utiles, sans une étape par champ. */
@media (max-width: 1100px) {
  .initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid {
    position: static;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid > .assessment-step-nav {
    border: 1px solid rgba(var(--primary-rgb), .12);
    border-radius: 15px;
    background: rgba(247, 248, 255, .72);
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-progress {
    gap: 7px;
    margin-top: 8px;
    padding: 11px 13px;
    border: 0;
    border-radius: 14px;
    background: rgba(var(--primary-rgb), .045);
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-heading em {
    display: none;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-heading span {
    color: var(--tx-4);
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-heading strong {
    color: var(--tx-1);
    font-size: 15px;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-track {
    height: 4px;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-requirement:not(.is-blocked) {
    display: none;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-section {
    padding: clamp(16px, 3vw, 22px);
    border-color: rgba(31, 42, 89, .09);
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(42, 48, 86, .045);
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-section legend {
    font-size: 15px;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-section > label,
  .initial-assessment-workspace.assessment-guided-draft .assessment-section > .assessment-grid,
  .initial-assessment-workspace.assessment-guided-draft .assessment-section > section {
    margin-top: 16px;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-step-actions {
    position: static;
    margin: 0;
    padding: 4px 0 0;
    background: transparent;
    backdrop-filter: none;
  }
}

@media (max-width: 520px) {
  .initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid > .assessment-step-nav {
    grid-auto-columns: minmax(132px, 58vw);
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-section {
    padding: 15px;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-section legend span {
    display: none;
  }
  .initial-assessment-workspace.assessment-guided-draft .assessment-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

/* Connexion stable entre les profils : les contenus changent sans déplacer le gabarit. */
.authentication-secondary-action[hidden] { display: none !important; }

.authentication-profile-context { min-width: 0; }

@media (min-width: 760px) {
  .authentication-card #loginView { display: flex; height: 500px; min-height: 500px; max-height: 500px; flex-direction: column; }
  .authentication-card #loginView > .authentication-heading { height: 104px; min-height: 104px; margin-bottom: 0; flex: 0 0 104px; overflow: visible; }
  .authentication-card .authentication-form > label { min-height: 18px; }
  .authentication-card .authentication-label-row { min-height: 18px; }
  .authentication-card .authentication-form input { height: 50px; min-height: 50px; }
  .authentication-card .authentication-form button.authentication-submit { height: 52px; min-height: 52px; }
  .authentication-card .authentication-profile-context {
    display: grid;
    min-height: 112px;
    align-content: start;
  }
  .authentication-card .authentication-profile-context .authentication-secondary-action,
  .authentication-card .authentication-profile-context .authentication-pilot-entry { margin-top: 18px; }
}

/* Shared focused clinical modules use the existing examination panel on every viewport. */
.neuro-module { overflow-wrap: anywhere; }
.neuro-module label { display: grid; gap: 6px; margin: 12px 0; }
.neuro-module input:not([type="checkbox"]), .neuro-module textarea, .neuro-module select { box-sizing: border-box; width: 100%; min-width: 0; padding: 10px; border: 1px solid #cbd5e1; border-radius: 10px; font: inherit; background: #fff; color: #25324b; }
#assessmentQuickModulesPanel .neuro-module .neuro-check { display: flex; flex-direction: row; align-items: flex-start; gap: 10px; }
#assessmentQuickModulesPanel .neuro-check input { width: 18px; height: 18px; flex-shrink: 0; margin-top: 4px; }
.neuro-tool { padding: 12px; margin: 10px 0; border: 1px solid #d7ddf4; border-radius: 14px; background: #f6f7ff; }
.neuro-tool summary { cursor: pointer; font-weight: 650; }
.neuro-module button { white-space: normal; }
.assessment-consent-boundary { display: grid; gap: 8px; margin: 14px 0; padding: 14px; border: 1px solid rgba(var(--primary-rgb), .2); border-radius: 14px; background: rgba(var(--primary-rgb), .055); }
.assessment-consent-boundary > strong { color: var(--primary); }
.assessment-consent-boundary > p { margin: 0; color: var(--tx-2); line-height: 1.45; }
.assessment-intervention-candidates { display: grid; gap: 12px; margin: 16px 0; padding: 15px; border: 1px solid rgba(128, 87, 166, .2); border-radius: 17px; background: linear-gradient(145deg, rgba(128, 87, 166, .075), rgba(255, 255, 255, .92)); }
.assessment-intervention-candidates > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.assessment-intervention-candidates > header div { display: grid; gap: 2px; }
.assessment-intervention-candidates > header span { color: #8057a6; font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.assessment-intervention-candidates > header strong { color: var(--tx); font-size: 16px; }
.assessment-intervention-candidates > header small, .assessment-intervention-candidates > small { color: var(--tx-4); font-size: 10px; line-height: 1.4; }
.assessment-intervention-candidates > p { margin: 0; color: var(--tx-2); font-size: 12px; line-height: 1.5; }
.assessment-intervention-candidates > div { display: grid; gap: 9px; }
.assessment-intervention-candidates article { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 12px; border: 1px solid rgba(128, 87, 166, .14); border-radius: 14px; background: rgba(255, 255, 255, .86); }
.assessment-intervention-candidates article div { display: grid; gap: 4px; }
.assessment-intervention-candidates article strong { color: var(--tx); font-size: 13px; }
.assessment-intervention-candidates article p { margin: 0; color: var(--tx-2); font-size: 11px; line-height: 1.45; }
.assessment-intervention-candidates article small { color: var(--tx-4); font-size: 10px; line-height: 1.4; }
.assessment-intervention-candidates article button { max-width: 190px; }
.assessment-intervention-decision { padding: 6px 9px; border-radius: 999px; background: rgba(128, 87, 166, .09); color: #654286; font-size: 10px; font-weight: 800; text-align: center; }

@media (max-width: 680px) {
  .assessment-intervention-candidates > header { flex-direction: column; }
  .assessment-intervention-candidates article { grid-template-columns: 1fr; }
  .assessment-intervention-candidates article button { width: 100%; max-width: none; }
  .assessment-intervention-decision { justify-self: start; }
}

/* Patient guidance sheets · 2026-09-14 */

.patient-guidance-modal {
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 4vw, 48px);
}

.patient-guidance-modal-content {
  width: min(680px, 100%);
  max-height: min(860px, calc(100dvh - 32px));
  overflow: auto;
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 26px 80px rgba(38, 38, 82, 0.22);
}

.patient-guidance-modal-header,
.patient-guidance-hub > header,
.patient-guidance-card > header,
.patient-home-guidance > summary,
.patient-session-guidance > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.patient-guidance-modal-header {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 24px 26px 18px;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid rgba(88, 82, 180, 0.1);
  backdrop-filter: blur(16px);
}

.patient-guidance-modal-header span,
.patient-guidance-hub > header span,
.patient-home-guidance summary small {
  color: #6558dd;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.patient-guidance-modal-header h3,
.patient-guidance-hub > header h3 {
  margin: 4px 0 0;
}

.patient-guidance-form {
  display: grid;
  gap: 16px;
  padding: 22px 26px 26px;
}

.patient-guidance-form > label,
.patient-guidance-form-grid label {
  display: grid;
  gap: 7px;
  color: #34334f;
  font-weight: 750;
}

.patient-guidance-form input,
.patient-guidance-form select,
.patient-guidance-form textarea {
  width: 100%;
  min-height: 46px;
  padding: 11px 13px;
  border: 1px solid #dedcf1;
  border-radius: 14px;
  background: #fbfbfe;
  color: #282641;
  font: inherit;
}

.patient-guidance-form textarea {
  min-height: 88px;
  resize: vertical;
}

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

.patient-guidance-check {
  display: flex !important;
  grid-template-columns: none !important;
  align-items: center;
  gap: 10px !important;
  padding: 11px 13px;
  border-radius: 14px;
  background: #f6f5ff;
}

.patient-guidance-check input {
  width: 18px;
  min-height: 18px;
  margin: 0;
}

.patient-guidance-boundary {
  margin: 0;
  padding: 12px 14px;
  border-radius: 14px;
  background: #f4f8f7;
  color: #66657b;
  font-size: 0.86rem;
  line-height: 1.45;
}

.patient-guidance-form footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.patient-guidance-hub,
.patient-home-guidance,
.patient-session-guidance {
  margin-top: 18px;
  border: 1px solid rgba(92, 82, 204, 0.14);
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(247, 246, 255, 0.96), rgba(244, 252, 249, 0.96));
}

.patient-guidance-hub {
  padding: 18px;
}

.patient-guidance-hub > header small {
  display: block;
  margin-top: 3px;
  color: #88869d;
}

.patient-guidance-hub-list,
.patient-home-guidance > div,
.patient-session-guidance > div {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.patient-guidance-card {
  padding: 15px 16px;
  border: 1px solid rgba(91, 83, 176, 0.12);
  border-left: 4px solid #7770ec;
  border-radius: 16px;
  background: #fff;
}

.patient-guidance-card--practical {
  border-left-color: #55bea7;
}

.patient-guidance-card > header span {
  color: #5f58c9;
  font-size: 0.76rem;
  font-weight: 800;
}

.patient-guidance-card > header small,
.patient-guidance-source {
  color: #8a889c;
  font-size: 0.76rem;
}

.patient-guidance-card h4 {
  margin: 8px 0 7px;
  color: #2b2946;
  font-size: 1rem;
}

.patient-guidance-card p,
.patient-guidance-card ul {
  margin: 0;
  color: #59576d;
  line-height: 1.48;
}

.patient-guidance-card ul {
  padding-left: 20px;
}

.patient-guidance-alert {
  margin-top: 11px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #fff5ee;
}

.patient-guidance-alert strong {
  display: block;
  margin-bottom: 3px;
  color: #a4502d;
  font-size: 0.8rem;
}

.patient-guidance-source {
  display: block;
  margin-top: 10px;
}

.patient-guidance-card footer {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

.patient-guidance-card footer button {
  padding: 6px 9px;
  border: 0;
  background: transparent;
  color: #5d55cf;
  font-weight: 750;
  cursor: pointer;
}

.patient-guidance-card footer button:last-child {
  color: #9b5360;
}

.patient-home-guidance,
.patient-session-guidance {
  overflow: hidden;
}

.patient-home-guidance > summary,
.patient-session-guidance > summary {
  padding: 16px 18px;
  cursor: pointer;
  list-style: none;
}

.patient-home-guidance > summary::-webkit-details-marker,
.patient-session-guidance > summary::-webkit-details-marker {
  display: none;
}

.patient-home-guidance summary span {
  display: grid;
  gap: 3px;
}

.patient-home-guidance summary b,
.patient-session-guidance summary strong {
  display: grid;
  place-items: center;
  min-width: 28px;
  min-height: 28px;
  border-radius: 999px;
  background: #6558dd;
  color: #fff;
  font-size: 0.82rem;
}

.patient-home-guidance > div,
.patient-session-guidance > div {
  padding: 0 12px 12px;
}

.patient-session-guidance {
  margin: 10px 0 14px;
}

@media (max-width: 700px) {
  .patient-guidance-modal {
    align-items: flex-end;
    padding: 0;
  }

  .patient-guidance-modal-content {
    max-height: 92dvh;
    border-radius: 24px 24px 0 0;
  }

  .patient-guidance-modal-header,
  .patient-guidance-form {
    padding-left: 18px;
    padding-right: 18px;
  }

  .patient-guidance-form-grid {
    grid-template-columns: 1fr;
  }

  .patient-guidance-form footer {
    position: sticky;
    bottom: 0;
    padding-top: 10px;
    background: #fff;
  }

  .patient-guidance-form footer .primary-btn {
    flex: 1;
  }

  .patient-guidance-card > header {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }
}


.patient-pre-first-guidance {
  width: 100%;
  margin: 0 0 16px;
  padding: 15px 17px;
  border: 1px solid rgba(69, 169, 145, 0.28);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(233, 250, 246, 0.96), rgba(246, 248, 255, 0.98));
  color: #292743;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  text-align: left;
  cursor: pointer;
}
.patient-pre-first-guidance span { display: grid; gap: 3px; min-width: 0; }
.patient-pre-first-guidance small { color: #358e79; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.patient-pre-first-guidance strong { font-size: 1rem; }
.patient-pre-first-guidance em { color: #858297; font-size: .82rem; font-style: normal; }
.patient-pre-first-guidance b { color: #5850ca; white-space: nowrap; }

.patient-guidance-preview {
  display: grid;
  gap: 8px;
  padding-top: 2px;
}
.patient-guidance-preview > span {
  color: #77748c;
  font-size: .76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.patient-guidance-preview > article {
  padding: 14px 15px;
  border: 1px solid rgba(91, 83, 176, 0.13);
  border-radius: 16px;
  background: linear-gradient(145deg, #ffffff, #f8f8ff);
}
.patient-guidance-preview small { color: #5f58c9; font-weight: 800; }
.patient-guidance-preview h4 { margin: 6px 0; color: #2b2946; font-size: 1rem; }
.patient-guidance-preview p,
.patient-guidance-preview ul { margin: 0; color: #626075; line-height: 1.42; }
.patient-guidance-preview ul { padding-left: 19px; }

.synapse-messaging-avatar.is-patient {
  background: linear-gradient(145deg, #dbf5ee, #c9e8ff);
  color: #2f7568;
}

@media (max-width: 700px) {
  .patient-pre-first-guidance { align-items: flex-start; }
  .patient-pre-first-guidance b { font-size: .82rem; }
}


.synapse-guidance-message-edit {
  justify-self: start;
  margin-top: 7px;
}


.notification-availability-card {
  display: grid;
  gap: 14px;
}
.notification-availability-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.notification-availability-heading p { margin-top: 4px; }
.notification-privacy-chip {
  flex: 0 0 auto;
  padding: 6px 9px;
  border-radius: 999px;
  background: #eaf7f3;
  color: #2f7f6d;
  font-size: .72rem;
  font-weight: 800;
}
.notification-availability-toggle {
  display: flex;
  align-items: center;
  gap: 9px;
  font-weight: 750;
}
.notification-availability-toggle input,
.notification-day-options input { accent-color: var(--primary); }
.notification-extended-settings {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(91, 83, 176, .13);
  border-radius: 16px;
  background: var(--surface-2);
}
.notification-hours-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.notification-hours-fields label { display: grid; gap: 5px; }
.notification-hours-fields input { width: 100%; }
.notification-extended-settings fieldset { margin: 0; padding: 0; border: 0; }
.notification-extended-settings legend { margin-bottom: 8px; font-size: .8rem; font-weight: 750; }
.notification-day-options { display: flex; flex-wrap: wrap; gap: 7px; }
.notification-day-options label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 8px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  font-size: .76rem;
}
.notification-privacy-copy,
.notification-all-types-copy {
  margin: 0;
  color: var(--tx-3);
  font-size: .8rem;
  line-height: 1.45;
}
.notification-privacy-copy { padding: 11px 12px; border-radius: 13px; background: #f4f4fb; }
.notification-availability-actions { display: flex; align-items: center; gap: 12px; }
#notificationAvailabilityStatus { min-height: 1.2em; margin: 0; color: var(--tx-3); font-size: .78rem; }
.synapse-messaging-contact { position: relative; }
.synapse-messaging-contact-unread {
  position: absolute;
  top: 3px;
  right: 4px;
  display: grid;
  place-items: center;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border: 2px solid var(--surface);
  border-radius: 999px;
  background: #6558dd;
  color: #fff;
  font-size: 8px;
  font-weight: 850;
}
.synapse-agent-message.is-incoming { justify-self: start; background: #f2f4fb; }

@media (max-width: 700px) {
  .notification-availability-heading { align-items: flex-start; }
  .notification-hours-fields { grid-template-columns: 1fr 1fr; }
  .notification-day-options { gap: 5px; }
  .notification-day-options label { padding: 5px 7px; }
}

/* Shared assessment contract: same focused task on desktop and telephone. */
#assessmentQuickModulesPanel .assessment-focus { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 12px; background: #eeebff; border-radius: 14px; }
#assessmentQuickModulesPanel .assessment-quality-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
#assessmentQuickModulesPanel .assessment-quality-grid dt { font-weight: 800; }
#assessmentQuickModulesPanel .assessment-quality-grid dd { margin: 4px 0 0; overflow-wrap: anywhere; }
#assessmentQuickModulesPanel .assessment-one-page-summary { padding: 16px; border: 1px solid #d8d3ef; border-radius: 16px; background: #faf9ff; overflow-wrap: anywhere; }
.assessment-guidance-header-actions { display: flex; align-items: center; gap: 8px; }
.assessment-guidance-live-status,
.assessment-guidance-status span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(70, 167, 139, .12);
  color: #287b67;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.assessment-guidance-conclude {
  display: grid;
  gap: 9px;
  margin-top: 16px;
  padding: 14px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 14px;
  background: rgba(255,255,255,.84);
}
.assessment-guidance-conclude > span,
.assessment-guidance-conclusion > span { color: var(--primary); font-size: 10px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.assessment-guidance-conclude label { display: grid; gap: 6px; color: var(--tx); font-size: 12px; font-weight: 750; }
.assessment-guidance-conclude textarea { min-height: 72px; }
.assessment-guidance-conclude p { margin: 0; color: var(--tx-3); font-size: 11px; line-height: 1.45; }
.assessment-guidance-conclude button { justify-self: start; }
.assessment-guidance-concluded { display: grid; gap: 12px; padding: 14px; border-color: rgba(70,167,139,.24); background: linear-gradient(145deg, rgba(70,167,139,.07), #fff); }
.assessment-guidance-concluded .assessment-added-module-header { padding: 0; background: transparent; }
.assessment-guidance-status { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.assessment-guidance-status small { color: var(--tx-4); font-size: 10px; }
.assessment-guidance-conclusion { display: grid; gap: 5px; padding: 13px; border: 1px solid rgba(70,167,139,.17); border-radius: 13px; background: rgba(255,255,255,.88); }
.assessment-guidance-conclusion strong { color: var(--tx); font-size: 14px; line-height: 1.4; }
.assessment-guidance-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.assessment-guidance-history { color: var(--tx-3); font-size: 11px; }
.assessment-guidance-history summary { color: var(--primary); font-weight: 800; cursor: pointer; }
.assessment-guidance-history p { margin: 8px 0 0; line-height: 1.45; }
@media (max-width: 600px) {
  .assessment-guidance-header-actions { align-items: stretch; flex-direction: column; }
  .assessment-guidance-live-status { justify-content: center; }
  .assessment-guidance-conclude button,
  .assessment-guidance-actions button { width: 100%; }
}
#assessmentQuickModulesPanel .neuro-module button { min-height: 44px; white-space: normal; }
@media (max-width: 640px) {
  #assessmentQuickModulesPanel .assessment-quality-grid { grid-template-columns: minmax(0, 1fr); }
  #assessmentQuickModulesPanel .assessment-focus > * { width: 100%; }
}


/* Backend connection status uses the existing Synapse colors, without changing layouts. */
.backend-save-status { position:fixed; bottom:12px; left:50%; transform:translateX(-50%); z-index:20000; max-width:calc(100vw - 32px); padding:8px 14px; border-radius:14px; background:#eef0ff; color:#414b9b; font:500 12px/1.4 system-ui,sans-serif; box-shadow:0 4px 18px #22224414; }
.backend-save-status.is-error { background:#fff0e6; color:#843e22; }
.backend-save-status.is-error { display:flex; align-items:center; gap:8px; flex-wrap:wrap; width:max-content; max-width:min(760px,calc(100vw - 24px)); bottom:140px; border:1px solid #ebd1bd; background:#fff7eff5; font-size:13px; padding:8px 12px; border-radius:18px; }
.backend-save-status.is-error[hidden] { display:none; }
.backend-save-status .backend-save-recovery { font-size:12px; }
.backend-save-recovery summary { cursor:pointer; min-height:36px; align-content:center; padding:4px 8px; }
.backend-save-recovery[open] { flex-basis:100%; border-top:1px solid #ead4c1; }
.backend-save-recovery p { margin:8px; }
.backend-save-status.is-error button { min-height:40px; }
@media(max-width:900px){.backend-save-status.is-error { bottom:calc(200px + env(safe-area-inset-bottom)); }.backend-save-status.is-error button,.backend-save-recovery summary{min-height:44px}}
.backend-save-status button { margin-left:10px; border:0; padding:6px; color:inherit; background:transparent; text-decoration:underline; cursor:pointer; }
.backend-connected:not(.local-demo-enabled) #ownerQuickLoginBtn, .backend-connected #firstConnectionAction, .backend-connected #forgotPasswordBtn, .backend-connected [data-auth-role="admin"], .backend-connected .patient-profile-test-switcher { display:none !important; }
@media(max-width:900px) { .backend-save-status { bottom:calc(80px + env(safe-area-inset-bottom)); width:max-content; } }

/* 2026-09-17 — repères immobiles entre les pages principales.
   Le contenu reste propre à chaque rubrique ; le titre et la navigation gardent
   exactement le même gabarit afin d'éviter un saut lors d'un changement d'onglet. */
@media (max-width: 900px) {
  .main-content,
  body:not([data-main-tab="planning"]) .main-content,
  body[data-main-tab="planning"] .main-content {
    height: 100%;
    min-height: 0;
    padding-top: 20px;
    padding-right: 14px;
    padding-left: 14px;
    overflow-x: hidden;
    overflow-y: auto;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
  }

  /* The agenda owns its two scroll axes; other sections, especially Home,
     keep the shared main scroller. */
  body[data-main-tab="planning"] .main-content {
    overflow: clip;
    touch-action: auto;
  }

  .app-section-header,
  #planningTab > .planning-page-header.app-section-header,
  .gym-hero.gym-hero-compact.app-section-header,
  .cabinet-page-header.app-section-header {
    display: flex;
    box-sizing: border-box;
    width: 100%;
    height: 56px;
    min-height: 56px;
    align-items: center;
    justify-content: space-between;
    flex-direction: row;
    gap: 12px;
    margin: 0 0 14px;
    padding: 0 0 12px;
    border: 0;
    border-bottom: 1px solid rgba(var(--primary-rgb), .12);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    text-align: left;
  }

  .app-section-header-copy {
    display: grid;
    min-width: 0;
    align-content: center;
    justify-items: start;
    gap: 0;
    text-align: left;
  }

  .app-section-header .section-kicker,
  .app-section-header .app-section-subtitle { display: none; }

  .app-section-header h1,
  #planningTab .planning-page-header h1,
  .gym-hero-compact.app-section-header h1,
  .cabinet-page-header.app-section-header h1 {
    margin: 0;
    font-family: var(--font);
    font-size: 24px;
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -.035em;
    text-align: left;
  }

  .patient-summary-card.app-section-header,
  .gym-hero.gym-hero-compact.app-section-header { margin-bottom: 14px; }

  body[data-main-tab="planning"] #planningTab {
    grid-template-rows: 56px auto minmax(0, 1fr);
  }

  .mobile-nav {
    box-sizing: border-box;
    min-height: calc(64px + env(safe-area-inset-bottom));
    align-items: flex-start;
    justify-content: stretch;
    gap: 0;
    padding: 4px 6px calc(4px + env(safe-area-inset-bottom));
  }

  .mobile-nav-item,
  .mobile-nav-item.active {
    box-sizing: border-box;
    width: 20%;
    min-width: 0;
    height: 56px;
    min-height: 56px;
    flex: 1 1 0;
    justify-content: center;
    gap: 2px;
    padding: 4px 2px;
    border-width: 0;
    font-family: var(--font);
    font-size: 8px;
    font-weight: 800;
    line-height: 12px;
    transform: none;
  }

  .mobile-nav-item .nav-icon {
    display: grid;
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    place-items: center;
    font-size: 17px;
    line-height: 1;
  }

  .mobile-nav-item > span:last-child {
    display: block;
    min-height: 12px;
    line-height: 12px;
    white-space: nowrap;
  }
}

/* Navigation Synapse : socle opaque flottant, sans déplacement des accès. */
@media (max-width: 900px) {
  .mobile-nav {
    left: 12px;
    right: 12px;
    bottom: calc(10px + env(safe-area-inset-bottom));
    min-height: 72px;
    padding: 7px;
    gap: 4px;
    border: 2px solid #fff;
    border-radius: 26px;
    background: #e9e2f7;
    backdrop-filter: none;
    box-shadow: 0 8px 28px #48347730, 0 0 0 1px #cfc2e6;
  }
  .mobile-nav .mobile-nav-item {
    color: #584775;
    border-radius: 19px;
    font-size: 10px;
    transition: none;
    transform: none;
  }
  .mobile-nav .mobile-nav-item.active {
    color: #fff;
    background: #6950c6;
    box-shadow: inset 0 1px 0 #ffffff35, 0 3px 7px #4e389b25;
  }
  .mobile-nav .mobile-nav-item:hover { transform: none; }
  .mobile-nav .mobile-nav-item:focus-visible { outline: 3px solid #4e389b; outline-offset: 2px; }
  #mainContent.main-content { padding-bottom: calc(108px + env(safe-area-inset-bottom)) !important; scroll-padding-bottom: 108px; }
}

/* Patientèle : même langage visuel que l’accueil, estimation non prescriptive. */
#patientTab .patient-summary-card { height:auto; min-height:90px; background:transparent; border:0; box-shadow:none; padding:12px 0 20px; }
#patientTab .patient-summary-card h1 { font-size:clamp(32px,4vw,52px); font-weight:550; line-height:1.15; letter-spacing:-.04em; }
#patientTab .patient-summary-card h1 span { color:#7055cf; font-weight:800; }
#patientTab .patient-summary-card .section-kicker, #patientTab .patient-summary-card .app-section-subtitle { display:none; }
.patient-capacity { padding:22px; margin:0 0 22px; border:1px solid #ded4ef; border-radius:24px; background:linear-gradient(120deg,#f0eafa,#faf8ff); color:#42355f; }
.patient-capacity > header { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.patient-capacity h2 { margin:0; font-size:22px; }
.patient-capacity p { font-size:13px; line-height:1.5; }
.patient-capacity > header > span { background:#fff; border-radius:20px; padding:6px 10px; font-size:12px; white-space:nowrap; }
.patient-capacity-metrics { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:18px 0; }
.patient-capacity-metrics > div { display:grid; gap:5px; }
.patient-capacity-metrics strong { color:#6a4db8; font-size:36px; }
.patient-capacity-metrics span { font-size:14px; }
.capacity-caution { color:#6a607a; }
.patient-capacity summary { cursor:pointer; font-weight:700; padding:10px 0; }
.capacity-settings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.capacity-settings label { display:grid; gap:5px; font-size:13px; }
.capacity-settings input { width:100%; min-width:0; padding:10px; border:1px solid #cfc1e6; border-radius:10px; background:#fff; color:#42355f; }
@media(max-width:520px) { .patient-capacity { padding:16px; } #patientTab .patient-summary-card { flex-wrap:wrap; gap:12px; } .patient-capacity h2 { font-size:20px; } }

.patient-directory-display { display:flex; align-items:flex-start; flex-wrap:wrap; gap:12px; margin:0 0 16px; }
.patient-directory-display details { padding:10px 16px; border:1px solid #ded3ef; border-radius:16px; background:#f5f0fc; }
.patient-directory-display summary { cursor:pointer; font-weight:700; color:#604794; }
.patient-directory-display label { display:block; padding:6px 0; font-size:14px; }
.patient-directory-display p { font-size:12px; color:#726381; }
.patient-directory-display button[aria-pressed="true"] { background:#e6dbf7; border-color:#8c71c7; }
#patientTableBody .clinical-patient-row:not(.clinical-patient-row-archived) { grid-template-columns:34px minmax(0,1fr) 22px; }
#patientTableBody .clinical-patient-arrow { grid-column:3; grid-row:1; }
.directory-patient-facts { display:flex; flex-wrap:wrap; gap:10px 24px; grid-column:2; width:100%; padding-top:10px; text-align:left; }
.directory-patient-fact { display:flex; flex-direction:column; gap:4px; flex:1 1 180px; min-width:0; padding:9px 12px; border-radius:12px; background:#f0eaf8; color:#4f3b73; }
.directory-patient-fact small { font-size:11px; color:#79678d; }
.directory-patient-fact > span { font-size:13px; line-height:1.4; }
@media(max-width:520px) { .directory-patient-facts { gap:7px; } .directory-patient-fact { flex-basis:100%; } }

/* TEST 1 P01 — branche patient pelvi-périnéale */
.pre-intake-adaptive-card { display: grid; gap: 14px; margin: 14px 0; padding: 16px; border: 1px solid rgba(var(--primary-rgb), .16); border-radius: var(--r-xl); background: linear-gradient(145deg, rgba(var(--primary-rgb), .055), rgba(255,255,255,.94)); }
.pre-intake-adaptive-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.pre-intake-adaptive-card > header div { display: grid; gap: 3px; }
.pre-intake-adaptive-card > header span { color: var(--primary); font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.pre-intake-adaptive-card > header h5 { margin: 0; color: var(--tx); font-size: 17px; }
.pre-intake-adaptive-card > header small { color: var(--tx-3); font-size: 10px; white-space: nowrap; }
.pre-intake-adaptive-card .pre-intake-checks { margin: 0; background: rgba(255,255,255,.72); }
.pre-intake-domain-intro { margin: 0; color: var(--tx-2); font-size: var(--text-sm); line-height: 1.5; }
.pre-intake-domain-fields { display: grid; gap: 12px; }
.pre-intake-domain-question { display: grid; gap: 7px; margin: 0; }
.pre-intake-domain-question > span,
.pre-intake-domain-question legend { color: var(--tx); font-size: var(--text-sm); font-weight: 700; line-height: 1.4; }
.pre-intake-domain-question small { color: var(--tx-3); font-size: var(--text-xs); line-height: 1.4; }
.pre-intake-domain-question textarea { min-height: 82px; resize: vertical; }
.pre-intake-adaptive-card.hidden, [data-generic-symptom].hidden, .pre-intake-pelvic-warning.hidden { display: none !important; }
@media (max-width: 600px) { .pre-intake-adaptive-card { padding: 13px; } .pre-intake-adaptive-card > header { display: grid; } .pre-intake-adaptive-card > header small { white-space: normal; } }

.pre-intake-adaptive-card.is-deferred > :not(header):not(.pre-intake-in-person-choice) { display: none; }

/* Référentiel comportemental — sous-ensemble explicite TEST 1 */
.behavior-preferences-card { margin-top: 6px; }
.behavior-preferences-intro { margin: 0; color: var(--tx-2); font-size: 13px; line-height: 1.45; }
.behavior-preferences-footnote { color: var(--tx-3); font-size: 11px; line-height: 1.4; }
.clinician-pre-intake-card:last-child .clinician-pre-intake-item:last-child {
  border-color: rgba(var(--primary-rgb), .18);
  background: rgba(var(--primary-rgb), .055);
}

/* Dossier patient et motifs de rendez-vous */
.session-appointment-settings {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(120px, .7fr);
  gap: 10px 12px;
  margin: 0 0 var(--s4);
  padding: 13px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: var(--r-lg);
  background: rgba(var(--primary-rgb), .04);
}
.session-appointment-settings > label { display: grid; gap: 6px; margin: 0; color: var(--tx-2); font-size: var(--text-sm); font-weight: var(--fw-sb); }
.session-appointment-settings select,
.session-appointment-settings input { width: 100%; min-height: 42px; border: 1px solid rgba(23,27,36,.11); border-radius: 11px; background: #fff; color: var(--tx); }
.session-duration-control { position: relative; display: flex; align-items: center; }
.session-duration-control input { padding-right: 42px; }
.session-duration-control > span { position: absolute; right: 12px; color: var(--tx-4); font-size: 11px; font-weight: 800; pointer-events: none; }
.session-duration-recommendation { grid-column: 1 / -1; margin: 0; color: var(--tx-3); font-size: 10px; line-height: 1.45; }

.planning-visit-defaults,
.planning-specialty-settings { display: grid; gap: 8px; margin-top: 12px; }
.planning-visit-defaults { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.planning-visit-defaults > label,
.planning-specialty-settings > label {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
  border: 1px solid rgba(17,19,24,.08);
  border-radius: 11px;
  background: #fff;
  color: var(--tx-2);
  font-size: 11px;
  font-weight: 750;
}
.planning-visit-defaults > label > span,
.planning-specialty-color-control { display: flex; align-items: center; gap: 7px; }
.planning-visit-defaults input { width: 66px; min-height: 34px; padding: 5px 7px; border: 1px solid rgba(17,19,24,.1); border-radius: 8px; text-align: right; }
.planning-visit-defaults small,
.planning-specialty-color-control small { color: var(--tx-4); font-size: 9px; }
.planning-specialty-color-control input { width: 34px; height: 30px; padding: 2px; border: 1px solid rgba(17,19,24,.1); border-radius: 8px; background: #fff; cursor: pointer; }
.planning-settings-section > .planning-settings-guidance { margin-top: 10px; color: var(--tx-3); }

.planning-appointment {
  border-left-color: var(--appointment-color, var(--primary));
  background: linear-gradient(135deg, #fff, color-mix(in srgb, var(--appointment-color, var(--primary)) 11%, #fff));
}
.planning-appointment-time { color: color-mix(in srgb, var(--appointment-color, var(--primary)) 82%, #162033); }
.planning-appointment-done { border-left-color: var(--appointment-color, var(--clr-ok-500)); background: linear-gradient(135deg, #fff, color-mix(in srgb, var(--appointment-color, var(--clr-ok-500)) 8%, #fff)); }
.planning-appointment-first { border-left-color: var(--appointment-color, #f59e0b); background: linear-gradient(135deg, #fff, color-mix(in srgb, var(--appointment-color, #f59e0b) 12%, #fff)); }

@media (max-width: 620px) {
  .session-appointment-settings,
  .planning-visit-defaults { grid-template-columns: 1fr; }
  .session-duration-recommendation { grid-column: auto; }
  .planning-specialty-color-control small { display: none; }
}

/* 2026-09-24 — frise de rendez-vous ancrée sur maintenant. */
.dashboard-planning-frame .patient-context-period::before {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: currentColor;
  content: "";
}
.dashboard-planning-frame .patient-context-period {
  display: inline-flex;
  grid-column: 1 / -1;
  grid-row: 2;
  width: fit-content;
  min-height: 19px;
  align-items: center;
  gap: 5px;
  padding: 3px 7px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: 8px;
  font-weight: 850;
  line-height: 1;
  letter-spacing: .025em;
  text-transform: uppercase;
}
.dashboard-planning-frame .patient-context-card .live-patient-copy > span:first-child { grid-row: 1; }
.dashboard-planning-frame .patient-context-card .live-patient-copy > strong { grid-row: 3; }
.dashboard-planning-frame .patient-context-card .patient-context-alert { grid-row: 3; }
.dashboard-planning-frame .patient-context-card[data-period="past"] .patient-context-period { color: rgba(235,236,244,.72); }
.dashboard-planning-frame .patient-context-card[data-period="present"] .patient-context-period { color: #9ee6d4; }
.dashboard-planning-frame .patient-context-card[data-period="future"] .patient-context-period { color: #c8c0ff; }
.dashboard-planning-frame .patient-context-card[data-period="past"] {
  background: rgba(225,227,238,.035);
  opacity: .74;
}
.dashboard-planning-frame .patient-context-card[data-period="present"] {
  background: linear-gradient(145deg,rgba(158,230,212,.16),rgba(255,255,255,.09));
  box-shadow: inset 0 0 0 1px rgba(158,230,212,.28);
}
.dashboard-planning-frame .patient-context-card[data-period="future"] {
  background: linear-gradient(145deg,rgba(200,192,255,.12),rgba(255,255,255,.055));
}
.dashboard-planning-frame .patient-context-card[data-period="past"] .patient-context-live-status::before { background: #a9adba; }
.dashboard-planning-frame .patient-context-card[data-period="present"] .patient-context-live-status::before { background: #59c8ab; }
.dashboard-planning-frame .patient-context-card[data-period="future"] .patient-context-live-status::before { background: #a99cf5; }

/* Keep the three Cabinet destinations identical on desktop and mobile. */
.cabinet-tab .cabinet-mobile-view-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* 2026-09-26 — réseau professionnel externe et cercle clinique local. */
.cabinet-network-view:not(.hidden) { display: grid; gap: 16px; }
.cabinet-network-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; padding: clamp(20px,3vw,30px); border: 1px solid rgba(var(--primary-rgb),.14); border-radius: 24px; background: radial-gradient(circle at 88% 18%,rgba(157,228,211,.34),transparent 31%),linear-gradient(145deg,#fff,rgba(var(--primary-rgb),.07)); box-shadow: 0 18px 52px rgba(39,49,91,.07); }
.cabinet-network-hero h2,.cabinet-network-hero p { margin: 0; }
.cabinet-network-hero h2 { margin-top: 5px; color: var(--tx); font-size: clamp(25px,3.4vw,38px); letter-spacing: -.045em; }
.cabinet-network-hero p:last-child { max-width: 720px; margin-top: 9px; color: var(--tx-3); font-size: 12px; line-height: 1.55; }
.cabinet-network-hero > span,.cabinet-network-card-heading > span { flex: 0 0 auto; padding: 7px 10px; border-radius: 999px; background: rgba(157,228,211,.25); color: #217d6c; font-size: 9px; font-weight: 850; }
.cabinet-network-guardrails { padding: 18px 20px; border: 1px solid rgba(38,115,104,.15); border-radius: 20px; background: #f3fbf8; }
.cabinet-network-guardrails strong { color: #1f665e; font-size: 13px; }
.cabinet-network-guardrails ul { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin: 12px 0 0; padding: 0; list-style: none; }
.cabinet-network-guardrails li { position: relative; padding-left: 16px; color: var(--tx-3); font-size: 10px; line-height: 1.45; }
.cabinet-network-guardrails li::before { content: '✓'; position: absolute; left: 0; color: #238372; font-weight: 900; }
.cabinet-network-layout { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(330px,.92fr); gap: 14px; align-items: start; }
.cabinet-network-card { display: grid; gap: 16px; padding: clamp(18px,2.3vw,25px); border: 1px solid rgba(var(--primary-rgb),.11); border-radius: 22px; background: rgba(255,255,255,.82); }
.cabinet-network-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.cabinet-network-card-heading h3,.cabinet-network-card-heading p { margin: 0; }
.cabinet-network-card-heading h3 { margin-top: 3px; color: var(--tx); font-size: 19px; letter-spacing: -.025em; }
.cabinet-network-card-heading p:last-child { margin-top: 5px; color: var(--tx-3); font-size: 10px; }
.care-network-contact-form,.care-network-opinion-form { display: grid; gap: 11px; padding: 15px; border-radius: 17px; background: rgba(var(--primary-rgb),.045); }
.care-network-contact-form > label:not(.care-network-consent),.care-network-opinion-form > label:not(.care-network-consent),.clinical-circle-form > label { display: grid; gap: 6px; color: var(--tx-3); font-size: 10px; font-weight: 800; }
.care-network-contact-form input[type="text"],.care-network-contact-form select,.care-network-opinion-form input:not([type="checkbox"]),.care-network-opinion-form select,.care-network-opinion-form textarea,.clinical-circle-form input:not([type="checkbox"]),.clinical-circle-form select,.clinical-circle-form textarea { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid rgba(var(--primary-rgb),.15); border-radius: 12px; background: #fff; color: var(--tx); font: 650 12px/1.35 var(--font); outline: none; }
.care-network-opinion-form textarea,.clinical-circle-form textarea { resize: vertical; }
.care-network-expertise-fieldset,.clinical-circle-form fieldset { margin: 0; padding: 0; border: 0; }
.care-network-expertise-fieldset legend,.clinical-circle-form legend { margin-bottom: 7px; color: var(--tx-3); font-size: 10px; font-weight: 800; }
.care-network-expertise-grid { display: flex; flex-wrap: wrap; gap: 6px; }
.care-network-expertise-grid label { display: flex; align-items: center; gap: 6px; padding: 7px 9px; border: 1px solid rgba(var(--primary-rgb),.1); border-radius: 999px; background: #fff; color: var(--tx-2); font-size: 9px; font-weight: 700; }
.care-network-consent { display: flex; align-items: flex-start; gap: 8px; color: var(--tx-3); font-size: 9px; line-height: 1.45; }
.care-network-consent input,.care-network-expertise-grid input,.clinical-circle-participants input { width: 15px; height: 15px; min-height: 0; flex: 0 0 15px; margin: 1px 0 0; padding: 0; accent-color: var(--primary); }
.care-network-contact-form .primary-btn,.care-network-opinion-form .primary-btn,.clinical-circle-form .primary-btn { justify-self: start; }
.care-network-contacts-list,.care-network-trace-list,.clinical-circle-list { display: grid; gap: 9px; }
.care-network-contact-card { display: grid; gap: 10px; padding: 14px; border: 1px solid rgba(var(--primary-rgb),.1); border-radius: 17px; background: #fff; }
.care-network-contact-card header { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 9px; }
.care-network-contact-card header > span:nth-child(2) { display: grid; min-width: 0; gap: 2px; }
.care-network-contact-card strong { color: var(--tx); font-size: 12px; }
.care-network-contact-card small { overflow: hidden; color: var(--tx-3); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.care-network-contact-card header em { padding: 5px 7px; border-radius: 999px; background: rgba(157,228,211,.22); color: #217d6c; font-size: 8px; font-style: normal; font-weight: 850; }
.care-network-contact-card header em.is-neutral { background: rgba(var(--primary-rgb),.06); color: var(--tx-3); }
.care-network-contact-card > p { margin: 0; color: var(--tx-4); font-size: 9px; }
.care-network-contact-card footer { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.care-network-expertise-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.care-network-expertise-tags span { padding: 5px 7px; border-radius: 999px; background: rgba(var(--primary-rgb),.055); color: var(--primary-dk); font-size: 8px; font-weight: 750; }
.care-network-trace-list article { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 12px; border: 1px solid rgba(var(--primary-rgb),.08); border-radius: 13px; }
.care-network-trace-list article span { display: grid; gap: 2px; }
.care-network-trace-list article strong { color: var(--tx); font-size: 10px; }
.care-network-trace-list article small,.care-network-trace-list article em { color: var(--tx-4); font-size: 8px; font-style: normal; }
.care-network-empty { margin: 0; color: var(--tx-4); font-size: 10px; }
.clinical-circle-form { display: grid; grid-template-columns: 1fr 180px 170px; gap: 11px; padding: 16px; border-radius: 17px; background: rgba(var(--primary-rgb),.04); }
.clinical-circle-wide { grid-column: 1 / -1; }
.clinical-circle-participants { display: flex; flex-wrap: wrap; gap: 8px; }
.clinical-circle-participants label { display: flex; align-items: center; gap: 7px; padding: 8px 10px; border: 1px solid rgba(var(--primary-rgb),.11); border-radius: 12px; background: #fff; }
.clinical-circle-participants label span { display: grid; gap: 1px; }
.clinical-circle-participants strong { color: var(--tx); font-size: 9px; }
.clinical-circle-participants small { color: var(--tx-4); font-size: 8px; }
.clinical-circle-participants > p { margin: 0; color: var(--tx-4); font-size: 9px; }
.clinical-circle-list article { display: grid; grid-template-columns: minmax(230px,.7fr) minmax(0,1fr) minmax(0,1fr); gap: 14px; padding: 14px; border: 1px solid rgba(var(--primary-rgb),.09); border-radius: 16px; background: #fff; }
.clinical-circle-list article > div { display: grid; gap: 3px; }
.clinical-circle-list article span { color: #217d6c; font-size: 8px; font-weight: 850; text-transform: uppercase; }
.clinical-circle-list article strong { color: var(--tx); font-size: 12px; }
.clinical-circle-list article small { color: var(--tx-4); font-size: 8px; }
.clinical-circle-list article p { margin: 0; color: var(--tx-3); font-size: 9px; line-height: 1.5; }
.clinical-circle-list article b { display: block; margin-bottom: 2px; color: var(--tx-2); }
.cabinet-network-roadmap { display: flex; align-items: center; gap: 14px; padding: 14px 17px; border-radius: 17px; background: rgba(var(--primary-rgb),.045); }
.cabinet-network-roadmap span { flex: 0 0 auto; color: var(--primary); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.cabinet-network-roadmap p { margin: 0; color: var(--tx-3); font-size: 10px; line-height: 1.5; }

@media (max-width: 900px) {
  .cabinet-tab .cabinet-mobile-view-tabs { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cabinet-network-layout { grid-template-columns: 1fr; }
  .cabinet-network-guardrails ul { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .cabinet-network-hero { display: grid; gap: 12px; padding: 18px; border-radius: 20px; }
  .cabinet-network-hero > span { justify-self: start; }
  .cabinet-network-guardrails ul { grid-template-columns: 1fr; }
  .cabinet-network-card { padding: 15px; }
  .care-network-contact-card header { grid-template-columns: auto minmax(0,1fr); }
  .care-network-contact-card header em { grid-column: 2; justify-self: start; }
  .clinical-circle-form { grid-template-columns: 1fr; }
  .clinical-circle-wide { grid-column: 1; }
  .clinical-circle-list article { grid-template-columns: 1fr; }
  .cabinet-network-roadmap { align-items: flex-start; flex-direction: column; gap: 6px; }
}

/* 2026-09-24 — accueil téléphone fixe et listes de travail dédiées. */
.dashboard-worklist-header,
.cabinet-mobile-view-tabs,
.cabinet-upcoming-view {
  display: none;
}

.metric-card.is-empty {
  cursor: default;
}

.metric-card.is-empty[role="button"]:hover {
  transform: none;
}

@media (max-width: 900px) {
  body[data-main-tab="dashboard"]:not(.dashboard-worklist-open) .main-content {
    overflow-y: auto;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
  }

  #dashboardTab:not(.is-mobile-worklist-open) {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }

  #dashboardTab:not(.is-mobile-worklist-open) > .dashboard-clinical-cockpit {
    min-height: 0;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-detail {
    display: none;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overview-card {
    overflow: hidden;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-assistant-hero {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-assistant-copy h1 {
    font-size: clamp(22px, 7vw, 30px);
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-today-date {
    margin-top: 2px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-clinical-scope {
    min-width: 0;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-metrics-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    padding: 7px;
    overflow: visible;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .metric-card {
    min-width: 0;
    min-height: 76px;
    padding: 10px 9px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .metric-card-content {
    gap: 3px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .metric-card-content > p:first-child {
    font-size: 8px;
    line-height: 1.2;
    letter-spacing: .035em;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .metric-card h2 {
    margin: 2px 0 0;
    font-size: 27px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .metric-subtext {
    display: none;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .metric-card.is-empty {
    opacity: .58;
  }

  #dashboardTab:not(.is-mobile-worklist-open) > .dashboard-planning-frame {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-planning-frame > .appointment-timeline-heading {
    padding: 8px 12px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-planning-frame > .live-patient-navigator.topbar-clinical-ribbon {
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }

  #dashboardTab.is-mobile-worklist-open {
    display: block;
    min-height: 100%;
    overflow: visible;
  }

  #dashboardTab.is-mobile-worklist-open > .dashboard-planning-frame,
  #dashboardTab.is-mobile-worklist-open .dashboard-overview-card {
    display: none;
  }

  #dashboardTab.is-mobile-worklist-open > .dashboard-clinical-cockpit {
    display: block;
    overflow: visible;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  #dashboardTab.is-mobile-worklist-open .dashboard-detail {
    display: block;
  }

  .dashboard-worklist-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
  }

  .dashboard-worklist-header > button {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    border: 1px solid rgba(var(--primary-rgb), .15);
    border-radius: 14px;
    background: #fff;
    color: var(--primary);
    font: 800 22px/1 var(--font);
    box-shadow: 0 8px 22px rgba(39,49,91,.07);
  }

  .dashboard-worklist-header p,
  .dashboard-worklist-header h2 {
    margin: 0;
  }

  .dashboard-worklist-header p {
    color: var(--tx-4);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
  }

  .dashboard-worklist-header h2 {
    margin-top: 2px;
    color: var(--tx);
    font-size: 22px;
    letter-spacing: -.025em;
  }

  #dashboardTab.is-mobile-worklist-open .dashboard-columns-grid {
    display: block;
  }

  #dashboardTab.is-mobile-worklist-open .dashboard-card-tools {
    display: none;
  }

  #dashboardTab.is-mobile-worklist-open .dashboard-chart-card .card-header {
    padding: 14px 16px;
    border-radius: 18px 18px 0 0;
  }

  #dashboardTab.is-mobile-worklist-open .dashboard-chart-card .dashboard-list {
    padding: 8px 12px 16px;
  }

  .cabinet-mobile-view-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
    margin: 0 0 14px;
    padding: 4px;
    border: 1px solid rgba(var(--primary-rgb), .1);
    border-radius: 15px;
    background: rgba(var(--primary-rgb), .055);
  }

  .cabinet-mobile-view-tabs button, .cabinet-mobile-view-tabs a {
    min-height: 40px;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: var(--tx-3);
    font: 750 13px/1 var(--font);
    text-decoration:none;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .cabinet-mobile-view-tabs button.is-active {
    background: #fff;
    color: var(--primary);
    box-shadow: 0 7px 18px rgba(39,49,91,.08);
  }

  .cabinet-upcoming-view:not(.hidden) {
    display: grid;
    gap: 14px;
  }

  .cabinet-upcoming-view > header {
    padding: 18px;
    border: 1px solid rgba(var(--primary-rgb), .12);
    border-radius: 20px;
    background: linear-gradient(145deg, #fff, rgba(var(--primary-rgb), .055));
  }

  .cabinet-upcoming-view > header h2,
  .cabinet-upcoming-view > header p {
    margin: 0;
  }

  .cabinet-upcoming-view > header h2 {
    margin-top: 4px;
    font-size: 22px;
  }

  .cabinet-upcoming-view > header p:last-child {
    margin-top: 8px;
    color: var(--tx-3);
    font-size: 13px;
    line-height: 1.45;
  }

  .cabinet-upcoming-list {
    display: grid;
    gap: 9px;
  }

  .cabinet-upcoming-list > button {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    width: 100%;
    min-height: 70px;
    padding: 12px 14px;
    border: 1px solid rgba(var(--primary-rgb), .1);
    border-radius: 17px;
    background: #fff;
    color: var(--tx);
    text-align: left;
    box-shadow: 0 9px 24px rgba(39,49,91,.055);
  }

  .cabinet-upcoming-list > button > .nav-icon {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 12px;
    background: rgba(var(--primary-rgb), .08);
    color: var(--primary);
  }

  .cabinet-upcoming-list strong,
  .cabinet-upcoming-list small {
    display: block;
  }

  .cabinet-upcoming-list strong {
    font-size: 14px;
  }

  .cabinet-upcoming-list small {
    margin-top: 3px;
    color: var(--tx-4);
    font-size: 11px;
  }

  .cabinet-upcoming-list em {
    color: var(--primary);
    font-size: 9px;
    font-style: normal;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
  }
}

@media (max-width: 900px) and (max-height: 740px) {
  body[data-main-tab="dashboard"]:not(.dashboard-worklist-open) .main-content {
    padding-top: 10px;
    padding-bottom: calc(72px + env(safe-area-inset-bottom));
  }

  #dashboardTab:not(.is-mobile-worklist-open) {
    --dashboard-card-gap: 8px;
    --dashboard-section-gap: 8px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-assistant-hero {
    padding: 8px 11px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-assistant-copy .section-kicker,
  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-today-date {
    font-size: 8px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overdue-priority {
    margin: 0 7px 7px;
    padding: 9px 10px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overdue-priority > header {
    display: flex;
    align-items: baseline;
    gap: 8px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overdue-priority > header span {
    font-size: 7px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overdue-priority > header h2 {
    margin: 0 0 6px;
    font-size: 14px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overdue-item {
    align-items: center;
    flex-direction: row;
    gap: 8px;
    padding: 8px 9px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overdue-item > div:first-child {
    min-width: 0;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overdue-item span,
  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overdue-item small {
    font-size: 8px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overdue-item strong {
    font-size: 11px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overdue-item-actions {
    flex: 0 0 auto;
    gap: 4px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overdue-item-actions .primary-btn,
  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overdue-item-actions .session-inline-link {
    min-height: 30px;
    padding: 6px 8px;
    font-size: 9px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .metric-card {
    min-height: 64px;
    padding-block: 7px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .metric-card h2 {
    font-size: 23px;
  }

  #dashboardTab:not(.is-mobile-worklist-open) .dashboard-planning-frame > .appointment-timeline-heading {
    padding-block: 6px;
  }
}

#livePatientNavigator #livePatientNowBtn:not(.hidden) {
  position: static;
  display: inline-flex !important;
  grid-column: 2;
  grid-row: 2;
  justify-self: center;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  min-width: 0;
  min-height: 36px;
  margin-top: 2px;
  padding: 7px 15px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  background: rgba(255,255,255,.14) !important;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(22,18,52,.14);
  font-size: 11px;
  font-weight: 820;
  line-height: 1.15;
  white-space: nowrap;
}
#livePatientNavigator #livePatientNowBtn:not(.hidden):hover,
#livePatientNavigator #livePatientNowBtn:not(.hidden):focus-visible {
  border-color: rgba(255,255,255,.48);
  background: rgba(255,255,255,.22) !important;
}

@media (max-width: 700px) {
  .dashboard-planning-frame .appointment-timeline-title-group { gap: 6px; }
  .dashboard-planning-frame .patient-context-period { font-size: 7px; }
  #livePatientNavigator #livePatientNowBtn:not(.hidden) {
    grid-column: 1 / -1;
    width: min(100%, 230px);
    min-height: 38px;
    margin-top: 1px;
    font-size: 11px;
  }
}

@media (max-width: 700px) {
  .session-mode-modulation-compact { margin: -1px 1px 7px; }
  .session-mode-modulation-compact button { min-height: 36px; padding-inline: 14px; font-size: 11px; }
  .session-mode-modulation-panel { gap: 6px; padding: 9px 10px; }
  .session-mode-modulation-panel > p { display: none; }
  .session-mode-modulation-panel > div {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }
  .session-mode-modulation-panel > div button,
  .session-mode-modulation-panel > div button.is-new { width: auto; min-width: min(220px, 82vw); }
  .session-mode-modulation-grid { grid-template-columns: 1fr; }
  .session-mode-modulation-grid label.is-wide { grid-column: auto; }
  .session-mode-modulation-backdrop { align-items: start; padding: 10px; }
  .session-mode-modulation-dialog { padding: 15px; border-radius: 18px; }
  .session-mode-modulation-dialog > footer { position: sticky; bottom: 0; padding-top: 8px; background: #fff; }
}

/* Évolution : navigation explicite, indépendante de l’échelle temporelle. */
.trajectory-card-front .trajectory-phase-cards {
  position: relative;
  display: flex;
  gap: 10px;
  width: 100%;
  min-width: 0;
  margin: 12px 0;
  padding: 4px 3px 10px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}
.trajectory-card-front .trajectory-phase-cards > button {
  --phase-card-color: var(--primary);
  display: flex;
  flex: 1 0 168px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 7px;
  min-width: 168px;
  max-width: 240px;
  min-height: 112px;
  padding: 12px;
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-top: 3px solid var(--phase-card-color);
  border-radius: 14px;
  background: rgba(255,255,255,.85);
  color: var(--tx);
  font: inherit;
  text-align: left;
  cursor: pointer;
  scroll-snap-align: center;
}
.trajectory-card-front .trajectory-phase-cards > .phase-tone-2 { --phase-card-color: #348f7f; }
.trajectory-card-front .trajectory-phase-cards > .phase-tone-3 { --phase-card-color: #b87539; }
.trajectory-card-front .trajectory-phase-cards > .phase-tone-4 { --phase-card-color: #9370c4; }
.trajectory-card-front .trajectory-phase-cards > button > strong { font-size: 13px; line-height: 1.35; overflow-wrap: anywhere; }
.trajectory-card-front .trajectory-phase-cards > button > small {
  margin-top: auto;
  font-size: 10px;
  line-height: 1.4;
  color: var(--tx-3);
  white-space: normal;
  overflow: visible;
}
.trajectory-card-front .trajectory-phase-cards > button > .trajectory-phase-card-state {
  color: var(--phase-card-color);
  font-size: 10px;
  font-weight: 750;
  white-space: normal;
  overflow: visible;
}
.trajectory-card-front .trajectory-phase-cards > button[aria-pressed="true"] {
  border-color: var(--primary);
  background: #efecff;
  box-shadow: 0 0 0 1px var(--primary);
  color: var(--tx);
}
.trajectory-card-front .trajectory-phase-cards > button:hover { background: #f5f2ff; }
.trajectory-card-front .trajectory-phase-cards > button:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
.prototype-chart-phase-backgrounds { pointer-events: none; }
@media (max-width: 620px) {
  .trajectory-card-front .trajectory-phase-cards { gap: 9px; margin: 8px 0; }
  .trajectory-card-front .trajectory-phase-cards > button { flex: 0 0 196px; min-width: 196px; min-height: 112px; }
}

/* D-450 : contexte persistant et divulgation progressive, ordinateur et téléphone. */
.clinical-work-context {
  position: sticky;
  top: 0;
  z-index: 40;
  display: grid;
  gap: 3px;
  padding: 12px 20px;
  border-bottom: 1px solid rgba(var(--primary-rgb), .16);
  background: var(--surface, #fff);
  color: var(--text, #24233b);
  overflow-wrap: anywhere;
}
.clinical-work-context strong { font-size: 15px; line-height: 1.3; }
.clinical-work-context span { font-size: 12px; line-height: 1.4; color: var(--text-secondary, #59566d); }
#patientDetailModal.patient-detail-page .patient-record-navigation { top: var(--clinical-context-height, 70px); }
#patientDetailModal .initial-assessment-page-header { position: relative; top: auto; }
#patientDetailModal .clinical-work-context { flex-shrink: 0; }
.clinical-secondary-details > summary {
  cursor: pointer;
  padding: 16px 18px;
  font-weight: 600;
  color: var(--primary);
  font-size: 14px;
  line-height: 1.5;
}
#patientDashboardEvolutionCard { display: block; margin-top: 18px; }
#patientDashboardEvolutionCard:not([open]) > :not(summary) { display: none; }
#patientDashboardEvolutionCard > summary { width: 100%; }
.clinical-secondary-details[open] > .assessment-symptom-test-list { margin-top: 12px; }
.is-demonstration-history > summary, .clinical-demonstration-note {
  color: #705222;
  background: #fff5df;
  border-radius: 12px;
}
.clinical-demonstration-note { padding: 14px 18px; font-size: 13px; }
.clinical-work-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 12px; }
.clinical-work-actions button { min-height: 42px; }
.incomplete-work-pause-dialog > label { display: grid; gap: 8px; }
.incomplete-work-pause-dialog input[type="date"] { min-height: 44px; padding: 8px; width: 100%; box-sizing: border-box; }
.session-mode-shell > .clinical-work-context { border-radius: 16px 16px 0 0; }
@media (max-width: 760px) {
  .clinical-work-context { padding: 10px 14px; }
  .clinical-work-context strong { font-size: 14px; }
  .clinical-work-actions { gap: 8px; }
  .clinical-work-actions .primary-btn, .clinical-work-actions .secondary-btn { flex: 1 1 auto; }
  .incomplete-work-pause-dialog { max-height: 85dvh; overflow-y: auto; }
}
/* L’identité est portée par le bandeau permanent, sans second grand titre. */
#patientDetailModal.patient-detail-page .patient-unified-header .detail-title-line h3 {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
}
#patientDetailModal.patient-detail-page .patient-unified-header .detail-header {
  min-height: 48px;
  padding: 8px 118px 8px 0;
}
#patientDetailModal.patient-detail-page .patient-unified-header .detail-header-actions { top: 8px; }
#patientDetailModal .patient-follow-up-picker--pending { display: none; }
#patientClinicalWorkContext strong { font-size: 18px; }
.clinical-tool-context { position: static; padding: 0 0 10px; border: 0; background: transparent; }


/* Sessions de test présentiel : filigrane traçable, sans masquer les commandes. */
.test-session-watermark {
  position: fixed; inset: 0; z-index: 2147483000; pointer-events: none;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(4, minmax(0, 1fr));
  overflow: hidden; opacity: .13;
}
.test-session-watermark span {
  align-self: center; justify-self: center; color: #243a68;
  font: 700 clamp(.62rem, 1.15vw, .82rem)/1.25 system-ui, sans-serif;
  letter-spacing: .08em; white-space: nowrap; transform: rotate(-24deg);
}
@media (max-width: 720px) {
  .test-session-watermark { grid-template-columns: 1fr; grid-template-rows: repeat(8, minmax(0, 1fr)); }
}
@media print {
  html.test-session-active body > *:not(.test-session-watermark) { display: none !important; }
  html.test-session-active .test-session-watermark { position: static; display: block; opacity: 1; padding: 2rem; }
  html.test-session-active .test-session-watermark span { display: block; transform: none; margin: 1rem 0; }
}

/* D-460 : la vue d'ensemble est disponible à la demande, jamais imposée au mode focus. */
.initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid > .assessment-step-nav {
  display: none !important;
}
.initial-assessment-workspace.assessment-guided-draft.assessment-overview-open .assessment-progress-hybrid > .assessment-step-nav {
  display: grid !important;
}
.initial-assessment-workspace.assessment-guided-draft .assessment-guided-heading strong {
  display: block !important;
}

/* Pont explicable entre les constats du bilan et les options de prise en charge. */
.assessment-care-reasoning {
  display: grid;
  gap: 16px;
  margin-top: 18px;
  padding: clamp(16px, 2.4vw, 24px);
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(var(--primary-rgb), .055), rgba(255,255,255,.96));
}
.assessment-care-reasoning > header,
.assessment-care-intention > header,
.assessment-care-intention > footer {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.assessment-care-reasoning > header span,
.assessment-care-intention > header span,
.assessment-care-exercises > span {
  display: block;
  margin-bottom: 4px;
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.assessment-care-reasoning h3,
.assessment-care-intention h4,
.assessment-care-reasoning p { margin: 0; }
.assessment-care-reasoning > header > small { color: var(--primary); font-weight: 750; }
.assessment-care-anchors {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
}
.assessment-care-anchors article,
.assessment-care-safety,
.assessment-care-intention {
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(31,42,89,.09);
  border-radius: 15px;
  background: rgba(255,255,255,.88);
}
.assessment-care-anchors span { color: var(--tx-4); font-size: 11px; font-weight: 750; }
.assessment-care-anchors p { margin-top: 5px; color: var(--tx-2); font-size: 13px; line-height: 1.45; }
.assessment-care-safety { border-color: rgba(180,116,28,.24); background: #fff7e8; }
.assessment-care-safety p { margin-top: 5px; }
.assessment-care-intentions { display: grid; gap: 12px; }
.assessment-care-intention { display: grid; gap: 12px; }
.assessment-care-intention.is-retained { border-color: rgba(40,145,121,.4); box-shadow: inset 3px 0 0 #3ca68f; }
.assessment-care-intention.is-dismissed { opacity: .68; }
.assessment-care-intention > header > strong { color: var(--primary); font-size: 11px; }
.assessment-care-intention ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; list-style: none; }
.assessment-care-intention li { padding: 6px 9px; border-radius: 999px; background: rgba(var(--primary-rgb), .07); color: var(--tx-2); font-size: 11px; }
.assessment-care-exercises { display: grid; gap: 8px; }
.assessment-care-exercises button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 13px;
  background: #fff;
  color: var(--tx-1);
  text-align: left;
}
.assessment-care-exercises button[aria-pressed="true"] { border-color: var(--primary); background: rgba(var(--primary-rgb), .06); }
.assessment-care-exercises button span { min-width: 0; }
.assessment-care-exercises button strong,
.assessment-care-exercises button small { display: block; overflow-wrap: anywhere; }
.assessment-care-exercises button small { margin-top: 3px; color: var(--tx-4); }
.assessment-care-exercises button em { flex: 0 0 auto; color: var(--primary); font-size: 11px; font-style: normal; font-weight: 800; }
.assessment-care-intention details { padding-top: 8px; border-top: 1px solid rgba(31,42,89,.08); }
.assessment-care-intention summary { cursor: pointer; color: var(--primary); font-size: 12px; font-weight: 750; }
.assessment-care-intention details p { margin: 9px 0; color: var(--tx-3); font-size: 12px; line-height: 1.5; }
.assessment-care-sources { display: grid; gap: 6px; }
.assessment-care-sources a { color: var(--primary); font-size: 12px; overflow-wrap: anywhere; }
.assessment-care-intention > footer { justify-content: flex-start; }
.assessment-care-empty { color: var(--tx-3); }
@media (max-width: 620px) {
  .assessment-care-reasoning > header,
  .assessment-care-intention > header { align-items: flex-start; }
  .assessment-care-anchors { grid-template-columns: 1fr; }
  .assessment-care-intention > footer { display: grid; grid-template-columns: 1fr 1fr; }
  .assessment-care-intention > footer button { width: 100%; }
}

/* Bilan clinique : une carte de saisie à la fois, sans supprimer les domaines. */
.assessment-capture-deck {
  display: grid;
  gap: 12px;
  margin: 14px 0;
  padding: clamp(14px, 2vw, 20px);
  border: 1px solid rgba(var(--primary-rgb), .15);
  border-radius: 20px;
  background: linear-gradient(150deg, rgba(var(--primary-rgb), .05), rgba(255,255,255,.98));
  box-shadow: 0 14px 32px rgba(31,42,89,.055);
}
.assessment-capture-deck > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.assessment-capture-deck > header div { display: grid; gap: 2px; }
.assessment-capture-deck > header span { color: var(--tx-4); font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.assessment-capture-deck > header h5 { color: var(--tx-1); font-size: clamp(16px, 2vw, 20px); }
.assessment-capture-deck > header small { color: var(--tx-4); font-size: 10px; }
.assessment-capture-tabs {
  display: flex;
  gap: 7px;
  padding: 2px 1px 6px;
  overflow-x: auto;
  scrollbar-width: none;
}
.assessment-capture-tabs::-webkit-scrollbar { display: none; }
.assessment-capture-tabs button {
  flex: 0 0 auto;
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid rgba(var(--primary-rgb), .1);
  border-radius: 999px;
  background: rgba(255,255,255,.86);
  color: var(--tx-3);
  font: 750 11px/1.1 var(--font);
  cursor: pointer;
}
.assessment-capture-tabs button[aria-selected="true"] {
  border-color: var(--primary);
  background: var(--primary);
  color: #fff;
  box-shadow: 0 6px 14px rgba(var(--primary-rgb), .2);
}
.assessment-capture-cards { min-width: 0; }
.assessment-capture-card {
  display: grid;
  gap: 10px;
  min-height: 210px;
  box-sizing: border-box;
  align-content: start;
  margin: 0;
  padding: clamp(18px, 2.5vw, 26px);
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 18px;
  background: #fff;
  color: var(--tx-1);
  font-size: 13px;
  font-weight: 800;
  animation: assessment-capture-arrive .2s ease both;
}
.assessment-capture-card[hidden] { display: none; }
.assessment-capture-card textarea {
  min-height: 128px;
  resize: vertical;
  border: 0;
  border-radius: 12px;
  background: var(--surface-2);
  box-shadow: inset 0 0 0 1px rgba(var(--primary-rgb), .1);
  font-size: 14px;
}
@keyframes assessment-capture-arrive {
  from { opacity: .45; transform: translateX(12px) scale(.99); }
  to { opacity: 1; transform: translateX(0) scale(1); }
}

/* D-467 : carte différentielle qualitative intégrée au bilan épaule. */
.assessment-differential-map {
  display: grid;
  gap: 14px;
  margin: 18px 0;
  padding: clamp(15px, 2.3vw, 22px);
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: 20px;
  background: linear-gradient(150deg, rgba(var(--primary-rgb), .065), rgba(255,255,255,.97) 48%, rgba(240,177,96,.08));
}
.assessment-differential-map > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.assessment-differential-map > header span {
  display: block;
  margin-bottom: 4px;
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.assessment-differential-map h6,
.assessment-differential-map p { margin: 0; }
.assessment-differential-map h6 { color: var(--tx-1); font-size: clamp(16px, 2vw, 20px); }
.assessment-differential-map > header > small {
  flex: 0 0 auto;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .09);
  color: var(--primary);
  font-weight: 750;
}
.assessment-differential-map > p,
.assessment-differential-map > footer { color: var(--tx-3); font-size: 12px; line-height: 1.5; }
.assessment-differential-evidence-picker {
  border: 1px solid rgba(31,42,89,.1);
  border-radius: 15px;
  background: rgba(255,255,255,.82);
}
.assessment-differential-evidence-picker > summary {
  padding: 13px 14px;
  cursor: pointer;
  color: var(--primary);
  font-weight: 800;
}
.assessment-differential-evidence-picker fieldset {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 12px 14px 14px;
  border: 0;
  border-top: 1px solid rgba(31,42,89,.08);
}
.assessment-differential-evidence-picker legend {
  padding: 12px 0 0;
  color: var(--tx-2);
  font-size: 12px;
  font-weight: 800;
}
.assessment-differential-evidence {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(31,42,89,.09);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
}
.assessment-differential-evidence.is-present { border-color: rgba(40,145,121,.42); background: rgba(40,145,121,.065); }
.assessment-differential-evidence input { flex: 0 0 auto; margin-top: 3px; }
.assessment-differential-evidence span { min-width: 0; }
.assessment-differential-evidence strong,
.assessment-differential-evidence small { display: block; overflow-wrap: anywhere; }
.assessment-differential-evidence strong { color: var(--tx-1); font-size: 12px; }
.assessment-differential-evidence small { margin-top: 3px; color: var(--tx-4); line-height: 1.4; }
.assessment-differential-hypotheses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.assessment-differential-hypothesis {
  min-width: 0;
  padding: 13px;
  border: 1px solid rgba(31,42,89,.09);
  border-radius: 15px;
  background: rgba(255,255,255,.9);
}
.assessment-differential-hypothesis.is-urgent { grid-column: 1 / -1; border-color: rgba(183,61,55,.42); background: #fff4f2; }
.assessment-differential-hypothesis > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.assessment-differential-hypothesis > header div { min-width: 0; }
.assessment-differential-hypothesis > header strong,
.assessment-differential-hypothesis > header small { display: block; overflow-wrap: anywhere; }
.assessment-differential-hypothesis > header strong { color: var(--tx-1); font-size: 13px; }
.assessment-differential-hypothesis > header small { margin-top: 4px; color: var(--tx-4); font-size: 10px; }
.assessment-differential-hypothesis > header > span { flex: 0 0 auto; color: var(--primary); font-size: 10px; font-weight: 800; text-align: right; }
.assessment-differential-hypothesis.is-urgent > header > span { color: #9d302c; }
.assessment-differential-level { height: 5px; margin: 11px 0; overflow: hidden; border-radius: 999px; background: rgba(var(--primary-rgb), .09); }
.assessment-differential-level i { display: block; height: 100%; border-radius: inherit; background: var(--primary); }
.assessment-differential-hypothesis.is-urgent .assessment-differential-level i { background: #bd5048; }
.assessment-differential-hypothesis details summary { cursor: pointer; color: var(--primary); font-size: 11px; font-weight: 750; }
.assessment-differential-hypothesis dl { display: grid; gap: 7px; margin: 9px 0 0; }
.assessment-differential-hypothesis dl div { min-width: 0; }
.assessment-differential-hypothesis dt { color: var(--tx-4); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.assessment-differential-hypothesis dd,
.assessment-differential-hypothesis details p,
.assessment-differential-hypothesis > p { margin: 3px 0 0; color: var(--tx-3); font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.assessment-differential-next,
.assessment-differential-reassessment {
  padding: 13px 14px;
  border: 1px solid rgba(180,116,28,.23);
  border-radius: 14px;
  background: #fff8e9;
}
.assessment-differential-next.is-alert { border-color: rgba(183,61,55,.34); background: #fff1ef; }
.assessment-differential-next strong,
.assessment-differential-reassessment strong { color: var(--tx-1); font-size: 12px; }
.assessment-differential-next p,
.assessment-differential-reassessment p { margin-top: 4px; color: var(--tx-2); font-size: 12px; line-height: 1.45; }
.assessment-differential-next small,
.assessment-differential-reassessment small { display: block; margin-top: 5px; color: var(--tx-4); }
.assessment-differential-trajectory { display: grid; grid-template-columns: minmax(0, 1fr) minmax(210px, .85fr); align-items: center; gap: 12px; color: var(--tx-2); font-size: 12px; font-weight: 750; }
.assessment-differential-trajectory select { min-width: 0; width: 100%; }
.assessment-differential-map > footer { padding-top: 12px; border-top: 1px solid rgba(31,42,89,.08); }
.assessment-differential-unavailable { padding: 12px; border-radius: 12px; background: #fff1ef; color: #9d302c; }
.assessment-differential-explorer {
  display: grid;
  gap: 13px;
  padding: clamp(14px, 2vw, 19px);
  border: 1px solid rgba(var(--primary-rgb), .16);
  border-radius: 18px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 14px 30px rgba(31,42,89,.06);
}
.assessment-differential-explorer > header,
.assessment-differential-explorer > footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.assessment-differential-explorer > header span,
.assessment-differential-prompt > span {
  display: block;
  margin-bottom: 3px;
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.assessment-differential-explorer > header strong { color: var(--tx-1); font-size: 13px; }
.assessment-differential-explorer > header > small {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(var(--primary-rgb), .1);
  color: var(--primary);
  font-weight: 850;
}
.assessment-differential-journey {
  display: grid;
  grid-template-columns: repeat(10, minmax(22px, 1fr));
  gap: 6px;
  position: relative;
}
.assessment-differential-journey::before {
  position: absolute;
  top: 50%;
  right: 8px;
  left: 8px;
  height: 2px;
  background: rgba(var(--primary-rgb), .1);
  content: '';
  transform: translateY(-50%);
}
.assessment-differential-step {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  height: 31px;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #e9ebf3;
  color: var(--tx-4);
  box-shadow: 0 0 0 1px rgba(31,42,89,.1);
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.assessment-differential-step span { font-size: 10px; font-weight: 850; }
.assessment-differential-step.is-present { background: #3ca68f; color: #fff; }
.assessment-differential-step.is-absent { background: #7f879a; color: #fff; }
.assessment-differential-step.is-review { background: #e5a852; color: #fff; }
.assessment-differential-step.is-current { z-index: 1; transform: translateY(-3px) scale(1.08); box-shadow: 0 5px 13px rgba(31,42,89,.18), 0 0 0 2px var(--primary); }
.assessment-differential-prompt {
  display: grid;
  gap: 7px;
  min-height: 218px;
  padding: clamp(17px, 2.5vw, 24px);
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 17px;
  background: linear-gradient(140deg, #fff, rgba(var(--primary-rgb), .045));
  animation: assessment-differential-arrive .24s ease both;
}
.assessment-differential-prompt h6 { max-width: 680px; font-size: clamp(17px, 2.2vw, 23px); line-height: 1.22; }
.assessment-differential-prompt > p { max-width: 720px; color: var(--tx-3); font-size: 13px; line-height: 1.5; }
.assessment-differential-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: auto; padding-top: 12px; }
.assessment-differential-choice {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(31,42,89,.11);
  border-radius: 13px;
  background: #fff;
  color: var(--tx-1);
  text-align: left;
  transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.assessment-differential-choice:hover { transform: translateY(-2px); box-shadow: 0 7px 16px rgba(31,42,89,.08); }
.assessment-differential-choice strong,
.assessment-differential-choice small { display: block; overflow-wrap: anywhere; }
.assessment-differential-choice small { margin-top: 3px; color: var(--tx-4); font-size: 10px; line-height: 1.35; }
.assessment-differential-choice.is-present.is-selected { border-color: #3ca68f; background: rgba(60,166,143,.09); box-shadow: inset 0 -3px 0 #3ca68f; }
.assessment-differential-choice.is-absent.is-selected { border-color: #7f879a; background: rgba(127,135,154,.08); box-shadow: inset 0 -3px 0 #7f879a; }
.assessment-differential-choice.is-review.is-selected { border-color: #d49a47; background: #fff8e9; box-shadow: inset 0 -3px 0 #d49a47; }
.assessment-differential-explorer > footer span { color: var(--tx-4); font-size: 10px; text-align: center; }
.assessment-differential-explorer > footer button { flex: 0 0 auto; }
.assessment-differential-results { display: grid; gap: 8px; min-width: 0; }
.assessment-differential-results > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.assessment-differential-results > header strong { color: var(--tx-1); font-size: 12px; }
.assessment-differential-results > header span { color: var(--tx-4); font-size: 10px; }
.assessment-differential-results .assessment-differential-hypotheses {
  display: flex;
  gap: 9px;
  margin-right: -4px;
  padding: 2px 4px 8px 1px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}
.assessment-differential-results .assessment-differential-hypothesis {
  flex: 0 0 min(275px, 72%);
  scroll-snap-align: start;
}
.assessment-differential-results .assessment-differential-hypothesis.is-urgent { grid-column: auto; }
.assessment-differential-follow-up,
.assessment-module-brief,
.assessment-module-context-drawer,
.assessment-module-tools-drawer {
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 15px;
  background: rgba(255,255,255,.82);
}
.assessment-differential-follow-up > summary,
.assessment-module-brief > summary,
.assessment-module-context-drawer > summary,
.assessment-module-tools-drawer > summary {
  display: flex;
  min-height: 48px;
  box-sizing: border-box;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 11px 14px;
  color: var(--primary-dk);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}
.assessment-differential-follow-up[open] > summary,
.assessment-module-brief[open] > summary,
.assessment-module-context-drawer[open] > summary,
.assessment-module-tools-drawer[open] > summary { border-bottom: 1px solid rgba(var(--primary-rgb), .1); }
.assessment-differential-follow-up > :not(summary),
.assessment-module-brief > :not(summary) { margin: 12px 14px; }
.assessment-module-context-drawer > summary strong,
.assessment-module-tools-drawer > summary strong {
  display: grid;
  place-items: center;
  min-width: 30px;
  height: 30px;
  padding: 0 7px;
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .1);
  color: var(--primary);
  font-size: 10px;
}
.assessment-module-context-drawer > div,
.assessment-module-tools-drawer > div { padding: 4px 14px 14px; }
.assessment-module-method-note { margin: 10px 0; color: var(--tx-3); font-size: 11px; }
.assessment-module-method-note > summary { width: fit-content; color: var(--primary); font-weight: 750; cursor: pointer; }
.assessment-module-method-note p { margin: 8px 0 0; }
.is-assessment-card-deck > .assessment-added-module-header { align-items: center; padding-block: 12px; }
.is-assessment-card-deck > .assessment-added-module-header p { display: none; }
.is-assessment-card-deck > .assessment-added-module-header button { min-height: 36px !important; }
.is-assessment-card-deck > .assessment-module-brief,
.is-assessment-card-deck > .assessment-differential-map,
.is-assessment-card-deck > .assessment-module-context-drawer,
.is-assessment-card-deck > .assessment-module-tools-drawer,
.is-assessment-card-deck > .assessment-one-page-summary,
.is-assessment-card-deck > [role="status"] { margin-right: 14px; margin-left: 14px; }
.is-assessment-card-deck > .assessment-module-brief { margin-top: 12px; }
.is-assessment-card-deck > .assessment-one-page-summary { margin-bottom: 14px; }
.assessment-differential-hypothesis { animation: assessment-differential-settle .28s ease both; }
.assessment-differential-hypothesis:nth-child(2) { animation-delay: .025s; }
.assessment-differential-hypothesis:nth-child(3) { animation-delay: .05s; }
.assessment-differential-hypothesis:nth-child(4) { animation-delay: .075s; }
.assessment-differential-hypothesis:nth-child(5) { animation-delay: .1s; }
@keyframes assessment-differential-arrive {
  from { opacity: .35; transform: translateX(10px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes assessment-differential-settle {
  from { opacity: .45; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 720px) {
  .assessment-differential-map > header,
  .assessment-differential-hypothesis > header { align-items: flex-start; }
  .assessment-differential-hypotheses:not(.assessment-differential-results .assessment-differential-hypotheses) { grid-template-columns: 1fr; }
  .assessment-differential-trajectory { grid-template-columns: 1fr; }
  .assessment-differential-choices { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .assessment-differential-choice { text-align: center; }
  .assessment-differential-choice small { display: none; }
}
@media (max-width: 430px) {
  .assessment-capture-deck { margin-right: -2px; margin-left: -2px; padding: 12px; }
  .assessment-capture-deck > header small { display: none; }
  .assessment-capture-card { min-height: 270px; padding: 18px 14px; }
  .assessment-capture-card textarea { min-height: 180px; }
  .assessment-differential-map { padding: 13px; }
  .assessment-differential-map > header { display: grid; }
  .assessment-differential-map > header > small { justify-self: start; }
  .assessment-differential-hypothesis > header { display: grid; }
  .assessment-differential-hypothesis > header > span { text-align: left; }
  .assessment-differential-explorer { padding: 12px; }
  .assessment-differential-explorer > header > small { display: none; }
  .assessment-differential-journey { grid-template-columns: repeat(10, minmax(16px, 1fr)); gap: 3px; }
  .assessment-differential-step { height: 24px; }
  .assessment-differential-prompt { min-height: 270px; padding: 18px 14px; }
  .assessment-differential-prompt h6 { font-size: 20px; }
  .assessment-differential-prompt > p { font-size: 12px; }
  .assessment-differential-choices { gap: 6px; }
  .assessment-differential-choice { min-height: 54px; padding: 8px 5px; font-size: 11px; }
  .assessment-differential-results .assessment-differential-hypothesis { flex-basis: 82%; }
  .assessment-differential-results > header span { display: none; }
  .is-assessment-card-deck > .assessment-module-brief,
  .is-assessment-card-deck > .assessment-differential-map,
  .is-assessment-card-deck > .assessment-module-context-drawer,
  .is-assessment-card-deck > .assessment-module-tools-drawer,
  .is-assessment-card-deck > .assessment-one-page-summary,
  .is-assessment-card-deck > [role="status"] { margin-right: 10px; margin-left: 10px; }
  .assessment-differential-explorer > footer { display: grid; grid-template-columns: 1fr 1fr; }
  .assessment-differential-explorer > footer span { grid-column: 1 / -1; grid-row: 1; }
  .assessment-differential-explorer > footer button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .assessment-capture-card,
  .assessment-differential-prompt,
  .assessment-differential-hypothesis { animation: none; }
  .assessment-differential-step,
  .assessment-differential-choice { transition: none; }
}

/* Dossier patient : une identité et un suivi actifs réunis dans un seul en-tête. */
#patientDetailModal #patientClinicalWorkContext {
  display: none;
}

#patientDetailModal.patient-detail-page .patient-record-navigation {
  top: 0;
}

#patientDetailModal.patient-detail-page .patient-unified-header {
  padding-right: 0;
}

#patientDetailModal.patient-detail-page .patient-unified-header .detail-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas:
    "back title actions"
    ". followup actions";
  align-items: start;
  min-height: 0;
  padding: 15px 16px;
  gap: 7px 12px;
}

#patientDetailModal.patient-detail-page .patient-unified-header .patient-header-main {
  display: contents;
}

#patientDetailModal.patient-detail-page .patient-unified-header .detail-title-line {
  grid-area: title;
  align-self: center;
}

#patientDetailModal.patient-detail-page .patient-unified-header .patient-follow-up-header {
  grid-area: followup;
  min-width: 0;
}

#patientDetailModal.patient-detail-page .patient-unified-header .detail-back-btn {
  position: static;
  grid-area: back;
  align-self: center;
  width: 38px;
  height: 38px;
  min-width: 38px;
  min-height: 38px;
  margin: 0;
}

#patientDetailModal.patient-detail-page .patient-unified-header .detail-title-line h3 {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
  clip-path: none;
  white-space: normal;
}

#patientDetailModal.patient-detail-page .patient-unified-header .detail-header-actions {
  position: static;
  grid-area: actions;
  display: flex;
  flex: 0 0 auto;
  flex-direction: row;
  align-items: center;
  gap: 7px;
  transform: none;
  opacity: 1;
}

#patientDetailModal.patient-detail-page .patient-unified-header .detail-header-actions > button,
#patientDetailModal.patient-detail-page .patient-unified-header .detail-header-actions > .patient-header-more-menu > button {
  width: 38px;
  height: 38px;
  min-width: 38px;
  min-height: 38px;
  border-radius: 12px;
}

#patientDetailModal.patient-detail-page .patient-follow-up-trigger-copy small {
  display: block;
  margin-bottom: 2px;
}

#patientDetailModal.patient-detail-page .patient-follow-up-trigger-copy strong {
  overflow: visible;
  white-space: normal;
  text-overflow: clip;
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  #patientDetailModal.patient-detail-page .patient-unified-header {
    margin: 0;
    border: 0;
    border-bottom: 1px solid var(--line-soft);
    border-radius: 0;
    background: #fff;
    box-shadow: none;
  }

  #patientDetailModal.patient-detail-page .patient-unified-header .detail-header {
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas:
      "back title actions"
      "followup followup followup";
    align-items: start;
    padding: 12px 14px 11px;
    gap: 8px 10px;
  }

  #patientDetailModal.patient-detail-page .patient-unified-header .detail-title-line h3 {
    font-size: 21px;
    line-height: 1.15;
  }

  #patientDetailModal.patient-detail-page .patient-follow-up-header {
    width: 100%;
    margin-top: 1px;
  }

  #patientDetailModal.patient-detail-page .patient-follow-up-picker,
  #patientDetailModal.patient-detail-page .patient-follow-up-menu {
    width: 100%;
    max-width: none;
  }

  #patientDetailModal.patient-detail-page .patient-unified-header .patient-follow-up-trigger {
    width: 100%;
    min-height: 42px;
    padding: 6px 9px;
    border: 1px solid rgba(var(--primary-rgb), .11);
    border-radius: 11px;
    background: rgba(var(--primary-rgb), .045);
  }

  #patientDetailModal.patient-detail-page .patient-follow-up-trigger-copy strong {
    font-size: 12px;
    line-height: 1.28;
  }

  #patientDetailModal.patient-detail-page .patient-follow-up-trigger-copy small {
    font-size: 9px;
    line-height: 1.2;
  }

  #patientDetailModal.patient-detail-page .patient-unified-header .detail-header-actions {
    align-self: start;
    gap: 5px;
  }

  #patientDetailModal.patient-detail-page .patient-unified-header .detail-back-btn {
    width: 34px;
    height: 34px;
    min-width: 34px;
    min-height: 34px;
  }

  #patientDetailModal.patient-detail-page .patient-unified-header .detail-header-actions > button,
  #patientDetailModal.patient-detail-page .patient-unified-header .detail-header-actions > .patient-header-more-menu > button {
    width: 34px;
    height: 34px;
    min-width: 34px;
    min-height: 34px;
    border-radius: 10px;
  }
}

/* Navigation du bilan : sidebar contextuelle, compacte pendant le Focus. */
.assessment-progress-hybrid {
  position: relative;
}

.assessment-navigation-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1690;
  background: rgba(21, 22, 48, .28);
  opacity: 0;
  pointer-events: none;
  backdrop-filter: blur(2px);
  transition: opacity .22s ease;
}

.assessment-navigation-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 1700;
  display: grid;
  width: min(390px, 92vw);
  grid-template-rows: auto auto minmax(0, 1fr);
  gap: 17px;
  padding: max(20px, env(safe-area-inset-top)) 18px max(18px, env(safe-area-inset-bottom));
  border-right: 1px solid rgba(var(--primary-rgb), .16);
  background:
    radial-gradient(circle at 12% 3%, rgba(var(--primary-rgb), .14), transparent 33%),
    rgba(250, 250, 255, .98);
  box-shadow: 24px 0 60px rgba(27, 29, 68, .18);
  overflow: hidden;
  transform: translateX(-106%);
  visibility: hidden;
  transition: transform .26s cubic-bezier(.2,.75,.25,1), visibility 0s linear .26s;
}

body.assessment-navigation-lock .assessment-navigation-backdrop {
  opacity: 1;
  pointer-events: auto;
}

body.assessment-navigation-lock .assessment-navigation-sidebar {
  transform: translateX(0);
  visibility: visible;
  transition-delay: 0s;
}

body.assessment-navigation-lock {
  overflow: hidden;
}

body.assessment-navigation-lock #bilansPanel {
  transform: none !important;
}

.assessment-navigation-sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 2px 2px;
}

.assessment-navigation-sidebar-header > div,
.assessment-navigation-items > header {
  display: grid;
  gap: 3px;
}

.assessment-navigation-sidebar-header span,
.assessment-navigation-items > header span {
  color: var(--primary);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.assessment-navigation-sidebar-header strong {
  color: var(--tx-1);
  font-size: 22px;
  line-height: 1.12;
  letter-spacing: -.025em;
}

.assessment-navigation-sidebar-header button {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 12px;
  background: rgba(255,255,255,.8);
  color: var(--tx-2);
  font: 500 22px/1 var(--font);
  cursor: pointer;
}

.assessment-navigation-sidebar .assessment-step-nav {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 6px;
  padding: 7px;
  border: 1px solid rgba(var(--primary-rgb), .11);
  border-radius: 18px;
  background: rgba(255,255,255,.7);
  overflow: visible;
}

.assessment-navigation-sidebar .assessment-step-nav button {
  display: grid;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  border: 0;
  border-radius: 13px;
  background: transparent;
  color: var(--tx-3);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.25;
  text-align: left;
  white-space: normal;
  cursor: pointer;
  box-shadow: none;
}

.assessment-navigation-sidebar .assessment-step-nav button > span {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 9px;
  background: rgba(var(--primary-rgb), .075);
  color: var(--tx-3);
  font-size: 10px;
  font-weight: 850;
}

body.assessment-navigation-lock .assessment-navigation-sidebar .assessment-step-nav button.active {
  background: linear-gradient(135deg, var(--primary), var(--primary-dk));
  color: #fff;
  box-shadow: 0 9px 22px rgba(var(--primary-rgb), .2);
}

.assessment-navigation-sidebar .assessment-step-nav button.active > span {
  background: rgba(255,255,255,.2);
  color: #fff;
}

.assessment-navigation-sidebar .assessment-step-nav button.in-progress:not(.active)::after {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--primary);
}

.assessment-navigation-sidebar .assessment-step-nav button.completed:not(.active)::after {
  content: '✓';
  color: #168b72;
  font-size: 13px;
  font-weight: 900;
}

.assessment-navigation-items {
  display: grid;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 10px;
  padding: 3px 2px 0;
}

.assessment-navigation-items > header strong {
  color: var(--tx-2);
  font-size: 14px;
}

#assessmentNavigationItems {
  display: grid;
  min-height: 0;
  align-content: start;
  gap: 5px;
  padding-right: 4px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

#assessmentNavigationItems button {
  display: grid;
  width: 100%;
  min-height: 42px;
  grid-template-columns: 26px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  padding: 7px 9px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  color: var(--tx-3);
  text-align: left;
  cursor: pointer;
}

#assessmentNavigationItems button > span {
  color: var(--tx-4);
  font-size: 10px;
  font-weight: 850;
  text-align: center;
}

#assessmentNavigationItems button > strong {
  font-size: 11px;
  line-height: 1.28;
}

#assessmentNavigationItems button > em {
  color: #168b72;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}

#assessmentNavigationItems button.is-current {
  border-color: rgba(var(--primary-rgb), .16);
  background: rgba(var(--primary-rgb), .08);
  color: var(--primary-dk);
}

.initial-assessment-workspace.assessment-guided-draft .assessment-guided-progress {
  position: relative;
  padding-right: 150px;
}

.initial-assessment-workspace.assessment-guided-draft .assessment-guided-view-toggle {
  position: absolute;
  top: 11px;
  right: 12px;
  display: inline-flex;
  width: auto;
  min-height: 34px;
  align-items: center;
  gap: 7px;
  padding: 5px 8px;
  border: 1px solid rgba(var(--primary-rgb), .14);
  border-radius: 11px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 4px 14px rgba(41,45,88,.05);
  color: var(--primary-dk);
}

.assessment-guided-view-toggle > span:first-child {
  font-size: 16px;
  line-height: 1;
}

.assessment-guided-view-toggle > span:nth-child(2) {
  font-size: 10px;
  font-weight: 800;
}

.assessment-guided-view-toggle > strong {
  display: grid;
  min-width: 30px;
  height: 22px;
  place-items: center;
  padding: 0 6px;
  border-radius: 8px;
  background: rgba(var(--primary-rgb), .1);
  font-size: 9px;
}

@media (max-width: 520px) {
  .assessment-navigation-sidebar {
    width: min(342px, calc(100vw - 34px));
    gap: 13px;
    padding-right: 13px;
    padding-left: 13px;
  }

  .assessment-navigation-sidebar-header strong {
    font-size: 19px;
  }

  .assessment-navigation-sidebar .assessment-step-nav {
    gap: 4px;
  }

  .assessment-navigation-sidebar .assessment-step-nav button {
    min-height: 40px;
    padding: 5px 8px;
  }

  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-progress {
    min-height: 94px;
    padding-right: 72px;
  }

  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-view-toggle {
    top: 10px;
    right: 10px;
    gap: 4px;
    padding: 5px 6px;
  }

  .assessment-guided-view-toggle > span:nth-child(2) {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .assessment-navigation-backdrop,
  .assessment-navigation-sidebar {
    transition: none;
  }
}

/* Bilan initial : un axe visuel unique entre contexte, travail clinique et action. */
.assessment-exams-editor > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.assessment-exams-editor > header strong { font-size: 14px; }
.assessment-exams-editor > header button { min-height: 44px; }
.assessment-patient-restitution { display: grid; gap: 20px; padding-block: 24px; border-top: 1px solid var(--border, #e5e4ee); }
.assessment-patient-restitution > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.assessment-patient-restitution h3 { margin: 0 0 8px; }
.assessment-patient-restitution header p { margin: 0; color: var(--tx-3); }
.assessment-patient-restitution label { display: grid; gap: 8px; }
.therapy-option-row { display: grid; gap: 14px; padding: 20px 0; border-bottom: 1px solid #e5e3ef; }
.template-block-editor { display: grid; gap: 14px; padding: 20px 0; border-bottom: 1px solid #e5e3ef; }
.template-block-editor > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.template-block-editor > header button { min-width: 44px; min-height: 44px; }
.template-block-editor label { display: grid; gap: 6px; }
.template-block-editor label[hidden] { display: none; }
#assessmentTemplatePreview { padding: 16px; background: #f5f3fc; border-radius: 16px; }
#assessmentTemplatePreview section { margin: 16px 0; }
.therapy-option-row header, #patientTherapyOptionsEditor > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
#patientPlanContentPicker { display: flex; flex-wrap: wrap; gap: 10px; border: 0; padding: 12px 0; }
#patientPlanContentPicker label { display: flex; align-items: center; padding: 10px 14px; background: #f5f3fc; border-radius: 14px; }
.assessment-medical-appointment-row { padding: 16px 0; border: 0; border-bottom: 1px solid #e5e3ef; border-radius: 0; background: transparent; }
.assessment-medical-appointment-row label > span { font-size: 13px; }
.assessment-medical-appointment-row input, .assessment-medical-appointment-row select { min-height: 44px; font-size: 14px; }
.patient-plan-dialog { width: min(840px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); padding: 0; border: 1px solid #e0dfee; border-radius: 24px; color: var(--tx-1, #292641); background: white; }
.patient-plan-dialog::backdrop { background: rgba(30, 26, 55, .45); }
.patient-plan-toolbar { display: flex; gap: 16px; align-items: center; justify-content: space-between; padding: 16px 24px; background: #f6f5fb; }
.patient-plan-toolbar > span { font-size: 13px; }
#patientPlanContent { padding: 28px 36px; }
.patient-plan-heading { border-bottom: 2px solid var(--primary, #6955e8); padding-bottom: 20px; }
.patient-plan-heading span { color: var(--primary, #6955e8); font-weight: 700; }
.patient-plan-heading h1 { font-size: 36px; margin: 12px 0; }
.patient-plan-heading p { margin: 0; color: #706d83; }
.patient-plan-section { padding: 20px 0; border-bottom: 1px solid #e9e7f0; break-inside: avoid; }
.patient-plan-section h2 { font-size: 18px; margin: 0 0 8px; }
.patient-plan-section p { white-space: pre-wrap; overflow-wrap: anywhere; margin: 0; line-height: 1.6; }
.patient-plan-print-sheet { display: none; }
@media (max-width: 600px) {
  .assessment-patient-restitution > header, .patient-plan-toolbar { align-items: stretch; flex-direction: column; }
  #patientPlanContent { padding: 24px 20px; }
  .patient-plan-toolbar { padding: 16px 20px; }
}
@media print {
  body.printing-patient-plan > :not(#patientPlanPrintSheet) { display: none !important; }
  body.printing-patient-plan #patientPlanPrintSheet { display: block !important; padding: 12mm; color: #222; background: white; font: 11pt/1.5 Arial, sans-serif; }
  body.printing-patient-plan #patientPlanDialog { display: none !important; }
  .patient-plan-heading h1 { font-size: 24pt; }
  .patient-plan-section { padding: 12px 0; }
}
.assessment-exam-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, 180px) 44px; align-items: start; gap: 12px; margin-top: 16px; }
.assessment-exam-row label { display: grid; gap: 8px; }
.assessment-exam-row textarea { width: 100%; min-height: 80px; }
.assessment-exam-row button { width: 44px; min-height: 44px; margin-top: 24px; }
.assessment-exam-row input[type="date"] { width: 100%; min-width: 0; min-height: 44px; }
@media (max-width: 600px) {
  .assessment-exam-row { grid-template-columns: minmax(0, 1fr) 44px; }
  .assessment-exam-row > label:first-child { grid-column: 1; }
  .assessment-exam-row > label:nth-child(2) { grid-column: 1; grid-row: 2; }
  .assessment-exam-row > button { grid-column: 2; grid-row: 1; }
}
.assessment-part-flow .assessment-section {
  border: 0;
  background: transparent;
  box-shadow: none;
  padding: 0;
}
.assessment-part-flow .assessment-section > .assessment-guided-item:not(.hidden) {
  margin-top: 24px;
  padding: 0 0 24px;
  border: 0;
  border-bottom: 1px solid var(--ix-border);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  scroll-margin-top: 16px;
}
.assessment-part-flow .assessment-section > .assessment-section-intro { display: none; }
.assessment-part-flow .assessment-onset-context {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
#assessmentGeneralHealthContext {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  gap: 16px;
}
#kneeAssessmentForm.is-guided-assessment .assessment-guided-item:not(.is-guided-current) {
  display: none;
}
#assessmentGeneralHealthContext > [data-confirm-inline-health] {
  justify-self: end;
  width: auto;
  max-width: 100%;
  white-space: normal;
}
#assessmentHealthDeclarations {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
#assessmentHealthDeclarations .health-screening-list {
  grid-template-columns: 1fr;
}
#assessmentHealthDeclarations .health-screening-question {
  grid-template-columns: minmax(0, 1fr) minmax(240px, 45%);
  align-items: center;
  padding: 12px 0;
  border: 0;
  border-bottom: 1px solid var(--ix-border);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
#assessmentHealthDeclarations .health-screening-question > textarea {
  grid-column: 1 / -1;
}
#assessmentHealthDeclarations .health-screening-question > div > small {
  display: block;
  margin-top: 6px;
  color: var(--tx-3);
  font-size: 12px;
  line-height: 1.45;
}
#assessmentHealthDeclarations .health-screening-answer-options button {
  min-height: 44px;
  padding: 8px 10px;
  box-shadow: none;
}
@media (max-width: 600px) {
  #assessmentHealthDeclarations .health-screening-question {
    grid-template-columns: minmax(0, 1fr);
  }
  #assessmentGeneralHealthContext > [data-confirm-inline-health] {
    width: 100%;
  }
}
#assessmentHealthDeclarations > header p {
  display: none;
}

.assessment-interview-group {
  display: grid;
  gap: 20px;
  min-width: 0;
}

.assessment-interview-group > label {
  display: grid;
  gap: 8px;
}

.assessment-interview-group .assessment-onset-context-grid {
  grid-template-columns: 1fr;
}

.initial-assessment-workspace.assessment-guided-draft .knee-assessment-form {
  width: min(100%, 960px);
  margin: 24px auto 0;
  gap: 0;
}

.initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid {
  position: relative;
  top: auto;
  overflow: visible;
  border-radius: 22px 22px 0 0;
  box-shadow: 0 16px 42px rgba(38, 42, 82, .075);
}

.initial-assessment-workspace.assessment-guided-draft .assessment-guided-progress {
  padding: 20px 22px 14px;
  border-color: rgba(var(--primary-rgb), .14);
  border-bottom: 0;
  border-radius: 22px 22px 0 0;
  background:
    radial-gradient(circle at 94% 4%, rgba(var(--primary-rgb), .09), transparent 34%),
    rgba(255,255,255,.96);
}

.initial-assessment-workspace.assessment-guided-draft .assessment-guided-heading strong {
  font-size: clamp(21px, 3vw, 27px);
  line-height: 1.08;
  letter-spacing: -.035em;
}

.initial-assessment-workspace.assessment-guided-draft .knee-assessment-form.is-guided-assessment .assessment-section {
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.initial-assessment-workspace.assessment-guided-draft .knee-assessment-form.is-guided-assessment .assessment-guided-item.is-guided-current {
  min-height: 0;
  padding: 12px 22px 22px;
  border-color: rgba(var(--primary-rgb), .14);
  border-top: 0;
  border-radius: 0 0 22px 22px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 16px 42px rgba(38, 42, 82, .075);
}

.initial-assessment-workspace.assessment-guided-draft label.assessment-guided-item.is-guided-current {
  font-size: 0;
}

.initial-assessment-workspace.assessment-guided-draft label.assessment-guided-item.is-guided-current :is(input, select, textarea) {
  font-size: 14px;
}

.initial-assessment-workspace.assessment-guided-draft label.assessment-guided-item.is-guided-current small {
  font-size: 10px;
}

.initial-assessment-workspace.assessment-guided-draft .assessment-step-actions {
  position: fixed;
  z-index: 1650;
  right: 0;
  bottom: 0;
  left: var(--sb-w);
  margin: 0;
  padding: 12px max(24px, calc((100vw - var(--sb-w) - 960px) / 2));
  border-top: 1px solid rgba(var(--primary-rgb), .12);
  background: #fff;
  box-shadow: 0 -6px 24px rgba(39,43,79,.06);
}

body.clinical-focus-active #bilansPanel,
body.clinical-focus-active #patientDetailModal.patient-detail-page {
  animation: none;
  transform: none !important;
}

.initial-assessment-workspace.assessment-guided-draft .knee-assessment-form {
  padding-bottom: calc(96px + env(safe-area-inset-bottom));
  scroll-padding-bottom: calc(96px + env(safe-area-inset-bottom));
}

.initial-assessment-workspace.assessment-guided-draft .assessment-step-actions > button {
  min-height: 48px;
}

@media (min-width: 701px) and (max-width: 900px) {
  .initial-assessment-workspace.assessment-guided-draft .assessment-step-actions {
    left: 0;
    bottom: calc(65px + env(safe-area-inset-bottom));
    padding: 12px 20px;
  }
}

.clinical-context-trigger > span:first-child {
  display: inline-grid;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  place-items: center;
  border-radius: 50%;
  background: rgba(var(--primary-rgb), .1);
  font-family: Georgia, serif;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
}

@media (max-width: 700px) {
  body.clinical-focus-active .mobile-nav {
    display: none !important;
  }

  body.clinical-focus-active #patientDetailModal.patient-detail-page {
    bottom: 0;
  }

  body.clinical-focus-active #patientDetailModal.patient-detail-page > .detail-modal-content,
  body.clinical-focus-active #bilansPanel.initial-assessment-open {
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }

  body.clinical-focus-active #bilansPanel {
    transform: none !important;
  }

  .initial-assessment-workspace.assessment-guided-draft {
    position: relative;
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }

  .initial-assessment-workspace.assessment-guided-draft > .initial-assessment-page-header {
    min-height: 62px;
    margin-bottom: 12px;
    padding: 10px 14px;
    gap: 9px;
  }

  .initial-assessment-workspace.assessment-guided-draft .initial-assessment-exit-btn {
    width: 38px;
    min-width: 38px;
    height: 38px;
    padding: 0;
    justify-content: center;
    border-radius: 12px;
  }

  .initial-assessment-workspace.assessment-guided-draft .initial-assessment-exit-btn > span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  .initial-assessment-workspace.assessment-guided-draft .initial-assessment-page-actions {
    flex-wrap: nowrap;
    gap: 6px;
  }

  .initial-assessment-workspace.assessment-guided-draft .clinical-context-trigger {
    display: grid;
    width: 38px;
    min-width: 38px;
    height: 38px;
    padding: 0;
    place-items: center;
    border-radius: 12px;
  }

  .initial-assessment-workspace.assessment-guided-draft .clinical-context-trigger > span:last-child {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  .initial-assessment-workspace.assessment-guided-draft .clinical-context-trigger > span:first-child {
    width: 22px;
    height: 22px;
  }

  .initial-assessment-workspace.assessment-guided-draft .knee-assessment-form {
    height: auto;
    min-height: 0;
    flex: 1 1 auto;
    margin-top: 0;
    padding-bottom: calc(84px + env(safe-area-inset-bottom));
    overflow-x: hidden;
    overflow-y: auto;
    scroll-padding-bottom: calc(92px + env(safe-area-inset-bottom));
  }

  .initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid {
    position: static;
    border-radius: 18px 18px 0 0;
  }

  .initial-assessment-workspace.assessment-guided-draft:not(.assessment-overview-open) .assessment-guided-progress {
    min-height: 86px;
    padding: 17px 66px 10px 16px;
    border-radius: 18px 18px 0 0;
  }

  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-heading strong {
    font-size: 22px;
  }

  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-view-toggle {
    top: 17px;
    right: 14px;
    width: 42px;
    min-width: 42px;
    height: 36px;
    min-height: 36px;
    justify-content: center;
    padding: 0;
  }

  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-view-toggle > span:nth-child(2) {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-view-toggle > strong {
    position: absolute;
    right: -4px;
    bottom: -7px;
    min-width: 25px;
    height: 18px;
    padding: 0 4px;
    border: 2px solid #fff;
    border-radius: 7px;
    background: var(--primary);
    color: #fff;
    font-size: 8px;
  }

  .initial-assessment-workspace.assessment-guided-draft .knee-assessment-form.is-guided-assessment .assessment-guided-item.is-guided-current {
    padding: 10px 16px 18px;
    border-radius: 0 0 18px 18px;
  }

  .initial-assessment-workspace.assessment-guided-draft .assessment-step-actions {
    position: fixed;
    z-index: 1650;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    margin: 0;
    padding: 10px 12px max(10px, env(safe-area-inset-bottom));
    border-top: 1px solid rgba(var(--primary-rgb), .1);
    background: rgba(255,255,255,.92);
    box-shadow: 0 -12px 30px rgba(39,43,79,.07);
    backdrop-filter: blur(14px);
  }

  .initial-assessment-workspace.assessment-guided-draft .assessment-step-actions > button {
    min-height: 48px;
    border-radius: 14px;
  }

  .initial-assessment-workspace.assessment-guided-draft .assessment-step-actions #kneeAssessmentPreviousBtn {
    flex: 0 1 42%;
  }

  .initial-assessment-workspace.assessment-guided-draft .assessment-step-actions #kneeAssessmentNextBtn,
  .initial-assessment-workspace.assessment-guided-draft .assessment-step-actions #kneeAssessmentSaveBtn {
    flex: 1 1 58%;
  }

  .initial-assessment-workspace.assessment-guided-draft .assessment-step-actions #kneeAssessmentPreviousBtn:disabled {
    visibility: hidden;
  }
}

/* Pont de cascade : les composants historiques gardent leurs dimensions métier,
   tandis que leur surface adopte le socle d'interaction commun. */
body :is(.input, input[type="text"], input[type="search"], input[type="date"], input[type="time"], input[type="number"], input[type="email"], textarea, select:not([multiple])) {
  border-color: var(--ix-border);
  border-radius: var(--ix-radius);
  background-color: var(--ix-surface);
  box-shadow: var(--ix-shadow);
}
body :is(.input, input[type="text"], input[type="search"], input[type="date"], input[type="time"], input[type="number"], input[type="email"], textarea, select:not([multiple])):focus {
  border-color: var(--primary);
  background-color: #fff;
  box-shadow: 0 0 0 4px rgba(var(--primary-rgb), .12), var(--ix-shadow-hover);
}
body select:not([multiple]) {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 42px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='m3.25 5.25 3.75 3.5 3.75-3.5' fill='none' stroke='%234568ad' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 15px center;
}
body .health-screening-answer-options button {
  min-height: 44px;
  border-color: var(--ix-border);
  border-radius: 14px;
  background: var(--ix-surface);
  color: var(--tx-2);
  box-shadow: var(--ix-shadow);
}
body .health-screening-answer-options button[aria-pressed="true"] {
  border-color: var(--ix-border-strong);
  background: var(--ix-selected);
  color: var(--primary-dk);
  box-shadow: 0 8px 19px rgba(var(--primary-rgb), .11), inset 0 0 0 1px rgba(var(--primary-rgb), .08);
}
body :is(.neuro-check, .care-network-consent, .measurement-active-choice, .patient-guidance-check) input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 22px;
  min-width: 22px;
  height: 22px;
  min-height: 22px;
  margin: 0;
  padding: 0;
  flex: 0 0 22px;
  border: 1.5px solid rgba(var(--primary-rgb), .3);
  border-radius: 7px;
  background: #fff;
}
body :is(.neuro-check, .care-network-consent, .measurement-active-choice, .patient-guidance-check) input[type="checkbox"]:checked {
  border-color: var(--primary);
  background-color: var(--primary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='m2.6 7.2 2.7 2.7 6.1-6.1' fill='none' stroke='white' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  box-shadow: 0 5px 12px rgba(var(--primary-rgb), .23);
}
body .checkbox-label input[type="checkbox"]:checked::after,
body .daily-life-impact-domains input[type="checkbox"]::before {
  display: none;
}

/* Hiérarchie du bilan : identité, travail en cours, navigation locale. */
#initialAssessmentWorkspace.assessment-header-hierarchy > .initial-assessment-page-header {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  gap: 16px;
  padding: 20px 24px;
  align-items: center;
}
#initialAssessmentWorkspace.assessment-header-hierarchy .initial-assessment-exit-btn {
  grid-column: 1;
  justify-self: start;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  justify-content: center;
  border: 1px solid rgba(var(--primary-rgb), .13);
  border-radius: 50% !important;
  background: rgba(var(--primary-rgb), .045);
  box-shadow: none;
  font-size: 14px;
}
#initialAssessmentWorkspace.assessment-header-hierarchy .initial-assessment-exit-btn > span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
#initialAssessmentWorkspace.assessment-header-hierarchy .initial-assessment-page-identity > strong {
  font-size: 22px;
  margin-top: 8px;
  line-height: 1.15;
  letter-spacing: -.035em;
}
#initialAssessmentWorkspace.assessment-header-hierarchy .assessment-patient-context {
  display: flex;
  width: fit-content;
  max-width: 100%;
  justify-self: start;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
  margin-top: 0;
  padding: 5px 12px 5px 5px;
  border: 1px solid rgba(var(--primary-rgb), .12);
  border-radius: 999px;
  background: rgba(var(--primary-rgb), .045);
  box-shadow: none;
  text-align: left;
  color: var(--primary);
  cursor: pointer;
}
#initialAssessmentWorkspace.assessment-header-hierarchy .initial-assessment-patient-name {
  color: var(--tx);
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.3;
}
#initialAssessmentWorkspace.assessment-header-hierarchy .assessment-context-label { font-size: 13px; }
#initialAssessmentWorkspace.assessment-header-hierarchy .assessment-patient-avatar {
  display: grid;
  place-items: center;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(140deg, var(--primary), #8274d6);
  font-size: 13px;
  font-weight: 800;
}
#initialAssessmentWorkspace.assessment-header-hierarchy .assessment-patient-context svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}
#initialAssessmentWorkspace.assessment-header-hierarchy .assessment-patient-context:hover { background: rgba(var(--primary-rgb), .1); }
#initialAssessmentWorkspace.assessment-header-hierarchy .assessment-patient-context:focus-visible { outline: 3px solid var(--primary); outline-offset: 3px; }
#initialAssessmentWorkspace.assessment-header-hierarchy .initial-assessment-page-actions { flex: none; }
#initialAssessmentWorkspace.assessment-header-hierarchy .knee-assessment-form { margin-top: 0; }
#initialAssessmentWorkspace.assessment-header-hierarchy #assessmentGuidedProgress {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px 18px;
  align-items: center;
  min-height: 0;
  padding: 16px 0;
}
#initialAssessmentWorkspace.assessment-header-hierarchy #assessmentGuidedStage {
  font-size: 14px;
  line-height: 1.4;
  font-weight: 750;
  color: var(--primary);
  text-transform: none;
  letter-spacing: 0;
  display: inline-flex;
  justify-self: start;
  padding: 5px 10px;
  border-radius: 8px;
  background: rgba(var(--primary-rgb), .08);
}
#initialAssessmentWorkspace.assessment-header-hierarchy #assessmentGuidedTitle {
  display: block;
  font-size: 21px;
  line-height: 1.3;
  white-space: normal;
  margin-top: 9px;
  letter-spacing: -.02em;
}
#initialAssessmentWorkspace.assessment-header-hierarchy #assessmentGuidedCounter { display: none; }
#initialAssessmentWorkspace.assessment-header-hierarchy #assessmentGuidedViewToggle {
  position: static;
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: center;
  gap: 9px;
  width: auto;
  height: auto;
  min-width: 0;
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid rgba(var(--primary-rgb), .3);
  background: rgba(var(--primary-rgb), .08);
  font-size: 14px;
}
#initialAssessmentWorkspace.assessment-header-hierarchy #assessmentGuidedViewToggle > span:nth-child(2) {
  position: static;
  width: auto;
  height: auto;
  clip: auto;
  clip-path: none;
  overflow: visible;
}
#initialAssessmentWorkspace.assessment-header-hierarchy #assessmentNavigationCurrentStep { display: none; }
#initialAssessmentWorkspace.assessment-header-hierarchy #assessmentGuidedRequirement { grid-column: 1 / -1; margin: 0; }
@media (max-width: 700px) {
  #initialAssessmentWorkspace.assessment-header-hierarchy > .initial-assessment-page-header { grid-template-columns: 40px minmax(0, 1fr) 38px; padding: 14px 12px; gap: 10px; }
  #initialAssessmentWorkspace.assessment-header-hierarchy .initial-assessment-exit-btn { width: 40px; min-width: 40px; height: 40px; min-height: 40px; }
  #initialAssessmentWorkspace.assessment-header-hierarchy .initial-assessment-page-identity > strong { font-size: 20px; }
  #initialAssessmentWorkspace.assessment-header-hierarchy .initial-assessment-patient-name { font-size: 24px; }
  #initialAssessmentWorkspace.assessment-header-hierarchy .assessment-context-label { font-size: 11px; }
  #initialAssessmentWorkspace.assessment-header-hierarchy .assessment-patient-context { gap: 6px; padding-right: 8px; }
  #initialAssessmentWorkspace.assessment-header-hierarchy #assessmentGuidedProgress { grid-template-columns: 1fr; padding: 12px 16px; }
  #initialAssessmentWorkspace.assessment-header-hierarchy #assessmentGuidedTitle { font-size: 19px; }
  #initialAssessmentWorkspace.assessment-header-hierarchy #assessmentGuidedViewToggle { grid-column: 1; grid-row: 2; justify-self: start; }
}

/* Bilan Focus : une seule feuille de travail, sans cadres décoratifs imbriqués. */
.initial-assessment-workspace.assessment-guided-draft .assessment-progress-hybrid {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.initial-assessment-workspace.assessment-guided-draft:not(.assessment-overview-open) .assessment-guided-progress {
  padding: 16px 150px 15px 0;
  border: 0;
  border-bottom: 1px solid rgba(var(--primary-rgb), .11);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.initial-assessment-workspace.assessment-guided-draft .knee-assessment-form.is-guided-assessment .assessment-guided-item.is-guided-current {
  padding: 22px 0 28px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.initial-assessment-workspace.assessment-guided-draft .assessment-guided-item.is-guided-current :is(.assessment-focus-cluster, .assessment-onset-context) {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.initial-assessment-workspace.assessment-guided-draft .assessment-guided-item.is-guided-current :is(.assessment-focus-cluster, .assessment-onset-context) > header {
  padding-bottom: 15px;
  border-bottom: 1px solid rgba(var(--primary-rgb), .09);
}

.initial-assessment-workspace.assessment-guided-draft .assessment-guided-item.is-guided-current .assessment-focus-cluster-grid {
  padding-top: 2px;
}

@media (max-width: 700px) {
  .initial-assessment-workspace.assessment-guided-draft:not(.assessment-overview-open) .assessment-guided-progress {
    min-height: 78px;
    padding: 13px 62px 11px 16px;
  }

  .initial-assessment-workspace.assessment-guided-draft .knee-assessment-form.is-guided-assessment .assessment-guided-item.is-guided-current {
    padding: 17px 16px calc(24px + env(safe-area-inset-bottom));
  }

  .initial-assessment-workspace.assessment-guided-draft .assessment-guided-item.is-guided-current :is(.assessment-focus-cluster, .assessment-onset-context) > header {
    padding-bottom: 12px;
  }
}
/* Shared clinician reasoning and preparation editors. */
.practice-tool-dialog { width: min(760px, calc(100vw - 24px)); max-height: 90dvh; padding: 24px; border: 1px solid #dedbed; border-radius: 22px; color: #292640; background: #fff; box-sizing: border-box; }
.practice-tool-dialog::backdrop { background: rgb(25 22 46 / 45%); }
.exercise-attachments-dialog { width: min(680px, calc(100vw - 24px)); max-height: 90dvh; box-sizing: border-box; border: 1px solid #dedbed; border-radius: 22px; padding: 20px; background: #fff; color: #292640; }
.exercise-attachments-dialog::backdrop { background: rgb(25 22 46 / 45%); }
.exercise-attachments-dialog header, .exercise-attachments-dialog footer { display:flex; gap:12px; align-items:center; justify-content:space-between; }
.exercise-attachments-dialog h2 { font-size:1.3rem; overflow-wrap:anywhere; }
.exercise-attachments-dialog button { min-height:44px; padding:10px 16px; border-radius:12px; cursor:pointer; }
.exercise-attachments-local { padding:12px; background:#f4f2fc; border-radius:12px; font-size:.9rem; line-height:1.45; }
.exercise-attachment { display:grid; gap:10px; padding-block:16px; border-bottom:1px solid #dedbed; }
.exercise-attachment img, .exercise-attachment video { width:100%; max-height:340px; object-fit:contain; border-radius:12px; background:#f7f6fb; }
.exercise-attachment strong { overflow-wrap:anywhere; }
.exercise-attachment label, .exercise-attachments-import { display:grid; gap:8px; }
.exercise-attachment input { min-height:44px; width:100%; box-sizing:border-box; }
.exercise-attachments-import { margin-block:18px; padding:16px; border:1px dashed #7770cf; border-radius:12px; }
.exercise-attachments-import input { max-width:100%; }
.exercise-attachments-dialog [data-error] { color:#a02e36; }
.exercise-attachments-dialog footer { position:sticky; bottom:-20px; background:#fff; padding:14px 0; }
.exercise-attachments-button { margin-block:8px; min-height:44px; border:1px solid #d9d4ee; border-radius:12px; background:#f8f7fd; color:#5143aa; padding:8px 12px; font:inherit; cursor:pointer; }
.exercise-attachment-sources { display:grid; gap:10px; margin-block:16px; }
.exercise-attachment-source { position:relative; display:flex; align-items:center; min-height:52px; padding:12px 16px; box-sizing:border-box; border:1px solid #d9d4ee; border-radius:14px; background:#f5f3ff; color:#5143aa; font-weight:600; cursor:pointer; }
.exercise-attachment-source input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.exercise-attachment-source:focus-within { outline:3px solid #8174e4; outline-offset:2px; }
.exercise-attachment-source:has(input:disabled) { opacity:.5; cursor:wait; }
.exercise-attachment-mobile { display:none; }
.exercise-attachment-desktop-relay { display:grid; gap:8px; margin-block:16px; }
.exercise-attachment-desktop-relay button:disabled { opacity:.65; cursor:not-allowed; }
@media (pointer:coarse), (max-width:700px) {
  .exercise-attachment-mobile { display:flex; }
  .exercise-attachment-desktop-relay { display:none; }
}
.practice-tool-dialog header, .practice-tool-dialog footer, .practice-tool-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.practice-tool-dialog h2 { font-size: 1.45rem; margin: 8px 0 16px; }
.practice-tool-dialog header { flex-wrap: nowrap; align-items: flex-start; }
.practice-tool-dialog header > div { min-width: 0; }
.practice-tool-dialog header > button { flex: 0 0 44px; }
.practice-tool-dialog p { line-height: 1.5; color: #656078; }
.practice-tool-dialog label { display: flex; flex-direction: column; gap: 8px; margin-block: 12px; font-weight: 600; }
.practice-tool-dialog input, .practice-tool-dialog select, .practice-tool-dialog textarea { width: 100%; min-height: 44px; padding: 10px; border: 1px solid #cec9e0; border-radius: 10px; font: inherit; box-sizing: border-box; background: #fff; color: inherit; }
.practice-tool-dialog fieldset { margin-block: 18px; border: 0; border-top: 1px solid #dedbed; padding: 12px 0; }
.practice-tool-dialog button { min-height: 44px; padding: 10px 16px; border-radius: 12px; cursor: pointer; }
.practice-tool-dialog footer { position: sticky; bottom: -24px; background: #fff; padding: 14px 0; border-top: 1px solid #dedbed; }
.practice-tool-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.practice-tool-dialog [data-error] { color: #a02e36; }
@media (max-width: 600px) { .practice-tool-grid { grid-template-columns: 1fr; gap: 0; } .practice-tool-dialog { padding: 16px; } .practice-tool-dialog footer { bottom: -16px; } }
/* Bilan → préparation : une seule surface, sans carte imbriquée. */
.assessment-session-bridge { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-block: 20px; }
.assessment-session-bridge > strong { flex-basis: 100%; }
.assessment-session-bridge > p { flex-basis: 100%; margin: 0; }
.assessment-session-bridge > p:empty { display: none; }
.session-template-exercises { list-style: none; padding: 0; margin: 12px 0; display: grid; gap: 12px; }
.session-template-exercises li { display: grid; gap: 4px; padding-block: 10px; border-bottom: 1px solid #e5e5ef; overflow-wrap: anywhere; }
.session-template-exercises small { color: #656079; }
@media (max-width: 600px) { .assessment-session-bridge > button { width: 100%; } }
.programme-adapter { width: min(760px,calc(100vw - 24px)); max-height: 88dvh; padding: 24px; border: 1px solid #dedbea; border-radius: 22px; color: #292442; }
.programme-adapter::backdrop { background: #211a4055; }
.programme-adapter form,.programme-adapter details[open],.programme-adapter section { display: grid; gap: 14px; }
.programme-adapter header,.programme-adapter footer { display: flex; justify-content: space-between; gap: 12px; }
.programme-adapter label { display: grid; gap: 7px; }
.programme-adapter input,.programme-adapter textarea { width: 100%; min-width: 0; padding: 10px; border: 1px solid #d9d4e9; border-radius: 10px; font: inherit; box-sizing: border-box; }
.programme-adapter input[type=radio] { width: 24px; height: 24px; }
.programme-adapter button { min-height: 44px; padding: 10px 16px; border-radius: 12px; border: 1px solid #d9d4e9; background: #f3f0ff; color: #4936aa; font: inherit; cursor: pointer; }
.programme-adapter summary { cursor: pointer; font-weight: 700; padding-block: 14px; }
.programme-adapter section { padding-block: 14px; border-block-start: 1px solid #e5e1ef; }
.programme-adapter img { max-width: 100%; max-height: 180px; object-fit: contain; }
.programme-dose { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.programme-adapter [role=alert] { color: #963636; }

/* Saisie clinique : choix visibles et une seule surface de travail. */
.assessment-history { padding:0; border:0; margin-block:0 24px; }
.history-toolbar { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.history-axis-scroll { overflow-x:auto; margin-top:16px; border:1px solid #e2ddef; border-radius:18px; background:linear-gradient(180deg,#f9f7ff,#fff); padding:0 20px; }
.history-axis-plot { position:relative; min-width:640px; height:calc(96px + var(--history-lanes)*88px); }
.history-axis-line { position:absolute; left:0; right:0; bottom:42px; height:2px; background:#a799cc; }
.history-axis-tick { position:absolute; top:12px; bottom:42px; border-left:1px solid #e7e2f1; }
.history-axis-tick span { position:absolute; top:calc(100% + 12px); left:0; transform:translateX(-50%); color:#766c88; font-size:.75rem; white-space:nowrap; }
.history-axis-stem { position:absolute; bottom:42px; border-left:1px solid #ad9cd8; }
.history-axis-stem::after { content:''; position:absolute; width:10px; height:10px; left:-6px; bottom:-5px; border:2px solid #fff; border-radius:50%; background:#7154c7; box-shadow:0 0 0 1px #bcaee0; }
.history-axis-range { position:absolute; bottom:37px; height:12px; border-radius:8px; background:#8261d844; border:1px solid #8261d8; }
.assessment-history .history-axis-event { position:absolute; left:clamp(0px,calc(var(--history-x) - 85px),calc(100% - 170px)); width:170px; height:64px; padding:8px 24px 8px 12px; border-radius:12px; background:white; box-shadow:0 3px 10px #44327509; text-align:left; display:grid; gap:5px; }
.history-axis-event small { font-size:.7rem; color:#796b91; white-space:nowrap; }
.history-axis-event strong { font-size:.85rem; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.history-axis-event > span { position:absolute; right:9px; top:28px; color:#8168b9; }
.history-axis-event:focus-visible { outline:3px solid #b2a1e1; outline-offset:3px; }
.history-axis-empty { margin-block:24px; height:72px; background:linear-gradient(180deg,#f9f7ff,#fff); border-radius:16px; display:flex; align-items:center; padding:0 24px; }
.history-axis-empty span { width:100%; height:2px; background:#c5b8e4; }
.history-undated { display:flex; flex-wrap:wrap; gap:8px; padding-block:16px; }
.history-undated > small { flex-basis:100%; color:#796b91; }
.history-undated button { display:grid; text-align:left; gap:4px; }
.history-mobile-time { display:none; }
.history-view-switch { display:flex; gap:6px; }
.history-view-switch button[aria-pressed=true] { background:#6549d0; color:#fff; }
.history-essential-mark { color:#665095; font-size:.85rem; }
body .initial-assessment-workspace .history-essential-control { display:flex; flex-direction:row; align-items:center; gap:10px; }
body .initial-assessment-workspace .history-essential-control input { width:20px; height:20px; min-height:20px; accent-color:#6549d0; }
.history-date-mode { display:flex; gap:8px; }
.history-date-mode button[aria-pressed=true] { color:#fff; background:#6549d0; }
.history-event-editor label[hidden], #assessmentLegacyOnset[hidden] { display:none !important; }
.assessment-history header,.history-event-editor footer { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; }
.assessment-history button { min-height:44px; padding:10px 14px; border:1px solid #cfc4e7; border-radius:14px; background:#f6f2ff; color:#493581; font:inherit; cursor:pointer; }
.history-event-editor { margin-top:16px; display:grid; gap:12px; }
.assessment-history .history-add-button { min-height:32px; height:32px; padding:0 11px; border-radius:999px; gap:5px; font-size:.8rem; }
.assessment-history .history-add-button strong { font-size:.8rem; }
.history-event-dialog { box-sizing:border-box; width:min(560px,calc(100vw - 24px)); max-height:calc(100dvh - 32px); margin:auto; padding:24px; border:1px solid #ded6ed; border-radius:24px; background:#fcfbff; color:#302b43; box-shadow:0 24px 90px #30204b38; overflow-y:auto; }
.history-event-dialog::backdrop { background:#21173366; backdrop-filter:blur(3px); }
.history-event-dialog > header { font-size:1.15rem; }
.history-event-dialog [data-history-close] { padding:0; width:36px; min-height:36px; font-size:1.4rem; background:transparent; border:0; }
.history-event-dialog .history-event-editor input:not([type=checkbox]) { box-sizing:border-box; width:100%; min-width:0; }
.history-event-dialog [data-history-save] { background:#6549d0; color:white; }
.history-event-dialog footer { justify-content:flex-start; }
.history-event-dialog [data-history-error] { color:#a33147; }
.history-quick-add { display:grid; grid-template-columns:minmax(180px,1fr) minmax(245px,.8fr) auto; gap:12px; align-items:end; margin-block:20px; }
.history-quick-name { display:grid; gap:8px; font-size:.85rem; color:#655877; }
.history-quick-dates { display:grid; gap:8px; min-width:0; }
.history-quick-date-inputs { display:flex; gap:8px; min-width:0; }
.history-quick-date-inputs input { width:100%; min-width:0; }
.history-quick-date-inputs input[hidden] { display:none !important; }
.assessment-history .history-quick-dates .history-date-mode button { min-height:32px; padding:5px 10px; font-size:.8rem; border-radius:10px; box-shadow:0 2px 0 #e1d9f1; transition:transform .12s,box-shadow .12s; }
.assessment-history .history-quick-dates .history-date-mode button:active { transform:translateY(2px); box-shadow:none; }
.history-quick-add [data-history-action=add] { align-self:end; margin-bottom:7px; }
.history-quick-add [role=alert] { grid-column:1/-1; color:#a33147; margin:0; font-size:.85rem; }
.history-quick-add [data-state=preview] { color:#63558a; }
@media(max-width:700px) { .history-quick-add { grid-template-columns:minmax(0,1fr) auto; } .history-quick-name { grid-column:1/-1; } .history-quick-dates { grid-column:1/-1; } .history-quick-add [data-history-action=add] { grid-column:2; margin:0; min-height:44px; } }
@media(prefers-reduced-motion:reduce) { .assessment-history .history-quick-dates .history-date-mode button { transition:none; } }
body .initial-assessment-workspace .history-quick-add input { flex:1; min-width:0; margin:0; }
.history-add-button:disabled { opacity:.45; cursor:default; }
.history-event-card { position:relative; box-shadow:0 3px 0 #e5def2,0 7px 15px #43306e0a; transition:transform .14s ease,box-shadow .14s ease; }
.history-event-card:hover { box-shadow:0 4px 0 #d5c9ed,0 9px 18px #6046c51a; }
.history-event-main:active { transform:translateY(2px); }
.assessment-history .history-event-card { padding:0; }
.assessment-history .history-event-main { display:grid; gap:5px; width:100%; height:100%; min-width:0; text-align:left; padding:8px 12px; background:transparent; border:0; box-shadow:none; }
.history-event-main strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.history-event-main > span { display:none; }
.history-event-actions { display:flex; position:absolute; right:4px; bottom:-14px; gap:4px; opacity:0; pointer-events:none; z-index:3; }
.assessment-history .history-event-actions button { display:grid; place-items:center; width:30px; height:30px; min-height:30px; padding:0; background:#fff; box-shadow:0 2px 8px #30204b20; border-radius:50%; }
.history-event-card:hover .history-event-actions,.history-event-card:focus-within .history-event-actions { opacity:1; pointer-events:auto; }
.history-mobile-time .history-event-card { border:1px solid #cfc4e7; border-radius:14px; background:white; }
.history-mobile-time .history-event-main::before { left:-28px; }
.history-mobile-time .history-event-actions button::before { display:none; }
.history-undated .history-event-card { border:1px solid #cfc4e7; border-radius:14px; background:#f6f2ff; }
@media(hover:none),(max-width:600px) { .history-event-actions { opacity:1; pointer-events:auto; position:static; justify-content:flex-end; padding:0 8px 8px; } .assessment-history .history-mobile-time .history-event-main { height:auto; min-height:60px; } }
@media(prefers-reduced-motion:reduce) { .history-event-card { transition:none; } .history-event-main:active { transform:none; } }
.history-event-editor label { display:grid; gap:6px; }
.history-symptoms { margin:18px 0; padding:18px 0; border-block:1px solid #ded8ed; }
.history-symptoms header { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; }
.history-symptom-series { margin-top:16px; }
.clinical-timeline-navigator { --ct-violet:#6653cb; margin:18px 0; color:#302b48; min-width:0; }
.ct-controls,.ct-series,.ct-filters,.ct-periods,.ct-navigation { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.ct-controls,.ct-series { justify-content:space-between; margin-bottom:16px; }
.clinical-timeline-navigator button { min-height:40px; border:1px solid #d9d2ed; border-radius:12px; padding:8px 13px; color:#504288; background:linear-gradient(150deg,#fff,#f4f0fb); box-shadow:0 3px 0 #e1daef,0 5px 12px #47337809; cursor:pointer; font:inherit; font-size:.82rem; transition:none; }
.clinical-timeline-navigator button:hover:not(:disabled) { transform:none; box-shadow:0 4px 0 #d9d0ec,0 7px 14px #47337816; }
.clinical-timeline-navigator button:active:not(:disabled) { transform:none; box-shadow:0 1px 0 #d9d0ec; }
.clinical-timeline-navigator button[aria-pressed=true] { background:linear-gradient(140deg,#806bea,#5d48c3); border-color:#5d48c3; color:white; box-shadow:0 3px 0 #443495; }
.clinical-timeline-navigator button:disabled { opacity:.4; cursor:default; }
.clinical-timeline-navigator :focus-visible { outline:3px solid #a496ea; outline-offset:3px; }
.ct-series label { display:flex; align-items:center; gap:10px; font-size:.82rem; }
.ct-workspace-tools { display:flex; justify-content:flex-end; margin-bottom:12px; }
.detail-panel:has(.clinical-timeline-navigator) { transform:none!important; }
.trajectory-card-front:has(.clinical-timeline-navigator) { transform:none; position:relative; overflow:visible; transform-style:flat; }
.trajectory-card-stage:has(.clinical-timeline-navigator) { height:auto; transform-style:flat; }
.rehabilitation-card-switcher[data-active-view="trajectory"]:has(.clinical-timeline-navigator) .trajectory-card-back { display:none; }
.rehabilitation-card-switcher:has(.clinical-timeline-navigator) { perspective:none; }
.ct-side-panel .trajectory-cockpit-actions>details { width:100%; }
.clinical-timeline-navigator .ct-dot { width:48px; border-radius:18px; font-size:.74rem; display:flex; justify-content:center; gap:1px; }
.clinical-timeline-navigator .ct-dot small { font-size:.57rem; }
.ct-side-panel {
  position:fixed; z-index:210; top:82px; bottom:82px; right:16px;
  width:min(350px,calc(100vw - 32px)); box-sizing:border-box;
  /* Popovers otherwise keep their intrinsic content height despite both insets. */
  height:calc(100vh - 164px);
  height:calc(100dvh - 164px);
  max-height:calc(100dvh - 164px); min-height:0;
  padding:20px; overflow:auto; overscroll-behavior:contain; scroll-padding-block:20px;
  border:1px solid #d8cfed; border-radius:22px; background:#fcfaff; box-shadow:0 18px 65px #36255d30;
}
.ct-side-panel[hidden] { display:none; }
.clinical-timeline-navigator [hidden] { display:none!important; }
.ct-layer-options { display:flex; gap:8px; flex-wrap:wrap; }
.ct-side-panel[popover] { margin:0 0 0 auto; left:auto; }
.ct-side-panel>header { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:20px; }
.ct-side-panel [data-ct-panel-content] { display:grid; gap:22px; }
.ct-side-panel .ct-controls { display:grid; gap:22px; }
.ct-side-panel .ct-filter-menu .ct-filters { position:static; width:auto; padding:10px 0; border:0; box-shadow:none; background:none; }
.ct-side-panel .ct-periods { flex-wrap:wrap; }
.ct-side-panel .trajectory-cockpit-actions { display:grid; justify-content:stretch; }
.ct-side-panel .trajectory-plan-popover,.ct-side-panel .trajectory-goal-popover { position:static; width:auto; min-width:0; max-height:none; box-shadow:none; padding:12px 0; }
.ct-side-panel [data-ct-panel-content],.ct-side-panel .trajectory-cockpit-actions,.ct-side-panel .trajectory-goal-control { min-width:0; }
.ct-side-panel .trajectory-goal-add-form { grid-template-columns:minmax(0,1fr); }
.ct-side-panel .ct-phase-detail,.ct-side-panel .ct-phase-choices { margin:0; padding:12px; }
.ct-trend-badge { position:absolute; top:8px; left:6%; font-size:.82rem; color:#40736c; background:#f5fbf8e8; border-radius:10px; padding:6px 10px; }
.trajectory-card-front:has(.clinical-timeline-navigator) .prototype-current-phase>small { display:none; }
.trajectory-card-front:has(.clinical-timeline-navigator) .prototype-current-phase h3 { font-size:1.2rem; }
.trajectory-card-front:has(.clinical-timeline-navigator) .prototype-progression-disclaimer { display:none; }
.trajectory-card-front:has(.clinical-timeline-navigator) .prototype-progression-completion-rule { font-size:.75rem; }
.ct-series select { min-height:42px; max-width:260px; border:1px solid #d9d2ed; border-radius:12px; padding:8px 12px; color:#504288; background:#fff; font:inherit; }
.ct-navigation span { font-size:.8rem; text-align:center; }
.ct-plot { position:relative; aspect-ratio:800/360; background:linear-gradient(180deg,#eee9fa70,#faf8f800); border-radius:20px; }
.ct-plot svg { display:block; width:100%; height:100%; overflow:visible; }
.prototype-progression-layout[hidden] { display:none!important; }
.ct-plot svg text { font:13px system-ui,sans-serif; fill:#827894; }
.ct-grid { stroke:#ded8e8; stroke-width:1; }
.ct-axis { stroke:#4d4665; stroke-width:3; }
.ct-curve { stroke:#6859ca; stroke-width:3; stroke-dasharray:7 5; }
.ct-curve.is-score { stroke:#5b81b4; stroke-dasharray:none; }
.ct-target { fill:none; stroke:#aaa0db; stroke-width:3; stroke-dasharray:7 8; }
.ct-target-band { fill:#8971da22; }
.ct-phase-shade { fill:#8b76d91b; stroke:#a28bdb77; stroke-dasharray:4 4; }
.ct-mobile-dates { display:none; }
.ct-filter-menu { position:relative; font-size:.82rem; }
.ct-filter-menu summary { min-height:40px; padding:10px 14px; box-sizing:border-box; border:1px solid #d9d2ed; border-radius:12px; color:#5a4b8c; cursor:pointer; background:#faf8ff; box-shadow:0 2px 0 #e7e0f1; }
.ct-filter-menu[open] .ct-filters { position:absolute; top:calc(100% + 8px); left:0; z-index:5; width:280px; padding:12px; border:1px solid #ded7ed; border-radius:16px; background:#fff; box-shadow:0 12px 35px #38285024; display:grid; grid-template-columns:1fr 1fr; }
.ct-phases { margin:0 0 18px; }
.ct-phases>header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 6%; font-size:.82rem; }
.ct-phase-row { position:relative; height:100px; margin:16px 0 4px; }
.ct-phase-row::before { content:''; position:absolute; top:22px; left:6%; right:6%; height:2px; background:#d7cee9; }
.clinical-timeline-navigator .ct-phase-marker { position:absolute; top:0; width:60px; height:44px; padding:0; border-radius:14px; transform:translateX(-50%); background:#fff; font-weight:700; }
.clinical-timeline-navigator .ct-phase-marker:hover:not(:disabled),.clinical-timeline-navigator .ct-phase-marker:active:not(:disabled) { transform:translateX(-50%); }
.ct-phase-number { display:block; font-size:.8rem; }
.ct-phase-caption { position:absolute; top:54px; left:50%; transform:translateX(-50%); width:110px; font-size:.73rem; line-height:1.35; color:#51466d; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-weight:600; }
.ct-phase-row>.ct-phase-marker:first-child .ct-phase-caption { left:0; transform:none; text-align:left; }
.clinical-timeline-navigator .ct-phase-marker:first-child,.clinical-timeline-navigator .ct-phase-marker:first-child:hover:not(:disabled),.clinical-timeline-navigator .ct-phase-marker:first-child:active:not(:disabled) { transform:none; }
.ct-phase-row>.ct-phase-marker:last-child .ct-phase-caption { left:auto; right:0; transform:none; text-align:right; }
.ct-phase-choices { display:flex; flex-wrap:wrap; gap:10px; padding:8px 6%; }
.ct-phase-choices small { display:block; margin-top:4px; }
.clinical-timeline-navigator .ct-phase-band { --phase-color:#7460cc; position:absolute; height:52px; padding:7px 10px; box-sizing:border-box; min-width:0; text-align:left; border:1px solid color-mix(in srgb,var(--phase-color) 42%,white); border-left:3px solid var(--phase-color); border-radius:10px; background:color-mix(in srgb,var(--phase-color) 12%,white); color:#42375f; box-shadow:0 3px 0 color-mix(in srgb,var(--phase-color) 24%,white); }
.clinical-timeline-navigator .ct-phase-band::before { content:''; position:absolute; inset:-3px -8px; }
.clinical-timeline-navigator .ct-phase-band.ct-phase-tone-1 { --phase-color:#3e9c89; }
.clinical-timeline-navigator .ct-phase-band.ct-phase-tone-2 { --phase-color:#c58444; }
.clinical-timeline-navigator .ct-phase-band.ct-phase-tone-3 { --phase-color:#9b72c6; }
.ct-phase-band strong,.ct-phase-band small { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:1.3; }
.ct-phase-band strong { font-size:.8rem; }
.ct-phase-band small { font-size:.7rem; opacity:.85; margin-top:3px; }
.ct-phase-band[aria-label*="partiellement visible"] small::after { content:' · extrait'; }
.clinical-timeline-navigator .ct-phase-band[aria-pressed=true] { background:var(--phase-color); border-color:var(--phase-color); box-shadow:0 3px 0 color-mix(in srgb,var(--phase-color) 75%,#222),0 4px 14px #55407b25; color:white; }
.ct-phase-detail { margin:14px 6% 0; border-left:3px solid #8a76d4; background:#f5f2fb; padding:14px 18px; border-radius:0 14px 14px 0; font-size:.88rem; }
.ct-phase-detail header { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.ct-phase-detail small { color:#756a87; }
.ct-phase-detail p { margin:10px 0; }
.ct-phase-detail ul { margin:8px 0 14px; padding-left:20px; }
.ct-phases details,.ct-phase-empty { margin:10px 6%; font-size:.82rem; }
.ct-phases details button { margin:8px 8px 0 0; }
.ct-phase-return button { padding:10px 14px; min-height:42px; border:1px solid #d9d2ed; border-radius:12px; color:#574493; background:linear-gradient(150deg,#fff,#f3effa); box-shadow:0 3px 0 #e1daef; cursor:pointer; }
.clinical-timeline-navigator .ct-dot,.clinical-timeline-navigator .ct-event { position:absolute; transform:translate(-50%,-50%); display:grid; place-items:center; padding:0; min-height:32px; width:32px; border-radius:50%; background:#fff; border:3px solid #6956cd; box-shadow:0 0 0 5px #7762d222,0 5px 12px #4f407b30; color:#5947b5; font-size:.8rem; font-weight:700; }
.clinical-timeline-navigator .ct-dot:hover:not(:disabled),.clinical-timeline-navigator .ct-event:hover:not(:disabled) { transform:translate(-50%,-50%); }
.clinical-timeline-navigator .ct-dot:active:not(:disabled),.clinical-timeline-navigator .ct-event:active:not(:disabled) { transform:translate(-50%,-50%); }
.clinical-timeline-navigator .ct-dot.is-approximate { border-style:dashed; }
.clinical-timeline-navigator .ct-dot.is-qualitative { border-color:#a897c7; }
.clinical-timeline-navigator .ct-event { min-height:28px; width:28px; font-size:.7rem; border-width:2px; }
.clinical-timeline-navigator button.ct-dot { width:52px; border-radius:18px; font-size:.74rem; display:flex; justify-content:center; gap:1px; }
.ct-event-label { position:absolute; top:100%; margin-top:4px; max-width:80px; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; font-size:.7rem; line-height:1; color:#51466d; }
.ct-edge-start .ct-event-label { left:0; }
.ct-edge-end .ct-event-label { right:0; }
.ct-empty { position:absolute; top:35%; width:100%; text-align:center; font-size:.9rem; }
.ct-overview { margin:20px 6% 14px; }
.ct-mini { height:28px; position:relative; border-radius:8px; background:#eeeaf6; overflow:hidden; }
.ct-mini i { position:absolute; top:9px; bottom:9px; width:3px; background:#8777c2; border-radius:3px; }
.ct-mini span { position:absolute; top:0; bottom:0; border:2px solid #7761d6; border-radius:7px; background:#8066d81c; box-sizing:border-box; }
.ct-overview label { display:flex; align-items:center; gap:12px; font-size:.75rem; margin-top:6px; }
.clinical-timeline-navigator .ct-overview input { width:100%; height:24px; min-height:24px; padding:0; margin:0; box-shadow:none; accent-color:#6c57cf; }
.ct-detail { display:grid; gap:10px; }
.ct-detail:empty { display:none; }
.ct-detail article { padding:14px 18px; border-left:3px solid #8975de; background:#f5f2fb; border-radius:0 12px 12px 0; }
.ct-detail article strong,.ct-detail article span { display:block; }
.ct-detail article span,.ct-detail article p { font-size:.85rem; margin:5px 0; }
.ct-detail>button { justify-self:start; }
.ct-undated { margin:12px 0; font-size:.85rem; }
.ct-undated button { margin:8px; }
.ct-note { display:block; font-size:.75rem; color:#827894; margin-top:12px; }
@media(max-width:600px) {
 .ct-controls { display:flex; gap:12px; }
 .ct-filters { display:grid; grid-template-columns:1fr 1fr; }
 .ct-series { display:grid; gap:16px; }
 .ct-navigation { flex-wrap:nowrap; justify-content:space-between; }
 .ct-plot { aspect-ratio:auto; height:330px; }
 .ct-plot svg { overflow:hidden; }
 .ct-plot svg text { display:none; }
 .ct-mobile-dates { position:absolute; left:6%; right:6%; bottom:4px; display:flex; justify-content:space-between; gap:8px; color:#827894; font-size:.72rem; }
 .ct-overview { margin-inline:0; }
 .ct-overview label { flex-wrap:wrap; gap:2px; }
 .ct-series select { max-width:220px; }
 .ct-phases>header { padding-inline:0; }
 .ct-phase-detail { margin-inline:0; }
 .ct-phase-caption { width:80px; }
 .ct-phase-row>.ct-phase-marker:last-child .ct-phase-caption { left:50%; right:auto; transform:translateX(-50%); text-align:center; }
}
@media(prefers-reduced-motion:reduce) { .clinical-timeline-navigator button { transition:none; } }
.history-symptom-series svg { width:100%; max-height:230px; overflow:visible; background:linear-gradient(180deg,#f1effb80,transparent); }
.history-symptom-series svg text { fill:#665d79; font:18px var(--font); }
.history-symptom-axis { stroke:#c1b7d6; stroke-width:1; }
.history-symptom-link { stroke:#7361d7; stroke-width:2.5; stroke-dasharray:5 5; }
.history-symptom-dot { fill:white; stroke:#6254c8; stroke-width:3; filter:drop-shadow(0 3px 3px #6b5acc33); }
.history-symptom-dot.is-recalled { stroke-dasharray:3 2; }
.history-trend-note { display:block; color:#756982; font-size:.75rem; }
.history-trend-points { display:flex; gap:10px; overflow-x:auto; padding:12px 2px; }
.history-trend-points .history-trend-point { display:flex; align-items:center; gap:10px; min-width:175px; text-align:left; padding:12px; border:1px solid #dad1ec; border-radius:14px; background:linear-gradient(150deg,#fff,#f5f1fc); box-shadow:0 3px 0 #e5dff0; color:#403450; font:inherit; }
.history-trend-point > span:last-child { display:grid; gap:5px; }
.history-trend-point small { color:#736780; font-size:.75rem; }
.history-trend-sign { font-size:1.6rem; color:#6552c6; }
.history-observation { border-top:1px solid #ded8ed; padding-top:10px; }
.history-observation[open] { display:grid; gap:12px; }
.history-observation fieldset { border:0; padding:0; margin:0; }
.history-observation legend { font-size:.85rem; margin-bottom:8px; }
.history-trend-choices { display:flex; gap:8px; flex-wrap:wrap; }
.history-trend-choices label { position:relative; cursor:pointer; }
.history-trend-choices input { position:absolute; inset:0; opacity:0; width:100%!important; height:100%!important; margin:0!important; cursor:pointer; z-index:1; }
.history-trend-choices span { display:block; padding:10px 12px; border:1px solid #cfc4e7; border-radius:12px; background:#fff; box-shadow:0 3px 0 #e3dbf0; }
.history-trend-choices input:checked + span { color:white; background:linear-gradient(135deg,#7963e7,#5944bd); border-color:#5944bd; }
.history-trend-choices input:focus-visible + span { outline:3px solid #b2a1e1; outline-offset:3px; }
.history-trend-choices label:active { transform:translateY(2px); }
@media(max-width:600px) { .history-trend-points { flex-direction:column; } .history-trend-points .history-trend-point { width:100%; box-sizing:border-box; } }
/* La frise clinique réemploie les jalons SVG du graphique Évolution. */
.history-axis-scroll { border:0; border-radius:0; padding:0 28px; background:linear-gradient(180deg,transparent,#6d67d708); }
.history-axis-line { height:3px; background:#514967; }
.history-axis-tick { border-color:#7167a61a; }
.history-axis-tick span { color:#514967; font-weight:650; }
.history-axis-stem { border-left:2px dashed #aba0e2; }
.history-axis-stem::after { width:2px; height:10px; left:-2px; bottom:-7px; border:0; border-radius:0; box-shadow:none; background:#6c6385; }
.history-axis-range { background:#6d67d725; border-color:#8f82d0; }
.assessment-history .history-axis-event { left:calc(var(--history-x) - 28px); width:190px; height:70px; background:transparent; border:0; box-shadow:none; overflow:visible; }
.assessment-history .history-event-main { grid-template-columns:56px minmax(0,1fr); align-items:center; padding:0; gap:8px; }
.assessment-history .history-event-main > .history-jalon-copy { position:static; display:grid; gap:5px; color:var(--tx,#302b43); }
.history-jalon { width:56px; height:56px; overflow:visible; transition:transform .16s ease; }
.history-is-approximate .prototype-chart-milestone-dot { stroke-dasharray:4 3; }
.history-is-approximate .prototype-chart-major-halo { fill:rgba(109,103,215,.2); }
.history-event-main:hover .history-jalon,.history-event-main:focus-visible .history-jalon { transform:scale(1.08); }
.history-event-main:active .history-jalon { transform:scale(.94); }
.history-jalon-copy strong { font-size:.9rem; font-weight:750; white-space:normal; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.3; text-shadow:0 1px white; }
.history-jalon-copy small { font-size:.75rem; color:#665d79; white-space:normal; }
.history-jalon-copy .history-date-warning { color:#9a4e20; font-weight:650; max-width:270px; }
.history-event-card:hover { box-shadow:none; }
.history-undated .history-event-card { border:0; background:transparent; border-radius:0; box-shadow:none; min-width:220px; }
.history-undated { padding-block:18px; border-bottom:1px solid #e2ddef; }
.history-mobile-time { border-left:3px solid #514967; margin-left:28px; padding-left:0; gap:24px; }
.history-mobile-time .history-event-card { margin-left:-29px; border:0; border-radius:0; background:transparent; box-shadow:none; }
.history-mobile-time .history-event-main::before { display:none; }
.history-mobile-time .history-event-actions { padding-left:64px; justify-content:flex-start; }
.history-view-switch { padding:3px; gap:2px; border-radius:12px; background:#ece9f5; }
.assessment-history .history-view-switch button { min-height:32px; padding:5px 10px; border:0; border-radius:9px; font-size:.8rem; background:transparent; }
.assessment-history .history-view-switch button[aria-pressed=true] { background:white; color:#5545b1; box-shadow:0 2px 5px #4033631a; }
@media(prefers-reduced-motion:reduce) { .history-jalon { transition:none; } .history-event-main:hover .history-jalon,.history-event-main:active .history-jalon { transform:none; } }
.history-date-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.history-suggestions { display:flex; flex-wrap:wrap; gap:8px; padding-block:12px; }
.assessment-history summary { cursor:pointer; min-height:44px; }
.assessment-history [role=alert]:empty { display:none; }
@media(max-width:600px) {
  .history-axis-scroll { display:none; }
  .history-mobile-time { display:grid; gap:16px; margin:20px 0 20px 8px; padding-left:20px; border-left:2px solid #b7a5de; }
  .history-mobile-time button { position:relative; display:grid; gap:6px; background:white; text-align:left; }
  .history-mobile-time button::before { content:''; position:absolute; top:23px; left:-28px; width:10px; height:10px; border-radius:50%; background:#7154c7; border:2px solid white; }
  .history-mobile-time small { color:#766b8b; }
  .history-date-fields { grid-template-columns:1fr; }
}
body .initial-assessment-workspace .assessment-side-picker .assessment-choice-options[hidden] { display:none; }
.assessment-history .history-axis-event.history-label-left { width:56px; }
.assessment-history .history-label-left .history-event-main { grid-template-columns:56px; }
.assessment-history .history-label-left .history-jalon-copy { position:absolute; right:64px; width:140px; text-align:right; }
@media(max-width:600px) { .history-mobile-time { margin-left:28px; padding-left:0; border-left:3px solid #514967; } }
.assessment-side-surface { position:relative; width:min(100%,360px); height:250px; margin:12px auto; }
.assessment-side-surface svg { position:absolute; inset:0; width:100%; height:100%; fill:#eeeaf8; stroke:#9584bc; stroke-width:2; }
.assessment-side-surface button { position:absolute; top:0; bottom:0; width:37%; border:1px solid transparent; border-radius:24px; background:transparent; color:#493a70; font:inherit; font-size:.85rem; font-weight:650; padding:8px; display:flex; align-items:flex-end; justify-content:center; cursor:pointer; }
.assessment-side-surface [data-side=droit] { left:0; }
.assessment-side-surface [data-side=gauche] { right:0; }
.assessment-side-surface [data-side=droit], .assessment-side-surface [data-side=gauche] { width:43%; }
.assessment-side-surface [data-side=central] { left:43%; width:14%; padding-inline:0; border-radius:16px; }
.assessment-side-surface button[aria-pressed=true] { background:#7054db30; border-color:#7154d9; color:#392276; }
.assessment-side-secondary { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.assessment-side-secondary button { border:1px solid #d8d0e9; background:#fff; color:#493a70; border-radius:14px; padding:10px 12px; min-height:44px; font:inherit; font-size:.9rem; cursor:pointer; }
.assessment-side-secondary button[aria-pressed=true] { background:#6248cf; color:white; border-color:#6248cf; }
.assessment-side-secondary button[hidden] { display:none; }
.assessment-side-picker button:focus-visible { outline:3px solid #a996ef; outline-offset:3px; }
.assessment-side-picker button:active { transform:scale(.98); }
body .initial-assessment-workspace :is(#kneeOnsetDetailRow,#kneeTraumaDetailRow)[hidden] { display: none !important; }
body .initial-assessment-workspace label.assessment-choice-option { flex-direction: row; text-align: left; }
body .initial-assessment-workspace { background: #faf8f5; }
body .initial-assessment-workspace .assessment-native-choice[hidden] { display: none !important; }
body .initial-assessment-workspace .assessment-choice-field { border: 0; padding: 0; margin: 0 0 22px; min-width: 0; }
body .initial-assessment-workspace .assessment-choice-field legend { padding: 0; margin-bottom: 12px; color: #302b43; font-size: 1rem; font-weight: 650; line-height: 1.45; }
body .initial-assessment-workspace .assessment-choice-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); grid-auto-rows: 1fr; gap: 12px; }
body .initial-assessment-workspace label.assessment-choice-option { position: relative; display: flex; align-items: center; gap: 9px; width: auto; min-height: 46px; padding: 10px 15px; margin: 0; border: 1px solid #ddd9e4; border-radius: 14px; background: #fff; color: #474057; cursor: pointer; box-shadow: none; font-size: 1rem; line-height: 1.4; font-weight: 500; transition: background .12s, border-color .12s; }
body .initial-assessment-workspace .assessment-choice-option input[type=radio] { appearance: auto; width: 17px; height: 17px; min-height: 0; padding: 0; margin: 0; flex: 0 0 17px; accent-color: #6654dc; box-shadow: none; }
body .initial-assessment-workspace .assessment-choice-option:has(input:checked) { border-color: #7664dc; background: #eeebff; color: #443397; }
body .initial-assessment-workspace .assessment-choice-option:focus-within { outline: 3px solid #bdb2f5; outline-offset: 2px; }
body .initial-assessment-workspace .assessment-choice-option:has(input:disabled) { opacity: .55; cursor: not-allowed; }
body .initial-assessment-workspace .assessment-choice-clear { min-height: 44px; margin-top: 2px; padding: 8px 0; background: transparent; border: 0; box-shadow: none; color: #605575; font: inherit; font-size: .875rem; text-decoration: underline; cursor: pointer; }
body .initial-assessment-workspace .assessment-choice-clear[hidden] { display:none; }
/* Boutons de choix Synapse : relief discret au repos, violet à la sélection. */
body .initial-assessment-workspace label.assessment-choice-option {
  isolation: isolate; overflow: hidden; min-height: 52px; padding: 13px 18px;
  box-sizing: border-box; width: 100%; height: 100%;
  border: 1px solid #d4ccec; border-bottom-width: 3px; border-radius: 16px;
  background: linear-gradient(165deg,#fff 30%,#f4f0ff); color: #493a70;
  box-shadow: 0 3px 0 #e5def2, 0 7px 15px #43306e0a;
  font-weight: 650; transition: transform .14s ease, box-shadow .14s ease, background .18s ease, border-color .18s ease;
}
body .initial-assessment-workspace .assessment-choice-option input[type=radio] {
  position: absolute; width: 1px; height: 1px; opacity: 0; clip-path: inset(50%);
}
body .initial-assessment-workspace .assessment-choice-option::before {
  content: ''; width: 18px; height: 18px; flex: 0 0 18px; border: 1.5px solid #b5a8d4;
  border-radius: 6px; background: #fff; box-sizing: border-box;
}
body .initial-assessment-workspace .assessment-choice-option:has(input:checked) {
  color: #fff; background: linear-gradient(135deg,#7861ec,#5841c9);
  border-color: #5139b9; box-shadow: 0 3px 0 #45309b, 0 8px 18px #6046c52b;
}
body .initial-assessment-workspace .assessment-choice-option:has(input:checked)::before {
  content: '✓'; display: grid; place-items: center; background: #fff; border-color: #fff;
  color: #5841c9; font-size: 13px; line-height: 1; font-weight: 800;
}
@media (hover: hover) {
  body .initial-assessment-workspace .assessment-choice-option:hover:not(:has(input:disabled)) {
    transform: translateY(-2px); box-shadow: 0 5px 0 #d5c9ed, 0 10px 20px #6046c51a;
  }
}
body .initial-assessment-workspace .assessment-choice-option:active:not(:has(input:disabled)) {
  transform: translateY(3px) scale(.985); box-shadow: 0 0 0 #d5c9ed, 0 2px 5px #6046c514;
}
body .initial-assessment-workspace :is(input[type=text],input[type=number],input[type=date],select,textarea) { border: 1px solid #ddd9e4; border-radius: 12px; box-shadow: none; background-color: #fff; font-size: 1rem; padding: 12px 14px; min-height: 48px; }
body .initial-assessment-workspace textarea { min-height: 92px; line-height: 1.55; resize: vertical; }
body .initial-assessment-workspace :is(input,select,textarea):focus { border-color: #7664dc; box-shadow: 0 0 0 3px #7664dc20; }
@media (max-width: 600px) {
  body .initial-assessment-workspace .assessment-choice-options { display: grid; grid-template-columns: minmax(0,1fr); }
  body .initial-assessment-workspace label.assessment-choice-option { width: 100%; box-sizing: border-box; }
}
@media (prefers-reduced-motion: reduce) { body .initial-assessment-workspace .assessment-choice-option { transition: none; } }

/* Accueil clinique : semaine synthétique puis détail actionnable du jour. */
.dashboard-week {
  display: grid;
  gap: 14px;
  margin: 16px 0;
  padding: 20px;
  border: 1px solid rgba(76,68,132,.11);
  border-radius: 20px;
  background: linear-gradient(145deg,rgba(255,255,255,.99),rgba(249,248,255,.95));
  box-shadow: 0 9px 26px rgba(52,44,102,.055);
}
.dashboard-week-header,
.dashboard-week-day > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}
.dashboard-week-header h2,
.dashboard-week-day h3 { margin: 2px 0 0; color: var(--tx); letter-spacing: -.025em; }
.dashboard-week-header h2 { font-size: 21px; }
.dashboard-week-day h3 { font-size: 17px; }
.dashboard-week-range,
.dashboard-week-day-summary { margin: 4px 0 0; color: var(--tx-3); font-size: 11px; }
#dashboardWeek .dashboard-week-day > header { flex-wrap:wrap; }
#dashboardWeekDaySummary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; width:100%; margin:10px 0 4px; }
.dashboard-day-counter { display:flex; flex-direction:column; align-items:flex-start; gap:5px; padding:18px 20px; border:1px solid #ddd2f0; border-radius:20px; background:#f4effc; color:#6149a9; font:inherit; cursor:pointer; text-align:left; }
.dashboard-day-counter strong { font-size:32px; line-height:1.1; font-weight:800; }
.dashboard-day-counter span { font-size:14px; font-weight:650; }
.dashboard-day-counter[aria-pressed="true"] { background:#e8dff7; border-color:#9679d0; box-shadow:inset 0 0 0 1px #9679d0; }
.dashboard-day-counter.is-empty { background:#f8f7fb; border-color:#e9e5ef; color:#82788f; cursor:default; }
.dashboard-day-counter.has-concern { color:#a1384f; border-color:#d99baa; background:#fff1f3; }
.dashboard-day-counter:focus-visible { outline:3px solid #7254ba; outline-offset:3px; }
@media(max-width:520px) { #dashboardWeekDaySummary { gap:7px; } .dashboard-day-counter { padding:14px 10px; border-radius:16px; } .dashboard-day-counter strong { font-size:28px; } .dashboard-day-counter span { font-size:12px; } }
.dashboard-week-days {
  display: grid;
  grid-template-columns: repeat(7,minmax(0,1fr));
  gap: 8px;
}
.dashboard-week-day-button {
  display: grid;
  min-width: 0;
  min-height: 112px;
  align-content: start;
  justify-items: start;
  gap: 4px;
  padding: 12px;
  border: 1px solid rgba(76,68,132,.11);
  border-radius: 14px;
  background: rgba(255,255,255,.78);
  color: var(--tx);
  font: inherit;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(52,44,102,.035);
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.dashboard-week-day-button:hover,
.dashboard-week-day-button:focus-visible {
  border-color: rgba(var(--primary-rgb),.35);
  background: #fff;
  box-shadow: 0 7px 18px rgba(52,44,102,.08);
  outline: 0;
}
.dashboard-week-day-button:focus-visible { box-shadow: 0 0 0 3px rgba(var(--primary-rgb),.16),0 7px 18px rgba(52,44,102,.08); }
.dashboard-week-day-button.is-selected {
  border-color: rgba(var(--primary-rgb),.42);
  background: linear-gradient(145deg,rgba(var(--primary-rgb),.12),#fff);
  box-shadow: inset 0 0 0 1px rgba(var(--primary-rgb),.08),0 8px 19px rgba(52,44,102,.08);
}
.dashboard-week-day-button.is-today > span::after {
  display: none;
  width: 5px;
  height: 5px;
  margin-left: 5px;
  border-radius: 50%;
  background: var(--primary);
  content: '';
  vertical-align: middle;
}
.dashboard-week-day-button.is-today {
  border-color: var(--primary);
  box-shadow: inset 0 0 0 1px var(--primary);
}
.dashboard-week-day-button.is-selected {
  background: #eeefff;
}
.dashboard-week-day-button.is-today.is-selected {
  background: #eeefff;
  box-shadow: inset 0 0 0 1px var(--primary), 0 4px 12px rgba(52,44,102,.05);
}
.dashboard-week-day-button > span { color: var(--tx-3); font-size: 10px; font-weight: 800; text-transform: capitalize; }
.dashboard-week-day-button > strong { font-size: 25px; line-height: 1; }
.dashboard-week-day-button > small { color: var(--tx-3); font-size: 10px; font-weight: 700; }
.dashboard-week-day-button > em {
  overflow: hidden;
  max-width: 100%;
  margin-top: auto;
  color: var(--primary-dk);
  font-size: 9px;
  font-style: normal;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dashboard-week-day-button > em.is-done { color: #24745f; }
.dashboard-week-day-button > em.is-quiet { color: var(--tx-4); font-weight: 650; }
.dashboard-week-day {
  display: grid;
  gap: 10px;
  padding-top: 14px;
  border-top: 1px solid rgba(76,68,132,.09);
}
.dashboard-week-day-list { display: grid; gap: 7px; }
.clinical-practice-cards { margin: 16px 0; padding: 16px; border: 1px solid #dfd6ed; border-radius: 18px; background: linear-gradient(135deg,#f7f3fc,#f2f7f3); box-shadow: 0 3px 0 #e5ddee, inset 0 1px 0 #fff; }
.clinical-practice-cards > summary { cursor: pointer; font-weight: 800; color: var(--primary-dk); }
.clinical-practice-cards > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 14px 0; }
.clinical-practice-cards article { padding: 16px; border: 1px solid #e4dfeb; border-radius: 14px; background: #fff; box-shadow: 0 2px 0 #e9e3ef; }
.clinical-practice-cards article p { margin: 8px 0 0; line-height: 1.5; }
.clinical-capture-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 14px 0; }
.clinical-capture-grid label { min-width: 0; }
.clinical-capture-grid input { width: 100%; box-sizing: border-box; }
@media(max-width:600px) { .clinical-capture-grid,.clinical-practice-cards > div { grid-template-columns: 1fr; } }
.dashboard-day-group-list { display: grid; gap: 8px; min-width: 0; }
.dashboard-day-actions-group {
  padding: 16px;
  border: 1px solid #e5dbcc;
  border-radius: 20px;
  background: linear-gradient(135deg, #fcf9f3, #f7f3eb);
  box-shadow: inset 0 1px 0 #fff, 0 3px 0 #eee7dc;
}
.dashboard-day-actions-group h4,
.dashboard-day-appointments-group h4 {
  display: flex; align-items: center; gap: 10px;
  margin: 0 0 12px; color: var(--tx); font-size: 15px; font-weight: 800;
}
.dashboard-day-actions-group h4 span,
.dashboard-day-appointments-group h4 span {
  padding: 3px 8px; border-radius: 9px; background: rgba(var(--primary-rgb),.08);
  color: var(--primary-dk); font-size: 12px;
}
.dashboard-day-actions-group .dashboard-week-clinical-action {
  background: rgba(255,255,255,.85); border-color: #e7dfd4;
  box-shadow: 0 2px 0 rgba(124,101,72,.07);
}
.dashboard-day-actions-group .dashboard-week-clinical-action:hover,
.dashboard-day-actions-group .dashboard-week-clinical-action:focus-visible {
  border-color: var(--primary); box-shadow: 0 0 0 3px rgba(var(--primary-rgb),.1);
}
.dashboard-day-actions-group + .dashboard-day-appointments-group {
  margin-top: 22px; padding-top: 20px; border-top: 1px solid rgba(var(--primary-rgb),.15);
}
@media (max-width: 600px) {
  .dashboard-day-actions-group { padding: 12px; }
  .dashboard-day-actions-group .dashboard-week-clinical-action small { white-space: normal; }
}
.dashboard-week-appointment,
.dashboard-week-clinical-action {
  display: grid;
  width: 100%;
  min-width: 0;
  align-items: center;
  gap: 12px;
  padding: 11px 13px;
  border: 1px solid rgba(76,68,132,.09);
  border-radius: 13px;
  background: rgba(var(--primary-rgb),.035);
  color: var(--tx);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.dashboard-week-appointment { grid-template-columns: 52px minmax(0,1fr) auto; }
.dashboard-week-clinical-action { grid-template-columns: auto minmax(0,1fr) auto; }
.dashboard-week-appointment:hover,
.dashboard-week-appointment:focus-visible,
.dashboard-week-clinical-action:hover,
.dashboard-week-clinical-action:focus-visible {
  border-color: rgba(var(--primary-rgb),.28);
  background: rgba(var(--primary-rgb),.075);
  box-shadow: 0 0 0 3px rgba(var(--primary-rgb),.08);
  outline: 0;
}
.dashboard-week-appointment-time { color: var(--primary-dk); font-size: 13px; font-weight: 850; }
.dashboard-week-appointment-main,
.dashboard-week-appointment-status,
.dashboard-week-clinical-action > span:nth-child(2) { display: grid; min-width: 0; gap: 2px; }
.dashboard-week-appointment-main strong,
.dashboard-week-clinical-action strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-week-appointment-main small,
.dashboard-week-clinical-action small { overflow: hidden; color: var(--tx-3); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-week-appointment-status { justify-items: end; text-align: right; }
.dashboard-week-appointment-status em,
.dashboard-week-clinical-action > em { color: var(--primary-dk); font-size: 10px; font-style: normal; font-weight: 800; }
.dashboard-week-appointment-status small { color: var(--tx-4); font-size: 9px; }
.dashboard-week-appointment.is-done .dashboard-week-appointment-status em { color: #24745f; }
.dashboard-week-appointment.is-dependent .dashboard-week-appointment-status em { color: var(--tx-4); }
.dashboard-week-empty { display: grid; gap: 3px; min-height: 70px; place-content: center start; padding: 12px; color: var(--tx-3); }
.dashboard-week-empty strong { color: var(--tx-2); font-size: 13px; }
.dashboard-week-empty span { font-size: 10px; }

@media (max-width: 800px) {
  .dashboard-week { padding: 16px; }
  .dashboard-week-days {
    grid-template-columns: repeat(7,minmax(116px,1fr));
    overflow-x: auto;
    padding: 2px 2px 7px;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .dashboard-week-days::-webkit-scrollbar { display: none; }
  .dashboard-week-day-button { min-height: 104px; scroll-snap-align: start; }
}
@media (max-width: 520px) {
  .dashboard-week { margin-block: 14px; padding: 14px; border-radius: 18px; }
  .dashboard-week-header,
  .dashboard-week-day > header { align-items: flex-start; flex-direction: column; gap: 7px; }
  .dashboard-week-day-summary { margin-top: 0; }
  .dashboard-week-appointment { grid-template-columns: 46px minmax(0,1fr); }
  .dashboard-week-appointment-status { grid-column: 2; justify-items: start; text-align: left; }
  .dashboard-week-clinical-action { grid-template-columns: auto minmax(0,1fr); }
  .dashboard-week-clinical-action > em { grid-column: 2; }
}
@media (prefers-reduced-motion: reduce) {
  .dashboard-week-day-button,
  .dashboard-week-appointment,
  .dashboard-week-clinical-action { transition: none; }
}

/* Agenda clinique : mêmes données, navigation temporaire, aucune validation implicite. */
#dashboardTab .dashboard-compact-hero { display:flex!important; flex-direction:row!important; justify-content:space-between; align-items:center; gap:24px; width:100%; padding:16px 0 24px; }
#dashboardTab .dashboard-compact-hero .dashboard-assistant-copy { flex:1; min-width:0; text-align:left; align-self:flex-start; }
#dashboardTab .dashboard-date-navigation { display:flex; flex-direction:column; align-items:center; align-self:flex-start; gap:10px; max-width:100%; }
#dashboardTab .dashboard-date-navigation .dashboard-week-range { margin:0; font-size:15px; font-weight:650; color:var(--tx-2); text-align:center; }
#dashboardTab .dashboard-date-navigation .dashboard-calendar-controls { margin:0; }
#dashboardTab #dashboardGreetingTitle { width:fit-content; position:relative; font-size:clamp(38px,4.5vw,60px)!important; line-height:1.2; letter-spacing:-.045em; margin:0; padding:4px 0 12px; color:#42355f; }
#dashboardTab .dashboard-greeting-hello { font-weight:550; }
#dashboardTab .dashboard-greeting-name { position:relative; display:inline-block; font-weight:800; color:#7055cf; background:linear-gradient(120deg,#5842ba,#9775db); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
#dashboardTab .dashboard-greeting-name::after { content:none; }
#dashboardTab #appointmentTimelineDate { display:none!important; }
#dashboardWeek.is-now .dashboard-week-day > header > div:not(.dashboard-week-day-summary) { display:none; }
.dashboard-face-switch { display:flex; gap:8px; margin:0; flex-wrap:wrap; align-items:center; justify-content:flex-end; }
.dashboard-face-switch button { font:inherit; font-weight:750; border:1px solid #d5cbea; background:#f1edf9; color:#55438c; border-radius:16px; padding:13px 19px; box-shadow:0 3px 0 #dfd5ee; cursor:pointer; }
.dashboard-face-switch button[aria-pressed="true"] { background:linear-gradient(130deg,#7865de,#614bc7); color:#fff; box-shadow:0 4px 0 #4f3d9a; }
.dashboard-face-switch button[data-home-face] { background:linear-gradient(130deg,#7865de,#614bc7); color:#fff; box-shadow:0 4px 0 #4f3d9a; }
@media(max-width:600px) { #dashboardTab .dashboard-compact-hero { flex-wrap:wrap; gap:16px; } #dashboardTab #dashboardGreetingTitle { font-size:36px!important; } .dashboard-face-switch { justify-content:flex-start; } }
.dashboard-face-alert { display:inline-block; margin-left:10px; padding:3px 8px; border-radius:20px; background:#fff0ee; color:#9e3446; font-size:12px; }
.dashboard-preparation-hero { padding:26px; border-radius:24px; background:linear-gradient(120deg,#6552cc,#9388e4); color:#fff; box-shadow:0 5px 0 #5543ab,0 16px 32px #4d399b18; }
.dashboard-preparation-hero .section-kicker { color:#e5dcff; }
.dashboard-preparation-hero h2 { color:#fff; margin:6px 0 24px; }
.dashboard-preparation-counters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.dashboard-preparation-counters button { font:inherit; cursor:pointer; color:#fff; background:#ffffff10; border:1px solid #ffffff30; border-radius:17px; padding:16px 10px; text-align:left; }
.dashboard-preparation-counters button[aria-pressed="true"],.dashboard-preparation-counters button:hover { background:#ffffff28; border-color:#fff; box-shadow:inset 0 1px 0 #ffffff50; }
.dashboard-preparation-counters span { display:block; font-size:13px; font-weight:700; min-height:40px; }
.dashboard-preparation-counters strong { display:block; font-size:32px; }
.dashboard-preparation-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:26px; }
.dashboard-preparation .has-concern { border-left:4px solid #b54554; }
#dashboardWeek[hidden],#dashboardPreparation[hidden] { display:none!important; }
.dashboard-face-switch button:focus-visible,.dashboard-preparation button:focus-visible { outline:3px solid #a291ed; outline-offset:4px; }
@media(max-width:600px) { .dashboard-preparation-hero { padding:19px 14px; } .dashboard-preparation-counters { gap:6px; } .dashboard-preparation-counters span { font-size:12px; min-height:54px; } .dashboard-preparation-counters strong { font-size:28px; } }
.dashboard-calendar-controls { display:flex; flex-wrap:nowrap; align-items:center; gap:12px; margin:14px 0; }
.dashboard-calendar-period,.dashboard-calendar-segments { display:flex; gap:4px; align-items:center; }
.dashboard-calendar-segments { padding:4px; border:1px solid #e1daef; border-radius:14px; background:#f1edf7; }
.dashboard-calendar-controls button { min-height:40px; padding:8px 13px; border:1px solid transparent; border-radius:10px; font:inherit; font-size:13px; font-weight:700; color:#655482; background:transparent; cursor:pointer; }
.dashboard-calendar-controls button[aria-pressed="true"] { color:#fff; background:linear-gradient(130deg,#7860e2,#6048c6); border-color:#694bc8; box-shadow:0 3px 0 #4e389c, inset 0 1px 0 #ffffff40; }
.dashboard-calendar-controls button:hover { border-color:#ac99d8; }
.dashboard-calendar-controls button:focus-visible { outline:3px solid #a995e3; outline-offset:3px; }
.dashboard-calendar-controls button:active { box-shadow:inset 0 2px 5px #46326335; }
.dashboard-calendar-pending { margin-bottom:16px; }
.dashboard-calendar-pending summary { cursor:pointer; font-weight:750; color:#4e3c74; padding:12px 14px; border-radius:14px; border:1px solid #dfd5ee; background:linear-gradient(120deg,#f1eafb,#fff); box-shadow:0 3px 0 #e8e0f1; }
.dashboard-calendar-pending summary span { margin-left:8px; padding:3px 8px; border-radius:8px; background:#e3d9f4; }
.dashboard-calendar-pending-list { display:grid; gap:8px; padding-top:12px; }
.dashboard-calendar-pending .has-concern { border-left:4px solid #b54554; }
.dashboard-calendar-clear { font-size:13px; color:var(--tx-3); }
.dashboard-week-day[hidden] { display:none; }
.dashboard-week-days.is-month { grid-template-columns:repeat(7,minmax(0,1fr)); overflow:visible; }
.dashboard-week-days.is-month .dashboard-week-day-button { min-height:108px; padding:10px; }
.dashboard-calendar-mobile-toggle { display:none; }
@media (min-width:701px) {
 #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overdue-priority,
 #dashboardTab:not(.is-mobile-worklist-open) .dashboard-metrics-grid { display:none; }
 #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overview-card { padding:0; border:0; box-shadow:none; background:none; min-height:0; }
 #dashboardTab:not(.is-mobile-worklist-open) .dashboard-assistant-hero { min-height:0; padding:0; }
 #dashboardTab:not(.is-mobile-worklist-open) .dashboard-assistant-copy h1 { color:var(--tx); }
 #dashboardTab:not(.is-mobile-worklist-open) .dashboard-assistant-copy p { color:var(--tx-3); }
}
@media (max-width:700px) {
 #dashboardTab .dashboard-calendar-mobile-toggle { display:block; margin:0 12px; }
 #dashboardTab.is-calendar-expanded .dashboard-week { display:block; }
 .dashboard-week-days.is-month { gap:4px; }
 .dashboard-week-days.is-month .dashboard-week-day-button { min-height:86px; padding:6px 3px; border-radius:9px; }
 .dashboard-week-days.is-month .dashboard-week-day-button strong { font-size:19px; }
 .dashboard-week-days.is-month .dashboard-week-day-button em { font-size:8px; }
 .dashboard-calendar-controls { gap:4px; }
 .dashboard-calendar-controls button { padding:8px 7px; font-size:12px; }
}

/* Loupe : une seule frise dans le même agenda. */
#dashboardTab #dashboardWeek { display:grid; }
#dashboardWeek #dashboardWeekDays[hidden], #dashboardWeek .dashboard-planning-frame[hidden] { display:none!important; }
#dashboardWeek.is-now .dashboard-calendar-period button:disabled { opacity: .4; cursor: default; }
#dashboardTab #dashboardWeek.is-now .dashboard-planning-frame { display:block; margin:0; width:100%; min-height:0; height:auto; padding:14px; border:1px solid #75649c; border-radius:20px; background:linear-gradient(135deg,#403660,#75639e); box-shadow:0 4px 0 #352a54, 0 14px 30px #40366020; }
#dashboardWeek .appointment-timeline-heading { display:none!important; }
.patient-context-work { color:#8a5526; font-weight:750; background:#fff1da; border-radius:8px; padding:4px 7px; }
#dashboardTab #dashboardWeek #livePatientNavigator { display:grid; grid-template-columns:36px minmax(0,1fr) 36px; height:auto; min-height:0; overflow:visible; gap:8px; }
#dashboardTab #dashboardWeek #livePatientRibbonViewport { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; height:auto; overflow:visible; gap:10px; }
#dashboardTab #dashboardWeek #livePatientRibbonViewport>.patient-context-card { display:grid; min-width:0; width:100%; height:auto; min-height:145px; padding:16px; border:1px solid #a99ac855; border-radius:16px; background:linear-gradient(140deg,#594c7d,#493d69); box-shadow:0 3px 0 #332648; }
#dashboardTab #dashboardWeek #livePatientRibbonViewport>.patient-context-current { border-color:#c8b7f5; background:linear-gradient(140deg,#7860b0,#5b438e); box-shadow:0 4px 0 #39265f, inset 0 1px 0 #ffffff35; }
#dashboardTab #dashboardWeek .live-patient-copy strong { color:#fff!important; font-size:15px; white-space:normal; }
#dashboardTab #dashboardWeek .live-patient-copy>span { color:#e4dbf6!important; }
#dashboardTab #dashboardWeek .patient-context-period { color:#ece5ff!important; }
#dashboardTab #dashboardWeek #livePatientNowBtn { display:none!important; }
#dashboardTab #dashboardWeek .patient-context-card:hover { border-color:#e2d5ff; }
#dashboardTab #dashboardWeek .patient-context-detail,#dashboardTab #dashboardWeek .patient-context-metrics { display:none; }
#dashboardTab #dashboardWeek .live-patient-ribbon-side { position:static; transform:none; align-self:center; width:34px; }
#dashboardTab #dashboardWeek #livePatientNowBtn { position:static; transform:none; grid-column:1/-1; }
#dashboardTab .dashboard-calendar-mobile-toggle { display:none!important; }
@media(max-width:700px) {
 #dashboardTab #dashboardWeek #livePatientNavigator { grid-template-columns:1fr 1fr; }
 #dashboardTab #dashboardWeek #livePatientRibbonViewport { grid-column:1/-1; grid-template-columns:1fr; }
 #dashboardTab #dashboardWeek #livePatientRibbonViewport>.patient-context-card { min-height:100px; }
 #dashboardTab #dashboardWeek .live-patient-ribbon-side { width:100%; grid-row:2; }
 #dashboardTab #dashboardWeek { margin:0; }
}

/* Accueil : organiser sur ordinateur, accompagner les séances sur téléphone. */
@media (min-width:701px) {
 body[data-main-tab="dashboard"] .main-content { overflow-y:auto; }
 #dashboardTab:not(.is-mobile-worklist-open) { height:auto; min-height:100%; display:block; overflow:visible; }
 #dashboardTab .dashboard-planning-frame { display:none; }
}
@media (max-width:700px) {
 body[data-main-tab="dashboard"] .main-content { overflow-y:auto; padding-bottom:calc(82px + env(safe-area-inset-bottom)); }
 #dashboardTab:not(.is-mobile-worklist-open) { height:auto; min-height:100%; display:flex; flex-direction:column; gap:12px; overflow:visible; }
 #dashboardTab .dashboard-week { display:none; }
 #dashboardTab:not(.is-mobile-worklist-open) .dashboard-clinical-cockpit { display:block; flex:none; min-height:0; overflow:visible; }
 #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overdue-priority { display:none; }
 #dashboardTab:not(.is-mobile-worklist-open) .dashboard-overview-card { min-height:0; height:auto; padding:12px; }
 #dashboardTab:not(.is-mobile-worklist-open) .dashboard-assistant-hero { min-height:0; padding:0 0 10px; }
 #dashboardTab:not(.is-mobile-worklist-open) .dashboard-metrics-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
 #dashboardTab:not(.is-mobile-worklist-open) .metric-card { min-height:76px; padding:10px 8px; }
 #dashboardTab:not(.is-mobile-worklist-open) .metric-card h2 { font-size:23px; }
 #dashboardTab .dashboard-planning-frame { display:block; flex:none; height:auto; min-height:0; overflow:visible; padding:12px; }
 #dashboardTab .appointment-timeline-heading { display:flex; padding-bottom:8px; }
 #dashboardTab #livePatientNavigator { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto auto; height:auto; min-height:0; overflow:visible; gap:10px; }
 #dashboardTab #livePatientRibbonViewport { grid-column:1/-1; grid-row:1; display:flex; flex-direction:column; gap:10px; height:auto; min-height:0; width:100%; overflow:visible; scroll-snap-type:none; }
 #dashboardTab #livePatientRibbonViewport>.patient-context-card { display:grid; flex:none; width:100%; min-width:0; height:auto; min-height:100px; padding:13px 16px; grid-template-columns:8px minmax(0,1fr); border:1px solid #ded7ee; border-radius:18px; background:linear-gradient(130deg,#fff,#f7f4fc); box-shadow:0 3px 0 #e5deef,0 5px 14px #4936650a; }
 #dashboardTab #livePatientRibbonViewport>.patient-context-current { min-height:112px; border-color:#9583db; background:linear-gradient(125deg,#f0ebff,#fff); box-shadow:0 3px 0 #b8a9e1,0 8px 20px #55408012; }
 #dashboardTab .patient-context-card .live-patient-copy { display:grid; grid-template-rows:auto; gap:4px; }
 #dashboardTab .patient-context-previous .live-patient-copy::before { content:'Précédent'; color:#807391; font-size:10px; }
 #dashboardTab .patient-context-next .live-patient-copy::before { content:'Suivant'; color:#807391; font-size:10px; }
 #dashboardTab .patient-context-card .live-patient-copy strong { font-size:16px; line-height:1.3; color:#352d50!important; }
 #dashboardTab .patient-context-card .live-patient-copy>span { color:#716586!important; }
 #dashboardTab .patient-context-card:disabled { opacity:1; }
 #dashboardTab .patient-context-card:disabled .live-patient-copy strong { color:#8b8397!important; }
 #dashboardTab .patient-context-card .patient-context-period { display:none; }
 #dashboardTab .patient-context-card .patient-context-detail,#dashboardTab .patient-context-card .patient-context-metrics,#dashboardTab .patient-context-card .live-patient-time { display:none; }
 #dashboardTab .patient-context-card .patient-context-live-status { display:flex; font-size:12px!important; white-space:normal; }
 #dashboardTab .patient-context-card .patient-context-live-status.hidden { display:none; }
 #dashboardTab .patient-context-card .patient-context-live-status::before { display:none; }
 #dashboardTab .patient-context-card .live-patient-indicator { display:block; align-self:center; width:5px; height:5px; border-radius:50%; background:#c4bdd2; box-shadow:none; animation:none; }
 #dashboardTab .patient-context-card[data-session-active="true"] .live-patient-indicator { background:#239980; }
 #dashboardTab .patient-context-card[data-session-active="true"][data-state="autonomy"] .live-patient-indicator { background:#558fc5; }
 #dashboardTab .live-patient-ribbon-side { position:static; transform:none; width:100%; min-height:36px; grid-row:2; }
 #dashboardTab #livePatientNowBtn { grid-column:1/-1; position:static; transform:none; }
}
/* Assessment chapters: shared fields, explicit overview, no motion on controls. */
.assessment-chapters > .assessment-chapter-hub { order: 1; }
.assessment-chapters > .assessment-chapter-heading { order: 1; }
.assessment-chapters > .assessment-chapter-safety { order: 2; }
.assessment-chapters > .knee-assessment-form { order: 3; }
.assessment-chapters > .assessment-chapter-footer { order: 10; }
.assessment-chapters .assessment-progress-hybrid,
.assessment-chapters .assessment-step-actions,
.assessment-chapters > .knee-assessment-header { display: none !important; }
.assessment-chapters.assessment-chapter-home > .knee-assessment-form,
.assessment-chapters.assessment-chapter-home > .assessment-tools-toggle,
.assessment-chapters.assessment-chapter-home > .initial-assessment-questionnaires,
.assessment-chapters.assessment-chapter-home > .measurement-module,
.assessment-chapters.assessment-chapter-home > .clinical-links-panel,
.assessment-chapters.assessment-chapter-home > .assessment-summary { display: none !important; }
.assessment-chapters:not([data-assessment-chapter="exam"]) > .assessment-tools-toggle,
.assessment-chapters:not([data-assessment-chapter="exam"]) > .initial-assessment-questionnaires,
.assessment-chapters:not([data-assessment-chapter="exam"]) > .measurement-module,
.assessment-chapters:not([data-assessment-chapter="exam"]) > .clinical-links-panel { display: none !important; }
.assessment-chapters.assessment-summary-first > .assessment-chapter-hub,
.assessment-chapters.assessment-summary-first > .assessment-chapter-heading,
.assessment-chapters.assessment-summary-first > .assessment-chapter-footer { display: none !important; }
.assessment-chapter-hub { padding: 20px 0; }
.assessment-chapter-hub-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.assessment-chapter-hub-heading h3 { margin: 0; font-size: 25px; color: var(--text); }
.assessment-chapter-hub-heading > span { color: var(--muted); font-size: 13px; }
.assessment-chapter-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 24px; }
.assessment-chapter-card { display: flex; align-items: center; gap: 16px; min-width: 0; min-height: 160px; padding: 24px; text-align: left; border: 1px solid #dcd4f0; border-radius: 22px; color: #443667; background: linear-gradient(145deg, #fff, #f7f3fc); box-shadow: 0 4px 0 #e4ddf0, 0 12px 26px #46306a09; font: inherit; cursor: pointer; transition: background-color .15s, box-shadow .15s; }
.assessment-chapter-card:hover { border-color: #9b86d8; box-shadow: 0 4px 0 #d6caed, 0 12px 28px #46306a12; }
.assessment-chapter-card:active { box-shadow: inset 0 2px 5px #46306a16; }
.assessment-chapter-card:focus-visible { outline: 3px solid #7660da; outline-offset: 4px; }
.assessment-chapter-card.is-next { border-color: #9983dd; background: linear-gradient(145deg, #f9f7ff, #ede6ff); }
.assessment-chapter-number { display: grid; place-items: center; flex-shrink: 0; width: 40px; height: 40px; border-radius: 14px; color: #fff; background: linear-gradient(145deg, #8165e7, #5943b9); box-shadow: 0 3px 0 #48369b; font-weight: 800; }
.assessment-chapter-copy { display: grid; flex: 1; gap: 8px; min-width: 0; }
.assessment-chapter-copy strong { font-size: 18px; }
.assessment-chapter-copy small { font-size: 13px; line-height: 1.5; color: #786b8d; }
.assessment-chapter-state { width: fit-content; font-size: 12px; font-weight: 700; color: #6d52b3; }
.assessment-chapter-state.is-complete { color: #177c69; }
.assessment-chapter-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin: 18px 0; }
.assessment-chapter-heading h4 { margin: 0; font-size: 23px; }
.assessment-chapter-safety { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 18px; background: #fff5e9; border: 1px solid #edd5b5; border-radius: 16px; }
.assessment-chapter-footer { display: flex; justify-content: space-between; gap: 12px; padding: 22px 0; border-top: 1px solid #e4deee; }
@media (max-width: 600px) {
  .assessment-chapter-grid { grid-template-columns: 1fr; gap: 14px; }
  .assessment-chapter-card { min-height: 124px; padding: 18px; gap: 14px; }
  .assessment-chapter-hub-heading { align-items: flex-start; flex-direction: column; gap: 6px; }
  .assessment-chapter-footer { flex-direction: column-reverse; }
  .assessment-chapter-footer button { width: 100%; }
}

.assessment-template-field-omitted { display: none !important; }
/* La loupe du jour est un surlignage dans la liste, pas une seconde frise. */
#dashboardWeek .dashboard-week-appointment.is-focus-previous,
#dashboardWeek .dashboard-week-appointment.is-focus-next {
  background: linear-gradient(120deg, #f2edfc, #f9f6ff);
  border-color: #d7c9ed;
  box-shadow: 0 3px 0 #e6ddf2;
}
#dashboardWeek .dashboard-week-appointment.is-focus-current {
  background: linear-gradient(120deg, #e2d7f7, #f0e8ff);
  border-color: #a78aca;
  box-shadow: inset 4px 0 0 #8061bc, 0 3px 0 #cfc0e8;
}
#dashboardWeek .dashboard-week-appointment:is(.is-focus-current,.is-focus-previous,.is-focus-next) strong { color: #42305f; }
#dashboardWeek .agenda-autonomy-status::before { content: ''; display: inline-block; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: #218572; }
.assessment-chapter-model-label { margin: -8px 0 20px; color: #786b8d; font-size: 13px; }
#assessmentTemplatesModal.is-editing-template .assessment-templates-list,
#assessmentTemplatesModal.is-editing-template .assessment-template-toolbar { display: none; }
#assessmentTemplatesModal .assessment-templates-modal-content { width: min(780px, calc(100vw - 24px)); }
#assessmentTemplatesModal .detail-header { position: static; }
#assessmentTemplatesModal .template-base-fields label { flex-direction: row; text-align: left; }
#assessmentTemplatesModal .template-base-fields label input { width: 20px; height: 20px; min-height: 20px; padding: 0; margin: 0; }
#assessmentTemplatesModal .template-base-fields label small { flex: 0 0 auto; }
.template-chapter-tabs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.template-chapter-tabs button { display: flex; align-items: center; gap: 10px; min-height: 64px; padding: 14px; border-radius: 16px; border: 1px solid #d8cdef; background: linear-gradient(140deg,#fff,#f5f0ff); color: #514071; font: inherit; font-weight: 700; text-align: left; box-shadow: 0 3px 0 #e2d8f2; }
.template-chapter-tabs button[aria-pressed="true"] { background: linear-gradient(140deg,#7b61df,#5841b9); border-color: #644dcc; color: white; box-shadow: 0 3px 0 #483495; }
.template-chapter-tabs button span { font-size: 12px; opacity: .8; }
.template-chapter-tabs button:focus-visible { outline: 3px solid #9985dd; outline-offset: 3px; }
.template-base-fields { padding: 18px; border: 1px solid #e3ddef; border-radius: 18px; background: #faf8fd; }
.template-base-fields summary { font-weight: 700; cursor: pointer; }
.template-base-fields label { display: flex; align-items: center; gap: 10px; padding: 12px 0; border-bottom: 1px solid #ece7f3; }
.template-base-fields label input { width: 20px; height: 20px; margin: 0; flex: 0 0 20px; accent-color: #6950c5; }
.template-base-fields label span { flex: 1; }
.template-base-fields small { display: block; font-size: 12px; color: #7f728e; }
.template-base-fields details > small { margin-top: 14px; }
.template-block-editor[hidden] { display: none !important; }

/* Only the current summary controls the single dashboard list. */
#dashboardTab .dashboard-metrics-grid,
#dashboardTab #dashboardTaskFilters { display:none!important; }
#dashboardTab:not(.is-mobile-worklist-open) #dashboardDetail { display:none!important; }
#dashboardTab .dashboard-workspace-header .dashboard-overview-card { grid-column:1; }
#dashboardTab .dashboard-workspace-header .agenda-booking-actions { grid-column:2; grid-row:1; justify-content:flex-end; margin:0; }
#dashboardTab .dashboard-workspace-header #dashboardWeekDaySummary { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
#dashboardTab .dashboard-workspace-header .dashboard-day-counter { min-width:0; margin:0; cursor:pointer; }
#dashboardTab .dashboard-workspace-header .dashboard-day-counter span { overflow-wrap:anywhere; }
@media(max-width:600px) {
  #dashboardTab .dashboard-workspace-header .dashboard-overview-card { grid-column:1/-1; }
  #dashboardTab .dashboard-workspace-header .agenda-booking-actions { grid-column:1/-1; grid-row:2; }
  #dashboardTab .dashboard-workspace-header .dashboard-date-navigation { grid-row:3; }
  #dashboardTab .dashboard-workspace-header #dashboardWeekDaySummary { grid-row:4; }
  #dashboardTab .dashboard-workspace-header .dashboard-summary-scope { grid-row:5; }
  #dashboardTab .dashboard-workspace-header #dashboardWeekDaySummary { gap:9px; }
  #dashboardTab .dashboard-workspace-header .dashboard-day-counter { padding:14px 8px; }
}

/* One agenda: the former grid remains in code for compatibility, not navigation. */
#planningTabBtn, #mobileNavPlanning { display: none !important; }
.agenda-booking-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0 20px; }
.dashboard-workspace-header { padding:28px; border:1px solid #d3c4ee; border-radius:28px; background:radial-gradient(ellipse at top right,#faf7ff 0%,transparent 65%),linear-gradient(125deg,#d5c5ee,#e9dff7 65%,#ddd0f1); color:#322547; margin-bottom:24px; box-shadow:0 4px 0 #c7b5e1,0 16px 32px #5140830d; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:22px 18px; }
.dashboard-summary-scope { grid-column:1/-1; grid-row:4; margin:0; font-size:12px; color:#61516f; }
.dashboard-workspace-header .dashboard-calendar-period button { background:#ffffffee; color:#51409a; border-color:#fff; }
#dashboardTab .dashboard-workspace-header .dashboard-overview-card { display:block!important; padding:0!important; background:none!important; border:0!important; box-shadow:none!important; min-height:0!important; }
#dashboardTab .dashboard-workspace-header #dashboardGreetingTitle { color:#38284f; font-size:clamp(26px,3vw,38px)!important; padding:0; letter-spacing:-.035em; }
#dashboardTab .dashboard-workspace-header .dashboard-compact-hero { padding:0; background:none; box-shadow:none; border:0; }
#dashboardTab .dashboard-workspace-header .dashboard-week-range { color:#483260; font-size:clamp(19px,2.2vw,26px); text-align:left; font-weight:750; }
#dashboardTab .dashboard-workspace-header .dashboard-date-navigation { grid-column:1/-1; grid-row:2; display:flex; flex-direction:row; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; width:100%; border-top:1px solid #b9a4d450; padding-top:20px; }
.dashboard-workspace-header .agenda-booking-actions { grid-column:2; grid-row:1; justify-content:flex-end; align-items:center; margin:0; }
.dashboard-workspace-header #agendaBookBtn { background:linear-gradient(135deg,#8165db,#654abd); color:white; border:1px solid #7153c3; box-shadow:0 4px 0 #513791,inset 0 1px 0 #ffffff55; }
.dashboard-workspace-header .dashboard-face-switch button { background:#ffffff1c; color:white; border-color:#ffffff75; box-shadow:none; }
.dashboard-workspace-header .dashboard-face-switch button[aria-pressed="true"] { background:white; color:#51409a; }
.dashboard-workspace-header #dashboardWeekDaySummary { grid-column:1/-1; grid-row:3; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; margin:0; gap:12px; }
.dashboard-workspace-header .dashboard-day-counter { color:#493364; background:linear-gradient(150deg,#fff,#faf7ff); border-color:#ffffff; box-shadow:0 3px 0 #cbbce0; }
.dashboard-workspace-header .dashboard-day-counter[aria-pressed="true"] { background:linear-gradient(150deg,#fff,#f4edff); border-color:#967ac7; box-shadow:inset 0 0 0 1px #967ac7,0 3px 0 #c1addd; }
.dashboard-workspace-header .dashboard-day-counter.is-empty { color:#736582; background:#f8f5fc; }
.dashboard-list-toolbar { padding:0 0 16px; justify-content:flex-end; }
.dashboard-list-toolbar button { background:#fff; color:#60478a; font-size:13px; padding:10px 15px; }
.dashboard-list-toolbar button[data-home-face] { background:#fff; color:#60478a; box-shadow:0 2px 0 #e3d9ef; }
.dashboard-list-toolbar button[aria-pressed="true"] { background:#eee5fa; color:#493066; border-color:#9578bd; }
.dashboard-workspace-header .dashboard-day-counter.has-concern { color:#742237; background:#fff0f3; }
.agenda-settings-menu { position:relative; font-size:13px; }
.agenda-settings-menu summary { cursor:pointer; padding:12px; }
.agenda-settings-menu[open] button { position:absolute; top:100%; right:0; min-width:210px; z-index:5; background:#fff; color:#51409a; box-shadow:0 8px 24px #30205433; }
.dashboard-unified-work-group { margin:24px 0; padding-top:16px; border-top:1px solid #e1d9ef; display:grid; gap:10px; }
.dashboard-unified-work-group h4 { margin:0 0 6px; }
.assessment-task-progress { display:flex; flex-direction:column; gap:6px; width:100%; max-width:320px; margin:10px 0 2px; }
.assessment-task-progress-track { display:block; height:6px; width:100%; border-radius:8px; background:#e6def5; overflow:hidden; }
.assessment-task-progress-track > span { display:block; height:100%; background:#7956c7; border-radius:inherit; }
.assessment-task-progress > small { color:#675386; font-size:12px; line-height:1.4; }
#assessmentChapterHub > .assessment-task-progress { margin:0 0 20px; max-width:100%; }
@media(max-width:600px) { .dashboard-workspace-header { padding:20px 14px; border-radius:22px; gap:18px 10px; } #dashboardTab .dashboard-workspace-header #dashboardGreetingTitle { font-size:26px!important; } .dashboard-workspace-header #agendaBookBtn { font-size:12px; padding:12px; } #dashboardTab .dashboard-workspace-header .dashboard-date-navigation { align-items:flex-start; } .dashboard-workspace-header .dashboard-day-counter strong { font-size:26px; } .dashboard-workspace-header #dashboardWeekDaySummary { gap:8px; } }
.agenda-appointment-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.agenda-appointment-row .dashboard-week-appointment { width: 100%; }
.agenda-edit-booking { color: var(--primary); background: #f1edf9; border: 1px solid #ded4f0; border-radius: 12px; padding: 12px; font: inherit; font-size: 12px; cursor: pointer; }
.agenda-appointment-menu { position:relative; align-self:center; }
.agenda-appointment-menu > summary { list-style:none; width:44px; height:44px; display:grid; place-items:center; cursor:pointer; color:#5941a2; font-size:26px; border-radius:14px; background:#fff; border:1px solid #e4deee; }
.agenda-appointment-menu > summary::-webkit-details-marker { display:none; }
.agenda-appointment-menu[open] { z-index:5; }
.agenda-appointment-menu > div { position:absolute; right:0; top:48px; width:220px; padding:8px; border:1px solid #ded5ed; border-radius:16px; background:#fff; box-shadow:0 12px 30px #33245822; }
.agenda-appointment-menu .agenda-edit-booking { width:100%; margin:0; background:#fff; border:0; text-align:left; }
.agenda-appointment-row.is-completed .dashboard-week-appointment { background: #f8f8fb; box-shadow: none; border-color: #e5e3ed; }
.agenda-appointment-row.is-completed .dashboard-week-appointment-status em { color: var(--tx-3); }
#bookingRepeatFields { border: 1px solid #ded4f0; border-radius: 14px; padding: 14px; }
#bookingRepeatFields p { font-size: 12px; color: var(--tx-3); }
@media (max-width: 600px) {
  .agenda-appointment-row { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .agenda-edit-booking { justify-self: end; margin: 4px 0 10px; }
}
#assessmentTemplatePreview > section { padding: 18px; border: 1px solid #e3ddef; border-radius: 18px; margin: 12px 0; }
@media (max-width: 600px) {
  .template-chapter-tabs button { font-size: 13px; padding: 12px; }
  .template-base-fields label { flex-wrap: wrap; }
  .template-base-fields label small { margin-left: 30px; }
}

/* Patientèle : noms au premier plan, repères compacts sur une surface blanche. */
.walk-run-module { margin:16px 0; padding:20px; border:1px solid #dfd6ed; border-radius:20px; background:#fff; color:#32263f; }
.walk-run-module > summary { display:flex; justify-content:space-between; gap:16px; cursor:pointer; color:#6641a0; }
.walk-run-module h3 { margin-top:0; }
.walk-run-module p,.walk-run-module small { font-size:13px; line-height:1.5; }
.walk-run-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
.walk-run-module label { display:flex; flex-direction:column; gap:6px; margin:10px 0; font-size:13px; }
.walk-run-module input,.walk-run-module select,.walk-run-module textarea { padding:10px; border:1px solid #dcd4e8; border-radius:10px; background:#fff; color:#30233e; font:inherit; min-width:0; }
.walk-run-module button { padding:12px 18px; min-height:44px; border:1px solid #d8cde9; border-radius:12px; background:#f1ebfa; color:#56308f; cursor:pointer; font:inherit; }
.walk-run-module button:disabled { opacity:.5; cursor:default; }
.walk-run-warning { border-left:3px solid #aa803e; padding:10px 14px; background:#fff9ed; }
.walk-run-clock { background:linear-gradient(120deg,#ece2fb,#faf7ff); border-radius:20px; display:flex; align-items:center; flex-direction:column; padding:24px; gap:12px; margin:16px 0; }
.walk-run-clock strong { font-size:30px; color:#593596; }
.walk-run-clock > span { font-size:56px; font-variant-numeric:tabular-nums; color:#30203f; }
.walk-run-actions { display:flex; flex-wrap:wrap; gap:10px; }
.walk-run-actions [data-finish] { background:#fff; border-color:#8b759e; }
.walk-run-history > details { padding:14px 0; border-top:1px solid #e4ddec; }
.walk-run-history summary { cursor:pointer; font-size:14px; }
.walk-run-timeline { display:flex; flex-wrap:wrap; gap:3px; }
.walk-run-timeline span { min-width:55px; padding:8px; font-size:11px; background:#eee5fa; border-radius:6px; }
.walk-run-timeline .is-run { background:#6543a0; color:#fff; }
.walk-run-timeline .is-pause { background:#ececef; color:#514d59; }
@media(max-width:600px) { .walk-run-module { padding:14px; } .walk-run-module > summary { flex-direction:column; gap:6px; } .walk-run-clock > span { font-size:48px; } }
#patientContinuityPanel { width:100%; min-width:0; grid-column:1/-1; padding:0 20px 12px; }
.patient-continuity { margin-top:10px; color:#554766; font-size:12px; }
.patient-continuity > summary { cursor:pointer; display:flex; flex-wrap:wrap; gap:8px 18px; }
.patient-continuity > summary span:last-child { color:#6947ab; text-decoration:underline; }
.patient-continuity form { background:#fff; border:1px solid #e2dbea; border-radius:16px; padding:18px; margin-top:12px; max-width:780px; }
.patient-continuity form > p { line-height:1.5; }
.continuity-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.patient-continuity label { display:flex; flex-direction:column; gap:6px; margin:8px 0; font-size:12px; }
.patient-continuity input,.patient-continuity select,.patient-continuity textarea { width:100%; min-width:0; padding:10px; border:1px solid #d9d1e5; border-radius:9px; background:#fff; color:#30263c; font:inherit; }
.patient-continuity textarea { min-height:62px; resize:vertical; }
.patient-continuity fieldset { border:1px solid #e3ddeb; border-radius:12px; margin:16px 0; padding:12px; }
.continuity-shared { background:#fff; border:1px solid #e3ddeb; border-radius:14px; padding:16px; margin-top:14px; font-size:13px; }
@media(max-width:600px) { .continuity-fields { grid-template-columns:1fr; } .patient-continuity form { padding:12px; } }
.agenda-free-slot { width:100%; padding:14px 18px; background:#fff; border:1px dashed #cfc3e3; border-radius:14px; text-align:left; color:#7a6a90; font:inherit; font-size:13px; cursor:pointer; }
.agenda-free-slot.is-drop-target { background:#e8ddfc; border:2px solid #7751bb; color:#412475; }
.dashboard-week-appointment.is-dragging { opacity:.5; }
.dashboard-week-appointment.is-movable { cursor:grab; -webkit-touch-callout:none; user-select:none; -webkit-user-select:none; }
.dashboard-week-appointment.agenda-drag-ghost { position:fixed; z-index:10000; margin:0; pointer-events:none; opacity:.96; background:#fff; border:2px solid #7751bb; box-shadow:0 16px 40px #39235455; transition:none; cursor:grabbing; }
.agenda-free-slot[hidden] { display:none !important; }
.dashboard-week-appointment-time small { display:block; font-size:11px; font-weight:500; opacity:.75; }
.dashboard-week-appointment.is-drop-target { outline:2px solid #7751bb; background:#eee5ff; }
#patientTab .patient-summary-card { min-height:80px; padding:12px 0 18px; }
#patientTab .app-section-header-status { background:#fff; border:1px solid #e6dff2; border-radius:18px; padding:12px 20px; color:#51446c; }
#patientTab .app-section-header-status strong { font-size:28px; line-height:1.15; color:#49318d; }
#patientTab #patientCapacity { display:grid; grid-template-columns:minmax(180px,1fr) auto auto; gap:10px 28px; align-items:center; padding:18px 22px; margin:0 0 18px; background:linear-gradient(110deg,#f2edf9,#fff 75%); border:1px solid #e5deef; box-shadow:none; border-radius:20px; }
.capacity-compact-heading h2 { margin:0; font-size:18px; color:#302641; }
.capacity-compact-heading p { margin:5px 0 0; color:#716780; font-size:12px; }
.waiting-criteria { border:1px solid #dcd0ed; border-radius:16px; padding:16px; display:grid; gap:12px; background:#faf8ff; }
.waiting-days { display:flex; flex-wrap:wrap; gap:12px; }
.waiting-days label { display:flex!important; align-items:center; gap:4px; }
.waiting-days input, .waiting-domain-row input { width:auto!important; }
.waiting-domain-form { display:grid; gap:12px; margin-top:16px; }
.waiting-domain-row { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:10px; background:#faf8ff; border-radius:12px; }
.waiting-domain-row > span { flex:1 1 160px; font-weight:600; }
.waiting-domain-row label { display:flex; gap:6px; align-items:center; font-size:13px; }
.waiting-proposal { display:grid; gap:5px; text-align:left; padding:16px 20px; margin:4px 0 10px; border:1px solid #a18ad4; border-left:5px solid #7552bd; border-radius:16px; background:linear-gradient(115deg,#fff,#eee6fc); color:#48316c; box-shadow:0 3px 0 #d9cbed,0 8px 20px #57379c12; cursor:pointer; }
.waiting-proposal strong { font-size:17px; }
.waiting-proposal:hover { background:#e9defa; }
.waiting-proposal:focus-visible { outline:3px solid #7751bb; outline-offset:3px; }
.waiting-proposal:active { transform:translateY(1px); box-shadow:0 1px 0 #d9cbed; }
.waiting-domains-shortcut { justify-self:end; font-size:12px; margin-bottom:8px; }
#patientCapacity .capacity-waiting-list { border-color:#b5a0dc; background:linear-gradient(125deg,#fff,#e9defa); color:#51358a; box-shadow:0 3px 0 #d9cbed; font-weight:700; }
.capacity-admission-summary { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 20px; border:1px solid #e5deef; border-radius:18px; background:linear-gradient(120deg,#fff,#faf7ff); }
.capacity-admission-count { display:grid; gap:4px; color:#504266; }
.capacity-admission-count strong { font-size:34px; line-height:1.15; color:#57379c; }
.capacity-admission-count strong.capacity-unknown { font-size:24px; }
.capacity-admission-count span { font-size:14px; }
.capacity-admission-load { display:grid; gap:4px; text-align:right; color:#716780; font-size:12px; }
.capacity-admission-load strong { font-size:22px; color:#51378e; }
.capacity-admission-load.is-overloaded strong, .capacity-admission-load.is-overloaded small { color:#a13636; }
@media(max-width:480px) {
  .capacity-admission-summary { align-items:flex-start; flex-direction:column; gap:16px; padding:16px; }
  .capacity-admission-load { text-align:left; display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; }
}
.capacity-compact-count { display:flex; align-items:baseline; gap:8px; color:#504266; }
.capacity-compact-count strong { font-size:30px; color:#57379c; }
.capacity-compact-count strong.capacity-unknown { font-size:17px; }
.capacity-tools { grid-column:1/-1; display:flex; justify-content:flex-end; gap:6px; position:relative; }
.capacity-waiting-list { margin-right:auto; min-width:0; white-space:normal; }
.capacity-waiting-list.is-empty { color:#746780; background:#faf8fd; box-shadow:none; }
.capacity-tools summary, .capacity-settings-shortcut { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid #ded3ee; border-radius:14px; color:#583886; background:linear-gradient(145deg,#fff,#f0e9fa); box-shadow:0 2px 0 #ded2ed; cursor:pointer; font-size:21px; }
.capacity-tools summary { list-style:none; }
.capacity-tools summary::-webkit-details-marker { display:none; }
.capacity-tools summary:hover, .capacity-settings-shortcut:hover { background:#ece0fa; }
.capacity-tools summary:focus-visible, .capacity-settings-shortcut:focus-visible { outline:3px solid #8462bd; outline-offset:3px; }
.capacity-help-content { position:absolute; right:0; bottom:52px; width:min(360px,calc(100vw - 64px)); padding:16px; background:#fff; border:1px solid #d8c8ec; border-radius:16px; box-shadow:0 8px 24px #49315c24; z-index:5; font-size:13px; line-height:1.5; color:#473955; }
.capacity-help-content p { margin:0 0 8px; }
.capacity-help-content p:last-child { margin:0; }
.settings-search { display:grid; gap:8px; max-width:580px; margin:0 0 20px; font-weight:650; color:#4a355e; }
.settings-search input { width:100%; min-height:48px; padding:12px 16px; border:1px solid #d7c9e8; border-radius:16px; background:#fff; font:inherit; }
#kineSettingsView > [hidden], #settingsContextBack[hidden], #settingsSearchStatus[hidden] { display:none!important; }
#settingsContextBack { margin-bottom:16px; }
.capacity-compact-count span { font-size:13px; }
.capacity-explanation { grid-column:1/-1; font-size:12px; color:#6f647d; }
#patientTab #patientCapacity .capacity-explanation { margin:0; padding:0; border:0; background:none; }
.capacity-explanation summary { cursor:pointer; width:fit-content; }
.capacity-explanation p { max-width:850px; line-height:1.5; }
.capacity-load { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.capacity-load > div { background:#fff; border:1px solid #e5deef; border-radius:14px; padding:12px 16px; display:grid; gap:3px; }
.capacity-load strong { font-size:25px; color:#51378e; }
.capacity-load span { font-size:13px; color:#40334f; }
.capacity-load small { font-size:12px; color:#716780; }
.capacity-note { grid-column:1/-1; margin:0; font-size:13px; color:#655773; line-height:1.5; }
.capacity-followup { background:#fff; }
.follow-up-assessments-page-open #patientContinuityPanel { display:none; }
@media(max-width:600px) {
  #patientTab #patientCapacity .capacity-compact-heading { grid-column:1/-1; }
  #patientTab #patientCapacity { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .capacity-load > div { padding:10px; }
}
#patientTab .patient-list-surface { background:transparent!important; padding:0!important; border:0!important; box-shadow:none!important; }
#patientTableBody { gap:8px; }
#patientTableBody .clinical-patient-row:not(.clinical-patient-row-archived) { display:grid; grid-template-columns:34px minmax(160px,1fr) minmax(0,1.2fr) 20px; gap:14px; min-height:82px; padding:13px 18px!important; background:#fff!important; border:1px solid #e7e3ee!important; border-radius:16px; box-shadow:0 2px 4px #2b1b4610!important; }
#patientTableBody .clinical-patient-main { gap:3px; }
#patientTableBody .clinical-patient-main strong { font-size:16px; color:#29213b; }
#patientTableBody .clinical-patient-main > span { font-size:12px; line-height:1.35; color:#746b81; }
#patientTableBody .clinical-patient-care-link { font-size:10px; line-height:1.3; color:#80768b; }
#patientTableBody .clinical-patient-arrow { grid-column:4; grid-row:1; }
#patientTableBody .directory-patient-facts { grid-column:3; grid-row:1; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 18px; width:auto; padding:0; }
#patientTableBody .directory-patient-fact { flex:0 1 180px; padding:0; background:none; border-radius:0; gap:3px; text-align:right; }
#patientTableBody .directory-patient-fact small { font-size:10px; color:#81778e; }
#patientTableBody .directory-patient-fact > span { font-size:12px; line-height:1.35; color:#48365e; }
#patientTableBody .clinical-patient-row:hover { border-color:#b6a2dc!important; }
@media(max-width:600px) {
  .agenda-appointment-row { grid-template-columns:minmax(0,1fr) 44px; gap:6px; }
  #patientTab #patientCapacity { grid-template-columns:1fr auto auto; padding:14px; gap:10px 14px; }
  .capacity-compact-heading h2 { font-size:15px; }
  .capacity-compact-count { flex-direction:column; gap:0; }
  .capacity-compact-count strong { font-size:26px; }
  #patientTableBody .clinical-patient-row:not(.clinical-patient-row-archived) { grid-template-columns:30px minmax(0,1fr) 18px; gap:8px 10px; padding:12px!important; }
  #patientTableBody .clinical-patient-arrow { grid-column:3; }
  #patientTableBody .directory-patient-facts { grid-column:2; grid-row:2; justify-content:flex-start; gap:6px 12px; }
  #patientTableBody .directory-patient-fact { flex:1 1 110px; text-align:left; }
  #patientTab .app-section-header-status { padding:10px; }
  #patientTab .app-section-header-status strong { font-size:22px; }
}

/* Task view: one header, compact filters and neutral action surfaces. */
#dashboardWeek.is-task-list #dashboardWeekDaySummary { display:grid; }
#dashboardTab #dashboardWorkspaceHeader {
  background:radial-gradient(ellipse at 92% 8%,#fff7edb8 0%,#fff7ed00 52%),radial-gradient(ellipse at 4% 0%,#c9b7f580 0%,#c9b7f500 62%),linear-gradient(125deg,#f0e7fc 0%,#f9f4ff 52%,#e4d9f7 100%);
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px 12px;
  padding:24px;
  border-color:#d9c8ef;
  box-shadow:inset 0 1px 0 #ffffffed,0 3px 0 #cfbce7,0 12px 28px #65508a14;
}
#dashboardTab #dashboardWorkspaceHeader .dashboard-overview-card { grid-row:1; grid-column:1/-1; }
#dashboardTab #dashboardWorkspaceHeader #dashboardFaceSwitch { display:flex; grid-row:2; grid-column:1; justify-content:flex-start; gap:4px; padding:4px; margin:0; background:#ffffffb8; border-radius:16px; width:fit-content; box-shadow:inset 0 1px 0 #fff,0 2px 6px #63418c0c; }
#dashboardTab #dashboardWorkspaceHeader #dashboardFaceSwitch button { min-height:44px; min-width:90px; margin:0; padding:10px 16px; border:0; border-radius:12px; background:transparent; color:#655477; box-shadow:none; font-weight:700; }
#dashboardTab #dashboardWorkspaceHeader #dashboardFaceSwitch button[aria-pressed="true"] { background:linear-gradient(135deg,#9477e4 0%,#7957ce 45%,#6545b4 100%); color:#fff; box-shadow:inset 0 1px 0 #cbb8ff,0 2px 0 #51358f,0 4px 9px #6845a426; }
#dashboardTab #dashboardWorkspaceHeader .agenda-booking-actions { grid-row:2; grid-column:2; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-date-navigation { grid-row:3; grid-column:1/-1; margin:0; }
#dashboardTab #dashboardWorkspaceHeader #dashboardWeekDaySummary { grid-row:4; grid-column:1/-1; gap:12px; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-summary-scope { grid-row:5; grid-column:1/-1; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-day-counter { background:linear-gradient(145deg,#fff 55%,#faf7ff); border:1px solid #fff; box-shadow:inset 0 1px 0 #fff,0 2px 0 #daceea,0 5px 12px #593d800c; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-day-counter[aria-pressed="true"] { background:linear-gradient(145deg,#fff,#eee3fc); border-color:#8967bd; box-shadow:inset 0 0 0 1px #a486d0,0 2px 0 #c1a8dd; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-day-counter:hover { border-color:#bca3de; }
#dashboardTab #dashboardWorkspaceHeader #dashboardFaceSwitch button:not([aria-pressed="true"]):hover { background:#f1e8fc; color:#4c3176; }
#dashboardTab #dashboardWorkspaceHeader #dashboardGreetingTitle { color:#432963; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-date-navigation { border-color:#cbb9df70; }
#dashboardTab #dashboardWeekDays[hidden] { display:none!important; }
@media(max-width:600px) {
  #dashboardTab #dashboardWorkspaceHeader { padding:18px 12px; gap:16px 8px; }
  #dashboardTab #dashboardWorkspaceHeader #dashboardFaceSwitch button { min-width:0; padding:10px 12px; font-size:13px; }
  #dashboardTab #dashboardWorkspaceHeader #agendaBookBtn { min-height:44px; padding:10px; font-size:12px; }
  #dashboardTab #dashboardWorkspaceHeader #dashboardWeekDaySummary { gap:8px; }
}
.dashboard-task-filters { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 20px; }
.dashboard-task-filters[hidden] { display:none; }
.dashboard-task-filters button { display:flex; align-items:center; gap:10px; min-height:44px; padding:9px 16px; border:1px solid #ded8ee; border-radius:14px; background:#fff; color:#443563; font:inherit; font-weight:650; cursor:pointer; }
.dashboard-task-filters button span { min-width:24px; padding:2px 6px; border-radius:8px; background:#f1edf9; color:#5840a4; font-variant-numeric:tabular-nums; }
.dashboard-task-filters button[aria-pressed="true"] { background:#ede6fa; border-color:#8972c9; color:#41277a; }
.dashboard-task-filters button:focus-visible { outline:3px solid #8060c5; outline-offset:3px; }
#dashboardWeek.is-task-list .dashboard-week-clinical-action,
#dashboardWeek.is-task-list .dashboard-week-appointment { background:#fff; color:#29243d; border:1px solid #e2dcec; box-shadow:0 2px 7px #35265308; }
#dashboardWeek.is-task-list .dashboard-week-appointment em { color:#593ca3; }
#dashboardWeek.is-task-list .dashboard-week-clinical-action.has-concern { border-left:4px solid #b54554; }
#dashboardWeek.is-task-list .dashboard-unified-work-group { padding:14px 0; background:transparent; box-shadow:none; }
@media(max-width:600px) {
  .dashboard-task-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .dashboard-task-filters button { justify-content:space-between; padding:9px 12px; }
}

/* The date defines the dashboard; view and creation controls belong to its list. */
#dashboardTab #dashboardWorkspaceHeader .dashboard-date-navigation { grid-row:2; border:0; padding:0; }
#dashboardTab #dashboardWorkspaceHeader #dashboardWeekDaySummary { grid-row:3; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-summary-scope { grid-row:4; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-overview-card #dashboardWeekRange { margin:8px 0 0; font-size:clamp(18px,2vw,24px); }
#dashboardTab #dashboardListActions { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:20px 0 16px; }
#dashboardTab #dashboardListActions .agenda-booking-actions { margin:0; }
#dashboardTab #dashboardListActions #dashboardFaceSwitch { display:flex; gap:4px; padding:4px; margin:0; border-radius:16px; background:#eee6f7; }
#dashboardTab #dashboardListActions #dashboardFaceSwitch button { min-height:44px; margin:0; padding:10px 16px; border:0; border-radius:12px; color:#614b78; background:transparent; font-weight:700; }
#dashboardTab #dashboardListActions #dashboardFaceSwitch button[aria-pressed="true"] { background:linear-gradient(135deg,#9477e4,#6545b4); color:#fff; box-shadow:0 2px 0 #51358f,inset 0 1px 0 #cbb8ff; }
#dashboardListActions #agendaBookBtn { min-height:44px; white-space:nowrap; }
.free-task-dialog { width:min(480px,calc(100vw - 32px)); max-height:85dvh; overflow:auto; padding:26px; border:1px solid #d9c8ef; border-radius:24px; background:#fcfaff; color:#39274e; box-shadow:0 20px 60px #29174344; }
.free-task-dialog::backdrop { background:#21133266; }
.free-task-dialog form,.free-task-dialog label { display:grid; gap:10px; }
.free-task-dialog form { gap:18px; }
.free-task-dialog h2,.free-task-dialog p { margin:0; }
.free-task-dialog input,.free-task-dialog select { width:100%; min-height:44px; box-sizing:border-box; border:1px solid #cfc1df; border-radius:10px; padding:10px; background:white; color:#30263c; font:inherit; }
.free-task-buttons { display:flex; justify-content:flex-end; gap:12px; }
.free-task-local,.free-task-dialog label small { font-size:12px; color:#746481; }
.free-task-error { color:#a13247; }
.free-task-row { display:flex; gap:14px; align-items:center; padding:16px; margin:10px 0; background:white; border:1px solid #e0d7ec; border-radius:16px; box-shadow:0 3px 8px #43345f08; }
.free-task-row>input { width:22px; height:22px; accent-color:#7957ce; flex-shrink:0; }
.free-task-row>div { display:grid; gap:5px; flex:1; min-width:0; overflow-wrap:anywhere; }
.free-task-row small,.free-task-empty { color:#766783; }
.dashboard-free-tasks details summary { cursor:pointer; padding:12px 0; }
@media(max-width:600px) {
  #dashboardTab #dashboardListActions { gap:8px; }
  #dashboardTab #dashboardListActions #dashboardFaceSwitch button { padding:10px; font-size:13px; }
  #dashboardListActions #agendaBookBtn { padding:10px; font-size:13px; }
  .free-task-row { gap:10px; padding:12px; }
  .free-task-row button { padding:8px; }
}
/* Cabinet waiting requests: concise list, details only when opened. */
.waiting-list-dialog { width: min(600px, calc(100vw - 32px)); max-height: 85dvh; overflow: auto; }
.waiting-list-dialog textarea { min-height: 70px; width: 100%; border: 1px solid #dcd3ef; border-radius: 12px; padding: 12px; font: inherit; }
.waiting-list-slot { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.free-task-row.waiting-list-row { grid-template-columns: minmax(0, 1fr) auto; }
.waiting-list-row strong, .waiting-list-row small { overflow-wrap: anywhere; }
.dashboard-list-actions { flex-wrap: wrap; }

/* Main destinations of Mon cabinet, shared by desktop and phone. */
.cabinet-tab .cabinet-mobile-view-tabs {
  grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; gap:12px;
  padding:0; margin:8px 0 28px; border:0; background:transparent;
}
.cabinet-tab .cabinet-mobile-view-tabs button {
  display:flex; flex-direction:column; align-items:flex-start; justify-content:center;
  gap:7px; min-height:88px; padding:18px 22px; text-align:left;
  border:1px solid #dcd2ed; border-radius:18px;
  background:linear-gradient(135deg,#fff,#f5f0fc); color:#594876;
  box-shadow:0 3px 0 #e3daef,0 8px 20px #49347108;
  transition:background .15s,transform .15s,box-shadow .15s;
}
.cabinet-tab .cabinet-mobile-view-tabs button strong { font-size:20px; line-height:1.2; }
.cabinet-tab .cabinet-mobile-view-tabs button small { font-size:12px; font-weight:500; line-height:1.35; }
.cabinet-tab .cabinet-mobile-view-tabs button:hover { background:#ece2fa; }
.cabinet-tab .cabinet-mobile-view-tabs button.is-active {
  color:#fff; border-color:#7254bb; background:linear-gradient(130deg,#8065d9,#6245b4);
  box-shadow:0 4px 0 #4e358f,0 10px 24px #6746b327;
}
.cabinet-tab .cabinet-mobile-view-tabs button:active { transform:translateY(2px); }
.cabinet-tab .cabinet-mobile-view-tabs button:focus-visible { outline:3px solid #a78bd7; outline-offset:4px; }
@media(max-width:600px) {
  .cabinet-tab .cabinet-mobile-view-tabs { gap:8px; margin-bottom:22px; }
  .cabinet-tab .cabinet-mobile-view-tabs button { align-items:center; text-align:center; padding:14px 6px; min-height:86px; border-radius:15px; }
  .cabinet-tab .cabinet-mobile-view-tabs button strong { font-size:16px; }
  .cabinet-tab .cabinet-mobile-view-tabs button small { font-size:11px; }
}
.assessment-resource-suggestions {
  margin-bottom: 18px;
  padding: 16px;
  border: 1px solid #dcd2f1;
  border-radius: 20px;
  background: linear-gradient(120deg, #f0e9fa, #fcfaff);
  color: #35294f;
}
.clinical-notebook-bookmarks { position:fixed; right:0; top:32%; display:flex; flex-direction:column; gap:6px; z-index:12001; }
.clinical-notebook-bookmarks[hidden] { display:none; }
#backendSaveStatus[hidden],#patientAppPrototypeSyncStatus[hidden] { display:none !important; }
#patientContinuityClinicalPlan { display:none; }
.assessment-chapters > #patientContinuityClinicalPlan { order:3; }
.initial-assessment-page-open #kneeAssessmentForm:has([data-assessment-step-panel="5"]:not(.hidden)) + #patientContinuityClinicalPlan { display:block; }
#patientDetailModal:not(.session-preparation-page-open):not(:has(.initial-assessment-page-open)):not(:has(.follow-up-assessments-page-open #followUpAssessmentForm:not(.hidden))) > .clinical-notebook-bookmarks { display:none; }
.patient-overview.dashboard-workspace-header { display:block; }
#patientTab .patient-overview .patient-summary-card { padding:0; margin:0 0 14px; border:0; background:none; box-shadow:none; }
#patientTab .patient-overview h1 { font-size:clamp(26px,3vw,38px); letter-spacing:-.035em; }
#patientTab .patient-overview .section-kicker,#patientTab .patient-overview .app-section-subtitle { display:none; }
#patientTab .patient-overview #patientCapacity { position:relative; padding:0; margin:0; border:0; border-radius:0; background:none; box-shadow:none; }
#patientTab .capacity-compact-heading { margin-bottom:14px; }
#patientTab .capacity-admission-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:0; border:0; background:none; }
#patientTab .capacity-admission-summary > button { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; justify-self:stretch; width:100%; max-width:none; gap:6px; min-width:0; min-height:112px; padding:18px; border:1px solid #fff; border-radius:18px; color:#493364; background:linear-gradient(150deg,#fff,#faf7ff); box-shadow:0 3px 0 #cbbce0; text-align:left; font:inherit; cursor:pointer; }
#patientTab .capacity-admission-summary > button strong { font-size:32px; line-height:1.15; color:inherit; }
#patientTab .capacity-admission-summary > button span { font-size:14px; font-weight:650; line-height:1.35; }
#patientTab .capacity-admission-summary > button:hover { border-color:#967ac7; background:#fff; }
#patientTab .capacity-admission-summary > button:focus-visible { outline:3px solid #a18ace; outline-offset:3px; }
#patientTab .capacity-admission-summary > button.is-overloaded { color:#a13636; border-color:#e9bac5; background:#fff4f6; }
#patientTab .capacity-admission-summary > button.is-empty { color:#736582; }

/* Espace patient : même famille Synapse, bleu clinique distinct du kiné. */
#patientAppTab, .app-shell.patient-mode, #sessionModeOverlay.is-patient-session {
  --clr-p-50:#eef3fb; --clr-p-100:#dbe6f5; --clr-p-200:#b8cdea;
  --clr-p-300:#8facdb; --clr-p-400:#6689c6; --clr-p-500:#4568ad;
  --clr-p-600:#385898; --clr-p-700:#30497d; --clr-p-800:#283c66; --clr-p-900:#202f50;
  --primary:#4568ad; --primary-dk:#30497d; --primary-rgb:69,104,173;
}
#patientAppTab .patient-home-primary { background:linear-gradient(135deg,#4568ad,#6689c6); box-shadow:0 10px 28px rgba(69,104,173,.16); }
#sessionModeOverlay.is-patient-session .session-accompaniment { background:#eef3fb; color:#30497d; border-radius:16px; padding:14px; }
#patientTab .capacity-tools { display:flex; justify-content:flex-end; align-items:center; gap:6px; margin-top:12px; }
#patientTab .capacity-tools .capacity-settings-shortcut,#patientTab .capacity-tools .capacity-help > summary { width:28px; height:28px; min-height:28px; padding:4px; border-radius:9px; font-size:15px; box-shadow:none; }
#patientTab .capacity-tools .capacity-settings-shortcut .nav-icon { width:15px; height:15px; }
#patientTab .patient-directory-toolbar { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px; margin:24px 0 14px; }
#patientTab .patient-directory-toolbar .search-panel { flex:1; margin:0; max-width:540px; }
#patientTab .patient-directory-display { margin:0; }
#patientTab .patient-list-card > .card-header { justify-content:center; padding:0 0 18px; border:0; }
@media(max-width:600px) {
  #patientTab .capacity-admission-summary { gap:8px; }
  #patientTab .capacity-admission-summary > button { padding:13px 9px; min-height:108px; border-radius:14px; }
  #patientTab .capacity-admission-summary > button strong { font-size:26px; }
  #patientTab .capacity-admission-summary > button span { font-size:12px; }
  #patientTab .patient-directory-toolbar { flex-direction:row; }
  #patientTab .patient-directory-toolbar .search-panel { flex-basis:100%; width:100%; }
  #patientTab .patient-directory-toolbar #addPatientBtn { align-self:auto; }
  #patientTab .patient-directory-filter { display:flex; flex-wrap:wrap; justify-content:center; }
}
.clinical-notebook-bookmarks button { min-height:44px; width:92px; padding:12px 8px; border:1px solid #cbbbdf; border-right:0; border-radius:14px 0 0 14px; background:linear-gradient(135deg,#fff,#ece2f7); color:#50347d; font:inherit; font-size:12px; font-weight:750; box-shadow:-3px 4px 10px #43215b12; cursor:pointer; transition:transform .16s,background .16s; }
.clinical-notebook-bookmarks button:hover,.clinical-notebook-bookmarks button[aria-expanded="true"] { background:#7653bd; color:#fff; }
.clinical-notebook-bookmarks button svg { display:none; width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
#patientDetailModal:has(> .clinical-notebook-bookmarks:not([hidden])) > .detail-modal-content,
.session-mode-shell:has(> .clinical-notebook-bookmarks:not([hidden])) { padding-right:104px; }
.clinical-notebook-bookmarks button:focus-visible { outline:3px solid #a68ad5; outline-offset:2px; }
.session-mode-open #patientDetailModal .clinical-notebook-bookmarks { display:none; }
.clinical-notebook-tabs { display:flex; gap:6px; margin:8px 0 18px; padding:5px; border-radius:16px; background:#eee7f6; }
.clinical-notebook-tabs button { flex:1; min-height:44px; border:0; border-radius:12px; background:transparent; color:#5d4878; font:inherit; cursor:pointer; }
.clinical-notebook-tabs button[aria-pressed="true"] { background:#fff; box-shadow:0 3px 8px #54357616; font-weight:750; }
body #clinicalTestPickerModal.clinical-test-drawer { right:102px; width:min(460px,calc(100vw - 126px)); }
.clinical-notebook-tool,.clinical-notebook-memo,.clinical-recorded-tool { padding:14px; margin:10px 0; border:1px solid #e0d7ea; border-radius:16px; background:#fff; box-shadow:0 3px 8px #4b2f6b08; }
.clinical-notebook-tool header,.clinical-recorded-tool header { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.clinical-notebook-tool header button { font-size:23px; color:#7954b5; border:0; background:none; min-width:44px; min-height:44px; cursor:pointer; }
.clinical-notebook-tool small,.clinical-recorded-tool small,.clinical-notebook-memo small { display:block; color:#766386; font-size:12px; }
.clinical-notebook-tool p,.clinical-notebook-memo p { font-size:14px; line-height:1.5; white-space:pre-wrap; }
.clinical-notebook-tool footer { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.clinical-notebook-tool details summary,.clinical-recorded-tool details summary { padding:10px 0; color:#614387; cursor:pointer; }
.clinical-notebook-outline { margin:10px 0; border:1px solid #e0d7ea; border-radius:14px; background:#fff; overflow:hidden; }
.clinical-notebook-outline summary { padding:14px; font-weight:750; cursor:pointer; }
.clinical-notebook-outline button { display:flex; justify-content:space-between; gap:8px; width:100%; padding:12px 16px; min-height:44px; border:0; border-top:1px solid #eee7f4; background:transparent; text-align:left; color:#4e3b65; font:inherit; cursor:pointer; }
.clinical-notebook-outline button:hover { background:#f4effa; }
#clinicalNotebookMemoForm label,#clinicalNotebookMeasurementEditor label { display:grid; gap:6px; margin:12px 0; }
#clinicalNotebookMemoForm textarea,#clinicalNotebookMemoForm select { width:100%; padding:12px; border:1px solid #d8cbe8; border-radius:12px; font:inherit; }
#clinicalNotebookMeasurementEditor .measurement-grid { display:grid; grid-template-columns:1fr; }
#clinicalNotebookMeasurementEditor .measurement-form { display:block !important; }
#clinicalNotebookExistingWork { margin-top:16px; }
#clinicalNotebookExistingWork summary { padding:12px 0; cursor:pointer; color:#6b5586; }
#clinicalNotebookExistingWork .assessment-quick-module-footer > button { display:none; }
#assessmentRecordedTools:empty { display:none; }
#assessmentTestSearchBtn { display:none; }
body .initial-assessment-workspace .measurement-module { display:none !important; }
@media(max-width:640px) {
  .clinical-notebook-bookmarks button { width:44px; min-height:48px; padding:10px; display:grid; place-items:center; }
  .clinical-notebook-bookmarks button svg { display:block; }
  .clinical-notebook-bookmarks button span { display:none; }
  #patientDetailModal:has(> .clinical-notebook-bookmarks:not([hidden])) > .detail-modal-content,
  .session-mode-shell:has(> .clinical-notebook-bookmarks:not([hidden])) { padding-right:60px; }
  body #clinicalTestPickerModal.clinical-test-drawer { inset:0; width:100%; z-index:12002; }
  body #clinicalTestPickerModal .clinical-test-picker-content { border-radius:0; padding-top:max(20px,env(safe-area-inset-top)); padding-bottom:max(20px,env(safe-area-inset-bottom)); }
}
@media(prefers-reduced-motion:reduce) { .clinical-notebook-bookmarks button { transition:none; } }
.assessment-resource-suggestions > header { display:flex; flex-wrap:wrap; gap:6px 18px; align-items:baseline; margin-bottom:12px; }
.assessment-resource-suggestions > header small { color:#655575; }
.assessment-resource-suggestion { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px; margin-top:8px; border-radius:14px; background:#fff; box-shadow:0 3px 9px #41256b0a; }
.assessment-resource-suggestion > div { min-width:0; }
.assessment-resource-suggestion p { margin:5px 0 0; font-size:.88rem; color:#655575; }
.assessment-resource-suggestion-actions { display:flex; flex-wrap:wrap; gap:8px; flex-shrink:0; }
.assessment-resource-suggestion button { min-height:44px; }
@media(max-width:640px) {
  .assessment-resource-suggestion { align-items:stretch; flex-direction:column; }
  .assessment-resource-suggestion-actions button { flex:1; }
}
@media(prefers-reduced-motion:reduce) {
  .cabinet-tab .cabinet-mobile-view-tabs button { transition:none; }
}

/* One matte overview surface for both destinations; the calendar is not a card. */
#dashboardTab #dashboardWeek {
  margin:0 0 16px;
  padding:0;
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
}
#dashboardTab #dashboardWorkspaceHeader.synapse-overview-panel,
#patientTab .patient-overview.synapse-overview-panel {
  box-sizing:border-box;
  width:100%;
  min-height:0;
  padding:28px;
  margin:0 0 24px;
  border:1px solid #d3c4ee;
  border-radius:28px;
  background:radial-gradient(ellipse at top right,#faf7ff 0%,transparent 65%),linear-gradient(125deg,#d5c5ee,#e9dff7 65%,#ddd0f1);
  box-shadow:0 4px 0 #c7b5e1,0 16px 32px #5140830d;
}
#dashboardTab #dashboardWorkspaceHeader #dashboardGreetingTitle,
#patientTab .patient-overview h1 {
  color:#292542;
  font-family:inherit;
  font-size:clamp(26px,3vw,38px)!important;
  font-weight:550;
  line-height:1.15;
  letter-spacing:-.035em;
}
#dashboardTab #dashboardWorkspaceHeader #dashboardGreetingTitle span,
#patientTab .patient-overview h1 span { color:#7055cf; font-weight:800; }
#dashboardTab #dashboardWorkspaceHeader,
#patientTab .patient-overview.synapse-overview-panel {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:80px 24px 112px minmax(40px,auto);
  align-content:start;
  gap:14px 18px;
}
#dashboardTab #dashboardWorkspaceHeader .dashboard-overview-card,
#dashboardTab #dashboardWorkspaceHeader .dashboard-compact-hero,
#dashboardTab #dashboardWorkspaceHeader .dashboard-assistant-copy,
#patientTab .patient-overview .patient-summary-card,
#patientTab .patient-overview .app-section-header-copy,
#patientTab .patient-overview #patientCapacity { display:contents!important; }
#dashboardTab #dashboardWorkspaceHeader #dashboardGreetingTitle,
#patientTab .patient-overview h1 { grid-row:1; grid-column:1; align-self:center; margin:0; width:auto; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-date-navigation,
#patientTab .patient-overview .app-section-header-status {
  grid-row:1;
  grid-column:2;
  align-self:center;
  justify-self:end;
  margin:0;
}
#dashboardTab #dashboardWorkspaceHeader .dashboard-date-navigation { width:auto; justify-content:flex-end; }
#dashboardTab #dashboardWorkspaceHeader #dashboardWeekRange,
#patientTab .patient-overview .capacity-compact-heading {
  grid-row:2;
  grid-column:1/-1;
  align-self:center;
  margin:0!important;
  padding:0;
  font-size:14px!important;
  line-height:24px;
  font-weight:500;
  color:#61516f;
}
#patientTab .patient-overview .capacity-compact-heading p { margin:0; font-size:14px; line-height:24px; }
#dashboardTab #dashboardWorkspaceHeader #dashboardWeekDaySummary,
#patientTab .patient-overview .capacity-admission-summary { grid-row:3; grid-column:1/-1; margin:0; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-summary-scope,
#patientTab .patient-overview .capacity-tools { grid-row:4; grid-column:1/-1; align-self:center; margin:0; }
#dashboardTab #dashboardWorkspaceHeader #dashboardWeekDaySummary,
#patientTab .capacity-admission-summary { gap:12px; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-day-counter,
#patientTab .capacity-admission-summary > button {
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:6px;
  min-height:112px;
  padding:18px;
  border:1px solid #fff;
  border-radius:18px;
  color:#493364;
  background:linear-gradient(150deg,#fff,#faf7ff);
  box-shadow:0 3px 0 #cbbce0;
  text-align:left;
}
#dashboardTab #dashboardWorkspaceHeader .dashboard-day-counter strong,
#patientTab .capacity-admission-summary > button strong { font-size:32px; line-height:1.15; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-day-counter span,
#patientTab .capacity-admission-summary > button span { font-size:14px; font-weight:650; line-height:1.35; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-day-counter:hover,
#patientTab .capacity-admission-summary > button:hover { border-color:#967ac7; background:#fff; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-day-counter[aria-pressed="true"] {
  border-color:#967ac7;
  background:#faf7ff;
  box-shadow:0 3px 0 #cbbce0;
}
#dashboardTab #dashboardWorkspaceHeader .dashboard-day-counter:focus-visible,
#patientTab .capacity-admission-summary > button:focus-visible { outline:3px solid #a18ace; outline-offset:3px; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-day-counter.has-concern,
#patientTab .capacity-admission-summary > button.is-overloaded { color:#a13636; border-color:#e9bac5; background:#fff4f6; }
#dashboardTab #dashboardWorkspaceHeader .dashboard-day-counter.is-empty,
#patientTab .capacity-admission-summary > button.is-empty { color:#736582; }
.agenda-appointment-menu > div { display:grid; gap:6px; padding:10px; width:250px; }
.agenda-appointment-menu > div > button,
.agenda-appointment-menu > div > .agenda-edit-booking {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  width:100%;
  min-height:44px;
  margin:0;
  padding:12px 14px;
  border:1px solid #e2d9ef;
  border-radius:12px;
  background:linear-gradient(145deg,#fff,#f5f0fc);
  color:#523783;
  box-shadow:0 2px 0 #e3d8ee;
  text-align:left;
  font:inherit;
  font-size:13px;
  font-weight:650;
  cursor:pointer;
}
.agenda-appointment-menu > div > button:hover { background:#eee5fa; border-color:#aa90ce; }
.agenda-appointment-menu > div > button:active { transform:translateY(1px); box-shadow:0 1px 0 #e3d8ee; }
.agenda-appointment-menu > div > button:focus-visible { outline:3px solid #a18ace; outline-offset:2px; }
.agenda-free-slot.is-unavailable { opacity:.4; cursor:not-allowed; }
@media(max-width:600px) {
  #dashboardTab #dashboardWorkspaceHeader.synapse-overview-panel,
  #patientTab .patient-overview.synapse-overview-panel {
    min-height:0;
    padding:20px 14px;
    border-radius:22px;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:minmax(44px,auto) 80px 24px 114px minmax(40px,auto);
    gap:12px;
  }
  #dashboardTab #dashboardWorkspaceHeader #dashboardGreetingTitle,
  #patientTab .patient-overview h1 { grid-column:1; }
  #dashboardTab #dashboardWorkspaceHeader .dashboard-date-navigation,
  #patientTab .patient-overview .app-section-header-status { grid-row:2; grid-column:1; justify-self:end; }
  #dashboardTab #dashboardWorkspaceHeader #dashboardWeekRange,
  #patientTab .patient-overview .capacity-compact-heading { grid-row:3; grid-column:1; }
  #dashboardTab #dashboardWorkspaceHeader #dashboardWeekDaySummary,
  #patientTab .patient-overview .capacity-admission-summary { grid-row:4; grid-column:1; }
  #dashboardTab #dashboardWorkspaceHeader .dashboard-summary-scope,
  #patientTab .patient-overview .capacity-tools { grid-row:5; grid-column:1; }
  #dashboardTab #dashboardWorkspaceHeader #dashboardWeekDaySummary,
  #patientTab .capacity-admission-summary { gap:8px; }
  #dashboardTab #dashboardWorkspaceHeader .dashboard-day-counter,
  #patientTab .capacity-admission-summary > button { min-height:114px; padding:13px 9px; border-radius:14px; }
  #dashboardTab #dashboardWorkspaceHeader .dashboard-day-counter strong,
  #patientTab .capacity-admission-summary > button strong { font-size:26px; }
  #dashboardTab #dashboardWorkspaceHeader .dashboard-day-counter span,
  #patientTab .capacity-admission-summary > button span { font-size:12px; }
}
/* A temporary scheduling conflict keeps every appointment independently usable. */
.agenda-conflict-group { min-width: 0; padding: 0; border: 0; background: transparent; }
.agenda-conflict-label { display: block; margin-bottom: 10px; color: #805323; font-size: .85rem; }
.agenda-conflict-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.agenda-conflict-columns .agenda-appointment-row { min-width: 0; }
.agenda-conflict-columns .agenda-appointment-row { position: relative; display: block; }
.agenda-conflict-columns .agenda-appointment-menu { position: absolute; right: 3px; top: 8px; }
.agenda-conflict-columns .dashboard-week-appointment { display: grid !important; grid-template-columns: 74px minmax(0, 1fr) !important; width: 100%; }
.agenda-conflict-columns .dashboard-week-appointment-main { min-width: 0; width: 100%; }
.agenda-conflict-columns .dashboard-week-appointment > span { position: static !important; min-width: 0; width: auto; text-align: left; }
.agenda-conflict-columns .dashboard-week-appointment-time { grid-area: 1 / 1 / 3 / 2 !important; }
.agenda-conflict-columns .dashboard-week-appointment-main { grid-area: 1 / 2 / 2 / 3 !important; }
.agenda-conflict-columns .dashboard-week-appointment-status { grid-area: 2 / 2 / 3 / 3 !important; }
.agenda-conflict-columns .dashboard-week-appointment-time { padding-right: 22px; }
.agenda-conflict-columns .dashboard-week-appointment-main strong { white-space: normal !important; text-overflow: clip !important; overflow: visible !important; }
.agenda-conflict-columns .dashboard-week-appointment { gap: 2px 8px; height: 80px; min-height: 80px; min-width: 0; padding: 10px 38px 10px 12px; border-color: #d2a772; }
.agenda-conflict-group.is-accepted .dashboard-week-appointment { border-color: var(--border-color, #ddd7ef); }
.agenda-conflict-columns .dashboard-week-appointment-status small { display: none; }
.agenda-conflict-columns .dashboard-week-appointment strong { overflow-wrap: anywhere; }
.planning-appointment.has-overlap { border-color: #d2a772; box-shadow: inset 0 0 0 1px #d2a772; }
@media (max-width: 600px) {
  .agenda-conflict-group { padding: 0; }
  .agenda-conflict-columns { gap: 8px; }
  .agenda-conflict-columns .dashboard-week-appointment { grid-template-columns: minmax(0, 1fr) !important; grid-template-rows: 26px 42px 20px; padding: 12px 10px; font-size: .8rem; height: 122px; min-height: 122px; }
  .agenda-conflict-columns .dashboard-week-appointment-time { grid-area: 1 / 1 / 2 / 2 !important; font-size: 11px; padding-right: 30px; }
  .agenda-conflict-columns .dashboard-week-appointment-time small { display: inline; margin-left: 4px; font-size: 9px; }
  .agenda-conflict-columns .dashboard-week-appointment-main { grid-area: 2 / 1 / 3 / 2 !important; }
  .agenda-conflict-columns .dashboard-week-appointment-main small { display: block; font-size: 10px; }
  .agenda-conflict-columns .dashboard-week-appointment-status { grid-area: 3 / 1 / 4 / 2 !important; font-size: 10px; }
  .agenda-conflict-columns .dashboard-week-appointment-status { text-align: left; }
}
#sessionModal.is-booking .modal-content { max-width: 900px; width: calc(100vw - 40px); }
#sessionModal.is-booking #sessionModalForm { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 20px; }
#sessionModal.is-booking #sessionModalForm > * { margin: 0; min-width: 0; }
#sessionModal.is-booking #sessionModalPatientPicker,
#sessionModal.is-booking #sessionPatientSuggestions,
#sessionModal.is-booking #bookingNewPatientFields,
#sessionModal.is-booking #sessionModalPatientError { grid-column: 1 / -1; order: 0; }
#sessionModal.is-booking #sessionModalDateField,
#sessionModal.is-booking #bookingTimeField { order: 1; }
#sessionModal.is-booking #sessionModalDateError { order: 2; grid-column: 1 / -1; }
#sessionModal.is-booking #sessionTypeSelector,
#sessionModal.is-booking #sessionVisitTypeSelector,
#sessionModal.is-booking #sessionAssessmentTargetGroup { order: 3; grid-column: 1 / -1; }
#sessionModal.is-booking #sessionTypeSelector { grid-column: 1; }
#sessionModal.is-booking #sessionVisitTypeSelector { grid-column: 2; }
#sessionModal.is-booking #sessionVisitTypeSelector .session-visit-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
#sessionModal.is-booking #sessionModalContextNote { display: none; }
#sessionModal.is-booking .modal-content { padding: 24px; }
#sessionModal.is-booking #sessionModalForm label { font-size: 12px; }
#sessionModal.is-booking #sessionModalForm { gap: 10px 20px; }
#sessionModal.is-booking #sessionTypeSelector,
#sessionModal.is-booking #sessionVisitTypeSelector,
#sessionModal.is-booking #bookingRepeatFields { padding: 0; }
#sessionModal.is-booking #sessionAppointmentSettings { padding: 10px; }
#sessionModal.is-booking #sessionDurationRecommendation,
#sessionModal.is-booking #bookingRepeatFields p { display: none; }
#sessionModal.is-booking #sessionSpecialtyField,
#sessionModal.is-booking #sessionDurationField { order: 4; }
#sessionModal.is-booking #sessionAppointmentSettings { order: 4; grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
#sessionModal.is-booking #sessionDurationRecommendation { grid-column: 1 / -1; margin: 0; font-size: 11px; }
#sessionModal.is-booking #bookingRepeatFields { order: 5; grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
#sessionModal.is-booking #bookingRepeatFields p { grid-column: 1 / -1; font-size: 11px; margin: 0; }
#sessionModal.is-booking #bookingNewPatientFields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
#sessionModal.is-booking #bookingNewPatientFields input { display: block; width: 100%; min-height: 42px; padding: 9px 12px; border: 1px solid var(--border); border-radius: 12px; background: #fff; font: inherit; }
#sessionModal.is-booking #sessionModalContextNote { grid-column: 1 / -1; }
#sessionModal.is-booking .modal-actions,
#sessionModal.is-booking #bookingCancelBtn { order: 6; grid-column: 1 / -1; }
#sessionModal.is-booking .modal-actions { padding-top: 14px; }
@media(max-width:600px) {
  #sessionModal.is-booking .modal-content { width: calc(100vw - 20px); padding: 18px; }
  #sessionModal.is-booking #sessionModalForm { gap: 12px; }
  #sessionModal.is-booking #sessionTypeSelector,
  #sessionModal.is-booking #sessionVisitTypeSelector { grid-column: 1 / -1; }
  #sessionModal.is-booking #sessionVisitTypeSelector .session-visit-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
}
/* Daily hours reuse the central settings form without a second dialog. */
.planning-hours-scope { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0; }
.planning-hours-scope label,.planning-hours-pairs label { display:grid;gap:6px;font-size:13px;min-width:0; }
.planning-hours-scope [hidden] {display:none!important;}
.planning-settings-section label.planning-hours-apply {display:flex;flex-direction:row;align-items:center;gap:10px;}
.planning-hours-apply input[type="checkbox"] {width:auto;margin:0;}
.planning-hours-week { display:grid;gap:8px;margin:16px 0; }
.planning-hours-week fieldset { border:1px solid var(--border-color,#ded9ed);border-radius:16px;padding:12px;display:flex;align-items:center;gap:16px;min-width:0;background:rgba(255,255,255,.65); }
.planning-hours-week fieldset[hidden] {display:none;}
.planning-hours-week legend {font-weight:600;font-size:14px;padding:0 6px;}
.planning-hours-toggle {display:flex;align-items:center;gap:8px;min-width:85px;}
.planning-hours-pairs {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;flex:1;min-width:0;}
.planning-hours-pairs>div {display:flex;align-items:center;gap:8px;min-width:0;}
.planning-hours-pairs input,.planning-hours-scope input,.planning-hours-scope select {box-sizing:border-box;width:100%;min-width:0;max-width:100%;}
.planning-hours-pairs label {flex:1;}
.planning-hours-pairs input[type="time"] {padding:8px!important;font-size:14px;}
.planning-hours-rule {display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 0;}
.planning-hours-rule>span {flex:1;}
.planning-hours-note {font-size:12px;color:var(--text-muted,#71677d);}
@media(max-width:600px) {
 .planning-hours-scope {grid-template-columns:1fr;}
 .planning-hours-week fieldset {display:block;}
 .planning-hours-pairs {grid-template-columns:1fr;margin-top:10px;}
 .planning-hours-pairs>div {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
 .planning-hours-pairs>div>span {display:none;}
 .planning-hours-pairs input[type="time"] {padding:6px!important;}
}

/* Nature uses a labelled symbol; specialty retains its separate colored edge. */
.appointment-nature-icon {display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex:0 0 26px;border-radius:9px;background:linear-gradient(145deg,#fff,#eee9ff);border:1px solid rgba(111,86,188,.18);box-shadow:0 2px 4px rgba(76,56,129,.08),inset 0 1px 0 rgba(255,255,255,.95);color:#6950b7;font-style:normal;line-height:1;}
.appointment-nature-icon svg {width:17px;height:17px;display:block;}
.appointment-nature-badge {display:inline-flex;align-items:center;gap:6px;border:0;padding:0;background:none;color:#665b7c;font-size:10px;font-weight:600;line-height:1.3;white-space:nowrap;flex-shrink:0;}
.appointment-nature-badge[data-appointment-nature="assessment-initial"] .appointment-nature-icon {color:#ae6552;background:linear-gradient(145deg,#fff,#fff0e8);border-color:rgba(174,101,82,.2);}
.appointment-nature-badge[data-appointment-nature="assessment-final"] .appointment-nature-icon {color:#43796e;background:linear-gradient(145deg,#fff,#e9f5ef);border-color:rgba(67,121,110,.2);}
.appointment-classification {display:flex;align-items:center;gap:8px;min-width:0;}
.appointment-specialty-label {color:var(--tx-3);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dashboard-week-appointment[style*="--appointment-color"] {border-left:4px solid var(--appointment-color);}
#sessionSpecialty {border-left:4px solid var(--appointment-color,var(--primary));}
.appointment-nature-badge.is-compact {padding:0 2px;border:0;background:none;vertical-align:middle;}
.appointment-nature-badge.is-compact>span {display:none;}
.appointment-nature-badge.is-compact .appointment-nature-icon {width:21px;height:21px;flex-basis:21px;border-radius:7px;}
.appointment-nature-badge.is-compact .appointment-nature-icon svg {width:14px;height:14px;}

/* One form, no extra shells around already labelled choices. */
#sessionModal.is-booking .session-type-options,
#sessionModal.is-booking .session-appointment-settings,
#sessionModal.is-booking #bookingRepeatFields {background:none;border:0;box-shadow:none;padding:0;}
#sessionModal.is-booking .session-type-options {gap:8px;}
#sessionModal.is-booking .session-type-options label {border:0;background:rgba(255,255,255,.45);border-radius:14px;box-shadow:none;}
#sessionModal.is-booking .session-type-options label:has(input:checked) {background:var(--primary-bg,#eee9fb);color:var(--primary-dk,#54418a);box-shadow:inset 0 0 0 1px rgba(var(--primary-rgb),.22),0 3px 8px rgba(60,42,100,.08);}
.synapse-select {position:relative;min-width:0;width:100%;}
.synapse-select-trigger {display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;padding:11px 14px;border:1px solid var(--border,#dfd9ec);border-radius:14px;background:var(--surface,#fff);color:var(--tx,#302b40);font:inherit;text-align:left;box-shadow:0 3px 10px rgba(59,42,92,.04);cursor:pointer;transition:background .15s,box-shadow .15s;}
.synapse-select-trigger::after {content:'⌄';color:var(--primary-dk,#65518c);font-size:17px;}
.synapse-select-trigger:hover:not(:disabled) {background:var(--primary-bg,#f4f0fa);}
.synapse-select-trigger:focus-visible,.synapse-select-option:focus-visible {outline:2px solid var(--primary);outline-offset:2px;}
.synapse-select-trigger:disabled {opacity:.55;cursor:not-allowed;box-shadow:none;}
#sessionSpecialty+.synapse-select .synapse-select-trigger {border-left:4px solid var(--appointment-color,var(--primary));}
.synapse-select-options {position:absolute;z-index:100;top:calc(100% + 6px);left:0;right:0;padding:6px;border:1px solid var(--border,#ded7ed);border-radius:16px;background:var(--surface,#fff);box-shadow:0 12px 32px rgba(49,31,79,.18);max-height:220px;overflow:auto;}
.synapse-select-options[hidden] {display:none!important;}
.synapse-select.opens-up .synapse-select-options {top:auto;bottom:calc(100% + 6px);}
.synapse-select-option {display:flex;align-items:center;justify-content:space-between;width:100%;min-height:42px;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--tx,#302b40);font:inherit;text-align:left;cursor:pointer;}
.synapse-select-option:hover,.synapse-select-option:focus-visible {background:var(--primary-bg,#f0eaf9);}
.synapse-select-option[aria-selected=true] {background:var(--primary-bg,#f0eaf9);color:var(--primary-dk,#54418a);font-weight:600;}
.synapse-select-option[aria-selected=true]::after {content:'✓';margin-left:8px;}
.synapse-select-option:disabled {opacity:.45;cursor:not-allowed;}
@media(prefers-reduced-motion:reduce){.synapse-select-trigger{transition:none;}}

#bookingRepeatOptions {min-width:0;display:grid;gap:12px;}
#bookingRepeatOptions[hidden],#bookingRepeatOptions [hidden] {display:none!important;}
#bookingRepeatDays,.booking-repeat-end {display:flex;flex-wrap:wrap;gap:8px;}
#bookingRepeatDays label,.booking-repeat-end label {display:flex;align-items:center;flex-direction:row;gap:6px;padding:6px 9px;border-radius:10px;background:rgba(255,255,255,.6);font-size:12px;}
#bookingRepeatDays label:has(input:checked),.booking-repeat-end label:has(input:checked) {background:var(--primary-bg);color:var(--primary-dk);}
#bookingRepeatDays input,.booking-repeat-end input {width:auto;margin:0;}
#sessionModal.is-booking #bookingRepeatPreview {display:block!important;font-size:12px;line-height:1.5;color:var(--tx-3);margin:0;}
#bookingRepeatPreview strong {color:var(--tx);font-weight:600;}
#bookingRepeatPreview summary {cursor:pointer;color:var(--primary-dk);}
:root { --session-part-gap: 14px; }
.session-preparation-page-open #clinicianWalkRun,
.session-preparation-page-open #patientContinuityPanel,
.session-preparation-page-open .capacity-followup { display:none; }
.session-quick-review > label { display:grid; gap:8px; margin:16px 0; }
.session-preparation-outline { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.session-preparation-outline button { text-align:left; box-shadow:none; }
.session-preparation-outline button[aria-pressed="true"] { background:#eee7fb; border-color:#aa95d2; }
.session-preparation-outline button span { display:block; font-size:.75rem; opacity:.7; }
.session-progressive-preparation .session-preparation-step-heading > span,
.session-progressive-preparation .session-preparation-step-heading small { display:none; }
.session-progressive-preparation .session-preparation-step-heading { margin-bottom:16px; }
.session-current-intent, .session-progressive-preparation .session-manual-care-entry > label { display:grid; gap:8px; }
.session-preparation-extra, .session-add-part { margin-top:16px; }
.session-preparation-next-action { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 18px; padding:16px 18px; border:1px solid rgba(var(--primary-rgb),.16); border-radius:20px; background:linear-gradient(120deg,rgba(var(--primary-rgb),.08),rgba(255,255,255,.72)); box-shadow:0 5px 16px rgba(var(--primary-rgb),.05); }
.session-preparation-next-action > div { display:grid; gap:5px; min-width:0; }
.session-preparation-next-action small { color:var(--tx-3); }
.session-preparation-next-action strong, .session-preparation-next-action p { overflow-wrap:anywhere; }
.session-preparation-next-action p { margin:2px 0 0; line-height:1.5; }
.session-preparation-next-action button { flex-shrink:0; min-height:44px; white-space:normal; }
@media(max-width:700px) { .session-preparation-next-action { flex-direction:column; align-items:stretch; padding:14px; gap:12px; } }
.clinical-goal-reuse article { padding:12px 0; border-bottom:1px solid rgba(var(--primary-rgb),.12); }
.clinical-goal-reuse article:last-of-type { border-bottom:0; }
.clinical-goal-reuse article small { color:var(--tx-3); }
.clinical-goal-reuse article p { margin:6px 0; white-space:normal; overflow-wrap:anywhere; }
.clinical-goal-reuse button { min-height:44px; text-align:left; white-space:normal; overflow-wrap:anywhere; }
.clinical-goal-reuse > summary { min-height:44px; display:flex; align-items:center; }
@media(max-width:700px) {
  .session-return-review-action .primary-btn, .session-return-review-action .secondary-btn,
  #assessmentFollowUpGoalsBtn { min-height:44px; }
}
.session-preparation-extra > summary, .session-add-part > summary, .dashboard-memos > summary { cursor:pointer; color:#69508f; font-weight:600; padding:10px 0; }
.session-add-part > div { display:flex; gap:8px; flex-wrap:wrap; padding:12px 0; }
.session-part-duration { display:flex; align-items:center; gap:8px; justify-content:flex-end; margin-bottom:16px; color:#766685; }
.session-part-duration input { width:76px; padding:8px; }
.session-part-budget { color:#766685; font-size:.85rem; }
.session-part-budget.is-over-budget { color:#b24445; }
.session-accompaniment { display:flex; gap:12px; align-items:center; justify-content:space-between; padding:12px 0; color:#655776; }
.session-accompaniment.is-autonomous { color:#466c68; }
.session-accompaniment strong { font-size:.85rem; }
.dashboard-memos { position:relative; margin-right:auto; }
.dashboard-memos[open] { width:100%; }
.dashboard-memos [data-personal-memos] { margin:12px 0; }

#dashboardWeek .dashboard-week-day > header { display:none; }
#dashboardWeek .dashboard-week-day { border-top:0; padding-top:0; }
#dashboardListActions { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:10px; border-bottom:1px solid rgba(105,80,143,.14); padding-bottom:12px; margin-bottom:12px; }
#dashboardListActions #dashboardChangeDay { grid-column:1; grid-row:1; justify-self:start; }
#dashboardListActions #dashboardChangeDay[hidden], #dashboardWeekDays[hidden], #dashboardFaceSwitch[hidden] { display:none!important; }
#dashboardListActions #dashboardMemos { grid-column:1; grid-row:1; margin:0; justify-self:start; }
#dashboardListActions #dashboardPastToggle { grid-column:2; grid-row:1; margin:0; }
#dashboardListActions #dashboardPlanningViewActions { grid-column:2; grid-row:1; display:flex; align-items:center; justify-content:center; gap:6px; flex-wrap:wrap; }
#dashboardListActions #dashboardPlanningViewActions[hidden] { display:none; }
#dashboardListActions #dashboardPlanningViewActions button { margin:0; }
#dashboardPastToggle[hidden], #dashboardChangeDay[hidden] { display:none!important; }
#dashboardListActions .agenda-booking-actions { grid-column:3; grid-row:1; margin:0; }
#dashboardListActions #agendaBookBtn { white-space:nowrap; }
.dashboard-past-toggle { margin:12px 0; }
#dashboardCalendarControls.is-day-navigation { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; gap:8px; align-items:center; }
#dashboardCalendarControls.is-day-navigation > .dashboard-calendar-period { grid-row:1; }
#dashboardCalendarControls.is-day-navigation > .dashboard-calendar-period:first-of-type { grid-column:1; }
#dashboardCalendarControls.is-day-navigation > .dashboard-calendar-period:last-of-type { grid-column:3; }
#dashboardTab #dashboardWorkspaceHeader #dashboardCalendarControls.is-day-navigation #dashboardWeekRange { grid-column:2; grid-row:1; margin:0; text-align:center; }
#dashboardCalendarControls.is-day-navigation .dashboard-calendar-segments { grid-column:1/-1; grid-row:2; justify-self:center; }
#dashboardCalendarControls #dashboardChangeDay { grid-column:1/-1; justify-self:center; }
#dashboardTab #dashboardWorkspaceHeader:has(.is-day-navigation) { grid-template-rows:minmax(100px,auto) auto auto; }
#dashboardTab #dashboardWorkspaceHeader:has(.is-day-navigation) #dashboardWeekDaySummary { grid-row:2; }
#dashboardTab #dashboardWorkspaceHeader:has(.is-day-navigation) .dashboard-summary-scope { grid-row:3; }
@media(max-width:600px) {
  #dashboardTab #dashboardListActions { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:6px; }
  #dashboardListActions #dashboardPastToggle { font-size:11px; padding:10px 5px; }
  #dashboardListActions #dashboardPlanningViewActions { flex-direction:column; align-items:stretch; }
  #dashboardListActions #dashboardPlanningViewActions button { font-size:11px; padding:10px 5px; }
  #dashboardTab #dashboardWorkspaceHeader #dashboardCalendarControls.is-day-navigation { width:100%; min-width:0; justify-self:stretch; box-sizing:border-box; }
  #dashboardTab #dashboardWorkspaceHeader #dashboardCalendarControls.is-day-navigation .dashboard-calendar-segments { grid-row:1; width:100%; box-sizing:border-box; justify-content:space-between; }
  #dashboardTab #dashboardWorkspaceHeader #dashboardCalendarControls.is-day-navigation > .dashboard-calendar-period { grid-row:2; }
  #dashboardTab #dashboardWorkspaceHeader #dashboardCalendarControls.is-day-navigation > .dashboard-calendar-period button { min-width:44px; min-height:44px; padding:8px; }
  #dashboardTab #dashboardWorkspaceHeader #dashboardCalendarControls.is-day-navigation > .dashboard-calendar-period:last-of-type { justify-self:end; }
  #dashboardTab #dashboardWorkspaceHeader #dashboardCalendarControls.is-day-navigation #dashboardWeekRange { grid-row:2; min-width:0; }
  #dashboardTab #dashboardWorkspaceHeader #dashboardCalendarControls.is-day-navigation #dashboardChangeDay { grid-row:3; }
  #dashboardTab #dashboardWorkspaceHeader:has(.is-day-navigation) { grid-template-rows:auto auto auto auto; }
  #dashboardTab #dashboardWorkspaceHeader:has(.is-day-navigation) #dashboardCalendarControls { grid-row:2; }
  #dashboardTab #dashboardWorkspaceHeader:has(.is-day-navigation) #dashboardWeekDaySummary { grid-row:3; }
  #dashboardTab #dashboardWorkspaceHeader:has(.is-day-navigation) .dashboard-summary-scope { grid-row:4; }
}
.dashboard-memos-dialog { width:min(560px,calc(100vw - 32px)); max-height:80vh; overflow:auto; border:1px solid #e4ddef; border-radius:24px; padding:24px; background:#fdfcff; box-shadow:0 24px 70px rgba(57,41,85,.2); }
.dashboard-memos-dialog::backdrop { background:rgba(36,28,52,.32); }
.dashboard-memos-dialog > header { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.dashboard-memos-dialog h3 { margin:0 auto 0 0; }
@media(max-width:600px) { #dashboardListActions { gap:6px; } #dashboardListActions button { padding:10px 8px; font-size:12px; } .dashboard-memos-dialog { padding:16px; } }
.session-progressive-preparation .session-manual-care-disclaimer { display:none; }
@media(max-width:640px) {
  .session-preparation-outline { flex-wrap:nowrap; overflow:auto; padding-bottom:8px; }
  .session-preparation-outline button { flex:0 0 auto; }
  .session-accompaniment { flex-wrap:wrap; }
  .session-accompaniment button { width:100%; }
  .session-part-duration { justify-content:flex-start; }
}
.exercise-intention-heading { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; }
.exercise-intention-info { position: relative; display: inline-block; font-size: .88rem; }
.exercise-intention-info > summary { display: grid; place-items: center; min-width: 36px; min-height: 36px; border-radius: 50%; color: var(--primary, #6654d8); cursor: pointer; list-style: none; }
.exercise-intention-info > summary::-webkit-details-marker { display: none; }
.exercise-intention-info > summary:hover, .exercise-intention-info[open] > summary { background: #eeebfa; }
.exercise-intention-info > summary:focus-visible { outline: 2px solid #6654d8; outline-offset: 2px; }
.exercise-intention-bubble { position: absolute; z-index: 20; left: 0; top: calc(100% + 6px); width: min(290px, 70vw); padding: 16px; background: #fff; color: #393449; border: 1px solid #e5def4; border-radius: 18px; box-shadow: 0 8px 24px #47336620; font-weight: 400; }
.exercise-intention-bubble p { margin: .25rem 0 .7rem; overflow-wrap: anywhere; }
.exercise-intention-bubble > strong { display: block; margin-top: .4rem; }

/* Patient : même socle Synapse, palette clinique et priorité à l’action. */
.app-shell.patient-mode { --bg:#f2f5fb; --surface-2:#eef3fb; --border:#dbe6f5; background:#f2f5fb; }
.app-shell.patient-mode .sidebar { background:linear-gradient(160deg,#4568ad,#6689c6); }
.app-shell.patient-mode .patient-area-nav { background:#dbe6f5; }
#patientAppTab > .patient-workspace { transform:none !important; animation:none !important; }
#patientAppTab .patient-app-header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:10px; padding:0 0 16px; }
#patientAppTab .patient-care-profile-header { grid-column:1; grid-row:1; width:100%; min-width:0; max-width:none; margin:0; }
#patientAppTab .patient-app-header-actions { grid-column:2; grid-row:1; justify-self:end; margin:0; }
#patientAppTab .patient-care-profile-select { width:fit-content; max-width:100%; margin:0; border:0; background:transparent; border-radius:12px; }
#patientAppTab .patient-care-profile-select summary { grid-template-columns:minmax(0,1fr) 20px; min-height:44px; padding:8px 4px; }
#patientAppTab .patient-care-profile-select summary:has(.patient-follow-up-notification-badge) { grid-template-columns:minmax(0,1fr) auto 20px; }
#patientAppTab .patient-care-profile-static { display:flex; align-items:center; gap:8px; min-height:44px; }
#patientAppTab .patient-care-profile-static strong { font-size:14px; overflow-wrap:anywhere; }
#patientAppTab .patient-care-profile-select summary > strong { font-size:14px; }
#patientAppTab .patient-account-profile-link { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:44px; padding:10px 12px; border:0; border-radius:12px; background:var(--surface-2); color:var(--primary); font-weight:600; cursor:pointer; }
#patientAppTab .patient-account-profile-link:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
#patientAppTab .patient-care-profile-select summary > strong { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#patientAppTab .patient-app-header-actions,#patientAppTab .patient-profile-context,#patientAppTab .patient-account-control { width:auto; flex:none; }
#patientAppTab .patient-account-control { display:flex; align-items:center; gap:6px; }
#patientAppTab .patient-identity-chip { display:grid; grid-template-columns:1fr; place-items:center; width:44px; height:44px; min-width:44px; min-height:44px; padding:0; flex:none; border-radius:50%; background:var(--primary); }
#patientAppTab .patient-identity-avatar { width:40px; height:40px; border-radius:50%; font-size:12px; }
#patientAppTab .patient-notifications-center > summary { min-width:44px; min-height:44px; }
.patient-follow-up-option-state { display:flex; align-items:center; gap:7px; }
.patient-follow-up-notification-badge { display:inline-grid; place-items:center; min-width:20px; height:20px; padding:0 5px; border-radius:50px; background:#4568ad; color:#fff; font-size:10px; font-weight:700; }
.patient-notification-follow-up { display:block; margin:5px 0; color:var(--primary); font-weight:600; }
@media(max-width:560px) {
  #patientAppTab .patient-app-header { gap:6px; }
  #patientAppTab .patient-care-profile-select summary { gap:6px; padding:7px 8px; }
  #patientAppTab .patient-care-profile-select summary > span { display:none; }
  #patientAppTab .patient-care-profile-select summary { grid-template-columns:minmax(0,1fr) 20px; }
  #patientAppTab .patient-care-profile-select summary:has(.patient-follow-up-notification-badge) { grid-template-columns:minmax(0,1fr) auto 20px; }
}
.patient-area-nav button { display:flex; align-items:center; justify-content:center; gap:8px; }
.patient-area-nav button svg { width:22px; height:22px; flex:0 0 22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.patient-area-nav button:focus-visible { outline:3px solid var(--primary); outline-offset:3px; }
#patientAppTab .patient-home-primary {
  border:1px solid #b8cdea; color:var(--tx); border-radius:26px;
  background:linear-gradient(120deg,#dbe6f5,#eef3fb); box-shadow:0 4px 0 #b8cdea55;
}
#patientAppTab .patient-home-primary > span { color:#385898; }
#patientAppTab .patient-home-primary p { color:var(--tx-2); }
#patientAppTab .patient-home-primary .primary-btn { background:#4568ad; color:#fff; min-height:48px; }
#patientAppTab .patient-home-glance-card { border-radius:22px; background:#fff; border-color:#dbe6f5; }
#patientAppTab .patient-home-welcome h2 { font-weight:var(--fw-sb); }
@media (max-width:900px) {
  /* Patient téléphone : les onglets et l’avatar remplacent le rail, même ouvert. */
  .app-shell.patient-mode > #appSidebar,
  .app-shell.patient-mode > #appSidebar.open { display:none !important; }
  .app-shell.patient-mode .patient-workspace .patient-area-nav {
    position:fixed; z-index:1000; left:12px; right:12px;
    bottom:calc(10px + env(safe-area-inset-bottom)); margin:0;
    grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; overflow:visible;
    min-height:72px; padding:7px; border:2px solid #fff; border-radius:26px;
    background:#dbe6f5; box-shadow:0 8px 28px #30497d25,0 0 0 1px #b8cdea;
  }
  .app-shell.patient-mode .patient-area-nav button {
    flex-direction:column; gap:4px; min-width:0; min-height:56px;
    padding:5px 2px; border-radius:19px; color:#30497d; font-size:11px; line-height:1.2;
  }
  .app-shell.patient-mode .patient-area-nav button.active { color:#fff; background:#4568ad; box-shadow:inset 0 1px 0 #ffffff35,0 3px 7px #30497d25; }
  .app-shell.patient-mode #mainContent.main-content { padding-bottom:calc(112px + env(safe-area-inset-bottom)) !important; }
  .app-shell.patient-mode .synapse-agent-launcher { bottom:calc(98px + env(safe-area-inset-bottom)); }
}
.exercise-intention-bubble small { display: block; line-height: 1.45; color: #726a80; }
.gym-page .gym-exercise-tags .gym-supervision-required { background:#f4e3d8; color:#8f5435; }
.gym-exercise-definition { min-width:0; overflow-wrap:anywhere; font-size:12px; line-height:1.5; }
.gym-exercise-definition summary { cursor:pointer; color:var(--primary-dk); font-weight:700; }
.gym-exercise-definition p { margin:8px 0; }
.gym-page .gym-exercise-copy h3 { order:-1; padding-right:36px; }
.gym-page .gym-exercise-composer .gym-custom-exercise-form { max-height:70dvh; overflow:auto; }
#sessionModeOverlay.is-exercise-focus .session-mode-shell > .session-mode-modulation-panel,
#sessionModeOverlay.is-exercise-focus .session-mode-shell > .programme-intention,
#sessionModeOverlay.is-exercise-focus .session-mode-exercise-overview > .session-mode-exercise-preview,
#sessionModeOverlay.is-exercise-focus .session-mode-exercise-overview > .session-mode-media { display:none; }
#sessionModeOverlay.is-exercise-focus .session-mode-current-card { border-radius:28px; box-shadow:0 8px 0 rgba(109,83,162,.12),0 20px 45px rgba(78,52,129,.09); }
.session-mode-stopwatch [data-session-mode-work-clock] { font-variant-numeric:tabular-nums; font-size:clamp(58px,10vw,104px); letter-spacing:-.05em; }
.session-mode-stopwatch .session-mode-work-actions { display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }
.session-mode-stopwatch .session-mode-work-actions button { min-height:48px; }
#sessionModeOverlay.is-exercise-focus { padding:0; background:var(--bg,#f8f7ff); }
#sessionModeOverlay.is-exercise-focus .session-mode-shell { width:100%; max-width:none; height:100dvh; max-height:none; min-height:0; border:0; border-radius:0; box-shadow:none; margin:0; }
.session-mode-focus-pause { position:absolute; inset:0; z-index:100; display:flex; flex-direction:column; align-items:stretch; justify-content:center; gap:12px; padding:clamp(24px,6vw,70px); background:rgba(248,245,255,.98); overflow:auto; }
.session-mode-focus-pause > * { width:min(440px,100%); margin-inline:auto; }
.session-mode-focus-pause > span { color:var(--primary); font-weight:750; }
.session-mode-focus-pause h2 { font-size:36px; letter-spacing:-.04em; margin-block:0; }
.session-mode-focus-pause p { color:var(--tx-3); margin-block:0 12px; }
.session-mode-focus-pause button,.session-mode-focus-return { min-height:48px; padding:12px 18px; border:1px solid rgba(113,87,164,.18); border-radius:16px; background:linear-gradient(145deg,#fff,#f0eaf9); color:var(--primary-dk); font-weight:750; box-shadow:0 3px 0 rgba(113,87,164,.12); cursor:pointer; }
.session-mode-focus-pause button.is-primary { background:linear-gradient(145deg,#8166dc,#6449bd); color:white; }
.session-mode-focus-pause button:focus-visible { outline:3px solid #a394e5; outline-offset:3px; }
#sessionModeOverlay:has(.session-mode-focus-pause) .clinical-notebook-bookmarks { visibility:hidden; }
#sessionModeOverlay.is-exercise-focus .session-mode-shell > .programme-intention-heading,
#sessionModeOverlay.is-exercise-focus .session-mode-shell > .session-mode-footer,
#sessionModeOverlay.is-exercise-focus .session-mode-shell > .session-mode-navigation { display:none; }
#sessionModeOverlay.is-exercise-focus .session-mode-shell > .session-mode-modulation-compact { display:none; }
#sessionModeOverlay.is-exercise-focus .session-mode-shell { display:flex; flex-direction:column; gap:12px; }
#sessionModeOverlay.is-exercise-focus .session-mode-current-card { flex:1 1 auto; min-height:0; overflow:auto; }
#sessionModeOverlay.is-exercise-focus .session-mode-work-timer { min-height:0; padding:18px; gap:10px; }
#sessionModeOverlay.is-exercise-focus .session-mode-current-copy h2 { font-size:clamp(22px,3vw,32px); }
@media (max-width:700px) {
  #sessionModeOverlay.is-exercise-focus .session-mode-current-card { display:flex; flex-direction:column; }
  #sessionModeOverlay.is-exercise-focus .session-mode-execution { order:-1; }
  #sessionModeOverlay.is-exercise-focus .clinical-work-context { padding-block:8px; }
  #sessionModeOverlay.is-exercise-focus .session-mode-progress { display:none; }
  #sessionModeOverlay.is-exercise-focus .session-mode-exercise-overview { display:none; }
  #sessionModeOverlay.is-exercise-focus .session-mode-work-timer h2 { font-size:20px; line-height:1.25; }
  #sessionModeOverlay.is-exercise-focus .session-mode-stopwatch [data-session-mode-work-clock] { font-size:72px; }
}

/* Gymnase — same tactile hierarchy as the dashboard, without a nested page card. */
.gym-page .gym-hero.gym-hero-compact.app-section-header {
  padding: 26px 28px; border: 1px solid rgba(111,84,183,.17); border-radius: 28px;
  background: linear-gradient(120deg,#ded2ef 0%,#eee8f8 58%,#faf8ff 100%);
  box-shadow: 0 7px 0 rgba(126,96,169,.12),0 18px 36px rgba(92,68,142,.06);
  margin-bottom: 10px; min-height: 112px;
}
.gym-page .gym-hero-compact.app-section-header h1 { font-size: clamp(30px,3.6vw,42px); letter-spacing:-.045em; }
.gym-page .gym-beta-library-available { padding: 0; border: 0; background: transparent; box-shadow: none; overflow: visible; }
.gym-page .gym-view-switch { padding:5px; border:1px solid rgba(108,86,161,.14); border-radius:18px; background:rgba(231,226,243,.6); width:fit-content; }
.gym-page .gym-view-switch button { min-height:44px; padding:11px 22px; font-size:13px; border-radius:14px; }
.gym-page .gym-view-switch button[aria-selected="true"] { color:#fff; background:linear-gradient(145deg,#8066dd,#654bc4); box-shadow:0 3px 0 #5843a5,0 6px 14px rgba(91,66,169,.14); }
.gym-page .gym-personal-library { padding:18px 0 14px; border-bottom:1px solid rgba(108,86,161,.15); }
.gym-page .gym-personal-library > header > strong { font-size:22px; letter-spacing:-.025em; }
.gym-page .gym-personal-library-actions .gym-collection-composer > summary { min-height:44px; padding:11px 16px; border-radius:14px; font-size:12px; background:linear-gradient(145deg,#fff,#f0ecf9); border:1px solid rgba(108,86,161,.16); box-shadow:0 3px 0 rgba(108,86,161,.12); }
.gym-page .gym-exercise-composer > summary { color:#fff !important; background:linear-gradient(145deg,#8066dd,#654bc4) !important; }
.gym-page .gym-collection-filters button { min-height:40px; font-size:12px; }
.gym-page .gym-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:12px; padding:16px 0 10px; }
.gym-page .gym-search-field { grid-column:auto; }
.gym-page .gym-search-field > span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.gym-page .gym-search-field input { min-height:48px; border-radius:16px; background:rgba(255,255,255,.85); font-size:14px; }
.gym-filter-panel { position:relative; }
.gym-filter-panel > summary { list-style:none; display:flex; align-items:center; gap:16px; min-height:48px; padding:12px 18px; border:1px solid rgba(108,86,161,.18); border-radius:16px; background:linear-gradient(145deg,#fff,#f0ecf9); color:var(--primary-dk); font-weight:750; cursor:pointer; box-shadow:0 3px 0 rgba(108,86,161,.1); }
.gym-filter-panel > summary::-webkit-details-marker { display:none; }
.gym-filter-panel[open] > summary { background:#e9e1fa; }
.gym-filter-fields { position:absolute; z-index:20; right:0; top:calc(100% + 10px); display:grid; gap:16px; width:300px; padding:20px; border:1px solid rgba(108,86,161,.18); border-radius:20px; background:#fcfaff; box-shadow:0 18px 42px rgba(69,48,110,.19); }
.gym-filter-fields label { display:grid; gap:7px; font-size:13px; font-weight:650; }
.gym-filter-fields select { min-height:44px; }
.gym-page .gym-results-heading strong { font-size:13px; color:var(--tx-3); }
.gym-page .gym-exercise-grid { gap:18px; }
.gym-page .gym-exercise-card,.gym-page .gym-template-card { border-radius:24px; border:1px solid rgba(117,93,155,.14); background:linear-gradient(145deg,#fff,#f7f3fc); box-shadow:0 5px 0 rgba(130,107,163,.11),0 12px 26px rgba(70,47,109,.055); }
.gym-page .gym-exercise-copy { padding:18px 20px 20px; gap:10px; }
.gym-page .gym-exercise-copy h3 { font-size:17px; letter-spacing:-.02em; line-height:1.35; }
.gym-page .gym-exercise-tags { gap:6px; }
.gym-page .gym-exercise-tags span { border-radius:8px; padding:4px 7px; font-size:10px; background:#eee8f8; color:#675483; }
.gym-page .gym-favorite-button { min-width:44px; min-height:44px; border:1px solid rgba(117,93,155,.14); box-shadow:0 3px 9px rgba(70,47,109,.08); }
.gym-page .gym-card-list-empty { display:none; }
.gym-filter-panel > summary:focus-visible { outline:3px solid #a394e8; outline-offset:3px; }
@media (max-width:700px) {
  .gym-page .gym-hero.gym-hero-compact.app-section-header { padding:23px 20px; height:auto; min-height:150px; border-radius:24px; flex-direction:column; align-items:stretch; gap:14px; overflow:visible; }
  .gym-page .gym-hero .app-section-header-copy { width:100%; }
  .gym-page .gym-clinical-library-link { width:fit-content; align-self:flex-start; }
  .gym-page .gym-view-switch { width:100%; }
  .gym-page .gym-view-switch button { padding-inline:12px; }
  .gym-page .gym-personal-library-actions .gym-collection-composer > summary { padding:11px 6px; }
  .gym-page .gym-toolbar { grid-template-columns:minmax(0,1fr) auto; gap:8px; }
  .gym-page .gym-toolbar .gym-search-field { grid-column:auto; }
  .gym-filter-panel > summary { padding:12px; gap:8px; font-size:12px; }
  .gym-filter-fields { width:min(300px,calc(100vw - 44px)); }
  .gym-page .gym-exercise-grid { gap:18px; }
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .gym-page .gym-exercise-card { transition:box-shadow .18s ease,transform .18s ease; }
  .gym-page .gym-exercise-card:hover { transform:translateY(-2px); box-shadow:0 7px 0 rgba(130,107,163,.11),0 18px 30px rgba(70,47,109,.09); }
}
@media (max-width: 640px) {
  .exercise-intention-bubble { position: fixed; left: 6vw; right: 6vw; top: auto; bottom: 110px; width: auto; max-height: 55vh; overflow: auto; }
  .exercise-intention-info > summary { min-width: 44px; min-height: 44px; }
}

/* Mémos : un espace de travail, pas une boîte d’alerte. */
.dashboard-memos-dialog { position:fixed; inset:0; margin:auto; width:min(800px,calc(100vw - 48px)); height:min(680px,calc(100dvh - 64px)); max-height:none; padding:0; overflow:hidden; border-radius:28px; background:#f8f5fc; color:#392c4c; box-shadow:0 24px 90px #33204e33; }
.dashboard-memos-dialog[open] { display:flex; flex-direction:column; }
.dashboard-memos-dialog > header { flex:0 0 auto; margin:0; padding:24px 28px 20px; background:linear-gradient(135deg,#eee6fa,#fbf9ff); border-bottom:1px solid #e2daec; }
.dashboard-memos-dialog > header > div { margin-right:auto; }
.dashboard-memos-dialog > header p { margin:0 0 5px; font-size:11px; color:#7a648e; }
.dashboard-memos-dialog > header h2 { margin:0; font-size:27px; letter-spacing:-.04em; }
.dashboard-memos-dialog > header button { min-height:44px; border-radius:14px; }
.dashboard-memos-dialog > header [data-close] { width:44px; padding:0; font-size:22px; }
.dashboard-memos-dialog > [data-memos-list] { flex:1; min-height:0; overflow:auto; padding:18px 24px 26px; }
.dashboard-memos-dialog > footer { padding:12px 24px; color:#7c7087; background:#fdfbff; border-top:1px solid #e8e0f0; font-size:12px; }
.free-task-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.free-task-filters button { min-height:44px; padding:10px 15px; border:1px solid #dfd5ec; border-radius:14px; background:#fff; color:#6f607e; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.free-task-filters button[aria-pressed="true"] { background:#e7dcf8; color:#54338e; border-color:#b9a0de; box-shadow:inset 0 1px 0 #fff; }
.free-task-empty-state { display:grid; align-content:center; justify-items:center; gap:14px; min-height:300px; padding:30px 20px; text-align:center; }
.free-task-empty-state > span { display:grid; place-items:center; width:64px; height:64px; font-size:30px; border-radius:22px; color:#8c70ba; background:#eee5f9; }
.free-task-empty-state h4 { margin:0; font-size:21px; color:#503865; }
.free-task-empty-state p { margin:0 0 6px; max-width:310px; color:#85748e; line-height:1.5; }
.free-task-empty-state button { min-height:46px; }
.free-task-feedback:empty { display:none; }
.free-task-row { display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:12px; padding:18px 14px; border-radius:20px; box-shadow:0 3px 0 #d7c8e514; }
.free-task-row > .free-task-row-actions { display:flex; flex-wrap:wrap; gap:6px; flex:0; overflow:visible; }
.free-task-row-actions button { min-height:44px; padding:9px 12px; border:1px solid #e8e1ef; border-radius:12px; background:#fbf9fe; color:#705c80; font:inherit; font-size:12px; cursor:pointer; }
.free-task-row-actions .free-task-delete { background:transparent; border-color:transparent; color:#8b788e; }
.free-task-row .free-task-check { display:grid; place-items:center; width:44px; min-height:44px; cursor:pointer; }
.free-task-check input { width:22px; height:22px; accent-color:#7957ce; }
.free-task-row strong { font-size:16px; line-height:1.35; }
.free-task-notes { margin:3px 0; white-space:pre-wrap; line-height:1.45; font-size:14px; color:#6e6079; }
.free-task-row small { font-size:12px; line-height:1.4; }
.free-task-row.has-reminder { border-left:4px solid #b599d1; }
.free-task-row .free-task-reminder { color:#8b6842; }
.free-task-row.is-done strong { text-decoration:line-through; color:#887c91; }
.free-task-row:has([aria-label^="Restaurer"]) { grid-template-columns:minmax(0,1fr) auto; }
.free-task-date-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.free-task-dialog textarea { width:100%; min-height:90px; box-sizing:border-box; border:1px solid #cfc1df; border-radius:12px; padding:12px; background:#fff; color:#392c4c; font:inherit; resize:vertical; }
.free-task-dialog .free-task-local { line-height:1.5; }
.dashboard-memo-reminder-badge { display:inline-grid; place-items:center; min-width:22px; min-height:22px; padding:2px 5px; border-radius:8px; background:#e8dcf6; color:#66458c; font-size:11px; }
.dashboard-memo-reminder-badge[hidden] { display:none; }
.free-task-filters button:focus-visible,.free-task-row-actions button:focus-visible { outline:3px solid #a58acb; outline-offset:2px; }
@media(max-width:600px) {
  .dashboard-memos-dialog { inset:0; width:100%; height:100dvh; max-width:none; margin:0; border:0; border-radius:0; }
  .dashboard-memos-dialog > header { padding:calc(18px + env(safe-area-inset-top)) 16px 18px; }
  .dashboard-memos-dialog > [data-memos-list] { padding:16px; }
  .dashboard-memos-dialog > footer { padding-bottom:calc(14px + env(safe-area-inset-bottom)); }
  .free-task-row { grid-template-columns:44px minmax(0,1fr); padding:14px 12px; gap:8px; }
  .free-task-row > .free-task-row-actions { grid-column:2; }
  .free-task-date-fields { grid-template-columns:1fr; }
  .free-task-dialog input,.free-task-dialog select,.free-task-dialog textarea { font-size:16px; }
  .free-task-dialog { max-height:calc(100dvh - 48px); }
}

/* Connexion : deux profils explicites, sans entrée administrateur distincte. */
#authenticationOverlay #authenticationCard { --auth-profile-accent:var(--auth-accent,#7358c6); }
#authenticationOverlay #authenticationCard[data-auth-profile="patient"] { --auth-profile-accent:var(--auth-accent,#4568ad); }
#authenticationOverlay #authenticationCard .authentication-profile-switch {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; gap:6px;
  margin:0; padding:6px; border:1px solid #ddd8e9; border-radius:20px;
  background:linear-gradient(145deg,#f5f2fa,#ebe7f2); box-shadow:inset 0 1px 0 #ffffffd9;
}
#authenticationOverlay #authenticationCard .authentication-profile-option {
  display:flex; min-width:0; min-height:48px; justify-content:center; align-items:center;
  padding:12px 16px; border-radius:14px; color:#716a80; background:transparent;
  text-align:center; font-size:15px; line-height:1.2; box-shadow:none;
}
#authenticationOverlay #authenticationCard .authentication-profile-option.active {
  color:var(--auth-profile-accent); background:var(--auth-soft,#e7dff8); box-shadow:inset 0 1px 0 #ffffffb3,0 2px 5px #4632630c;
}
#authenticationOverlay #authenticationCard .authentication-profile-option::after { display:none; content:none; }
#authenticationOverlay #authenticationCard .authentication-profile-option:focus-visible { outline:3px solid var(--auth-profile-accent); outline-offset:2px; }
#authenticationOverlay #authenticationCard .authentication-profile-option:active { transform:translateY(1px); }
@media(prefers-reduced-motion:reduce) { #authenticationOverlay #authenticationCard .authentication-profile-option { transition:none; transform:none; } }
.authentication-mobile-signature { display:none; }
/* Entrée téléphone : même identité que le bureau, sans page d’attente imposée. */
@media(max-width:900px) {
  #authenticationOverlay {
    --entry-accent:#7358c6; --entry-soft:#e7dff8;
    background:radial-gradient(ellipse at 8% 0%,var(--entry-soft),transparent 62%),linear-gradient(165deg,#f6f1ff,#f9f8fc 64%);
    padding:max(24px,env(safe-area-inset-top)) 22px max(24px,env(safe-area-inset-bottom));
    align-items:start; overflow-y:auto;
  }
  #authenticationOverlay:has([data-auth-profile="patient"]) { --entry-accent:#4568ad; --entry-soft:#d8e6fb; background:radial-gradient(ellipse at 8% 0%,var(--entry-soft),transparent 62%),linear-gradient(165deg,#eef4ff,#f9fafc 64%); }
  #authenticationOverlay .authentication-desktop-shell { width:100%; max-width:440px; margin:auto; }
  #authenticationOverlay .authentication-story { display:none; }
  #authenticationOverlay .authentication-card { width:100%; padding:18px 0; margin:0; border:0; border-radius:0; background:transparent; box-shadow:none; backdrop-filter:none; }
  #authenticationOverlay .authentication-brand { margin-bottom:24px; }
  #authenticationOverlay .authentication-brand-lockup { display:flex; flex-direction:column; gap:14px; width:100%; margin-bottom:26px; }
  #authenticationOverlay .authentication-logo { width:82px; height:82px; border-radius:24px; box-shadow:0 12px 28px #53437620; }
  #authenticationOverlay .authentication-brand-copy { text-align:center; }
  #authenticationOverlay .authentication-wordmark { font-size:32px; color:#29203d; }
  #authenticationOverlay #authenticationBrandLine { display:none; }
  #authenticationOverlay .authentication-mobile-signature { display:block; margin:9px 0 0; font-size:14px; color:#756b85; }
  #authenticationOverlay .authentication-profile-switch { width:100%; margin:0; min-height:52px; padding:5px; border:1px solid #ffffffd9; border-radius:19px; background:#ffffff85; box-shadow:0 3px 0 #63508409; }
  #authenticationOverlay .authentication-profile-option { min-height:44px; font-size:15px; border-radius:14px; }
  #authenticationOverlay .authentication-profile-option.active { background:var(--entry-accent); color:#fff; }
  #authenticationOverlay .authentication-heading { margin-bottom:20px; text-align:left; }
  #authenticationOverlay .authentication-heading h1 { font-size:23px; letter-spacing:-.035em; }
  #authenticationOverlay .authentication-heading > p { display:none; }
  #authenticationOverlay .authentication-form input { min-height:54px; font-size:16px; border-radius:16px; background:#ffffffed; }
  #authenticationOverlay .authentication-form button.authentication-submit { min-height:54px; font-size:16px; border-radius:16px; background:var(--entry-accent); box-shadow:0 4px 0 #40306418; }
  #authenticationOverlay .authentication-label-row button { min-height:44px; }
  #authenticationOverlay .authentication-view:not([hidden]) { animation:synapseMobileEntry .25s ease-out; }
  html.native-mobile-app #authenticationOverlay { padding-top:calc(24px + env(safe-area-inset-top)); padding-bottom:calc(24px + env(safe-area-inset-bottom)); }
}
@keyframes synapseMobileEntry { from { opacity:.4; transform:translateY(5px); } to { opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce) { #authenticationOverlay .authentication-view { animation:none!important; } }

/* Gymnase : une barre de contenu/création, puis les filtres de consultation. */
.gym-page .gym-hero.gym-hero-compact.app-section-header { min-height:90px; padding:24px; margin-bottom:18px; }
.gym-command-bar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.gym-command-bar .gym-view-switch { margin:0; }
.gym-create-menu { position:relative; flex:0 0 auto; }
.gym-create-menu > summary { list-style:none; display:flex; align-items:center; min-height:48px; padding:12px 20px; border:1px solid #7355c7; border-radius:16px; background:linear-gradient(145deg,#8066dd,#654bc4); color:#fff; font-weight:750; cursor:pointer; box-shadow:0 3px 0 #52389f; }
.gym-create-menu > summary::-webkit-details-marker { display:none; }
.gym-create-menu > summary:focus-visible { outline:3px solid #a394e8; outline-offset:3px; }
.gym-create-menu > .gym-personal-library-actions { position:absolute; right:0; top:calc(100% + 10px); z-index:35; display:flex; flex-direction:column; align-items:stretch; gap:8px; width:min(380px,calc(100vw - 48px)); max-height:70dvh; overflow:auto; padding:12px; border:1px solid #dfd5ef; border-radius:20px; background:#fcfaff; box-shadow:0 18px 42px #45306e30; }
.gym-create-menu .gym-collection-composer { position:static; width:100%; }
.gym-page #gymCreateMenu > .gym-personal-library-actions { display:grid!important; grid-template-columns:minmax(0,1fr); }
.gym-page .gym-create-menu .gym-collection-composer > summary { min-height:44px; padding:12px 14px; border:0; box-shadow:none; color:#514071!important; background:#f1ecf8!important; text-align:left; }
.gym-create-menu .gym-collection-composer form { position:static; width:100%; min-width:0; margin-top:8px; box-shadow:none; border:0; padding:10px 4px; }
.gym-create-menu .gym-collection-composer label { min-width:0; }
.gym-create-menu input,.gym-create-menu select,.gym-create-menu textarea { max-width:100%; box-sizing:border-box; }
#gymExercisesView:not(.hidden) { display:grid; grid-template-columns:auto minmax(280px,1fr); align-items:start; gap:8px 18px; }
.gym-page #gymExercisesView > .gym-personal-library { margin:0; padding:0; border:0; background:none; box-shadow:none; }
.gym-page #gymExercisesView .gym-collection-filters { margin:0; padding:0; gap:6px; }
.gym-page #gymExercisesView .gym-collection-filters button { min-height:48px; padding:10px 14px; }
.gym-page #gymExercisesView > .gym-toolbar { padding:0; }
#gymExercisesView > .gym-context-line,#gymExercisesView > .gym-results-heading,#gymExercisesView > .gym-exercise-grid { grid-column:1/-1; }
#gymActiveCollectionActions:empty,#gymContextLine:empty { display:none; }
@media(max-width:700px) {
  .gym-page .gym-hero.gym-hero-compact.app-section-header { min-height:90px; padding:22px 20px; }
  .gym-command-bar { gap:10px; align-items:stretch; }
  .gym-command-bar .gym-view-switch { flex:1; width:auto; min-width:0; }
  .gym-command-bar .gym-view-switch button { min-width:0; padding:10px 8px; font-size:12px; }
  .gym-create-menu > summary { height:100%; padding:10px 14px; font-size:13px; }
  .gym-page #gymCreateMenu > .gym-personal-library-actions { max-height:min(65dvh,calc(100dvh - 320px)); }
  #gymExercisesView:not(.hidden) { grid-template-columns:1fr; gap:12px; }
  .gym-page #gymExercisesView > .gym-toolbar { grid-row:1; }
  .gym-page #gymExercisesView > .gym-personal-library { grid-row:2; }
  .gym-create-menu input,.gym-create-menu select,.gym-create-menu textarea { font-size:16px; }
}

/* Pro mobile : accès directs conservés, commandes au pouce et lecture nette. */
@media (max-width:700px) {
  .app-shell:not(.patient-mode) #dashboardCalendarControls {
    display:grid; width:100%; grid-template-columns:48px minmax(0,1fr) 48px;
    gap:12px 8px; margin:0; align-items:center;
  }
  .app-shell:not(.patient-mode) #dashboardCalendarControls .dashboard-calendar-segments {
    grid-column:1/-1; grid-row:1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%;
  }
  .app-shell:not(.patient-mode) #dashboardCalendarControls .dashboard-calendar-segments button { min-height:46px; padding:10px 6px; font-size:13px; }
  .app-shell:not(.patient-mode) #dashboardCalendarControls .dashboard-week-range { grid-column:2; grid-row:2; margin:0; text-align:center; min-width:0; font-size:15px; line-height:1.35; }
  .app-shell:not(.patient-mode) #dashboardCalendarControls .dashboard-calendar-period { grid-row:2; margin:0; }
  .app-shell:not(.patient-mode) #dashboardCalendarControls .dashboard-calendar-period:has([data-calendar-shift="-1"]) { grid-column:1; }
  .app-shell:not(.patient-mode) #dashboardCalendarControls .dashboard-calendar-period:has([data-calendar-shift="1"]) { grid-column:3; }
  .app-shell:not(.patient-mode) #dashboardCalendarControls .dashboard-calendar-period button { width:48px; height:48px; padding:0; border-radius:16px; }
  .app-shell:not(.patient-mode) #dashboardTab #dashboardWorkspaceHeader .dashboard-date-navigation { width:100%; min-width:0; justify-self:stretch; }
  .app-shell:not(.patient-mode) #dashboardTab .dashboard-week-appointment-main strong { white-space:normal; font-size:15px; line-height:1.35; }
  .app-shell:not(.patient-mode) #dashboardTab .dashboard-week-appointment-main small { font-size:12px; line-height:1.4; }
  .app-shell:not(.patient-mode) #dashboardTab .dashboard-week-appointment-time { font-size:14px; line-height:1.4; font-variant-numeric:tabular-nums; }
  .app-shell:not(.patient-mode) #dashboardTab .dashboard-week-appointment-status em { font-size:12px; }
  .app-shell:not(.patient-mode) #dashboardTab .dashboard-week-appointment-status small { font-size:12px; color:#604587; }
  .app-shell:not(.patient-mode) #dashboardTab .dashboard-week-clinical-action strong { font-size:14px; white-space:normal; }
  .app-shell:not(.patient-mode) #dashboardTab .dashboard-week-clinical-action small { font-size:12px; white-space:normal; }
  .app-shell:not(.patient-mode) #patientTableBody .clinical-patient-row:not(.clinical-patient-row-archived) { padding:16px!important; border-radius:20px; gap:10px 12px; }
  .app-shell:not(.patient-mode) #patientTableBody .clinical-patient-main strong { font-size:17px; }
  .app-shell:not(.patient-mode) #patientTableBody .clinical-patient-main > span { font-size:14px; }
  .app-shell:not(.patient-mode) #patientTableBody .clinical-patient-care-link,
  .app-shell:not(.patient-mode) #patientTableBody .directory-patient-fact small { font-size:12px; line-height:1.4; }
  .app-shell:not(.patient-mode) #patientTableBody .directory-patient-fact > span { font-size:13px; line-height:1.4; }
  .app-shell:not(.patient-mode) #patientTab input[type="search"],
  .app-shell:not(.patient-mode) #patientDetailModal input:not([type="checkbox"]):not([type="radio"]),
  .app-shell:not(.patient-mode) #patientDetailModal textarea,
  .app-shell:not(.patient-mode) #patientDetailModal select { font-size:16px; }
  .app-shell:not(.patient-mode) .mobile-nav button { min-height:56px; }
  .app-shell:not(.patient-mode) #dashboardTab .agenda-booking-actions button { min-height:48px; }
}

/* Patient : lecture verticale, action principale et commandes tactiles. */
#patientAppTab .patient-home-area { max-width:600px; margin-inline:auto; gap:20px; }
#patientAppTab .patient-home-welcome--simple { padding:12px 0 2px; }
#patientAppTab .patient-home-primary--simple {
  position:relative; padding:24px; border-radius:28px;
  color:#fff; background:linear-gradient(145deg,#4265ac,#6389c8);
  border:1px solid #ffffff40; box-shadow:0 6px 0 #3f609920,0 16px 32px #36598518;
}
#patientAppTab .patient-home-primary--simple > span { color:#edf3ff; font-size:12px; letter-spacing:.04em; padding-right:50px; }
#patientAppTab .patient-home-primary--simple h3 { max-width:calc(100% - 44px); font-size:26px; line-height:1.2; }
#patientAppTab .patient-home-primary--simple p { color:#fff; font-size:15px; line-height:1.5; margin:14px 0 22px; }
#patientAppTab .patient-home-primary--simple .primary-btn {
  width:100%; min-height:54px; border-radius:17px; background:#fff; color:#34558f;
  font-size:16px; font-weight:750; box-shadow:0 3px 0 #20395c20;
}
.patient-home-action-symbol { position:absolute; top:23px; right:22px; display:grid; place-items:center; width:42px; height:42px; border-radius:15px; background:#ffffff1f; border:1px solid #ffffff30; }
.patient-home-action-symbol svg { width:23px; height:23px; fill:currentColor; }
#patientAppTab .patient-home-at-a-glance { grid-template-columns:1fr; gap:12px; }
#patientAppTab .patient-home-glance-card { position:relative; min-height:108px; padding:20px 46px 20px 20px; gap:7px; border-radius:22px; box-shadow:0 4px 0 #4265ac09; }
#patientAppTab .patient-home-glance-card > span { font-size:12px; letter-spacing:.025em; text-transform:none; }
#patientAppTab .patient-home-glance-card > strong { font-size:18px; white-space:normal; }
#patientAppTab .patient-home-glance-card > small { font-size:14px; line-height:1.45; }
.patient-home-card-arrow { position:absolute; right:19px; top:50%; transform:translateY(-50%); color:#4568ad; font-size:23px; font-style:normal; }
#patientAppTab button:active { filter:brightness(.96); }
#patientAppTab button:focus-visible { outline:3px solid #4568ad; outline-offset:3px; }
@media (max-width:700px) {
  #patientAppTab .patient-workspace { padding-inline:16px !important; }
  #patientAppTab .patient-app-header { margin-bottom:12px; }
  #patientAppTab .patient-home-welcome h2 { font-size:30px; line-height:1.2; }
  #patientAppTab input:not([type="checkbox"]):not([type="radio"]),
  #patientAppTab select, #patientAppTab textarea { font-size:16px; }
  #patientAppTab button:not(.patient-area-nav button) { min-height:44px; }
  #patientAppTab .patient-area-nav button { min-height:56px; }
  #patientAppTab .patient-area-nav button span { font-size:12px; }
  #patientAppTab .patient-home-primary--simple { padding:23px 20px; }
}

/* Pictogrammes Synapse : tracé arrondi commun, sans police ni service externe. */
.icon-home { --icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27m3.5%2010%208.5-7%208.5%207v9a2%202%200%200%201-2%202H5.5a2%202%200%200%201-2-2Z%27%2F%3E%3Cpath%20d%3D%27M9%2021v-8h6v8%27%2F%3E%3C%2Fsvg%3E"); }
.icon-users { --icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%279%27%20cy%3D%277.5%27%20r%3D%273.5%27%2F%3E%3Cpath%20d%3D%27M2.5%2021v-2a6.5%206.5%200%200%201%2013%200v2M16%204.5a3.5%203.5%200%200%201%200%207M19%2014a6%206%200%200%201%202.5%205v2%27%2F%3E%3C%2Fsvg%3E"); }
.icon-user { --icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%277.5%27%20r%3D%274%27%2F%3E%3Cpath%20d%3D%27M4%2021v-1a8%208%200%200%201%2016%200v1%27%2F%3E%3C%2Fsvg%3E"); }
.icon-clinician { --icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2710%27%20cy%3D%277%27%20r%3D%273.5%27%2F%3E%3Cpath%20d%3D%27M2.5%2021v-2a7.5%207.5%200%200%201%2010-7M18%2013v8m-4-4h8%27%2F%3E%3C%2Fsvg%3E"); }
.icon-message { --icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M7%2019%203%2022v-5a4%204%200%200%201-1-3V7a4%204%200%200%201%204-4h12a4%204%200%200%201%204%204v7a4%204%200%200%201-4%204H8Z%27%2F%3E%3Cpath%20d%3D%27M7%208h10M7%2012h6%27%2F%3E%3C%2Fsvg%3E"); }
.icon-device { --icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%276%27%20y%3D%272%27%20width%3D%2712%27%20height%3D%2720%27%20rx%3D%273%27%2F%3E%3Cpath%20d%3D%27M10%205h4M11%2019h2%27%2F%3E%3C%2Fsvg%3E"); }
.icon-library { --icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%205C9%203%205%203%202.5%204v15c3-1%206.5-1%209.5%201%203-2%206.5-2%209.5-1V4C19%203%2015%203%2012%205Zm0%200v15%27%2F%3E%3C%2Fsvg%3E"); }
.icon-gym { --icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%274%27%20y%3D%276%27%20width%3D%274%27%20height%3D%2712%27%20rx%3D%271.5%27%2F%3E%3Crect%20x%3D%2716%27%20y%3D%276%27%20width%3D%274%27%20height%3D%2712%27%20rx%3D%271.5%27%2F%3E%3Cpath%20d%3D%27M8%2012h8M2%209v6m20-6v6%27%2F%3E%3C%2Fsvg%3E"); }
.icon-search { --icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2710.5%27%20cy%3D%2710.5%27%20r%3D%277%27%2F%3E%3Cpath%20d%3D%27m16%2016%205%205%27%2F%3E%3C%2Fsvg%3E"); }
.icon-settings { --icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%206h16M4%2012h16M4%2018h16%27%2F%3E%3Crect%20x%3D%277%27%20y%3D%273%27%20width%3D%274%27%20height%3D%276%27%20rx%3D%272%27%20fill%3D%27none%27%2F%3E%3Crect%20x%3D%2714%27%20y%3D%279%27%20width%3D%274%27%20height%3D%276%27%20rx%3D%272%27%20fill%3D%27none%27%2F%3E%3Crect%20x%3D%277%27%20y%3D%2715%27%20width%3D%274%27%20height%3D%276%27%20rx%3D%272%27%20fill%3D%27none%27%2F%3E%3C%2Fsvg%3E"); }
.icon-calendar { --icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%275%27%20width%3D%2718%27%20height%3D%2716%27%20rx%3D%273%27%2F%3E%3Cpath%20d%3D%27M7%203v4m10-4v4M3%2010h18M8%2014h2m4%200h2m-8%204h2%27%2F%3E%3C%2Fsvg%3E"); }
.icon-cabinet { --icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%274%27%20y%3D%275%27%20width%3D%2716%27%20height%3D%2717%27%20rx%3D%273%27%2F%3E%3Cpath%20d%3D%27M9%205V2h6v3M12%209v6m-3-3h6M9%2022v-4h6v4%27%2F%3E%3C%2Fsvg%3E"); }

/* Rail bureau : le contenu garde sa place pendant le déploiement. */
@media (min-width:901px) {
  .app-shell.app-layout { --sb-w:68px; }
  .app-shell > #appSidebar {
    position:fixed; inset:0 auto 0 0; z-index:110; width:68px;
    box-sizing:border-box; padding:16px 10px; overflow-x:hidden;
    background:linear-gradient(160deg,rgba(248,245,255,.96),rgba(239,235,249,.94));
    border-right:1px solid rgba(var(--primary-rgb),.1); border-radius:0 26px 26px 0;
    backdrop-filter:blur(20px) saturate(125%); -webkit-backdrop-filter:blur(20px) saturate(125%);
    box-shadow:3px 0 16px rgba(var(--primary-rgb),.035);
    transition:width 300ms cubic-bezier(.22,1,.36,1),box-shadow 260ms ease;
  }
  .app-shell > .app-main { grid-column:2; }
  .app-shell > #appSidebar:is(:hover,:has(:focus-visible),:has(.sidebar-account-menu:not(.hidden))) {
    width:248px; box-shadow:12px 0 36px rgba(var(--primary-rgb),.12);
  }
  #appSidebar .sidebar-header { padding:0 0 18px; border:0; }
  #appSidebar .sidebar-brand { padding:7px 9px; gap:16px; white-space:nowrap; }
  #appSidebar .sidebar-brand-icon { width:28px; height:28px; min-width:28px; box-shadow:none; }
  #appSidebar .sidebar-brand-name { color:var(--primary-dk); }
  #appSidebar .sidebar-section { padding:0; }
  #appSidebar .sidebar-section nav { gap:5px; }
  #appSidebar .sidebar-nav-item {
    height:44px; min-height:44px; padding:0 14px; gap:16px;
    width:100%; min-width:0; margin-inline:0;
    white-space:nowrap; color:var(--tx-2); transform:none; border-radius:15px;
    transition:background-color 200ms ease,color 200ms ease,box-shadow 200ms ease;
  }
  #appSidebar .sidebar-nav-item .nav-icon { width:18px; min-width:18px; opacity:1; }
  #appSidebar .sidebar-nav-item.active,
  #appSidebar .sidebar-nav-item:hover {
    background:rgba(var(--primary-rgb),.1); color:var(--primary-dk); box-shadow:none;
  }
  #appSidebar .sidebar-brand-name,
  #appSidebar .sidebar-nav-item > span:not(.nav-icon),
  #appSidebar .sidebar-footer-message > span:not(.nav-icon) {
    opacity:0; transition:opacity 170ms ease;
  }
  #appSidebar:is(:hover,:has(:focus-visible),:has(.sidebar-account-menu:not(.hidden))) .sidebar-brand-name,
  #appSidebar:is(:hover,:has(:focus-visible),:has(.sidebar-account-menu:not(.hidden))) .sidebar-nav-item > span:not(.nav-icon),
  #appSidebar:is(:hover,:has(:focus-visible),:has(.sidebar-account-menu:not(.hidden))) .sidebar-footer-message > span:not(.nav-icon) { opacity:1; }
  #appSidebar .sidebar-footer { margin-top:auto; padding:12px 0 0; border-color:var(--border); }
  #appSidebar .sidebar-footer-actions { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
  #appSidebar .sidebar-footer-message { width:100%; min-width:46px; padding:0 14px; color:var(--primary-dk); background:rgba(var(--primary-rgb),.06); }
  #appSidebar .sidebar-avatar-button { width:46px; height:44px; transform:none; background:rgba(var(--primary-rgb),.08); border-color:transparent; }
  #appSidebar .sidebar-avatar-button:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
  #appSidebar .sidebar-account-menu { left:0; right:auto; width:220px; border-radius:20px; background:rgba(249,247,254,.97); backdrop-filter:blur(16px); }
  #appSidebar .sidebar-nav-item .nav-icon::before { width:20px; height:20px; }
  #appSidebar .sidebar-avatar-button,#appSidebar .sidebar-footer-message { border-radius:15px; }
}
@supports (backdrop-filter:blur(1px)) {
  @media(min-width:901px) { .app-shell > #appSidebar { background:linear-gradient(160deg,rgba(248,245,255,.86),rgba(239,235,249,.88)); } }
}
@media(prefers-reduced-transparency:reduce) {
  .app-shell > #appSidebar { background:#f4f0fb; backdrop-filter:none; -webkit-backdrop-filter:none; }
}
@media (min-width:901px) and (hover:none) {
  .app-shell > #appSidebar:focus-within { width:248px; }
  #appSidebar:focus-within .sidebar-brand-name,
  #appSidebar:focus-within .sidebar-nav-item > span:not(.nav-icon) { opacity:1; }
}
@media (prefers-reduced-motion:reduce) {
  .app-shell > #appSidebar,#appSidebar .sidebar-brand-name,
  #appSidebar .sidebar-nav-item > span,#appSidebar .sidebar-footer-message > span { transition:none; }
}

/* Outils du dossier : commandes compactes, formulaires conservés au déploiement. */
#patientContinuityPanel { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; box-sizing:border-box; padding-block:10px 14px; }
#patientContinuityPanel > .patient-continuity { margin:0; min-width:0; border:1px solid rgba(var(--primary-rgb),.13); border-radius:18px; background:rgba(var(--primary-rgb),.035); overflow:hidden; }
#patientContinuityPanel > .patient-continuity > summary { min-height:48px; box-sizing:border-box; align-items:center; padding:12px 15px; font-size:13px; line-height:1.4; gap:5px 12px; }
#patientContinuityPanel > .patient-continuity > summary span:last-child { text-decoration:none; font-weight:600; }
#patientContinuityPanel > .patient-continuity > summary::after,
#clinicianWalkRun > .walk-run-module > summary::after { content:'⌄'; margin-left:auto; color:var(--primary); font-size:17px; line-height:1; }
#patientContinuityPanel > .patient-continuity[open] { grid-column:1/-1; }
#patientContinuityPanel > .patient-continuity[open] > summary::after,
#clinicianWalkRun > .walk-run-module[open] > summary::after { transform:rotate(180deg); }
#patientContinuityPanel .patient-continuity form { max-width:none; margin:0; border:0; border-top:1px solid var(--border); border-radius:0; background:rgba(255,255,255,.82); }
#patientContinuityPanel summary:focus-visible,#clinicianWalkRun > details > summary:focus-visible { outline:2px solid var(--primary); outline-offset:-3px; border-radius:17px; }
#clinicianWalkRun > .walk-run-module { margin:12px 0; padding:0; border-radius:20px; background:rgba(var(--primary-rgb),.035); border-color:rgba(var(--primary-rgb),.14); overflow:hidden; }
#clinicianWalkRun > .walk-run-module > summary { padding:14px 17px; align-items:center; justify-content:flex-start; min-height:52px; box-sizing:border-box; font-size:14px; line-height:1.4; gap:8px 16px; color:var(--tx); }
#clinicianWalkRun > .walk-run-module > summary > span { margin-left:auto; font-size:12px; color:var(--primary-dk); }
#clinicianWalkRun > .walk-run-module[open] { padding:0 18px 18px; }
#clinicianWalkRun > .walk-run-module[open] > summary { margin-inline:-18px; padding-inline:18px; border-bottom:1px solid var(--border); margin-bottom:12px; }
@media(max-width:600px) {
  #patientContinuityPanel { grid-template-columns:minmax(0,1fr); padding-inline:14px; }
  #clinicianWalkRun > .walk-run-module > summary { flex-direction:row; flex-wrap:wrap; }
  #clinicianWalkRun > .walk-run-module > summary > span { margin-left:0; }
}

/* Fiche de mémo préparée par l’assistant : pas d’écriture avant confirmation. */
.assistant-memo-preview { display:grid; gap:9px; margin:12px 0; padding:16px; border:1px solid rgba(var(--primary-rgb),.22); border-radius:22px; background:linear-gradient(145deg,#fff,#f5f0fc); box-shadow:0 5px 18px rgba(var(--primary-rgb),.08); color:var(--tx); }
.assistant-memo-preview header { display:grid; gap:3px; }
.assistant-memo-preview header span { font-size:12px; color:var(--primary-dk); font-weight:650; }
.assistant-memo-preview header strong { font-size:18px; }
.assistant-memo-preview label { display:grid; gap:6px; font-size:13px; font-weight:600; }
.assistant-memo-preview :is(input:not([type="checkbox"]),select,textarea) { width:100%; min-width:0; box-sizing:border-box; min-height:44px; border:1px solid var(--border-s); border-radius:12px; background:rgba(255,255,255,.9); padding:10px 12px; font:inherit; font-size:14px; color:var(--tx); }
.assistant-memo-preview :is(input,select,textarea,button,summary):focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
.assistant-memo-preview p { margin:0; font-size:12px; line-height:1.5; }
.assistant-memo-preview [data-context] { padding:9px 11px; border-radius:12px; background:rgba(var(--primary-rgb),.07); }
.assistant-memo-preview .assistant-memo-reminder-toggle { display:flex; flex-direction:row; align-items:center; gap:9px; min-height:32px; }
.assistant-memo-preview input[type="checkbox"] { width:18px; height:18px; margin:0; flex-shrink:0; }
.assistant-memo-preview [data-help]:empty,.assistant-memo-preview [data-status]:empty { display:none; }
.assistant-memo-preview details > summary { cursor:pointer; min-height:32px; }
.assistant-memo-preview details label { margin-top:8px; }
.assistant-memo-dates { display:grid; gap:10px; }
.assistant-memo-buttons { display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.assistant-memo-buttons button { min-height:44px; font-size:14px; }
.assistant-memo-preview [data-status][role="alert"] { color:#a12c49; }
.assistant-memo-preview [data-saved],.assistant-memo-storage { color:var(--tx-3); }
.assistant-memo-preview[data-saved] { border-color:rgba(51,123,98,.3); }
.assistant-memo-preview [hidden] { display:none!important; }
.assistant-memo-preview [data-picker-extras],.assistant-memo-preview [data-memo-fields] { display:grid; gap:12px; }
.assistant-memo-candidates section { display:grid; gap:7px; margin-bottom:14px; }
.assistant-memo-candidates h4 { margin:0 0 3px; font-size:12px; color:var(--tx-3); font-weight:600; }
.assistant-memo-preview .assistant-memo-candidate { display:grid; gap:4px; width:100%; padding:11px 13px; min-height:52px; border:1px solid rgba(var(--primary-rgb),.15); border-radius:14px; background:rgba(255,255,255,.85); text-align:left; color:var(--tx); cursor:pointer; }
.assistant-memo-candidate strong { font-size:14px; }
.assistant-memo-candidate span { font-size:12px; color:var(--tx-2); line-height:1.4; }
.assistant-memo-candidate:hover { border-color:var(--primary); background:rgba(var(--primary-rgb),.07); }
@media(max-width:700px) {
  .assistant-memo-preview { padding:14px; }
  .assistant-memo-preview :is(input:not([type="checkbox"]),select,textarea) { font-size:16px; }
  .assistant-memo-buttons button { flex:1; }
}

/* Une ambiance de connexion complète, pilotée par le profil sélectionné. */
#authenticationOverlay {
  --auth-accent:#7351b6; --auth-accent-strong:#58388f; --auth-rgb:115,81,182;
  --auth-soft:#e9def7; --auth-surface:#f5effb; --auth-ink:#392a4f;
  --auth-story-start:#30213e; --auth-story-end:#705390; --auth-glow:#d9c6f7;
  --primary:var(--auth-accent); --primary-dk:var(--auth-accent-strong); --primary-rgb:var(--auth-rgb);
  background:radial-gradient(ellipse at 12% 8%,var(--auth-soft),transparent 58%),linear-gradient(145deg,var(--auth-surface),#faf9fc 76%);
}
#authenticationOverlay:has(.authentication-card[data-auth-profile="patient"]) {
  --auth-accent:#4269aa; --auth-accent-strong:#2e4f87; --auth-rgb:66,105,170;
  --auth-soft:#dce8f9; --auth-surface:#eff5fd; --auth-ink:#263d5c;
  --auth-story-start:#1f344e; --auth-story-end:#4d79ae; --auth-glow:#b9dcfb;
  background:radial-gradient(ellipse at 12% 8%,var(--auth-soft),transparent 58%),linear-gradient(145deg,var(--auth-surface),#f8fafc 76%);
}
#authenticationOverlay .authentication-story {
  background:radial-gradient(ellipse at 85% 15%,rgba(var(--auth-rgb),.55),transparent 58%),linear-gradient(145deg,var(--auth-story-start),var(--auth-story-end));
}
#authenticationOverlay .authentication-ambient { border-color:rgba(var(--auth-rgb),.12); }
#authenticationOverlay #authenticationCard { background:linear-gradient(150deg,#ffffffed,var(--auth-surface)); border-color:rgba(var(--auth-rgb),.09); }
#authenticationOverlay .authentication-desktop-status { background:var(--auth-surface); border-color:rgba(var(--auth-rgb),.12); }
#authenticationOverlay #authenticationCard .authentication-profile-switch { background:rgba(var(--auth-rgb),.055); border-color:rgba(var(--auth-rgb),.15); }
#authenticationOverlay #authenticationCard .authentication-heading h1,
#authenticationOverlay .authentication-wordmark { color:var(--auth-ink); }
#authenticationOverlay #authenticationCard .authentication-form input,
#authenticationOverlay #authenticationCard .authentication-form select,
#authenticationOverlay #authenticationCard .authentication-form textarea { border-color:rgba(var(--auth-rgb),.23); background:#ffffffdc; color:var(--auth-ink); }
#authenticationOverlay #authenticationCard .authentication-form input:focus,
#authenticationOverlay #authenticationCard .authentication-form select:focus,
#authenticationOverlay #authenticationCard .authentication-form textarea:focus { border-color:var(--auth-accent); box-shadow:0 0 0 3px rgba(var(--auth-rgb),.12); }
#authenticationOverlay #authenticationCard .authentication-form [aria-invalid="true"] { border-color:#b5475e; }
#authenticationOverlay #authenticationCard .authentication-form input:-webkit-autofill { -webkit-box-shadow:0 0 0 1000px var(--auth-surface) inset!important; -webkit-text-fill-color:var(--auth-ink); caret-color:var(--auth-ink); }
#authenticationOverlay #authenticationCard .authentication-profile-option:not(.active):hover { color:var(--auth-accent); background:rgba(var(--auth-rgb),.055); }
#authenticationOverlay #authenticationCard button.authentication-submit { color:#fff; background:linear-gradient(135deg,var(--auth-accent),var(--auth-accent-strong)); box-shadow:0 8px 20px rgba(var(--auth-rgb),.19); }
#authenticationOverlay #authenticationCard button.authentication-submit:hover { background:linear-gradient(135deg,var(--auth-accent),var(--auth-accent-strong)); box-shadow:0 11px 24px rgba(var(--auth-rgb),.24); }
#authenticationOverlay #authenticationCard .authentication-text-action,
#authenticationOverlay #authenticationCard .authentication-secondary-action button,
#authenticationOverlay #authenticationCard .authentication-back { color:var(--auth-accent); }
#authenticationOverlay .authentication-story-curve .authentication-story-endpoint { fill:var(--auth-glow); stroke:rgba(var(--auth-rgb),.22); }
#authenticationOverlay #authenticationCurveGradient stop:last-child { stop-color:var(--auth-glow); }
#authenticationOverlay .authentication-logo-shell { filter:drop-shadow(0 12px 20px rgba(var(--auth-rgb),.13)); }
@media(max-width:900px) {
  #authenticationOverlay #authenticationCard { background:transparent; }
}
/* Mesures brutes et objectifs : synthèse de suivi, sans score supplémentaire. */
/* Patient, toutes tailles : un seul système de navigation, sans colonne réservée. */
.app-shell.app-layout.patient-mode { --sb-w:0px; grid-template-columns:minmax(0,1fr); }
.app-shell.patient-mode > #appSidebar,
.app-shell.patient-mode > #appSidebar.open { display:none !important; }
.app-shell.patient-mode > .app-main { grid-column:1; min-width:0; width:100%; }
.measurement-goal-overview { margin:18px 0; padding:20px; border:1px solid var(--border); border-radius:24px; background:rgba(255,255,255,.82); box-shadow:0 5px 18px rgba(67,52,110,.05); }
.measurement-goal-overview > header { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; align-items:baseline; margin-bottom:16px; }
.measurement-goal-overview h4 { margin:0; font-size:19px; }
.measurement-goal-overview > header > span,.measurement-goal-empty { color:var(--tx-3); font-size:13px; }
.measurement-goal-group { padding:16px 0; border-top:1px solid var(--border); }
.measurement-goal-group h5 { margin:0 0 7px; font-size:16px; }
.measurement-goal-group > p { margin:6px 0; line-height:1.5; }
.measurement-goal-group > small { color:var(--tx-3); }
.measurement-goal-result { display:grid; grid-template-columns:minmax(0,1fr) minmax(140px,.6fr); gap:12px 20px; padding:16px 0; border-top:1px solid var(--border); margin-top:12px; overflow-wrap:anywhere; }
.measurement-goal-result small { display:block; color:var(--tx-3); font-size:13px; line-height:1.5; margin-top:5px; }
.measurement-goal-values > strong { font-size:20px; }
.measurement-goal-values > span { display:block; margin-top:5px; font-size:13px; }
.measurement-goal-result details { grid-column:1/-1; }
.measurement-goal-overview summary { cursor:pointer; padding:10px 0; min-height:44px; box-sizing:border-box; color:var(--primary-dk); font-size:14px; }
.measurement-goal-result details p,.measurement-goal-result li { font-size:13px; line-height:1.5; }
.measurement-goal-link { display:flex; align-items:end; gap:12px; flex-wrap:wrap; }
.measurement-goal-link label { flex:1 1 180px; font-size:13px; }
.measurement-goal-link select { display:block; width:100%; min-height:44px; margin-top:7px; border:1px solid var(--border); border-radius:12px; background:var(--surface,#fff); padding:8px; color:var(--tx-1); }
.measurement-goal-link button { min-height:44px; }
@media(max-width:600px) {
  .measurement-goal-overview { padding:16px; }
  .measurement-goal-result { grid-template-columns:minmax(0,1fr); }
  .measurement-goal-link select { font-size:16px; }
  .measurement-goal-link button { width:100%; }
}
/* A non-modal, independently refreshed view: never takes over the patient file. */
.autonomy-control { position:fixed;right:100px;bottom:24px;z-index:2100;color:var(--tx-1,#29233c); }
.autonomy-control[hidden],.autonomy-control-panel[hidden] { display:none !important; }
.autonomy-control-toggle { display:flex;align-items:center;gap:9px;min-height:46px;padding:10px 15px;border:1px solid rgba(110,86,195,.2);border-radius:24px;background:rgba(249,247,255,.94);color:var(--primary-dk,#5b43b2);box-shadow:0 5px 22px rgba(58,39,112,.13),inset 0 1px 0 #fff;font:inherit;font-size:13px;font-weight:750;cursor:pointer;backdrop-filter:blur(16px); }
.autonomy-control-toggle svg { width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round; }
.autonomy-control-toggle strong { display:grid;place-items:center;min-width:25px;height:25px;border-radius:50%;background:var(--primary,#6c54d3);color:#fff; }
.autonomy-control-panel { position:fixed;right:24px;bottom:84px;width:min(410px,calc(100vw - 32px));max-height:calc(100dvh - 120px);display:flex;flex-direction:column;padding:18px;border:1px solid rgba(123,104,180,.2);border-radius:25px;background:rgba(250,248,255,.98);box-shadow:0 16px 60px rgba(48,33,84,.2);backdrop-filter:blur(18px); }
.autonomy-control-panel>header { display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px; }
.autonomy-control-panel>header strong { font-size:20px; }
.autonomy-control-panel>header small { display:block;margin-top:5px;color:var(--tx-3,#776c8a); }
.autonomy-control-panel>header button { width:40px;height:40px;border:1px solid rgba(123,104,180,.14);border-radius:50%;background:#fff;color:inherit;font-size:24px;cursor:pointer; }
#autonomyControlStatus { margin:0;font-size:13px;line-height:1.5; }
#autonomyControlStatus:not(:empty) { padding:10px 0; }
#autonomyControlList { overflow:auto;overscroll-behavior:contain;display:grid;gap:12px;min-height:0; }
.autonomy-control-card { padding:15px;border:1px solid rgba(123,104,180,.14);border-radius:19px;background:rgba(255,255,255,.9);box-shadow:0 3px 10px rgba(65,47,106,.04); }
.autonomy-control-identity { display:grid;gap:4px; }
.autonomy-control-identity strong { font-size:16px; }
.autonomy-control-identity span { font-size:13px;color:var(--tx-3,#776c8a); }
.autonomy-control-identity small { color:var(--tx-4,#8e859c);font-size:11px; }
.autonomy-control-state { display:inline-block;margin:12px 0 8px;border-radius:12px;padding:5px 9px;background:#efebfc;color:#58409a;font-size:12px;font-weight:700; }
.autonomy-control-card.is-finished .autonomy-control-state { background:#e7f2ef;color:#34695b; }
.autonomy-control-progress { display:flex;align-items:center;gap:10px; }
.autonomy-control-progress progress { width:100%;height:6px;accent-color:var(--primary,#6c54d3); }
.autonomy-control-progress small { flex-shrink:0;font-size:11px; }
.autonomy-control-card blockquote { margin:12px 0;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere; }
.autonomy-control-card footer { display:flex;gap:8px;flex-wrap:wrap;margin-top:12px; }
.autonomy-control-card footer button { flex:1;min-height:42px;padding:9px 10px;font-size:12px;border-radius:13px; }
.autonomy-control button:focus-visible { outline:3px solid #afa0ef;outline-offset:3px; }
.autonomy-control-toggle { transition:box-shadow .18s ease,background .18s ease; }
.autonomy-control-toggle:hover { background:#fff;box-shadow:0 7px 25px rgba(58,39,112,.18); }
.autonomy-control-mobile-summary,.autonomy-control-chevron { display:none; }
.autonomy-completion-notice { position:fixed;top:24px;right:24px;max-width:min(390px,calc(100vw - 32px));padding:13px 18px;border:1px solid rgba(110,86,195,.18);border-radius:19px;background:rgba(247,244,253,.97);box-shadow:0 6px 24px rgba(58,39,112,.13),inset 0 1px 0 #fff;color:var(--primary-dk,#5b43b2);font-size:14px;font-weight:650;line-height:1.45;overflow-wrap:anywhere;pointer-events:none;animation:autonomyNoticeIn .2s ease-out; }
.autonomy-completion-notice[hidden] { display:none !important; }
.exercise-benefit-input { margin:14px 0;padding:15px;border:1px solid rgba(69,104,173,.16);border-radius:20px;background:rgba(235,242,255,.65);color:var(--tx-1,#29233c); }
.exercise-benefit-input>strong { display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:15px; }
.exercise-benefit-input>strong small { font-size:12px;font-weight:500;color:var(--tx-3,#776c8a); }
.exercise-benefit-choices { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:12px 0; }
.exercise-benefit-choices button { min-height:44px;padding:9px;border:1px solid rgba(69,104,173,.2);border-radius:14px;background:rgba(255,255,255,.9);color:#345489;font:inherit;font-size:13px;font-weight:650;cursor:pointer;transition:background .15s,box-shadow .15s; }
.exercise-benefit-choices button:hover { background:#edf3ff;box-shadow:0 3px 9px rgba(69,104,173,.1); }
.exercise-benefit-choices button:focus-visible { outline:3px solid #8da8db;outline-offset:2px; }
.exercise-benefit-choices button:disabled { opacity:.55;cursor:wait; }
.exercise-benefit-input details,.exercise-benefit-return,.exercise-benefit-history { margin-top:10px;font-size:13px; }
.exercise-benefit-input summary,.exercise-benefit-return>summary,.exercise-benefit-history>summary { cursor:pointer;padding:9px 0;line-height:1.4; }
.exercise-benefit-input label { display:grid;gap:5px;margin:9px 0; }
.exercise-benefit-input select,.exercise-benefit-input textarea { width:100%;min-height:44px;padding:9px;border:1px solid rgba(69,104,173,.2);border-radius:12px;background:#fff;color:inherit;font:inherit; }
.exercise-benefit-input [data-benefit-status]:empty { display:none; }
.exercise-benefit-input [data-benefit-status] { margin:8px 0 0;font-size:12px; }
.exercise-benefit-history ol { list-style:none;padding:0;display:grid;gap:10px;max-height:360px;overflow:auto; }
.exercise-benefit-history li { display:grid;gap:5px;padding:12px;border:1px solid rgba(110,86,195,.13);border-radius:15px;background:rgba(255,255,255,.75); }
.exercise-benefit-history li p { margin:2px 0;white-space:pre-wrap;overflow-wrap:anywhere; }
.exercise-benefit-history small { color:var(--tx-3,#776c8a); }
.gym-command-bar:has(#gymLibraryTransfer) { flex-wrap:wrap; }
.gym-card-actions { display:flex;flex-wrap:wrap;gap:8px;align-items:center; }
.exercise-autonomy-definition { margin:10px 0;padding:8px 10px;border:1px solid rgba(var(--primary-rgb),.16);border-radius:14px;background:rgba(var(--primary-rgb),.035); }
.exercise-autonomy-definition>summary { min-height:36px;cursor:pointer;font-size:12px;font-weight:650; }
.exercise-autonomy-fields { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
.exercise-autonomy-fields label { display:grid;gap:6px;min-width:0;font-size:12px; }
.exercise-autonomy-fields select { width:100%;min-height:44px;min-width:0;max-width:100%;border-radius:12px;padding:8px;background:rgba(255,255,255,.9);color:var(--tx-2);border:1px solid rgba(var(--primary-rgb),.2); }
@media(max-width:600px){.exercise-autonomy-fields{grid-template-columns:minmax(0,1fr);}.exercise-autonomy-fields select{font-size:16px;}}
#gymCustomExerciseCancel[hidden] { display:none !important; }
.gym-card-actions button,.gym-collection-selection { min-height:44px; }
.gym-collection-selection { display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:14px;background:rgba(110,86,195,.08);cursor:pointer; }
.gym-collection-selection input { width:20px;height:20px;accent-color:var(--primary,#6e56c3); }
.gym-template-card>.primary-btn { margin-top:8px;min-height:44px; }
.gym-active-collection-actions { flex-wrap:wrap; }
.programme-adapter footer { flex-wrap:wrap; }
.programme-adapter footer button[type="submit"]:last-child { background:var(--primary,#6e56c3);color:#fff; }
.programme-adapter footer button[value="copy"]:not(:last-child) { background:#f3f0ff !important;color:#4936aa !important; }
@media(max-width:600px){.programme-adapter footer button{flex:1 1 100%;}.programme-adapter input,.programme-adapter textarea{font-size:16px;}}
#gymLibraryTransfer { order:3;flex:0 0 100%;box-sizing:border-box;min-width:0;max-width:100%;margin:0;padding:12px 16px;border:1px solid rgba(110,86,195,.15);border-radius:18px;background:rgba(248,246,255,.75); }
#gymLibraryTransfer>summary { cursor:pointer;font-size:13px;font-weight:650;padding:4px 0; }
#gymLibraryTransfer label { display:grid;gap:7px;margin:12px 0;font-size:13px; }
#gymLibraryTransfer textarea,#gymLibraryTransfer select { max-width:100%;width:100%;padding:10px;border:1px solid rgba(110,86,195,.2);border-radius:12px;background:#fff;color:inherit;font:inherit; }
#gymLibraryTransfer button { margin:4px;min-height:44px;padding:9px 13px;border:1px solid rgba(110,86,195,.2);border-radius:13px;background:rgba(255,255,255,.9);color:var(--primary-dk,#5b43b2);font:inherit;font-size:13px;cursor:pointer; }
#gymLibraryTransfer button:disabled { opacity:.5;cursor:wait; }
#gymLibraryTransfer p { font-size:13px;line-height:1.5;overflow-wrap:anywhere; }
#gymLibraryTransfer [hidden] { display:none !important; }
@media(max-width:600px){#gymLibraryTransfer{max-width:100%;}#gymLibraryTransfer textarea,#gymLibraryTransfer select{font-size:16px;}#gymLibraryTransfer button{width:100%;margin:4px 0;}}
@media(max-width:600px) { .exercise-benefit-choices { grid-template-columns:repeat(2,minmax(0,1fr)); }.exercise-benefit-input select,.exercise-benefit-input textarea { font-size:16px; } }
@media(prefers-reduced-motion:reduce) { .exercise-benefit-choices button { transition:none; } }
@keyframes autonomyNoticeIn { from { opacity:0;transform:translateY(-4px); } to { opacity:1;transform:translateY(0); } }
@media(max-width:900px) {
  .autonomy-control { top:0;left:0;right:0;bottom:auto;display:grid;gap:6px;padding:calc(6px + env(safe-area-inset-top)) 10px 6px;background:rgba(247,244,253,.98);border-bottom:1px solid rgba(123,104,180,.12); }
  .autonomy-control-toggle { width:100%;min-height:44px;padding:8px 12px;box-shadow:0 2px 9px rgba(58,39,112,.07);border-radius:15px;font-size:12px;gap:8px; }
  .autonomy-control-toggle .autonomy-control-desktop-label,.autonomy-control-toggle #autonomyControlCount { display:none; }
  .autonomy-control-mobile-summary { display:block;flex:1;text-align:left;line-height:1.4; }
  .autonomy-control-toggle svg { flex:0 0 20px;width:20px;height:20px; }
  .autonomy-control-chevron { display:block; }
  .autonomy-control-toggle[aria-expanded="true"] .autonomy-control-chevron { transform:rotate(180deg); }
  .autonomy-control-panel { position:static;width:100%;max-height:min(34dvh,285px);padding:10px;border-radius:17px;box-shadow:0 4px 14px rgba(48,33,84,.07);backdrop-filter:none; }
  .autonomy-completion-notice { position:static;max-width:none;padding:8px 12px;border-radius:13px;box-shadow:none;font-size:12px; }
  .autonomy-control-panel>header { padding-bottom:6px; }
  .autonomy-control-panel>header strong { font-size:15px; }
  .autonomy-control-panel>header small { display:none; }
  .autonomy-control-panel>header button { min-width:44px;min-height:44px;width:44px;height:44px;font-size:22px; }
  #autonomyControlList { gap:8px; }
  .autonomy-control-card { padding:10px;border-radius:13px; }
  .autonomy-control-identity strong { font-size:14px; }
  .autonomy-control-identity span { font-size:12px; }
  .autonomy-control-state { margin:7px 0 6px;padding:3px 7px;font-size:11px; }
  .autonomy-control-card footer { margin-top:8px; }
  .autonomy-control-card footer button { min-height:44px;font-size:12px; }
  body.autonomy-mobile-visible .app-shell:not(.patient-mode) > .app-main { padding-top:var(--autonomy-control-inset,0px); }
  body.autonomy-mobile-visible .app-shell:not(.patient-mode) #mainContent { height:calc(100dvh - var(--autonomy-control-inset,0px));min-height:0; }
  body.autonomy-mobile-visible #patientDetailModal.patient-detail-page { top:var(--autonomy-control-inset,0px); }
  body.autonomy-mobile-visible #sessionModeOverlay { top:var(--autonomy-control-inset,0px); }
}
@media(prefers-reduced-motion:reduce) { .autonomy-control-toggle { transition:none; } .autonomy-completion-notice { animation:none; } }
/* Shared technical platform: bounded cards and touch-sized controls. */
.technical-platform-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:16px}
.technical-platform-grid:has(.technical-resource-compact){grid-template-columns:repeat(auto-fill,minmax(min(100%,245px),1fr));gap:12px;align-items:start}
.technical-resource.technical-resource-compact{padding:14px;border-radius:22px;position:relative;box-shadow:0 6px 22px rgba(52,36,86,.04)}
.technical-resource.technical-resource-compact header{display:grid;grid-template-columns:32px minmax(0,1fr);gap:8px;align-items:center}
.technical-resource.technical-resource-compact h3{font-size:1rem;line-height:1.3;margin:0 0 3px;overflow-wrap:anywhere}
.technical-platform .technical-platform-date{justify-content:flex-start;align-items:center;margin-bottom:12px;font-size:.9rem}
.technical-resource-icon{width:32px;height:32px;border-radius:12px;background:rgba(var(--primary-rgb),.08);display:grid;place-items:center;color:var(--primary-dk)}
.technical-resource-icon svg{width:24px;height:24px}
.technical-resource-compact .technical-resource-state{grid-column:2;justify-self:start;padding:3px 8px;font-size:.73rem;background:#ede9f6;color:#5c5275}
.technical-resource-compact .technical-resource-state.is-occupied{background:#e1f0e9;color:#285d4b}
.technical-resource-compact small{font-size:.75rem;line-height:1.4}
.technical-occupation-unknown{margin-top:8px;color:var(--tx-3)}
.technical-forecast-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:13px;font-size:.8rem;flex-wrap:wrap}
.technical-forecast-risk{font-size:.72rem;color:#7b551c;background:#fff1d6;padding:3px 7px;border-radius:9px}
.technical-resource-compact.has-forecast-risk{border-color:#d7b87c}
.technical-day-track{height:18px;position:relative;margin-top:7px;background:linear-gradient(90deg,rgba(var(--primary-rgb),.08) 1px,transparent 1px) 0 0/25% 100%,rgba(var(--primary-rgb),.035);border-radius:7px;overflow:hidden}
.technical-day-track>span{position:absolute;top:3px;height:12px;min-width:2px;border-radius:4px;background:var(--primary,#7160c5);opacity:.7}
.technical-day-track>span:nth-child(even){top:7px;height:8px;background:#5d9aaa}
.technical-day-ticks{display:flex;justify-content:space-between;font-size:.62rem;color:var(--tx-3);margin:3px 0 7px}
.technical-forecast-row{display:grid;grid-template-columns:84px minmax(0,1fr);gap:7px;padding:8px 0;border-top:1px solid rgba(var(--primary-rgb),.08);font-size:.75rem;line-height:1.4}
.technical-forecast-row time{font-variant-numeric:tabular-nums;color:var(--primary-dk);font-weight:650}
.technical-forecast-row strong{display:block;overflow-wrap:anywhere}
.technical-resource-compact .technical-forecast-empty{font-size:.78rem;margin:9px 0;color:var(--tx-3)}
.technical-confirmed{padding:8px 10px;border-radius:12px;background:#e8f3ed;font-size:.78rem;margin-top:9px}
.technical-confirmed-row{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:7px;overflow-wrap:anywhere}
.technical-resource-compact .technical-resource-settings>summary,.technical-resource-compact .technical-forecast-more>summary{padding:8px 0;min-height:28px;font-size:.75rem;font-weight:600}
.technical-resource-compact .technical-resource-settings{margin-top:5px}
@media(max-width:600px){.technical-platform-grid:has(.technical-resource-compact){grid-template-columns:1fr}.technical-resource-compact .technical-resource-settings>summary,.technical-resource-compact .technical-forecast-more>summary{min-height:44px;align-content:center}}
.technical-use>button{justify-self:start}
.technical-platform-date{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 18px;font-weight:600}.technical-platform-date input{max-width:190px}
.technical-resource{padding:18px;border:1px solid var(--border-color,#ddd8ee);border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(241,237,252,.65));box-shadow:0 5px 16px #34245609;min-width:0}
.technical-resource header{display:flex;align-items:start;justify-content:space-between;gap:10px}.technical-resource h3{margin:3px 0 10px;font-size:1.15rem}.technical-resource p{margin:8px 0;overflow-wrap:anywhere}.technical-resource-state{padding:7px 10px;border-radius:16px;background:#e6edf9;color:#3c4d77;font-size:.85rem}.technical-resource-state.is-risk,.technical-exercise-use.is-risk{background:#fff4de;color:#76501a}
.technical-platform details,.technical-exercise-widget details{margin-top:12px}.technical-platform summary,.technical-exercise-widget summary{cursor:pointer;padding:10px 0;font-weight:600}.technical-platform form{display:grid;gap:12px;margin:10px 0}.technical-platform form label{display:grid;gap:6px}.technical-platform form .technical-checkbox,.technical-checkbox{display:flex;align-items:center;gap:8px;min-height:44px}.technical-checkbox input[type=checkbox]{width:20px;height:20px;flex-shrink:0}.technical-platform input:not([type=checkbox]),.technical-platform select{width:100%;min-height:44px;font:inherit;border:1px solid #d8d2e9;border-radius:14px;padding:10px;background:#fff;box-sizing:border-box}.technical-platform button{min-height:44px}.technical-platform li{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:10px 0;flex-wrap:wrap}.technical-platform small{display:block;color:#6d6680}.technical-use{padding:12px 0;border-top:1px solid #ded8ed;display:grid;gap:6px}.technical-platform-status.is-error{color:#985817}.technical-platform-add,.technical-platform-bindings{border-top:1px solid #ded8ed;margin-top:18px;padding-top:8px}.technical-exercise-widget{margin:10px 0;font-size:.9rem}.technical-exercise-use{border-radius:14px;padding:10px;background:#efedf9;margin:6px 0}.technical-exercise-use>span{display:block;font-size:.85rem}.technical-exercise-use p{margin:6px 0;overflow-wrap:anywhere}.technical-exercise-widget small{display:block;font-size:.85rem}.technical-checkbox:focus-within,.technical-platform summary:focus-visible{outline:2px solid #8473c8;outline-offset:3px;border-radius:10px}
@media(max-width:600px){.technical-resource{padding:14px}.technical-platform input,.technical-platform select{font-size:16px}.technical-resource header{flex-wrap:wrap}}
.technical-timing-form{padding:12px;margin:10px 0;border:1px solid rgba(var(--primary-rgb),.15);border-radius:16px;background:rgba(255,255,255,.65)}
.technical-timing-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:10px 0}
.technical-timing-fields label{display:grid;gap:5px;min-width:0}
.technical-timing-fields input{width:100%;min-width:0;box-sizing:border-box;border:1px solid rgba(var(--primary-rgb),.2);border-radius:12px;padding:10px;font:inherit;background:rgba(255,255,255,.8)}
.technical-timing-form button{min-height:44px;margin:4px 4px 4px 0}
.technical-timing-form [data-platform-timing-status]{color:#985817}
.session-exercise-order-buttons{display:inline-flex;gap:5px;margin:4px 8px 6px 0;vertical-align:middle}
.session-exercise-order-buttons button{min-width:44px;min-height:44px;border:1px solid rgba(var(--primary-rgb),.16);border-radius:12px;background:rgba(var(--primary-rgb),.055);color:var(--primary);font-size:1.1rem;cursor:pointer}
.session-exercise-order-buttons button:hover,.session-exercise-order-buttons button:focus-visible{background:rgba(var(--primary-rgb),.12);outline:2px solid rgba(var(--primary-rgb),.25);outline-offset:2px}
.session-exercise-order-buttons button:active{transform:translateY(1px)}
.gym-private-badge{display:inline-flex;align-items:center;border-radius:999px;background:rgba(var(--primary-rgb),.07);padding:5px 10px;font-size:.8rem;color:var(--primary);margin:4px 8px 8px 0}
.gym-contributions{margin:22px 0;border:1px solid rgba(var(--primary-rgb),.15);border-radius:22px;background:rgba(255,255,255,.6);padding:18px}
.gym-contributions>summary{font-weight:650;cursor:pointer}.gym-contributions>summary span{margin-left:8px;border-radius:999px;background:rgba(var(--primary-rgb),.08);padding:3px 9px}
.gym-contribution-card{padding:16px;margin:12px 0;border:1px solid rgba(var(--primary-rgb),.12);border-radius:18px;background:rgba(255,255,255,.74)}
.gym-contribution-card header{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.gym-contribution-card small{display:block;line-height:1.5;color:var(--tx-4)}.gym-contribution-card details{margin:12px 0}.gym-contribution-card button{min-height:44px}
.gym-contribution-dialog{width:min(540px,calc(100vw - 28px));box-sizing:border-box;border:1px solid rgba(var(--primary-rgb),.16);border-radius:24px;padding:24px;color:var(--tx-1);background:#faf9ff;box-shadow:0 24px 70px rgba(40,30,80,.18)}
.gym-contribution-dialog::backdrop{background:rgba(30,22,60,.28);backdrop-filter:blur(5px)}.gym-contribution-dialog header,.gym-contribution-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.gym-contribution-dialog h2{font-size:1.3rem}.gym-contribution-dialog button{min-height:44px}.gym-contribution-dialog p{line-height:1.55}.gym-contribution-dialog [role=status]{color:#985817}
.exercise-board-step{display:block;color:var(--primary);padding:5px 0}.exercise-board-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}.exercise-board-actions button{min-height:44px;border-radius:12px}.exercise-board-actions label{display:flex;align-items:center;gap:6px}.exercise-board-note{line-height:1.5}.exercise-storyboard-dialog .exercise-attachment input:not([type=radio]){width:100%;box-sizing:border-box}
.gym-contribution-dialog{position:fixed;inset:0;margin:auto;height:fit-content;max-height:calc(100dvh - 32px);overflow:auto}
.gym-contribution-dialog .technical-checkbox{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:10px;text-align:left;font-size:13px;line-height:1.5}
.gym-contribution-dialog .technical-checkbox input{width:20px;height:20px;margin:0;justify-self:start}
#exerciseCommunityTab{display:grid;gap:20px;min-width:0}#exerciseCommunityTab.hidden{display:none!important}
.gym-community-propose,.gym-community-catalog{min-width:0;padding:22px;border:1px solid #ded6ed;border-radius:24px;background:linear-gradient(145deg,#fff,#f7f3fc);box-shadow:0 5px 0 #806ba31a}
.gym-community-propose h2,.gym-community-catalog h2{font-size:1.25rem;margin-bottom:16px}
.gym-community-propose label,.gym-contribution-dialog form>label:not(.technical-checkbox){display:grid;gap:8px;font-size:14px;margin:12px 0}
.gym-community-propose select,.gym-contribution-dialog select,.gym-contribution-dialog textarea{box-sizing:border-box;max-width:100%;width:100%;min-height:44px;padding:12px;border:1px solid #d8cfe7;border-radius:13px;background:#fff;color:inherit;font:inherit}
#gymSharedExerciseCatalog,#communityExerciseCatalog{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;margin-top:16px}
.gym-contribution-card{min-width:0;overflow-wrap:anywhere}.gym-contribution-card strong{font-size:16px}.gym-contribution-card>header span{font-size:12px;color:var(--primary-dk)}
@media(max-width:700px){.gym-community-propose,.gym-community-catalog{padding:16px;border-radius:20px}#exerciseCommunityTab>.app-section-header{flex-wrap:wrap;gap:14px}.gym-contribution-dialog footer>button{flex:1 1 130px}}
.exercise-board-preparation-dialog{position:fixed;inset:0;margin:auto;box-sizing:border-box;width:min(720px,calc(100vw - 24px));max-height:calc(100dvh - 28px);overflow:auto;border:1px solid #ded6ed;border-radius:24px;padding:22px;background:linear-gradient(145deg,#fff,#f7f3fc);color:var(--tx);box-shadow:0 20px 60px #33234d33}
.exercise-board-preparation-dialog::backdrop{background:#24193666;backdrop-filter:blur(4px)}
.exercise-board-preparation-dialog header,.exercise-board-preparation-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.exercise-board-preparation-dialog h2{font-size:1.3rem}.exercise-board-preparation-dialog p{line-height:1.5;overflow-wrap:anywhere}.exercise-board-preparation-dialog button{min-height:44px;border-radius:13px;padding:10px 14px;cursor:pointer}.exercise-board-preparation-dialog [role=alert]{color:#9d3c39}
.exercise-board-preparation-step{display:grid;gap:12px;min-width:0;margin:14px 0;padding:16px;border:1px solid #ded6ed;border-radius:18px;background:#ffffffbd}
.exercise-board-preparation-step label{display:grid;gap:7px;font-size:13px;font-weight:600}.exercise-board-preparation-step input,.exercise-board-preparation-step textarea{box-sizing:border-box;width:100%;min-width:0;border:1px solid #d5cbe4;border-radius:12px;padding:11px;font:inherit;color:inherit;background:#fff}.exercise-board-preparation-step textarea{resize:vertical;min-height:90px}
#gymCustomExerciseBoard[hidden],#gymExerciseContributions[hidden],.gym-animation-section[hidden],.gym-exercise-preview img[hidden]{display:none!important}
.technical-mobile-dose-heading{display:none}
@media(max-width:699px){
  .technical-timing-fields{grid-template-columns:minmax(0,1fr)}
  .session-exercise-table td.session-exercise-dose-cell.has-technical-alert{width:auto;grid-column:1/-1;justify-self:stretch}
  .session-exercise-table td.session-exercise-dose-cell.has-technical-alert::before{display:none}
  .session-exercise-dose-cell.has-technical-alert>.technical-exercise-widget{width:100%;min-width:0;margin:0 0 12px;box-sizing:border-box}
  .session-exercise-dose-cell.has-technical-alert .technical-exercise-use{width:100%;box-sizing:border-box;line-height:1.5}
  .technical-mobile-dose-heading{display:block;margin:0 0 4px 3px;color:var(--tx-4);font-size:10px;font-weight:850;letter-spacing:.045em;text-transform:uppercase}
}

/* Gymnase de préparation : catalogue large et véritable éditeur de séance, sans copie. */
body.session-gym-workspace-open { overflow: hidden; }
.session-gym-workspace {
  position: fixed; inset: 12px; z-index: 1850; display: flex; flex-direction: column;
  border: 1px solid rgba(var(--primary-rgb), .16); border-radius: 28px;
  background: #f7f5fc; box-shadow: 0 24px 90px rgba(29, 22, 62, .2); overflow: hidden;
  animation: sessionGymEnter .2s ease-out;
}
.session-gym-workspace-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 22px; background: rgba(255,255,255,.75); border-bottom: 1px solid rgba(var(--primary-rgb),.1); }
.session-gym-workspace-heading > div { display: grid; gap: 4px; min-width: 0; }
.session-gym-workspace-heading span { color: var(--primary); font-size: 11px; font-weight: 800; }
.session-gym-workspace-heading strong { font-size: 15px; color: var(--tx); overflow-wrap: anywhere; }
.session-gym-workspace-heading button { flex-shrink: 0; min-height: 44px; }
.session-gym-workspace-body { display: grid; grid-template-columns: minmax(0,1fr) 420px; min-height: 0; flex: 1; }
.session-gym-library { overflow: auto; min-width: 0; overscroll-behavior: contain; }
.session-gym-library .gym-page { max-width: none; margin: 0; padding: 20px; }
.session-gym-library .gym-hero { min-height: 0; padding: 12px 16px; margin-bottom: 16px; }
.session-gym-library .gym-hero h1 { font-size: 27px; }
.session-gym-library .gym-exercise-grid { grid-template-columns: repeat(auto-fit,minmax(min(220px,100%),1fr)); gap: 14px; }
.session-gym-library .gym-context-line { display: none; }
.session-gym-cart { min-width: 0; overflow: auto; padding: 20px 14px; border-left: 1px solid rgba(var(--primary-rgb),.13); background: rgba(255,255,255,.65); overscroll-behavior: contain; }
.session-gym-cart > header { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 12px; padding-inline: 6px; }
.session-gym-cart h2 { margin: 0; color: var(--tx); font-size: 20px; }
.session-gym-cart > header span { color: var(--tx-4); font-size: 12px; }
.session-gym-cart #sessionList { margin: 0; padding: 0; }
.session-gym-cart .session-compact-header,
.session-gym-cart .session-gym-other-session,
.session-gym-cart .session-gym-pending-slot,
.session-gym-cart .session-preparation-page-navigation,
.session-gym-cart .session-accompaniment,
.session-gym-cart .session-preparation-outline,
.session-gym-cart .session-part-duration,
.session-gym-cart .session-preparation-step-heading,
.session-gym-cart .session-preparation-wizard-actions,
.session-gym-cart .session-preparation-add-part,
.session-gym-cart .session-group > h3,
.session-gym-cart .session-preparation-wizard-nav,
.session-gym-cart .session-workspace-owner,
.session-gym-cart .session-future-preparation-footer { display: none; }
.session-gym-cart .session-item,
.session-gym-cart .session-unified-workspace,
.session-gym-cart .session-future-preparation-body,
.session-gym-cart .session-exercise-block,
.session-gym-cart .session-preparation-step-panel { margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; min-width: 0; }
.session-gym-cart .session-exercise-table-wrap { overflow: visible; }
.session-gym-cart .session-preparation-wizard,
.session-gym-cart .session-preparation-wizard-stage,
.session-gym-cart .session-exercise-details-body { margin: 0; padding: 0; min-height: 0; }
.session-gym-cart .session-exercise-table { display: block; min-width: 0; width: 100%; }
.session-gym-cart .session-exercise-table thead { display: none; }
.session-gym-cart .session-exercise-table tbody { display: grid; gap: 12px; }
.session-gym-cart .session-exercise-table tbody tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); padding: 14px; gap: 12px; border: 1px solid rgba(var(--primary-rgb),.13); border-radius: 22px; background: rgba(255,255,255,.9); box-shadow: 0 5px 16px rgba(49,36,85,.045); }
.session-gym-cart .session-exercise-table td { display: block; min-width: 0; width: auto; padding: 0; border: 0; }
.session-gym-cart .session-exercise-table td:first-child,
.session-gym-cart .session-exercise-dose-cell { grid-column: 1/-1; }
.session-gym-cart .session-exercise-table td:nth-child(3)::before { content: 'Charge'; }
.session-gym-cart .session-exercise-table td:nth-child(4)::before { content: 'Repos'; }
.session-gym-cart .session-exercise-table td::before { display: block; color: var(--tx-4); font-size: 11px; margin-bottom: 4px; }
.session-gym-cart .session-exercise-table input { max-width: 100%; box-sizing: border-box; min-height: 40px; }
.session-gym-cart .session-exercise-name-trigger { font-size: 14px; }
.session-gym-cart .session-exercise-dose-inputs { flex-wrap: wrap; }
.session-gym-cart .session-exercise-reference { font-size: 11px; }
.session-gym-cart .session-gym-compact-row:not(.session-gym-options-open) .session-exercise-intent-cell > :not(.session-exercise-related-control):not(.session-exercise-order-buttons):not(.session-exercise-decision-cell):not(.session-gym-options-toggle) { display: none; }
.session-gym-cart .session-exercise-intent-cell { position: relative; }
.session-gym-cart .session-exercise-related-control { margin: 8px 0 10px; }
.session-gym-cart .session-exercise-order-buttons { display: inline-flex; gap: 4px; }
.session-gym-cart .session-exercise-order-buttons button { min-width: 36px; min-height: 36px; border-radius: 12px; }
.session-gym-options-toggle { border: 0; border-radius: 10px; padding: 6px 10px; color: var(--primary); background: rgba(var(--primary-rgb),.06); font: 700 12px var(--font); cursor: pointer; min-height: 36px; }
.session-gym-cart .session-exercise-name-control { min-height: 32px; }
.session-gym-library #gymLibraryTransfer,
.session-gym-library .gym-community-shortcut { display: none; }
.session-gym-inline-editor { padding: 16px; margin: 0 0 14px; min-width: 0; border: 1px solid rgba(var(--primary-rgb),.24); border-radius: 22px; background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(245,242,255,.95)); box-shadow: 0 8px 26px rgba(var(--primary-rgb),.08); }
.session-gym-inline-editor form { display: grid; gap: 12px; min-width: 0; }
.session-gym-inline-editor header { display: flex; gap: 10px; align-items: center; justify-content: space-between; }
.session-gym-inline-editor h3 { margin: 0; font-size: 16px; line-height: 1.3; overflow-wrap: anywhere; color: var(--tx); }
.session-gym-inline-editor .exercise-search-close { flex-shrink: 0; min-width: 36px; min-height: 36px; }
.session-gym-inline-editor label { display: grid; gap: 6px; color: var(--tx-3); font-size: 12px; min-width: 0; }
.session-gym-inline-editor input,.session-gym-inline-editor select,.session-gym-inline-editor textarea { min-width: 0; width: 100%; box-sizing: border-box; min-height: 44px; padding: 9px 8px; border: 1px solid rgba(var(--primary-rgb),.16); border-radius: 12px; background: rgba(255,255,255,.9); color: var(--tx); font: inherit; font-size: 14px; }
.session-gym-inline-editor input[type=hidden] { display: none; }
.session-gym-inline-editor input:focus-visible,.session-gym-inline-editor button:focus-visible { outline: 3px solid rgba(var(--primary-rgb),.17); outline-offset: 2px; }
.session-gym-quick-dose { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; align-items: end; }
.session-gym-quick-dose label { font-weight: 700; }
.session-gym-quick-dose input { text-align: center; padding-inline: 4px; }
.session-gym-quick-repetitions { display: grid; gap: 6px; min-width: 0; }
.session-gym-quick-repetitions > button { justify-self: start; padding: 0; border: 0; background: transparent; color: var(--primary); font: 750 12px var(--font); cursor: pointer; }
.session-gym-quick-repetitions > button { min-height: 24px; min-width: 56px; text-align: left; }
.session-gym-inline-editor .session-gym-advanced { padding: 10px 12px; background: transparent; }
.session-gym-inline-editor .session-gym-advanced[open] { background: rgba(var(--primary-rgb),.035); }
.session-gym-inline-editor .session-gym-advanced > label { margin-top: 12px; }
.session-gym-inline-editor .session-gym-advanced .session-exercise-effort-parameters,
.session-gym-inline-editor .session-gym-advanced .session-exercise-clinical-targets > div { grid-template-columns: minmax(0,1fr); }
.session-gym-inline-editor .session-gym-confirm-add { min-height: 44px; justify-self: stretch; }
.session-gym-inline-editor [role=status]:empty { display: none; }
.session-gym-inline-editor [role=status] { color: #9a4c16; font-size: 13px; margin: 0; }
.session-gym-library .gym-quick-add:not(:disabled) { justify-self: end; width: 44px; min-height: 44px; padding: 0; border-radius: 50%; font-size: 26px; line-height: 1; }
.has-session-gym-dose > .gym-add-button { display: none; }
.has-session-gym-dose .session-gym-inline-editor { margin: 0 12px 12px; }
.session-gym-advanced { padding: 14px; background: rgba(var(--primary-rgb),.035); border-radius: 18px; }
.session-gym-advanced > summary { cursor: pointer; color: var(--primary); font-weight: 750; }
.session-gym-exercise-description { margin: 0; font-size: 14px; line-height: 1.5; color: var(--tx-3); }
@keyframes sessionGymEnter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media(max-width:1100px) and (min-width:901px) { .session-gym-workspace-body { grid-template-columns: minmax(0,1fr) 360px; } }
@media(max-width:900px) {
  .session-gym-workspace { inset: 0; border: 0; border-radius: 0; }
  .session-gym-workspace-heading { padding: max(12px,env(safe-area-inset-top)) 14px 12px; gap: 8px; }
  .session-gym-workspace-heading strong { font-size: 13px; }
  .session-gym-workspace-heading button { font-size: 12px; max-width: 120px; padding: 8px 12px; }
  .session-gym-workspace-body { display: block; overflow: auto; }
  .session-gym-library { overflow: visible; }
  .session-gym-library .gym-page { padding: 14px; }
  .session-gym-cart { display: none; }
  .session-gym-library .gym-exercise-grid { grid-template-columns: minmax(0,1fr); }
  .session-gym-inline-editor input,.session-gym-inline-editor select,.session-gym-inline-editor textarea { font-size: 16px; }
  .session-gym-inline-editor { padding: 12px; }
}
@media(prefers-reduced-motion:reduce) { .session-gym-workspace { animation: none; } }

/* Le dossier appartient à la page principale ; seuls les outils restent en panneaux. */
body.patient-record-page-open .app-main > .topbar { display:none; }
body.patient-record-page-open #mainContent.main-content {
  padding:0 !important; margin:0; max-width:none; overflow:hidden; min-height:0;
}
body.patient-record-page-open #mainContent > :not(#patientDetailModal) { display:none !important; }
body.patient-record-page-open #mainContent > #patientDetailModal.patient-detail-page {
  position:relative !important; inset:auto !important; width:100%; height:100%; min-height:0;
  padding:0; overflow-y:auto; z-index:auto; animation:none; transform:none !important;
}
body.patient-record-page-open #mainContent > #patientDetailModal > .detail-modal-content {
  width:100%; max-width:1440px; min-height:100%; margin-inline:auto; padding-bottom:32px;
  border:0; border-radius:0; box-shadow:none; background:transparent;
}
.session-planning-overview-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.session-planning-card { min-width:0; min-height:230px; }
.session-planning-card-date > span { display:block; margin-top:5px; color:var(--tx-3); font-size:14px; font-weight:600; }
.session-time-state { font-weight:650; }
.session-planning-card-today { background:linear-gradient(150deg,rgba(var(--primary-rgb),.09),rgba(255,255,255,.9)); }
.session-planning-card-today .session-planning-card-topline time { color:var(--tx-3); font-size:12px; }
.session-today-list { display:grid; gap:7px; margin-top:12px; }
.session-today-list > button {
  display:flex; align-items:center; gap:12px; min-height:52px; width:100%; padding:10px 12px;
  border:1px solid rgba(var(--primary-rgb),.12); border-radius:15px; background:rgba(255,255,255,.7); color:var(--tx); text-align:left;
}
.session-today-list > button > time { font-weight:750; flex:0 0 auto; }
.session-today-list > button > time small { display:block; margin-top:3px; font-size:11px; font-weight:500; }
.session-today-list > button > span:nth-child(2) { display:grid; gap:3px; flex:1; min-width:0; }
.session-today-list small { color:var(--tx-3); }
.session-today-list button:hover,.session-today-list button:focus-visible { background:rgba(var(--primary-rgb),.09); border-color:rgba(var(--primary-rgb),.3); }
.session-time-unconfirmed { margin-top:12px; min-height:44px; white-space:normal; text-align:left; }
@media(max-width:1100px) {
  .session-planning-overview-grid { grid-template-columns:1fr; }
  .session-planning-card { min-height:0; }
}
@media(max-width:900px) {
  /* The floating navigation is outside the record's actual scroll/touch area. */
  body.patient-record-page-open #mainContent > #patientDetailModal.patient-detail-page {
    height:calc(100% - 96px - env(safe-area-inset-bottom)) !important;
    scroll-padding-block:16px;
  }
  body.patient-record-page-open #mainContent > #patientDetailModal > .detail-modal-content { padding-bottom:24px; }
  .patient-detail-page .session-ready-btn { scroll-margin-block:16px; }
  .session-planning-card { padding:16px; }
}
/* Explicit session completion: same exercise surfaces, no premature clinical validation. */
.session-preparation-heading { display:flex; gap:16px; justify-content:space-between; align-items:flex-start; margin-bottom:16px; }
.session-preparation-identity { display:flex; gap:7px 12px; flex-wrap:wrap; align-items:center; min-width:0; }
.session-preparation-identity > strong { font-size:1.3rem; line-height:1.4; }
.session-preparation-identity > span { color:var(--tx-2); font-size:.95rem; }
.session-preparation-heading-actions { display:flex; gap:7px; align-items:start; flex-shrink:0; }
.session-preparation-heading-actions > details { position:relative; }
.session-preparation-heading-actions > details > summary { min-height:44px; padding:10px 13px; border:1px solid rgba(var(--primary-rgb),.16); border-radius:15px; background:rgba(255,255,255,.65); cursor:pointer; color:var(--primary-dk); font-weight:650; }
.session-preparation-heading-actions > details > div { position:absolute; top:calc(100% + 6px); right:0; z-index:30; width:min(280px,80vw); padding:12px; background:rgba(253,252,255,.98); border:1px solid rgba(var(--primary-rgb),.16); border-radius:18px; box-shadow:0 12px 28px #31215120; }
.session-preparation-heading-actions > details:not([open]) > div { display:none; }
body:has(#patientDetailModal.session-preparation-page-open:not(.hidden)) #actionToast { max-width:calc(100vw - 24px); box-sizing:border-box; white-space:normal; overflow-wrap:anywhere; }
.session-preparation-heading-actions button[data-clinical-notebook] { display:block; width:100%; min-height:44px; text-align:left; border:0; border-radius:12px; padding:10px; background:transparent; color:var(--primary-dk); font:inherit; }
.session-preparation-heading-actions button[data-clinical-notebook]:hover { background:rgba(var(--primary-rgb),.08); }
#patientDetailModal.session-preparation-page-open > .clinical-notebook-bookmarks { display:none; }
body.patient-record-page-open #patientDetailModal.session-preparation-page-open > .detail-modal-content { padding-right:24px; }
.session-preparation-page-open .session-accompaniment.is-routine > strong { display:none; }
.session-preparation-page-open .session-accompaniment.is-routine:has(> strong:only-child) { display:none; }
.session-preparation-page-open .session-preparation-outline { margin-bottom:16px; gap:8px; }
.session-preparation-page-open .session-preparation-step-heading > span,
.session-preparation-page-open .session-preparation-step-heading small { display:none; }
.session-preparation-page-open .session-preparation-step-heading { margin-bottom:12px; }
.session-preparation-page-open .session-preparation-wizard-stage { margin-top:0; padding-top:0; }
.session-preparation-page-open .session-current-intent { margin-top:0; }
.session-preparation-page-open .session-preparation-extra { margin-top:12px; }
@media(max-width:720px){.session-preparation-heading{flex-direction:column;gap:10px}.session-preparation-heading-actions{width:100%;justify-content:flex-end}.session-preparation-identity{display:grid;gap:5px}.session-preparation-identity>strong{font-size:1.15rem}.session-preparation-identity>span{font-size:.9rem}body.patient-record-page-open #patientDetailModal.session-preparation-page-open>.detail-modal-content{padding-right:12px}.session-preparation-page-open .session-preparation-outline{display:flex;overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px}.session-preparation-page-open .session-preparation-outline>button{flex:0 0 auto;min-height:44px}}
.session-mode-completion-review { max-width: 820px; }
.session-mode-review-eyebrow { color: var(--primary-color, #6555cf); font-weight: 700; }
.session-mode-completion-review h2 { margin: 8px 0; font-size: clamp(1.6rem, 4vw, 2rem); }
.session-mode-review-list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.session-mode-review-list > li { padding: 18px; border: 1px solid rgba(115,100,170,.18); border-radius: 22px; background: rgba(255,255,255,.65); }
.session-mode-review-list > li > div:first-child { display: grid; gap: 5px; margin-bottom: 12px; }
.session-mode-review-list span, .session-mode-review-status { color: var(--text-secondary, #68637d); }
.session-mode-review-actions { display: grid; gap: 10px; }
.session-mode-review-actions button { min-height: 48px; }
.is-patient-session .session-mode-review-eyebrow { color: #2879b9; }
.is-patient-session .session-mode-review-actions .session-mode-done-btn { background: linear-gradient(135deg, #398cca, #276cae); color: #fff; }
@media (max-width: 600px) { .session-mode-review-list > li { padding: 14px; border-radius: 18px; } }
/* Connected cabinet inbox: treatment is separate from reading messages. */
.assistant-workbar { position:fixed; right:22px; bottom:20px; z-index:1090; width:min(440px,calc(100vw - 32px)); padding:10px 12px; border:1px solid rgba(var(--primary-rgb),.16); border-radius:24px; background:rgba(252,251,255,.94); backdrop-filter:blur(20px); box-shadow:0 12px 45px rgba(55,42,100,.16); }
.assistant-workbar-caption { display:flex; align-items:center; gap:10px; min-height:32px; }
.assistant-workbar-caption > span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; color:var(--tx-3); }
.assistant-workbar form { display:flex; gap:8px; align-items:flex-end; }
.assistant-workbar textarea { flex:1; min-width:0; min-height:44px; max-height:100px; resize:vertical; padding:11px; border:1px solid rgba(var(--primary-rgb),.15); border-radius:16px; background:#fff9; font:inherit; font-size:16px; }
.assistant-workbar button { min-height:36px; }
.assistant-workbar form button { min-width:44px; min-height:44px; padding:8px; border-radius:16px; }
body:has(#synapseAgentPanel[data-tool="messages"]:not(.hidden)) #synapseAssistantDock { visibility:hidden; }
body:has(#synapseAssistantDock:not(.hidden)) #mainContent { padding-bottom:150px; }
#synapseAgentPanel[data-tool="assistant"] { left:auto; right:22px; top:auto; bottom:132px; width:min(520px,calc(100vw - 32px)); height:min(560px,calc(100dvh - 160px)); max-height:calc(100dvh - 160px); display:flex; flex-direction:column; border-radius:26px; z-index:1100; }
#synapseAgentPanel[data-tool="assistant"] .synapse-messaging-contact-bar,
#synapseAgentPanel[data-tool="assistant"] .synapse-messaging-context,
#synapseAgentPanel[data-tool="assistant"] #synapseMessagingInboxBtn,
#synapseAgentPanel[data-tool="assistant"] #connectedConversationWorkflow,
#synapseAgentPanel[data-tool="assistant"] .synapse-agent-composer,
#synapseAgentPanel[data-tool="assistant"] [data-connected-message-notice] { display:none; }
#synapseAgentPanel[data-tool="assistant"] .synapse-messaging-thread-stage { min-height:80px; overflow-y:auto; flex:1; }
#synapseAgentPanel[data-tool="assistant"] .synapse-agent-messages { max-height:none; }
#synapseAgentPanel[data-tool="assistant"] .synapse-agent-suggestions { flex-shrink:0; }
#synapseAgentPanel[data-tool="assistant"].is-expanded { width:min(760px,calc(100vw - 32px)); }
@media(max-width:720px) {
 body:has(#synapseAssistantDock:not(.hidden)) #mainContent { padding-bottom:230px; }
 body:has(#synapseAssistantDock:not(.hidden)) #mobileSynapseAgentLauncher { bottom:calc(202px + env(safe-area-inset-bottom)); }
 .assistant-workbar { right:12px; bottom:calc(82px + env(safe-area-inset-bottom)); width:calc(100vw - 24px); padding:8px 10px; border-radius:22px; }
 #synapseAgentPanel[data-tool="assistant"] { right:12px; bottom:calc(192px + env(safe-area-inset-bottom)); width:calc(100vw - 24px); height:min(560px,calc(100dvh - 220px - env(safe-area-inset-bottom))); max-height:calc(100dvh - 220px - env(safe-area-inset-bottom)); }
 .assistant-workbar button { min-height:44px; }
}
@media(prefers-reduced-motion:reduce){.assistant-workbar{transition:none;}}

/* Temporal relationships are shown without inventing a time or numbering unordered values. */
.measurement-order-note,.measurement-moment-label { display:block; margin:8px 0; font-size:14px; line-height:1.4; color:inherit; opacity:.78; }
.measurement-pair-block { margin:10px 0; padding:12px; border:1px solid color-mix(in srgb,currentColor 14%,transparent); border-radius:16px; background:color-mix(in srgb,currentColor 4%,transparent); min-width:0; }
.measurement-pair-values { display:grid; grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr); gap:10px; align-items:center; }
.measurement-pair-values > div { display:grid; gap:4px; min-width:0; overflow-wrap:anywhere; }
.measurement-pair-values span { font-size:14px; }
.measurement-pair-values strong { font-size:18px; line-height:1.3; }
.measurement-pair-arrow { text-align:center; opacity:.65; }
.measurement-pair-intervention { margin:10px 0 0; font-size:14px; line-height:1.45; overflow-wrap:anywhere; }
.measurement-pair-protocols { margin-top:8px; }
.measurement-day-records { padding-left:20px; list-style:disc; }
#synapseAgentPanel[data-messaging-role="patient"] { --primary:#4568ad; --primary-dk:#30497d; --primary-rgb:69,104,173; }
#synapseAgentPanel:has(.connected-inbox-contacts) { display:flex; flex-direction:column; z-index:1100; }
#synapseAgentPanel:has(.connected-inbox-contacts) > * { flex-shrink:0; }
#synapseAgentPanel:has(.connected-inbox-contacts) .synapse-messaging-thread-stage { flex:1 1 0; min-height:80px; }
#synapseAgentPanel:has(.connected-inbox-contacts) .is-incoming small { color:var(--tx-3,#726a80); }
.connected-request-history[open] { max-height:120px; overflow-y:auto; }
#synapseConversationList:has(.connected-inbox-filters),
#synapseConversationList:has(.connected-inbox-contacts) { display:block; min-width:0; width:100%; }
.connected-inbox-filters { display:flex; gap:6px; flex-wrap:wrap; padding:4px 0 9px; }
.connected-inbox-filters button { min-height:38px; padding:7px 11px; border-radius:14px; }
.connected-inbox-filters button[aria-pressed="true"] { background:color-mix(in srgb,var(--primary-color,#6850bd) 12%,transparent); box-shadow:inset 0 0 0 1px #9d8dd04d; }
.connected-inbox-contacts { display:flex; gap:8px; overflow-x:auto; padding:3px 0 9px; }
.connected-inbox-contacts [hidden] { display:none !important; }
.connected-inbox-empty { margin:8px; color:#736d86; font-size:.85rem; white-space:normal; }
.connected-inbox-search { display:block; margin-bottom:6px; }
.connected-inbox-search input { width:100%; min-height:44px; border:1px solid #ded8ed; border-radius:14px; padding:9px 12px; background:#ffffffb8; font:inherit; font-size:.85rem; }
#connectedConversationWorkflow:empty { display:none; }
#synapseMessagingInboxBtn { display:none; }
.synapse-agent-panel[data-messaging-role="praticien"][data-messaging-view="conversation"] #synapseMessagingInboxBtn { display:inline-flex; min-height:44px; align-items:center; }
.synapse-agent-panel[data-messaging-role="praticien"][data-messaging-view="conversation"] .synapse-messaging-contact-bar { display:none; }
.synapse-agent-panel[data-messaging-view="inbox"] .synapse-messaging-context,
.synapse-agent-panel[data-messaging-view="inbox"] .synapse-agent-composer,
.synapse-agent-panel[data-messaging-view="inbox"] #synapseMessagingBoundary,
.synapse-agent-panel[data-messaging-view="inbox"] #synapseAgentSuggestions { display:none; }
.synapse-agent-panel[data-messaging-view="inbox"] .synapse-messaging-contact-bar { flex:1; min-height:0; align-items:stretch; overflow-y:auto; }
.synapse-agent-panel[data-messaging-view="inbox"] .synapse-messaging-contact-list { width:100%; max-height:none; overflow:visible; }
.synapse-agent-panel[data-messaging-view="inbox"] .connected-inbox-contacts { display:flex; flex-direction:column; overflow:visible; max-height:none; }
.synapse-agent-panel[data-messaging-view="inbox"] .synapse-messaging-contact { width:100%; min-height:48px; justify-content:flex-start; border-radius:16px; }
#synapseAgentPanel[data-messaging-view="inbox"] .synapse-messaging-thread-stage { display:none; }
.connected-request-details { margin-top:4px; font-size:.8rem; }
.connected-request-details > summary { cursor:pointer; min-height:36px; display:list-item; align-content:center; color:#696077; }
.connected-request-details label { display:flex; align-items:center; gap:8px; }
.connected-request-details select { flex:1; min-width:0; min-height:44px; border:1px solid #dcd7e9; border-radius:13px; background:#fff9; padding:7px 10px; }
.connected-request-toolbar > [data-request-resolve] { margin-left:auto; }
#connectedConversationWorkflow { padding:8px 16px; background:#f6f4fc99; border-block:1px solid #dcd5ed66; }
.connected-request-toolbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.connected-request-state { padding:6px 10px; border-radius:20px; background:#eee8fa; color:#54418a; font-size:.8rem; font-weight:700; }
.connected-request-state.is-resolved { background:#e9f5ef; color:#31684f; }
.connected-request-toolbar label { display:flex; align-items:center; gap:6px; flex:1; font-size:.8rem; }
.connected-request-toolbar select { width:100%; min-width:120px; min-height:42px; padding:7px 10px; border:1px solid #dcd7e9; border-radius:13px; background:#fff9; }
.connected-request-toolbar button { min-height:42px; padding:8px 13px; }
.connected-request-history { font-size:.8rem; margin-top:8px; }
.connected-request-history summary { cursor:pointer; color:#696077; padding:4px 0; }
.connected-request-history p { margin:8px 0; }
.connected-request-history small { display:block; color:#797186; }
.connected-message-notice { min-height:1.2em; margin:4px 16px; font-size:.82rem; color:#6b617a; }
.connected-message-legacy { border-top:1px solid #ded6ed; padding:12px; margin-top:12px; font-size:.85rem; }
.connected-message-legacy article { padding:8px; background:#f8f6fc; border-radius:12px; margin-top:7px; }
.synapse-agent-message small { display:block; font-size:.72rem; opacity:.75; }
@media(max-width:720px) {
 .connected-request-toolbar { gap:7px; }
 .connected-request-toolbar label { flex-basis:calc(100% - 95px); min-width:0; }
 .connected-request-toolbar button { margin-left:auto; min-height:44px; }
 #connectedConversationWorkflow { padding:8px 12px; }
 .connected-inbox-filters button { min-height:44px; }
}
.exercise-preparation-summary { display:block; margin:6px 0; line-height:1.45; color:var(--text-muted,#6d6683); overflow-wrap:anywhere; }
.exercise-preparation-summary.is-warning { color:#915716; background:#fff3db; padding:8px 10px; border-radius:12px; }
.exercise-preparation-dialog { width:min(480px,calc(100vw - 32px)); max-height:85dvh; box-sizing:border-box; overflow:auto; border:1px solid #ded9ee; border-radius:24px; padding:22px; color:#29233e; background:#fbfaff; box-shadow:0 24px 80px #30234e35; }
.exercise-preparation-dialog::backdrop { background:#211a3c55; backdrop-filter:blur(5px); }
.exercise-preparation-dialog[open] { position:fixed; inset:0; margin:auto; height:fit-content; }
.exercise-preparation-dialog header button { border:1px solid #ded9ee; border-radius:14px; background:#f2eefb; color:#5740a1; }
.exercise-preparation-dialog button:focus-visible { outline:2px solid #7560cf; outline-offset:3px; }
.exercise-preparation-dialog header,.exercise-preparation-dialog footer { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.exercise-preparation-dialog h2 { margin:0; font-size:1.2rem; }
.exercise-preparation-dialog button { min-height:44px; }
.exercise-preparation-choices { display:grid; gap:8px; }
.exercise-preparation-dialog .exercise-preparation-choices label { display:flex; flex-direction:row; align-items:center; gap:12px; padding:12px; min-height:44px; box-sizing:border-box; border-radius:14px; background:#eeeaf8; overflow-wrap:anywhere; }
.exercise-preparation-dialog header button { min-width:44px; width:44px; padding:8px; flex:0 0 44px; }
.exercise-preparation-dialog .exercise-preparation-choices input { width:20px; height:20px; margin:0; flex:0 0 20px; }
.exercise-preparation-dialog [data-preparation-error] { color:#915716; }
.technical-coordination-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:12px; }
.technical-coordination-actions button { min-height:44px; white-space:normal; overflow-wrap:anywhere; }
.technical-slot-editor { margin-top:8px; border-top:1px solid rgba(117,96,207,.12); padding-top:8px; }
.technical-slot-editor summary { min-height:44px; display:flex; align-items:center; cursor:pointer; font-weight:650; color:#6550ad; }
.technical-slot-editor form { display:grid; gap:10px; padding-top:8px; }
.technical-slot-editor label { display:grid; gap:5px; min-width:0; }
.technical-slot-editor input { width:100%; min-width:0; min-height:44px; box-sizing:border-box; }
.technical-slot-fields { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.technical-slot-editor [data-slot-risk],.technical-slot-editor [data-slot-error] { color:#915716; font-size:13px; margin:0; }
.technical-slot-editor [data-slot-risk]:empty,.technical-slot-editor [data-slot-error]:empty { display:none; }
.technical-availability-history { margin:10px 0; padding:12px 16px; background:rgba(255,255,255,.65); border:1px solid #ded9ee; border-radius:16px; }
.action-toast.technical-availability-toast { position:fixed; top:calc(env(safe-area-inset-top,0px) + 72px); right:16px; z-index:25000; width:max-content; max-width:min(620px,calc(100vw - 32px)); box-sizing:border-box; white-space:normal; overflow-wrap:anywhere; pointer-events:none; line-height:1.45; transform:none; animation:platformAvailabilityIn .18s ease-out; background:rgba(247,245,255,.98); color:#4f3b83; border:1px solid #dcd5f1; box-shadow:0 8px 24px #31295526; }
@media(max-width:699px){.action-toast.technical-availability-toast{top:calc(env(safe-area-inset-top,0px) + 112px);}}
@keyframes platformAvailabilityIn { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce){.action-toast.technical-availability-toast{animation:none;}}
.technical-platform-grid:has(.technical-resource-tile){grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;align-items:stretch}
.technical-resource.technical-resource-compact.technical-resource-tile{padding:12px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:190px;box-sizing:border-box;cursor:pointer;background:linear-gradient(145deg,rgba(255,255,255,.95),rgba(242,238,252,.8));transition:box-shadow .18s ease,border-color .18s ease}
.technical-resource-tile:hover{box-shadow:0 8px 24px rgba(75,54,121,.1);border-color:#b6a8da}
.technical-resource.technical-resource-tile header{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:7px;width:100%}
.technical-resource.technical-resource-tile h3{margin:0;font-size:.95rem;line-height:1.3}
.technical-resource-tile h3 button{border:0;background:transparent;color:inherit;font:inherit;font-weight:700;text-align:left;padding:0;min-height:44px;width:100%;overflow-wrap:anywhere;cursor:pointer}
.technical-resource-tile h3 button{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.technical-resource-tile .technical-resource-icon{width:28px;height:28px}
.technical-resource-tile .technical-resource-state{max-width:100%;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere}
.technical-resource.technical-resource-tile .technical-tile-colleague{margin:0;font-size:.79rem;line-height:1.35;overflow-wrap:anywhere}
.technical-tile-risk{font-size:.73rem;line-height:1.35;color:#86561b;background:#fff1d8;padding:4px 7px;border-radius:10px}
.technical-tile-action{margin-top:auto;padding-top:3px;width:100%}
.technical-tile-action button{min-height:44px;width:100%;white-space:normal;font-size:.83rem;padding:8px 10px}
.technical-resource-dialog[open]{position:fixed;inset:0;margin:auto;width:min(600px,calc(100vw - 32px));height:fit-content;max-height:88dvh;box-sizing:border-box;overflow:auto;border:1px solid #ded7ed;border-radius:26px;padding:26px;background:#fbfaff;color:#2c2540;box-shadow:0 24px 80px #30234e35}
.technical-resource-dialog::backdrop{background:#211a3c55;backdrop-filter:blur(5px)}
.technical-resource-dialog .technical-resource-details{border:0;box-shadow:none;background:transparent;padding:0}
.technical-resource-dialog .technical-resource-details header{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;padding-right:44px}
.technical-resource-dialog .technical-resource-details header .technical-resource-state{grid-column:2;justify-self:start}
.technical-resource-dialog .technical-resource-close{position:sticky;float:right;top:0;z-index:1;min-width:44px;min-height:44px;border:1px solid #ddd5ee;border-radius:15px;background:#f0ebfa;color:#5e469e;cursor:pointer}
.technical-resource-dialog .technical-day-track{margin-top:10px}
.technical-resource-tile button:focus-visible,.technical-resource-dialog button:focus-visible{outline:2px solid #7560cf;outline-offset:3px}
@media(max-width:699px){.technical-platform-grid:has(.technical-resource-tile){grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.technical-resource.technical-resource-compact.technical-resource-tile{padding:11px;min-height:190px;border-radius:20px}.technical-resource.technical-resource-tile header{grid-template-columns:1fr;gap:2px}.technical-resource.technical-resource-tile h3{font-size:.91rem}.technical-resource-dialog[open]{inset:0;margin:0;width:100%;height:100dvh;max-height:100dvh;max-width:none;border-radius:0;padding:calc(env(safe-area-inset-top,0px) + 18px) 18px calc(env(safe-area-inset-bottom,0px) + 28px)}}
@media(prefers-reduced-motion:reduce){.technical-resource.technical-resource-tile{transition:none}}
.technical-view-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0}
.technical-view-switch{display:inline-flex;padding:4px;background:#eae5f6;border:1px solid #ded6ef;border-radius:18px;gap:4px}
.technical-view-switch button{min-height:44px;border:0;border-radius:14px;padding:8px 18px;font:inherit;font-weight:650;background:transparent;color:#6e6385;cursor:pointer}
.technical-view-switch button[aria-pressed="true"]{background:linear-gradient(145deg,#846ad9,#6651b9);color:white;box-shadow:0 3px 9px #45316a22}
.technical-layout-editor{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px;margin:12px 0;border:1px solid #d8cee9;border-radius:20px;background:#f2edfc}
.technical-layout-editor>div:first-child{display:grid;gap:4px;min-width:0;max-width:100%}.technical-layout-editor small{overflow-wrap:anywhere}
.technical-layout-directions,.technical-layout-save{display:flex;flex-wrap:wrap;gap:6px}
.technical-layout-directions button{width:44px;min-height:44px;border:1px solid #d9cfed;border-radius:14px;background:#fffaff;color:#62479d;font-size:20px;cursor:pointer}
.technical-layout-save button{min-height:44px}
.technical-layout-message:empty{display:none}.technical-layout-message{font-size:.85rem;color:#76532b;line-height:1.5}.technical-plan-hint{font-size:.83rem;color:#726482;margin:8px 0}
.technical-plan-viewport{width:100%;height:min(68dvh,760px);min-height:340px;overflow:auto;overscroll-behavior:contain;border:1px solid #d8d0e9;border-radius:24px;background:#f0edf7;box-shadow:inset 0 2px 10px #34245608;scrollbar-gutter:stable;box-sizing:border-box}
.technical-plan-board{position:relative;background-image:radial-gradient(#b8aaca66 1px,transparent 1px);background-size:24px 24px;min-height:100%}
.technical-plan-node{position:absolute;width:188px;height:260px;box-sizing:border-box;border-radius:22px;transition:box-shadow .15s ease}
.technical-plan-node .technical-resource.technical-resource-tile{width:100%;height:100%;min-height:0;padding:11px;gap:5px;box-sizing:border-box}
.technical-plan-node .technical-resource.technical-resource-tile header{display:grid;grid-template-columns:25px minmax(0,1fr);gap:6px}
.technical-plan-node .technical-tile-colleague{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.technical-plan-node.is-space .technical-resource-tile{border-style:dashed;border-width:2px;background:linear-gradient(140deg,#f7f6ff,#e9e7f7)}
.technical-plan-node.is-selected{outline:3px solid #9777df;outline-offset:3px}.technical-plan-node.is-moving{z-index:5;box-shadow:0 15px 38px #35224c40;opacity:.94}
.technical-plan-handle{position:absolute;right:6px;top:6px;width:44px;min-height:44px;border:1px solid #cabce7;border-radius:14px;z-index:2;background:#ede5fd;color:#6549a1;cursor:grab;touch-action:none;display:grid;place-items:center}
.technical-plan-handle svg{width:22px;height:22px}.technical-plan-board.is-editing .technical-plan-node header{padding-right:40px;box-sizing:border-box}
.technical-plan-handle:active{cursor:grabbing}.technical-plan-viewport:focus-visible,.technical-plan-handle:focus-visible{outline:2px solid #8062c0;outline-offset:3px}
@media(max-width:699px){.technical-view-toolbar{gap:8px}.technical-view-switch button{padding:8px 14px}.technical-layout-editor{padding:12px}.technical-layout-save{width:100%}.technical-layout-save button{flex:1}.technical-plan-viewport{border-radius:20px;height:62dvh}.technical-plan-node .technical-resource.technical-resource-tile h3{font-size:.9rem}}
@media(prefers-reduced-motion:reduce){.technical-plan-node{transition:none}}
.gym-page > .gym-beta-library-available > .gym-toolbar{margin:14px 0 12px;padding:0}
.gym-page #gymExercisesView:not(.hidden){grid-template-columns:minmax(0,1fr)}
.gym-page .gym-filter-panel[hidden]{display:none!important}
.gym-page #gymTemplatesResultsCount{font-size:14px;color:#77678e;margin:8px 0 14px}
.gym-page #gymCollectionFilter{max-width:100%;min-width:0}

/* Préparation : intention dominante, ressources secondaires à la demande. */
.session-preparation-complements > section { padding:14px 0; }
.session-preparation-complements > section + section { border-top:1px solid rgba(var(--primary-rgb),.1); }
.session-preparation-complements h6 { margin:0 0 12px; font-size:14px; color:var(--text-color,#302943); }
.session-preparation-wizard-actions.is-intent-focus { justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; }
.session-preparation-ready-shortcut .session-ready-btn { background:transparent; color:var(--primary); box-shadow:none; border:1px solid rgba(var(--primary-rgb),.16); }
.session-preparation-ready-shortcut .session-ready-btn:hover { background:rgba(var(--primary-rgb),.07); }
@media(max-width:600px) {
  .session-preparation-wizard-actions.is-intent-focus > .primary-btn { flex:1 1 100%; }
  .session-preparation-ready-shortcut { width:100%; text-align:center; }
}

/* Évolution : une mesure, une chronologie, prévisions séparées. */
.clinical-timeline-navigator .ct-latest { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 16px; padding:4px 0 20px; }
.clinical-timeline-navigator .ct-latest > span { flex-basis:100%; font-weight:600; color:#655780; }
.clinical-timeline-navigator .ct-latest strong { font-size:clamp(28px,3vw,40px); letter-spacing:-1px; color:#3e3063; }
.clinical-timeline-navigator .ct-latest small { color:#716783; }
.clinical-timeline-navigator .ct-series { align-items:end; gap:16px; margin-bottom:12px; }
.clinical-timeline-navigator .ct-series label { display:grid; gap:6px; font-size:12px; color:#716783; }
.clinical-timeline-navigator .ct-series select { max-width:100%; min-width:0; background:rgba(255,255,255,.8); }
.clinical-timeline-navigator .ct-periods { margin:8px 0 18px; display:flex; gap:6px; flex-wrap:wrap; }
.clinical-timeline-navigator .ct-periods button { min-height:40px; border-radius:12px; }
.clinical-timeline-navigator .ct-plot { background:linear-gradient(180deg,rgba(115,87,199,.045),rgba(255,255,255,.25)); border:1px solid rgba(115,87,199,.07); border-radius:24px; }
.clinical-timeline-navigator .ct-grid { stroke:#e4dfed; stroke-width:1; stroke-dasharray:3 7; }
.clinical-timeline-navigator .ct-forecast-window { fill:#b6a0dc18; stroke:#ad97d1; stroke-width:1; stroke-dasharray:4 6; }
.clinical-timeline-navigator .ct-curve,.clinical-timeline-navigator .ct-curve.is-score { stroke:#7559ca; stroke-width:2; stroke-dasharray:none; stroke-linecap:round; }
.clinical-timeline-navigator button.ct-dot { width:44px; height:44px; min-height:44px; border:0; border-radius:50%; background:transparent; box-shadow:none; }
.clinical-timeline-navigator .ct-point-core { width:10px; height:10px; border:2px solid #fff; border-radius:50%; background:#7559ca; box-shadow:0 0 0 1px #7559ca,0 3px 8px #7559ca25; }
.clinical-timeline-navigator .ct-dot.is-approximate .ct-point-core { background:white; border:2px dashed #7559ca; }
.clinical-timeline-navigator .ct-dot:hover .ct-point-core,.clinical-timeline-navigator .ct-dot:focus-visible .ct-point-core { box-shadow:0 0 0 6px #7559ca22; }
.clinical-timeline-navigator .ct-end-forecast { display:grid; gap:5px; padding:14px 18px; margin:16px 0; border:1px dashed #b7a5d8; border-radius:16px; background:#f3eefb80; color:#5c487d; }
.clinical-timeline-navigator .ct-end-forecast > span,.clinical-timeline-navigator .ct-end-forecast small { font-size:12px; }
.trajectory-estimate-tools { flex-basis:100%; width:100%; }
.capacity-estimate-editor { padding:12px 0; }
.capacity-estimate-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.capacity-estimate-editor input { max-width:100%; min-width:0; }
.capacity-load-options { margin:12px 0; }
@media(max-width:600px) {
 .clinical-timeline-navigator .ct-series { grid-template-columns:minmax(0,1fr); }
 .clinical-timeline-navigator .ct-navigation { max-width:100%; }
 .clinical-timeline-navigator .ct-navigation span { min-width:0; font-size:11px; }
 .clinical-timeline-navigator .ct-end-forecast { padding:12px; }
 .capacity-estimate-editor .continuity-fields { grid-template-columns:minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) { .clinical-timeline-navigator * { scroll-behavior:auto; transition:none; } }

/* L’assistant réserve de l’espace dans le conteneur qui défile réellement. */
body:has(#synapseAssistantDock:not(.hidden)) #mainContent.main-content {
  padding-bottom:var(--assistant-viewport-clearance,160px);
  scroll-padding-bottom:var(--assistant-viewport-clearance,160px);
}
body.patient-record-page-open:has(#synapseAssistantDock:not(.hidden)) #mainContent > #patientDetailModal > .detail-modal-content {
  padding-bottom:max(32px,var(--assistant-viewport-clearance,160px));
}
body.patient-record-page-open:has(#synapseAssistantDock:not(.hidden)) #patientDetailModal.patient-detail-page {
  scroll-padding-bottom:var(--assistant-viewport-clearance,160px);
}
/* Le repère de première utilisation reste prioritaire sur la barre flottante. */
body:has(#firstUseTutorialModal:not(.hidden)) #synapseAssistantDock { visibility:hidden; }

.assistant-workbar { transition:width .18s ease,border-radius .18s ease,box-shadow .18s ease; }
.assistant-workbar .assistant-workbar-bubble { display:none; }
.assistant-workbar.is-collapsed { width:56px; height:56px; padding:0; border-radius:50%; box-shadow:0 6px 22px rgba(68,46,122,.18); }
.assistant-workbar.is-collapsed > :not(.assistant-workbar-bubble) { display:none; }
.assistant-workbar.is-collapsed .assistant-workbar-bubble { display:grid; place-items:center; width:56px; height:56px; min-height:56px; padding:0; border:0; border-radius:50%; color:#6a50bb; background:linear-gradient(145deg,#fffdfd,#ede5fc); cursor:pointer; position:relative; }
.assistant-workbar-bubble svg { width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linejoin:round; }
.assistant-workbar .assistant-bubble-pending { position:absolute; right:-2px; top:-2px; display:grid; place-items:center; min-width:19px; height:19px; border:2px solid white; border-radius:50%; font-size:10px; color:white; background:#6a50bb; }
.assistant-workbar .assistant-bubble-pending.hidden { display:none; }
.assistant-workbar-bubble:hover { filter:brightness(.98); }
.assistant-workbar-bubble:focus-visible { outline:3px solid #7c64c899; outline-offset:4px; }
#assistantWorkbarCollapse { min-width:36px; font-size:23px; line-height:1; }
@media(prefers-reduced-motion:reduce){.assistant-workbar{transition:none;}}
/* Reusable professional identity and review sheet. */
.document-identity-dialog,.document-preview-dialog{width:min(900px,calc(100vw - 32px));max-height:calc(100dvh - 32px);box-sizing:border-box;overflow:auto;border:1px solid rgba(99,83,160,.18);border-radius:26px;background:#faf9ff;color:#28243f;padding:24px;box-shadow:0 24px 80px #27203a30}
.document-identity-dialog::backdrop,.document-preview-dialog::backdrop{background:#29203e55;backdrop-filter:blur(5px)}
.document-identity-dialog header,.document-preview-dialog>header,.document-profile-site-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.document-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}
.document-profile-grid label,.document-identity-dialog label{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:600}
.document-profile-grid input,.document-profile-grid select,.document-identity-dialog select{width:100%;min-height:44px;box-sizing:border-box;border:1px solid #dcd6ee;border-radius:12px;padding:10px;background:#fff;color:inherit;font:inherit}
.document-profile-grid input[type=checkbox]{width:20px;min-height:20px;align-self:flex-start}
.document-identity-dialog footer,.document-preview-dialog footer{position:sticky;bottom:-24px;padding:16px 0 8px;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;background:#faf9fff5;backdrop-filter:blur(12px)}
.document-preview-paper{padding:28px;border:1px solid #e5e0ed;border-radius:16px;background:white}
.document-preview-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}
.document-letterhead{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding-bottom:18px;margin-bottom:22px;border-bottom:1px solid #e5e0ed;align-items:start;overflow-wrap:anywhere}
.document-letterhead.has-logo{grid-template-columns:auto 1fr 1fr}
.document-letterhead>div,.document-letterhead address{display:flex;flex-direction:column;gap:5px;font-style:normal}
.document-letterhead img{width:64px;height:64px;object-fit:contain}
.document-letterhead time{grid-column:1/-1;text-align:right;font-size:13px;color:#746b86}
.document-letterhead small{font-size:12px}
.document-preview-warning{font-size:13px;color:#795320}
#medicalDocumentSaveMessage:empty{display:none}
@media(max-width:600px){.document-identity-dialog,.document-preview-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:16px;border-radius:20px}.document-profile-grid{grid-template-columns:1fr}.document-preview-paper{padding:16px}.document-letterhead,.document-letterhead.has-logo{grid-template-columns:1fr}.document-letterhead time{grid-column:auto}.document-identity-dialog footer,.document-preview-dialog footer{bottom:-16px}.document-profile-site-heading{flex-wrap:wrap}}
@media print{.document-letterhead{color:#111;break-inside:avoid;box-shadow:none}.document-letterhead img{display:block}}
@media print{.medical-letter-print-sheet .document-letterhead,.patient-plan-print-sheet .document-letterhead,.session-print-sheet .document-letterhead{display:grid;grid-template-columns:1fr 1fr}.medical-letter-print-sheet .document-letterhead.has-logo,.patient-plan-print-sheet .document-letterhead.has-logo,.session-print-sheet .document-letterhead.has-logo{grid-template-columns:auto 1fr 1fr}}
/* Cabinet handovers: bounded coordination, not a second clinical workspace. */
.cabinet-relays { padding:clamp(16px,2vw,28px); margin:16px 0; border:1px solid var(--border-color,#e3ddf1); border-radius:24px; background:rgba(255,255,255,.78); box-shadow:0 8px 26px #48357a09; }
#patientHandovers { --primary:#4568ad; --primary-dk:#30497d; --primary-bg:#edf2fb; --border:#dbe4f3; }
.cabinet-relays>header { display:flex; gap:12px; align-items:center; justify-content:space-between; }
.cabinet-relays h2 { margin:0 0 12px; }
.cabinet-relays button,.cabinet-relays summary { min-height:44px; padding:10px 16px; border-radius:14px; border:1px solid var(--border,#ddd5ef); background:var(--primary-bg,#f3effa); color:var(--primary-dk,#59409a); font:inherit; cursor:pointer; }
.cabinet-relays button:hover { background:color-mix(in srgb,var(--primary,#6258e8) 16%,white); }
.cabinet-relays button:focus-visible { outline:3px solid var(--primary,#a798e5); outline-offset:2px; }
.cabinet-relays button:disabled { opacity:.55; cursor:wait; }
.handover-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin:16px 0; }
.cabinet-relays label { display:flex; flex-direction:column; gap:6px; }
.cabinet-relays input,.cabinet-relays select { min-width:0; width:100%; min-height:44px; border:1px solid #dcd7e9; border-radius:12px; padding:8px; font:inherit; box-sizing:border-box; }
.cabinet-relays fieldset { display:flex; gap:12px; flex-wrap:wrap; margin:12px 0; border:0; padding:0; }
.cabinet-relays .handover-patient { flex-direction:row; align-items:center; }
.handover-patient input { width:22px; min-height:22px; }
.handover-card { padding:16px; margin:12px 0; border:1px solid #e5dff0; border-radius:18px; background:#ffffffa8; }
.handover-card>div:first-child,.handover-member { display:flex; flex-direction:column; gap:5px; }
.handover-card-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:12px 0; }
.handover-card small,.handover-member small { color:#746989; }
.handover-member { padding:12px 16px; background:#ffffffa0; border-radius:16px; }
.planning-relay-preview { cursor:default; --appointment-color:#7560bf; }
#handoverSlots { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
#handoverSlots p { flex-basis:100%; }
@media(max-width:600px){.cabinet-relays>header{align-items:flex-start;flex-direction:column}.handover-card-actions>*{max-width:100%}.handover-card-actions{align-items:stretch}.handover-fields{grid-template-columns:1fr}.cabinet-relays{border-radius:20px}.handover-card{overflow-wrap:anywhere}}

.calf-context-reminder { margin:0 0 16px; padding:12px 16px; border-left:3px solid #8674df; border-radius:12px; background:#f4f1fc; color:#413764; }
.calf-context-main { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; }
.calf-context-main > span { flex:1 1 240px; }
.calf-context-reminder details { margin-top:6px; font-size:.85rem; }
.calf-context-reminder summary { cursor:pointer; }
@media(max-width:600px){.calf-context-reminder{padding:10px 12px}.calf-context-main>span{flex-basis:100%}.calf-context-main button{min-height:44px;max-width:100%;white-space:normal}}
