/* ==================================================================
   金股讯首页 home/index.css
================================================================== */
:root{
  --hp:#ff7244; --hp-d:#e8552a; --hp-l:rgba(255,114,68,.12);
  --hbg:#f2f4f8; --hcard:#fff; --hbdr:#eaecf0;
  --ht1:#1a1d24; --ht2:#5a6073; --ht3:#9ca3af;
  --hgrn:#1aaa55; --hred:#e84025;
  --hr:14px; --hr-sm:8px;
  --hs:0 2px 12px rgba(0,0,0,.07);
  --hs-lg:0 6px 28px rgba(0,0,0,.12);
}
.home-page{min-height:calc(100vh - 140px);background:var(--hbg);padding-bottom:100px;overflow-x:hidden;}
.home-layout{max-width:1180px;margin:0 auto;padding:18px 14px 0;display:grid;grid-template-columns:1fr 316px;gap:16px;align-items:start;}
.home-main{display:flex;flex-direction:column;gap:14px;min-width:0;}
.home-aside{display:flex;flex-direction:column;gap:14px;min-width:0;}
/* 通用卡片 */
.hcard{background:var(--hcard);border-radius:var(--hr);box-shadow:var(--hs);overflow:hidden;}
.hcard-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px 11px;border-bottom:1px solid var(--hbdr);}
.hcard-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--ht1);}
.hcard-title-bar{width:4px;height:16px;border-radius:2px;background:var(--hp);flex-shrink:0;}
.hcard-more{font-size:13px;color:var(--ht3);cursor:pointer;text-decoration:none;transition:color .2s;}
.hcard-more:hover{color:var(--hp);}
/* 直播单播 */
.live-single-wrap{position:relative;width:100%;background:#0a0a0f;border-radius:var(--hr);overflow:hidden;cursor:pointer;box-shadow:var(--hs);}
.live-video-el,.live-cover-img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover;background:#0a0a0f;max-height:440px;}
.live-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.52) 0%,transparent 32%,transparent 55%,rgba(0,0,0,.68) 100%);display:flex;flex-direction:column;justify-content:space-between;padding:14px 16px;pointer-events:none;}
.live-overlay-top{display:flex;align-items:center;gap:10px;}
.live-anchor-avatar{width:42px;height:42px;border-radius:50%;border:2px solid rgba(255,255,255,.85);object-fit:cover;flex-shrink:0;background:#333;}
.live-anchor-info{flex:1;min-width:0;}
.live-anchor-name{font-size:15px;font-weight:700;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.live-badge{display:inline-flex;align-items:center;gap:4px;background:rgba(232,64,37,.9);border-radius:10px;padding:2px 8px;font-size:11px;color:#fff;font-weight:600;}
.live-badge-dot{width:6px;height:6px;border-radius:50%;background:#fff;animation:lpulse 1.4s ease-in-out infinite;}
@keyframes lpulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.4;transform:scale(.68);}}
.live-overlay-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.live-room-title{font-size:13px;color:rgba(255,255,255,.85);flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.live-viewer-badge{display:flex;align-items:center;gap:5px;background:rgba(0,0,0,.42);border-radius:12px;padding:4px 10px;font-size:12px;color:#fff;flex-shrink:0;}
.live-viewer-dot{width:6px;height:6px;border-radius:50%;background:#ff4444;animation:lpulse 1.2s ease-in-out infinite;}
.live-enter-btn{background:var(--hp);color:#fff;border:none;border-radius:20px;padding:7px 18px;font-size:13px;font-weight:700;cursor:pointer;pointer-events:auto;flex-shrink:0;transition:background .2s,transform .15s;}
.live-enter-btn:hover{background:var(--hp-d);transform:scale(1.03);}
/* 直播多播 */
.live-grid-body{padding:12px 16px 16px;}
.live-grid-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;}
.live-grid-scroll::-webkit-scrollbar{display:none;}
.live-grid-card{flex-shrink:0;width:155px;border-radius:10px;overflow:hidden;background:#f8f8f8;cursor:pointer;transition:transform .2s,box-shadow .2s;}
.live-grid-card:hover{transform:translateY(-3px);box-shadow:var(--hs-lg);}
.live-gc-cover{position:relative;width:155px;height:104px;}
.live-gc-cover img{width:100%;height:100%;object-fit:cover;display:block;background:#222;}
.live-gc-badge{position:absolute;top:6px;left:6px;display:flex;align-items:center;gap:3px;background:rgba(232,64,37,.88);border-radius:9px;padding:2px 6px;font-size:10px;color:#fff;}
.live-gc-dot{width:5px;height:5px;border-radius:50%;background:#fff;}
.live-gc-viewers{position:absolute;bottom:5px;right:5px;background:rgba(0,0,0,.45);border-radius:8px;padding:1px 7px;font-size:10px;color:#fff;}
.live-gc-info{display:flex;align-items:center;gap:6px;padding:8px 8px 9px;}
.live-gc-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0;background:#ddd;}
.live-gc-texts{flex:1;min-width:0;}
.live-gc-name{font-size:11px;color:var(--ht2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px;}
.live-gc-title{font-size:12px;font-weight:600;color:var(--ht1);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.live-empty{padding:36px;text-align:center;color:var(--ht3);font-size:14px;line-height:2;}
.live-empty i{font-size:36px;display:block;margin-bottom:8px;}
/* Tabs */
.home-tabs-bar{background:var(--hcard);border-radius:var(--hr);box-shadow:var(--hs);display:flex;overflow-x:auto;scrollbar-width:none;padding:0 8px;}
.home-tabs-bar::-webkit-scrollbar{display:none;}
.htab{flex-shrink:0;padding:13px 18px;font-size:15px;color:var(--ht2);cursor:pointer;position:relative;transition:color .2s;white-space:nowrap;user-select:none;}
.htab.active{color:var(--hp);font-weight:700;}
.htab.active::after{content:'';position:absolute;bottom:0;left:22%;right:22%;height:3px;border-radius:2px;background:var(--hp);}
/* 帖子 */
.home-post-list{display:flex;flex-direction:column;gap:10px;margin-top:10px;}
.post-card{background:var(--hcard);border-radius:var(--hr);box-shadow:var(--hs);padding:16px;cursor:pointer;transition:box-shadow .2s;text-decoration:none;display:block;color:inherit;}
.post-card:hover{box-shadow:var(--hs-lg);}
.post-card-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.post-card-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;flex-shrink:0;background:#eee;}
.post-card-uname{font-size:14px;font-weight:600;color:var(--ht1);}
.post-card-utime{font-size:12px;color:var(--ht3);margin-top:2px;}
.post-card-title{font-size:16px;font-weight:700;color:var(--ht1);line-height:1.45;margin-bottom:7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.post-card-body{font-size:13px;color:var(--ht2);line-height:1.65;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.post-card-imgs{display:flex;gap:6px;margin-bottom:10px;}
.post-card-img{width:88px;height:64px;border-radius:6px;object-fit:cover;background:#f0f0f0;}
.post-card-foot{display:flex;align-items:center;justify-content:space-between;}
.post-card-stocks{display:flex;gap:6px;flex-wrap:wrap;}
.post-card-stag{font-size:11px;color:var(--hp);background:var(--hp-l);border-radius:4px;padding:2px 7px;}
.post-card-acts{display:flex;gap:16px;}
.post-card-act{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--ht3);cursor:pointer;transition:color .2s;}
.post-card-act:hover{color:var(--hp);}
.post-card-act i{font-size:15px;}
/* 圈子 */
.circle-row{display:flex;gap:12px;overflow-x:auto;padding:12px 16px 6px;scrollbar-width:none;}
.circle-row::-webkit-scrollbar{display:none;}
.circle-item{flex-shrink:0;width:62px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;}
.circle-item:hover .circle-item-img{border-color:var(--hp);}
.circle-item-avatar-wrap{position:relative;width:52px;height:52px;flex-shrink:0;}
.circle-item-img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--hbdr);background:#eee;transition:border-color .2s;}
.home-circle-live-badge{
  position:absolute;
  right:-4px;
  top:-4px;
  display:inline-flex;
  align-items:center;
  gap:3px;
  padding:1px 5px;
  border-radius:8px;
  background:#E84025;
  color:#fff;
  font-size:9px;
  line-height:1.15;
  box-shadow:0 1px 6px rgba(232,64,37,0.35);
  pointer-events:none;
  white-space:nowrap;
}
.home-circle-live-badge-dot{
  width:4px;
  height:4px;
  border-radius:50%;
  background:#fff;
  flex-shrink:0;
}
.circle-plus{width:52px;height:52px;border-radius:50%;background:#fff8f5;border:2px dashed var(--hp);display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--hp);transition:background .2s;}
.circle-plus:hover{background:var(--hp-l);}
.circle-item-name{font-size:11px;color:var(--ht2);text-align:center;width:62px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.circle-divider{padding:8px 16px 10px;font-size:13px;color:var(--ht3);font-weight:500;border-bottom:1px solid var(--hbdr);}
.circle-post-card{padding:14px 16px;border-bottom:1px solid var(--hbdr);cursor:pointer;transition:background .15s;}
.circle-post-card:last-child{border-bottom:none;}
.circle-post-card:hover{background:#fafbfc;}
.circle-tag{display:inline-block;font-size:11px;color:var(--hp);background:var(--hp-l);border-radius:4px;padding:2px 7px;margin-bottom:6px;}
.circle-post-title{font-size:15px;font-weight:600;color:var(--ht1);line-height:1.4;margin-bottom:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.circle-post-preview{font-size:13px;color:var(--ht2);line-height:1.55;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.circle-post-foot{display:flex;align-items:center;justify-content:space-between;}
.circle-post-author{display:flex;align-items:center;gap:6px;}
.circle-post-avatar{width:20px;height:20px;border-radius:50%;object-fit:cover;background:#ddd;}
.circle-post-uname{font-size:12px;color:var(--ht3);}
.circle-post-time{font-size:12px;color:#c8cdd8;}
/* 自选股 */
.stock-list{padding:0 16px 14px;}
.stock-item{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--hbdr);cursor:pointer;transition:background .15s;}
.stock-item:last-child{border-bottom:none;}
.stock-item:hover{background:#fafbfc;}
.stock-item-left{display:flex;flex-direction:column;gap:3px;}
.stock-item-code{font-size:12px;color:var(--ht3);}
.stock-item-name{font-size:14px;font-weight:600;color:var(--ht1);}
.stock-item-right{text-align:right;}
.stock-item-price{font-size:15px;font-weight:700;}
.stock-item-change{font-size:12px;margin-top:2px;}
.stock-up{color:var(--hred);}
.stock-down{color:var(--hgrn);}
.stock-flat{color:var(--ht3);}
/* 关注用户 */
.follow-user-list{padding:10px 16px 14px;}
.follow-user-item{display:flex;align-items:center;gap:10px;padding:8px 0;cursor:pointer;border-bottom:1px solid var(--hbdr);}
.follow-user-item:last-child{border-bottom:none;}
.follow-user-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;flex-shrink:0;background:#eee;}
.follow-user-info{flex:1;min-width:0;}
.follow-user-name{font-size:14px;font-weight:600;color:var(--ht1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.follow-user-sig{font-size:12px;color:var(--ht3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;}
.follow-user-badge{flex-shrink:0;font-size:11px;color:var(--hp);background:var(--hp-l);border-radius:4px;padding:2px 7px;}
/* 状态 */
.home-loading{padding:32px;text-align:center;color:var(--ht3);font-size:13px;}
.home-empty{padding:40px 16px;text-align:center;color:var(--ht3);font-size:14px;line-height:2;}
.home-load-more{text-align:center;padding:14px;}
.home-load-more-btn{display:inline-block;padding:8px 24px;background:var(--hcard);border:1px solid var(--hbdr);border-radius:20px;font-size:13px;color:var(--ht2);cursor:pointer;transition:all .2s;}
.home-load-more-btn:hover{border-color:var(--hp);color:var(--hp);}
/* 响应式 */
@media(max-width:900px){
  .home-layout{grid-template-columns:1fr;padding:0;gap:0;}
  .home-aside{display:none;}
  .home-main{gap:0;padding-top:44px;}
  .live-single-wrap{border-radius:0;box-shadow:none;}
  .live-video-el,.live-cover-img{max-height:240px;}
  /* 手机端：tabs栏固定在顶部，header已隐藏所以top:0 */
  .home-tabs-bar{
    border-radius:0;
    box-shadow:0 2px 6px rgba(0,0,0,.06);
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:98;
    background:#fff;
    border-bottom:1px solid var(--hbdr);
    padding:0;
    display:flex;
    justify-content:space-around;
  }
  /* tabs高度已由.home-main的padding-top统一处理 */
  .htab{
    flex:1;
    text-align:center;
    padding:10px 4px;
    font-size:13px;
  }
  /* 补充底部内边距 */
  .home-page{padding-bottom:calc(56px + 20px);}
  .home-post-list{gap:0;margin-top:0;}
  .post-card{border-radius:0;box-shadow:none;border-bottom:1px solid var(--hbdr);margin-top:0 !important;}
  .hcard{border-radius:0;box-shadow:none;}
}
@media(max-width:600px){
  .live-gc-cover{width:136px;height:92px;}
  .live-grid-card{width:136px;}
  .post-card-title{font-size:15px;}
  .post-card-img{width:76px;height:56px;}
}
/* 股票帖子头部：stock logo图片样式 */
.post-card-avatar-stock-img{
  width:36px;height:36px;border-radius:8px;object-fit:cover;
  flex-shrink:0;background:#f2f4f8;
}
/* 股票帖子头部：无logo时显示文字占位头像 */
.post-card-avatar-stock{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:8px;
  background:linear-gradient(135deg,#ff7244,#e8552a);
  color:#fff;font-size:12px;font-weight:700;
  flex-shrink:0;letter-spacing:0;
}
/* 股票代码标签（显示在股票名称右侧） */
.post-card-scode{
  display:inline-block;margin-left:5px;
  font-size:11px;color:var(--hp);font-weight:600;
  background:var(--hp-l);border-radius:4px;
  padding:1px 5px;vertical-align:middle;
}
