:root{--blue:#0878e3;--cyan:#17b5df;--green:#26b44b;--ink:#172033;--muted:#6f7d90;--card:rgba(255,255,255,.93);--line:#dce8f4;--bg:#eef7ff;--mine:#e7f9dd;--shadow:0 8px 28px rgba(32,95,145,.12)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:#fff}button,input,textarea,select{font:inherit}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(180deg,#eaf8ff,#fff)}.login-shell{width:min(94%,430px);padding:24px}.login-card{background:rgba(255,255,255,.97);border:1px solid #dcebf8;border-radius:30px;padding:28px;box-shadow:var(--shadow)}.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;color:#fff;font-weight:900;background:linear-gradient(145deg,var(--green),var(--blue))}.brand b{display:block;color:var(--blue);font-size:26px}.brand small{display:block;color:var(--blue)}.login-card h1{font-size:24px;margin:28px 0 5px}.login-card p{color:var(--muted);margin:0 0 22px}.login-card label{display:block;font-weight:700;margin-top:16px}.login-card input[type=text],.login-card input:not([type]){width:100%}.login-card input{margin-top:7px;padding:14px;border:1px solid #cddbeb;border-radius:14px}.hint{display:block;color:#718096;margin-top:5px}.photo-label{border:1px dashed #8dbce8;padding:16px;border-radius:16px;background:#f7fbff}.photo-label input{display:block;width:100%;padding:5px 0;border:0}.check{font-weight:500!important;display:flex!important;gap:8px;align-items:flex-start}.check input{margin-top:2px!important}.primary{border:0;border-radius:15px;padding:13px 20px;color:#fff;font-weight:800;background:linear-gradient(90deg,var(--green),var(--blue));cursor:pointer}.login-card .primary{width:100%;margin-top:20px}.form-msg{margin-top:12px;color:#c0392b}.app-page{background:#fff;overflow:hidden}.messenger{width:min(100%,560px);height:100dvh;margin:auto;background:var(--bg);display:flex;flex-direction:column;position:relative;overflow:hidden}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:rgba(255,255,255,.95);border-bottom:1px solid var(--line);z-index:3}.brand.mini .brand-mark{width:35px;height:35px;border-radius:11px}.brand.mini b{font-size:21px}.brand.mini small{font-size:11px}.top-actions{display:flex;gap:5px}.top-actions button,.top-actions a{width:40px;height:40px;border:0;background:transparent;border-radius:12px;display:grid;place-items:center;text-decoration:none;color:var(--ink);font-size:21px}.class-banner{margin:12px 16px 10px;min-height:94px;padding:16px;border-radius:23px;color:#fff;display:flex;align-items:center;gap:15px;background:linear-gradient(120deg,#077dea,#16c1d8);box-shadow:var(--shadow);position:relative;overflow:hidden}.class-banner:after{content:"";position:absolute;right:-20px;bottom:-16px;width:210px;height:80px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='250' height='80'%3E%3Cpath d='M0 35 Q35 5 70 35 T140 35 T210 35 T280 35' fill='none' stroke='%23ffffff' stroke-opacity='.45' stroke-width='4'/%3E%3Cpath d='M0 55 Q35 25 70 55 T140 55 T210 55 T280 55' fill='none' stroke='%23ffffff' stroke-opacity='.25' stroke-width='3'/%3E%3C/svg%3E") center/cover no-repeat}.class-icon{width:55px;height:55px;border-radius:16px;background:#fff;color:var(--blue);display:grid;place-items:center;font-size:31px;z-index:1}.class-banner h2{font-size:20px;margin:0 0 4px;position:relative;z-index:1}.class-banner span{position:relative;z-index:1}.tabs{display:flex;gap:7px;padding:0 16px 10px;overflow-x:auto}.tabs button{white-space:nowrap;border:1px solid #e2ebf4;background:#fff;border-radius:15px;padding:10px 13px;font-weight:700;box-shadow:0 3px 10px rgba(50,100,140,.06)}.tabs button.active{color:var(--blue);border-bottom:3px solid var(--blue)}.panel{flex:1;min-height:0;overflow:auto;padding:0 16px 112px}.hidden{display:none!important}.profile-strip{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:12px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow)}.profile-strip img,.participant img{width:58px;height:58px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 0 0 2px var(--green)}.profile-strip b{display:inline-block;margin-right:8px}.online{color:var(--green);font-size:13px}.music{font-size:13px;color:var(--blue);margin-top:4px}.profile-strip button{margin-left:auto;border:0;background:transparent;font-size:22px}.notice-card{display:flex;gap:12px;align-items:center;background:var(--card);padding:13px 15px;margin:12px 0;border-radius:18px;border:1px solid var(--line)}.notice-card b,.notice-card small{display:block}.notice-card small{color:var(--muted);margin-top:3px}.panel h3{font-size:14px;color:var(--blue)}.participants{background:var(--card);border:1px solid var(--line);border-radius:20px;overflow:hidden}.participant{display:flex;align-items:center;gap:12px;padding:11px 13px;border-bottom:1px solid #edf2f7;position:relative}.participant:last-child{border:0}.participant img{width:48px;height:48px}.participant .presence{width:12px;height:12px;border:2px solid white;border-radius:50%;position:absolute;left:49px;top:44px}.presence.on{background:#28bd45}.presence.off{background:#aab3bd}.participant b,.participant small,.participant em{display:block}.participant small{color:var(--green);font-size:12px}.participant small.away{color:#f0a100}.participant em{font-style:normal;color:var(--blue);font-size:12px;margin-top:3px}.chat-panel{padding:0 0 94px;display:flex;flex-direction:column;overflow:hidden}.messages{flex:1;overflow-y:auto;padding:8px 16px 110px;scroll-behavior:smooth}.msg{display:flex;gap:9px;align-items:flex-start;margin:15px 0;max-width:88%}.msg.mine{margin-left:auto;flex-direction:row-reverse}.msg>img{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 0 0 2px var(--blue)}.msg.mine>img{box-shadow:0 0 0 2px var(--green)}.msg>div{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:10px 12px;box-shadow:0 5px 14px rgba(36,93,130,.08)}.msg.mine>div{background:var(--mine)}.msg b{font-size:13px;color:var(--blue)}.msg.mine b{color:#26a33d}.msg p{margin:5px 0;line-height:1.4}.msg time{font-size:11px;color:var(--muted);display:block;text-align:right}.media-preview{display:block;max-width:100%;max-height:260px;border-radius:12px;margin-top:8px}.file-card{display:flex;align-items:center;gap:7px;text-decoration:none;color:var(--ink);padding:11px;margin-top:8px;border:1px solid #9dc9f1;border-radius:12px;background:#f3f9ff}.file-card span{margin-left:auto;color:var(--blue);font-size:11px}audio{max-width:260px}.typing{position:absolute;bottom:88px;left:18px;color:var(--green);font-size:12px}.composer{position:absolute;left:0;right:0;bottom:0;padding:10px max(10px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:rgba(255,255,255,.96);display:flex;align-items:center;gap:5px;border-top:1px solid var(--line);backdrop-filter:blur(12px)}.composer textarea{flex:1;min-width:0;border:1px solid #cbdceb;border-radius:22px;padding:10px 13px;resize:none;max-height:90px}.composer button{border:0;background:#fff;width:39px;height:39px;border-radius:50%;font-size:18px}.composer .buzz{width:auto;padding:0 12px;border-radius:18px;color:#fff;font-weight:800;background:linear-gradient(90deg,var(--green),var(--blue))}.composer .send{background:var(--blue);color:#fff}.files-list{display:grid;gap:9px}.files-list a{display:flex;justify-content:space-between;background:var(--card);padding:14px;border:1px solid var(--line);border-radius:15px;text-decoration:none;color:var(--ink)}.modal{position:fixed;inset:0;background:rgba(8,32,55,.45);display:grid;place-items:end center;z-index:20}.modal-card{width:min(100%,560px);background:white;border-radius:25px 25px 0 0;padding:23px;box-shadow:0 -15px 60px rgba(0,0,0,.2)}.modal-card h3{margin-top:0}.modal-card input,.modal-card select{width:100%;padding:12px;border:1px solid #ccd9e6;border-radius:12px;margin:6px 0}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.modal-actions button,.closeModal{padding:11px 15px;border:0;border-radius:12px}.theme-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:14px}.theme-grid button{padding:18px 10px;border:1px solid #d6e2ee;border-radius:15px;background:#f7fbff}.emoji-panel{position:fixed;left:12px;right:12px;bottom:85px;background:white;border-radius:17px;padding:15px;font-size:25px;line-height:1.7;box-shadow:0 12px 40px rgba(0,0,0,.2);z-index:10}.theme-beach{--bg:linear-gradient(180deg,#e8faff 0,#f8fdff 52%,#fff7e7 100%);--mine:#e8f9df}.theme-beach .messenger{background:linear-gradient(180deg,#eafcff 0,#f9feff 58%,#fff7e8 100%)}.theme-beach .class-banner{background:linear-gradient(120deg,#078ae8,#1fc7d0)}.theme-mountain .messenger{background:linear-gradient(#eef7fa,#eff6ef)}.theme-mountain .class-banner{background:linear-gradient(120deg,#296d8c,#4da15f)}.theme-river .messenger{background:linear-gradient(#e6f8ff,#f7fff9)}.theme-river .class-banner{background:linear-gradient(120deg,#057fb1,#2ebd8c)}.theme-space .messenger{background:linear-gradient(#101b3d,#1c2850);color:#f5f8ff}.theme-space{--card:rgba(255,255,255,.92);--bg:#101b3d}.theme-space .class-banner{background:linear-gradient(120deg,#2d3d90,#3267d4)}.theme-classic .messenger{background:#f6f9fd}.theme-classic .class-banner{background:linear-gradient(120deg,#0b73dc,#5cc3e7)}.buzzing .messenger{animation:buzz .09s linear 7}@keyframes buzz{0%{transform:translateX(-4px)}50%{transform:translateX(4px)}100%{transform:translateX(0)}}@media(min-width:700px){.app-page{background:#edf4fa}.messenger{box-shadow:0 0 60px rgba(30,70,110,.16)}}
.login-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:18px 0 10px}.login-tabs button{border:1px solid #d6e4f1;background:#f5f9fc;border-radius:13px;padding:11px;font-weight:800;color:#53657a}.login-tabs button.active{background:#e8f5ff;color:var(--blue);border-color:#8fc6f5;box-shadow:inset 0 -3px 0 var(--blue)}.more-menu{display:grid;gap:8px;margin:8px 0 16px}.more-menu button{border:1px solid #dce7f1;background:#f9fbfd;border-radius:14px;padding:14px;text-align:left;font-weight:800}.more-menu .danger-option{color:#bd2f2f;background:#fff7f7;border-color:#f2caca}
/* V1.0.3 chat UX */
.chat-context{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 16px 5px;background:rgba(255,255,255,.72);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.chat-context b,.chat-context small{display:block}.chat-context b{color:var(--blue)}.chat-context small{font-size:11px;color:var(--muted);margin-top:2px}.chat-context button{border:1px solid #cfe0ed;background:#fff;border-radius:12px;padding:8px 10px;color:var(--blue);font-weight:800}.participant.clickable{cursor:pointer;transition:.15s}.participant.clickable:hover{background:#f0f9ff}.participant i{display:block;font-style:normal;font-size:11px;color:#7e91a4;margin-top:3px}.private-icon{margin-left:auto;font-size:18px}.empty-chat{text-align:center;color:var(--muted);padding:38px 20px;font-size:13px}.composer{display:block;padding-top:8px}.composer-row{display:flex;align-items:center;gap:5px}.composer-row textarea{flex:1;min-width:0;border:1px solid #cbdceb;border-radius:22px;padding:10px 13px;resize:none;max-height:92px}.composer-row button{border:0;background:#fff;width:39px;height:39px;border-radius:50%;font-size:18px}.composer-row .buzz{width:auto;padding:0 12px;border-radius:18px;color:#fff;font-weight:800;background:linear-gradient(90deg,var(--green),var(--blue))}.composer-row .send{background:var(--blue);color:#fff}.send-hint{text-align:center;color:#72859a;font-size:10px;padding-top:5px}.pending-attachment{display:flex;align-items:center;gap:9px;margin:0 2px 7px;padding:8px 10px;border:1px solid #b9d8f1;border-radius:14px;background:#f5fbff}.pending-preview{width:44px;height:44px;border-radius:10px;background:#e8f4fd;display:grid;place-items:center;font-size:22px;overflow:hidden}.pending-preview img{width:100%;height:100%;object-fit:cover}.pending-attachment>div:nth-child(2){min-width:0;flex:1}.pending-attachment b,.pending-attachment small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pending-attachment small{font-size:10px;color:var(--muted);margin-top:2px}.pending-attachment>button{width:30px;height:30px;border:0;border-radius:50%;background:#edf3f8;color:#52677a;font-size:20px}.emoji-card{width:min(92%,410px);background:#fff;border-radius:22px;padding:16px;box-shadow:0 20px 70px rgba(0,0,0,.25);margin:auto}.emoji-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.emoji-head b,.emoji-head small{display:block}.emoji-head small{font-size:11px;color:var(--muted);margin-top:2px}.emoji-head button{width:34px;height:34px;border:0;border-radius:50%;background:#eff4f8;font-size:22px}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:5px;max-height:260px;overflow:auto}.emoji-grid button{border:0;background:#f7fafc;border-radius:10px;padding:7px 2px;font-size:23px}.emoji-grid button:hover{background:#e8f5ff}.modal#emojiModal{place-items:center}.typing{bottom:116px}.messages{padding-bottom:142px}.chat-panel{padding-bottom:116px}@media(max-width:420px){.composer-row .buzz{font-size:12px;padding:0 8px}.composer-row button{width:35px;height:35px}.emoji-grid{grid-template-columns:repeat(7,1fr)}}
/* V1.0.4 mobile composer, message actions, persistence UX */
body.app-page{opacity:.985;transition:opacity .18s ease}body.app-page.app-ready{opacity:1}.messenger:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:50;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.18) 50%,transparent 65%);transform:translateX(-130%);animation:initialSoftLoad .55s ease-out 1}@keyframes initialSoftLoad{to{transform:translateX(130%)}}
.participants-panel{padding-bottom:84px}.live-footer{position:sticky;bottom:0;margin:14px -4px 0;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;border:1px solid #cfe1ef;border-radius:15px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(235,246,253,.96));box-shadow:0 -5px 18px rgba(38,91,130,.08);backdrop-filter:blur(12px)}.live-footer>div:first-child{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center}.live-footer b{font-size:12px}.live-footer small{grid-column:2;color:#667b90;font-size:10px}.live-orb{grid-row:1/3;width:12px;height:12px;border-radius:50%;background:#27be49;box-shadow:0 0 0 3px rgba(39,190,73,.12),0 0 10px rgba(39,190,73,.35)}.live-footer-icons{display:flex;gap:10px;font-size:15px;opacity:.85}
.participant.clickable .participant-main,.participant.clickable img,.participant.clickable .private-icon{cursor:pointer}.private-icon{border:0;background:#eef7ff;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto}
.composer{padding:8px max(10px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));}.composer-input-row{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:8px;align-items:end}.composer-input-row textarea{width:100%;min-height:50px;max-height:130px;border:1px solid #bcd2e5;border-radius:18px;padding:12px 14px;resize:none;line-height:1.35;font-size:16px;background:#fff;box-shadow:inset 0 1px 2px rgba(20,60,90,.04)}.composer-input-row .send{width:46px;height:46px;border:0;border-radius:50%;background:var(--blue);color:#fff;font-size:20px;box-shadow:0 4px 12px rgba(8,120,227,.25)}.composer-tools{display:flex;align-items:center;gap:6px;margin-top:7px;min-width:0}.composer-tools>button{border:0;background:#fff;width:36px;height:36px;border-radius:50%;font-size:18px;flex:0 0 auto}.composer-tools .buzz{width:auto;padding:0 13px;border-radius:18px;color:#fff;font-weight:900;background:linear-gradient(90deg,var(--green),var(--blue));box-shadow:0 3px 10px rgba(25,150,120,.2)}.composer-tools .send-hint{margin-left:auto;text-align:right;color:#6e8195;font-size:9.5px;line-height:1.2;white-space:nowrap}.typing{bottom:132px}.messages{padding-bottom:160px}.chat-panel{padding-bottom:132px}
.reply-preview{display:flex;align-items:center;gap:8px;margin:0 0 7px;padding:8px 10px;border-left:4px solid var(--blue);border-radius:11px;background:#f2f8fd}.reply-preview>div{min-width:0;flex:1}.reply-preview b,.reply-preview small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-preview b{font-size:11px;color:var(--blue)}.reply-preview small{font-size:10px;color:#60758a}.reply-preview button{width:28px;height:28px;border:0;border-radius:50%;background:#e5edf4;font-size:18px}.quoted-reply{margin:6px 0 7px;padding:7px 9px;border-left:3px solid #6db4ea;border-radius:8px;background:rgba(230,243,253,.72)}.quoted-reply b,.quoted-reply span{display:block;font-size:10px}.quoted-reply span{color:#5f7285;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.forwarded-label,.edited-label{font-size:9.5px;color:#7b8ca0}.deleted-message{display:block;color:#8493a2;font-size:12px;padding:6px 0}.msg-bubble{position:relative;min-width:150px}.msg-head{display:flex;align-items:center;gap:8px}.msg-head>b{flex:1}.msg-menu-btn{width:27px;height:27px;border:0;border-radius:50%;background:transparent;color:#617488;font-size:19px;line-height:1}.msg-menu-btn:hover{background:rgba(120,155,185,.12)}.msg-meta{display:flex;justify-content:flex-end;align-items:center;gap:6px;margin-top:4px}.msg-meta time{margin:0}.message-menu{position:fixed;z-index:80;width:170px;padding:6px;background:#fff;border:1px solid #d8e4ee;border-radius:14px;box-shadow:0 16px 45px rgba(12,40,65,.24)}.message-menu button{width:100%;border:0;background:transparent;text-align:left;padding:10px;border-radius:9px;font-weight:700;color:#233348}.message-menu button:hover{background:#eef7ff}.message-menu .danger-option{color:#b52b2b}.compact-modal textarea{width:100%;border:1px solid #c9d9e7;border-radius:12px;padding:11px;resize:vertical}.modal-note{font-size:12px;color:#6d8093}.forward-targets{display:grid;gap:7px;max-height:330px;overflow:auto;margin-bottom:12px}.forward-targets button{display:flex;align-items:center;gap:10px;border:1px solid #dce8f2;background:#f9fcfe;border-radius:13px;padding:10px;text-align:left}.forward-targets img{width:38px;height:38px;border-radius:50%;object-fit:cover}.forward-targets b,.forward-targets small{display:block}.forward-targets small{font-size:10px;color:#718398}
.buzzing .messenger{animation:buzzStrong .085s linear 12,flashBuzz .17s ease-in-out 4}@keyframes buzzStrong{0%{transform:translate(-7px,-2px) rotate(-.25deg)}25%{transform:translate(7px,2px) rotate(.25deg)}50%{transform:translate(-5px,1px) rotate(-.2deg)}75%{transform:translate(6px,-1px) rotate(.2deg)}100%{transform:translate(0,0)}}@keyframes flashBuzz{0%,100%{filter:none}50%{filter:brightness(1.08) saturate(1.12)}}
@media(max-width:420px){.class-banner h2{font-size:18px}.composer-tools{gap:4px}.composer-tools>button{width:33px;height:33px;font-size:17px}.composer-tools .buzz{padding:0 10px;font-size:12px}.composer-tools .send-hint{font-size:8.5px}.msg{max-width:94%}.msg>img{width:36px;height:36px}.msg-bubble{min-width:130px}.typing{bottom:138px}}
@media(max-width:360px){.composer-tools .send-hint{display:none}.composer-tools{justify-content:space-between}.composer-tools .buzz{margin-left:auto}}
.remember-check{margin-top:13px!important;font-weight:600!important;font-size:13px;color:#54687b}.resume-check body{visibility:hidden}
/* V1.0.5 professor access + real private chat + classic footer placement */
.login-tabs.three{grid-template-columns:1fr 1fr 1fr}.teacher-login-note{margin:12px 0 6px;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#edf9ff,#f4fff5);border:1px solid #cde5f2}.teacher-login-note b,.teacher-login-note small{display:block}.teacher-login-note small{margin-top:4px;color:#63778b;line-height:1.35}
.participants-panel{display:flex;flex-direction:column;padding-bottom:92px!important}.participants-panel .participants{flex:0 0 auto}.live-footer{position:absolute;left:0;right:0;bottom:0;z-index:12;margin:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));min-height:68px;border-radius:0;border-left:0;border-right:0;border-bottom:0;border-top:1px solid #d6e6f3;background:linear-gradient(180deg,rgba(255,255,255,.985),rgba(228,244,254,.985));box-shadow:0 -8px 22px rgba(37,88,126,.10);backdrop-filter:blur(12px)}.live-footer-icons{align-items:center}.online-count{font-size:10px;color:#5f7589;white-space:nowrap}.participant.clickable{touch-action:manipulation}.participant.clickable:active{background:#e7f5ff;transform:scale(.995)}
@media(max-width:420px){.login-tabs.three{grid-template-columns:1fr}.login-tabs.three button{padding:10px}.participants-panel{padding-bottom:96px!important}.live-footer{min-height:72px;padding-left:12px;padding-right:12px}}

/* V1.0.6: footer pinned to true app bottom; never overlays participants */
.participants-panel:not(.hidden){padding-bottom:96px!important}.participants-panel .participants{margin-bottom:8px}.live-footer>div:first-child{min-width:0}.live-footer b{display:block;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-footer small{display:block}.live-footer-icons{display:flex;gap:8px;flex-shrink:0}


/* V1.0.7 Android visual viewport + bottom bars */
:root{--app-height:100dvh}
.messenger{height:var(--app-height,100dvh)!important;max-height:var(--app-height,100dvh)!important}
.participants-panel:not(.hidden){position:relative;padding-bottom:92px!important}
.live-footer{position:absolute!important;left:0!important;right:0!important;bottom:0!important;z-index:14!important;margin:0!important}
.chat-panel:not(.hidden){position:relative;padding-bottom:0!important;overflow:hidden!important}
.chat-panel .messages{padding-bottom:10px!important}
.composer{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;flex:0 0 auto!important;width:100%;padding:9px max(10px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))!important;z-index:16}
.typing{position:relative!important;left:auto!important;bottom:auto!important;min-height:18px;padding:0 16px 3px;flex:0 0 auto}
.composer-tools{display:flex!important;flex-wrap:wrap;row-gap:6px}
.composer-tools .send-hint{flex:1 1 150px;min-width:120px}
@media(max-width:520px){.composer-input-row textarea{min-height:58px;font-size:16px}.composer-tools{justify-content:flex-start}.composer-tools .send-hint{order:2;flex-basis:100%;text-align:left;margin-left:2px}.live-footer{padding-bottom:calc(10px + env(safe-area-inset-bottom))!important}}
@media(max-height:700px){.topbar{height:64px}.class-banner{min-height:76px;margin-top:8px;margin-bottom:7px;padding:12px}.class-icon{width:46px;height:46px}.class-banner h2{font-size:17px}.tabs{padding-bottom:6px}.composer-input-row textarea{min-height:50px}}
