  * { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
  html,body { height:100%; overflow:hidden; background:#000; font-family:-apple-system,'PingFang SC','Microsoft YaHei',sans-serif; color:#fff; user-select:none; }
  :root { --fs-base:17px; --fs-title:20px; --fs-icon:30px; --fs-tab:16px; --avatar-size:54px; --action-gap:14px; }

  /* 用户协议勾选行 */
  .agree-row { display:flex; align-items:flex-start; gap:6px; font-size:12px; color:#aaa; margin:6px 0; cursor:pointer; }
  .agree-row input { margin-top:2px; flex-shrink:0; }
  .agree-row a { color:#fe2c55; text-decoration:none; }
  .agree-row a:active { opacity:.7; }

  /* 新手引导浮层 */
  .onboarding-mask {
    position:fixed; inset:0; z-index:500; background:rgba(0,0,0,.82);
    display:none; align-items:center; justify-content:center;
  }
  .onboarding-mask.show { display:flex; }
  .onboard-card {
    background:linear-gradient(135deg,#1b1f3a,#252850); border-radius:20px;
    padding:28px 24px; max-width:340px; width:88%; text-align:center;
    animation:onboardIn .4s ease both;
  }
  @keyframes onboardIn { from{opacity:0;transform:scale(.9) translateY(20px);} to{opacity:1;transform:scale(1) translateY(0);} }
  .onboard-icon { font-size:48px; margin-bottom:12px; }
  .onboard-title { font-size:20px; font-weight:800; color:#fff; margin-bottom:10px; }
  .onboard-desc { font-size:14px; color:#bbb; line-height:1.7; margin-bottom:20px; }
  .onboard-dots { display:flex; gap:6px; justify-content:center; margin-bottom:18px; }
  .onboard-dot { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.2); transition:all .3s; }
  .onboard-dot.active { background:#fe2c55; width:24px; border-radius:4px; }
  .onboard-btn { padding:12px; border-radius:12px; border:none; background:linear-gradient(135deg,#fe2c55,#ff5067); color:#fff; font-size:15px; font-weight:700; cursor:pointer; width:100%; }
  /* 语音/发现页/消息/评论等界面 */

  #app { position:relative; width:100%; max-width:430px; height:100vh; max-height:932px; margin:0 auto; overflow:hidden; background:#000; }
  .video-swiper {
    position:absolute; inset:0; overflow:hidden;
    transform:translateY(0); transition:transform .35s cubic-bezier(.22,.61,.36,1);
    will-change:transform;
  }
  .video-slide {
    position:absolute; left:0; width:100%; height:100%; overflow:hidden;
    display:flex; align-items:center; justify-content:center; background:#000;
    transition:opacity .2s; will-change:transform,opacity;
  }
  .video-slide.active { z-index:3; }
  .video-slide:not(.active) { z-index:1; opacity:.6; }
  /* v6.5.7 高清渲染：强制 GPU 合成层，避免 WebView 软合成导致的视频模糊/掉帧 */
  .video-slide video { width:100%; height:100%; object-fit:cover; transform:translateZ(0); -webkit-transform:translateZ(0); backface-visibility:hidden; -webkit-backface-visibility:hidden; }

  .overlay-grad {
    position:absolute; inset:0; pointer-events:none; z-index:5;
    background:linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 18%, transparent 60%, rgba(0,0,0,.6) 100%);
  }

  /* ===== 顶部栏 ===== */
  .top-bar {
    position:absolute; top:0; left:0; right:0; z-index:20;
    padding:14px 16px 10px; display:flex; align-items:center; justify-content:space-between;
    background:linear-gradient(180deg,rgba(0,0,0,.4),transparent);
  }
  .top-left { display:flex; align-items:center; gap:10px; }
  .top-icon { font-size:calc(var(--fs-icon) * 1.1); cursor:pointer; text-shadow:0 2px 6px rgba(0,0,0,.5); padding:4px; color:#fff; display:flex; align-items:center; justify-content:center; }
  .top-icon svg { width:24px; height:24px; }
  .top-right { display:flex; align-items:center; gap:10px; }

  /* ===== 右侧操作栏（纯图标） ===== */
  .action-bar {
    position:absolute; right:12px; bottom:140px; z-index:20;
    display:flex; flex-direction:column; align-items:center; gap:var(--action-gap);
  }
  .avatar-wrap {
    position:relative; width:var(--avatar-size); height:var(--avatar-size);
    border-radius:50%; border:2px solid #fff; overflow:hidden; margin-bottom:4px; cursor:pointer;
    background:#333; display:flex; align-items:center; justify-content:center; font-size:28px;
  }

  .act-btn { display:flex; flex-direction:column; align-items:center; gap:4px; cursor:pointer; }
  .act-icon {
    width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-size:var(--fs-icon); text-shadow:0 2px 6px rgba(0,0,0,.5); transition:transform .2s; color:#fff;
  }
  .act-icon svg { width:28px; height:28px; }
  .act-icon.bare { width:auto; height:auto; border-radius:0; background:none; text-shadow:0 2px 6px rgba(0,0,0,.5); }
  .act-icon.bare svg { width:30px; height:30px; }
  /* 分享按钮：用户提供的漩涡图标（透明底白色） */
  .share-swirl-icon { width:30px; height:30px; object-fit:contain; display:block;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,.3)); transition:transform .15s ease; }
  .act-btn:active .share-swirl-icon { transform:scale(.88) rotate(30deg); }

  /* ===== 分享弹窗 ===== */
  .share-sheet { position:fixed; left:0; right:0; bottom:0; z-index:200; background:#141417; border-radius:20px 20px 0 0; padding:18px 16px 24px; transform:translateY(110%); transition:transform .3s cubic-bezier(.32,.72,.35,1); max-height:70vh; overflow-y:auto; }
  .share-sheet.show { transform:translateY(0); }
  .share-sheet h3 { display:flex; align-items:center; justify-content:space-between; font-size:16px; font-weight:700; color:#fff; margin-bottom:14px; }
  .share-sheet .back-btn { background:none; border:none; color:#999; font-size:20px; cursor:pointer; width:32px; height:32px; display:flex; align-items:center; justify-content:center; }
  .share-opts { display:grid; grid-template-columns:repeat(4, 1fr); gap:14px 8px; margin-bottom:10px; }
  .share-opt { display:flex; flex-direction:column; align-items:center; gap:6px; cursor:pointer; }
  .share-opt .ic { width:48px; height:48px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:24px; }
  .share-opt .lb { font-size:11px; color:#ccc; }
  .share-cancel { width:100%; margin-top:14px; padding:12px; border-radius:12px; border:none; background:rgba(255,255,255,.08); color:#999; font-size:14px; cursor:pointer; }

  .act-btn.favorited .act-icon { color:#fbbf24; }
  .act-btn:active .act-icon { transform:scale(.82); }
  .act-btn .num { font-size:12px; font-weight:600; text-shadow:0 1px 3px rgba(0,0,0,.5); }
  .act-btn.liked .act-icon { color:#fe2c55; }

  /* 发布按钮：实心红色 */
  .avatar-img { width:100%; height:100%; object-fit:cover; border-radius:50%; }
  .grid-thumb .avatar-img { width:100%; height:100%; object-fit:cover; border-radius:12px; }

  /* ===== 底部信息区 ===== */
  .bottom-info { position:absolute; left:0; right:80px; bottom:80px; z-index:20; padding:0 16px; }
  .username { font-size:var(--fs-title); font-weight:700; margin-bottom:6px; text-shadow:0 2px 4px rgba(0,0,0,.4); }
  .desc { font-size:var(--fs-base); line-height:1.5; opacity:.92; max-height:60px; overflow:hidden; text-shadow:0 2px 4px rgba(0,0,0,.4); }
  .music-info { display:flex; align-items:center; gap:6px; margin-top:8px; }
  .music-icon { font-size:14px; animation:rotate 3s linear infinite; }
  .music-text { font-size:13px; opacity:.85; text-shadow:0 2px 4px rgba(0,0,0,.4); }
  @keyframes rotate { from{transform:rotate(0)} to{transform:rotate(360deg)} }

  .progress-bar { position:absolute; bottom:60px; left:0; right:0; height:14px; z-index:25; display:flex; align-items:center; cursor:pointer; }
  .progress-track { position:relative; width:100%; height:3px; background:rgba(255,255,255,.2); border-radius:2px; overflow:hidden; }
  .progress-fill { height:100%; background:#fe2c55; width:0%; transition:width .1s linear; }
  .player-ctrl {
    position:absolute; bottom:74px; left:12px; right:12px; z-index:26; height:44px;
    display:flex; align-items:center; gap:14px; padding:0 14px; border-radius:22px;
    background:rgba(0,0,0,.55); backdrop-filter:blur(10px);
    opacity:0; pointer-events:none; transition:opacity .25s; color:#fff;
  }
  .player-ctrl.show { opacity:1; pointer-events:auto; }
  .player-ctrl .ctrl-btn { font-size:20px; cursor:pointer; width:32px; height:32px; display:flex; align-items:center; justify-content:center; border-radius:50%; transition:transform .15s, background .2s; }
  .player-ctrl .ctrl-btn:active { transform:scale(.85); background:rgba(255,255,255,.2); }
  .player-ctrl .ctrl-time { font-size:12px; opacity:.85; flex:1; text-align:center; font-variant-numeric:tabular-nums; }
  .player-ctrl .ctrl-btn.speed { width:auto; padding:0 8px; font-size:13px; font-weight:700; letter-spacing:.3px; font-variant-numeric:tabular-nums; }

  /* ===== 沉浸式流媒体全屏（只保留进度条） ===== */
  .fullscreen-overlay {
    position:fixed; left:0; top:0; width:100vw; height:100vh; z-index:999;
    background:transparent; display:flex; flex-direction:column; align-items:center; justify-content:center;
    user-select:none; -webkit-user-select:none;
    opacity:0; transition:opacity .3s ease;
  }
  .fullscreen-overlay.show { opacity:1; }
  .fullscreen-overlay .fs-stage {
    position:relative;
    width:100vw; height:100vh;
    background:transparent;
  }
  .fullscreen-overlay .fs-bottom {
    position:fixed; left:0; right:0; bottom:0; z-index:3;
    padding:10px 16px 24px; box-sizing:border-box;
    background:linear-gradient(transparent, rgba(0,0,0,.5));
  }
  .fullscreen-overlay .fs-progress-bar { width:100%; height:14px; display:flex; align-items:center; cursor:pointer; }
  .fullscreen-overlay .fs-progress-track { width:100%; height:3px; background:rgba(255,255,255,.2); border-radius:2px; overflow:hidden; }
  .fullscreen-overlay .fs-progress-fill { height:100%; background:#fe2c55; width:0%; transition:width .1s linear; }

  /* 全屏信息区：标题 + @作者 + #话题 */
  .fullscreen-overlay .fs-info {
    margin-top: 10px;
    padding: 0 4px;
    pointer-events: none;
    user-select: none;
    -webkit-user-select: none;
  }
  .fullscreen-overlay .fs-title {
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 6px;
    text-shadow: 0 1px 3px rgba(0,0,0,.6);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-all;
  }
  .fullscreen-overlay .fs-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    line-height: 1.3;
  }
  .fullscreen-overlay .fs-author {
    color: rgba(255,255,255,.9);
    font-weight: 600;
    text-shadow: 0 1px 2px rgba(0,0,0,.5);
  }
  .fullscreen-overlay .fs-topics {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }
  .fullscreen-overlay .fs-topics .topic-tag {
    color: #60a5fa;
    font-size: 12px;
    font-weight: 500;
    text-shadow: 0 1px 2px rgba(0,0,0,.5);
  }

  /* ===== v6.6.6 沉浸式全屏唯一模式：顶部菜单/搜索 + 底部功能弹窗 ===== */
  /* 全屏顶部（播放中隐藏，暂停时自动显示） */
  .fullscreen-overlay .fs-top {
    position:absolute; top:0; left:0; right:0; z-index:6;
    pointer-events:none; opacity:0; transition:opacity .25s ease;
  }
  .fullscreen-overlay .fs-top.show { opacity:1; pointer-events:auto; }
  .fullscreen-overlay .fs-top .top-bar { position:static; background:linear-gradient(180deg,rgba(0,0,0,.55),transparent); }
  .fullscreen-overlay .fs-top .elder-tip-float { top:56px; left:14px; }
  .fullscreen-overlay .fs-top .elder-badge { top:56px; right:14px; }
  /* 全屏底部功能弹窗（播放中收起，暂停时自动弹出） */
  .fullscreen-overlay .fs-sheet {
    position:absolute; left:0; right:0; bottom:0; z-index:7;
    max-height:78vh; overflow-y:auto; -webkit-overflow-scrolling:touch;
    background:rgba(12,12,18,.94); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
    border-radius:22px 22px 0 0;
    box-shadow:0 -8px 30px rgba(0,0,0,.45);
    transform:translateY(108%); transition:transform .32s cubic-bezier(.22,.61,.36,1);
    padding:14px 16px calc(14px + env(safe-area-inset-bottom)); box-sizing:border-box;
  }
  .fullscreen-overlay .fs-sheet.show { transform:translateY(0); }
  /* 弹窗内部：原主播放模式控件全部重排为流式布局（原本均为 absolute/fixed 定位） */
  .fullscreen-overlay .fs-sheet .action-bar {
    position:static; flex-direction:row; justify-content:space-around; align-items:center; gap:6px;
    padding:8px 0 10px; border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:10px;
  }
  .fullscreen-overlay .fs-sheet .avatar-wrap { margin-bottom:0; width:52px; height:52px; }
  .fullscreen-overlay .fs-sheet .act-icon { width:44px; height:44px; font-size:26px; }
  .fullscreen-overlay .fs-sheet .bottom-info { position:static; padding:0; margin-bottom:10px; }
  .fullscreen-overlay .fs-sheet .username { font-size:16px; font-weight:700; margin-bottom:4px; }
  .fullscreen-overlay .fs-sheet .desc { font-size:13px; max-height:none; }
  .fullscreen-overlay .fs-sheet .music-info { margin-top:6px; }
  .fullscreen-overlay .fs-sheet .player-ctrl {
    position:static; opacity:1; pointer-events:auto;
    display:flex; align-items:center; gap:14px;
    padding:10px 14px; border-radius:18px; margin-bottom:10px;
    background:rgba(255,255,255,.07);
  }
  .fullscreen-overlay .fs-sheet .progress-bar { position:static; height:18px; margin-bottom:8px; }
  .fullscreen-overlay .fs-sheet .tabbar {
    position:static; width:100%; height:auto; padding:8px 0 0;
    display:flex; align-items:center; justify-content:space-around;
    border-top:1px solid rgba(255,255,255,.08); background:transparent;
  }
  .fullscreen-overlay .fs-sheet .tab-item { font-size:14px; padding:8px 10px; }
  /* 长辈模式：弹窗内放大 */
  body.elder-mode .fullscreen-overlay .fs-sheet .avatar-wrap { width:62px; height:62px; }
  body.elder-mode .fullscreen-overlay .fs-sheet .act-icon { width:54px; height:54px; font-size:34px; }
  body.elder-mode .fullscreen-overlay .fs-sheet .username { font-size:22px; }
  body.elder-mode .fullscreen-overlay .fs-sheet .desc { font-size:19px; }
  body.elder-mode .fullscreen-overlay .fs-sheet .player-ctrl .ctrl-btn { font-size:28px; width:50px; height:50px; }
  body.elder-mode .fullscreen-overlay .fs-sheet .tab-item { font-size:17px; }

  /* ===== v5.4.2 长辈模式：放大两种播放器的图标和文字 ===== */
  /* 模式一：滑动播放页 */
  body.elder-mode { --fs-base:19px; --fs-title:22px; --fs-icon:36px; --fs-tab:17px; --avatar-size:60px; --action-gap:16px; }
  body.elder-mode .avatar-wrap { font-size:32px; }
  body.elder-mode .act-icon { width:56px; height:56px; font-size:36px; }
  body.elder-mode .act-icon svg { width:34px; height:34px; }
  body.elder-mode .act-icon.bare svg { width:36px; height:36px; }
  body.elder-mode .share-swirl-icon { width:36px; height:36px; }
  body.elder-mode .act-btn .num { font-size:16px; font-weight:700; }
  body.elder-mode .username { font-size:22px; font-weight:800; }
  body.elder-mode .desc { font-size:19px; max-height:80px; }
  body.elder-mode .music-info { font-size:16px; gap:8px; }
  body.elder-mode .music-icon { font-size:18px; }
  body.elder-mode .player-ctrl .ctrl-btn {
    font-size:28px; width:52px; height:52px;
  }
  body.elder-mode .player-ctrl .ctrl-time {
    font-size:18px; font-weight:700;
  }
  body.elder-mode .progress-bar {
    height:10px;
  }
  body.elder-mode .tabbar { height:68px; }
  body.elder-mode .tab-item { font-size:17px; font-weight:700; padding:10px 14px; }
  body.elder-mode .tab-publish .pub-label { font-size:16px; }
  /* 模式二：沉浸式全屏播放 */
  body.elder-mode .fullscreen-overlay .fs-title {
    font-size:22px !important; font-weight:800 !important;
  }
  body.elder-mode .fullscreen-overlay .fs-author {
    font-size:18px !important; font-weight:700 !important;
  }
  body.elder-mode .fullscreen-overlay .fs-meta { font-size:17px; gap:10px; }
  body.elder-mode .fullscreen-overlay .fs-topics .topic-tag {
    font-size:16px !important; font-weight:600;
  }
  body.elder-mode .fullscreen-overlay .fs-progress-bar {
    height:16px;
  }
  body.elder-mode .fullscreen-overlay .fs-progress-track {
    height:6px;
  }
  body.elder-mode .fullscreen-overlay .fs-bottom {
    padding:16px 20px 32px;
  }
  .set-row.elder-row {
    background:rgba(254,44,85,.04); border-radius:10px;
    margin:2px -8px; padding-left:16px; padding-right:16px;
  }
  body.elder-mode .set-row.elder-row {
    background:rgba(254,44,85,.07); border:1px solid rgba(254,44,85,.15);
  }
  body.light .set-row.elder-row { background:rgba(254,44,85,.05); }
  body.light.elder-mode .set-row.elder-row { background:rgba(254,44,85,.08); border-color:rgba(254,44,85,.12); }

  /* ===== v5.4.2 长辈模式浮窗/徽章/通知 ===== */
  /* 左上角漂浮小提示窗（非模态，可✕关闭） */
  .elder-tip-float {
    position:absolute; top:64px; left:14px; z-index:30;
    display:flex; align-items:center; gap:2px;
    background:rgba(20,20,35,.92); border:1px solid rgba(255,184,0,.7);
    border-radius:24px; padding:4px 6px 4px 4px;
    box-shadow:0 8px 20px rgba(0,0,0,.35);
    max-width:calc(100% - 28px);
  }
  .elder-tip-float .etf-body {
    display:flex; align-items:center; gap:7px; cursor:pointer;
    font-size:14px; font-weight:700; color:#fff; line-height:1;
    background:linear-gradient(135deg,#fe2c55,#ffb800);
    padding:9px 16px; border-radius:20px; white-space:nowrap;
  }
  .elder-tip-float .etf-ic { font-size:17px; }
  .elder-tip-float .etf-x {
    position:absolute; right:-32px; top:50%; transform:translateY(-50%);
    background:rgba(20,20,35,.92); border:1px solid rgba(255,184,0,.5);
    border-radius:50%; width:22px; height:22px;
    color:#aaa; font-size:13px; cursor:pointer;
    padding:0; line-height:1; display:flex; align-items:center; justify-content:center;
  }
  .elder-tip-float .etf-x:hover { color:#fff; border-color:#ffb800; }
  body.elder-mode .elder-tip-float .etf-x { width:28px; height:28px; font-size:16px; right:-36px; }
  body.elder-mode .elder-tip-float .etf-body { font-size:20px; padding:13px 22px; }

  /* 右上角长辈模式徽章 */
  .elder-badge {
    position:absolute; top:52px; right:14px; z-index:22;
    display:flex; align-items:center; gap:5px;
    padding:6px 13px; border-radius:20px; line-height:1;
    background:rgba(0,0,0,.55); border:1px solid rgba(255,184,0,.75);
    color:#fff; font-size:13px; cursor:pointer;
    animation:badgeIn .3s ease;
  }
  body.elder-mode .elder-badge { font-size:19px; padding:10px 20px; }
  @keyframes badgeIn { from { opacity:0; transform:translateY(-8px) scale(.9); } to { opacity:1; transform:none; } }

  /* 顶部临时通知（2秒自动消失） */
  .elder-notice {
    position:fixed; top:18%; left:50%; transform:translateX(-50%) translateY(-6px);
    z-index:300; display:flex; align-items:center; gap:9px;
    background:rgba(0,0,0,.8); color:#fff; border:1px solid rgba(255,184,0,.8);
    padding:12px 24px; border-radius:26px; font-size:16px; white-space:nowrap;
    box-shadow:0 10px 28px rgba(0,0,0,.4);
    opacity:0; transition:all .3s ease; pointer-events:none;
  }
  .elder-notice.show { opacity:1; transform:translateX(-50%) translateY(0); }
  .elder-notice .en-ic { font-size:22px; }

  /* ===== 底部 TabBar（纯文字 + 中间发布按钮，黑底不遮视频） ===== */
  .tabbar {
    position:absolute; bottom:0; left:0; right:0; z-index:20; height:60px;
    display:flex; align-items:center; justify-content:space-around;
    background:#000; padding-bottom:env(safe-area-inset-bottom);
  }
  .tab-item { position:relative; cursor:pointer; opacity:.7; transition:opacity .2s; font-size:var(--fs-tab); font-weight:600; padding:8px 12px; }
  .tab-item.active { opacity:1; }
  .tab-publish {
    padding:9px 18px 9px 14px; border-radius:22px; background:linear-gradient(135deg,#fe2c55,#ff5067);
    display:flex; align-items:center; justify-content:center; gap:8px;
    font-size:16px; font-weight:700; color:#fff;
    box-shadow:0 4px 15px rgba(254,44,85,.4); transition:transform .2s, box-shadow .3s; cursor:pointer; white-space:nowrap;
  }
  .tab-publish:active { transform:scale(.92); }
  .tab-publish .pub-label { font-size:14px; font-weight:700; letter-spacing:1px; }
  /* 声音动态标识：声波跳动 */
  .tab-publish .sound-wave { display:flex; gap:3px; align-items:center; height:18px; }
  .tab-publish .sound-wave span { width:3px; background:#fff; border-radius:2px; animation:soundWave .8s ease-in-out infinite; }
  .tab-publish .sound-wave span:nth-child(1) { height:6px; animation-delay:0s; }
  .tab-publish .sound-wave span:nth-child(2) { height:12px; animation-delay:.15s; }
  .tab-publish .sound-wave span:nth-child(3) { height:8px; animation-delay:.3s; }
  .tab-publish .sound-wave span:nth-child(4) { height:14px; animation-delay:.45s; }
  .tab-publish .sound-wave span:nth-child(5) { height:10px; animation-delay:.6s; }
  @keyframes soundWave { 0%,100%{transform:scaleY(.5); opacity:.6} 50%{transform:scaleY(1); opacity:1} }
  .tab-publish.active { box-shadow:0 0 0 3px rgba(254,44,85,.35), 0 4px 15px rgba(254,44,85,.4); }



  /* ===== 小乐发布按钮：语音监听状态 ===== */
  .tab-publish .sound-wave span {
    animation-play-state:paused;
    opacity:.4;
    background:#fff;
  }
  /* 识别到指令时：仅声波动效，不闪动不加边框 */
  .tab-publish.voice-active .sound-wave span {
    animation-play-state:running;
    opacity:1;
  }
  .tab-publish.voice-active {
  }

  .heart-anim { position:absolute; z-index:25; font-size:60px; pointer-events:none; animation:heartFly 1s ease-out forwards; }
  @keyframes heartFly { 0%{transform:scale(0) rotate(0);opacity:1} 50%{transform:scale(1.4) rotate(-10deg);opacity:1} 100%{transform:scale(.6) translateY(-120px) rotate(20deg);opacity:0} }

  /* ===== 开始画面（v6.6.4 已移除页面，仅保留按钮样式供弹窗复用） ===== */
  .start-btn {
    padding:14px 48px; border-radius:30px; border:none; cursor:pointer; font-size:18px; font-weight:700;
    background:linear-gradient(90deg,#fe2c55,#ff5067); color:#fff; box-shadow:0 8px 30px rgba(254,44,85,.4); transition:transform .2s;
  }
  .start-btn:active { transform:scale(.94); }

  /* ===== 模态框通用 ===== */
  .modal-mask {
    position:fixed; inset:0; z-index:600; background:rgba(0,0,0,.72);
    display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .3s;
    /* 不启用 backdrop-filter：部分 Android WebView 存在渲染bug会整层变白遮住输入框 */
  }
  .modal-mask.show { opacity:1; pointer-events:auto; }
  .modal {
    width:88%; max-width:360px; background:#1c1c2e; border-radius:20px; padding:24px;
    transform:translateY(16px); opacity:0; transition:transform .3s cubic-bezier(.32,.72,.35,1), opacity .25s ease;
    max-height:80vh; overflow-y:auto;
    -webkit-transform:translateY(16px);
  }
  .modal-mask.show .modal { transform:translateY(0); opacity:1; -webkit-transform:translateY(0); }
  .modal h3 { font-size:18px; margin-bottom:18px; text-align:center; }
  .modal .close-x { float:right; background:none; border:none; color:#999; font-size:20px; cursor:pointer; }

  /* ===== 登录/注册 ===== */
  .form-group { margin-bottom:14px; }
  .form-group input, .form-group textarea {
    width:100%; padding:12px 16px; border-radius:12px; border:1px solid rgba(255,255,255,.15);
    background:rgba(255,255,255,.08); color:#fff; font-size:15px; outline:none;
    -webkit-user-select:text !important; user-select:text !important;
    -webkit-appearance:none; touch-action:manipulation;
    -webkit-touch-callout:default;
  }
  .form-group input:focus, .form-group textarea:focus { border-color:#fe2c55; }
  /* 密码显示/隐藏眼睛 */
  .pwd-wrap { position:relative; }
  .pwd-wrap input { padding-right:46px; }
  .pwd-eye {
    position:absolute; right:10px; top:50%; transform:translateY(-50%);
    font-size:18px; color:#aaa; cursor:pointer; padding:8px 6px; line-height:1;
    -webkit-user-select:none; user-select:none; touch-action:manipulation;
    background:none; border:none; z-index:2;
  }
  .pwd-eye:active { opacity:.6; }
  .form-btn {
    width:100%; padding:12px; border-radius:12px; border:none; cursor:pointer; font-size:16px; font-weight:700;
    background:linear-gradient(90deg,#fe2c55,#ff5067); color:#fff; margin-top:6px;
  }
  .form-btn.secondary { background:rgba(255,255,255,.12); margin-top:10px; }
  .form-tip { text-align:center; font-size:13px; color:#888; margin-top:14px; }
  .form-tip a { color:#22d3ee; cursor:pointer; }
  .form-error { color:#ff6b6b; font-size:13px; text-align:center; margin-top:8px; min-height:18px; }

  /* ===== 登录方式切换 ===== */
  .auth-tabs { display:flex; margin-bottom:16px; border-radius:12px; background:rgba(255,255,255,.06); padding:4px; }
  .auth-tab { flex:1; text-align:center; padding:8px 0; font-size:14px; color:#999; border-radius:9px; cursor:pointer; transition:all .2s; }
  .auth-tab.active { background:#fe2c55; color:#fff; font-weight:600; }
  .sms-row { display:flex; gap:8px; align-items:center; }
  .sms-row input { flex:1; min-width:0; }
  .sms-btn {
    flex:0 0 104px; padding:12px 0; border-radius:12px; border:none; cursor:pointer;
    font-size:13px; font-weight:600; color:#fff; background:rgba(34,211,238,.2); white-space:nowrap;
  }
  .sms-btn:disabled { opacity:.5; cursor:not-allowed; }
  /* v6.6.9：密码强度条 */
  .pwd-strength-bar { height:4px; background:rgba(255,255,255,.1); border-radius:2px; overflow:hidden; }

  /* ===== 设置面板 ===== */
  .set-group { margin-bottom:8px; }
  .set-row {
    display:flex; align-items:center; gap:12px; padding:14px 4px; border-bottom:1px solid rgba(255,255,255,.07);
  }
  .set-row:last-child { border-bottom:none; }
  .set-ic { font-size:20px; width:34px; height:34px; border-radius:10px; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; flex:0 0 34px; }
  .set-main { flex:1; min-width:0; }
  .set-title { font-size:15px; font-weight:600; }
  .set-desc { font-size:12px; color:#888; margin-top:2px; }
  .set-btn {
    flex:0 0 auto; padding:7px 14px; border-radius:10px; border:none; cursor:pointer;
    font-size:13px; font-weight:600; background:rgba(255,255,255,.12); color:#fff;
  }
  .set-btn.danger { background:rgba(254,44,85,.2); }
  .set-switch {
    width:46px; height:26px; border-radius:13px; background:transparent; border:1.5px solid rgba(255,255,255,.3); box-sizing:border-box; position:relative;
    cursor:pointer; transition:background .25s,border-color .25s; flex:0 0 46px;
  }
  .set-switch i {
    position:absolute; top:2px; left:2px; width:18px; height:18px; border-radius:50%;
    background:rgba(255,255,255,.5); transition:left .25s,background .25s;
  }
  .set-switch.on { background:#fe2c55; border-color:#fe2c55; }
  .set-switch.on i { left:23px; background:#fff; }
  .history-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
  .history-head h3 { margin-bottom:0; }

  /* ===== 上传 ===== */
  .upload-progress { height:6px; background:rgba(255,255,255,.1); border-radius:3px; overflow:hidden; margin:10px 0; display:none; }
  .upload-progress.show { display:block; }
  .upload-progress .bar { height:100%; width:0%; background:linear-gradient(90deg,#4ade80,#22d3ee); transition:width .2s; }
   body.light .edit-group input, body.light .edit-group textarea { background:rgba(0,0,0,.04); border-color:rgba(0,0,0,.12); color:#333; }
body.light .edit-label { color:#666; }

  /* ===== 全屏沉浸式页面（我的主页/作者主页）===== */
  .fs-page {
    position:fixed; inset:0; z-index:600;
    background:#0a0a0f;
    display:none; flex-direction:column;
    transition:opacity .2s ease;
    opacity:0;
  }
  .fs-page.show { display:flex; opacity:1; }
  .fs-header {
    position:relative; z-index:10;
    background:rgba(10,10,15,.95); backdrop-filter:blur(14px);
    display:flex; align-items:center; padding:14px 16px;
    border-bottom:1px solid rgba(255,255,255,.06);
  }
  .fs-close {
    background:none; border:none; color:#fff; font-size:22px; cursor:pointer;
    padding:4px 8px; margin-right:10px; line-height:1;
  }
  .fs-title { font-size:17px; font-weight:700; }
  .fs-body {
    flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch;
  }
  .fs-hero {
    position:relative; padding:32px 20px 24px; text-align:center;
    background:linear-gradient(180deg, rgba(254,44,85,.12) 0%, transparent 100%);
  }
  .fs-hero-avatar { width:84px; height:84px; border-radius:50%; background:rgba(255,255,255,.1);
    display:flex; align-items:center; justify-content:center; font-size:42px; margin:0 auto 12px;
    border:2px solid rgba(254,44,85,.3);
  }
  .fs-hero-name { font-size:22px; font-weight:800; margin-bottom:6px; }
  .fs-hero-meta { font-size:13px; color:#888; }
  .fs-hero-btn {
    margin-top:14px; padding:8px 28px; border-radius:20px; border:none;
    background:linear-gradient(135deg,#fe2c55,#ff5067); color:#fff;
    font-size:14px; font-weight:600; cursor:pointer;
  }
  .fs-hero-btn.secondary { background:rgba(255,255,255,.12); color:#fff; }
  .fs-stats {
    display:flex; flex-wrap:wrap; justify-content:center; gap:16px 24px; padding:16px 0;
    border-bottom:1px solid rgba(255,255,255,.06);
  }
  .fs-stat { text-align:center; cursor:pointer; padding:4px 8px; border-radius:8px; transition:background .2s; }
  .fs-stat:active { background:rgba(255,255,255,.08); }
  .fs-stat-num { font-size:20px; font-weight:800; }
  .fs-stat-lbl { font-size:12px; color:#888; margin-top:2px; }
  .fs-tabs {
    display:flex; padding:0 16px;
    border-bottom:1px solid rgba(255,255,255,.06);
    position:sticky; top:0; z-index:5;
    background:#0a0a0f;
  }
  .fs-tab { flex:1; text-align:center; padding:12px 0; font-size:14px; color:#888;
    cursor:pointer; border-bottom:2px solid transparent; transition:color .2s;
  }
  .fs-tab.active { color:#fe2c55; border-bottom-color:#fe2c55; font-weight:700; }
  .fs-grid {
    display:grid; grid-template-columns:repeat(3,1fr); gap:2px; padding:2px;
  }
  .fs-grid .fs-card { position:relative; aspect-ratio:3/4; background:#111; overflow:hidden; cursor:pointer; }
  .fs-grid .fs-card video, .fs-grid .fs-card img { width:100%; height:100%; object-fit:cover; }
  .fs-grid .fs-info {
    position:absolute; bottom:0; left:0; right:0;
    padding:20px 6px 6px;
    background:linear-gradient(transparent, rgba(0,0,0,.7));
    font-size:11px; color:#fff;
  }
  .fs-grid .fs-dur {
    position:absolute; top:4px; right:4px;
    background:rgba(0,0,0,.55); padding:1px 5px; border-radius:4px; font-size:10px;
  }
  .fs-empty { padding:40px 20px; text-align:center; color:#888; font-size:14px; }
  .fs-row { display:flex; align-items:center; gap:10px; padding:8px; border-radius:10px;
    background:rgba(255,255,255,.06); cursor:pointer; transition:background .2s;
  }
  .fs-row:active { background:rgba(255,255,255,.12); }
  .fs-row-avatar { width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.1);
    display:flex; align-items:center; justify-content:center; font-size:22px; flex:0 0 44px;
  }
  .fs-row-main { flex:1; min-width:0; }
  .fs-row-title { font-size:14px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .fs-row-meta { font-size:12px; color:#888; margin-top:2px; }
  /* light mode 适配 */
  body.light .fs-page { background:#f2f3f6; }
  body.light .fs-header { background:rgba(242,243,246,.95); border-bottom-color:rgba(0,0,0,.08); }
  body.light .fs-close { color:#333; }
  body.light .fs-title { color:#16161a; }
  body.light .fullscreen-overlay .fs-title { color:#fff; }
  body.light .fs-body { color:#16161a; }
  body.light .fs-hero { background:linear-gradient(180deg, rgba(254,44,85,.08) 0%, transparent 100%); }
  body.light .fs-hero-avatar { background:rgba(0,0,0,.06); border-color:rgba(254,44,85,.2); }
  body.light .fs-hero-name { color:#16161a; }
  body.light .fs-hero-meta { color:#888; }
  body.light .fs-hero-btn.secondary { background:rgba(0,0,0,.08); color:#333; }
  body.light .fs-stats { border-bottom-color:rgba(0,0,0,.08); }
  body.light .fs-stat:active { background:rgba(0,0,0,.06); }
  body.light .fs-stat-num { color:#16161a; }
  body.light .fs-stat-lbl { color:#888; }
  body.light .fs-tabs { border-bottom-color:rgba(0,0,0,.08); background:#f2f3f6; }
  body.light .fs-tab { color:#888; }
  body.light .fs-grid .fs-card { background:#e0e0e4; }
  body.light .fs-empty { color:#999; }
  body.light .fs-row { background:rgba(0,0,0,.04); }
  body.light .fs-row:active { background:rgba(0,0,0,.08); }
  body.light .fs-row-avatar { background:rgba(0,0,0,.06); }
  body.light .fs-row-title { color:#16161a; }
  body.light .fs-row-meta { color:#888; }
  .profile-avatar { width:72px; height:72px; border-radius:50%; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; font-size:40px; margin:0 auto 12px; }
  .profile-stats .stat { text-align:center; cursor:pointer; padding:4px 6px; border-radius:8px; transition:background .2s; }
  .profile-stats .stat:active { background:rgba(255,255,255,.1); }
  .profile-stats .num { font-size:20px; font-weight:700; }
  .profile-stats .label { font-size:12px; color:#888; margin-top:2px; }
  .profile-tab.active { color:#fff; border-bottom-color:#fe2c55; font-weight:600; }
  .mine-item { display:flex; align-items:center; gap:10px; padding:8px; border-radius:10px; background:rgba(255,255,255,.06); cursor:pointer; transition:background .2s; }
  .mine-item:active { background:rgba(255,255,255,.12); }
  .mine-thumb { width:52px; height:52px; border-radius:8px; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; font-size:22px; flex:0 0 52px; overflow:hidden; }
  .mine-thumb video { width:100%; height:100%; object-fit:cover; }
  .mine-main { flex:1; min-width:0; }
  .mine-title { font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .mine-meta { font-size:12px; color:#888; margin-top:3px; }
  .avatar-opt { width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; font-size:20px; cursor:pointer; transition:transform .15s, background .2s; }
  .avatar-opt:active { transform:scale(.85); background:rgba(254,44,85,.3); }

  /* ===== 帮助面板 ===== */
  .help-panel {
    position:absolute; bottom:0; left:0; right:0; z-index:50;
    background:rgba(0,0,0,.92); backdrop-filter:blur(16px); border-radius:24px 24px 0 0;
    padding:24px 20px 40px; transform:translateY(100%); transition:transform .4s; max-height:75%; overflow-y:auto;
    display:none;
  }
  .help-panel.show { transform:translateY(0); display:block; }
  .help-panel h3 { font-size:18px; margin-bottom:16px; display:flex; justify-content:space-between; align-items:center; }
  .help-panel .close-btn { background:none; border:none; color:#fff; font-size:24px; cursor:pointer; }
  .cmd-list { display:flex; flex-direction:column; gap:8px; }
  .cmd-section { font-size:14px; font-weight:700; color:#22d3ee; margin:12px 0 4px; }
  .cmd-item { display:flex; align-items:center; gap:12px; padding:10px; background:rgba(255,255,255,.06); border-radius:10px; }
  .cmd-key { padding:3px 10px; border-radius:8px; background:rgba(34,211,238,.2); font-weight:700; font-size:13px; color:#22d3ee; white-space:nowrap; }
  .cmd-desc { font-size:13px; opacity:.85; }

  /* ===== ☰ 抽屉菜单 ===== */
  .menu-mask {
    position:absolute; inset:0; z-index:70; background:rgba(0,0,0,.5);
    opacity:0; pointer-events:none; transition:opacity .3s;
  }
  .menu-mask.show { opacity:1; pointer-events:auto; }
  .menu-drawer {
    position:absolute; top:0; bottom:0; left:0; z-index:71; width:78%; max-width:300px;
    background:#171726; transform:translateX(-105%); transition:transform .35s;
    display:flex; flex-direction:column; padding:0 0 16px;
    box-shadow:8px 0 30px rgba(0,0,0,.4);
  }
  .menu-drawer.show { transform:translateX(0); }
  .menu-head { display:flex; align-items:center; gap:12px; padding:20px 18px 14px; border-bottom:1px solid rgba(255,255,255,.06); }
  .menu-logo { width:44px; height:44px; border-radius:12px; object-fit:contain; background:#fff; flex:0 0 44px; }
  .menu-title-box { flex:1; min-width:0; }
  .menu-name { font-size:17px; font-weight:800; }
  .menu-ver { font-size:12px; color:#888; margin-top:2px; }
  .menu-user {
    display:flex; align-items:center; gap:12px; padding:14px 14px; margin:12px 12px 4px;
    background:rgba(255,255,255,.06); border-radius:14px; cursor:pointer;
  }
  .menu-user:active { background:rgba(255,255,255,.12); }
  .menu-avatar { width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; font-size:22px; flex:0 0 42px; }
  .menu-user-info { flex:1; min-width:0; }
  .menu-username { font-size:15px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .menu-user-sub { font-size:12px; color:#888; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .menu-items { flex:1; padding:10px 12px; display:flex; flex-direction:column; gap:4px; overflow-y:auto; }
  .menu-item {
    display:flex; align-items:center; gap:12px; padding:12px 12px; border-radius:12px;
    cursor:pointer; transition:background .2s; font-size:15px;
  }
  .menu-item:active { background:rgba(255,255,255,.08); }
  .mi-ic { width:32px; height:32px; border-radius:10px; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; font-size:16px; flex:0 0 32px; }
  .mi-arrow { margin-left:auto; color:#666; font-size:18px; }
  .mi-switch {
    margin-left:auto; width:44px; height:26px; border-radius:14px; background:transparent; border:1.5px solid rgba(255,255,255,.3); box-sizing:border-box;
    position:relative; transition:background .3s,border-color .3s; flex:0 0 44px; pointer-events:none;
  }
  .mi-switch i { position:absolute; top:2px; left:2px; width:18px; height:18px; border-radius:50%; background:rgba(255,255,255,.5); transition:left .3s,background .3s; }
  .mi-switch.on { background:#fe2c55; border-color:#fe2c55; }
  .mi-switch.on i { left:21px; background:#fff; }
  .menu-logout {
    margin:8px 12px; padding:12px; text-align:center; border-radius:12px;
    background:rgba(254,44,85,.12); color:#fe2c55; font-size:14px; font-weight:600; cursor:pointer;
  }
  .menu-logout:active { background:rgba(254,44,85,.25); }
  .menu-foot { text-align:center; font-size:11px; color:#555; padding-top:8px; }
  .about-logo { width:72px; height:72px; border-radius:18%; object-fit:contain; background:#fff; margin:8px auto 14px; display:block; }
  .about-text { font-size:13px; color:#aaa; line-height:1.8; margin-bottom:18px; }
  .about-text b { color:#eee; }

  /* ===== 子页面（发现/消息）===== */
  .sub-page {
    position:absolute; inset:0; z-index:40; background:#111;
    transform:translateY(100%); transition:transform .35s cubic-bezier(.22,.61,.36,1); overflow-y:auto;
    padding:0 0 90px; display:flex; flex-direction:column;
  }
  .sub-page.show { transform:translateY(0); }
  .sub-header {
    position:sticky; top:0; z-index:5; display:flex; align-items:center; gap:12px;
    padding:14px 16px; background:rgba(17,17,17,.95); backdrop-filter:blur(10px); border-bottom:1px solid rgba(255,255,255,.06);
  }
  .sub-title { font-size:18px; font-weight:700; flex:1; }
  .back-btn { background:rgba(255,255,255,.1); border:none; color:#fff; width:32px; height:32px; border-radius:50%; font-size:16px; cursor:pointer; }
  .sub-body { flex:1; padding:16px; }

  /* 搜索框 */
  .search-bar { display:flex; gap:10px; margin-bottom:16px; }
  .search-input {
    flex:1; padding:12px 16px; border-radius:22px; border:none; outline:none;
    background:rgba(255,255,255,.08); color:#fff; font-size:14px;
  }
  .search-input::placeholder { color:#777; }
  .search-btn { padding:0 20px; border-radius:22px; border:none; background:#fe2c55; color:#fff; font-weight:600; cursor:pointer; }

  /* 发现页网格 */
  .grid-title { font-size:15px; font-weight:700; margin:16px 0 10px; color:#fff; }
  .grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .grid-card { border-radius:12px; overflow:hidden; background:#1c1c1e; cursor:pointer; transition:transform .15s; }
  .grid-card:active { transform:scale(.96); }
  .grid-thumb { position:relative; aspect-ratio:9/13; background:#000; display:flex; align-items:center; justify-content:center; }
  .grid-thumb video { width:100%; height:100%; object-fit:cover; }
  .grid-thumb .play-mark { position:absolute; right:8px; bottom:8px; font-size:12px; background:rgba(0,0,0,.6); padding:2px 8px; border-radius:10px; }
  .grid-thumb .thumb-emoji { font-size:44px; opacity:.85; }
  .grid-info { padding:8px 10px; }
  .grid-title-text { font-size:13px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .grid-meta { font-size:11px; color:#888; margin-top:3px; }

  /* 消息页 */
  .msg-item { display:flex; gap:12px; padding:14px 4px; border-bottom:1px solid rgba(255,255,255,.05); align-items:flex-start; }
  .msg-avatar { width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; font-size:22px; flex-shrink:0; }
  .msg-main { flex:1; min-width:0; }
  .msg-name { font-size:14px; font-weight:600; }
  .msg-text { font-size:13px; color:#aaa; margin-top:3px; line-height:1.4; }
  .msg-time { font-size:11px; color:#666; margin-top:4px; }
  .msg-badge { width:8px; height:8px; border-radius:50%; background:#fe2c55; margin-top:8px; }
  .topic-chip { padding:7px 16px; border-radius:18px; border:1px solid rgba(255,255,255,.15); background:rgba(255,255,255,.05); color:#ccc; font-size:13px; white-space:nowrap; cursor:pointer; transition:all .2s; }
  .topic-chip.active { background:#fe2c55; border-color:#fe2c55; color:#fff; font-weight:600; }
  .grid-meta .grid-tags { color:#666; }

  /* 消息Tab未读红点 */
  .tab-item .tab-dot { position:absolute; top:2px; right:2px; width:8px; height:8px; border-radius:50%; background:#fe2c55; display:none; }
  .tab-item .tab-dot.show { display:block; }

  /* 评论弹窗 */
  .cmt-list { max-height:46vh; overflow-y:auto; margin:10px 0; display:flex; flex-direction:column; }
  .cmt-item { display:flex; gap:10px; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.05); }
  .cmt-avatar { width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
  .cmt-main { flex:1; min-width:0; }
  .cmt-name { font-size:13px; font-weight:600; color:#ccc; }
  .cmt-me { display:inline-block; margin-left:6px; padding:1px 6px; border-radius:6px; background:rgba(34,211,238,.2); color:#22d3ee; font-size:10px; font-weight:600; vertical-align:1px; }
  .cmt-del { flex-shrink:0; padding:4px 8px; border:none; background:none; font-size:14px; cursor:pointer; opacity:.6; align-self:center; }
  .cmt-del:active { opacity:1; }
  .cmt-text { font-size:14px; margin-top:2px; word-break:break-all; }
  .cmt-time { font-size:11px; color:#666; margin-top:3px; }
  .cmt-input-bar { display:flex; gap:8px; }
  .cmt-input { flex:1; padding:10px 14px; border-radius:20px; border:none; outline:none; background:rgba(255,255,255,.08); color:#fff; font-size:14px; }

  /* ===== 浅色主题（跟随系统或手动选择） ===== */
  body.light .modal { background:#f7f7f9; color:#16161a; }
  body.light .modal h3 { color:#16161a; }
  body.light .modal .close-x { color:#999; }
  body.light .form-group input { background:rgba(0,0,0,.05); border-color:rgba(0,0,0,.14); color:#16161a; }
  body.light .form-group input::placeholder { color:#a0a0a8; }
  body.light .form-tip { color:#888; }
  body.light .form-error { color:#e5484d; }
  body.light .auth-tabs { background:rgba(0,0,0,.06); }
  body.light .auth-tab { color:#888; }
  body.light .set-row { border-bottom-color:rgba(0,0,0,.07); }
  body.light .set-ic { background:rgba(0,0,0,.06); }
  body.light .set-title { color:#16161a; }
  body.light .set-desc { color:#888; }
  body.light .set-btn { background:rgba(0,0,0,.09); color:#222; }
  body.light .set-btn.danger { background:rgba(254,44,85,.14); color:#e13c56; }
  body.light .set-switch { background:transparent; border-color:rgba(0,0,0,.25); }
  body.light .set-switch i { background:rgba(0,0,0,.3); }
  body.light .set-switch.on i { background:#fff; }
  body.light .sub-page { background:#f2f3f6; }
  body.light .sub-header { background:rgba(242,243,246,.96); border-bottom-color:rgba(0,0,0,.08); }
  body.light .sub-title { color:#16161a; }
  body.light .back-btn { background:rgba(0,0,0,.08); color:#333; }
  body.light .search-input { background:rgba(0,0,0,.06); color:#16161a; }
  body.light .search-input::placeholder { color:#a0a0a8; }
  body.light .topic-chip { border-color:rgba(0,0,0,.15); background:rgba(0,0,0,.04); color:#555; }
  body.light .grid-title { color:#16161a; }
  body.light .grid-card { background:#fff; }
  body.light .grid-meta { color:#888; }
  body.light .grid-meta .grid-tags { color:#999; }
  body.light .empty-tip { color:#999; }
  body.light .rec-section { background:linear-gradient(135deg, rgba(254,44,85,.12), rgba(137,88,255,.1)); border-color:rgba(0,0,0,.06); }
  body.light .rec-title { color:#16161a; }
  body.light .rec-refresh { border-color:rgba(0,0,0,.2); background:rgba(0,0,0,.05); color:#555; }
  body.light .rec-refresh:active { background:rgba(0,0,0,.12); }
  body.light .rec-reason { color:#c2435f; }
  body.light .msg-item { border-bottom-color:rgba(0,0,0,.06); }
  body.light .msg-avatar { background:rgba(0,0,0,.06); }
  body.light .msg-name { color:#16161a; }
  body.light .msg-text { color:#666; }
  body.light .msg-time { color:#999; }
  body.light .menu-drawer { background:#fff; }
  body.light .menu-head { border-bottom-color:rgba(0,0,0,.06); }
  body.light .menu-name { color:#16161a; }
  body.light .menu-ver { color:#999; }
  body.light .menu-user { background:rgba(0,0,0,.04); }
  body.light .menu-username { color:#16161a; }
  body.light .menu-user-sub { color:#888; }
  body.light .menu-item { color:#222; }
  body.light .menu-item:active { background:rgba(0,0,0,.05); }
  body.light .mi-ic { background:rgba(0,0,0,.06); }
  body.light .mi-arrow { color:#bbb; }
  body.light .mi-switch { background:transparent; border-color:rgba(0,0,0,.25); }
  body.light .mi-switch i { background:rgba(0,0,0,.3); }
  body.light .mi-switch.on i { background:#fff; }
  body.light   body.light   body.light   body.light .menu-foot { color:#999; }
  body.light .help-panel { background:rgba(250,250,252,.97); }
  body.light .help-panel h3 { color:#16161a; }
  body.light .help-panel .close-btn { color:#333; }
  body.light .cmd-section { color:#0e8fa3; }
  body.light .cmd-item { background:rgba(0,0,0,.04); }
  body.light .cmd-key { background:rgba(14,143,163,.14); color:#0e8fa3; }
  body.light .cmd-desc { color:#444; }
  body.light .profile-avatar { background:rgba(0,0,0,.06); }
  body.light .profile-name { color:#16161a; }
  body.light .profile-stats .num { color:#16161a; }
  body.light .profile-stats .label { color:#888; }
  body.light .profile-tabs { border-bottom-color:rgba(0,0,0,.1); }
  body.light .profile-tab { color:#888; }
  body.light .profile-tab.active { color:#16161a; }
  body.light .mine-item { background:rgba(0,0,0,.04); }
  body.light .mine-item:active { background:rgba(0,0,0,.08); }
  body.light .mine-thumb { background:rgba(0,0,0,.07); }
  body.light .mine-title { color:#16161a; }
  body.light .mine-meta { color:#888; }
  body.light .avatar-opt { background:rgba(0,0,0,.06); }
  body.light .about-text { color:#666; }
  body.light .about-text b { color:#222; }
  body.light .cmt-item { border-bottom-color:rgba(0,0,0,.06); }
  body.light .cmt-avatar { background:rgba(0,0,0,.06); }
  body.light .cmt-name { color:#333; }
  body.light .cmt-text { color:#222; }
  body.light .cmt-time { color:#999; }
  body.light .cmt-input { background:rgba(0,0,0,.06); color:#16161a; }
  body.light .upload-status { color:#888; }
  body.light .am-name { color:#16161a; }
  body.light .am-status { color:#888; }
  body.light .am-btn { background:rgba(14,143,163,.14); color:#0e8fa3; }
  body.light .sub-time { color:#0e8fa3; }
  body.light .sub-item input { background:rgba(0,0,0,.06); border-color:rgba(0,0,0,.14); color:#16161a; }
  body.light .sub-del { color:#999; }
  body.light 
  body.light 
  body.light .clip-opt { color:#333; }
  body.light .clip-result { color:#16a34a; }
  body.light .history-head h3 { color:#16161a; }
  body.light .voice-tip-box { background:rgba(30,30,40,.92); }

  /* ===== Toast ===== */
  .toast {
    position:absolute; top:70px; left:50%; transform:translateX(-50%) translateY(-10px); z-index:90;
    padding:10px 24px; border-radius:22px; background:rgba(0,0,0,.85); color:#fff;
    font-size:14px; opacity:0; pointer-events:none; transition:all .3s; white-space:nowrap; max-width:90%;
  }
  .toast.show { opacity:1; transform:translateX(-50%) translateY(0); }
  .hot-item { display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:10px; background:rgba(255,255,255,.05); cursor:pointer; transition:background .2s; }
  .hot-item:active { background:rgba(255,255,255,.12); }
  .hot-rank { width:22px; height:22px; border-radius:6px; flex:0 0 22px; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; }
  .hot-rank.r1 { background:#fe2c55; color:#fff; }
  .hot-rank.r2 { background:#ff6b6b; color:#fff; }
  .hot-rank.r3 { background:#ffb800; color:#000; }
  .hot-rank.r4plus { background:rgba(255,255,255,.12); color:#999; }
  .hot-kw { flex:1; font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .hot-fire { font-size:11px; color:#fe2c55; white-space:nowrap; }
  .hist-tags { display:flex; flex-wrap:wrap; gap:8px; }
  .hist-tag { display:inline-flex; align-items:center; gap:6px; padding:7px 14px; border-radius:18px; background:rgba(255,255,255,.07); font-size:13px; cursor:pointer; transition:background .2s; }
  .hist-tag:active { background:rgba(255,255,255,.16); }
  .hist-tag .ht-x { color:#666; font-size:12px; }
  body.light .hot-item { background:rgba(0,0,0,.04); }
  body.light .hot-item:active { background:rgba(0,0,0,.08); }
  body.light .hot-rank.r4plus { background:rgba(0,0,0,.08); color:#888; }
  body.light .hot-kw { color:#16161a; }
  body.light .hist-tag { background:rgba(0,0,0,.05); }
  body.light .hist-tag:active { background:rgba(0,0,0,.1); }
  body.light .cv-title { color:#16161a; }
  body.light .cv-meta { color:#888; }

   /* ===== 协议正文样式 ===== */
   .agmt { font-size:13px; line-height:1.8; color:#ccc; }
   .agmt h4 { font-size:15px; font-weight:700; color:#fff; margin:16px 0 8px; padding-bottom:4px; border-bottom:1px solid rgba(255,255,255,.1); }
   .agmt h4:first-child { margin-top:0; }
   .agmt p { margin:6px 0; text-align:justify; }
   .agmt ul { margin:6px 0; padding-left:20px; }
   .agmt li { margin:4px 0; text-align:justify; }
   .agmt b { color:#fff; }
   .agmt .agmt-note { background:rgba(254,44,85,.08); border-left:3px solid #fe2c55; border-radius:0 8px 8px 0; padding:8px 12px; margin:10px 0; font-size:12px; }
   .agmt .agmt-toc { background:rgba(255,255,255,.04); border-radius:10px; padding:10px 14px; margin-bottom:12px; font-size:12px; }
   .agmt .agmt-toc b { color:#22d3ee; }
   .agmt .agmt-update { font-size:11px; color:#888; text-align:right; margin-top:16px; padding-top:8px; border-top:1px solid rgba(255,255,255,.06); }
   body.light .agmt { color:#555; }
   body.light .agmt h4 { color:#111; border-bottom-color:rgba(0,0,0,.08); }
   body.light .agmt b { color:#000; }
   body.light .agmt .agmt-note { background:rgba(254,44,85,.06); }
   body.light .agmt .agmt-toc { background:rgba(0,0,0,.03); }
body.light .agmt .agmt-update { color:#999; }

  /* ===== v4.2 收藏夹分组 ===== */
  .collection-item { display:flex; align-items:center; gap:12px; padding:14px 16px; background:rgba(255,255,255,.04); border-radius:14px; margin-bottom:10px; cursor:pointer; }
  .collection-item:active { background:rgba(255,255,255,.1); }
  .collection-item .ci-icon { font-size:24px; flex:0 0 36px; text-align:center; }
  .collection-item .ci-info { flex:1; }
  .collection-item .ci-name { font-size:15px; font-weight:700; }
  .collection-item .ci-count { font-size:12px; color:#888; margin-top:2px; }
  .collection-item .ci-edit { background:none; border:none; color:#888; font-size:16px; cursor:pointer; padding:4px; }

  /* ===== 抖音式发布系统 v5.6.0 (三阶段: 拍摄→编辑→发布) ===== */
  .dy-page { position:fixed; inset:0; z-index:100; background:#000; display:none; flex-direction:column; }
  .dy-page.show { display:flex; }

  /* -- 通用头部 -- */
  .dy-header { display:flex; align-items:center; justify-content:space-between; padding:14px 16px; flex-shrink:0; }
  .dy-close { width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; font-size:18px; color:#fff; cursor:pointer; }
  .dy-title { font-size:17px; font-weight:700; color:#fff; }
  .dy-next { color:#fe2c55; font-size:16px; font-weight:700; padding:8px 20px; border-radius:8px; cursor:pointer; transition:all .2s; }
  .dy-next:active { transform:scale(.94); }
  .dy-next:disabled { opacity:.4; }
  .dy-float-top.show { display:flex; }
  .dy-float-count .num { color:#fe2c55; font-size:18px; font-weight:800; }
  .dy-bottom-sheet.show { display:flex; }

  /* -- 发布入口弹窗（简约版） -- */
  .dy-cam-mask { position:fixed; inset:0; z-index:110; display:none; background:rgba(0,0,0,.45); justify-content:center; align-items:flex-end; }
  .dy-cam-mask.show { display:flex; }
  .dy-cam-sheet { width:100%; max-width:480px; background:#fff; border-radius:24px 24px 0 0; padding:10px 0 36px; animation:dyCamUp .3s cubic-bezier(.22,.68,0,1); box-shadow:0 -4px 24px rgba(0,0,0,.12); }
  @keyframes dyCamUp { from { transform:translateY(100%); } to { transform:translateY(0); } }
  .dy-cam-handle { width:36px; height:4px; background:#e0e0e0; border-radius:2px; margin:8px auto 24px; cursor:pointer; transition:background .15s; }
  .dy-cam-handle:active { background:#bbb; }
  .dy-cam-options { display:flex; justify-content:space-around; padding:0 32px; }
  .dy-cam-item { display:flex; flex-direction:column; align-items:center; gap:12px; cursor:pointer; transition:transform .12s; -webkit-tap-highlight-color:transparent; }
  .dy-cam-item:active { transform:scale(.88); }
  .dy-cam-icon { width:72px; height:72px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
  .dy-cam-icon svg { width:34px; height:34px; stroke:#fff; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
  .dy-cam-icon.cam { background:#FF4757; }
  .dy-cam-icon.photo { background:#5352ED; }
  .dy-cam-icon.album { background:#2ED573; }
  .dy-cam-label { color:#333; font-size:15px; font-weight:500; }
  body.elder-mode .dy-cam-icon { width:84px; height:84px; }
  body.elder-mode .dy-cam-icon svg { width:40px; height:40px; }
  body.elder-mode .dy-cam-label { font-size:19px; }

  /* -- 自定义相册页（极简） -- */
  .album-page { position:fixed; inset:0; z-index:120; background:#000; display:none; flex-direction:column; }
  .album-page.show { display:flex; }
  .album-header { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; background:#111; color:#fff; flex-shrink:0; }
  .album-back { color:#fff; font-size:16px; cursor:pointer; display:flex; align-items:center; gap:2px; -webkit-tap-highlight-color:transparent; }
  .album-back:active { opacity:.6; }
  .album-title { color:rgba(255,255,255,.9); font-size:16px; font-weight:600; }
  .album-confirm { color:#FE2C55; font-size:16px; font-weight:600; cursor:pointer; padding:4px 8px; -webkit-tap-highlight-color:transparent; }
  .album-confirm:active { opacity:.6; }
  .album-confirm.disabled { color:rgba(255,255,255,.3); pointer-events:none; }
  .album-grid { flex:1; overflow-y:auto; padding:2px; display:grid; grid-template-columns:repeat(4,1fr); gap:2px; align-content:start; }
  .album-item { position:relative; width:100%; padding-bottom:100%; overflow:hidden; background:#1a1a1a; cursor:pointer; -webkit-tap-highlight-color:transparent; border-radius:4px; }
  .album-item:active .album-thumb { opacity:.8; }
  .album-thumb { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; display:block; }
  .album-placeholder { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:#222; }
  .album-badge { position:absolute; bottom:8px; right:8px; background:rgba(0,0,0,.65); color:#fff; font-size:12px; padding:2px 8px; border-radius:4px; pointer-events:none; }
  .album-order { position:absolute; top:8px; right:8px; width:28px; height:28px; border-radius:50%; border:2px solid rgba(255,255,255,.5); background:transparent; display:flex; align-items:center; justify-content:center; color:transparent; font-size:14px; font-weight:700; pointer-events:none; transition:all .12s; }
  .album-item.selected .album-order { background:#FE2C55; border-color:#FE2C55; color:#fff; }
  .album-empty { flex:1; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.4); font-size:14px; }
  /* 底部筛选栏 */
  .album-tabs { display:flex; background:#111; flex-shrink:0; padding:0; border-bottom:1px solid rgba(255,255,255,.08); }
  .album-tab { flex:1; text-align:center; padding:12px 0; color:rgba(255,255,255,.5); font-size:15px; font-weight:500; cursor:pointer; position:relative; -webkit-tap-highlight-color:transparent; }
  .album-tab:active { background:rgba(255,255,255,.05); }
  .album-tab.active { color:#fff; }
  .album-tab.active::after { content:''; position:absolute; bottom:0; left:25%; right:25%; height:2px; background:#FE2C55; border-radius:1px; }
  body.elder-mode .album-confirm { font-size:19px; }
  body.elder-mode .album-tab { font-size:18px; }
  body.elder-mode .album-badge { font-size:14px; }
  /* 底部弹窗抽屉 */
  .album-drawer { position:absolute; bottom:0; left:0; right:0; max-height:70%; background:#0d0d0d; border-top:1px solid rgba(255,255,255,.1); border-radius:16px 16px 0 0; transform:translateY(100%); transition:transform .25s ease; z-index:121; display:flex; flex-direction:column; overflow:hidden; }
  .album-drawer.show { transform:translateY(0); }
  .album-drawer-handle { width:40px; height:4px; background:rgba(255,255,255,.2); border-radius:2px; margin:8px auto 4px; flex-shrink:0; }
  .album-drawer-title { color:rgba(255,255,255,.7); font-size:14px; text-align:center; margin-bottom:8px; flex-shrink:0; }
  .album-drawer-preview { flex:1; overflow-x:auto; overflow-y:hidden; display:flex; gap:8px; padding:0 12px 12px; align-items:flex-start; }
  .album-drawer-preview:empty::before { content:'选中的素材将在此预览'; color:rgba(255,255,255,.3); font-size:13px; width:100%; text-align:center; line-height:60px; }
  .album-preview-item { position:relative; flex-shrink:0; width:72px; height:72px; border-radius:8px; overflow:hidden; background:#222; }
  .album-preview-item img { width:100%; height:100%; object-fit:cover; }
  .album-preview-item .pv-ord { position:absolute; top:2px; left:2px; width:18px; height:18px; border-radius:50%; background:#FE2C55; color:#fff; font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; }
  .album-preview-item .pv-del { position:absolute; top:2px; right:2px; width:18px; height:18px; border-radius:50%; background:rgba(0,0,0,.6); color:#fff; font-size:14px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
  .album-smart-btn { margin:0 16px 16px; padding:14px 0; text-align:center; background:linear-gradient(135deg,#fe2c55,#ff5067); color:#fff; font-size:16px; font-weight:700; border-radius:12px; cursor:pointer; flex-shrink:0; -webkit-tap-highlight-color:transparent; }
  .album-smart-btn:active { opacity:.85; }
  body.elder-mode .album-smart-btn { font-size:19px; }

  /* -- 上一步按钮 -- */
  .dy-back { color:rgba(255,255,255,.8); font-size:15px; cursor:pointer; padding:8px 4px; display:flex; align-items:center; gap:2px; }
  .dy-back:active { opacity:.6; }

  /* -- 片段栏 (编辑页用) -- */

  /* -- 发布页 -- */
  .dy-pub-body { flex:1; overflow-y:auto; padding:16px; }
  .dy-pub-media { width:100%; aspect-ratio:9/16; max-height:40vh; background:#111; border-radius:12px; overflow:hidden; position:relative; margin-bottom:16px; }
  .dy-pub-media video { width:100%; height:100%; object-fit:cover; }
              .dy-field { margin-bottom:16px; }
  .dy-field > label { display:block; font-size:14px; color:#aaa; margin-bottom:8px; font-weight:600; }
  .dy-field input, .dy-field textarea { width:100%; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:10px; padding:12px 14px; color:#fff; font-size:16px; outline:none; -webkit-user-select:text; -webkit-appearance:none; }
  .dy-field input:focus, .dy-field textarea:focus { border-color:#fe2c55; background:rgba(255,255,255,.08); }
  .dy-field textarea { min-height:80px; resize:none; line-height:1.6; }
  .dy-topic-row { display:flex; gap:8px; }
  .dy-topic-row input { flex:1; }
  .dy-topic-row button { padding:0 16px; background:#fe2c55; border:none; border-radius:10px; color:#fff; font-size:14px; font-weight:600; cursor:pointer; white-space:nowrap; }
                                        .dy-pub-footer { padding:12px 16px; border-top:1px solid rgba(255,255,255,.06); flex-shrink:0; }
  .dy-upload-progress { width:100%; height:3px; background:rgba(255,255,255,.1); border-radius:2px; overflow:hidden; margin-bottom:10px; display:none; }
  .dy-upload-progress.show { display:block; }
  .dy-upload-bar { height:100%; background:#fe2c55; width:0; transition:width .3s; }
  .dy-submit { width:100%; padding:16px; background:linear-gradient(135deg,#fe2c55,#ff5067); border:none; border-radius:12px; color:#fff; font-size:17px; font-weight:700; cursor:pointer; transition:all .2s; }
  .dy-submit:disabled { opacity:.5; }

  /* ================= v6.7.0 发布系统全功能 UI ================= */
  .dy-header-draft { color:#fe2c55; font-size:14px; font-weight:600; cursor:pointer; padding:8px 12px; }
  .dy-header-draft:active { opacity:.6; }
  /* 素材滑动条 */
  .dy-media-strip { display:flex; gap:8px; overflow-x:auto; padding:2px 0 12px; -webkit-overflow-scrolling:touch; }
  .dy-media-strip:empty { display:none; }
  .dy-media-item { position:relative; flex-shrink:0; width:64px; height:84px; border-radius:8px; overflow:hidden; background:#1a1a1a; border:2px solid transparent; cursor:pointer; }
  .dy-media-item.active { border-color:#fe2c55; }
  .dy-media-item img, .dy-media-item video { width:100%; height:100%; object-fit:cover; }
  .dy-media-item .dm-del { position:absolute; top:2px; right:2px; width:18px; height:18px; border-radius:50%; background:rgba(0,0,0,.65); color:#fff; font-size:12px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
  .dy-media-item .dm-add { width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; color:#666; font-size:11px; border:1px dashed #3a3a3a; border-radius:8px; background:none; }
  .dy-media-item .dm-add span { font-size:22px; color:#fe2c55; line-height:1; }
  .dy-media-count { position:absolute; bottom:2px; left:2px; background:rgba(0,0,0,.6); color:#fff; font-size:10px; padding:1px 5px; border-radius:8px; }
  /* 字数统计 */
  .dy-field .dy-count { float:right; font-weight:400; color:#666; font-size:12px; }
  .dy-field .dy-count.warn { color:#fe2c55; }
  /* 热门话题 chips */
  .dy-hot-topics { display:flex; gap:8px; overflow-x:auto; padding:10px 0 2px; -webkit-overflow-scrolling:touch; }
  .dy-hot-topics:empty { display:none; }
  .dy-ht-chip { flex-shrink:0; padding:6px 14px; border-radius:16px; background:rgba(254,44,85,.12); color:#ff6b81; font-size:13px; cursor:pointer; border:1px solid rgba(254,44,85,.25); white-space:nowrap; -webkit-tap-highlight-color:transparent; }
  .dy-ht-chip:active { background:rgba(254,44,85,.3); }
  /* 已选话题 */
  .dy-topic-chosen { display:flex; flex-wrap:wrap; gap:8px; }
  .dy-topic-chosen:empty::before { content:'点上方热门话题或输入 # 添加'; color:#555; font-size:13px; }
  .dy-tc-tag { display:flex; align-items:center; gap:6px; padding:6px 12px; border-radius:16px; background:rgba(254,44,85,.18); color:#ff6b81; font-size:13px; font-weight:600; }
  .dy-tc-tag b { font-weight:400; cursor:pointer; color:rgba(255,255,255,.5); font-size:15px; line-height:1; }
  /* 封面选择 */
  .dy-cover-row { display:flex; gap:10px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .dy-cover-opt { position:relative; flex-shrink:0; width:56px; height:76px; border-radius:8px; overflow:hidden; cursor:pointer; border:2px solid transparent; background:#1a1a1a; }
  .dy-cover-opt.active { border-color:#fe2c55; }
  .dy-cover-opt img { width:100%; height:100%; object-fit:cover; }
  .dy-cover-opt .dc-label { position:absolute; bottom:0; left:0; right:0; background:rgba(0,0,0,.6); color:#fff; font-size:10px; text-align:center; padding:2px 0; }
  .dy-cover-opt.auto { display:flex; align-items:center; justify-content:center; color:#888; font-size:11px; flex-direction:column; gap:4px; }
  .dy-cover-opt.auto span { font-size:20px; }
  /* 可见性 */
  .dy-vis-row { display:flex; gap:8px; }
  .dy-vis-opt { flex:1; padding:12px 8px; border-radius:10px; background:rgba(255,255,255,.06); border:1.5px solid rgba(255,255,255,.1); text-align:center; cursor:pointer; transition:all .15s; -webkit-tap-highlight-color:transparent; }
  .dy-vis-opt .dv-ico { font-size:20px; display:block; margin-bottom:4px; }
  .dy-vis-opt .dv-txt { font-size:13px; font-weight:600; color:#ccc; }
  .dy-vis-opt.active { background:rgba(254,44,85,.15); border-color:#fe2c55; }
  .dy-vis-opt.active .dv-txt { color:#ff6b81; }
  .dy-schedule-row { margin-top:10px; display:none; }
  .dy-schedule-row.show { display:block; }
  .dy-schedule-row input { width:100%; background:rgba(255,255,255,.06); border:1px solid rgba(254,44,85,.4); border-radius:10px; padding:12px 14px; color:#fff; font-size:15px; outline:none; -webkit-appearance:none; color-scheme:dark; }
  .dy-schedule-hint { font-size:12px; color:#888; margin-top:6px; }
  /* 权限开关（iOS 风格） */
  .dy-perm-row { display:flex; align-items:center; justify-content:space-between; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.05); }
  .dy-perm-row:last-child { border-bottom:none; }
  .dy-perm-label { font-size:15px; color:#ddd; }
  .dy-perm-label small { display:block; color:#777; font-size:12px; margin-top:2px; }
  .dy-switch { position:relative; width:46px; height:26px; border-radius:13px; background:rgba(255,255,255,.15); cursor:pointer; transition:background .2s; flex-shrink:0; }
  .dy-switch.on { background:#fe2c55; }
  .dy-switch::after { content:''; position:absolute; top:2px; left:2px; width:22px; height:22px; border-radius:50%; background:#fff; transition:transform .2s; }
  .dy-switch.on::after { transform:translateX(20px); }
  /* 语音操控提示条 */
  .dy-voice-hint { display:flex; align-items:center; gap:8px; padding:10px 12px; margin-top:14px; border-radius:10px; background:rgba(254,44,85,.08); border:1px solid rgba(254,44,85,.15); color:#ff6b81; font-size:12.5px; line-height:1.5; }
  .dy-voice-hint .dvh-ico { font-size:18px; flex-shrink:0; }
  /* 上传百分比文本 */
  .dy-upload-pct { text-align:center; color:#ff6b81; font-size:12px; margin-bottom:6px; display:none; }
  .dy-upload-pct.show { display:block; }
  /* 草稿恢复条 */
  .dy-draft-bar { display:none; align-items:center; justify-content:space-between; gap:10px; padding:10px 14px; margin-bottom:12px; border-radius:10px; background:rgba(94,148,255,.1); border:1px solid rgba(94,148,255,.25); color:#7aa5ff; font-size:13px; }
  .dy-draft-bar.show { display:flex; }
  .dy-draft-bar button { background:rgba(94,148,255,.25); border:none; color:#7aa5ff; padding:6px 14px; border-radius:8px; font-size:12.5px; cursor:pointer; font-weight:600; }
  .dy-draft-bar .ddb-close { background:none; padding:6px 6px; font-weight:400; }
  body.elder-mode .dy-vis-opt .dv-txt { font-size:15px; }
  body.elder-mode .dy-perm-label { font-size:17px; }
  body.elder-mode .dy-voice-hint { font-size:14px; }

  /* -- 抖音式发布页：配乐/位置行 -- */
            body.elder-mode 
  /* -- 发布成功 -- */
  .dy-success { text-align:center; padding:28px 24px; }
  .dy-success-icon { font-size:56px; margin-bottom:12px; }
  .dy-success-title { font-size:20px; font-weight:700; margin-bottom:8px; color:#fff; }
  .dy-success-desc { font-size:14px; color:#888; margin-bottom:24px; line-height:1.6; }
  .dy-success-btns { display:flex; gap:10px; }
  .dy-success-btn { flex:1; padding:14px; border:none; border-radius:10px; font-size:15px; font-weight:600; cursor:pointer; }
  .dy-success-btn.primary { background:linear-gradient(135deg,#fe2c55,#ff5067); color:#fff; }
  .dy-success-btn.secondary { background:rgba(255,255,255,.1); color:#fff; }

  /* -- 草稿提示 -- */
  .dy-draft-hint { position:fixed; bottom:80px; left:50%; transform:translateX(-50%); background:rgba(254,44,85,.9); color:#fff; padding:10px 16px; border-radius:20px; font-size:13px; z-index:200; display:none; align-items:center; gap:8px; }
  .dy-draft-hint.show { display:flex; }
  .dy-draft-hint button { background:rgba(255,255,255,.2); border:none; color:#fff; padding:4px 12px; border-radius:12px; font-size:12px; cursor:pointer; }
  .dy-draft-hint .dy-draft-close { background:rgba(255,255,255,.1); padding:4px 8px; }

  /* -- 银发适配 -- */
  body.elder-mode .dy-title { font-size:20px; }
  body.elder-mode .dy-mode { font-size:16px; }
  body.elder-mode .dy-entry-icon { width:56px; height:56px; font-size:28px; }
  body.elder-mode .dy-entry-text { font-size:14px; }
  body.elder-mode .dy-record { width:84px; height:84px; }
  body.elder-mode .dy-record-inner { width:64px; height:64px; }
  body.elder-mode .dy-source-icon { font-size:42px; }
  body.elder-mode .dy-source-name { font-size:16px; }
  body.elder-mode .dy-smart-btn { font-size:18px; padding:16px; }
  body.elder-mode .dy-smart-text { font-size:18px; }
  body.elder-mode .dy-smart-detail { font-size:15px; }
  body.elder-mode .dy-next { font-size:18px; }
  body.elder-mode .dy-field > label { font-size:16px; }
  body.elder-mode .dy-field input, body.elder-mode .dy-field textarea { font-size:18px; padding:14px 16px; }
  body.elder-mode   body.elder-mode   body.elder-mode   body.elder-mode   body.elder-mode   body.elder-mode   body.elder-mode .dy-submit { font-size:19px; padding:18px; }
  body.elder-mode .dy-success-title { font-size:22px; }
  body.elder-mode .dy-success-desc { font-size:15px; }
  body.elder-mode .dy-success-btn { font-size:16px; padding:16px; }

  /* v5.8.0 播放器缓冲指示器 */
  .video-spinner {
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:48px; height:48px; border-radius:50%;
    border:3px solid rgba(255,255,255,.15); border-top-color:#fe2c55;
    animation:spin .8s linear infinite; z-index:5;
    display:none; pointer-events:none;
  }
  @keyframes spin { to { transform:translate(-50%,-50%) rotate(360deg); } }
  .video-spinner.show { display:block; }
  /* 已缓冲段 */
  .progress-buffered {
    position:absolute; top:0; left:0; height:100%; border-radius:2px;
    background:rgba(255,255,255,.15); pointer-events:none; transition:width .3s;
  }
  /* 拖动快进提示 */
  .seek-preview {
    position:absolute; top:50%; transform:translateY(-50%);
    background:rgba(0,0,0,.75); color:#fff; font-size:12px;
    padding:6px 12px; border-radius:8px; pointer-events:none;
    z-index:10; display:none; white-space:nowrap;
  }
  .seek-preview.show { display:block; }
  body.light .video-spinner { border-color:rgba(0,0,0,.08); border-top-color:#fe2c55; }

  /* v5.8.0 创作者数据中心 */
  .creator-loading { text-align:center; padding:40px 0; color:#888; font-size:14px; }
  .creator-level-card {
    background:linear-gradient(135deg, rgba(254,44,85,.18), rgba(137,88,255,.14));
    border-radius:16px; padding:20px; margin-bottom:16px; text-align:center;
  }
  .creator-level-card .lv-badge {
    display:inline-block; min-width:64px; padding:4px 16px; border-radius:20px;
    font-size:22px; font-weight:800; color:#fff;
    background:linear-gradient(135deg, #fe2c55, #ff6a3d);
  }
  .creator-level-card .lv-points { font-size:28px; font-weight:700; margin-top:8px; }
  .creator-level-card .lv-label { font-size:12px; color:#888; margin-top:4px; }
  .creator-progress-bar { width:100%; height:8px; border-radius:4px; background:rgba(255,255,255,.1); margin-top:12px; overflow:hidden; }
  .creator-progress-bar .fill { height:100%; border-radius:4px; background:linear-gradient(90deg, #fe2c55, #ff6a3d); transition:width .6s; }
  .creator-stats-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:16px; }
  .creator-stat-card {
    background:#1c1c1e; border-radius:12px; padding:14px 8px; text-align:center;
  }
  .creator-stat-card .stat-val { font-size:20px; font-weight:700; }
  .creator-stat-card .stat-label { font-size:11px; color:#888; margin-top:4px; }
  .creator-section-title { font-size:14px; font-weight:700; margin:16px 0 10px; display:flex; align-items:center; gap:6px; }
  .creator-chart-row {
    display:flex; align-items:flex-end; gap:3px; height:80px; padding:8px 0;
  }
  .creator-chart-bar {
    flex:1; min-width:0; border-radius:3px 3px 0 0; transition:height .4s ease;
    position:relative; cursor:pointer;
  }
  .creator-chart-bar:hover { opacity:.8; }
  .creator-chart-bar .bar-tip {
    position:absolute; bottom:100%; left:50%; transform:translateX(-50%);
    background:rgba(0,0,0,.8); color:#fff; font-size:10px; padding:2px 6px;
    border-radius:4px; white-space:nowrap; opacity:0; transition:opacity .2s;
    margin-bottom:4px; pointer-events:none;
  }
  .creator-chart-bar:hover .bar-tip { opacity:1; }
  .creator-chart-labels { display:flex; gap:3px; font-size:9px; color:#666; }
  .creator-chart-labels span { flex:1; text-align:center; }
  .creator-quick-links { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:16px; }
  .creator-quick-link {
    background:#1c1c1e; border-radius:12px; padding:16px 12px; text-align:center;
    cursor:pointer; transition:transform .15s;
  }
  .creator-quick-link:active { transform:scale(.96); }
  .creator-quick-link .ql-icon { font-size:24px; }
  .creator-quick-link .ql-text { font-size:12px; color:#888; margin-top:4px; }
  body.light .creator-stat-card { background:#fff; }
  body.light .creator-quick-link { background:#fff; }
  body.light .creator-progress-bar { background:rgba(0,0,0,.08); }
  body.light .creator-level-card { background:linear-gradient(135deg, rgba(254,44,85,.1), rgba(137,88,255,.08)); }
  body.light .creator-section-title { color:#16161a; }
  body.light .creator-stat-card .stat-label { color:#999; }
  body.light .creator-quick-link .ql-text { color:#999; }
  body.elder-mode .creator-stat-card .stat-val { font-size:24px; }
  body.elder-mode .creator-stat-card .stat-label { font-size:13px; }
  body.elder-mode .creator-section-title { font-size:17px; }
  body.elder-mode .creator-quick-link .ql-text { font-size:14px; }



  /* v5.8.0 空状态增强 */
  .empty-tip { text-align:center; color:#777; padding:48px 0; font-size:14px; display:flex; flex-direction:column; align-items:center; gap:8px; }
  .empty-tip .empty-icon { font-size:36px; opacity:.5; }
  .empty-tip .empty-text { font-size:14px; color:#777; }

  /* v6.6.2 语音状态角标 */
  #voiceBadge{position:fixed;top:14px;right:14px;z-index:9200;display:flex;align-items:center;gap:6px;background:rgba(20,20,22,.8);border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:5px 12px;color:#fff;font-size:11px;pointer-events:auto;touch-action:manipulation;user-select:none}
  #voiceBadgeDot{width:8px;height:8px;border-radius:50%;background:#888;flex:none}
  #voiceBadgeDot.busy{background:#f5a623;animation:vbb 1s infinite}
  #voiceBadgeDot.ok{background:#2ecc71}
  #voiceBadgeDot.err{background:#e74c3c}
  @keyframes vbb{0%,100%{opacity:1}50%{opacity:.25}}
  #voicePanel{position:fixed;top:56px;right:14px;z-index:9201;width:min(300px,82vw);background:rgba(24,24,28,.96);border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:14px;color:#fff;font-size:13px;display:none;box-shadow:0 8px 30px rgba(0,0,0,.45)}
  #voicePanel .vp-title{font-weight:600;margin-bottom:6px}
  #voicePanel .vp-msg{color:#ccc;line-height:1.5;word-break:break-all;margin-bottom:10px;max-height:130px;overflow:auto;white-space:pre-wrap}
  #voicePanel .vp-btns{display:flex;gap:8px}
  #voicePanel .vp-btns button{flex:1;border:none;border-radius:8px;padding:9px 0;font-size:13px;background:#2e6be6;color:#fff}
  #voicePanel .vp-btns button.vp-close{background:#555}
/* ================= 无障碍与适老化增强 ================= */
/* 键盘/开关设备聚焦可见（触摸操作不受影响） */
:focus-visible{outline:3px solid #ffd166;outline-offset:2px;border-radius:6px}
/* 尊重系统"减少动态效果"无障碍偏好 */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
/* 关键可点击目标最小尺寸（WCAG 2.5.5：≥44px），仅放大不缩小现有布局 */
.act-btn{min-width:44px;min-height:44px}
.tab-item,.tab-publish{min-height:44px}
.ctrl-btn{min-width:40px;min-height:40px}/* 长辈模式「极简」：隐藏低频高级入口，只保留核心操作（非破坏，仅隐藏） */
body.elder-mode .menu-item[data-advanced]{display:none}
/* v6.9.2 简洁模式：隐藏抽屉菜单与设置页的低频入口（默认关，可一键开关） */
body.simple-mode .menu-item[data-advanced]{display:none}
body.simple-mode .set-row[data-advanced]{display:none}
/* ================= 健康使用：护眼 / 夜间防沉迷滤镜层 ================= */
.eye-care-layer{position:fixed;inset:0;pointer-events:none;z-index:9998;display:none;background:rgba(255,170,60,.10)}
.night-care-layer{position:fixed;inset:0;pointer-events:none;z-index:9998;display:none;background:rgba(255,140,40,.20)}
body.eye-care .eye-care-layer{display:block}
body.night-care .night-care-layer{display:block}
.hl-num{color:#fe2c55;font-weight:600}
/* ================= v6.9.3 会员专属主题：鎏金（仅 body.theme-gold 生效，默认关闭） ================= */
body.theme-gold .fs-hero-avatar{box-shadow:0 0 0 3px rgba(255,209,102,.85),0 0 18px rgba(255,209,102,.45)}
body.theme-gold .fs-tab.active{color:#ffd166}
body.theme-gold .tab-item.active{color:#ffd166}
body.theme-gold .fs-stat-num{color:#ffd166}
body.theme-gold .menu-logo{box-shadow:0 0 0 2px rgba(255,209,102,.8)}
body.theme-gold .fs-hero-name{color:#ffe6a7}
/* v6.9.3 播放页关注按钮（头像下方 ＋／✓） */
.follow-btn{margin-top:-10px}
.follow-plus{width:24px;height:24px;border-radius:50%;background:#fe2c55;color:#fff;font-size:16px;line-height:24px;text-align:center;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.4)}