.comms{color:var(--ink-1);max-width:860px;margin:0 auto}.comms h2,.comms h3{color:var(--ink-1)}.comms button,.comms input,.comms textarea{font:inherit}.comms button,.comms-entry{min-height:48px;padding:10px 16px;border-radius:10px;cursor:pointer;white-space:normal}.comms button:focus-visible,.comms textarea:focus-visible{outline:3px solid var(--accent,#087d80);outline-offset:3px}.comms-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}.comms-list{display:grid;gap:12px;list-style:none;padding:0}.comms-card{padding:16px;background:var(--surface,#fff);border:1px solid var(--border,#ccd4d8);border-radius:12px;overflow-wrap:anywhere}.comms-card p{margin:8px 0}.comms-card[data-needs-you=true]{border-left:4px solid var(--accent,#087d80)}.comms-compose{display:grid;gap:12px;padding:16px 0}.comms-compose textarea{width:100%;box-sizing:border-box;min-height:100px;padding:12px;color:var(--ink-1);background:var(--surface,#fff);border:1px solid var(--border,#ccd4d8);border-radius:10px}.comms-compose label{display:flex;align-items:center;gap:10px;min-height:44px}.comms-error{padding:12px;border:1px solid var(--neg,#b42318);border-radius:10px}.comms-entry{display:inline-flex;align-items:center;border:1px solid var(--border,#ccd4d8);color:var(--ink-1);background:var(--surface,#fff);margin:8px 0}.comms-context-panel{margin-top:16px;border-top:1px solid var(--border,#ccd4d8);padding-top:12px}.comms-sources{padding-left:20px}.comms-sources a{color:var(--accent-text,#00666b)}.comms-status{min-height:24px}.comms small{color:var(--ink-2)}.comms-audience-switch{display:inline-flex;gap:4px;padding:4px;border-radius:10px;background:var(--surface-2,#fbf6f0);margin:4px 0 12px}.comms-audience-tab{min-height:var(--density-row-min,40px);padding:6px 14px;border-radius:8px;border:none;background:transparent;color:var(--ink-2);cursor:pointer;font-size:var(--fs-body-strong,15px);font-weight:var(--fw-body-strong,600)}.comms-audience-tab.active{background:var(--surface,#fff);color:var(--ink-1);box-shadow:0 1px 2px rgba(0,0,0,.12)}.comms-audience-tab[disabled]{cursor:default}.comms-composer-audience{font-size:var(--fs-small,13px);color:var(--ink-2);margin:0}
.comms-entry-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:999px;font-size:11px;font-weight:700;line-height:18px;background:var(--accent,#087d80);color:var(--accent-on-strong,#fff)}.comms-entry-badge[data-comms-needs-you="1"]{background:var(--neg,#b42318)}
.comms-entry-link{display:inline-flex;align-items:center;min-height:auto;padding:4px 0;border:none;background:transparent;color:var(--accent-text,#00666b);text-decoration:underline;font-weight:600;font-size:13px;margin:8px 0}.comms-entry-link:hover,.comms-entry-link:focus-visible{color:var(--accent,#087d80)}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.comms-header{display:flex;align-items:flex-start;gap:8px;margin:4px 0 8px}
.comms-header-text{flex:1 1 auto;min-width:0}
.comms-title{font-size:var(--fs-heading,19px);font-weight:var(--fw-heading,600);line-height:var(--lh-heading,23px);margin:0;color:var(--ink-1)}
.comms-subtitle{font-size:var(--fs-small,13px);font-weight:var(--fw-small,400);line-height:var(--lh-small,18px);margin:2px 0 0;color:var(--ink-2)}
.comms-header-actions{position:relative;display:flex;align-items:center;gap:4px;flex:0 0 auto}
.comms .comms-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--density-row-min,44px);height:var(--density-row-min,44px);padding:0;border:1px solid var(--border,#ccd4d8);border-radius:10px;background:var(--surface,#fff);color:var(--ink-1);cursor:pointer;flex:0 0 auto;font-size:18px;line-height:1}
.comms-icon-btn:focus-visible{outline:3px solid var(--accent,#087d80);outline-offset:2px}
.comms-icon-btn svg{display:block}
.comms-overflow-menu{position:absolute;top:calc(100% + 4px);right:0;display:grid;gap:2px;background:var(--surface,#fff);border:1px solid var(--border,#ccd4d8);border-radius:var(--radius-card,16px);box-shadow:var(--shadow-2,0 8px 24px rgba(0,0,0,.16));padding:6px;z-index:40;width:max-content;max-width:min(360px,calc(100vw - 32px));transform-origin:top right;transition:opacity var(--motion-sheet,240ms) ease,transform var(--motion-sheet,240ms) ease}
.comms-overflow-menu[hidden]{display:none}
.comms .comms-menu-item{display:flex;align-items:center;width:100%;min-height:var(--density-row-min,44px);padding:8px 12px;border:none;border-radius:8px;background:transparent;color:var(--ink-1);font-size:var(--fs-body,15px);text-align:left;cursor:pointer}
.comms .comms-menu-item:hover,.comms .comms-menu-item:focus-visible{background:var(--surface-2,#fbf6f0);outline:none}
.comms .comms-menu-item[aria-checked="true"]{font-weight:700;color:var(--accent-text,#00666b)}
.comms-menu-divider{height:1px;background:var(--border,#ccd4d8);margin:4px 6px}
.comms-summary-panel[hidden]{display:none}
.comms-list-wrap{margin:8px 0}
.comms-message-body{font-size:var(--fs-body,15px);font-weight:var(--fw-body,400);line-height:var(--lh-body,22px);margin:8px 0;color:var(--ink-1);white-space:pre-wrap}
.comms-reply-tag{font-size:var(--fs-small,13px);color:var(--ink-2);margin:4px 0 0}
.comms-composer-flags{font-size:var(--fs-small,13px);color:var(--ink-2);margin:0}
.comms-composer-flags[hidden]{display:none}
.comms-compose-footer{display:flex;align-items:center;gap:8px}
.comms .comms-attach-toggle{min-height:var(--density-row-min,40px);padding:6px 12px;border:1px solid var(--border,#ccd4d8);border-radius:var(--radius-card,16px);background:var(--surface,#fff);color:var(--ink-2);font-size:var(--fs-small,13px);font-weight:600;cursor:pointer;align-self:flex-start}
.comms-attach-panel{display:grid;gap:4px;padding:4px 0 0}
.comms-attach-panel[hidden]{display:none}
.comms .comms-attach-item{display:flex;align-items:center;width:100%;min-height:var(--density-row-min,40px);padding:6px 12px;border:1px solid var(--border,#ccd4d8);border-radius:8px;background:var(--surface,#fff);color:var(--ink-1);font-size:var(--fs-small,13px);text-align:left;cursor:pointer}
.comms .comms-attach-item[aria-pressed="true"]{font-weight:700;color:var(--accent-text,#00666b);border-color:var(--accent,#087d80)}
.comms-time-sep{list-style:none;text-align:center;margin:10px 0 4px;font-size:var(--fs-small,12px);color:var(--ink-3,var(--ink-2));}
.comms-message{list-style:none;display:flex;margin:2px 0}
.comms-message-mine{justify-content:flex-end}
.comms-message-theirs{justify-content:flex-start}
.comms-message .comms-bubble{max-width:78%;padding:10px 14px;border-radius:var(--radius-card,16px);overflow-wrap:anywhere}
.comms-message-theirs .comms-bubble{background:var(--surface,#fff);border:1px solid var(--border,#ccd4d8);color:var(--ink-1);border-bottom-left-radius:4px}
.comms-message-mine .comms-bubble{background:var(--accent,#087d80);color:var(--accent-on-strong,#fff);border-bottom-right-radius:4px}
.comms-bubble-sender{display:block;font-size:var(--fs-small,12px);font-weight:700;margin-bottom:2px;opacity:.85}
.comms-message-mine .comms-bubble-sender{color:var(--accent-on-strong,#fff)}
.comms-message-theirs .comms-bubble-sender{color:var(--ink-2)}
.comms-message .comms-message-body{margin:0;color:inherit;white-space:pre-wrap}
.comms-message-mine .comms-reply-tag,.comms-message-mine .comms-attachment-btn{color:var(--accent-on-strong,#fff)}
.comms .comms-subtitle-people{display:block;width:auto;min-height:auto;padding:0;margin:2px 0 0;border:none;background:transparent;text-decoration:underline;text-align:left;cursor:pointer;font-size:var(--fs-small,13px);font-weight:var(--fw-small,400);line-height:var(--lh-small,18px);color:var(--ink-2)}
.comms .comms-subtitle-people:hover,.comms .comms-subtitle-people:focus-visible{color:var(--accent-text,#00666b)}
.comms-people-panel[hidden]{display:none}
.comms-people-panel{margin:8px 0 16px;padding:12px;border:1px solid var(--border,#ccd4d8);border-radius:12px;background:var(--surface,#fff)}
.comms-people-list{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:10px}
.comms-people-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.comms-people-role{font-size:var(--fs-small,13px);color:var(--ink-2);margin-left:4px}
.comms-people-actions{display:flex;gap:6px}
.comms-invite-sheet[hidden]{display:none}
.comms-invite-sheet{margin-top:12px;padding:12px;border:1px solid var(--border,#ccd4d8);border-radius:10px;background:var(--surface-2,#fbf6f0)}
.comms-invite-sheet h4{margin:0 0 4px;font-size:var(--fs-body-strong,15px);color:var(--ink-1)}
.comms-invite-intro{margin:0 0 10px;font-size:var(--fs-small,13px);color:var(--ink-2)}
.comms-invite-sheet .fl{display:block;font-size:var(--fs-small,13px);color:var(--ink-2);margin:0 0 4px}
.comms-invite-sheet input[type=email]{width:100%;box-sizing:border-box;min-height:44px;padding:10px 12px;color:var(--ink-1);background:var(--surface,#fff);border:1px solid var(--border,#ccd4d8);border-radius:10px}
.comms-invite-help{margin:4px 0 10px;font-size:var(--fs-small,12px);color:var(--ink-2)}
.comms-invite-channels{display:grid;gap:6px;margin:0 0 12px}
.comms-invite-channel{display:flex;align-items:center;gap:8px;font-size:var(--fs-small,13px);color:var(--ink-1)}
.comms-invite-channel.disabled{color:var(--ink-2)}
.comms-invite-channel-note{font-size:var(--fs-small,12px);color:var(--ink-2)}
.comms-invite-actions{display:flex;gap:8px}
.comms-invite-status{min-height:20px;font-size:var(--fs-small,13px);color:var(--ink-2)}
.comms-empty{padding:16px 0;color:var(--ink-2);font-size:var(--fs-body,15px)}
@keyframes comms-spin{to{transform:rotate(360deg)}}
@keyframes comms-shimmer{0%{background-position:-120px 0}100%{background-position:120px 0}}
.comms-spinner{display:inline-block;width:16px;height:16px;margin-right:8px;vertical-align:middle;border:2px solid var(--border,#ccd4d8);border-top-color:var(--accent,#087d80);border-radius:50%;animation:comms-spin .8s linear infinite}
.comms-loading-status{display:flex;align-items:center;color:var(--ink-2);font-size:var(--fs-body,15px)}
.comms-loading-retry[hidden]{display:none}
.comms-loading-retry{margin:8px 0}
.comms-header-skeleton .comms-skeleton-bar{display:inline-block;width:140px;height:12px;margin-top:6px;border-radius:6px;background:linear-gradient(90deg,var(--border,#ccd4d8) 25%,var(--surface-2,#fbf6f0) 50%,var(--border,#ccd4d8) 75%);background-size:240px 100%;animation:comms-shimmer 1.2s ease-in-out infinite}
.comms-subtitle-pending{display:inline-flex;align-items:center;gap:6px}
.comms-subtitle-pending::after{content:'';display:inline-block;width:8px;height:8px;flex:0 0 auto;border:1.5px solid var(--border,#ccd4d8);border-top-color:var(--accent,#087d80);border-radius:50%;animation:comms-spin .8s linear infinite}
@media (prefers-reduced-motion:reduce){.comms-spinner,.comms-header-skeleton .comms-skeleton-bar,.comms-subtitle-pending::after{animation:none}}

/* MESSAGING_UX_CONTRACT_835.md (2026-09-23). Header line 2 -- the trip's
   date, time and aircraft, under the route. Section label -- which of the
   two conversations is on screen, directly under the Team|Passengers
   segment (and on its own for a viewer who only has one audience). */
.comms-header-meta{font-size:var(--fs-small,13px);font-weight:var(--fw-small,400);line-height:var(--lh-small,18px);margin:2px 0 0;color:var(--ink-2)}
.comms-section-label{font-size:var(--fs-small,13px);font-weight:var(--fw-body-strong,600);line-height:var(--lh-small,18px);letter-spacing:.02em;margin:0 0 10px;color:var(--ink-2)}
