.member-avatar{object-fit:cover}
html,body{height:100%;overflow:hidden}.shell{height:100dvh;overflow:hidden}.shell main{position:relative;height:100dvh;min-height:0;overflow:hidden;grid-template-rows:72px minmax(0,1fr) 86px}#messages{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}main header{position:relative;z-index:20}main footer{position:relative;z-index:20;min-height:86px}
#messages{background-color:#e4eee8;background-image:radial-gradient(circle at 18px 20px,#86aa9624 2px,transparent 2.5px),radial-gradient(circle at 70px 62px,#ffffff99 1.5px,transparent 2px),linear-gradient(135deg,#eaf3ed,#dce9e3);background-size:92px 92px,92px 92px,100% 100%}
.msg{position:relative;margin:10px 0!important;padding-left:48px;max-width:min(620px,75%)!important;text-align:left!important}
.msg.mine{margin-left:auto!important;padding-left:0;padding-right:0;text-align:right!important}
.msg.joined{margin-top:3px!important}
.msg .bubble{min-width:112px;border-radius:8px 16px 16px 16px;padding:8px 12px 7px;box-shadow:0 1px 2px #23352b20}
.msg.mine .bubble{background:#e3ffc7;color:#142117;border:1px solid #c8e9ad;border-radius:16px 8px 16px 16px;text-align:left}
.msg.joined .bubble{border-radius:16px}
.sender-name{font-size:13px;font-weight:800;line-height:1.25;margin-bottom:4px}
.message-content{font-size:16px;line-height:1.5;overflow-wrap:anywhere}
.msg-time{font-size:10px;color:#8792a2;text-align:right;margin-top:4px;white-space:nowrap}
.mine .msg-time{color:#619b43}
.mine .receipt{color:#286f2b!important;font-size:12px;font-weight:700}.mine .receipt summary{color:#286f2b!important;text-shadow:none}.mine .receipt-body{background:#d2efbd!important;color:#183d19!important;font-weight:600}
.msg-avatar{bottom:0}
.paste-preview{max-height:126px;overflow-x:auto}.paste-thumbs{display:flex;gap:8px;flex:none}.paste-thumb{position:relative;width:72px;height:72px;flex:none}.paste-thumb img{width:72px!important;height:72px!important;border-radius:9px;object-fit:cover}.paste-thumb button{position:absolute;right:-5px;top:-6px;width:22px;height:22px;border:0;border-radius:50%;background:#dc3545;color:#fff;font-size:16px;line-height:20px}.paste-info{min-width:190px}.paste-info small{display:block;color:var(--muted)}#removePaste{white-space:nowrap!important;font-size:12px!important;background:#eef1f7!important;border-radius:8px!important;padding:7px 10px!important}
.reply-action{position:absolute;top:5px;right:6px;border:0;background:transparent;color:#64748b;opacity:0;font-size:17px}.bubble:hover .reply-action{opacity:1}.reply-quote{display:block;width:100%;border:0;border-left:3px solid #3b82f6;background:#edf6ff;color:#334155;text-align:left;border-radius:5px;padding:5px 8px;margin:2px 0 7px}.reply-quote b,.reply-quote span{display:block}.reply-quote span{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-compose{position:absolute;z-index:12;left:282px;right:22px;bottom:86px;background:#fff;border-left:4px solid #3b82f6;padding:8px 42px 8px 12px;box-shadow:0 -4px 18px #0001}.reply-compose b,.reply-compose small{display:block}.reply-compose small{color:#718096;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-compose button{position:absolute;right:12px;top:9px;border:0;background:none;font-size:22px}.mention{background:#dbeafe;color:#1d4ed8;border-radius:4px;padding:0 2px}.mention-box{position:fixed;z-index:120;left:290px;bottom:82px;width:260px;max-height:280px;overflow:auto;background:#fff;border:1px solid #dfe5ee;border-radius:12px;box-shadow:0 12px 35px #17203330;padding:6px}.mention-box button{width:100%;border:0;background:#fff;display:flex;align-items:center;gap:9px;padding:8px;border-radius:8px;text-align:left}.mention-box button:hover{background:#edf3ff}.mention-box .member-avatar{width:30px;height:30px}.new-message-toast{position:fixed;z-index:150;right:24px;top:84px;background:#172033;color:#fff;border-radius:10px;padding:11px 16px;box-shadow:0 8px 26px #0004;font-weight:700}.group.has-unread{font-weight:800}.group.new-flash{animation:newFlash .65s ease 4}@keyframes newFlash{50%{background:#f59e0b;color:#fff}}.message-focus .bubble{outline:3px solid #fbbf24;transition:outline .3s}
.date-divider{position:sticky;top:6px;z-index:10;display:flex;justify-content:center;clear:both;margin:12px 0}.date-divider span{background:#748b83d9;color:#fff;border-radius:999px;padding:5px 13px;font-size:12px;font-weight:700;box-shadow:0 2px 8px #1f302a30;backdrop-filter:blur(5px)}
.msg .bubble{position:relative}.reply-action{top:50%!important;right:-54px!important;transform:translateY(-50%);background:#ffffffea!important;color:#475569!important;font-size:0!important;font-weight:700;padding:6px 9px;border-radius:8px;box-shadow:0 2px 9px #17203320;white-space:nowrap}.reply-action:after{content:'回复';font-size:12px}.mine .reply-action{right:auto!important;left:-54px!important}
.jump-bottom{position:absolute;z-index:35;right:26px;bottom:104px;width:48px;height:48px;border:1px solid #d9e0e8;border-radius:50%;background:#fff;color:#64748b;font-size:28px;line-height:42px;box-shadow:0 5px 18px #17203335}.jump-bottom:hover{background:#f8fafc;color:#2563eb}.jump-bottom[hidden]{display:none}
.group[hidden],.group-section[hidden],#noGroups[hidden]{display:none!important}
.captcha-row{display:grid;grid-template-columns:1fr 120px;gap:8px;align-items:center}.captcha-row img{width:120px;height:42px;border:1px solid var(--line);border-radius:9px;cursor:pointer}.totp-card{width:min(460px,calc(100vw - 28px));text-align:left}.totp-card h1,.totp-card>p{text-align:center}.totp-info{display:grid;gap:6px;margin:16px 0;padding:14px;background:#f6f8fc;border-radius:10px}.totp-info code{padding:8px;background:#fff;border:1px solid var(--line);border-radius:7px;word-break:break-all}.totp-info .secret{font-size:17px;letter-spacing:2px;font-weight:700}.totp-card details{margin-top:14px;color:var(--muted)}.totp-card textarea{width:100%;margin-top:8px}
@media(max-width:760px){
html,body{width:100%;height:100%;overflow:hidden}.shell{display:block;height:100dvh}.shell>aside{position:fixed!important;z-index:80;left:-310px;top:0;width:min(86vw,300px);height:100dvh!important;transition:left .22s ease;box-shadow:12px 0 30px #0003;padding:18px 14px}.shell.menu-open>aside{left:0}.shell.menu-open:after{content:'';position:fixed;z-index:70;inset:0;background:#11182780}.shell main{height:100dvh;grid-template-rows:64px minmax(0,1fr) 76px}.shell main header{padding:8px 10px;gap:8px}.shell main header>div:first-of-type{min-width:0;flex:1}.shell main h2{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell main header small{font-size:11px}.header-actions{gap:5px!important}.header-actions button{padding:7px 8px!important;font-size:12px}.message-search{width:108px!important;padding:7px!important;font-size:12px}#mobileMenu{display:grid;place-items:center;flex:none;width:38px;height:38px;border:0;border-radius:9px;background:#3157d5;color:#fff;font-size:22px}.shell main footer{padding:9px 8px;gap:6px}.shell main footer button{padding:0 13px}.shell main footer textarea{min-width:0;padding:8px;font-size:16px}#messages{padding:12px 10px}.msg{max-width:90%}.bubble{max-width:100%}.bubble img,.bubble video{max-width:76vw;max-height:54vh}.paste-preview{left:8px!important;right:8px!important;bottom:76px!important;padding:8px!important}.member-card{width:88vw!important;padding:16px!important}.lightbox{padding:15px!important}.logo{padding-bottom:12px}.me{padding:11px}
.login-card{width:calc(100vw - 28px);padding:28px 20px}.admin{height:auto;overflow:auto}.admin nav{height:56px;padding:0 14px;position:sticky;top:0;z-index:50}.admin-layout{display:block!important}.admin .admin-menu{position:sticky!important;top:56px!important;z-index:45;height:auto!important;display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;padding:8px!important;white-space:nowrap}.admin .admin-menu h3{display:none}.admin .admin-menu button,.admin .admin-menu a{flex:0 0 auto;width:auto!important;margin:0 3px!important;padding:9px 12px!important}.admin .admin-content{width:auto!important;margin:8px!important}.admin section{padding:14px!important;margin:10px 0!important;border-radius:10px}.admin section h2{font-size:19px}.admin section>table{display:block;overflow-x:auto;white-space:nowrap}.admin [data-section="accounts"] table,.admin [data-section="mapping"] table{min-width:820px}.admin .inline{display:block!important}.table-tools{grid-template-columns:1fr 1fr!important;gap:7px!important}.table-tools input{grid-column:1/-1}.table-tools .pager-info{grid-column:1/-1}.admin input,.admin textarea{font-size:16px}}
@media(min-width:761px){#mobileMenu{display:none}}
