/* ============================================================ 医院救援管理平台 · 移动端设计系统(uni-app x / uvue 适配版) Hospital Rescue Management Platform · Mobile Design System 基准画布 375 × 812 · 主色 #2563EB ------------------------------------------------------------ ⚠ uvue 约束: 1) 不支持 ::before / ::after 伪元素 —— 全部改为实体元素承担装饰; 2) 不支持 CSS 变量 var() —— 颜色全部写实; 3) 不使用 display:grid —— 栅格一律 flex + 百分比宽度; 4) 不使用 gap —— 间距一律 margin(跨端最稳); 5) 只使用 class 选择器,不使用后代/复合选择器。 ============================================================ */ /* ---------- 页面容器 ---------- */ .hr-page { flex: 1; background-color: #F3F4F6; flex-direction: column; position: relative; } .hr-page-white { flex: 1; background-color: #FFFFFF; flex-direction: column; } /* 页面滚动体 */ .hr-scroll { flex: 1; min-height: 0; } /* 内容区容器:作为骨架屏覆盖层的定位基准,范围=导航栏以下、底栏以上 */ .hr-flow { flex: 1; min-height: 0; position: relative; } /* 加载中覆盖层:绝对定位铺满内容区并居中 xLoading,不参与 flex 布局,因此不会被压缩 */ .hr-loading-mask { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background-color: #F3F4F6; z-index: 20; display: flex; flex-direction: row; align-items: center; justify-content: center; } /* 关键布局约束:scroll-view 是 flex 容器,直接子项默认 flex-shrink:1, 内容高于容器时会被压缩到「刚好装下」,表现为页面/骨架屏只显示顶部一小截。 因此滚动体的直接子元素必须显式禁止收缩。 */ .hr-body { padding: 24rpx 32rpx 44rpx 32rpx; flex-shrink: 0; flex-grow: 0; } .hr-body-nopad { padding: 24rpx 0 44rpx 0; } .hr-body-flush { padding: 0 0 44rpx 0; } .hr-body-tab { padding: 24rpx 32rpx 20rpx 32rpx; } /* ---------- 基础布局 ---------- */ .hr-row { display: flex; flex-direction: row; align-items: center; } .hr-row-top { display: flex; flex-direction: row; align-items: flex-start; } .hr-row-between { display: flex; flex-direction: row; align-items: center; justify-content: space-between; } .hr-col { display: flex; flex-direction: column; } .hr-center { display: flex; flex-direction: row; align-items: center; justify-content: center; } .hr-flex1 { flex: 1; } .hr-wrap { display: flex; flex-direction: row; flex-wrap: wrap; } /* ---------- 文本 ---------- */ .hr-t1 { color: #1F2937; } .hr-t2 { color: #6B7280; } .hr-t3 { color: #9CA3AF; } .hr-t-pri { color: #2563EB; } .hr-t-red { color: #DC2626; } .hr-t-amb { color: #D97706; } .hr-t-grn { color: #059669; } .hr-fs10 { font-size: 22.4rpx; } .hr-fs11 { font-size: 24.6rpx; } .hr-fs12 { font-size: 26.8rpx; } .hr-fs13 { font-size: 29.2rpx; } .hr-fs14 { font-size: 31.4rpx; } .hr-fs15 { font-size: 33.6rpx; } .hr-fs17 { font-size: 38rpx; } .hr-bold { font-weight: bold; } .hr-mono { font-family: monospace; letter-spacing: 0.6rpx; } /* ---------- 卡片 ---------- */ .hr-card { background-color: #FFFFFF; border-radius: 26rpx; padding: 24rpx 26rpx 24rpx 26rpx; border: 2rpx solid #F3F4F6; } .hr-card-gap { margin-bottom: 20rpx; } .hr-card-tight { padding: 20rpx; } .hr-card-list { padding: 14rpx 18rpx 14rpx 18rpx; } .hr-card-line { border: 2rpx solid #E5E7EB; } .hr-card-danger { border: 2rpx solid #FECACA; background-color: #FFFBFB; } /* ---------- 小节标题 ---------- */ .hr-sec { display: flex; flex-direction: row; align-items: center; margin-top: 32rpx; margin-bottom: 16rpx; } .hr-sec-first { margin-top: 8rpx; } .hr-sec-bar { width: 6rpx; height: 26rpx; border-radius: 4rpx; background-color: #2563EB; margin-right: 14rpx; } .hr-sec-t { font-size: 31.4rpx; font-weight: bold; color: #1F2937; } .hr-sec-more { margin-left: auto; font-size: 25.8rpx; color: #9CA3AF; } /* ---------- 底部分隔区 ---------- */ /* xCell 内部 .xCellWrap 写死了 padding:12px 0(且不随 rpx 缩放), 会让列表行比设计稿明显高一截、文字块也比左侧图标高。 这里按项目设计稿收紧,行高由左侧图标(64rpx)决定。 */ .xCellWrap { padding: 0 !important; } .xCellAvatar { margin-right: 20rpx !important; } /* ---------- 列表行 ---------- */ .hr-lrow { display: flex; flex-direction: row; align-items: center; padding-top: 22rpx; padding-bottom: 22rpx; border-bottom: 2rpx solid #F3F4F6; min-height: 88rpx; } .hr-lrow-last { border-bottom-width: 0rpx; } .hr-lrow-first { padding-top: 8rpx; } .hr-lic { width: 64rpx; height: 64rpx; border-radius: 18rpx; display: flex; flex-direction: row; align-items: center; justify-content: center; font-size: 33.6rpx; background-color: #F3F4F6; color: #6B7280; margin-right: 20rpx; } .hr-lic-lg { width: 72rpx; height: 72rpx; border-radius: 20rpx; font-size: 35.8rpx; } .hr-lic-pri { background-color: #EFF6FF; color: #2563EB; } .hr-lic-red { background-color: #FEF2F2; color: #DC2626; } .hr-lic-amb { background-color: #FEF3C7; color: #D97706; } .hr-lic-grn { background-color: #ECFDF5; color: #059669; } .hr-lmain { flex: 1; flex-direction: column; } .hr-lmain-b { font-size: 31.4rpx; font-weight: bold; color: #1F2937; lines: 1; } .hr-lmain-s { font-size: 24rpx; color: #9CA3AF; margin-top: 2rpx; lines: 1; } .hr-lval { font-size: 28rpx; color: #9CA3AF; margin-left: 16rpx; } /* ---------- 按钮 ---------- */ .hr-btn { display: flex; flex-direction: row; align-items: center; justify-content: center; height: 88rpx; border-radius: 24rpx; font-size: 32.4rpx; font-weight: bold; background-color: #F3F4F6; color: #1F2937; } .hr-btn-primary { background-color: #2563EB; color: #FFFFFF; } .hr-btn-danger { background-color: #DC2626; color: #FFFFFF; } .hr-btn-ghost { background-color: #FFFFFF; color: #1F2937; border: 2rpx solid #E5E7EB; } .hr-btn-soft { background-color: #EFF6FF; color: #2563EB; } .hr-btn-lg { height: 104rpx; font-size: 35.8rpx; border-radius: 28rpx; } .hr-btn-sm { height: 68rpx; font-size: 28rpx; border-radius: 18rpx; } .hr-btn-disabled { background-color: #F3F4F6; color: #9CA3AF; border: 2rpx solid #E5E7EB; } /* ---------- 底部固定操作条 ---------- */ .hr-fixedbar { background-color: #FFFFFF; border-top: 2rpx solid #F3F4F6; padding: 22rpx 32rpx 28rpx 32rpx; display: flex; flex-direction: row; } .hr-fixedbar-btn { flex: 1; margin-right: 18rpx; } .hr-fixedbar-btn-last { flex: 1; margin-right: 0rpx; } /* ---------- chip ---------- */ .hr-chip { display: flex; flex-direction: row; align-items: center; height: 56rpx; padding-left: 22rpx; padding-right: 22rpx; border-radius: 18rpx; font-size: 26.8rpx; font-weight: bold; color: #6B7280; background-color: #FFFFFF; border: 2rpx solid #E5E7EB; margin-right: 14rpx; } .hr-chip-active { background-color: #2563EB; border: 2rpx solid #2563EB; color: #FFFFFF; } .hr-chip-red { color: #B91C1C; background-color: #FEF2F2; border: 2rpx solid #FECACA; } .hr-chip-amb { color: #92400E; background-color: #FEF3C7; border: 2rpx solid #FDE68A; } .hr-chip-grn { color: #059669; background-color: #ECFDF5; border: 2rpx solid #A7F3D0; } .hr-chip-lg { height: 80rpx; padding-left: 26rpx; padding-right: 26rpx; border-radius: 20rpx; } /* chip 横向滚动条 */ .hr-chiprow { flex-direction: row; display: flex; } /* ---------- 腕带分级 ---------- */ .hr-wb { display: flex; flex-direction: row; align-items: center; height: 48rpx; padding-left: 18rpx; padding-right: 18rpx; border-radius: 14rpx; font-size: 25.8rpx; font-weight: bold; } .hr-wb-dot { width: 14rpx; height: 14rpx; border-radius: 4rpx; margin-right: 10rpx; background-color: #FFFFFF; } .hr-wb1 { background-color: #FEE2E2; color: #B91C1C; } .hr-wb2 { background-color: #FEF3C7; color: #92400E; } .hr-wb3 { background-color: #D1FAE5; color: #065F46; } .hr-wb4 { background-color: #E5E7EB; color: #111827; } .hr-wb-sm { height: 40rpx; font-size: 23.6rpx; border-radius: 12rpx; padding-left: 14rpx; padding-right: 14rpx; } /* ---------- 优先级 ---------- */ .hr-pc { display: flex; flex-direction: row; align-items: center; justify-content: center; height: 42rpx; padding-left: 16rpx; padding-right: 16rpx; border-radius: 12rpx; font-size: 23.6rpx; font-weight: bold; } .hr-pc0 { background-color: #DC2626; color: #FFFFFF; } .hr-pc1 { background-color: #F59E0B; color: #FFFFFF; } .hr-pc2 { background-color: #2563EB; color: #FFFFFF; } /* ---------- 角标(全站统一样式) ---------- 基准 = 我的页「消息中心」右侧角标:高/圆角 36rpx、字号 22.4rpx、红底白字。 组件库 xBadge(x-tabbar / x-tabs 内部使用)尺寸由它自己的 padding + 字号决定, 且以 inline style 下发,因此只能用 !important 覆盖 (!important 的样式声明优先级高于 inline style)。 */ .hr-badge { min-width: 36rpx; height: 36rpx; padding-left: 10rpx; padding-right: 10rpx; border-radius: 18rpx; background-color: #DC2626; display: flex; flex-direction: row; align-items: center; justify-content: center; margin-left: 16rpx; } .hr-badge-t { font-size: 22.4rpx; font-weight: bold; color: #FFFFFF; } /* 组件库 xBadge 统一到同一尺寸(tabbar 角标 / tabs 角标) */ .xBadge-countAndLabel { min-width: 36rpx !important; height: 36rpx !important; padding: 0 10rpx !important; border-radius: 18rpx !important; /* 定位(数值实测自 uni_modules 源码 + 375 逻辑宽换算,1rpx = 0.5px): 1) 库默认是「半出血」:x-tabbar 给 x-badge 传 :offset="[0,5]",再叠加 transform: translate(50%,-50%),等于「角标中心 = 容器右上角」, 需要容器上方留出半个角标高度。而 x-tabbar 的 Tab 项高度写死 60px, 内容(icon 盒 30px + 文字 ≈23px ≈ 53px)上下各只剩 ~3.5px 余量, 出血超出 Tab 项的部分会被裁掉 → 故先取消出血(transform:none)。 2) 取消出血后若停在库默认的 right:0,角标会大面积压住 icon: 角标实际宽 28px —— min-width 36rpx 是「内容盒」最小值,还要加左右各 10rpx 内边距 ⇒ 18 + 10 = 28px,不是 18px(这点最容易算错); 而 .xBadgeWrap 宽度 ≈ 左侧 icon 盒宽 = icon 24px + 左右各 4px = 32px。 right:0 时角标左缘 = wrap.right - 28,几乎完全盖在 icon 上 —— 这正是用户反馈的「角标遮挡 icon」。 3) 故改为「左锚定」,复刻设计稿 .dot 的 left: calc(50% + 6px): 角标定位基准 .xBadgeWrap 的水平中心与 Tab 项水平中心重合 (.xBadge / .xBadgeWrap / .xTabbarItem 均为 align-items:center), 所以 left = wrap 半宽 16px + 6px = 22px = 44rpx, 角标左缘落在中心右侧 6px 处,与 icon 只重叠 ~6px(设计稿 5px)。 左锚定的好处:角标内容变宽(两位数/三位数)只向右生长, 不会回头盖住 icon,也不用再按「角标自身宽度」重算。 4) 上提只取 2px(=4rpx):Tab 项上下余量 ~3.5px,取 2px 后角标顶边仍在 Tab 项内约 1.5px;即便某些平台文字行高更高,也还有下面的 overflow:visible 兜底,不会被裁。右侧余量充足: 角标右缘 = 中心 + 34px,仍小于 5 Tab 布局的项右缘(中心 + 37.5px)。 */ top: -4rpx !important; left: 44rpx !important; right: auto !important; transform: none !important; } .xBadge-countAndLabelText { font-size: 22.4rpx !important; line-height: 1 !important; } /* 角标出血:库内 .xBadge 的内边距是 getNodeInfo() 量出来的, 量到的尺寸可能早于上面 !important 覆盖生效 → 预留空间不足, 角标超出容器的部分会被裁掉(tabbar 上最明显)。 view 在 uvue / H5 上的默认裁剪行为不一致,这里统一放开。 */ .xBadge, .xBadgeWrap, .xTabbarBox, .xTabbarWrap, .xTabbarItem { overflow: visible !important; } /* .xBadge 的内边距(getNodeInfo() 量出 ≈ 半个角标)只是库为「半出血」预留的空间。 本项目已取消出血(transform:none),去掉该内边距后: .xBadge 盒子由「内容 53px + 上下内边距 18px = 71px」缩到 53px, 从「超出 60px 的 Tab 项」变成「完整落在 Tab 项内」→ 任何平台都不会被裁。 内容位置不变:.xTabbarItem 是 justify-content:center,两种盒高下内容都垂直居中。 */ .xBadge { padding: 0 !important; } /* ---------- 提示条 ---------- */ .hr-tip { display: flex; flex-direction: row; align-items: flex-start; padding: 20rpx 24rpx 20rpx 24rpx; border-radius: 22rpx; font-size: 26.8rpx; } .hr-tip-ic { margin-right: 16rpx; font-size: 26.8rpx; } .hr-tip-tx { flex: 1; font-size: 26.8rpx; line-height: 1.5; } .hr-tip-info { background-color: #EFF6FF; color: #1E40AF; } .hr-tip-warn { background-color: #FFFBEB; color: #92400E; } .hr-tip-err { background-color: #FEF2F2; color: #991B1B; } .hr-tip-ok { background-color: #ECFDF5; color: #065F46; } /* ---------- 表单 ---------- */ .hr-field { background-color: #FFFFFF; border: 2rpx solid #E5E7EB; border-radius: 22rpx; padding: 16rpx 24rpx 16rpx 24rpx; min-height: 104rpx; display: flex; flex-direction: column; justify-content: center; } .hr-field-label { font-size: 23.6rpx; color: #9CA3AF; } .hr-field-input { font-size: 31.4rpx; color: #1F2937; font-weight: bold; height: 52rpx; padding: 0 0 0 0; } .hr-field-err { border: 2rpx solid #DC2626; background-color: #FFFBFB; } .hr-field-ro { background-color: #F9FAFB; } /* ---------- 分段控件 ---------- */ .hr-seg { display: flex; flex-direction: row; background-color: #F3F4F6; padding: 6rpx 6rpx 6rpx 6rpx; border-radius: 22rpx; } .hr-seg-i { flex: 1; display: flex; flex-direction: row; align-items: center; justify-content: center; padding-top: 16rpx; padding-bottom: 16rpx; border-radius: 18rpx; font-size: 29.2rpx; font-weight: bold; color: #6B7280; } .hr-seg-i-on { background-color: #FFFFFF; color: #2563EB; } /* ---------- 进度条 ---------- */ .hr-pbar { height: 8rpx; border-radius: 4rpx; background-color: #F3F4F6; overflow: hidden; display: flex; flex-direction: row; } .hr-pbar-i { height: 8rpx; border-radius: 4rpx; background-color: #2563EB; } /* ---------- 统计块 ---------- */ .hr-stat-row { display: flex; flex-direction: row; } .hr-stat { flex: 1; flex-direction: column; align-items: center; justify-content: center; } .hr-stat-b { font-size: 47rpx; font-weight: bold; color: #1F2937; } .hr-stat-s { font-size: 23.6rpx; color: #6B7280; margin-top: 6rpx; } .hr-stat-sep { width: 2rpx; background-color: #F3F4F6; height: 60rpx; margin-top: 8rpx; } /* ---------- 时间线 ---------- */ .hr-tl { position: relative; padding-left: 44rpx; } .hr-tl-line { position: absolute; left: 12rpx; top: 12rpx; width: 4rpx; background-color: #E5E7EB; } .hr-tl-item { position: relative; padding-bottom: 30rpx; } .hr-tl-dot { position: absolute; left: -42rpx; top: 8rpx; width: 20rpx; height: 20rpx; border-radius: 10rpx; background-color: #2563EB; } .hr-tl-dot-warn { background-color: #DC2626; } .hr-tl-dot-ok { background-color: #10B981; } .hr-tl-time { font-size: 23.6rpx; color: #9CA3AF; } .hr-tl-tx { font-size: 28rpx; color: #1F2937; font-weight: bold; margin-top: 6rpx; } .hr-tl-sub { font-size: 24.6rpx; color: #6B7280; margin-top: 4rpx; } /* ---------- 空状态 / 加载 ---------- */ .hr-empty { padding: 88rpx 40rpx 88rpx 40rpx; display: flex; flex-direction: column; align-items: center; } .hr-empty-ic { width: 112rpx; height: 112rpx; border-radius: 36rpx; background-color: #F3F4F6; display: flex; flex-direction: row; align-items: center; justify-content: center; font-size: 56rpx; color: #9CA3AF; margin-bottom: 16rpx; } .hr-empty-b { font-size: 31.4rpx; font-weight: bold; color: #6B7280; } .hr-empty-s { font-size: 25.8rpx; color: #9CA3AF; margin-top: 10rpx; text-align: center; lines: 2; } /* ---------- 头像 ---------- */ .hr-avt { width: 76rpx; height: 76rpx; border-radius: 22rpx; display: flex; flex-direction: row; align-items: center; justify-content: center; background-color: #2563EB; color: #FFFFFF; font-size: 33.6rpx; font-weight: bold; } .hr-avt-sm { width: 60rpx; height: 60rpx; border-radius: 18rpx; font-size: 28rpx; } .hr-avt-lg { width: 108rpx; height: 108rpx; border-radius: 32rpx; font-size: 49.2rpx; } .hr-avt-red { background-color: #DC2626; } .hr-avt-amb { background-color: #D97706; } .hr-avt-grn { background-color: #059669; } .hr-avt-gy { background-color: #94A3B8; } /* ---------- 开关(自绘,兜底用) ---------- */ .hr-sw { width: 88rpx; height: 52rpx; border-radius: 26rpx; background-color: #E5E7EB; padding: 6rpx 6rpx 6rpx 6rpx; display: flex; flex-direction: row; align-items: center; } .hr-sw-on { background-color: #10B981; justify-content: flex-end; } .hr-sw-knob { width: 40rpx; height: 40rpx; border-radius: 20rpx; background-color: #FFFFFF; } /* ---------- 分隔线 ---------- */ .hr-hr { height: 2rpx; background-color: #F3F4F6; } /* ---------- 覆盖层 ---------- */ .hr-mask { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.45); display: flex; flex-direction: column; align-items: center; justify-content: center; } .hr-toast { position: absolute; left: 50%; top: 156rpx; margin-left: -160rpx; width: 320rpx; display: flex; flex-direction: row; align-items: center; justify-content: center; padding: 18rpx 30rpx 18rpx 30rpx; border-radius: 22rpx; background-color: rgba(17, 24, 39, 0.93); color: #FFFFFF; font-size: 28rpx; font-weight: bold; } .hr-toast-ok { background-color: rgba(5, 150, 105, 0.95); } .hr-toast-warn { background-color: rgba(217, 119, 6, 0.95); } .hr-toast-err { background-color: rgba(185, 28, 28, 0.95); } /* ---------- 离线条 ---------- */ .hr-offbar { display: flex; flex-direction: row; align-items: center; padding: 18rpx 32rpx 18rpx 32rpx; background-color: #FFFBEB; border-bottom: 2rpx solid #FDE68A; font-size: 26.8rpx; font-weight: bold; color: #92400E; } .hr-offbar-cnt { background-color: #F59E0B; color: #FFFFFF; font-size: 22.4rpx; font-weight: bold; padding: 4rpx 12rpx 4rpx 12rpx; border-radius: 18rpx; margin-left: 16rpx; margin-right: 16rpx; } .hr-offbar-go { margin-left: auto; font-size: 26.8rpx; color: #B45309; font-weight: bold; } /* ---------- 底部弹层 ---------- */ .hr-sheet-mask { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background-color: rgba(15, 23, 42, 0.42); } .hr-sheet { position: absolute; left: 0; right: 0; bottom: 0; background-color: #FFFFFF; border-radius: 36rpx 36rpx 0rpx 0rpx; padding: 28rpx 32rpx 40rpx 32rpx; } .hr-sheet-h { display: flex; flex-direction: row; align-items: center; margin-bottom: 20rpx; } .hr-sheet-h-b { font-size: 33.6rpx; font-weight: bold; color: #1F2937; } .hr-sheet-h-x { margin-left: auto; font-size: 35.8rpx; color: #9CA3AF; } .hr-sheet-opt { display: flex; flex-direction: row; align-items: center; padding-top: 26rpx; padding-bottom: 26rpx; border-bottom: 2rpx solid #F3F4F6; } .hr-sheet-opt-t { flex: 1; font-size: 31.4rpx; color: #1F2937; } .hr-sheet-opt-on { color: #2563EB; font-weight: bold; } .hr-sheet-opt-last { border-bottom-width: 0rpx; } /* ---------- 2D 人体图鉴(uvue 无 SVG,用几何图形拼装人体示意) ---------- */ .bm-row { display: flex; flex-direction: row; } .bm-col { flex: 1; background-color: #FAFBFC; border: 2rpx dashed #E5E7EB; border-radius: 24rpx; padding: 20rpx 12rpx 16rpx 12rpx; align-items: center; position: relative; margin-right: 20rpx; } .bm-col-last { margin-right: 0rpx; } .bm-figure { width: 192rpx; height: 368rpx; position: relative; } .bm-head { position: absolute; left: 66rpx; top: 0rpx; width: 60rpx; height: 60rpx; border-radius: 30rpx; border: 5rpx solid #CBD5E1; } .bm-torso { position: absolute; left: 52rpx; top: 66rpx; width: 88rpx; height: 124rpx; border-radius: 28rpx; border: 5rpx solid #CBD5E1; } .bm-arm-l { position: absolute; left: 16rpx; top: 72rpx; width: 24rpx; height: 116rpx; border-radius: 12rpx; border: 5rpx solid #CBD5E1; } .bm-arm-r { position: absolute; left: 152rpx; top: 72rpx; width: 24rpx; height: 116rpx; border-radius: 12rpx; border: 5rpx solid #CBD5E1; } .bm-leg-l { position: absolute; left: 56rpx; top: 192rpx; width: 26rpx; height: 168rpx; border-radius: 14rpx; border: 5rpx solid #CBD5E1; } .bm-leg-r { position: absolute; left: 110rpx; top: 192rpx; width: 26rpx; height: 168rpx; border-radius: 14rpx; border: 5rpx solid #CBD5E1; } .bm-mark { position: absolute; width: 38rpx; height: 38rpx; border-radius: 20rpx; background-color: #DC2626; display: flex; flex-direction: row; align-items: center; justify-content: center; } .bm-mark-t { font-size: 22.4rpx; font-weight: bold; color: #FFFFFF; } .bm-tag { font-size: 23.6rpx; color: #9CA3AF; margin-top: 14rpx; } /* ---------- 加载动画 ---------- */ .hr-spin { width: 60rpx; height: 60rpx; border-radius: 30rpx; border: 6rpx solid rgba(255, 255, 255, 0.25); border-top-color: #FFFFFF; } /* ---------- 骨架屏 ---------- */ .hr-sk { height: 22rpx; border-radius: 14rpx; background-color: #F3F4F6; margin-bottom: 14rpx; }