:root{
  --blue:#2f458f;
  --blue2:#23366f;
  --bg:#eef2f7;
  --card:#fff;
  --line:#dbe2ee;
  --text:#17203a;
  --red:#b00020;
  --note-red:#e32626;
  --pink:#f72abe;
  --purple:#8b43ad;
  --ordo:#2f66a3;
  --care:#2d7a31;
  --yellow:#f6eca2;
  --task-green:#c5f09a;
  --hlgreen:var(--task-green);
  --care-due-bg:var(--task-green);
  --care-due-border:#63a87a;
  --vital-security-bg:#c5e5aa;
  --care-done:#c96b62;
  --care-done-soft:#fff1ef;
  --hlorange:#ffe1bd;
}

*{box-sizing:border-box}
html,body{touch-action:pan-y;overscroll-behavior-x:none}
[hidden],.hidden{display:none!important}
body{
  margin:0;
  background:linear-gradient(180deg,#eef2f7,#e5ebf5);
  color:var(--text);
  font-family:"SF Pro Text","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:13px;
  line-height:1.32;
}
body.modal-open{overflow:hidden}
html.care-modal-page-locked{overflow:hidden;overscroll-behavior:none}
body.archived-plan-view{
  background:#56657a;
}

.app{
  max-width:1040px;
  min-height:100vh;
  margin:0 auto;
  padding-bottom:80px;
}
body.archived-plan-view .app{
  background:#56657a;
}

button,.action-link,.action-btn{
  border:0;
  border-radius:11px;
  padding:7px 9px;
  background:var(--blue);
  color:#fff;
  box-shadow:0 3px 8px rgba(16,28,70,.12);
  cursor:pointer;
  font-family:inherit;
  font-size:12px;
  font-weight:800;
  text-decoration:none;
}
button.secondary,
.action-link,
.action-btn,
#addPatientBtn{
  background:#e8edf7;
  color:#24376f;
}
button.danger{background:var(--red);color:#fff}
button.mini{padding:6px 8px;background:#e8edf7;color:#24376f}
button.pink{background:var(--pink)}
button.blue{background:var(--ordo)}
button.purple{background:var(--purple)}
button.red{background:var(--red)}

input,textarea,select{
  width:100%;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  padding:8px 9px;
  font:inherit;
}
textarea{
  min-height:58px;
  resize:vertical;
  overflow-wrap:anywhere;
  white-space:pre-wrap;
}
input::placeholder,textarea::placeholder{
  color:#9aa4b5;
  font-style:italic;
  opacity:1;
}
label{
  display:block;
  margin:8px 0 4px;
  color:#33405e;
  font-weight:800;
}

/* Connexion */
.auth-screen{
  position:fixed;
  inset:0;
  z-index:200000;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:100vh;
  padding:22px;
  overflow:auto;
  background:linear-gradient(180deg,#eef2f7,#e5ebf5);
  pointer-events:auto;
}
.auth-screen[hidden]{display:none!important}
.auth-card{
  position:relative;
  z-index:1;
  width:min(92vw,360px);
  padding:18px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  box-shadow:0 12px 36px rgba(20,40,90,.14);
  pointer-events:auto;
}
.auth-card input,.auth-card button{pointer-events:auto}
body.auth-mode{overflow:auto}
body.auth-mode #appShell{display:none!important;pointer-events:none!important}
body.auth-mode .direct-date-picker{display:none!important}
.auth-card h1{
  margin:0 0 4px;
  color:var(--blue2);
  font-size:22px;
  letter-spacing:.06em;
}
.auth-card p{
  margin:0 0 14px;
  color:#33405e;
  font-weight:800;
}
.auth-card button{width:100%;margin-top:8px}
.auth-card .auth-link-button{
  background:transparent;
  color:var(--blue2);
  box-shadow:none;
  border:0;
  padding:7px 4px;
  font-size:13px;
}
.auth-card .auth-link-button:hover{text-decoration:underline}
.auth-message{min-height:18px;margin-top:10px;color:var(--red);font-weight:900}
.auth-status{display:none;color:#dce5ff;font-weight:900}
.personal-notes-private{margin:0 0 12px;text-align:center;color:#7b879d;font-style:italic}
.personal-notes-list,.useful-passwords-list{display:grid;gap:8px}
.personal-note-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  padding:9px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.personal-note-open{
  min-height:0;
  padding:0;
  background:transparent;
  color:inherit;
  text-align:left;
  box-shadow:none;
  min-width:0;
}
.personal-note-open strong{display:block;color:#8b1430;font-size:15px}
.personal-note-full-description{
  display:block;
  margin-top:6px;
  color:#7a86a0;
  font-size:13px;
  line-height:1.35;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.personal-note-cabinet-bg{
  background:#ffe1e6;
  border-color:#ff8ba0;
}
.note-bg-toggle{
  min-width:22px;
  width:22px;
  height:22px;
  min-height:22px;
  padding:0;
  border-radius:7px;
  color:transparent;
  background:#fff;
  border:2px solid #ffd3dc;
  box-shadow:none;
  font-size:13px;
  line-height:1;
}
.note-bg-toggle.active{
  background:#ffe1e6;
  border-color:#b80022;
  box-shadow:0 0 0 2px rgba(255,255,255,.95) inset,0 0 0 1px rgba(184,0,34,.22);
}
.personal-note-card-actions{display:flex;align-items:center;gap:5px}
.personal-note-detail-description{min-height:64px;white-space:pre-wrap;line-height:1.45;color:#687690}
.personal-note-editor-form textarea{min-height:34px;height:34px;resize:none;overflow:hidden}
.personal-note-row button,.useful-password-actions button{flex:0 0 auto}
.useful-passwords-help{margin:0 0 12px;color:#7b879d}
.useful-password-search{margin:0 0 10px}
.useful-password-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}
.useful-password-row h3{margin:0 0 4px;font-size:14px}
.useful-password-row p{margin:1px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.useful-password-editor textarea{min-height:34px;height:34px;resize:none;overflow:hidden}
.useful-password-actions{display:flex;align-items:center;gap:5px}
/* Entete */
.hero{
  position:sticky;
  top:0;
  z-index:20;
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-bottom:8px;
  padding:10px 12px 8px;
  border-radius:0 0 14px 14px;
  background:#132744;
  color:#fff;
  box-shadow:0 8px 24px rgba(16,35,66,.25);
}
.hero-main{
  display:flex;
  align-items:center;
  gap:6px;
  width:100%;
  min-width:0;
  white-space:nowrap;
}
.hero h1{
  flex:0 0 auto;
  margin:0;
  color:#63dd77;
  font-size:17px;
  line-height:1;
  letter-spacing:0;
}
#dateLabel{
  flex:0 0 auto;
  margin:0 12px 0 0;
  color:#fff;
  font-size:18px;
  font-weight:900;
  line-height:1;
  text-transform:none;
}
#dateLabel::after{content:" ✦";color:#70caff;font-size:13px;vertical-align:top}
.date-label-short{display:none}
.weather-summary{flex:0 0 auto;min-height:0;padding:2px 3px;border:0;border-radius:6px;background:transparent;color:#b9deff;box-shadow:none;font-size:12px;font-weight:900;line-height:1;white-space:nowrap}
.weather-summary:active{background:rgba(255,255,255,.12)}
.cloud-status{
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  min-height:22px;
  padding:3px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  color:#fff;
  box-shadow:none;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.cloud-status.ok{background:rgba(41,179,74,.25)}
.cloud-status.warn{background:rgba(255,243,106,.28)}
.cloud-status.err{background:rgba(176,0,32,.28)}
.refresh-btn{
  flex:0 0 auto;
  width:26px;
  min-width:26px;
  height:26px;
  padding:0;
  border-radius:50%;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:14px;
  line-height:1;
}
.app-menu{
  position:absolute;
  top:42px;
  right:10px;
  z-index:30;
  display:grid;
  gap:10px;
  width:min(270px,calc(100vw - 20px));
  max-height:calc(100vh - 62px);
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:8px;
  border:1px solid #5166a5;
  border-radius:8px;
  background:var(--blue2);
  box-shadow:0 10px 24px rgba(16,28,70,.28);
  scrollbar-width:thin;
  scrollbar-color:#dce5ff rgba(255,255,255,.12);
}
.app-menu::-webkit-scrollbar{width:8px}
.app-menu::-webkit-scrollbar-track{background:rgba(255,255,255,.12);border-radius:999px}
.app-menu::-webkit-scrollbar-thumb{background:#dce5ff;border-radius:999px}
.app-menu .cloud-status{justify-self:start}
.menu-user-profile{display:flex;align-items:center;justify-content:center;justify-self:center;width:48px;height:48px;padding:5px;border:0;border-radius:10px;background:transparent;color:#fff;box-shadow:none}
.menu-user-profile svg{display:block;width:38px;height:38px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.menu-user-profile:hover{background:rgba(255,255,255,.1)}
.menu-profile-tools{display:flex;align-items:flex-end;justify-content:center;gap:16px;padding:4px 0}
.menu-profile-tool{display:flex;align-items:flex-end;justify-content:center;width:40px;height:40px;padding:0 0 5px;border:0;border-radius:10px;background:transparent;color:#fff;box-shadow:none}
.menu-profile-tool svg{display:block;width:19px;height:19px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.menu-profile-tool:hover{background:rgba(255,255,255,.1)}
.menu-action{width:100%;text-align:left;box-shadow:none}
.app-menu .menu-action,.app-menu .tour-menu-switch{white-space:nowrap}
.menu-group{display:grid;gap:7px;padding:3px;border:1px solid rgba(220,229,255,.28);border-radius:10px}
.menu-group-items{display:grid;gap:7px;padding:0 0 0 16px}
.menu-group-items>.menu-action{padding:6px 8px;background:rgba(101,126,199,.34);color:#f4f7ff;font-size:12px;font-weight:750}
.menu-group-items>.directories-menu>.menu-parent,.menu-group-items>.procedures-menu>.menu-parent,.menu-group-items>#settingsMenu>.menu-parent,.menu-group-items>.owner-menu>.menu-parent,.menu-group-items>#toursMenu>.menu-parent{padding:6px 8px;background:rgba(101,126,199,.2);color:#e7eeff;font-size:12px;font-weight:750}
.menu-separator{height:5px}
.menu-separator.menu-separator-small{height:3px}
.menu-separator.menu-separator-large{height:9px}
.menu-separator[hidden]{display:none}
.owner-menu,.procedures-menu{display:grid;gap:6px}
.menu-parent{display:flex;align-items:center;justify-content:space-between}
.menu-chevron{font-size:17px;line-height:1}
.menu-subactions{display:grid;gap:6px;padding:0 0 0 20px}
.menu-subactions .menu-action{
  width:auto;
  justify-self:start;
  min-height:30px;
  padding:4px 2px;
  border:0;
  background:transparent;
  color:#a8d7ff;
  font-size:13px;
  font-style:italic;
  font-weight:600;
}
.menu-subactions .menu-action:active{background:transparent;color:#fff}
.menu-subactions .procedure-open{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.menu-subactions .procedure-add{
  width:100%;
  justify-self:stretch;
  min-height:31px;
  margin-bottom:4px;
  padding:6px 8px;
  border:1px dashed rgba(221,231,255,.8);
  background:transparent;
  color:#e7eeff;
  font-style:normal;
  font-weight:750;
  font-size:12px;
}
.menu-subactions .procedure-add:active{background:rgba(255,255,255,.12)}
.menu-empty{margin:0;padding:5px;color:#dce5ff;font-size:11px;font-style:italic}
.procedure-form{max-width:560px}
.procedure-editor-form{max-width:560px}
.procedure-editor-form textarea{min-height:34px;height:34px;resize:none;overflow:hidden}
.procedure-description{min-height:64px;white-space:pre-wrap;line-height:1.45;color:#33405e}
.linked-documents-editor,.linked-documents-view{
  margin-top:12px;
  padding-top:8px;
  border-top:1px solid #e0e6f2;
}
.linked-documents-editor h3{
  margin:0 0 7px;
  color:#23366f;
  font-size:14px;
}
.linked-documents-list-display{
  display:grid;
  gap:6px;
}
.linked-document-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) max-content max-content;
  align-items:center;
  gap:6px;
  padding:6px;
  border:1px solid #dbe2ee;
  border-radius:12px;
  background:#f8faff;
}
.linked-document-open{
  min-height:0;
  padding:0;
  display:flex;
  align-items:center;
  gap:7px;
  background:transparent;
  color:#23366f;
  box-shadow:none;
  text-align:left;
}
.linked-document-open strong{display:block;font-size:12px;line-height:1.2}
.linked-document-open small{display:block;color:#71809d;font-size:10px;line-height:1.2}
.linked-document-icon{font-size:15px}
.linked-document-rename,.linked-document-delete{
  min-height:28px;
  padding:5px 8px;
  box-shadow:none;
}
.linked-documents-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin-top:8px;
}
.linked-documents-help,.linked-documents-empty{
  margin:7px 0 0;
  color:#71809d;
  font-size:11px;
  font-style:italic;
}
.backup-form{max-width:560px}
.weather-form{max-width:360px}
.practice-areas-list{display:grid;gap:9px;margin:0 0 9px}
.practice-area-row{display:grid;gap:7px;padding:9px;border:1px solid #d7e0f1;border-radius:10px;background:#f8faff}
.practice-area-row label{margin:0}
.practice-area-row label em{color:#71809c;font-size:11px;font-weight:700}
.practice-area-head{display:flex;align-items:center;justify-content:space-between;color:#24376f}
.practice-area-head .mini{width:26px;min-width:26px;height:26px;min-height:26px;padding:0;color:#ba1830;background:#fff}
.weather-detail-summary{margin:0 0 9px;color:#24376f;font-weight:900}
.weather-detail-rows{display:grid;gap:6px;padding:9px;border:1px solid #d7e0f1;border-radius:10px;background:#f8faff;color:#33405e;font-weight:800}
.weather-detail-rows p{margin:0}
.weather-updated-at{margin:9px 0 0;color:#71809c;font-size:11px;font-style:italic;font-weight:700}
.weather-settings-help{margin:7px 0;color:#71809c;font-size:12px;line-height:1.35}
.weather-city-results{display:grid;gap:6px;margin-top:8px}
.weather-city-choice{min-height:32px;padding:6px 9px;border:1px solid #cbd8f0;border-radius:8px;background:#f8faff;color:#24376f;text-align:left;font-weight:800;box-shadow:none}
.weather-city-selected{margin:0;padding:8px 9px;border-radius:8px;background:#edf7f0;color:#247a49;font-size:13px}
.weather-city-choice:active{background:#e8efff}
.recent-deletes-form{max-width:760px}
.profiles-form{max-width:720px}
.team-form,.user-profile-form{max-width:640px}
.user-profile-form{max-width:520px}
.user-profile-form .three{grid-template-columns:minmax(0,1fr)}
.user-profile-form .signature-preview{max-width:none;width:100%;box-sizing:border-box}
.user-profile-form .user-profile-fixed-status{color:#7a8498;background:#f5f7fb;cursor:default}
.user-profile-role-help{display:block;margin-top:4px;color:#7a8498;font-size:11px;font-weight:500}
.planning-calendar-form{max-width:880px;overflow-x:hidden;touch-action:pan-y;overscroll-behavior:contain;cursor:grab}
.planning-calendar-form.is-swiping{cursor:grabbing;user-select:none}
.planning-notes-form,.ordonnancier-form,.facture-form,.update-news-form{max-width:640px}
.planning-calendar-head{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:8px;margin-bottom:12px}
.planning-calendar-head h2{margin:0;text-align:center;text-transform:capitalize}
.planning-calendar-head button{min-height:34px;padding:6px 8px}
.planning-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;will-change:transform}
.planning-weekday{text-align:center;color:#53617c;font-weight:900}
.planning-day,.planning-day-spacer{min-height:72px}
.planning-day{padding:6px;border:1px solid color-mix(in srgb,var(--day-color,#d2dbea) 55%,#d2dbea);border-radius:10px;background:color-mix(in srgb,var(--day-color,#fff) 58%,#fff);color:#17203a;box-shadow:none;text-align:left}
.planning-day span{display:block;font-weight:900}
.planning-day small{display:block;margin-top:6px;font-size:10px;font-weight:800;line-height:1.1}
.planning-day.is-today{outline:3px solid #24376f;outline-offset:-2px;box-shadow:0 0 0 2px rgba(36,55,111,.12)}
.planning-legend,.planning-owner-tools{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.planning-legend-item,.planning-painter{display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border-radius:999px;background:#eef3ff;color:#23366f;font-weight:900}
.planning-legend-item i,.planning-painter i{width:15px;height:15px;border-radius:5px;display:inline-block;border:1px solid rgba(0,0,0,.12)}
.planning-painter{border:1px solid #d6e0f1;box-shadow:none}
.planning-painter.active{outline:2px solid var(--blue);outline-offset:2px}
.signature-profile-field{display:block;color:#33405e;font-weight:900}
.signature-field-head{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:max-content}
.signature-toggle{display:inline-flex;align-items:center;justify-content:center;width:22px;min-width:22px;height:22px;min-height:22px;padding:0 0 1px;border:2px solid #24376f;border-radius:50%;background:#fff;color:#24376f;font-size:17px;line-height:1;box-shadow:none}
.signature-editor-panel{margin-top:7px}
.signature-profile-field canvas{display:block;width:100%;max-width:600px;height:190px;margin:7px 0;background:#fff;border:1px solid var(--line);border-radius:12px;touch-action:none}
.signature-actions{display:flex;gap:7px;flex-wrap:wrap;margin:7px 0}
.signature-actions .needs-save{outline:3px solid #b00020;outline-offset:3px}
.signature-import-label{display:inline-block;margin:6px 0;padding:7px 10px;border-radius:12px;background:#eef3ff;color:#23366f;font-weight:900}
.signature-import-label input{display:block;margin-top:6px;max-width:100%}
.signature-preview{display:block;max-width:260px;min-height:34px;margin:7px 0;padding:6px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#7a86a0;font-size:12px;font-style:italic;object-fit:contain}
.signature-preview img{display:block;max-width:100%;max-height:95px;object-fit:contain}
.update-news-form ul{margin:0 0 10px;padding-left:18px;color:#33405e;font-weight:700;line-height:1.45}
.ordonnancier-form textarea{
  min-height:150px;
  resize:vertical;
}
#ordoPrescriptionText{
  display:block;
  height:150px;
  min-height:150px;
  max-height:150px;
  padding:8px 9px;
  font-size:16px;
  line-height:22px;
  resize:none;
  overflow:auto;
  -webkit-appearance:none;
  -webkit-text-size-adjust:100%;
}
.facture-mode{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 0 12px}
.facture-mode button{box-shadow:none;background:#eef3ff;color:#23366f}
.facture-mode button.active{background:#24376f;color:#fff}
.facture-structure-input::placeholder{font-weight:400;font-style:italic;color:#9aa4b8;opacity:1}
.facture-details-field{display:block;margin-top:10px;padding:10px;border:1px solid #d7e0f1;border-radius:10px;background:#f8faff}
.facture-details-field textarea{min-height:150px;resize:vertical;background:#fff}
.checkbox-row{display:flex;align-items:center;gap:8px;font-weight:900;color:#23366f}
.checkbox-row input{width:auto;min-height:0}
.team-invite{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:end;gap:8px;margin:12px 0 0;padding:10px;border-radius:12px;background:#132844}
.team-invite label{margin:0}
.team-invite label,.team-invite label input{color:#fff}
.team-invite label input{background:#fff;color:#17203a}
.team-invite button{height:34px;min-height:34px;box-shadow:none;background:#132844;color:#fff;border:1px solid rgba(255,255,255,.55)}
.team-status{min-height:18px;margin:0 0 8px;color:#2d7a31;font-size:12px;font-weight:800}
.team-status.error{color:#b00020}
.team-members{display:grid;gap:7px}
.team-member{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.1fr) minmax(172px,.9fr) 28px;align-items:stretch;gap:10px;padding:0 0 0 10px;border:1px solid #d7e0f1;border-radius:10px;background:#f8faff;overflow:hidden}
.team-member.access-suspended{border-color:#ff8fa3;background:#fff0f3}
.team-member strong,.team-member span{display:block}
.team-member span{margin-top:2px;color:#53617c;font-size:12px;font-weight:700}
.team-member-main,.team-member-profile,.team-member-right{align-self:center;padding:10px 0}
.team-member-main{min-width:0}
.team-member-main strong{font-size:15px;color:#17203a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-device-count{display:inline-flex!important;width:max-content;max-width:100%;margin-top:7px!important;padding:3px 7px;border-radius:999px;background:#edf2fb;color:#6a7894!important;font-size:10px!important;font-style:italic;font-weight:900!important}
.team-device-count.active{background:#e4f7e8;color:#23783b!important}
.team-device-count.inactive{background:#ffe8ec;color:#b00020!important}
.team-last-seen{margin-top:5px!important;color:#7a86a0!important;font-size:10px!important;font-style:italic;font-weight:800!important}
.team-member-profile{display:grid;gap:1px;min-width:0}
.team-member-profile span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-member-permissions{display:grid;gap:6px}
.team-member-permissions label{display:flex;align-items:center;gap:6px;margin:0;color:#24376f;font-size:12px;font-weight:900}
.team-member-permissions input{width:16px;height:16px;margin:0;accent-color:#24376f}
.team-member-permissions .team-access-suspended{margin-top:4px;color:#b00020}
.team-member-permissions .team-access-suspended.active{width:max-content;max-width:100%;padding:4px 7px;border-radius:9px;background:#ffe1e7;color:#9b001d}
.team-member-permissions .team-access-suspended input{accent-color:#b00020}
.team-tour-access{margin-top:7px;padding:5px 7px;border-radius:10px;background:#edf3ff}
.team-tour-access summary{cursor:pointer;color:#24376f;font-size:11px;font-style:italic;font-weight:900}
.team-tour-access div{display:grid;gap:5px;margin-top:6px}
.team-tour-access label{display:flex;align-items:center;gap:6px;margin:0;color:#24376f;font-size:11px;font-weight:850}
.team-tour-access input{width:15px;height:15px;margin:0;accent-color:#24376f}
.team-color-toggle{display:inline-flex;align-items:center;gap:6px;min-height:28px;margin-top:7px;padding:4px 8px;box-shadow:none;font-size:11px}
.team-color-toggle i{width:13px;height:13px;border:1px solid rgba(0,0,0,.16);border-radius:50%}
.team-color-palette{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.team-color-palette label{display:inline-flex;align-items:center;gap:4px;margin:0;padding:3px 5px;border:1px solid #d7e0f1;border-radius:999px;background:#fff;color:#24376f;font-size:10px;font-weight:900}
.team-color-palette label.disabled{opacity:.35}
.team-color-palette input{position:absolute;opacity:0;pointer-events:none}
.team-color-palette i{width:14px;height:14px;border:1px solid rgba(0,0,0,.16);border-radius:50%}
.team-color-palette input:checked+i{outline:2px solid #24376f;outline-offset:2px}
.team-member .danger{min-height:30px;padding:5px 8px;box-shadow:none}
.team-member.team-member-inter-cab{grid-template-columns:minmax(0,1fr);gap:12px;padding:14px}
.team-member-inter-cab .team-member-main,.team-member-inter-cab .team-member-right{align-self:stretch;padding:0;min-width:0}
.team-member-inter-cab .team-member-main strong{white-space:normal;overflow-wrap:anywhere;line-height:1.35}
.team-member-inter-cab .team-member-main>span{overflow-wrap:anywhere;line-height:1.4}
.team-member-inter-cab .team-member-main .team-member-state{display:inline-flex;width:max-content;max-width:100%;margin-top:7px;padding:4px 8px;border-radius:999px;font-size:11px;background:#edf2fb;color:#53617c}
.team-member-inter-cab .team-member-state.active{background:#e4f7e8;color:#23783b}
.team-member-inter-cab .team-member-state.revoked{background:#ffe8ec;color:#b00020}
.team-member-inter-cab .team-member-state.invited{background:#fff2d6;color:#805500}
.team-member-inter-cab .team-member-right{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:12px}
.team-member-inter-cab .team-member-right label{margin:0;min-width:0;font-size:12px;line-height:1.4}
.team-member-inter-cab .team-member-tours{display:grid;gap:8px;padding-top:2px}
.team-member-inter-cab .team-member-tours label{display:flex;align-items:center;gap:8px;overflow-wrap:anywhere}
.team-member-inter-cab .team-member-tours input{flex:0 0 17px;width:17px;height:17px;min-height:0;margin:0;accent-color:#24376f}
.team-member-inter-cab select{display:block;width:100%;min-width:0;margin-top:5px;min-height:36px;padding:6px 10px;font-size:13px;border-radius:10px}
.team-member-inter-cab .team-member-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}
.team-member-inter-cab .team-member-actions:empty{display:none}
.team-member-inter-cab .team-member-actions button{min-height:36px;margin:0;padding:8px 12px;font-size:12px;line-height:1.3;box-shadow:none}
.team-member-inter-cab .team-member-actions .team-member-remove{background:#fff0f3;color:#a60025;border:1px solid #efc6d0}
@media(max-width:480px){
 .team-member-inter-cab .team-member-right{grid-template-columns:minmax(0,1fr)}
 .team-member-inter-cab .team-member-actions button{flex:1 1 auto}
}
.team-remove-strip{
  width:28px;
  min-width:28px;
  height:100%;
  min-height:100%;
  padding:0;
  border:0;
  border-radius:0;
  background:var(--red);
  color:#fff;
  box-shadow:none;
  font-size:18px;
  font-weight:900;
}
.backup-status{min-height:18px;margin:0 0 8px;color:#33405e;font-weight:800}
.backup-top-actions{
  margin:-4px 0 10px;
}
.backup-top-actions button{
  width:auto;
  padding:8px 12px;
  box-shadow:none;
}
.backup-list{display:grid;gap:7px}
.profiles-help{margin:0 0 9px;color:#53617c;font-size:12px;font-weight:700}
.profile-directory-controls{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px}
.profile-duplicate-group{margin:12px 0;padding:10px;border:1px solid #d7e1f5;border-radius:14px;background:#f3f6fc;min-width:0}
.profile-duplicate-group h3{margin:0 0 10px}
.profile-duplicate-card p{margin:3px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.profile-duplicate-card p strong{display:inline}
#profileDuplicatesDialog .profiles-form{overflow-x:hidden}
.profile-directory-controls .mini{box-shadow:none}
.profile-search{margin:0 0 8px}
.profiles-list{display:grid;gap:6px}
.profile-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#f8faff;
}
.profile-row>div:first-child{min-width:0;flex:1 1 auto}
.profile-row strong,.profile-row span{display:block}
.profile-row span{margin-top:2px;color:#5d6983;font-size:11px}
.directory-row{align-items:flex-start}
.directory-row strong{font-size:14px;color:#17203a}
.directory-row span{font-size:12px;line-height:1.35}
.profile-row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;flex:0 0 auto}
.profile-row-actions button{padding:5px 7px;box-shadow:none;font-size:11px}
.profile-row-actions .profile-delete-btn{width:28px;min-width:28px;padding:0;border-radius:50%;font-size:17px;line-height:1}
.directory-row{display:grid;grid-template-columns:minmax(0,1fr) 126px;align-items:stretch}
.directory-row-actions{display:grid;grid-template-columns:1fr;gap:4px;align-self:stretch}
.directory-row-actions button{white-space:normal;text-align:center;line-height:1.05}
.directory-row-actions .profile-delete-btn{width:auto!important;min-width:0!important;border-radius:10px!important;color:#fff!important}
.archive-patient-btn{background:#e4f7e8!important;color:#23783b!important;border-color:#9ad7a6!important}
.profiles-empty{margin:0;padding:9px;color:#53617c;font-weight:700;text-align:center}
.profile-editor{
  margin-top:10px;
  padding:9px;
  border:1px solid #bdd0f7;
  border-radius:10px;
  background:#f5f8ff;
}
.profile-editor h3{margin:0 0 7px;color:var(--blue2);font-size:14px}
.backup-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#f8faff;
}
.backup-row strong,.backup-row span{display:block}
.backup-row span{margin-top:2px;color:#5d6983;font-size:11px}
.backup-actions{display:flex;gap:5px;flex:0 0 auto}
.backup-actions button{padding:5px 7px;box-shadow:none;font-size:11px}
.backup-preview #appShell main,
.backup-preview #appShell .general-notes{
  pointer-events:none;
  opacity:.62;
}
.backup-preview #menuBtn,.backup-preview #appMenu{display:none!important}
.backup-preview #appShell .hero-main > :not(#searchInput){opacity:.62;pointer-events:none}
.backup-preview .top-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:6px;
  overflow:visible;
}
.backup-preview .top-actions > :not(#leavePreviewBtn):not(#restorePreviewBtn){display:none}
.backup-preview #leavePreviewBtn,.backup-preview #restorePreviewBtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  min-height:34px;
  padding:5px 7px;
  white-space:normal;
  text-align:center;
}
.training-banner{
  margin:0 0 8px;
  padding:10px 14px;
  border:1px solid rgba(192,0,32,.28);
  border-radius:16px;
  background:#ffe6eb;
  color:#b00020;
  font-weight:900;
  text-align:center;
  box-shadow:0 8px 22px rgba(15,31,63,.08);
}
@media(max-width:900px){
  body.training-mode .hero{padding-bottom:45px}
  body.training-mode .top-actions #leaveTrainingBtn{
    position:absolute;
    left:18px;
    right:18px;
    bottom:8px;
    width:auto;
    min-width:0;
    min-height:29px;
    z-index:8;
  }
}
.top-actions #leaveTrainingBtn{
  width:auto;
  min-width:150px;
  min-height:27px;
  padding:5px 10px;
  border-radius:10px;
  background:#b00020!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.72);
  font-size:11px;
  font-weight:900;
  letter-spacing:.02em;
}
.top-actions #leaveTrainingBtn:hover{background:#d4002a!important;color:#fff!important}
body.training-mode #appShell main,
body.training-mode #appShell .general-notes{
  outline:2px dashed rgba(176,0,32,.24);
  outline-offset:2px;
}
#searchInput{
  flex:0 1 172px;
  width:172px;
  min-width:0;
  margin-left:auto;
  height:28px;
  border:0;
  border-radius:12px;
  padding:5px 8px;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.08);
  font-size:12px;
}
#searchInput::placeholder{
  color:#aeb7c8;
  font-style:italic;
  opacity:1;
}
.top-actions{
  display:flex;
  align-items:center;
  gap:6px;
  width:100%;
  overflow-x:auto;
  padding-bottom:1px;
  flex-wrap:nowrap;
}
.top-actions button{
  min-height:28px;
  padding:4px 3px;
  border-radius:0;
  background:transparent!important;
  color:#dceaff!important;
  box-shadow:none;
  white-space:nowrap;
}
.top-actions button:hover{color:#fff!important;background:transparent!important}
.top-actions #addPatientBtn,.top-actions #addActionBtn{width:84px;min-width:84px;min-height:27px;padding:5px 6px;border:1px solid rgba(220,234,255,.72);border-radius:10px;background:rgba(255,255,255,.12)!important;color:#fff!important;font-size:11px;line-height:1;box-shadow:none}
.top-actions #addPatientBtn:hover,.top-actions #addActionBtn:hover{background:rgba(255,255,255,.22)!important}
.top-actions #undoBtn{font-size:18px;padding-right:7px}
.connected-users{display:flex;align-items:center;gap:7px;min-height:16px;margin-top:-2px;color:#dceaff;font-size:11px;font-style:italic;font-weight:700;line-height:1.1}
.connected-user{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.connected-user i{width:8px;height:8px;border-radius:999px;display:inline-block;box-shadow:0 0 0 1px rgba(255,255,255,.42)}
.tour-tabs{
  display:flex;
  align-items:center;
  gap:6px;
  max-width:100%;
  overflow-x:auto;
  padding:1px 0 2px;
}
.tour-tab{
  flex:0 0 auto;
  min-height:25px;
  padding:4px 9px;
  border:1px solid rgba(220,234,255,.65);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#dceaff;
  box-shadow:none;
  font-size:11px;
  font-weight:900;
}
.tour-tab.active{
  background:#eef3ff;
  color:#24366f;
}
.tour-tab.locked{
  opacity:.45;
  text-decoration:line-through;
  text-decoration-thickness:2px;
  background:rgba(255,255,255,.04);
}
.tour-menu-row{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:4px;
}
.tour-menu-switch,
.tour-menu-rename{
  min-height:28px;
  padding:4px 2px;
  border:0;
  background:transparent;
  color:#a8d7ff;
  box-shadow:none;
  font-size:13px;
  font-style:italic;
  font-weight:650;
  text-align:left;
}
.tour-menu-switch{min-width:0;overflow:hidden;text-overflow:ellipsis}
.tour-menu-row.active .tour-menu-switch{
  color:#a8d7ff;
  font-weight:600;
}
.tour-menu-row.locked .tour-menu-switch{
  opacity:.45;
  text-decoration:line-through;
  text-decoration-thickness:2px;
}
.tour-menu-rename{
  width:28px;
  text-align:center;
  color:#dceaff;
  font-style:normal;
}
.menu-subactions .tour-add{
  width:100%;
  justify-self:stretch;
  min-height:31px;
  margin-top:2px;
  padding:6px 8px;
  border:1px dashed rgba(221,231,255,.8);
  background:transparent;
  color:#e7eeff;
  font-style:normal;
  font-weight:750;
  font-size:12px;
}
.plan-switcher{
  display:inline-flex;
  overflow:hidden;
  position:absolute;
  top:42px;
  right:42px;
  z-index:3;
  width:172px;
  margin:0;
  border:1px solid #d3dced;
  border-radius:11px;
  background:#eef2f9;
  box-shadow:0 4px 10px rgba(16,28,70,.18);
}
.plan-tab{
  flex:1 1 50%;
  min-height:27px;
  padding:5px 8px;
  border-radius:0;
  background:#eef2f9;
  color:#52617d;
  box-shadow:none;
  font-size:11px;
}
.plan-tab.active{background:var(--blue2);color:#fff}
#undoBtn,#addPatientBtn,#addActionBtn{
  min-width:0;
  text-align:center;
}
.appicon{
  width:27px;
  min-width:27px;
  height:27px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:0;
  background:transparent;
  padding:1px;
  box-shadow:none;
}
.appicon img{
  width:25px;
  height:25px;
  border-radius:5px;
  object-fit:cover;
}

/* Cartes et zones */
.card,.item,.cabinet{
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--card);
  box-shadow:0 5px 18px rgba(20,40,90,.08);
}
.general-notes{
  margin:5px 9px;
  padding:8px;
}
.general-notes h2,.cabinet-notes-title{
  margin:0 0 8px;
  color:var(--blue2);
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
#list{padding:0 2px}
.item{
  margin:1px 8px;
  padding:6px 9px;
  font-size:13px;
  line-height:1.28;
}
.item.done{
  background:#c7ccd6;
  border-color:#9fa7b6;
  color:#3f4758;
}
.item.done>.swipe-card-content,
.item.hospital>.swipe-card-content{
  background:transparent;
  box-shadow:none;
}
.item.hospital{
  background:#dccbff;
  border-color:#b99de9;
  color:#35224f;
}
.tour-action{background:#8ee9ee}
.tour-action.done{
  background:#c7ccd6;
  border-color:#9fa7b6;
  color:#3f4758;
}
.item.search-match,.cabinet.search-match,.item.recently-saved{
  outline:2px solid #f0a11a;
  outline-offset:1px;
  box-shadow:0 0 0 4px rgba(240,161,26,.18),0 5px 18px rgba(20,40,90,.08);
}
.patient-placement-row.search-match{
  outline:2px solid #f0a11a;
  outline-offset:1px;
  box-shadow:0 0 0 4px rgba(240,161,26,.18);
}
.patient-card-with-alert{margin:0}

.drop-gap,.cab-drop-gap{
  height:14px;
  margin:-4px 8px;
  border-radius:12px;
}
.drop-gap.hover,.cab-drop-gap.hover{
  height:38px;
  margin:1px 8px;
  border:2px dashed var(--blue);
  background:#dce5ff;
}

/* En-tete patient/action */
.patient-header,.action-header{
  min-height:26px;
  display:flex;
  align-items:center;
  gap:6px;
  width:100%;
  flex-wrap:nowrap;
}
.header-left{
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 1 auto;
  flex-wrap:wrap;
}
.header-tools{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  margin-left:auto;
  min-width:max-content;
}
.time{
  padding:2px 3px;
  border-radius:6px;
  color:#dd8a16;
  font-size:13px;
  font-weight:750;
  flex:0 0 auto;
  white-space:nowrap;
}
.time:focus{
  outline:2px solid #dd8a16;
  background:#fff;
}
.freq{
  color:var(--care);
  font-size:13px;
  font-weight:800;
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
}
.important-info{
  color:#ff0033;
  font-size:13px;
  font-weight:800;
}
.patient-header .action-link,
.patient-header .action-btn{
  min-width:34px;
  height:26px;
  min-height:26px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 8px;
  background:#e8edf7;
  color:#24376f;
}
.drag-handle{
  width:58px;
  min-width:58px;
  height:26px;
  min-height:26px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background:#e8edf7;
  color:#24376f;
  cursor:grab;
  font-size:16px;
  font-weight:900;
  line-height:1;
  user-select:none;
  -webkit-user-select:none;
  touch-action:none;
}
body.touch-drag-active .cabinet{
  outline:2px dashed rgba(36,55,111,.35);
  outline-offset:-5px;
}
.cabinet.touch-cabinet-drop-target{
  outline:2px dashed var(--blue);
  outline-offset:-5px;
  background:#eef3ff;
}
.touch-drag-ghost{
  position:fixed;
  z-index:1200;
  width:58px;
  min-width:58px;
  height:26px;
  min-height:26px;
  pointer-events:none;
  opacity:.92;
  box-shadow:0 10px 22px rgba(20,40,90,.25)!important;
  transform:scale(1.04);
}
.finishedbox,.donebox,.hospitalbox,.pill-done{
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
}
.finishedbox,.donebox,.hospitalbox{
  flex:0 0 auto;
  width:18px;
  min-width:18px;
  height:18px;
  min-height:18px;
  padding:0;
  margin-left:0;
  border:1.5px solid #8791a8;
  border-radius:5px;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.06);
}
.donebox{background:#eef0f4}
.finishedbox{background:#626772;border-color:#454b56}
.finishedbox.is-checked{background:#363b45;border-color:#fff;box-shadow:inset 0 0 0 3px #949aa5}
.item.finished{background:#505661;border-color:#363b45;color:#f0f2f5}
.item.finished>.swipe-card-content{background:transparent;box-shadow:none}
.item.finished .name,.item.finished .address,.item.finished .time,.item.finished .freq,.item.finished .tour-action-title{color:#f0f2f5}
.item.finished .name{border-color:#8e97a8;background:#363b45;color:#fff}
.patient-phone-input::placeholder{font-style:italic;color:#8893a5;opacity:1}
.phone-field-with-plus{flex-wrap:wrap}
.phone-field-with-plus .mobile-prefix-choice{flex:0 0 112px}
.donebox:checked,.donebox.is-checked{background:#c7ccd6;border-color:#9fa7b6}
.hospitalbox{background:#efe7ff;border-color:#b79be8}
.hospitalbox:checked,.hospitalbox.is-checked{background:#dccbff;border-color:#b99de9}

.name{
  display:block;
  width:fit-content;
  max-width:100%;
  margin:2px 0 1px;
  padding:2px 6px;
  border:1px solid #d8dfed;
  border-radius:7px;
  background:#fafcff;
  color:var(--text);
  font-size:13px;
  font-weight:800;
  line-height:1.2;
}
.item.done .name{border-color:#a7b0bf;background:#d4d9e1;color:#3f4758}
.patient-name-row{display:flex;align-items:center;gap:4px;min-width:0;margin-bottom:1px}
.patient-name-row .name{min-width:0;overflow-wrap:anywhere;margin-bottom:0}
.care-trace-indicator{position:relative;flex:0 0 18px;width:18px;height:18px;min-width:0;min-height:0;padding:0;border:0;border-radius:4px;background:transparent;box-shadow:none}
.care-trace-indicator.waiting{color:#c87916}
.care-trace-indicator.complete{color:#2f8b59}
.care-trace-indicator:hover{background:rgba(130,145,170,.1)}
.care-trace-indicator svg{stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.care-trace-notebook{display:block;width:17px;height:17px}
.care-trace-badge{position:absolute;right:-2px;bottom:-1px;width:10px;height:10px;background:var(--card,#fff);border-radius:50%;stroke-width:2!important}
.care-trace-reminder-setting{display:flex;align-items:flex-start;gap:9px;margin:0 0 16px;font-size:14px}
.care-trace-reminder-setting input{width:20px;height:20px;flex:0 0 20px;margin:0;accent-color:var(--blue)}
.care-trace-reminder-setting small{display:block;color:#65718b;font-size:12px;font-weight:400;margin-top:4px}
.item.hospital .name{border-color:#c4addf;background:#e4d8fa;color:#35224f}
.address{
  margin:0 0 5px;
  color:#202942;
  font-size:13px;
  font-style:italic;
  font-weight:450;
  line-height:1.25;
}
.tour-action-content{display:grid;gap:5px}
.tour-action-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.action-time{
  align-self:start;
  font-size:12px;
}
.tour-action-title{
  color:#d00000;
  font-size:13px;
  font-weight:700;
  line-height:1.25;
  padding:2px 0 3px;
  white-space:pre-wrap;
}
.action-description-input{
  min-height:58px;
  resize:vertical;
}

/* Notes */
.note-row{
  display:grid;
  grid-template-columns:14px minmax(0,1fr) auto;
  align-items:start;
  gap:4px;
  margin:2px 0;
}
.dash{font-weight:900}
.note-static,
.note-input{
  grid-column:2 / -1;
}
.note-input{
  width:100%;
  min-height:18px;
  border:0;
  border-radius:6px;
  background:transparent;
  color:var(--note-red);
  padding:2px 4px;
  font-size:13px;
  font-family:inherit;
  font-weight:500;
  line-height:1.25;
  overflow:hidden;
  resize:none;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.note-static{
  display:block;
  grid-column:2 / -1;
  color:var(--note-red);
  cursor:text;
}
.note-row:not(.active):not(:focus-within) .note-input{
  display:none;
}
.note-row.active .note-static,
.note-row:focus-within .note-static{
  display:none;
}
.note-row.active .note-input,
.note-row:focus-within .note-input{
  display:block;
}
.note-input:focus{
  outline:2px solid #2f458f;
  background:#fff;
}
.note-static.hl-yellow,.note-input.hl-yellow{background:var(--yellow);color:var(--note-red)}
.note-static.hl-green,.note-input.hl-green{background:var(--hlgreen);color:var(--note-red)}
.note-static.hl-orange,.note-input.hl-orange{background:var(--hlorange);color:var(--note-red)}
.note-input.hl-yellow:focus{background:var(--yellow)}
.note-input.hl-green:focus{background:var(--hlgreen)}
.note-input.hl-orange:focus{background:var(--hlorange)}
.note-static.note-bold,
.note-input.note-bold,
.patient-alert-input.note-bold{font-weight:700}
.note-static.note-italic,
.note-input.note-italic,
.patient-alert-input.note-italic{font-style:italic}
.note-static.note-underline,
.note-input.note-underline,
.patient-alert-input.note-underline{text-decoration:underline}
.patient-alert-input.hl-yellow{background:var(--yellow);color:var(--note-red)}
.patient-alert-input.hl-green{background:var(--hlgreen);color:var(--note-red)}
.patient-alert-input.hl-orange{background:var(--hlorange);color:var(--note-red)}
.note-tools{
  display:none;
  grid-column:2 / -1;
  flex-wrap:wrap;
  gap:3px;
  align-items:center;
}
.note-row:focus-within .note-tools,
.note-row.active .note-tools{
  display:flex;
}
.editing-presence{
  grid-column:2 / -1;
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin:3px 0 5px;
  padding:6px 11px;
  border-radius:999px;
  border:2px solid #ff4f79;
  background:#fff0f4;
  color:#9f001d;
  font-size:12px;
  font-weight:800;
  line-height:1.2;
  box-shadow:0 6px 14px rgba(176,0,32,.14);
}
.patient-presence{
  display:flex;
  width:max-content;
  margin:4px 0 3px;
}
.note-tools button{
  width:13px;
  min-width:13px;
  height:13px;
  min-height:13px;
  padding:0;
  border:1px solid rgba(23,32,58,.24);
  border-radius:4px;
  box-shadow:none;
  font-size:0;
  line-height:0;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.yellow-btn{background:var(--yellow);color:#111}
.green-btn{background:var(--hlgreen);color:#111}
.orange-btn{background:var(--hlorange);color:#111}
.bold-btn,
.italic-btn,
.note-move-btn,
.underline-btn{
  background:#fff;
  color:#17203a;
  font-size:9px!important;
  font-weight:900;
  line-height:11px!important;
}
.bold-btn.is-active,
.italic-btn.is-active,
.underline-btn.is-active{
  text-decoration:line-through;
  text-decoration-thickness:2px;
}
.quick-notes{margin-top:8px}
.patient-actions-line{display:none}

.recent-deletes-help{margin:0 0 12px;color:#7a869e;font-style:italic;text-align:center}
.recent-delete-all{
  justify-self:start;
  margin:0 0 10px;
  background:var(--red);
  color:#fff;
  border:0;
}
.recent-deletes-list{display:grid;gap:9px;max-height:60vh;overflow:auto;padding-right:2px}
.recent-delete-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) 36px;
  border:1px solid #d7dfef;
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}
.recent-delete-card.recent-delete-tour{
  border-color:#9bd8ad;
  background:#effff3;
}
.recent-delete-card.recent-delete-profile{
  border-color:#9bc9e8;
  background:#eef8ff;
}
.recent-delete-content{padding:10px 12px;min-width:0}
.recent-delete-content strong{display:block;color:#17203a;font-size:16px}
.recent-delete-content span{display:block;margin-top:2px;color:#6a7690;font-size:11px;font-weight:700}
.recent-delete-content .recent-delete-countdown{color:#bd0025}
.recent-delete-content ul{margin:7px 0 8px;padding-left:16px;color:#303a56;font-size:12px}
.recent-restore{min-height:28px;padding:6px 12px;border-radius:12px}
.recent-final-delete{
  align-self:stretch;
  border:0;
  border-radius:0;
  background:var(--red);
  color:#fff;
  font-size:18px;
  font-weight:900;
  box-shadow:none;
}

/* Soins */
.care-list{margin-top:2px}
.care-line{
  display:grid;
  grid-template-columns:14px minmax(0,1fr);
  align-items:start;
  gap:4px;
  margin:3px 0;
}
.care-text{
  font-size:13px;
  font-weight:500;
  line-height:1.3;
  white-space:pre-wrap;
}
.care-content{min-width:0}
.care-completion-row{
  display:flex;
  justify-content:flex-end;
  margin-top:4px;
}
.green{color:var(--care)}
.pink{color:var(--pink)}
.blue{color:var(--ordo)}
.purple{color:var(--purple)}
.red{color:var(--red)}
.orange{color:#ff7a1a}
.injection{color:#ff1744}
.recurring-care{color:#46a85b}
.care-line.injection-due,
.care-line.recurring-care-due,
.care-line.zymad-due,
.care-line.pilulier-due{
  grid-template-columns:14px minmax(0,1fr);
  align-items:start;
  gap:4px;
  min-height:0;
  padding:6px 8px;
  border:1px solid var(--care-due-border);
  border-radius:9px;
  background:var(--care-due-bg);
}
.care-line.injection-due .care-text,
.care-line.recurring-care-due .care-text,
.care-line.zymad-due .care-text,
.care-line.pilulier-due .care-text{
  justify-self:start;
  width:100%;
  max-width:100%;
  padding:0;
  border-radius:0;
  background:transparent;
  overflow:visible;
  text-overflow:clip;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  line-height:1.15;
}
.care-reminders-paused .care-line .care-text{background:transparent}
.care-reminders-paused .pill-done-wrap{display:none}
.item.finished .care-line{color:#f0f2f5}
.item.finished .care-line.green,.item.finished .care-line.recurring-care{color:#a8e5b6}
.item.finished .care-line.pink{color:#ffbedc}
.item.finished .care-line.blue{color:#bdd4ff}
.item.finished .care-line.purple{color:#e2bdff}
.item.finished .care-line.orange{color:#ffc28f}
.item.finished .care-line.injection{color:#ffb4be}
.reminder-settings-form{max-width:540px}
.pill-done-wrap{
  min-width:max-content;
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  gap:4px;
  position:relative;
  margin:0;
  padding:4px 8px;
  border:1px solid var(--care-done);
  border-radius:6px;
  background:var(--care-done-soft);
  color:var(--care-done);
  font-size:11px;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
  vertical-align:middle;
  cursor:pointer;
  touch-action:manipulation;
}
.pill-done{
  position:absolute;
  width:1px !important;
  min-width:1px !important;
  max-width:1px;
  height:1px !important;
  min-height:1px;
  margin:0 !important;
  opacity:0;
  pointer-events:none;
}
.pill-done:checked,.pill-done:disabled{
  background:transparent;
}
.pill-done-wrap:has(.pill-done:checked){background:var(--care-done);color:#fff}

/* Notes importantes sous carte */
.patient-alert-wrap{
  display:grid;
  grid-template-columns:14px minmax(0,1fr);
  align-items:start;
  gap:0;
  width:calc(100% - 40px);
  margin-top:-7px;
  margin-left:30px;
  position:relative;
  z-index:2;
  overflow:visible;
}
.patient-alert-plus{
  grid-column:1;
  grid-row:1;
  width:14px;
  min-width:14px;
  height:14px;
  min-height:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
  border:1px solid var(--line);
  border-radius:0 0 5px 5px;
  background:#fff;
  color:#ff0000;
  padding:0;
  box-shadow:0 2px 5px rgba(16,28,70,.08);
  font-size:10px;
  font-weight:900;
  line-height:1;
}
.patient-alert-box{
  grid-column:2;
  grid-row:1;
  display:block;
  height:auto;
  min-height:0;
  max-height:none;
  margin:0;
  overflow:visible;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  padding:2px 7px;
  box-shadow:none;
}
.patient-alert-box[hidden]{display:none}
.patient-alert-row{
  min-height:17px;
  display:grid;
  grid-template-columns:14px minmax(0,1fr) auto;
  align-items:start;
  gap:4px;
  margin:0;
}
.patient-alert-row .dash{color:var(--note-red)}
.patient-alert-input{
  display:block;
  width:100%;
  height:auto;
  min-height:17px;
  max-height:none;
  margin:0;
  border:0;
  border-radius:6px;
  background:transparent;
  font-size:13px;
  font-weight:500;
  color:var(--note-red);
  padding:0 2px;
  overflow:hidden;
  font-family:inherit;
  font-weight:400;
  line-height:1.1;
  resize:none;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.patient-alert-input:focus{
  outline:1px solid #ffb8b8;
  background:#fff;
}
.patient-alert-input.hl-yellow:focus{background:var(--yellow)}
.patient-alert-input.hl-green:focus{background:var(--hlgreen)}
.patient-alert-input.hl-orange:focus{background:var(--hlorange)}
.patient-alert-row:focus-within .note-tools,
.patient-alert-row.active .note-tools{display:flex}

/* Actions par balayage */
.item.swipe-enabled{
  position:relative;
  overflow:hidden;
  touch-action:pan-y;
}
.swipe-card-content{
  position:relative;
  z-index:2;
  border-radius:inherit;
  background:inherit;
  transition:transform .16s ease;
}
.swipe-actions{
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  z-index:1;
  width:126px;
  display:grid;
  grid-template-rows:repeat(3,minmax(0,1fr));
  overflow:hidden;
  background:#ffe8eb;
  border-radius:0 12px 12px 0;
  border-left:1px solid #d8dfed;
  opacity:0;
  transform:translateX(100%);
  transition:transform .16s ease,opacity .16s ease;
}
.swipe-care-actions{
  position:absolute;
  top:0;
  left:0;
  bottom:0;
  z-index:1;
  width:118px;
  display:grid;
  grid-template-rows:repeat(3,minmax(0,1fr));
  overflow:hidden;
  background:#e9f7f3;
  border-radius:12px 0 0 12px;
  border-right:1px solid #c7e6dd;
  opacity:0;
  transform:translateX(-100%);
  transition:transform .16s ease,opacity .16s ease;
}
.swipe-actions button{
  min-height:0;
  border-radius:0;
  padding:3px 5px;
  box-shadow:none;
  font-size:11px;
  font-weight:900;
}
.swipe-care-actions button,
.swipe-care-actions a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:0;
  border-radius:0;
  padding:3px 5px;
  box-shadow:none;
  background:#d9f3eb;
  color:#1e6f5f;
  font-size:12px;
  font-weight:900;
  text-decoration:none;
}
.swipe-care-actions .swipe-care-folder{
  background:#dff5ff;
  color:#075985;
}
.swipe-care-actions a{
  border-top:1px solid #b9ded4;
  background:#e8f7df;
  color:#2f6d18;
  font-size:12px;
}
.swipe-care-actions .swipe-care-call{
  background:#fff2d9;
  color:#9a4d00;
}
.swipe-care-actions button+button,
.swipe-care-actions a+button{
  border-top:1px solid #b9ded4;
}
.swipe-edit{background:#e4f7e8;color:#23783b}
.swipe-archive{background:#e4edff;color:#2550a1}
.swipe-actions .swipe-delete{background:#ffe8eb;color:var(--red)}
.swipe-actions .swipe-delete{border-top:1px solid #f0b7c0}
.action-swipe-actions{grid-template-rows:repeat(2,minmax(0,1fr))}
.action-swipe-actions .swipe-edit{border-radius:0 10px 0 0!important}
.action-swipe-actions .swipe-delete{border-radius:0 10px 10px 0!important}
.swipe-actions .swipe-edit:first-child{border-radius:0}
.swipe-actions .swipe-delete:last-child{border-radius:0}
.item.swipe-delete-open .swipe-card-content{transform:translateX(-118px);border-radius:12px 0 0 12px}
.item.swipe-delete-open .swipe-actions{opacity:1;transform:translateX(0)}
.item.swipe-care-open .swipe-card-content{transform:translateX(110px);border-radius:0 12px 12px 0}
.item.swipe-care-open .swipe-care-actions{opacity:1;transform:translateX(0)}
/* Actions de la fiche patient : lisibles et cohérentes avec le balayage. */
#cancelPatient,#savePatient{background:var(--blue2)!important;color:#fff!important;border-color:var(--blue2)!important}
#deletePatient{background:#ffe8eb!important;color:var(--red)!important;border-color:#f2aebb!important}

/* La fiche patient reste centrée : seule sa partie interne défile. */
#patientDialog{
  overflow:hidden;
  overscroll-behavior:contain;
}
#patientDialog form{
  max-width:100%;
  max-height:92dvh;
  overflow-x:hidden;
  overscroll-behavior:contain;
}
#patientDialog .dialog-actions{
  position:static;
  background:transparent;
  padding:0;
}

/* Cabinet */
.cabinet{
  margin:4px 8px;
  padding:8px;
  border-color:#e55d75;
  border-radius:14px;
  background:linear-gradient(180deg,#ffd5dc,#ffb6c2);
}
.cabinet-title{
  margin-bottom:8px;
  color:#99001c;
  font-size:18px;
  font-weight:900;
  letter-spacing:.04em;
}
.cabinet .todo .note-static{
  color:var(--note-red);
}
.cabinet-inner{margin-top:8px}
.cabinet-item{
  margin:1px 0;
  background:rgba(255,255,255,.72);
  border-color:rgba(255,255,255,.68);
  box-shadow:none;
}
.tour-action.cabinet-item:not(.done):not(.finished){background:#8ee9ee}

/* Rappels */
.reminder-card,.pill-alerts,.pda-alerts,.injection-alerts,.recurring-care-alerts,.zymad-alerts{
  margin:7px 10px;
  padding:9px;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 5px 18px rgba(20,40,90,.08);
}
.reminder-card:has(.reminder-details){
  margin:3px 10px;
  padding:4px 8px;
  border-radius:10px;
  box-shadow:0 3px 10px rgba(20,40,90,.06);
}
.reminder-pill{background:#f2e7ff;border-color:#d8b4f2}
.reminder-pda{background:#fff0dd;border-color:#ffc783}
.reminder-injection{background:#ffe5ea;border-color:#ff9caf}
.reminder-recurring-care{background:#e9f9ed;border-color:#b8e7c4}
.reminder-zymad{background:#ffe7f7;border-color:#ffb6e3}
.zymad-a-gogo{text-align:center}
.zymad-a-gogo-title{color:var(--pink);font-size:15px;font-weight:900;letter-spacing:.03em}
.zymad-a-gogo-subtitle{margin-top:3px;color:#8f4c78;font-style:italic}
.reminder-card .today,.pill-alerts .today,.pda-alerts .today,.injection-alerts .today,.recurring-care-alerts .today,.zymad-alerts .today{
  font-weight:900;
}
.reminder-details>summary{
  display:flex;
  align-items:center;
  min-width:0;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  list-style:none;
  cursor:pointer;
  touch-action:manipulation;
}
.reminder-details>summary::-webkit-details-marker{display:none}
.reminder-count{margin-left:6px;font-weight:900;white-space:nowrap}
.reminder-chevron{margin-left:auto;padding-left:8px;font-size:16px;font-weight:900;line-height:1;transition:transform .16s ease}
.reminder-details[open] .reminder-count{display:none}
.reminder-details[open] .reminder-chevron{transform:rotate(180deg)}
.reminder-pill .today,.reminder-pill .tomorrow{color:var(--purple)}
.reminder-pill .reminder-count,.reminder-pill .reminder-chevron{color:var(--purple)}
.reminder-pda .today,.reminder-pda .tomorrow{color:#d95f00}
.reminder-pda .reminder-count,.reminder-pda .reminder-chevron{color:#d95f00}
.reminder-injection .today{color:#e0002b}
.reminder-injection .reminder-count,.reminder-injection .reminder-chevron{color:#e0002b}
.reminder-recurring-care .today{color:#46a85b}
.reminder-recurring-care .reminder-count,.reminder-recurring-care .reminder-chevron{color:#46a85b}
.reminder-dot{display:inline-block;width:9px;height:9px;margin:0 5px 0 0;border-radius:50%;vertical-align:0}
.pill-dot{background:#a321c9}
.pda-dot{background:#ff7a1a}
.injection-dot{background:#ff1744}
.recurring-care-dot{background:#46a85b}
.reminder-zymad .today,.reminder-zymad .tomorrow{color:var(--pink)}
.reminder-card .tomorrow,.pill-alerts .tomorrow,.zymad-alerts .tomorrow{
  font-weight:900;
}
.reminder-card ul,.pill-alerts ul,.pda-alerts ul,.injection-alerts ul,.recurring-care-alerts ul,.zymad-alerts ul{
  margin:4px 0 8px 18px;
  padding:0;
}

/* Dialogues */
.modal{
  position:fixed;
  inset:0;
  z-index:1000;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  overflow:auto;
  padding:4vh 3vw;
  background:rgba(10,20,50,.35);
}
.modal[hidden]{display:none}
.modal form,dialog{
  width:min(94vw,820px);
  max-height:92vh;
  overflow:auto;
  border:0;
  border-radius:18px;
  background:#fff;
  padding:16px;
  box-shadow:0 18px 80px rgba(0,0,0,.25);
}
.modal .tour-order-form{max-width:600px;border:1px solid #c3cee3}
.tour-order-help{margin:0 0 11px;color:#53617c;font-size:13px;line-height:1.35}
.tour-order-zone{margin:10px 0;padding:9px;border:1px solid #d8dfef;border-radius:12px;background:#f8faff}
.tour-order-zone.cabinet{border-color:#e39ba4;background:#ffe7eb}
.tour-order-zone h3{margin:0 0 7px;color:var(--blue2);font-size:14px}
.tour-order-zone.cabinet h3{color:#a51f2d}
.tour-order-zone.cabinet>header{display:flex;align-items:center;gap:7px;margin:0 0 7px}
.tour-order-zone.cabinet>header h3{margin:0}
.tour-order-list{display:grid;gap:5px}
.tour-order-row{display:grid;grid-template-columns:28px 56px minmax(0,1fr);align-items:center;gap:7px;min-height:38px;padding:6px 8px;border:1px solid #d4ddec;border-radius:9px;background:#fff;color:var(--text);transition:transform .12s,box-shadow .12s,border-color .12s}
.tour-order-handle{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;background:#e8edf7;color:#304878;cursor:grab;font-size:17px;font-weight:900;line-height:1;user-select:none;-webkit-user-select:none;touch-action:none}
.tour-order-time{color:#d7820e;font-size:12px;font-weight:900;white-space:nowrap}
.tour-order-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.tour-order-row.is-dragging,.tour-order-zone.is-dragging{opacity:.45;transform:scale(.985)}
.tour-order-row.is-drop-target{border-color:#2f458f;box-shadow:0 4px 12px rgba(47,69,143,.14)}
.tour-order-zone.is-drop-target{border-color:#bd515d;box-shadow:0 4px 12px rgba(165,31,45,.14)}
.tour-order-boundary{display:none}
.tour-order-boundary.is-drop-target{height:14px;background:#dce6fb;box-shadow:inset 0 0 0 1px #8498c6}
.tour-order-restore-source{margin:0 0 12px;padding:10px;border:1px dashed #7890bd;border-radius:12px;background:#f0f5ff}
.tour-order-restore-source h3{margin:0 0 3px;color:#304878;font-size:14px}
.tour-order-restore-source p{margin:0 0 8px;color:#53617c;font-size:12px;line-height:1.35}
.tour-order-row.tour-order-restore-row{border-color:#8ea3c9;background:#fffef7;box-shadow:0 2px 8px rgba(47,69,143,.10)}
.tour-order-boundary.tour-order-restore-end{display:flex;align-items:center;justify-content:center;min-height:36px;margin:7px 0;padding:6px;border:1px dashed #91a4c8;border-radius:9px;background:#f3f6fc;color:#526889;font-size:12px;font-weight:700}
.tour-order-boundary.tour-order-restore-end.is-drop-target{height:auto;border-color:#2f458f;background:#dce6fb}
.tour-order-restore-actions{margin-top:12px}
.tour-order-empty{margin:2px 0;color:#6c7890;font-size:12px;font-style:italic}
form h2{
  margin:0 0 10px;
  color:var(--blue2);
  font-size:18px;
}
.care-folder-form,.care-folder-entry-form,.care-folder-export-form,.care-vitals-choice-form{max-width:620px}
.care-folder-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:8px 0 10px;
}
.care-folder-tabs button{
  min-height:40px;
  font-weight:900;
}
.care-folder-tabs button:not(.care-folder-routine){background:#d5e2f5;border:1px solid #9eb5d8}
.care-folder-tabs button:not(.care-folder-routine):hover,.care-folder-tabs button:not(.care-folder-routine):focus-visible{background:#c5d7ef}
.care-folder-routine{grid-column:1/-1;min-height:44px;border:1px solid #dbafab!important;background:#f8dedc!important;color:#24376f!important;font-weight:900}
.care-folder-routine:hover,.care-folder-routine:focus-visible{background:#f2cbc7!important;border-color:#c98e88!important}
.care-folder-add-routine{border-color:#c96a20!important;background:#e9872c!important;color:#fff!important;font-weight:900}
.care-folder-add-routine:hover,.care-folder-add-routine:focus-visible{background:#cf7120!important;border-color:#a95111!important}
.care-folder-share{display:inline-grid;place-items:center;width:38px;min-width:38px;min-height:34px;padding:0;border:1px solid #174b35!important;border-radius:8px;background:#216b4b!important;color:#fff!important;font:inherit;line-height:1;box-shadow:none}
.care-folder-share:hover,.care-folder-share:focus-visible{background:#174f38!important;border-color:#123d2c!important}
.care-folder-share-icon{display:block;width:19px;height:19px}
.care-vitals-choice-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}
.care-vitals-choice-actions button{min-height:48px;text-align:left}
.care-vitals-unified-form{max-width:720px}
.care-vitals-unified-lines{display:grid;gap:10px;margin:12px 0}
.care-vitals-unified-row{display:grid;grid-template-columns:minmax(172px,1fr) minmax(0,1.45fr);align-items:center;gap:12px;margin:0;color:#2b3d70;font-weight:800}
.care-vitals-unified-row input,.care-vitals-unified-row select,
.care-routine-run-row input:not([type="checkbox"]),.care-routine-run-row select{min-width:0;height:48px;margin:0;box-sizing:border-box;line-height:1.2}
.care-weight-controls{display:grid;grid-template-columns:20px minmax(84px,.7fr) minmax(100px,1fr);align-items:center;gap:8px;min-width:0}
.care-weight-controls input[type="checkbox"]{width:20px;height:20px;margin:0;accent-color:#2d7b3e}
.care-weight-controls .measurement-value-unit{min-width:0;gap:6px}
.care-weight-note-input{min-width:0;font-style:italic}
.care-weight-note-input::placeholder{color:#9aa4b8;font-style:italic;opacity:1}
.care-weight-note{font-size:12px;font-style:italic;color:#6c7890;font-weight:400}
@media(max-width:480px){.care-weight-controls{grid-template-columns:20px minmax(0,1fr);gap:6px}.care-weight-note-input{grid-column:2}}
.care-ta-inputs,.care-ta-pulse-inputs,.uv-insulin-row,.care-dextro-values,.care-saturation-values{display:flex;align-items:center;gap:8px;min-width:0}
.care-ta-inputs input{width:0;flex:1}
.care-ta-pulse-inputs{display:grid;grid-template-columns:minmax(56px,1fr) auto minmax(56px,1fr) auto minmax(52px,.8fr);gap:6px}.care-ta-pulse-inputs input{width:100%;min-width:0}.care-pulse-label{white-space:nowrap;font-size:13px}
.care-dextro-values>.uv-dextro-time{width:128px;flex:0 0 128px}
.care-dextro-values .measurement-value-unit,.care-saturation-values .measurement-value-unit{flex:1}
.care-saturation-values>.uv-oxygen-mode{width:150px;flex:0 0 150px}
.uv-insulin-panel{display:grid;gap:7px;margin-left:calc(50% - 172px / 2)}.uv-insulin-list{display:grid;gap:7px}.uv-insulin-row input,.uv-insulin-row select{min-width:0;margin:0}.uv-insulin-row input{flex:1}.uv-insulin-row select{width:100px}
@media(max-width:480px){.care-vitals-unified-row{grid-template-columns:105px minmax(0,1fr);gap:7px}.care-ta-pulse-inputs{grid-template-columns:minmax(44px,1fr) auto minmax(44px,1fr) auto minmax(44px,.8fr);gap:4px}.care-ta-pulse-inputs input{padding-inline:6px}.care-pulse-label{font-size:12px}.care-dextro-values{gap:6px}.care-dextro-values>.uv-dextro-time{width:86px;flex-basis:86px}.care-saturation-values>.uv-oxygen-mode{width:116px;flex-basis:116px}.uv-insulin-panel{margin-left:112px}.uv-insulin-row{align-items:stretch;flex-wrap:wrap}.uv-insulin-row input{flex-basis:100%}}
.care-folder-export-form .checkbox-row{margin:10px 0;padding:10px 12px;border:1px solid #d9e2f2;border-radius:10px;background:#f8fbff}
.care-export-period{display:grid;gap:8px;margin:12px 0;padding:10px 12px;border:1px solid #d9e2f2;border-radius:10px;background:#f8fbff}
.care-export-period legend{padding:0 4px;color:#2b3d70;font-weight:800}
.care-export-period>label{display:flex;align-items:center;gap:8px;margin:0;font-weight:700}
.care-export-period input[type="radio"]{width:18px;height:18px;margin:0;accent-color:#314b9b}
.care-export-range{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-top:2px}
.care-export-range label{margin:0;font-weight:800}
.care-export-range .care-date-picker{margin-top:4px}
@media(max-width:480px){.care-export-range{grid-template-columns:1fr}}
.care-folder-bsi-form{max-width:780px}
.care-measurement-form{max-width:430px}
.care-dextro-form{max-width:620px}
.care-measurement-lines{display:grid;gap:12px;margin:12px 0}
.care-measurement-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(120px,1.2fr);align-items:center;gap:12px;margin:0;font-weight:800;color:#2b3d70}
.care-measurement-row input,.care-measurement-row select{min-width:0;margin:0}
.care-insulin-panel{display:grid;gap:8px;margin-left:0}
.care-insulin-list{display:grid;gap:8px}
.care-insulin-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,1.2fr) 164px auto auto;align-items:center;gap:8px;color:#2b3d70;font-size:13px;font-weight:800}
.care-insulin-row input,.care-insulin-row select{min-width:0;margin:0}
.care-insulin-add{justify-self:start}
.care-folder-acts-form{max-width:620px}
.care-acts-lines{display:grid;gap:12px;margin:12px 0}
.care-acts-row{display:grid;grid-template-columns:minmax(190px,1fr) minmax(100px,1.1fr);align-items:center;gap:12px;margin:0;font-weight:800;color:#2b3d70}
.care-acts-row input,.care-acts-row select{min-width:0;margin:0}
.care-acts-check-note>span:last-child{display:flex;align-items:center;gap:8px;min-width:0}
.care-acts-check-note input[type="checkbox"]{width:20px;height:20px;flex:0 0 auto;accent-color:#2d7b3e}
.care-acts-check-note input[type="text"],.care-acts-check-note input:not([type]){flex:1;font-style:italic;color:#52627f}
.care-acts-value-unit{display:flex;align-items:center;gap:8px;min-width:0}.care-acts-value-unit input{flex:1;min-width:0;margin:0}.care-acts-value-unit span{white-space:nowrap}
.care-acts-check-value{display:flex;align-items:center;gap:8px;min-width:0}.care-acts-check-value>input[type="checkbox"]{width:20px;height:20px;flex:0 0 auto;margin:0;accent-color:#2d7b3e}.care-acts-check-value>input:not([type]),.care-acts-check-value>input[type="text"]{flex:1;min-width:0;margin:0;font-style:italic;color:#52627f}.care-acts-check-value select{min-width:0;flex:1;margin:0}.care-acts-check-value .care-acts-value-unit{flex:1}
.care-routine-name-form,.care-routine-builder-form,.care-routine-run-form{max-width:720px}
/* The form scrolls; the backdrop must not scroll the document on iPhone. */
.modal#patientDialog,.modal#careRoutineBuilderDialog,.modal#careRoutineRunDialog,.modal#ordonnancierDialog,.modal#careVitalsChoiceDialog{overflow:hidden;overscroll-behavior:none}
#patientDialog>form,#ordonnancierDialog>form,#careVitalsChoiceDialog>form{overscroll-behavior:contain}
.modal .care-routine-run-form{position:relative;min-width:0;max-width:100%;overflow-x:hidden;overscroll-behavior:contain}
.modal .care-routine-builder-form{position:relative;min-width:0;overflow-x:hidden;overscroll-behavior:contain}
.care-routine-run-form input,.care-routine-run-form textarea{position:relative}
.routine-aerosol-unit select{min-width:72px;flex:0 0 72px}
.care-aerosol-controls{flex-wrap:wrap}
.care-aerosol-controls select{flex:0 0 76px;min-width:76px;padding-inline:6px}
.care-aerosol-controls input:not([type]){flex:1 1 130px}
.care-routine-run-form .care-saturation-values{display:grid;grid-template-columns:minmax(68px,.8fr) minmax(0,1.2fr);gap:6px}
.care-routine-run-form .care-saturation-values .measurement-value-unit{gap:4px;min-width:0}
.care-routine-run-form .routine-saturation{min-width:44px;padding-inline:6px}
.care-routine-run-form .routine-oxygen{width:100%;padding-inline:6px;font-size:13px}
.care-day-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px}
.care-day-account{font-size:12px;font-weight:400;color:#657394}
.care-day-group-categories{margin-left:auto;font-size:11px;text-transform:none;white-space:normal}
.care-category-group-entry > .care-category-row{border:0;border-radius:0;padding:4px 0;background:transparent}
.care-category-row + .care-category-row{border-top:1px solid #e9edf5;padding-top:8px}
.care-category-group-entry .care-folder-entry-head{flex-wrap:wrap}
.care-entry-modification{font-size:11px;color:#657394;font-style:italic}
.rain-mode-button{position:relative;flex:none;border:0;background:transparent;padding:2px;font-size:18px;line-height:1.2;cursor:pointer;touch-action:pan-y}
.rain-mode-button.is-locked::after{content:"";position:absolute;inset:0;border:2px solid #ff655d;border-radius:50%;background:linear-gradient(135deg,transparent 45%,#ff655d 46%,#ff655d 54%,transparent 55%);pointer-events:none}
.care-routine-builder-form fieldset{display:grid;gap:8px;margin:12px 0;padding:10px 12px;border:1px solid #cbd8ed;border-radius:10px;background:#f6f9ff}
.care-routine-builder-form legend{padding:0 4px;color:#2b3d70;font-weight:900}
.care-routine-choice{display:flex;align-items:center;gap:8px;margin:0;color:#2b3d70;font-weight:800}
.care-routine-choice input{width:18px;height:18px;margin:0;accent-color:#314b9b}
.care-routine-insulins{display:grid;gap:6px;margin:3px 0 0;padding-left:26px;color:#2b3d70;font-weight:800}
.care-routine-insulin-list{display:grid;gap:6px}
.care-routine-insulin-line{display:flex;align-items:center;gap:6px}
.care-routine-insulin-line input{flex:1;min-width:0;margin:0}
.care-routine-help{margin:0;color:#586987;font-size:13px}
.care-routine-run-lines{display:grid;gap:10px;margin:12px 0}
.care-routine-run-row{display:grid;grid-template-columns:minmax(190px,1fr) minmax(0,1.2fr);align-items:center;gap:12px;margin:0;color:#2b3d70;font-weight:800}
.care-routine-run-row input,.care-routine-run-row select{min-width:0;margin:0}
.routine-insulin-panel,.routine-insulin-list{display:grid;gap:7px}
.routine-insulin-panel{margin-left:calc((100% - 12px)/2.2 + 12px)}
.care-vital-insulin-row{display:flex;align-items:center;gap:8px;min-width:0}
.care-vital-insulin-row input,.care-vital-insulin-row select{min-width:0;height:48px;margin:0;line-height:1.2}
.care-vital-insulin-row input{flex:1}
.care-vital-insulin-row select{width:100px}
@media(max-width:480px){.routine-insulin-panel{margin-left:113px}.care-vital-insulin-row{flex-wrap:wrap}.care-vital-insulin-row input{flex-basis:100%}}
@media(max-width:360px){.routine-insulin-panel{margin-left:91px}}
.care-routine-check-note>span:last-child{display:flex;align-items:center;gap:8px;min-width:0}
.care-routine-check-note input[type="checkbox"]{width:20px;height:20px;flex:0 0 auto;accent-color:#2d7b3e}
.care-routine-check-note input:not([type]){flex:1;font-style:italic;color:#52627f}
.routine-treatment-choice{display:flex;align-items:center;gap:8px;color:#2d7b3e}
.routine-treatment-choice input{width:20px;height:20px;accent-color:#2d7b3e}
.care-routine-transmission{display:grid;gap:6px;margin:0;color:#2b3d70;font-weight:800}
.care-routine-transmission textarea{min-height:76px;margin:0;resize:vertical}
.care-follow-up-field{border:2px solid #d72335!important;box-shadow:0 0 0 3px rgba(215,35,53,.28)!important}
.measurement-value-unit{display:flex;align-items:center;gap:10px}
.measurement-value-unit input{flex:1;min-width:0}
.measurement-value-unit>span{white-space:nowrap}
.measurement-error{color:#b00020}
.zymad-settings-warning{padding:10px;background:#fff3d6;border:1px solid #e6bd66;border-radius:8px;color:#654509}
.bsi-table{width:100%;border-collapse:collapse;table-layout:fixed;margin:12px 0}
.bsi-table th,.bsi-table td{border:1px solid #d9e2f2;padding:8px;vertical-align:top;text-align:left;overflow-wrap:anywhere;white-space:pre-wrap}
.bsi-table th{width:48%;background:#f3f6fc;color:#24376f;font-size:13px}
.bsi-table td{background:#fff;font-size:13px}
.bsi-table textarea{display:block;width:100%;min-width:0;min-height:54px;resize:vertical;font-size:14px}
.bsi-table label{margin:0;font-weight:700}
.bsi-entry summary{cursor:pointer;margin-top:8px;color:#24376f}
@media(max-width:480px){
  .care-folder-tabs{grid-template-columns:1fr 1fr}
  .care-vitals-choice-actions{grid-template-columns:1fr}
  .bsi-table th,.bsi-table td{padding:6px}
  .care-acts-row{grid-template-columns:minmax(0,1fr) 110px;gap:8px}
  .modal#careRoutineRunDialog{padding-inline:3vw}
  .modal .care-routine-run-form{width:94vw;max-width:94vw;flex-shrink:0}
  .care-routine-run-row{grid-template-columns:105px minmax(0,1fr);gap:8px}
  .routine-aerosol-unit{display:grid;grid-template-columns:72px minmax(0,1fr);gap:5px;align-items:center}
  .routine-aerosol-unit>span{white-space:normal}
  .care-measurement-row{grid-template-columns:minmax(0,1fr) 110px;gap:8px}
  .care-insulin-panel{margin-left:0}
  .care-insulin-row{grid-template-columns:72px minmax(0,1fr) 58px auto auto;gap:6px;font-size:11px}
}
@media(max-width:360px){
  .care-routine-run-row,.care-routine-run-row.care-entry-date-time{grid-template-columns:85px minmax(0,1fr);gap:6px}
}
.care-folder-history{
  display:grid;
  gap:8px;
  margin-top:12px;
}
.care-folder-month{
  border:1px solid #d9e2f2;
  border-radius:8px;
  background:#f8fbff;
  overflow:hidden;
}
.care-folder-month summary{
  padding:9px 10px;
  color:#24376f;
  font-weight:900;
  cursor:pointer;
}
.care-folder-month-list{
  display:grid;
  gap:8px;
  padding:0 8px 8px;
}
.care-folder-history h3{
  margin:8px 0 0;
  color:#24376f;
  font-size:14px;
  text-transform:capitalize;
}
.care-folder-entry{
  display:grid;
  gap:4px;
  padding:9px 10px;
  border:1px solid #dce5f5;
  border-radius:8px;
  background:#fff;
}
.care-folder-entry-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.care-folder-entry strong{
  color:#1f6f63;
  font-size:13px;
}
.care-folder-entry-actions{
  display:flex;
  gap:5px;
}
.care-folder-entry-actions button{
  padding:4px 7px;
  font-size:10px;
}
.care-folder-entry p{
  margin:0;
  color:#25314d;
  white-space:pre-wrap;
}
.constants-entry strong{color:#d26b00}
.vitals-group-entry > .care-folder-entry-head strong{color:#d26b00}
.measurement-entry > .care-folder-entry-head strong{color:#d26b00}
.constants-entry p span{font-weight:400;color:inherit}
.constants-inline-gap{display:inline-block;width:28px}
.constants-form{
  display:grid;
  gap:8px;
}
.constants-ta-pulse-row{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:8px;
}
.constants-form label{
  display:grid;
  grid-template-columns:72px minmax(0,180px);
  align-items:center;
  gap:8px;
  margin:0;
  color:#24376f;
  font-weight:900;
}
.constants-ta-pulse-row label{
  grid-template-columns:72px minmax(0,180px);
}
.constant-label{display:flex;justify-content:space-between;gap:6px}
.constants-ta-inputs{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:5px}
.constants-ta-inputs span{color:#4b5877;font-size:18px;font-weight:900}
.constants-ta-inputs input{min-width:0}
.constants-form input::placeholder{
  color:#9aa6bd;
  font-style:italic;
}
.constants-form .dialog-actions{
  grid-template-columns:auto auto;
}
.patient-call-form{max-width:460px}
.patient-call-name{
  margin:0 0 10px;
  color:#4b5877;
  font-weight:800;
}
.patient-call-list{
  display:grid;
  gap:8px;
}
.patient-call-choice{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:11px 12px;
  border:1px solid #cfe0f8;
  border-radius:8px;
  background:#f7fbff;
  color:#17203a;
  text-decoration:none;
}
.patient-call-choice strong{color:#24376f}
.patient-call-choice span{font-weight:900;color:#1f6f63}
.care-folder-review-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:12px 0 8px;
}
.two,
.patient-main-row{
  display:grid;
  grid-template-columns:180px 180px;
  justify-content:start;
  gap:10px;
}
.patient-main-row{grid-template-columns:180px 210px 180px 180px}
.patient-location-field{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:34px;
  margin:0;
  padding:0;
  border:0;
}
.patient-location-field legend{
  display:block;
  width:100%;
  margin:0 0 2px;
  color:#33405e;
  font-weight:900;
  line-height:1.1;
}
.patient-location-field label{
  display:flex;
  align-items:center;
  gap:4px;
  margin:0;
  color:#33405e;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
}
.patient-location-field input{
  width:auto;
  min-height:0;
  margin:0;
}
.place-tour-btn{
  width:100%;
  min-height:28px;
  margin-top:5px;
  padding:5px 8px;
  border-radius:12px;
  box-shadow:none;
  font-size:12px;
  line-height:1.15;
  white-space:normal;
}
.time-neighbor-hint{
  display:none;
  margin-top:4px;
  color:#5b6884;
  font-size:11px;
  font-style:italic;
  font-weight:800;
  line-height:1.2;
}
.time-neighbor-hint.visible{display:block}
.patient-placement-form{max-width:620px}
.patient-placement-search{margin:0 0 10px}
.patient-placement-list{
  display:grid;
  gap:7px;
  max-height:58vh;
  overflow:auto;
  padding:2px;
}
.patient-placement-row{
  display:grid;
  grid-template-columns:70px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  width:100%;
  min-height:42px;
  padding:8px 10px;
  border:1px solid #d8e0f0;
  border-radius:10px;
  background:#f8faff;
  color:#15213b;
  box-shadow:none;
  text-align:left;
}
.patient-placement-row strong{color:#d77b00}
.patient-placement-row span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.patient-placement-row em{
  color:#5b6884;
  font-size:11px;
  font-style:italic;
}
.patient-placement-empty{
  margin:8px 0;
  color:#5b6884;
  font-style:italic;
  font-weight:800;
}
.patient-placement-choice-form{max-width:440px}
.patient-placement-choice-label{
  margin:0 0 12px;
  color:#33405e;
  font-weight:800;
  line-height:1.35;
}
.transfer-tour-form{
  max-width:420px;
}
.transfer-tour-help{
  margin:4px 0 12px;
  color:#52617d;
  font-weight:800;
}
.transfer-tour-list{
  display:grid;
  gap:8px;
  margin:8px 0 12px;
}
.transfer-tour-choice{
  width:100%;
  text-align:left;
}
#pAccess{
  min-height:34px;
  height:auto;
  resize:none;
  overflow:hidden;
}
.three{
  display:grid;
  grid-template-columns:120px 220px 220px;
  justify-content:start;
  gap:10px;
}
#patientDialog .patient-basics{display:grid;gap:9px;margin-bottom:12px}
#patientDialog .patient-identity-row{display:grid;grid-template-columns:160px minmax(0,1fr) minmax(0,1fr);gap:12px}
#patientDialog .patient-inline-field{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:8px;margin:0;min-width:0}
#patientDialog .patient-inline-field>input,#patientDialog .patient-inline-field>select,#patientDialog .patient-inline-field>textarea{width:100%;min-width:0;margin:0;box-sizing:border-box}
#patientDialog .patient-schedule-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);gap:12px}
#patientDialog .patient-location-field{border:0;padding:0;background:transparent}
#patientDialog .patient-phone-contacts{align-items:center;gap:8px}
#patientDialog .patient-phone-contacts>.patient-inline-field{width:auto;flex:1 1 280px}
#patientDialog .patient-extra-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#patientDialog .time-neighbor-hint{grid-column:2}

/* Fiche patient : liste identique sur Mac et iPhone. */
#patientDialog .patient-form{width:min(94vw,760px)}
#patientDialog .patient-primary-list{
  display:grid;
  gap:0;
  margin:0 0 14px;
  overflow:hidden;
  border:1px solid #d9e1ef;
  border-radius:10px;
  background:#fff;
}
#patientDialog .patient-form-row{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  align-items:center;
  gap:12px;
  min-width:0;
  min-height:48px;
  margin:0;
  padding:7px 10px;
  border-bottom:1px solid #e4e9f2;
}
#patientDialog .patient-form-row:last-of-type{border-bottom:0}
#patientDialog .patient-form-row.is-optional-at-cabinet{
  background:#f3f5f8;
}
#patientDialog .patient-form-row.is-optional-at-cabinet>span:first-child{
  color:#71809a;
}
#patientDialog .patient-form-row.is-optional-at-cabinet>input,
#patientDialog .patient-form-row.is-optional-at-cabinet>textarea{
  border-color:#d5dbe5;
  background:#f8f9fb;
  color:#52617a;
}
#patientDialog .patient-form-row>span:first-child,
#patientDialog .patient-row-label{
  color:#34436b;
  font-size:13px;
  font-weight:900;
}
#patientDialog .patient-form-row>input:not([type="hidden"]),
#patientDialog .patient-form-row>select,
#patientDialog .patient-form-row>textarea{
  width:100%;
  min-width:0;
  margin:0;
  box-sizing:border-box;
}
#patientDialog #pAddress::placeholder{
  color:#9aa5ba;
  font-style:italic;
  font-weight:700;
  opacity:1;
}
#patientDialog .patient-form-wide{
  grid-column:1 / -1;
  margin:0;
  border-bottom:1px solid #e4e9f2;
  border-radius:0;
}
#patientDialog .patient-phone-contacts.patient-form-row{
  display:grid;
  align-items:center;
  gap:12px;
}
#patientDialog .patient-phone-values{
  display:flex;
  align-items:center;
  min-width:0;
  gap:7px;
  flex-wrap:wrap;
}
#patientDialog .patient-mobile-field{flex:1 1 190px;margin:0;min-width:140px}
#patientDialog .patient-mobile-field input{width:100%;min-width:0;margin:0;box-sizing:border-box}
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
#patientDialog .patient-choice-control{
  position:relative;
  display:flex;
  align-items:center;
  width:100%;
  min-height:34px;
  border:1px solid #cbd5e6;
  border-radius:9px;
  background:#fff;
  color:#17203a;
  font-size:13px;
  font-weight:700;
  line-height:1.2;
  box-sizing:border-box;
}
#patientDialog .patient-choice-display{
  width:100%;
  padding:7px 32px 7px 9px;
  font:inherit;
}
#patientDialog .patient-choice-control::after,
#patientDialog .patient-choice-button::after{
  content:"⌄";
  position:absolute;
  right:10px;
  color:#66738e;
  pointer-events:none;
}
#patientDialog .patient-time-control input[type="time"]{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  opacity:0;
  cursor:pointer;
}
#patientDialog .patient-choice-button{
  position:relative;
  width:100%;
  min-height:34px;
  padding:7px 32px 7px 9px;
  border:1px solid #cbd5e6;
  border-radius:9px;
  box-shadow:none;
  background:#fff;
  color:#17203a;
  font-size:13px;
  font-weight:700;
  line-height:1.2;
  text-align:left;
  touch-action:pan-y;
}
#patientDialog #pLocation{
  min-height:34px;
  padding:7px 32px 7px 9px;
  color:#17203a;
  font-size:13px;
  font-weight:700;
  line-height:1.2;
}
#patientDialog #pStartDate,
#patientDialog .patient-time-control{cursor:pointer}
#patientDialog .patient-primary-list .patient-choice-button{
  display:flex;
  align-items:center;
  box-sizing:border-box;
  height:34px;
  margin:0;
  border:1px solid #cbd5e6;
  border-radius:9px;
  padding:7px 32px 7px 9px;
  font-family:inherit;
  font-size:13px;
  font-weight:700;
  line-height:1.2;
  color:#17203a;
  background:#fff;
}
.care-date-picker{
  position:relative;
  width:100%;
  min-height:34px;
  margin:0;
  padding:7px 32px 7px 9px;
  border:1px solid #cbd5e6;
  border-radius:9px;
  box-shadow:none;
  background:#fff;
  color:#66738e;
  font-family:inherit;
  font-size:13px;
  font-weight:700;
  line-height:1.2;
  text-align:left;
  touch-action:pan-y;
}
.care-date-picker.has-value{color:#17203a}
.care-date-picker::after{
  content:"⌄";
  position:absolute;
  right:10px;
  color:#66738e;
  pointer-events:none;
}
.patient-value-dialog{z-index:1001}
.patient-time-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.patient-time-columns label{min-width:0;text-align:center}
.patient-time-columns select{
  display:block;width:100%;height:210px;padding:0;margin-top:8px;
  border:1px solid #d8e0ef;border-radius:8px;background:#f8faff;color:#253456;
  font-family:inherit;font-size:18px;font-weight:700;line-height:1.4;overflow-y:auto;
}
.patient-time-columns option{padding:10px;text-align:center}
.patient-date-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.patient-date-head strong{text-transform:capitalize}
.patient-date-head button{width:36px;min-width:36px;padding:4px;font-size:22px;box-shadow:none}
.patient-date-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.patient-date-grid>span{padding:6px 0;font-weight:700}
.patient-date-grid button{
  min-width:0;min-height:36px;padding:4px;border-radius:8px;box-shadow:none;
  background:#f4f7fc;color:#253456;
}
.patient-date-grid button[aria-pressed="true"]{background:var(--blue2);color:white}
.patient-date-grid button.is-outside-month{color:#7d89a3;font-style:italic;font-weight:600}
.patient-date-grid button.is-today:not([aria-pressed="true"]){
  outline:3px solid #24376f;
  outline-offset:-2px;
  box-shadow:0 0 0 2px rgba(36,55,111,.12);
}
.patient-weekday-options[hidden]{display:none}
#patientDialog .patient-form-row.is-missing>input:not([type="hidden"]),
#patientDialog .patient-form-row.is-missing>select,
#patientDialog .patient-form-row.is-missing>textarea,
#patientDialog .patient-form-row.is-missing .patient-mobile-field input,
#patientDialog .patient-form-row.is-missing .patient-choice-control,
#patientDialog .patient-form-row.is-missing .patient-choice-button{
  border-color:#d00020!important;
  box-shadow:0 0 0 2px rgba(208,0,32,.16)!important;
}
#patientDialog .time-neighbor-hint{grid-column:2;margin-top:0}
.patient-frequency-form{max-width:470px!important}
.patient-frequency-options,
.patient-weekday-options,
.patient-month-options{
  display:grid;
  gap:6px;
  margin:10px 0;
  padding:0;
  border:0;
}
.patient-frequency-options label,
.patient-weekday-options label{
  display:flex;
  align-items:center;
  gap:9px;
  min-height:40px;
  margin:0;
  padding:7px 9px;
  border:1px solid #d8e0ef;
  border-radius:8px;
  background:#f8faff;
  color:#253456;
  font-weight:800;
  cursor:pointer;
}
.patient-frequency-options input,
.patient-weekday-options input{width:18px;height:18px;margin:0;accent-color:#314b9b}
.patient-weekday-options{grid-template-columns:1fr 1fr;padding:8px;border:1px solid #d8e0ef;border-radius:9px;background:#fff}
.patient-month-options{padding:9px;border:1px solid #d8e0ef;border-radius:9px;background:#fff;color:#253456;font-weight:800}
.patient-month-options select{display:block;width:100%;height:170px;margin-top:7px;padding:0 9px;font:inherit}
@media(max-width:700px){
  #patientDialog .patient-identity-row,#patientDialog .patient-schedule-row{grid-template-columns:minmax(0,1fr);gap:9px}
  #patientDialog .patient-phone-contacts>.patient-inline-field{flex-basis:calc(100% - 40px)}
  #patientDialog .patient-form{width:94vw;max-height:94dvh;padding:10px}
  #patientDialog .patient-form-row{grid-template-columns:112px minmax(0,1fr);gap:8px;min-height:45px;padding:6px 8px}
  #patientDialog .patient-form-row>span:first-child,#patientDialog .patient-row-label{font-size:12px}
  #patientDialog .patient-phone-values{gap:5px}
  #patientDialog .patient-mobile-field{flex-basis:150px;min-width:120px}
  #patientDialog .time-neighbor-hint{grid-column:2}
  .patient-weekday-options{grid-template-columns:1fr}
}
.patient-contact-row{display:grid;grid-template-columns:minmax(180px,max-content);justify-content:start}
.patient-phone-contacts{display:flex;align-items:flex-end;gap:5px;flex-wrap:wrap}
.patient-phone-contacts>label{width:180px;margin:0}
.related-contact-card{display:grid;gap:2px;min-width:126px;padding:2px;border:0;background:transparent;box-shadow:none;color:inherit;text-align:left}
.related-contact-card:hover{background:#edf2ff}
.related-contact-card strong{color:#34436b;font-size:12px;line-height:1.1}
.related-contact-card span{font-size:12px;line-height:1.1}
.related-contact-editor{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) max-content max-content;align-items:end;gap:7px;margin:7px 0;padding:8px;border:1px solid #d8e0f0;border-radius:9px;background:#f8faff}
.related-contact-editor label{margin:0}
.related-contact-editor input::placeholder{color:#9aa5ba;font-style:italic}
.related-contact-editor button{height:32px;min-height:32px;box-shadow:none}
.related-contact-list{display:grid;gap:6px;margin-top:8px}
.phone-field-with-plus{display:flex;align-items:center;gap:5px}
.phone-field-with-plus input{min-width:0;flex:1}
.phone-field-plus{width:28px;min-width:28px;height:28px;min-height:28px;padding:0;box-shadow:none}
.related-contact-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px;
  align-items:end;
  gap:6px;
  padding:7px;
  border:1px solid #d8e0f0;
  border-radius:9px;
  background:#f8faff;
}
.related-contact-row label{grid-column:1;margin:0}
.related-contact-row label:nth-child(2){grid-row:2}
.related-contact-row input::placeholder{color:#9aa5ba;font-style:italic}
.related-remove{grid-column:2;grid-row:1 / 3;height:34px;padding:0}
details{margin:10px 0}
summary{
  border-radius:12px;
  background:#f4f7fc;
  padding:9px;
  font-weight:900;
}
.dialog-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:12px;
  flex-wrap:wrap;
}
.dialog-actions .danger{margin-left:auto}
.time-neighbor-hint{
  display:none;
  margin:3px 0 0;
  color:#5b6884;
  font-size:11px;
  font-style:italic;
  font-weight:800;
  line-height:1.25;
}
.time-neighbor-hint.visible{display:block}
.profile-suggestions{
  display:grid;
  gap:4px;
  width:min(560px,100%);
  margin:1px 0 5px;
  padding:7px;
  border:1px solid #bdd0f7;
  border-radius:9px;
  background:#f5f8ff;
}
.profile-suggestions strong{color:var(--blue2);font-size:11px}
.profile-suggestion{
  display:grid;
  gap:1px;
  width:100%;
  border:1px solid #d6e0f4;
  border-radius:7px;
  background:#fff;
  color:#24376f;
  padding:5px 7px;
  text-align:left;
  box-shadow:none;
}
.profile-suggestion span{color:#53617c;font-size:11px;font-weight:600}
.profile-suggestion:hover{background:#e7edff}

.care-buttons{
  display:flex;
  gap:7px;
  margin:10px 0;
  flex-wrap:wrap;
}
.care-buttons button{min-width:150px}
.care-buttons [data-care="soin"]{background:#2d7a31;color:#fff}
.care-buttons [data-care="recurringCare"]{background:#46a85b;color:#fff}
.care-buttons [data-care="injection"]{background:#ff1744;color:#fff}
.care-buttons [data-care="zymad"]{background:var(--pink);color:#fff}
.care-buttons [data-care="ordo"]{background:var(--blue);color:#fff}
.care-buttons [data-care="pilulier"]{background:var(--purple);color:#fff}
.care-buttons .pill-pda-button{
  background:linear-gradient(100deg,var(--purple) 0 61%,#fff 61% 63%,#ff7a1a 63% 100%);
  color:#fff;
}
.pill-pda-separator{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  margin:0 2px;
  color:#17203a;
  font-weight:1000;
}
.care-buttons [data-care="vitalSecurity"]{background:var(--red);color:#fff}
.care-buttons button{
  font-size:12px;
  font-weight:900;
}
.care-buttons button.is-unavailable{
  cursor:not-allowed;
  opacity:.45;
  text-decoration:line-through;
}
.vital-card-security{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
  color:#b00020;
  font-weight:900;
  width:max-content;
  max-width:100%;
  padding:2px 8px;
  border-radius:8px;
  background:var(--vital-security-bg);
}
.vital-card-security .dash{color:#b00020}
.vital-card-security.is-future{
  color:#b00020;
  background:transparent;
  border:1px solid #d8e0f0;
}
.vital-card-security.is-secured{
  color:#102047;
  background:var(--vital-security-bg);
}
.vital-card-security.is-secured .dash{color:#102047}
.vital-card-security.is-impossible{
  color:#b00020;
  background:var(--vital-security-bg);
}
.vital-card-actions{
  display:inline-flex;
  gap:6px;
  margin-left:4px;
}
.vital-card-actions button{
  padding:3px 9px;
  border-radius:999px;
  border:1px solid #cfd8ec;
  background:#eef3ff;
  color:#24366f;
  font-size:12px;
  font-weight:900;
  box-shadow:none;
}
.vital-card-actions button.impossible{
  background:#fff0f2;
  color:#b00020;
  border-color:#ffd0da;
}
.vital-card-editor{
  margin:14px 0;
}
.vital-card-editor .add-vital-card-security{
  width:auto;
}
.vital-card-editor-box{
  display:grid;
  gap:9px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f5f7fc;
}
.vital-card-editor-box.vital-card-editor-new{
  border-color:#ff9f1c;
  box-shadow:0 0 0 4px rgba(255,159,28,.25);
}
.vital-security-choice-form{
  max-width:520px;
}
.vital-security-choice-form p{
  margin:8px 0 18px;
  color:#26385f;
  font-weight:800;
  line-height:1.35;
}
.vital-card-editor-box p{
  margin:0;
  color:#23366f;
  font-weight:900;
}
.vital-card-security-menu{
  text-transform:uppercase;
}
.care-edit{
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
  margin:6px 0;
  border:1px solid var(--line);
  border-radius:12px;
  padding:8px 48px 8px 8px;
  min-width:0;
  overflow:hidden;
}
.care-edit.care-soin{background:#addfb7;color:var(--care)}
.care-edit.care-ordo{background:#d8e2ff;color:var(--ordo)}
.care-edit textarea{min-height:34px;height:34px;resize:none;overflow:hidden;padding-right:58px}
.remove-care{
  position:absolute;
  right:8px;
  top:8px;
  width:34px;
  min-width:34px;
  height:22px;
  min-height:22px;
  padding:0;
  border-radius:999px;
  background:var(--red);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  justify-self:end;
  align-self:end;
  line-height:1;
}
.pillulier-edit,.injection-edit,.recurring-care-edit,.ordo-edit,.zymad-edit,.mmdj-edit{
  display:grid;
  align-items:start;
  gap:6px;
  margin:6px 0;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fbf7ff;
  padding:8px 48px 8px 8px;
  min-width:0;
  overflow:hidden;
}
.pillulier-edit{grid-template-columns:1fr 1fr 1fr}
.injection-edit{grid-template-columns:1.3fr .48fr 1fr 1fr}
.recurring-care-edit{grid-template-columns:1.3fr 1fr 1fr}
.ordo-edit{grid-template-columns:.62fr .9fr 1.18fr 1.25fr .9fr}
.zymad-edit{grid-template-columns:.65fr 1fr 1fr 1fr}
.mmdj-edit{grid-template-columns:1fr 1fr .9fr}
.pillulier-edit label,.injection-edit label,.recurring-care-edit label,.ordo-edit label,.zymad-edit label,.mmdj-edit label{margin:0;min-width:0}
.ordo-edit>label,.ordo-edit>.care-field{align-self:start}
.ordo-edit>label{display:flex;flex-direction:column;gap:4px;line-height:14px}
.care-field{display:block;color:#33405e;font-weight:800;line-height:14px}
.care-field>span{display:block}
.ordo-choice{position:relative;margin-top:4px}
.ordo-choice-toggle,.albus-choice-toggle{width:100%;min-height:34px;padding:8px 9px;background:#fff !important;color:#33405e !important;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;justify-content:space-between;font:inherit;font-weight:400;box-shadow:none}
/* Le menu agrandit la ligne : un menu absolu serait coupé par le bloc
   ordonnance et par les autres conteneurs défilants de la fiche. */
.ordo-choice-menu{display:block;margin-top:4px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 3px 8px rgba(20,40,90,.12)}
.ordo-choice-menu button{display:block;width:100%;padding:7px 8px;background:transparent;color:#33405e;text-align:left;box-shadow:none}
.ordo-choice-menu button:hover{background:#edf2ff}
.ordo-note-wrap textarea{min-height:34px;height:34px;resize:none;color:inherit}
.ordo-note-wrap textarea:not(.is-editing){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ordo-note-wrap textarea.is-editing{white-space:pre-wrap;overflow:hidden}
.direct-date-picker{position:fixed;top:50%;left:50%;width:2px;height:2px;opacity:.01;pointer-events:auto;transform:translate(-50%,-50%);z-index:99999;border:0}
.pillulier-preview,.injection-preview,.recurring-care-preview,.ordo-preview,.zymad-preview,.mmdj-preview{
  grid-column:1 / -1;
}
.zymad-intro-warning{
  grid-column:1 / -1;
  color:var(--red);
  font-style:italic;
  font-weight:900;
  padding-top:2px;
}
.zymad-self-managed-on .zymad-preview,
.care-line.care-self-managed .dash,
.care-line.care-self-managed .care-text{
  text-decoration:line-through;
}
.pillulier-preview,.injection-preview,.recurring-care-preview,.ordo-preview,.zymad-preview,.mmdj-preview{
  color:var(--purple);
  font-weight:900;
  padding-top:2px;
}
.mmdj-preview{color:var(--red)}
.recurring-care-preview{color:#46a85b}
.pillulier-edit.pda-edit .pillulier-preview{color:#ff7a1a}
.injection-edit{background:#ffd3dc;color:#ff1744}
.recurring-care-edit{background:#d8f4df;color:#46a85b}
.recurring-care-product::placeholder{font-style:italic;color:#9aa6bd}
.ordo-edit{background:#d8e2ff;color:var(--ordo)}
.zymad-edit{background:#ffd4f0;color:var(--pink)}
.pillulier-edit{background:#ead7ff;color:var(--purple)}
.pillulier-edit.pda-edit{background:#ffe1c7;color:#d95f00}
.mmdj-edit{background:#ffd5dc;color:var(--red)}
.care-edit textarea,.injection-edit input,.recurring-care-edit input,.ordo-edit input,.zymad-edit input,.pillulier-edit input,.mmdj-edit input,
.injection-edit select,.recurring-care-edit select,.ordo-edit select,.zymad-edit select,.pillulier-edit select{
  color:inherit;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.ordo-label-wrap[hidden],.ordo-date[hidden],.ordo-cycles[hidden]{display:none!important}
.care-edit,.pillulier-edit,.injection-edit,.recurring-care-edit,.ordo-edit,.zymad-edit,.mmdj-edit{position:relative}
.care-move-tools{
  position:static;
  grid-column:1 / -1;
  justify-self:end;
  display:flex;
  gap:3px;
  z-index:2;
  margin-top:-2px;
}
.care-move-tools button{
  width:18px;
  min-width:18px;
  height:18px;
  min-height:18px;
  padding:0;
  border-radius:6px;
  background:#eef3ff;
  color:var(--blue);
  font-size:11px;
  font-weight:900;
  box-shadow:none;
}
.albus-validity-warning{margin-left:5px;color:#e0002b;font-size:14px;line-height:1}
.care-edit-new,.injection-edit.care-edit-new,.zymad-edit.care-edit-new,.pillulier-edit.care-edit-new,.mmdj-edit.care-edit-new{
  outline:2px solid #f0a11a;
  outline-offset:2px;
  box-shadow:0 0 0 4px rgba(240,161,26,.18);
}
#pStockMethod{min-height:34px;height:34px;resize:none;overflow:hidden}
.pharmacy-picker-row{display:flex;align-items:center;gap:5px;margin-top:4px}
.patient-doctor-pickers{display:grid;gap:5px}
.doctor-picker-row{margin-top:0}
.doctor-picker-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.add-doctor-picker{justify-self:start;margin-top:1px;box-shadow:none}
.directory-picker{width:min(320px,calc(100% - 34px));min-height:34px;background:#fff !important;color:#33405e !important;border:1px solid var(--line);box-shadow:none;text-align:left;font:inherit;font-weight:400;display:flex;align-items:center;justify-content:space-between;gap:8px}
.pharmacy-picker-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clear-directory-picker{width:29px;min-width:29px;height:29px;min-height:29px;padding:0;border-radius:50%;background:var(--red);color:#fff;font-size:16px;line-height:1;box-shadow:none}

/* Texte lisible dans les cartes */
.item,.item *,.card,.card *,.general-notes,.general-notes *,
.quick-notes,.quick-notes *,.care-list,.care-list *,.care-line,.care-line *,
.care-text,.note-row,.note-row *,.patient-alert-wrap,.patient-alert-wrap *,
.patient-alert-box,.patient-alert-box *,.address,.name,.kind,.title{
  max-height:none;
  overflow:visible;
  overflow-wrap:anywhere;
  text-overflow:clip;
  white-space:normal;
  word-break:normal;
}
.care-text,.note-input,.patient-alert-input{
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.patient-alert-box .patient-alert-input{
  height:auto;
  overflow:hidden;
  max-height:none;
}

/* Cette règle doit venir après la règle générale des cartes : le panneau de
   swipe ne laisse ainsi plus réapparaître le fond blanc dans son angle bas. */
.item.swipe-enabled{overflow:hidden}
.item.swipe-enabled .swipe-card-content{overflow:hidden}

@media(max-width:650px){
  .hero{gap:6px;margin-bottom:8px;padding:9px 8px 7px}
  .hero-main{gap:4px}
  .hero h1{font-size:14px}
  #dateLabel{font-size:14px;margin-right:1px}
  .date-label-long{display:none}
  .date-label-short{display:inline}
  body:not(.weather-enabled) .date-label-long{display:inline}
  body:not(.weather-enabled) .date-label-short{display:none}
  .weather-summary{padding:2px 0;font-size:10px}
  .cloud-status{min-height:24px;padding:3px 5px;font-size:10px}
  .refresh-btn{width:24px;min-width:24px;height:24px}
  #searchInput{width:152px;flex-basis:152px;min-width:0;height:27px;padding:5px 7px}
  .top-actions{gap:5px}
  .top-actions button{min-height:27px;padding:4px 3px;font-size:11px}
  body.training-mode .hero{padding-bottom:45px}
  body.training-mode .top-actions #leaveTrainingBtn{
    position:absolute;
    left:18px;
    right:18px;
    bottom:8px;
    width:auto;
    min-width:0;
    min-height:29px;
    z-index:4;
  }
  .plan-tab{min-height:26px;padding:5px 7px;font-size:10px}
  .plan-switcher{top:39px;right:20px;width:152px}
  #logoutBtn{padding-left:8px;padding-right:8px}

  .item{margin:1px 5px;padding:6px 7px}
  .drop-gap,.cab-drop-gap{height:16px;margin:-5px 5px}
  .drop-gap.hover,.cab-drop-gap.hover{height:40px;margin:1px 5px}
  .patient-header{gap:4px}
  .header-left{gap:5px}
  .header-tools{gap:4px}
  .drag-handle{width:56px;min-width:56px;height:26px;min-height:26px}
  .patient-alert-wrap{
    grid-template-columns:13px minmax(0,1fr);
    width:calc(100% - 26px);
    margin-top:-6px;
    margin-left:20px;
  }
  .patient-alert-plus{
    width:13px;
    min-width:13px;
    height:13px;
    min-height:13px;
    font-size:9px;
  }
  .swipe-actions{width:112px}
  .swipe-care-actions{width:112px}
  .swipe-actions button{font-size:10px}
  .item.swipe-delete-open .swipe-card-content{transform:translateX(-104px);border-radius:12px 0 0 12px}
  .item.swipe-care-open .swipe-card-content{transform:translateX(104px);border-radius:0 12px 12px 0}

  .care-line.injection-due,.care-line.recurring-care-due,.care-line.zymad-due,.care-line.pilulier-due{
    grid-template-columns:14px minmax(0,1fr);
    gap:4px;
    padding:0;
  }
  .pill-done-wrap{font-size:10px;padding:4px 8px}
  .pill-done{flex-basis:1px;width:1px !important;min-width:1px !important;max-width:1px;height:1px !important;min-height:1px}

  .modal{padding:3vh 10vw}
  .modal form{
    width:80vw;
    max-height:70vh;
    border-radius:14px;
    padding:9px;
  }
  .modal form h2{margin-bottom:6px;font-size:15px}
  .modal label{margin:5px 0 3px}
  .modal input,.modal textarea,.modal select{
    border-radius:10px;
    padding:6px 7px;
    font-size:12px;
  }
  .modal textarea{min-height:36px}
  .modal details{margin:6px 0}
  .modal summary{padding:7px}
  .modal .dialog-actions{
    position:sticky;
    bottom:0;
    background:#fff;
    padding-top:8px;
  }
  .two,.three,.patient-main-row,.pillulier-edit,.injection-edit,.recurring-care-edit,.ordo-edit,.zymad-edit,.mmdj-edit{
    grid-template-columns:1fr;
  }
  .patient-contact-row{grid-template-columns:1fr}
  .patient-phone-contacts{align-items:flex-end}
  .patient-phone-contacts>label{width:100%}
  .related-contact-editor{grid-template-columns:1fr}
  .team-invite{grid-template-columns:1fr}
  .team-member{grid-template-columns:minmax(0,1fr) 28px;align-items:stretch}
  .team-member-profile{grid-column:1}
  .team-member-right{grid-column:1}
  .team-remove-strip{grid-column:2;grid-row:1 / span 3}
  .profile-row{gap:5px;padding:7px}
  .profile-row-actions{gap:4px;flex-wrap:nowrap}
  .profile-row-actions button{min-height:29px;padding:5px 6px;font-size:10px}
  .profile-row-actions .profile-delete-btn{width:29px;min-width:29px;padding:0;font-size:17px}
  .profile-suggestions{width:100%;padding:6px}
  .profile-suggestion{white-space:normal}
  .pillulier-preview,.injection-preview,.recurring-care-preview,.ordo-preview,.zymad-preview,.mmdj-preview,.zymad-intro-warning{grid-column:1}
}

@media (max-width:700px){
  .patient-main-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:7px;
  }
  .patient-main-row>label:nth-of-type(4){
    grid-column:1 / -1;
  }
  .patient-location-field{
    display:grid;
    grid-template-columns:1fr;
    gap:2px;
  }
  .patient-location-field label{
    margin:0;
    font-size:11px;
  }
  .patient-contact-row{grid-template-columns:1fr}
  .patient-phone-contacts>label{width:100%}
  .three{
    grid-template-columns:.72fr 1fr 1fr;
    gap:7px;
  }
  .injection-edit{
    grid-template-columns:minmax(0,1fr) 78px 34px;
  }
  .injection-edit label:nth-child(1),
  .injection-edit label:nth-child(3){
    grid-column:1;
  }
  .injection-edit label:nth-child(2),
  .injection-edit label:nth-child(4){
    grid-column:2;
  }
  .injection-edit .remove-care{
    grid-column:3;
    grid-row:1 / span 2;
    align-self:center;
  }
  .recurring-care-edit .remove-care,
  .zymad-edit .remove-care{
    position:absolute;
    right:8px;
    top:8px;
  }
  .injection-preview{
    grid-column:1 / -1;
    padding-right:38px;
  }
  .recurring-care-edit{
    grid-template-columns:minmax(0,1.2fr) minmax(0,.85fr) minmax(0,.95fr);
    padding-right:48px;
  }
  .recurring-care-preview{
    grid-column:1 / -1;
  }
  .zymad-edit{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    padding-right:48px;
  }
  .zymad-edit label:first-child,
  .zymad-edit label:nth-child(4),
  .zymad-preview,
  .zymad-intro-warning{
    grid-column:1 / -1;
  }
  .pillulier-edit{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) 34px;
  }
  .pillulier-edit .pil-note{
    grid-column:1 / 3;
  }
  .pillulier-edit .remove-care{
    grid-column:3;
    align-self:end;
  }
  .pillulier-preview{
    grid-column:1 / -1;
  }
  .ordo-edit,
  .mmdj-edit{
    grid-template-columns:minmax(0,1fr) 34px;
  }
  .ordo-edit>label,
  .ordo-edit>.care-field,
  .ordo-preview,
  .mmdj-edit>label,
  .mmdj-preview{
    grid-column:1 / -1;
  }
  .ordo-edit>.remove-care,
  .mmdj-edit>.remove-care{
    grid-column:2;
    grid-row:auto;
    justify-self:end;
    align-self:end;
  }
  .ordo-edit input,
  .ordo-edit select,
  .ordo-edit textarea,
  .mmdj-edit input{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  .personal-note-card{
    grid-template-columns:minmax(0,1fr) auto;
    padding:7px;
  }
  .personal-note-card-actions{
    gap:3px;
  }
  .personal-note-card-actions .secondary{
    padding:6px 7px;
    font-size:10px;
  }
}

@media (max-width:700px){
  .care-edit,
  .pillulier-edit,
  .injection-edit,
  .recurring-care-edit,
  .ordo-edit,
  .zymad-edit,
  .mmdj-edit{
    padding:8px;
    overflow:hidden;
  }
  .care-edit,
  .ordo-edit,
  .mmdj-edit{
    grid-template-columns:minmax(0,1fr);
  }
  .injection-edit{
    grid-template-columns:minmax(0,1fr) 78px;
  }
  .pillulier-edit{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
  .care-edit>.remove-care,
  .pillulier-edit>.remove-care,
  .injection-edit>.remove-care,
  .recurring-care-edit>.remove-care,
  .ordo-edit>.remove-care,
  .zymad-edit>.remove-care,
  .mmdj-edit>.remove-care{
    position:static;
    grid-column:1 / -1;
    grid-row:auto;
    justify-self:stretch;
    align-self:center;
    width:100%;
    max-width:100%;
    min-width:0;
    height:17px;
    min-height:17px;
    margin:2px 0 0;
    font-size:12px;
    line-height:1;
  }
  .recurring-care-edit>.remove-care,
  .zymad-edit>.remove-care{
    right:auto;
    top:auto;
  }
  .pillulier-edit .pil-note,
  .injection-preview,
  .recurring-care-preview,
  .ordo-preview,
  .zymad-preview,
  .mmdj-preview,
  .zymad-intro-warning{
    grid-column:1 / -1;
    padding-right:0;
  }
  .ordo-edit>label,
  .ordo-edit>.care-field,
  .mmdj-edit>label,
  .care-edit textarea,
  .ordo-edit input,
  .ordo-edit select,
  .ordo-edit textarea,
  .mmdj-edit input{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  .ordo-date,
  .albus-date,
  .mmdj-date,
  .mmdj-ordo-date{
    display:block;
    -webkit-appearance:none;
    appearance:none;
  }
  .care-move-tools{
    position:static;
    grid-column:1 / -1;
    justify-self:end;
    margin-top:-2px;
    justify-content:flex-end;
  }
}

@media (max-width:700px){
  #patientDialog label,
  #patientDialog .care-edit,
  #patientDialog .pillulier-edit,
  #patientDialog .injection-edit,
  #patientDialog .recurring-care-edit,
  #patientDialog .ordo-edit,
  #patientDialog .zymad-edit,
  #patientDialog .mmdj-edit{
    min-width:0;
    max-width:100%;
  }
  #patientDialog input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]),
  #patientDialog select,
  #patientDialog textarea{
    width:100%;
    max-width:100%;
    min-width:0;
    min-height:32px;
    height:32px;
    padding:5px 7px;
    box-sizing:border-box;
  }
  #patientDialog input[type="date"]{
    display:block;
    -webkit-appearance:none;
    appearance:none;
  }
  #patientDialog textarea{
    overflow:hidden;
    resize:vertical;
  }

  .recurring-care-edit{
    grid-template-columns:minmax(0,1fr) minmax(0,.92fr);
  }
  .recurring-care-edit label:nth-child(1){
    grid-column:1;
  }
  .recurring-care-edit label:nth-child(2){
    grid-column:2;
  }
  .recurring-care-edit label:nth-child(3){
    grid-column:1 / -1;
  }
  .recurring-care-edit label:nth-child(4){
    grid-column:1 / -1;
  }

  .injection-edit{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 78px;
  }
  .injection-edit label:nth-child(1){
    grid-column:1 / 4;
  }
  .injection-edit label:nth-child(2){
    grid-column:4;
  }
  .injection-edit label:nth-child(3),
  .injection-edit label:nth-child(4),
  .injection-edit label:nth-child(5){
    grid-column:1 / -1;
  }

  .pillulier-edit{
    grid-template-columns:minmax(0,1fr);
  }
  .pillulier-edit label,
  .pillulier-edit .pil-note{
    grid-column:1 / -1;
  }

  .mmdj-edit input,
  .mmdj-edit input[type="date"],
  .mmdj-date,
  .mmdj-ordo-date{
    height:32px;
    line-height:1.2;
  }
  .directory-row{
    grid-template-columns:minmax(0,1fr) 112px;
    align-items:stretch;
  }
  .directory-row-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:4px;
    align-self:stretch;
  }
  .directory-row-actions button{
    white-space:normal;
    line-height:1.05;
  }
  .directory-row-actions .profile-delete-btn{
    width:auto!important;
    min-width:0!important;
    border-radius:10px!important;
    font-size:10px!important;
  }
  #patientDialog .care-edit textarea{
    min-height:32px;
    height:auto;
    padding-right:48px;
  }
  #patientDialog .injection-edit,
  #patientDialog .recurring-care-edit,
  #patientDialog .pillulier-edit,
  #patientDialog .ordo-edit,
  #patientDialog .mmdj-edit{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }
  #patientDialog .recurring-care-edit{
    grid-template-columns:minmax(0,1fr) minmax(0,.92fr);
  }
  #patientDialog .recurring-care-edit label:nth-child(1){
    grid-column:1;
  }
  #patientDialog .recurring-care-edit label:nth-child(2){
    grid-column:2;
  }
  #patientDialog .recurring-care-edit label:nth-child(3),
  #patientDialog .recurring-care-edit label:nth-child(4){
    grid-column:1 / -1;
  }
  #patientDialog .injection-edit{
    grid-template-columns:minmax(0,1fr) 78px;
  }
  #patientDialog .injection-edit label:nth-child(1){
    grid-column:1;
  }
  #patientDialog .injection-edit label:nth-child(2){
    grid-column:2;
  }
  #patientDialog .injection-edit label:nth-child(3),
  #patientDialog .injection-edit label:nth-child(4),
  #patientDialog .injection-edit label:nth-child(5){
    grid-column:1 / -1;
  }
  #patientDialog .pillulier-edit{
    grid-template-columns:minmax(0,1fr);
  }
  #patientDialog .pillulier-edit label,
  #patientDialog .pillulier-edit .pil-note{
    grid-column:1 / -1;
  }
}

/* Notes patients versionnées : même repère compact que les notes historiques. */
.patient-notes-v2{display:grid;grid-template-columns:14px minmax(0,1fr);align-items:end;gap:0;width:calc(100% - 40px);margin:-7px 0 0 30px;position:relative;z-index:2;overflow:visible}
.patient-note-add-rail{grid-column:1;align-self:end}
button.patient-note-add{position:relative;z-index:4;width:14px;min-width:14px;height:14px;min-height:14px;margin:0;padding:0!important;border:1px solid #ff0000;border-radius:0 0 5px 5px;background:#fff!important;color:#ff0000!important;box-shadow:0 2px 5px rgba(16,28,70,.08);font-size:10px;line-height:1;font-weight:900;overflow:visible}
.patient-note-body{grid-column:2;min-width:0;margin:0;border:1px solid var(--line);border-radius:9px;background:#fff;padding:2px 7px;box-shadow:none}
.patient-note-body:has(.patient-note-list:empty):not(:has(.patient-note-status:not([hidden]))){padding:0;border-color:transparent;background:transparent}
.patient-note-list{display:block;min-height:0}
.patient-note-v2{min-height:17px;display:grid;grid-template-columns:14px minmax(0,1fr);align-items:start;gap:4px;margin:0;padding:0;color:#192338}
.patient-note-v2 .dash{grid-column:1;color:var(--note-red)}
.patient-note-v2.patient-note-conflict{display:block;min-width:0;margin:3px 0;padding:6px 8px;border:1px solid #f1b9b9;border-radius:7px;background:#fff5f5;color:#742029}
.patient-note-conflict-title{display:block;margin:0 0 5px;font-size:12px;line-height:1.2}
.patient-note-conflict-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:4px 0;border-top:1px solid #f5d7d7}
.patient-note-conflict-option p{min-width:0;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.2}
.patient-note-conflict-choice{width:auto;min-width:0;margin:0;padding:4px 7px;white-space:nowrap;border:1px solid #efb1b1;border-radius:5px;background:#fff;color:#8c1420;font-size:11px;font-weight:800;line-height:1.1}
.patient-note-v2 textarea{grid-column:2;display:block;width:100%;height:auto;min-height:17px;margin:0;padding:0 2px;border:0;border-radius:6px;color:var(--note-red);background:transparent;font-size:13px;font-family:inherit;font-weight:400;line-height:1.1;resize:none;overflow:hidden;user-select:text;-webkit-user-select:text;-webkit-touch-callout:default;touch-action:manipulation}
.patient-note-v2 textarea:focus{outline:1px solid #ffb8b8;background:#fff}
.patient-note-tools{display:none;grid-column:2;flex-wrap:wrap;align-items:center;gap:3px;margin:2px 0 1px}
.patient-note-v2:focus-within .patient-note-tools{display:flex}
.patient-note-tools .patient-note-tool{width:24px;min-width:24px;height:24px;min-height:24px;padding:0;border:1px solid #c7d1e2;border-radius:6px;background:#f1f4fa;color:#24376f;box-shadow:none;font-size:13px;line-height:1;font-weight:900}
.patient-note-tools .patient-note-swatch{font-size:0;border-radius:5px}
.patient-note-tools .patient-note-swatch-green{background:var(--hlgreen)}
.patient-note-tools .patient-note-swatch-yellow{background:var(--yellow)}
.patient-note-tools .patient-note-swatch-orange{background:var(--hlorange)}
.patient-note-tools .patient-note-delete{color:#d4002a;background:#fff0f3;border-color:#f3acba;font-size:20px;line-height:18px}
.patient-note-color-picker{display:inline-flex;align-items:center;gap:3px}
.patient-note-color-choices{display:none;gap:3px}
.patient-note-color-picker.is-open .patient-note-color-choices{display:inline-flex}
.patient-note-tools .patient-note-text-black{width:auto;min-width:38px;padding:0 5px;color:#111;background:#fff}
.patient-note-tools .patient-note-text-red{width:auto;min-width:42px;padding:0 5px;color:var(--note-red);background:#fff}
.note-reorder-dialog form{max-width:520px}
.note-reorder-dialog p{margin:0 0 10px;color:#53617c}
.note-reorder-list{display:grid;gap:7px;max-height:min(50vh,360px);overflow:auto}
.patient-note-status{font-size:11px;color:#566174}
.patient-note-v2 textarea.note-bold{font-weight:700}
.patient-note-v2 textarea.note-italic{font-style:italic}
.patient-note-v2 textarea.note-underline{text-decoration:underline}
.patient-note-v2 textarea.hl-yellow{background:var(--yellow);color:var(--note-red)}
.patient-note-v2 textarea.hl-green{background:var(--hlgreen);color:var(--note-red)}
.patient-note-v2 textarea.hl-orange{background:var(--hlorange);color:var(--note-red)}
.patient-note-v2 textarea.note-black{color:#111}
/* Keep native selection with compact, consistent line spacing on touch phones. */
.patient-note-v2 textarea{white-space:pre-wrap;touch-action:auto;-webkit-text-size-adjust:100%}
@media(max-width:480px) and (pointer:coarse){
  .patient-note-v2 textarea,.note-input,.patient-alert-input{font-size:13px;line-height:1.25;padding:0 2px;-webkit-appearance:none}
}
.shared-notes-v2{width:100%;margin:0;align-items:start}
.shared-notes-v2 .patient-note-add-rail{align-self:start;margin-top:3px}
.general-notes #addGeneralNote[hidden]{display:none}
.quick-notes .patient-notes-v2{width:100%;margin:5px 0 0}
@media(max-width:650px){
  .patient-card-with-alert>.patient-notes-v2{grid-template-columns:13px minmax(0,1fr);width:calc(100% - 26px);margin-top:-6px;margin-left:20px}
  .patient-card-with-alert>.patient-notes-v2 .patient-note-add{width:13px;min-width:13px;height:13px;min-height:13px;font-size:9px}
}
.patient-card-content{ -webkit-touch-callout:none; }
.patient-card-content :is(input,textarea,[contenteditable],a,.quick-notes){-webkit-touch-callout:default}
body.patient-card-dragging,body.patient-card-dragging *{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}
.patient-drag-placeholder{box-sizing:border-box;display:flex;align-items:center;justify-content:center;min-height:64px;margin:8px 0;padding:12px;border:2px dashed #849ac4;border-radius:18px;background:#eaf0fa;color:#304778;font-weight:700;overflow:hidden}
.patient-drag-ghost{position:fixed;top:0;left:0;z-index:10000;pointer-events:none;max-width:min(300px,70vw);padding:12px 18px;border:1px solid #a7b8d8;border-radius:16px;background:#fff;color:#20345f;font-weight:700;box-shadow:0 12px 30px #172a4a40}
.menu-search-results{position:fixed;z-index:1000;overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box;padding:5px;background:#fff;border:1px solid #c4cee2;border-radius:12px;box-shadow:0 8px 24px #13274430}
.menu-search-results[hidden]{display:none}
.menu-search-results button{display:block;width:100%;text-align:left;background:transparent;color:#243659;border:0;border-radius:8px;box-shadow:none;padding:10px;font-size:14px;line-height:1.3;white-space:normal}
.menu-search-results button:hover,.menu-search-results button[aria-selected="true"],.menu-search-results button:focus-visible{background:#edf2fa}
.menu-search-results small{display:block;margin-top:3px;font-size:11px;font-weight:400;color:#66738b}

/* Shared moving-row preview for mouse and touch. */
.fluid-sort-ghost{position:fixed!important;z-index:10020!important;margin:0!important;pointer-events:none!important;opacity:.94;box-shadow:0 10px 26px #17203a40!important;box-sizing:border-box;max-height:60vh;overflow:hidden}
.fluid-sort-placeholder{opacity:.2!important;pointer-events:none!important;outline:2px dashed #8ea3c9}
.fluid-sorting{user-select:none;-webkit-user-select:none}
.note-reorder-dialog{align-items:center;overflow:hidden;overscroll-behavior:contain;touch-action:none;padding:max(16px,env(safe-area-inset-top)) 10vw max(16px,env(safe-area-inset-bottom))}
.note-reorder-dialog form{display:flex;flex-direction:column;width:min(94vw,520px);max-height:calc(100dvh - max(32px,env(safe-area-inset-top) + env(safe-area-inset-bottom)));overflow:hidden;overscroll-behavior:contain}
.note-reorder-dialog .note-reorder-list{min-height:0;max-height:none;flex:1 1 auto;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;padding-right:2px}
.note-reorder-row{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;align-items:center;padding:9px;border:1px solid #d4ddec;border-radius:9px;background:#fff;color:#24376f}
.note-reorder-row.is-selected{border-color:#718cc0;background:#f0f5ff}
.note-reorder-text{grid-column:2;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.35}
.note-reorder-handle{touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;display:grid;place-items:center;width:28px;height:32px;background:#e8edf7;border-radius:7px;color:#304878}

.tour-order-zone.cabinet > .tour-order-list{min-height:34px}
.care-transmission-photos{display:grid;gap:7px;margin:10px 0;color:#2b3d70}
.care-transmission-photos strong{font-size:14px}
.care-transmission-photo-list,.care-folder-entry-photos{display:flex;flex-wrap:wrap;gap:6px}
.care-transmission-photo-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border:1px solid #c8d6ec;border-radius:7px;background:#f3f7fd;font-size:12px;color:#2b3d70}
.care-transmission-photo-chip button{padding:0 3px;min-width:20px;border:0;background:transparent;color:#a72635;font-size:17px;line-height:1}
.care-transmission-photo-empty{color:#7b879d;font-size:12px;font-style:italic}
.care-transmission-add-photo{justify-self:start}
.care-folder-open-photo{padding:4px 7px!important;font-size:11px!important}
/* Les poignées de sélection iOS doivent rester natives dans les notes sur plusieurs lignes. */
.note-input,.note-static{user-select:text!important;-webkit-user-select:text!important;-webkit-touch-callout:default;touch-action:auto}
.note-input{position:relative;z-index:1;overflow-y:auto!important;overflow-x:hidden!important}
/* Sur iPhone, garder le vrai champ affiché évite le second toucher qui
   remplaçait une sélection multi-ligne par la version statique de la note. */
@media(max-width:480px){.note-row .note-static{display:none!important}.note-row .note-input{display:block!important;cursor:text}}
.care-entry-date-time{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,1.4fr);align-items:center;gap:12px;margin:12px 0;color:#2b3d70;font-weight:800}
.care-entry-date-time-fields{display:flex;align-items:center;gap:8px;min-width:0}.care-entry-date-time-fields input{min-width:0;margin:0}.care-entry-date-time-fields .care-entry-date{flex:1}.care-entry-date-time-fields .care-entry-time{width:112px;flex:0 0 112px}
.care-entry-recorded-time{margin-left:6px;color:#657394;font-size:11px;font-weight:800}
.care-ta-note{color:#6c7890;font-size:12px;font-style:italic;font-weight:500}
@media(max-width:480px){.care-entry-date-time{grid-template-columns:128px minmax(0,1fr);gap:9px}.care-entry-date-time-fields{gap:6px}.care-entry-date-time-fields .care-entry-time{width:82px;flex-basis:82px}}

/* La note décrit la prise de TA et de pouls, sous leurs deux valeurs. */
.care-folder-entry p .care-ta-pulse-value{white-space:nowrap;font-weight:400;color:inherit}

/* Garder la recherche visible dans le viewport pendant la saisie au clavier. */
.hero.search-header-pinned{position:fixed;top:var(--search-header-top,0px);left:var(--search-header-left,0px);width:var(--search-header-width,100%)}
.search-header-spacer{pointer-events:none}
.hero > .menu-search-results{position:absolute}

/* The prescribed table wraps into readable ranges on narrow PWA screens. */
.insulin-protocol-picker { margin: 14px 0; min-width: 0; }
.protocol-choice-label { color: #b32632; }
.protocol-choice-label select { color: #b32632; }
.protocol-settings, .protocol-table { min-width: 0; }
.protocol-tools { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.protocol-tools button { white-space: normal; }
.protocol-status { font-size: .88em; color: #b32632; }
.insulin-protocol-form { width: min(800px, 95vw); max-width: 100%; overflow-x: hidden; }
.protocol-insulin-headings, .protocol-doses { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(130px, 100%), 1fr)); gap: 10px; }
.protocol-heading-control { display: flex; gap: 4px; min-width: 0; }
.protocol-heading-control input { flex: 1; min-width: 0; }
.protocol-range { margin: 10px 0; padding: 8px; min-width: 0; border: 1px solid #cbd5eb; border-radius: 12px; }
.protocol-range-line { display: grid; grid-template-columns: repeat(var(--protocol-columns), minmax(0, 1fr)); gap: 8px; align-items: end; }
.protocol-range-line .protocol-bounds, .protocol-range-line .protocol-doses { display: contents; }
.protocol-range legend { display: flex; align-items: center; gap: 8px; }
.protocol-remove-row { padding: 2px 10px; }
.protocol-range label, .protocol-insulin-headings label { min-width: 0; }
.protocol-range-line label { display: grid; grid-template-rows: 32px auto; gap: 2px; margin: 0; font-size: 12px; line-height: 15px; white-space: normal; }
.protocol-range input, .protocol-insulin-headings input { width: 100%; min-width: 0; box-sizing: border-box; }
.protocol-doses { margin-top: 10px; }
.protocol-dose-label { display: block; }
.insulin-protocol-picker select { width: 100%; min-width: 0; }
#insulinProtocolDialog { overflow: hidden; }
#insulinProtocolDialog form { overflow-y: auto; overscroll-behavior: contain; }

@media (max-width: 600px) {
  .protocol-range-line { grid-template-columns: repeat(var(--protocol-mobile-columns), minmax(0, 1fr)); gap: 6px; }
  .protocol-range-line label { font-size: 12px; }
  .protocol-range-line input { padding: 8px 5px; font-size: 16px; }
}

.protocol-doses-review .care-vital-insulin-row input,
.protocol-doses-review .care-vital-insulin-row select { border: 2px solid #b32632; box-shadow: 0 0 0 1px rgba(179,38,50,.12); }

.protocol-insulin-block { min-width: 0; margin: 14px 0; padding: 12px; border: 1px solid #cbd5eb; border-radius: 12px; }
.protocol-insulin-block > label { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.protocol-insulin-block input, .protocol-insulin-block select { min-width: 0; width: 100%; box-sizing: border-box; }
.protocol-range input[readonly] { background: #edf2fb; }
.protocol-doses-review select:disabled { opacity: 1; color: #24376f; background: #f4f6fb; }

.care-history-hint { color:#b32632; font-style:italic; font-size:.82em; margin:2px 0 12px; }
.care-product-tools { display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 16px; }
.care-product-group { min-width:0; }
.care-product-line .care-acts-check-value { flex-wrap:wrap; }
.care-product-line .care-acts-check-value > input.care-product-name { flex:1 1 110px; min-width:100px; }
.care-product-line .care-acts-check-value > input.care-product-note { flex:1 1 130px; min-width:110px; }
.care-product-line select { flex:0 0 84px; min-width:68px; }

.care-routine-product-help { color:#63718b; font-size:.82em; margin:6px 0 14px; }
