/* 每日学道（m.{root}）：移动优先的单列文章。变量一律 --c-*（CssTokenTest）。 */
.dl-wrap { max-width: 760px; }
.dy-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.dy-item { display: grid; gap: 6px; padding: 12px; border-radius: 12px; border: 1px solid var(--c-line); background: var(--c-paper-card); color: var(--c-ink); text-decoration: none; }
.dy-item:hover { border-color: var(--c-primary); }
.dy-item img { width: 100%; height: auto; border-radius: 8px; }
.dy-item b { font-family: var(--font-serif); font-size: var(--t-md); line-height: 1.5; }
.dy-meta { font-size: var(--t-xs); color: var(--c-ink-3); }
.dy-intro { font-size: var(--t-sm); color: var(--c-ink-2); line-height: 1.7; }
.dy-cover { width: 100%; height: auto; border-radius: 12px; margin: 0 0 14px; }
.dy-article .panel { margin-top: 14px; }
.dy-cal p, .dy-zi p, .dy-poem p { margin: 0 0 8px; line-height: 1.8; }
.dy-hist { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 8px; }
.dy-hist li { display: grid; grid-template-columns: 5.5em minmax(0, 1fr); gap: 8px; line-height: 1.6; }
.dy-hist b { color: var(--c-primary-deep); font-variant-numeric: tabular-nums; }
.dy-poem { text-align: center; }
.dy-poem h3 { margin: 0 0 4px; font-family: var(--font-serif); }
.dy-poem p { font-family: var(--font-serif); font-size: var(--t-md); }
.dy-poem p.muted { font-family: inherit; font-size: var(--t-sm); }
.dy-char { font-family: var(--font-serif); font-size: 2.2em; color: var(--c-primary-deep); text-decoration: none; margin-right: 6px; }
.dy-nav { display: flex; justify-content: space-between; gap: 10px; margin: 18px 0 0; font-size: var(--t-sm); }
.pager { display: flex; justify-content: center; gap: 14px; margin: 18px 0; font-size: var(--t-sm); }

/* ── 移动优先外壳（layouts/app 的 m_shell）：紧凑顶栏 + 栏目条 + 底部导航；iPad 及以上限宽居中 ── */
body.m-shell { padding-bottom: calc(60px + env(safe-area-inset-bottom)); }
.m-shell main, .m-hd-bar, .m-tabs, .m-ft { max-width: 820px; margin-left: auto; margin-right: auto; }
.m-hd { position: sticky; top: 0; z-index: 50; background: var(--c-paper-card); border-bottom: 1px solid var(--c-line); }
.m-hd-bar { display: flex; align-items: center; gap: 10px; padding: 8px 16px; }
.m-hd-brand { display: flex; align-items: center; gap: 8px; color: var(--c-ink); text-decoration: none; margin-right: auto; }
.m-hd-brand .seal { width: 30px; height: 30px; font-size: 16px; display: grid; place-items: center; border-radius: 6px; background: var(--c-primary); color: #fff; }
.m-hd-brand b { font-family: var(--font-serif); font-size: var(--t-md); }
.m-hd-home { font-size: var(--t-sm); color: var(--c-ink-3); text-decoration: none; }
.m-tabs { display: flex; gap: 4px; overflow-x: auto; padding: 0 12px 6px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.m-tabs::-webkit-scrollbar { display: none; }
.m-tabs a { flex: 0 0 auto; padding: 6px 12px; border-radius: 999px; font-size: var(--t-sm); color: var(--c-ink-2); text-decoration: none; white-space: nowrap; }
.m-tabs a.on { background: var(--c-primary); color: #fff; }
.m-ft { padding: 18px 16px 8px; font-size: var(--t-xs); color: var(--c-ink-3); line-height: 1.8; }
.m-ft a { color: inherit; margin-right: 10px; }
.m-ft .ver { opacity: .55; margin-left: 6px; }
.m-ft-links { margin-top: 6px; }
.m-dock { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); background: var(--c-paper-card); border-top: 1px solid var(--c-line); padding-bottom: env(safe-area-inset-bottom); }
.m-dock a { display: grid; justify-items: center; gap: 2px; padding: 7px 0 6px; font-size: 11px; color: var(--c-ink-2); text-decoration: none; min-height: 48px; }
.m-dock i { font-style: normal; font-size: 18px; line-height: 1; }
@media (min-width: 821px) { .m-dock { left: 50%; right: auto; width: 820px; transform: translateX(-50%); border-left: 1px solid var(--c-line); border-right: 1px solid var(--c-line); } }

.dy-plat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin: 12px 0 16px; }
.dy-plat-grid a { display: grid; gap: 4px; padding: 10px 12px; border: 1px solid var(--c-line); border-radius: 10px; background: var(--c-paper-card); color: var(--c-ink); text-decoration: none; }
.dy-plat-grid span { font-size: var(--t-xs); color: var(--c-ink-3); line-height: 1.5; }
.dy-plats { margin-top: 18px; }
.dy-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 640px) { .dy-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.dy-grid .dy-item b { font-size: var(--t-sm); }

/* 平台版式页 */
.dy-swipe { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: 4px; }
.dy-swipe img { flex: 0 0 86%; max-width: 420px; height: auto; scroll-snap-align: center; border-radius: 12px; }
.dy-swipe-douyin img { flex-basis: 70%; max-width: 360px; }
.dy-swipe-tip { text-align: center; font-size: var(--t-xs); margin: 6px 0 14px; }
.dy-plain { white-space: pre-line; line-height: 1.9; font-size: var(--t-body); margin: 0 0 12px; }
.dy-script { padding: 12px 14px; border-left: 4px solid var(--c-primary); background: var(--c-paper-card); border-radius: 6px; font-size: var(--t-md); }
.dy-tags { white-space: pre-line; color: var(--c-primary-deep); font-size: var(--t-sm); }
.dy-para { line-height: 1.9; margin: 0 0 14px; }
.dy-rich { line-height: 1.9; overflow-wrap: anywhere; }
.dy-rich img { max-width: 100%; height: auto; }
.dy-full { text-align: center; margin: 20px 0 6px; }

/* 每日学道 题记 */
.dy-motto{margin:-4px 0 10px;color:var(--c-primary);font-size:var(--t-sm);letter-spacing:.15em}

/* 版式页一键复制条 */
.dy-copy{margin:0 0 16px;padding:12px 14px;border:1px dashed var(--c-line);border-radius:10px;background:var(--c-paper-card)}
.dy-copy-hd{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font-size:var(--t-sm)}
.dy-copy-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.dy-copy-btns button{padding:6px 12px;border:1px solid var(--c-primary);border-radius:16px;background:transparent;color:var(--c-primary);font-size:var(--t-sm);cursor:pointer}
.dy-copy-btns button:active{background:var(--c-primary);color:#fff}
.dy-copy-msg{min-height:1.2em;margin:6px 0 0;font-size:var(--t-xs)}
.dy-copy-msg.ok{color:#15803d}.dy-copy-msg.err{color:#b91c1c}

/* 微信群（每日推送设置 → 微信群） */
.m-grp{display:flex;gap:14px;align-items:center;margin:20px 0 0;padding:14px;border:1px solid var(--c-line);border-radius:12px;background:var(--c-paper-card)}
.m-grp img{width:120px;height:120px;flex:none;border-radius:6px}
.m-grp p{margin:4px 0 0;color:var(--c-ink-3);font-size:var(--t-sm)}
/* 归档 */
.dy-ym{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:0;padding:0;list-style:none}
.dy-ym a{display:block;padding:12px;border:1px solid var(--c-line);border-radius:10px;background:var(--c-paper-card)}
.dy-ym span{display:block;color:var(--c-ink-3);font-size:var(--t-xs)}
.dy-year{margin:18px 0 8px;font-size:var(--t-md)}
.dy-faq dt{margin:12px 0 4px;font-weight:600}
.dy-faq dd{margin:0;color:var(--c-ink-3);line-height:1.8}

/* 今日黄历（只在 m 站每期页） */
.dy-hl .panel-hd{display:flex;align-items:center;gap:8px}
.dy-hl-tag{padding:1px 8px;border-radius:10px;background:var(--c-paper-card);border:1px solid var(--c-line);font-size:var(--t-xs)}
.dy-hl p{margin:6px 0;line-height:1.8}
.dy-yi,.dy-ji{display:inline-block;width:1.6em;height:1.6em;margin-right:8px;border-radius:50%;text-align:center;line-height:1.6em;color:#fff;font-size:var(--t-sm)}
.dy-yi{background:#2f7d4f}.dy-ji{background:var(--c-primary)}
.dy-hl-note{font-size:var(--t-xs)}

/* 今日主题 */
.dy-topic h3{margin:14px 0 4px;color:var(--c-primary);font-size:var(--t-md)}
.dy-topic h3:first-child{margin-top:0}
.dy-topic p{margin:0 0 6px;line-height:1.9}

.m-hd-logo{height:32px;width:auto;display:block}

/* 黄历分享图 */
.dy-poster{display:block;width:min(240px,60%);margin:12px auto 4px}
.dy-poster img{display:block;width:100%;height:auto;border-radius:6px;box-shadow:0 2px 10px rgba(0,0,0,.12)}
.dy-poster{text-align:center}
.dy-poster span{display:inline-block;margin-top:8px;padding:4px 16px;border-radius:14px;background:var(--c-primary);color:#fff;font-size:var(--t-sm);white-space:nowrap}

/* 视频版（AI 合成配音） */
.dy-video .panel-hd{display:flex;align-items:center;gap:8px}
.dy-video-tag{font-size:var(--t-xs)}
.dy-video video{display:block;width:min(100%,360px);height:auto;margin:0 auto;border-radius:8px;background:#000}

/* 第一张：当日老黄历（竖图居中限宽，免得把主讲挤到第二屏以下） */
.dy-hero{margin:0 0 16px}
.dy-hero .dy-poster{width:min(100%,360px)}
.dy-topic-cover{display:block;width:min(100%,300px);height:auto;margin:0 auto 12px;border-radius:6px}
