/* 本命盘页面样式（浅色金/米主题，与站点一致） */
:root{
  --bg:#f7f2e7; --panel:#fffdf8; --line:#e6d9bd; --ink:#4a3a20; --sub:#8a7a5e;
  --gold:#c08a34; --gold-d:#a6761f; --gold-l:#f7dcae;
  --fire:#d9534f; --earth:#8a9a4b; --air:#6fa8c9; --water:#5d7fc0;
}
*{box-sizing:border-box;}
[hidden]{display:none !important;}
body{
  margin:0;padding:14px 12px 48px;color:var(--ink);
  background:linear-gradient(170deg,#fbf7ee,#f2e9d8 60%,#ede2cc);
  font-family:'PingFang SC','Microsoft YaHei',system-ui,sans-serif;
  -webkit-text-size-adjust:100%;
}
.wrap{max-width:1080px;margin:26px auto 0;}
/* 顶栏：左侧返回主页 + 居中标题（布局参考起名页，配色仍为金/米） */
.top-bar{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;
  padding:0 2px;max-width:1080px;margin:0 auto;
  background:transparent;border-bottom:none;
}
.link-back{
  grid-column:1;justify-self:start;
  display:inline-flex;align-items:center;gap:5px;white-space:nowrap;
  color:var(--sub);text-decoration:none;font-size:14px;
}
.link-back:hover{color:var(--gold-d);}
.page-title{
  grid-column:2;margin:0;white-space:nowrap;
  font-size:20px;font-weight:700;letter-spacing:2px;color:var(--gold-d);
}
.card{
  background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px 18px;
  box-shadow:0 6px 22px rgba(160,130,80,.10);margin-bottom:14px;
}
.card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
/* 可折叠卡片：默认收起，只留标题行 */
.card.fold.collapsed{padding-bottom:14px;}
.card.fold.collapsed > *:not(.card-head){display:none!important;}
.card.fold.collapsed .card-head{margin-bottom:0;}
.fold-btn{
  margin-left:auto;border:1px solid var(--line);background:#fffdf8;color:var(--gold-d);
  font-family:inherit;font-size:11.5px;font-weight:700;padding:5px 13px;border-radius:999px;
  cursor:pointer;line-height:1.2;transition:.15s;white-space:nowrap;
}
.fold-btn:hover{background:#fdf3e2;border-color:#e6cf9c;}
.fold-btn:focus-visible{outline:2px solid #d9a952;outline-offset:1px;}
.card-head h2{font-size:15px;margin:0;color:var(--gold-d);}
.tag{font-size:11.5px;color:var(--sub);background:rgba(247,220,174,.4);border-radius:999px;padding:2px 9px;}
.sub-h{font-size:13px;color:var(--gold-d);margin:16px 0 8px;}
/* 年小限卡头：标签 + 年份下拉（年份是年小限/简评/行运的共同开关） */
.fc-box-head{display:flex;align-items:center;justify-content:space-between;gap:8px;}
#fcYearSel{
  padding:2px 4px;border-radius:7px;border:1px solid var(--line);background:#fff;
  color:var(--gold-d);font-family:inherit;font-size:12px;font-weight:700;
  max-width:96px;cursor:pointer;
}

/* ---------------- 表单 ---------------- */
/* 出生信息卡：略暖的底 + 顶部小标题，和下方结果卡区分开 */
.form-card{background:linear-gradient(180deg,#fffdf8,#fffaf1);}
.form-card .card-head{margin-bottom:14px;}
.form-card .card-head h2{font-size:15.5px;letter-spacing:1px;}
/* 一行四段：日期 > 城市 > 宫位制 > 时分，宽度按内容长短分配 */
.form-grid{display:grid;grid-template-columns:1.5fr 1.05fr 1.35fr 1.1fr;gap:12px;align-items:start;}
.field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.field label{font-size:12.5px;color:var(--sub);font-weight:600;letter-spacing:.3px;}
.field input,.field select,.pick-btn{
  width:100%;min-width:0;padding:10px 11px;border-radius:10px;border:1px solid var(--line);
  background:#fff;font-size:14px;color:var(--ink);font-family:inherit;line-height:1.3;
  transition:border-color .15s,box-shadow .15s,background .15s;
}
.field select,.pick-btn{cursor:pointer;}
/* 悬停/聚焦：金色描边 + 柔和光圈，操作目标更明确 */
.field select:hover,.field input:hover,.pick-btn:hover{border-color:#dfc690;background:#fffdf7;}
.field select:focus,.field input:focus,.pick-btn:focus-visible{
  outline:none;border-color:#d9a952;box-shadow:0 0 0 3px rgba(217,169,82,.16);
}
.pick-btn{text-align:left;cursor:pointer;position:relative;padding-right:30px;}
.pick-btn::after{content:"▾";position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--sub);font-size:12px;}
.pick-btn[disabled]{color:#a99b83;}
/* 共享日期按钮自带渐变底与内阴影，这里统一成本页的纯白输入框外观 */
.form-card .birth-pick-btn{box-shadow:none;background:#fff;border-color:var(--line);}
/* 出生时分：时 : 分 合成一个连贯控件，比两个空荡的长下拉更好读 */
.hm{
  display:flex;align-items:center;gap:1px;min-width:0;
  border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 9px;
  transition:border-color .15s,box-shadow .15s,background .15s;
}
.hm:hover{border-color:#dfc690;background:#fffdf7;}
.hm:focus-within{border-color:#d9a952;box-shadow:0 0 0 3px rgba(217,169,82,.16);}
.hm select{
  flex:1 1 0;min-width:0;width:auto;border:none;background:transparent;box-shadow:none;
  text-align:center;padding:0;font-variant-numeric:tabular-nums;height:38px;
}
.hm select:hover,.hm select:focus{border:none;background:transparent;box-shadow:none;outline:none;}
.hm-colon{flex:0 0 auto;color:var(--sub);font-weight:700;font-size:14px;line-height:1;margin:0 5px 0 4px;}
/* 城市时区信息 + 高级校准开关：一条虚线分隔的脚注行 */
.form-foot{
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  margin-top:14px;padding-top:11px;border-top:1px dashed #efe4cf;
}
.city-meta{margin:0;font-size:12.5px;color:var(--gold-d);font-weight:600;font-variant-numeric:tabular-nums;}
.adv-toggle{
  display:inline-flex;align-items:center;gap:6px;margin:0;
  padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:#fffdf8;
  font-size:12px;color:var(--sub);cursor:pointer;transition:.15s;
}
.adv-toggle:hover{border-color:#e6cf9c;background:#fffaf0;color:var(--gold-d);}
.adv-toggle input{accent-color:var(--gold);margin:0;}
.form-grid.adv{
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:12px;padding:12px;border:1px dashed var(--line);border-radius:12px;background:rgba(255,252,245,.7);
}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}
/* 排盘表单的操作按钮（排盘 / 用当前定位）：两个按钮平分整行，分别贴住左右两侧 */
.form-card .actions{margin-top:18px;justify-content:space-between;}
.form-card .actions .btn{flex:1 1 0;min-width:0;text-align:center;padding-left:12px;padding-right:12px;}
.btn{
  border:none;border-radius:999px;padding:11px 26px;font-size:14.5px;font-weight:700;cursor:pointer;
  font-family:inherit;background:#fff;color:var(--gold-d);border:1px solid var(--line);
  transition:transform .12s,box-shadow .15s,background .15s,border-color .15s;
}
.btn.primary{background:linear-gradient(180deg,#d9a952,#c08a34);color:#fff;border:none;box-shadow:0 4px 14px rgba(192,138,52,.32);}
.btn.primary:hover{box-shadow:0 6px 18px rgba(192,138,52,.4);transform:translateY(-1px);}
.btn.ghost:hover{background:#fffaf0;border-color:#e6cf9c;}
.btn:active{transform:translateY(0);}
.btn[disabled]{opacity:.6;cursor:not-allowed;}
.hint{margin:10px 0 0;font-size:12.5px;color:#b4522f;}
.empty{text-align:center;color:var(--sub);font-size:13.5px;}
select.mini{padding:5px 9px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:12.5px;color:var(--gold-d);font-family:inherit;}

/* 中等宽度：日期、城市各占整行，出生时分与宫位制并排 */
@media (max-width:880px){
  .form-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;
    grid-template-areas:"date date" "time house" "city city";
  }
  .f-date{grid-area:date;}
  .f-time{grid-area:time;}
  .f-house{grid-area:house;}
  .f-city{grid-area:city;}
  .form-grid.adv{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:none;}
  .form-grid.adv .field{grid-area:auto;}
  .form-grid.adv .field:last-child{grid-column:1 / -1;}
}
/* 手机端：单列，每项独占整行 */
@media (max-width:560px){
  .form-grid{
    grid-template-columns:1fr;gap:10px;
    grid-template-areas:"date" "time" "city" "house";
  }
  .form-grid.adv{grid-template-columns:repeat(1,minmax(0,1fr));}
  .form-grid.adv .field:last-child{grid-column:auto;}
  .field label{font-size:12px;}
  .field input,.field select,.pick-btn{padding:11px 10px;font-size:15px;}
  .hm select{padding:0;height:40px;font-size:15px;}
  .form-foot{margin-top:12px;padding-top:10px;}
  /* 星盘尽量撑满屏宽：卡片与页面左右内边距收窄 */
  body{padding-left:8px;padding-right:8px;}
  .wrap{margin-top:16px;}
  .top-bar{padding:0 2px;gap:6px;}
  .link-back{font-size:13px;}
  .page-title{font-size:17px;letter-spacing:1px;}
  .card{padding:14px 10px;}
  .wheel-card{padding:12px 4px;}
  svg{max-width:100%;}
  /* 元素/模态标签：缩小到能一行排完 */
  .chip{padding:3px 8px;font-size:11px;}
  .chip-flow{gap:5px;}
}

/* ---------------- 结果区 ---------------- */
.grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:14px;align-items:start;}
@media (max-width:880px){.grid{grid-template-columns:1fr;}}
.span-all{grid-column:1 / -1;}
.col{min-width:0;}
svg{width:100%;height:auto;max-width:560px;display:block;margin:0 auto;}
.wheel-card{display:flex;flex-direction:column;}
.legend{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:6px;font-size:11.5px;color:var(--sub);}
.legend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:4px;vertical-align:middle;}

.angles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;}
@media (max-width:560px){.angles{grid-template-columns:repeat(2,minmax(0,1fr));}}
.ang{border:1px solid var(--line);border-radius:12px;padding:9px 11px;background:linear-gradient(140deg,#fffcf5,#fdf4e4);}
.ang b{display:block;font-size:11.5px;color:var(--sub);font-weight:600;margin-bottom:2px;}
.ang span{font-size:15.5px;font-weight:800;color:var(--gold-d);}
.chip-line{margin-top:10px;}
.chip-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:6px;}
/* 元素与三模态合并成一条流：铺满整行才换行（子行用 display:contents 取消自身盒子） */
.chip-flow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.chip-flow>.chip-row{display:contents;}
.chip{padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:700;color:#fff;white-space:nowrap;}
.c0{background:var(--fire);}.c1{background:var(--earth);}.c2{background:var(--air);}.c3{background:var(--water);}
.cm{background:#a6761f;}

table.tbl{width:100%;border-collapse:collapse;font-size:13.5px;}
/* 列间竖线 + 表头淡底：让多列表格读起来更整齐 */
table.tbl th,table.tbl td{
  padding:7px 8px;text-align:left;white-space:nowrap;
  border-bottom:1px solid #f0e7d5;border-right:1px solid #f4ecdc;
}
table.tbl th{font-size:11.5px;color:var(--sub);font-weight:700;border-bottom:1px solid #e8d9bb;background:#fdf8ef;}
table.tbl th:last-child,table.tbl td:last-child{border-right:none;}
table.tbl td.num{text-align:right;font-variant-numeric:tabular-nums;}
table.tbl tr:last-child td{border-bottom:none;}
/* 长文案列（如行运「提示」）：允许换行，避免把表格和页面撑宽 */
table.tbl th.wrap,table.tbl td.wrap{white-space:normal;word-break:break-word;line-height:1.5;min-width:7em;}
/* 表格外层滚动容器：内容再宽也只在自己内部横向滚，不撑破页面 */
.tbl-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
/* 宽表（相位表）：固定不换行，超出部分在卡片内左右滚动 */
table.tbl.wide{min-width:920px;}
table.tbl.wide th,table.tbl.wide td{white-space:nowrap;}
table.tbl.wide th.wrap,table.tbl.wide td.wrap{white-space:nowrap;word-break:normal;min-width:0;}
.tbl-note{font-size:11.5px;color:var(--sub);line-height:1.6;margin:0 0 8px;}
.tbl-hint{color:#a6761f;margin-left:6px;white-space:nowrap;}
.tbl-scroll table.tbl{min-width:0;}
@media (max-width:560px){
  table.tbl{font-size:12.5px;}
  table.tbl th,table.tbl td{padding:6px 6px;}
  table.tbl th.wrap,table.tbl td.wrap{min-width:6em;}
}
.sym{font-size:15px;}
/* 星体配色：星盘、行星位置、相位表、行运表统一使用同一套颜色 */
/* 星体颜色：双类选择器提高权重，压过 .fc-box span / .fc-sum span 等容器规则 */
.pl{font-weight:600;}
.pl.pl-sun{color:#c9821b;}
.pl.pl-moon{color:#6b7f96;}
.pl.pl-mercury{color:#3f8f5f;}
.pl.pl-venus{color:#c25d8a;}
.pl.pl-mars{color:#b93b2f;}
.pl.pl-jupiter{color:#7d5aa6;}
.pl.pl-saturn{color:#6b5a3e;}
.pl.pl-uranus{color:#2f8fa8;}
.pl.pl-neptune{color:#4a6bb5;}
.pl.pl-pluto{color:#7a3f5a;}
.pl.pl-node{color:#8a7a5e;}
.rx{color:#c0392b;font-weight:800;font-size:11.5px;margin-left:3px;}
/* 宫位：紧凑网格（12 宫铺成 2~3 列，每格带生活主题，省掉 12 行表格的高度） */
.cusp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
.cusp-item{
  display:flex;flex-direction:column;gap:1px;padding:6px 8px;border-radius:8px;
  background:#fffdf8;border:1px solid #f1e8d6;min-width:0;
}
.cusp-item b{font-size:11px;color:var(--sub);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cusp-item span{font-size:12px;color:#4a3a20;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
@media (max-width:560px){
  .cusp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;}
  .cusp-item{padding:5px 7px;}
  .cusp-item b{font-size:10.5px;}
  .cusp-item span{font-size:11.5px;}
}

/* 时间轴：可点击切换查看某一部大运 */
.timeline{cursor:pointer;}
.timeline i{transition:.15s;position:relative;}
.timeline i:hover{filter:brightness(1.12);}
.timeline i.sel{box-shadow:inset 0 0 0 2px #7a5510;filter:brightness(1.15);}
.tl-tip{color:#a6761f;}
.tl-list > span{cursor:pointer;transition:.15s;border:1px solid transparent;}
.tl-list > span:hover{border-color:#e6cf9c;}
.tl-list > span.sel{background:#a6761f;color:#fff;font-weight:700;box-shadow:0 2px 6px rgba(166,118,31,.28);}
.tl-list > span:focus-visible{outline:2px solid #d9a952;outline-offset:1px;}

/* ---------------- 大运 / 流年 ---------------- */
.fc-top{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px;}
@media (max-width:700px){.fc-top{grid-template-columns:1fr;}}
.fc-box{
  border:1px solid var(--line);border-radius:12px;padding:10px 12px;
  background:linear-gradient(140deg,#fffdf8,#fdf4e4);display:flex;flex-direction:column;gap:3px;
}
.fc-box.hi{border-color:rgba(192,138,52,.55);background:linear-gradient(140deg,#fff7e6,#fbeed4);}
.fc-box b{font-size:11.5px;color:var(--sub);font-weight:600;}
.fc-box strong{font-size:17px;color:var(--gold-d);}
/* 年小限一行要装下「第 N 宫 · 今年重心：XXXX」，字号略小并避免单字换行 */
#fcProfHouse{font-size:15px;line-height:1.55;text-wrap:pretty;}
.fc-box span{font-size:12px;color:var(--sub);}
.fc-box em{font-size:11.5px;color:#8a6d1f;font-style:normal;line-height:1.5;text-wrap:pretty;}
/* 财富 / 健康 / 婚姻 简评 */
.fc-sums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:6px;}
.fc-sum{
  border:1px solid var(--line);border-radius:12px;padding:9px 11px;
  background:#fffdf8;display:flex;flex-direction:column;gap:3px;
}
.fc-sum b{font-size:12.5px;color:var(--gold-d);font-weight:700;}
.fc-sum span{font-size:13.5px;color:#3d2f18;line-height:1.75;}
.fc-sum-note{font-size:12px;color:var(--sub);margin:2px 0 12px;}
.fc-why{font-size:11.5px;color:#9a8a6c;line-height:1.55;margin-top:3px;}
@media (max-width:700px){
  .fc-sums{grid-template-columns:1fr;gap:7px;}
  .fc-sum{flex-direction:row;align-items:flex-start;gap:8px;padding:8px 10px;}
  .fc-sum b{flex:0 0 34px;}
}

.timeline-wrap{margin-top:6px;}
.tl-caption{font-size:11.5px;color:var(--sub);margin-bottom:6px;}
.timeline{display:flex;height:22px;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:#fff;}
.timeline i{display:block;height:100%;border-right:1px solid rgba(255,255,255,.65);}
.timeline i.cur{box-shadow:inset 0 0 0 2px #a6761f;}
.tl-list{
  display:flex;gap:6px;margin-top:8px;padding:2px 0 6px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;
}
.tl-list > span{
  flex:0 0 100px;display:flex;flex-direction:column;gap:1px;
  padding:6px 9px;border-radius:9px;background:#fffdf8;border:1px solid #f1e8d6;
  scroll-snap-align:start;
}
.tl-list > span b{font-size:12px;font-weight:700;color:#4a3a20;white-space:nowrap;}
.tl-list > span i{font-style:normal;font-size:10.5px;color:var(--sub);white-space:nowrap;}
.tl-list > span.cur:not(.sel){border-color:#d9a952;background:#fffaf0;}
.tl-list > span.sel b,.tl-list > span.sel i{color:#fff;}
/* 选中卡片是金底，星体名统一转白，否则深色星名读不清 */
.tl-list > span.sel .pl{color:#fff;}

/* ---------------- 智能解读 ---------------- */
.ai-card{background:linear-gradient(180deg,#fffdf8,#fffaf1);}
/* 工具条：左侧侧重胶囊 + 右侧操作按钮 */
.ai-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.ai-seg{display:flex;gap:6px;flex-wrap:wrap;}
.ai-chip{
  border:1px solid var(--line);background:#fffdf8;color:var(--sub);
  font-family:inherit;font-size:12.5px;font-weight:600;padding:6px 14px;border-radius:999px;
  cursor:pointer;white-space:nowrap;transition:.15s;line-height:1.4;
}
.ai-chip:hover{border-color:#e2c37f;color:var(--gold-d);background:#fffaf0;}
.ai-chip:focus-visible{outline:2px solid #d9a952;outline-offset:1px;}
.ai-chip.sel{
  background:linear-gradient(180deg,#d9a952,#c08a34);border-color:transparent;color:#fff;
  box-shadow:0 3px 10px rgba(192,138,52,.28);
}
.ai-acts{display:flex;gap:8px;flex-shrink:0;align-items:center;}
.ai-acts .btn{padding:9px 22px;font-size:14px;}
/* 中断生成：低强调的文字按钮，避免和「停止滚动」抢注意力 */
.hint:empty{display:none;}
/* 解读正文：分段标题带金条与细分隔线，列表改成金点，长文更好读 */
.ai-out{
  margin-top:14px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;
  background:#fffdf9;font-size:14px;line-height:1.9;color:#3f3220;
  max-height:62vh;overflow:auto;-webkit-overflow-scrolling:touch;word-break:break-word;
}
.ai-out h3{
  display:flex;align-items:center;gap:8px;
  font-size:14.5px;color:var(--gold-d);margin:18px 0 9px;padding-bottom:6px;
  border-bottom:1px dashed #efe4cf;
}
.ai-out h3::before{
  content:"";flex:0 0 auto;width:3px;height:14px;border-radius:2px;
  background:linear-gradient(180deg,#d9a952,#c08a34);
}
.ai-out h3:first-child{margin-top:0;}
.ai-out p{margin:0 0 9px;}
.ai-out ul{margin:0 0 12px;padding-left:0;list-style:none;}
.ai-out li{position:relative;padding-left:15px;margin-bottom:6px;}
.ai-out li::before{
  content:"";position:absolute;left:2px;top:.72em;width:5px;height:5px;
  border-radius:50%;background:#d9a952;
}
.ai-sys{color:var(--sub);font-size:12.5px;}
@media (max-width:560px){
  .ai-bar{gap:10px;}
  .ai-seg{width:100%;gap:5px;}
  .ai-chip{flex:1 1 0;padding:7px 4px;text-align:center;}
  .ai-acts{width:100%;flex-wrap:wrap;}
  .ai-acts .btn{flex:1 1 0;padding:10px 12px;}
  .ai-out{padding:14px 13px;font-size:13.5px;}
}
.foot{font-size:11.5px;color:var(--sub);line-height:1.7;margin:18px 2px 0;text-align:center;}

/* 加载遮罩 */
.loading{
  position:fixed;inset:0;z-index:99;display:flex;align-items:center;justify-content:center;
  background:rgba(252,248,240,.75);backdrop-filter:blur(2px);
}
.loading .ring{
  width:34px;height:34px;border-radius:50%;border:3px solid rgba(192,138,52,.25);
  border-top-color:var(--gold);animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}
