:root{--ink:#26334c;--muted:#8792a6;--line:#e9eaf2;--rose:#fa6d8c;--purple:#7465de;--bg:#f8f8fc;--shadow:0 16px 42px rgba(69,65,118,.045)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.55}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}img{max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.3}h1{letter-spacing:-.035em}strong{font-weight:700}.muted{color:var(--muted)}.tiny{font-size:12px}.hidden{display:none!important}.card{background:#fff;border:1px solid #f0eef5;border-radius:20px;box-shadow:var(--shadow)}.btn{border:1px solid transparent;border-radius:11px;padding:10px 18px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:linear-gradient(110deg,#fa7992,#ed648d);color:white;font-weight:700;white-space:nowrap;transition:transform .2s,box-shadow .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #f8799a44}.btn-outline{color:var(--purple);background:white;border-color:#e6e1fa}.btn-outline:hover{box-shadow:0 8px 20px #7465de18}.btn-small{padding:7px 13px;font-size:12px;border-radius:9px}.btn-full{width:100%}.btn-danger{background:#ec6570}.quiet{border:0;background:none;color:#9aa2b0;font-size:12px;padding:5px}.quiet:hover{color:#e75975}.eyebrow,.side-eyebrow{color:var(--purple);font-size:10px;font-weight:800;letter-spacing:.17em}.topbar{height:76px;background:#fff;border-bottom:1px solid #efedf4;position:sticky;top:0;z-index:10}.top-inner{max-width:1320px;margin:auto;height:100%;display:flex;align-items:center;padding:0 25px;gap:28px}.brand{display:flex;align-items:center;gap:11px;min-width:259px;font-size:22px;font-weight:850;letter-spacing:-.07em}.brand-icon{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;color:white;background:linear-gradient(145deg,#fcad93,#f36d9b 68%,#a36dde);transform:rotate(-8deg);font-size:20px;box-shadow:0 7px 16px #ee8b9959}.brand small{display:block;font-size:9px;letter-spacing:.03em;color:#a0a5b6;font-weight:500}.top-nav{display:flex;gap:29px;align-items:center;margin-left:auto}.top-nav>a{height:76px;display:flex;align-items:center;gap:5px;color:#727d93;position:relative;font-weight:650}.top-nav>a.active,.top-nav>a:hover{color:var(--rose)}.top-nav>a.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--rose);border-radius:4px}.top-user{margin-left:auto;display:flex;align-items:center;gap:9px}.top-user>a:not(.btn){display:flex;gap:8px;align-items:center;font-weight:700}.avatar{display:inline-flex;flex-shrink:0;width:44px;height:44px;object-fit:cover;border-radius:50%;align-items:center;justify-content:center;background:linear-gradient(140deg,#ffc9af,#d4b6ff);color:#fff;font-size:20px;font-weight:700;box-shadow:0 3px 10px #735cd020}.avatar.small{width:30px;height:30px;font-size:13px}.avatar.large{width:72px;height:72px;font-size:29px}.avatar.xlarge{width:88px;height:88px;font-size:36px}.badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;color:#fff;background:#fa6e87;border-radius:50px;font-size:10px;font-style:normal}
.layout{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:232px minmax(0,660px) 260px;gap:28px;padding:37px 25px 90px}.left-col,.right-col{min-width:0}.side-card{padding:25px;text-align:center}.side-eyebrow{display:block;text-align:left;margin-bottom:20px}.my-card{display:flex;flex-direction:column;align-items:center;gap:3px}.my-card .avatar{margin-bottom:8px}.my-card strong{font-size:17px}.my-card small{color:#a0a7b5}.side-bio{font-size:12px;line-height:1.6;color:#9ba2b0;margin:16px 0 0}.side-card h3{text-align:left;font-size:18px}.side-card .muted{text-align:left;font-size:12px}.side-menu{padding:20px 0}.side-menu>a,.side-menu form button{display:flex;align-items:center;gap:13px;padding:13px 17px;margin:3px 0;color:#778096;border:0;width:100%;text-align:left;background:transparent;font-weight:650;border-radius:11px}.side-menu span{font-size:20px;width:21px;text-align:center;line-height:1}.side-menu>a.active,.side-menu>a:hover,.side-menu form button:hover{color:var(--purple);background:#eeebfc}.side-menu .badge{margin-left:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;margin:10px 0 25px}.page-heading h1{font-size:31px;margin:6px 0}.page-heading p{font-size:13px;color:#97a0b1;margin:0}.heading-spark{color:#fc9b8a;font-size:23px}.main-col{min-width:0}.flash{padding:13px 17px;background:#eff9f1;border:1px solid #d7f0df;color:#2b7c4d;border-radius:12px;margin:0 0 15px}.flash.error{background:#fff0f1;border-color:#fad9dc;color:#bd465e}.compose{padding:20px 22px;margin-bottom:23px}.compose-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.compose-head strong,.compose-head small{display:block}.compose-head small{font-size:12px;color:#a6adba}.compose textarea{border:none;width:100%;resize:vertical;min-height:78px;outline:none;color:var(--ink);padding:8px 4px}.compose-bottom{border-top:1px solid var(--line);padding-top:14px;display:flex;align-items:center;gap:10px}.compose-bottom .btn{margin-left:auto}.upload-label{display:inline-flex;align-items:center;gap:5px;color:var(--purple);font-size:13px;font-weight:650;cursor:pointer}.upload-label input{position:absolute;width:1px;height:1px;opacity:0}.file-name{color:#a1a8b3;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-tabs{display:flex;gap:28px;border-bottom:1px solid var(--line);margin-bottom:18px}.feed-tabs a{padding-bottom:13px;color:#8c95a6;font-weight:700}.feed-tabs a.current{border-bottom:3px solid var(--rose);color:var(--ink)}.post{padding:21px 22px 17px;margin-bottom:16px;scroll-margin-top:95px}.post-head{display:flex;align-items:start;justify-content:space-between}.userline{display:flex;align-items:center;gap:11px;min-width:0}.userline span:not(.avatar){min-width:0}.userline strong,.userline small{display:block}.userline small{color:#9ba3b1;font-size:11px}.post-body{font-size:14px;line-height:1.9;overflow-wrap:anywhere;margin:17px 0 14px}.post-image{width:100%;max-height:510px;object-fit:contain;border-radius:12px;background:#f5f5f9;margin:3px 0 14px}.post-actions{display:flex;align-items:center;gap:24px;padding-top:12px}.post-actions form{margin:0}.action{border:0;background:none;color:#98a1b0;font-size:13px;display:inline-flex;gap:7px;align-items:center;padding:0}.action:first-letter{font-size:19px}.action:hover,.action.liked{color:#f46d8d}.comments{margin-top:15px;padding-top:10px;border-top:1px solid var(--line)}.comment{display:flex;gap:9px;padding:7px 0;font-size:12px}.comment .muted{font-size:10px}.comment p{margin:3px 0;color:#606c81;overflow-wrap:anywhere}.comment-form,.report-form{display:flex;gap:9px;margin-top:15px}.comment-form input,.report-form input{min-width:0;flex:1;border:1px solid #edeaf3;border-radius:10px;padding:9px 12px;outline:none;background:#fbfafe}.comment-form input:focus,.report-form input:focus,.search input:focus{border-color:#c1b5ee}.load-more{display:block;text-align:center;background:#fff;border-radius:12px;padding:15px;color:var(--purple);font-weight:700}.backlink{display:inline-block;margin:0 0 16px;color:var(--purple)}.empty{text-align:center;padding:55px 20px;color:#8d95a5}.empty>span{font-size:42px;color:#f1a0a5}.empty h3{color:var(--ink);margin:5px 0}.empty p{margin:5px auto 18px}.kindness{position:relative;padding:24px;background:linear-gradient(145deg,#ffe2df,#f9dce9 60%,#e9ddf9);overflow:hidden;min-height:211px}.kindness>span{font-size:11px;color:#c76378;font-weight:800}.kindness h3{font-size:21px;line-height:1.55;position:relative;z-index:1;margin:23px 0}.kindness-decor{position:absolute;right:-10px;bottom:-67px;font-size:155px;color:#fff8;transform:rotate(-17deg)}.side-tip{padding:22px;margin-top:18px}.side-tip h3{font-size:15px;margin:0 0 15px}.side-tip p{color:#8a95aa;font-size:12px;margin-bottom:12px}.footer-note{text-align:center;font-size:10px;color:#aeb6c4;line-height:2;margin-top:24px}
.search{display:flex;gap:12px;padding:13px;margin-bottom:20px}.search input{min-width:0;flex:1;border:0;outline:none;padding:0 10px}.people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.person{display:flex;flex-direction:column;align-items:center;padding:26px 15px;text-align:center;min-height:260px}.person-name{margin-top:10px;font-size:17px;font-weight:750}.person small{font-size:11px;color:#a4acb8}.person p{font-size:12px;color:#8590a3;margin:14px 0 5px;min-height:39px}.person .muted{font-size:11px}.person-actions{display:flex;gap:8px;margin-top:auto;padding-top:17px}.profile-hero{overflow:hidden}.profile-cover{height:135px;background:linear-gradient(110deg,#ffe8d8,#ffe1e9 50%,#e5ddfe);display:flex;align-items:center;justify-content:space-around;color:#fff9;font-size:85px}.profile-content{padding:0 25px 25px}.profile-content>.avatar{margin-top:-45px;position:relative;border:4px solid #fff}.profile-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center;float:right;margin-top:15px}.profile-content h1{font-size:24px;margin:8px 0 2px}.profile-content small{color:#a3abba}.profile-content p{margin:15px 0;color:#6e788d}.stats{display:flex;gap:22px;border-top:1px solid var(--line);padding-top:16px;font-size:12px;color:#8b96a8}.stats strong{color:#35405a;font-size:15px}.section-title{font-size:17px;margin:25px 0 16px}
.chat-shell{display:grid;grid-template-columns:210px minmax(0,1fr);height:590px;overflow:hidden}.chat-list{border-right:1px solid var(--line);overflow-y:auto}.chat-list-title{padding:19px 13px 12px;font-size:13px;font-weight:750}.chat-list-title a{display:block;color:var(--purple);font-size:10px;font-weight:550;margin-top:4px}.chat-contact{display:flex;align-items:center;gap:9px;padding:11px 12px}.chat-contact:hover,.chat-contact.selected{background:#f7f3ff}.chat-contact span:not(.avatar){flex:1;min-width:0}.chat-contact strong,.chat-contact small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-contact strong{font-size:12px}.chat-contact small{font-size:10px;color:#a8afbc}.chat-contact .avatar{width:36px;height:36px;font-size:15px}.pad{padding:15px}.chat-room{min-width:0;display:flex;flex-direction:column}.chat-room-head{height:64px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;padding:0 17px}.chat-room-head a{margin-left:auto;font-size:11px;color:var(--purple)}.messages{overflow-y:auto;flex:1;padding:19px;display:flex;flex-direction:column;gap:12px}.message-hint{margin:0 auto;color:#a6aeba;font-size:11px}.message{max-width:84%;align-self:flex-start;background:#f3f2f8;border-radius:14px 14px 14px 3px;padding:9px 13px;overflow-wrap:anywhere}.message.mine{align-self:flex-end;background:#fce4eb;border-radius:14px 14px 3px 14px}.message p{margin:0;white-space:pre-wrap;font-size:13px}.message time{display:block;text-align:right;font-size:9px;color:#aab0be;margin-top:4px}.chat-compose{border-top:1px solid var(--line);padding:13px;display:flex;gap:9px;align-items:flex-end}.chat-compose textarea{border:1px solid var(--line);border-radius:10px;resize:none;flex:1;min-width:0;padding:10px;outline:none}.chat-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:100%;color:#9ea8b6}.chat-placeholder span{font-size:70px;color:#d1c4f6}.chat-placeholder h3{color:var(--ink);margin:5px}.chat-placeholder p{font-size:12px}.settings-card,.admin-card{padding:25px;margin-bottom:18px}.settings-card h2,.admin-card h2{font-size:18px;margin-bottom:20px}.form-stack{display:flex;flex-direction:column;gap:17px}.form-stack label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#555e70}.form-stack input,.form-stack textarea{border:1px solid #e8e7ef;border-radius:10px;outline:none;padding:11px 13px;background:#fff;color:var(--ink);resize:vertical}.form-stack input:focus,.form-stack textarea:focus{border-color:#ad9bea}.form-stack input:disabled{background:#f7f7fa;color:#9a9eac}.form-stack>.btn{align-self:flex-start}.settings-avatar{display:flex;align-items:center;gap:15px}.admin-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.admin-row:last-child{border:0}.admin-row p{margin:5px 0;overflow-wrap:anywhere}.admin-row form{display:flex;gap:5px;flex-shrink:0}
.auth-wrap{max-width:1120px;min-height:calc(100vh - 76px);margin:auto;display:grid;grid-template-columns:1fr 420px;gap:75px;align-items:center;padding:35px 30px 75px}.auth-intro{position:relative;min-height:520px;padding-top:50px}.pill{display:inline-block;background:#fff0f0;border-radius:50px;padding:8px 16px;color:#da6b85;font-size:12px;font-weight:700}.auth-intro h1{font-size:49px;line-height:1.27;margin:21px 0}.auth-intro h1 span{color:var(--rose)}.auth-intro>p{max-width:390px;color:#8790a4;line-height:1.9}.auth-art{position:relative;margin-top:38px;height:223px;border-radius:120px 130px 100px 130px;background:linear-gradient(130deg,#ffded7,#fbd8e8 55%,#dfd8fa);overflow:hidden}.art-sun{position:absolute;left:23%;top:12%;font-size:100px;color:#fff9}.art-bubble{position:absolute;background:white;border-radius:30px;padding:9px 16px;box-shadow:0 8px 22px #94628c22;color:#7d6aa2;font-weight:700}.art-bubble.a{right:12%;top:27%}.art-bubble.b{left:12%;bottom:19%}.art-heart{position:absolute;bottom:-38px;right:9%;font-size:165px;color:#f78ea47a;transform:rotate(-17deg)}.auth-card{padding:35px}.auth-card h2{font-size:26px;margin:8px 0}.auth-card>.muted{font-size:12px;margin-bottom:24px}.auth-card .form-stack>.btn{width:100%;padding:13px}.auth-switch{text-align:center;color:#9aa4b4;font-size:12px;margin:20px 0 0}.auth-switch a{color:var(--purple);font-weight:750}
@media(max-width:1100px){.layout{grid-template-columns:195px minmax(0,1fr);gap:20px}.right-col{display:none}.brand{min-width:195px}.auth-wrap{gap:35px}}@media(max-width:700px){.topbar{height:64px}.top-inner{padding:0 14px;gap:5px}.brand{min-width:auto;font-size:18px}.brand-icon{width:32px;height:32px;font-size:16px}.brand small{display:none}.top-nav{margin-left:auto;gap:14px}.top-nav>a{height:64px;font-size:12px}.top-user{margin-left:8px}.top-user>a:not(.btn) span:not(.avatar){display:none}.top-user .btn{font-size:11px;padding:7px 9px}.top-user .btn-outline{display:none}.layout{display:block;padding:18px 12px 80px}.left-col{display:none}.page-heading{margin:8px 2px 18px}.page-heading h1{font-size:25px}.page-heading p{font-size:11px}.post,.compose{padding:16px}.people-grid{gap:10px}.person{min-height:254px;padding:18px 8px}.person-actions{gap:5px}.person-actions .btn{padding:7px 9px}.chat-shell{grid-template-columns:115px minmax(0,1fr);height:calc(100dvh - 210px);min-height:410px}.chat-list-title{padding:10px;font-size:11px}.chat-contact{gap:4px;padding:8px 5px;flex-wrap:wrap}.chat-contact .avatar{width:29px;height:29px}.chat-contact small{display:none}.chat-room-head{padding:0 8px}.chat-room-head a{font-size:9px}.messages{padding:9px}.chat-compose{padding:8px}.chat-compose .btn{padding:9px}.auth-wrap{display:block;padding:27px 15px}.auth-intro{min-height:auto;padding:0 10px}.auth-intro h1{font-size:30px;margin:12px 0}.auth-intro>p{font-size:12px}.auth-art{display:none}.auth-card{padding:25px;margin-top:23px}.profile-actions{float:none;justify-content:flex-start;flex-wrap:wrap;margin-bottom:10px}.profile-content h1{margin-top:8px}.stats{gap:13px}.admin-row{align-items:flex-start;flex-direction:column}.top-user .avatar{width:27px;height:27px}}

/* 鲸吞：我世界 / 鲸友群 / 鲸友圈 / 相册集独立模块 */
.top-nav{gap:18px}.top-nav>a{white-space:nowrap;font-size:13px}.top-user{margin-left:12px}.brand{min-width:205px}
.mobile-dock{display:none}
.jt-panel{padding:23px;margin-bottom:20px}.jt-panel h2{font-size:18px;margin:0 0 15px}.jt-panel p{line-height:1.85;color:#69758d;overflow-wrap:anywhere}
.jt-panel .form-stack{gap:12px}.jt-inline-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.jt-inline-actions form{margin:0}
.jt-search{align-items:center}.jt-contact-list{display:flex;flex-direction:column;gap:10px}.jt-contact{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.jt-person-line{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.jt-person-line span:not(.avatar){min-width:0}.jt-person-line strong,.jt-person-line small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jt-person-line small{color:#9ba4b4;font-size:11px}.jt-group-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.jt-group-card{display:flex;align-items:center;gap:10px;padding:15px;transition:transform .2s}.jt-group-card:hover{transform:translateY(-3px)}.jt-group-card>span:nth-child(2){min-width:0;flex:1}
.jt-group-card strong,.jt-group-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jt-group-card small{font-size:11px;color:#97a1b5;margin-top:4px}
.jt-group-icon{width:41px;height:41px;flex-shrink:0;border-radius:13px;display:grid;place-items:center;background:#f0eafa;color:#8268ce;font-size:23px}
.jt-chevron{color:#a7a3bd}.jt-group-result{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:16px 18px;margin-bottom:12px}
.jt-group-result-main{display:flex;align-items:flex-start;gap:12px;min-width:0;flex:1}.jt-group-result-main>div{min-width:0}.jt-group-result-main strong,.jt-group-result-main small{display:block}
.jt-group-result-main small{color:#9aa4b5;font-size:11px;margin-top:3px}.jt-group-result-main p{margin:8px 0 0;font-size:12px;color:#737f93;overflow-wrap:anywhere}
.jt-chat-shell{height:440px;display:flex;flex-direction:column;overflow:hidden}.jt-chat-head{padding:14px 19px;font-weight:750;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}
.jt-chat-head small{font-size:11px;color:#9da7b7;font-weight:500}.jt-chat-messages{flex:1;overflow:auto;display:flex;flex-direction:column;gap:13px;padding:19px}
.jt-chat-messages .message{max-width:83%}.jt-chat-messages .jt-msg-author{font-size:11px;color:#9e92b8;display:block;margin-bottom:3px}.jt-chat-empty{margin:auto}
.jt-members{display:flex;align-items:center;gap:13px;flex-wrap:wrap;padding:15px;margin-bottom:25px}.jt-members a{display:flex;flex-direction:column;gap:6px;align-items:center;font-size:11px;color:#758197}.jt-members>a .avatar{margin:0 auto}
.jt-text-link{color:var(--purple);font-weight:750;margin-left:3px}.group-tag{display:inline-flex;color:#8b79bb;background:#f7f3ff;padding:5px 9px;margin-top:10px;font-size:11px;border-radius:8px}
.jt-select-label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:750;color:#727c90}
.jt-select-label select{padding:10px 12px;border:1px solid #ebe7f4;border-radius:10px;background:white;color:var(--ink);max-width:100%;outline:0}
.jt-file-upload{display:inline-flex!important;flex-direction:row!important;align-items:center;flex-wrap:wrap;gap:10px;color:var(--purple)!important;cursor:pointer;font-weight:700}
.jt-file-upload input{max-width:100%;min-width:0;font-size:11px}.jt-album-owner{display:flex;gap:8px;align-items:center;margin:18px 0;color:#77829c}
.jt-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.jt-photo{overflow:hidden;min-width:0}
.jt-photo>a{display:block;aspect-ratio:1/1;background:#f4f3f7}.jt-photo img{height:100%;width:100%;object-fit:cover;display:block;transition:transform .2s}
.jt-photo>a:hover img{transform:scale(1.03)}.jt-photo-info{padding:13px 15px}.jt-photo-info p{font-size:13px;margin-bottom:4px;overflow-wrap:anywhere}.jt-photo-info small{font-size:10px;color:#9ba4b5}
.jt-photo-info form{margin-top:6px}.profile-album-link{margin:18px 0 0}
@media(max-width:1100px){.brand{min-width:160px}.top-inner{gap:15px}.top-nav{gap:10px}.top-nav>a{font-size:12px}.top-user>a:not(.btn) span:not(.avatar){display:none}}
@media(max-width:700px){.top-nav{display:none}.top-user{margin-left:auto}.top-inner{justify-content:space-between}.mobile-dock{display:flex;position:fixed;z-index:40;left:0;right:0;bottom:0;min-height:64px;padding:8px 4px calc(8px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -4px 25px #3b3d6b1c;justify-content:space-around;border-top:1px solid #efedf4}
.mobile-dock a{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;gap:1px;flex:1;color:#858aa0;font-size:10px;font-weight:650;white-space:nowrap}
.mobile-dock a>span{font-size:23px;line-height:1.25}.mobile-dock a.active{color:var(--rose)}.layout{padding-bottom:calc(105px + env(safe-area-inset-bottom))}
.jt-contact{padding:12px;gap:7px}.jt-contact .btn{padding:6px 10px}.jt-group-list{grid-template-columns:1fr}.jt-group-result{align-items:flex-start;flex-direction:column}.jt-group-result .btn{margin-left:52px}
.jt-panel{padding:17px}.jt-panel h2{font-size:16px}.jt-chat-shell{height:410px}.jt-chat-head{padding:12px}.jt-chat-head small{display:none}
.jt-chat-messages{padding:10px}.jt-photo-grid{gap:9px}.jt-photo-info{padding:10px}.jt-photo-info p{font-size:12px}
.jt-members{gap:10px}.jt-inline-actions{gap:7px}.jt-inline-actions .btn{padding:7px 10px}.feed-tabs{gap:17px}.feed-tabs a{font-size:12px}
}

/* 2026-10-13: 私信提醒、图片/文件聊天附件（桌面+手机） */
.jt-top-inbox{position:relative;display:inline-flex!important;align-items:center;justify-content:center;min-width:38px;min-height:38px;border-radius:11px;background:#f5f1ff;color:#8971cd!important;font-size:23px;text-decoration:none;flex-shrink:0}
.jt-top-inbox:hover{background:#eee5ff}
.jt-top-inbox .jt-unread-badge{position:absolute;right:-7px;top:-6px;min-width:18px;font-size:10px;box-shadow:0 0 0 2px white}
.jt-unread-badge.hidden,.jt-conversation-badge.hidden{display:none!important}
.jt-dm-toast{position:fixed;z-index:100;right:22px;top:88px;display:flex;align-items:center;gap:13px;max-width:min(430px,calc(100vw - 25px));padding:14px 16px;background:white;color:#50576b;border:1px solid #e5def4;border-left:4px solid var(--purple);border-radius:14px;box-shadow:0 12px 36px #4f367023;font-size:13px;font-weight:650}
.jt-dm-toast.hidden{display:none!important}
.jt-dm-toast a{color:var(--purple);font-weight:750;white-space:nowrap}
.jt-dm-toast button{background:transparent;border:0;color:#9b9caf;font-size:22px;cursor:pointer;line-height:1}
.jt-compose{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:11px 13px}
.jt-compose textarea{width:100%;min-height:52px;flex:auto;font-size:13px}
.jt-compose-controls{display:flex;align-items:center;gap:9px;min-width:0}
.jt-compose-file-label{display:inline-flex;align-items:center;border:1px solid #e5ddf1;background:#f8f5ff;color:#7e65bc;padding:7px 10px;border-radius:10px;white-space:nowrap;font-weight:750;font-size:12px;cursor:pointer}
.jt-compose-file-label:hover{background:#eee7fb}
.jt-compose-file-input{width:1px;height:1px;position:absolute;opacity:0;clip-path:inset(50%);overflow:hidden}
.jt-compose-file-input:focus-visible + .jt-selected-file{outline:2px solid #937bd1;outline-offset:3px}
.jt-compose-controls:focus-within .jt-compose-file-label{border-color:#947bd4}
.jt-selected-file{flex:1;min-width:0;color:#9aa2b2;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jt-compose-controls .btn{margin-left:auto;flex-shrink:0;padding:9px 14px}
.jt-attachment-image{display:block;max-width:100%;margin:5px 0 3px;border-radius:12px;overflow:hidden}
.jt-attachment-image img{display:block;max-width:100%;width:auto;height:auto;max-height:260px;border-radius:10px;object-fit:contain;background:#ece8f5}
.jt-attachment-file{display:flex;gap:10px;align-items:center;min-width:0;max-width:100%;padding:10px 12px;margin:5px 0 3px;border:1px solid #e5deef;border-radius:11px;background:#fffdfd;color:#594f73}
.jt-attachment-file>span:first-child{font-size:23px;flex-shrink:0}
.jt-attachment-file>span:last-child{min-width:0}
.jt-attachment-file strong{display:block;max-width:100%;overflow-wrap:anywhere;font-size:12px;color:#665789}
.jt-attachment-file small{display:block;margin-top:4px;font-size:10px;color:#9da0b0}
.jt-attachment-file:hover{border-color:#bfa9e0}
.chat-contact .jt-conversation-badge{margin-left:auto;flex-shrink:0}
.mobile-dock .jt-mobile-inbox{position:relative}
.mobile-dock .jt-mobile-inbox .jt-unread-badge{position:absolute;top:-3px;right:7%;min-width:17px;height:17px;line-height:17px;font-size:9px;border-radius:10px}
@media(max-width:700px){
 .jt-dm-toast{left:12px;right:12px;top:70px;width:auto;padding:11px 12px;font-size:12px}
 .jt-top-inbox{width:34px;height:34px;min-width:34px;min-height:34px;font-size:19px}
 .jt-top-inbox .jt-unread-badge{right:-6px;top:-6px}
 .jt-compose{padding:8px;gap:7px}
 .jt-compose textarea{min-height:50px}
 .jt-compose-controls{gap:5px}
 .jt-compose-file-label{font-size:10px;padding:7px 6px}
 .jt-selected-file{font-size:9px}
 .jt-compose-controls .btn{padding:8px 9px;font-size:11px}
 .mobile-dock a{font-size:9px}
 .mobile-dock a>span{font-size:21px}
 .jt-attachment-image img{max-height:180px}
 .jt-attachment-file{padding:8px;gap:5px}
 .jt-attachment-file strong{font-size:11px}
}

/* 私信 / 群聊：自己发出的文字、图片及文件可手机长按、电脑右键或点 ⋯ 删除 */
.jt-chat-tip{padding:5px 14px;background:#faf8ff;border-bottom:1px solid var(--line);color:#827a99;text-align:center;font-size:11px;line-height:1.5}
.message.mine{position:relative;padding-right:34px;touch-action:pan-y;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.message.mine img{-webkit-touch-callout:none;-webkit-user-drag:none;user-drag:none}
.jt-msg-more{position:absolute;right:3px;top:4px;border:0;border-radius:10px;background:transparent;color:#8a799b;width:27px;height:27px;display:grid;place-items:center;line-height:1;font-size:19px;touch-action:manipulation}
.jt-msg-more:hover,.jt-msg-more:focus-visible{background:#fff6;color:#654f9b;outline:2px solid transparent}
@media(hover:hover) and (pointer:fine){.jt-msg-more{opacity:.65}.message.mine:hover .jt-msg-more,.jt-msg-more:focus-visible{opacity:1}}
.jt-message-sheet{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(26,23,45,.45)}
.jt-message-sheet-panel{width:min(100%,360px);background:#fff;border-radius:19px;padding:21px;box-shadow:0 18px 50px #1b123c33;text-align:center}
.jt-message-sheet-title{font-size:18px;font-weight:800;margin-bottom:9px}
.jt-message-sheet-panel p{font-size:12px;color:#838c9d;line-height:1.7;margin:0 0 18px}
.jt-message-sheet-panel button{display:block;width:100%;border-radius:12px;border:1px solid #e8e5f0;padding:12px 16px;margin-top:9px;font-size:14px;font-weight:700;background:#fff;color:#5b6273}
.jt-message-sheet-panel .jt-message-delete{background:#ec6570;border-color:#ec6570;color:#fff}
.jt-message-sheet-panel .jt-message-delete:disabled{opacity:.6;cursor:not-allowed}
.jt-message-sheet-panel .jt-message-cancel:hover{background:#f6f4fb}
@media(max-width:700px){.jt-chat-tip{padding:5px;font-size:10px}.jt-message-sheet{align-items:flex-end;padding:12px 12px max(12px, env(safe-area-inset-bottom))}.jt-message-sheet-panel{width:100%;border-radius:17px;padding:18px}.jt-msg-more{width:30px;height:30px}}


/* 2026-10-13: 聊天固定输入区，消息过长只滚动消息列表；兼容短屏与手机底部导航。 */
.chat-shell{
  height:min(640px, calc(100dvh - 260px));
  min-height:310px;
  grid-template-rows:minmax(0, 1fr);
  overflow:hidden;
}
.chat-room,.chat-list,.messages,.jt-chat-shell,.jt-chat-messages{min-height:0;min-width:0}
.chat-room{display:flex;flex-direction:column;height:100%;max-height:100%;overflow:hidden}
.chat-room-head,.jt-chat-head,.jt-chat-tip{flex:0 0 auto}
.chat-room-head{min-height:57px;height:auto;padding-block:10px}
.messages,.jt-chat-messages{
  flex:1 1 0%;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior-y:contain;
  -webkit-overflow-scrolling:touch;
}
.chat-compose.jt-compose{
  flex:0 0 auto;
  min-width:0;
  background:#fff;
  border-top:1px solid var(--line);
  margin:0;
  position:relative;
  z-index:1;
}
.chat-compose.jt-compose textarea{
  box-sizing:border-box;
  flex:0 0 auto;
  width:100%;
  max-height:125px;
  min-height:48px;
  resize:vertical;
}
.jt-chat-shell{
  height:min(510px, calc(100dvh - 405px));
  min-height:300px;
  overflow:hidden;
}
@media(max-width:700px){
  .chat-shell{height:calc(100dvh - 257px);min-height:260px;max-height:590px}
  .jt-chat-shell{height:min(460px, calc(100dvh - 260px));min-height:260px}
  .chat-room-head{min-height:48px;padding-block:7px}
  .chat-compose.jt-compose{padding:7px 8px calc(9px + env(safe-area-inset-bottom, 0px))}
  .chat-compose.jt-compose textarea{min-height:43px;max-height:100px}
  .jt-compose-controls{flex-wrap:nowrap}
  .jt-chat-tip{flex-shrink:0}
}
@media(max-height:560px){
  .chat-shell{height:calc(100dvh - 257px);min-height:220px}
  .jt-chat-shell{height:calc(100dvh - 260px);min-height:220px}
}

/* 手机上已加入鲸友群时优先显示聊天，群说明与群操作仍保留在聊天框下方。 */
.jt-group-room-stack{display:flex;flex-direction:column;min-width:0}
@media(max-width:700px){
 .jt-group-room-stack>.jt-chat-shell{order:-1;margin-bottom:14px}
 .jt-group-room-stack>.jt-panel{order:0}
}
