:root{--chat-green:#234d3c;--chat-border:#d8ded7}*{box-sizing:border-box}[hidden]{display:none!important}.chat-header{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 4vw;border-bottom:1px solid var(--chat-border);background:#fff}.chat-header nav{display:flex;gap:22px}.chat-header .brand img{width:48px;height:48px}main{max-width:1440px;margin:auto;padding:20px 4vw}.chat-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.chat-title h1{font-size:clamp(28px,4vw,40px);margin:0}.chat-title .eyebrow{font-size:11px;margin:0 0 6px}.chat-title>p{font-size:14px}.chat-layout{display:grid;grid-template-columns:280px minmax(0,1fr);border:1px solid var(--chat-border);border-radius:16px;overflow:hidden;background:#fff}.chat-sidebar{padding:22px;background:#eef3ed}.chat-sidebar h2{font-size:20px}.chat-sidebar>p{font-size:13px;line-height:1.5}.chat-sidebar button{display:block;width:100%;margin:8px 0;text-align:left}.chat-sidebar button[aria-current=true]{background:var(--chat-green);color:white}.chat-sidebar details{margin-top:26px}.chat-sidebar label,.chat-sidebar input,.chat-sidebar select{display:block;width:100%;margin:6px 0}.conversation{display:flex;flex-direction:column;min-width:0}.conversation-header{padding:18px 24px;border-bottom:1px solid var(--chat-border);display:flex;justify-content:space-between;gap:14px;align-items:center}.conversation-header h2{font-size:24px;margin:0}.conversation-header p{font-size:14px;margin:5px 0 0}.room-actions{display:flex;gap:8px;flex-wrap:wrap}.messages{height:clamp(280px,49vh,650px);overflow:auto;padding:20px 24px;overscroll-behavior:contain}.message{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;margin:0 0 20px}.message>div{grid-column:2;min-width:0}.message img{width:36px;height:36px;border-radius:50%;object-fit:cover;background:#eef3ed}.message-heading{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.message-heading time{font-size:12px;color:#59665e}.message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0;line-height:1.55}.message button{font-size:11px;padding:3px 7px;min-height:30px;margin-right:6px}.message.own{border-left:3px solid #85ae98;padding-left:10px}.chat-status{font-size:13px;margin:0;padding:0 24px;min-height:24px}#composer{border-top:1px solid var(--chat-border);padding:16px 24px}#composer label{display:block;font-weight:600;margin-bottom:6px}#composer textarea{width:100%;resize:vertical;min-height:70px;border:1px solid #899c8f;border-radius:8px;padding:10px;font:inherit}#composer>div{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:10px}button,.chat-gate .button{border:1px solid #809589;background:#fff;border-radius:8px;color:var(--chat-green);font:inherit;font-size:14px;padding:9px 12px;cursor:pointer;min-height:42px}button:hover{background:#e4eee6}button:disabled{opacity:.55;cursor:default}#send,.chat-gate .button{background:var(--chat-green);color:white}.chat-gate{padding:35px;border:1px solid var(--chat-border);border-radius:15px}.chat-gate a{display:inline-block;margin-right:20px}.chat-footer{padding:18px 4vw 28px;max-width:1440px;margin:auto;font-size:13px}.chat-footer a{margin-right:18px}.report{font-size:13px;overflow-wrap:anywhere;border-top:1px solid var(--chat-border);padding:12px 0}:focus-visible{outline:3px solid #bf731d;outline-offset:3px}
@media(max-width:700px){.chat-header{padding:12px 16px}.chat-header .brand small{display:none}.chat-header .brand span{font-size:13px}.chat-header nav{gap:10px;font-size:13px}main{padding:16px}.chat-title{align-items:flex-start}.chat-title .eyebrow{display:none}.chat-layout{grid-template-columns:minmax(0,1fr)}.chat-sidebar{padding:14px}.chat-sidebar h2{margin:0 0 6px}.chat-sidebar>p{margin:4px 0}#rooms{display:flex;gap:8px;overflow-x:auto}#rooms button{width:auto;flex-shrink:0;max-width:220px}.conversation-header{padding:14px;align-items:flex-start}.conversation-header h2{font-size:21px}.room-actions button{font-size:12px}.messages{padding:16px;height:42vh;min-height:240px}#composer{padding:14px}.chat-status{padding:0 14px}.chat-footer{padding:14px 16px 25px}}
/* Compact member navigation, scoped to the chat header. */
.member-menu{position:relative;flex-shrink:0}
.member-menu>summary{cursor:pointer;min-height:44px;padding:10px 14px;border:1px solid #809589;border-radius:8px;color:var(--chat-green);font-size:14px;user-select:none}
.member-menu>summary:hover,.member-menu[open]>summary{background:#eef3ed}
.chat-header .member-menu nav{position:absolute;right:0;top:calc(100% + 8px);z-index:20;display:flex;flex-direction:column;gap:0;min-width:170px;padding:6px;background:white;border:1px solid var(--chat-border);border-radius:10px;box-shadow:0 8px 24px #17392a26}
.member-menu nav a{display:block;padding:12px;border-radius:6px;white-space:nowrap;font-size:14px}
.member-menu nav a:hover{background:#eef3ed}

.member-menu>summary{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:10px;list-style:none}
.member-menu>summary::-webkit-details-marker{display:none}
.member-menu>summary::marker{content:""}
.menu-icon{display:flex;flex-direction:column;gap:5px;width:22px}
.menu-icon>span{display:block;width:22px;height:2px;background:currentColor;border-radius:2px}

.chat-header .member-menu nav{max-width:calc(100vw - 32px);max-height:calc(100dvh - 100px);overflow-y:auto}
.member-menu nav:has(#organizer:not([hidden])){width:300px}
#organizer{margin:0;padding:0}
#organizer>summary{cursor:pointer;padding:12px;min-height:44px;font-size:14px;color:var(--chat-green)}
#organizer>summary:hover{background:#eef3ed}
#organizer form,#organizer #reports{padding:0 12px}
#organizer label,#organizer input,#organizer select{display:block;width:100%;margin:6px 0}
#organizer input,#organizer select{min-height:44px;box-sizing:border-box}
#organizer button{margin:10px 0;white-space:normal}
#organizer>#review-reports{margin:10px 12px;max-width:calc(100% - 24px)}

/* Conversation switching lives in the member menu. */
.chat-layout{grid-template-columns:minmax(0,1fr)}
.chat-title>div{min-width:0}
.chat-title h1{overflow-wrap:anywhere}
.chat-header .member-menu nav:has(#conversation-menu:not([hidden])){width:300px}
#conversation-menu{padding:12px 6px 6px}
#conversations-heading{font-size:15px;font-family:inherit;font-weight:600;margin:0 6px 8px}
.member-menu #rooms{display:flex;flex-direction:column;gap:4px;overflow:visible}
.member-menu #rooms button{display:block;width:100%;max-width:none;min-height:44px;margin:0;text-align:left;white-space:normal;overflow-wrap:anywhere;border-color:transparent}
.member-menu #rooms button[aria-current=true]{background:transparent;color:var(--chat-green);font-weight:700;border-color:transparent;border-radius:0;box-shadow:none}

.member-actions{border-top:1px solid var(--chat-border);margin-top:6px;padding-top:6px}

#organizer .organizer-view{display:flex;align-items:center;gap:10px;padding:8px 12px;margin:0;width:auto;min-height:44px}
#organizer #organizer-view{width:18px;min-height:18px;height:18px;margin:0;flex-shrink:0}

#composer>div{justify-content:flex-end}

/* Keep the composer in the viewport; only message history scrolls. */
body{height:var(--chat-viewport,100dvh);min-height:0;display:flex;flex-direction:column;overflow:hidden}
.chat-header{flex-shrink:0}
main{width:100%;min-height:0;flex:1;display:flex;flex-direction:column;margin:0 auto;padding-bottom:0}
.chat-title{flex-shrink:0;margin-bottom:12px}
.chat-layout{flex:1;min-height:0;grid-template-rows:minmax(0,1fr)}
.conversation{min-height:0}
.conversation-header,#older,#composer,.chat-status{flex-shrink:0}
.messages{height:auto;min-height:0;flex:1;overflow-y:auto}
.message-scroll-region{position:relative;display:flex;flex:1;min-height:0;min-width:0}
.message-scroll-region>.messages{width:100%}
#new-messages{position:absolute;right:20px;bottom:14px;z-index:2;max-width:calc(100% - 40px);background:#234d3c;color:#fff;border-color:#234d3c;box-shadow:0 3px 12px #183a2a45;font-weight:700}
#new-messages:hover{background:#193d2e}
@media(max-width:700px){#new-messages{right:14px;bottom:10px;max-width:calc(100% - 28px)}}
.chat-status:empty{display:none}
#composer{position:relative;display:flex;align-items:flex-end;gap:10px;padding:8px 12px max(8px,env(safe-area-inset-bottom));background:white}
#composer label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#composer textarea{flex:1;min-width:0;width:auto;min-height:44px;height:44px;max-height:128px;resize:none;line-height:22px;padding:10px 12px;overflow-y:auto}
#composer #send{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:10px}
.chat-gate{overflow-y:auto}
.chat-header .member-menu nav{max-height:calc(var(--chat-viewport,100dvh) - 90px)}
@media(max-width:700px){main{padding:10px 8px 0}.chat-title{padding:0 8px;margin-bottom:10px}.chat-layout{border-radius:12px 12px 0 0}.conversation-header{padding:10px 14px}#composer{padding:8px 10px max(8px,env(safe-area-inset-bottom))}}

/* Tighten the gap between your message marker and its content. */
.message.own{padding-left:5px;gap:5px}
.message.own:has(img[hidden]){grid-template-columns:18px minmax(0,1fr)}

#attach-image{flex:0 0 44px;width:44px;height:44px;padding:9px}#image-preview{flex-shrink:0;display:flex;align-items:center;gap:12px;padding:8px 12px;border-top:1px solid var(--chat-border);background:white}#image-preview img{width:72px;height:72px;object-fit:contain}.message img.chat-image{display:block;width:auto;height:auto;max-width:100%;max-height:420px;border-radius:10px;object-fit:contain;margin:8px 0}.chat-image-link{display:block;width:fit-content;max-width:100%}

/* Unread private conversations beneath the joined group conversations. */
#private-messages-menu{border-top:1px solid var(--chat-border);margin-top:10px;padding-top:12px}#private-messages-heading{font-size:15px;font-family:inherit;font-weight:600;margin:0 6px 8px}#unread-private-empty{margin:8px 12px;font-size:13px;color:#59665e}.member-menu #unread-private-rooms{display:flex;flex-direction:column;gap:4px}.member-menu #unread-private-rooms button{display:block;width:100%;min-height:44px;margin:0;text-align:left;white-space:normal;overflow-wrap:anywhere;border-color:transparent}.member-menu #unread-private-rooms button[aria-current=true]{font-weight:700;background:transparent;color:var(--chat-green);border-radius:0;box-shadow:none}

.member-menu #private-messages-heading a{padding:6px 0;min-height:32px;font:inherit;border-radius:0}.member-menu #private-messages-heading a:hover{background:transparent;text-decoration:underline}

/* Member names remain profile links without underlines. */
.message-heading a,.message-heading a:hover,.message-heading a:focus,.message-heading a:visited{text-decoration:none}

/* A local message remains visible until the server confirms it. */
.pending-message{grid-template-columns:minmax(0,1fr);background:#f2f7f1;border-radius:8px;padding:10px 12px;margin-left:42px}
.pending-message>div{grid-column:1}
.send-phase{font-size:12px;color:#425e4c;font-weight:600}
.send-note{font-size:12px;color:#4c5b50}
.pending-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px}
.pending-actions button{min-height:38px;font-size:13px}
@media(max-width:700px){.pending-message{margin-left:20px}}
#reply-preview{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 14px;border-top:1px solid var(--chat-border);background:#f2f7f1;flex-shrink:0;font-size:13px}
#reply-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#reply-preview button{flex:none;min-height:38px}
.message .reply-context{display:block;max-width:100%;margin:7px 0;padding:7px 10px;border-left:3px solid #85ae98;border-radius:5px;background:#f2f7f1;color:#254b39;text-align:left;font-size:12px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
.message button.reply-context{min-height:38px;cursor:pointer}
.message button:not(.reply-context){min-height:44px}
.message:focus-visible{outline:3px solid #bf731d;outline-offset:3px}

.chat-title-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.chat-title-actions p{font-size:13px;margin:0}
