@font-face{
    font-family:Vazirmatn;
    src:url('fonts/Vazirmatn[wght].woff2') format('woff2-variations');
    font-weight:100 900;
    font-style:normal;
    font-display:swap;
}
:root{
    --bg:#f6f8fb;
    --panel:rgba(255,255,255,.72);
    --panel-strong:rgba(255,255,255,.88);
    --line:rgba(15,23,42,.08);
    --text:#172033;
    --muted:#6b7a90;
    --muted2:#94a3b8;
    --blue:#2aabee;
    --blue2:#229ed9;
    --green:#39c976;
    --danger:#ef466f;
    --bubble:#ffffff;
    --mine:#e6f6ff;
    --shadow:0 24px 70px rgba(15,23,42,.08);
    --soft-shadow:0 12px 32px rgba(15,23,42,.07);
    --radius:28px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
    margin:0;
    font-family:Vazirmatn,Tahoma,Arial,sans-serif;
    color:var(--text);
    background:
        radial-gradient(circle at 12% 10%, rgba(42,171,238,.14), transparent 28rem),
        radial-gradient(circle at 80% 92%, rgba(57,201,118,.10), transparent 24rem),
        linear-gradient(180deg,#ffffff,var(--bg));
    overflow:hidden;
}
button,input,textarea,select{font:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
.hidden{display:none!important}
.glass{
    background:var(--panel);
    border:1px solid rgba(255,255,255,.88);
    box-shadow:var(--shadow);
    backdrop-filter:blur(22px) saturate(1.35);
    -webkit-backdrop-filter:blur(22px) saturate(1.35);
}
.animate-soft{animation:softIn .36s cubic-bezier(.2,.8,.2,1) both}
@keyframes softIn{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}
.login-shell{min-height:100%;display:grid;place-items:center;padding:24px}
.login-card{width:min(450px,100%);border-radius:34px;padding:34px;text-align:center}
.brand-orb{
    width:88px;height:88px;border-radius:31px;margin:0 auto 18px;
    display:grid;place-items:center;font-size:27px;font-weight:900;color:white;
    background:linear-gradient(135deg,var(--blue),#55c6ff);
    box-shadow:0 18px 44px rgba(34,158,217,.22);
}
.login-card h1,.chat-header h1{margin:0 0 8px;font-size:27px;letter-spacing:-.04em}
.muted{color:var(--muted);line-height:1.9;margin:0 0 20px}
.login-form{display:grid;gap:14px;text-align:right;margin-top:22px}
.login-form label{display:grid;gap:8px;color:var(--muted);font-weight:650;font-size:13px}
input,textarea,select{
    width:100%;border:1px solid var(--line);outline:0;
    border-radius:18px;padding:13px 15px;background:rgba(255,255,255,.76);color:var(--text);
    transition:border .18s ease, box-shadow .18s ease, background .18s ease;
}
input:focus,textarea:focus,select:focus{border-color:rgba(42,171,238,.45);box-shadow:0 0 0 5px rgba(42,171,238,.11);background:white}
.primary-btn,.send-btn,.ghost-btn,.round-btn{
    border:0;border-radius:18px;color:white;
    background:linear-gradient(135deg,var(--blue),var(--blue2));
    padding:13px 18px;font-weight:800;transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
    box-shadow:0 12px 28px rgba(34,158,217,.18)
}
.primary-btn:hover,.send-btn:hover,.ghost-btn:hover,.round-btn:hover{transform:translateY(-1px)}
.primary-btn:active,.send-btn:active,.ghost-btn:active,.round-btn:active{transform:translateY(0) scale(.98)}
.ghost-btn{display:block;text-align:center;background:rgba(255,255,255,.74);border:1px solid var(--line);box-shadow:var(--soft-shadow);color:var(--text)}
.alert{padding:12px 14px;border-radius:16px;margin:14px 0}.danger{background:rgba(239,70,111,.10);border:1px solid rgba(239,70,111,.16);color:#be123c}
#app{height:100vh;display:grid;grid-template-columns:302px 1fr;gap:16px;padding:16px}
.sidebar{border-radius:30px;padding:16px;display:flex;flex-direction:column;min-height:0}
.profile{display:flex;gap:12px;align-items:center;padding:8px 6px 16px;border-bottom:1px solid var(--line)}
.avatar{width:48px;height:48px;border-radius:19px;display:grid;place-items:center;font-weight:900;color:white;background:linear-gradient(135deg,var(--blue),#6dd5ff)}
.profile small{display:block;color:var(--muted2);margin-top:5px;direction:ltr;text-align:right;font-size:12px}
.group-card{margin-top:16px;border-radius:22px;padding:13px;display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.64);border:1px solid var(--line);transition:.18s ease}
.group-card.active{background:linear-gradient(135deg,rgba(42,171,238,.14),rgba(255,255,255,.86));border-color:rgba(42,171,238,.18)}
.group-icon{width:42px;height:42px;border-radius:16px;display:grid;place-items:center;background:white;color:var(--blue2);font-size:22px;font-weight:900;box-shadow:var(--soft-shadow)}
.group-card span,.security-card span{display:block;color:var(--muted);font-size:12px;margin-top:5px;line-height:1.7}
.security-card{margin-top:12px;border:1px solid rgba(57,201,118,.15);background:rgba(57,201,118,.07);border-radius:22px;padding:13px;color:#14532d}
.side-actions{margin-top:auto;display:grid;gap:10px}
.chat-shell{border-radius:30px;display:grid;grid-template-rows:auto auto 1fr auto auto;min-width:0;overflow:hidden;background:rgba(255,255,255,.64)}
.chat-header{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(255,255,255,.45)}
.chat-header p{margin:0;color:var(--muted);font-size:13px;line-height:1.7}
.status-pill{border:1px solid rgba(57,201,118,.20);background:rgba(57,201,118,.10);color:#15803d;border-radius:999px;padding:8px 12px;display:flex;gap:8px;align-items:center;white-space:nowrap;font-weight:750;font-size:12px}
.pulse{width:9px;height:9px;border-radius:999px;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.55);animation:pulse 1.8s infinite}@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(34,197,94,0)}}
.pinned-bar{border-bottom:1px solid var(--line);padding:9px 14px;display:flex;gap:8px;overflow:auto;background:rgba(255,255,255,.42)}
.pin-chip{border:1px solid rgba(42,171,238,.14);background:rgba(255,255,255,.74);border-radius:16px;padding:8px 11px;display:flex;align-items:center;gap:7px;min-width:230px;max-width:390px;color:var(--text);box-shadow:0 8px 22px rgba(42,171,238,.07);transition:.16s ease}
.pin-chip:hover{transform:translateY(-1px);background:white}.pin-chip b{font-size:12px;white-space:nowrap}.pin-chip em{font-size:12px;color:var(--muted);font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pin-chip small{margin-right:auto;color:var(--danger);font-weight:800}
.messages{overflow:auto;padding:20px;display:flex;flex-direction:column;gap:11px;scroll-behavior:smooth;background:linear-gradient(180deg,rgba(248,251,255,.36),rgba(255,255,255,.18))}
.message{display:flex;gap:9px;max-width:min(760px,88%);align-items:flex-end;animation:messageIn .22s cubic-bezier(.2,.8,.2,1)}.message.mine{align-self:flex-end;flex-direction:row-reverse}.message.other{align-self:flex-start}
@keyframes messageIn{from{transform:translateY(7px) scale(.985);opacity:.45}to{transform:none;opacity:1}}
.message.highlight .bubble{animation:highlight 1.2s ease}@keyframes highlight{0%,100%{box-shadow:0 10px 28px rgba(15,23,42,.08)}35%{box-shadow:0 0 0 5px rgba(42,171,238,.20),0 14px 34px rgba(42,171,238,.16)}}
.message .mini-avatar{width:34px;height:34px;border-radius:14px;display:grid;place-items:center;background:white;color:var(--blue2);font-weight:900;flex:none;box-shadow:var(--soft-shadow)}
.bubble{position:relative;background:var(--bubble);color:var(--text);border:1px solid rgba(15,23,42,.045);border-radius:22px 22px 7px 22px;padding:10px 12px;box-shadow:0 8px 22px rgba(15,23,42,.06);min-width:170px;transition:transform .16s ease, box-shadow .16s ease}
.bubble:hover{box-shadow:0 14px 34px rgba(15,23,42,.09)}
.message.mine .bubble{background:var(--mine);border-color:rgba(42,171,238,.10);border-radius:22px 22px 22px 7px}
.message.is-pinned .bubble{border-color:rgba(42,171,238,.22)}
.meta{display:flex;justify-content:space-between;gap:16px;align-items:center;font-size:11px;color:var(--muted);margin-bottom:6px}.author{font-weight:900;color:var(--blue2)}.time{direction:ltr;white-space:nowrap;color:var(--muted2)}
.body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.78;font-size:14px}.deleted{font-style:italic;opacity:.58}
.badges{display:flex;gap:5px;margin:-2px 0 5px;flex-wrap:wrap}.pin-badge,.format-badge{font-size:10px;border-radius:999px;padding:3px 7px;background:rgba(42,171,238,.10);color:var(--blue2);font-weight:800}.format-badge{background:rgba(15,23,42,.06);color:#475569}
.reply-preview{border-right:4px solid rgba(42,171,238,.55);background:rgba(42,171,238,.08);padding:8px 10px;border-radius:13px;margin-bottom:8px;font-size:12px;line-height:1.7;color:#31516a}
.attachment-box{display:flex;gap:10px;align-items:center;margin-top:10px;border:1px solid rgba(15,23,42,.07);padding:10px;border-radius:15px;background:rgba(255,255,255,.56);color:inherit;transition:.16s ease}.attachment-box:hover{transform:translateY(-1px);background:white}.file-icon{font-size:23px}.attachment-box small{display:block;color:var(--muted);margin-top:3px;direction:ltr;text-align:right;font-size:11px}.image-attachment{max-width:280px;max-height:280px;border-radius:17px;margin-top:10px;display:block;object-fit:cover;border:1px solid rgba(15,23,42,.06)}
.code-block{direction:ltr;text-align:left;white-space:pre;overflow:auto;max-width:min(620px,74vw);margin:6px 0 0;background:#0f172a;color:#dbeafe;border-radius:16px;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.7;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
.message-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;opacity:0;transform:translateY(2px);transition:.16s ease}.bubble:hover .message-actions{opacity:1;transform:none}
.message-actions button,.reaction-badge{border:0;background:rgba(15,23,42,.055);color:var(--muted);border-radius:999px;padding:5px 8px;font-size:12px;font-weight:750}.message-actions button:hover,.reaction-badge:hover{background:rgba(42,171,238,.10);color:var(--blue2)}
.reactions{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.reaction-badge{display:inline-flex;gap:4px;align-items:center;color:var(--text)}
.reaction-pop{position:absolute;bottom:38px;right:12px;display:flex;gap:4px;padding:7px;border-radius:18px;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);box-shadow:0 16px 44px rgba(15,23,42,.13);border:1px solid rgba(15,23,42,.08);z-index:5}.reaction-pop button{border:0;background:transparent;font-size:19px;padding:5px;border-radius:10px}.reaction-pop button:hover{background:rgba(42,171,238,.10)}
.reply-bar{margin:0 16px 9px;border:1px solid var(--line);background:rgba(255,255,255,.64);border-radius:18px;padding:9px 12px;display:flex;justify-content:space-between;gap:10px;color:var(--muted);box-shadow:var(--soft-shadow)}
.reply-bar button,.modal-head button{border:0;border-radius:12px;background:rgba(15,23,42,.06);color:var(--text);width:34px;height:34px;font-size:20px}
.composer{position:relative;margin:0 16px 16px;border:1px solid rgba(15,23,42,.07);background:rgba(255,255,255,.74);border-radius:24px;padding:9px;display:flex;gap:8px;align-items:flex-end;box-shadow:0 10px 36px rgba(15,23,42,.07);backdrop-filter:blur(18px)}
.round-btn{width:44px;height:44px;padding:0;border-radius:16px;background:white;border:1px solid var(--line);display:grid;place-items:center;box-shadow:var(--soft-shadow);color:var(--text);flex:none}.round-btn.active{background:#0f172a;color:white}.attach{line-height:44px;text-align:center}
textarea{resize:none;max-height:148px;min-height:44px;background:transparent;border:0;padding:11px 4px;color:var(--text)}.send-btn{height:44px;border-radius:16px;flex:none}
.emoji-panel{position:absolute;bottom:64px;right:10px;width:min(420px,calc(100vw - 40px));max-height:230px;overflow:auto;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:22px;padding:12px;box-shadow:0 18px 55px rgba(15,23,42,.13);display:grid;grid-template-columns:repeat(9,1fr);gap:5px;z-index:10;backdrop-filter:blur(18px)}.emoji-panel button{border:0;background:rgba(15,23,42,.045);border-radius:12px;font-size:22px;padding:7px}.emoji-panel button:hover{background:rgba(42,171,238,.10)}
.file-hint{position:absolute;bottom:64px;left:18px;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:14px;padding:9px 12px;color:var(--muted);font-size:12px;max-width:330px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-shadow:var(--soft-shadow)}
.modal{position:fixed;inset:0;background:rgba(226,232,240,.62);display:grid;place-items:center;padding:22px;z-index:50;backdrop-filter:blur(10px)}.modal-card{width:min(980px,100%);max-height:90vh;overflow:auto;border-radius:28px;padding:20px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal-head h2{margin:0}.admin-form{display:grid;grid-template-columns:1.2fr 1fr 1fr 130px auto;gap:9px;margin-bottom:14px}.notice{padding:10px 12px;border-radius:14px;background:rgba(57,201,118,.12);border:1px solid rgba(57,201,118,.18);margin-bottom:12px;color:#166534}.notice.error{background:rgba(239,70,111,.10);border-color:rgba(239,70,111,.18);color:#be123c}.users-table-wrap{overflow:auto}.users-table{width:100%;border-collapse:collapse;min-width:760px}.users-table th,.users-table td{border-bottom:1px solid var(--line);padding:11px;text-align:right;color:var(--muted)}.users-table th{color:var(--text)}.users-table button{border:0;border-radius:10px;padding:7px 9px;margin:2px;background:rgba(15,23,42,.06);color:var(--text)}.users-table .danger-btn{background:rgba(239,70,111,.10);color:#be123c}.users-table .ok-btn{background:rgba(57,201,118,.12);color:#15803d}
@media (max-width:860px){body{overflow:auto}#app{height:auto;min-height:100vh;grid-template-columns:1fr;padding:10px}.sidebar{border-radius:24px}.chat-shell{min-height:76vh;border-radius:24px}.chat-header{align-items:flex-start;flex-direction:column}.message{max-width:96%}.admin-form{grid-template-columns:1fr}.emoji-panel{grid-template-columns:repeat(7,1fr)}.messages{padding:14px}.composer{margin:0 10px 10px}.sidebar{min-height:auto}.side-actions{margin-top:16px}.message-actions{opacity:1}.login-card{padding:26px}}
/* final light messenger polish */
:root{
    --bg:#ffffff;
    --panel:rgba(255,255,255,.86);
    --panel-strong:rgba(255,255,255,.96);
    --line:rgba(15,23,42,.07);
    --bubble:#ffffff;
    --mine:#ffffff;
    --shadow:0 20px 60px rgba(15,23,42,.055);
    --soft-shadow:0 10px 26px rgba(15,23,42,.05);
}
body{
    background:
        radial-gradient(circle at 18% 12%, rgba(42,171,238,.06), transparent 28rem),
        radial-gradient(circle at 85% 92%, rgba(42,171,238,.04), transparent 30rem),
        #fff;
}
.glass{background:rgba(255,255,255,.82);border-color:rgba(241,245,249,.96)}
.chat-shell,.sidebar{background:rgba(255,255,255,.84)}
.chat-header,.pinned-bar{background:rgba(255,255,255,.72)}
.messages{background:linear-gradient(180deg,rgba(255,255,255,.70),rgba(248,250,252,.42))}
.message.mine .bubble{background:#fff;border-color:rgba(42,171,238,.18)}
.brand-orb{background:#fff;color:var(--blue2);border:1px solid rgba(42,171,238,.16);box-shadow:0 16px 44px rgba(42,171,238,.12)}
.round-btn svg,.file-icon svg,.reaction-badge svg,.reaction-pop svg,.emoji-panel svg,.svg-token svg,.pin-chip-icon svg,.pin-badge svg{width:21px;height:21px;display:inline-block;vertical-align:middle;fill:currentColor;flex:none}
.round-btn svg{width:22px;height:22px}.attach svg{margin:auto}.file-icon svg{width:28px;height:28px;color:var(--blue2)}
.emoji-panel button{display:grid;place-items:center;color:var(--blue2)}
.emoji-panel button svg{width:26px;height:26px}.reaction-pop button{display:grid;place-items:center;color:var(--blue2)}
.reaction-badge svg{width:16px;height:16px;color:var(--blue2)}
.svg-token{display:inline-grid;place-items:center;width:30px;height:30px;margin:0 2px;border-radius:11px;background:rgba(42,171,238,.08);color:var(--blue2);vertical-align:middle}.svg-token svg{width:21px;height:21px}
.pin-badge{display:inline-flex;align-items:center;gap:4px}.pin-badge svg{width:13px;height:13px}.pin-chip-icon{display:inline-grid;place-items:center;color:var(--blue2)}.pin-chip-icon svg{width:17px;height:17px}
.security-card{display:none}

/* absolute white / glass theme - no colorful accents */
:root{
    --bg:#ffffff;
    --panel:rgba(255,255,255,.82);
    --panel-strong:rgba(255,255,255,.96);
    --line:rgba(17,24,39,.08);
    --text:#111827;
    --muted:#6b7280;
    --muted2:#9ca3af;
    --blue:#111827;
    --blue2:#111827;
    --green:#6b7280;
    --danger:#4b5563;
    --bubble:#ffffff;
    --mine:#ffffff;
    --shadow:0 24px 80px rgba(17,24,39,.06);
    --soft-shadow:0 12px 34px rgba(17,24,39,.045);
}
body{
    background:#ffffff!important;
    color:var(--text);
}
.glass{
    background:rgba(255,255,255,.78)!important;
    border-color:rgba(17,24,39,.07)!important;
    box-shadow:var(--shadow)!important;
    backdrop-filter:blur(24px) saturate(1.08)!important;
    -webkit-backdrop-filter:blur(24px) saturate(1.08)!important;
}
.login-card,.sidebar,.chat-shell,.modal-card{
    background:rgba(255,255,255,.80)!important;
}
.chat-header,.pinned-bar,.composer,.reply-bar{
    background:rgba(255,255,255,.74)!important;
    border-color:rgba(17,24,39,.08)!important;
}
.messages{
    background:#ffffff!important;
}
.brand-orb,.avatar,.group-icon,.mini-avatar{
    background:#ffffff!important;
    color:#111827!important;
    border:1px solid rgba(17,24,39,.08)!important;
    box-shadow:var(--soft-shadow)!important;
}
.group-card,.group-card.active,.security-card{
    background:rgba(255,255,255,.70)!important;
    border-color:rgba(17,24,39,.08)!important;
}
.primary-btn,.send-btn{
    background:#111827!important;
    color:#ffffff!important;
    box-shadow:0 12px 30px rgba(17,24,39,.10)!important;
}
.ghost-btn,.round-btn,input,textarea,select,.pin-chip,.emoji-panel,.reaction-pop,.attachment-box{
    background:rgba(255,255,255,.86)!important;
    border-color:rgba(17,24,39,.08)!important;
    color:#111827!important;
    box-shadow:var(--soft-shadow)!important;
}
.round-btn.active{
    background:#111827!important;
    color:#ffffff!important;
}
.bubble,.message.mine .bubble{
    background:#ffffff!important;
    color:#111827!important;
    border-color:rgba(17,24,39,.07)!important;
    box-shadow:0 10px 28px rgba(17,24,39,.055)!important;
}
.message.is-pinned .bubble{
    border-color:rgba(17,24,39,.16)!important;
}
.author,.status-pill,.pin-badge,.format-badge,.pin-chip-icon,.file-icon svg,.emoji-panel button,.reaction-pop button,.reaction-badge svg,.svg-token,.group-icon,.round-btn svg{
    color:#111827!important;
}
.status-pill{
    background:rgba(255,255,255,.82)!important;
    border-color:rgba(17,24,39,.08)!important;
}
.pulse{
    background:#111827!important;
    box-shadow:0 0 0 0 rgba(17,24,39,.22)!important;
}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(17,24,39,0)}}
.pin-badge,.format-badge,.reaction-badge,.message-actions button{
    background:rgba(17,24,39,.045)!important;
    color:#111827!important;
}
.reply-preview{
    background:rgba(17,24,39,.035)!important;
    border-right-color:rgba(17,24,39,.20)!important;
    color:#374151!important;
}
.code-block{
    background:#111827!important;
    color:#f9fafb!important;
}
.alert.danger,.notice.error{
    background:rgba(17,24,39,.045)!important;
    border-color:rgba(17,24,39,.10)!important;
    color:#111827!important;
}
.notice{
    background:rgba(17,24,39,.045)!important;
    border-color:rgba(17,24,39,.10)!important;
    color:#111827!important;
}
.users-table .danger-btn,.users-table .ok-btn{
    background:rgba(17,24,39,.055)!important;
    color:#111827!important;
}
.modal{
    background:rgba(255,255,255,.60)!important;
}

/* composer border + announcement */
.composer{
    border:2px solid rgba(17,24,39,.34)!important;
    box-shadow:0 12px 38px rgba(17,24,39,.075)!important;
}
.composer:focus-within{
    border-color:rgba(17,24,39,.58)!important;
    box-shadow:0 0 0 4px rgba(17,24,39,.055),0 14px 42px rgba(17,24,39,.08)!important;
}
#body{
    height:44px;
    min-height:44px;
    overflow-y:auto;
}
.announcement-bar{
    border-bottom:1px solid rgba(17,24,39,.08);
    background:rgba(255,255,255,.74);
    padding:10px 14px;
}
.announcement-box{
    display:flex;
    gap:10px;
    align-items:flex-start;
    border:1px solid rgba(17,24,39,.10);
    background:rgba(255,255,255,.88);
    border-radius:18px;
    padding:11px 13px;
    box-shadow:var(--soft-shadow);
}
.announcement-icon{
    width:34px;
    height:34px;
    border-radius:13px;
    display:grid;
    place-items:center;
    background:rgba(17,24,39,.045);
    color:#111827;
    flex:none;
}
.announcement-icon svg{width:20px;height:20px;fill:currentColor}
.announcement-box b{display:block;margin-bottom:4px;font-size:13px;color:#111827}
.announcement-box p{margin:0;color:#4b5563;font-size:13px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}
.announcement-form{
    display:grid;
    gap:10px;
    border:1px solid rgba(17,24,39,.08);
    border-radius:20px;
    padding:12px;
    margin-bottom:14px;
    background:rgba(255,255,255,.62);
}
.admin-section-title{font-weight:900;color:#111827;font-size:14px}
.announcement-form textarea{border:1px solid rgba(17,24,39,.08);background:rgba(255,255,255,.86);padding:12px 14px;min-height:92px;max-height:180px;color:#111827}
.check-row{display:flex;align-items:center;gap:8px;color:#4b5563;font-size:13px}.check-row input{width:auto;box-shadow:none}.announcement-actions{display:flex;gap:8px;flex-wrap:wrap}.announcement-actions .ghost-btn{padding:13px 18px}
.chat-shell{grid-template-rows:auto auto auto 1fr auto auto!important}

/* layout bug fix: chat as flex, composer never stretches */
.chat-shell{
    display:flex!important;
    flex-direction:column!important;
    min-height:0!important;
}
.chat-header,.announcement-bar,.pinned-bar,.reply-bar,.composer{
    flex:0 0 auto!important;
}
.messages{
    flex:1 1 auto!important;
    min-height:0!important;
    height:auto!important;
}
.composer{
    align-self:stretch!important;
    min-height:64px!important;
    max-height:190px!important;
}
.composer textarea,#body{
    height:44px!important;
    min-height:44px!important;
    max-height:148px!important;
    flex:1 1 auto!important;
}
.composer textarea:placeholder-shown,#body:placeholder-shown{
    height:44px!important;
}
