:root{
  --paper:#f4efe4;
  --paper-2:#fffdf7;
  --paper-3:#efe7d6;
  --ink:#241f1a;
  --ink-2:#544c42;
  --ink-3:#8a8175;
  --line:#ddd3c0;
  --line-2:#c9bda5;
  --red:#a5342c;
  --red-2:#c4554a;
  --red-bg:#fbeeea;
  --gold:#96733a;
  --gold-bg:#f7efdf;
  --green:#3f6f4a;
  --blue:#2b5570;
  --shadow:0 1px 2px rgba(70,55,30,.06),0 8px 24px -12px rgba(70,55,30,.22);
  --r:10px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:"Songti SC","STSong","Source Han Serif SC","Noto Serif SC","SimSun",Georgia,"Microsoft YaHei",serif;
  font-size:15px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  background-image:
    radial-gradient(circle at 12% 8%, rgba(255,255,255,.75), transparent 42%),
    radial-gradient(circle at 88% 4%, rgba(255,255,255,.5), transparent 36%);
  background-attachment:fixed;
}
.wrap{max-width:1120px;margin:0 auto;padding:28px 20px 80px}

/* ---------- 页头 ---------- */
.hd{text-align:center;padding:14px 0 26px;position:relative}
.hd h1{
  font-size:34px;margin:0;letter-spacing:.34em;text-indent:.34em;font-weight:600;
  color:var(--ink);
}
.hd h1 em{font-style:normal;color:var(--red)}
.hd .sub{
  margin-top:10px;font-size:12.5px;letter-spacing:.24em;text-indent:.24em;color:var(--ink-3);
}
.hd .rule{
  width:120px;height:1px;margin:16px auto 0;
  background:linear-gradient(90deg,transparent,var(--line-2),transparent);position:relative;
}
.hd .rule::after{
  content:"☯";position:absolute;left:50%;top:-11px;transform:translateX(-50%);
  background:var(--paper);padding:0 8px;color:var(--line-2);font-size:12px;
}

/* ---------- 卡片 ---------- */
.card{
  background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);margin-bottom:20px;overflow:hidden;
}
.card-hd{
  display:flex;align-items:center;gap:10px;padding:13px 18px;
  border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fdfaf3,#f9f4e9);
}
.card-hd h2{
  margin:0;font-size:15px;font-weight:600;letter-spacing:.14em;color:var(--ink);
}
.tag{
  font-size:11px;color:var(--ink-3);letter-spacing:.08em;font-weight:400;
  border:1px solid var(--line);border-radius:20px;padding:1px 9px;
}
.card-hd .tag{margin-left:auto}
.card-bd{padding:18px}

/* ---------- 表单 ---------- */
.form{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 16px}
.fld{display:flex;flex-direction:column;gap:5px;min-width:0}
.fld.w2{grid-column:span 2}
.fld.w4{grid-column:span 4}
.fld label{font-size:12px;color:var(--ink-3);letter-spacing:.1em}
.fld input,.fld select{
  font-family:inherit;font-size:14.5px;color:var(--ink);
  background:#fffefb;border:1px solid var(--line-2);border-radius:7px;
  padding:8px 10px;height:38px;width:100%;outline:none;
  transition:border-color .15s,box-shadow .15s;
}
.fld input:focus,.fld select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(150,115,58,.12)}
.seg{display:flex;border:1px solid var(--line-2);border-radius:7px;overflow:hidden;height:38px;background:#fffefb}
.seg button{
  flex:1;border:0;background:transparent;font-family:inherit;font-size:13.5px;
  color:var(--ink-2);cursor:pointer;letter-spacing:.1em;transition:.15s;
}
.seg button+button{border-left:1px solid var(--line)}
.seg button.on{background:var(--red);color:#fff}
.seg.ink button.on{background:var(--ink);color:#fff}
.chk{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-2);cursor:pointer;user-select:none}
.chk input{width:15px;height:15px;accent-color:var(--red);margin:0;cursor:pointer}
.acts{display:flex;gap:10px;align-items:center;margin-top:18px;flex-wrap:wrap}
.btn{
  font-family:inherit;font-size:14.5px;letter-spacing:.16em;text-indent:.16em;
  padding:10px 30px;border-radius:7px;border:1px solid var(--red);
  background:var(--red);color:#fff;cursor:pointer;transition:.18s;
}
.btn:hover{background:#8f2b24;border-color:#8f2b24}
.btn.ghost{background:transparent;color:var(--ink-2);border-color:var(--line-2)}
.btn.ghost:hover{background:var(--paper-3);color:var(--ink)}
.hint{font-size:12px;color:var(--ink-3)}

/* ---------- 命主信息 ---------- */
.meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.meta div{background:var(--paper-2);padding:9px 13px}
.meta .k{font-size:11px;color:var(--ink-3);letter-spacing:.1em;display:block}
.meta .v{font-size:14px;color:var(--ink);font-variant-numeric:tabular-nums}

/* ---------- 四柱表 ---------- */
.pillars{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}
.pillars th,.pillars td{border-bottom:1px solid var(--line);text-align:center;padding:8px 4px}
.pillars th:first-child,.pillars td:first-child{
  width:78px;text-align:right;padding-right:12px;font-size:12px;color:var(--ink-3);
  letter-spacing:.1em;border-bottom-color:var(--line);font-weight:400;background:transparent;
}
.pillars thead th{font-size:12.5px;color:var(--ink-3);font-weight:400;letter-spacing:.18em;padding-bottom:10px}
.pillars thead th.day{color:var(--red);font-weight:600}
.pillars tr:last-child td{border-bottom:0}
.gan,.zhi{
  font-size:30px;line-height:1.25;font-weight:500;display:block;
}
.gan{color:var(--ink)}
.zhi{color:var(--ink-2)}
.day-col .gan,.day-col .zhi{color:var(--red)}
.gz-ss{font-size:12.5px;color:var(--ink-2);letter-spacing:.06em}
.gz-ss .main{color:var(--red)}
.hide{font-size:13px;color:var(--ink-2);letter-spacing:.1em}
.hide-ss{font-size:11.5px;color:var(--ink-3);letter-spacing:.02em}
.nayin{font-size:13px;color:var(--gold)}
.xiaozhu{font-size:11px;color:var(--red-2);letter-spacing:.05em}
.wx-木{color:#2f7a4d}
.wx-火{color:#b03a2e}
.wx-土{color:#a87a24}
.wx-金{color:#5f6b7a}
.wx-水{color:#23566e}
.pillars .wuxing-dot{display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:3px;vertical-align:1px}

/* ---------- 五行条 ---------- */
.wxgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.wxbox{border:1px solid var(--line);border-radius:8px;padding:11px 12px;background:var(--paper-2);text-align:center}
.wxbox .n{font-size:13px;letter-spacing:.2em;color:var(--ink-2)}
.wxbox .c{font-size:22px;font-weight:600;margin:2px 0 1px;font-variant-numeric:tabular-nums}
.wxbox .p{font-size:11.5px;color:var(--ink-3)}
.wxbox .bar{height:4px;border-radius:3px;background:var(--paper-3);margin-top:8px;overflow:hidden}
.wxbox .bar i{display:block;height:100%;border-radius:3px}

/* ---------- 关系表 ---------- */
.rel{width:100%;border-collapse:collapse;font-size:14px}
.rel th,.rel td{border:1px solid var(--line);padding:7px 10px;text-align:center}
.rel th{background:var(--paper-3);font-weight:400;font-size:12.5px;color:var(--ink-2);letter-spacing:.1em;width:76px}
.rel td.hit{color:var(--red);font-weight:600}
.rel td.none{color:var(--ink-3)}
.relgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.relitem{
  border:1px solid var(--line);border-radius:8px;padding:10px 13px;background:var(--paper-2);
  display:flex;align-items:center;gap:10px;
}
.relitem .k{font-size:12px;color:var(--ink-3);letter-spacing:.14em;flex:none}
.relitem .v{font-size:14px;color:var(--ink-3);margin-left:auto;text-align:right}
.relitem .v.hit{color:var(--red);font-weight:600}

/* ---------- 大运 ---------- */
.dy-scroll{overflow-x:auto;padding-bottom:4px}
.dy{display:flex;gap:8px;min-width:max-content}
.dycol{
  border:1px solid var(--line);border-radius:8px;background:var(--paper-2);
  padding:9px 4px;min-width:88px;text-align:center;cursor:pointer;transition:.15s;
}
.dycol:hover{border-color:var(--line-2);background:#fffef9}
.dycol.on{border-color:var(--red);background:var(--red-bg);box-shadow:0 0 0 2px rgba(165,52,44,.1)}
.dycol .a{font-size:11.5px;color:var(--ink-3)}
.dycol .g{font-size:21px;line-height:1.3;color:var(--ink);margin-top:2px}
.dycol .z{font-size:21px;line-height:1.3;color:var(--ink-2)}
.dycol .s{font-size:11px;color:var(--ink-3);margin-top:3px}
.dycol .y{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}

/* 流年 */
.ln{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:7px}
.ln .i{
  border:1px solid var(--line);border-radius:7px;padding:6px 4px;text-align:center;
  background:var(--paper-2);cursor:pointer;transition:.15s;
}
.ln .i:hover{border-color:var(--line-2)}
.ln .i.on{border-color:var(--red);background:var(--red-bg)}
.ln .i .y{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.ln .i .g{font-size:15px;color:var(--ink)}
.ln .i .s{font-size:10.5px;color:var(--ink-3)}

/* ---------- 文本块 ---------- */
.prose{font-size:14.5px;color:var(--ink-2);line-height:2}
.prose p{margin:0 0 10px}
.prose p:last-child{margin-bottom:0}
.prose p.hit{
  background:var(--red-bg);border-left:3px solid var(--red-2);
  padding:8px 12px;margin-left:-12px;border-radius:0 6px 6px 0;color:var(--ink);
}
.section-title{
  font-size:13px;color:var(--gold);letter-spacing:.2em;margin:18px 0 8px;
  padding-left:10px;border-left:3px solid var(--gold);
}
.section-title:first-child{margin-top:0}
.note{font-size:12.5px;color:var(--ink-3);line-height:1.9}

/* 知识库 */
.kb-wrap{display:grid;grid-template-columns:230px 1fr;gap:16px}
.kb-side{display:flex;flex-direction:column;gap:8px;min-width:0}
.kb-search{
  font-family:inherit;font-size:13px;padding:7px 10px;border:1px solid var(--line-2);
  border-radius:7px;background:#fffefb;outline:none;width:100%;color:var(--ink);
}
.kb-search:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(150,115,58,.12)}
.kb-list{
  display:flex;flex-direction:column;gap:1px;max-height:500px;overflow:auto;
  border:1px solid var(--line);border-radius:8px;padding:6px;background:#fffefb;
}
.kb-list button{
  flex:0 0 auto;
  font-family:inherit;font-size:13px;text-align:left;padding:6px 10px;border:0;border-radius:6px;
  background:transparent;color:var(--ink-2);cursor:pointer;transition:.12s;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;line-height:1.6;
}
.kb-list button:hover{background:var(--paper-3)}
.kb-list button.on{background:var(--ink);color:#fff}
.kb-body{
  font-size:14px;line-height:2;color:var(--ink-2);white-space:pre-wrap;
  max-height:500px;overflow:auto;
  border:1px solid var(--line);border-radius:8px;background:#fffefb;padding:18px 20px;
}
.kb-list::-webkit-scrollbar,.kb-body::-webkit-scrollbar{width:8px;height:8px}
.kb-list::-webkit-scrollbar-thumb,.kb-body::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:4px}
.kb-title{font-size:15px;color:var(--ink);font-weight:600;letter-spacing:.1em;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}

/* 神煞 */
.ss-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.ss-box{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--paper-2)}
.ss-box .h{font-size:12px;color:var(--ink-3);letter-spacing:.14em;margin-bottom:6px}
.ss-box .b{font-size:13.5px;color:var(--ink-2);line-height:2}
.ss-box .b span{display:inline-block;background:var(--gold-bg);color:var(--gold);border-radius:4px;padding:0 6px;margin:0 4px 4px 0;font-size:12.5px}
.ss-box .b span.red{background:var(--red-bg);color:var(--red)}

/* 提示 */
.empty{text-align:center;color:var(--ink-3);padding:60px 20px;font-size:14px;letter-spacing:.1em}
#result{display:none}
#result.show{display:block;animation:fade .35s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* 页脚 */
.foot{text-align:center;color:var(--ink-3);font-size:12px;line-height:2;margin-top:34px;letter-spacing:.08em}
.foot .sep{color:var(--line-2);margin:0 8px}

/* 可折叠 */
details.fold{border-top:1px solid var(--line)}
details.fold>summary{
  list-style:none;cursor:pointer;padding:11px 18px;font-size:13.5px;color:var(--ink-2);
  letter-spacing:.12em;display:flex;align-items:center;gap:8px;
}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary::before{content:"▸";color:var(--ink-3);transition:.2s;font-size:11px}
details.fold[open]>summary::before{transform:rotate(90deg)}
details.fold>summary:hover{background:var(--paper-3)}
details.fold .inner{padding:16px 18px 18px}
.card>details.fold{border-top:0}
.card>details.fold>summary{
  padding:13px 18px;font-size:15px;font-weight:600;letter-spacing:.14em;color:var(--ink);
  background:linear-gradient(180deg,#fdfaf3,#f9f4e9);
}
.card>details.fold>summary .tag{margin-left:auto}
.card>details.fold>summary::before{order:-1}
.card>details.fold[open]>summary{border-bottom:1px solid var(--line)}

/* 打印 */
@media print{
  body{background:#fff;font-size:12px}
  .wrap{max-width:none;padding:0}
  .no-print{display:none!important}
  #result{display:block!important}
  .card{box-shadow:none;border-color:#c9bda5;break-inside:auto;margin-bottom:12px}
  .card-hd{break-after:avoid;background:#f7f2e7}
  .pillars tr,.dycol,.ln .i,.relitem,.wxbox,.ss-box,.meta div{break-inside:avoid}
  .dy-scroll{overflow:visible}
  .dy{flex-wrap:wrap}
  .kb-body{max-height:none;overflow:visible}
  .hd{padding-bottom:12px}
  .foot{margin-top:16px}
  @page{margin:14mm}
}

@media(max-width:860px){
  .form{grid-template-columns:repeat(2,1fr)}
  .fld.w2,.fld.w4{grid-column:span 2}
  .wxgrid{grid-template-columns:repeat(3,1fr)}
  .ss-grid{grid-template-columns:repeat(2,1fr)}
  .hd h1{font-size:26px}
  .gan,.zhi{font-size:24px}
  .pillars th:first-child,.pillars td:first-child{width:56px;font-size:11px;padding-right:6px}
}
@media(max-width:520px){
  .form{grid-template-columns:1fr}
  .fld.w2,.fld.w4{grid-column:span 1}
  .wrap{padding:16px 12px 60px}
  .gan,.zhi{font-size:21px}
  .hide{font-size:11.5px}
  .hide-ss{font-size:10px}
  .wxgrid{grid-template-columns:repeat(2,1fr)}
  .ss-grid{grid-template-columns:1fr}
  .kb-wrap{grid-template-columns:1fr}
  .kb-list{max-height:200px}
  .kb-body{max-height:none}
}

/* ===== 扩展模块 ===== */
.bm{font-size:16px;color:var(--ink);letter-spacing:.04em;margin-bottom:6px}
.bm-sub{font-size:13.5px;color:var(--ink-2);margin-bottom:14px}
.ss-dist{font-size:13px;color:var(--ink-2);line-height:1.9;background:var(--paper-3);
  border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin-bottom:14px}
.ss-dist b{color:var(--ink-3);font-weight:400;letter-spacing:.1em;margin-right:6px}
.ys-box{background:linear-gradient(180deg,#fbf6ea,#f6efdf);border:1px solid var(--gold-2,#d8c9a6);
  border-radius:8px;padding:12px 16px;font-size:14.5px;color:var(--ink);line-height:1.8}
.ys-t{display:inline-block;font-size:11px;letter-spacing:.2em;color:#fff;background:var(--red);
  border-radius:3px;padding:2px 8px;margin-right:10px;vertical-align:1px}
.ys-alt{font-size:12.5px;color:var(--ink-3);margin-top:8px;line-height:1.7}
.sub-h{font-size:12.5px;letter-spacing:.16em;color:var(--gold);margin:18px 0 8px;
  padding-left:9px;border-left:3px solid var(--gold);line-height:1.2}
.qtbj{font-size:14px;color:var(--ink-2);line-height:1.85}
.msj p{margin:0 0 6px;font-size:14px;color:var(--ink-2);line-height:1.85}
.msj b{color:var(--red);font-weight:600;margin-right:8px;letter-spacing:.1em}
.tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.tabs button{font:inherit;font-size:13px;padding:6px 16px;border:1px solid var(--line-2);
  background:#fffefb;color:var(--ink-2);border-radius:6px;cursor:pointer;transition:.15s}
.tabs button:hover{background:var(--paper-3)}
.tabs button.on{background:var(--red);border-color:var(--red);color:#fff}
.sz-title{font-size:12.5px;letter-spacing:.2em;color:var(--gold);margin-bottom:10px}
.sz-body p{margin:0 0 8px;font-size:14px;line-height:1.95;color:var(--ink-2);text-indent:2em}
.poem{font-size:14px;line-height:1.95;color:var(--ink-2);white-space:pre-wrap}
.poem.verse{font-family:"Kaiti SC","STKaiti",KaiTi,serif;font-size:15px;color:var(--ink);
  letter-spacing:.06em;background:var(--paper-3);border-left:3px solid var(--line-2);
  padding:10px 14px;border-radius:0 6px 6px 0;margin:6px 0}
.poem.small{font-size:13px;color:var(--ink-3)}
.ssg{font-size:13.5px;line-height:1.9;color:var(--ink-2);margin-bottom:8px}
.ssg-tag{display:inline-block;font-size:11px;letter-spacing:.1em;color:var(--gold);
  border:1px solid var(--line-2);border-radius:3px;padding:1px 7px;margin-right:9px;vertical-align:1px}
.kv{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--line)}
.kv-row{display:grid;grid-template-columns:130px 1fr;gap:1px;background:var(--line)}
.kv-k{background:var(--paper-3);padding:9px 13px;font-size:12.5px;color:var(--ink-3);letter-spacing:.1em}
.kv-v{background:var(--paper-2);padding:9px 13px;font-size:13.5px;color:var(--ink);line-height:1.7}
.kv-v .dim,.dim{color:var(--ink-3);font-size:12.5px}
.tsgx{font-size:13.5px;line-height:1.9;color:var(--ink-2);background:var(--paper-3);
  border:1px solid var(--line);border-radius:8px;padding:10px 14px}
.tsgx b{color:var(--red)}
.rel-tb{width:100%;border-collapse:collapse;font-size:13px}
.rel-tb th,.rel-tb td{border-bottom:1px solid var(--line);padding:8px 6px;text-align:center;color:var(--ink-2)}
.rel-tb th{font-size:11.5px;color:var(--ink-3);font-weight:400;letter-spacing:.14em}
.rel-tb td.c{color:var(--red);font-size:16px;letter-spacing:0}
.rel-tb.ls{margin-bottom:18px}
.l60{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:8px;overflow:hidden}
.l60 span{background:var(--paper-2);padding:7px 4px;text-align:center;font-size:13px;color:var(--ink-2)}
.l60 i{display:block;font-style:normal;font-size:10.5px;color:var(--ink-3);letter-spacing:.05em}

/* 神煞全览 / 方位 / 补五行 */
.ss-common{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.ss-common span{background:var(--paper-2);padding:8px 11px;font-size:13px;color:var(--ink-2);letter-spacing:.08em}
.ss-common b{color:var(--gold);font-weight:400;margin-right:8px;font-size:12px;letter-spacing:.1em}
.fang-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(126px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:8px 0 4px}
.fang-grid span{background:var(--paper-2);padding:7px 10px;font-size:13px;color:var(--ink-2)}
.fang-grid i{display:block;font-style:normal;font-size:10.5px;color:var(--ink-3);letter-spacing:.05em}
.bz-blk{border:1px solid var(--line);border-radius:8px;margin:12px 0;overflow:hidden}
.bz-t{background:var(--paper-3);padding:8px 14px;font-size:13px;color:var(--red);letter-spacing:.14em;
  border-bottom:1px solid var(--line)}
.bz-row{display:grid;grid-template-columns:152px 1fr;gap:1px;background:var(--line)}
.bz-k{background:var(--paper-3);padding:9px 13px;font-size:12.5px;color:var(--ink-3);letter-spacing:.08em}
.bz-v{background:var(--paper-2);padding:9px 13px;font-size:13px;color:var(--ink-2);line-height:1.85}
.ln-ss td{font-size:12.5px}
.ln-ss td:nth-child(3){text-align:left;padding-left:14px}
.ln-ss td:first-child{color:var(--ink-3);font-size:12px}
.gz60 td{font-size:12px}
.gz60 td.c{width:52px}
@media(max-width:520px){
  .l60{grid-template-columns:repeat(4,1fr)}
  .kv-row{grid-template-columns:96px 1fr}
  .bz-row{grid-template-columns:88px 1fr}
}
@media print{
  .tabs{display:none}
}

/* 流年详情（断语 / 十二神 / 小限 / 流月限 / 小运） */
.ln-detail{margin:0 0 18px;padding:16px 18px;border:1px solid rgba(140,120,90,.18);border-radius:10px;background:rgba(255,252,246,.6)}
.ln-detail .sub-h{margin-top:0}
.ln-p{margin:0 0 9px;font-size:13.5px;line-height:1.85;color:#4a443b;text-indent:0}
.ln-p.dim{color:#8a8175}
.ln-detail .kv{margin-top:6px}

/* 流年运势：整步大运逐年列出 */
.ln-list{display:grid;gap:14px}
.ln-year{padding:14px 16px;border:1px solid rgba(140,120,90,.16);border-radius:10px;background:rgba(255,253,248,.72)}
.ln-yh{margin:0 0 8px;font-size:14px;color:#3d382f;letter-spacing:.5px}
.ln-yh b{font-size:15.5px;color:#8c5a3c;margin-right:6px}
.ln-age{margin-left:8px;font-size:12px;color:#9a9083}
.ln-year .ln-detail{padding:0;border:0;background:none;margin:0}
.ln-year .sub-h{display:none}

/* 流年运势·时间信息一行化 */
.ln-meta{display:flex;flex-wrap:wrap;gap:5px 20px;margin-top:8px;font-size:12.5px;line-height:1.7;color:#5c5548}
.ln-meta i{font-style:normal;color:#9a8f80;margin-right:5px}
.ln-meta i::after{content:'：'}

/* 称骨四项：按段换行，窄屏不溢出 */
.cg-parts{margin-bottom:6px}
.cg-item{display:inline-block;white-space:nowrap;margin:0 18px 6px 0}

/* 小运 12 格：固定 6 列，避免 11+1 孤行 */
.ln.ln-12{grid-template-columns:repeat(6,1fr)}
@media (max-width:560px){.ln.ln-12{grid-template-columns:repeat(3,1fr)}}

/* ============ 命主资料表单：时辰 / 城市 / 日期 交互 ============ */
.fld-hint{font-size:11.5px;line-height:1.55;color:var(--ink-3);min-height:17px;letter-spacing:.02em}
.fld-hint.warn{color:#a5342c}
.fld-hint.ok{color:#4b6b4b}

/* 时辰 12 格 */
.shi-row{display:flex;gap:9px;align-items:center}
.shi-grid{flex:1;display:grid;grid-template-columns:repeat(12,1fr);gap:3px;min-width:0}
.shi-grid button{
  height:38px;padding:0;border:1px solid var(--line-2);border-radius:6px;
  background:#fffefb;color:var(--ink-2);font-family:inherit;font-size:13.5px;
  cursor:pointer;transition:.14s;line-height:1;
}
.shi-grid button:hover{border-color:var(--gold);color:var(--ink)}
.shi-grid button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.shi-row input[type="time"]{width:104px;flex:none;text-align:center}

/* 日期行 */
.luni-row{display:flex;gap:8px;align-items:center}
.luni-row input#lYear{width:96px;flex:none}
.luni-row select#lMonth{width:86px;flex:none}
.luni-row select#lDay{width:78px;flex:none}

/* 选项行 */
.opt-row{display:flex;gap:18px;align-items:center;height:38px;flex-wrap:wrap}
.opt-row .hint{font-size:11.5px;color:var(--ink-3)}

/* 城市自动完成 */
.ac-wrap{position:relative}
.ac{
  position:absolute;z-index:60;left:0;right:0;top:calc(100% + 5px);
  background:#fffefb;border:1px solid var(--line-2);border-radius:9px;
  box-shadow:0 12px 32px rgba(90,70,40,.16);max-height:268px;overflow:auto;
}
.ac[hidden]{display:none}
.ac-hd{
  position:sticky;top:0;background:#faf7f0;padding:6px 11px;font-size:11px;
  color:var(--ink-3);letter-spacing:.08em;border-bottom:1px solid var(--line);
}
.ac-list{padding:4px}
.ac-item{
  display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  padding:7px 9px;border-radius:6px;font-size:13.5px;color:var(--ink-2);cursor:pointer;
}
.ac-item small{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.ac-item:hover,.ac-item.on{background:rgba(150,115,58,.12);color:var(--ink)}
.ac-empty{padding:12px 10px;font-size:12.5px;color:var(--ink-3);line-height:1.6}

/* 原生日期/时间控件的图标配色 */
.fld input[type="date"]::-webkit-calendar-picker-indicator,
.fld input[type="time"]::-webkit-calendar-picker-indicator{
  opacity:.45;cursor:pointer;transition:opacity .15s;
}
.fld input[type="date"]:hover::-webkit-calendar-picker-indicator,
.fld input[type="time"]:hover::-webkit-calendar-picker-indicator{opacity:.85}

/* ---------------- 出生日期：三段数字输入 + 今天 + 日历 ---------------- */
/* 表单卡需要让日历弹层溢出到卡片外 */
.card.form-card{overflow:visible}
.card.form-card>.card-hd{
  border-radius:calc(var(--r) - 1px) calc(var(--r) - 1px) 0 0;
}

.date-wrap{position:relative;display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap;row-gap:0}
.dt-grp{display:inline-flex;align-items:center;flex:none}

.date-wrap .dt-num{
  width:78px;height:38px;padding:6px 2px;text-align:center;
  font-variant-numeric:tabular-nums;letter-spacing:.06em;
  border-radius:6px;
}
.date-wrap .dt-num.sm{width:56px}
.date-wrap .dt-num::placeholder{color:#c3b9a6;letter-spacing:.02em}
.date-wrap .dt-num:focus{position:relative;z-index:2}
.dt-u{font-size:12.5px;color:var(--ink-3);margin:0 6px 0 3px;flex:none;letter-spacing:.02em}

.dt-btn{
  height:38px;flex:none;padding:0 12px;border:1px solid var(--line-2);border-radius:6px;
  background:#fffefb;color:var(--ink-2);font-family:inherit;font-size:12.5px;
  letter-spacing:.06em;cursor:pointer;transition:.15s;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;
}
.dt-btn:hover{border-color:var(--gold);color:var(--ink);background:#fffef9}
.dt-btn.ico{width:36px;padding:0}
.dt-btn.on{background:var(--ink);border-color:var(--ink);color:#fff}

.date-alt{
  flex:1 1 84px;min-width:0;font-size:12px;color:var(--ink-3);letter-spacing:.02em;
  text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.date-alt.warn{color:#a5342c}

/* 日历弹层 */
.cal{
  position:absolute;z-index:70;left:0;top:calc(100% + 6px);width:258px;
  padding:10px 10px 8px;background:#fffefb;border:1px solid var(--line-2);
  border-radius:10px;box-shadow:0 16px 40px rgba(90,70,40,.18);
}
.cal.up{top:auto;bottom:calc(100% + 6px)}
.cal[hidden]{display:none}
.cal-hd{display:flex;align-items:center;gap:2px;margin-bottom:8px}
.cal-hd button{
  width:23px;height:26px;flex:none;padding:0;border:1px solid transparent;border-radius:5px;
  background:transparent;color:var(--ink-3);font-family:inherit;font-size:13px;
  line-height:1;cursor:pointer;transition:.13s;
}
.cal-hd button:hover{background:var(--paper-3);color:var(--ink)}
.cal .cal-y{
  width:48px;height:26px;padding:0 2px;text-align:center;font-size:13px;
  font-variant-numeric:tabular-nums;border-radius:5px;
}
.cal-yu{font-size:12px;color:var(--ink-3);margin:0 3px 0 1px;flex:none}
.cal .cal-m{
  width:auto;height:26px;padding:0 2px;font-size:12.5px;border-radius:5px;
  margin-left:auto;
}
.cal-wk{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:2px}
.cal-wk span{text-align:center;font-size:11px;color:var(--ink-3);padding:2px 0}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-e{height:28px}
.cal-d{
  height:28px;padding:0;border:0;border-radius:5px;background:transparent;
  color:var(--ink-2);font-family:inherit;font-size:12.5px;
  font-variant-numeric:tabular-nums;cursor:pointer;transition:.13s;line-height:1;
}
.cal-d:hover{background:var(--paper-3);color:var(--ink)}
.cal-d.today{color:var(--red);font-weight:600}
.cal-d.on{background:var(--ink);color:#fff;font-weight:400}
.cal-ft{margin-top:7px;padding-top:7px;border-top:1px solid var(--line);text-align:center}
.cal-ft button{
  font-family:inherit;font-size:12px;color:var(--gold);background:transparent;border:0;
  padding:3px 12px;border-radius:5px;cursor:pointer;letter-spacing:.06em;
}
.cal-ft button:hover{background:var(--gold-bg)}

/* ---------------- 过去十年流年（折叠块） ---------------- */
.ln-prev{
  margin-top:18px;border:1px solid rgba(140,120,90,.18);border-radius:10px;
  background:rgba(255,252,246,.55);overflow:hidden;
}
.ln-prev>summary{
  display:flex;align-items:center;gap:9px;padding:11px 14px;cursor:pointer;
  list-style:none;font-size:12.5px;letter-spacing:.1em;color:var(--gold);
}
.ln-prev>summary::-webkit-details-marker{display:none}
.ln-prev>summary::before{
  content:"▸";font-size:11px;color:var(--ink-3);transition:transform .2s;flex:none;
}
.ln-prev[open]>summary::before{transform:rotate(90deg)}
.ln-prev>summary:hover{background:rgba(150,115,58,.06)}
.ln-prev-n{
  margin-left:auto;font-size:11.5px;color:var(--ink-3);letter-spacing:.06em;
  font-variant-numeric:tabular-nums;
}
.ln-prev-bd{padding:0 12px 12px}
.ln-prev .ln-list{gap:10px}
.ln-prev .ln-year{padding:11px 13px;background:rgba(255,253,248,.6)}

@media(max-width:560px){
  .date-wrap{row-gap:6px}
  .date-wrap .dt-num{width:66px}
  .date-wrap .dt-num.sm{width:48px}
  .dt-u{margin:0 3px 0 2px}
  .dt-btn{padding:0 9px}
  .date-alt{flex:1 1 100%;text-align:left;margin-top:-2px}
}

@media(max-width:700px){
  .shi-grid{grid-template-columns:repeat(6,1fr)}
  .shi-row{flex-wrap:wrap}
  .shi-row input[type="time"]{width:100%}
}

/* 分享链接 */
.share-box{margin-top:12px;display:none;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;color:#5c5548}
.share-box.on{display:flex}
.share-box input{flex:1;min-width:220px;padding:7px 10px;border:1px solid rgba(140,120,90,.25);
  border-radius:6px;background:#fffdf8;font-size:12.5px;color:#3d382f}
.btn[disabled]{opacity:.6;cursor:default}
