*{box-sizing:border-box}body{margin:0;background:#eef1f5;color:#172033;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}.loading{min-height:100vh;display:grid;place-items:center}.splashScreen{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#07111a url(/tianjige-splash.png) 50%/cover no-repeat;overflow:hidden;animation:splashOut .45s ease 1.45s forwards}.splashShade{position:absolute;inset:0;background:linear-gradient(90deg,#03080db8,#07111a35 50%,#02070ba0)}.splashLogo{position:relative;width:min(330px,56vw);max-height:58vh;object-fit:contain;filter:drop-shadow(0 18px 36px #000);animation:splashLogo 1.3s ease both}.splashLoading{position:absolute;bottom:7vh;color:#dfc185;letter-spacing:.35em;font-size:13px;text-shadow:0 2px 8px #000}@keyframes splashLogo{0%{opacity:0;transform:scale(.92) translateY(10px)}to{opacity:1;transform:none}}@keyframes splashOut{to{opacity:0;visibility:hidden}}.shell{width:min(1180px,calc(100% - 40px));height:calc(100vh - 40px);margin:20px auto;display:grid;grid-template-columns:290px 1fr;background:#fff;border:1px solid #dfe4ea;border-radius:22px;overflow:hidden;box-shadow:0 18px 60px #23344d18}.sidebar{background:#f7f8fa;border-right:1px solid #e5e9ef;padding:25px 18px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 24px}.brandMark{width:43px;height:43px;border-radius:14px;background:#152d4b;color:white;display:grid;place-items:center;font-size:19px}.brandLogo{width:48px;height:48px;border-radius:14px;object-fit:cover;background:#050505;box-shadow:0 5px 16px #132c4724}.brand b{display:block;font-size:18px}.brand small,.identity small,nav small{display:block;color:#8993a3;margin-top:3px}.identity{display:flex;align-items:center;gap:10px;background:white;border:1px solid #e1e6ec;border-radius:14px;padding:14px;margin-bottom:20px}.identity strong{font-family:monospace;font-size:15px}.onlineDot{width:9px;height:9px;background:#26a86a;border-radius:50%}.deviceTag{margin-left:auto;font-size:11px;background:#edf5f1;color:#27835b;padding:4px 7px;border-radius:20px}nav{display:grid;gap:7px}nav button{border:0;background:transparent;text-align:left;padding:13px;border-radius:12px;display:flex;gap:12px;align-items:center;color:#354157;cursor:pointer;font-size:15px}nav button>span{font-size:22px;width:28px}nav button.active{background:#e8eef5;color:#15345a}nav small{font-size:11px}.privacy{margin-top:auto;background:#edf2f6;border-radius:14px;padding:15px;color:#536173;font-size:12px;line-height:1.6}.privacy b{color:#26384d}.privacy p{margin:5px 0 0}.chat{min-width:0;display:grid;grid-template-rows:auto auto 1fr auto;height:100%}.chat header{height:83px;padding:18px 28px;border-bottom:1px solid #e8ecf0;display:flex;align-items:center;justify-content:space-between}.chat h1{font-size:20px;margin:0}.chat header p{font-size:12px;color:#8792a0;margin:5px 0 0}.status{color:#239963;font-size:12px}.announcement{margin:18px 28px 0;padding:13px 16px;background:#fff8e7;border:1px solid #f0ddb0;border-radius:13px;display:flex;gap:14px;align-items:flex-start}.announcement>span{background:#e3aa39;color:white;font-size:11px;padding:5px 7px;border-radius:6px}.announcement b{font-size:13px}.announcement p{margin:4px 0 0;font-size:13px;color:#6e6041}.messages{overflow:auto;padding:20px 28px}.dateLine{text-align:center;color:#9ca5b2;font-size:11px;margin-bottom:18px}.messages article{display:flex;gap:10px;margin-bottom:20px;max-width:72%}.messages article.mine{margin-left:auto;flex-direction:row-reverse}.avatar{flex:0 0 34px;width:34px;height:34px;border-radius:11px;background:#dfe6ee;display:grid;place-items:center;font-size:11px;color:#526173}.mine .avatar{background:#1c456f;color:white}.meta{color:#8893a2;font-size:11px;margin:0 3px 6px}.mine .meta{text-align:right}.messages article p{margin:0;background:#f1f3f6;padding:11px 14px;border-radius:4px 14px 14px 14px;font-size:14px;line-height:1.55}.messages article.mine p{background:#193e64;color:white;border-radius:14px 4px 14px 14px}.empty{text-align:center;color:#98a1ad;padding:50px}.chat form{padding:18px 28px 22px;border-top:1px solid #edf0f3;display:flex;gap:10px}.chat input{flex:1;border:1px solid #dce2e9;background:#f8f9fb;border-radius:13px;padding:14px 16px;outline:none;font-size:14px}.chat input:focus{border-color:#53779e;background:white}.chat form button{width:47px;border:0;border-radius:13px;background:#183d64;color:white;font-size:23px;cursor:pointer}@media(max-width:760px){.shell{width:100%;height:100vh;margin:0;border:0;border-radius:0;grid-template-columns:1fr}.sidebar{padding:12px;display:block;border:0;border-bottom:1px solid #e4e8ed}.brand{padding:0 0 10px}.brandLogo{width:42px;height:42px}.identity{position:absolute;right:12px;top:12px;margin:0;padding:10px}.deviceTag,.identity small,.privacy{display:none}nav{display:flex}nav button{flex:1;padding:9px}.chat{height:calc(100vh - 148px)}.chat header{height:68px;padding:12px 18px}.announcement{margin:12px 14px 0}.messages{padding:16px}.messages article{max-width:88%}.chat form{padding:12px 14px}.splashLogo{width:min(280px,72vw)}}.chatImage{display:block;max-width:min(360px,70vw);max-height:360px;object-fit:contain;border-radius:12px;margin-top:7px;background:#eef2f6}.imageButton{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;border:1px solid #d7dee7;border-radius:11px;background:#fff;color:#183d64;font-size:25px;cursor:pointer}.imageButton:hover{background:#edf3f8}.imageButton input{display:none!important}.navAvatar{width:42px!important;height:42px;flex:0 0 42px;border-radius:14px;display:grid!important;place-items:center;color:#fff;box-shadow:0 7px 16px #17324f24;transition:transform .2s ease,box-shadow .2s ease}.navAvatar svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.groupNavAvatar{background:linear-gradient(145deg,#2675aa,#154a77)}.adminNavAvatar{background:linear-gradient(145deg,#c99a43,#865b1f)}nav button.active .navAvatar{transform:scale(1.04);box-shadow:0 8px 20px #17324f38,0 0 0 3px #fff}.splashScreen{animation:splashOut .6s ease 7.4s forwards}.splashShade{background:linear-gradient(90deg,#03080d28,transparent 52%,#02070b38)}.splashLogo{display:none}.splashEntry{position:absolute;left:50%;bottom:6vh;z-index:1;display:flex;flex-direction:column;align-items:center;gap:13px;transform:translateX(-50%)}.splashLoading{position:static;color:#e7c982;font-size:15px;letter-spacing:.42em;white-space:nowrap;text-shadow:0 2px 9px #000}.splashEnterButton,.splashLoading{font-family:STKaiti,KaiTi,Microsoft YaHei,serif}.splashEnterButton{min-width:128px;padding:10px 25px;border:1px solid #d6b46d99;border-radius:999px;background:#080d12a6;color:#f2d38c;font-size:16px;letter-spacing:.25em;text-indent:.25em;cursor:pointer;box-shadow:0 8px 24px #0007;backdrop-filter:blur(5px);transition:background .2s ease,border-color .2s ease,transform .2s ease}.splashEnterButton:hover{background:#20180dc9;border-color:#eccb80;transform:translateY(-2px)}.splashEnterButton:active{transform:translateY(0)}@media(max-width:760px){.splashEntry{bottom:5vh}.splashLoading{font-size:13px}.splashEnterButton{min-width:120px;padding:9px 22px;font-size:15px}.splashScreen{background-position:64%}.splashShade{background:linear-gradient(180deg,#02070b18,transparent 48%,#02070b70)}.splashEntry{bottom:max(26px,calc(env(safe-area-inset-bottom) + 18px));gap:10px}.splashLoading{font-size:12px;letter-spacing:.35em}.splashEnterButton{min-width:116px;padding:9px 20px;font-size:14px}}@media (max-width:380px){.splashScreen{background-position:63%}.splashEntry{bottom:max(20px,calc(env(safe-area-inset-bottom) + 14px))}.splashEnterButton{min-width:108px;padding:8px 17px;font-size:13px}}@media (max-height:680px) and (orientation:portrait){.splashEntry{bottom:max(14px,calc(env(safe-area-inset-bottom) + 10px));gap:7px}.splashLoading{font-size:11px}.splashEnterButton{padding-top:7px;padding-bottom:7px}}@media (max-height:500px) and (orientation:landscape){.splashScreen{background-position:center 54%}.splashEntry{left:auto;right:max(20px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));transform:none;gap:7px}.splashLoading{font-size:11px}.splashEnterButton{min-width:105px;padding:7px 16px;font-size:13px}}.unreadDot{width:9px;height:9px;border-radius:50%;background:#e5484d;box-shadow:0 0 0 3px #e5484d20;margin-left:auto;flex:0 0 9px}