/* —— 万年历专属 —— */
.cal-bar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.cal-bar .ym { font-family:var(--font-serif); font-weight:900; font-size:var(--t-h1); color:var(--c-primary); min-width:128px; text-align:center; }
.cal-bar .nong { font-size:var(--t-sm); color:var(--c-ink-2); }
.cal-bar .nong b { color:var(--c-primary-deep); font-family:var(--font-serif); }
.cal-bar .spacer { margin-left:auto; }

.cal-head { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; margin-bottom:6px; }
.cal-head span { text-align:center; font-size:var(--t-sm); color:var(--c-ink-2); font-family:var(--font-serif); font-weight:700; padding:4px 0; }
.cal-head span.sun { color:var(--c-primary); }

.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.cell { position:relative; display:flex; flex-direction:column; align-items:center; gap:2px; min-height:80px; padding:8px 2px 6px; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius-sm); transition:transform .15s, box-shadow .15s, border-color .15s; overflow:hidden; }
.cell:hover { transform:translateY(-2px); box-shadow:var(--shadow); border-color:var(--c-gold-light); z-index:2; }
.cell .sol { font-family:var(--font-mono); font-feature-settings:"tnum"; font-size:18px; font-weight:600; color:var(--c-ink); line-height:1; }
.cell .lun { font-size:11px; color:var(--c-ink-3); line-height:1.2; }
.cell .lun.jq { color:var(--c-gold); font-family:var(--font-serif); font-weight:700; }
.cell .lun.month { color:var(--c-primary-deep); font-family:var(--font-serif); font-weight:700; }
.cell .fest { font-size:11px; color:var(--c-primary); font-weight:500; line-height:1.2; }
.cell .yj { font-size:10px; padding:1px 6px; border-radius:var(--radius-pill); margin-top:auto; }
.cell .yj.y { color:var(--c-yi); background:rgba(46,125,50,.10); }
.cell .yj.j { color:var(--c-ji); background:rgba(192,57,43,.08); }
.cell .luck { position:absolute; top:6px; right:6px; width:7px; height:7px; border-radius:50%; background:var(--c-luck); box-shadow:0 0 0 2px rgba(201,154,46,.22); }
.cell.dim { background:transparent; border-style:dashed; opacity:.7; }
.cell.dim .sol { color:var(--c-ink-3); }
.cell.sun .sol { color:var(--c-primary); }
.cell.today { border:2px solid var(--c-primary); background:var(--c-primary-soft); box-shadow:0 0 0 2px rgba(192,57,43,.12); }
.cell.today .sol { color:var(--c-primary); }
.cell.today::after { content:"今"; position:absolute; top:5px; left:5px; font-size:10px; color:#fff; background:var(--c-primary); border-radius:4px; padding:1px 4px; line-height:1.2; }
/* 放假「休」/ 调休补班「班」角标（JS 按所选地区注入，可多地区叠加） */
.cell .rests { position:absolute; top:4px; right:4px; z-index:3; display:flex; flex-direction:column; gap:2px; align-items:flex-end; }
.cell .rest { font-size:10px; line-height:1.2; padding:1px 4px; border-radius:4px; color:#fff; font-family:var(--font-serif); white-space:nowrap; }
.cell .rest.off { background:var(--c-primary); }   /* 休 = 法定放假，红 */
.cell .rest.work { background:var(--c-ink-2); }     /* 班 = 调休补班，墨灰 */
.cell:has(.rest) .luck { top:auto; bottom:6px; right:6px; }   /* 与休/班角标错位，吉日点移至右下 */
/* 节假日地区多选 chips */
.region-chips { display:flex; flex-wrap:wrap; gap:8px; }
.rchip { border:1px solid var(--c-line); background:#fff; color:var(--c-ink-2); padding:6px 14px; border-radius:var(--radius-pill); font-size:var(--t-sm); transition:.16s; }
.rchip:hover { border-color:var(--c-primary); color:var(--c-primary); }
.rchip.on { background:var(--c-primary); color:#fff; border-color:var(--c-primary); }
/* 高速免费角标（绿）——置于格底，与右上「休」并存不重叠 */
.cell .free { margin-top:auto; font-size:9px; line-height:1.4; padding:0 6px; border-radius:var(--radius-pill); color:var(--c-yi); background:rgba(46,125,50,.14); border:1px solid rgba(46,125,50,.28); white-space:nowrap; }

.legend { display:flex; flex-wrap:wrap; gap:14px 20px; font-size:var(--t-sm); color:var(--c-ink-2); }
.legend i { display:inline-flex; align-items:center; gap:6px; }
.legend .d { width:9px; height:9px; border-radius:50%; background:var(--c-luck); box-shadow:0 0 0 2px rgba(201,154,46,.22); }
.legend .red { color:var(--c-primary); font-weight:500; }
.legend .gold { color:var(--c-gold); font-family:var(--font-serif); font-weight:700; }

.jq-list a { display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px dashed var(--c-line); font-size:var(--t-sm); }
.jq-list a:last-child { border-bottom:0; }
.jq-list a:hover { color:var(--c-primary); }
.jq-list .dt { font-family:var(--font-mono); font-size:var(--t-sm); color:var(--c-primary-deep); width:46px; flex:none; }
.jq-list .nm { font-family:var(--font-serif); }
.jq-list .tg { margin-left:auto; font-size:10px; padding:1px 7px; border-radius:var(--radius-pill); }
.jq-list .tg.jq { color:var(--c-gold); background:rgba(201,154,46,.12); }
.jq-list .tg.fe { color:var(--c-primary); background:var(--c-primary-soft); }

@media (max-width:560px){
  .cal-grid, .cal-head { gap:3px; }
  .cell { min-height:60px; padding:5px 1px; gap:1px; }
  .cell .sol { font-size:15px; }
  .cell .lun, .cell .fest { font-size:9px; }
  .cell .yj { font-size:9px; padding:0 4px; }
  .cell .luck { width:6px; height:6px; top:3px; right:3px; }
  .cell.today::after { font-size:8px; top:2px; left:2px; padding:0 3px; }
  .cell .rests { top:3px; right:3px; gap:1px; }
  .cell .rest { font-size:8px; padding:0 3px; }
  .cell .free { font-size:8px; padding:0 4px; letter-spacing:-.3px; }
  .cal-head span { font-size:var(--t-xs); }
}
