/* ============================================================
   腾腾博客 · 主机商优惠时间轴  ctzpj-timeline.css  v2
   放置：子主题 /assets/ctzpj-timeline.css
   设计：继承 ctzpj-cards 卡片语言（票券缺口、绿主按钮、幽灵按钮、
        OFF 徽标、缎带），收敛配色，节点更精致，修复主题覆盖。
   ============================================================ */
.ctzpj-tl{
  --tl-ink:#0F1729;
  --tl-brand:#3DBA2F;--tl-brand-dark:#2E9922;
  --tl-deal:#FF5B2E;--tl-deal-soft:#FFF1EC;
  --tl-ok:#12A150;--tl-info:#2E90FA;--tl-gold:#B8860B;
  --tl-card:#FFFFFF;--tl-line:#E6E9F0;--tl-muted:#6B7280;--tl-soft:#F6F7FB;
  --tl-radius:16px;
  --tl-mono:"SFMono-Regular",ui-monospace,"JetBrains Mono","Roboto Mono",Menlo,Consolas,monospace;
  --tl-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  font-family:var(--tl-sans);color:var(--tl-ink);line-height:1.6;
  width:100%;margin:24px 0;padding:0;-webkit-font-smoothing:antialiased;
}
.ctzpj-tl *{box-sizing:border-box}
.ctzpj-tl h2,.ctzpj-tl h3,.ctzpj-tl p{margin:0;padding:0}
.ctzpj-tl a{text-decoration:none}

/* 清除主题给列表/项加的符号与缩进 */
.ctzpj-tl ol.ctzpj-tl-list,
.ctzpj-tl li.ctzpj-tl-item{list-style:none !important;text-indent:0 !important}
.ctzpj-tl li.ctzpj-tl-item::before,
.ctzpj-tl li.ctzpj-tl-item::marker{content:none !important;display:none !important}

/* ① 标签栏 —— 分段控件风格（加 !important 防主题按钮样式覆盖） */
.ctzpj-tl .ctzpj-tl-tabs{
  display:inline-flex !important;gap:4px;padding:5px;margin:0 0 20px !important;
  background:var(--tl-soft) !important;border:1px solid var(--tl-line);border-radius:14px;
  flex-wrap:wrap;max-width:100%;width:auto !important;vertical-align:top;
}
.ctzpj-tl .ctzpj-tl-tab{
  display:inline-flex !important;align-items:center;gap:8px;
  width:auto !important;min-width:0 !important;flex:none !important;
  font-family:var(--tl-sans);font-weight:700;font-size:.92rem;line-height:1.2 !important;
  border-radius:10px !important;padding:10px 20px !important;cursor:pointer;margin:0 !important;
  border:none !important;background:transparent !important;color:var(--tl-muted) !important;
  box-shadow:none;text-transform:none;letter-spacing:0;transition:all .18s;
}
.ctzpj-tl-tab .ctzpj-tl-tab-dot{
  width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.5;flex:none;
}
.ctzpj-tl .ctzpj-tl-tab:hover{color:var(--tl-ink) !important;transform:none}
.ctzpj-tl .ctzpj-tl-tab.is-active{
  background:var(--tl-card) !important;color:var(--tl-ink) !important;
  box-shadow:0 1px 2px rgba(15,23,41,.06),0 4px 12px rgba(15,23,41,.08) !important;
}
.ctzpj-tl .ctzpj-tl-tab.is-active .ctzpj-tl-tab-dot{background:var(--tl-brand);opacity:1}

/* ② 面板 —— 白底卡片，与 .ctzpj-card 同源 */
.ctzpj-tl-panel{
  display:none;background:var(--tl-card);border:1px solid var(--tl-line);
  border-radius:var(--tl-radius);padding:32px 34px 30px;
  box-shadow:0 1px 2px rgba(15,23,41,.04),0 8px 24px rgba(15,23,41,.06);
  animation:ctzpj-tl-fade .25s ease;
}
.ctzpj-tl-panel.is-active{display:block}
@keyframes ctzpj-tl-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* 品牌头部 */
.ctzpj-tl-head{
  display:flex;align-items:center;gap:16px;
  padding-bottom:24px;margin-bottom:26px;border-bottom:1px solid var(--tl-line);
}
.ctzpj-tl-logo{
  flex:none;width:52px;height:52px;border-radius:13px;display:grid;place-items:center;
  color:#fff;font-weight:800;font-size:1.15rem;background:var(--lc,#3DBA2F);overflow:hidden;
}
.ctzpj-tl-logo img{width:100%;height:100%;object-fit:contain;display:block}
.ctzpj-tl-logo:has(img){background:#f4f5f8}
.ctzpj-tl-name{font-size:1.25rem;font-weight:800;line-height:1.3;margin:0}
.ctzpj-tl-desc{font-size:.85rem;color:var(--tl-muted);margin-top:3px}
.ctzpj-tl .ctzpj-tl-head-badge{
  margin-left:auto !important;flex:none;align-self:flex-start;
  display:inline-block;width:auto;
  background:var(--tl-deal) !important;color:#fff !important;font-weight:800;font-size:.85rem;
  padding:6px 12px !important;border-radius:10px !important;line-height:1.1;text-align:center;
  box-shadow:0 6px 14px rgba(255,91,46,.32);white-space:nowrap;
}
.ctzpj-tl .ctzpj-tl-head-badge small{display:block !important;font-size:.58rem;font-weight:600;opacity:.85;letter-spacing:.05em;margin-top:3px;line-height:1}

/* 置顶横幅 —— 与卡片 deal 语气一致，改用中性米色，避免大面积撞色 */
.ctzpj-tl-hero{
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  background:linear-gradient(135deg,#EAF9E7,#F4FBF2);
  border:1px solid #CDEFC6;border-radius:16px;padding:22px 26px;margin-bottom:30px;
}
.ctzpj-tl-hero-label{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.72rem;font-weight:800;color:var(--tl-brand-dark);letter-spacing:.04em;
}
.ctzpj-tl-hero-label::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--tl-brand);box-shadow:0 0 0 3px rgba(61,186,47,.2)}
.ctzpj-tl-hero-title{display:block;font-size:1.24rem;font-weight:800;color:var(--tl-ink);margin:8px 0 6px;line-height:1.5}
.ctzpj-tl-hero-sub{display:block;font-size:.88rem;color:var(--tl-muted)}
.ctzpj-tl-hero-btn{
  display:inline-flex !important;align-items:center;justify-content:center;
  flex:none;width:auto !important;background:var(--tl-brand)!important;color:#fff!important;
  font-weight:800;font-size:1rem;padding:14px 28px !important;border-radius:12px !important;
  transition:all .15s;box-shadow:0 6px 16px rgba(61,186,47,.28);
  white-space:nowrap;text-decoration:none!important;
}
.ctzpj-tl-hero-btn:hover{background:var(--tl-brand-dark)!important;color:#fff!important;transform:translateY(-1px)}

/* ③ 时间轴 */
.ctzpj-tl-list{position:relative;margin:0 !important;padding:0 0 0 4px !important}
.ctzpj-tl-list::after{
  content:"";position:absolute;left:9px;top:14px;bottom:18px;width:2px;
  background:linear-gradient(180deg,var(--tl-brand),#DCEFD8 92%,transparent);z-index:0;
}
.ctzpj-tl-item{
  position:relative !important;padding:0 0 26px 34px !important;margin:0 !important;
  list-style:none !important;z-index:1;
}
.ctzpj-tl-item:last-child{padding-bottom:0 !important}

/* 圆点节点：环形，白心，与卡片同款绿 */
.ctzpj-tl-dot{
  position:absolute !important;left:3px !important;top:6px !important;
  width:14px;height:14px;border-radius:50%;
  background:#fff;border:3px solid var(--tl-brand);
  box-shadow:0 0 0 3px #fff,0 0 0 4px rgba(61,186,47,.14);z-index:2;
}
.ctzpj-tl-item:first-child .ctzpj-tl-dot{
  background:var(--tl-brand);box-shadow:0 0 0 3px #fff,0 0 0 6px rgba(61,186,47,.18);
}

/* 每条内容包一层浅卡片，层次更清楚（加 !important 防主题覆盖） */
.ctzpj-tl .ctzpj-tl-body{
  background:var(--tl-soft) !important;border:1px solid var(--tl-line) !important;border-radius:14px !important;
  padding:22px 24px !important;transition:border-color .15s,box-shadow .15s;
}
.ctzpj-tl .ctzpj-tl-item:hover .ctzpj-tl-body{border-color:#d6dbe8 !important;box-shadow:0 4px 16px rgba(15,23,41,.05) !important}

.ctzpj-tl-time{display:block;font-size:.8rem;color:var(--tl-muted);font-weight:600;margin-bottom:12px}

/* 徽标 —— 收敛为一套克制配色 */
.ctzpj-tl-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.ctzpj-tl-badge{font-size:.72rem;font-weight:700;letter-spacing:.03em;padding:4px 11px;border-radius:7px;line-height:1.5}
.ctzpj-tl-badge-code{background:#EAF3FF;color:var(--tl-info)}
.ctzpj-tl-badge-info{background:#EEF0F6;color:var(--tl-muted)}
.ctzpj-tl-badge-ok{background:#E7F7EE;color:var(--tl-ok)}
.ctzpj-tl-badge-hot{background:var(--tl-deal-soft);color:var(--tl-deal)}

.ctzpj-tl-title{font-size:1.12rem;font-weight:800;line-height:1.5;margin-bottom:10px}
.ctzpj-tl-text{font-size:.92rem;color:#374151;line-height:1.85;margin-bottom:16px}

/* 优惠码票券 —— 复用卡片缺口样式（加 !important 防主题覆盖） */
.ctzpj-tl .ctzpj-tl-coupon{
  position:relative;display:flex !important;align-items:center;gap:14px;flex-wrap:nowrap;
  background:#fafbfe !important;border:1.5px dashed #c7cfe6 !important;border-radius:14px !important;
  padding:15px 20px !important;margin:0 0 16px !important;min-height:64px;width:100% !important;
}
.ctzpj-tl-coupon::before,
.ctzpj-tl-coupon::after{
  content:"";position:absolute;top:50%;transform:translateY(-50%);
  width:14px;height:14px;border-radius:50%;background:var(--tl-soft);
}
.ctzpj-tl-coupon::before{left:-8px;border-right:1.5px dashed #c7cfe6}
.ctzpj-tl-coupon::after{right:-8px;border-left:1.5px dashed #c7cfe6}
.ctzpj-tl .ctzpj-tl-coupon-body{flex:1 1 auto;min-width:0}
.ctzpj-tl .ctzpj-tl-coupon-label{display:block !important;font-size:.7rem;color:var(--tl-muted);letter-spacing:.05em;line-height:1.4}
.ctzpj-tl .ctzpj-tl-coupon-code{display:block;font-family:var(--tl-mono);font-size:1.15rem;font-weight:700;color:var(--tl-ink);letter-spacing:.02em;word-break:break-all;line-height:1.4;margin-top:2px}
.ctzpj-tl .ctzpj-tl-copy{
  display:inline-flex !important;align-items:center;justify-content:center;
  flex:none !important;width:auto !important;min-width:0 !important;
  background:var(--tl-brand) !important;color:#fff !important;border:none !important;
  font-family:var(--tl-sans);font-weight:700;font-size:.92rem;line-height:1.2 !important;white-space:nowrap;
  padding:12px 22px !important;border-radius:11px !important;margin:0 !important;cursor:pointer;box-shadow:0 4px 12px rgba(61,186,47,.22);transition:all .15s;
}
.ctzpj-tl .ctzpj-tl-copy:hover{background:var(--tl-brand-dark) !important;transform:translateY(-1px)}
.ctzpj-tl .ctzpj-tl-copy.is-copied{background:var(--tl-ok) !important}

/* 无码票券 */
.ctzpj-tl-coupon.is-nocode{border-style:solid;border-color:var(--tl-line);background:#f6f7fb}
.ctzpj-tl-coupon.is-nocode::before,
.ctzpj-tl-coupon.is-nocode::after{border-color:var(--tl-line)}
.ctzpj-tl-coupon.is-nocode .ctzpj-tl-coupon-code{font-family:var(--tl-sans);font-size:.9rem;font-weight:700;color:#4b5563}

.ctzpj-tl-meta{font-size:.8rem;color:var(--tl-muted);margin-bottom:16px;line-height:1.6}

/* 链接组 —— 幽灵按钮风格，替换原来裸文字链接 */
.ctzpj-tl-links{display:flex;flex-wrap:wrap;gap:12px}
.ctzpj-tl-link{
  display:inline-flex !important;align-items:center;gap:6px;width:auto !important;
  font-size:.9rem;font-weight:700;color:var(--tl-ink);
  padding:12px 22px !important;border-radius:11px !important;border:1.5px solid var(--tl-line);
  background:var(--tl-card);transition:all .15s;
}
.ctzpj-tl-link:hover{border-color:var(--tl-ink);background:#fafbfe}
.ctzpj-tl-link.is-primary{background:var(--tl-brand);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(61,186,47,.22)}
.ctzpj-tl-link.is-primary:hover{background:var(--tl-brand-dark);color:#fff;transform:translateY(-1px)}

/* 响应式 */
@media(max-width:600px){
  .ctzpj-tl-panel{padding:22px 16px}
  .ctzpj-tl-tabs{display:flex;width:100%}
  .ctzpj-tl-tab{flex:1;justify-content:center;padding:10px 12px}
  .ctzpj-tl-head-badge{margin-left:0}
  .ctzpj-tl-head{flex-wrap:wrap}
  .ctzpj-tl-hero{flex-direction:column;align-items:flex-start}
  .ctzpj-tl-hero-btn{width:100%;text-align:center}
  .ctzpj-tl-coupon{flex-wrap:wrap}
  .ctzpj-tl-links{width:100%}
}

/* ④ 顶部 vpsrestock 补货监控推荐条 */
.ctzpj-tl-notice{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  background:linear-gradient(135deg,#FFF7ED,#FFFBF5);
  border:1px solid #FDE3C4;border-radius:14px;padding:14px 18px;margin-bottom:18px;
}
.ctzpj-tl-notice-ico{
  flex:none;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;
  background:var(--tl-deal);color:#fff;font-size:1.1rem;box-shadow:0 4px 12px rgba(255,91,46,.28);
}
.ctzpj-tl-notice-txt{flex:1;min-width:200px}
.ctzpj-tl-notice-title{display:block;font-size:.92rem;font-weight:800;color:var(--tl-ink);line-height:1.4}
.ctzpj-tl-notice-sub{display:block;font-size:.8rem;color:var(--tl-muted);margin-top:2px}
.ctzpj-tl-notice-btn{
  flex:none;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;
  background:#fff !important;border:1.5px solid #F0A868 !important;color:#C2410C !important;
  font-weight:800;font-size:.85rem;padding:9px 16px !important;border-radius:10px !important;
  transition:all .15s;text-decoration:none !important;
}
.ctzpj-tl-notice-btn:hover{background:#FFF3E6 !important;border-color:var(--tl-deal) !important;transform:translateY(-1px)}

/* ⑤ “更多推荐”网格 */
.ctzpj-tl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:4px}
.ctzpj-tl-gcard{
  display:flex;flex-direction:column;gap:8px;
  background:var(--tl-soft) !important;border:1px solid var(--tl-line);border-radius:13px;
  padding:16px 16px 14px;transition:border-color .15s,box-shadow .15s,transform .15s;
}
.ctzpj-tl-gcard:hover{border-color:#d6dbe8;box-shadow:0 6px 18px rgba(15,23,41,.06);transform:translateY(-2px)}
.ctzpj-tl-gcard-head{display:flex;align-items:center;gap:10px}
.ctzpj-tl-gcard-logo{
  flex:none;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;overflow:hidden;
  background:#fff;border:1px solid var(--tl-line);color:#fff;font-weight:800;font-size:.9rem;
}
.ctzpj-tl-gcard-logo img{width:100%;height:100%;object-fit:contain}
.ctzpj-tl-gcard-name{font-size:1rem;font-weight:800;line-height:1.3;color:var(--tl-ink)}
.ctzpj-tl-gcard-tag{font-size:.74rem;color:var(--tl-muted);margin-top:1px}
.ctzpj-tl-gcard-body{font-size:.82rem;color:#374151;line-height:1.6;flex:1}
.ctzpj-tl-gcard-code{
  display:inline-flex;align-items:center;gap:6px;align-self:flex-start;
  font-family:var(--tl-mono);font-size:.82rem;font-weight:700;color:var(--tl-ink);
  background:#eef4ff;border:1px dashed #b9cdf0;border-radius:7px;padding:4px 10px;
}
.ctzpj-tl-gcard-btn{
  display:inline-flex !important;align-items:center;justify-content:center;gap:5px;
  background:var(--tl-brand) !important;color:#fff !important;width:auto;
  font-weight:700;font-size:.84rem;padding:9px 14px !important;border-radius:9px !important;
  transition:all .15s;text-decoration:none !important;margin-top:2px;
}
.ctzpj-tl-gcard-btn:hover{background:var(--tl-brand-dark) !important;color:#fff !important;transform:translateY(-1px)}
.ctzpj-tl-grid-more{
  grid-column:1/-1;text-align:center;font-size:.82rem;color:var(--tl-muted);
  padding-top:6px;border-top:1px dashed var(--tl-line);margin-top:2px;
}
.ctzpj-tl-grid-more a{color:var(--tl-brand-dark);font-weight:700}
@media(max-width:600px){.ctzpj-tl-grid{grid-template-columns:1fr}}

/* ⑥ 商家版时间轴条（“更多优惠”标签用：每条 = 一个商家） */
.ctzpj-tl-vendor{display:flex;align-items:center;gap:13px;margin-bottom:14px}
.ctzpj-tl-vendor-logo{
  flex:none;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;overflow:hidden;
  background:#fff;border:1px solid var(--tl-line);color:#fff;font-weight:800;font-size:1rem;
}
.ctzpj-tl-vendor-logo img{width:100%;height:100%;object-fit:contain}
.ctzpj-tl-vendor-meta{min-width:0}
.ctzpj-tl-vendor-name{font-size:1.02rem;font-weight:800;line-height:1.3;color:var(--tl-ink)}
.ctzpj-tl-vendor-tag{font-size:.76rem;color:var(--tl-muted);margin-top:1px}

/* ⑦ 折叠：默认只显示前 N 条，其余隐藏，点“查看全部”展开 */
.ctzpj-tl-item.is-hidden{display:none !important}
.ctzpj-tl-list.is-expanded .ctzpj-tl-item.is-hidden{display:block !important}
.ctzpj-tl-toggle-wrap{margin-top:6px;padding-left:34px}
.ctzpj-tl-toggle{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--tl-sans);font-weight:700;font-size:.9rem;color:var(--tl-brand-dark);
  background:#F0F9EE !important;border:1.5px solid #CDEFC6 !important;
  padding:11px 22px !important;border-radius:11px !important;cursor:pointer;
  transition:all .15s;line-height:1.2;
}
.ctzpj-tl-toggle:hover{background:#E4F5E0 !important;border-color:var(--tl-brand) !important}
.ctzpj-tl-toggle .ctzpj-tl-toggle-ico{transition:transform .2s;font-size:.85em}
.ctzpj-tl-toggle.is-open .ctzpj-tl-toggle-ico{transform:rotate(180deg)}

/* 无障碍 */
.ctzpj-tl-tab:focus-visible,.ctzpj-tl a:focus-visible,.ctzpj-tl-copy:focus-visible,.ctzpj-tl-toggle:focus-visible{outline:3px solid var(--tl-brand);outline-offset:2px;border-radius:8px}
@media(prefers-reduced-motion:reduce){
  .ctzpj-tl-panel{animation:none}
  .ctzpj-tl-tab,.ctzpj-tl-hero-btn,.ctzpj-tl-copy,.ctzpj-tl-link,.ctzpj-tl-body{transition:none}
}