/* Community chat (Discord-style, Street Gonzo neon). Behaviour and permissions are unchanged; this is look and layout. */
.community-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin:6px 0 14px;font-size:.82rem}.community-links a{color:#bdbdbd;text-decoration:none}.community-links a:hover{color:#fff}.community-links a.is-mod{color:#ff8a7a}
.community{--cm-line:#262626;--cm-muted:#9a9a9a;--cm-panel:#121212}
.community-layout{display:grid;grid-template-columns:minmax(190px,240px) minmax(0,1fr);border:1px solid var(--cm-line);border-radius:8px;overflow:hidden;background:#0b0b0b;margin:0 0 24px}
.community:not([data-broadcast-id]) .community-layout{height:calc(100dvh - var(--header-h,72px) - 110px);min-height:520px}
.community-channels{background:var(--cm-panel);border-right:1px solid var(--cm-line);padding:16px 10px;overflow:auto;display:flex;flex-direction:column}
.community-channels h2{font-family:Anton,Impact,sans-serif;font-size:1.6rem;color:#ff4433;text-shadow:var(--neon-glow);margin:0 0 6px 8px}
.community-channels h3{margin:16px 8px 4px;font:700 .68rem Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--cm-muted)}
.community-channels button{position:relative;display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:transparent;color:#cfcfcf;border:0;border-radius:6px;min-height:40px;padding:8px 10px;font-size:.9rem;overflow-wrap:anywhere;cursor:pointer}
.community-channels button::before{content:"#";color:#666}
.community-channels button:hover{background:#1c1c1c}
.community-channels button[aria-current=true]{background:rgba(255,42,31,.12);color:#fff;box-shadow:inset 3px 0 0 var(--neon,#ff2a1f)}
.community-channels button.is-unread{color:#fff;font-weight:700}
.cm-unread{margin-left:auto;flex:0 0 8px;height:8px;border-radius:50%;background:var(--neon,#ff2a1f);box-shadow:0 0 6px var(--neon,#ff2a1f)}
.cm-create{margin-top:auto;padding-top:12px;border:0}.cm-create summary{color:#ff6a5a;font-size:.85rem;padding:8px 10px;cursor:pointer}
.community-messages{display:flex;flex-direction:column;min-width:0;min-height:0}
.cm-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid var(--cm-line)}
.cm-head h2{margin:0;font-family:Anton,Impact,sans-serif;font-size:1.6rem;color:#fff}.cm-head h2::before{content:"# ";color:#ff4433}.cm-head h2.is-plain::before{content:none}
.cm-head #community-topic{margin:2px 0 0;color:var(--cm-muted);font-size:.82rem}
.cm-head-button{background:transparent;color:#ddd;border:1px solid #333;border-radius:4px;padding:5px 10px;font-size:.8rem;cursor:pointer}.cm-head-button:hover{border-color:#ff4433}
#community-presence{margin:0 0 0 auto;font-size:.78rem;color:#7bd88f}#community-presence:not(:empty)::before{content:"● "}
#community-pins{flex-shrink:0;margin:8px 20px;padding:10px;border:1px solid #333;border-radius:6px;max-height:40vh;overflow:auto;background:#101010}
#community-older{margin:10px auto 0;display:block}
#community-history{flex:1;min-height:220px;overflow:auto;overscroll-behavior:contain;padding:8px 0}
.community[data-broadcast-id] #community-history{max-height:60vh}
.cm-day{display:flex;align-items:center;gap:12px;margin:12px 20px;color:var(--cm-muted);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.cm-day::before,.cm-day::after{content:"";flex:1;height:1px;background:var(--cm-line)}
.community-message{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;padding:8px 20px;overflow-wrap:anywhere}
.community-message:hover,.community-message:focus-within,.community-message.is-active{background:#151515}
.cm-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#2a2a2a;border:1px solid #3a3a3a;color:#ff6a5a;font:700 .9rem Arial,sans-serif}
.cm-avatar.is-staff{background:#200;border-color:var(--neon,#ff2a1f);color:#fff}
.cm-meta{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.cm-name{font-weight:700;color:#fff!important;text-decoration:none!important}.cm-name:hover{text-decoration:underline!important}
.community-author-badge{font:700 .6rem Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#000;background:var(--neon,#ff2a1f);border-radius:3px;padding:1px 5px}
.cm-meta time,.cm-meta .edited,.cm-flag{font-size:.72rem;color:#777}
.cm-replying{display:block;font-size:.76rem;color:var(--cm-muted)!important;text-decoration:none!important;margin-bottom:2px}
.cm-main>p{margin:3px 0;line-height:1.45;color:#e6e6e6}.cm-deleted{font-style:italic;color:#777!important}
.cm-main pre{white-space:pre-wrap;background:#1c1c1c;color:#eee;padding:10px;border-radius:4px}.cm-main blockquote{border-left:3px solid #555;padding-left:10px;margin:4px 0;color:#ccc}
.community-message a{color:#ff8a7a}
.community-reactions{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
.cm-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid #333;background:#1a1a1a;color:#ddd;border-radius:999px;padding:2px 10px;font-size:.82rem;min-height:28px;cursor:pointer}
.cm-chip[aria-pressed=true]{border-color:#333;background:#2e2e2e;color:#fff}.cm-chip:disabled{cursor:default}
.cm-chip-add{color:#888}
.cm-picker{display:flex;gap:4px;margin:4px 0;padding:4px;width:max-content;background:#1b1b1b;border:1px solid #333;border-radius:8px}
.cm-pick{background:none;border:0;border-radius:6px;font-size:1.2rem;padding:4px 6px;cursor:pointer}.cm-pick:hover,.cm-pick[aria-pressed=true]{background:#2a2a2a}
.cm-thread{background:none;border:0;padding:0;margin-top:4px;color:#ff6a5a;font-size:.8rem;cursor:pointer}.cm-thread:hover{text-decoration:underline}
.cm-tools{position:absolute;right:20px;top:-14px;display:none;gap:2px;padding:2px;background:#1b1b1b;border:1px solid #333;border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,.6);z-index:2}
.community-message:hover .cm-tools,.community-message:focus-within .cm-tools,.community-message.is-active .cm-tools{display:flex}
.cm-tool{background:none;border:0;color:#ddd;padding:5px 9px;border-radius:4px;font-size:.85rem;cursor:pointer;list-style:none;min-height:32px;display:flex;align-items:center}.cm-tool:hover{background:#2a2a2a}
.cm-more{position:relative;display:flex;border:0;margin:0;padding:0}.cm-more>summary::-webkit-details-marker{display:none}
.cm-menu{position:absolute;right:0;top:calc(100% + 4px);width:210px;padding:6px;background:#161616;border:1px solid #333;border-radius:6px;box-shadow:0 10px 30px rgba(0,0,0,.7);display:grid;z-index:3}
.cm-menu-item{display:block;width:100%;text-align:left;background:none;border:0;color:#ddd!important;padding:8px 10px;font:400 .85rem/1.3 Arial,Helvetica,sans-serif;margin:0;border-radius:4px;text-decoration:none!important;cursor:pointer}.cm-menu-item:hover{background:#242424}
.cm-menu-item.is-mod{color:#ff8a7a!important}.cm-menu-label{display:block;border-top:1px solid #2a2a2a;margin-top:4px;padding:8px 10px 2px;color:#777;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase}
.cm-empty{padding:24px 20px;color:var(--cm-muted)}
.cm-compose{border-top:1px solid var(--cm-line);padding:10px 20px 12px}
#community-typing{min-height:1.2em;margin:0;font-size:.78rem;color:var(--cm-muted)}#community-reply{margin:0 0 4px;font-size:.8rem;color:#ff8a7a}#community-reply:empty{display:none}
.cm-box{display:flex;align-items:flex-end;gap:10px;background:#161616;border:1px solid #333;border-radius:8px;padding:6px 6px 6px 12px}
.cm-box:focus-within{border-color:#444;box-shadow:none}
.community .cm-box textarea{flex:1;border:0;background:none;color:#fff;padding:8px 0;resize:none;min-height:40px;max-height:200px;font:inherit}
.community .cm-box textarea:focus-visible{outline:none}
.cm-send{border:2px solid var(--neon,#ff2a1f);background:rgba(20,0,0,.55);color:#fff;font-weight:700;border-radius:6px;padding:8px 18px;min-height:40px;box-shadow:0 0 8px rgba(255,42,31,.6);cursor:pointer}.cm-send:hover{background:var(--neon,#ff2a1f);color:#000}
.cm-compose-extras{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:6px}
#community-format{margin:0;font-size:.72rem;color:#666}
.cm-cancel{background:none;border:0;color:#ff8a7a;font-size:.78rem;padding:0;cursor:pointer}
.cm-attach{border:0;margin:0;padding:0}.cm-attach summary{font-size:.75rem;color:#888;cursor:pointer}.cm-attach[open]{flex-basis:100%}
.cm-status{margin:4px 0 0;font-size:.72rem;color:#777;min-height:1em}
#community-readonly{margin:8px 20px;color:var(--cm-muted)}
.community label{display:block;margin:10px 0 4px;font-size:.85rem}.community .community-channels textarea,.community .community-channels input:not([type=checkbox]),.cm-attach input{display:block;width:100%;border:1px solid #444;background:#151515;color:#eee;padding:8px;border-radius:4px}
.community button:focus-visible,.community a:focus-visible,.community textarea:focus-visible,.community input:focus-visible,.community summary:focus-visible{outline:2px solid #fff;outline-offset:2px}
.community [hidden]{display:none!important}
@media(max-width:767px){
 .community:not([data-broadcast-id]) .community-layout{height:auto;min-height:0}
 .community-layout{grid-template-columns:minmax(0,1fr);border-radius:0;margin:0 0 16px}
 .community-channels{min-width:0}
 .community-channels{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;border-right:0;border-bottom:1px solid var(--cm-line);padding:8px 10px;gap:6px}
 .community-channels h2,.community-channels h3{display:none}
 .community-channels #community-channels{display:flex;gap:6px}.community-channels button{width:auto;white-space:nowrap;min-height:36px}
 .cm-create{margin:0;padding:0}.cm-create summary{white-space:nowrap}
 #community-history{max-height:62vh}.community-message{padding:8px 14px}.cm-head,.cm-compose{padding-left:14px;padding-right:14px}.cm-tools{right:12px}
}
@media(prefers-reduced-motion:reduce){.community *{scroll-behavior:auto!important;transition:none!important}}

.community[data-broadcast-id]:not([data-broadcast-id=""]) .community-layout { display: block; }
.community[data-broadcast-id]:not([data-broadcast-id=""]) { min-width: 0; }

.community-moderation { max-width: 56rem; margin: auto; padding: 1rem; }
.community-mod-form { display: grid; gap: .65rem; margin-block: 1rem; }
.community-mod-form button, .community-mod-form select, .community-mod-form input { min-height: 44px; }
.community-mod-panel { padding: 1rem; margin-block: 1rem; border: 1px solid currentColor; overflow-wrap: anywhere; }
.community-mod-panel summary { min-height: 44px; cursor: pointer; }


.community-profile-bio { white-space:pre-wrap; overflow-wrap:anywhere; }

.community-link-preview { border-left:3px solid var(--sg-red,#d8232a); padding:.5rem .75rem; overflow-wrap:anywhere; }

.dm-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:2rem;margin-block:2rem}.dm-layout aside{border-right:1px solid var(--line);padding-right:1rem}.dm-help{color:var(--muted);font-size:.9rem}.dm-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-block:.75rem}.dm-thread{min-width:0}.dm-inbox-item,.dm-contact{border-bottom:1px solid var(--line);padding-block:1rem;overflow-wrap:anywhere}.dm-inbox-item[aria-current=true]{border-left:3px solid var(--red);padding-left:.75rem}.dm-inbox-item h3{font-size:1.4rem}.dm input[type=checkbox]{width:1.2rem;height:1.2rem;margin-right:.5rem}.dm-contact-choice{display:flex!important;align-items:center;gap:.5rem}.dm fieldset{margin-block:1rem}.dm #dm-history{max-height:60vh;min-height:200px;overflow:auto;overscroll-behavior:contain;overflow-wrap:anywhere}.dm #dm-safety{padding:1rem;border:1px solid var(--line);margin-block:1rem}.dm #dm-safety h2{margin-top:1.5rem}.dm #dm-compose{border-top:1px solid var(--line);padding-top:1rem}@media(max-width:767px){.dm-layout{grid-template-columns:1fr;gap:1rem}.dm-layout aside{border-right:0;border-bottom:1px solid var(--line);padding:0 0 1rem}.dm #dm-history{max-height:55vh}}

.community-search-match{outline:2px solid var(--focus-ring);outline-offset:4px}

#community-files,#dm-files{width:100%;max-width:100%}#community-file-list,#dm-file-list{overflow-wrap:anywhere}#community-file-list p,#dm-file-list p{margin-block:.75rem}#community-file-help{font-size:.9rem;color:var(--muted)}
.cm-create summary,.cm-attach summary{list-style:none}.cm-create summary::-webkit-details-marker,.cm-attach summary::-webkit-details-marker{display:none}

/* /Community fits one screen: no footer, wider box, chat scrolls inside instead of the page (desktop and tablets). */
@media (min-width:768px){
 body.community-fit .page-main{max-width:min(1640px,100%);min-height:0;padding-top:14px;padding-bottom:0}
 body.community-fit .community-links{margin:0 0 10px}
 body.community-fit .community:not([data-broadcast-id]) .community-layout{height:calc(100svh - var(--header-h,96px) - 62px);min-height:360px;margin:0}
}
.community-profile-avatar{width:128px;height:128px;border-radius:50%;object-fit:cover;display:block;margin:12px 0}
/* /Community, second pass: the page is exactly one screen under the header and the box takes whatever space is left,
   so it never pushes the page into scrolling, whatever the header or menu measure. */
@media (min-width:768px){
 body.community-fit .page-main{display:flex;flex-direction:column;height:calc(100svh - var(--header-h,96px));box-sizing:border-box;padding-top:14px;padding-bottom:14px;overflow:hidden}
 body.community-fit .page-main>.community{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
 body.community-fit .community:not([data-broadcast-id]) .community-layout{flex:1 1 auto;height:auto;min-height:0}
}

/* ---- One Community menu: tabs above one box. Every Community page renders inside .cm-shell > .cm-frame. ---- */
/* No page-to-page fade: it showed a snapshot of the previous page for a moment (Gary, Nov 5). */
.cm-shell { display:flex; flex-direction:column; width:100%; }
.cm-tabs { flex-shrink:0; display:flex; gap:4px; align-items:flex-end; overflow-x:auto; overflow-y:hidden; overscroll-behavior:contain; scrollbar-width:none; margin:0; padding:0 2px; } /* sideways only (Gary, Nov 6) */
.cm-tabs::-webkit-scrollbar { display:none; }
.cm-tab { position:relative; display:inline-flex; align-items:center; gap:6px; white-space:nowrap; padding:10px 16px; font:700 .78rem Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; color:#bbb; text-decoration:none; border:1px solid transparent; border-bottom:0; border-radius:8px 8px 0 0; margin-bottom:-1px; }
.cm-tab:hover { color:#fff; }
.cm-tab[aria-current=page] { color:#fff; background:rgba(10,10,10,.94); border-color:rgba(255,42,31,.55); text-shadow:0 0 6px rgba(255,42,31,.9); z-index:1; }
.cm-tab-mod { color:#ff8a7a; margin-left:auto; }
.cm-tab-count { display:inline-block; min-width:18px; padding:1px 5px; border-radius:9px; background:#ff2a1f; color:#000; font:700 .68rem Arial,sans-serif; letter-spacing:0; text-align:center; text-shadow:none; }
.cm-tab-count[hidden] { display:none; }
.cm-frame { position:relative; display:flex; flex-direction:column; min-height:0; background:rgba(10,10,10,.94); border:1px solid rgba(255,42,31,.55); border-radius:0 8px 8px 8px; box-shadow:0 0 26px rgba(255,42,31,.18); overflow:hidden; }
.cm-frame > .community { flex:1 1 auto; min-height:0; display:flex; flex-direction:column; }
.cm-frame .community-layout { border:0; border-radius:0; margin:0; background:transparent; }
.cm-fill { flex:1 1 auto; min-height:0; display:flex; flex-direction:column; }
.cm-split { flex:1 1 auto; min-height:0; display:grid; grid-template-columns:240px minmax(0,1fr); }
.cm-side { min-height:0; overflow:auto; padding:14px 10px; background:rgba(18,18,18,.9); border-right:1px solid #262626; }
.cm-side h3 { margin:14px 8px 6px; font:700 .68rem Arial,sans-serif; letter-spacing:.14em; text-transform:uppercase; color:#8a8a8a; }
.cm-side h3:first-child { margin-top:2px; }
.cm-side > a, .cm-side nav a, .cm-side #forum-boards a, .cm-side #forum-boards button { display:flex; align-items:center; gap:8px; width:100%; padding:8px 10px; border-radius:6px; color:#cfcfcf; text-decoration:none; font-size:.9rem; background:transparent; border:0; text-align:left; }
.cm-side > a:hover, .cm-side #forum-boards a:hover { background:#1c1c1c; color:#fff; }
.cm-side a[aria-current=page], .cm-side a[aria-current=true], .cm-side #forum-boards [aria-current] { background:rgba(255,42,31,.14); color:#fff; box-shadow:inset 3px 0 0 #ff2a1f; }
.cm-side .cm-tab-count { margin-left:auto; }
.cm-side label { display:block; margin:10px 8px 4px; font-size:.75rem; color:#9a9a9a; font-weight:400; }
.cm-side :is(.form-select,.form-control) { width:calc(100% - 16px); margin:0 8px; min-height:40px !important; font-size:.88rem; }
.cm-side .search-help, .cm-side p { margin:10px 8px; font-size:.78rem; color:#8a8a8a; }
.cm-side .btn { margin:8px; }
.cm-pane { min-width:0; min-height:0; overflow:auto; overscroll-behavior:contain; padding:16px 24px 28px; }
.cm-solo { flex:1 1 auto; max-width:none; margin:0; }
.cm-pane-head { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:0 -24px 16px; padding:0 24px 14px; border-bottom:1px solid #262626; text-align:left; }
body.brand-page .cm-frame .cm-pane-head h1, body.brand-page .cm-frame .cm-profile-head h1 { margin:0; font:400 1.7rem Anton,Impact,sans-serif; text-transform:uppercase; letter-spacing:.02em; color:#fff; text-shadow:0 0 6px rgba(255,42,31,.5); max-width:none; }
.cm-pane-head p { margin:2px 0 0; color:#9a9a9a; font-size:.88rem; }
body.brand-page .cm-frame h2 { font:400 1.25rem Anton,Impact,sans-serif; text-transform:uppercase; letter-spacing:.02em; color:#ff4433; text-shadow:0 0 4px rgba(255,42,31,.6); }
.cm-muted { color:#8a8a8a; }
.cm-statusbar { display:flex; align-items:center; gap:12px; padding:6px 16px; border-bottom:1px solid #262626; }
.cm-statusbar p { margin:0; flex:1; font-size:.82rem; color:#9a9a9a; }
.cm-statusbar #dm-status:empty::before { content:"Private conversations with other members."; }
.cm-statusbar .btn { padding:4px 10px; font-size:.78rem; }
.cm-side-toggle { display:none; }
/* Old page-by-page layouts give way to the box. */
.cm-frame :is(#community-search,#community-notifications,#forum,.community-moderation,#direct-messages) { max-width:none; margin:0; padding:0; }
.cm-frame .search-filters { display:block; }
.cm-searchbar { display:flex; gap:10px; }
.cm-searchbar .form-control { flex:1; }
.cm-frame .forum-toolbar { margin-bottom:12px; }
.cm-frame .forum-toolbar label { margin:0; font-size:.8rem; color:#9a9a9a; }
.cm-frame .forum-toolbar #forum-new { margin-left:auto; }
.cm-frame .dm #dm-history { max-height:none; min-height:200px; }
.cm-frame #dm-thread-panel { display:flex; flex-direction:column; min-height:100%; }
.cm-frame #dm-thread-panel[hidden] { display:none; }
.cm-frame #dm-thread-panel #dm-history { flex:1 1 auto; }
.cm-frame .dm-inbox-item { padding:10px 8px; border-bottom:1px solid #222; }
.cm-frame .dm-inbox-item h3 { font-size:.95rem; margin:0 0 4px; color:#fff; letter-spacing:0; text-transform:none; }
.cm-frame .dm-inbox-item .btn, .cm-frame .dm-inbox-item button { padding:3px 8px; font-size:.75rem; }
.cm-scope { display:grid; gap:8px; }
.cm-scope .btn { margin:0 8px; }
/* Profile overview. */
.cm-profile-head { display:flex; gap:22px; align-items:center; padding:6px 0 18px; margin-bottom:12px; border-bottom:1px solid #262626; }
.cm-profile-head .community-profile-avatar { width:112px; height:112px; flex:none; margin:0; border-radius:50%; object-fit:cover; box-shadow:0 0 0 2px #ff2a1f,0 0 18px rgba(255,42,31,.4); }
.cm-profile-initials { display:grid; place-items:center; background:#2a2a2a; color:#ff6a5a; font:700 2.4rem Arial,sans-serif; }
.cm-profile-head p { margin:4px 0; color:#bdb8ad; }
.cm-profile-head .badge { margin-left:4px; font-size:.7rem; }
.cm-profile-stats { display:flex; flex-wrap:wrap; gap:8px 28px; margin:10px 0 0; }
.cm-profile-stats div { display:flex; flex-direction:column-reverse; }
.cm-profile-stats dt { font-size:.75rem; color:#8a8a8a; font-weight:400; }
.cm-profile-stats dd { margin:0; font-size:1.1rem; font-weight:700; color:#fff; }
.cm-activity { padding:12px 0; border-bottom:1px solid #1f1f1f; overflow-wrap:anywhere; }
.cm-activity h3 { margin:2px 0 4px; font-size:1rem; letter-spacing:0; text-transform:none; }
.cm-activity h3 a { color:#fff; }
.cm-activity p { margin:4px 0; font-size:.88rem; color:#bbb; }
.cm-activity time { font-size:.75rem; color:#8a8a8a; }
.cm-kind { font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:#ff6a5a; }
.cm-frame .community-mod-panel, .cm-frame .community-mod-form, .cm-frame .community-moderation details { backdrop-filter:none; }

/* Desktop and tablets: the page is exactly one screen; tabs on top, the box takes the rest and scrolls inside. */
@media (min-width:768px){
 body.community-fit .page-main{display:flex;flex-direction:column;max-width:min(1640px,100%);height:calc(100svh - var(--header-h,96px));min-height:0;box-sizing:border-box;padding-top:14px;padding-bottom:14px;overflow:hidden}
 body.community-fit .page-main>.cm-shell{flex:1 1 auto;min-height:0}
 body.community-fit .cm-frame{flex:1 1 auto}
 body.community-fit .cm-frame .community:not([data-broadcast-id]) .community-layout{flex:1 1 auto;height:auto;min-height:0}
}
/* Phones: tabs scroll sideways, the page scrolls normally, and the sidebar folds behind a menu button. */
@media (max-width:767px){
 .cm-tab{padding:9px 12px;font-size:.72rem}
 .cm-tab-mod{margin-left:0}
 .cm-frame{border-radius:0 0 8px 8px}
 .cm-split{display:block}
 .cm-side{display:none;border-right:0;border-bottom:1px solid #262626}
 .cm-split.side-open>.cm-side{display:block}
 .cm-side-toggle{display:block;width:100%;padding:10px 16px;background:#121212;color:#ddd;border:0;border-bottom:1px solid #262626;text-align:left;font:700 .75rem Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}
 .cm-side-toggle::after{content:" ▾"}
 .cm-split.side-open>.cm-side-toggle::after{content:" ▴"}
 .cm-pane{overflow:visible;padding:14px 14px 22px}
 .cm-pane-head{margin:0 -14px 14px;padding:0 14px 12px}
 .cm-profile-head{flex-direction:column;align-items:flex-start}
 .cm-frame .community:is(:not([data-broadcast-id]),[data-broadcast-id=""]) .community-layout{height:calc(100svh - var(--header-h,72px) - 70px);min-height:420px}
}

/* Chat bubbles, phone-chat style (Gary, Nov 2): everyone's text sits in a rounded bubble; your own messages sit on the
   right in Street Gonzo red with no avatar, other people's on the left in dark grey with their picture. */
.community .cm-bubble { display:inline-block; max-width:min(68ch, 88%); padding:8px 14px; border-radius:18px 18px 18px 6px; background:#262626; color:#eee; overflow-wrap:anywhere; }
.community .cm-bubble > p { margin:2px 0; line-height:1.45; color:inherit; }
.community .cm-bubble .community-link-preview { margin-top:6px; border-left-color:rgba(255,255,255,.5); }
.community .cm-main { display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.community .cm-main > .cm-meta { align-self:stretch; }
/* Your own messages: bubble on the right with your profile picture beside it (Gary, Nov 4). */
.community .community-message.is-mine { grid-template-columns:minmax(0,1fr) 40px; }
.community .community-message.is-mine > .cm-avatar { grid-column:2; grid-row:1; }
.community .community-message.is-mine > .cm-main { grid-column:1; grid-row:1; }
.community .community-message.is-mine .cm-main { align-items:flex-end; }
.community .community-message.is-mine .cm-meta { justify-content:flex-end; text-align:right; }
.community .community-message.is-mine .cm-meta .cm-name { display:none; }
.community .community-message.is-mine .cm-bubble { background:linear-gradient(135deg, #ff4a2b, #d81f12); color:#fff; border-radius:18px 18px 6px 18px; }
.community .community-message.is-mine .cm-bubble a { color:#fff; text-decoration:underline; }
.community .community-message.is-mine .cm-bubble code, .community .community-message.is-mine .cm-bubble pre { background:rgba(0,0,0,.25); color:#fff; }
.community .community-message.is-mine .cm-replying { align-self:flex-end; }
.community .cm-deleted { margin:0; }
.community .community-message .cm-bubble:has(> .cm-deleted) { background:transparent; border:1px dashed #444; }
/* One chat channel (Gary, Nov 2): the channel list folds away and the conversation fills the box.
   Admins get a Channels button in the chat header to open the list (and add a channel). */
.community-layout.is-single-channel:not(.show-channels) { grid-template-columns:minmax(0,1fr); }
.community-layout.is-single-channel:not(.show-channels) > .community-channels { display:none; }

/* Chat polls (Gary, Nov 2): poll button beside the message box; answers as tappable bars inside the bubble. */
.community .cm-icon { flex:none; display:grid; place-items:center; width:40px; height:40px; border:0; border-radius:50%; background:transparent; color:#cfcfcf; cursor:pointer; }
.community .cm-icon:hover, .community .cm-icon[aria-pressed=true] { color:#fff; background:#2a2a2a; }
.community .cm-icon[aria-pressed=true] { box-shadow:inset 0 0 0 2px var(--neon,#ff2a1f); }
.community .cm-poll-builder { display:grid; gap:6px; margin-top:8px; }
.community .cm-poll-hint { margin:0; font-size:.75rem; color:#888; }
.community .cm-poll-answer { width:100%; border:1px solid #444; background:#151515; color:#eee; padding:8px 10px; border-radius:8px; }
.community .cm-poll-answer:focus-visible { outline:2px solid #fff; outline-offset:1px; }
.community .cm-poll { display:grid; gap:6px; margin-top:8px; min-width:min(260px, 70vw); }
.community .cm-poll-option { position:relative; display:flex; align-items:center; gap:10px; width:100%; padding:9px 12px; border:1px solid rgba(255,255,255,.25); border-radius:10px; background:rgba(0,0,0,.25); color:inherit; text-align:left; cursor:pointer; overflow:hidden; }
.community .cm-poll-option:hover:not(:disabled) { border-color:#fff; }
.community .cm-poll-option.is-mine { border-color:#fff; box-shadow:inset 0 0 0 1px #fff; }
.community .cm-poll-fill { position:absolute; inset:0 auto 0 0; width:0; background:rgba(255,255,255,.14); transition:width .3s ease; }
.community .cm-poll-label, .community .cm-poll-share { position:relative; }
.community .cm-poll-label { flex:1; }
.community .cm-poll-share { font-variant-numeric:tabular-nums; font-weight:700; font-size:.85rem; }
.community .cm-poll-total { margin:2px 0 0; font-size:.72rem; opacity:.75; }
@media (prefers-reduced-motion:reduce) { .community .cm-poll-fill { transition:none; } }
/* GIFs (Nov 2): picker under the composer, GIF messages shown as pictures. */
.community .cm-gif-icon { font:800 .72rem/1 system-ui, sans-serif; letter-spacing:.04em; }
.community .cm-gif-icon span:not(.visually-hidden) { display:none; }
.community .cm-gif-icon[aria-expanded=true] { color:#fff; background:#2a2a2a; box-shadow:inset 0 0 0 2px var(--neon,#ff2a1f); }
.community .cm-gif-picker { display:grid; gap:8px; margin-top:8px; padding:8px; border:1px solid #2c2c2c; border-radius:14px; background:#111; }
.community .cm-gif-picker[hidden] { display:none; }
.community .cm-gif-picker input[type=search] { width:100%; border:1px solid #333; border-radius:999px; background:#1a1a1a; color:#fff; padding:8px 14px; }
.community .cm-gif-results { display:grid; grid-template-columns:repeat(auto-fill, minmax(110px, 1fr)); gap:6px; max-height:260px; overflow-y:auto; overscroll-behavior:contain; }
.community .cm-gif-pick { display:block; padding:0; border:0; border-radius:8px; overflow:hidden; background:#1d1d1d; cursor:pointer; aspect-ratio:1; }
.community .cm-gif-pick img { width:100%; height:100%; object-fit:cover; display:block; }
.community .cm-gif-pick:hover, .community .cm-gif-pick:focus-visible { box-shadow:0 0 0 2px var(--neon,#ff2a1f); }
.community .cm-gif-note { grid-column:1 / -1; margin:6px 0; color:#9a9a9a; font-size:.9rem; }
.community .cm-gif-foot { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.community .cm-gif-credit { margin-left:auto; color:#8a8a8a; font-size:.75rem; letter-spacing:.03em; }
.community .cm-bubble.is-gif { padding:0; background:transparent; box-shadow:none; }
.community .cm-gif { display:block; max-width:min(280px, 100%); max-height:280px; border-radius:14px; }
/* A GIF you sent: just the picture, no red bubble behind it (Nov 2). */
.community .community-message .cm-bubble.is-gif, .community .community-message.is-mine .cm-bubble.is-gif { background:none; padding:0; box-shadow:none; border-radius:14px; width:fit-content; max-width:100%; overflow:hidden; }
/* Message tools (react, reply, ⋯) appear right below the message, lined up with the bubble: left for others, right for your own. */
.community .cm-main { position:relative; }
.community .cm-main > .cm-tools { top:calc(100% + 2px); left:0; right:auto; width:max-content; white-space:nowrap; z-index:4; }
.community .community-message.is-mine .cm-main > .cm-tools { left:auto; right:0; }
/* Room under the last message for its hover buttons (react / Reply / …), which sit below the bubble.
   Without it, hovering the last message grew the scroll area, the chat jumped, the buttons hid, and it bounced (Gary, Nov 4). */
.community #community-history { padding-bottom:40px; }

/* Until the first channel has loaded, the chat box stays empty instead of flashing its "Loading" layout (Gary, Nov 5).
   If the script never finishes, it shows anyway after 4 seconds. */
@keyframes cm-reveal { to { visibility:visible; } }
#community:not([data-broadcast-id]) .community-layout, #community[data-broadcast-id=""] .community-layout { visibility:hidden; animation:cm-reveal 0s 4s forwards; }
#community.is-ready .community-layout { visibility:visible; animation:none; }

/* Your own messages: the time sits to the left of your label (Gary, Nov 5). */
.community .community-message.is-mine .cm-meta time { order:-1; }

/* Phones: the typing box gets the full width; GIF and polls sit on the line under it (Gary approved, Nov 5). */
@media (max-width:767px){
 #community-composer .cm-box { display:grid; grid-template-columns:auto auto 1fr auto; column-gap:6px; row-gap:4px; align-items:end; }
 #community-composer .cm-box > textarea { grid-column:1 / 4; grid-row:1; width:100%; min-width:0; }
 #community-composer .cm-box > .cm-send { grid-column:4; grid-row:1; }
 #community-composer .cm-box > #community-gif-toggle { grid-column:1; grid-row:2; }
 #community-composer .cm-box > #community-poll-toggle { grid-column:2; grid-row:2; }
}

/* Message tools sit quietly under every message, always visible (Gary, Nov 5): + react, ↩ reply, ⋯ short menu. No hover bar. */
.community .cm-main > .cm-tools, .community .cm-tools { position:static; display:flex; align-items:center; gap:2px; margin-top:2px; padding:0; background:none; border:0; box-shadow:none; width:auto; }
.community .community-message.is-mine .cm-main > .cm-tools { align-self:flex-end; }
.community .cm-tools .cm-tool { min-height:28px; min-width:28px; padding:2px 7px; justify-content:center; color:#8a8a8a; font-size:.95rem; border-radius:999px; }
.community .cm-tools .cm-tool:hover, .community .cm-tools .cm-tool[aria-expanded=true] { color:#fff; background:#262626; }
.community .cm-tools .cm-tool-react { font-size:1.05rem; font-weight:700; }
.community .community-message.is-mine .cm-tools .cm-menu { right:0; left:auto; }
.community .cm-tools .cm-menu { left:0; right:auto; top:auto; bottom:calc(100% + 4px); width:170px; }
.community .community-message.is-mine .cm-picker { align-self:flex-end; }

/* Pinned messages box: plain rows (it was picking up the chat-message grid, squeezing names and the button). Nov 5. */
#community-pins h3 { margin:0 0 6px; font:700 .72rem Arial,Helvetica,sans-serif; letter-spacing:.12em; text-transform:uppercase; color:#9a9a9a; }
#community-pins .community-message { display:block; padding:8px 0; border-bottom:1px solid rgba(255,255,255,.08); }
#community-pins .community-message:last-child { border-bottom:0; }
#community-pins .community-message > strong { display:block; color:#fff; font-size:.9rem; }
#community-pins .community-message > p { margin:2px 0 6px; color:#ddd; white-space:pre-wrap; overflow-wrap:anywhere; }
#community-pins .community-message > button { display:inline; width:auto; min-height:0; padding:0; background:none; border:0; color:#ff6a5a; font-size:.85rem; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }

/* Drawn reply arrows (Gary, Nov 6: iPhone showed emoji arrows). */
.cm-glyph { width:1.05em; height:1.05em; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; vertical-align:-.15em; flex:none; }
.cm-replying .cm-glyph { width:.95em; height:.95em; margin-right:.35em; }
.cm-tool-reply { display:inline-flex; align-items:center; justify-content:center; }

/* Phones (Gary, Nov 6): the chat was too big at 100% on iPhone; about 20% smaller, with Pinned in the top right.
   The message box keeps 16px text so iPhones don't zoom in when typing. */
@media (max-width:767px){
.cm-frame .community .cm-head { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:2px 10px; padding-bottom:8px; }
.cm-frame .community .cm-head > div { grid-column:1; grid-row:1 / span 2; min-width:0; }
.cm-frame .community .cm-head > .cm-head-button { grid-column:2; grid-row:1; justify-self:end; min-height:30px; padding:2px 10px; font-size:.72rem; }
.cm-frame .community .cm-head > #community-presence { grid-column:2; grid-row:2; justify-self:end; margin:0; font-size:.7rem; }
.cm-frame .community #community-title { font-size:1.05rem; }
.cm-frame .community #community-topic { font-size:.72rem; line-height:1.3; }
.cm-frame .community .community-message { font-size:.82rem; }
.cm-frame .community .cm-bubble { font-size:.84rem; padding:7px 11px; }
.cm-frame .community .cm-name { font-size:.82rem; }
.cm-frame .community .cm-meta time { font-size:.66rem; }
.cm-frame .community .cm-replying { font-size:.66rem; }
.cm-frame .community .cm-avatar { width:30px; height:30px; flex-basis:30px; font-size:.7rem; }
.cm-frame .community .cm-tool { font-size:.8rem; min-width:28px; min-height:28px; }
.cm-frame .community .cm-day span { font-size:.65rem; }
.cm-frame .community .cm-compose { padding-top:8px; }
.cm-frame .community .cm-send { min-height:40px; padding:0 14px; font-size:.9rem; }
}

/* Composer clean-up (Gary, Nov 6): no "Cancel reply or edit" (tap the reply arrow again, or Esc) and no "+ Attach a text file". */
#community-cancel, .community .cm-attach { display:none !important; }

/* Reactions sit on the bubble's bottom edge with the tools beside them (Gary, Nov 7, from Instagram). */
.community .cm-foot { display:flex; align-items:flex-start; gap:6px; flex-wrap:wrap; }
.community .community-message.is-mine .cm-foot { align-self:flex-end; flex-direction:row-reverse; }
.community .cm-foot .community-reactions { margin:-12px 0 0 12px; position:relative; z-index:1; gap:4px; }
.community .community-message.is-mine .cm-foot .community-reactions { margin:-12px 12px 0 0; }
.community .cm-foot .cm-chip { min-height:26px; padding:1px 8px; border:2px solid #0b0b0b; background:#262626; box-shadow:0 1px 4px rgba(0,0,0,.5); }
.community .cm-foot .cm-chip[aria-pressed=true] { background:#3a3a3a; }
.community .cm-foot > .cm-tools, .community .community-message.is-mine .cm-foot > .cm-tools { margin-top:0; }

/* Emoji button on the chat bar (Gary, Nov 7). */
.community .cm-emoji-picker { display:grid; grid-template-columns:repeat(auto-fill,minmax(36px,1fr)); gap:2px; max-height:220px; overflow-y:auto; margin-top:8px; padding:8px; border:1px solid #333; border-radius:12px; background:#1c1c1c; }
.community .cm-emoji-picker[hidden] { display:none; }
.community .cm-emoji-pick { width:100%; aspect-ratio:1; min-height:34px; padding:0; border:0; border-radius:8px; background:none; font-size:1.3rem; line-height:1; cursor:pointer; }
.community .cm-emoji-pick:hover, .community .cm-emoji-pick:focus-visible { background:#333; }
