/* ===== Reset & Base ===== */
*{margin:0;padding:0;box-sizing:border-box}
:root{
    /* Truth Social 深色主题色彩系统 */
    --ts-bg:#101010;
    --ts-bg-secondary:#181818;
    --ts-card-bg:#1a1a1a;
    --ts-card-hover:#222222;
    --ts-border:#2a2a2a;
    --ts-text:#e7e9ea;
    --ts-text-secondary:#71767b;
    --ts-text-muted:#536471;
    --ts-blue:#6d5bba;
    --ts-accent:#8b5cf6;
    --ts-reply:#71767b;
    --ts-retruth:#00ba7c;
    --ts-like:#f91880;
    --ts-link:#8b5cf6;
    --ts-verified:#6d5bba;
    /* 兼容旧变量 */
    --primary:#8b5cf6;
    --primary-dark:#7c3aed;
    --accent:#a855f7;
    --text:#e7e9ea;
    --text-light:#71767b;
    --text-muted:#536471;
    --white:#fff;
    --border:rgba(255,255,255,.08);
    --shadow:rgba(0,0,0,.3);
    --shadow-md:rgba(0,0,0,.4);
    --radius:16px;
    --radius-sm:12px;
    --radius-xs:8px;
    --transition:all .2s cubic-bezier(.4,0,.2,1);
}
html{overflow-x:hidden}
body{
    font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',Roboto,Helvetica,Arial,sans-serif;
    line-height:1.5;color:var(--ts-text);
    background:var(--ts-bg);
    min-height:100vh;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    overflow-x:hidden;
}
.container{max-width:700px;margin:0 auto;padding:0}

/* ===== Header - Truth Social 顶部导航风格 ===== */
.header{
    background:rgba(16,16,16,.85);
    backdrop-filter:saturate(180%) blur(20px);
    -webkit-backdrop-filter:saturate(180%) blur(20px);
    border-bottom:1px solid var(--ts-border);
    padding:0;
    position:sticky;top:0;z-index:100;
}
.header-inner{
    display:flex;align-items:center;justify-content:space-between;
    padding:12px 16px;
    gap:12px;
    max-width:700px;margin:0 auto;
}
.header-left{flex:1;min-width:0}
.logo{
    font-size:1.25rem;font-weight:800;
    color:var(--ts-text);
    display:flex;align-items:center;gap:8px;
    letter-spacing:-.3px;
}
.logo-icon{flex-shrink:0;stroke:var(--ts-accent)!important}
.logo-icon stop:first-child{stop-color:var(--ts-accent)!important}
.logo-icon stop:last-child{stop-color:var(--ts-accent)!important}
.tagline{color:var(--ts-text-secondary);font-size:.8rem;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.header-right{
    display:flex;align-items:center;gap:8px;
    flex-shrink:0;
}

/* ===== Language Switcher ===== */
.lang-switcher{position:relative;z-index:100}
.lang-current{
    display:flex;align-items:center;gap:5px;
    background:rgba(139,92,246,.12);border:1px solid rgba(139,92,246,.25);
    color:var(--ts-text);font-size:.78rem;padding:5px 10px;border-radius:8px;
    cursor:pointer;transition:all .2s;white-space:nowrap;
}
.lang-current:hover{background:rgba(139,92,246,.2);border-color:rgba(139,92,246,.4)}
.lang-current svg{opacity:.7}
.lang-dropdown{
    display:none;position:absolute;top:calc(100% + 6px);right:0;
    background:var(--ts-card-bg);border:1px solid var(--ts-border);border-radius:12px;
    padding:6px 0;min-width:160px;box-shadow:0 8px 30px rgba(0,0,0,.4);
    max-height:320px;overflow-y:auto;
}
.lang-switcher.open .lang-dropdown{display:block}
.lang-option{
    display:block;padding:8px 16px;color:var(--ts-text);text-decoration:none;
    font-size:.82rem;transition:background .15s;white-space:nowrap;
}
.lang-option:hover{background:rgba(139,92,246,.1)}
.lang-option.active{color:var(--ts-accent);font-weight:600;background:rgba(139,92,246,.08)}

@media(max-width:480px){
    .lang-current span{display:none}
    .lang-current{padding:5px 7px}
    .lang-dropdown{right:-40px}
}

/* Header 二维码下拉 */
.header-qr-mini{position:relative}
.header-qr-badge{
    display:flex;align-items:center;gap:5px;
    padding:7px 14px;
    border-radius:20px;
    background:var(--ts-accent);
    color:white;font-size:.78rem;font-weight:600;
    cursor:pointer;
    transition:var(--transition);
    white-space:nowrap;
}
.header-qr-badge:hover{opacity:.85}
.header-qr-dropdown{
    display:none;
    position:absolute;top:calc(100% + 10px);right:0;
    background:var(--ts-card-bg);
    border:1px solid var(--ts-border);
    border-radius:var(--radius);
    box-shadow:0 10px 40px rgba(0,0,0,.5);
    padding:16px;
    min-width:280px;
    z-index:200;
}
.header-qr-dropdown::before{
    content:'';position:absolute;top:-6px;right:20px;
    width:12px;height:12px;background:var(--ts-card-bg);
    transform:rotate(45deg);
    border-left:1px solid var(--ts-border);
    border-top:1px solid var(--ts-border);
}
.header-qr-mini:hover .header-qr-dropdown,
.header-qr-mini.active .header-qr-dropdown{
    display:flex;gap:16px;
}
.header-qr-dropdown-item{
    text-align:center;flex:1;
}
.header-qr-dropdown-item img{
    width:110px;height:110px;
    border-radius:var(--radius-sm);
    border:2px solid var(--ts-border);
    object-fit:contain;
    background:#222;
}
.header-qr-dropdown-item span{
    display:block;margin-top:8px;
    font-size:.82rem;color:var(--ts-text-secondary);font-weight:600;
}

/* Admin button */
.btn-admin{
    display:flex;align-items:center;gap:5px;
    padding:7px 14px;
    border-radius:20px;
    background:var(--ts-bg-secondary);
    border:1px solid var(--ts-border);
    color:var(--ts-text-secondary);font-size:.78rem;font-weight:600;
    cursor:pointer;text-decoration:none;
    transition:var(--transition);
    white-space:nowrap;
}
.btn-admin:hover{background:var(--ts-card-hover);color:var(--ts-text)}

/* ===== 侧边悬浮二维码 (桌面端) ===== */
.sidebar-qr{
    position:fixed;right:0;top:50%;
    transform:translateY(-50%);
    z-index:90;
    display:flex;align-items:center;
}
.sidebar-qr-toggle{
    writing-mode:vertical-lr;
    display:flex;align-items:center;gap:6px;
    padding:14px 10px;
    background:var(--ts-accent);
    color:white;font-size:.82rem;font-weight:700;
    border-radius:var(--radius-sm) 0 0 var(--radius-sm);
    cursor:pointer;
    transition:var(--transition);
    letter-spacing:2px;
    box-shadow:-2px 0 15px rgba(139,92,246,.25);
}
.sidebar-qr-toggle:hover{
    padding-right:14px;
    box-shadow:-4px 0 20px rgba(139,92,246,.4);
}
.sidebar-qr-toggle svg{transform:rotate(90deg)}
.sidebar-qr-panel{
    position:absolute;right:100%;top:50%;
    transform:translateY(-50%) translateX(20px);
    opacity:0;pointer-events:none;
    background:var(--ts-card-bg);
    border:1px solid var(--ts-border);
    border-radius:var(--radius);
    box-shadow:0 10px 50px rgba(0,0,0,.5);
    padding:20px;
    display:flex;flex-direction:column;gap:16px;
    transition:var(--transition);
    min-width:180px;
}
.sidebar-qr.open .sidebar-qr-panel{
    transform:translateY(-50%) translateX(0);
    opacity:1;pointer-events:auto;
}
.sidebar-qr-card{text-align:center}
.sidebar-qr-card img{
    width:130px;height:130px;
    border-radius:var(--radius-sm);
    border:2px solid var(--ts-border);
    object-fit:contain;
    background:#222;
}
.sidebar-qr-card span{
    display:block;margin-top:6px;
    font-size:.8rem;color:var(--ts-text-secondary);font-weight:600;
}

/* ===== 移动端悬浮按钮 ===== */
.mobile-qr-fab{
    display:none;
    position:fixed;right:16px;bottom:24px;
    width:52px;height:52px;
    background:var(--ts-accent);
    color:white;border-radius:50%;
    justify-content:center;align-items:center;
    box-shadow:0 4px 20px rgba(139,92,246,.4);
    cursor:pointer;z-index:90;
    transition:var(--transition);
    animation:fabPulse 2s infinite;
}
.mobile-qr-fab:active{transform:scale(.92)}
@keyframes fabPulse{
    0%,100%{box-shadow:0 4px 20px rgba(139,92,246,.4)}
    50%{box-shadow:0 4px 30px rgba(139,92,246,.6)}
}

/* 移动端二维码弹窗 */
.mobile-qr-modal{
    display:none;
    position:fixed;inset:0;z-index:200;
    justify-content:center;align-items:flex-end;
}
.mobile-qr-modal.open{display:flex}
.mobile-qr-modal-overlay{
    position:absolute;inset:0;
    background:rgba(0,0,0,.7);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
}
.mobile-qr-modal-content{
    position:relative;z-index:1;
    background:var(--ts-card-bg);
    border:1px solid var(--ts-border);
    border-radius:20px 20px 0 0;
    padding:28px 24px 36px;
    width:100%;max-width:420px;
    animation:slideUp .3s ease;
}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.mobile-qr-close{
    position:absolute;top:16px;right:16px;
    width:32px;height:32px;
    border:none;background:var(--ts-bg-secondary);
    border-radius:50%;font-size:1.2rem;
    color:var(--ts-text-secondary);cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:var(--transition);
}
.mobile-qr-close:hover{background:var(--ts-card-hover)}
.mobile-qr-modal-content h3{
    font-size:1.15rem;font-weight:700;
    color:var(--ts-text);margin-bottom:20px;text-align:center;
}
.mobile-qr-items{display:flex;gap:20px;justify-content:center}
.mobile-qr-item{text-align:center;flex:1}
.mobile-qr-item img{
    width:120px;height:120px;
    border-radius:var(--radius-sm);
    border:2px solid var(--ts-border);
    object-fit:contain;background:#222;
}
.mobile-qr-item span{
    display:block;margin-top:8px;
    font-size:.9rem;font-weight:700;color:var(--ts-text);
}
.mobile-qr-item p{
    font-size:.78rem;color:var(--ts-text-muted);margin-top:2px;
}

/* ===== Stats Bar ===== */
.stats-bar{
    display:flex;gap:1px;justify-content:center;
    margin:0;
    background:var(--ts-border);
    border-bottom:1px solid var(--ts-border);
}
.stat-item{
    background:var(--ts-bg);
    padding:14px 20px;
    text-align:center;flex:1;
    transition:var(--transition);
}
.stat-item:hover{
    background:var(--ts-bg-secondary);
}
.stat-number{
    display:block;font-size:1.4rem;font-weight:800;
    color:var(--ts-text);
}
.stat-label{color:var(--ts-text-secondary);font-size:.78rem;font-weight:500}

/* ===== Secondary Section (Collapsible) ===== */
.secondary-section{
    background:var(--ts-bg);
    border-bottom:1px solid var(--ts-border);
    overflow:hidden;
    transition:var(--transition);
}
.secondary-section:hover{
    background:var(--ts-bg-secondary);
}
.section-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:14px 16px;
    cursor:pointer;
    user-select:none;
    -webkit-user-select:none;
    -webkit-tap-highlight-color:transparent;
}
.section-header:hover{
    background:rgba(255,255,255,.03);
}
.section-title{
    font-size:.92rem;
    color:var(--ts-text-secondary);
    font-weight:600;
    display:flex;
    align-items:center;
    gap:8px;
    transition:var(--transition);
}
.section-title svg{
    width:18px;height:18px;
}
.collapse-icon{
    transition:transform .3s cubic-bezier(.4,0,.2,1);
    opacity:.6;
    color:var(--ts-text-secondary);
}
.secondary-section.collapsed .collapse-icon{
    transform:rotate(-90deg);
}
.section-content{
    padding:16px;
    animation:slideDown .3s cubic-bezier(.4,0,.2,1);
}
.secondary-section.collapsed .section-content{
    display:none;
}
@keyframes slideDown{
    from{opacity:0;transform:translateY(-10px)}
    to{opacity:1;transform:translateY(0)}
}

/* ===== KR Stock Ticker ===== */
.stock-ticker{
    display:flex;gap:8px;justify-content:center;
    margin:0 0 12px;flex-wrap:wrap;
}
.stock-card{
    background:var(--ts-card-bg);
    border:1px solid var(--ts-border);
    border-radius:var(--radius-sm);
    padding:14px 18px;
    min-width:200px;flex:1;max-width:340px;
    transition:var(--transition);
    cursor:default;
}
.stock-card:hover{
    background:var(--ts-card-hover);
}
.stock-card-header{
    display:flex;align-items:center;justify-content:space-between;
    margin-bottom:8px;
}
.stock-name{
    font-size:.82rem;font-weight:700;
    color:var(--ts-text);
    display:flex;align-items:center;gap:6px;
}
.stock-name .stock-flag{font-size:.95rem}
.stock-name .stock-symbol{
    font-size:.68rem;font-weight:500;
    color:var(--ts-text-muted);
    font-family:'SF Mono','Menlo',monospace;
}
.stock-market-state{
    font-size:.62rem;
    padding:2px 8px;border-radius:10px;
    font-weight:600;
}
.stock-market-open{background:rgba(16,185,129,.15);color:#10b981}
.stock-market-pre{background:rgba(234,179,8,.15);color:#eab308}
.stock-market-post{background:rgba(249,115,22,.15);color:#f97316}
.stock-market-closed{background:rgba(255,255,255,.06);color:var(--ts-text-muted)}
.stock-price-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.stock-price{
    font-size:1.45rem;font-weight:800;
    color:var(--ts-text);
    font-family:'SF Mono','DIN Alternate','Menlo',monospace;
    letter-spacing:.5px;
}
.stock-currency{font-size:.7rem;font-weight:500;color:var(--ts-text-muted);margin-left:2px}
.stock-change{
    display:flex;align-items:center;gap:3px;
    font-size:.82rem;font-weight:700;
    padding:2px 8px;border-radius:8px;
}
/* 中国标准：涨红跌绿 */
.stock-up{color:#ef4444;background:rgba(239,68,68,.1)}
.stock-down{color:#10b981;background:rgba(16,185,129,.1)}
.stock-flat{color:var(--ts-text-muted);background:rgba(255,255,255,.05)}
.stock-change-arrow{font-size:.75rem}
.stock-detail{display:flex;gap:12px;margin-top:8px;font-size:.72rem;color:var(--ts-text-muted)}
.stock-detail span{white-space:nowrap}
.stock-update-time{text-align:center;font-size:.7rem;color:var(--ts-text-muted);margin-top:4px}
.stock-loading{text-align:center;padding:16px;color:var(--ts-text-muted);font-size:.82rem}
.stock-error{text-align:center;padding:12px;color:#f87171;font-size:.78rem}

/* Stock Header Actions */
.stock-header-actions{display:flex;align-items:center;gap:8px}
.stock-share-btn{
    display:flex;align-items:center;justify-content:center;
    width:30px;height:30px;border-radius:8px;
    background:rgba(139,92,246,.12);border:1px solid rgba(139,92,246,.2);
    color:#a78bfa;cursor:pointer;
    transition:all .2s ease;
    -webkit-tap-highlight-color:transparent;
}
.stock-share-btn:hover{
    background:rgba(139,92,246,.25);border-color:rgba(139,92,246,.4);
    color:#c4b5fd;transform:scale(1.05);
}
.stock-share-btn:active{transform:scale(.95)}
.stock-share-btn svg{flex-shrink:0}

/* ===== Filter - 深色主题 ===== */
.filter-section{
    background:var(--ts-bg);
    border-bottom:1px solid var(--ts-border);
    padding:12px 16px;
    margin-bottom:0;
}
.filter-controls{
    display:flex;gap:10px;align-items:center;flex-wrap:wrap;
    max-width:700px;margin:0 auto;
}
.filter-group{display:flex;align-items:center;gap:6px}
.filter-group-search{flex:1;min-width:200px}
.filter-controls label{
    font-weight:600;color:var(--ts-text-secondary);
    white-space:nowrap;font-size:.85rem;
    display:flex;align-items:center;gap:4px;
}
.filter-controls label svg{stroke:var(--ts-text-secondary)}
.filter-controls input[type="date"],
.filter-controls input[type="text"]{
    padding:8px 12px;
    border:1px solid var(--ts-border);
    border-radius:var(--radius-xs);
    font-size:.9rem;transition:var(--transition);
    background:var(--ts-bg-secondary);
    color:var(--ts-text);
}
.filter-controls input:focus{
    outline:none;border-color:var(--ts-accent);
    box-shadow:0 0 0 3px rgba(139,92,246,.15);
    background:var(--ts-bg-secondary);
}
.filter-controls input::placeholder{color:var(--ts-text-muted)}
.filter-controls input[type="text"]{flex:1;min-width:0}
.btn-clear{
    display:flex;align-items:center;gap:4px;
    padding:8px 16px;border:1px solid var(--ts-border);border-radius:var(--radius-xs);
    background:var(--ts-bg-secondary);color:var(--ts-text-secondary);font-size:.85rem;
    cursor:pointer;transition:var(--transition);font-weight:500;
}
.btn-clear:hover{border-color:var(--ts-accent);color:var(--ts-accent)}

/* ============================================= */
/* ===== Truth Social 风格时间线 ================ */
/* ============================================= */

.timeline-header{
    display:flex;align-items:center;justify-content:space-between;
    padding:16px 16px 0;
    flex-wrap:wrap;gap:8px;
    max-width:700px;margin:0 auto;
}
.timeline-section .section-title{
    font-size:1.2rem;color:var(--ts-text);
    font-weight:800;
    text-shadow:none;
}
.update-info{
    font-size:.78rem;color:var(--ts-text-muted);
    background:rgba(255,255,255,.05);
    padding:4px 12px;border-radius:20px;
}

/* 去掉旧的时间线竖线 */
.timeline{position:relative;padding:0}
.timeline::before{display:none}

/* ===== Truth Social 帖子卡片 ===== */
.timeline-item{
    position:relative;
    margin:0;padding:0;
    opacity:0;animation:fadeIn .4s forwards;
    border-bottom:1px solid var(--ts-border);
}
.timeline-item:last-child{border-bottom:none}

@keyframes fadeIn{
    from{opacity:0;transform:translateY(8px)}
    to{opacity:1;transform:translateY(0)}
}

/* 去掉旧的时间线圆点 */
.timeline-item::before{display:none}

.timeline-card{
    background:transparent;
    padding:16px 16px 12px;
    border-radius:0;
    box-shadow:none;
    border:none;
    transition:background .15s ease;
    cursor:pointer;
}
.timeline-card:hover{
    background:rgba(255,255,255,.03);
    transform:none;
    box-shadow:none;
}

/* ===== Truth Social 帖子头部 - 模拟用户信息行 ===== */
.card-header{
    display:flex;
    align-items:flex-start;
    gap:0;
    margin-bottom:0;
    flex-wrap:nowrap;
}

/* 隐藏旧的 platform badge，由 JS 新结构代替 */
.platform-badge{display:none}

.card-time{
    color:var(--ts-text-muted);
    font-weight:400;font-size:.82rem;
    display:flex;align-items:center;gap:0;
    margin-left:auto;
}
.card-time svg{display:none}

/* ===== 帖子正文 - Truth Social 风格 ===== */
.card-body{
    background:transparent;
    padding:0;
    border-radius:0;
    border-left:none;
    margin-bottom:10px;
}

.card-en{
    font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
    font-size:.95rem;
    color:var(--ts-text);
    line-height:1.65;
    margin-bottom:0;
    white-space:pre-wrap;
    word-break:break-word;
}

.card-divider{
    border:none;
    border-top:1px solid var(--ts-border);
    margin:12px 0;
    opacity:.5;
}

.card-cn{
    font-size:.93rem;
    color:rgba(231,233,234,.7);
    line-height:1.7;
    white-space:pre-wrap;
    word-break:break-word;
}

/* ===== 帖子底部互动栏 - Truth Social 风格 ===== */
.card-footer{
    display:flex;
    gap:0;
    align-items:center;
    padding-top:8px;
    flex-wrap:nowrap;
    justify-content:flex-start;
}

.card-stat{
    display:flex;align-items:center;gap:5px;
    font-size:.82rem;
    color:var(--ts-text-muted);
    padding:4px 0;
    margin-right:24px;
    transition:var(--transition);
    cursor:pointer;
}
.card-stat:hover{color:var(--ts-text-secondary)}

.card-stat svg{
    width:17px;height:17px;
    fill:none;
    stroke:var(--ts-text-muted);
    stroke-width:1.8;
    transition:var(--transition);
}

/* 回复图标 hover */
.card-stat:nth-child(1):hover{color:var(--ts-reply)}
.card-stat:nth-child(1):hover svg{stroke:var(--ts-reply)}

/* 转发图标 hover */
.card-stat:nth-child(2):hover{color:var(--ts-retruth)}
.card-stat:nth-child(2):hover svg{stroke:var(--ts-retruth)}

/* 点赞图标 hover */
.card-stat:nth-child(3):hover{color:var(--ts-like)}
.card-stat:nth-child(3):hover svg{stroke:var(--ts-like)}

.card-link{
    margin-left:auto;
    font-size:.78rem;color:var(--ts-text-muted);text-decoration:none;
    font-weight:500;transition:var(--transition);
    display:flex;align-items:center;gap:3px;
    padding:4px 0;
}
.card-link:hover{color:var(--ts-accent)}

/* ===== Truth Social 用户信息（JS 新增结构）===== */
.ts-post{
    display:flex;
    gap:12px;
    align-items:flex-start;
}
.ts-avatar{
    flex-shrink:0;
    width:46px;height:46px;
    border-radius:50%;
    overflow:hidden;
    margin-top:2px;
}
.ts-avatar img{
    width:100%;height:100%;
    object-fit:cover;
}
.ts-post-content{
    flex:1;
    min-width:0;
}
.ts-user-row{
    display:flex;
    align-items:center;
    gap:4px;
    margin-bottom:2px;
    flex-wrap:wrap;
}
.ts-display-name{
    font-weight:700;
    font-size:.95rem;
    color:var(--ts-text);
    line-height:1.3;
}
.ts-verified{
    display:inline-flex;
    align-items:center;
    flex-shrink:0;
}
.ts-verified svg{
    width:18px;height:18px;
}
.ts-follow-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:18px;height:18px;
    border-radius:50%;
    border:1.5px solid var(--ts-accent);
    color:var(--ts-accent);
    font-size:12px;
    font-weight:700;
    line-height:1;
    margin-left:2px;
    cursor:pointer;
    flex-shrink:0;
}
.ts-username{
    font-size:.82rem;
    color:var(--ts-text-muted);
    font-weight:400;
}
.ts-post-time{
    font-size:.82rem;
    color:var(--ts-text-muted);
    margin-left:auto;
    white-space:nowrap;
    flex-shrink:0;
}
.ts-post-body{
    margin-top:4px;
}

/* ===== 互动数据行 - Truth Social 风格 ===== */
.ts-engagement{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    padding:10px 0 4px;
    font-size:.82rem;
    color:var(--ts-text-muted);
    border-bottom:none;
    overflow:hidden;
}
.ts-engagement-item{
    display:inline-flex;
    align-items:center;
    gap:3px;
}
.ts-engagement-count{
    font-weight:700;
    color:var(--ts-text);
}
.ts-engagement-label{
    color:var(--ts-text-muted);
}
.ts-engagement-dot{
    color:var(--ts-text-muted);
    margin:0 2px;
}
.ts-post-date{
    margin-left:auto;
    font-size:.82rem;
    color:var(--ts-text-muted);
}

/* ===== 帖子操作栏（底部4个图标）===== */
.ts-actions{
    display:flex;
    align-items:center;
    justify-content:space-around;
    padding:6px 0;
    margin-top:4px;
    border-top:1px solid var(--ts-border);
    max-width:420px;
}
.ts-action{
    display:flex;align-items:center;justify-content:center;
    gap:6px;
    padding:8px 12px;
    border-radius:50px;
    color:var(--ts-text-muted);
    font-size:.82rem;
    cursor:pointer;
    transition:var(--transition);
}
.ts-action svg{width:18px;height:18px;stroke-width:1.8}
.ts-action:hover{background:rgba(255,255,255,.05)}
.ts-action.ts-action-reply:hover{color:#1d9bf0}
.ts-action.ts-action-reply:hover svg{stroke:#1d9bf0}
.ts-action.ts-action-retruth:hover{color:var(--ts-retruth)}
.ts-action.ts-action-retruth:hover svg{stroke:var(--ts-retruth)}
.ts-action.ts-action-like:hover{color:var(--ts-like)}
.ts-action.ts-action-like:hover svg{stroke:var(--ts-like)}
.ts-action.ts-action-share:hover{color:var(--ts-accent)}
.ts-action.ts-action-share:hover svg{stroke:var(--ts-accent)}

/* ===== Footer ===== */
.footer{
    background:var(--ts-bg-secondary);
    border-top:1px solid var(--ts-border);
    color:var(--ts-text);padding:30px 16px;margin-top:0;
}
.footer-inner{
    display:flex;align-items:center;justify-content:space-between;
    flex-wrap:wrap;gap:20px;
    max-width:700px;margin:0 auto;
}
.footer-left p{color:var(--ts-text-secondary);font-size:.85rem}
.footer-qr{display:flex;gap:16px;align-items:center}
.footer-qr-item{text-align:center}
.footer-qr-item img{
    width:64px;height:64px;
    border-radius:8px;border:2px solid var(--ts-border);
    object-fit:contain;background:#222;
}
.footer-qr-item span{
    display:block;font-size:.72rem;
    color:var(--ts-text-muted);margin-top:4px;
}

/* ===== Loading & Empty ===== */
.loading-state,.empty-state{
    text-align:center;padding:60px 20px;color:var(--ts-text-secondary);
}
.loading-spinner{
    width:32px;height:32px;margin:0 auto 16px;
    border:3px solid var(--ts-border);
    border-top-color:var(--ts-accent);border-radius:50%;
    animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.empty-state-icon{font-size:2rem;margin-bottom:14px}
.empty-state-icon svg{stroke:var(--ts-text-muted)!important}
.empty-state-text{font-size:1rem;color:var(--ts-text-secondary)}

/* ===== 动画延迟 ===== */
.timeline-item:nth-child(1){animation-delay:0s}
.timeline-item:nth-child(2){animation-delay:.04s}
.timeline-item:nth-child(3){animation-delay:.08s}
.timeline-item:nth-child(4){animation-delay:.12s}
.timeline-item:nth-child(5){animation-delay:.16s}
.timeline-item:nth-child(6){animation-delay:.2s}
.timeline-item:nth-child(7){animation-delay:.24s}
.timeline-item:nth-child(8){animation-delay:.28s}
.timeline-item:nth-child(9){animation-delay:.32s}
.timeline-item:nth-child(10){animation-delay:.36s}

/* ============================================= */
/* ===== Responsive: Tablet (max-width:768px) == */
/* ============================================= */
@media(max-width:768px){
    .container{padding:0}
    
    /* Header */
    .header-inner{padding:10px 16px;gap:8px}
    .logo{font-size:1.1rem}
    .logo-icon{width:22px;height:22px}
    .tagline{font-size:.72rem}
    .header-qr-mini .header-qr-badge{padding:6px 10px;font-size:.7rem;gap:3px}
    .header-qr-mini .header-qr-badge svg{width:14px;height:14px}
    .header-qr-dropdown{display:none!important}
    .btn-admin-text{display:none}
    .btn-admin{padding:7px 10px}
    
    /* Stats */
    .stats-bar{gap:1px;margin:0}
    .stat-item{padding:10px 12px}
    .stat-number{font-size:1.15rem}
    .stat-label{font-size:.72rem}
    
    /* Stock Ticker */
    .stock-ticker{gap:6px;margin:0 0 10px}
    .stock-card{padding:10px 14px;min-width:0}
    .stock-price{font-size:1.2rem}
    .stock-change{font-size:.75rem}
    .stock-detail{gap:8px;font-size:.66rem}
    
    /* Filter */
    .filter-section{padding:10px 16px}
    .filter-controls{flex-direction:column;align-items:stretch;gap:8px}
    .filter-group{width:100%}
    .filter-group input{flex:1}
    .filter-group-search{min-width:0}
    
    /* Timeline */
    .timeline-header{padding:14px 16px 0}
    .timeline-section .section-title{font-size:1.05rem}
    .timeline-card{padding:14px 16px 10px}
    .card-en,.card-cn{font-size:.9rem}
    
    /* Avatar */
    .ts-avatar{width:40px;height:40px}
    .ts-display-name{font-size:.9rem}
    
    /* Sidebar QR hidden */
    .sidebar-qr{display:none!important}
    
    /* Mobile FAB visible */
    .mobile-qr-fab{display:flex}
    
    /* Footer */
    .footer-inner{flex-direction:column;text-align:center;gap:16px}
    .footer-qr-item img{width:52px;height:52px}
}

/* ============================================= */
/* ===== Responsive: Phone (max-width:480px) === */
/* ============================================= */
@media(max-width:480px){
    .header-inner{padding:8px 12px}
    .logo{font-size:1rem;gap:6px}
    .tagline{display:none}
    .header-qr-mini .header-qr-badge{padding:5px 8px;font-size:.65rem}
    
    .stats-bar{gap:1px}
    .stat-item{padding:8px 6px}
    .stat-number{font-size:1rem}
    .stat-label{font-size:.68rem}
    
    .stock-ticker{flex-direction:column;gap:6px}
    .stock-card{max-width:100%;padding:10px 12px}
    .stock-price{font-size:1.1rem}
    .stock-change{font-size:.7rem;padding:2px 6px}
    
    .timeline-card{padding:12px 14px 10px}
    .card-en,.card-cn{font-size:.88rem;line-height:1.6}
    .ts-avatar{width:36px;height:36px}
    .ts-display-name{font-size:.88rem}
    .ts-username{font-size:.78rem}
    .ts-engagement{font-size:.72rem;gap:4px}
    .ts-engagement-count{font-size:.72rem}
    .ts-post-date{font-size:.7rem}
    .ts-actions{max-width:100%}
    .ts-action{padding:6px 8px;font-size:.75rem;gap:4px}
    .ts-action svg{width:16px;height:16px}
    
    .mobile-qr-item img{width:100px;height:100px}
    .mobile-qr-fab{width:46px;height:46px;right:12px;bottom:18px}
}

/* ===== Desktop large ===== */
@media(min-width:769px){
    .mobile-qr-fab{display:none!important}
}

/* ===== Content Tabs 导航 ===== */
.content-tabs{
    display:flex;
    background:var(--ts-bg);
    border-bottom:1px solid var(--ts-border);
    position:relative;
    max-width:700px;margin:0 auto;
    gap:0;
}
.content-tab{
    flex:1;
    display:flex;align-items:center;justify-content:center;gap:8px;
    padding:14px 16px;
    background:none;border:none;
    color:var(--ts-text-muted);
    font-size:.92rem;font-weight:600;
    cursor:pointer;
    transition:var(--transition);
    position:relative;
    font-family:inherit;
    white-space:nowrap;
}
.content-tab:hover{
    color:var(--ts-text-secondary);
    background:rgba(255,255,255,.03);
}
.content-tab.active{
    color:var(--ts-accent);
}
.content-tab.active::after{
    content:'';
    position:absolute;
    bottom:0;left:20%;right:20%;
    height:3px;
    background:var(--ts-accent);
    border-radius:3px 3px 0 0;
}
.content-tab svg{
    flex-shrink:0;
    opacity:.7;
}
.content-tab.active svg{
    opacity:1;
    stroke:var(--ts-accent);
}
.tab-badge{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:20px;height:20px;
    padding:0 6px;
    border-radius:10px;
    background:var(--ts-accent);
    color:white;
    font-size:.68rem;font-weight:700;
    line-height:1;
}
.tab-badge:empty{display:none}

/* Tab panels */
.tab-panel{display:none}
.tab-panel.active{display:block}

/* ===== 情报速递分类筛选 ===== */
.report-category-filters{
    display:flex;gap:6px;
    flex-wrap:wrap;
    flex-shrink:0;
}
.report-cat-btn{
    padding:6px 14px;
    border:1px solid var(--ts-border);
    border-radius:20px;
    background:var(--ts-bg-secondary);
    color:var(--ts-text-secondary);
    font-size:.8rem;font-weight:600;
    cursor:pointer;
    transition:var(--transition);
    font-family:inherit;
    white-space:nowrap;
}
.report-cat-btn:hover{
    border-color:var(--ts-accent);
    color:var(--ts-accent);
}
.report-cat-btn.active{
    background:var(--ts-accent);
    border-color:var(--ts-accent);
    color:white;
}

/* ===== 情报速递头部 ===== */
.reports-header{
    display:flex;align-items:center;justify-content:space-between;
    padding:16px 16px 8px;
    flex-wrap:wrap;gap:8px;
    max-width:700px;margin:0 auto;
}

/* ===== 情报速递卡片列表 ===== */
.reports-grid{
    padding:8px 16px 16px;
    display:flex;flex-direction:column;
    gap:12px;
    max-width:700px;margin:0 auto;
}

.report-card{
    background:var(--ts-card-bg);
    border:1px solid var(--ts-border);
    border-radius:var(--radius-sm);
    padding:18px 16px;
    cursor:pointer;
    transition:var(--transition);
    opacity:0;
    animation:fadeIn .4s forwards;
}
.report-card:hover{
    border-color:var(--ts-accent);
    box-shadow:0 4px 20px rgba(139,92,246,.1);
    transform:translateY(-2px);
}

.report-card-header{
    display:flex;align-items:center;
    justify-content:space-between;
    margin-bottom:10px;
}
.report-card-topic{
    display:inline-block;
    padding:3px 10px;
    border-radius:10px;
    font-size:.72rem;font-weight:700;
    letter-spacing:.3px;
}
.report-card-time{
    font-size:.72rem;color:var(--ts-text-muted);
}

.report-card-title{
    font-size:1.02rem;
    font-weight:700;
    color:var(--ts-text);
    line-height:1.45;
    margin:0 0 8px;
}
.report-card-summary{
    font-size:.85rem;
    color:var(--ts-text-secondary);
    line-height:1.6;
    margin:0 0 10px;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

.report-card-preview{
    margin-bottom:10px;
}
.report-card-qa{
    font-size:.82rem;
    color:var(--ts-text-muted);
    padding:4px 0;
    line-height:1.5;
    display:-webkit-box;
    -webkit-line-clamp:1;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.report-qa-q{
    font-weight:700;
    color:var(--ts-accent);
    margin-right:4px;
}
.report-card-more{
    font-size:.78rem;
    color:var(--ts-accent);
    font-weight:600;
    margin-top:4px;
}

.report-card-footer{
    display:flex;align-items:center;
    justify-content:space-between;
    padding-top:10px;
    border-top:1px solid var(--ts-border);
}
.report-card-meta-info{
    font-size:.75rem;
    color:var(--ts-text-muted);
}
.report-card-section-count{
    font-size:.72rem;
    color:var(--ts-accent);
    font-weight:600;
}

/* ===== 报告详情页 ===== */
.report-detail-page{
    max-width:700px;margin:0 auto;
    padding:0 16px 40px;
}
.report-detail-header{
    display:flex;align-items:center;gap:10px;
    flex-wrap:wrap;
    margin-bottom:12px;
}
.report-detail-meta{
    font-size:.82rem;
    color:var(--ts-text-muted);
}
.report-detail-time{
    font-size:.78rem;
    color:var(--ts-text-muted);
}
.report-detail-title{
    font-size:1.5rem;
    font-weight:800;
    color:var(--ts-text);
    line-height:1.4;
    margin:0 0 16px;
}
.report-detail-summary{
    display:flex;align-items:flex-start;gap:8px;
    background:linear-gradient(135deg, rgba(139,92,246,.08), rgba(59,130,246,.06));
    border:1px solid rgba(139,92,246,.15);
    border-radius:var(--radius-sm);
    padding:14px 16px;
    margin-bottom:24px;
    font-size:.9rem;
    color:var(--ts-text-secondary);
    line-height:1.6;
}
.report-detail-summary svg{
    flex-shrink:0;margin-top:2px;
    stroke:var(--ts-accent);
}
.report-detail-sections{
    display:flex;flex-direction:column;gap:16px;
    margin-bottom:24px;
}
.report-detail-qa{
    background:var(--ts-card-bg);
    border:1px solid var(--ts-border);
    border-radius:var(--radius-sm);
    padding:16px;
    transition:var(--transition);
}
.report-detail-qa:hover{
    border-color:var(--ts-accent);
}
.report-qa-question{
    display:flex;align-items:flex-start;gap:10px;
    font-size:.95rem;
    font-weight:700;
    color:var(--ts-text);
    line-height:1.5;
    margin-bottom:10px;
}
.report-qa-num{
    flex-shrink:0;
    width:26px;height:26px;
    border-radius:50%;
    background:var(--ts-accent);
    color:white;
    display:flex;align-items:center;justify-content:center;
    font-size:.75rem;font-weight:800;
}
.report-qa-answer{
    font-size:.88rem;
    color:var(--ts-text-secondary);
    line-height:1.7;
    padding-left:36px;
}

/* 原文查看区 */
.report-source-section{
    margin-top:24px;
    padding-top:20px;
    border-top:1px solid var(--ts-border);
}
.report-source-title{
    font-size:1rem;
    font-weight:700;
    color:var(--ts-text);
    margin:0 0 12px;
}
.report-pdf-viewer{
    width:100%;height:500px;
    border:1px solid var(--ts-border);
    border-radius:var(--radius-sm);
    margin-bottom:8px;
}
.report-source-img{
    max-width:100%;
    border-radius:var(--radius-sm);
    border:1px solid var(--ts-border);
    cursor:pointer;
    transition:var(--transition);
}
.report-source-img:hover{
    border-color:var(--ts-accent);
    box-shadow:0 4px 16px rgba(139,92,246,.15);
}
.report-source-link{
    display:inline-block;
    font-size:.82rem;
    color:var(--ts-accent);
    text-decoration:none;
    font-weight:600;
}
.report-source-link:hover{text-decoration:underline}

/* ===== 情报卡片响应式 ===== */
@media(max-width:768px){
    .content-tabs{gap:0}
    .content-tab{padding:12px 10px;font-size:.85rem;gap:6px}
    .content-tab svg{width:14px;height:14px}
    .tab-badge{min-width:18px;height:18px;font-size:.62rem}
    
    .report-category-filters{gap:4px}
    .report-cat-btn{padding:5px 10px;font-size:.75rem}
    
    .report-card{padding:14px 12px}
    .report-card-title{font-size:.95rem}
    .report-card-summary{font-size:.82rem}
    .report-detail-title{font-size:1.25rem}
    .report-qa-answer{padding-left:0;margin-top:6px}
    .report-pdf-viewer{height:350px}
    
    #panel-reports .filter-section .filter-controls{
        flex-direction:column;align-items:stretch;gap:8px;
    }
}
@media(max-width:480px){
    .content-tab{padding:10px 8px;font-size:.82rem;gap:4px}
    .report-card-title{font-size:.9rem}
    .report-card-preview{display:none}
    .report-detail-title{font-size:1.1rem}
    .report-pdf-viewer{height:280px}
}

/* ===== SEO Summary Block ===== */
.seo-summary{
    background:var(--ts-bg);
    border-bottom:1px solid var(--ts-border);
    padding:18px 16px;
    margin:0;
    text-align:center;
    max-width:700px;margin:0 auto;
    border-radius:0;
}
.seo-summary-title{
    font-size:1rem;font-weight:700;
    color:var(--ts-text);
    margin-bottom:6px;
}
.seo-summary-text{
    font-size:.82rem;
    color:var(--ts-text-secondary);
    line-height:1.7;
    max-width:600px;
    margin:0 auto;
}
.seo-summary-text strong{
    color:var(--ts-text);
    font-weight:600;
}

/* ===== FAQ Section ===== */
.faq-section{
    margin:0;padding:20px 16px;
    max-width:700px;margin:0 auto;
    border-top:1px solid var(--ts-border);
}
.faq-title{
    font-size:1.15rem;font-weight:800;
    color:var(--ts-text);margin-bottom:16px;
    text-shadow:none;
}
.faq-list{
    display:flex;flex-direction:column;
    gap:1px;
    background:var(--ts-border);
    border-radius:var(--radius-sm);
    overflow:hidden;
}
.faq-item{
    background:var(--ts-card-bg);
    border-radius:0;
    overflow:hidden;
    transition:var(--transition);
    border:none;
}
.faq-item[open]{
    background:var(--ts-card-hover);
}
.faq-question{
    font-size:.9rem;font-weight:700;
    color:var(--ts-text);
    padding:14px 16px;
    cursor:pointer;
    list-style:none;
    display:flex;align-items:center;
    gap:10px;
    transition:var(--transition);
    user-select:none;
}
.faq-question::-webkit-details-marker{display:none}
.faq-question::before{
    content:'▸';
    font-size:.85rem;color:var(--ts-accent);
    transition:transform .2s ease;
    flex-shrink:0;
}
.faq-item[open] .faq-question::before{
    transform:rotate(90deg);
}
.faq-question:hover{
    background:rgba(255,255,255,.04);
}
.faq-answer{
    padding:0 16px 14px;
}
.faq-answer p{
    font-size:.85rem;
    color:var(--ts-text-secondary);
    line-height:1.75;
}

/* Footer sub text */
.footer-sub{
    opacity:.5;font-size:.78rem;margin-top:4px;
    color:var(--ts-text-muted);
}

/* ===== Mobile FAQ ===== */
@media(max-width:768px){
    .seo-summary{padding:14px 16px}
    .seo-summary-title{font-size:.92rem}
    .seo-summary-text{font-size:.78rem}
    .faq-section{padding:16px}
    .faq-title{font-size:1rem;margin-bottom:12px}
    .faq-question{font-size:.85rem;padding:12px 14px}
    .faq-answer{padding:0 14px 12px}
    .faq-answer p{font-size:.8rem}
}
@media(max-width:480px){
    .seo-summary{padding:12px}
    .seo-summary-title{font-size:.88rem}
    .seo-summary-text{font-size:.75rem}
    .faq-question{font-size:.82rem;padding:10px 12px}
}

/* ===== 保存分享按钮 ===== */
.ts-action.ts-action-save-share{
    color:var(--ts-accent);
    position:relative;
}
.ts-action.ts-action-save-share:hover{
    color:#a78bfa;
    background:rgba(139,92,246,.1);
}
.ts-action.ts-action-save-share:hover svg{
    stroke:#a78bfa;
}
.ts-action.ts-action-save-share svg{
    stroke:var(--ts-accent);
}
.ts-action.ts-action-save-share span{
    font-weight:600;
    font-size:.78rem;
}

/* ===== 分享预览弹窗 ===== */
.share-modal{
    display:none;
    position:fixed;inset:0;z-index:300;
    justify-content:center;align-items:center;
}
.share-modal.open{display:flex}
.share-modal-overlay{
    position:absolute;inset:0;
    background:rgba(0,0,0,.8);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}
.share-modal-content{
    position:relative;z-index:1;
    background:var(--ts-card-bg);
    border:1px solid var(--ts-border);
    border-radius:20px;
    padding:0;
    width:90%;max-width:420px;
    max-height:90vh;
    display:flex;flex-direction:column;
    animation:shareSlideUp .3s cubic-bezier(.4,0,.2,1);
    overflow:hidden;
    box-shadow:0 20px 60px rgba(0,0,0,.6);
}
@keyframes shareSlideUp{
    from{opacity:0;transform:translateY(30px) scale(.96)}
    to{opacity:1;transform:translateY(0) scale(1)}
}
.share-modal-header{
    display:flex;align-items:center;justify-content:space-between;
    padding:16px 20px;
    border-bottom:1px solid var(--ts-border);
    flex-shrink:0;
}
.share-modal-header h3{
    font-size:1rem;font-weight:700;
    color:var(--ts-text);margin:0;
}
.share-modal-close{
    width:32px;height:32px;border:none;
    background:var(--ts-bg-secondary);
    border-radius:50%;font-size:1.2rem;
    color:var(--ts-text-secondary);cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:var(--transition);
}
.share-modal-close:hover{background:var(--ts-card-hover);color:var(--ts-text)}
.share-modal-body{
    flex:1;overflow-y:auto;
    padding:16px;
    display:flex;align-items:center;justify-content:center;
    min-height:200px;
}
.share-loading{
    display:flex;flex-direction:column;
    align-items:center;justify-content:center;
    gap:12px;color:var(--ts-text-secondary);
}
.share-loading p{font-size:.88rem}
.share-preview-img{
    width:100%;height:auto;
    border-radius:12px;
    display:none;
    box-shadow:0 4px 20px rgba(0,0,0,.3);
}
.share-modal-footer{
    padding:16px 20px;
    border-top:1px solid var(--ts-border);
    display:flex;flex-direction:column;
    align-items:center;gap:10px;
    flex-shrink:0;
}
.share-btn-save{
    display:flex;align-items:center;justify-content:center;gap:8px;
    width:100%;padding:12px;
    border:none;border-radius:12px;
    background:linear-gradient(135deg,#8b5cf6,#6d5bba);
    color:white;font-size:.95rem;font-weight:700;
    cursor:pointer;
    transition:var(--transition);
    box-shadow:0 4px 15px rgba(139,92,246,.3);
}
.share-btn-save:hover{
    background:linear-gradient(135deg,#a78bfa,#8b5cf6);
    box-shadow:0 6px 20px rgba(139,92,246,.4);
    transform:translateY(-1px);
}
.share-btn-save:active{
    transform:translateY(0);
}
.share-tip{
    font-size:.78rem;
    color:var(--ts-text-muted);
    text-align:center;
}

/* 移动端适配 */
@media(max-width:768px){
    .share-modal-content{
        width:95%;max-width:none;
        max-height:85vh;
        border-radius:16px;
    }
    .share-modal-body{padding:12px}
}
@media(max-width:480px){
    .share-modal-content{
        width:100%;
        border-radius:16px 16px 0 0;
        max-height:90vh;
        align-self:flex-end;
    }
}

/* ===== 顶部订阅横幅（可关闭） ===== */
.subscribe-banner{
    background:linear-gradient(135deg,#1a1040 0%,#2a1a55 40%,#1e1245 100%);
    border-bottom:1px solid rgba(139,92,246,.3);
    padding:0;
    position:relative;
    overflow:hidden;
    transition:all .4s cubic-bezier(.4,0,.2,1);
    max-height:700px;
}
.subscribe-banner.hide{
    max-height:0;
    border-bottom:none;
    opacity:0;
    pointer-events:none;
}
.subscribe-banner::before{
    content:'';
    position:absolute;inset:0;
    background:radial-gradient(ellipse at 30% 0%,rgba(139,92,246,.12) 0%,transparent 60%),
               radial-gradient(ellipse at 70% 100%,rgba(168,139,250,.08) 0%,transparent 50%);
    pointer-events:none;
}
.subscribe-inner{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:10px;
    padding:18px 44px 16px 16px;
    max-width:700px;
    margin:0 auto;
    position:relative;
    text-align:center;
}
.subscribe-close{
    position:absolute;
    right:10px;top:10px;
    width:28px;height:28px;
    border:none;background:rgba(255,255,255,.06);
    border-radius:50%;font-size:1.1rem;
    color:var(--ts-text-muted);cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:var(--transition);
    line-height:1;
    z-index:2;
}
.subscribe-close:hover{
    background:rgba(255,255,255,.12);
    color:var(--ts-text-secondary);
}

/* 横幅头部 */
.subscribe-hero{
    display:flex;align-items:center;gap:10px;
}
.subscribe-hero-icon{
    flex-shrink:0;
    width:42px;height:42px;
    display:flex;align-items:center;justify-content:center;
    background:linear-gradient(135deg,rgba(139,92,246,.2),rgba(168,139,250,.15));
    border-radius:12px;
    color:#a78bfa;
    animation:bellRing 3s ease-in-out infinite;
}
@keyframes bellRing{
    0%,100%{transform:rotate(0)}
    5%{transform:rotate(12deg)}
    10%{transform:rotate(-10deg)}
    15%{transform:rotate(8deg)}
    20%{transform:rotate(-5deg)}
    25%{transform:rotate(0)}
}
.subscribe-hero-text{text-align:left}
.subscribe-headline{
    font-size:.95rem;
    color:var(--ts-text);
    display:block;
    letter-spacing:.2px;
}
.subscribe-value{
    font-size:.78rem;
    color:var(--ts-text-secondary);
    margin:2px 0 0;
    line-height:1.4;
}

/* 价值标签 */
.subscribe-benefits{
    display:flex;gap:8px;flex-wrap:wrap;justify-content:center;
}
.subscribe-benefit-tag{
    display:inline-flex;align-items:center;gap:4px;
    padding:3px 10px;
    border-radius:20px;
    background:rgba(139,92,246,.1);
    border:1px solid rgba(139,92,246,.2);
    color:#c4b5fd;
    font-size:.72rem;font-weight:600;
    white-space:nowrap;
}
.subscribe-benefit-tag svg{color:#a78bfa;flex-shrink:0}

/* 社交证明 */
.subscribe-social-proof{
    font-size:.76rem;
    color:var(--ts-text-muted);
    display:flex;align-items:center;gap:4px;
    justify-content:center;
}
.subscribe-social-proof strong{
    color:#a78bfa;font-weight:700;
}

/* 订阅表单 */
.subscribe-form{
    display:flex;gap:6px;
    width:100%;
    max-width:420px;
}
.subscribe-form input{
    flex:1;min-width:0;
    padding:10px 16px;
    border:1px solid rgba(139,92,246,.3);
    border-radius:10px;
    background:rgba(255,255,255,.06);
    color:var(--ts-text);
    font-size:.88rem;
    transition:var(--transition);
    outline:none;
}
.subscribe-form input::placeholder{color:var(--ts-text-muted)}
.subscribe-form input:focus{
    border-color:#8b5cf6;
    box-shadow:0 0 0 3px rgba(139,92,246,.15);
    background:rgba(255,255,255,.09);
}
.subscribe-btn{
    padding:10px 22px;
    border:none;border-radius:10px;
    background:linear-gradient(135deg,#8b5cf6,#7c3aed);
    color:white;font-size:.88rem;font-weight:700;
    cursor:pointer;
    transition:var(--transition);
    white-space:nowrap;
    display:flex;align-items:center;justify-content:center;
    min-width:90px;
    box-shadow:0 3px 12px rgba(139,92,246,.3);
}
.subscribe-btn:hover{
    background:linear-gradient(135deg,#a78bfa,#8b5cf6);
    box-shadow:0 5px 18px rgba(139,92,246,.4);
    transform:translateY(-1px);
}
.subscribe-btn:active{transform:translateY(0)}
.subscribe-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
.subscribe-btn-loading{display:inline-flex;align-items:center}
.subscribe-btn-loading svg{animation:spin .8s linear infinite}

.subscribe-msg{
    display:none;
    font-size:.78rem;
    padding:5px 12px;
    border-radius:6px;
    white-space:nowrap;
}
.subscribe-msg-success{color:#10b981;background:rgba(16,185,129,.12)}
.subscribe-msg-error{color:#f87171;background:rgba(248,113,113,.12)}

.subscribe-privacy{
    font-size:.68rem;
    color:rgba(255,255,255,.25);
    margin:0;
}

/* 已订阅状态 */
.subscribe-subscribed{
    display:flex;align-items:center;gap:10px;
    flex-wrap:wrap;justify-content:center;
}
.subscribe-icon-done{
    width:36px;height:36px;
    display:flex;align-items:center;justify-content:center;
    background:rgba(16,185,129,.15);
    border-radius:10px;
    color:#10b981;
    flex-shrink:0;
}
.subscribe-unsub-btn{
    padding:6px 14px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:6px;
    background:transparent;
    color:var(--ts-text-muted);
    font-size:.78rem;font-weight:500;
    cursor:pointer;
    transition:var(--transition);
    white-space:nowrap;
}
.subscribe-unsub-btn:hover{
    border-color:rgba(248,113,113,.4);
    color:#f87171;
    background:rgba(248,113,113,.08);
}
.subscribe-unsub-btn:disabled{opacity:.5;cursor:not-allowed}

/* 顶部横幅响应式 */
@media(max-width:768px){
    .subscribe-inner{padding:14px 40px 12px 12px;gap:8px}
    .subscribe-hero-icon{width:36px;height:36px}
    .subscribe-hero-icon svg{width:22px;height:22px}
    .subscribe-headline{font-size:.88rem}
    .subscribe-value{font-size:.74rem}
    .subscribe-benefits{gap:6px}
    .subscribe-benefit-tag{font-size:.68rem;padding:2px 8px}
    .subscribe-form input{padding:9px 12px;font-size:.84rem}
    .subscribe-btn{padding:9px 16px;font-size:.84rem;min-width:76px}
}
@media(max-width:480px){
    .subscribe-inner{padding:12px 34px 10px 10px;gap:6px}
    .subscribe-hero{gap:8px}
    .subscribe-hero-icon{width:32px;height:32px}
    .subscribe-hero-icon svg{width:20px;height:20px}
    .subscribe-headline{font-size:.82rem}
    .subscribe-value{font-size:.7rem}
    .subscribe-benefit-tag{font-size:.65rem;padding:2px 6px;gap:3px}
    .subscribe-benefit-tag svg{width:12px;height:12px}
    .subscribe-form{flex-direction:column;max-width:none}
    .subscribe-btn{width:100%;justify-content:center;padding:10px}
    .subscribe-close{width:24px;height:24px;font-size:.9rem;right:6px;top:6px}
    .subscribe-privacy{font-size:.62rem}
}

/* ===== 侧边常驻订阅入口（桌面端） ===== */
.sidebar-subscribe{
    position:fixed;right:0;top:42%;
    transform:translateY(-50%);
    z-index:89;
    display:flex;align-items:center;
}
.sidebar-sub-toggle{
    writing-mode:vertical-lr;
    display:flex;align-items:center;gap:6px;
    padding:14px 10px;
    background:linear-gradient(180deg,#f59e0b,#d97706);
    color:white;font-size:.82rem;font-weight:700;
    border-radius:var(--radius-sm) 0 0 var(--radius-sm);
    cursor:pointer;
    transition:var(--transition);
    letter-spacing:2px;
    box-shadow:-2px 0 15px rgba(245,158,11,.3);
    position:relative;
}
.sidebar-sub-toggle::after{
    content:'';
    position:absolute;
    width:8px;height:8px;
    background:#ef4444;
    border-radius:50%;
    top:8px;left:50%;
    transform:translateX(-50%);
    animation:dotPulse 2s infinite;
}
@keyframes dotPulse{
    0%,100%{opacity:1;transform:translateX(-50%) scale(1)}
    50%{opacity:.5;transform:translateX(-50%) scale(.7)}
}
.sidebar-sub-toggle.subscribed::after{display:none}
.sidebar-sub-toggle:hover{
    padding-right:14px;
    box-shadow:-4px 0 25px rgba(245,158,11,.45);
}
.sidebar-sub-toggle svg{transform:rotate(90deg)}
.sidebar-sub-panel{
    position:absolute;right:100%;top:50%;
    transform:translateY(-50%) translateX(20px);
    opacity:0;pointer-events:none;
    background:var(--ts-card-bg);
    border:1px solid var(--ts-border);
    border-radius:var(--radius);
    box-shadow:0 10px 50px rgba(0,0,0,.5);
    padding:20px;
    width:280px;
    transition:all .25s cubic-bezier(.4,0,.2,1);
}
.sidebar-subscribe.open .sidebar-sub-panel{
    transform:translateY(-50%) translateX(0);
    opacity:1;pointer-events:auto;
}
.sidebar-sub-header{
    display:flex;align-items:center;gap:8px;
    margin-bottom:8px;
}
.sidebar-sub-header strong{
    font-size:.92rem;color:var(--ts-text);
}
.sidebar-sub-desc{
    font-size:.78rem;
    color:var(--ts-text-secondary);
    line-height:1.55;
    margin:0 0 10px;
}
.sidebar-sub-tags{
    display:flex;gap:6px;margin-bottom:12px;
}
.sidebar-sub-tags span{
    padding:3px 8px;
    border-radius:4px;
    background:rgba(139,92,246,.1);
    color:#a78bfa;
    font-size:.68rem;font-weight:600;
}
.sidebar-sub-form{display:flex;flex-direction:column;gap:8px}
.sidebar-sub-form input{
    width:100%;
    padding:9px 12px;
    border:1px solid var(--ts-border);
    border-radius:8px;
    background:var(--ts-bg-secondary);
    color:var(--ts-text);
    font-size:.84rem;
    outline:none;
    transition:var(--transition);
}
.sidebar-sub-form input:focus{
    border-color:#8b5cf6;
    box-shadow:0 0 0 3px rgba(139,92,246,.12);
}
.sidebar-sub-form input::placeholder{color:var(--ts-text-muted)}
.sidebar-sub-btn{
    padding:9px 16px;
    border:none;border-radius:8px;
    background:linear-gradient(135deg,#8b5cf6,#7c3aed);
    color:white;font-size:.85rem;font-weight:700;
    cursor:pointer;
    transition:var(--transition);
    box-shadow:0 2px 10px rgba(139,92,246,.25);
}
.sidebar-sub-btn:hover{
    background:linear-gradient(135deg,#a78bfa,#8b5cf6);
    box-shadow:0 4px 15px rgba(139,92,246,.35);
    transform:translateY(-1px);
}
.sidebar-sub-btn:active{transform:translateY(0)}
.sidebar-sub-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
.sidebar-sub-msg{
    display:none;
    font-size:.76rem;
    padding:4px 8px;
    border-radius:4px;
    text-align:center;
}

/* 侧边已订阅状态 */
.sidebar-sub-subscribed{
    text-align:center;
    padding:8px 0;
}
.sidebar-sub-subscribed p{
    font-size:.78rem;
    color:var(--ts-text-secondary);
    margin:4px 0;
    word-break:break-all;
}
.sidebar-sub-subscribed .subscribe-icon-done{
    margin:0 auto 6px;
}

/* ===== 移动端订阅悬浮按钮 ===== */
.mobile-sub-fab{
    display:none;
    position:fixed;left:16px;bottom:24px;
    padding:10px 16px;
    background:linear-gradient(135deg,#f59e0b,#d97706);
    color:white;border-radius:50px;
    align-items:center;gap:6px;
    box-shadow:0 4px 20px rgba(245,158,11,.4);
    cursor:pointer;z-index:89;
    transition:var(--transition);
    font-size:.82rem;font-weight:700;
    animation:fabFloat 3s ease-in-out infinite;
}
.mobile-sub-fab svg{flex-shrink:0}
.mobile-sub-fab:active{transform:scale(.92)}
@keyframes fabFloat{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(-4px)}
}

/* 响应式：桌面端显示侧边栏，移动端显示 FAB */
@media(max-width:768px){
    .sidebar-subscribe{display:none!important}
    .mobile-sub-fab{display:flex}
}
@media(min-width:769px){
    .mobile-sub-fab{display:none!important}
}

/* ===== 帖子详情页 ===== */

.detail-page {
    min-height: 100vh;
    padding-top: 0;
    padding-bottom: 40px;
}

.detail-page .container {
    max-width: 700px;
    margin: 0 auto;
    padding: 0 16px;
}

/* 详情页模式：隐藏侧边订阅和移动端悬浮按钮（订阅横幅保留显示） */
body.detail-mode .mobile-sub-fab,
body.detail-mode .sidebar-subscribe {
    display: none !important;
}

/* 详情页顶部导航 */
.detail-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 0;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--ts-border);
}

.detail-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--ts-accent);
    text-decoration: none;
    font-size: 0.95rem;
    font-weight: 600;
    padding: 8px 16px;
    border-radius: 8px;
    background: rgba(139, 92, 246, 0.08);
    transition: all 0.2s;
}

.detail-back-btn:hover {
    background: rgba(139, 92, 246, 0.18);
    transform: translateX(-2px);
}

.detail-nav-title {
    font-size: 0.88rem;
    color: var(--ts-text-muted);
    font-weight: 500;
}

/* 详情卡片 */
.detail-card {
    background: var(--ts-card-bg);
    border: 1px solid var(--ts-border);
    border-radius: 16px;
    padding: 28px;
    margin-bottom: 24px;
}

/* 作者信息 */
.detail-author {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
}

.detail-avatar {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--ts-bg);
    border: 2px solid rgba(139, 92, 246, 0.3);
}

.detail-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.detail-author-info {
    flex: 1;
    min-width: 0;
}

.detail-display-name {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 1.08rem;
    font-weight: 800;
    color: var(--ts-text);
}

.detail-display-name .ts-verified {
    width: 20px;
    height: 20px;
}

.detail-username {
    font-size: 0.88rem;
    color: var(--ts-text-muted);
    margin-top: 2px;
}

.detail-source-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 8px;
    background: rgba(139, 92, 246, 0.1);
    color: var(--ts-accent);
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 600;
    transition: all 0.2s;
    white-space: nowrap;
}

.detail-source-btn:hover {
    background: rgba(139, 92, 246, 0.2);
}

/* 正文内容 */
.detail-body {
    margin-bottom: 20px;
}

.detail-original {
    margin-bottom: 0;
}

.detail-original-text {
    font-size: 1.15rem;
    line-height: 1.8;
    color: var(--ts-text);
    word-break: break-word;
    white-space: pre-wrap;
}

.detail-translation {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--ts-border);
}

.detail-translation-label {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--ts-accent);
    background: rgba(139, 92, 246, 0.1);
    padding: 3px 10px;
    border-radius: 4px;
    margin-bottom: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.detail-translation-text {
    font-size: 1.08rem;
    line-height: 1.85;
    color: var(--ts-text-secondary, var(--ts-text));
    word-break: break-word;
    white-space: pre-wrap;
    opacity: 0.92;
}

/* 元信息 */
.detail-meta {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 16px 0;
    border-top: 1px solid var(--ts-border);
    border-bottom: 1px solid var(--ts-border);
    margin-bottom: 16px;
}

.detail-date, .detail-platform {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.84rem;
    color: var(--ts-text-muted);
}

/* 互动数据 - 与首页保持一致的紧凑行内风格 */
.detail-engagement {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    padding: 10px 0 4px;
    font-size: .82rem;
    color: var(--ts-text-muted);
    border-bottom: none;
}

.detail-engagement-item {
    display: inline-flex;
    align-items: center;
    gap: 3px;
}

.detail-engagement-item + .detail-engagement-item::before {
    content: '·';
    color: var(--ts-text-muted);
    margin-right: 6px;
}

.detail-engagement-count {
    font-size: .82rem;
    font-weight: 700;
    color: var(--ts-text);
}

.detail-engagement-likes .detail-engagement-count {
    color: #f91880;
}

.detail-engagement-label {
    font-size: .82rem;
    color: var(--ts-text-muted);
}

/* 操作按钮 */
.detail-actions {
    display: flex;
    gap: 12px;
}

.detail-action-btn {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
    border: 1px solid var(--ts-border);
    background: transparent;
    color: var(--ts-text);
}

.detail-action-btn:hover {
    background: rgba(139, 92, 246, 0.08);
    border-color: var(--ts-accent);
    color: var(--ts-accent);
}

.detail-action-share {
    background: rgba(139, 92, 246, 0.08);
    border-color: rgba(139, 92, 246, 0.2);
    color: var(--ts-accent);
}

.detail-action-share:hover {
    background: rgba(139, 92, 246, 0.18);
}

/* 底部订阅 CTA */
.detail-subscribe-cta {
    background: var(--ts-card-bg);
    border: 1px solid var(--ts-border);
    border-radius: 16px;
    padding: 24px 28px;
    margin-bottom: 24px;
}

.detail-cta-inner {
    text-align: center;
}

.detail-cta-text {
    margin-bottom: 16px;
}

.detail-cta-text strong {
    font-size: 1rem;
    color: var(--ts-text);
    display: block;
    margin-bottom: 6px;
}

.detail-cta-text p {
    font-size: 0.84rem;
    color: var(--ts-text-muted);
    margin: 0;
}

.detail-cta-form {
    display: flex;
    gap: 8px;
    max-width: 500px;
    margin: 0 auto 8px;
}

.detail-cta-form input[type="email"] {
    flex: 1;
    padding: 10px 16px;
    border-radius: 8px;
    border: 1px solid var(--ts-border);
    background: var(--ts-bg);
    color: var(--ts-text);
    font-size: 0.88rem;
    outline: none;
    transition: border-color 0.2s;
}

.detail-cta-form input[type="email"]:focus {
    border-color: var(--ts-accent);
}

.detail-cta-btn {
    padding: 10px 20px;
    border-radius: 8px;
    border: none;
    background: var(--ts-accent);
    color: white;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}

.detail-cta-btn:hover {
    opacity: 0.9;
    transform: translateY(-1px);
}

.detail-sub-msg {
    font-size: 0.8rem;
    text-align: center;
    display: none;
}

/* 更多帖子推荐 */
.detail-more {
    background: var(--ts-card-bg);
    border: 1px solid var(--ts-border);
    border-radius: 16px;
    padding: 24px 28px;
    margin-bottom: 24px;
}

.detail-more h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--ts-text);
    margin: 0 0 16px 0;
}

.detail-more-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.detail-more-item {
    display: block;
    padding: 14px 0;
    border-top: 1px solid var(--ts-border);
    text-decoration: none;
    transition: all 0.15s;
}

.detail-more-item:first-child {
    border-top: none;
    padding-top: 0;
}

.detail-more-item:hover {
    opacity: 0.8;
}

.detail-more-text {
    font-size: 0.9rem;
    color: var(--ts-text);
    line-height: 1.6;
    margin-bottom: 6px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.detail-more-date {
    font-size: 0.78rem;
    color: var(--ts-text-muted);
}

.detail-view-all {
    display: block;
    text-align: center;
    padding: 14px 0 0;
    border-top: 1px solid var(--ts-border);
    margin-top: 4px;
    color: var(--ts-accent);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 600;
    transition: opacity 0.2s;
}

.detail-view-all:hover {
    opacity: 0.8;
}

/* 详情页响应式 */
@media (max-width: 768px) {
    .detail-page {
        padding-top: 70px;
    }

    .detail-card {
        padding: 20px 16px;
        border-radius: 12px;
    }

    .detail-original-text {
        font-size: 1.02rem;
    }

    .detail-translation-text {
        font-size: 0.96rem;
    }

    .detail-actions {
        flex-direction: column;
    }

    .detail-subscribe-cta {
        padding: 20px 16px;
    }

    .detail-cta-form {
        flex-direction: column;
    }

    .detail-more {
        padding: 20px 16px;
    }

    .detail-source-btn span {
        display: none;
    }
}

@media (max-width: 480px) {
    .detail-card {
        padding: 16px 14px;
    }

    .detail-avatar {
        width: 44px;
        height: 44px;
    }

    .detail-display-name {
        font-size: 0.98rem;
    }

    .detail-engagement-count {
        font-size: .72rem;
    }
}

/* ==================== AI 图片解读区块 ==================== */

/* 详情页 AI 解读 */
.ai-image-analysis {
    margin-top: 16px;
    padding: 16px 20px;
    background: linear-gradient(135deg, rgba(139, 92, 246, 0.06), rgba(99, 102, 241, 0.04));
    border: 1px solid rgba(139, 92, 246, 0.15);
    border-radius: 12px;
    position: relative;
}

.ai-image-analysis::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 3px;
    height: 100%;
    background: linear-gradient(180deg, #8b5cf6, #6366f1);
    border-radius: 12px 0 0 12px;
}

.ai-image-analysis-header {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    color: #8b5cf6;
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.ai-image-analysis-header svg {
    opacity: 0.8;
}

.ai-image-analysis-body {
    font-size: 0.92rem;
    line-height: 1.75;
    color: rgba(231, 233, 234, 0.8);
    word-break: break-word;
}

/* 首页卡片 AI 解读（简洁版） */
.ai-image-analysis-card {
    margin-top: 10px;
    padding: 10px 14px;
    background: rgba(139, 92, 246, 0.05);
    border: 1px solid rgba(139, 92, 246, 0.12);
    border-left: 3px solid rgba(139, 92, 246, 0.4);
    border-radius: 8px;
    cursor: default;
}

.ai-image-analysis-card-header {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 600;
    color: #8b5cf6;
    margin-bottom: 6px;
    letter-spacing: 0.3px;
}

.ai-image-analysis-card-body {
    font-size: 0.82rem;
    line-height: 1.65;
    color: rgba(231, 233, 234, 0.65);
    word-break: break-word;
}

/* 移动端适配 */
@media (max-width: 640px) {
    .ai-image-analysis {
        padding: 12px 14px;
        margin-top: 12px;
    }
    
    .ai-image-analysis-body {
        font-size: 0.85rem;
    }
    
    .ai-image-analysis-card {
        padding: 8px 10px;
    }
    
    .ai-image-analysis-card-body {
        font-size: 0.78rem;
    }
}

/* ===== 邀请系统样式 ===== */

.referral-container{
    width:100%;
    max-width:520px;
    margin:0 auto;
}

.referral-invite{
    text-align:center;
    padding:4px 0;
}

.referral-title{
    font-size:1rem;
    font-weight:700;
    color:var(--ts-text);
    margin-bottom:6px;
}

.referral-desc{
    font-size:.84rem;
    color:var(--ts-text-muted);
    margin-bottom:14px;
    line-height:1.5;
}

.referral-progress-wrap{
    margin-bottom:16px;
}

.referral-progress-bar{
    width:100%;
    height:8px;
    background:rgba(255,255,255,.1);
    border-radius:4px;
    overflow:hidden;
    margin-bottom:6px;
}

.referral-progress-fill{
    height:100%;
    background:linear-gradient(90deg,#8b5cf6,#a78bfa);
    border-radius:4px;
    transition:width .5s ease;
    min-width:4px;
}

.referral-progress-text{
    font-size:.82rem;
    color:var(--ts-text-muted);
}

.referral-link-section{
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.08);
    border-radius:10px;
    padding:12px 14px;
    margin-bottom:12px;
    text-align:left;
}

.referral-link-label{
    display:block;
    font-size:.78rem;
    color:var(--ts-text-muted);
    margin-bottom:6px;
    font-weight:500;
}

.referral-link-row{
    display:flex;
    gap:8px;
    align-items:stretch;
}

.referral-link-input{
    flex:1;
    padding:8px 12px;
    border-radius:8px;
    border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.06);
    color:var(--ts-text);
    font-size:.82rem;
    font-family:'Menlo','Courier New',monospace;
    outline:none;
    min-width:0;
}

.referral-copy-btn{
    display:flex;
    align-items:center;
    gap:4px;
    padding:8px 14px;
    border:none;
    border-radius:8px;
    background:linear-gradient(135deg,#8b5cf6,#6d5bba);
    color:white;
    font-size:.82rem;
    font-weight:600;
    cursor:pointer;
    white-space:nowrap;
    transition:all .2s ease;
}

.referral-copy-btn:hover{
    transform:translateY(-1px);
    box-shadow:0 4px 12px rgba(139,92,246,.3);
}

.referral-copy-btn:active{
    transform:translateY(0);
}

.referral-share-hint{
    font-size:.72rem;
    color:var(--ts-text-muted);
    margin-top:8px;
    opacity:.7;
}

.referral-progress-status{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    margin-top:6px;
}

.referral-refresh-btn{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:4px 12px;
    border:1px solid rgba(167,139,250,.4);
    border-radius:6px;
    background:rgba(167,139,250,.1);
    color:#a78bfa;
    font-size:.76rem;
    cursor:pointer;
    transition:all .2s ease;
    white-space:nowrap;
}

.referral-refresh-btn:hover{
    border-color:var(--ts-accent);
    color:var(--ts-accent);
    background:rgba(167,139,250,.2);
}

.referral-refresh-btn svg{
    flex-shrink:0;
}

.referral-refresh-btn:disabled{
    opacity:.5;
    cursor:not-allowed;
}

.referral-unlocked{
    text-align:center;
    padding:4px 0;
}

.referral-unlocked-title{
    font-size:1rem;
    font-weight:700;
    color:#10b981;
    margin-bottom:12px;
}

.referral-sub-form{
    display:flex;
    gap:8px;
    max-width:440px;
    margin:0 auto;
}

.referral-email-input{
    flex:1;
    padding:10px 14px;
    border-radius:8px;
    border:1px solid rgba(255,255,255,.15);
    background:rgba(255,255,255,.06);
    color:var(--ts-text);
    font-size:.9rem;
    outline:none;
    min-width:0;
}

.referral-email-input:focus{
    border-color:#8b5cf6;
    box-shadow:0 0 0 3px rgba(139,92,246,.15);
}

.referral-email-input::placeholder{
    color:var(--ts-text-muted);
}

.referral-sub-msg{
    margin-top:8px;
}

/* 侧边栏内的邀请容器 - 更紧凑 */
#sidebar-referral-container .referral-title{
    font-size:.9rem;
}

#sidebar-referral-container .referral-desc{
    font-size:.78rem;
}

#sidebar-referral-container .referral-link-row{
    flex-direction:column;
}

#sidebar-referral-container .referral-copy-btn{
    width:100%;
    justify-content:center;
}

/* 移动端适配 */
@media(max-width:600px){
    .referral-sub-form{
        flex-direction:column;
    }
    .referral-link-row{
        flex-direction:column;
    }
    .referral-copy-btn{
        width:100%;
        justify-content:center;
    }
}

/* ===== 小程序推广弹窗 ===== */
.miniapp-modal{
    display:none;
    position:fixed;inset:0;z-index:250;
    justify-content:center;align-items:center;
}
.miniapp-modal.open{display:flex}
.miniapp-modal-overlay{
    position:absolute;inset:0;
    background:rgba(0,0,0,.75);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
}
.miniapp-modal-content{
    position:relative;z-index:1;
    background:linear-gradient(135deg,#1a1040 0%,#2a1a55 40%,#1e1245 100%);
    border:1px solid rgba(139,92,246,.3);
    border-radius:20px;
    padding:32px 28px 24px;
    width:90%;max-width:340px;
    text-align:center;
    animation:miniappSlideUp .35s cubic-bezier(.4,0,.2,1);
    box-shadow:0 20px 60px rgba(0,0,0,.6);
}
@keyframes miniappSlideUp{
    from{opacity:0;transform:translateY(30px) scale(.95)}
    to{opacity:1;transform:translateY(0) scale(1)}
}
.miniapp-modal-close{
    position:absolute;top:12px;right:12px;
    width:32px;height:32px;
    border:none;background:rgba(255,255,255,.08);
    border-radius:50%;font-size:1.2rem;
    color:var(--ts-text-muted);cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:var(--transition);
    line-height:1;
}
.miniapp-modal-close:hover{background:rgba(255,255,255,.15);color:var(--ts-text)}
.miniapp-modal-badge{
    display:inline-flex;align-items:center;gap:5px;
    padding:4px 12px;border-radius:20px;
    background:rgba(16,185,129,.15);color:#10b981;
    font-size:.72rem;font-weight:600;
    margin-bottom:14px;
}
.miniapp-modal-badge svg{flex-shrink:0}
.miniapp-modal-title{
    font-size:1.15rem;font-weight:800;
    color:var(--ts-text);margin:0 0 6px;
    line-height:1.4;
}
.miniapp-modal-desc{
    font-size:.84rem;color:var(--ts-text-secondary);
    line-height:1.55;margin:0 0 18px;
}
.miniapp-modal-qr{
    width:180px;height:180px;
    border-radius:16px;
    border:3px solid rgba(139,92,246,.3);
    margin:0 auto 14px;
    object-fit:contain;
    background:#fff;
    box-shadow:0 4px 20px rgba(139,92,246,.2);
}
.miniapp-modal-hint{
    font-size:.72rem;color:var(--ts-text-muted);
    margin:0;opacity:.7;
}
.miniapp-modal-features{
    display:flex;gap:8px;justify-content:center;
    margin-bottom:16px;flex-wrap:wrap;
}
.miniapp-modal-feature{
    display:inline-flex;align-items:center;gap:3px;
    padding:3px 10px;border-radius:20px;
    background:rgba(139,92,246,.1);
    border:1px solid rgba(139,92,246,.2);
    color:#c4b5fd;font-size:.7rem;font-weight:600;
    white-space:nowrap;
}

@media(max-width:480px){
    .miniapp-modal-content{padding:24px 20px 18px;max-width:300px}
    .miniapp-modal-qr{width:150px;height:150px}
    .miniapp-modal-title{font-size:1.05rem}
    .miniapp-modal-desc{font-size:.8rem}
}

/* ===== 信息流小程序推广卡片（帖子列表中穿插） ===== */
.miniapp-feed-card{
    border-bottom:1px solid var(--ts-border);
    padding:16px;
    background:linear-gradient(135deg,rgba(26,16,64,.6) 0%,rgba(42,26,85,.4) 100%);
    display:flex;align-items:center;gap:16px;
    cursor:pointer;
    transition:background .2s;
}
.miniapp-feed-card:hover{
    background:linear-gradient(135deg,rgba(26,16,64,.8) 0%,rgba(42,26,85,.6) 100%);
}
.miniapp-feed-qr{
    width:80px;height:80px;
    border-radius:12px;
    border:2px solid rgba(139,92,246,.25);
    flex-shrink:0;
    object-fit:contain;
    background:#fff;
}
.miniapp-feed-info{
    flex:1;min-width:0;
}
.miniapp-feed-badge{
    display:inline-flex;align-items:center;gap:4px;
    padding:2px 8px;border-radius:12px;
    background:rgba(16,185,129,.12);color:#10b981;
    font-size:.68rem;font-weight:600;
    margin-bottom:6px;
}
.miniapp-feed-title{
    font-size:.92rem;font-weight:700;
    color:var(--ts-text);margin:0 0 4px;
    line-height:1.4;
}
.miniapp-feed-desc{
    font-size:.78rem;color:var(--ts-text-secondary);
    margin:0;line-height:1.45;
}
.miniapp-feed-arrow{
    flex-shrink:0;
    color:var(--ts-text-muted);
    opacity:.5;
}

@media(max-width:480px){
    .miniapp-feed-card{padding:12px 14px;gap:12px}
    .miniapp-feed-qr{width:64px;height:64px}
    .miniapp-feed-title{font-size:.85rem}
    .miniapp-feed-desc{font-size:.74rem}
}

/* ===== 底部浮动小程序推广条 ===== */
.miniapp-bottom-bar{
    display:none;
    position:fixed;bottom:0;left:0;right:0;
    z-index:95;
    background:linear-gradient(135deg,#1a1040 0%,#2a1a55 100%);
    border-top:1px solid rgba(139,92,246,.3);
    padding:10px 16px;
    box-shadow:0 -4px 20px rgba(0,0,0,.4);
    animation:miniappBarSlide .3s ease;
}
.miniapp-bottom-bar.show{display:block}
@keyframes miniappBarSlide{
    from{transform:translateY(100%)}
    to{transform:translateY(0)}
}
.miniapp-bar-inner{
    display:flex;align-items:center;gap:12px;
    max-width:700px;margin:0 auto;
}
.miniapp-bar-qr{
    width:44px;height:44px;
    border-radius:10px;
    border:2px solid rgba(139,92,246,.25);
    flex-shrink:0;
    object-fit:contain;
    background:#fff;
}
.miniapp-bar-text{
    flex:1;min-width:0;
}
.miniapp-bar-title{
    font-size:.82rem;font-weight:700;
    color:var(--ts-text);margin:0;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.miniapp-bar-desc{
    font-size:.68rem;color:var(--ts-text-muted);
    margin:2px 0 0;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.miniapp-bar-btn{
    padding:8px 16px;border:none;border-radius:20px;
    background:var(--ts-accent);color:white;
    font-size:.78rem;font-weight:700;
    cursor:pointer;white-space:nowrap;
    transition:var(--transition);
    flex-shrink:0;
}
.miniapp-bar-btn:hover{opacity:.85}
.miniapp-bar-close{
    width:28px;height:28px;border:none;
    background:rgba(255,255,255,.08);
    border-radius:50%;font-size:1rem;
    color:var(--ts-text-muted);cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:var(--transition);
    flex-shrink:0;
    line-height:1;
}
.miniapp-bar-close:hover{background:rgba(255,255,255,.15);color:var(--ts-text)}

@media(max-width:480px){
    .miniapp-bottom-bar{padding:8px 12px}
    .miniapp-bar-qr{width:38px;height:38px}
    .miniapp-bar-btn{padding:6px 12px;font-size:.72rem}
}
