/* —— 万年历专属 —— */
.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; margin:0; }
.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); }

/* 与休/班角标叠层安全帽：多地区叠选时角标最多堆两层就裁切，避免推挤日期数字/农历文字（窄格更明显） */
.cell .rests { max-height:34px; overflow:hidden; }

@media (max-width:860px){
  .cal-bar .ym { font-size:var(--t-h2); min-width:104px; }
  .cal-grid, .cal-head { gap:4px; }
  .cell { min-height:68px; padding:6px 2px; }
  .cell .sol { font-size:16px; }
  .cell .lun, .cell .fest { font-size:10px; }
  .legend { gap:10px 14px; font-size:var(--t-xs); }
}

@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); }
}

/* 我的日历叠加：有个人事项的日格右下角小圆点（my-events.js 异步打点） */
.cell .my-ev-dot { position:absolute; right:4px; bottom:4px; width:6px; height:6px; border-radius:50%; background:var(--c-primary); }

/* ============ 今日速览片段公共样式（_today_glance.blade.php，异步注入月历下方） ============ */
.wt-glance .gz-pillar i { font-size:11px; }
.wt-countdown { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  margin-top:12px; padding:10px 14px; border-radius:var(--radius); background:linear-gradient(100deg,var(--c-primary-soft),transparent);
  border:1px solid var(--c-line); }
.wt-countdown .wt-cd-lead { font-size:var(--t-sm); color:var(--c-ink-2); }
.wt-countdown .wt-cd-lead b { color:var(--c-primary-deep); font-family:var(--font-serif); }
.wt-countdown .wt-cd-clock { font-family:var(--font-mono); font-feature-settings:"tnum"; font-size:20px; font-weight:700; color:var(--c-primary); }

.wt-yiji { display:grid; grid-template-columns:1fr 1fr; gap:8px 20px; align-items:start; }
.wt-yiji .wt-yj-col h3 { margin:0 0 6px; display:flex; align-items:center; gap:6px; font-size:var(--t-sm); }
.wt-yiji .badge { background:var(--c-yi); color:#fff; border-radius:6px; padding:1px 8px; font-size:var(--t-sm); }
.wt-yiji .badge-ji { background:var(--c-ji); }
.wt-badges { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:8px; padding-top:8px; border-top:1px dashed var(--c-line); }
.wt-badge { font-size:12px; padding:3px 10px; border-radius:var(--radius-pill); background:var(--c-paper-card,#f7f2e8); border:1px solid var(--c-line); color:var(--c-ink-2); }
.wt-badge-fest { background:var(--c-primary-soft); color:var(--c-primary-deep); border-color:transparent; font-weight:600; }
.wt-badge-jq { background:rgba(201,154,46,.12); color:var(--c-gold); border-color:transparent; font-weight:600; }

.wt-info { display:grid; grid-template-columns:repeat(2,1fr); gap:6px 16px; }
.wt-info .wt-cell { display:flex; justify-content:space-between; gap:8px; padding:5px 0; border-bottom:1px dotted var(--c-line); font-size:var(--t-sm); }
.wt-info .wt-cell span { color:var(--c-ink-3); flex:none; }
.wt-info .wt-cell b { color:var(--c-ink); text-align:right; font-family:var(--font-serif); }
.wt-pengzu { margin:10px 0 0; font-family:var(--font-serif); font-size:15px; color:var(--c-ink); line-height:1.9; }

/* 财神/喜神方位罗盘（复用 huangli.css 的 .compass；今日页高亮当前时辰财/喜方位） */
.wt-compass-wrap { display:flex; gap:16px; align-items:center; flex-wrap:wrap; margin:4px 0 12px; }
.wt-compass-legend { font-size:var(--t-sm); color:var(--c-ink-2); display:flex; flex-direction:column; gap:6px; }
.wt-compass-legend b { font-family:var(--font-serif); color:var(--c-ink); }
.wt-compass-legend .wt-dot { display:inline-block; width:10px; height:10px; border-radius:50%; vertical-align:middle; margin-right:4px; }
.wt-compass-legend .wt-dot-cai { background:var(--c-gold); }
.wt-compass-legend .wt-dot-xi { background:var(--c-primary); }
.wt-compass-legend .wt-pos-note { font-size:var(--t-xs); color:var(--c-ink-3); }
.compass .pt.wt-cai, .compass .pt.wt-xi { padding:2px 5px; border-radius:8px; font-weight:700; z-index:2; }
.compass .pt.wt-cai { background:rgba(201,154,46,.22); }
.compass .pt.wt-xi { background:rgba(192,57,43,.16); }
.compass .pt.wt-cai b { color:var(--c-gold); font-weight:800; }
.compass .pt.wt-xi b { color:var(--c-primary); font-weight:800; }

.wt-fest { padding:8px 0; border-bottom:1px dashed var(--c-line); }
.wt-fest:last-child { border-bottom:0; }
.wt-fest h4 { margin:0 0 5px; font-family:var(--font-serif); color:var(--c-primary-deep); }
.wt-fest p { margin:3px 0; font-size:var(--t-sm); color:var(--c-ink-2); line-height:1.7; }
.wt-fest p b { color:var(--c-ink); }

.wt-fortune .wt-fo-row { display:grid; grid-template-columns:40px auto; gap:2px 8px; padding:7px 0; border-bottom:1px dotted var(--c-line); align-items:center; }
.wt-fortune .wt-fo-row:last-child { border-bottom:0; }
.wt-fortune .wt-fo-lbl { font-family:var(--font-serif); font-weight:700; color:var(--c-ink-2); font-size:var(--t-sm); }
.wt-fortune .wt-fo-star { color:var(--c-luck); letter-spacing:1px; font-size:13px; }
.wt-fortune .wt-fo-tip { grid-column:1/-1; font-size:12px; color:var(--c-ink-3); line-height:1.5; }

.wt-lot .wt-lot-hd { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px; }
.wt-lot .wt-lot-lv { font-size:12px; padding:1px 9px; border-radius:var(--radius-pill); }
.wt-lot .wt-lv-good { background:rgba(46,125,50,.12); color:var(--c-yi); }
.wt-lot .wt-lv-bad { background:rgba(192,57,43,.10); color:var(--c-ji); }
.wt-lot .wt-lv-mid { background:rgba(201,154,46,.12); color:var(--c-gold); }
.wt-lot .wt-lot-poem { font-family:var(--font-serif); font-size:15px; color:var(--c-ink); line-height:1.9; margin:0 0 8px; white-space:pre-line; }

@media (max-width:640px){
  .wt-yiji { grid-template-columns:1fr; }
  .wt-info { grid-template-columns:1fr; }
  .wt-countdown .wt-cd-clock { font-size:17px; }
}

/* ============ 今日 PWA 页（today.blade.php）导航与头部 ============ */
.wt-today-page { }
.wt-nav { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.wt-nav .spacer { margin-left:auto; }
.wt-glance .wt-hero-date .week { color:var(--c-ink-2); font-size:var(--t-sm); }
.wt-nav .btn.on { color:var(--c-primary); border-color:var(--c-primary); background:var(--c-primary-soft); }
.wt-city { margin-top:8px; font-size:var(--t-sm); color:var(--c-ink-2); }
.wt-city a { color:var(--c-primary); }
.wt-city-edit { margin-left:6px; font-size:var(--t-xs); }
/* 会员所在地提醒（老黄历真太阳时工具条内） */
.ts-member-hint { font-size:var(--t-xs); color:var(--c-primary-deep); }
.ts-member-hint a { color:var(--c-primary); }
/* 万年历月历页·会员设置所在地提醒 */
.wt-loc-tip { font-size:var(--t-sm); color:var(--c-ink-2); }
.wt-loc-tip a { color:var(--c-primary); }

/* 打印标题（仅打印时出现在月历上方） */
.print-title { display:none; }

/* ============ 打印：只打印显示的月历（#printCal），不打印整页 ============ */
/* 用 display:none 收起打印链外的所有元素（比 visibility 法更干净，不留空白页）：
   ① 隐藏页面框架（页眉页脚/悬浮/提示条）；② 隐藏月历同级的其它卡片（导航条/广告/地区/每日一诗/速览）；
   ③ 隐藏侧栏、面包屑、民俗文化块。只余月历卡片 #printCal 打印。 */
@media print {
  .site-header, .site-footer, header, footer, .ai-fab, .ai-panel, .cookie-consent,
  .share-bar, .page-head, .aside, .channel-culture, #todayGlance, .ad-slot, .wt-nav,
  .wt-remind { display:none !important; }
  .grid > *:not(#printCal) { display:none !important; }
  .layout, .layout.with-aside { display:block !important; }
  .container { max-width:100% !important; padding:0 !important; margin:0 !important; }
  body { background:#fff !important; }
  #printCal { box-shadow:none !important; border:none !important; background:#fff !important; break-inside:avoid; }
  #printCal .print-title { display:block !important; text-align:center; font-family:var(--font-serif);
    font-size:18px; font-weight:700; color:#000; margin:0 0 10px; }
  #printCal .cal-grid { gap:2px !important; }
  #printCal .cell { min-height:74px !important; border:1px solid #999 !important; box-shadow:none !important; break-inside:avoid; }
  #printCal .cell:hover { transform:none !important; }
  #printCal .gold-rule, #printCal .legend { break-inside:avoid; }
  #printCal a { text-decoration:none !important; color:#000 !important; }
  @page { margin:1cm; }
}

/* ============ 今日速览片段（异步注入月历下方，_today_glance.blade.php） ============ */
.wt-glance { padding:16px; }
.wt-glance-hd { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.wt-glance-hd .spacer { margin-left:auto; }
.wt-hero-inner { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; padding-bottom:10px; border-bottom:1px dashed var(--c-line); }
.wt-hero-date { display:flex; align-items:baseline; gap:8px; }
.wt-hero-date .day { font-family:var(--font-mono); font-size:40px; font-weight:800; color:var(--c-primary); line-height:1; }
.wt-hero-date .ym { font-family:var(--font-serif); color:var(--c-ink-2); }
.wt-hero-date .nong { font-size:var(--t-sm); color:var(--c-ink-3); }
.wt-glance .hl-meta { margin-top:0; }

.wt-glance-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px 20px; margin-top:12px; }
.wt-gsub-full { grid-column:1/-1; }
.wt-gsub-t { margin:0 0 8px; font-family:var(--font-serif); font-size:var(--t-md); color:var(--c-ink); display:flex; align-items:baseline; gap:8px; }
.wt-gsub-t small { font-weight:400; }
.wt-glance .wt-yiji { margin-top:12px; }
.wt-glance .wt-fest h5 { margin:0 0 4px; font-family:var(--font-serif); color:var(--c-primary-deep); }

/* 快速选择年月 */
.cal-jump { display:inline-flex; gap:6px; }
.cal-sel { border:1px solid var(--c-line); border-radius:var(--radius-sm); background:#fff; color:var(--c-ink);
  padding:5px 8px; font-size:var(--t-sm); font-family:var(--font-sans); cursor:pointer; }
.cal-sel:hover { border-color:var(--c-primary); }

@media (max-width:760px){
  .wt-glance-grid { grid-template-columns:1fr; }
  .wt-hero-date .day { font-size:32px; }
}

/* 今日民俗节日提示（链接民俗志） */
.wt-folk{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.wt-folk-link{display:inline-block;font-size:.82rem;color:#8a1a1a;background:#fbeeee;border:1px solid #f0d5d5;border-radius:999px;padding:3px 12px;text-decoration:none}
.wt-folk-link:hover{background:#8a1a1a;color:#fff;border-color:#8a1a1a}
