/* Community surfaces share the BITNFO shell; no data is stored in CSS or client storage. */
.b3-lobby-widget {
    color: var(--text-main, #dce9e5);
    background: linear-gradient(110deg, rgba(0, 210, 150, .055), transparent 60%), var(--bg-panel, #101b1e);
    border: 1px solid var(--border-soft, #25383d);
    border-radius: 14px;
    padding: 20px 22px;
    margin: 0 0 22px;
    min-width: 0;
}
.b3-lobby-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.b3-lobby-heading h2 { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 2px 0 0; font-size: 19px; line-height: 1.4; }
.b3-lobby-heading .b3-eyebrow { color: var(--accent, #00d995); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; margin: 0; }
.b3-lobby-state { display: inline-flex; align-items: center; gap: 6px; color: var(--text-muted, #9db2b5); font: 400 11px/1.5 system-ui, sans-serif; }
.b3-lobby-state::before { content: ''; width: 5px; height: 5px; flex: 0 0 5px; background: currentColor; border-radius: 50%; }
.b3-lobby-state[data-state="ready"] { color: var(--accent, #00d995); }
.b3-lobby-state[data-state="offline"], .b3-full-lobby [data-chat-status][data-state="offline"] { color: #f0bf72; }
.b3-lobby-intro, .b3-lobby-empty { color: var(--text-muted, #9db2b5); font-size: 13px; line-height: 1.6; }
.b3-lobby-intro { margin: 10px 0 14px; }
.b3-lobby-empty { margin: 0; padding: 15px 0; }
.b3-lobby-empty a { color: var(--accent-2, #4cc7dc); text-decoration: underline; text-underline-offset: 3px; }
.b3-lobby-messages { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 10px; }
.b3-lobby-message { min-width: 0; border: 1px solid var(--border-soft, #25383d); background: rgba(0, 0, 0, .08); border-radius: 8px; padding: 12px 14px; }
.b3-lobby-message-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 12px; }
.b3-lobby-message-meta strong { color: var(--text-main, #dce9e5); overflow-wrap: anywhere; }
.b3-lobby-message-meta time { color: var(--text-muted, #9db2b5); font-size: 10px; }
.b3-lobby-message p { margin: 8px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 13px; line-height: 1.6; max-height: 7.8em; overflow: auto; }
.b3-lobby-note { font-size: 11px; color: var(--text-muted, #9db2b5); margin: 13px 0 0; }
.b3-full-lobby .member-chat-layout { grid-template-columns: minmax(0, 1fr) minmax(230px, .32fr); align-items: start; gap: 22px; }
.b3-full-lobby .member-chat-window { min-height: 240px; height: min(52vh, 560px); overflow-y: auto; overscroll-behavior: contain; display: flex; flex-direction: column; gap: 12px; padding: 5px; background: transparent; }
.b3-full-lobby .member-chat-message { padding: 14px 16px; border-radius: 10px; background: rgba(0, 0, 0, .12); border: 1px solid var(--border-soft, #25383d); max-width: 100%; min-width: 0; }
.b3-full-lobby .member-chat-message.is-own { border-color: rgba(0, 210, 150, .3); background: rgba(0, 210, 150, .04); }
.b3-full-lobby .member-chat-meta { display: flex; gap: 8px 14px; flex-wrap: wrap; font-size: 12px; color: var(--text-muted, #9db2b5); }
.b3-full-lobby .member-chat-meta strong { color: var(--text-main, #dce9e5); overflow-wrap: anywhere; }
.b3-full-lobby .member-chat-message p { margin: 8px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; line-height: 1.65; }
.b3-full-lobby .member-chat-form { border-top: 1px solid var(--border-soft, #25383d); margin-top: 20px; padding-top: 18px; }
.b3-full-lobby .member-chat-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 12px; }
.b3-full-lobby .member-chat-error { color: #f8baad; }
.b3-full-lobby .member-chat-side .nfo-list > li { flex-wrap: wrap; gap: 6px 14px; }
@media (max-width: 800px) {
    .b3-full-lobby .member-chat-layout { grid-template-columns: minmax(0, 1fr); }
    .b3-lobby-widget { padding: 18px; }
    .b3-lobby-messages { grid-template-columns: minmax(0, 1fr); }
    .b3-lobby-message p { max-height: 5.2em; }
}
@media (prefers-reduced-motion: reduce) {
    .b3-full-lobby *, .b3-lobby-widget * { scroll-behavior: auto; }
}
/* Separate guidance labels from values on every viewport. */
.b3-full-lobby .member-chat-side .nfo-list { list-style: none; padding: 0; margin: 0; }
.b3-full-lobby .member-chat-side .nfo-list li { display: grid; grid-template-columns: 70px minmax(0,1fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid #2a3d43; }
.b3-full-lobby .member-chat-side .nfo-list li > span:first-child { color: #a7bcbf; }

/* Shared member identity also used by the protected admin lobby preview. */
.b32-avatar { position: relative; display: inline-grid; place-items: center; overflow: hidden; flex: 0 0 auto; vertical-align: middle; color: #baffdf; border: 1px solid #3ba98e; background: radial-gradient(circle at 0 0, #187562, transparent 75%), linear-gradient(135deg, #143e42, #152b47 75%); box-shadow: inset 0 0 30px #00d9bc14; font: 650 24px/1 var(--b3-sans, system-ui, sans-serif); letter-spacing: -.04em; }
.b32-avatar > img { position: absolute; width: 100%; height: 100%; inset: 0; object-fit: cover; background: #102638; }
.b32-avatar > img[hidden] { display: none; }
.b32-avatar--sm { width: 40px; height: 40px; border-radius: 12px; font-size: 14px; }
.b32-avatar--md { width: 68px; height: 68px; border-radius: 21px; font-size: 23px; }
.b32-avatar--lg { width: 116px; height: 116px; border-radius: 31px; font-size: 38px; box-shadow: 0 0 0 7px #051a2b66, 0 0 40px #00e5b411; }
.b32-avatar--tone-1 { color: #c0f4ff; border-color: #398ea8; background: radial-gradient(circle at 0 0, #176180, transparent 75%), linear-gradient(135deg, #0c3b50, #252748); }
.b32-avatar--tone-2 { color: #e5d1ff; border-color: #7d65b9; background: radial-gradient(circle at 0 0, #503776, transparent 75%), linear-gradient(135deg, #302a58, #162e4c); }
.b32-avatar--tone-3 { color: #d5ffef; border-color: #488e8d; background: radial-gradient(circle at 0 0, #2c6876, transparent 75%), linear-gradient(135deg, #18504d, #263755); }
.b32-avatar--tone-4 { color: #d1ddff; border-color: #627db5; background: radial-gradient(circle at 0 0, #385c81, transparent 75%), linear-gradient(135deg, #1e3556, #392756); }
.b32-avatar--tone-5 { color: #b8fff2; border-color: #3d9d9c; background: radial-gradient(circle at 0 0, #13636b, transparent 75%), linear-gradient(135deg, #114654, #2f2851); }
.b32-chat-avatar-link:focus-visible, .b32-chat-author:focus-visible { outline: 2px solid #67edff; outline-offset: 4px; }
.b32-chat-avatar-link { display: inline-flex; width: 44px; min-height: 44px; align-items: center; justify-content: center; border-radius: 12px; text-decoration: none; }
.b32-chat-author { color: #b5f5e4; text-decoration: none; overflow-wrap: anywhere; }
.b32-chat-author:hover { color: #81ffe2; text-decoration: underline; text-underline-offset: 3px; }
.b32-chat-avatar { position: relative; overflow: hidden; width: 40px; height: 40px; flex: 0 0 40px; border-radius: 12px; text-decoration: none; }
.b32-chat-avatar > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #102638; }
.b32-chat-avatar:focus-visible { outline: 2px solid #67edff; outline-offset: 4px; }

/* 3.3 messenger: compact, isolated from public/profile/admin layouts. */
body.b3-shell.b33-chat-page { --topbar-height: 64px; --sidebar-width: 228px; }
body.b3-shell.b33-chat-page .network-topbar { min-height: 64px; padding-block: 8px; }
body.b3-shell.b33-chat-page .network-brand strong { font-size: 20px; }
body.b3-shell.b33-chat-page .network-brand .b3-brand-symbol { width: 36px; height: 36px; font-size: 29px; }
body.b3-shell.b33-chat-page .network-brand-caption { display: none; }
body.b3-shell.b33-chat-page .main-content { padding: 16px; }
body.b3-shell.b33-chat-page .app-content { display: flex; flex-direction: column; gap: 12px; }
body.b3-shell.b33-chat-page .nfo-footer, body.b3-shell.b33-chat-page .network-sidebar-art { display: none; }
body.b3-shell.b33-chat-page .nfo-sidebar-shell { padding-top: 16px; }
body.b3-shell.b33-chat-page .nfo-sidebar { gap: 3px; }
body.b3-shell.b33-chat-page .b3-nav-group summary { min-height: 44px; }
body.b3-shell.b33-chat-page .b3-nav-group { padding-bottom: 5px; }
.b3-full-lobby.b33-messenger { --b33-line: #263e56; --b33-muted: #a6bbd0; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 12px; position: relative; width: 100%; height: var(--b33-chat-height, calc(100dvh - var(--topbar-height, 64px) - 32px)); min-height: 250px; color: #eef4ff; font-family: var(--b3-sans, system-ui, sans-serif); }
.b33-messenger [hidden], .b3-lobby-widget [hidden] { display: none !important; }
.b33-messenger *, .b33-messenger *::before, .b33-messenger *::after { box-sizing: border-box; }
.b33-messenger button, .b33-messenger select, .b33-messenger input { font: inherit; }
.b33-messenger button { cursor: pointer; }
.b33-messenger button:disabled { cursor: not-allowed; opacity: .45; }
.b33-messenger button:focus-visible, .b33-messenger select:focus-visible, .b33-messenger input:focus-visible, .b33-messenger textarea:focus-visible, .b33-messenger a:focus-visible, .b33-messenger pre:focus-visible { outline: 2px solid #72ecff; outline-offset: 3px; }
.b33-messenger .b33-lobby-header { display: flex; align-items: center; gap: 22px; min-height: 72px; padding: 8px 4px; border: 0; background: transparent; }
.b33-lobby-title { display: flex; align-items: center; gap: 13px; flex: 0 0 auto; }
.b33-messenger .b33-eyebrow { margin: 0 0 4px; color: #82d7e9; font-size: 9px; font-weight: 650; letter-spacing: .19em; text-transform: uppercase; }
.b33-messenger .b33-lobby-title h1 { margin: 0; font-size: clamp(24px, 2.1vw, 31px); line-height: 1.16; letter-spacing: -.045em; font-weight: 750; }
.b33-lobby-title h1 span { color: #42efb8; }
.b33-lobby-mark { width: 46px; height: 46px; display: grid; place-items: center; color: #5cffd4; background: linear-gradient(130deg, #073c3a, #0a253e); border: 1px solid #267c7c; border-radius: 14px; box-shadow: 0 0 22px #00e5ff0a; }
.b33-lobby-mark svg { width: 25px; height: 25px; }
.b33-messenger .b33-lobby-tagline { margin: 0; padding-left: 22px; border-left: 1px solid #274057; color: #a7bfd0; font-size: 12px; line-height: 1.6; }
.b33-lobby-tagline strong { color: #d7e7f4; font-weight: 500; }
.b33-header-actions { display: flex; gap: 8px; margin-left: auto; }
.b33-messenger .b33-icon-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 44px; min-height: 44px; padding: 9px 11px; border: 1px solid #30475e; border-radius: 11px; background: #0b192a; color: #c6d8ed; font-size: 12px; line-height: 1.3; text-transform: none; letter-spacing: 0; }
.b33-messenger .b33-icon-button:hover { color: #a5fff1; background: #10283a; border-color: #43728a; }
.b33-icon-button svg { width: 21px; height: 21px; flex: 0 0 21px; }
.b33-messenger .b33-icon-button[aria-expanded="true"] { color: #7bffe0; border-color: #318c82; background: #0e3338; }
.b33-lobby-workspace { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; min-height: 0; min-width: 0; position: relative; }
.b33-lobby-workspace:has(.b33-lobby-info:not([hidden])) { grid-template-columns: minmax(0, 1fr) 292px; }
.b3-full-lobby.b33-messenger .member-chat-panel { display: flex; flex-direction: column; min-height: 0; min-width: 0; height: 100%; overflow: hidden; border: 1px solid #304e67; border-radius: 16px; background: radial-gradient(ellipse at 7% 0%, #30244c22, transparent 58%), #06111f; box-shadow: 0 12px 36px #00000029, inset 0 1px #bbefff08; }
.b3-full-lobby.b33-messenger .member-chat-header { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 10px; min-height: 49px; padding: 8px 20px; border-bottom: 1px solid #294259; background: linear-gradient(110deg, #0d1e32, #0a1729); }
.b33-messenger .network-chat-room { display: flex; align-items: center; gap: 9px; min-width: 0; }
.b33-messenger .network-chat-room > span:first-child { color: #5ae0c9; font-size: 21px; font-weight: 600; }
.b3-full-lobby.b33-messenger .network-chat-room h2 { font-size: 13px; letter-spacing: -.01em; margin: 0; font-weight: 650; }
.b33-messenger .b33-members-only { color: #a5b6cd; font-size: 10px; border-left: 1px solid #37465e; padding-left: 10px; white-space: nowrap; }
.b3-full-lobby.b33-messenger .network-chat-status { color: #a4c3d7; font-size: 10px; line-height: 1.4; text-align: right; flex: 0 1 auto; }
.b3-full-lobby.b33-messenger .network-chat-status[data-state="ready"] { color: #84d9bd; }
.b33-message-stage { position: relative; flex: 1 1 auto; min-height: 0; min-width: 0; overflow: hidden; }
.b3-full-lobby.b33-messenger .member-chat-window { display: flex; flex-direction: column; height: 100%; min-height: 0; max-height: none; gap: 19px; padding: 24px; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scroll-padding: 16px; scrollbar-gutter: stable; background: transparent; border: 0; scrollbar-width: thin; scrollbar-color: #344b68 transparent; }
.b3-full-lobby.b33-messenger .member-chat-message, .b3-full-lobby.b33-messenger .member-chat-message.is-own { display: flex; flex: 0 0 auto; align-items: flex-start; gap: 10px; max-width: min(86%, 800px); padding: 0; border: 0; background: none; }
.b3-full-lobby.b33-messenger .member-chat-message.is-own { flex-direction: row-reverse; align-self: flex-end; }
.b33-messenger .member-chat-message > .b32-avatar, .b33-messenger .b32-chat-avatar-link { margin-top: 23px; }
.b33-messenger .b32-chat-avatar-link { min-height: 36px; width: 36px; flex: 0 0 36px; }
.b33-messenger .b32-avatar--sm, .b33-messenger .b32-chat-avatar { width: 36px; height: 36px; flex: 0 0 36px; border-radius: 12px; font-size: 12px; }
.b33-messenger .network-chat-content { min-width: 0; max-width: 100%; flex: 0 1 auto; }
.b3-full-lobby.b33-messenger .member-chat-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 9px; margin: 0 2px 5px; min-height: 18px; line-height: 1.4; }
.b3-full-lobby.b33-messenger .member-chat-meta strong, .b33-messenger .member-chat-meta .b32-chat-author { color: #dce9f8; font-size: 12px; font-weight: 650; }
.b3-full-lobby.b33-messenger .member-chat-meta time { font-size: 10px; color: #99b0c9; font-variant-numeric: tabular-nums; }
.b33-messenger .network-chat-own-label { color: #7ee7c9; font-size: 10px; background: #0c302f; padding: 1px 5px; border-radius: 4px; }
.b3-full-lobby.b33-messenger .member-chat-message .network-chat-bubble { padding: 11px 15px; font-size: 15px; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; color: #e4edf8; border: 1px solid #344963; border-radius: 3px 15px 15px; background: linear-gradient(120deg, #14253c, #152137); box-shadow: 0 2px 5px #00000018; }
.b3-full-lobby.b33-messenger .member-chat-message.is-own .network-chat-bubble { border-color: #247b70; border-radius: 15px 3px 15px 15px; background: linear-gradient(110deg, #123c3e, #0b3b35); color: #e1fff4; box-shadow: none; }
.b33-messenger .b33-new-messages { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); z-index: 3; min-height: 44px; padding: 9px 17px; max-width: calc(100% - 24px); white-space: nowrap; border: 1px solid #37d8c9; border-radius: 24px; background: #143749; color: #baffed; font-size: 13px; font-weight: 650; box-shadow: 0 5px 20px #0008; }
.b3-full-lobby.b33-messenger .network-chat-empty { margin: auto; max-width: 340px; padding: 24px 10px; min-height: 0; color: #9eafc6; text-align: center; }
.b33-messenger .network-chat-empty-symbol { color: #68daca; background: #0f2637; width: 55px; height: 55px; font-size: 27px; margin: 0 auto 15px; border-color: #34556a; }
.b33-messenger .network-chat-empty strong { color: #dceafa; font-size: 16px; font-weight: 600; }
.b33-messenger .network-chat-empty p { margin: 9px 0 0; font-size: 13px; line-height: 1.65; }
.b3-full-lobby.b33-messenger .member-chat-form { flex: 0 0 auto; position: relative; min-width: 0; margin: 0; padding: 13px 18px 10px; border-top: 1px solid #29485d; background: linear-gradient(110deg, #0b2031, #101b30); }
.b33-composer-tools { display: flex; gap: 8px; align-items: center; justify-content: space-between; margin-bottom: 7px; }
.b3-full-lobby.b33-messenger .network-chat-composer-label { display: block; color: #9fb8d2; font-size: 11px; margin: 0; font-weight: 500; }
.b33-format-choice { display: flex; align-items: center; gap: 7px; }
.b33-format-choice > label { color: #96acc4; font-size: 10px; }
.b33-messenger .b33-format-choice select { min-height: 30px; color: #d3e8f3; background: #0a192a; border: 1px solid #36536a; padding: 4px 23px 4px 9px; border-radius: 7px; font-size: 11px; }
.b33-format-choice select option { color: #d3e8f3; background: #0a192a; }
.b33-messenger .network-chat-compose-row { display: flex; align-items: flex-end; gap: 9px; }
.b3-full-lobby.b33-messenger .member-chat-input { flex: 1; width: 100%; height: 50px; min-height: 50px; max-height: 130px; margin: 0; padding: 13px 14px; resize: none; color: #e9f2ff; background: #061422; border: 1px solid #3d5a72; border-radius: 12px; font: 400 15px/1.5 var(--b3-sans, system-ui, sans-serif); }
.b33-messenger .member-chat-input::placeholder { color: #90a8c0; }
.b33-messenger .member-chat-input:focus { border-color: #50c9c1; box-shadow: 0 0 0 3px #00d7c00c; }
.b33-messenger .b33-emoji-toggle { min-width: 46px; height: 50px; padding: 10px; border-color: #3d5a72; background: #0c2032; }
.b3-full-lobby.b33-messenger .network-chat-send { min-width: 77px; height: 50px; min-height: 50px; padding: 12px; gap: 8px; align-items: center; justify-content: center; border-radius: 12px; background: #25e6ae; color: #002c26; border: 1px solid #31f2bb; box-shadow: 0 3px 16px #00e5ac12; font-size: 12px; font-weight: 700; text-transform: none; letter-spacing: 0; }
.b33-messenger .network-chat-send svg { width: 20px; height: 20px; }
.b33-messenger .network-chat-send span { display: inline; }
.b3-full-lobby.b33-messenger .member-chat-actions { margin-top: 8px; display: flex; gap: 12px; color: #95adc5; font-size: 10px; }
.b33-character-count { white-space: nowrap; font-variant-numeric: tabular-nums; color: #c3d4e4; }
.b33-messenger .b33-format-help { margin: 5px 0 0; font-size: 10px; line-height: 1.4; color: #91a9c0; }
.b3-full-lobby.b33-messenger .member-chat-error { margin: 7px 0 0; font-size: 12px; color: #ffc7b8; line-height: 1.4; }
.b33-messenger .member-chat-form.is-nfo .member-chat-input { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre; overflow-x: auto; }
.network-chat-nfo { min-width: 0; max-width: 100%; overflow: hidden; border: 1px solid #465973; border-radius: 3px 13px 13px; background: #040d18; }
.is-own .network-chat-nfo { border-color: #2e7b78; border-radius: 13px 3px 13px 13px; }
.network-chat-nfo-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 37px; padding: 0 12px; color: #9cd9cb; border-bottom: 1px solid #253b51; background: #102336; font: 10px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; }
.network-chat-nfo-toolbar button { min-height: 36px; min-width: 44px; border: 0; padding: 5px 7px; background: transparent; color: #c7d8ef; font: 11px/1.4 var(--b3-sans, system-ui, sans-serif); cursor: pointer; }
.network-chat-nfo-toolbar button:hover { color: #5dffe0; }
.network-chat-nfo pre { margin: 0; padding: 13px 15px; overflow-x: auto; overscroll-behavior-x: contain; color: #b8eadf; background: transparent; white-space: pre; overflow-wrap: normal; word-break: normal; font: 13px/1.65 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; tab-size: 4; scrollbar-width: thin; scrollbar-color: #386279 transparent; }
.b3-lobby-widget .network-chat-nfo { margin-top: 8px; }
.b3-lobby-widget .network-chat-nfo pre { max-height: 130px; font-size: 12px; }
.b33-messenger .b33-lobby-info { min-width: 0; min-height: 0; padding: 21px 19px; overflow: auto; border: 1px solid #344762; border-radius: 16px; background: radial-gradient(ellipse at 100% 0%, #4a286c27, transparent 65%), #0b1729; scrollbar-width: thin; scrollbar-color: #344b68 transparent; }
.b33-info-heading { display: flex; align-items: flex-start; gap: 8px; justify-content: space-between; }
.b33-info-heading .b33-icon-button { min-width: 36px; min-height: 36px; font-size: 22px; padding: 3px 8px; background: transparent; border: 0; }
.b33-info-heading .b33-eyebrow { font-size: 8px; line-height: 1.6; }
.b33-messenger .b33-info-heading h2 { font-size: 19px; margin: 5px 0 14px; letter-spacing: -.03em; line-height: 1.4; }
.b33-lobby-info > p { font-size: 12px; line-height: 1.7; color: #afc4d8; margin: 0 0 18px; }
.b33-lobby-facts { margin: 19px 0 11px; }
.b33-lobby-facts > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; border-bottom: 1px solid #294057; padding: 11px 0; }
.b33-lobby-facts dt { color: #acbfd5; font-size: 11px; }
.b33-lobby-facts dd { margin: 0; color: #d9fff1; font-size: 21px; font-weight: 650; font-variant-numeric: tabular-nums; }
.b33-lobby-info .b33-info-footnote { color: #91a6bf; font-size: 10px; line-height: 1.6; }
.b33-members-link { display: flex; justify-content: space-between; gap: 10px; min-height: 44px; align-items: center; color: #8cffe1; font-size: 12px; margin: 16px 0 20px; padding: 11px 14px; background: #0d3038; border: 1px solid #285c66; border-radius: 9px; }
.b33-info-guidelines { padding-top: 18px; border-top: 1px solid #294057; }
.b33-info-guidelines h3 { font-size: 14px; margin: 0 0 12px; color: #e1ecfa; }
.b33-info-guidelines p { font-size: 12px; line-height: 1.7; color: #a4b8d0; margin: 0 0 15px; }
.b33-info-guidelines p strong { display: block; color: #cddced; font-weight: 550; }
.b33-messenger .b33-emoji-picker { position: absolute; bottom: calc(100% - 22px); left: 18px; width: min(340px, calc(100% - 36px)); max-height: min(380px, 52dvh); z-index: 8; display: flex; flex-direction: column; gap: 10px; padding: 13px; overflow: auto; background: #0c1c30; border: 1px solid #466384; border-radius: 14px; box-shadow: 0 14px 40px #0009; }
.b33-emoji-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.b33-emoji-heading strong { color: #ddecfa; font-size: 13px; font-weight: 600; }
.b33-emoji-heading .b33-icon-button { border: 0; background: transparent; padding: 5px; min-width: 36px; min-height: 36px; font-size: 23px; }
.b33-messenger .b33-emoji-picker input { width: 100%; min-height: 42px; padding: 10px 12px; border-radius: 8px; border: 1px solid #3c5872; background: #071424; color: #e7f2ff; font-size: 14px; }
.b33-emoji-categories { display: flex; gap: 5px; overflow: auto; flex: 0 0 auto; padding-bottom: 3px; }
.b33-emoji-categories button { min-height: 36px; padding: 6px 9px; border: 1px solid #2c455f; border-radius: 7px; background: #12263d; color: #b7cee2; font-size: 10px; white-space: nowrap; }
.b33-emoji-categories button[aria-pressed="true"], .b33-emoji-categories button.is-active { background: #15433f; border-color: #367c74; color: #b2ffdf; }
.b33-emoji-results { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 3px; min-height: 0; }
.b33-emoji-results button { display: grid; place-items: center; min-width: 0; min-height: 44px; padding: 3px; font-size: 24px; border: 1px solid transparent; border-radius: 9px; color: #fff; background: transparent; }
.b33-emoji-results button:hover { background: #1d354d; border-color: #466984; }
.b33-emoji-status { margin: 0; color: #a8bed4; font-size: 11px; }
.b33-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.b33-messenger .b33-noscript { margin: 0; padding: 10px; color: #d4bc91; background: #28251b; font-size: 12px; }
@media (min-width: 901px) {
    body.b3-shell.b33-chat-page.b33-nav-collapsed .nfo-layout-grid { grid-template-columns: minmax(0, 1fr); }
    body.b3-shell.b33-chat-page.b33-nav-collapsed .nfo-sidebar-shell { display: none; }
}
@media (max-width: 1200px) {
    .b33-lobby-tagline { display: none; }
    .b33-lobby-workspace:has(.b33-lobby-info:not([hidden])) { grid-template-columns: minmax(0, 1fr) 260px; }
}
@media (max-width: 900px) {
    body.b3-shell.b33-chat-page { --topbar-height: 56px; }
    body.b3-shell.b33-chat-page .network-topbar { min-height: 56px; width: calc(100% - 20px); padding: 4px 0; gap: 10px; flex-wrap: nowrap; }
    body.b3-shell.b33-chat-page .network-brand { gap: 6px; }
    body.b3-shell.b33-chat-page .network-brand strong { font-size: 18px; }
    body.b3-shell.b33-chat-page .network-brand .b3-brand-symbol { width: 29px; height: 29px; font-size: 24px; border-radius: 8px; }
    body.b3-shell.b33-chat-page .network-account-actions { gap: 8px; }
    body.b3-shell.b33-chat-page .main-content { padding: 8px; }
    body.b3-shell.b33-chat-page .network-primary-nav { display: none; }
    .b3-full-lobby.b33-messenger { gap: 7px; height: var(--b33-chat-height, calc(100dvh - 72px)); min-height: 180px; }
    .b33-messenger .b33-lobby-header { min-height: 50px; gap: 10px; padding: 2px 3px; }
    .b33-messenger .b33-lobby-title h1 { font-size: 23px; }
    .b33-messenger .b33-lobby-title .b33-eyebrow { font-size: 8px; letter-spacing: .14em; }
    .b33-lobby-title { gap: 9px; }
    .b33-lobby-mark { width: 38px; height: 38px; border-radius: 11px; }
    .b33-lobby-mark svg { width: 22px; height: 22px; }
    .b33-messenger .b33-header-actions .b33-icon-button { min-height: 44px; min-width: 44px; }
    .b33-messenger .b33-header-actions .b33-icon-button > span, .b33-messenger .b33-nav-toggle { display: none; }
    .b33-lobby-workspace:has(.b33-lobby-info:not([hidden])) { grid-template-columns: minmax(0, 1fr); }
    .b33-messenger .b33-lobby-info { position: absolute; inset: 0 0 0 auto; width: min(340px, 100%); z-index: 7; box-shadow: -20px 0 60px #0009; border-color: #42647c; }
    .b3-full-lobby.b33-messenger .member-chat-panel { border-radius: 12px; }
    .b3-full-lobby.b33-messenger .member-chat-header { min-height: 43px; padding: 7px 12px; }
    .b3-full-lobby.b33-messenger .network-chat-room h2 { font-size: 12px; }
    .b33-messenger .b33-members-only { display: none; }
    .b3-full-lobby.b33-messenger .member-chat-window { padding: 17px 12px; gap: 17px; scrollbar-gutter: auto; }
    .b3-full-lobby.b33-messenger .member-chat-message, .b3-full-lobby.b33-messenger .member-chat-message.is-own { max-width: 94%; gap: 8px; }
    .b3-full-lobby.b33-messenger .member-chat-message .network-chat-bubble { font-size: 15px; line-height: 1.55; padding: 10px 12px; }
    .b3-full-lobby.b33-messenger .member-chat-form { padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px)); }
    .b33-composer-tools { margin-bottom: 5px; }
    .b33-format-choice select { min-height: 36px; }
    .b3-full-lobby.b33-messenger .member-chat-input { font-size: 16px; height: 46px; min-height: 46px; max-height: 100px; padding: 10px 11px; }
    .b33-messenger .network-chat-compose-row { gap: 6px; }
    .b33-messenger .b33-emoji-toggle { min-width: 44px; height: 46px; padding: 9px; }
    .b3-full-lobby.b33-messenger .network-chat-send { min-width: 46px; width: 46px; height: 46px; min-height: 46px; padding: 10px; }
    .b33-messenger .network-chat-send span { display: none; }
    .b3-full-lobby.b33-messenger .member-chat-actions { font-size: 9px; gap: 8px; margin-top: 6px; }
    .b33-messenger .b33-format-help { font-size: 9px; margin-top: 3px; }
    .b33-messenger .b33-emoji-picker { left: 9px; width: min(340px, calc(100% - 18px)); bottom: calc(100% - 12px); max-height: min(340px, 48dvh); }
    .b33-messenger .network-chat-nfo pre { font-size: 12px; padding: 12px; }
}
@media (max-width: 420px) {
    body.b3-shell.b33-chat-page .network-account { display: none; }
    body.b3-shell.b33-chat-page .network-brand strong { font-size: 16px; }
    .b33-messenger .b32-avatar--sm, .b33-messenger .b32-chat-avatar, .b33-messenger .b32-chat-avatar-link { width: 30px; height: 30px; min-height: 30px; flex-basis: 30px; border-radius: 10px; font-size: 10px; }
    .b3-full-lobby.b33-messenger .member-chat-window { padding: 14px 9px; }
    .b3-full-lobby.b33-messenger .member-chat-message, .b3-full-lobby.b33-messenger .member-chat-message.is-own { max-width: 100%; gap: 7px; }
    .b3-full-lobby.b33-messenger .member-chat-meta strong, .b33-messenger .member-chat-meta .b32-chat-author { font-size: 11px; }
    .b3-full-lobby.b33-messenger .member-chat-meta time { font-size: 9px; }
    .b33-messenger .member-chat-actions > span:first-child { max-width: 68%; }
}
@media (max-height: 520px) and (max-width: 900px) {
    .b33-messenger .b33-lobby-header { min-height: 36px; }
    .b33-messenger .b33-lobby-title .b33-eyebrow, .b33-messenger .b33-lobby-mark, .b33-messenger .b33-format-help, .b33-messenger .member-chat-actions > span:first-child { display: none; }
    .b33-messenger .b33-lobby-title h1 { font-size: 19px; }
    .b33-messenger .b33-composer-tools { margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .b33-messenger *, .b33-messenger *::before, .b33-messenger *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
.b33-messenger .b33-lobby-tagline { display: flex; flex-wrap: wrap; gap: 5px 17px; max-width: 430px; font-size: 10px; }
.b33-lobby-tagline > span { white-space: nowrap; }
.b33-lobby-tagline strong { margin-right: 3px; color: #b7f0e1; font-size: 12px; font-weight: 650; font-variant-numeric: tabular-nums; }
@media (max-width: 1200px) { .b33-messenger .b33-lobby-tagline { display: none; } }
/* Interactive controls retain touch-sized hit areas even when their artwork is compact. */
.b33-messenger .b33-format-choice select, .b33-messenger .b33-info-heading .b33-icon-button, .b33-messenger .b33-emoji-heading .b33-icon-button, .b33-messenger .b33-emoji-categories button, .b33-messenger .network-chat-nfo-toolbar button { min-height: 44px; }
.b33-messenger .b33-info-heading .b33-icon-button, .b33-messenger .b33-emoji-heading .b33-icon-button { min-width: 44px; }
.b33-messenger .b32-chat-avatar-link, .b33-messenger a.b32-chat-avatar { min-width: 44px; min-height: 44px; width: 44px; height: 44px; flex-basis: 44px; }
/* VisualViewport keyboard state: layout-viewport media queries alone miss mobile keyboards. */
@media (max-width: 900px) {
    .b3-full-lobby.b33-messenger.is-keyboard-open { grid-template-rows: minmax(0, 1fr); gap: 0; }
    .b33-messenger.is-keyboard-open .b33-lobby-header, .b33-messenger.is-keyboard-open .b33-format-help, .b33-messenger.is-keyboard-open .member-chat-actions > span:first-child { display: none; }
    .b33-messenger.is-keyboard-open .member-chat-actions { justify-content: flex-end; }
    .b33-messenger.is-keyboard-open .b33-composer-tools { margin-bottom: 0; }
    .b3-full-lobby.b33-messenger.is-keyboard-open .member-chat-header { min-height: 35px; padding-block: 5px; }
    .b33-messenger.is-keyboard-open .network-chat-room > span:first-child { line-height: 1; }
    /* Keep a scrollable compact input when only the visual viewport shrinks. */
    .b3-full-lobby.b33-messenger.is-keyboard-open .member-chat-input { max-height: 52px; }
}
/* The messenger owns its viewport; avoid the old 100vh shell plus preview/header height. */
body.b3-shell.b33-chat-page > .page-shell { min-height: 0; }
body.b3-shell.b33-chat-page .main-content { padding-bottom: 10px; }
@media (min-width: 901px) {
    body.b3-shell.b33-chat-page .nfo-sidebar-shell { min-height: 0; height: calc(100dvh - var(--topbar-height) - var(--b3-demo-banner-height, 0px) - 1px); max-height: calc(100dvh - var(--topbar-height) - var(--b3-demo-banner-height, 0px) - 1px); }
}
