/* 逍遥社区 · 移动端样式（玻璃拟态 + 靛蓝渐变，深浅双主题） */
:root {
    color-scheme: light;
    --primary: #21ba66;
    --primary-dark: #179952;
    --primary-light: #4ed38e;
    --primary-2: #0fa25c;
    --primary-soft: rgba(33, 186, 102, .10);
    --primary-ring: rgba(33, 186, 102, .22);
    --grad: linear-gradient(135deg, #2fc76f 0%, #149a52 100%);
    --grad-soft: linear-gradient(135deg, rgba(33, 186, 102, .13), rgba(15, 162, 92, .13));

    --bg: #f2f4f1;
    --bg-2: #eaede8;
    --blob-1: rgba(33, 186, 102, .20);
    --blob-2: rgba(20, 154, 82, .14);
    --blob-3: rgba(56, 189, 248, .10);
    --surface: rgba(255, 255, 255, .76);
    --surface-solid: #ffffff;
    --surface-2: rgba(255, 255, 255, .55);
    --surface-3: rgba(240, 243, 252, .78);
    --card: var(--surface);
    --glass-blur: blur(16px) saturate(165%);
    --glass-hi: inset 0 1px 0 rgba(255, 255, 255, .8);

    --text: #141a2e;
    --text-2: #49506c;
    --muted: #8a90a8;
    --border: rgba(20, 26, 46, .085);
    --border-2: rgba(20, 26, 46, .045);

    --danger: #e5484d;
    --danger-soft: rgba(229, 72, 77, .10);
    --success: #16a34a;
    --success-soft: rgba(22, 163, 74, .10);
    --warning: #f59e0b;
    --warning-soft: rgba(245, 158, 11, .13);

    --radius: 16px;
    --radius-sm: 11px;
    --shadow-sm: 0 1px 2px rgba(24, 32, 56, .04), 0 2px 8px rgba(24, 32, 56, .05);
    --shadow: 0 8px 28px rgba(53, 63, 118, .10);
    --shadow-glow: 0 10px 28px rgba(99, 102, 241, .30);
    --bar-h: 50px;
    --tab-h: 56px;
    --safe-b: env(safe-area-inset-bottom, 0px);
}

html[data-theme="dark"] {
    color-scheme: dark;
    --primary: #34cd7c;
    --primary-dark: #21ba66;
    --primary-light: #6fdfa2;
    --primary-2: #1ea257;
    --primary-soft: rgba(52, 205, 124, .16);
    --primary-ring: rgba(52, 205, 124, .30);

    --bg: #080b16;
    --bg-2: #0d1223;
    --blob-1: rgba(33, 186, 102, .26);
    --blob-2: rgba(20, 154, 82, .20);
    --blob-3: rgba(56, 189, 248, .12);
    --surface: rgba(24, 29, 51, .72);
    --surface-solid: #161b30;
    --surface-2: rgba(30, 36, 62, .55);
    --surface-3: rgba(38, 44, 74, .62);
    --glass-hi: inset 0 1px 0 rgba(255, 255, 255, .06);

    --text: #eef0fa;
    --text-2: #b7bdd6;
    --muted: #7f879f;
    --border: rgba(255, 255, 255, .10);
    --border-2: rgba(255, 255, 255, .055);

    --danger: #f87171;
    --danger-soft: rgba(248, 113, 113, .14);
    --success: #4ade80;
    --success-soft: rgba(74, 222, 128, .13);
    --warning: #fbbf24;
    --warning-soft: rgba(251, 191, 36, .14);

    --shadow-sm: 0 1px 2px rgba(0, 0, 0, .35), 0 2px 10px rgba(0, 0, 0, .25);
    --shadow: 0 10px 30px rgba(0, 0, 0, .40);
    --shadow-glow: 0 10px 30px rgba(99, 102, 241, .38);
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
/* hidden 属性必须优先于任何 display 声明，否则返回按钮 / 搜索条会常显 */
[hidden] { display: none !important; }
html, body { height: 100%; }
body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
    font-size: 15px; line-height: 1.65; color: var(--text); background: var(--bg);
    -webkit-font-smoothing: antialiased;
    overscroll-behavior-y: none;
}
a { color: var(--primary); text-decoration: none; }
img { max-width: 100%; display: block; }
h1, h2, h3, h4 { margin: 0; font-weight: 700; line-height: 1.4; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
em { font-style: normal; }
button { font-family: inherit; font-size: inherit; }

#app { min-height: 100%; display: flex; flex-direction: column; }

/* 顶部栏 */
.app-bar {
    position: fixed; top: 0; left: 0; right: 0; z-index: 50;
    height: var(--bar-h); display: flex; align-items: center; justify-content: space-between;
    padding: 0 12px; background: rgba(255,255,255,.95);
    backdrop-filter: saturate(180%) blur(10px);
    border-bottom: 1px solid var(--border);
}
.app-bar-left, .app-bar-right { display: flex; align-items: center; gap: 4px; }
.app-title { font-size: 16.5px; font-weight: 700; }

/* 49图库风顶栏：左绿色备用网址块 / 中标题 / 右图标带字 */
.bar-logo {
    flex: 0 0 auto;
    min-width: 82px; max-width: 120px; padding: 0 10px; margin-right: 4px;
    height: 38px; border: 0; border-radius: 8px; cursor: pointer;
    background: linear-gradient(160deg, #2fc76f, #12984f);
    color: #fff; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 1px;
    line-height: 1.25; box-shadow: 0 2px 6px rgba(33, 186, 102, .28);
}
.bar-logo b { font-size: 13px; font-weight: 800; max-width: 100px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bar-logo span { font-size: 9.5px; opacity: .92; white-space: nowrap; }
.bar-logo i { font-style: normal; }
.app-bar-mid {
    flex: 1 1 auto; min-width: 0;
    display: flex; align-items: center; justify-content: center; gap: 2px;
}
.app-bar-mid .app-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-bar-right { flex: 0 0 auto; gap: 0; }
.bar-act {
    border: 0; background: none; cursor: pointer;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 1px; padding: 0 6px; color: #333; position: relative; min-width: 42px;
}
.bar-act .icon { width: 20px; height: 20px; }
.bar-act span { font-size: 10px; line-height: 1.2; color: #333; }
/* 右下角悬浮按钮组（竖排：发帖 + 刷新，悬浮于底栏上方） */
.fab-group {
    position: fixed; right: 16px; z-index: 70;
    bottom: calc(var(--tab-h) + var(--safe-b) + 16px);
    display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.fab-group .bar-fab { position: static; }
.bar-fab {
    width: 60px; height: 60px; border-radius: 50%; border: 1px solid var(--border);
    cursor: pointer; background: #fff; color: #21ba66;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
    padding: 0; font-family: inherit;
    box-shadow: 0 4px 14px rgba(24, 32, 56, .16);
    transition: transform .15s ease;
}
.bar-fab:active { transform: scale(.92); }
.bar-fab .icon { width: 19px; height: 19px; flex: none; margin-top: -2px; }
.bar-fab span { font-size: 11.5px; font-weight: 700; line-height: 1; }
html[data-theme="dark"] .bar-fab { background: var(--card); }
/* 刷新按钮：蓝色，按下时图标旋转一圈 */
.bar-fab#btnRefresh { color: #3b7cf0; }
.bar-fab#btnRefresh.is-spin .icon { animation: fabspin .7s linear; }
@keyframes fabspin { from { transform: rotate(0); } to { transform: rotate(360deg); } }
.bar-act .bar-dot {
    position: absolute; top: 1px; right: 9px; width: 8px; height: 8px;
    background: var(--danger); border-radius: 50%;
}
.icon-action {
    width: 36px; height: 36px; border: 0; background: none; border-radius: 50%;
    display: grid; place-items: center; font-size: 17px; color: var(--text-2); cursor: pointer;
}
.icon-action:active { background: var(--bg); }

.search-bar {
    position: fixed; top: var(--bar-h); left: 0; right: 0; z-index: 49;
    display: flex; gap: 8px; padding: 8px 12px; background: var(--surface); border-bottom: 1px solid var(--border);
}
.search-bar input {
    flex: 1; height: 36px; padding: 0 12px; border: 1px solid var(--border);
    border-radius: 18px; font-size: 14px; outline: none; background: var(--bg);
}
.search-bar button {
    height: 36px; padding: 0 16px; border: 0; border-radius: 18px;
    background: var(--primary); color: #fff; font-size: 13.5px; font-weight: 600;
}

/* 视图 */
.view {
    flex: 1; padding: calc(var(--bar-h) + 8px) 0 calc(var(--tab-h) + var(--safe-b) + 8px);
    min-height: 100vh;
}
.view.has-search { padding-top: calc(var(--bar-h) + 52px); }
.view.no-tab { padding-bottom: 20px; }

/* 底部导航 */
.tab-bar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
    height: calc(var(--tab-h) + var(--safe-b)); padding-bottom: var(--safe-b);
    display: flex; background: rgba(255,255,255,.97);
    border-top: 1px solid var(--border);
}
.tab-item {
    flex: 1; border: 0; background: none; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 2px;
    color: var(--muted); font-size: 10.5px; position: relative; cursor: pointer;
}
.tab-item em { font-size: 19px; line-height: 1.2; }
.tab-item.is-active { color: var(--primary); }
.tab-item .dot {
    position: absolute; top: 6px; right: 50%; margin-right: -18px;
    width: 8px; height: 8px; background: var(--danger); border-radius: 50%;
}
.tab-post em {
    width: 40px; height: 40px; border-radius: 50%; background: var(--primary); color: #fff;
    display: grid; place-items: center; font-size: 22px; font-weight: 300;
    box-shadow: 0 4px 12px rgba(79,124,255,.36); margin-top: -14px;
}
.tab-post span { margin-top: 1px; }

/* 中间凸起：高手榜（49图库「高手之家」同款绿圆 + 热角标） */
.tab-experts { overflow: visible; }
.tab-experts em.tab-ball {
    position: relative; width: 46px; height: 46px; margin-top: -17px;
    border-radius: 50%; color: #fff;
    background: linear-gradient(180deg, #35c26e, #159a50);
    display: grid; place-items: center;
    box-shadow: 0 5px 12px rgba(33, 186, 102, .42), inset 0 1px 0 rgba(255, 255, 255, .28);
    border: 3px solid var(--surface-solid);
}
.tab-experts em.tab-ball .icon { width: 22px; height: 22px; }
.tab-experts em.tab-ball i {
    position: absolute; top: -5px; right: -9px;
    font-style: normal; background: #ff5040; color: #fff;
    font-size: 9.5px; line-height: 1; padding: 3px 5px;
    border-radius: 9px 9px 9px 2px;
    box-shadow: 0 2px 5px rgba(255, 80, 64, .4);
}
.tab-experts span { margin-top: 0; }

/* 通用块 */
.block { background: var(--card); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); margin-bottom: 8px; }
.block-pad { padding: 14px; }
.sec-title {
    display: flex; align-items: center; gap: 8px;
    padding: 13px 14px 9px; font-size: 15px; font-weight: 700;
}
.sec-title .more { margin-left: auto; font-size: 12.5px; color: var(--muted); font-weight: 400; }
.muted { color: var(--muted); }
.small { font-size: 12.5px; }

/* 广告位 */
.ad-banner { margin: 8px 10px 10px; border-radius: var(--radius); overflow: hidden; }
.ad-carousel { position: relative; border-radius: var(--radius); overflow: hidden; }
.ad-carousel-item { display: none; }
.ad-carousel-item.is-active { display: block; }
.ad-carousel-dots { position: absolute; left: 50%; bottom: 8px; transform: translateX(-50%); display: flex; gap: 5px; }
.ad-dot { width: 6px; height: 6px; border-radius: 50%; border: 0; background: rgba(255,255,255,.65); }
.ad-dot.is-active { background: var(--surface); width: 14px; border-radius: 3px; }
.ad-item { position: relative; display: block; background: var(--surface); }
.ad-item img { width: 100%; }
.ad-text { display: flex; align-items: center; gap: 12px; padding: 15px 16px; background: linear-gradient(120deg, #eef3ff, #f8faff 65%); }
.ad-text-title { font-size: 15.5px; font-weight: 700; }
.ad-text-desc { flex: 1; font-size: 12.5px; color: var(--text-2); }
.ad-btn { padding: 5px 14px; background: var(--primary); color: #fff; border-radius: 14px; font-size: 12.5px; font-weight: 600; }
.ad-flag { position: absolute; right: 6px; bottom: 4px; padding: 0 5px; border-radius: 4px; background: rgba(0,0,0,.35); color: #fff; font-size: 9.5px; }
.ad-empty { margin: 8px 10px; padding: 18px; text-align: center; color: var(--muted); font-size: 12.5px; border: 1px dashed var(--border); border-radius: var(--radius); background: var(--surface-2); }

/* 广告位中心页 */
.ads-hero-cell { background: linear-gradient(135deg, #4f7cff, #7c9cff); color: #fff; padding: 18px 16px; margin-bottom: 8px; }
.ads-hero-cell h2 { font-size: 19px; font-weight: 800; margin-bottom: 7px; }
.ads-hero-cell p { font-size: 12.5px; line-height: 1.75; opacity: .95; }
.ads-hero-nums { display: flex; gap: 8px; margin-top: 14px; }
.ads-hero-nums > div { flex: 1; text-align: center; padding: 9px 4px; border-radius: 10px; background: rgba(255, 255, 255, .18); border: 1px solid rgba(255, 255, 255, .26); }
.ads-hero-nums strong { display: block; font-size: 16px; font-weight: 800; }
.ads-hero-nums span { font-size: 11px; opacity: .92; }

.ad-slot-wrap { padding: 0 10px 12px; }
.ad-slot-desc { font-size: 12.5px; color: var(--muted); line-height: 1.7; padding: 0 4px 9px; }
.ad-slot-wrap .ad-banner { margin: 0 0 8px; }
.ad-slot-wrap .ad-banner:last-child { margin-bottom: 0; }
.ad-slot-empty-cell {
    display: flex; align-items: center; gap: 11px; padding: 16px 14px;
    border: 1px dashed var(--border); border-radius: var(--radius); background: var(--surface-2);
}
.ad-slot-empty-cell .ico {
    width: 34px; height: 34px; flex-shrink: 0; border-radius: 50%;
    display: grid; place-items: center; background: var(--surface-3); color: #b3bed6; font-size: 16px;
}
.ad-slot-empty-cell strong { display: block; font-size: 13.5px; }
.ad-slot-empty-cell p { font-size: 12px; color: var(--muted); margin-top: 2px; }
.badge-live, .badge-idle { margin-left: auto; font-size: 11px; padding: 2px 8px; border-radius: 9px; font-weight: 600; flex-shrink: 0; }
.badge-live { background: var(--success-soft); color: #109c4c; }
.badge-idle { background: var(--warning-soft); color: #d97706; }

/* 广告位入口条 */
.ads-entry {
    display: flex; align-items: center; gap: 11px; padding: 14px;
    background: var(--surface); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
    margin-bottom: 8px; font-size: 15px;
}
.ads-entry .ico { font-size: 17px; width: 22px; text-align: center; }
.ads-entry .sub { font-size: 12px; color: var(--muted); margin-top: 2px; }
.ads-entry .arrow { margin-left: auto; color: var(--muted); font-size: 16px; }

/* 彩票开奖 */
.lt-cell {
    background: var(--surface); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
    margin-bottom: 8px; padding: 13px 14px;
}
.lt-cell[data-go] { cursor: pointer; }
.lt-cell-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.lt-name { display: flex; align-items: center; gap: 7px; font-size: 14.5px; font-weight: 700; }
.lt-name em { font-style: normal; font-size: 12px; font-weight: 500; color: var(--muted); }
.lt-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--lc, var(--primary)); display: inline-block; flex-shrink: 0; }
.lottery-balls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.lottery-balls.lt-mini { gap: 6px; }
.ball {
    /* 立体号码球 · 光照公式（与前台 assets/css/style.css 同源，尺寸更小故阴影更收紧）
       ⚠ 公式必须定义在球元素自身，不能放进 :root —— 自定义属性里的 var()
         会在定义处被解析，放到 :root 会取不到各配色类的 --b-* 而整条失效。
       四层径向渐变：高光斑 / 反弹光 / 边缘暗角 / 球面明暗，光源统一在左上方 */
    --ball-surface:
        radial-gradient(circle at 33% 26%, rgba(255, 255, 255, .97) 0%, rgba(255, 255, 255, .58) 9%, rgba(255, 255, 255, 0) 30%),
        radial-gradient(circle at 63% 87%, rgba(255, 255, 255, .32) 0%, rgba(255, 255, 255, 0) 36%),
        radial-gradient(circle at 50% 50%, rgba(0, 0, 0, 0) 54%, rgba(0, 0, 0, var(--b-edge, .32)) 100%),
        radial-gradient(circle at 36% 30%, var(--b-lite) 0%, var(--b-mid) 50%, var(--b-dark) 100%);
    --ball-shade:
        inset -1.5px -2.5px 6px rgba(0, 0, 0, .24),
        inset 1.5px 2px 5px rgba(255, 255, 255, .18),
        var(--b-ring, 0 0 0 0 rgba(0, 0, 0, 0)),
        0 2px 5px rgba(24, 32, 56, .18),
        0 1px 1px rgba(24, 32, 56, .12);

    /* 默认配色即主号红球 */
    --b-lite: #ff9d95;
    --b-mid:  #e63946;
    --b-dark: #8b1114;

    display: inline-flex; align-items: center; justify-content: center;
    width: 34px; height: 34px; border-radius: 50%;
    font-size: 14.5px; font-weight: 700; color: #fff;
    font-variant-numeric: tabular-nums;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .38);
    background: var(--ball-surface);
    box-shadow: var(--ball-shade);
}
.ball-main  { --b-lite: #ff9d95; --b-mid: #e63946; --b-dark: #8b1114; }
.ball-extra { --b-lite: #8fbcff; --b-mid: #2563eb; --b-dark: #0e2468; }
.ball-sep { color: var(--muted); font-size: 15px; font-weight: 700; }

/* 六合彩波色 */
.ball.wave-red   { --b-lite: #ff9d95; --b-mid: #d92b1e; --b-dark: #76100a; }
.ball.wave-blue  { --b-lite: #8fbcff; --b-mid: #1e4fd9; --b-dark: #0a1c60; }
.ball.wave-green { --b-lite: #86e3a9; --b-mid: #12954a; --b-dark: #05401f; }
/* 特码同色光环 */
.ball-extra.wave-red   { --b-ring: 0 0 0 2px rgba(217, 43, 30, .24); }
.ball-extra.wave-blue  { --b-ring: 0 0 0 2px rgba(30, 79, 217, .24); }
.ball-extra.wave-green { --b-ring: 0 0 0 2px rgba(18, 149, 74, .24); }
.ball.is-special { transform: scale(1.06); }
.ball-double { font-size: 13px; letter-spacing: -.5px; }
.wave-legend { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 10px; font-size: 11.5px; color: var(--muted); }
.wave-legend i { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 4px; vertical-align: middle; }
.wave-legend i.w-red { background: #d92b1e; }
.wave-legend i.w-blue { background: #1e4fd9; }
.wave-legend i.w-green { background: #12954a; }

/* 号码球 + 生肖小字（与电脑版一致：球下方标注该号所属生肖） */
.ball-cell { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; }
.ball-zodiac { font-size: 10.5px; font-style: normal; line-height: 1.2; color: var(--muted); }
.lt-mini .ball-zodiac { font-size: 9.5px; }

/* 最新开奖：奖池 / 投注额 / 号码构成 */
.lt-meta {
    display: flex; flex-wrap: wrap; gap: 10px 22px;
    margin-top: 13px; padding-top: 12px; border-top: 1px dashed var(--border);
}
.lt-meta-item > span { display: block; font-size: 11.5px; color: var(--muted); margin-bottom: 2px; }
.lt-meta-item > div { font-size: 13.5px; color: var(--text-2); }
.lt-meta-item > div b { color: var(--text); font-size: 14.5px; font-weight: 700; }
.lt-meta-plain { font-weight: 600; color: var(--text) !important; }
.lt-dash { color: var(--muted); }

/* 奖项明细 */
.lt-prizes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 11px; }
.lt-prize {
    flex: 1 1 30%; min-width: 92px;
    padding: 6px 10px; border-radius: 9px;
    background: var(--surface-3); border: 1px solid var(--border-2);
}
.lt-prize b { display: block; font-size: 11px; color: var(--muted); font-weight: 600; margin-bottom: 2px; }
.lt-prize span { font-size: 12.5px; color: var(--text); font-weight: 600; }

/* 历史行：奖池 + 投注额 */
.lt-cell-money {
    display: flex; flex-wrap: wrap; align-items: center; gap: 3px;
    margin-top: 8px; font-size: 11.5px; color: var(--muted);
}
.lt-cell-money b { color: var(--text-2); font-weight: 700; }
.lt-cell-money i { font-style: normal; opacity: .55; padding: 0 3px; }
.lt-mini .ball { width: 27px; height: 27px; font-size: 12px; }
.lt-mini .ball-sep { font-size: 13px; }
.lt-latest {
    background: var(--surface); border-top: 2px solid var(--lc, var(--primary));
    border-bottom: 1px solid var(--border); margin-bottom: 8px; padding: 15px 14px 16px;
}
.lt-l-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.lt-l-head .lt-name { font-size: 16px; }

/* 板块胶囊 */
.chip-row { display: flex; gap: 8px; overflow-x: auto; padding: 10px 12px; scrollbar-width: none; }
.chip-row::-webkit-scrollbar { display: none; }
.chip {
    flex-shrink: 0; padding: 6px 13px; border-radius: 16px;
    background: var(--bg); color: var(--text-2); font-size: 13px; border: 0; cursor: pointer;
}
.chip.is-active { background: var(--primary); color: #fff; font-weight: 600; }
.chip .dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; margin-right: 5px; vertical-align: middle; }

/* 帖子列表 */
.post-cell { display: flex; gap: 11px; padding: 13px 14px; border-bottom: 1px solid var(--border); background: var(--surface); }
.post-cell:last-child { border-bottom: 0; }
.post-cell:active { background: var(--surface-2); }
.post-cell.is-top { background: var(--warning-soft); }
.post-avatar { width: 38px; height: 38px; border-radius: 11px; flex-shrink: 0; object-fit: cover; }
.post-body { flex: 1; min-width: 0; }
.post-t { font-size: 15px; font-weight: 600; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.post-s { font-size: 12.5px; color: var(--muted); margin-top: 4px; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.post-m { display: flex; align-items: center; gap: 9px; margin-top: 6px; font-size: 11.5px; color: var(--muted); flex-wrap: wrap; }
.badge-board { padding: 1px 8px; border-radius: 9px; background: var(--primary-soft); color: var(--primary); font-weight: 600; }
.badge-top { padding: 1px 6px; border-radius: 5px; background: #fff1e6; color: #e2680a; font-weight: 600; }
.badge-essence { padding: 1px 6px; border-radius: 5px; background: var(--success-soft); color: #109c4c; font-weight: 600; }

/* 帖子详情 */
.detail-head { background: var(--surface); padding: 16px 14px 12px; border-bottom: 1px solid var(--border); }
.detail-title { font-size: 19px; line-height: 1.45; }
.detail-meta { display: flex; align-items: center; gap: 9px; margin-top: 12px; }
.detail-meta img { width: 34px; height: 34px; border-radius: 10px; }
.detail-meta .dm-name { font-size: 13.5px; font-weight: 600; }
.detail-meta .dm-sub { font-size: 11.5px; color: var(--muted); }
.detail-body { background: var(--surface); padding: 14px; font-size: 15.5px; line-height: 1.85; word-break: break-word; }
.detail-body .md-p { margin-bottom: 12px; }
.detail-body .md-h { margin: 18px 0 10px; }
.detail-body .md-img { border-radius: 10px; margin: 10px 0; }
.detail-body .md-quote { margin: 12px 0; padding: 10px 14px; border-left: 3px solid var(--primary); background: var(--primary-soft); color: var(--text-2); }
.detail-body .md-ul, .detail-body .md-ol { margin: 0 0 12px; padding-left: 22px; }
.detail-body .md-ul { list-style: disc; }
.detail-body .md-ol { list-style: decimal; }
.detail-body .md-code { padding: 1px 5px; border-radius: 4px; background: #f1f3f9; color: #d6336c; font-size: 13.5px; }
.detail-body .md-pre { margin: 12px 0; padding: 12px; border-radius: 10px; background: #1e2432; color: #e6e9f0; overflow-x: auto; font-size: 12.5px; }
.detail-body .md-pre code { background: none; color: inherit; padding: 0; }
.detail-actions { display: flex; gap: 8px; padding: 11px 14px; background: var(--surface); border-top: 1px solid var(--border); }
.act-btn {
    flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 5px;
    height: 34px; border: 1px solid var(--border); border-radius: 17px;
    background: var(--surface); color: var(--text-2); font-size: 13px;
}
.act-btn.is-active { background: var(--primary); border-color: var(--primary); color: #fff; }

/* 评论 */
.comment { display: flex; gap: 10px; padding: 13px 14px; border-bottom: 1px solid var(--border); background: var(--surface); }
.comment:last-child { border-bottom: 0; }
.comment img.c-avatar { width: 32px; height: 32px; border-radius: 9px; flex-shrink: 0; }
.comment-main { flex: 1; min-width: 0; }
.comment-top { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); flex-wrap: wrap; }
.comment-name { font-size: 13px; font-weight: 600; color: var(--text-2); }
.comment-body { font-size: 14.5px; color: var(--text-2); margin-top: 4px; word-break: break-word; }
.comment-foot { display: flex; gap: 14px; margin-top: 7px; font-size: 12px; color: var(--muted); }
.comment-child { margin-top: 9px; padding-left: 10px; border-left: 2px solid var(--border); }

/* 表单 */
.form-row { padding: 0 14px; margin-bottom: 14px; }
.form-row label { display: block; font-size: 13px; font-weight: 600; color: var(--text-2); margin-bottom: 6px; }
.form-row input, .form-row textarea, .form-row select {
    width: 100%; padding: 11px 13px; border: 1px solid var(--border); border-radius: 10px;
    font-size: 15px; font-family: inherit; background: var(--surface); outline: none; color: var(--text);
}
.form-row textarea { resize: vertical; line-height: 1.7; min-height: 140px; }
.form-row input:focus, .form-row textarea:focus, .form-row select:focus { border-color: var(--primary); }
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    height: 44px; padding: 0 20px; border: 0; border-radius: 10px;
    background: var(--primary); color: #fff; font-size: 15px; font-weight: 600; cursor: pointer;
}
.btn:active { opacity: .86; }
.btn-block { width: 100%; }
.btn-ghost { background: var(--surface); color: var(--text-2); border: 1px solid var(--border); }
.btn-sm { height: 34px; font-size: 13.5px; padding: 0 14px; }
.btn-danger { background: var(--danger); }

/* 个人中心 */
.me-head { background: linear-gradient(140deg, #4f7cff, #7c9cff); padding: 26px 16px 22px; color: #fff; }
.me-head-inner { display: flex; align-items: center; gap: 14px; }
.me-head img { width: 62px; height: 62px; border-radius: 20px; border: 2px solid rgba(255,255,255,.6); object-fit: cover; }
.me-head .me-name { font-size: 19px; font-weight: 700; }
.me-head .me-sub { font-size: 12.5px; opacity: .9; margin-top: 3px; }
.me-stats { display: flex; gap: 26px; margin-top: 18px; }
.me-stats div { text-align: center; }
.me-stats strong { display: block; font-size: 18px; }
.me-stats span { font-size: 11.5px; opacity: .85; }
.menu-list { background: var(--surface); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); margin-bottom: 8px; }
.menu-item {
    display: flex; align-items: center; gap: 11px; padding: 14px;
    border-bottom: 1px solid var(--border); font-size: 15px; color: var(--text);
}
.menu-item:last-child { border-bottom: 0; }
.menu-item .mi-ico { font-size: 17px; width: 22px; text-align: center; }
.menu-item .mi-arrow { margin-left: auto; color: var(--muted); font-size: 16px; }
.menu-item .mi-badge { margin-left: auto; background: var(--danger); color: #fff; font-size: 11px; padding: 1px 7px; border-radius: 9px; }

/* 通知 */
.notice-cell { display: flex; gap: 11px; padding: 13px 14px; border-bottom: 1px solid var(--border); background: var(--surface); }
.notice-cell.unread { background: #f7faff; }
.notice-cell .n-ico { font-size: 18px; }
.notice-cell .n-main { flex: 1; min-width: 0; }
.notice-cell .n-text { font-size: 14px; color: var(--text-2); }
.notice-cell .n-text b { color: var(--text); }
.notice-cell .n-content { font-size: 13px; color: var(--muted); margin-top: 3px; }
.notice-cell .n-meta { font-size: 11.5px; color: var(--muted); margin-top: 4px; display: flex; gap: 8px; }

/* 状态 */
.loading, .empty { text-align: center; padding: 46px 20px; color: var(--muted); font-size: 14px; }
.empty .e-icon { font-size: 34px; margin-bottom: 8px; }
.spinner {
    width: 22px; height: 22px; margin: 0 auto 10px;
    border: 2px solid var(--border); border-top-color: var(--primary); border-radius: 50%;
    animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.load-more { padding: 16px; text-align: center; color: var(--muted); font-size: 13px; }

/* 弹层 */
.sheet-mask {
    position: fixed; inset: 0; background: rgba(0,0,0,.42); z-index: 200;
    display: flex; align-items: flex-end; opacity: 0; transition: opacity .2s;
}
.sheet-mask.show { opacity: 1; }
.sheet {
    width: 100%; background: var(--surface); border-radius: 16px 16px 0 0;
    padding: 16px 14px calc(16px + var(--safe-b)); transform: translateY(100%);
    transition: transform .24s ease; max-height: 86vh; overflow-y: auto;
}
.sheet-mask.show .sheet { transform: none; }
.sheet-title { font-size: 16px; font-weight: 700; margin-bottom: 12px; text-align: center; }
.sheet textarea {
    width: 100%; min-height: 110px; padding: 11px 13px; border: 1px solid var(--border);
    border-radius: 10px; font-size: 15px; font-family: inherit; outline: none; resize: vertical;
}
.sheet-actions { display: flex; gap: 10px; margin-top: 12px; }

.toast-wrap {
    position: fixed; left: 14px; right: 14px; bottom: calc(var(--tab-h) + var(--safe-b) + 16px);
    z-index: 300; display: flex; flex-direction: column; gap: 8px; pointer-events: none;
}
.toast {
    background: rgba(30,36,50,.94); color: #fff; padding: 11px 14px;
    border-radius: 10px; font-size: 14px; text-align: center;
    animation: toastIn .22s ease;
}
@keyframes toastIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* 分类网格（板块页） */
.grid-cells { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; padding: 12px; }
.grid-cell { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 13px; }
.grid-cell .gc-icon {
    width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center;
    color: #fff; font-size: 16px; font-weight: 700; margin-bottom: 9px;
}
.grid-cell .gc-name { font-size: 14.5px; font-weight: 600; }
.grid-cell .gc-desc { font-size: 11.5px; color: var(--muted); margin-top: 3px; min-height: 30px; }
.grid-cell .gc-stat { font-size: 11.5px; color: var(--muted); margin-top: 6px; }

/* 标签云 */
.tag-cloud { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 14px 14px; }
.tag-cloud .chip { font-size: 12.5px; }

/* =============================================================
 * 成长体系（排行榜 / 等级 / 积分 / 礼物 / 粉丝 / 聊天室）
 * ============================================================= */

/* 分段切换 */
.seg-bar {
    display: flex; gap: 6px; overflow-x: auto; padding: 10px 12px;
    background: var(--surface); border-bottom: 1px solid var(--border); scrollbar-width: none;
}
.seg-bar::-webkit-scrollbar { display: none; }
.seg-item {
    flex: 0 0 auto; height: 32px; padding: 0 14px; border-radius: 16px;
    border: 1px solid var(--border); background: var(--surface); color: var(--text-2);
    font-size: 13px; white-space: nowrap; cursor: pointer;
}
.seg-item.is-active { background: var(--primary); border-color: var(--primary); color: #fff; font-weight: 600; }

/* 进度条 */
.bar { height: 7px; border-radius: 4px; background: #edf1f8; overflow: hidden; }
.bar > span { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, #5b86ff, #8fabff); }

/* 排行榜 */
.rank-hero {
    margin: 12px; padding: 18px; border-radius: var(--radius); color: #fff;
    background: linear-gradient(135deg, #4f7cff, #7e9dff); display: flex;
    align-items: center; justify-content: space-between;
}
.rank-hero .rh-label { font-size: 12.5px; opacity: .9; }
.rank-hero .rh-no { font-size: 21px; font-weight: 700; }
.podium { display: flex; justify-content: center; align-items: flex-end; gap: 12px; padding: 14px 12px 18px; }
.pd-item {
    flex: 1; max-width: 108px; background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--radius); padding: 12px 8px; text-align: center;
}
.pd-item .pd-crown { font-size: 20px; line-height: 1; }
.pd-item .pd-avatar { width: 52px; height: 52px; border-radius: 50%; margin: 6px auto 6px; object-fit: cover; }
.pd-item .pd-name { font-size: 13px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pd-item .pd-val { font-size: 12.5px; color: var(--primary); font-weight: 700; }
.rank-line {
    display: flex; align-items: center; gap: 10px; padding: 11px 14px;
    border-bottom: 1px solid var(--border); background: var(--surface);
}
.rank-line:last-child { border-bottom: 0; }
.rank-line.is-me { background: var(--primary-soft); }
.rank-line .rl-no { width: 24px; text-align: center; font-weight: 700; color: var(--muted); font-size: 13px; }
.rank-line .rl-avatar { width: 36px; height: 36px; border-radius: 11px; object-fit: cover; }
.rank-line .rl-main { flex: 1; min-width: 0; }
.rank-line .rl-name { font-size: 14.5px; font-weight: 600; }
.rank-line .rl-sub { font-size: 11.5px; color: var(--muted); }
.rank-line .rl-val { font-weight: 700; color: var(--primary); font-variant-numeric: tabular-nums; }

/* 等级 */
.lv-hero {
    margin: 12px; padding: 18px; border-radius: var(--radius); color: #fff;
    background: linear-gradient(135deg, var(--c, #4f7cff), #8eacff);
    display: flex; align-items: center; gap: 14px;
}
.lv-hero .lh-icon { font-size: 34px; }
.lv-hero .lh-name { font-size: 19px; font-weight: 700; }
.lv-hero .lh-sub { font-size: 12.5px; opacity: .92; margin-top: 2px; }
.lv-row { display: flex; gap: 11px; padding: 13px 14px; border-bottom: 1px solid var(--border); }
.lv-row:last-child { border-bottom: 0; }
.lv-row.is-me { background: var(--primary-soft); }
.lv-badge {
    flex: 0 0 auto; height: 24px; padding: 0 9px; border-radius: 12px;
    display: grid; place-items: center; font-size: 12px; font-weight: 700;
}
.lv-main { flex: 1; min-width: 0; }
.lv-main .lv-name { font-size: 14.5px; font-weight: 600; }
.lv-main .lv-sub { font-size: 11.5px; color: var(--muted); margin-top: 2px; }
.lv-main .lv-desc { font-size: 12px; color: var(--text-2); margin-top: 4px; }
.tag-me {
    margin-left: 6px; font-size: 10.5px; padding: 1px 6px; border-radius: 8px;
    background: var(--primary); color: #fff; vertical-align: middle;
}
.priv-wrap { display: flex; flex-wrap: wrap; gap: 7px; padding: 0 14px 14px; }
.priv {
    font-size: 12px; padding: 4px 10px; border-radius: 12px;
    background: var(--primary-soft); color: var(--primary-dark);
}

/* 我的积分 */
.pts-hero {
    margin: 12px; padding: 18px; border-radius: var(--radius); color: #fff;
    background: linear-gradient(135deg, #f0a24b, #ee7f5b);
}
.pts-hero .ph-label { font-size: 12.5px; opacity: .92; }
.pts-hero .ph-val { font-size: 32px; font-weight: 700; line-height: 1.25; font-variant-numeric: tabular-nums; }
.pts-hero .ph-row { display: flex; flex-wrap: wrap; gap: 12px; font-size: 12px; opacity: .93; margin: 6px 0 14px; }
.pts-hero .btn { background: var(--surface); color: #d2731f; }
.pts-hero .btn[disabled] { opacity: .62; }
.log-row {
    display: flex; align-items: center; gap: 10px; padding: 11px 14px;
    border-bottom: 1px solid var(--border); background: var(--surface);
}
.log-row:last-child { border-bottom: 0; }
.log-row .lr-main { flex: 1; min-width: 0; }
.log-row .lr-type { font-size: 14px; font-weight: 600; }
.log-row .lr-remark { font-size: 12px; color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.log-row .lr-time { font-size: 11px; color: var(--muted); }
.log-row .lr-val { font-weight: 700; font-variant-numeric: tabular-nums; }
.log-row .lr-val.up { color: #1f9d55; }
.log-row .lr-val.down { color: #d64545; }

/* 礼物 */
.stat-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px;
    background: var(--border); margin: 10px 12px; border-radius: var(--radius); overflow: hidden;
}
.stat-grid > div { background: var(--surface); padding: 12px 4px; text-align: center; }
.stat-grid strong { display: block; font-size: 16px; font-weight: 700; color: var(--text); }
.stat-grid span { font-size: 11px; color: var(--muted); }
.gift-wall { display: flex; flex-wrap: wrap; gap: 9px; padding: 0 14px 14px; }
.gw-item {
    width: 68px; padding: 9px 4px; border: 1px solid var(--border); border-radius: 10px;
    text-align: center; background: var(--surface);
}
.gw-item .gw-ico { display: block; font-size: 22px; line-height: 1.2; }
.gw-item .gw-name { font-size: 11px; color: var(--text-2); }
.gift-log {
    display: flex; gap: 11px; padding: 12px 14px; border-bottom: 1px solid var(--border); background: var(--surface);
}
.gift-log:last-child { border-bottom: 0; }
.gift-log .gl-ico { font-size: 26px; line-height: 1.1; }
.gift-log .gl-main { flex: 1; min-width: 0; }
.gift-log .gl-name { font-size: 14px; font-weight: 600; }
.gift-log .gl-name em { font-style: normal; font-size: 12px; color: #e08b2a; font-weight: 600; }
.gift-log .gl-sub { font-size: 12px; color: var(--muted); }
.gift-log .gl-msg { font-size: 12.5px; color: var(--text-2); margin-top: 3px; }
.gift-pick { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.gp-item {
    position: relative; padding: 10px 4px; border: 1px solid var(--border); border-radius: 10px;
    text-align: center; background: var(--surface); cursor: pointer;
}
.gp-item input { position: absolute; opacity: 0; pointer-events: none; }
.gp-item.is-sel { border-color: var(--primary); background: var(--primary-soft); }
.gp-item .gp-ico { display: block; font-size: 22px; }
.gp-item .gp-name { display: block; font-size: 11.5px; font-weight: 600; }
.gp-item .gp-price { display: block; font-size: 11px; color: var(--primary); }
.sheet-head {
    display: flex; align-items: center; font-size: 16px; font-weight: 700;
    margin-bottom: 12px;
}
.sheet-x {
    margin-left: auto; border: 0; background: none; font-size: 22px; line-height: 1;
    color: var(--muted); cursor: pointer;
}

/* 粉丝 / 关注 */
.fl-cell {
    display: flex; align-items: center; gap: 11px; padding: 12px 14px;
    border-bottom: 1px solid var(--border); background: var(--surface);
}
.fl-cell:last-child { border-bottom: 0; }
.fl-cell .fl-avatar { width: 44px; height: 44px; border-radius: 14px; object-fit: cover; }
.fl-cell .fl-main { flex: 1; min-width: 0; }
.fl-cell .fl-name { font-size: 14.5px; font-weight: 600; }
.fl-cell .fl-sub { font-size: 11.5px; color: var(--muted); }
.fl-cell .fl-bio { font-size: 12px; color: var(--text-2); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fl-btn {
    flex: 0 0 auto; height: 32px; padding: 0 13px; border-radius: 16px;
    background: var(--primary); color: #fff; border: 0; font-size: 13px; font-weight: 600;
}
.fl-btn.is-on { background: var(--surface); color: var(--text-2); border: 1px solid var(--border); font-weight: 400; }

/* 用户主页操作区 */
.user-hero-actions { display: flex; gap: 9px; margin-top: 16px; }
.user-hero-actions .btn { flex: 1; }
.user-hero-actions .btn.is-on { background: rgba(255,255,255,.22); color: #fff; border: 1px solid rgba(255,255,255,.5); }
.user-hero-actions .btn:not(.is-on):not(.btn-ghost) { background: var(--surface); color: var(--primary); }

/* 首页玩法入口 */
.entry-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; padding: 10px 12px 14px; }
.entry-card {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
    padding: 13px; cursor: pointer;
}
.entry-card em { font-size: 20px; font-style: normal; }
.entry-card span { display: block; font-size: 14.5px; font-weight: 600; margin-top: 4px; }
.entry-card i { display: block; font-style: normal; font-size: 11.5px; color: var(--muted); }

/* 聊天室 */
.room-cell {
    display: flex; align-items: center; gap: 11px; padding: 12px 14px;
    border-bottom: 1px solid var(--border); background: var(--surface);
}
.room-cell:last-child { border-bottom: 0; }
.room-cell.is-locked { opacity: .6; }
.room-cell .rc-ico {
    width: 40px; height: 40px; border-radius: 13px; display: grid; place-items: center;
    font-size: 19px; color: #fff; flex: 0 0 auto;
}
.room-cell .rc-main { flex: 1; min-width: 0; }
.room-cell .rc-name { font-size: 14.5px; font-weight: 600; }
.room-cell .rc-sub {
    font-size: 12px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.room-cell .rc-count { font-size: 12px; color: var(--muted); }

.chat-head {
    display: flex; align-items: center; gap: 10px; padding: 10px 12px;
    background: var(--surface); border-bottom: 1px solid var(--border);
}
.chat-head .ch-ico {
    width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center;
    font-size: 17px; color: #fff; flex: 0 0 auto;
}
.chat-head .ch-main { flex: 1; min-width: 0; }
.chat-head .ch-name { font-size: 15px; font-weight: 700; }
.chat-head .ch-sub { font-size: 11.5px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.chat-body {
    height: 52vh; min-height: 260px; overflow-y: auto; padding: 12px;
    background: var(--bg); -webkit-overflow-scrolling: touch;
}
.chat-empty { text-align: center; color: var(--muted); font-size: 13px; padding: 40px 0; }
.chat-cell { display: flex; gap: 8px; margin-bottom: 12px; }
.chat-cell.is-mine { flex-direction: row-reverse; }
.chat-cell .cc-avatar { width: 34px; height: 34px; border-radius: 11px; object-fit: cover; flex: 0 0 auto; }
.chat-cell .cc-main { max-width: 76%; }
.chat-cell.is-mine .cc-main { text-align: right; }
.chat-cell .cc-meta { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--muted); margin-bottom: 3px; }
.chat-cell.is-mine .cc-meta { justify-content: flex-end; }
.chat-cell .cc-name { font-weight: 600; color: var(--text-2); }
.chat-cell .cc-tag {
    font-size: 10px; padding: 0 5px; border-radius: 6px; background: #ffeaea; color: #d64545;
}
.chat-cell .cc-bubble {
    display: inline-block; text-align: left; padding: 8px 11px; border-radius: 12px;
    background: var(--surface); font-size: 14px; line-height: 1.6; word-break: break-word;
    border: 1px solid var(--border);
}
.chat-cell.is-mine .cc-bubble { background: var(--primary); color: #fff; border-color: var(--primary); }
.chat-cell.is-admin .cc-bubble { border-color: #ffd8d8; }

/* 聊天房间：撑满剩余高度，输入条贴近底栏 */
.chat-room {
    display: flex; flex-direction: column;
    height: calc(100vh - var(--bar-h) - var(--tab-h) - var(--safe-b) - 16px);
}
.chat-room .chat-body { flex: 1 1 0; height: auto; min-height: 200px; }

.chat-composer {
    display: flex; gap: 8px; padding: 10px 12px calc(10px + var(--safe-b));
    background: var(--surface); border-top: 1px solid var(--border);
}
.chat-composer input {
    flex: 1; height: 40px; padding: 0 13px; border: 1px solid var(--border);
    border-radius: 20px; font-size: 14.5px; font-family: inherit; outline: none;
}
.chat-composer .btn { flex: 0 0 auto; height: 40px; padding: 0 18px; border-radius: 20px; }
.chat-locked {
    padding: 16px; text-align: center; font-size: 13px; color: var(--muted);
    background: var(--surface); border-top: 1px solid var(--border);
}

/* ============ 选号助手（H5） ============ */
.seg-wrap { flex-wrap: wrap; }
.pk-hero {
    margin: 12px; padding: 18px 16px; border-radius: 16px;
    background: linear-gradient(135deg, #e63946, #b02339); color: #fff;
    box-shadow: 0 8px 20px rgba(230, 57, 70, .25);
}
.phk-title { font-size: 19px; font-weight: 800; }
.phk-sub { margin-top: 5px; font-size: 12px; opacity: .82; }
.pk-rule { margin-top: 9px; font-size: 12px; color: var(--muted); }
.pk-list { display: flex; flex-direction: column; gap: 10px; }
.pk-row {
    display: flex; align-items: center; gap: 10px; padding: 11px 12px;
    background: var(--surface); border: 1px solid var(--border); border-radius: 12px;
}
.pk-row.is-mine { align-items: flex-start; }
.pk-idx {
    flex: 0 0 22px; height: 22px; border-radius: 50%; background: var(--bg);
    font-size: 12px; font-weight: 700; color: var(--muted);
    display: inline-flex; align-items: center; justify-content: center;
}
.pk-main { flex: 1; min-width: 0; }
.pk-lot { font-size: 12px; font-weight: 700; margin-bottom: 5px; }
.pk-balls { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.pkb {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 26px; height: 26px; padding: 0 3px; border-radius: 50%;
    font-size: 12px; font-weight: 700; color: #fff; font-variant-numeric: tabular-nums;
    background: radial-gradient(circle at 34% 28%, rgba(255,255,255,.95) 0%, rgba(255,255,255,.5) 26%, rgba(255,255,255,0) 46%),
                radial-gradient(circle at 36% 30%, #ff8d84 0%, #e63946 55%, #8b1114 100%);
    text-shadow: 0 1px 2px rgba(0,0,0,.35);
    box-shadow: inset -1px -2px 4px rgba(0,0,0,.22), 0 2px 4px rgba(24,32,56,.18);
}
.pkb-extra {
    background: radial-gradient(circle at 34% 28%, rgba(255,255,255,.95) 0%, rgba(255,255,255,.5) 26%, rgba(255,255,255,0) 46%),
                radial-gradient(circle at 36% 30%, #6ea3ff 0%, #2563eb 55%, #12327e 100%);
}
.pkb-dan {
    background: radial-gradient(circle at 34% 28%, rgba(255,255,255,.95) 0%, rgba(255,255,255,.5) 26%, rgba(255,255,255,0) 46%),
                radial-gradient(circle at 36% 30%, #ffd88f 0%, #e08b1a 55%, #7a4605 100%);
}
.pkb-sep { font-size: 13px; font-weight: 700; color: var(--muted); padding: 0 1px; }
.pk-acts { display: flex; flex-direction: column; gap: 6px; flex: 0 0 auto; }
.pk-acts .btn { padding: 0 12px; height: 28px; font-size: 12px; }
.pk-acts .pk-del { color: #d64545; }
.pk-hit { margin-top: 6px; font-size: 12px; color: #c2521a; font-weight: 600; }
.pk-time { margin-top: 5px; font-size: 11.5px; color: var(--muted); }
.pk-batch { margin-top: 12px; }

/* ============================================================= *
 * 首页横幅轮播图
 * ============================================================= */
.banner {
    position: relative;
    margin: 10px 10px 2px;
    border-radius: 14px;
    overflow: hidden;
    background: var(--surface-3);
    box-shadow: 0 6px 18px rgba(31, 45, 90, .10);
}
.banner-track {
    display: flex;
    transition: transform .45s cubic-bezier(.33, .8, .35, 1);
    will-change: transform;
}
.banner-slide {
    flex: 0 0 100%;
    position: relative;
    aspect-ratio: 5 / 2;
    cursor: pointer;
}
.banner-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    -webkit-user-drag: none;
    user-select: none;
    pointer-events: none;
}
.banner-slide.is-active { z-index: 1; }
.banner-dots {
    position: absolute;
    right: 12px;
    bottom: 10px;
    display: flex;
    gap: 5px;
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(17, 24, 46, .22);
    backdrop-filter: blur(4px);
    pointer-events: auto;
}
.banner-dot {
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .55);
    transition: width .25s, background .25s;
    cursor: pointer;
}
.banner-dot.is-active { width: 16px; background: var(--surface); }

/* ==========================================================================
   V2 视觉层 · 玻璃拟态 + 靛蓝渐变（H5）
   ========================================================================== */

/* ---- 背景光斑 ---- */
html { background: var(--bg); }
body::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(680px 460px at 12% -8%, var(--blob-1), transparent 64%),
        radial-gradient(620px 420px at 92% 4%, var(--blob-2), transparent 60%),
        radial-gradient(640px 460px at 50% 110%, var(--blob-3), transparent 64%);
}

/* ---- 顶栏 / 底栏：玻璃 ---- */
.app-bar {
    background: var(--surface);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border-bottom: 1px solid var(--border);
}
.app-title { letter-spacing: -.01em; }

.tab-bar {
    background: var(--surface);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border-top: 1px solid var(--border);
    box-shadow: 0 -8px 30px rgba(20, 26, 46, .06);
}
html[data-theme="dark"] .tab-bar { box-shadow: 0 -8px 30px rgba(0, 0, 0, .4); }
.tab-item { transition: color .15s, transform .15s; border-radius: 12px; }
.tab-item.is-active { font-weight: 700; }
.tab-item.is-active em { filter: drop-shadow(0 4px 10px rgba(33, 186, 102, .45)); }
.tab-post em {
    background: var(--grad);
    box-shadow: var(--shadow-glow);
}

/* ---- 卡片玻璃化 ---- */
.block, .card, .entry-card, .menu-list, .post-item, .notice-item,
.stat-row .stat, .pk-body, .pk-random, .lot-card, .chat-panel, .comment-item {
    background: var(--surface);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm), var(--glass-hi);
}

/* ---- 按钮 ---- */
.btn {
    border-radius: var(--radius-sm);
    font-weight: 600;
    background: var(--grad);
    color: #fff;
    border: 0;
    box-shadow: var(--shadow-glow);
    transition: filter .2s, transform .15s;
}
.btn:active { transform: scale(.98); }
.btn-ghost {
    background: var(--surface-2);
    color: var(--text);
    border: 1px solid var(--border);
    box-shadow: none;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
.btn-danger { background: linear-gradient(135deg, #f0656a, #e5484d); box-shadow: 0 8px 22px rgba(229, 72, 77, .28); }

/* ---- 菜单 / 入口卡 ---- */
.menu-item { transition: background .15s; border-radius: 12px; }
.menu-item:active { background: var(--primary-soft); }
.entry-card {
    background: var(--grad-soft);
    border: 1px solid var(--border);
}
.entry-card:active { transform: scale(.98); }

/* ---- 表单 ---- */
.input, .textarea, select.input, .search-input input {
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    transition: border-color .15s, box-shadow .15s, background .15s;
}
.input:focus, .textarea:focus, .search-input input:focus {
    background: var(--surface-solid);
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-ring);
    outline: none;
}

/* ---- 我的页头部 ---- */
.me-head {
    background: var(--grad);
    border-radius: 0 0 var(--radius) var(--radius);
    position: relative;
    overflow: hidden;
}
.me-head::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(420px 220px at 88% -16%, rgba(255, 255, 255, .32), transparent 62%),
        radial-gradient(320px 200px at 4% 118%, rgba(255, 255, 255, .16), transparent 60%);
    pointer-events: none;
}
.me-head-inner { position: relative; z-index: 1; }

/* ---- 主题切换菜单行 ---- */
.theme-state { color: var(--muted); font-size: 12.5px; }

/* ---- 深色补丁 ---- */
html[data-theme="dark"] ::-webkit-scrollbar { width: 0; height: 0; }
html[data-theme="dark"] img { color-scheme: dark; }
html[data-theme="dark"] .post-cover img,
html[data-theme="dark"] .banner-slide img { filter: brightness(.94); }

/* ==========================================================================
   线性 SVG 图标系统
   ========================================================================== */
.icon { display: inline-block; width: 1.15em; height: 1.15em; vertical-align: -.22em; flex-shrink: 0; }

/* 底部 Tab */
.tab-item em { display: inline-flex; align-items: center; justify-content: center; }
.tab-item em .icon { width: 21px; height: 21px; }
.tab-item.is-active em .icon { color: var(--primary); }

/* 我的页菜单 */
.menu-item .mi-ico { display: inline-flex; align-items: center; justify-content: center; }
.menu-item .mi-ico .icon { width: 18px; height: 18px; color: var(--primary); }

/* 首页入口卡 */
.entry-card em { display: inline-flex; align-items: center; justify-content: center; }
.entry-card em .icon { width: 21px; height: 21px; color: var(--primary); }

/* 页面标题 */
.page-title .icon, .panel-title .icon { width: 1.25em; height: 1.25em; vertical-align: -.26em; color: var(--primary); }

/* ==========================================================================
   选号助手：号码池 / 特码分组筛选 / 已选预览（与电脑版交互一致）
   ========================================================================== */
.pk-tip { margin-left: auto; font-size: 12px; font-weight: 500; font-style: normal; color: var(--muted); }
/* .sec-title 是 flex，[hidden] 会被 display:flex 覆盖，需显式关掉 */
.sec-title[hidden] { display: none; }

/* 号码池 */
.pk-pool { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 14px 14px; }
.pk-pool[hidden] { display: none; }

/* 号码池球 / 已选球：立体球面公式必须定义在球元素自身，
   否则 var(--b-*) 会在定义处解析，取不到各配色类而整条失效 */
.pk-ball, .pk-chosen-ball {
    --ball-surface:
        radial-gradient(circle at 33% 26%, rgba(255, 255, 255, .97) 0%, rgba(255, 255, 255, .58) 9%, rgba(255, 255, 255, 0) 30%),
        radial-gradient(circle at 63% 87%, rgba(255, 255, 255, .32) 0%, rgba(255, 255, 255, 0) 36%),
        radial-gradient(circle at 50% 50%, rgba(0, 0, 0, 0) 54%, rgba(0, 0, 0, var(--b-edge, .30)) 100%),
        radial-gradient(circle at 36% 30%, var(--b-lite) 0%, var(--b-mid) 50%, var(--b-dark) 100%);
    --ball-shade:
        inset -1.5px -2.5px 6px rgba(0, 0, 0, .24),
        inset 1.5px 2px 5px rgba(255, 255, 255, .18),
        var(--b-ring, 0 0 0 0 rgba(0, 0, 0, 0)),
        0 2px 5px rgba(24, 32, 56, .18),
        0 1px 1px rgba(24, 32, 56, .12);
}

/* 未选中的号池球：白色立体球 */
.pk-ball {
    --b-lite: #ffffff;
    --b-mid:  #f3f6fb;
    --b-dark: #ccd6e6;
    --b-edge: .16;

    display: inline-flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; border-radius: 50%; border: 0; padding: 0;
    background: var(--ball-surface);
    color: var(--text-2);
    font-size: 14.5px; font-weight: 700; font-variant-numeric: tabular-nums;
    cursor: pointer;
    transition: transform .13s, box-shadow .13s, color .13s;
    box-shadow:
        inset -1.5px -2.5px 6px rgba(24, 32, 56, .10),
        inset 1.5px 2px 5px rgba(255, 255, 255, .98),
        0 2px 5px rgba(24, 32, 56, .14),
        0 1px 1px rgba(24, 32, 56, .10);
}
.pk-ball.ball-double { font-size: 12.5px; letter-spacing: -.5px; }
.pk-ball:active { transform: scale(.93); }

/* 选中：整颗转为彩色立体球（主号红 / 特码蓝 / 胆码金 / 六合彩按波色） */
.pk-ball.is-on {
    --b-lite: #ff9d95; --b-mid: #e63946; --b-dark: #8b1114;
    --b-edge: .34;
    color: #fff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .38);
    box-shadow: var(--ball-shade);
}
.pk-pool[data-pool="extra"] .pk-ball.is-on { --b-lite: #8fbcff; --b-mid: #2563eb; --b-dark: #0e2468; }
.pk-pool[data-pool="dan"]   .pk-ball.is-on { --b-lite: #ffd88f; --b-mid: #e08b1a; --b-dark: #7a4605; }
.pk-ball.wave-red.is-on   { --b-lite: #ff9d95; --b-mid: #d92b1e; --b-dark: #76100a; }
.pk-ball.wave-blue.is-on  { --b-lite: #8fbcff; --b-mid: #1e4fd9; --b-dark: #0a1c60; }
.pk-ball.wave-green.is-on { --b-lite: #86e3a9; --b-mid: #12954a; --b-dark: #05401f; }
/* 未选中时用文字色暗示波色 */
.pk-ball.wave-red   { color: #d92b1e; }
.pk-ball.wave-blue  { color: #1e4fd9; }
.pk-ball.wave-green { color: #12954a; }

/* 特码球下的小生肖 */
.pk-ball-cell { display: inline-flex; flex-direction: column; align-items: center; gap: 3px; }
.pk-ball-cell[hidden] { display: none; }
.pk-ball-zodiac { font-size: 10px; font-style: normal; line-height: 1; color: var(--muted); }

/* 特码分组筛选条（波色 / 大小 / 生肖） */
.pk-pf { margin: 0 14px 12px; padding: 11px 12px; border-radius: 12px; background: var(--surface-3); border: 1px solid var(--border); }
.pk-pf-row { display: flex; gap: 8px; align-items: flex-start; margin-bottom: 8px; }
.pk-pf-name { flex: 0 0 32px; font-size: 12.5px; color: var(--muted); line-height: 26px; }
.pk-pf-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pk-pf-chip {
    height: 26px; padding: 0 10px; border-radius: 13px; cursor: pointer;
    border: 1px solid var(--border); background: var(--surface-solid); color: var(--text-2);
    font-size: 12px;
}
.pk-pf-chip.is-active { background: var(--primary); border-color: var(--primary); color: #fff; font-weight: 600; }
.pk-pf-chip.is-red.is-active   { background: #d92b1e; border-color: #d92b1e; }
.pk-pf-chip.is-blue.is-active  { background: #1e4fd9; border-color: #1e4fd9; }
.pk-pf-chip.is-green.is-active { background: #12954a; border-color: #12954a; }
.pk-pf-tip { margin: 4px 0 0; font-size: 11px; line-height: 1.6; color: var(--muted); }
.pk-pf-reset {
    margin-top: 8px; height: 28px; padding: 0 12px; border-radius: 14px; cursor: pointer;
    border: 1px dashed var(--border); background: transparent; color: var(--text-2); font-size: 12px;
}
.pk-pf-reset[hidden] { display: none; }

/* 已选预览 + 注数 */
.pk-pick-box { display: flex; flex-direction: column; gap: 9px; padding: 0 14px 14px; }
.pk-result-line { display: flex; gap: 9px; align-items: flex-start; }
.pk-result-label { flex: 0 0 56px; padding-top: 4px; font-size: 12.5px; font-weight: 600; color: var(--text-2); }
.pk-chosen { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-height: 26px; }
.pk-chosen-empty { font-size: 12.5px; color: var(--muted); }
.pk-chosen-ball {
    --b-lite: #ff9d95; --b-mid: #e63946; --b-dark: #8b1114;
    display: inline-flex; align-items: center; justify-content: center;
    width: 30px; height: 30px; border-radius: 50%;
    background: var(--ball-surface); box-shadow: var(--ball-shade);
    color: #fff; font-size: 13px; font-weight: 700;
    font-variant-numeric: tabular-nums; text-shadow: 0 1px 2px rgba(0, 0, 0, .36);
}
.pk-chosen-ball.is-extra { --b-lite: #8fbcff; --b-mid: #2563eb; --b-dark: #0e2468; }
.pk-chosen-ball.is-dan   { --b-lite: #ffd88f; --b-mid: #e08b1a; --b-dark: #7a4605; --b-ring: 0 0 0 2px rgba(224, 139, 26, .30); }
.pk-chosen-ball.wave-red   { --b-lite: #ff9d95; --b-mid: #d92b1e; --b-dark: #76100a; }
.pk-chosen-ball.wave-blue  { --b-lite: #8fbcff; --b-mid: #1e4fd9; --b-dark: #0a1c60; }
.pk-chosen-ball.wave-green { --b-lite: #86e3a9; --b-mid: #12954a; --b-dark: #05401f; }

.pk-bets { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 13px; color: var(--text-2); }
.pk-bets-num b { font-size: 16px; font-weight: 800; color: var(--primary); }
.pk-bets-tip { font-size: 11.5px; color: var(--muted); }
.pk-actions { display: flex; flex-wrap: wrap; gap: 8px; }

/* 上期开奖参考行 */
.pk-ref {
    display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px;
    padding: 11px 14px; font-size: 12.5px; color: var(--muted);
}
.pk-ref-label { font-weight: 700; color: var(--text-2); }
.pk-ref-issue { color: var(--text-2); }
.pk-ref-balls { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.pk-ref-balls .ball { width: 28px; height: 28px; font-size: 12.5px; }
.pk-ref-balls .ball-zodiac { font-size: 9.5px; }
.pk-ref-date { margin-left: auto; }

/* ==========================================================================
   首页 · 开奖结果卡片（与电脑版 views/home.php「彩票开奖」面板同款结构）
   ========================================================================== */
.lt-card-body { padding: 2px 14px 14px; }
.lt-card-item + .lt-card-item {
    margin-top: 13px; padding-top: 13px; border-top: 1px dashed var(--border);
}
.lt-card-head {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    margin-bottom: 10px;
}
.lt-card-name {
    display: flex; align-items: center; gap: 7px;
    font-size: 14.5px; font-weight: 700; color: var(--text);
}
.lt-card-name em { font-style: normal; font-size: 12px; font-weight: 500; color: var(--muted); }
.lt-card-dot {
    display: inline-block; flex-shrink: 0;
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--lc, var(--primary));
}
.lottery-balls.lt-card-balls { gap: 7px; }
.lt-card-foot {
    display: flex; flex-wrap: wrap; align-items: center; gap: 3px 5px;
    margin-top: 10px; font-size: 11.5px; color: var(--muted);
}
.lt-card-foot b { color: var(--text-2); font-weight: 700; }
.lt-card-foot i { font-style: normal; opacity: .55; padding: 0 3px; }
/* 下一期开奖时间 + 实时时间（卡片底部） */
.lt-card-next {
    display: flex; flex-direction: column; gap: 4px;
    margin-top: 9px; padding: 7px 10px;
    border-radius: var(--radius-sm);
    background: var(--surface-3);
    border: 1px dashed var(--border);
    font-size: 12px; color: var(--muted);
}
.lt-card-next .lcn-item { display: flex; align-items: center; flex-wrap: wrap; gap: 0 4px; }
.lt-card-next b { color: var(--text-2); font-weight: 700; font-variant-numeric: tabular-nums; }
.lt-card-next em { font-style: normal; }
.lt-card-next .lcn-clock b { color: var(--lc, var(--primary)); }
.lt-card-more {
    display: block; margin-top: 14px; padding-top: 12px;
    border-top: 1px solid var(--border-2);
    text-align: center; font-size: 13.5px; font-weight: 600; color: var(--primary);
    cursor: pointer;
}

/* ==========================================================================
   首页 · 现场开奖视频（YouTube 播放列表 / HLS 直播）
   ========================================================================== */
.live-dot {
    display: inline-block; vertical-align: 1px;
    width: 8px; height: 8px; margin-right: 6px;
    border-radius: 50%; background: #e53935;
    box-shadow: 0 0 0 0 rgba(229, 57, 53, .65);
    animation: livePulse 1.8s ease-out infinite;
}
@keyframes livePulse {
    0%   { box-shadow: 0 0 0 0 rgba(229, 57, 53, .60); }
    70%  { box-shadow: 0 0 0 7px rgba(229, 57, 53, 0); }
    100% { box-shadow: 0 0 0 0 rgba(229, 57, 53, 0); }
}

.dv-list { padding: 0 14px 14px; display: flex; flex-direction: column; gap: 14px; }
.dv-card {
    border: 1px solid var(--border); border-radius: var(--radius-sm);
    background: var(--surface-3); overflow: hidden;
}
.dv-head {
    display: flex; align-items: center; justify-content: space-between;
    gap: 8px; flex-wrap: wrap; padding: 10px 12px 9px;
}
.dv-title { display: flex; align-items: center; font-size: 13.5px; font-weight: 700; color: var(--text); }
.dv-sub { font-size: 11.5px; color: var(--muted); }
.dv-embed {
    position: relative; width: 100%; padding-top: 56.25%;   /* 16:9 */
    background: #000;
}
.dv-embed iframe, .dv-embed .dv-live {
    position: absolute; inset: 0; width: 100%; height: 100%;
    display: block; border: 0;
}
.dv-embed .dv-live { object-fit: contain; }
.dv-status {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
    padding: 0 16px; text-align: center;
    background: #0d1220; color: #fff;
}
.dv-status[hidden] { display: none; }
.dv-status-text { font-size: 13.5px; font-weight: 600; }
.dv-status-sub { font-size: 11.5px; opacity: .7; line-height: 1.6; }
.dv-tip { padding: 9px 12px 0; font-size: 11.5px; line-height: 1.6; color: var(--muted); }
.dv-link {
    display: block; padding: 9px 12px 11px;
    font-size: 12.5px; font-weight: 600; color: var(--primary); text-decoration: none;
}

/* ==========================================================================
   选号助手 · 与电脑版 me_picker 对齐（分组 / 已选 / 高级过滤 / 操作行 / 我的号码）
   ========================================================================== */
.pk-panel { padding: 0 14px 16px; }
.pk-panel .sec-title { padding-left: 0; padding-right: 0; }

/* 彩种切换 chips（电脑版 picker-chip 风格） */
.pk-switch { display: flex; flex-wrap: wrap; gap: 7px; padding-bottom: 10px; }
.pk-switch-chip {
    display: inline-flex; align-items: center; gap: 6px;
    height: 32px; padding: 0 13px; border-radius: 16px; cursor: pointer;
    border: 1px solid var(--border); background: var(--surface-solid);
    color: var(--text-2); font-size: 12.5px; font-weight: 600;
}
.pk-switch-chip i { width: 6px; height: 6px; border-radius: 50%; background: var(--cc, #4f7cff); }
.pk-switch-chip.is-active { background: var(--cc, #4f7cff); border-color: var(--cc, #4f7cff); color: #fff; }
.pk-switch-chip.is-active i { background: #fff; }
.pk-rule { margin: 0 0 4px; line-height: 1.6; }

/* 号池分组 */
.pk-group { border-top: 1px dashed var(--border); margin-top: 14px; padding-top: 14px; }
.pk-group[hidden] { display: none; }
.pk-group-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 11px; }
.pk-group-title { font-size: 14px; font-weight: 700; color: var(--text); }
.pk-group-title em { margin-left: 5px; font-size: 12px; font-weight: 500; font-style: normal; color: var(--muted); }
.pk-group-tip { margin-left: auto; font-size: 12px; color: var(--muted); }
.pk-panel .pk-pool { padding: 0; gap: 9px; }
.pk-panel .pk-ball { width: 38px; height: 38px; font-size: 15px; }

/* 特码筛选条（电脑版 pk-pool-filter） */
.pk-pool-filter {
    margin-bottom: 12px; padding: 11px 12px; border-radius: var(--radius-sm);
    background: var(--surface-3); border: 1px solid var(--border);
}
.pk-pf-head { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; }
.pk-pf-title { font-size: 13px; font-weight: 700; color: var(--text-2); }
.pk-pf-title em { margin-left: 4px; font-size: 11.5px; font-weight: 400; font-style: normal; color: var(--muted); }
.pk-pool-filter .pk-pf-reset { margin-top: 0; margin-left: auto; }
.pk-pool-filter .pk-pf-tip { margin-top: 8px; }

/* 已选区 */
.pk-result {
    display: flex; flex-direction: column; gap: 10px;
    border-top: 1px dashed var(--border); margin-top: 14px; padding-top: 14px;
}
.pk-result .pk-chosen { min-height: 24px; }
.pk-bets { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; font-size: 13px; color: var(--text-2); }
.pk-bets-text { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.pk-bets > .btn { margin-left: auto; }
.pk-bets strong { font-size: 18px; font-weight: 800; color: var(--primary); font-variant-numeric: tabular-nums; }
.pk-bets .pk-bets-tip { font-size: 12px; color: var(--muted); }

/* 高级过滤 */
.pk-filter { border: 1px solid var(--border); border-radius: var(--radius-sm); overflow: hidden; }
.pk-filter summary {
    padding: 11px 13px; font-size: 13.5px; font-weight: 600; color: var(--text-2);
    cursor: pointer; list-style: none; background: var(--surface-2);
}
.pk-filter summary::-webkit-details-marker { display: none; }
.pk-filter summary::before { content: "▸ "; color: var(--muted); }
.pk-filter[open] summary::before { content: "▾ "; }
.pk-filter summary em { margin-left: 8px; font-size: 11.5px; font-weight: 400; font-style: normal; color: var(--muted); }
.pk-filter-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; padding: 13px; }
.pk-field { display: flex; flex-direction: column; gap: 6px; font-size: 12.5px; color: var(--text-2); }
.pk-field input[type="text"], .pk-field input[type="number"], .pk-field select {
    width: 100%; height: 36px; padding: 0 10px; border-radius: 9px;
    border: 1px solid var(--border); background: var(--surface-solid); color: var(--text);
    font-size: 13px; font-family: inherit;
}
.pk-field input:focus, .pk-field select:focus { outline: none; border-color: var(--primary); }
.pk-field-range { display: flex; align-items: center; gap: 6px; }
.pk-field-range i { color: var(--muted); font-style: normal; }
.pk-field-check { flex-direction: row; align-items: center; gap: 8px; padding-top: 18px; grid-column: 1 / -1; }
.pk-field-check input { width: 17px; height: 17px; accent-color: var(--primary); }

/* 操作行 / 备注 */
.pk-actions { border-top: 1px dashed var(--border); margin-top: 14px; padding-top: 14px; }
.pk-actions-left, .pk-actions-right { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pk-actions-right { margin-left: auto; }
.pk-batch { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; color: var(--text-2); }
.pk-batch input {
    width: 54px; height: 34px; padding: 0 8px; border-radius: 9px; text-align: center;
    border: 1px solid var(--border); background: var(--surface-solid); color: var(--text); font-size: 13px;
}
.pk-note-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.pk-note-row input[type="text"] {
    flex: 1 1 100%; height: 38px; padding: 0 12px; border-radius: 10px;
    border: 1px solid var(--border); background: var(--surface-solid); color: var(--text); font-size: 13px;
}
.pk-note-tip { font-size: 12px; color: var(--muted); }
.pk-note-tip strong { color: var(--primary); }

/* 机选结果 */
.pk-random-result { border-top: 1px dashed var(--border); margin-top: 14px; padding-top: 14px; }
.pk-random-result[hidden] { display: none; }
.pk-random-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 13px; color: var(--text-2); }
.pk-random-head strong { color: var(--primary); font-size: 16px; }
.pk-random-head-actions { margin-left: auto; display: flex; gap: 7px; flex-wrap: wrap; }
.pk-random-list { display: flex; flex-direction: column; gap: 9px; margin-top: 11px; }
.pk-random-item {
    display: flex; align-items: center; gap: 8px; padding: 10px 11px;
    border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-2);
}
.pk-random-no {
    flex: 0 0 22px; height: 22px; line-height: 22px; text-align: center;
    border-radius: 7px; background: var(--primary-soft); color: var(--primary);
    font-size: 12px; font-weight: 700;
}
.pk-random-balls { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; flex: 1; }
.pk-random-balls .ball { width: 30px; height: 30px; font-size: 13px; }
.pk-random-balls .ball-zodiac { font-size: 9.5px; }
.pk-random-ops { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.pk-random-ops .btn { height: 30px; padding: 0 11px; font-size: 12px; }

/* 我的号码 */
.pk-list-filter { display: flex; flex-wrap: wrap; gap: 7px; padding: 0 14px 12px; }
.pk-filter-chip {
    height: 30px; padding: 0 12px; border-radius: 15px; cursor: pointer;
    border: 1px solid var(--border); background: var(--surface-solid);
    color: var(--text-2); font-size: 12.5px;
}
.pk-filter-chip.is-active { background: var(--primary); border-color: var(--primary); color: #fff; font-weight: 600; }

.pk-list { padding: 0 14px; }
.pk-item {
    border: 1px solid var(--border); border-radius: var(--radius-sm);
    padding: 12px; background: var(--surface-2);
}
.pk-item + .pk-item { margin-top: 0; }
.pk-item-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12px; color: var(--muted); }
.pk-item-name { font-size: 13px; font-weight: 700; color: var(--pc, var(--primary)); }
.pk-item-mode { color: var(--text-2); font-weight: 600; }
.pk-item-note { padding: 2px 8px; border-radius: 999px; background: var(--primary-soft); color: var(--primary); }
.pk-item-time { margin-left: auto; }
.pk-copy, .pk-del {
    height: 26px; padding: 0 10px; border-radius: 8px; cursor: pointer;
    border: 1px solid var(--border); background: var(--surface-solid);
    color: var(--text-2); font-size: 12px;
}
.pk-copy:active { transform: scale(.96); }
.pk-del:hover, .pk-del:active { border-color: var(--danger); color: var(--danger); }
.pk-item-balls { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 9px; }
.pk-item-balls .ball { width: 30px; height: 30px; font-size: 13px; }
.pk-item-balls .ball-zodiac { font-size: 9.5px; }
.pk-item-balls .ball-sep { font-size: 14px; }
.pk-item-foot { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 9px; font-size: 12px; }
.pk-hit { color: var(--success); font-weight: 600; }
.pk-muted { color: var(--muted); }

/* 使用说明 */
.pk-note-body { padding: 0 14px 14px; font-size: 13px; line-height: 1.85; color: var(--text-2); }
.pk-note-body ul { padding-left: 18px; display: flex; flex-direction: column; gap: 7px; }
.pk-note-body strong { color: var(--text); }

/* 复制兜底面板：http 下自动复制被浏览器拒绝时使用 */
.copy-fallback {
    position: fixed; inset: 0; z-index: 2000;
    background: rgba(15, 20, 40, .48);
    display: flex; align-items: center; justify-content: center;
    padding: 24px;
}
.cf-box {
    width: 100%; max-width: 330px;
    background: var(--surface); color: var(--text);
    border: 1px solid var(--border); border-radius: 16px;
    padding: 16px; box-shadow: 0 18px 48px rgba(10, 15, 35, .28);
}
.cf-tip { margin: 0 0 10px; font-size: 13px; line-height: 1.6; color: var(--text-2); }
.cf-text {
    width: 100%; min-height: 96px; box-sizing: border-box;
    padding: 10px 12px; border-radius: 10px;
    border: 1px solid var(--border); background: var(--surface-2, var(--surface));
    color: var(--text); font-size: 14px; line-height: 1.7;
    font-family: inherit; resize: none; -webkit-user-select: text; user-select: text;
}
.cf-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
.cf-tip.is-ok { color: var(--success); font-weight: 600; }
.cf-hint { margin: 8px 0 0; font-size: 12px; color: var(--muted); }
.btn.is-dim { opacity: .55; }

/* 「只玩特码」彩种（港彩 / 澳彩）说明条 */
.pk-special-tip {
    margin: 8px 0 4px;
    padding: 9px 12px;
    border-radius: var(--radius-sm);
    background: var(--primary-soft);
    border: 1px solid var(--primary-ring);
    color: var(--text-2);
    font-size: 12.5px;
    line-height: 1.65;
}

/* 「我的」宫格分区：彩色渐变圆角图标 + 4 列网格（对齐 APP 个人中心风格） */
.me-sec {
    background: var(--surface);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    margin-bottom: 8px;
    padding: 14px 8px 6px;
}
.me-sec-title { font-size: 15px; font-weight: 700; color: var(--text); padding: 0 8px 10px; }
.me-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.mg-item {
    position: relative;
    display: flex; flex-direction: column; align-items: center;
    gap: 7px; padding: 4px 2px 12px;
    border-radius: 12px; cursor: pointer;
    text-decoration: none;
}
.mg-item:active { background: var(--primary-soft); }
.mg-ico {
    position: relative;
    width: 46px; height: 46px; border-radius: 15px;
    display: inline-flex; align-items: center; justify-content: center;
    color: #fff;
    box-shadow: 0 5px 12px -4px rgba(15, 23, 42, .30);
}
.mg-ico svg { width: 22px; height: 22px; }
.mg-label { font-size: 11.5px; line-height: 1.25; color: var(--text); text-align: center; }
.mg-badge {
    position: absolute; top: -5px; right: -9px;
    min-width: 17px; height: 17px; padding: 0 4px;
    border-radius: 9px; background: var(--danger); color: #fff;
    font-size: 10px; font-style: normal; font-weight: 700;
    display: inline-flex; align-items: center; justify-content: center;
    box-sizing: border-box;
}
.mg-state {
    position: absolute; top: -6px; right: -13px;
    min-width: 26px; height: 15px; padding: 0 5px;
    border-radius: 8px; background: var(--primary); color: #fff;
    font-size: 9.5px; font-style: normal;
    display: inline-flex; align-items: center; justify-content: center;
    box-sizing: border-box;
}

/* ================= 挑码助手（港彩 / 澳彩专属） ================= */
.tc { margin-top: 4px; }
.tc-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.tc-count { font-size: 12px; color: var(--muted); }
.tc-save {
    padding: 5px 14px; border-radius: 8px; font-size: 13px; font-weight: 600;
    color: #12a455; background: var(--surface); border: 1.5px solid #12a455;
}
.tc-save:active { background: rgba(18, 164, 85, .10); }
.tc-box {
    min-height: 150px; box-sizing: border-box; padding: 10px 12px;
    border: 1px solid var(--border); border-radius: 10px; background: var(--surface);
    display: flex; flex-wrap: wrap; gap: 6px; align-content: flex-start;
}
.tc-empty { color: var(--muted); font-size: 12.5px; margin: auto; }
.tc-num { width: 30px; height: 30px; font-size: 12.5px; border-radius: 50%; }
.tc-act-row { display: flex; gap: 10px; margin: 12px 0 4px; }
.tc-btn {
    flex: 1; padding: 9px 0; font-size: 14px; font-weight: 600; text-align: center;
    color: #12a455; background: var(--surface);
    border: 1.5px solid #12a455; border-radius: 8px;
}
.tc-btn:active { background: rgba(18, 164, 85, .10); }
.tc-btn.is-kill { color: #fff; background: var(--danger); border-color: var(--danger); }
.tc-groups { margin-top: 4px; }
.tc-group { padding: 10px 0 6px; border-bottom: 1px solid var(--border); }
.tc-group:last-child { border-bottom: 0; }
.tc-row { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 0; }
.tc-chip {
    min-width: 52px; padding: 7px 10px; box-sizing: border-box;
    font-size: 14px; line-height: 1.2; text-align: center;
    color: var(--text); background: var(--surface);
    border: 1px solid var(--border-strong, #b9c0cc); border-radius: 6px;
}
.tc-chip.tc-push { margin-left: auto; }
.tc-chip:active { background: var(--primary-soft); }
.tc-chip.is-on {
    color: #12a455; border-color: #12a455; font-weight: 600;
    background: rgba(18, 164, 85, .08);
}
.tc-tip { margin: 10px 2px 0; }

/* ============================================================= *
 * 高手榜（ep-）· 版式对齐参考截图：彩种切换 / 榜单图标行 / 玩法分区
 * ============================================================= */
.ep-hero {
    margin: 12px 12px 0; padding: 14px 16px; border-radius: var(--radius);
    background: linear-gradient(135deg, #149347 0%, #21ba66 60%, #45d377 100%);
    color: #fff; display: flex; flex-direction: column; gap: 3px;
    box-shadow: 0 10px 22px rgba(20, 147, 71, .28);
}
.ep-hero-title { font-size: 17px; font-weight: 800; }
.ep-hero-sub { font-size: 11.5px; opacity: .88; }

.ep-lot { display: flex; gap: 8px; padding: 12px 12px 0; }
.ep-lot-chip {
    flex: 1; padding: 9px 6px; border-radius: 12px; cursor: pointer;
    border: 1px solid var(--border); background: var(--surface-2);
    color: var(--text-2); font-size: 13.5px; font-weight: 600;
}
.ep-lot-chip.is-active {
    background: var(--lc, #21ba66); border-color: transparent; color: #fff;
    box-shadow: 0 6px 14px rgba(20, 147, 71, .25);
}

.ep-cats { display: flex; gap: 14px; overflow-x: auto; padding: 14px 12px 10px; scrollbar-width: none; }
.ep-cats::-webkit-scrollbar { display: none; }
.ep-cat { flex: 0 0 auto; width: 58px; display: flex; flex-direction: column; align-items: center; gap: 5px; cursor: pointer; }
.ep-cat-ico {
    width: 52px; height: 52px; border-radius: 16px; font-size: 24px;
    display: flex; align-items: center; justify-content: center;
    background: var(--surface-solid); border: 1px solid var(--border-2);
    box-shadow: 0 4px 12px rgba(20, 26, 46, .06);
}
.ep-cat-label { font-size: 11.5px; color: var(--text-2); white-space: nowrap; }
.ep-cat.is-active .ep-cat-ico { background: linear-gradient(135deg, #149347, #45d377); border-color: transparent; }
.ep-cat.is-active .ep-cat-label { color: #149347; font-weight: 700; }
.ep-cat.is-me .ep-cat-ico { background: linear-gradient(135deg, #f59e0b, #fbbf24); border-color: transparent; }
.ep-cat.is-me .ep-cat-label { color: #f59e0b; font-weight: 700; }

.ep-sec-badge {
    display: inline-block; margin: 6px 12px 2px; padding: 6px 18px;
    border-radius: 16px 16px 16px 4px; background: #21ba66;
    color: #fff; font-size: 13.5px; font-weight: 700;
}
.ep-row {
    display: flex; align-items: center; gap: 10px;
    padding: 11px 14px; border-bottom: 1px solid var(--border-2);
}
.ep-row:last-child { border-bottom: 0; }
.ep-medal { width: 24px; text-align: center; font-weight: 800; font-size: 13.5px; color: var(--muted); }
.ep-medal.m1 { color: #f59e0b; }
.ep-medal.m2 { color: #94a3b8; }
.ep-medal.m3 { color: #d97706; }
.ep-avatar { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; }
.ep-main { flex: 1; min-width: 0; }
.ep-name { font-size: 14.5px; font-weight: 600; display: flex; align-items: center; gap: 6px; min-width: 0; }
.ep-name > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ep-posted {
    font-style: normal; flex: 0 0 auto; font-size: 10px; padding: 1px 6px;
    border-radius: 8px; border: 1px solid currentColor; color: var(--danger);
}
.ep-sub { font-size: 11.5px; color: var(--muted); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ep-nums { flex: 0 0 auto; text-align: right; display: flex; flex-direction: column; gap: 2px; font-size: 12px; color: var(--text-2); }
.ep-hot { color: var(--danger); font-size: 13px; font-weight: 700; }
.ep-cold { color: var(--muted); font-size: 12px; font-weight: 600; }
.ep-end, .ex-end { text-align: center; padding: 14px 0 4px; color: var(--muted); font-size: 12px; }

/* ============================================================= *
 * 高手详情（ex-）
 * ============================================================= */
.ex-head {
    margin: 12px 12px 0; padding: 14px; display: flex; align-items: center; gap: 12px;
    background: var(--card); border-radius: var(--radius); border: 1px solid var(--border-2);
}
.ex-avatar { width: 54px; height: 54px; border-radius: 50%; object-fit: cover; }
.ex-head-main { flex: 1; min-width: 0; }
.ex-name { font-size: 16px; font-weight: 700; }
.ex-head .ex-sub { font-size: 12px; color: var(--muted); margin-top: 2px; }
.ex-follow {
    flex: 0 0 auto; padding: 7px 14px; border-radius: 999px; border: 0; cursor: pointer;
    background: #21ba66; color: #fff; font-weight: 700; font-size: 13px;
}
.ex-follow.is-on { background: var(--surface-3); color: var(--muted); border: 1px solid var(--border); }

.ex-draw {
    margin: 12px 12px 0; padding: 14px;
    background: var(--card); border-radius: var(--radius); border: 1px solid var(--border-2);
}
.ex-draw-head { display: flex; justify-content: space-between; align-items: center; font-size: 15px; font-weight: 700; }
.ex-draw-head em { font-style: normal; color: #21ba66; }
.ex-draw-head .more { font-size: 12.5px; color: #21ba66; font-weight: 600; cursor: pointer; }
.ex-balls { margin-top: 12px; }
.ex-next { margin-top: 12px; text-align: center; color: var(--danger); font-size: 13px; font-weight: 600; }

.ex-rec {
    margin: 12px 12px 0; background: var(--card); border-radius: var(--radius);
    border: 1px solid var(--border-2); overflow: hidden; font-size: 12.5px;
}
.ex-tr { display: grid; grid-template-columns: .8fr 1.1fr 1.1fr 1.3fr; border-bottom: 1px solid var(--border-2); }
.ex-tr.is-wide { grid-template-columns: 2.4fr .7fr .9fr .9fr; }
.ex-tr:last-child { border-bottom: 0; }
.ex-tr > span {
    padding: 9px 6px; display: flex; align-items: center; justify-content: center;
    text-align: center; border-right: 1px solid var(--border-2); min-width: 0;
    word-break: break-all;
}
.ex-tr > span:last-child { border-right: 0; }
.ex-tr.is-head { background: var(--surface-3); font-weight: 700; }
.ex-tr.is-main > span { padding: 11px 6px; }
.ex-content { flex-wrap: wrap; gap: 4px 7px; font-size: 13.5px; letter-spacing: .5px; }
.ex-content b { font-weight: 700; }
.ex-content b.is-hot { color: var(--danger); }
.ex-ok.is-hit { color: var(--danger); font-weight: 800; }
.ex-ok.is-miss { color: var(--muted); }
.ex-ok.is-wait { color: var(--warning); font-weight: 600; }

/* ============================================================= *
 * 发布预测（pub-）· 高手榜用户发布入口
 * ============================================================= */
.ep-hero-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.ep-pub {
    flex: 0 0 auto; border: 0; cursor: pointer; padding: 8px 14px;
    border-radius: 999px; background: rgba(255, 255, 255, .24); color: #fff;
    font-weight: 700; font-size: 13px; white-space: nowrap;
}
.ep-pub:active { transform: scale(.96); }

.pub-hero {
    margin: 12px 12px 0; padding: 14px 16px; border-radius: var(--radius);
    background: linear-gradient(135deg, #149347 0%, #21ba66 60%, #45d377 100%);
    color: #fff; display: flex; flex-direction: column; gap: 3px;
    box-shadow: 0 10px 22px rgba(20, 147, 71, .28);
}
.pub-issue { font-size: 16px; font-weight: 800; }
.pub-tip { font-size: 11.5px; opacity: .88; }

.pub-chips { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 2px; }
.pub-chip {
    border: 1px solid var(--border); background: var(--surface-2); color: var(--text-2);
    padding: 8px 15px; border-radius: 999px; font-size: 13.5px; font-weight: 600; cursor: pointer;
    display: inline-flex; align-items: center; gap: 6px;
}
.pub-chip.has-dot::before {
    content: ''; width: 10px; height: 10px; border-radius: 50%;
    background: var(--wc, #999); display: inline-block;
}
.pub-chip.is-on {
    background: #21ba66; border-color: transparent; color: #fff;
    box-shadow: 0 5px 12px rgba(20, 147, 71, .28);
}

.pub-plays { display: flex; flex-direction: column; gap: 8px; padding-top: 2px; }
.pub-play {
    border: 1px solid var(--border); background: var(--surface-2); cursor: pointer;
    border-radius: 12px; padding: 10px 13px; text-align: left;
    display: flex; flex-direction: column; gap: 3px;
}
.pub-play.is-on { border-color: #21ba66; background: rgba(33, 186, 102, .1); box-shadow: inset 0 0 0 1px #21ba66; }
.pp-name { font-size: 14px; font-weight: 700; color: var(--text-1); display: flex; align-items: center; gap: 8px; }
.pp-name em { font-style: normal; font-size: 11px; color: #21ba66; border: 1px solid #21ba66; border-radius: 8px; padding: 0 6px; }
.pp-desc { font-size: 11.5px; color: var(--muted); }

.pub-go {
    width: 100%; border: 0; cursor: pointer; padding: 13px; border-radius: 12px;
    background: #21ba66; color: #fff; font-size: 15px; font-weight: 800;
    opacity: .5; transition: opacity .2s;
}
.pub-go.is-ready { opacity: 1; box-shadow: 0 8px 18px rgba(20, 147, 71, .3); }
.pub-go:disabled { opacity: .5; cursor: default; }
#pubMine .ex-rec { margin: 0 12px 10px; }
#pubMine .empty-box { margin: 0 12px 10px; }

/* ============================================================= *
 * 后台可配置项（高手榜管理）：认证称号 / 置顶标记 / 榜单说明 / 高手简介
 * ============================================================= */
.ep-hero-row > div { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.ep-hero-tip { font-size: 11.5px; opacity: .92; }
.ep-verify {
    font-style: normal; flex: 0 0 auto; font-size: 10px; padding: 1px 6px;
    border-radius: 8px; color: #b45309; background: #fff5e0; border: 1px solid #f6d38b;
}
.ep-top-tag {
    font-style: normal; flex: 0 0 auto; font-size: 10px; padding: 1px 5px;
    border-radius: 8px; color: #fff; background: linear-gradient(135deg, #e5484d, #f97362);
}
.ex-note { font-size: 11.5px; color: #149347; margin-top: 3px; }

/* ==========================================================================
   帖子封面 / 发帖封面 / 顶栏消息铃铛 —— 2026-10-07
   ========================================================================== */

/* 列表项右侧封面缩略图 */
.post-cover-thumb {
    width: 58px; height: 58px; border-radius: 10px; object-fit: cover;
    flex: 0 0 58px; background: var(--surface-2);
}

/* 详情页顶部封面大图 */
.post-detail-cover { margin: 0 0 2px; background: var(--surface-2); }
.post-detail-cover img { width: 100%; max-height: 260px; object-fit: cover; display: block; }

/* 发帖：封面选择 */
.cover-pick { display: flex; gap: 12px; align-items: center; }
.cover-box {
    width: 108px; height: 76px; border-radius: 12px; border: 1px dashed var(--border);
    background: var(--surface-2); display: grid; place-items: center; overflow: hidden;
    position: relative; color: var(--muted); font-size: 12px; cursor: pointer;
}
.cover-box img { width: 100%; height: 100%; object-fit: cover; }
.cover-ops { display: flex; flex-direction: column; gap: 8px; }

/* 顶栏消息铃铛未读点（样式并入 .bar-act .bar-dot） */

/* ============================================================= *
 * 首页 49图库风格：公告条 / 澳彩港彩双卡 / 展开直播 / 大号球 / 快捷导航
 * ============================================================= */
.lt-green { color: #21ba66; }

/* 公告条（灰底 + 红喇叭，溢出自动跑马灯） */
.notice-bar {
    display: flex; align-items: center; gap: 9px;
    margin: 10px 12px 0; padding: 11px 12px;
    background: #f5f6f5; border: none;
    border-radius: 8px; cursor: pointer;
}
html[data-theme="dark"] .notice-bar { background: rgba(255, 255, 255, .06); }
.nb-horn { display: flex; color: #e60012; flex: none; }
.nb-horn .icon { width: 17px; height: 17px; }
.nb-text { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; font-size: 13.5px; color: #333; }
html[data-theme="dark"] .nb-text { color: var(--text-2); }
.nb-track { display: inline-block; font-style: normal; }
.nb-run .nb-track { animation: nbmove 16s linear infinite; }
@keyframes nbmove { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.nb-more { color: var(--muted); flex: none; }

/* 澳彩 / 港彩 双卡切换 */
.lt-tabs { display: flex; gap: 8px; margin: 10px 12px 0; }
.lt-tab {
    flex: 1 1 0; min-width: 0; width: 0; border: none; appearance: none; cursor: pointer;
    background: var(--card); border: 1px solid var(--border); border-bottom: none;
    border-radius: 10px 10px 0 0; padding: 11px 0 10px; text-align: center;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; color: inherit;
}
.lt-tab-name { font-size: 17px; font-weight: 700; color: #222; }
html[data-theme="dark"] .lt-tab-name { color: var(--text-2); }
.lt-tab-date { font-size: 12.5px; color: #999; }
.lt-tab.is-active {
    background: linear-gradient(180deg, #2fc76f, #1ea157);
    border-color: transparent;
}
.lt-tab.is-active .lt-tab-name { color: #fff; }
.lt-tab.is-active .lt-tab-date { color: rgba(255, 255, 255, .9); }

/* 展开直播：绿色梯形把手 */
.lt-live-bar { text-align: center; margin: 0 12px; position: relative; z-index: 2; }
.lt-live-tag {
    display: inline-block; border: none; cursor: pointer;
    background: linear-gradient(180deg, #2fc76f, #1ea157); color: #fff;
    font-size: 13.5px; font-weight: 700; letter-spacing: .04em;
    padding: 8px 0; width: 190px; max-width: 72%;
    clip-path: polygon(0 0, 100% 0, 84% 100%, 16% 100%);
    border-radius: 0;
}
#ltLiveBox { margin: 8px 12px 0; }
#ltLiveBox .dv-card { margin-bottom: 8px; }

/* 开奖面板（绿边白卡） */
.lt-panel {
    margin: 0 12px; padding: 13px 8px 13px;
    background: var(--card); border: 1.5px solid #21ba66; border-radius: 8px;
}
.lt-panel-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 0 6px; margin-bottom: 12px; }
.lt-issue { color: #21ba66; font-weight: 800; font-size: 17.5px; white-space: nowrap; }
.lt-issue em { font-style: normal; padding: 0 1px; }
.lt-cd { color: #e60012; font-size: 14px; white-space: nowrap; font-weight: 600; }
.lt-cd b { color: #e60012; font-variant-numeric: tabular-nums; font-weight: 800; }
.lt-history { margin-left: auto; color: #21ba66; font-size: 14px; cursor: pointer; }

/* 开奖面板号码球：复用全站立体渐变球（.ball），稍放大一档 */
.lt-big-balls { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 8px 5px; padding: 6px 0 0; }
.lt-big-balls .ball { width: 36px; height: 36px; font-size: 15px; }
.lt-big-balls .ball-double { font-size: 13.5px; letter-spacing: -.5px; }
.lt-big-balls .ball-zodiac { font-size: 11px; }
.lt-big-balls .ball-sep { font-size: 18px; align-self: center; margin-top: -14px; }

/* 红字下一期 */
.lt-next-red { margin-top: 12px; text-align: center; color: #e60012; font-size: 15px; font-weight: 700; }
html[data-theme="dark"] .lt-next-red { color: #ff6a5c; }

/* 快捷导航格子（旧版灰底格子已由「图纸图库」模块取代，.nav-grid 仅供寻宝页网址大全使用） */

/* 发现页：发布帖子大按钮 */
.find-head { padding: 12px 14px; }
.find-post-btn {
    width: 100%; display: flex; align-items: center; justify-content: center; gap: 7px;
    border: 0; border-radius: 10px; padding: 12px 0; cursor: pointer;
    background: linear-gradient(135deg, #2fc76f, #149a52); color: #fff;
    font-size: 15.5px; font-weight: 700;
    box-shadow: 0 4px 12px rgba(33, 186, 102, .30);
}
.find-post-btn .icon { width: 18px; height: 18px; }

/* 客服弹层 */
.kf-mask {
    position: fixed; inset: 0; z-index: 220;
    background: rgba(16, 22, 40, .5); opacity: 0;
    transition: opacity .18s;
    display: flex; align-items: flex-end;
}
.kf-mask.show { opacity: 1; }
.kf-sheet {
    width: 100%; background: var(--surface-solid);
    border-radius: 16px 16px 0 0;
    padding: 10px 16px calc(18px + var(--safe-b));
    transform: translateY(24px); transition: transform .18s;
}
.kf-mask.show .kf-sheet { transform: translateY(0); }
.kf-bar { width: 40px; height: 4px; border-radius: 2px; background: var(--border); margin: 0 auto 10px; }
.kf-title { text-align: center; font-size: 16px; font-weight: 700; margin-bottom: 10px; }
.kf-body {
    font-size: 14.5px; color: var(--text-2); line-height: 1.75;
    padding: 6px 2px 14px; max-height: 42vh; overflow: auto;
}
.kf-close {
    width: 100%; border: 0; border-radius: 22px; padding: 12px 0; cursor: pointer;
    background: linear-gradient(135deg, #2fc76f, #149a52); color: #fff;
    font-size: 15px; font-weight: 600;
}

/* 寻宝 · 网址大全 */
.nav-hero {
    background: linear-gradient(180deg, #26c46e, #1db262);
    padding: 6px 16px 16px;
    text-align: center;
}
.nav-hero-title { color: #fff; font-size: 23px; font-weight: 800; letter-spacing: 2px; padding: 6px 0 12px; }
.nav-search { display: flex; align-items: center; gap: 10px; position: relative; }
.nav-search-ico {
    position: absolute; left: 16px; top: 50%; transform: translateY(-50%);
    width: 18px; height: 18px; color: #9aa3b2;
    display: flex; align-items: center; justify-content: center; pointer-events: none;
}
.nav-search-ico svg { width: 18px; height: 18px; }
.nav-search input {
    flex: 1; height: 40px; border: 0; border-radius: 20px; outline: none;
    background: #fff; padding: 0 16px 0 42px;
    font-size: 14.5px; color: #333; min-width: 0;
}
.nav-search input::placeholder { color: #a5adb9; }
.nav-search-btn {
    flex: 0 0 auto; border: 0; background: none; cursor: pointer;
    color: #fff; font-size: 16.5px; font-weight: 700; padding: 0 2px;
}
.nav-tabs {
    display: flex; background: var(--surface-solid);
    border-bottom: 1px solid var(--border);
    position: sticky; top: var(--bar-h); z-index: 30;
}
.nav-tab {
    flex: 1; border: 0; background: none; cursor: pointer;
    padding: 12px 0 10px; position: relative;
    font-size: 17px; font-weight: 700; color: var(--text);
}
.nav-tab::after {
    content: ''; position: absolute; left: 50%; bottom: 4px;
    width: 26px; height: 4px; border-radius: 2px;
    background: transparent; transform: translateX(-50%);
}
.nav-tab.is-active { color: var(--primary); }
.nav-tab.is-active::after { background: var(--primary); }
.nav-grid {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 18px 10px; padding: 16px 12px 24px;
    background: var(--surface-solid);
}
.nav-card { display: flex; flex-direction: column; align-items: center; min-width: 0; cursor: pointer; }
.nav-img {
    width: 100%; aspect-ratio: 155 / 95; border-radius: 9px; overflow: hidden;
    background: #fff; border: 1px solid rgba(0, 0, 0, .06);
    box-shadow: 0 2px 6px rgba(24, 32, 56, .07);
    display: flex; align-items: center; justify-content: center;
}
.nav-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nav-ph { font-size: 16px; font-weight: 800; color: var(--primary); }
.nav-name {
    margin-top: 7px; max-width: 100%; font-size: 15px; color: var(--text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nav-empty { padding: 48px 0 60px; text-align: center; font-size: 14px; color: var(--text-2); background: var(--surface-solid); }
html[data-theme="dark"] .nav-img { background: #1c2433; border-color: var(--border); box-shadow: none; }

/* 首页 · 图纸图库（开奖号码下方）：圆图标 + 分类页签 + 2 列大图卡 */
/* 图标导航（开奖区下方）：彩色圆图标 + 名称，列数由后台「每行显示」控制 */
.ico-grid {
    display: grid; grid-template-columns: repeat(5, 1fr);
    gap: 18px 6px; padding: 18px 12px 20px;
}
.ico-grid[data-cols="3"] { grid-template-columns: repeat(3, 1fr); gap: 20px 10px; }
.ico-grid[data-cols="4"] { grid-template-columns: repeat(4, 1fr); gap: 19px 8px; }
.ico-cell {
    display: flex; flex-direction: column; align-items: center; gap: 8px;
    text-decoration: none; color: #333; cursor: pointer; min-width: 0;
}
html[data-theme="dark"] .ico-cell { color: var(--text-2); }
.ico-circle {
    width: 54px; height: 54px; border-radius: 50%; overflow: hidden;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .08);
}
.ico-circle img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ico-circle b {
    width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 22px; font-weight: 700; font-style: normal;
}
.ico-name { font-size: 13px; color: #444; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html[data-theme="dark"] .ico-name { color: var(--text-2); }

.gal-rounds { display: flex; justify-content: space-around; padding: 16px 10px 4px; }
.gal-round {
    display: flex; flex-direction: column; align-items: center; gap: 8px;
    width: 25%; cursor: pointer; text-decoration: none; min-width: 0;
}
.gal-round i {
    width: 56px; height: 56px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-style: normal; color: #fff; background: #c9ced8;
}
.gal-round i svg { width: 26px; height: 26px; }
.gal-round:nth-child(odd) i { background: linear-gradient(135deg, #2fc76f, #1ea157); }
.gal-round span {
    max-width: 100%; font-size: 14.5px; color: var(--text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.gal-pills { display: flex; gap: 10px; padding: 14px 12px 4px; flex-wrap: wrap; }
.gal-pill {
    border: 0; cursor: pointer; background: #eceff3; color: #444;
    font-size: 15px; font-weight: 600; padding: 9px 20px; border-radius: 8px;
}
.gal-pill.is-active { background: linear-gradient(135deg, #2fc76f, #1ea157); color: #fff; }
.gal-pill.is-more { background: #eceff3; color: #666; font-weight: 500; }
.gal-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 14px 12px; padding: 12px 12px 18px;
}
.gal-card {
    background: var(--card); border: 1px solid var(--border); border-radius: 10px;
    overflow: hidden; display: flex; flex-direction: column; cursor: pointer;
    box-shadow: 0 2px 6px rgba(24, 32, 56, .06); min-width: 0;
}
.gal-img {
    display: flex; align-items: center; justify-content: center;
    width: 100%; aspect-ratio: 4 / 5; background: #f4f6f9; overflow: hidden;
}
.gal-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gal-ph { font-size: 17px; font-weight: 800; color: var(--primary); }
.gal-name {
    padding: 10px 8px; text-align: center; font-size: 15.5px; color: #222;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.gal-empty {
    grid-column: 1 / -1; padding: 36px 12px; text-align: center;
    font-size: 13.5px; color: var(--text-2); line-height: 1.7;
}
html[data-theme="dark"] .gal-pill { background: rgba(255, 255, 255, .08); color: var(--text-2); }
html[data-theme="dark"] .gal-pill.is-active { background: linear-gradient(135deg, #2fc76f, #1ea157); color: #fff; }
html[data-theme="dark"] .gal-pill.is-more { color: var(--text-2); }
html[data-theme="dark"] .gal-img { background: #1c2433; }
html[data-theme="dark"] .gal-name { color: var(--text); }

/* ============ 搅珠日期（开奖日历） ============ */
.cal-wrap { padding: 12px 0 26px; }
.cal-intro {
    margin: 0 12px 12px; padding: 12px 14px;
    background: var(--card); border: 1px solid var(--border); border-radius: 10px;
}
.cal-intro-t { font-size: 15px; font-weight: 700; color: #222; margin-bottom: 4px; }
.cal-intro-d { font-size: 12.5px; color: var(--text-2); line-height: 1.65; }
html[data-theme="dark"] .cal-intro-t { color: var(--text); }

/* 澳彩 / 港彩 页签 */
.cal-tabs { display: flex; gap: 10px; margin: 0 12px 12px; }
.cal-tab {
    flex: 1 1 0; min-width: 0; border: 1px solid var(--border); appearance: none; cursor: pointer;
    background: var(--card); color: #444; font-size: 15.5px; font-weight: 700;
    padding: 11px 0; border-radius: 9px; text-align: center; font-family: inherit;
}
.cal-tab.is-active {
    background: linear-gradient(135deg, #2fc76f, #1ea157);
    border-color: transparent; color: #fff;
}
html[data-theme="dark"] .cal-tab { color: var(--text-2); }
html[data-theme="dark"] .cal-tab.is-active { color: #fff; }

.cal-card {
    margin: 0 12px; padding: 12px 10px 16px;
    background: var(--card); border: 1px solid var(--border); border-radius: 10px;
    box-shadow: 0 2px 8px rgba(24, 32, 56, .05);
}
.cal-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 2px 4px 12px;
}
.cal-title { font-size: 17px; font-weight: 800; color: #222; font-variant-numeric: tabular-nums; }
html[data-theme="dark"] .cal-title { color: var(--text); }
.cal-nav {
    width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--border);
    background: var(--card); color: #666; font-size: 19px; line-height: 1; cursor: pointer;
    display: flex; align-items: center; justify-content: center; padding: 0 0 3px; font-family: inherit;
}
.cal-nav:active { background: #eef1f5; }
html[data-theme="dark"] .cal-nav { color: var(--text-2); }
html[data-theme="dark"] .cal-nav:active { background: rgba(255, 255, 255, .08); }

.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px 4px; }
.cal-week {
    text-align: center; font-size: 12.5px; color: var(--muted);
    padding-bottom: 6px; font-weight: 600;
}
.cal-cell {
    position: relative; aspect-ratio: 1 / 1; display: flex;
    align-items: center; justify-content: center; border-radius: 9px;
    background: #f4f6f9; border: 1px solid transparent;
}
.cal-cell i {
    font-style: normal; font-size: 14px; font-weight: 600;
    color: #aab2bf; font-variant-numeric: tabular-nums;
}
html[data-theme="dark"] .cal-cell { background: rgba(255, 255, 255, .05); }
html[data-theme="dark"] .cal-cell i { color: #6b7687; }

/* 开奖日：绿底白字 */
.cal-cell.is-draw { background: linear-gradient(180deg, #2fc76f, #1ea157); border-color: transparent; }
.cal-cell.is-draw i { color: #fff; font-weight: 700; }
/* 已过期：变淡 */
.cal-cell.is-past { background: #f0f2f6; }
.cal-cell.is-past i { color: #c3c9d4; }
.cal-cell.is-past.is-draw { background: #cfe9dc; }
.cal-cell.is-past.is-draw i { color: #fff; }
html[data-theme="dark"] .cal-cell.is-past { background: rgba(255, 255, 255, .03); }
html[data-theme="dark"] .cal-cell.is-past i { color: #4d586a; }
html[data-theme="dark"] .cal-cell.is-past.is-draw { background: #245c40; }
/* 今天：红圈描边 */
.cal-cell.is-today { border-color: #e60012; box-shadow: 0 0 0 1px #e60012 inset; }
.cal-cell.is-today.is-draw { border-color: #e60012; }

.cal-today-note {
    margin: 14px 12px 0; text-align: center; font-size: 13px;
    color: var(--text-2); font-variant-numeric: tabular-nums;
}

/* ============ 工具宝箱（首页「工具宝箱」圆图标点进来的宫格页） ============ */
.tb-grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    background: var(--border);
    gap: 1px; border-radius: 10px; overflow: hidden;
    border: 1px solid var(--border);
}
.tb-cell {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 10px; padding: 22px 6px 18px; border: none; cursor: pointer;
    background: var(--card); font-family: inherit; min-height: 118px;
}
.tb-cell:active { background: #f2f5f9; }
html[data-theme="dark"] .tb-cell:active { background: rgba(255, 255, 255, .06); }
.tb-ico { display: flex; align-items: center; justify-content: center; }
.tb-ico .icon { width: 44px; height: 44px; stroke-width: 1.6; }
.tb-name { font-size: 14.5px; color: #333; }
html[data-theme="dark"] .tb-name { color: var(--text-2); }

/* ================================================================== *
 * 积分解锁查看（未解锁高斯模糊）
 * ================================================================== */
.detail-video { margin: 0 0 14px; }
.detail-video video {
    width: 100%;
    max-height: 420px;
    border-radius: 14px;
    background: #000;
    display: block;
}
.detail-video.is-blurred video {
    filter: blur(16px);
    -webkit-filter: blur(16px);
    pointer-events: none;
}

.unlock-locked { position: relative; margin: 0 0 14px; }
.detail-body.is-blurred {
    filter: blur(7px);
    -webkit-filter: blur(7px);
    user-select: none;
    pointer-events: none;
    max-height: 300px;
    overflow: hidden;
    opacity: .85;
}
.unlock-mask {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 22px 16px;
    text-align: center;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(255,255,255,.45) 0%, rgba(255,255,255,.95) 60%);
}
html[data-theme="dark"] .unlock-mask {
    background: linear-gradient(180deg, rgba(20,24,38,.5) 0%, rgba(20,24,38,.95) 60%);
}
.unlock-ico { font-size: 30px; line-height: 1; }
.unlock-t { font-size: 15.5px; font-weight: 700; color: #2b3245; }
html[data-theme="dark"] .unlock-t { color: #e8ecf6; }
.unlock-s { font-size: 12px; color: #7a8398; margin-bottom: 4px; }
.unlock-mask .btn { max-width: 240px; }

/* 打赏按钮 */
.act-btn.is-gift { color: #e08b2a; }

/* 高手榜预测锁定 */
.ex-content.is-locked {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}
.pick-blur {
    filter: blur(6px);
    -webkit-filter: blur(6px);
    font-style: normal;
    user-select: none;
    pointer-events: none;
}
.pick-unlock {
    border: 1px solid #e08b2a;
    background: #fff7ea;
    color: #c4700f;
    font-size: 12px;
    font-weight: 700;
    padding: 5px 12px;
    border-radius: 999px;
    cursor: pointer;
    font-family: inherit;
}
html[data-theme="dark"] .pick-unlock { background: #2a2116; color: #f0b463; }

/* 发帖：帖子类型 + 短视频选择 */
.media-pick {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}
.mp-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    padding: 11px 6px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: var(--card);
    font-family: inherit;
    font-size: 13.5px;
    color: #556;
    cursor: pointer;
}
.mp-item em { font-style: normal; font-size: 11px; color: #98a0b3; }
.mp-item.is-on {
    border-color: var(--primary);
    background: #eef3ff;
    color: var(--primary);
    font-weight: 700;
}
html[data-theme="dark"] .mp-item.is-on { background: #1c2440; }

.video-pick { display: flex; flex-direction: column; gap: 10px; }
.video-box {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
    border: 1px dashed var(--border);
    border-radius: 12px;
    background: var(--card);
    color: #98a0b3;
    font-size: 13.5px;
    overflow: hidden;
}
.video-box video { width: 100%; max-height: 260px; display: block; border-radius: 12px; background: #000; }
.video-ops { display: flex; gap: 10px; }

/* ================= 高手认证：标识 / 入口卡 / 认证页 ================= */
.ex-cert {
    display: inline-block;
    margin-left: 4px;
    font-size: 12px;
    font-style: normal;
    line-height: 1;
    vertical-align: 1px;
}

/* 高手榜顶部认证入口 */
.ep-cert {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 10px 0 4px;
    padding: 12px 14px;
    border-radius: 14px;
    background: var(--grad-soft);
    border: 1px solid var(--border);
    cursor: pointer;
}
.ep-cert-ico { font-size: 22px; line-height: 1; }
.ep-cert-main { flex: 1; min-width: 0; }
.ep-cert-t { font-size: 14px; font-weight: 700; color: var(--text); }
.ep-cert-s { font-size: 12px; color: var(--muted); margin-top: 3px; }
.ep-cert-go { font-size: 12.5px; color: var(--primary); white-space: nowrap; }

/* 「我的」页认证卡 */
.me-cert {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 12px 0 0;
    padding: 13px 14px;
    border-radius: 14px;
    background: var(--surface-solid);
    border: 1px solid var(--border);
    cursor: pointer;
}
.me-cert-ico { font-size: 22px; line-height: 1; }
.me-cert-main { flex: 1; min-width: 0; }
.me-cert-t { font-size: 14px; font-weight: 700; color: var(--text); }
.me-cert-s { font-size: 12px; color: var(--muted); margin-top: 3px; }
.me-cert-go { font-size: 12.5px; color: var(--primary); white-space: nowrap; }

/* 认证页 */
.cert-wrap { padding: 12px 0 24px; }
.cert-hero {
    text-align: center;
    padding: 26px 16px 22px;
    background: var(--grad-soft);
    border-bottom: 1px solid var(--border);
}
.cert-hero.is-ok { background: linear-gradient(135deg, rgba(33,186,102,.18), rgba(15,162,92,.10)); }
.cert-hero.is-wait { background: linear-gradient(135deg, rgba(247,183,49,.18), rgba(247,183,49,.08)); }
.cert-ico { font-size: 40px; line-height: 1; display: block; }
.cert-t { font-size: 17px; font-weight: 800; color: var(--text); margin-top: 10px; }
.cert-s { font-size: 12.5px; color: var(--muted); margin-top: 6px; line-height: 1.6; }
.cert-cond { font-size: 14px; color: var(--text); }
.cert-cond b { color: var(--primary); font-size: 15px; }
.cert-bar {
    height: 8px;
    border-radius: 99px;
    background: var(--border);
    overflow: hidden;
    margin: 12px 0 8px;
}
.cert-bar i { display: block; height: 100%; background: var(--grad); border-radius: 99px; transition: width .4s; }
.cert-nums { display: flex; justify-content: space-between; font-size: 12.5px; color: var(--muted); }
.cert-nums .is-ok { color: var(--primary); font-weight: 700; }
.cert-dots { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.cert-dot {
    width: 26px; height: 26px; line-height: 26px;
    text-align: center; border-radius: 8px;
    font-size: 12px; font-weight: 700;
    background: var(--border); color: var(--muted);
}
.cert-dot.is-hit { background: var(--primary); color: #fff; }
.cert-reject {
    padding: 10px 12px; margin-bottom: 10px;
    border-radius: 10px; font-size: 12.5px;
    background: rgba(229,72,77,.10); color: #e5484d;
}
.btn.is-off, .btn[disabled] { opacity: .55; }

/* ================= 视频帖：关联帖子卡片 ================= */
.linked-post {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 12px 14px;
    padding: 11px 12px;
    border-radius: 14px;
    background: var(--surface-solid);
    border: 1px solid var(--border);
    cursor: pointer;
}
.linked-post .lp-cover,
.linked-post .lp-ico {
    width: 46px; height: 46px;
    border-radius: 10px;
    flex: 0 0 46px;
    object-fit: cover;
}
.linked-post .lp-ico {
    display: flex; align-items: center; justify-content: center;
    background: var(--grad-soft);
    font-size: 20px;
}
.linked-post .lp-main { flex: 1; min-width: 0; }
.linked-post .lp-tag {
    display: inline-block;
    font-size: 10.5px;
    color: var(--primary);
    background: var(--primary-soft);
    border-radius: 6px;
    padding: 1px 6px;
    margin-bottom: 4px;
}
.linked-post .lp-title {
    font-size: 13.5px; font-weight: 600; color: var(--text);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.linked-post .lp-sub {
    font-size: 11.5px; color: var(--muted); margin-top: 2px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.linked-post .lp-go { font-size: 12px; color: var(--muted); white-space: nowrap; }
