:root{font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#181818;background:#eeeeed;font-size:14px;--green:#07c160;--line:#e3e3e3;--muted:#777}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0}
button,input,textarea{font:inherit;color:inherit}
button{border:0;cursor:pointer;background:none}
button:disabled{cursor:default;opacity:.5}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #039c4b;outline-offset:2px}
#workspace{display:grid;grid-template-columns:62px 294px minmax(0,1fr);height:100vh;height:100dvh;overflow:hidden}
.rail{display:flex;align-items:center;flex-direction:column;gap:18px;padding:20px 0 14px;background:#242624;color:#c8cac8}
.rail-space{flex:1}
.rail-button{color:inherit;width:48px;height:40px;display:grid;place-items:center}
.rail-button.selected{color:#07ce67}
.rail-button:hover{background:#3b403b;border-radius:5px}
.avatar{position:relative;width:39px;height:39px;flex:none;display:grid;place-items:center;border-radius:5px;background:#d9eadb;color:#316442;font-weight:600;overflow:hidden}
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rail .avatar{width:36px;height:36px;background:#b9d9bc}
.chat-icon{display:block;position:relative;width:22px;height:16px;border:2px solid currentColor;border-radius:8px}
.chat-icon::after{content:"";position:absolute;left:3px;bottom:-4px;width:5px;height:5px;background:currentColor;clip-path:polygon(0 0,100% 0,0 100%)}
.person-icon{width:20px;height:10px;border:2px solid currentColor;border-radius:9px 9px 3px 3px;position:relative;margin-top:9px}
.person-icon::before{content:"";position:absolute;width:7px;height:7px;border:2px solid currentColor;top:-12px;left:4px;border-radius:50%}
.exit-icon{font-size:25px;line-height:1}
.sidebar{background:#efefee;border-right:1px solid #dedede;display:flex;min-height:0;flex-direction:column}
.sidebar-top{display:flex;justify-content:space-between;align-items:center;padding:21px 16px 12px}
h1,h2,p{margin:0}
.sidebar-top h1{font-size:17px;font-weight:650}
.connection{font-size:11px;color:#777;display:flex;align-items:center;gap:5px;white-space:nowrap}
.connection::before{content:"";width:6px;height:6px;border-radius:50%;background:#9a9a9a}
.connection.online::before{background:var(--green)}
.search-bar{display:flex;gap:8px;padding:0 12px 13px}
.search-wrap{display:flex;align-items:center;gap:9px;min-width:0;flex:1;background:#e4e4e3;border-radius:5px;padding:0 10px}
.search-icon{width:11px;height:11px;border:1.4px solid #717171;position:relative;border-radius:50%;flex:none}
.search-icon::after{content:"";position:absolute;bottom:-3px;right:-4px;width:5px;border-top:1.4px solid #717171;transform:rotate(45deg)}
.search-wrap input{border:0;background:none;width:100%;height:31px;min-width:0}
#filehelper{background:#e4e4e3;border-radius:5px;width:32px;height:31px;font-size:20px;line-height:1}
#threads{overflow:auto;flex:1}
.thread{display:grid;grid-template-columns:39px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;width:100%;min-height:64px;padding:9px 12px}
.thread:hover{background:#e5e5e4}
.thread.active{background:#d9d9d8}
.thread.pinned:not(.active){background:#e9e9e8}
.thread-copy{display:flex;flex-direction:column;gap:5px;min-width:0}
.thread-name,.thread-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thread-preview,.thread-time{font-size:12px;color:#747474}
.thread-meta{display:flex;align-self:stretch;align-items:flex-end;flex-direction:column;justify-content:space-around;min-width:18px}
.badge{color:white;background:#f45150;border-radius:12px;font-size:10px;min-width:16px;padding:1px 4px;text-align:center}
#conversation,#chat{min-width:0;min-height:0;height:100%;background:#f5f5f5}
#chat{display:grid;grid-template-rows:58px minmax(0,1fr) auto}
.empty{display:grid;place-content:center;justify-items:center;height:100%;gap:20px;color:#888}
.empty-logo{transform:scale(2.8);color:#bbb;margin:10px 0}
.chat-header{display:flex;align-items:center;padding:0 22px;border-bottom:1px solid var(--line);gap:12px}
.chat-header h2{font-size:17px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
#refresh,#back{font-size:24px;color:#666;padding:4px 8px;border-radius:4px}
#refresh:hover,#back:hover{background:#e8e8e8}
#back{display:none}
.history{overflow:auto;padding:15px 24px 24px;overscroll-behavior:contain}
#messages{display:flex;flex-direction:column;gap:14px}
#older,.more{display:block;margin:4px auto 14px;font-size:12px;color:#646464;padding:7px 12px}
.time-line,.system-message{color:#767676;text-align:center;font-size:12px;margin:8px 0 0}
.message{display:flex;align-items:flex-start;gap:11px}
.message.outgoing{flex-direction:row-reverse}
.message-body{display:flex;flex-direction:column;align-items:flex-start;min-width:0;max-width:min(77%,660px)}
.outgoing .message-body{align-items:flex-end}
.sender{color:#6e6e6e;font-size:11px;margin:0 0 4px}
.bubble{position:relative;background:#fff;border-radius:5px;padding:10px 13px;line-height:1.53;white-space:pre-wrap;overflow-wrap:anywhere;min-height:38px}
.bubble::before{content:"";position:absolute;left:-5px;top:14px;width:10px;height:10px;transform:rotate(45deg);background:inherit;border-radius:2px}
.outgoing .bubble:not(.file-card){background:#95ec69}
.outgoing .bubble::before{left:auto;right:-5px}
.voice{display:flex;align-items:center;gap:9px;min-width:115px;justify-content:flex-start}
.voice-symbol{font-size:17px;line-height:1}
.voice.playing .voice-symbol{animation:sound .8s infinite alternate}
@keyframes sound{to{opacity:.35}}
.voice-duration,.attachment-sub{font-size:12px;color:#656565}
.file-card{display:flex;align-items:center;gap:14px;width:min(278px,100%);text-align:left;text-decoration:none;color:inherit}
.file-card>span:first-child{min-width:0;flex:1;display:grid;gap:4px}
.file-name{display:block;overflow-wrap:anywhere;line-height:1.32}
.file-icon{position:relative;display:grid;place-items:end center;width:35px;height:42px;background:#488ce2;color:white;border-radius:3px;clip-path:polygon(0 0,66% 0,100% 28%,100% 100%,0 100%);font-size:9px;padding-bottom:5px;flex:none}
.file-icon::before{content:"";position:absolute;right:0;top:0;width:12px;height:12px;background:#8bb9f0}
.visual{display:block;max-width:min(360px,100%);max-height:290px;border-radius:6px;object-fit:contain}
.composer{border-top:1px solid var(--line);padding:10px 20px 12px;background:#f5f5f5}
.toolbar{display:flex;align-items:center;gap:10px;min-height:31px}
.toolbar button{height:30px;width:33px;display:grid;place-items:center;border-radius:4px;color:#575757}
.toolbar button:hover{background:#e8e8e8}
.folder-icon{width:19px;height:13px;border:1.6px solid currentColor;border-radius:2px;position:relative}
.folder-icon::before{content:"";position:absolute;left:-1.6px;top:-4px;width:8px;height:4px;border:1.6px solid currentColor;border-bottom:0;border-radius:2px 2px 0 0}
.mic-icon{width:8px;height:13px;border:1.6px solid currentColor;border-radius:5px;position:relative;margin-top:-5px}
.mic-icon::after{content:"";position:absolute;left:-4px;top:4px;width:13px;height:10px;border:1.5px solid currentColor;border-top:0;border-radius:0 0 8px 8px}
#record.active{color:#c43232;background:#f6dddd}
#draft{display:block;width:100%;height:86px;min-height:50px;max-height:30vh;resize:vertical;background:transparent;border:0;line-height:1.55;padding:7px 2px}
#draft:focus-visible{outline:none}
.composer-bottom{display:flex;justify-content:flex-end;align-items:center;gap:13px;margin-top:5px;color:#777;font-size:11px}
.green{background:var(--green);color:#fff;border-radius:5px;padding:7px 23px;font-size:14px;font-weight:600;min-height:34px}
.green:hover{background:#05a952}
.feedback{color:#a7382b;font-size:12px;overflow-wrap:anywhere}
#staged{display:flex;flex-wrap:wrap;gap:6px;max-height:105px;overflow:auto}
.staged-item{display:flex;align-items:center;gap:6px;background:#e8e8e8;border-radius:4px;padding:3px 7px;font-size:12px}
.staged-item button{font-size:17px}
#signin{min-height:100vh;display:grid;place-items:center;padding:20px;background:#efefee}
#login{width:min(100%,340px);display:grid;gap:12px;background:white;padding:32px;border-radius:10px;box-shadow:0 10px 35px #00000012}
#login h1{text-align:center;margin:1px 0 12px;font-size:23px}
#login label{font-size:13px}
#login input{height:40px;border:1px solid #d7d7d7;border-radius:5px;padding:0 9px}
#login .green{margin-top:4px}
.wechat-logo{width:53px;height:53px;background:var(--green);border-radius:12px;position:relative;margin:auto}
.wechat-logo i{position:absolute;width:27px;height:20px;border-radius:50%;background:white;top:11px;left:9px}
.wechat-logo i+i{transform:scale(.78);left:19px;top:22px;border:1px solid var(--green)}
.wechat-logo i::before{content:"";position:absolute;left:7px;top:7px;width:3px;height:3px;border-radius:100%;background:var(--green);box-shadow:8px 0 var(--green)}
.wechat-logo i::after{content:"";position:absolute;left:4px;bottom:-3px;border-top:6px solid white;border-right:6px solid transparent}
@media(max-width:680px){
  #workspace{grid-template-columns:51px minmax(0,1fr)}
  .rail{padding-top:14px}
  #conversation{display:none}
  #workspace.open{grid-template-columns:minmax(0,1fr)}
  #workspace.open .rail,#workspace.open .sidebar{display:none}
  #workspace.open #conversation{display:block}
  #back{display:block}
  .chat-header{padding:0 11px}
  .history{padding:11px 13px 16px}
  .message-body{max-width:80%}
  .composer{padding:6px 12px 9px}
  #draft{height:56px}
  .composer-bottom span{display:none}
}
