:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#233b35;background:#f6f8f6}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer;border:0;background:none;color:inherit}button:disabled{opacity:.5;cursor:not-allowed}input,textarea{outline:none}input:focus,textarea:focus{border-color:#298673!important}button:focus-visible{outline:2px solid #298673;outline-offset:3px}[hidden]{display:none!important}.primary{background:#287f6f;color:white;border-radius:8px;padding:11px 20px;font-weight:600;font-size:13px}.primary:hover{background:#216d60}.wide{width:100%;margin-top:10px}.secondary{border:1px solid #dbe6de;border-radius:8px;padding:10px 18px}.brand-icon{width:42px;height:42px;background:#3e9683;color:white;border-radius:12px;display:grid;place-items:center;font-size:22px;font-weight:700}.auth{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.auth-brand{background:#173c34;color:white;padding:60px 9%;display:flex;flex-direction:column;justify-content:center}.brand{display:flex;align-items:center;gap:14px;font-size:25px;font-weight:650;margin-bottom:80px}.auth-brand h1{font-size:clamp(36px,4.4vw,66px);font-weight:600;line-height:1.35;letter-spacing:-2px}.auth-brand em{font-style:normal;color:#abd0b8}.auth-brand p{color:#b0c8bd;font-size:15px}.auth-feature{margin-top:90px;color:#83ab9d;font-size:12px}.auth-card{background:white;display:flex;justify-content:center;flex-direction:column;padding:10% 18%}.eyebrow{font-size:11px;letter-spacing:2px;color:#58a08f}.auth-card h2{font-size:30px;margin:13px 0 0}.auth-card>p{color:#819389;font-size:13px;margin:10px 0 35px}.auth-card label,dialog label{display:block;font-size:12px;font-weight:600;margin-bottom:20px}.auth-card input,dialog input:not([type=checkbox]):not([type=radio]){width:100%;border:1px solid #dce6df;border-radius:8px;padding:12px;margin-top:9px;color:#233b35;background:white}.text-button{font-size:12px;color:#287f6f;margin-top:14px}.auth-note{font-size:11px;line-height:1.7;color:#9caaa0;background:#f2f7f3;padding:15px;margin-top:25px;border-radius:8px}.error{color:#b35353;font-size:12px;min-height:18px}.rail{position:fixed;inset:0 auto 0 0;width:78px;background:#173c34;display:flex;align-items:center;flex-direction:column;gap:13px;padding:20px 0}.rail .brand-icon{margin-bottom:25px}.rail-btn{width:58px;padding:12px 4px;border-radius:10px;color:#b0c8bc;font-size:22px}.rail-btn span{display:block;font-size:10px;margin-top:6px}.rail-btn.active{background:#355e51;color:white}.rail-btn.logout{margin-top:auto}.shell{margin-left:78px}.top{height:68px;background:white;border-bottom:1px solid #e6ede8;display:flex;align-items:center;justify-content:space-between;padding:0 28px}.top strong{font-size:19px}.top small{font-size:11px;color:#97a79d;font-weight:400}.top>span{font-size:12px;color:#738c7c}.chat-screen{display:grid;grid-template-columns:300px minmax(0,1fr);height:calc(100dvh - 68px)}.rooms{background:#fbfcfb;border-right:1px solid #e7eee9;padding:22px 12px;overflow:auto}.panel-title{display:flex;align-items:center;justify-content:space-between;padding:0 8px 15px}.panel-title h2{font-size:21px}.square{width:32px;height:32px;background:#e8f1ea;color:#287f6f;border-radius:7px;font-size:23px}.room-item{display:flex;width:100%;text-align:left;align-items:center;gap:12px;padding:12px;border-radius:9px;margin:4px 0}.room-item:hover,.room-item.selected{background:#e7f0e9}.avatar{flex:none;width:40px;height:40px;border-radius:11px;background:#dce8df;display:grid;place-items:center;color:#427765;font-weight:600}.avatar.group{background:#cde5da}.room-item .copy{min-width:0;flex:1}.room-item strong{font-size:13px}.room-item p{font-size:10px;color:#91a197;margin:7px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-item time{font-size:10px;color:#9ba99f;align-self:flex-start}.conversation{display:flex;flex-direction:column;min-width:0}.conversation-header{height:78px;border-bottom:1px solid #e7eee9;background:white;padding:17px 28px;display:flex;align-items:center;gap:10px}.conversation-header h2{font-size:16px;margin:0 0 5px}.conversation-header p{margin:0;color:#93a49a;font-size:11px}.message-list{flex:1;overflow:auto;padding:26px 35px}.empty{text-align:center;color:#a0afa4;padding:35px;font-size:13px}.message{display:flex;gap:9px;margin:0 0 22px}.message.mine{flex-direction:row-reverse}.message .avatar{width:31px;height:31px;font-size:12px}.message-body{max-width:min(650px,80%)}.message-label{font-size:10px;color:#8b9f90;margin-bottom:7px}.mine .message-label{text-align:right}.bubble{white-space:pre-wrap;overflow-wrap:anywhere;background:white;border:1px solid #e0e9e2;border-radius:2px 11px 11px 11px;padding:11px 14px;font-size:13px;line-height:1.65}.mine .bubble{background:#dcece2;border-color:#d1e4d8;border-radius:11px 2px 11px 11px}.composer{background:white;border-top:1px solid #e7eee9;padding:14px 25px}.composer textarea{width:100%;resize:none;border:0;line-height:1.6;font-size:13px}.composer>div{display:flex;justify-content:space-between;align-items:center}.composer span{font-size:10px;color:#a4b0a6}.screen{padding:35px;max-width:1200px;margin:auto}.screen-heading h1{font-size:26px;margin:0 0 8px}.screen-heading p{font-size:12px;color:#92a198;margin:0 0 30px}.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.person,.admin-row{background:white;border:1px solid #e1e9e2;border-radius:11px;padding:20px}.person h3{font-size:15px;margin:15px 0 5px}.person p{font-size:11px;color:#91a096;overflow-wrap:anywhere}.person button{color:#287f6f;font-size:12px;margin-top:9px}.admin-row{display:flex;align-items:center;gap:14px;margin-bottom:9px}.admin-row .meta{flex:1;min-width:0}.admin-row strong{font-size:13px}.admin-row p{font-size:11px;color:#8b9a8f;margin:5px 0 0;overflow-wrap:anywhere}.tag{font-size:10px;color:#49856b;background:#edf5ee;border-radius:5px;padding:5px 8px}.admin-row button{font-size:12px;color:#287f6f}.admin-row .danger{color:#b25d5d}dialog{border:1px solid #e2ebe3;border-radius:14px;box-shadow:0 20px 80px #173c3450;width:440px;max-width:calc(100vw - 32px);padding:25px;color:#233b35}dialog::backdrop{background:#14362966}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog-head h2{font-size:20px}.dialog-head button{font-size:24px}.switcher{display:flex;background:#f0f5f0;border-radius:7px;padding:4px;margin:15px 0}.switcher button{flex:1;padding:8px;font-size:12px;color:#7d9182}.switcher .selected{background:white;color:#287f6f;border-radius:5px}.member-choice{display:flex;gap:10px;align-items:center;padding:10px;border-bottom:1px solid #eef2ee;font-size:12px}.member-choice input{accent-color:#287f6f}.member-choice small{margin-left:auto;color:#9baa9e}#roomChoices{max-height:260px;overflow:auto}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}#toast{display:none;position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#234d3d;color:white;padding:12px 20px;border-radius:8px;font-size:12px;z-index:10}.mobile-back{display:none}@media(max-width:800px){.auth{grid-template-columns:1fr}.auth-brand{display:none}.auth-card{min-height:100dvh;padding:32px 10%}.chat-screen{grid-template-columns:220px minmax(0,1fr)}.people-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.rail{width:57px}.rail .brand-icon{width:35px;height:35px}.rail-btn{width:48px;font-size:19px}.shell{margin-left:57px}.top{height:58px;padding:0 13px}.top strong{font-size:16px}.top small{display:none}.top>span{font-size:10px}.chat-screen{grid-template-columns:1fr;height:calc(100dvh - 58px)}.rooms{border:0}.conversation{display:none}.chat-screen.open .rooms{display:none}.chat-screen.open .conversation{display:flex}.mobile-back{display:block;font-size:30px;color:#287f6f;padding:0 8px 0 0}.conversation-header{padding:13px}.message-list{padding:18px 13px}.composer{padding:12px}.composer span{font-size:8px}.screen{padding:24px 14px}.people-grid{grid-template-columns:1fr}.admin-row{flex-wrap:wrap}.admin-row .meta{flex-basis:65%}}
/* Login persistence and account actions */
.auth-card .remember-row{display:flex;align-items:center;gap:9px;margin:-3px 0 16px;font-size:12px;font-weight:400;color:#637b6e;cursor:pointer}
.remember-row input{width:16px;height:16px;margin:0;accent-color:#287f6f}
.account{position:relative}
.account-trigger{font-size:12px;color:#527264;padding:10px 8px;border-radius:8px;max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-trigger:hover,.account-trigger:focus-visible{background:#eef5ef}
.account-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:132px;background:white;border:1px solid #dce6df;border-radius:9px;box-shadow:0 10px 25px #173c3426;padding:5px;z-index:5}
.account-menu button{width:100%;padding:10px 12px;text-align:left;border-radius:6px;font-size:12px;color:#934f4f}
.account-menu button:hover{background:#f8eeee}
/* Message tools */
.composer{position:relative}
.composer-actions{gap:12px}
.composer-tools{display:flex;align-items:center;gap:7px;min-width:0;position:relative}
.composer .tool-button{flex:none;width:34px;height:34px;border-radius:8px;background:#eef5ef;color:#287f6f;font-size:19px;line-height:1}
.composer .tool-button:hover:not(:disabled){background:#dcece2}
.composer .composer-hint{margin-left:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.emoji-picker{position:absolute;bottom:44px;left:0;display:grid;grid-template-columns:repeat(6,38px);gap:3px;background:#fff;border:1px solid #dce6df;box-shadow:0 12px 32px #173c342a;border-radius:11px;padding:8px;z-index:7}
.emoji-picker button{height:38px;border-radius:7px;font-size:23px}
.emoji-picker button:hover{background:#eef5ef}
.pending-file{background:#eef5ef;border:1px solid #d5e7d9;border-radius:8px;margin:8px 0;padding:8px 10px;gap:10px;min-width:0;font-size:12px;color:#386a56}
.pending-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.pending-file button{flex:none;font-size:12px;color:#a05858}
.file-card{display:flex;align-items:center;gap:10px;max-width:300px;background:#fff;border:1px solid #d9e8dc;border-radius:10px;padding:10px 12px;color:#287f6f;text-decoration:none}
.mine .file-card{background:#dcece2}
.file-card:hover{border-color:#72ab89}
.file-card .file-icon{font-size:24px}
.file-card .file-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.file-card strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-card small{font-size:10px;color:#799787}
@media(max-width:600px){.composer .composer-hint{display:none}.emoji-picker{grid-template-columns:repeat(6,34px)}.emoji-picker button{height:34px}.file-card{max-width:min(280px,72vw)}}
/* Incoming message alerts */
.top-actions{display:flex;align-items:center;gap:12px}
.notice-toggle{display:flex;align-items:center;gap:5px;padding:8px 10px;border-radius:8px;background:#eef5ef;color:#287f6f;font-size:12px;white-space:nowrap}
.notice-toggle:hover{background:#dcece2}
.notice-toggle.enabled{background:#e3f2e8}
.notice-stack{position:fixed;right:20px;top:78px;z-index:20;display:flex;flex-direction:column;gap:10px;width:min(350px,calc(100vw - 32px));pointer-events:none}
.incoming-notice{pointer-events:auto;width:100%;background:#fff;border:1px solid #d0e3d6;border-left:4px solid #3e9683;border-radius:10px;box-shadow:0 12px 34px #173c3430;padding:13px 15px;text-align:left;display:flex;flex-direction:column;gap:5px}
.incoming-notice:hover{background:#f5faf6}
.incoming-notice strong{font-size:13px;color:#234d3d}
.incoming-notice span{font-size:12px;color:#657c6f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.incoming-notice small{font-size:10px;color:#8a9c90}
@media(max-width:600px){.top-actions{gap:3px}.notice-toggle{font-size:16px;padding:7px}.notice-toggle span{display:none}.notice-stack{top:66px;right:8px;width:min(320px,calc(100vw - 16px))}}
