/* 共享关键样式：令牌、基础元素、顶栏与页脚，跨页一致；由构建器从共享源生成，勿手改。 */

@media (prefers-color-scheme: dark){
  :root{
    color-scheme:dark;
    --paper:#17171a;
    --paper2:#1d1d20;
    --card:#1d1d20;
    --line:#3a3a3f;
    --ink:#d6d2cd;
    --ink2:#aea698;
    --red2:#d2695e;
    --cal-hover:#2a2a2e;
    --cal-selected:#333338;
  }
  body{background:var(--paper);color:var(--ink)}
  body:has(.page-sm),body:has(.page-os),body:has(.page-dj),body:has(.page-lp){
    background:#faf9f6;color:#1a1a1a
  }
  .page-sm,.page-os,.page-dj,.page-lp{
    color-scheme:light;
    --paper:#ffffff;
    --paper2:#faf9f6;
    --card:#ffffff;
    --line:#ddd8cf;
    --ink:#1a1a1a;
    --ink2:#52525a;
  }
}

:root{
  color-scheme:light;
/* ── 间距档位（4px 栅格，全站唯一间距真源） */
  --sp-1:4px;
  --sp-2:8px;
  --sp-3:12px;
  --sp-4:16px;
  --sp-5:24px;
  --paper:#ffffff;
  --paper2:#faf9f6;
  --ink:#1a1a1a;
  --ink2:#52525a;
  --line:#ddd8cf;
  --gold:#c9952a;
  --gold2:#a67c28;
  --red:#b84a3a;
  --red2:#9e3d2f;
  --card:#ffffff;
  --shadow:0 1px 6px rgba(0,0,0,.08);
  --gold-bg:#fbf7f0;
/* 视觉层级规范：标题四级递减字号，色统一 gold2，不另立字体体系。 */
  --tier1:17px; --tier2:16px; --tier3:14px; --tier4:13px;
  --title:var(--gold2);
  --nav:#1e1e1e;
  --nav-text:#f0ece0;
  --cal-hover:#ecebe5;
  --cal-selected:#e2e0d8;
  --cal-zhai:var(--cal-selected);
  --green:#2e7d32;          /* 宜、吉、幸运 */
  --brown:#a0522d;          /* 五黄土星等深棕 */
  --gold-brown:#8a6d1f;     /* 飞星2/8、太乙标注 */
  --special-bg:#f3e7d3;     /* sd-special背景 */
  --special-text:#8a5a00;   /* sd-special文字 */
  --special-border:#d8b46a; /* sd-special边框 */
  --font:'Noto Serif SC Page','Xuanji Serif SC','Noto Sans Symbols 2','Noto Sans Symbols','Noto Emoji','Noto Serif','Noto Sans Devanagari','Source Han Serif SC','Songti SC','STSong','SimSun',serif;  /* 全站主字体：思源宋体自托管分片＋符号补全子集，见 assets/fonts/，随站交付不依赖访客系统 */
  --font-serif:'Noto Serif SC Page','Xuanji Serif SC','Noto Sans Symbols 2','Noto Sans Symbols','Noto Emoji','Noto Serif','Noto Sans Devanagari','Source Han Serif SC','Songti SC','STSong','SimSun',serif;  /* 经典衬线真源，与主字体同族 */
}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}

html,body{height:100%}

body{
  font-family:var(--font);
  background:var(--paper);
  color:var(--ink);
  line-height:1.7;
  -webkit-font-smoothing:auto;
  text-rendering:optimizeLegibility;
  font-synthesis-weight:none;
}

a{color:inherit;text-decoration:none}

select{font-family:inherit}

select option{font-family:inherit}

.wrap{max-width:1080px;margin:0 auto;padding:0 var(--sp-4)}

.topbar{
  background:#1c1a17;
  color:var(--nav-text);
  position:relative;z-index:40;
}

.topbar .wrap{display:flex;align-items:center;gap:var(--sp-4);height:62px}

.brand{display:flex;align-items:center;gap:var(--sp-3)}

.brand .seal{width:36px;height:36px;flex:none;display:block}

.brand .seal img{display:block;width:100%;height:100%}

.brand .wordmark{display:flex;flex-direction:column;gap:var(--sp-1);line-height:1}

.brand .wordmark b{font-family:var(--font-serif);font-weight:400;font-size:19px;letter-spacing:.32em;text-indent:.06em;color:#f0ece0}

.brand .wordmark i{font-style:normal;font-size:8px;font-weight:400;letter-spacing:.42em;color:#7d776b;
  font-family:'Helvetica Neue',Arial,sans-serif}

.nav{margin-left:auto;display:flex;gap:var(--sp-3);align-items:center}

.nav .nav-link{position:relative;padding:var(--sp-2) 2px;font-size:13.5px;letter-spacing:.08em;color:#c6c0b2;transition:color .15s;white-space:nowrap;border-radius:0}

.nav .nav-link::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;background:transparent;transition:background .15s}

.nav .nav-link:hover{background:none;color:#f0ece0}

.nav .nav-link.active{background:none;color:#f0ece0;font-weight:400}

.nav .nav-link.active::after{background:#a5321f}

.nav-group{position:relative}

.nav-top{background:none;border:none;color:#c6c0b2;font-family:inherit;font-size:13.5px;letter-spacing:.08em;cursor:pointer;position:relative;
  padding:var(--sp-2) 2px;border-radius:0;white-space:nowrap;display:flex;align-items:center;gap:var(--sp-1);transition:color .15s}

.nav-top::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;background:transparent;transition:background .15s}

.nav-top:hover{background:none;color:#f0ece0}

.nav-group.has-active .nav-top{color:#f0ece0;font-weight:400}

.nav-group.has-active .nav-top::after{background:#a5321f}

.nav-top .caret{font-size:9px;opacity:.6}

.nav-menu{display:none;position:absolute;top:100%;right:0;margin-top:var(--sp-2);min-width:150px;
  background:#25221e;border:1px solid rgba(255,255,255,.12);border-radius:0;padding:var(--sp-1);z-index:50;
  box-shadow:0 14px 32px rgba(0,0,0,.45);flex-direction:column;gap:var(--sp-1)}

.nav-group:hover .nav-menu,.nav-group.open .nav-menu{display:flex}

.nav-menu a{padding:var(--sp-2) var(--sp-3);border-radius:0;font-size:13.5px;letter-spacing:.05em;color:#c6c0b2;white-space:nowrap;transition:background .12s,color .12s}

.nav-menu a:hover{background:rgba(255,255,255,.07);color:#f0ece0}

.nav-menu a.active{background:none;color:#cf6a4d;font-weight:400}

.ai-gear{display:inline-flex;align-items:center;height:30px;padding:0 var(--sp-2);background:none;
  color:#c6c0b2;border:0;border-radius:0;
  font-size:12.5px;letter-spacing:.1em;font-family:inherit;cursor:pointer;white-space:nowrap;transition:all .15s}

.ai-gear:hover{background:#a5321f;color:#f5efe2}

.ext-link{display:inline-flex;align-items:center;height:30px;padding:0 var(--sp-2);background:none;color:#c6c0b2;text-decoration:none;transition:all .15s}

.ext-link:hover{background:#a5321f;color:#f5efe2}

.ext-link svg{width:16px;height:16px;fill:currentColor;flex:none}

.nav-tools{display:inline-flex;align-items:center;gap:0}

.menu-btn{display:none;align-items:center;justify-content:center;height:30px;padding:0 12px;background:none;
  color:#c6c0b2;border:0;border-radius:0;font-size:14px;line-height:1;
  cursor:pointer;transition:all .15s}

.menu-btn:hover{background:#a5321f;color:#f5efe2}

.form-row .field.field-off{display:none}

.yili-tbl td:nth-child(2) br{display:none}

.xlr-ref-d>summary::-webkit-details-marker{display:none}

@keyframes fadeInUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

@keyframes skShimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}

.cal-cell{background:transparent;border:1px solid transparent;border-radius:0;
  min-height:64px;min-width:0;padding:var(--sp-1);display:flex;flex-direction:column;position:relative;
  align-items:center;justify-content:center;text-align:center;cursor:pointer;transition:.15s}

.cal-cell:hover{background:var(--cal-hover)}

.cal-cell.weekend .sd-num{color:#F65352;font-weight:700}

.cal-cell .jq-mark,.cal-cell .fest-mark,.cal-cell .mem-mark,.cal-cell .rest-mark,.cal-cell .mk{
  position:absolute;top:var(--sp-1);font-size:9px;line-height:1;font-weight:700}

.cal-cell .jq-mark{right:var(--sp-1);color:#3c7a3c}

.cal-cell .fest-mark{left:var(--sp-1);display:none;color:var(--red)}

.cal-cell.today{color:#fff}

.cal-cell.today .sd,.cal-cell.today .ld,.cal-cell.today .festival,.cal-cell.today .slot,
.cal-cell.today .jq-mark,.cal-cell.today .fest-mark,.cal-cell.today .mem-mark,
.cal-cell.today .rest-mark,.cal-cell.today .mk,.cal-cell.today .sd-num{color:#fff!important}

.cal-cell.other{opacity:.4}

.cal-cell .sd{font-size:18px;line-height:1}

.cal-cell .sd-num{line-height:1}

.cal-cell .ld{font-size:11.5px;color:rgba(30,31,36,.5);line-height:1.2;margin-top:var(--sp-1);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.cal-cell .festival{font-size:11px;color:var(--gold2);line-height:1.2;margin-top:var(--sp-1);max-width:100%;width:100%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

footer{text-align:center;color:var(--ink2);font-size:12px;padding:var(--sp-4) 0 var(--sp-5)}

footer .dis{color:var(--footer-ink,var(--ink));font-size:12px;margin-top:0}

footer .os-link{color:inherit;text-decoration:none;border-bottom:1px dotted currentColor;cursor:pointer}

footer .ref{margin-top:var(--sp-2);color:inherit;font-size:12px;line-height:1.8}

footer .ref a{color:inherit;text-decoration:none;border-bottom:1px dotted currentColor}

input:where([type=checkbox],[type=radio]){accent-color:var(--gold)}

[hidden]{display:none !important}

.fold-block>summary.rel-title::-webkit-details-marker{display:none}

.yun-mobile-hint{display:none;font-size:12px;color:var(--ink2);text-align:center;margin:var(--sp-1) 0}

.yun-tip{display:none;position:absolute;z-index:30;background:var(--paper2);color:var(--ink);font-size:12px;line-height:1.55;padding:var(--sp-2) var(--sp-2);border-radius:0;border:1px solid var(--line);box-shadow:0 4px 16px rgba(60,45,15,.18);white-space:normal;min-width:160px;max-width:300px;box-sizing:border-box}

.sk-block .rel-sep{display:none}

table.yun-tbl.pairrel td .rel-sep,table.yun-tbl.rel-matrix td .rel-sep{display:none}

.modal-mask{position:fixed;inset:0;background:rgba(30,20,10,.45);display:none;align-items:center;justify-content:center;z-index:100;padding:var(--sp-4)}

.cal-cell.selected:not(.today){background:#d5c5ae;border-color:transparent}.cal-cell .festival+.ld{display:none}

.cal-cell .slot{font-size:11px;line-height:1.2;margin-top:var(--sp-1);max-width:100%;width:100%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.cal-cell .slot-jq{color:#2c6e2c}

.cal-cell .slot-fest{color:var(--gold2)}

.cal-cell .slot-jq~.slot-fest~.ld{display:none}

.cal-cell .rest-mark{top:auto;bottom:var(--sp-1);left:var(--sp-1);display:none}

.cal-cell .rest-mark.on{display:block}

.cal-cell .rest-mark.rest{color:var(--red)}

.cal-cell .rest-mark.work{color:#4d6a70}

.cal-cell .mem-mark{top:auto;right:var(--sp-1);bottom:var(--sp-1);display:none;color:var(--ink2)}

.cal-cell.zhai{background:transparent}

.ai-head::-webkit-details-marker{display:none}

footer .geo-foot{display:flex;min-height:20px;align-items:center;justify-content:center;gap:var(--sp-1);margin-top:var(--sp-2);font-size:12px;color:var(--footer-ink,var(--ink));max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;visibility:hidden}

footer .geo-foot.on{visibility:visible}

footer .geo-foot svg{flex:none;width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linejoin:round}

.ai-pane{display:none}.ai-pane.active{display:block}

.ai-help summary::-webkit-details-marker{display:none}

.zr-mod>summary::-webkit-details-marker{display:none}

.mod.collapsed .mod-body{display:none}

.exp-title{display:none}

@page{margin:14mm 12mm}

@media print{
/* 配色转灰：在打印作用域内重定义主题令牌为中性灰，整页去暖色（分页安全，不会破坏多页分页）； */
  :root{
    --gold:#6b6b6b; --gold2:#333; --red:#5a5a5a; --paper:#f3f3f3; --paper2:#eaeaea;
    --line:#cfcfcf; --card:#fff; --ink:#1c1c1c; --ink2:#444;
  }
/* 页级令牌块把 --line/--ink 重指到本页族，源序在打印段之后会压过上面的中性灰； */
  .wrap .page{--line:#cfcfcf;--ink:#1c1c1c}
  html{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  #topbar,#footer,.form-row,.opts,.notice,#exportBar,.scroll-jump,.dyn,.modal-mask,
  #dateNote,#kongAxisNote,#pillarNote,#formErr,.lead,.export-bar,
  #pageTitle,#aiMount{display:none !important}
  body{background:var(--card) !important}
  .wrap,.page{max-width:none;margin:0;padding:0}
  .mod.collapsed .mod-body{display:block !important}
/* 整模块不设 break-inside:avoid： */
  .mod{margin:0 0 var(--sp-3);border:1px solid var(--line);border-radius:0;overflow:visible}
  .mod-head{break-after:avoid;cursor:default}
  details:not([open]) > *:not(summary){display:block !important}
  details > summary{display:none !important}
  .info-box,.life-card,.rem-block,.nayin-box,.zr-mod-b{break-inside:avoid}
  .yun-scroll{overflow:visible !important}
  a[href]:after{content:""}
/* 打印精简：去掉内层装饰框（各流派解读、纳音、核心解读、量化、宜忌 等）的四角包围线框， */
  .info-box,.nayin-box,.life-card,.zr-mod,.rem-block{
    border:none !important;background:transparent !important;border-radius:0 !important;
    box-shadow:none !important;
  }
  .zr-mod-b{border-top:none !important;padding-top:var(--sp-2) !important;background:transparent !important}
  .rel{border:1px solid #e7e0cf !important;background:transparent !important;border-radius:0 !important;padding:2px var(--sp-2) !important}
  .rel-title,.mod-head,h2,h3,h4,caption,.fei-cap,.mh-cat-title,.cal-title{break-after:avoid}
  tr,li,.rel{break-inside:avoid}
}

.jw-detail{display:none;margin-top:var(--sp-1);padding-top:var(--sp-1);border-top:1px dashed var(--line)}

@keyframes lqshake{0%,100%{transform:translateX(-4px)}50%{transform:translateX(4px)}}

@keyframes lyCoinToss{from{transform:translateY(0) rotateY(0deg)}
to{transform:translateY(-30px) rotateY(180deg)}}

@keyframes qiFade{from{opacity:0;transform:translateY(4px)}
to{opacity:1;transform:none}}
