/* 未能缩小。正在返回未缩小的内容。
(1,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,25): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,42): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,68): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,87): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,108): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,134): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,160): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,179): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,198): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,254): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,314): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,337): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,362): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,402): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,421): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,440): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,460): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,521): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,558): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,598): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,631): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,667): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,739): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,754): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1,772): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,159): run-time error CSS1039: Token not allowed after unary operator: '-c-bg'
(9,57): run-time error CSS1039: Token not allowed after unary operator: '-c-bg'
(31,91): run-time error CSS1039: Token not allowed after unary operator: '-c-notice-text'
(37,77): run-time error CSS1039: Token not allowed after unary operator: '-c-hint'
(53,25): run-time error CSS1039: Token not allowed after unary operator: '-c-name'
(56,132): run-time error CSS1039: Token not allowed after unary operator: '-radius-sm'
(56,162): run-time error CSS1039: Token not allowed after unary operator: '-c-tag-live'
(59,106): run-time error CSS1039: Token not allowed after unary operator: '-c-bubble'
(59,130): run-time error CSS1039: Token not allowed after unary operator: '-c-bubble-text'
(64,94): run-time error CSS1039: Token not allowed after unary operator: '-c-bubble-self'
(68,136): run-time error CSS1039: Token not allowed after unary operator: '-c-system-bg'
(68,171): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(68,193): run-time error CSS1039: Token not allowed after unary operator: '-c-hint'
(69,33): run-time error CSS1039: Token not allowed after unary operator: '-c-link'
(76,86): run-time error CSS1039: Token not allowed after unary operator: '-c-input-stroke'
(78,80): run-time error CSS1039: Token not allowed after unary operator: '-c-input-bg'
(78,249): run-time error CSS1039: Token not allowed after unary operator: '-c-text'
(78,297): run-time error CSS1039: Token not allowed after unary operator: '-c-caret'
(79,44): run-time error CSS1039: Token not allowed after unary operator: '-c-input-text'
(93,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-primary'
(93,117): run-time error CSS1039: Token not allowed after unary operator: '-shadow-popup'
(122,86): run-time error CSS1039: Token not allowed after unary operator: '-c-mask'
(124,92): run-time error CSS1039: Token not allowed after unary operator: '-c-sheet-bg'
(128,83): run-time error CSS1039: Token not allowed after unary operator: '-c-bar'
(129,171): run-time error CSS1039: Token not allowed after unary operator: '-bg-primary'
(129,200): run-time error CSS1039: Token not allowed after unary operator: '-bg-frame'
 */
:root { --ref-w: 393px; --c-bg: #f4f4f4; --c-notice-text: #803621; --c-hint: #8e8e8e; --c-bubble: #ffffff; --c-bubble-text: #141414; --c-bubble-self: #2196f3; --c-link: #2196f3; --c-name: #2196f3; --c-tag-live: #ff6b42; /* 主播标签底色（设计稿：rgb 255,107,66） */ --c-system-bg: #efefef; /* 系统消息气泡底色（设计稿：rgb 239,239,239） */ --c-input-bg: #f4f4f4; --c-input-text: #8e8e8e; --c-input-stroke: #eaeaea; /* 输入框上描边 */ --c-cart: #f44336; --c-text: #141414; --c-caret: #2196f3; --c-mask: rgba(0, 0, 0, .6); /* 购物车弹层蒙层（设计稿 black_bg 60%） */ --c-sheet-bg: #f1f3f8; /* 购物车面板底色 */ --c-sheet-head: #f9f9f9; /* 购物车标题栏底色 */ --c-bar: #e6603b; /* 标题下方橙色圆条 */ --bg-primary: #ffffff; /* 弹出面板底色 */ --shadow-popup: 0 -4px 20px 0 rgba(161, 161, 161, 0.25); /* 弹出面板顶部投影 */ --radius: 8px; --radius-sm: 2px; --radius-pill: 999px; }

* { margin: 0; padding: 0; box-sizing: border-box; }
html { -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: 100%; }
html, body { height: 100%; overscroll-behavior: none; /* 关掉下拉刷新 / 浏览器横向滑动返回导航 */ }
body { margin: 0; font-family: "PingFang SC", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, "Microsoft YaHei", sans-serif; background: var(--c-bg); height: 100%; overflow: hidden; }

/* ===== 页面：flex 三段式，头尾固定、中间滚动 ===== */
.chatroom { width: 100%; height: 100%; background: var(--c-bg); display: flex; flex-direction: column; overflow: hidden; position: relative; }

/* 中间滚动区：弹幕提示 + 消息列表 */
.chatroom-main { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; scrollbar-width: none; -ms-overflow-style: none; }
.chatroom-main::-webkit-scrollbar { display: none; }


/* 推荐用户 */
.chat-anchor-prompt {right: 12px;width:80px;position:absolute;box-shadow:0px 4px 10px rgba(0,0,0,0.05);border-radius:8px;background:linear-gradient(-6.28deg,#fff,#ffeae5);border:1px solid #fff;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;padding:8px;isolation:isolate;gap:6px;text-align:center;font-size:12px;color:#141414;top: 40px;right: 14px;}
.prompt-close {width:14px;height:14px;position:absolute;top:4px;left:62px;border-radius:4px;z-index:0;flex-shrink:0;}
.prompt-avatar {width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.prompt-name {line-height:14px;font-weight:500;}
.prompt-action {width:50px;border-radius:12px;background-color:#e23f23;display:flex;align-items:center;justify-content:center;padding:4px 10px;box-sizing:border-box;font-size:10px;color:#fff;}




/* ===== 顶部公告：头部固定 ===== */
/* notice-bg.png 是 3x 切片（1179×102），1x = 393×34，正好是公告条尺寸 */
.notice-bar { flex: none; height: 34px; background: url('/images/notice-bg.png') center / 100% 100% no-repeat; display: flex; align-items: center; gap: 8px; padding: 8px 10px; }
.notice-bar-icon { flex: none; width: 18px; height: 18px; border-radius: 50%; background: transparent; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.notice-bar-icon img { width: 18px; height: 18px; display: block; }
.notice-bar-text { flex: 1; min-width: 0; font-size: 12px; line-height: 14px; color: var(--c-notice-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.notice-bar-text span { display: inline-block; white-space: nowrap; will-change: transform; animation: notice-scroll 20s linear infinite; padding-left: 6%; }
@keyframes notice-scroll { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-100%, 0, 0); } }


/* ===== 弹幕规范提示 ===== */
.room-hint { padding: 10px; font-size: 12px; line-height: 18px; color: var(--c-hint); }

/* ===== 消息列表 ===== */
.message-list { padding-bottom: 12px; }

/* ===== 消息行：他人消息（默认，左侧） =====
   Figma：HORIZONTAL / gap=8 / pad-left=12 / pad-right=20 */
.msg { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 8px; padding: 0 20px 0 12px; }
.msg-avatar { flex: none; width: 24px; height: 24px; border-radius: 22.5px; overflow: hidden; background: #ddd; }
.msg-avatar img { width: 100%; height: 100%; display: block; object-fit: cover; }

/* 消息体（BOX）：VERTICAL / gap=6 */
.msg-body { flex: 0 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 6px; }

/* 昵称行：HORIZONTAL / gap=4 / pad-top=4 */
.msg-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; padding-top: 4px; }
.msg-name { color: var(--c-name); font-weight: 500; font-size: 12px; line-height: 14px; }

/* 身份标签：仅「主播」；「圈主」「战绩」在源稿中均为 hidden */
.tag-anchor { flex: none; font-size: 10px; font-weight: 500; line-height: 12px; color: #fff; padding: 1px 3px; border-radius: var(--radius-sm); background: var(--c-tag-live); }

/* 气泡：他人 padding=8px */
.msg-bubble { display: inline-block;padding: 8px 10px; border-radius: 0 10px 10px 10px; background: var(--c-bubble); color: var(--c-bubble-text); font-size: 14px; line-height: 18px; word-break: break-word;width: fit-content; }

/* ===== 自己发送的消息（右侧，蓝色气泡） =====
   Figma：pad-left=20 / pad-right=12，气泡 padding=10px 12px */
.msg-self { justify-content: flex-end; padding: 0 12px 0 20px; }
.msg-self .msg-bubble { padding: 8px 10px; border-radius: 10px 0 10px 10px; background: var(--c-bubble-self); color: #fff;margin: 2px 0px; }

/* ===== 系统消息：居中灰字 + 圆角气泡底色 =====
   设计稿：Frame 46 实例，fill #EFEFEF，cornerRadius 8，padding 6/10（进入聊天室为 6/28 居中） */
.msg-system { display: block; width: fit-content; max-width: calc(100% - 24px); margin: 12px auto; padding: 6px 10px; background: var(--c-system-bg); border-radius: var(--radius); color: var(--c-hint); font-size: 12px; line-height: 14px; text-align: left; }
.msg-system .link { color: var(--c-link); font-weight: 500;}
.msg-system--center { padding: 6px 28px; text-align: center; }

/* ===== 底部输入栏：flex:none 固定在底部 =====
   Figma：bottom pad=10/10/10/10，内部 row gap=10
         输入框 325×40、cornerRadius=100（胶囊）、pad=0 14
         购物车 38×38、cornerRadius=100 */
.composer { flex: none; height: 60px; background: #fff; border-top: 0.5px solid var(--c-input-stroke); /* 上描边，box-sizing 已含进 60px 高度 */ display: flex; align-items: center; gap: 10px; padding: 10px; }
/* ⚠ 输入类元素必须 ≥16px：iOS Safari / WKWebView 聚焦 <16px 的输入框会自动放大整页且不还原（弹层因此显得超出屏幕）。16px 是 iOS 的阈值，不能改小。 */
.composer-input { flex: 1 1 auto; min-width: 0; height: 40px; background: var(--c-input-bg); border: 0; outline: none; border-radius: 10px; /* 胶囊：100 被钳制到 20 */ padding: 0 14px; font-family: inherit; font-size: 16px; line-height: 20px; color: var(--c-text); /* 输入的文字 #141414 */ caret-color: var(--c-caret); /* 光标（插入符）颜色，默认继承文字色会不明显 */ }
.composer-input::placeholder { color: var(--c-input-text); /* placeholder 仍为灰 */ }
.composer-cart { flex: none; width: 38px; height: 38px; border: 0; padding: 0; border-radius: 100px; /* 同胶囊 */ background: transparent; display: flex; align-items: center; justify-content: center; cursor: pointer; overflow: hidden; }
.composer-cart img { width: 38px; height: 38px; display: block; }


/* ===== 输入点击弹出层（底部上滑面板） =====
   设计稿「聊天输入点击弹出」：白底面板从底部上滑（纯位移、无淡入淡出），顶部带投影，无遮罩；
   动画 = 纯 CSS @keyframes（不用 transition）：.open 播 sheet-in 上滑进入，.closing 播 sheet-out 下滑退出；
   GPU 合成：translate3d + 常驻 will-change:transform，合成层不销毁 → 打开无首帧卡顿；
   缓动 cubic-bezier(.32,.72,0,1)（iOS 抽屉同款），进入 .42s / 退出 .32s 非对称更顺；
   收起态 translateY(150%) 把面板连投影一起移出视口，故无需 visibility，层常驻；
   ⚠ 位移必须用**纯百分比/像素**，不要用 calc(100% + Npx) —— 混算会让 Chrome 放弃合成器、回主线程逐帧重绘（表现就是"卡"）；
   上排快捷短语 chips（#F4F4F4 胶囊、文字 #141414/14，超出可横向滑动，手势见下方 JS），
   下排回复栏（顶边 #EAEAEA）+ 发送(#2196F3) */
.input-popup { position: fixed; left: 0; right: 0; bottom: 0; background: var(--bg-primary, #fff); box-shadow: var(--shadow-popup); transform: translate3d(0, 150%, 0); will-change: transform; backface-visibility: hidden; -webkit-backface-visibility: hidden; z-index: 50; }
/* 打开：更慢（.42s），"被托住"缓缓就位 */
.input-popup.open { transform: translate3d(0, 0, 0); animation: sheet-in .42s cubic-bezier(0.32, 0.72, 0, 1) both; }
/* 收起：更快（.32s），动画结束由 JS 摘掉 .closing 复位 */
.input-popup.closing { animation: sheet-out .32s cubic-bezier(0.32, 0.72, 0, 1) both; }
/* 只用纯百分比位移（150% 足以把面板连同 24px 投影推出视口），避开 calc 才能交给合成器跑 */
@keyframes sheet-in { from { transform: translate3d(0, 150%, 0); } to { transform: translate3d(0, 0, 0); } }
@keyframes sheet-out { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(0, 150%, 0); } }
/* 快捷短语：横向滚动直接用**原生** overflow-x（与已验证可正常横滑的 .tag-scroll-container 写法一致）。
   关键：不要加 touch-action、也不要用 JS 改 scrollLeft —— 原生滚动走系统合成器，有惯性最顺滑，
   且浏览器按"滚动"消费触摸，不会跟系统边缘返回手势打架。（之前踩坑正是 touch-action:none + JS 手动滚动） */
.popup-chips { display: flex; gap: 6px; width: 100%; padding: 12px 10px; overflow-x: auto; overflow-y: hidden; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; scrollbar-width: none; -ms-overflow-style: none; }
.popup-chips::-webkit-scrollbar { display: none; }
.chip { flex: none; background: #f4f4f4; border: 0; border-radius: 100px; padding: 4px 12px; font-size: 14px; line-height: 18px; color: #141414; white-space: nowrap; cursor: pointer; user-select: none; -webkit-user-select: none; }
.chip:active { background: #e9e9e9; }
.popup-bar { display: flex; align-items: flex-start; gap: 10px; padding: 10px; border-top: 0.5px solid #eaeaea; }
.popup-reply { flex: 1 1 auto; min-width: 0; display: flex; align-items: flex-start; background: #f4f4f4; border-radius: 10px; padding: 10px 12px; max-height: 100px; overflow-y: auto; scrollbar-width: none; -ms-overflow-style: none; }
.popup-reply::-webkit-scrollbar { display: none; }
.popup-reply-text { flex: 1 1 auto; min-width: 0; font-size: 16px; /* ⚠ 同样必须 ≥16px，否则 iOS 聚焦时自动放大整页 */ line-height: 20px; color: #141414; outline: none; word-break: break-word; white-space: pre-wrap; max-height: 80px; overflow-y: auto; scrollbar-width: none; -ms-overflow-style: none; }
.popup-reply-text::-webkit-scrollbar { display: none; }
.popup-reply-text:empty:before { content: attr(data-placeholder); color: #8e8e8e; }
.popup-send { flex: none; width: 38px; height: 38px; border: 0; padding: 0; background: transparent; cursor: pointer; }
.popup-send img { width: 38px; height: 38px; display: block; }

/* ===== 购物车弹出层（底部「他的推荐」面板 + 60% 黑色蒙层） =====
   设计稿「购物车弹出」node 52949:50606：
   全屏 rgba(0,0,0,.6) 蒙层；面板 565/923 高（≈61%），
   标题栏 40px（#F9F9F9 / 标题 18-22-600 #141414 / 下方 24x3 橙条 #E6603B），
   方案卡列表可纵向滚动（卡片 373 宽、白底 r8、pad 12、卡间距 6、卡内 gap 10）。 */
.cart-mask { position: fixed; left: 0; top: 0; right: 0; bottom: 0; background: var(--c-mask); opacity: 0; visibility: hidden; transition: opacity .28s ease, visibility .28s ease; z-index: 60; }
.cart-mask.open { opacity: 1; visibility: visible; }
.cart-sheet { position: fixed; left: 0; right: 0; bottom: 0; height: 45%; background: var(--c-sheet-bg); border-radius: 12px 12px 0 0; display: flex; flex-direction: column; overflow: hidden; transform: translate3d(0, 100%, 0); transition: transform .36s cubic-bezier(0.32, 0.72, 0, 1); will-change: transform; backface-visibility: hidden; -webkit-backface-visibility: hidden; z-index: 70; }
.cart-sheet.open { transform: translate3d(0, 0, 0); }
.cart-head { flex: none; height: 40px; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; }
.cart-title { font-size: 18px; font-weight: 600; line-height: 22px; color: #141414; }
.cart-title-bar { width: 24px; height: 3px; border-radius: 99px; background: var(--c-bar); }
.cart-list { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior-y: contain; background: linear-gradient(180deg, var(--bg-primary, #FFF) 10%, var(--bg-frame, #F4F4F4) 40%); padding: 6px 10px 20px 10px;display: flex; flex-direction: column; gap: 6px; scrollbar-width: none; -ms-overflow-style: none; }
.cart-list::-webkit-scrollbar { display: none; }
.cart-card { position: relative; flex: none; background: #fff; border-radius: 8px; padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.cart-card-title { font-size: 16px; font-weight: 500; line-height: 20px; color: #141414; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* 带印章的卡片：标题右侧让出印章位置（印章 absolute right:2 / width:40 → 再留 34px），否则长标题会跑到印章下面被压住 */
.cart-card--stamp .cart-card-title { padding-right: 34px; }
.cart-card-match { display: flex; align-items: center; gap: 4px; background: #f4f4f4; border-radius: 4px; padding: 6px 8px; font-size: 12px; line-height: 14px; min-width: 0; }
.cart-date, .cart-time { flex: none; color: #8e8e8e; }
/* 赛事信息整段：单行 + 末尾省略号。
   日期/时间固定不缩；后面的「联赛名 主队 VS 客队」是一整段行内流，
   无论哪一段过长都只在**末尾**截断显示「…」，绝不会撑破卡片（子元素写在同一行，避免空白符多出空格）。 */
.cart-match-info { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #000; }
.cart-match-info > div { display: inline; margin-right: 6px; }
.cart-match-info > div:last-child { margin-right: 0; }
.cart-match-info > .cart-league { margin:0 4px; }
.cart-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 12px; line-height: 14px; }
.cart-foot-left, .cart-foot-right { display: flex; align-items: center; }
.cart-foot-left { gap: 2px; }
.cart-foot-right { gap: 12px; }
.cart-bet { color: #2196f3; }
.cart-dot, .cart-viewed { color: #515151; }
.cart-vs.red{ color: #f44336; font-weight: 500; }
.cart-views { color: #f44336; }
.cart-discount { color: #f44336; }
.cart-coin { display: flex; align-items: center; gap: 3px; }
.cart-coin img { width: 12px; height: 12px; display: block; }
.cart-price { font-size: 11px; font-weight: 500; line-height: 12px; color: #f2a128;text-decoration: line-through; }
.cart-price-unit { font-size: 12px; font-weight: 500; line-height: 14px; color: #f2a128; }
.cart-stamp { position: absolute; top: 4px; right: 2px; width: 40px; height: 40px; display: block; pointer-events: none; }
.nodata-img { width: 140px; height: 142px;margin: auto;}
.nodata-img img{width: 100%;}

/* ===== 左侧订单挂件（左下角悬浮，每张各自 10 秒倒计时）*/
.rec-pop { position: absolute; left: 14px; bottom: 100px; width: 307px; display: flex; flex-direction: column; gap: 6px; z-index: 40; }

/* 单张挂件：默认在屏幕左侧外，加 .show 滑入 */
.rec-card { position: relative; width: 100%; padding: 10px; display: flex; flex-direction: column; gap: 6px; transform: translate3d(-120%, 0, 0); opacity: 0; will-change: transform; transition: transform .4s cubic-bezier(.32, .72, 0, 1), opacity .3s ease; }
.rec-card.show { transform: translate3d(0, 0, 0); opacity: 1; }

/* 卡片底图：独立成层，1px 白色描边 + 投影（filter 只作用于此层，不给文字加投影） */
.rec-bg { position: absolute; inset: 0; border-radius: 8px; background: url('/images/rec-bg.png') center / 100% 100% no-repeat; box-shadow: inset 0 0 0 1px #ffffff; filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .05)); }

/* 头行：头像 + 昵称 + 战绩标 + 倒计时 + 关闭 */
.rec-head { position: relative; display: flex; align-items: center; gap: 6px; height: 28px; }
.rec-avatar { flex: none; width: 28px; height: 28px; border-radius: 50%; object-fit: cover; }
.rec-id { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 4px; }
.rec-name { flex: none; font-size: 12px; font-weight: 500; line-height: 14px; color: #141414; }
/* 战绩标：左侧红色渐变数字块 + 右侧粉底红字块，拼成一个胶囊（圆角分别打在两个子块上，父级不裁切） */
.rec-badge { flex: none; display: flex; align-items: center; height: 14px; }
.rec-badge-num { flex: none; width: 14px; height: 14px; display: flex; align-items: center; justify-content: center; border-radius: 3px 0 0 3px; background: linear-gradient(90deg, #e23f23, #f44336); color: #ffffff; font-size: 10px; font-weight: 500; }
.rec-badge-txt { height: 14px; padding: 0 4px; border-radius: 0 3px 3px 0; background: #fff5f7; border: 0.5px solid #f44336; color: #f44336; font-size: 10px; font-weight: 500; line-height: 13px; }

/* 倒计时圆 + 关闭 */
.rec-count { flex: none; width: 20px; height: 20px; border-radius: 50%; background: #ffffff; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 400; line-height: 14px; color: #8e8e8e; }
.rec-close { position: relative; flex: none; width: 16px; height: 16px; border: 0; border-radius: 4px; padding: 0; background: transparent; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.rec-close img { width: 100%; height: 100%; display: block; }

/* 赛事行 */
.rec-match { position: relative; display: flex; align-items: center; gap: 4px; height: 24px; padding: 0 8px; border-radius: 4px; background: #f4f4f4; font-size: 11px; line-height: 12px; white-space: nowrap; overflow: hidden; }
.rec-date, .rec-time { flex: none; color: #8e8e8e; }
.rec-league, .rec-team, .rec-vs { flex: none; color: #141414; }
.rec-vs { margin: 0 2px; }

/* 底行：粉标组 / 让球·人看过 + 金币价（高度由内容决定：粉标 16 → 卡 100，让球行 14 → 卡 98） */
.rec-foot { position: relative; display: flex; align-items: center; gap: 6px; }
.rec-tags { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 5px; overflow: hidden; }
.rec-meta { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 2px; height: 14px; }
.rec-tag { flex: none; height: 16px; padding: 0 6px; border-radius: 100px; background: #fff5f7; color: #e53935; font-size: 10px; font-weight: 500; line-height: 16px; white-space: nowrap; }
.rec-bet, .rec-dot, .rec-viewed, .rec-views { flex: none; font-size: 11px; line-height: 12px; }
.rec-bet { color: #2196f3; }
.rec-dot, .rec-viewed { color: #515151; }
.rec-views { color: #f44336; }
.rec-price { flex: none; display: flex; align-items: center; gap: 3px; }
.rec-price img { width: 12px; height: 12px; display: block; }
.rec-price span { font-size: 11px; font-weight: 500; line-height: 12px; color: #f2a128; }

/* 点击动画 */
.cheerantbox {bottom: 120px;right: 14px;position: fixed;z-index: 69;}
.cheerbtn {background: url(/Images/cheer.png)no-repeat center;background-size: 100%;width: 40px;height: 40px;padding: 5px;border-radius: 50%;bottom: 0;right: 0;position: absolute;z-index: 5;cursor: pointer;}
.cheerantbox img {animation: flutter 2s cubic-bezier(0.39, 0.58, 0.57, 1) forwards;width: 30px;height: 30px;bottom: 10px;right: 15px;position: absolute;}
.elasticity {animation: elasticity 1s cubic-bezier(0, 0, 0.2, 1.5) infinite;}

@keyframes elasticity { 
    0% { transform: translate(0, 0px);}            
    50% { transform: translate(0, 6px) scaleY(0.95);}          
    100% { transform: translate(0, 0px);}
}
.move {
    animation: move 0.7s cubic-bezier(0.68, -0.55, 0.27, 1.55) forwards;
}

@keyframes move {
    0% {
        transform: translate(-60%, 0px);
        opacity: 0;
    }

    100% {
        transform: translate(-10px, 0px);
        opacity: 1;
    }
}

.rise {
    animation: rise 0.6s cubic-bezier(0.56, 0, 0.36, 1) forwards;
}

@keyframes rise {
    0% {
        transform: translate(0, 50%);
        opacity: 0;
    }

    100% {
        transform: translate(0, 0);
        opacity: 1;
    }
}

@keyframes flutter {
    0%{transform: translate(0,0) rotate(0) scale(1);opacity: 0;}
    20%{transform: translate(-10px,-30px) rotate(10deg);opacity: 0.8;}
    50%{transform: translate(10px,-40px) rotate(-10deg);}
    80%{transform: translate(-10px,-60px) rotate(10deg);opacity: 0.8;}
    100%{transform: translate(0,-70px) rotate(0) scale(0.8);opacity: 0;}
}
.shake {animation: shake 2s linear infinite;}
@keyframes shake {
    0%{transform:rotate(0);}
    5%{transform:rotate(-10deg);}
    10%{transform:rotate(10deg);}
    15%{transform:rotate(-10deg);}
    20%{transform:rotate(10deg);}
    25%{transform:rotate(0);}
    100%{transform:rotate(0);}
}


/* ===== 连击数字：固定在按钮正下方，点完自动淡出 ===== */
/* line-height/padding 要留余量：渐变字靠 background-clip:text，盒子比字形小的话顶部会被切掉 */
.cheer-count { position: absolute; left: -20px; bottom: -21px; transform: translateX(-50%); z-index: 6; padding: 0 3px; font-size: 18px; font-weight: 900; font-style: italic; line-height: 1.2; letter-spacing: .5px; background: linear-gradient(180deg, #ff8a4c 0%, #f44336 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; filter: drop-shadow(0 1px 2px rgba(244, 67, 54, .3)); white-space: nowrap; opacity: 0; transition: opacity .3s ease; pointer-events: none; }
.cheer-count.on { opacity: 1; }
.cheer-count.pop { animation: cheer-pop .3s cubic-bezier(.2, 1.6, .4, 1); }
@keyframes cheer-pop {
    0% { transform: translateX(-50%) scale(1); }
    45% { transform: translateX(-50%) scale(1.38); }
    100% { transform: translateX(-50%) scale(1); }
}



@media (max-width: 375px) {

}

.chat-pc {
    display: none;
}

.quickpop{
    display: none;
}

.messages{
    padding: 0 12px;
    font-size: 14px;
    color: #777;
}

.chat-pc-head{
    display: none;
}

.chat-room-panel{
    display: none;
}

.vip-text5 {
    color: #f44336 !important;
    font-weight: 400 !important;
}

.lv-name { flex: 1 1 auto; min-width: 0; font-size: 12px; font-weight: 400; line-height: 14px; color: #515151; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lv-hot { flex: none; display: flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 400; line-height: 14px; color: #f44336; }
.lv-hot img { width: 16px; height: 16px; display: block; }
.layui-layer-dialog .layui-layer-content{text-align:center;}
.layui-layer-title{font-size: 16px !important;font-weight: 500;}
.layui-layer-btn .layui-layer-btn0{height: 36px;border-radius: 6px !important;display: flex; align-items: center; justify-content: center;font-size: 15px !important;}
.layui-layer-btn1 { line-height: 18px !important; font-size: 14px; border: none !important; color: #777 !important; margin: 0 !important; margin-top: 10px !important; height: auto !important; }
.layui-layer-dialog .layui-layer-content{padding: 14px !important;}


.newmsg {background: #FFF;color: #3686FB;padding: 5px 10px;border-radius: 20px 0 0 20px;box-shadow: 0 0 10px rgba(0, 0, 0, .1);right: 0;bottom: 80px;position: fixed;z-index: 10;cursor: pointer;font-size: 12px;
    line-height: 20px;}
.newmsg::before {content:"";background: url(../images/down_bt.svg) no-repeat center;background-size: 100%;width: 12px;height: 12px;margin-right: 3px;vertical-align: -2px;display: inline-block;}
