/* client-space.css — owned by P16 (client profile frame).
   Scope: Mon espace: coordonnées, Mon dossier, navigation, sign-out and session.
   Created empty by P00 (2026-10-11) so the cascade order is fixed before any
   rule lands: styles.css → primary-hub.css → primary-hub-day.css →
   notary-howto.css → hub-*.css → client-*.css, all before action-controls.css.
   new-sheets-tokens.test.mjs holds this sheet to tokens only: no literal colour,
   no off-scale px spacing, no px font-size, and every selector has a consumer. */

/* The profile shows the bell state first; the existing switches save in place
   inside the native sheet. IDs and preference ownership are unchanged. */
#profil-notifications-state { font-family: var(--font-display); font-size: var(--type-h4); line-height: var(--type-h4-lh); color: var(--ink); }
#profil-notifications-dialog .profil-switches { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 var(--gap); }
#profil-notifications-dialog .switch-row { display: flex; align-items: center; min-height: var(--control-height); padding-block: var(--space-4); gap: var(--space-5); border-bottom: 1px solid var(--border); }
#profil-notifications-dialog .switch-title { font-size: var(--type-body); line-height: var(--type-body-lh); overflow-wrap: anywhere; }
@media (min-width: 600px) { #profil-notifications-dialog .profil-switches { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Customer identity/preferences: the existing profile navigation and native
   swatches stay intact; descriptions and saved/error states read at one floor. */
#pane-profil .profil-fields { grid-template-columns: repeat(auto-fit, minmax(min(calc(var(--control-height) * 5), 100%), 1fr)); gap: var(--space-5) var(--space-7); }
#pane-profil .profil-fields .form-row { min-width: 0; }
#pane-profil .profil-nav-item { min-width: 0; overflow-wrap: anywhere; }
#pane-profil .profil-field-error,
#pane-profil .profil-save-status { font-size: var(--type-h4); line-height: var(--type-body-lh); overflow-wrap: anywhere; }
#pane-profil .profil-field-error { color: var(--danger); }
#pane-profil .parr-code-row,
#pane-profil .partner-link-row { flex-wrap: wrap; min-width: 0; gap: var(--space-5); }
#pane-profil .parr-code { min-width: 0; overflow-wrap: anywhere; }
#profil-notifications-dialog .dlg-x,
#profil-message-dialog .dlg-x,
#auth-dialog .dlg-x,
#contact-dialog .dlg-x,
#cancel-dialog .dlg-x { min-width: var(--control-height); min-height: var(--control-height); }
#profil-notifications-dialog .dialog-pad > h3,
#profil-message-dialog .dialog-pad > h3,
#auth-dialog .dialog-pad > h3,
#contact-dialog .dialog-pad > h3,
#cancel-dialog .dialog-pad > h3 { padding-inline-end: var(--control-height); }
#profil-message-dialog .dialog-actions,
#cancel-dialog .dialog-actions { flex-wrap: wrap; }
#pane-profil .itip-btn,
#dossier-surface .itip-btn { min-width: var(--control-height); min-height: var(--control-height); }
#profil-message-dialog .partner-msg-text { overflow-wrap: anywhere; }

/* The one dossier surface moves into the signed-in profile. The same intrinsic
   cards therefore cover the local draft and its authenticated presentation. */
#dossier-surface .dossier-grid { min-width: 0; grid-template-columns: repeat(auto-fill, minmax(min(calc(var(--control-height) * 6), 100%), 1fr)); gap: var(--space-5); }
#dossier-surface .dossier-item { min-width: 0; gap: var(--space-5); }
#dossier-surface .dossier-body { min-width: 0; overflow-wrap: anywhere; }
#dossier-surface .dossier-name { font-size: var(--type-body); line-height: var(--type-body-lh); }
#dossier-surface .dossier-missing,
#dossier-surface .file-note,
#dossier-surface .file-error,
#dossier-surface .dossier-sync .help { font-size: var(--type-h4); line-height: var(--type-body-lh); overflow-wrap: anywhere; }
#dossier-surface .doc-file { flex-wrap: wrap; min-width: 0; gap: var(--space-4); }
#dossier-surface .doc-file-name { min-width: 0; flex: 1 1 auto; overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
#dossier-surface .doc-valid,
#dossier-surface .file-cta,
#dossier-surface .doc-actions .btn,
#dossier-surface .doc-file .btn,
#dossier-surface .doc-transmis .btn,
#dossier-surface .consent-choice { min-height: var(--control-height); white-space: normal; overflow-wrap: anywhere; }
#dossier-surface .file-cta { font-size: var(--type-h4); }
#dossier-surface .doc-actions { gap: var(--space-4); }
#dossier-surface .file-field { min-width: 0; max-width: 100%; }
#dossier-surface .file-cta { max-width: 100%; }
#dossier-surface .dossier-sync { border-inline-start: var(--space-1) solid transparent; padding-inline-start: var(--space-5); }
#dossier-surface .dossier-sync[aria-busy="true"] { border-inline-start-color: var(--brand); }
#dossier-surface .dossier-sync:has([data-state="error"]) { border-inline-start-color: var(--danger); }

/* Customer support/contact retain all privacy text and server errors. A capped
   thread starts at its scroll origin; flex-end made older content unreachable. */
#chat-panel .sup-log { justify-content: flex-start; }
#chat-panel .sup-log > .sup-msg { flex-shrink: 0; }
#chat-panel .sup-bubble { font-size: var(--type-body); line-height: var(--type-body-lh); overflow-wrap: anywhere; }
#chat-panel .sup-sub,
#chat-panel .sup-empty,
#chat-panel .sup-chip,
#chat-panel .sup-meta,
#chat-panel .sup-count,
#chat-panel .sup-error,
#chat-panel .sup-ended,
#chat-panel .sup-escalade,
#chat-panel .sup-mail-open,
#chat-panel .sup-courriel-lbl,
#chat-panel .sup-privacy,
#chat-panel .sup-topic-empty,
#chat-panel .sup-courriel-help { font-size: var(--type-h4); line-height: var(--type-body-lh); }
#chat-panel .sup-chip,
#chat-panel .sup-mail-open,
#chat-panel .sup-send { min-height: var(--control-height); white-space: normal; overflow-wrap: anywhere; }
#chat-panel .sup-topics > summary,
#chat-panel .sup-topic-search,
#chat-panel .sup-recover { min-height: var(--control-height); }
#chat-panel .sup-row { flex-wrap: wrap; }
#chat-panel .sup-text { flex: 1 1 calc(var(--control-height) * 3); min-height: var(--control-height); }
#chat-panel .sup-error { overflow-wrap: anywhere; }
#contact-dialog .ct-trust { grid-template-columns: repeat(auto-fit, minmax(min(calc(var(--control-height) * 4), 100%), 1fr)); gap: var(--space-5); }
#contact-dialog .ct-trust-item { min-width: 0; }
#contact-dialog .ct-trust-item strong,
#contact-dialog .ct-trust-item small,
#contact-dialog .ct-field-help { font-size: var(--type-h4); line-height: var(--type-body-lh); overflow-wrap: anywhere; }
#contact-dialog .ct-lede,
#contact-dialog .errors { font-size: var(--type-body); line-height: var(--type-body-lh); overflow-wrap: anywhere; }
