/* A bounded chat: only the message list scrolls; the composer stays in view. */
#trainer-app .comms-compose form .comms-attach{display:grid;place-items:center;background:var(--surface2)!important;color:var(--muted)!important;border:1px solid var(--line)}
#trainer-app .comms-compose [data-attach-input][hidden],#trainer-app .comms-attachment-tray[hidden],#trainer-app .comms-attachment-error[hidden]{display:none!important}
#trainer-app .comms-attachment-tray{display:flex;gap:8px;padding:8px 12px 0;overflow-x:auto;overscroll-behavior:contain;max-width:100%;min-width:0}
#trainer-app .comms-pending-file{display:flex;flex:none;align-items:center;gap:8px;max-width:240px;border:1px solid var(--line);border-radius:10px;padding:4px 4px 4px 10px;background:var(--bg);color:var(--text)}
#trainer-app .comms-pending-file>svg,#trainer-app .comms-file-link>svg{width:20px;height:24px;flex:none;color:var(--green)}
#trainer-app .comms-pending-file>span,#trainer-app .comms-file-link>span:first-of-type{display:block;flex:1;min-width:0}
#trainer-app .comms-pending-file strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px!important;font-weight:550}
#trainer-app .comms-pending-file small{display:block;color:var(--muted);font-size:10px!important}
#trainer-app .comms-pending-file button{background:transparent!important;color:var(--muted)!important;border:0;font-size:21px!important}
#trainer-app .comms-attachment-error{margin:0;padding:8px 12px 0;font-size:12px;color:#ff8585}
#trainer-app .comms-file{margin:8px 0;min-width:0;max-width:260px}
#trainer-app .comms-image{display:block;border-radius:10px;overflow:hidden;background:var(--bg)}
#trainer-app .comms-image img{display:block;width:100%;height:auto;max-height:180px;aspect-ratio:3/2;object-fit:contain}
#trainer-app .comms-file-link{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid var(--line);border-radius:10px;color:var(--text);text-decoration:none;min-height:48px;background:var(--bg);overflow-wrap:anywhere}
#trainer-app .comms-file-link strong{display:block;font-size:13px!important;font-weight:550;line-height:1.4}
#trainer-app .comms-file-link small{display:block;font-size:10px!important;color:var(--muted);text-align:left!important;margin-top:3px}
#trainer-app .comms-file-link>span:last-child{font-size:20px!important;color:var(--green)}
#trainer-app .notification-target { outline:2px solid var(--green); outline-offset:-2px; }
#trainer-app #clientCommsOverlayV57 { z-index:260; }
#trainer-app #clientCommsOverlayV57 .v57-client-comms { display:flex!important; flex-direction:column; height:min(780px,calc(100dvh - 32px)); max-height:calc(100dvh - 32px)!important; padding:0!important; overflow:hidden!important; }
#trainer-app .v57-client-comms>.handle { display:none; }
#trainer-app .v57-client-comms>header { flex-shrink:0; padding:16px 20px!important; align-items:center; gap:12px; }
#trainer-app .v57-client-comms>header span { font-size:11px!important; }
#trainer-app .v57-client-comms>header h2 { font-size:20px!important; line-height:1.3; margin:2px 0!important; overflow-wrap:anywhere; }
#trainer-app .v57-client-comms>header>div { flex:1; min-width:0; }
#trainer-app .comms-avatar { display:grid; place-items:center; flex-shrink:0; width:40px; height:40px; border:1px solid var(--line); border-radius:50%; background:var(--surface2); color:var(--green); font-size:14px!important; font-weight:700; }
#trainer-app .v57-client-comms>header .comms-avatar { font-size:14px!important; }
#trainer-app #clientCommsCloseV57 { min-width:44px; height:44px; border-radius:12px; background:var(--surface2)!important; }
#trainer-app #clientCommsBodyV57 { display:flex; flex-direction:column; flex:1; min-height:0; overflow:hidden; }
#trainer-app .v59-client-comms-tabs { margin:0!important; padding:0 16px; flex-shrink:0; gap:12px; }
#trainer-app .v59-client-comms-tabs button { min-height:44px; font-size:14px!important; }
#trainer-app #clientCommsBodyV57>.v57-thread { display:flex; flex-direction:column; flex:1; min-height:0; padding:0!important; }
#trainer-app #clientCommsBodyV57>.v57-thread[hidden], #trainer-app #clientCommsBodyV57>.v57-checkin-form[hidden] { display:none!important; }
#trainer-app #clientMessagesV57 { height:auto!important; min-height:0; flex:1; padding:18px!important; overscroll-behavior:contain; overflow:auto; }
#trainer-app .comms-compose { flex-shrink:0; min-width:0; background:var(--surface); border-top:1px solid var(--line); }
#trainer-app .comms-compose form { display:flex!important; align-items:flex-end; gap:8px!important; padding:12px!important; border:0!important; }
#trainer-app .comms-compose textarea { display:block; flex:1; min-width:0; width:0; height:44px; min-height:44px!important; max-height:min(100px,max(44px,calc(var(--op-visible-height,100dvh)/4))); resize:none; font-size:16px!important; line-height:22px!important; padding:10px 12px!important; margin:0!important; border-radius:14px!important; overflow-y:auto; }
#trainer-app .comms-compose button { min-width:44px; min-height:44px!important; height:44px; border-radius:12px!important; padding:10px!important; font-size:13px!important; flex-shrink:0; }
#trainer-app .comms-compose button svg { width:22px; height:22px; }
#trainer-app .comms-compose button:disabled { opacity:.5; }
#trainer-app .comms-compose .comms-hide-keyboard { display:none; background:var(--surface2)!important; color:var(--muted)!important; font-size:24px!important; }
#trainer-app .comms-error { margin:0; padding:10px 14px 0; color:var(--orange); font-size:13px; overflow-wrap:anywhere; }
#trainer-app .comms-error[hidden], #trainer-app .comms-earlier[hidden] { display:none!important; }
#trainer-app .comms-earlier { flex-shrink:0; padding:8px 12px; background:var(--surface2); color:var(--muted); font-size:12px; display:flex; justify-content:space-between; align-items:center; gap:8px; }
#trainer-app .comms-earlier button { border:0; background:transparent; color:var(--green); min-height:44px; font-size:12px; }
#trainer-app :where(#clientMessagesV57,#v57CoachThread) .v57-msg { max-width:86%; border-radius:16px!important; padding:10px 13px!important; min-width:0; overflow-wrap:anywhere; flex-shrink:0; }
#trainer-app :where(#clientMessagesV57,#v57CoachThread) .v57-msg p { margin:4px 0 6px; font-size:16px!important; line-height:1.5!important; }
#trainer-app :where(#clientMessagesV57,#v57CoachThread) .v57-msg span { font-size:11px!important; }
#trainer-app :where(#clientMessagesV57,#v57CoachThread) .v57-msg small { font-size:11px!important; display:block; text-align:right; }
#trainer-app #clientCommsBodyV57>.v57-checkin-form { min-height:0; flex:1; overflow:auto; padding:20px!important; }
#trainer-app .v57-checkin-form h3 { font-size:20px!important; }
#trainer-app .v57-checkin-form .v57-section-title p { font-size:13px!important; }
#trainer-app .v57-checkin-form label { grid-template-columns:110px minmax(0,1fr) 20px!important; }
#trainer-app .v57-checkin-form label span, #trainer-app .v57-checkin-form output { font-size:14px!important; }
#trainer-app .comms-mobile-bar { display:none; }
#trainer-app .v57-comms-workspace { height:clamp(360px,calc(100dvh - 225px),780px); min-height:0!important; }
#trainer-app .v57-comms-workspace>main { display:flex!important; flex-direction:column; min-height:0; }
#trainer-app .v57-comms-workspace>main>header { flex-shrink:0; align-items:center; }
#trainer-app .v57-comms-workspace>main>header h2 { font-size:20px!important; }
#trainer-app .v57-comms-workspace>main>header :where(span,small) { font-size:12px!important; color:var(--muted); }
#trainer-app #v57CoachThread { flex:1; min-height:0; overscroll-behavior:contain; }
#trainer-app :is(#clientMessagesV57,#v57CoachThread) { scroll-behavior:auto; overflow-anchor:none; }
#trainer-app .v57-comms-workspace>aside, #trainer-app .v57-checkins-side { min-height:0; overflow:auto; }
#trainer-app .v57-checkins-side { display:block!important; }
#trainer-app .v57-checkins-side header h3 { font-size:16px!important; }
#trainer-app .v57-checkins-side p { font-size:13px!important; }
#trainer-app .v57-empty { font-size:14px!important; line-height:1.6; padding:20px!important; }
@media (min-width:761px) and (max-width:999px) {
  #trainer-app .v57-comms-workspace { grid-template-columns:170px minmax(0,1fr)!important; }
  #trainer-app .v57-comms-workspace>.v57-checkins-side { display:none!important; }
}
@media (max-width:760px), (hover:none) and (pointer:coarse) and (max-width:1000px) {
  #trainer-app.op-chat-scroll-locked { overflow:hidden!important; overscroll-behavior:none; }
  #trainer-app body.op-chat-scroll-locked { position:fixed; left:0; right:0; top:var(--op-chat-page-top,0px); width:100%; height:100%; overflow:hidden!important; overscroll-behavior:none; }
  #trainer-app body.op-chat-open::after { content:''; position:fixed; inset:0; z-index:239; background:var(--surface); }
  #trainer-app body.op-chat-open { overflow:hidden!important; }
  #trainer-app #clientCommsOverlayV57 { top:var(--op-viewport-top,0px)!important; height:var(--op-visible-height,100dvh)!important; }
  #trainer-app #clientCommsOverlayV57 .v57-client-comms { width:100%!important; height:100%!important; max-height:100%!important; margin:0!important; border:0!important; border-radius:0!important; padding:0!important; }
  #trainer-app #clientCommsOverlayV57 .v57-client-comms>header { padding:calc(8px + env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) 8px max(14px,env(safe-area-inset-left))!important; }
  #trainer-app #clientCommsBodyV57>.v57-checkin-form { padding:18px 16px!important; }
  #trainer-app #clientMessagesV57, #trainer-app #v57CoachThread { padding:14px!important; gap:10px; }
  #trainer-app body.op-chat-open .bottomnav, #trainer-app body.op-coach-chat-open .v57-coach-nav { display:none!important; }
  #trainer-app body.op-chat-composing .comms-hide-keyboard { display:flex; justify-content:center; }
  #trainer-app body.op-mobile-keyboard-open.op-chat-composing #clientCommsBodyV57>.v59-client-comms-tabs { display:none; }
  #trainer-app .comms-compose form { padding:10px max(12px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important; }
  #trainer-app body.op-chat-composing .comms-compose form { padding-bottom:8px!important; }
  #trainer-app .comms-send span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  /* Coach chat is a separate page surface. A fixed, scroll-locked body can leave
     iOS hit-testing at the old keyboard pan even when the CSS looks correct. */
  #trainer-app.op-coach-chat-page { height:var(--op-layout-height,100dvh); overscroll-behavior:auto!important; }
  #trainer-app body.op-chat-scroll-locked.op-coach-chat-open { position:relative; top:auto; height:var(--op-layout-height,100dvh); min-height:0; margin:0; padding:0; overscroll-behavior:auto; }
  #trainer-app body.op-coach-chat-open::after { content:none; }
  #trainer-app body.op-coach-chat-open>:not(#opCoachChatHost):not(#savedToast):not(script) { display:none!important; }
  #trainer-app #opCoachChatHost { position:absolute; left:0; right:0; top:var(--op-viewport-top,0px); width:100%; height:var(--op-visible-height,100dvh); overflow:hidden; background:var(--surface); }
  #trainer-app #opCoachChatHost>.v57-comms-workspace { position:static; width:100%; height:100%; min-height:0!important; border:0!important; border-radius:0!important; margin:0!important; display:flex!important; flex-direction:column; background:var(--surface); padding:0!important; }
  #trainer-app .v57-comms-workspace>.comms-mobile-bar { display:flex; flex-shrink:0; align-items:center; gap:8px; padding:calc(8px + env(safe-area-inset-top)) 12px 8px; border-bottom:1px solid var(--line); }
  #trainer-app .comms-mobile-bar>button { min-height:44px; min-width:44px; border:0; background:var(--surface2); color:var(--text); border-radius:12px; font-size:13px!important; }
  #trainer-app #commsCoachBack { font-size:30px!important; }
  #trainer-app .comms-mobile-bar>label { flex:1; min-width:0; }
  #trainer-app .comms-mobile-bar .comms-avatar { width:32px; height:32px; font-size:12px!important; }
  #trainer-app .comms-mobile-bar label>span { display:block; color:var(--muted); font-size:11px!important; }
  #trainer-app #commsCoachClient { max-width:100%; width:100%; min-height:32px!important; height:32px!important; border:0!important; background:transparent!important; padding:0 24px 0 0!important; color:var(--text); font-size:16px!important; }
  #trainer-app .v57-comms-workspace>aside, #trainer-app .v57-comms-workspace>main>header { display:none!important; }
  #trainer-app .v57-comms-workspace>main { flex:1; min-height:0; padding:0!important; overflow:hidden; }
  #trainer-app .v57-comms-workspace>.v57-checkins-side { display:none!important; }
  #trainer-app .v57-comms-workspace.comms-checkins-open>main { display:none!important; }
  #trainer-app .v57-comms-workspace.comms-checkins-open>.v57-checkins-side { display:block!important; flex:1; min-height:0; overflow:auto; border:0; padding:20px!important; }
}

/* Conversation selection uses the same isolated mobile chat surface. */
#trainer-app .v57-client-comms>header :is(.comms-avatar,#commsClientBack)[hidden],
#trainer-app .v59-client-comms-tabs[hidden] { display:none!important; }
#trainer-app #commsClientBack { flex-shrink:0; width:44px; height:44px; border:0; border-radius:12px; background:var(--surface2); color:var(--text); font-size:30px!important; padding:0!important; }
#trainer-app .comms-contacts { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; padding:8px 16px; }
#trainer-app .comms-contacts>button { display:flex; align-items:center; gap:12px; width:100%; min-height:92px; padding:16px 0!important; text-align:left; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; color:var(--text); }
#trainer-app .comms-contacts>button:hover { background:var(--surface2); }
#trainer-app .comms-contact-main { display:flex; flex:1; flex-direction:column; min-width:0; gap:3px; }
#trainer-app .comms-contact-main strong { font-size:16px!important; line-height:1.4; overflow-wrap:anywhere; }
#trainer-app .comms-contact-main small { color:var(--green); font-size:12px!important; overflow-wrap:anywhere; }
#trainer-app .comms-contact-main>span { font-size:13px!important; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#trainer-app .comms-contact-unread { display:grid; place-items:center; flex-shrink:0; min-width:24px; height:24px; padding:0 6px; border-radius:20px; background:var(--green); color:#071a10; font-size:12px!important; }
#trainer-app .comms-contact-arrow { font-size:24px!important; color:var(--muted); }
#trainer-app .comms-contacts-refresh { flex-shrink:0; margin:10px 16px calc(12px + env(safe-area-inset-bottom)); min-height:44px; border:1px solid var(--line); border-radius:12px; background:var(--surface2); color:var(--text); font-size:14px!important; }
/* Free diary pilot: hide the paused health check-in without changing chat controls. */
#trainer-app[data-health-checkins="off"] :is(.v57-readiness-card,.v57-checkins-side,#commsCoachCheckins,.v57-checkin-form,.v59-client-comms-tabs,.v59-readiness-trend){display:none!important}
#trainer-app[data-health-checkins="off"] .v57-workspace-comms>div>article:nth-child(2){display:none!important}
#trainer-app[data-health-checkins="off"] .v57-comms-workspace.comms-checkins-open>main{display:flex!important}
@media(min-width:1001px){#trainer-app[data-health-checkins="off"] body.c3-coach-mode .v57-comms-workspace{grid-template-columns:200px minmax(0,1fr)!important}}
