/* =========================================================
   solar.css — 二十四节气
   配合 base.css + tool.css 使用。冷（青）暖（金）对比，突出季节与日历感，
   刻意避开诗词卡的紫粉、野球卡的橙金。
   ========================================================= */

body.solar{--a1:#3ad6a4;--a2:#ffcf6b}
.solar [hidden]{display:none!important}
body.solar .grad{background:linear-gradient(96deg,var(--a1),var(--a2) 72%);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- 当前节气横幅 ---------- */
.banner{
  position:relative;display:grid;gap:8px;padding:clamp(24px,5vw,44px) clamp(20px,4vw,38px);
  border-radius:var(--radius);overflow:hidden;
  background:
    radial-gradient(120% 90% at 12% 0%,color-mix(in oklab,var(--a1) 24%,transparent),transparent 60%),
    radial-gradient(120% 90% at 90% 100%,color-mix(in oklab,var(--a2) 20%,transparent),transparent 62%),
    linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.02) 55%,rgba(255,255,255,.05));
  border:1px solid var(--glass-brd);box-shadow:var(--shadow);
}
.banner__kicker{margin:0;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--a1)}
.banner__name{margin:0;font-size:clamp(2.6rem,10vw,4.4rem);line-height:1;font-weight:700;letter-spacing:-.04em}
.banner__sub{margin:0;color:var(--ink-2);font-size:.98rem}
.banner__count{margin:14px 0 0;font-size:clamp(1.3rem,5vw,2rem);font-weight:680;letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums}
.banner__next{margin:8px 0 0;font-family:var(--font-mono);font-size:.78rem;color:var(--a2)}
.banner__today{margin:16px 0 0;font-size:.78rem;color:var(--muted)}

/* ---------- 年份步进 + 说明 ---------- */
.yearbar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:clamp(26px,4vw,36px) 0 14px}
.yearbar__label{font-size:1.02rem;font-weight:640;color:var(--ink-2)}
.yearbar .step output{min-width:82px;font-size:1.34rem}
.yearbar .step output i{font-size:.72rem}
.year__note{margin:0 0 8px;font-size:.76rem;color:var(--muted);line-height:1.7}

/* ---------- 24 节气日历列表 ---------- */
.cal{display:grid;gap:6px}
.tl{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px 14px;align-items:center;
  padding:12px 15px;border-radius:var(--radius-sm);
  background:rgba(255,255,255,.035);border:1px solid var(--line);
}
.tl__idx{font-size:.72rem;color:var(--muted)}
.tl__main{display:flex;flex-direction:column;gap:2px;min-width:0}
.tl__name{font-size:1.02rem;font-weight:660;letter-spacing:.01em}
.tl__theme{font-style:normal;font-size:.78rem;color:var(--muted);overflow-wrap:anywhere}
.tl__date{font-size:.86rem;color:var(--ink-2);white-space:nowrap}
.tl__wk{font-size:.76rem;color:var(--muted);white-space:nowrap}
.tl__badge{
  grid-column:1/-1;justify-self:start;margin-top:2px;
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;padding:.2em .55em;border-radius:6px;
  color:#04140d;background:var(--a1)
}
.tl__badge--past{color:var(--muted);background:rgba(255,255,255,.06)}
.tl--cur{border-color:color-mix(in oklab,var(--a1) 60%,transparent);background:color-mix(in oklab,var(--a1) 12%,rgba(255,255,255,.03))}
.tl--cur .tl__name{color:var(--a1)}
.tl--past{opacity:.56}
.tl--past .tl__name{color:var(--ink-2)}

/* ---------- 节气小抄 ---------- */
.solar-search{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}
.solar-search .input{min-width:0;flex:1 1 220px}
.solar-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.solar .chip{padding:8px 14px;font-size:.82rem}
.solar .chip[aria-pressed="true"]{color:#0a1410;background:linear-gradient(100deg,var(--a1),var(--a2));border-color:transparent;font-weight:620}
.termlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:16px}
.term{
  display:flex;flex-direction:column;gap:12px;padding:20px 22px;border-radius:var(--radius);
  background:linear-gradient(165deg,rgba(255,255,255,.06),rgba(255,255,255,.02) 60%,rgba(255,255,255,.045));
  border:1px solid var(--glass-brd);transition:border-color .3s var(--ease),transform .3s var(--ease)
}
.term:hover{transform:translateY(-3px);border-color:color-mix(in oklab,var(--a1) 50%,transparent)}
.term.is-fav{border-color:color-mix(in oklab,var(--a2) 55%,transparent)}
.term__head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.term__no{font-size:.72rem;color:var(--muted)}
.term__name{margin:0;font-size:1.4rem;font-weight:700;letter-spacing:-.02em}
.term__season{font-size:.72rem;padding:.24em .6em;border-radius:999px;border:1px solid var(--line-2);color:var(--ink-2)}
.term__season--春{color:#63e6b0;border-color:rgba(99,230,176,.4)}
.term__season--夏{color:var(--a1);border-color:color-mix(in oklab,var(--a1) 45%,transparent)}
.term__season--秋{color:var(--a2);border-color:color-mix(in oklab,var(--a2) 45%,transparent)}
.term__season--冬{color:#7fd0ff;border-color:rgba(127,208,255,.4)}
.term__win{margin-left:auto;font-size:.72rem;color:var(--muted)}
.term__mean{margin:0;font-size:.9rem;line-height:1.8;color:var(--ink-2)}
.term__body{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:.85rem;line-height:1.7}
.term__body dt{color:var(--a1);font-weight:620;white-space:nowrap}
.term__body dd{margin:0;color:var(--ink-2);overflow-wrap:anywhere}
.term__say{margin:0;font-size:.84rem;color:var(--ink);font-family:var(--font-kai);line-height:1.7}
.term__say cite{display:block;margin-top:2px;font-style:normal;font-size:.72rem;color:var(--muted);font-family:var(--font-sans)}
.term__fav{
  align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;
  margin-top:2px;min-height:44px;padding:8px 14px;border-radius:999px;cursor:pointer;
  font-size:.82rem;font-weight:600;color:var(--muted);background:rgba(255,255,255,.05);border:1px solid var(--line-2);
  transition:color .25s,border-color .25s,background .25s
}
.term__fav:hover{color:var(--ink);border-color:var(--a2)}
.term__fav[aria-pressed="true"]{color:#0a1410;background:linear-gradient(100deg,var(--a2),var(--a1));border-color:transparent}
.empty{margin:24px 0 0;font-size:.9rem;color:var(--muted)}

/* ---------- 怎么知道的 ---------- */
.guide{display:grid;gap:12px}
.guide__item{padding:18px 20px;border-radius:var(--radius-sm);background:rgba(255,255,255,.04);border:1px solid var(--line)}
.guide__h{display:flex;align-items:baseline;gap:10px;margin:0 0 8px;font-size:1.02rem;font-weight:650}
.guide__no{font-size:.72rem;color:var(--a2)}
.guide__item ul{display:grid;gap:6px;margin:0}
.guide__item li{position:relative;padding-left:16px;font-size:.9rem;line-height:1.75;color:var(--ink-2)}
.guide__item li::before{content:"";position:absolute;left:2px;top:.72em;width:5px;height:5px;border-radius:50%;background:var(--a1)}

/* ---------- 图表 ---------- */
.gapwrap{margin-top:clamp(24px,4vw,36px)}
.gapwrap__title{font-size:.96rem;font-weight:640;color:var(--ink-2);margin:0 0 6px}
.gapwrap__legend{margin:8px 0 0;font-family:var(--font-mono);font-size:.72rem;color:var(--muted)}

/* ---------- 窄屏 ---------- */
@media (max-width:560px){
  .tl{grid-template-columns:auto minmax(0,1fr) auto}
  .tl__wk{display:none}
  .termlist{grid-template-columns:1fr}
}
