/* ====== v24 DEAL CARDS 热促卡风格（登录页左栏重构） ====== */

/* 左栏容器调整：内容整体上移（贴近顶部），不再用 gm-brand/gm-console-mock 体系 */
.login-container .container-back {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;          /* 整体上移：内容贴顶，消除上方空旷 */
  align-items: center !important;
  padding: clamp(32px, 5vh, 72px) 20px 28px !important; /* 顶部呼吸位随视口自适应 */
  box-sizing: border-box !important;               /* 让 height:100% 含 padding，避免盒子溢出 100vh */
}
/* 左栏内层包装 */
.gm-deals-wrap {
  width: 100%; max-width: 380px;
  display: flex; flex-direction: column; gap: 14px;
  position: relative; z-index: 3;
  animation: gmFadeUp .7s ease both;
}
/* 顶部标语 */
.gm-deals-head {
  text-align: left; margin-bottom: 2px;
}
.gm-deals-head .eyebrow-line {
  display: inline-block; font-family: inherit; font-size: 10.5px; font-weight: 700;
  letter-spacing: .18em; color: #58D06D; margin-bottom: 8px;
}
.gm-deals-head h2 {
  font-size: 19px; font-weight: 800; color: #fff; line-height: 1.35; letter-spacing: -.01em;
}
.gm-deals-head p { font-size: 11.5px; color: #A8A5C8; margin-top: 4px; }

/* 渐变大卡（主推） */
.gm-deal-card {
  border-radius: 14px; padding: 20px 18px 18px; position: relative; overflow: hidden;
  color: #fff; display: flex; flex-direction: column;
}
.gm-deal-card.card-a {
  background: linear-gradient(135deg, #0D6BC2 0%, #149CF4 60%, #3DB8FF 100%);
  box-shadow: 0 16px 40px rgba(20,156,244,.35);
}
.gm-deal-card.card-b {
  background: linear-gradient(135deg, #1A1038 0%, #2D1B69 50%, #4C1D95 100%);
  box-shadow: 0 16px 40px rgba(76,29,149,.35);
  margin-top: 12px;
}
.gm-deal-card .deal-kicker {
  display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: .06em;
  background: rgba(255,255,255,.15); border-radius: 5px; padding: 3px 9px; margin-bottom: 10px;
  align-self: flex-start; text-transform: uppercase;
}
.gm-deal-card h3 { font-size: 15.5px; font-weight: 800; margin-bottom: 5px; line-height: 1.35; }
.gm-deal-card .deal-desc { font-size: 11px; color: rgba(255,255,255,.78); line-height: 1.55; margin-bottom: 12px; }
.gm-deal-card .deal-price { display: flex; align-items: baseline; gap: 4px; margin-bottom: 12px; }
.gm-deal-card .deal-price sub { font-size: 12px; vertical-align: baseline; }
.gm-deal-card .deal-price .num { font-size: 30px; font-weight: 900; letter-spacing: -.02em; line-height: 1; }
.gm-deal-card .deal-price .unit { font-size: 11px; color: rgba(255,255,255,.7); }
.gm-deal-card .deal-price .orig { font-size: 12px; color: rgba(255,255,255,.45); text-decoration: line-through; margin-left: 6px; }

/* 倒计时 */
.gm-cd { display: flex; gap: 7px; margin-bottom: 12px; align-items: stretch; }
.gm-cd .cd-box {
  /* 显式定高 + flex 纵向居中：杜绝被外层 flex 横向拉伸到 ~128px 的异常 */
  height: 46px; min-height: 0; box-sizing: border-box;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18);
  border-radius: 7px; padding: 4px 7px; text-align: center; min-width: 40px;
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  transition: background .2s, transform .2s;
}
.gm-cd .cd-box:hover { background: rgba(255,255,255,.18); transform: translateY(-1px); }
.gm-cd .cd-box b { font-size: 17px; font-weight: 800; line-height: 1; color: #fff; }
.gm-cd .cd-box small { font-size: 9px; color: rgba(255,255,255,.62); letter-spacing: .04em; }

/* 库存进度条 */
.gm-deal-card .stock-line { font-size: 10.5px; color: rgba(255,255,255,.62); margin-bottom: 5px; }
.gm-deal-card .stock-bar { height: 5px; background: rgba(255,255,255,.12); border-radius: 3px; overflow: hidden; margin-bottom: 14px; }
.gm-deal-card .stock-bar i { display: block; height: 100%; border-radius: 3px;
  background: linear-gradient(90deg, rgba(255,255,255,.82), rgba(255,255,255,.45)); }

/* 卡片左上高光（增加质感与层次，不影响文字） */
.gm-deal-card::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,0) 44%);
}

/* 抢购按钮 */
.gm-deal-card .deal-btn {
  display: inline-flex; align-items: center; gap: 5px;
  background: #fff; color: #0D82CF; font-size: 13px; font-weight: 700;
  padding: 9px 18px; border-radius: 8px; text-decoration: none;
  transition: transform .2s, box-shadow .2s; align-self: flex-start;
  box-shadow: 0 6px 16px rgba(0,0,0,.15);
}
.gm-deal-card .deal-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(0,0,0,.22); }
.gm-deal-card .deal-btn .arrow { font-size: 14px; transition: transform .2s; }
.gm-deal-card .deal-btn:hover .arrow { transform: translateX(3px); }

/* 卡片B的按钮（紫底适配） */
.gm-deal-card.card-b .deal-btn { color: #4C1D95; }

/* 底部信任条（紧凑版） */
.gm-deals-trust {
  display: flex; gap: 7px; flex-wrap: wrap; margin-top: 12px; position: relative; z-index: 3;
}
.gm-deals-trust span {
  display: inline-flex; align-items: center; gap: 4px; font-size: 10px; color: #CFCBEA;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1);
  border-radius: 99px; padding: 3px 9px; backdrop-filter: blur(4px);
}
.gm-deals-trust svg { width: 11px; height: 11px; color: #58D06D; }

/* 隐藏旧的 hero-note / gm-brand / gm-console-mock 等 */
.gm-brand, .gm-console-mock, .gm-brand-trust, .back-text, .gm-cm-head,
.gm-cm-row, .gm-cm-usage, .gm-cm-chart, .gm-cm-deals, .gm-brand-stats,
.gm-brand-feats { display: none !important; }

/* ====== v25 左栏加宽 + 3×2 促销网格 + 右侧重设计 ====== */

/* 左栏加宽：42% → 57%（覆盖 gm-auth.css） */
.login-container { grid-template-columns: minmax(660px, 57%) 1fr !important; }

/* 左栏铺满利用：去掉 380px 限宽 */
.gm-deals-wrap { max-width: none !important; gap: 18px !important; padding: 0 6px; }
.gm-deals-head h2 { font-size: 24px !important; }
.gm-deals-head p { font-size: 12.5px !important; }

/* 3×2 促销网格 */
.gm-deals-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 12px !important;
}
.gm-deals-grid .gm-deal-card {
  border-radius: 14px; padding: 16px 15px 14px !important;
  display: flex; flex-direction: column; min-height: 172px;
  margin: 0 !important;
}
.gm-deals-grid .gm-deal-card h3 { font-size: 14px !important; margin-bottom: 4px; }
.gm-deals-grid .gm-deal-card .deal-desc {
  font-size: 11px !important; line-height: 1.5 !important; margin-bottom: 10px !important;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  min-height: 33px;
}
.gm-deals-grid .gm-deal-card .deal-price { margin-bottom: 8px !important; margin-top: auto; }
.gm-deals-grid .gm-deal-card .deal-price .num { font-size: 22px !important; }
.gm-deals-grid .gm-deal-card .deal-price-txt { font-size: 12px; font-weight: 700; color: rgba(255,255,255,.92); min-height: 22px; align-items: baseline; }
.gm-deals-grid .gm-deal-card .deal-kicker { font-size: 9px !important; padding: 2px 8px !important; margin-bottom: 8px !important; }
.gm-deals-grid .gm-deal-card .deal-btn {
  font-size: 11.5px !important; padding: 6px 13px !important; border-radius: 7px !important;
  align-self: flex-start !important; margin-top: 2px;
}

/* 三套配色（bg_color: blue/purple/green） */
.gm-deal-card.card-blue {
  background: linear-gradient(140deg, #0D6BC2 0%, #149CF4 62%, #3DB8FF 100%);
  box-shadow: 0 12px 30px rgba(20,156,244,.28);
}
.gm-deal-card.card-purple {
  background: linear-gradient(140deg, #1A1038 0%, #2D1B69 52%, #4C1D95 100%);
  box-shadow: 0 12px 30px rgba(76,29,149,.28);
}
.gm-deal-card.card-green {
  background: linear-gradient(140deg, #06403A 0%, #0B7A5C 55%, #10A97B 100%);
  box-shadow: 0 12px 30px rgba(16,169,123,.25);
}
.gm-deal-card.card-green .deal-btn { color: #0B7A5C; }
.gm-deal-card.card-orange {
  background: linear-gradient(140deg, #7C2D12 0%, #C2410C 60%, #EA7A2D 100%);
  box-shadow: 0 12px 30px rgba(194,65,12,.25);
}

/* 迷你倒计时（紧凑卡内单行） */
.gm-deals-grid .cd-mini {
  font-size: 10.5px; color: rgba(255,255,255,.85); margin-bottom: 8px;
  background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.2);
  border-radius: 6px; padding: 3px 8px; display: inline-flex; gap: 5px; align-self: flex-start;
  font-variant-numeric: tabular-nums;
}
.gm-deals-grid .cd-mini b { font-weight: 800; color: #fff; }

/* ====== 右侧登录区重设计 ====== */
.login-container .container-before {
  background:
    radial-gradient(700px 420px at 100% 0%, rgba(20,156,244,.06), transparent 60%),
    radial-gradient(560px 380px at 0% 100%, rgba(88,208,109,.05), transparent 55%),
    linear-gradient(180deg, #FBFCFE 0%, #F3F6FB 100%) !important;
}
.login-container .gm-form-card {
  max-width: 420px !important;
  background: rgba(255,255,255,.9) !important;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(23,18,67,.06) !important;
  border-radius: 22px !important;
  padding: 36px 34px 30px !important;
  box-shadow: 0 30px 70px rgba(23,18,67,.10), 0 4px 16px rgba(23,18,67,.04) !important;
}
/* 品牌行（静态 HTML 注入） */
.gm-right-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 22px; }
.gm-right-brand .mark {
  width: 38px; height: 38px; border-radius: 10px; flex: none;
  background: linear-gradient(135deg, #149CF4, #0B6BC2);
  display: grid; place-items: center; box-shadow: 0 8px 18px rgba(20,156,244,.3);
}
.gm-right-brand .mark svg { width: 21px; height: 21px; }
.gm-right-brand b { font-size: 15px; color: #171243; letter-spacing: -.01em; display: block; line-height: 1.2; }
.gm-right-brand small { display: block; font-size: 8.5px; letter-spacing: .2em; color: #8F8CB8; }
/* 欢迎语 */
.gm-right-welcome { margin-bottom: 18px; }
.gm-right-welcome h1 { font-size: 25px; font-weight: 800; color: #171243; letter-spacing: -.015em; margin: 0 0 5px; }
.gm-right-welcome p { font-size: 12.5px; color: #6E6B93; margin: 0; }
/* 登录按钮渐变 */
.login-container .login-btn.el-button {
  background: linear-gradient(135deg, #149CF4 0%, #0B6BC2 100%) !important;
  border: none !important; border-radius: 11px !important; height: 46px !important;
  font-size: 15px !important; font-weight: 700 !important; letter-spacing: .04em;
  box-shadow: 0 10px 24px rgba(20,156,244,.32) !important;
  transition: transform .2s, box-shadow .2s !important;
}
.login-container .login-btn.el-button:hover { transform: translateY(-1px); box-shadow: 0 14px 30px rgba(20,156,244,.4) !important; }
/* 输入框圆角 */
.login-container .el-input__inner { border-radius: 10px !important; height: 44px !important; line-height: 44px !important; }
/* 底部链接居中 */
.login-container .gm-form-foot { justify-content: center !important; gap: 22px !important; margin-top: 20px !important; padding-top: 16px !important; border-top: 1px solid rgba(23,18,67,.06); }
.login-container .gm-form-foot a { font-size: 12px; color: #8F8CB8; }
.login-container .gm-form-foot a:hover { color: #149CF4; }

/* 961-1280px：3 列变 2 列（左栏 57% 略窄） */
@media (min-width:961px) and (max-width:1280px){
  .gm-deals-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .login-container { grid-template-columns: minmax(520px, 54%) 1fr !important; }
  .login-container .container-back { padding: 26px 24px !important; }
  .gm-right-brand, .gm-right-welcome { display: none; }
}
/* 欢迎语已替代「登录」大标题，去除重复 */
.login-container .login-text-title { display: none !important; }
.login-container .login-text { margin-bottom: 16px !important; }
/* ≤1280：欢迎语隐藏，恢复「登录」标题 */
@media (max-width:1280px){
  .login-container .login-text-title { display: block !important; }
  .login-container .gm-right-welcome { display: none !important; }
}

/* ====== v26 3×3 网格 + 右栏上提 ====== */
/* 卡片紧凑化：3 行不超高 */
.gm-deals-grid { gap: 10px !important; }
.gm-deals-grid .gm-deal-card { min-height: 0 !important; padding: 13px 13px 12px !important; }
.gm-deals-grid .gm-deal-card h3 { font-size: 13px !important; }
.gm-deals-grid .gm-deal-card .deal-desc { font-size: 10.5px !important; margin-bottom: 8px !important; min-height: 31px !important; }
.gm-deals-grid .gm-deal-card .deal-price { margin-bottom: 6px !important; }
.gm-deals-grid .gm-deal-card .deal-price .num { font-size: 19px !important; }
.gm-deals-grid .gm-deal-card .deal-btn { font-size: 11px !important; padding: 5px 11px !important; }
.gm-deals-wrap { gap: 12px !important; }
.gm-deals-head h2 { font-size: 21px !important; margin-bottom: 0 !important; }
.gm-deals-head p { margin-top: 3px !important; }
.gm-deals-trust { margin-top: 0 !important; }
/* 矮屏再压 */
@media (min-width:961px) and (max-height:820px){
  .gm-deals-grid .gm-deal-card { padding: 11px 12px 10px !important; }
  .gm-deals-grid .gm-deal-card .deal-desc { min-height: 0 !important; -webkit-line-clamp: 1; }
  .login-container .container-back { padding-top: 18px !important; padding-bottom: 16px !important; }
}
/* 右栏登录框上提 */
.login-container .container-before {
  align-items: flex-start !important;
  padding-top: 48px !important;
}
.login-container .gm-form-card { margin-top: 0 !important; }
@media (min-width:961px) and (max-height:820px){
  .login-container .container-before { padding-top: 30px !important; }
}

/* ====== v27 左栏 60% + 全内容上下左右对称居中 ====== */
.login-container { grid-template-columns: minmax(720px, 60%) 1fr !important; }

/* 左栏：内容块整体垂直居中，水平 padding 对称 */
.login-container .container-back {
  justify-content: center !important;
  padding: 28px 40px !important;
}
.gm-deals-wrap { padding: 0 !important; }
/* 三行等高 + 网格自身在剩余空间居中 */
.gm-deals-grid { grid-auto-rows: 1fr !important; align-content: center !important; }

/* 右栏：恢复垂直居中（v26 的 flex-start 作废） */
.login-container .container-before { align-items: center !important; padding-top: 0 !important; }
/* 登录页：卡片+优惠码条作为一组对称居中——margin-bottom 抵消码条高度使组视觉居中 */
#login .gm-form-card { margin-bottom: 190px; }

/* 中屏同步 */
@media (min-width:961px) and (max-width:1280px){
  .login-container { grid-template-columns: minmax(560px, 56%) 1fr !important; }
}
/* 矮屏：减小补偿防溢出 */
@media (min-width:961px) and (max-height:820px){
  #login .gm-form-card { margin-bottom: 120px; }
  .login-container .container-back { padding: 18px 30px !important; }
  .login-container .container-before { padding-top: 0 !important; }
}

/* v27.1 码条实测 212px：补偿精确化（组高 745 = 卡522+11+码条212 → M=223 使组在任何视口高精确居中） */
#login .gm-form-card { margin-bottom: 223px; }
@media (min-width:961px) and (max-height:820px){
  #login .gm-form-card { margin-bottom: 223px !important; }
}

/* ============================================================
   2026-10-03 · 窄屏左栏隐藏收口
   本文件在 login/regist/forget 三页中于 gm-auth.css **之后**加载，
   其开头的 `.login-container .container-back {...}`（display 未指定）
   会在窄屏覆盖 gm-auth.css v25 里的 `display:none`，导致移动端左栏重现、
   表单被挤到视口外。补一条同等优先级的隐藏声明收口。
   ============================================================ */
@media (max-width:960px){
  .login-container .container-back {
    display: none !important;
  }
  /* 同时保证右栏占满，不给左栏留任何轨道 */
  .login-container { display: block !important; width: 100% !important; }
  .login-container .container-before {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .login-container .gm-form-card {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ============================================================
   2026-10-03 · 窄屏优惠码条放开限高
   v33 给 #gmCodeBar 锁了固定高度（200/150/260px 档）以保证桌面一屏，
   但该限制在移动端（≤960px 高度自适应）会造成内部滚动、体验割裂。
   窄屏改为不限高，纵向自然铺开。
   ============================================================ */
@media (max-width:960px){
  .login-container #gmCodeBar {
    height: auto !important;
    overflow: visible !important;
    max-height: none !important;
  }
  .login-container #gmCodeBar .gm-codebar-inner {
    max-height: none !important;
    overflow: visible !important;
  }
  /* 窄屏下优惠码/领券改回纵向堆叠（横向滚动在手机上体验差） */
  .login-container #gmCodeBar .gm-cb-list-wrap,
  .login-container #gmCodeBar .gm-claim-list {
    flex-wrap: wrap !important;
    overflow-x: visible !important;
    -webkit-mask-image: none !important;
            mask-image: none !important;
  }
  .login-container #gmCodeBar .gm-cb-list-wrap .gm-cb-item,
  .login-container #gmCodeBar .gm-claim-item {
    flex: 1 1 100% !important;
    width: 100% !important;
  }
}

/* ============================================================
   2026-10-03 · 优惠码营销条 v2（配合 gm-code-bar.js 新 DOM）
   改造点：
   ① 每个码从「一行文字」升级为「卡片」：面额 / 码 / 名额 / 到期 四层信息
   ② 显示剩余名额（remain）与到期天数（days_left），制造紧迫感
   ③ 7 天内到期的码加「仅剩 N 天」红色角标
   ④ 整卡可点复制（不必精确点中小按钮），并支持键盘 Enter/Space
   ⑤ 「可用优惠码」与「可领取」两区视觉上彻底分开，各有标题行
   ⚠ 本节必须放在文件末尾：gm-theme.css 里有 .gm-cb-* 的旧样式，
      且 login.php 中本文件后加载，能覆盖之。
   ============================================================ */
.login-container #gmCodeBar .gm-codebar-inner {
  display: block !important;
  padding: 12px 14px !important;
  background: linear-gradient(135deg, rgba(20,156,244,.06), rgba(183,148,244,.04)) !important;
  border: 1px solid rgba(20,156,244,.22) !important;
  border-radius: 12px !important;
}
/* 标题行 */
.login-container #gmCodeBar .gm-cb-head {
  display: flex !important; align-items: baseline; gap: 10px !important;
  margin-bottom: 10px !important; flex-wrap: wrap !important;
}
.login-container #gmCodeBar .gm-cb-t,
.login-container #gmCodeBar .gm-claim-t {
  font-size: 13px !important; font-weight: 700 !important; color: #0B6BC2 !important;
  display: flex !important; align-items: center; gap: 6px !important;
}
.login-container #gmCodeBar .gm-cb-t::before,
.login-container #gmCodeBar .gm-claim-t::before {
  content: ''; width: 16px; height: 16px; border-radius: 4px; flex: none;
  background: linear-gradient(135deg, #149CF4, #0B6BC2);
}
.login-container #gmCodeBar .gm-cb-sub {
  font-size: 11.5px !important; color: #5A6478 !important; margin-left: auto !important;
}

/* 码卡片横向滚动条 */
.login-container #gmCodeBar .gm-cb-list-wrap {
  display: flex !important; gap: 10px !important; overflow-x: auto !important;
  padding-bottom: 6px !important; scrollbar-width: thin !important;
  -webkit-mask-image: linear-gradient(90deg,#000 0,#000 90%,transparent 100%);
          mask-image: linear-gradient(90deg,#000 0,#000 90%,transparent 100%);
}
.login-container #gmCodeBar .gm-cb-list-wrap:hover { -webkit-mask-image: none !important; mask-image: none !important; }
.login-container #gmCodeBar .gm-cb-list-wrap::-webkit-scrollbar { height: 4px; }
.login-container #gmCodeBar .gm-cb-list-wrap::-webkit-scrollbar-thumb { background: #C8D4E0; border-radius: 2px; }

/* 单个码卡片 */
.login-container #gmCodeBar .gm-cb-item {
  position: relative !important; flex: 0 0 172px !important; width: 172px !important;
  display: flex !important; flex-direction: column !important; gap: 4px !important;
  padding: 10px 12px !important; border-radius: 10px !important; cursor: pointer !important;
  background: #fff !important; border: 1px solid #E3E8F0 !important;
  transition: transform .2s, box-shadow .2s, border-color .2s !important;
}
.login-container #gmCodeBar .gm-cb-item:hover {
  transform: translateY(-2px) !important; border-color: rgba(20,156,244,.5) !important;
  box-shadow: 0 8px 20px rgba(20,156,244,.16) !important;
}
.login-container #gmCodeBar .gm-cb-item:focus-visible {
  outline: 2px solid #149CF4 !important; outline-offset: 2px !important;
}
/* 左侧强调条 */
.login-container #gmCodeBar .gm-cb-item::before {
  content: '' !important; position: absolute !important; left: 0 !important; top: 8px !important;
  bottom: 8px !important; width: 3px !important; border-radius: 0 3px 3px 0 !important;
  background: linear-gradient(180deg, #149CF4, #49C1BF) !important;
}
.login-container #gmCodeBar .gm-cb-top {
  display: flex !important; align-items: center !important; gap: 6px !important; min-height: 20px !important;
}
.login-container #gmCodeBar .gm-cb-val {
  font-size: 15px !important; font-weight: 800 !important; color: #E8890C !important;
  letter-spacing: -.01em !important; line-height: 1.2 !important;
}
/* 临期角标 */
.login-container #gmCodeBar .gm-cb-flag {
  margin-left: auto !important; font-size: 10px !important; font-weight: 700 !important;
  color: #B42318 !important; background: rgba(245,76,64,.1) !important;
  padding: 2px 6px !important; border-radius: 50px !important; white-space: nowrap !important;
}
.login-container #gmCodeBar .gm-cb-flag.low { color: #B45309 !important; background: rgba(255,160,43,.14) !important; }
.login-container #gmCodeBar .gm-cb-code {
  font-family: ui-monospace, 'Cascadia Code', Consolas, monospace !important;
  font-size: 13.5px !important; font-weight: 700 !important; color: #14122B !important;
  letter-spacing: .06em !important;
}
.login-container #gmCodeBar .gm-cb-meta {
  display: flex !important; align-items: center !important; gap: 8px !important;
  font-size: 10.5px !important; color: #5A6478 !important; margin-top: 1px !important;
}
.login-container #gmCodeBar .gm-cb-exp { margin-left: auto !important; }
.login-container #gmCodeBar .gm-cb-item .cp {
  margin-top: 6px !important; width: 100% !important; min-height: 26px !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  font-size: 11.5px !important; font-weight: 600 !important; color: #149CF4 !important;
  background: rgba(20,156,244,.1) !important; border: 1px solid rgba(20,156,244,.24) !important;
  border-radius: 6px !important; cursor: pointer !important; transition: all .18s !important;
}
.login-container #gmCodeBar .gm-cb-item .cp:hover { background: #149CF4 !important; color: #fff !important; border-color: #149CF4 !important; }
.login-container #gmCodeBar .gm-cb-item .cp.gm-cb-copied { background: #16A34A !important; border-color: #16A34A !important; color: #fff !important; }
.login-container #gmCodeBar .gm-cb-item.is-soldout { opacity: .55 !important; }

/* 可领取区 */
.login-container #gmCodeBar .gm-claim {
  margin-top: 12px !important; padding-top: 12px !important;
  border-top: 1px dashed #D8E0E8 !important;
}
.login-container #gmCodeBar .gm-claim-list {
  display: flex !important; gap: 10px !important; overflow-x: auto !important;
  padding-bottom: 6px !important; scrollbar-width: thin !important;
  -webkit-mask-image: linear-gradient(90deg,#000 0,#000 90%,transparent 100%);
          mask-image: linear-gradient(90deg,#000 0,#000 90%,transparent 100%);
}
.login-container #gmCodeBar .gm-claim-list:hover { -webkit-mask-image: none !important; mask-image: none !important; }
.login-container #gmCodeBar .gm-claim-list::-webkit-scrollbar { height: 4px; }
.login-container #gmCodeBar .gm-claim-list::-webkit-scrollbar-thumb { background: #C8D4E0; border-radius: 2px; }
.login-container #gmCodeBar .gm-claim-item {
  position: relative !important; flex: 0 0 176px !important; width: 176px !important;
  display: flex !important; flex-direction: column !important; gap: 3px !important;
  padding: 10px 12px !important; border-radius: 10px !important;
  background: #fff !important; border: 1px dashed rgba(20,156,244,.45) !important;
}
.login-container #gmCodeBar .gm-ci-top { display: flex !important; align-items: center !important; gap: 6px !important; }
.login-container #gmCodeBar .gm-claim-item b {
  font-size: 15px !important; font-weight: 800 !important; color: #149CF4 !important;
  font-variant-numeric: tabular-nums !important;
}
.login-container #gmCodeBar .gm-claim-item i {
  font-style: normal !important; font-size: 10.5px !important; color: #5A6478 !important;
  white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important;
}
.login-container #gmCodeBar .gm-claim-btn {
  margin-top: 6px !important; width: 100% !important; min-height: 30px !important;
  background: linear-gradient(135deg, #149CF4, #0B6BC2) !important; color: #fff !important;
  border: none !important; border-radius: 6px !important; cursor: pointer !important;
  font-size: 12px !important; font-weight: 600 !important;
  transition: filter .18s, transform .18s !important;
}
.login-container #gmCodeBar .gm-claim-btn:hover:not(:disabled) { filter: brightness(1.08) !important; transform: translateY(-1px) !important; }
.login-container #gmCodeBar .gm-claim-btn:disabled { cursor: default !important; opacity: .9 !important; }
.login-container #gmCodeBar .gm-claim-btn.gm-claim-done { background: #E5F6EF !important; color: #0B7A5C !important; }
.login-container #gmCodeBar .gm-claim-btn.gm-claim-fail { background: #F1F3F7 !important; color: #B42318 !important; }

/* 窄屏：改纵向堆叠，取消横向滚动与 mask */
@media (max-width:960px){
  .login-container #gmCodeBar .gm-cb-list-wrap,
  .login-container #gmCodeBar .gm-claim-list {
    flex-wrap: wrap !important; overflow-x: visible !important;
    -webkit-mask-image: none !important; mask-image: none !important;
  }
  .login-container #gmCodeBar .gm-cb-item,
  .login-container #gmCodeBar .gm-claim-item { flex: 1 1 100% !important; width: 100% !important; }
  .login-container #gmCodeBar .gm-cb-sub { margin-left: 0 !important; width: 100% !important; }
}

/* ============================================================
   2026-10-03 · 优惠码条高度策略修正
   之前给 #gmCodeBar 锁了固定高度（200/150/260），v2 卡片化后每张卡更高，
   200px 只能放下「可用优惠码」一区，「可领取」被裁掉。
   改为：桌面端不限高（内容自适应），由外层 .container-before 承担滚动；
        卡片改为更紧凑的横向布局，把总高控制在 ~300px 内。
   ============================================================ */
@media (min-width:961px){
  .login-container #gmCodeBar {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
  .login-container #gmCodeBar .gm-codebar-inner { max-height: none !important; overflow: visible !important; }
  /* 卡片改横向紧凑：左信息右按钮，省掉一层纵向堆叠 */
  .login-container #gmCodeBar .gm-cb-item,
  .login-container #gmCodeBar .gm-claim-item {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    grid-template-areas: 'val btn' 'code btn' 'meta btn' !important;
    align-items: center !important;
    column-gap: 10px !important;
    row-gap: 1px !important;
    padding: 9px 11px !important;
  }
  .login-container #gmCodeBar .gm-cb-item .gm-cb-top { grid-area: val !important; margin: 0 !important; }
  .login-container #gmCodeBar .gm-cb-item .gm-cb-code { grid-area: code !important; }
  .login-container #gmCodeBar .gm-cb-item .gm-cb-meta { grid-area: meta !important; margin: 0 !important; }
  .login-container #gmCodeBar .gm-cb-item .cp {
    grid-area: btn !important; margin: 0 !important; width: auto !important;
    min-width: 54px !important; min-height: 30px !important; align-self: center !important;
  }
  .login-container #gmCodeBar .gm-claim-item .gm-ci-top { grid-area: val !important; }
  .login-container #gmCodeBar .gm-claim-item > i { grid-area: meta !important; }
  .login-container #gmCodeBar .gm-claim-item .gm-claim-btn {
    grid-area: btn !important; margin: 0 !important; width: auto !important;
    min-width: 58px !important; padding: 0 14px !important; align-self: center !important;
  }
  /* 标题行与卡间距再收一点 */
  .login-container #gmCodeBar .gm-cb-head { margin-bottom: 7px !important; }
  .login-container #gmCodeBar .gm-claim { margin-top: 9px !important; padding-top: 9px !important; }
}

/* ============================================================
   2026-10-03 · 补回 57px：优惠码条增高后右栏内滚
   卡片化让 #gmCodeBar 从 200px 涨到 256px，右栏又超出视口 57px。
   这里从左侧品牌区与表单卡内部再挤出空间（不改字号，保持可读性）：
   ① 左侧促销卡区上移（原本 justify-content:center 有富余）
   ② 表单卡内边距与品牌区间距各收 4~6px
   ============================================================ */
@media (min-width:961px){
  .login-container .container-before { padding: 12px 32px !important; }
  .login-container .gm-form-card { padding: 20px 28px 16px !important; }
  .login-container .gm-right-brand { margin-bottom: 10px !important; }
  .login-container .gm-right-welcome { margin-bottom: 10px !important; }
  .login-container .gm-form-foot { margin-top: 10px !important; padding-top: 10px !important; }
  .login-container #gmCodeBar { margin-top: 10px !important; }
  .login-container #gmCodeBar .gm-codebar-inner { padding: 10px 12px !important; }
}
@media (min-width:961px) and (max-height:820px){
  .login-container .container-before { padding: 10px 28px !important; }
  .login-container .gm-form-card { padding: 16px 24px 14px !important; }
  .login-container .gm-right-welcome h1 { font-size: 20px !important; }
  .login-text-title { font-size: 20px !important; }
  .login-container .form-item { margin-bottom: 8px !important; }
  .login-container .el-input__inner { height: 40px !important; line-height: 40px !important; }
  .login-container .login-btn { height: 42px !important; }
  .login-container #gmCodeBar .gm-cb-item,
  .login-container #gmCodeBar .gm-claim-item { padding: 7px 10px !important; }
}

/* ============================================================
   2026-10-03 · 码卡宽度与信息行排版收尾
   172px 卡宽下「剩 100 份 / 2026/11/29 到期」会折行成两行，显乱。
   方案：卡宽 172→196px，并把 meta 行改为「名额 + · + 到期」单行 ellipsis。
   ============================================================ */
@media (min-width:961px){
  .login-container #gmCodeBar .gm-cb-item { flex: 0 0 196px !important; width: 196px !important; }
  .login-container #gmCodeBar .gm-claim-item { flex: 0 0 196px !important; width: 196px !important; }
  /* meta 与 i 强制单行 */
  .login-container #gmCodeBar .gm-cb-meta,
  .login-container #gmCodeBar .gm-claim-item > i {
    flex-wrap: nowrap !important; white-space: nowrap !important;
    overflow: hidden !important; text-overflow: ellipsis !important;
    display: block !important; line-height: 1.4 !important;
  }
  .login-container #gmCodeBar .gm-cb-meta > span { display: inline !important; }
  .login-container #gmCodeBar .gm-cb-meta > span + span::before { content: ' ·'; margin: 0 3px; color: #C8D0DA; }
  .login-container #gmCodeBar .gm-cb-exp { margin-left: 0 !important; }
  .login-container #gmCodeBar .gm-cb-code { font-size: 13px !important; }
}

/* ============================================================
   2026-10-03 · 登录页移除优惠码条后的版式回弹
   背景：为了把优惠码营销条（最高 256px）塞进一屏，v24~v33 把登录页
        压得很紧：输入框 44/40px、登录按钮 46px、卡片 padding 20/16px。
        现在优惠码条已从 login.php 移除，右栏内容骤减 ~430px，
        实测大屏空旷率 59%、笔记本 47%，且输入框触控目标偏小。
   本层：把桌面端恢复到舒适尺寸（大屏/桌面一档、矮屏一档），
        并保持上下左右严格对称居中。
   ============================================================ */
@media (min-width:961px){
  /* 桌面基准档：输入框回到 46px、按钮 50px、间距放大 */
  .login-container .el-input__inner { height: 46px !important; line-height: 46px !important; font-size: 15px !important; }
  .login-container .code-btn { height: 46px !important; font-size: 13.5px !important; }
  .login-container .login-btn { height: 50px !important; font-size: 16px !important; }
  .login-container .form-item { margin-bottom: 14px !important; }
  .login-container .gm-form-card { padding: 30px 34px 26px !important; }
  .login-container .gm-right-brand { margin-bottom: 16px !important; }
  .login-container .gm-right-brand .mark { width: 36px !important; height: 36px !important; }
  .login-container .gm-right-brand .mark svg { width: 20px !important; height: 20px !important; }
  .login-container .gm-right-welcome { margin-bottom: 16px !important; }
  .login-container .gm-right-welcome h1 { font-size: 25px !important; }
  .login-container .gm-right-welcome p { font-size: 12.5px !important; }
  .login-container .login .login-text { margin-bottom: 14px !important; }
  .login-text-title { font-size: 25px !important; }
  .login-container .login-text-regist { font-size: 12.5px !important; }
  .login-container .rember-item { margin-bottom: 12px !important; font-size: 12px !important; }
  .login-container .gm-form-foot { margin-top: 16px !important; padding-top: 16px !important; font-size: 12px !important; }
  /* 右栏上下留白加大，避免内容居中后上下显得空 */
  .login-container .container-before { padding: 24px 32px !important; }
  .login-container .gm-back-site { margin-bottom: 10px !important; }
}
/* 超大屏再放大一档（内容仍然不足以撑满 1080 高度） */
@media (min-width:961px) and (min-height:1000px){
  .login-container .el-input__inner { height: 50px !important; line-height: 50px !important; }
  .login-container .code-btn { height: 50px !important; }
  .login-container .login-btn { height: 54px !important; font-size: 16.5px !important; }
  .login-container .form-item { margin-bottom: 16px !important; }
  .login-container .gm-form-card { padding: 34px 38px 30px !important; }
  .login-container .gm-right-welcome h1 { font-size: 28px !important; }
  .login-text-title { font-size: 28px !important; }
}
/* 矮屏（≤820 高）保持紧凑但不再压到 40px 以下 */
@media (min-width:961px) and (max-height:820px){
  .login-container .el-input__inner { height: 44px !important; line-height: 44px !important; }
  .login-container .code-btn { height: 44px !important; }
  .login-container .login-btn { height: 48px !important; }
  .login-container .form-item { margin-bottom: 12px !important; }
  .login-container .gm-form-card { padding: 26px 30px 22px !important; }
  .login-container .gm-right-welcome { margin-bottom: 14px !important; }
  .login-container .gm-right-welcome h1 { font-size: 23px !important; }
  .login-text-title { font-size: 23px !important; }
  .login-container .gm-form-foot { margin-top: 14px !important; padding-top: 14px !important; }
}

/* ============================================================
   2026-10-03 · 信任信息区（填补移除优惠码条后的高屏空白）
   仅在「视口够高」时展示；矮屏/移动端隐藏，避免内容拥挤。
   ============================================================ */
.gm-trust-panel{display:none;}
/* 够高（≥900px）且够宽（≥961px）才显示 */
@media (min-width:961px) and (min-height:900px){
  .login-container .gm-trust-panel{
    display:grid !important;
    grid-template-columns:repeat(3,1fr) !important;
    gap:10px !important;
    width:100% !important;
    max-width:430px !important;
    margin:18px auto 0 !important;
    padding:14px 16px !important;
    border-radius:12px !important;
    background:linear-gradient(135deg,rgba(20,156,244,.05),rgba(183,148,244,.03)) !important;
    border:1px solid rgba(20,156,244,.16) !important;
  }
  .login-container .gm-trust-panel .gm-tp-item{
    display:flex !important; align-items:center !important; gap:8px !important; min-width:0 !important;
  }
  .login-container .gm-trust-panel .gm-tp-ico{
    flex:none !important; width:30px !important; height:30px !important; border-radius:8px !important;
    display:grid !important; place-items:center !important;
    background:rgba(20,156,244,.1) !important; color:#149CF4 !important;
  }
  .login-container .gm-trust-panel .gm-tp-ico svg{width:16px !important; height:16px !important;}
  .login-container .gm-trust-panel .gm-tp-item b{
    display:block !important; font-size:12.5px !important; font-weight:700 !important; color:#14122B !important; line-height:1.35 !important;
  }
  .login-container .gm-trust-panel .gm-tp-item small{
    display:block !important; font-size:10.5px !important; color:#5A6478 !important; line-height:1.3 !important;
  }
  /* 超大屏再放大一档 */
  .login-container .gm-trust-panel{ padding:18px 20px !important; gap:14px !important; }
  .login-container .gm-trust-panel .gm-tp-ico{ width:36px !important; height:36px !important; }
  .login-container .gm-trust-panel .gm-tp-ico svg{ width:19px !important; height:19px !important; }
  .login-container .gm-trust-panel .gm-tp-item b{ font-size:13.5px !important; }
  .login-container .gm-trust-panel .gm-tp-item small{ font-size:11.5px !important; }
}

/* 2026-10-03 · 信任区文字挤压修正：3 列在 430px 容器内每列仅 ~128px，
   标题与副标题会各折一行显得拥挤。改为 1 列纵向列表（图标+两行文字同排），
   高度固定约 96px，信息完整不折行。 */
@media (min-width:961px) and (min-height:900px){
  .login-container .gm-trust-panel{
    grid-template-columns:1fr !important;
    gap:8px !important;
    padding:14px 16px !important;
  }
  .login-container .gm-trust-panel .gm-tp-item{ align-items:center !important; }
  .login-container .gm-trust-panel .gm-tp-item b{
    white-space:nowrap !important;
  }
  .login-container .gm-trust-panel .gm-tp-item small{
    white-space:nowrap !important;
  }
  .login-container .gm-trust-panel .gm-tp-ico{ width:28px !important; height:28px !important; }
}
