/* 文章 / 内页 */
.content-body {
    background: var(--wnl-theme-surface);
    margin-top: 30px;
}

.content-body .today-calendar-split {
    margin-top: 0;
}

.content-h1,
.content-h2 {
    color: var(--wnl-theme-accent);
    border-bottom: 1px solid var(--wnl-theme-border);
    padding-bottom: 15px;
    margin: 0 0 20px 0;
}

.content-h1--center,
.content-h2--center {
    text-align: center;
}

.content-body .content-h1 {
    font-size: clamp(1.375rem, 4vw, 2rem);
    font-weight: 700;
    line-height: 1.3;
}

.content-h2--sm {
    padding-bottom: 10px;
}

.entry-content {
    line-height: 1.8;
    color: var(--wnl-entry-body-fg);
}

/* 择吉：今日是否为黄道吉日页（zejiri_jtshdjrm）——黄历信息卡片排版 */
.huangli-panel {
    margin-top: 1.35rem;
    padding: 1.15rem 1.2rem 1.25rem;
    border-radius: 14px;
    border: 1px solid var(--wnl-border-warm, var(--wnl-theme-border));
    background: var(--wnl-bg-parchment, var(--wnl-theme-surface));
    box-shadow: 0 2px 14px rgba(0, 0, 0, 0.045);
}

.entry-content > .huangli-panel:first-of-type {
    margin-top: 1rem;
}

.huangli-panel__heading {
    margin: 0 0 0.85rem;
    padding: 0 0 0.65rem;
    font-size: clamp(1.05rem, 0.95rem + 0.6vw, 1.2rem);
    font-weight: 700;
    color: var(--wnl-theme-accent);
    border-bottom: 1px solid var(--wnl-rule-warm-pale, var(--wnl-theme-border));
    letter-spacing: 0.02em;
}

.huangli-panel .huangli-panel__heading {
    border-bottom-color: var(--wnl-rule-warm-pale, var(--wnl-theme-border));
}

.huangli-panel__lede {
    margin: -0.35rem 0 1rem;
    font-size: 0.88rem;
    line-height: 1.55;
    color: var(--wnl-text-muted);
}

/* —— 日期明细 —— */
.huangli-today__facts {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem 1.25rem;
}

.huangli-today__fact {
    display: grid;
    grid-template-columns: minmax(3rem, 4.25rem) minmax(0, 1fr);
    gap: 0.35rem 0.65rem;
    align-items: baseline;
    padding: 0.4rem 0;
}

.huangli-today__fact--span {
    grid-column: 1 / -1;
}

.huangli-today__dt {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--wnl-text-muted);
    letter-spacing: 0.04em;
}

.huangli-today__dd {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.5;
    color: var(--wnl-entry-body-fg);
    word-break: break-word;
}

.huangli-today__cta {
    margin: 1rem 0 0;
    padding-top: 0.85rem;
    border-top: 1px solid var(--wnl-rule-warm-pale, var(--wnl-theme-border));
}

.huangli-today__link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.92rem;
    font-weight: 600;
    text-decoration: none;
    color: var(--wnl-home-masonry-a, var(--wnl-theme-accent));
}

.huangli-today__link:hover {
    text-decoration: underline;
    color: var(--wnl-home-masonry-a-hover, var(--wnl-theme-accent));
}

/* —— 宜忌：黄道吉日问答页，与首页左侧 today-summary 同款横排条文 —— */
.huangli-yiji .today-summary__yi-ji {
    margin-top: 0;
    padding-top: 0;
    gap: 12px;
}

.huangli-yiji .today-summary__col {
    align-items: center;
    padding: 13px 14px 13px 16px;
    border-radius: 12px;
}

.huangli-yiji .today-summary__col--yi {
    border-left-width: 5px;
    border-left-style: solid;
    border-left-color: var(--wnl-semantic-lucky-deep);
}

.huangli-yiji .today-summary__col--ji {
    border-left-width: 5px;
    border-left-style: solid;
    border-left-color: var(--wnl-semantic-danger-deep);
}

.huangli-yiji .today-summary__tag {
    margin-top: 0;
    min-width: 1.65em;
    height: 1.85em;
    padding: 0 8px;
    border-radius: 5px;
    font-size: 13px;
}

.huangli-yiji .today-summary__col-txt {
    font-size: 15px;
    line-height: 1.65;
}

/* —— 神煞栅格 —— */
.huangli-meta__grid {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr));
    gap: 0.65rem;
}

.huangli-meta__cell {
    margin: 0;
    padding: 0.65rem 0.75rem 0.7rem;
    border-radius: 10px;
    border: 1px solid var(--wnl-hairline-border, var(--wnl-theme-border));
    background: color-mix(in srgb, var(--wnl-theme-surface) 92%, var(--wnl-theme-accent));
}

.huangli-meta__cell--wide {
    grid-column: 1 / -1;
}

@media (min-width: 560px) {
    .huangli-meta__cell--wide {
        grid-column: span 2;
    }
}

.huangli-meta__dt {
    margin: 0 0 0.35rem;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--wnl-text-muted);
    text-transform: none;
}

.huangli-meta__dd {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--wnl-entry-body-fg);
    word-break: break-word;
}

@media (max-width: 560px) {
    .huangli-today__facts {
        grid-template-columns: 1fr;
    }

    .huangli-meta__cell--wide {
        grid-column: 1 / -1;
    }

    .huangli-panel {
        padding: 1rem 0.95rem 1.1rem;
    }
}

html[data-theme="dark"] .huangli-panel {
    box-shadow: 0 2px 18px rgba(0, 0, 0, 0.28);
}

html[data-theme="dark"] .huangli-meta__cell {
    background: rgba(0, 0, 0, 0.15);
}

/* 网站导航页（site_navigation 模板） */
.wnl-site-nav-page .wnl-site-nav-intro {
    margin-bottom: 1.5rem;
}

.wnl-site-nav-section {
    margin-bottom: 2rem;
}

.wnl-site-nav-section:last-child {
    margin-bottom: 0;
}

.wnl-site-nav-card {
    padding: 16px 18px 18px;
    background: var(--wnl-bg-parchment, var(--wnl-theme-surface));
    border: 1px solid var(--wnl-border-warm, var(--wnl-theme-border));
    border-radius: 12px;
    box-shadow: 0 1px 10px rgba(0, 0, 0, 0.04);
}

html[data-theme="dark"] .wnl-site-nav-card {
    box-shadow: 0 1px 12px rgba(0, 0, 0, 0.25);
}

.wnl-site-nav-tree {
    list-style: none;
    margin: 0;
    padding: 0;
}

.wnl-site-nav-tree__branch {
    margin: 0 0 10px;
    padding-bottom: 10px;
    border-bottom: 1px dashed var(--wnl-theme-border);
}

.wnl-site-nav-tree__branch:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.wnl-site-nav-tree__link {
    font-weight: 600;
    color: var(--wnl-theme-link);
    text-decoration: none;
}

.wnl-site-nav-tree__link:hover {
    text-decoration: underline;
}

.wnl-site-nav-tree__sub {
    list-style: none;
    margin: 8px 0 0;
    padding: 0 0 0 1.1rem;
    border-left: 2px solid var(--wnl-theme-border);
}

.wnl-site-nav-tree__sub li {
    margin: 6px 0;
}

.wnl-site-nav-tree__sublink {
    color: var(--wnl-theme-link);
    text-decoration: none;
    font-size: 0.95em;
}

.wnl-site-nav-tree__sublink:hover {
    text-decoration: underline;
}

.wnl-site-nav-empty {
    color: var(--wnl-text-muted, #888);
    font-size: 0.95rem;
}

.wnl-site-nav-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
    gap: 10px 14px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.wnl-site-nav-grid__link {
    display: block;
    padding: 8px 10px;
    border-radius: 8px;
    background: var(--wnl-theme-surface);
    border: 1px solid var(--wnl-theme-border);
    color: var(--wnl-theme-link);
    text-align: center;
    text-decoration: none;
    font-size: 0.95rem;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.wnl-site-nav-grid__link:hover {
    background: var(--wnl-tone-low, rgba(0, 0, 0, 0.04));
    border-color: var(--wnl-theme-accent);
    text-decoration: none;
}

.wnl-site-nav-cat-group {
    margin: 0 0 1.25rem;
    border-bottom: 1px dashed var(--wnl-theme-border);
    padding-bottom: 1em;
}

.wnl-site-nav-cat-group:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.wnl-site-nav-cat-group__title {
    margin: 0 0 0.65rem;
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.35;
}

.wnl-site-nav-cat-group__parent {
    color: var(--wnl-theme-link);
    text-decoration: none;
}

.wnl-site-nav-cat-group__parent:hover {
    text-decoration: underline;
}

.wnl-site-nav-grid--cat-group {
    margin-top: 0;
}

/* 单篇文章页（article 模板） */
.article-page {
    margin-top: 8px;
}

.article-page .article-card {
    position: relative;
    margin: 0 auto;
    padding: 22px 20px 28px 18px;
    background: var(--wnl-bg-parchment);
    border: 1px solid var(--wnl-border-warm);
    border-radius: 12px;
    box-shadow: 0 2px 14px var(--wnl-article-card-shadow);
}

.article-card__pegs {
    display: flex;
    justify-content: center;
    gap: 14px;
    margin: -6px 0 14px;
    padding: 0;
}

.article-card__pegs::before,
.article-card__pegs::after {
    content: "";
    display: block;
    width: 9px;
    height: 10px;
    background: linear-gradient(180deg, var(--wnl-pegs-top) 0%, var(--wnl-pegs-bot) 100%);
    border-radius: 3px 3px 1px 1px;
    box-shadow: 0 1px 0 var(--wnl-col-inset-highlight) inset;
}

.article-card__header {
    margin-bottom: 0;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--wnl-rule-hair);
}

.article-card__title {
    margin: 0 0 12px;
    padding: 0;
    font-size: clamp(1.35rem, 3.2vw, 1.75rem);
    font-weight: 700;
    line-height: 1.35;
    color: var(--wnl-crumb-title-fg);
    border: none;
}

.article-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 2px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--wnl-text-muted);
}

.article-meta__sep {
    margin: 0 0.35em;
    color: var(--wnl-text-sep-soft);
    font-weight: 400;
}

.article-meta__item {
    color: var(--wnl-text-brown);
}

.article-meta__link {
    color: var(--wnl-theme-link);
    font-weight: 600;
    text-decoration: none;
}

.article-meta__link:hover {
    color: var(--wnl-theme-accent);
    text-decoration: underline;
}

.article-cover {
    margin: 18px 0 0;
    padding: 0;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--wnl-rule-hair-2);
    background: var(--wnl-tone-mid);
}

.article-cover__img {
    display: block;
    width: 100%;
    height: auto;
    vertical-align: middle;
}

.article-excerpt {
    margin: 18px 0 0;
    padding: 12px 14px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--wnl-yi-ji-body);
    background: linear-gradient(180deg, var(--wnl-breadcrumb-from) 0%, var(--wnl-tone-mid) 100%);
    border: 1px solid var(--wnl-border-warm);
    border-left: 4px solid var(--wnl-crumb-title-border);
    border-radius: 0 8px 8px 0;
}

.article-page .article-body {
    margin-top: 22px;
    font-size: 16px;
    line-height: 1.85;
    color: var(--wnl-yi-ji-body);
}

.article-page .article-body > *:first-child {
    margin-top: 0;
}

.article-page .article-body p {
    margin: 0 0 1em;
}

.article-page .article-body h2,
.article-page .article-body h3,
.article-page .article-body h4 {
    margin: 1.35em 0 0.55em;
    color: var(--wnl-theme-accent);
    font-weight: 700;
}

.article-page .article-body h2 { font-size: 1.25rem; }
.article-page .article-body h3 { font-size: 1.1rem; }

.article-page .article-body img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 1px 4px var(--wnl-rule-argb0_0_0-060);
}

.article-page .article-body blockquote {
    margin: 1em 0;
    padding: 10px 14px 10px 16px;
    border-left: 4px solid var(--wnl-crumb-title-border);
    background: var(--wnl-tone-peach);
    color: var(--wnl-yi-ji-body);
}

.article-page .article-body pre,
.article-page .article-body code {
    font-family: ui-monospace, Menlo, Consolas, monospace;
    font-size: 0.9em;
}

.article-page .article-body pre {
    padding: 12px 14px;
    overflow-x: auto;
    background: var(--wnl-theme-surface-muted);
    border: 1px solid var(--wnl-border-warm);
    border-radius: 8px;
}

.article-page .article-body ul,
.article-page .article-body ol {
    margin: 0 0 1em;
    padding-left: 1.4em;
}

.article-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px 12px;
    margin-top: 28px;
    padding-top: 18px;
    border-top: 1px solid var(--wnl-rule-hair);
}

.article-tags__label {
    flex: 0 0 auto;
    margin: 0;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: var(--wnl-theme-accent);
    background: var(--wnl-tone-low);
    border: 1px solid var(--wnl-crumb-pill-border);
    border-radius: 4px;
}

.article-tags__list {
    flex: 1 1 0;
    min-width: 0;
    font-size: 14px;
    line-height: 1.6;
}

.article-tags__list a {
    display: inline-block;
    margin: 0 6px 6px 0;
    padding: 4px 10px 5px;
    color: var(--wnl-yi-ji-body);
    text-decoration: none;
    background: var(--wnl-theme-surface);
    border: 1px solid var(--wnl-border-warm);
    border-radius: 999px;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
}

.article-tags__list a:hover {
    color: var(--wnl-theme-accent);
    background: var(--wnl-crumb-pill-hover);
    border-color: var(--wnl-theme-accent);
    text-decoration: none;
}

@media (max-width: 640px) {
    .article-page .article-card {
        margin-left: -4px;
        margin-right: -4px;
        padding: 18px 14px 22px 12px;
    }

    .article-card__title {
        font-size: 1.28rem;
    }

    .article-meta {
        font-size: 12.5px;
    }
}

/* 分类页：文章列表 + 分页（与 wnl 米黄/金棕同系） */
.category-post-section {
    margin-top: 28px;
    padding: 20px 18px 18px 16px;
    background: var(--wnl-bg-parchment);
    border: 1px solid var(--wnl-border-warm);
    border-radius: 12px;
    box-shadow: 0 2px 10px var(--wnl-card-shadow);
}

.category-post-section__count {
    margin: 0 0 16px;
    font-size: 14px;
    color: var(--wnl-text-brown);
}

.category-post-section__count strong {
    color: var(--wnl-theme-accent);
    font-weight: 700;
}

.category-post-list {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--wnl-rule-hair);
}

.category-post-list__item {
    margin: 0;
    border-bottom: 1px solid var(--wnl-rule-hair-2);
}

.category-post-list__row {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px 16px;
    padding: 5px;
    text-decoration: none;
    color: inherit;
    transition: background 0.12s ease;
    padding-left: 6px;
    padding-right: 6px;
}

.category-post-list__row:hover {
    background: var(--wnl-list-row-hover);
    text-decoration: none;
}

.category-post-list__main {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.category-post-list__title {
    display: block;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--wnl-list-title-fg);
}

.category-post-list__row:hover .category-post-list__title {
    color: var(--wnl-list-title-hover-fg);
    text-decoration: underline;
    text-decoration-color: var(--wnl-rule-argb160_90_30-450);
}

.category-post-list__excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.5;
    color: var(--wnl-list-muted);
}

.category-post-list__side {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    min-width: 5.5rem;
    text-align: right;
}

.category-post-list__time {
    font-size: 12px;
    color: var(--wnl-list-meta);
    white-space: nowrap;
}

.category-post-list__views {
    font-size: 11px;
    color: var(--wnl-text-sep-soft);
    white-space: nowrap;
}

.category-post-list__empty {
    margin: 8px 0 0;
    padding: 20px 12px;
    text-align: center;
    font-size: 14px;
    color: var(--wnl-list-meta);
    background: var(--wnl-fest-tag-bg);
    border: 1px dashed var(--wnl-border-warm);
    border-radius: 10px;
}

.category-pager {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid var(--wnl-rule-hair);
}

.category-pager__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px 14px;
}

.category-pager__inner a {
    text-decoration: none;
}

.category-pager__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    min-width: 4.5rem;
    padding: 8px 16px;
    font-size: 14px;
    font-weight: 600;
    color: var(--wnl-theme-accent);
    background: linear-gradient(180deg, var(--wnl-bg-parchment) 0%, var(--wnl-tone-low) 100%);
    border: 1px solid var(--wnl-cal-nav-border);
    border-radius: 10px;
    box-shadow: 0 1px 0 var(--wnl-inset-chip) inset, 0 1px 2px var(--wnl-rule-argb80_40_0-060);
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

a:hover .category-pager__btn {
    color: var(--wnl-cal-nav-hover-fg);
    background: var(--wnl-cal-nav-hover-bg);
    border-color: var(--wnl-theme-accent);
}

a[href="javascript:;"] .category-pager__btn,
a[href="javascript:;"] {
    pointer-events: none;
    cursor: default;
    opacity: 0.45;
    box-shadow: none;
}

.category-pager__status {
    font-size: 13px;
    font-weight: 600;
    color: var(--wnl-text-brown);
    padding: 0 4px;
}

/* 万年历日页：两大信息区（与首页月历/节日时间轴同系谱） */
.wnl-day-detail {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-top: 8px;
    line-height: 1.8;
    color: var(--wnl-entry-body-fg);
}

.wnl-day-summary__facts {
    margin-top: 14px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.wnl-day-summary__fact {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 10px 12px;
    border: 1px solid var(--wnl-cell-border);
    border-radius: 8px;
    background: var(--wnl-theme-surface);
}

.wnl-day-summary__fact-k {
    font-size: 12px;
    border-bottom: 1px dotted var(--wnl-rule-hair);
    padding-bottom: 4px;
    color: var(--wnl-text-muted);
}

.wnl-day-summary__fact-v {
    font-size: 14px;
    line-height: 1.7;
    color: var(--wnl-yi-ji-body);
    overflow-wrap: anywhere;
}

.wnl-day-summary__fact--yi {
    border-color: var(--wnl-yi-border);
    background: var(--wnl-yi-bg);
}

.wnl-day-summary__fact--ji {
    border-color: var(--wnl-ji-border);
    background: var(--wnl-ji-bg);
}

.wnl-block-card {
    position: relative;
    background: var(--wnl-bg-parchment);
    border: 1px solid var(--wnl-border-warm);
    border-radius: 12px;
    padding: 18px 16px 20px;
    box-shadow: 0 2px 12px var(--wnl-card-shadow);
}

.wnl-block-card__pegs {
    display: flex;
    justify-content: center;
    gap: 14px;
    margin: -4px 0 12px;
    padding: 0;
}

.wnl-block-card__pegs::before,
.wnl-block-card__pegs::after {
    content: "";
    display: block;
    width: 9px;
    height: 10px;
    background: linear-gradient(180deg, var(--wnl-pegs-top) 0%, var(--wnl-pegs-bot) 100%);
    border-radius: 3px 3px 1px 1px;
    box-shadow: 0 1px 0 var(--wnl-col-inset-highlight) inset;
}

.wnl-block-card__title {
    margin: 0 0 16px;
    text-align: center;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--wnl-text-lunar-line);
    border-bottom: none;
    padding-bottom: 0;
}

.wnl-block-card__body {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.wnl-block-card .hour-grid {
    margin: 0;
}

.wnl-block-card .hour-card {
    border-radius: 10px;
    border: 1px solid var(--wnl-cell-border);
    box-shadow: 0 1px 0 var(--wnl-rule-argb255_255_255-500) inset;
}

html[data-theme="dark"] .wnl-block-card .hour-card {
    box-shadow: 0 1px 0 var(--wnl-rule-argb255_255_255-040) inset;
}

.wnl-block-card .hour-card--lucky {
    border-color: var(--wnl-hour-lucky-border);
}

.wnl-block-card .hour-card--unlucky {
    border-color: var(--wnl-hour-unlucky-border);
}

/* 当天浏览时：与系统时钟一致的当前时辰卡片 */
.wnl-block-card .hour-card--current {
    outline: 2px solid var(--wnl-theme-accent);
    outline-offset: 2px;
    position: relative;
    z-index: 1;
}

.wnl-block-card .hour-card__title {
    color: var(--wnl-text-lunar-line);
    border-bottom: 1px solid var(--wnl-cell-border);
}

/* 黄历宜忌与吉凶 */
.text-lucky { color: green; }
.text-unlucky { color: red; }

/* 错误页 */
.error-block {
    text-align: center;
    padding: 100px 0;
}

.error-code {
    font-size: clamp(72px, 14vw, 96px);
    font-weight: 700;
    line-height: 1;
    color: var(--wnl-theme-accent);
    margin: 0 0 6px;
    letter-spacing: -0.02em;
    text-shadow: 0 1px 0 var(--wnl-rule-argb255_255_255-500);
}

.error-msg {
    font-size: 18px;
    color: var(--wnl-text-muted);
    margin-top: 10px;
    margin-bottom: 0;
    max-width: 28em;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.65;
}

.error-detail {
    margin-top: 20px;
    color: var(--wnl-text-hint);
    font-size: 14px;
}

/* 搜索 / 标签 */
.list-header {
    margin-bottom: 30px;
}

.list-title {
    font-size: 24px;
    color: var(--wnl-theme-accent);
    margin: 0;
}

.list-title .kw-hit {
    color: var(--wnl-theme-emphasis);
}

.list-title .tag-name {
    color: var(--wnl-theme-accent);
}

.list-container {
    display: grid;
    gap: 20px;
}

.search-panel {
    padding: 15px;
    border: 1px solid var(--wnl-theme-border);
}

.search-panel p,
.search-hint {
    color: var(--wnl-text-muted);
}

.tag-item {
    padding: 15px;
    border-bottom: 1px dashed var(--wnl-theme-border);
}

.tag-item h3 a {
    font-size: 18px;
}

.tag-item .tag-lead {
    color: var(--wnl-text-muted-3);
    margin-top: 10px;
}

/* 首页今日概览、万年历等 */
.today-head-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.today-title {
    font-size: 20px;
    color: var(--wnl-theme-accent);
    margin: 0;
}

.today-summary .today-title {
    font-size: clamp(1.05rem, 2.2vw, 1.2rem);
    line-height: 1.4;
    font-weight: 700;
    color: var(--wnl-theme-accent);
}

.today-calendar-split__calendar .wnl-month-calendar-nav--day .wnl-month-calendar-nav__month.calendar-nav--wnl-block.wnl-month-calendar-nav__month--with-month-jumps {
    grid-template-columns: auto auto minmax(0, auto) auto auto;
    column-gap: 4px;
}

/* 日详情月历头：在 wnl-month-calendar-nav 内提供左右翻日 + 放大日期 */
.today-calendar-split__calendar .wnl-month-calendar-nav--day .wnl-month-calendar-nav__month.calendar-nav--wnl-block {
    margin-bottom: 10px;
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    grid-template-columns: auto minmax(0, auto) auto;
    column-gap: 4px;
}

.today-calendar-split__calendar .wnl-month-calendar-nav--day .wnl-month-calendar-nav__flip {
    min-height: 52px;
    min-width: 0;
    padding: 6px 8px;
    font-size: 15px;
    border-color: transparent;
    background: transparent;
    box-shadow: none;
}

.today-calendar-split__calendar .wnl-month-calendar-nav--day .wnl-month-calendar-nav__title {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 0 1em;
}

.today-calendar-split__calendar .wnl-month-calendar-nav__title-day {
    display: block;
    font-size: clamp(56px, 10.5vw, 96px);
    line-height: 0.92;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--wnl-theme-emphasis);
}

.today-calendar-split__calendar .wnl-month-calendar-nav__title-lunar {
    display: block;
    font-size: clamp(20px, 3.8vw, 42px);
    line-height: 1.15;
    color: var(--wnl-theme-emphasis);
}

.today-calendar-split__calendar .wnl-month-calendar-nav__title-ganzhi {
    display: block;
    font-size: clamp(16px, 2.8vw, 30px);
    line-height: 1.2;
    color: var(--wnl-theme-emphasis);
}

.today-calendar-split__calendar .wnl-month-calendar-nav--day .wnl-month-calendar-nav__month-jump {
    min-height: 44px;
    min-width: max-content;
    padding: 4px 8px;
    font-size: 12px;
    border-radius: 8px;
}

.today-calendar-split__calendar .wnl-month-calendar-nav--day .wnl-month-calendar-nav__flip-txt {
    display: none;
}

.today-calendar-split__calendar .wnl-month-calendar-nav--day .wnl-month-calendar-nav__chev {
    width: 56px;
    height: 56px;
    display: inline-block;
    font-size: 0;
    color: transparent;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.today-calendar-split__calendar .wnl-month-calendar-nav--day .wnl-month-calendar-nav__flip--prev .wnl-month-calendar-nav__chev {
    background-image: url("../images/icons/papercut-arrow-left.svg");
}

.today-calendar-split__calendar .wnl-month-calendar-nav--day .wnl-month-calendar-nav__flip--next .wnl-month-calendar-nav__chev {
    background-image: url("../images/icons/papercut-arrow-right.svg");
}

.today-calendar-split__calendar .wnl-month-calendar-nav--day .wnl-month-calendar-nav__flip:hover,
.today-calendar-split__calendar .wnl-month-calendar-nav--day .wnl-month-calendar-nav__flip:active {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
}

/* 万年历 / 首页：年、月翻页（主题色、触控友好） */
.calendar-nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    column-gap: 10px;
    row-gap: 8px;
    width: 100%;
    max-width: 520px;
}

.cal-nav-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px 6px;
    min-height: 44px;
    padding: 10px 14px;
    background: linear-gradient(180deg, var(--wnl-bg-parchment) 0%, var(--wnl-theme-surface-soft) 100%);
    border: 1px solid var(--wnl-cal-nav-border);
    border-radius: 10px;
    color: var(--wnl-theme-accent);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    box-shadow: 0 1px 0 var(--wnl-inset-chip) inset, 0 1px 3px var(--wnl-rule-argb102_51_0-080);
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}

.cal-nav-link:hover {
    text-decoration: none;
    color: var(--wnl-cal-nav-hover-fg);
    background: var(--wnl-cal-nav-hover-bg);
    border-color: var(--wnl-theme-accent);
    box-shadow: 0 1px 0 var(--wnl-rule-argb255_255_255-800) inset, 0 2px 8px var(--wnl-rule-argb102_51_0-120);
}

.cal-nav-link:active {
    background: var(--wnl-crumb-pill-active);
    box-shadow: 0 1px 2px var(--wnl-rule-argb102_51_0-100) inset;
    transform: translateY(1px);
}

html[data-theme="dark"] .cal-nav-link:hover {
    box-shadow: 0 1px 0 var(--wnl-rule-argb255_255_255-060) inset, 0 2px 8px var(--wnl-rule-argb0_0_0-350);
}

.cal-nav-link:focus-visible {
    outline: 2px solid var(--wnl-theme-accent);
    outline-offset: 2px;
}

.cal-nav-link--prev {
    padding-left: 12px;
}

.cal-nav-link--next {
    padding-right: 12px;
}

.cal-nav__icon {
    font-size: 1.35em;
    font-weight: 700;
    line-height: 1;
    opacity: 0.9;
    font-family: Georgia, "Times New Roman", serif;
}

.cal-nav__label {
    white-space: nowrap;
}

.cal-nav-cur {
    margin: 0;
    font-weight: 700;
    text-align: center;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    background: var(--wnl-theme-surface);
    border: 1px solid var(--wnl-border-warm);
    border-radius: 10px;
    color: var(--wnl-theme-accent);
    font-size: 16px;
    line-height: 1.2;
    box-shadow: 0 1px 2px var(--wnl-rule-argb0_0_0-040);
}

.cal-nav-cur--lg {
    margin: 0;
    font-weight: 700;
    font-size: 17px;
    text-align: center;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    padding: 8px 10px;
    background: var(--wnl-theme-surface);
    border: 1px solid var(--wnl-border-warm);
    border-radius: 10px;
    color: var(--wnl-theme-accent);
    line-height: 1.2;
    box-shadow: 0 1px 2px var(--wnl-rule-argb0_0_0-040);
}

.flex-stack--gap-40 {
    gap: 40px;
}

.ji-k-label {
    color: var(--wnl-date-num);
}

.lunar-meta-line {
    margin-top: 10px;
    font-size: 14px;
    color: var(--wnl-text-muted);
}

.calendar-cell--empty {
    background: var(--wnl-detail-th-bg);
}

.calendar-day-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0;
    min-width: 0;
    text-decoration: none;
    color: inherit;
    position: relative;
    /* 多节日每行独立缩小字号时，以格子内容为容器宽度 */
    container-type: inline-size;
    container-name: cal-day-cell;
}

.calendar-day-link a {
    color: inherit;
    text-decoration: none;
}

.calendar-day-link a:hover {
    text-decoration: none;
}

/* 公历「几日」主入口 → 当日万年历 */
.calendar-cell__daylink {
    font-size: 1.35em;
    font-weight: bolder;
    line-height: 1.08;
}

/* 月历元信息：公历下第一行固定农历，下行节气/节日/史事（参考三行：公历大数 → 农历 → 活动） */
.calendar-day-link .calendar-cell__meta {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0 1px;
    font-size: 0.68em;
    line-height: 1.12;
    font-weight: 500;
}

.calendar-cell__lunar-line {
    display: block;
    width: 100%;
    text-align: center;
    line-height: 1.1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.calendar-cell__lunar-link {
    color: var(--wnl-patch-cal-lunar);
    text-decoration: none;
}

a.calendar-cell__lunar-link:hover {
    text-decoration: underline;
}

.calendar-cell__tag-line {
    display: block;
    max-width: 100%;
    margin: 0;
    padding: 0 1px;
    text-align: center;
    text-decoration: none;
    line-height: 1.1;
    word-break: keep-all;
    overflow-wrap: break-word;
    font-size: 0.95em;
}

/* 宽屏：农历、节气/节日/史事行与月历格字号的 1.5 倍；移动端用 max-width:768px 下独立 px 值，不跟此处 */
@media (min-width: 769px) {
    .calendar-day-link .calendar-cell__meta {
        font-size: 1em;
    }

    .calendar-cell__lunar-line,
    .calendar-cell__tag-line,
    .calendar-cell__rotor {
        font-size: 1.5em;
    }
}

/* 月历中上月末/下月初补位格（与当月同属一周，显示真实公历日） */
div.calendar-day-link.calendar-cell--pad {
    color: var(--wnl-patch-pad-muted);
    background: var(--wnl-patch-pad-tone);
    font-weight: 400;
    border-color: var(--wnl-patch-lunar-bd);
}

div.calendar-day-link.calendar-cell--pad .calendar-cell__lunar-link {
    color: var(--wnl-patch-pad-tag);
}

div.calendar-day-link.calendar-cell--pad .highlight-red {
    color: var(--wnl-patch-pad-warn-soft);
}

/* 补位格上节日仍用固定节日色，与当月格同字号体系，避免继承 var(--wnl-patch-pad-muted) 后像「黑字更大」的错觉 */
div.calendar-day-link.calendar-cell--pad a.calendar-cell__fest-item {
    color: var(--wnl-patch-fest);
    font-size: 0.82em;
    font-weight: 600;
}

/* 与 .calendar-cell__fest-item 同一条字号曲线，避免与红色节日行高不一致 */
div.calendar-day-link a.calendar-cell__rotor-hist {
    color: var(--wnl-patch-rotor-hist-8);
    font-weight: 600;
    line-height: 1.1;
    font-size: clamp(5px, 1.7vw, 1em);
    font-size: clamp(5px, 10.5cqi, 1em);
}

/* 与补位格上红色节日行一致略缩小；用稍浅棕在米底上可辨 */
div.calendar-day-link.calendar-cell--pad a.calendar-cell__rotor-hist {
    font-size: 0.82em;
    color: var(--wnl-patch-rotor-hist-8);
}

div.calendar-day-link.calendar-cell--pad:hover {
    background: var(--wnl-patch-masonry-hair-b);
    color: var(--wnl-patch-pad-hover-fg);
    text-decoration: none;
}

.calendar-day-link.today-cell {
    z-index: 2;
    color: var(--wnl-on-gradient-fg);
    font-weight: 700;
    background: linear-gradient(160deg, var(--wnl-cal-today-g1) 0%, var(--wnl-cal-today-g2) 50%, var(--wnl-cal-today-g3) 100%);
    border-color: var(--wnl-cal-today-ring);
    box-shadow: 0 0 0 1px var(--wnl-rule-argb255_200_120-250) inset;
}

.calendar-day-link.today-cell .calendar-cell__daylink {
    color: var(--wnl-on-gradient-fg);
}

.calendar-day-link.today-cell .calendar-cell__meta,
.calendar-day-link.today-cell .calendar-cell__lunar-link,
.calendar-day-link.today-cell .calendar-cell__tag-line,
.calendar-day-link.today-cell .calendar-cell__sublink {
    font-weight: 600;
    opacity: 0.98;
    color: var(--wnl-on-gradient-fg);
}

.calendar-day-link.today-cell .highlight-red,
.calendar-day-link.today-cell a.highlight-red {
    color: var(--wnl-on-gradient-fg);
}

.calendar-day-link.today-cell a.calendar-cell__fest-item {
    color: var(--wnl-cal-today-soft);
    text-shadow: 0 1px 2px var(--wnl-rule-argb0_0_0-400);
}


/* 第三行起：单节日、单史事或「节日↔史事」两轨轮播；农历固定在 .calendar-cell__lunar-line */
.calendar-cell__line,
.calendar-cell__sublink {
    display: block;
}

.calendar-cell__rotor {
    position: relative;
    display: block;
    width: 100%;
    min-height: auto;
}

/* 多节日：每节一行；不设省略号，用 cqi+clamp 在窄格内整体缩小 */
.calendar-cell__rotor-fest--stack {
    position: static;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0;
    width: 100%;
    min-width: 0;
    padding: 0 1px;
    line-height: 1.15;
    text-align: center;
    font-size: inherit;
    font-weight: 500;
    overflow: visible;
    white-space: normal;
}

/* 多节日时：每节仍独占一行且单行显示（不省略），窄格用 cqi 缩小；仅单日单节日时允许长名在格内换行 */
.calendar-day-link a.calendar-cell__fest-item {
    display: block;
    max-width: 100%;
    box-sizing: border-box;
    text-align: center;
    line-height: 1.1;
    overflow: visible;
    text-overflow: clip;
    color: var(--wnl-patch-fest);
    opacity: 0.5;
    font-weight: 600;
    font-size: clamp(5px, 1.7vw, 1em);
    font-size: clamp(5px, 10.5cqi, 1em);
}

.calendar-day-link a.calendar-cell__fest-item:not(:only-of-type) {
    white-space: nowrap;
}

.calendar-day-link a.calendar-cell__fest-item:only-of-type {
    white-space: normal;
    word-break: keep-all;
    font-size: 1em;
    overflow-wrap: break-word;
}

/* 单节日行：不轮播，与上方农历行上下分开 */
.calendar-cell__rotor:not(.calendar-cell__rotor--tri):not(.calendar-cell__rotor--dual-hist) .calendar-cell__rotor-fest {
    position: static;
    animation: none !important;
    opacity: 1 !important;
    z-index: auto !important;
    pointer-events: auto !important;
}

.calendar-cell__rotor-hist {
    position: static;
    text-align: center;
    line-height: 1.1;
    font-size: inherit;
    font-weight: 600;
    color: var(--wnl-patch-hist-brown);
    white-space: normal;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    max-height: 2.5em;
    padding: 0 1px;
}

/* 公历+节日+史事：两轨（节日/史事）轮播；略留叠层区高度，多节时以内容撑开 */
.calendar-cell__rotor--tri {
    min-height: 3.4em;
}

.calendar-cell__rotor--tri .calendar-cell__rotor-fest,
.calendar-cell__rotor--tri .calendar-cell__rotor-hist {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
}

.calendar-cell__rotor--tri .calendar-cell__rotor-fest {
    animation: cal-rotor-fest 10s ease-in-out infinite;
}

.calendar-cell__rotor--tri .calendar-cell__rotor-hist {
    animation: cal-rotor-lunar 10s ease-in-out infinite;
}

/* 单史事行：不轮播 */
.calendar-cell__rotor--dual-hist .calendar-cell__rotor-hist {
    position: static;
    animation: none !important;
    opacity: 1 !important;
    z-index: auto !important;
    pointer-events: auto !important;
}

@keyframes cal-rotor-fest {
    0%, 45% { opacity: 1; z-index: 2; pointer-events: auto; }
    50%, 95% { opacity: 0; z-index: 0; pointer-events: none; }
    100% { opacity: 1; z-index: 2; pointer-events: auto; }
}

@keyframes cal-rotor-lunar {
    0%, 45% { opacity: 0; z-index: 0; pointer-events: none; }
    50%, 95% { opacity: 1; z-index: 2; pointer-events: auto; }
    100% { opacity: 0; z-index: 0; pointer-events: none; }
}

.calendar-day-link.today-cell .calendar-cell__rotor-hist {
    color: var(--wnl-cal-today-soft);
    text-shadow: 0 1px 2px var(--wnl-rule-argb0_0_0-400);
    font-weight: 700;
}

@media (prefers-reduced-motion: reduce) {
    .calendar-cell__rotor,
    .calendar-cell__rotor--tri {
        min-height: auto;
    }

    .calendar-cell__rotor-fest,
    .calendar-cell__rotor-hist {
        position: static;
        animation: none !important;
        opacity: 1 !important;
        z-index: auto !important;
        pointer-events: auto !important;
    }

    .calendar-cell__rotor--tri .calendar-cell__rotor-fest + .calendar-cell__rotor-hist {
        margin-top: 2px;
    }
}

/* 国务院放假/补班：整格淡绿(休)或淡红(班)；居中超大字半透明「休」「班」水印，前景文案不变 */
div.calendar-day-link.calendar-cell--xiu,
div.calendar-day-link.calendar-cell--ban {
    overflow: hidden;
}

div.calendar-day-link.calendar-cell--xiu > *,
div.calendar-day-link.calendar-cell--ban > * {
    position: relative;
    z-index: 1;
}

/* 水印：单字、居中、低透明度，不截获点击 */
div.calendar-day-link.calendar-cell--xiu::after,
div.calendar-day-link.calendar-cell--ban::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 0;
    font-family: "Songti SC", "STSong", "Noto Serif SC", "SimSun", serif;
    font-weight: 900;
    line-height: 1;
    font-size: 3.25rem;
    pointer-events: none;
    -webkit-user-select: none;
    user-select: none;
    letter-spacing: 0.02em;
}

div.calendar-day-link.calendar-cell--xiu::after {
    content: "休";
    color: var(--wnl-rule-argb27_94_32-110);
    text-shadow: 0 0 1px var(--wnl-rule-argb46_125_50-040);
}

div.calendar-day-link.calendar-cell--ban::after {
    content: "班";
    color: var(--wnl-rule-argb198_40_40-100);
    text-shadow: 0 0 1px var(--wnl-rule-argb183_28_28-040);
}

div.calendar-day-link.calendar-cell--xiu {
    background: var(--wnl-cal-xiu-cell-bg);
    border-color: var(--wnl-cal-xiu-cell-br);
}

div.calendar-day-link.calendar-cell--ban {
    background: var(--wnl-cal-ban-cell-bg);
    border-color: var(--wnl-cal-ban-cell-br);
}

div.calendar-day-link.calendar-cell--xiu:hover {
    background: var(--wnl-cal-xiu-hover-bg);
    border-color: var(--wnl-cal-xiu-hover-br);
}

div.calendar-day-link.calendar-cell--ban:hover {
    background: var(--wnl-cal-ban-hover-bg);
    border-color: var(--wnl-cal-ban-hover-br);
}

div.calendar-day-link.calendar-cell--pad.calendar-cell--xiu {
    background: var(--wnl-cal-pad-xiu-bg);
    border-color: var(--wnl-cal-pad-xiu-br);
    color: var(--wnl-patch-brown-b);
}

div.calendar-day-link.calendar-cell--pad.calendar-cell--ban {
    background: var(--wnl-cal-pad-ban-bg);
    border-color: var(--wnl-cal-pad-ban-br);
    color: var(--wnl-patch-cell-muted-bg);
}

div.calendar-day-link.calendar-cell--pad.calendar-cell--xiu:hover {
    background: var(--wnl-cal-pad-xiu-hover-bg);
    color: var(--wnl-patch-masonry-accent);
}

div.calendar-day-link.calendar-cell--pad.calendar-cell--ban:hover {
    background: var(--wnl-cal-pad-ban-hover-bg);
    color: var(--wnl-patch-masonry-ink-a);
}

div.calendar-day-link.calendar-cell--pad.calendar-cell--xiu::after {
    color: var(--wnl-rule-argb46_80_48-100);
}

div.calendar-day-link.calendar-cell--pad.calendar-cell--ban::after {
    color: var(--wnl-rule-argb100_40_40-100);
}

/* 今 + 休/班：在今日样式上套绿/红倾向；水印为浅色以压在深底上 */
.calendar-day-link.today-cell.calendar-cell--xiu {
    background: linear-gradient(160deg, var(--wnl-cal-today-xiu-g1) 0%, var(--wnl-cal-today-xiu-g2) 50%, var(--wnl-cal-today-xiu-g3) 100%);
    border-color: var(--wnl-cal-today-xiu-br);
    box-shadow: 0 0 0 1px var(--wnl-rule-argb180_255_200-120) inset;
}

.calendar-day-link.today-cell.calendar-cell--ban {
    background: linear-gradient(160deg, var(--wnl-cal-today-ban-g1) 0%, var(--wnl-cal-today-ban-g2) 50%, var(--wnl-cal-today-ban-g3) 100%);
    border-color: var(--wnl-cal-today-ban-br);
    box-shadow: 0 0 0 1px var(--wnl-rule-argb255_200_180-200) inset;
}

.calendar-day-link.today-cell.calendar-cell--xiu::after {
    color: var(--wnl-rule-argb255_255_255-120);
    text-shadow: none;
}

.calendar-day-link.today-cell.calendar-cell--ban::after {
    color: var(--wnl-rule-argb255_255_255-120);
    text-shadow: none;
}

.today-badge {
    position: absolute;
    top: 2px;
    left: 2px;
    right: auto;
    font-size: 12px;
    line-height: 1.15;
    padding: 3px 6px;
    background: var(--wnl-theme-accent);
    color: var(--wnl-nav-on-fg);
    border-radius: 4px;
    font-weight: bold;
    box-shadow: 0 1px 3px var(--wnl-rule-argb0_0_0-220);
    pointer-events: none;
    z-index: 3;
}

.white-text {
    color: var(--wnl-on-gradient-fg);
}

/* 首页底栏：财神方位 | 热门查询（与今日概览/黄历块同系） */
.home-two-col {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 18px;
    margin-top: 36px;
    margin-bottom: 8px;
}

.home-side {
    flex: 1 1 320px;
    min-width: 0;
}

.home-side--panel {
    position: relative;
    padding: 18px 16px 20px 14px;
    background: var(--wnl-bg-parchment);
    border: 1px solid var(--wnl-border-warm);
    border-radius: 12px;
    box-shadow: 0 2px 12px var(--wnl-card-shadow);
}

.home-side__pegs {
    display: flex;
    justify-content: center;
    gap: 14px;
    margin: -4px 0 10px;
    padding: 0;
}

.home-side__pegs::before,
.home-side__pegs::after {
    content: "";
    display: block;
    width: 9px;
    height: 10px;
    background: linear-gradient(180deg, var(--wnl-pegs-top) 0%, var(--wnl-pegs-bot) 100%);
    border-radius: 3px 3px 1px 1px;
    box-shadow: 0 1px 0 var(--wnl-rule-argb0_0_0-060);
}

.home-side__title {
    margin: 0 0 14px;
    padding: 0 0 8px;
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.4;
    color: var(--wnl-theme-accent);
    border-bottom: 1px solid var(--wnl-rule-hair);
}

.home-side--panel .shen-card-grid {
    margin-bottom: 0;
}

.shen-card-grid--compact {
    gap: 10px 12px;
}

.shen-card-grid--compact .shen-card {
    padding: 12px 8px 14px;
}

.shen-card-grid--compact .shen-card__label {
    font-size: 14px;
    margin-bottom: 6px;
}

.shen-card-grid--compact .shen-card__val {
    font-size: 1.2rem;
}

.hot-links {
    list-style: none;
    margin: 0;
    padding: 2px 0 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 10px;
}

.hot-links__item {
    margin: 0;
}

.hot-links__a {
    display: flex;
    align-items: center;
    min-height: 40px;
    padding: 8px 12px 8px 14px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.35;
    color: var(--wnl-text-brown);
    text-decoration: none;
    background: linear-gradient(180deg, var(--wnl-crumb-pill-top) 0%, var(--wnl-tone-peach) 100%);
    border: 1px solid var(--wnl-breadcrumb-edge);
    border-radius: 8px;
    box-shadow: 0 1px 0 var(--wnl-rule-argb255_255_255-700) inset;
    transition: border-color 0.15s, background 0.15s, color 0.15s, box-shadow 0.15s;
    -webkit-tap-highlight-color: transparent;
}

.hot-links__a::before {
    content: "›";
    margin-right: 6px;
    font-size: 1.1em;
    font-weight: 700;
    color: var(--wnl-theme-accent);
    opacity: 0.75;
    flex: 0 0 auto;
}

.hot-links__a:hover {
    color: var(--wnl-theme-accent);
    background: var(--wnl-nav-menu-hover-bg);
    border-color: var(--wnl-border-accent);
    text-decoration: none;
    box-shadow: 0 1px 0 var(--wnl-rule-argb255_255_255-850) inset, 0 1px 4px var(--wnl-rule-argb90_50_20-080);
}

.hot-links__a:active {
    background: var(--wnl-accent-press-bg);
    transform: translateY(1px);
}

.hot-links__a:focus-visible {
    outline: 2px solid var(--wnl-theme-accent);
    outline-offset: 2px;
}

/* 月视图标题条（万年历等） */
.month-title-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--wnl-patch-soft-border-b);
    padding-bottom: 15px;
}

.month-title {
    font-size: 24px;
    color: var(--wnl-theme-accent);
    margin: 0;
}

.year-title-line {
    flex: 1;
    min-width: 0;
}

.cal-nav-cur--year {
    color: var(--wnl-theme-link);
}

.cal-nav-cur--lg-year {
    font-weight: 600;
    color: var(--wnl-theme-accent);
}

.year-month-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    max-width: 100%;
    margin-bottom: 25px;
}

.year-month-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    border: 1px solid var(--wnl-theme-border);
    background: var(--wnl-theme-surface);
    border-radius: 4px;
    font-size: 16px;
    color: var(--wnl-theme-link);
    transition: background 0.15s ease, border-color 0.15s ease;
}

.year-month-cell:hover {
    background: var(--wnl-theme-surface-soft);
    border-color: var(--wnl-theme-accent);
    text-decoration: none;
}

.year-month-cell__num {
    font-weight: 600;
    color: var(--wnl-theme-accent);
}

/* 年历：当前年下的「本月」月份格 */
.year-month-cell--current {
    position: relative;
    flex-direction: column;
    justify-content: center;
    min-height: 52px;
    padding: 6px 6px 7px;
    background: linear-gradient(160deg, var(--wnl-year-month-hi1) 0%, var(--wnl-year-month-hi2) 45%, var(--wnl-year-month-hi3) 100%);
    border: 1px solid var(--wnl-year-month-hi-br);
    box-shadow: 0 2px 8px var(--wnl-rule-argb90_60_30-120);
}

.year-month-cell--current,
.year-month-cell--current:hover {
    color: var(--wnl-year-month-hi-fg);
    text-decoration: none;
}

.year-month-cell--current:hover {
    background: linear-gradient(160deg, var(--wnl-year-month-hi-hover1) 0%, var(--wnl-year-month-hi-hover2) 45%, var(--wnl-year-month-hi-hover3) 100%);
    border-color: var(--wnl-year-month-hi-hover-br);
    box-shadow: 0 2px 10px var(--wnl-rule-argb90_60_30-160);
}

.year-month-cell--current .year-month-cell__num {
    color: var(--wnl-theme-accent);
}

.year-month-cell__mark {
    display: block;
    margin-top: 2px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--wnl-year-month-mark);
    line-height: 1.2;
}

@media (max-width: 640px) {
    .year-month-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* 年历页：节日大全（公历 12 月行 + 4 列网格） */
.wnl-fest-ency {
    margin: 0 0 32px;
    padding: 20px 0 0;
    border-top: 1px solid var(--wnl-fest-ency-border);
}

.wnl-fest-ency__title {
    margin: 0 0 10px;
    text-align: center;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--wnl-theme-accent);
    letter-spacing: 0.08em;
}

.wnl-fest-ency__legend {
    margin: 0 0 18px;
    text-align: center;
    font-size: 13px;
    line-height: 1.65;
    color: var(--wnl-patch-legend-muted);
}

.wnl-fest-ency__leg {
    font-weight: 600;
}

.wnl-fest-ency__leg--traditional {
    color: var(--wnl-patch-traditional);
}

.wnl-fest-ency__leg--jieqi {
    color: var(--wnl-patch-jieqi);
}

.wnl-fest-ency__leg-note {
    color: var(--wnl-patch-legend-muted);
    font-weight: 400;
}

/* 年历页：节日大全月份「电梯」锚点导航 */
.wnl-yp-elevator {
    position: sticky;
    top: 0;
    z-index: 6;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    margin: 0 0 14px;
    padding: 10px 12px;
    background: linear-gradient(180deg, var(--wnl-elevator-bg1) 0%, var(--wnl-elevator-bg2) 100%);
    border: 1px solid var(--wnl-elevator-br);
    border-radius: 10px;
    box-shadow: 0 2px 8px var(--wnl-rule-argb90_60_30-060);
}

.wnl-yp-elevator__label {
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--wnl-elevator-label);
    text-transform: uppercase;
}

.wnl-yp-elevator__links {
    flex: 1 1 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: center;
    min-width: 0;
}

.wnl-yp-elevator__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5em;
    padding: 5px 8px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--wnl-elevator-link-fg);
    text-decoration: none;
    background: var(--wnl-bg-parchment);
    border: 1px solid var(--wnl-elevator-link-br);
    border-radius: 6px;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.wnl-yp-elevator__link:hover {
    background: var(--wnl-elevator-link-hover);
    border-color: var(--wnl-theme-accent);
    color: var(--wnl-theme-accent);
    text-decoration: none;
}

.wnl-yp-elevator__link:focus-visible {
    outline: 2px solid var(--wnl-theme-accent);
    outline-offset: 2px;
}

.wnl-yp-elevator__link--current {
    background: linear-gradient(180deg, var(--wnl-patch-orange-tint-strong) 0%, var(--wnl-patch-orange-tint) 100%);
    border-color: var(--wnl-patch-orange-strong);
    color: var(--wnl-theme-accent);
    box-shadow: inset 0 1px 0 var(--wnl-rule-argb255_255_255-650);
}

.wnl-fest-ency__row[id^="wnl-yp-m"] {
    scroll-margin-top: 2.5rem;
}

@media (max-width: 768px) {
    .wnl-fest-ency__row[id^="wnl-yp-m"] {
        scroll-margin-top: 3rem;
    }
}

@media (max-width: 520px) {
    .wnl-fest-ency__row[id^="wnl-yp-m"] {
        scroll-margin-top: 6rem;
    }
}

.wnl-fest-ency__body {
    background: var(--wnl-patch-sheet-sheet);
    border: 1px solid var(--wnl-border-warm);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 10px var(--wnl-rule-argb90_60_30-050);
}

.wnl-fest-ency__row {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 14px;
    min-height: 64px;
    padding: 14px 14px 16px 12px;
    border-bottom: 1px solid var(--wnl-patch-masonry-hair-a);
    background: var(--wnl-patch-sheet-bg);
}

.wnl-fest-ency__row:last-child {
    border-bottom: none;
}

.wnl-fest-ency__month-badge {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 52px;
    min-height: 58px;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 1px 4px var(--wnl-rule-argb0_0_0-060);
    border: 1px solid var(--wnl-patch-soft-border-a);
}

.wnl-fest-ency__month-en {
    display: block;
    width: 100%;
    padding: 4px 4px 3px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-align: center;
    line-height: 1.2;
    color: var(--wnl-on-gradient-fg);
    /* 须落在深色渐变条上浅色字才有对比；仅用 --wnl-on-gradient-fg 而无底会粘在米黄底上看不见 */
    background: linear-gradient(160deg, var(--wnl-cal-today-g1) 0%, var(--wnl-cal-today-g2) 50%, var(--wnl-cal-today-g3) 100%);
    border-bottom: 1px solid var(--wnl-cal-today-ring);
}

.wnl-fest-ency__month-zh {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    flex: 1;
    min-height: 32px;
    font-size: 17px;
    font-weight: 800;
    color: var(--wnl-patch-masonry-ink-b);
    background: var(--wnl-theme-surface);
    line-height: 1;
}

.wnl-fest-ency__grid {
    flex: 1 1 0;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px 12px;
    align-content: start;
}

.wnl-fest-ency__cell {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.wnl-fest-ency__name {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-decoration: none;
    font-size: 14px;
    line-height: 1.4;
    font-weight: 500;
    color: var(--wnl-yi-ji-body);
    transition: opacity 0.12s, text-decoration 0.12s;
}

.wnl-fest-ency__name:hover {
    text-decoration: underline;
    opacity: 0.9;
}

.wnl-fest-ency__name--jieqi {
    color: var(--wnl-patch-jieqi);
}

.wnl-fest-ency__name--traditional {
    color: var(--wnl-patch-line-warn);
}

.wnl-fest-ency__name--other {
    color: var(--wnl-yi-ji-body);
}

.wnl-fest-ency__date {
    font-size: 12px;
    line-height: 1.3;
    color: var(--wnl-patch-pad-soft);
    text-decoration: none;
    align-self: flex-start;
}

.wnl-fest-ency__date:hover {
    color: var(--wnl-patch-brown-c);
    text-decoration: underline;
}

.wnl-fest-ency__empty {
    margin: 0;
    padding: 8px 4px;
    grid-column: 1 / -1;
    font-size: 13px;
    color: var(--wnl-patch-pad-soft);
    text-align: left;
}

@media (max-width: 900px) {
    .wnl-fest-ency__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .wnl-fest-ency__row {
        gap: 10px;
        padding: 12px 10px 14px 8px;
    }

    .wnl-fest-ency__month-badge {
        width: 46px;
    }

    .wnl-fest-ency__month-zh {
        font-size: 15px;
    }

    .wnl-fest-ency__grid {
        grid-template-columns: 1fr;
    }
}

.kv-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px;
}

.kv-table th,
.kv-table td {
    border: 1px solid var(--wnl-hairline-border);
    padding: 10px;
    text-align: left;
}

.kv-table th {
    background: var(--wnl-table-th-bg);
    width: 100px;
}

/* 时辰 / 吉时 */
.shichen-table {
    width: 100%;
    border-collapse: collapse;
    text-align: center;
}

.shichen-table thead tr {
    background: var(--wnl-table-th-bg);
}

.shichen-table th,
.shichen-table td {
    border: 1px solid var(--wnl-hairline-border);
    padding: 12px;
}

.shichen-table td:nth-child(4),
.shichen-table td:nth-child(5) {
    font-size: 13px;
}

.jishi-note {
    margin-top: 30px;
    padding: 20px;
    background: var(--wnl-jishi-bg);
    border: 1px dashed var(--wnl-jishi-dash);
}

.jishi-note h4 {
    color: var(--wnl-jishi-h4);
    margin: 0 0 10px 0;
}

.jishi-note p {
    font-size: 14px;
    color: var(--wnl-text-muted-2);
    margin: 0;
}

.hour-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.hour-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--wnl-hairline-border);
    padding: 15px;
    background: var(--wnl-theme-surface);
}

/* 吉/凶：背景色 + 中心淡色水印，内容叠在水印之上 */
.hour-card--lucky {
    background: var(--wnl-hour-lucky-bg);
    border-color: var(--wnl-hour-lucky-border);
}

.hour-card--unlucky {
    background: var(--wnl-hour-unlucky-bg);
    border-color: var(--wnl-hour-unlucky-border);
}

.hour-card--lucky::after,
.hour-card--unlucky::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    font-size: 100px;
    line-height: 1;
    font-weight: bold;
    pointer-events: none;
    z-index: 0;
    user-select: none;
}

.hour-card--lucky::after {
    content: "吉";
    color: var(--wnl-rule-argb34_139_34-090);
}

.hour-card--unlucky::after {
    content: "凶";
    color: var(--wnl-rule-argb196_60_60-100);
}

.hour-card--lucky > *,
.hour-card--unlucky > * {
    position: relative;
    z-index: 1;
}

.hour-card__title {
    font-weight: bold;
    border-bottom: 1px solid var(--wnl-hairline-border);
    margin-bottom: 10px;
    padding-bottom: 5px;
}

.hour-card__line,
.hour-line {
    font-size: 13px;
}

.hour-card__line--sub,
.hour-sub {
    font-size: 12px;
    color: var(--wnl-text-muted);
    margin-top: 5px;
}

.block-mt-20 { margin-top: 20px; }
.block-mt-30 { margin-top: 30px; }
.block-mt-40 { margin-top: 40px; }

.p-intro {
    margin-bottom: 20px;
    color: var(--wnl-text-muted);
}

/* 老黄历 宜忌双栏 */
.yi-ji-2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    border: 1px solid var(--wnl-hairline-border);
    padding: 20px;
    margin-bottom: 20px;
}

.yi-ji-blk-hdr {
    background: var(--wnl-table-th-bg);
    padding: 10px;
    margin-bottom: 10px;
}

.yi-ji-blk-hdr strong {
    color: var(--wnl-theme-accent);
}

.text-wuxing-yi { color: green; }
.text-wuxing-ji { color: red; }

/* 老黄历：三栏摘要 + 横向日期条 + 时辰矩阵（与参考版式一致） */
.content-h1--lhl {
    font-size: 1.35rem;
    margin-bottom: 14px;
}

.lhl-summary-card {
    border: 1px solid var(--wnl-hairline-border);
    background: var(--wnl-theme-surface);
    margin-bottom: 18px;
}

.lhl-summary-card__cols {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(200px, 280px) minmax(0, 1fr);
    gap: 0;
    align-items: stretch;
}

.lhl-summary-card__yi,
.lhl-summary-card__mid,
.lhl-summary-card__ji {
    padding: 16px 14px;
}

.lhl-summary-card__yi {
    border-right: 1px solid var(--wnl-hairline-border);
}

.lhl-summary-card__ji {
    border-left: 1px solid var(--wnl-hairline-border);
}

@media (max-width: 900px) {
    .lhl-summary-card__cols {
        grid-template-columns: 1fr;
    }
    .lhl-summary-card__yi {
        border-right: none;
        border-bottom: 1px solid var(--wnl-hairline-border);
    }
    .lhl-summary-card__ji {
        border-left: none;
        border-top: 1px solid var(--wnl-hairline-border);
    }
}

.lhl-badge {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 18px;
    margin: 0 auto 12px;
}

.lhl-badge--yi {
    background: #c41e1e;
    color: #ffffff;
}

.lhl-badge--ji {
    background: #222222;
    color: #ffffff;
}

.lhl-yiji-list {
    font-size: 14px;
    line-height: 1.75;
    color: var(--wnl-yi-fg);
    min-height: 4.5em;
    text-align: center;
}

.lhl-yiji-list--ji {
    color: var(--wnl-ji-fg);
}

.lhl-bar--muted {
    background: var(--wnl-table-th-bg);
    font-size: 12px;
    padding: 8px 10px;
    margin-top: 14px;
    color: var(--wnl-text-muted);
    text-align: center;
}

.lhl-meta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 12px;
}

.lhl-meta-grid__blk {
    min-width: 0;
}

.lhl-meta-grid__title {
    font-size: 12px;
    font-weight: 700;
    color: var(--wnl-th-text);
    margin-bottom: 4px;
}

.lhl-meta-grid__txt {
    font-size: 12px;
    line-height: 1.6;
    margin: 0;
    color: var(--wnl-theme-fg);
    word-break: break-word;
}

.lhl-greg-head {
    font-size: 13px;
    text-align: center;
    margin: 0 0 8px;
    color: var(--wnl-theme-fg);
}

.lhl-big-day {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 8px;
    margin-bottom: 6px;
}

.lhl-big-day__nav {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid var(--wnl-hairline-border);
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-size: 20px;
    line-height: 1;
    color: var(--wnl-theme-fg);
    margin-top: 1.75rem;
}

.lhl-big-day__nav:hover {
    background: var(--wnl-cell-hover);
}

.lhl-big-day__numwrap {
    text-align: center;
    min-width: 100px;
}

.lhl-big-day__num {
    font-size: 4.25rem;
    font-weight: 700;
    line-height: 1;
    color: #c41e1e;
}

.lhl-big-day__week {
    display: block;
    font-size: 15px;
    color: #c41e1e;
    margin-top: 4px;
}

.lhl-lunar-line {
    text-align: center;
    margin: 0 0 12px;
    font-size: 14px;
    color: var(--wnl-theme-fg);
}

.lhl-ganzhi-box {
    border: 1px solid var(--wnl-hairline-border);
    padding: 12px;
    font-size: 13px;
    line-height: 1.6;
}

.lhl-ganzhi-line {
    margin: 0 0 8px;
    text-align: center;
    font-weight: 600;
    color: var(--wnl-theme-fg);
}

.lhl-pengzu {
    margin: 0;
    font-size: 12px;
    color: var(--wnl-text-muted);
}

.lhl-pengzu__k {
    font-weight: 600;
    color: var(--wnl-theme-fg);
}

.lhl-strip {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
    width: 100%;
}

.lhl-strip__month {
    flex-shrink: 0;
    font-size: 13px;
    padding: 6px 10px;
    border: 1px solid var(--wnl-hairline-border);
    border-radius: 4px;
    text-decoration: none;
    color: var(--wnl-theme-link);
    background: var(--wnl-nav-pill-off);
}

.lhl-strip__month:hover {
    background: var(--wnl-cell-hover);
}

.lhl-strip__days {
    display: flex;
    flex-wrap: nowrap;
    justify-content: safe center;
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    gap: 4px;
    padding-bottom: 4px;
    scrollbar-width: thin;
}

.lhl-strip__day {
    flex: 0 0 auto;
    min-width: 36px;
    padding: 6px 8px;
    text-align: center;
    border-radius: 4px;
    text-decoration: none;
    border: 1px solid transparent;
    color: var(--wnl-theme-fg);
    font-size: 14px;
}

.lhl-strip__day:hover {
    background: var(--wnl-cell-hover);
}

.lhl-strip__day.is-pick {
    background: #c41e1e;
    color: #ffffff;
    border-color: #a01818;
}

.lhl-strip__day.is-today:not(.is-pick) {
    outline: 1px dashed var(--wnl-theme-accent);
    outline-offset: -2px;
}

.lhl-hours-wrap {
    margin-bottom: 24px;
}

.lhl-hours-title {
    font-size: 14px;
    margin: 0 0 0;
    padding: 10px 12px;
    background: #4a4a4a;
    color: #f5f5f5;
    font-weight: 600;
}

html[data-theme="dark"] .lhl-hours-title {
    background: #2a2620;
    color: #eee8dd;
}

.lhl-hours-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--wnl-hairline-border);
    border-top: none;
}

.lhl-hours-matrix {
    width: max(100%, 960px);
    border-collapse: collapse;
    font-size: 12px;
    background: var(--wnl-theme-surface);
}

.lhl-hours-matrix th,
.lhl-hours-matrix td {
    border: 1px solid var(--wnl-hairline-border);
    padding: 8px 6px;
    vertical-align: top;
    text-align: center;
    min-width: 72px;
}

.lhl-hours-matrix thead th {
    background: var(--wnl-table-th-bg);
    font-weight: 600;
    color: var(--wnl-th-text);
}

.lhl-hours-matrix tbody th[scope="row"] {
    background: var(--wnl-table-th-bg);
    color: var(--wnl-th-text);
    white-space: nowrap;
    text-align: right;
    padding-right: 10px;
}

.lhl-hours-matrix__corner {
    background: var(--wnl-table-th-bg);
}

