/* 居中 720 白壳；整页白底（不要灰沟） */
html {
  margin: 0;
  padding: 0;
  background: #fff;
}
body {
  margin: 0;
  padding: 0;
  background: #fff;
  color: #333;
  font-family: Arial, Helvetica, "Microsoft YaHei", sans-serif;
}
body.t49-app {
  width: 100%;
  max-width: 720px;
  margin-left: auto !important;
  margin-right: auto !important;
  background: #fff;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
  /* 手机适配尺度（断点只改变量；球用 clamp 随宽收） */
  --t49-ball: clamp(40px, 11.2vw, 56px);
  --t49-ball-num: clamp(18px, 5.2vw, 26px);
  --t49-ball-sx: clamp(11px, 3.2vw, 14px);
  --t49-plus-fs: clamp(16px, 5vw, 24px);
  --t49-plus-w: clamp(12px, 3.5vw, 18px);
  --t49-plus-mt: clamp(10px, 3vw, 14px);
  --t49-lot-b: 16px;
  --t49-lot-s: 12px;
  --t49-lot-pad: 8px 2px 7px;
  --t49-period: 16px;
  --t49-period-b: 20px;
  --t49-live: 15px;
  --t49-hist-btn: 14px;
  --t49-board-ft: 14px;
  --t49-rec-title: 18px;
  --t49-rec-title-h: 42px;
  --t49-rec-cell-h: 42px;
  --t49-rec-cell-fs: 16px;
  --t49-rec-gap: 8px;
  --t49-icon-img: 78px;
  --t49-icon-fs: 15px;
  --t49-top-title: 18px;
  --t49-tabbar-h: 78px;
  --t49-tabbar-fs: 15px;
  --t49-tab-ico: 30px;
  --t49-col-pad-bottom: 90px;
  --t49-banner-max-h: none;
  /* 图库页 */
  --t49-tuku-lots-cols: 4;
  --t49-tuku-lot-fs: 14px;
  --t49-tuku-lot-pad: 8px 10px;
  --t49-tuku-gap: 10px;
  --t49-tuku-pic-min-h: 148px;
  --t49-tuku-pic-ratio: 1 / 1;
  --t49-tuku-cap-pad: 10px 8px;
  --t49-tuku-cap-fs: 14px;
  --t49-tuku-tip-fs: 16px;
}
.t49-col {
  width: 100%;
  max-width: 720px;
  min-height: 100vh;
  margin: 0 auto;
  background: #fff;
  padding-bottom: var(--t49-col-pad-bottom);
  box-sizing: border-box;
}
.t49-top {
  margin: 0;
  background: #10c366;
  color: #fff;
  height: 44px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  padding: 0 78px 0 40px;
}
.t49-top__icon {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  line-height: 0;
}
.t49-top__icon img {
  display: block;
  width: 22px;
  height: 22px;
  object-fit: contain;
  border-radius: 4px;
}
.t49-top__name {
  font-size: var(--t49-top-title);
  font-weight: 700;
  letter-spacing: 1px;
  line-height: 44px;
  white-space: nowrap;
}
/* 有底栏：返回顶部抬高，与十皮同款按钮不挡 tab */
body.t49-app .home-back-top {
  bottom: max(calc(var(--t49-tabbar-h) + 18px), env(safe-area-inset-bottom, 0px) + calc(var(--t49-tabbar-h) + 8px));
}
.t49-top__actions {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  gap: 2px;
}
.t49-top__act {
  appearance: none;
  border: 0;
  background: transparent;
  color: #fff;
  padding: 2px 6px;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  cursor: pointer;
  line-height: 1;
  min-width: 34px;
}
.t49-top__act span {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0;
}
.t49-top__act svg { display: block; }

/* 搜索层 */
.t49-search[hidden] { display: none !important; }
.t49-search {
  position: fixed;
  inset: 0;
  z-index: 10050;
}
.t49-search__mask {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}
.t49-search__panel {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 0 auto;
  background: #fff;
  min-height: 46vh;
  max-height: 78vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}
.t49-search__bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid #e8e8e8;
  background: #10c366;
}
.t49-search__input {
  flex: 1;
  min-width: 0;
  height: 34px;
  border: 0;
  border-radius: 17px;
  padding: 0 14px;
  font-size: 14px;
  outline: none;
  background: #fff;
  color: #333;
}
.t49-search__cancel {
  appearance: none;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 14px;
  padding: 4px 2px;
  cursor: pointer;
  white-space: nowrap;
}
.t49-search__hint {
  padding: 8px 14px 4px;
  color: #999;
  font-size: 12px;
}
.t49-search__list {
  list-style: none;
  margin: 0;
  padding: 0 0 16px;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.t49-search__list li { border-bottom: 1px solid #f0f0f0; }
.t49-search__list a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  color: #222;
  text-decoration: none;
  font-size: 15px;
}
.t49-search__list a:active { background: #f0fff6; }
.t49-search__kind {
  flex: 0 0 auto;
  font-size: 11px;
  color: #10c366;
  background: #e8fff2;
  border-radius: 4px;
  padding: 2px 6px;
  line-height: 1.4;
}
.t49-search__empty {
  padding: 28px 14px;
  text-align: center;
  color: #999;
  font-size: 14px;
}
.t49-toast[hidden] { display: none !important; }
.t49-toast {
  position: fixed;
  left: 50%;
  bottom: 110px;
  transform: translateX(-50%);
  z-index: 10060;
  background: rgba(0, 0, 0, 0.78);
  color: #fff;
  padding: 10px 16px;
  border-radius: 8px;
  font-size: 14px;
  max-width: 80%;
  text-align: center;
  pointer-events: none;
}

/* 开奖区上方横幅（运营本地图） */
.t49-banner {
  margin: 10px 10px 0;
  padding: 0;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-sizing: border-box;
}
.t49-banner__img {
  display: block;
  width: 100%;
  height: auto;
  max-height: var(--t49-banner-max-h);
  object-fit: cover;
  object-position: center top;
  vertical-align: top;
}
.t49-board {
  margin: 10px 10px 0;
  padding: 10px 10px 12px;
  background: #fff;
  border: 2px solid #10c366;
  border-radius: 12px;
  box-sizing: border-box;
}
.t49-lots { display: flex; gap: 6px; }
.t49-lot {
  flex: 1;
  min-width: 0;
  background: #f2f3f5;
  color: #666;
  text-decoration: none;
  text-align: center;
  border-radius: 8px;
  padding: var(--t49-lot-pad);
}
.t49-lot b { display: block; font-size: var(--t49-lot-b); font-weight: 700; line-height: 1.25; }
.t49-lot small { display: block; margin-top: 2px; font-size: var(--t49-lot-s); font-weight: 400; }
.t49-lot--on { background: #10c366; color: #fff; }
.t49-board-hd { display: flex; align-items: center; gap: 6px; margin: 12px 4px 8px; flex-wrap: wrap; }
.t49-period { flex: 1; min-width: 0; font-size: var(--t49-period); color: #333; }
.t49-period b { color: #e10600; font-size: var(--t49-period-b); }
.t49-live { color: #e85d04; text-decoration: none; font-weight: 700; font-size: var(--t49-live); flex-shrink: 0; }
.t49-live::before { content: "\1F525"; margin-right: 2px; }
.t49-hist {
  background: #10c366;
  color: #fff;
  text-decoration: none;
  border-radius: 6px;
  padding: 5px 10px;
  font-size: var(--t49-hist-btn);
  font-weight: 700;
  flex-shrink: 0;
}
.t49-balls {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1px;
  padding: 4px 0 2px;
}
/* 直接对齐 flykck5 历史开奖球：icon-text + bg-amage-1/2/3；尺寸吃变量 */
.t49-ball.icon-text {
  flex: 1;
  min-width: 0;
  display: inline-block;
  text-align: center;
  position: relative;
  background-size: var(--t49-ball) var(--t49-ball);
  background-repeat: no-repeat;
  background-position: top center;
  padding-top: 0;
}
.t49-ball.bg-amage-0 { background-image: url("../img/amage-0.png"); }
.t49-ball.bg-amage-1 { background-image: url("../img/amage-1.png"); }
.t49-ball.bg-amage-2 { background-image: url("../img/amage-2.png"); }
.t49-ball.bg-amage-3 { background-image: url("../img/amage-3.png"); }
.t49-ball .slot-icon {
  display: inline-block;
  width: var(--t49-ball);
  height: var(--t49-ball);
  line-height: var(--t49-ball);
  font-size: var(--t49-ball-num);
  font-weight: 700;
  color: #666;
  text-indent: 5px;
  box-sizing: border-box;
}
.t49-ball .slot-icon span { padding-right: 6px; }
.t49-ball .slot-text {
  font-size: var(--t49-ball-sx);
  color: #333;
  margin: 3px 0 0;
  padding: 0;
  line-height: 1.15;
}
.t49-plus {
  align-self: flex-start;
  width: var(--t49-plus-w);
  margin-top: var(--t49-plus-mt);
  color: #333;
  font-size: var(--t49-plus-fs);
  font-weight: 700;
  text-align: center;
  line-height: 1;
  flex-shrink: 0;
}
.t49-board-ft {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 8px;
  margin-top: 10px;
  padding: 0 2px;
  font-size: var(--t49-board-ft);
  color: #333;
}
.t49-board-ft b { color: #e10600; font-weight: 700; }
.t49-board-ft span:first-child { flex: 1; min-width: 40%; }
#t49-refresh {
  margin-left: auto;
  border: 0;
  background: transparent;
  color: #e10600;
  font-size: var(--t49-board-ft);
  font-weight: 700;
  cursor: pointer;
  padding: 0;
}

.t49-rec {
  margin: 10px;
  background: #fff;
  border: 2px solid #e10600; /* 站内强调红（期号等同色） */
  border-radius: 10px;
  overflow: hidden;
}
.t49-rec-title {
  background: linear-gradient(#ff2a1a, #e10600);
  color: #fff;
  text-align: center;
  font-weight: 800;
  font-size: var(--t49-rec-title);
  line-height: var(--t49-rec-title-h);
}
.t49-rec-title::before,
.t49-rec-title::after { content: "\2193\2193"; margin: 0 8px; font-weight: 700; }
.t49-rec-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--t49-rec-gap);
  padding: 10px 8px 8px;
  overflow: visible;
}
.t49-rec-cell {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: var(--t49-rec-cell-h);
  background: linear-gradient(#2fce64, #10c366);
  color: #fff;
  border-radius: 6px;
  font-size: var(--t49-rec-cell-fs);
  font-weight: 700;
  text-decoration: none;
  text-align: center;
  padding: 4px 2px;
  box-sizing: border-box;
  overflow: visible;
}
/* 热标视觉：/static/lottery/css/home-ad-badge.css（右上小方块） */

.t49-icons {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px 6px;
  padding: 18px 12px 8px;
  background: #fff;
  margin: 0 10px;
}
.t49-icon {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: #444;
  font-size: var(--t49-icon-fs);
}
.t49-icon img { width: var(--t49-icon-img); height: var(--t49-icon-img); object-fit: contain; }
.t49-icon span { margin-top: 4px; }

/* 分类条独立绿框（勿与下方资料区拼成一条竖边通底） */
.t49-cats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 10px 10px;
  padding: 10px;
  background: #fff;
  border: 2px solid #10c366;
  border-radius: 10px;
  box-sizing: border-box;
}
.t49-cat {
  color: #10c366;
  text-decoration: none;
  border: 1px solid #10c366;
  border-radius: 6px;
  padding: 6px 12px;
  font-size: 14px;
  font-weight: 700;
  background: #fff;
  cursor: pointer;
}
.t49-cat--on {
  background: #10c366;
  border-color: #10c366;
  color: #fff;
}
.t49-cat--more { display: none; }
.t49-cats--open .t49-cat--more { display: inline-block; }
.t49-cat--expand {
  margin-left: auto;
  color: #fff;
  background: #ff8a00;
  border-color: #ff8a00;
}
.t49-cat--expand:hover,
.t49-cat--expand:active {
  background: #e67a00;
  border-color: #e67a00;
  color: #fff;
}
/* 资料区不再套外框；各资料板块自带绿边 */
.t49-material {
  margin: 0 10px 12px;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-sizing: border-box;
}
/* 页底生肖灵码图（对齐 bb777） */
.t49-zodiac-footer {
  margin: 0 10px 16px;
  padding: 0;
  background: #fff;
  border: 2px solid #10c366;
  border-radius: 10px;
  overflow: hidden;
  box-sizing: border-box;
}
.t49-zodiac-footer__img {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: top;
}
.t49-panel { min-height: calc(100vh - 130px); background: #fff; }
.t49-panel--pad { padding: 8px; }

/* 图库：双列卡片；彩种 Tab 用 grid（禁 flex 折成 3+1 满宽） */
.t49-tuku { padding: 4px 2px 16px; }
.t49-tuku-lots {
  display: grid;
  grid-template-columns: repeat(var(--t49-tuku-lots-cols), minmax(0, 1fr));
  gap: 6px;
  margin: 0 0 10px;
}
.t49-tuku-lot {
  min-width: 0;
  text-align: center;
  text-decoration: none;
  color: #10c366;
  border: 1px solid #10c366;
  border-radius: 8px;
  padding: var(--t49-tuku-lot-pad);
  font-size: var(--t49-tuku-lot-fs);
  font-weight: 700;
  background: #fff;
  line-height: 1.25;
  box-sizing: border-box;
}
.t49-tuku-lot--on {
  background: #10c366;
  color: #fff;
}
.t49-tuku-hint {
  color: #888;
  font-size: 13px;
  margin: 0 4px 10px;
}
.t49-tuku-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--t49-tuku-gap);
  align-items: start;
}
.t49-tuku-card--hit {
  outline: 2px solid #10c366;
  outline-offset: 1px;
  border-radius: 8px;
}
.t49-tuku-card {
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}
.t49-tuku-card__link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.t49-tuku-card__pic {
  position: relative;
  display: block;
  background: #fff;
  min-height: var(--t49-tuku-pic-min-h);
  aspect-ratio: var(--t49-tuku-pic-ratio);
  border-bottom: 1px solid #eee;
  box-sizing: border-box;
  overflow: hidden;
}
.t49-tuku-card__pic::before {
  content: attr(data-tip);
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
  font-size: var(--t49-tuku-tip-fs);
  font-weight: 700;
  background: #fff;
  pointer-events: none;
}
.t49-tuku-card__pic.is-ready::before { display: none; }
.t49-tuku-card--updating .t49-tuku-card__pic {
  background: #fff;
}
.t49-tuku-card__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.15s ease;
  position: relative;
  z-index: 2;
}
.t49-tuku-card__pic.is-ready .t49-tuku-card__img { opacity: 1; }
.t49-tuku-card__cap {
  display: block;
  padding: var(--t49-tuku-cap-pad);
  text-align: center;
  font-size: var(--t49-tuku-cap-fs);
  font-weight: 700;
  color: #222;
  line-height: 1.3;
}
.t49-tuku-sentinel {
  height: 1px;
  margin: 0;
  padding: 0;
  pointer-events: none;
}
.t49-tuku-moretip {
  margin: 10px 4px 4px;
  text-align: center;
  color: #888;
  font-size: 13px;
  line-height: 1.4;
}
.t49-tuku-moretip--done { color: #aaa; font-size: 12px; }
.t49-tuku-empty {
  grid-column: 1 / -1;
  text-align: center;
  color: #999;
  padding: 40px 12px;
  font-size: 15px;
}
.t49-frame {
  width: 100%;
  height: calc(100vh - 130px);
  border: 0;
  display: block;
  background: #fff;
}

/* —— 开奖直播页：本页直出舞台（勿用 .t49-live；主题绿对齐全站 #10c366） —— */
body.t49-view-live {
  padding-top: 0 !important; /* 压 player.css 为 nc-header 留的 50px */
  background: #f3faf6 !important;
}
body.t49-view-live .t49-col {
  background: #f3faf6;
}
body.t49-view-live .t49-top {
  display: none;
}
body.t49-view-live .nc-header {
  display: none !important;
}
.t49-livepage {
  position: relative;
  min-height: calc(100vh - 78px);
  background: #f3faf6;
  padding-bottom: 8px;
}
.t49-livepage-hd {
  position: sticky;
  top: 0;
  z-index: 20;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(#3ad56e, #10c366);
  color: #fff;
  border-bottom: 0;
  box-shadow: 0 1px 0 rgba(14, 154, 78, 0.25);
  box-sizing: border-box;
}
.t49-livepage-back {
  position: absolute;
  left: 12px;
  top: 0;
  height: 50px;
  line-height: 50px;
  color: #fff;
  text-decoration: none;
  font-size: 15px;
  opacity: 0.95;
}
.t49-livepage-back:active {
  opacity: 0.8;
}
.t49-livepage-title {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.5px;
}
.t49-livepage .video-mains {
  max-width: 100%;
  margin: 0 auto;
}
.t49-livepage-empty {
  text-align: center;
  color: #999;
  padding: 40px 12px;
}

/* 压掉 dgn 粉紫提示条 → 49 浅绿条；文案居中 */
body.t49-view-live .video-notice,
body.t49-view-live .video-container > .video-notice {
  display: flex !important;
  justify-content: center;
  align-items: center;
  background: #e8f8ef !important;
  color: #0e9a4e !important;
  border-bottom: 1px solid #cfeedd;
  text-align: center;
}
body.t49-view-live .video-notice > span {
  color: #0a7a45 !important;
  font-weight: 700;
}
body.t49-view-live .notice-scroll {
  flex: 0 1 auto;
  color: #10c366 !important;
  text-align: center;
  white-space: normal;
}
body.t49-view-live .video-cd__label {
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}
body.t49-view-live .video-cd__cell {
  box-shadow: 0 0.06rem 0.22rem rgba(16, 195, 102, 0.22), 0 0.04rem 0.12rem rgba(0, 0, 0, 0.25);
}
body.t49-view-live .video-item .video-info,
body.t49-view-live .video-item .video-info p.video-base {
  color: #333;
}
body.t49-view-live .video-item .video-info .video-base span {
  color: #10c366;
  font-weight: 700;
}
.t49-pick { padding: 10px 10px 14px; box-sizing: border-box; }

/* 挑码：顶留缝 + 左右轮廓；手机收边框、给底栏/展开钮留空 */
body.t49-view-pick.t49-app {
  margin-top: 10px !important;
  border-left: 1px solid #d0d0d0;
  border-right: 1px solid #d0d0d0;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.06), 0 0 22px rgba(0, 0, 0, 0.1);
}
body.t49-view-pick .t49-pick {
  margin: 0 8px 12px;
  padding: 10px;
  background: #fff;
  border: 0;
  border-radius: 0;
  box-sizing: border-box;
}
body.t49-view-pick .t49-pick .jz {
  box-shadow: none;
  border: 0;
  border-radius: 0;
}
@media (max-width: 568px) {
  body.t49-view-pick.t49-app {
    margin-top: 0 !important;
    border-left: 0;
    border-right: 0;
    box-shadow: none;
  }
  body.t49-view-pick .t49-col {
    padding-bottom: calc(var(--t49-col-pad-bottom) + 56px);
  }
  body.t49-view-pick .t49-pick {
    margin: 0 4px 6px;
    padding: 4px 4px 12px;
  }
}

.t49-tabbar {
  position: fixed;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 100%;
  max-width: 720px;
  height: var(--t49-tabbar-h);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: #fff;
  border-top: 1px solid #d7eee0;
  box-shadow: 0 -2px 10px rgba(16, 195, 102, 0.08);
  z-index: 30;
  padding-bottom: env(safe-area-inset-bottom, 0);
  box-sizing: content-box;
}
.t49-tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  text-decoration: none;
  color: #222; /* 文字固定黑 */
  font-size: var(--t49-tabbar-fs);
  font-weight: 600;
  line-height: 1.1;
  -webkit-tap-highlight-color: transparent;
}
.t49-tab--on { color: #222; font-weight: 800; }
.t49-tab-ico {
  width: var(--t49-tab-ico);
  height: var(--t49-tab-ico);
  background: #7aa890; /* 图标单独淡绿，不跟文字黑 */
  opacity: 0.92;
}
.t49-tab--on .t49-tab-ico {
  background: #10c366;
  opacity: 1;
}
.t49-tab-ico--home {
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M12 3.2 3 11h2v9h5v-6h4v6h5v-9h2z'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M12 3.2 3 11h2v9h5v-6h4v6h5v-9h2z'/></svg>") center / contain no-repeat;
}
.t49-tab-ico--live {
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M4 6h11a2 2 0 0 1 2 2v1.2l3-1.8v9.2l-3-1.8V16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M4 6h11a2 2 0 0 1 2 2v1.2l3-1.8v9.2l-3-1.8V16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z'/></svg>") center / contain no-repeat;
}
.t49-tab-ico--tuku {
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M4 5h16a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm2 10 3.2-3.8 2.4 2.6 1.6-1.8L18 16H6zM8 9.2A1.4 1.4 0 1 0 8 6.4a1.4 1.4 0 0 0 0 2.8z'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M4 5h16a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm2 10 3.2-3.8 2.4 2.6 1.6-1.8L18 16H6zM8 9.2A1.4 1.4 0 1 0 8 6.4a1.4 1.4 0 0 0 0 2.8z'/></svg>") center / contain no-repeat;
}
.t49-tab-ico--pick {
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M6 3h9l5 5v13a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 1.5V9h4.5zM8 13h8v2H8zm0 4h6v2H8z'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M6 3h9l5 5v13a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm8 1.5V9h4.5zM8 13h8v2H8zm0 4h6v2H8z'/></svg>") center / contain no-repeat;
}

/* —— 历史开奖：49 绿主题 + 字号加大 —— */
body.t49-view-history {
  background: #f3faf6;
}
body.t49-view-history .t49-col {
  background: #f3faf6;
  padding-bottom: var(--t49-col-pad-bottom); /* 给固定底栏留空 */
}
body.t49-view-history .t49-top {
  display: none; /* 历史自带绿顶栏，藏全站绿顶 */
}
.t49-hist-page {
  position: relative;
  min-height: calc(100vh - 90px);
  background: #f3faf6;
  color: #333;
  font-size: 16px;
  padding-bottom: 12px;
}
.t49-hist-hd {
  position: sticky;
  top: 0;
  z-index: 20;
  display: grid;
  grid-template-columns: 48px 1fr 48px;
  align-items: center;
  height: 50px;
  background: linear-gradient(#3ad56e, #10c366);
  border-bottom: 0;
  box-shadow: 0 1px 0 rgba(14, 154, 78, 0.25);
}
.t49-hist-hd h1 {
  margin: 0;
  text-align: center;
  font-size: 19px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.5px;
}
.t49-hist-back,
.t49-hist-grid {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  text-decoration: none;
  color: #fff;
}
.t49-hist-back {
  font-size: 32px;
  line-height: 1;
  font-weight: 300;
}
.t49-hist-grid {
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M4 4h6v6H4zm10 0h6v6h-6zM4 14h6v6H4zm10 0h6v6h-6z'/></svg>") center / 22px 22px no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M4 4h6v6H4zm10 0h6v6h-6zM4 14h6v6H4zm10 0h6v6h-6z'/></svg>") center / 22px 22px no-repeat;
  width: 48px;
  color: #fff;
}
.t49-hist-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: #fff;
  border-bottom: 1px solid #cfeedd;
}
.t49-hist-tab {
  border: 0;
  background: transparent;
  height: 46px;
  font-size: 17px;
  color: #666;
  position: relative;
  cursor: pointer;
}
.t49-hist-tab--on {
  color: #10c366;
  font-weight: 700;
}
.t49-hist-tab--on::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 40px;
  height: 3px;
  margin-left: -20px;
  background: #10c366;
  border-radius: 2px;
}
.t49-hist-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 12px;
  background: #fff;
  margin: 8px 10px 0;
  border: 1px solid #cfeedd;
  border-radius: 10px 10px 0 0;
  box-sizing: border-box;
}
.t49-hist-year {
  flex: 1;
  min-width: 0;
  border: 0;
  background: transparent;
  text-align: left;
  font-size: 16px;
  color: #222;
  font-weight: 700;
  cursor: pointer;
  padding: 0;
}
.t49-hist-year::after {
  content: " ▾";
  color: #10c366;
  font-size: 14px;
}
.t49-hist-tools {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}
.t49-hist-tool {
  border: 1px solid #bfe8cf;
  background: #fff;
  color: #555;
  border-radius: 6px;
  padding: 5px 11px;
  font-size: 14px;
  cursor: pointer;
}
.t49-hist-tool--on {
  border-color: #10c366;
  color: #fff;
  background: #10c366;
  font-weight: 700;
}
.t49-hist-pop {
  position: absolute;
  z-index: 25;
  margin: 0 12px;
  background: #fff;
  border: 1px solid #cfeedd;
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(16, 195, 102, 0.12);
  overflow: hidden;
  min-width: 140px;
}
.t49-hist-pop button {
  display: block;
  width: 100%;
  border: 0;
  background: #fff;
  text-align: left;
  padding: 13px 16px;
  font-size: 16px;
  color: #333;
  cursor: pointer;
}
.t49-hist-pop button + button { border-top: 1px solid #eef7f1; }
.t49-hist-pop-on,
.t49-hist-pop button.t49-hist-pop-on { color: #10c366; font-weight: 700; }
.t49-hist-list {
  padding: 0 10px 24px;
}
.t49-hist-card {
  background: #fff;
  border: 1px solid #cfeedd;
  border-radius: 10px;
  padding: 14px 10px 12px;
  margin-bottom: 10px;
  box-shadow: 0 1px 4px rgba(16, 195, 102, 0.06);
  box-sizing: border-box;
}
.t49-hist-card:first-child {
  border-radius: 0 0 10px 10px;
  border-top: 0;
  margin-top: 0;
}
.t49-hist-card-hd {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  font-size: 16px;
  font-weight: 700;
  color: #222;
}
.t49-hist-card-hd span:last-child {
  color: #333;
  font-size: 14px;
  font-weight: 600;
  flex-shrink: 0;
}
.t49-hist-balls {
  padding: 0;
}
/* 历史球与首页同源尺度变量，禁止另写死 54px */
.t49-hist-page .t49-ball.icon-text {
  background-size: var(--t49-ball) var(--t49-ball);
}
.t49-hist-page .t49-ball .slot-icon {
  width: var(--t49-ball);
  height: var(--t49-ball);
  line-height: var(--t49-ball);
  font-size: var(--t49-ball-num);
}
.t49-hist-page .t49-ball .slot-text {
  font-size: var(--t49-ball-sx);
  font-weight: 700;
  color: #222;
  margin-top: 4px;
  line-height: 1.2;
}
.t49-hist-page .t49-ball .slot-text .t49-wx {
  color: #222;
  font-weight: 700;
}
.t49-hist-page .t49-plus {
  margin-top: var(--t49-plus-mt);
  font-size: var(--t49-plus-fs);
}
.t49-hist-page.t49-hist--hide-wx .t49-wx {
  display: none;
}
.t49-hist-empty {
  text-align: center;
  color: #999;
  padding: 40px 12px;
  font-size: 16px;
}
.t49-hist-cal-intro {
  margin: 10px;
  padding: 14px;
  background: #fff;
  border: 1px solid #cfeedd;
  border-radius: 8px;
  color: #555;
  font-size: 15px;
  line-height: 1.65;
}
.t49-hist-cal-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 10px 8px;
  background: #fff;
  margin: 0 10px;
  border: 1px solid #cfeedd;
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  font-size: 17px;
  font-weight: 700;
  color: #222;
}
.t49-hist-cal-bar button {
  border: 0;
  background: transparent;
  font-size: 28px;
  line-height: 1;
  color: #10c366;
  cursor: pointer;
  padding: 0 8px;
}
.t49-hist-cal-week,
.t49-hist-cal-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  margin: 0 10px;
  background: #fff;
  text-align: center;
  border-left: 1px solid #cfeedd;
  border-right: 1px solid #cfeedd;
  box-sizing: border-box;
}
.t49-hist-cal-week {
  padding: 10px 0;
  color: #888;
  font-size: 14px;
  border-bottom: 1px solid #eef7f1;
}
.t49-hist-cal-days {
  padding: 8px 0 12px;
  border-radius: 0 0 8px 8px;
  border-bottom: 1px solid #cfeedd;
  min-height: 220px;
}
.t49-hist-cal-days b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin: 4px auto;
  border-radius: 50%;
  font-size: 15px;
  font-weight: 600;
  color: #ccc;
}
.t49-hist-cal-days b.act {
  color: #10c366;
  background: #eafff3;
}
.t49-hist-cal-days b.act1 {
  color: #10c366;
  border: 1px solid #10c366;
  background: #fff;
}
.t49-hist-cal-days b.hover {
  background: #10c366;
  color: #fff;
  border-color: #10c366;
}
.t49-hist-cal-ft {
  margin: 12px 10px 24px;
  padding: 14px;
  background: #fff;
  border: 1px solid #cfeedd;
  border-radius: 8px;
  font-size: 15px;
  color: #333;
  text-align: center;
}
.t49-hist-cal-ft em {
  color: #10c366;
  font-style: normal;
  font-weight: 700;
}

/* —— 手机尺度：只改变量（与 t118 同参） —— */
@media (max-width: 480px) {
  body.t49-app {
    --t49-ball: clamp(38px, 10.8vw, 46px);
    --t49-ball-num: clamp(17px, 4.8vw, 21px);
    --t49-ball-sx: clamp(10px, 2.8vw, 12px);
    --t49-plus-fs: clamp(14px, 4.5vw, 18px);
    --t49-plus-w: 12px;
    --t49-plus-mt: 10px;
    --t49-lot-b: 13px;
    --t49-lot-s: 10px;
    --t49-lot-pad: 6px 1px 5px;
    --t49-period: 14px;
    --t49-period-b: 17px;
    --t49-live: 13px;
    --t49-hist-btn: 12px;
    --t49-board-ft: 12px;
    --t49-rec-title: 15px;
    --t49-rec-title-h: 34px;
    --t49-rec-cell-h: 34px;
    --t49-rec-cell-fs: 12px;
    --t49-rec-gap: 6px;
    --t49-icon-img: 56px;
    --t49-icon-fs: 12px;
    --t49-top-title: 16px;
    --t49-tabbar-h: 56px;
    --t49-tabbar-fs: 12px;
    --t49-tab-ico: 24px;
    --t49-col-pad-bottom: 64px;
    --t49-banner-max-h: 120px;
    --t49-tuku-lots-cols: 2;
    --t49-tuku-lot-fs: 13px;
    --t49-tuku-lot-pad: 8px 6px;
    --t49-tuku-gap: 6px;
    --t49-tuku-pic-min-h: 0px;
    --t49-tuku-pic-ratio: 4 / 5;
    --t49-tuku-cap-pad: 6px 6px;
    --t49-tuku-cap-fs: 12px;
    --t49-tuku-tip-fs: 13px;
  }
  .t49-icons {
    gap: 12px 4px;
    padding: 12px 8px 6px;
  }
  .t49-board {
    margin: 8px 8px 0;
    padding: 8px 8px 10px;
  }
  .t49-rec { margin: 8px; }
  .t49-ball .slot-icon { text-indent: 3px; }
  .t49-ball .slot-icon span { padding-right: 3px; }
  .t49-panel--pad { padding: 6px; }
}
