/* ============================================================
   天机 · 视觉主题 v2
   深墨蓝夜空 × 鎏金 × 玉青 · 玄学高级感
   ============================================================ */
:root{
  --bg0:#06060e; --bg1:#0d0c1f; --bg2:#151130;
  --gold:#d9b365; --gold-bright:#f3dfa4; --gold-deep:#a8823e;
  --jade:#4ecfa0; --ink:#efecfa; --dim:#a8a5c5; --faint:#6f6d8c;
  --line:rgba(217,179,101,.16); --line-strong:rgba(217,179,101,.38);
  --card:rgba(20,18,40,.62); --card-deep:rgba(10,9,24,.6);
  --danger:#ff6b6b;
  --serif:'Noto Serif SC',serif; --sans:'Noto Sans SC',system-ui,sans-serif;
  --radius:18px;
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none !important}   /* 修复 display 类覆盖 hidden 的问题 */
html{scroll-behavior:smooth}
body{
  font-family:var(--sans); color:var(--ink); line-height:1.65;
  background:
    radial-gradient(1100px 700px at 85% -8%, rgba(64,44,140,.36) 0%, transparent 55%),
    radial-gradient(900px 650px at -10% 18%, rgba(24,66,120,.30) 0%, transparent 52%),
    radial-gradient(700px 500px at 50% 115%, rgba(120,84,30,.14) 0%, transparent 60%),
    linear-gradient(168deg,var(--bg0),var(--bg1) 52%,var(--bg2));
  background-attachment:fixed;
  min-height:100vh; overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
body.dialog-open{overflow:hidden}
::selection{background:rgba(217,179,101,.32);color:#fff}
#stars{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.85}
.bagua-bg{
  position:fixed;z-index:0;right:-16vmin;bottom:-18vmin;font-size:62vmin;
  color:rgba(217,179,101,.035);pointer-events:none;user-select:none;
  animation:spin 160s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------------- hero 头部 ---------------- */
.site-header{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:44px 24px 10px;text-align:center}
.brand{display:inline-flex;flex-direction:column;align-items:center;gap:10px}
.brand-mark{
  width:52px;height:52px;display:grid;place-items:center;
  font-family:var(--serif);font-size:26px;font-weight:900;color:var(--gold-bright);
  border:1.5px solid var(--line-strong);border-radius:12px;
  background:linear-gradient(160deg,rgba(217,179,101,.14),rgba(217,179,101,.03));
  box-shadow:0 0 24px rgba(217,179,101,.18), inset 0 0 12px rgba(217,179,101,.08);
  letter-spacing:0;
}
.brand-text h1{
  font-family:'Ma Shan Zheng',var(--serif);font-weight:400;font-size:44px;letter-spacing:8px;text-indent:8px;
  background:linear-gradient(92deg,#fff0c4 5%,var(--gold) 45%,#b98d3e 75%,#eddca0 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 2px 18px rgba(217,179,101,.25));
}
.brand-text p{
  color:var(--dim);font-size:12px;letter-spacing:6px;text-indent:6px;margin-top:6px;
  display:flex;align-items:center;justify-content:center;gap:14px;
}
.brand-text p::before,.brand-text p::after{
  content:'';width:56px;height:1px;
  background:linear-gradient(90deg,transparent,var(--line-strong));
}
.brand-text p::after{background:linear-gradient(90deg,var(--line-strong),transparent)}
#btnHistory{position:absolute;top:30px;right:26px}

/* ---------------- 布局 ---------------- */
main.layout{
  position:relative;z-index:1;max-width:1180px;margin:26px auto 0;padding:0 24px 40px;
  display:grid;grid-template-columns:396px minmax(0,1fr);gap:24px;align-items:start;
}
.col-left{position:sticky;top:20px}
.col-right{display:flex;flex-direction:column;gap:22px;min-width:0}

/* ---------------- 面板 ---------------- */
.panel{padding:26px 26px 24px;border-radius:var(--radius);animation:rise .5s cubic-bezier(.2,.8,.25,1) both}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.glass{
  background:var(--card);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid var(--line);
  box-shadow:0 18px 50px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.05);
}
.panel-title{
  font-family:var(--serif);font-weight:700;font-size:17px;color:var(--gold-bright);
  letter-spacing:2px;margin-bottom:20px;display:flex;align-items:center;gap:10px;
}
.panel-title::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--line-strong),transparent)}

/* ---------------- 模式切换 ---------------- */
.mode-tabs{
  display:flex;gap:4px;padding:4px;border-radius:13px;margin-bottom:22px;
  background:var(--card-deep);border:1px solid rgba(217,179,101,.16);
}
.mode-tabs button{
  flex:1;padding:11px 6px;border-radius:10px;border:none;cursor:pointer;
  font-family:var(--serif);font-size:14.5px;font-weight:600;letter-spacing:1px;
  color:var(--dim);background:transparent;transition:.22s;
}
.mode-tabs button:hover{color:var(--ink)}
.mode-tabs button.active{
  color:#221a08;
  background:linear-gradient(120deg,var(--gold-bright),var(--gold));
  box-shadow:0 3px 14px rgba(217,179,101,.35);
}
.daily-profile-panel{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:11px;align-items:center;margin:-9px 0 19px;padding:12px;border:1px solid rgba(154,116,58,.24);border-radius:14px;background:linear-gradient(135deg,var(--surface-gold),var(--paper-subtle))}
.daily-profile-panel[hidden]{display:none}
.daily-profile-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--gold-deep);color:#fff;font:700 15px/1 var(--serif)}
.daily-profile-copy{min-width:0;display:grid;gap:2px}
.daily-profile-copy span{color:var(--gold-deep);font:600 9.5px/1.4 var(--sans);letter-spacing:.5px}
.daily-profile-copy b{overflow:hidden;color:var(--ink);font:700 13px/1.4 var(--serif);text-overflow:ellipsis;white-space:nowrap}
.daily-profile-copy p{margin:0;color:var(--dim);font-size:10.5px;line-height:1.65}
.daily-profile-panel .ghost-btn{min-height:34px;padding:7px 9px;white-space:nowrap;font-size:10px}
html[data-theme="dark"] .daily-profile-panel{border-color:rgba(154,116,58,.24);background:linear-gradient(135deg,var(--surface-gold),var(--surface-control))}
@media(max-width:470px){.daily-profile-panel{grid-template-columns:38px minmax(0,1fr);gap:9px;padding:10px}.daily-profile-mark{width:36px;height:36px}.daily-profile-panel .ghost-btn{grid-column:2;justify-self:start;min-height:30px;padding:5px 8px}}

/* ---------------- 上传区 ---------------- */
.dropzone{
  border:1.5px dashed rgba(217,179,101,.35);border-radius:14px;
  background:var(--card-deep);text-align:center;padding:22px 14px;cursor:pointer;transition:.22s;
}
.dropzone:hover,.dropzone.dragover{border-color:var(--gold);background:rgba(217,179,101,.05);box-shadow:0 0 0 3px rgba(217,179,101,.10)}
.dz-icon{font-size:30px;margin-bottom:8px}
.dropzone p{color:var(--dim);font-size:13px;letter-spacing:.5px}
.dropzone .dz-sub{color:var(--faint);font-size:11px;margin-top:5px;line-height:1.6}
#dzPreview{display:flex;flex-direction:column;align-items:center;gap:10px}
#dzPreview img{max-width:100%;max-height:220px;border-radius:10px;border:1px solid var(--line);box-shadow:0 8px 26px rgba(0,0,0,.45)}

/* ---------------- 表单 ---------------- */
.field{margin-bottom:17px}
.field>label{display:block;font-size:12.5px;color:var(--dim);margin-bottom:7px;letter-spacing:1.5px}
.opt{font-size:10px;color:var(--faint);border:1px solid rgba(255,255,255,.14);border-radius:5px;padding:1px 5px;margin-left:6px;letter-spacing:0}
input[type=text],input[type=number],select{
  width:100%;padding:11px 13px;border-radius:11px;font-size:14.5px;font-family:var(--sans);
  background:var(--card-deep);border:1px solid rgba(217,179,101,.18);color:var(--ink);
  transition:border-color .2s, box-shadow .2s;
}
input:focus,select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(217,179,101,.14)}
input::placeholder{color:var(--faint)}
input:disabled,select:disabled{opacity:.4}
select{
  appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);
  background-position:calc(100% - 17px) 55%,calc(100% - 12px) 55%;background-size:5px 5px;background-repeat:no-repeat;
}
.grid3{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px}
.grid2{display:grid;grid-template-columns:1.5fr 1fr;gap:10px}
.grid3 label,.grid2 label{font-size:11px;letter-spacing:1px}
.seg{
  display:flex;gap:4px;padding:4px;border-radius:12px;
  background:var(--card-deep);border:1px solid rgba(217,179,101,.14);
}
.seg button{
  flex:1;padding:9px 6px;border-radius:9px;border:none;cursor:pointer;
  font-family:var(--sans);font-size:13.5px;color:var(--dim);background:transparent;transition:.22s;
}
.seg button:hover{color:var(--ink)}
.seg button.active{
  color:#221a08;font-weight:700;
  background:linear-gradient(120deg,var(--gold-bright),var(--gold));
  box-shadow:0 3px 12px rgba(217,179,101,.35);
}
.check{min-height:40px;display:inline-flex;align-items:center;gap:8px;padding-block:4px;font-size:12px;color:var(--dim);margin-top:5px;cursor:pointer;user-select:none}
.check input{width:18px;height:18px;flex:0 0 18px;accent-color:var(--gold)}
.check-row{display:flex;flex-wrap:wrap;gap:2px 18px}
.time-mode-seg{margin:7px 0 0}
.time-mode-seg button{font-size:12.5px}
.time-mode-hint{
  margin:7px 2px 9px;color:var(--faint);font-size:10.5px;line-height:1.55;
}
.time-row{grid-template-columns:1fr}
.time-row.is-shichen{grid-template-columns:1fr}
.longitude-override{display:block;margin-top:12px}
.longitude-override>span{display:block;margin-bottom:6px;font-size:11.5px;color:var(--dim)}
.longitude-override i{font-style:normal;color:var(--faint);font-size:10px;margin-left:5px}
.longitude-override input{padding:10px 12px;font-variant-numeric:tabular-nums}
.hint{font-size:11px;color:var(--faint);margin-top:12px;line-height:1.6;text-align:center}
.birthplace-hint{text-align:left;margin-top:7px;padding-left:2px}
.birthplace-hint b{color:var(--gold);font-weight:600}

/* 站内选择器触发器：避免系统 select 弹层跳出页面视觉 */
.picker-trigger{
  width:100%;min-width:0;min-height:52px;padding:7px 11px 7px 9px;
  display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;
  border-radius:11px;border:1px solid rgba(217,179,101,.18);color:var(--ink);
  background:var(--card-deep);font-family:var(--sans);
  transition:border-color .2s,box-shadow .2s,background .2s,transform .2s;
}
.picker-trigger:hover{border-color:rgba(217,179,101,.4);background:rgba(217,179,101,.045)}
.picker-trigger:focus-visible{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(217,179,101,.14)}
.picker-trigger[aria-expanded="true"]{border-color:var(--gold);box-shadow:0 0 0 3px rgba(217,179,101,.12);background:rgba(217,179,101,.055)}
.picker-trigger:disabled{opacity:.64;cursor:not-allowed;transform:none}
.picker-trigger-mark{
  flex:0 0 31px;width:31px;height:31px;display:grid;place-items:center;
  border-radius:9px;border:1px solid rgba(217,179,101,.26);
  color:var(--gold-bright);font-family:var(--serif);font-weight:700;font-size:13px;
  background:linear-gradient(145deg,rgba(217,179,101,.14),rgba(217,179,101,.025));
  box-shadow:inset 0 1px rgba(255,255,255,.04),0 0 15px rgba(217,179,101,.07);
}
.picker-trigger-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:1px}
.picker-trigger-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;line-height:1.45;color:var(--ink)}
.picker-trigger-value.is-placeholder{color:var(--dim)}
.picker-trigger-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;line-height:1.35;color:var(--faint);letter-spacing:.25px}
.picker-trigger-arrow{flex:0 0 auto;color:var(--gold);font-family:serif;font-size:23px;line-height:1;transform:rotate(90deg);transition:transform .2s}
.picker-trigger[aria-expanded="true"] .picker-trigger-arrow{transform:rotate(-90deg)}
.location-trigger{min-height:58px}

/* ---------------- 统一弹层 / bottom sheet ---------------- */
.app-dialog{
  position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px;
  opacity:0;pointer-events:none;transition:opacity .2s ease;
}
.app-dialog.is-open{opacity:1;pointer-events:auto}
#confirmDialog{z-index:110}
.app-dialog-mask{
  position:absolute;inset:0;background:rgba(3,3,12,.74);
  backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
}
.app-dialog-surface{
  position:relative;width:min(540px,100%);max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow:hidden;
  display:flex;flex-direction:column;padding:24px;border-radius:22px;
  background:
    radial-gradient(520px 240px at 78% -8%,rgba(79,54,161,.20),transparent 62%),
    linear-gradient(180deg,rgba(24,20,51,.985),rgba(9,8,23,.99));
  background-color:#090817;
  border:1px solid rgba(217,179,101,.25);
  box-shadow:0 26px 90px rgba(0,0,0,.72),inset 0 1px 0 rgba(255,255,255,.055),0 0 0 1px rgba(0,0,0,.24);
  transform:translateY(14px) scale(.985);transition:transform .24s cubic-bezier(.2,.8,.25,1);
}
.app-dialog.is-open .app-dialog-surface{transform:none}
.app-dialog-surface::before{
  content:'';position:absolute;inset:8px;border:1px solid rgba(217,179,101,.055);border-radius:16px;pointer-events:none;
}
.dialog-glow{
  position:absolute;width:170px;height:170px;right:-80px;top:-90px;border-radius:50%;
  border:1px solid rgba(217,179,101,.08);box-shadow:0 0 70px rgba(217,179,101,.10);pointer-events:none;
}
.app-dialog-head{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.dialog-kicker{display:block;margin-bottom:4px;color:var(--gold);font-size:9.5px;letter-spacing:2.4px;text-transform:uppercase}
.app-dialog-head h3,.confirm-dialog-surface h3{
  color:var(--gold-bright);font-family:var(--serif);font-size:20px;line-height:1.45;letter-spacing:2px;font-weight:700;
}
.dialog-icon-btn{
  flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;cursor:pointer;
  border:1px solid var(--line);background:rgba(255,255,255,.025);color:var(--dim);font-size:13px;transition:.2s;
}
.dialog-icon-btn:hover,.dialog-icon-btn:focus-visible{outline:none;color:var(--gold-bright);border-color:var(--line-strong);background:rgba(217,179,101,.07)}
.dialog-lead{font-size:12px;color:var(--dim);margin:-2px 0 15px;line-height:1.7}

.location-draft-summary{
  position:relative;min-height:34px;margin:0 0 14px;padding:7px 12px 7px 29px;border-radius:10px;
  border:1px solid rgba(78,207,160,.16);background:rgba(78,207,160,.045);
  color:var(--jade);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.location-draft-summary::before{content:'◇';position:absolute;left:11px;top:7px;color:var(--jade)}
.location-draft-summary.is-empty{color:var(--faint);border-color:rgba(255,255,255,.07);background:rgba(255,255,255,.018)}
.location-draft-summary.is-empty::before{color:var(--faint)}
.location-stepper{
  position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:4px;margin-bottom:14px;
  border-radius:13px;border:1px solid rgba(217,179,101,.12);background:rgba(6,6,18,.48);
}
.location-step{
  min-width:0;padding:7px 8px;display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto auto;
  column-gap:7px;text-align:left;border:none;border-radius:9px;background:transparent;color:var(--faint);cursor:pointer;transition:.2s;
}
.location-step>span{
  grid-row:1/3;width:24px;height:24px;align-self:center;display:grid;place-items:center;border-radius:50%;
  border:1px solid rgba(255,255,255,.1);font-size:10px;color:var(--faint);transition:.2s;
}
.location-step b{align-self:end;font-size:11px;font-weight:500;line-height:1.25;color:inherit}
.location-step small{font-size:8.5px;line-height:1.3;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.location-step:hover:not(:disabled){color:var(--ink);background:rgba(217,179,101,.045)}
.location-step.active{color:#241b08;background:linear-gradient(120deg,var(--gold-bright),var(--gold));box-shadow:0 3px 13px rgba(217,179,101,.26)}
.location-step.active>span{border-color:rgba(38,28,8,.3);color:#241b08;background:rgba(255,255,255,.18)}
.location-step.active small{color:rgba(36,27,8,.64)}
.location-step.is-done:not(.active){color:var(--gold-bright)}
.location-step.is-done:not(.active)>span{color:var(--gold);border-color:rgba(217,179,101,.34);background:rgba(217,179,101,.07)}
.location-step:disabled{opacity:.64;cursor:not-allowed}

.location-picker-content{position:relative;min-height:0;display:flex;flex:1 1 330px;min-width:0;overflow:hidden;flex-direction:column}
.dialog-search{
  flex:0 0 auto;height:42px;display:flex;align-items:center;gap:9px;margin-bottom:11px;padding:0 12px;
  border-radius:11px;border:1px solid rgba(217,179,101,.14);background:rgba(3,3,13,.45);transition:.2s;
}
.dialog-search:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(217,179,101,.11)}
.dialog-search>span{color:var(--gold);font-size:18px;transform:rotate(-20deg)}
.dialog-search input[type=search]{
  width:100%;height:100%;min-width:0;padding:0;border:none;outline:none;background:transparent;color:var(--ink);
  font-family:var(--sans);font-size:12.5px;-webkit-appearance:none;appearance:none;
}
.dialog-search input[type=search]::-webkit-search-cancel-button{filter:invert(1);opacity:.45}
.dialog-search input::placeholder{color:var(--faint)}
.location-options,.time-options{
  overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(217,179,101,.30) transparent;
}
.location-options::-webkit-scrollbar,.time-options::-webkit-scrollbar{width:5px}
.location-options::-webkit-scrollbar-thumb,.time-options::-webkit-scrollbar-thumb{background:rgba(217,179,101,.25);border-radius:5px}
.location-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;flex:1 1 auto;min-height:0;padding:1px 3px 8px 1px}
.location-option{
  min-width:0;min-height:51px;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;
  border-radius:11px;border:1px solid rgba(217,179,101,.105);background:rgba(255,255,255,.022);
  color:var(--dim);font-family:var(--sans);text-align:left;cursor:pointer;transition:.18s;
}
.location-option:hover,.location-option:focus-visible{outline:none;color:var(--ink);border-color:var(--line-strong);background:rgba(217,179,101,.06);transform:translateY(-1px)}
.location-option-copy{min-width:0;display:flex;flex-direction:column;gap:1px}
.location-option strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit;font-size:12.5px;font-weight:500}
.location-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--faint);font-size:9px}
.location-option-check{
  flex:0 0 20px;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;
  border:1px solid rgba(255,255,255,.08);color:transparent;font-size:10px;transition:.18s;
}
.location-option.is-selected{border-color:rgba(217,179,101,.62);background:linear-gradient(145deg,rgba(217,179,101,.16),rgba(217,179,101,.04));color:var(--gold-bright);box-shadow:inset 0 0 16px rgba(217,179,101,.035)}
.location-option.is-selected .location-option-check{border-color:var(--gold);background:var(--gold);color:#211807;box-shadow:0 0 12px rgba(217,179,101,.25)}
.location-options-empty{grid-column:1/-1;padding:54px 12px;text-align:center;color:var(--faint);font-size:12px}

.location-county-panel{
  flex:1;min-height:0;overflow-y:auto;padding:26px 22px 22px;display:flex;flex-direction:column;justify-content:center;
  border-radius:14px;border:1px solid rgba(217,179,101,.12);
  background:radial-gradient(220px 120px at 50% 20%,rgba(217,179,101,.08),transparent 68%),rgba(3,3,13,.30);
}
.county-orbit{width:54px;height:54px;margin:0 auto 15px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(217,179,101,.24);color:var(--gold);box-shadow:0 0 25px rgba(217,179,101,.1),inset 0 0 18px rgba(217,179,101,.06)}
.county-orbit span{font-size:23px;animation:breathe 4s ease-in-out infinite}
.location-county-panel>label{font-size:11.5px;color:var(--dim);letter-spacing:1px;margin-bottom:7px}
.location-county-panel input{background:rgba(3,3,13,.54)}
.location-county-panel p{margin-top:9px;color:var(--faint);font-size:10px;line-height:1.65;text-align:center}

.app-dialog-actions{position:relative;display:flex;align-items:center;gap:9px;margin-top:17px;padding-top:15px;border-top:1px solid rgba(217,179,101,.1)}
.dialog-action-spacer{flex:1}
.dialog-text-btn{padding:8px 4px;border:none;background:none;color:var(--faint);font-family:var(--sans);font-size:11.5px;cursor:pointer;transition:.2s}
.dialog-text-btn:hover,.dialog-text-btn:focus-visible{outline:none;color:var(--gold-bright)}
.dialog-primary-btn,.dialog-danger-btn{
  padding:9px 16px;border-radius:10px;cursor:pointer;font-family:var(--serif);font-size:12.5px;font-weight:700;letter-spacing:1px;transition:.2s;
}
.dialog-primary-btn{border:1px solid transparent;color:#231a08;background:linear-gradient(120deg,var(--gold-bright),var(--gold));box-shadow:0 5px 17px rgba(217,179,101,.24)}
.dialog-primary-btn:hover,.dialog-primary-btn:focus-visible{outline:none;transform:translateY(-1px);box-shadow:0 8px 23px rgba(217,179,101,.34)}
.dialog-primary-btn:disabled{opacity:.64;cursor:not-allowed;transform:none;box-shadow:none}
.dialog-danger-btn{color:#ffd8d8;border:1px solid rgba(255,107,107,.42);background:linear-gradient(145deg,rgba(255,107,107,.20),rgba(255,107,107,.09));box-shadow:0 5px 18px rgba(255,60,60,.10)}
.dialog-danger-btn:hover,.dialog-danger-btn:focus-visible{outline:none;border-color:var(--danger);background:rgba(255,107,107,.24);transform:translateY(-1px)}

.time-picker-surface{width:min(560px,100%)}
.time-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;flex:1 1 445px;min-height:0;max-height:min(445px,58vh);max-height:min(445px,58dvh);padding:1px 3px 6px 1px}
.time-option{
  min-width:0;padding:9px 10px;border-radius:11px;border:1px solid rgba(217,179,101,.11);
  background:rgba(255,255,255,.022);color:var(--dim);cursor:pointer;text-align:left;font-family:var(--sans);transition:.18s;
}
.time-option:hover,.time-option:focus-visible{outline:none;color:var(--ink);border-color:var(--line-strong);background:rgba(217,179,101,.06);transform:translateY(-1px)}
.time-option strong{display:block;font-family:var(--serif);font-size:13px;font-weight:600;color:inherit;white-space:nowrap}
.time-option small{display:block;margin-top:2px;color:var(--faint);font-size:9.5px;white-space:nowrap}
.time-option.is-selected{border-color:var(--gold);color:var(--gold-bright);background:linear-gradient(145deg,rgba(217,179,101,.17),rgba(217,179,101,.04));box-shadow:0 0 16px rgba(217,179,101,.08)}
.time-options.is-minute{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.time-options.is-minute .time-option{min-height:49px;padding:7px 4px;text-align:center;font-variant-numeric:tabular-nums}
.time-options.is-minute .time-option strong{font-size:15px}
.time-options.is-minute .time-option small{font-size:8.5px}
.compact-actions{margin-top:12px}

.confirm-dialog-surface{width:min(390px,100%);align-items:center;padding:30px 28px 25px;text-align:center}
.confirm-symbol{
  width:50px;height:50px;margin:0 auto 15px;display:grid;place-items:center;border-radius:15px;
  border:1px solid rgba(255,107,107,.35);background:rgba(255,107,107,.08);color:var(--danger);
  font-family:var(--serif);font-size:27px;box-shadow:0 0 25px rgba(255,107,107,.09);
}
.confirm-dialog-surface .dialog-kicker{color:var(--danger)}
.confirm-dialog-surface h3{margin-bottom:9px;color:var(--ink)}
.confirm-dialog-surface>p{max-width:30em;color:var(--dim);font-size:12.5px;line-height:1.8}
.confirm-actions{width:100%;justify-content:center;margin-top:20px}
.confirm-actions>*{flex:1}

.toast{
  position:fixed;left:50%;bottom:40px;z-index:99;max-width:min(88vw,440px);padding:11px 19px;
  transform:translate(-50%,10px);opacity:0;pointer-events:none;
  border-radius:12px;border:1px solid rgba(217,179,101,.38);color:var(--gold-bright);
  background:linear-gradient(145deg,rgba(25,21,50,.97),rgba(10,9,25,.97));
  box-shadow:0 12px 38px rgba(0,0,0,.55),inset 0 1px rgba(255,255,255,.04);
  font-size:13px;text-align:center;transition:opacity .22s,transform .22s;
}
.toast.is-visible{opacity:1;transform:translate(-50%,0)}

/* ---------------- 按钮 ---------------- */
.primary-btn{
  position:relative;width:100%;padding:14px;border:none;border-radius:12px;cursor:pointer;overflow:hidden;
  font-family:var(--serif);font-weight:700;font-size:15.5px;letter-spacing:3px;color:#221a08;
  background:linear-gradient(120deg,#f6e7b2,var(--gold) 55%,#c39743);
  box-shadow:0 8px 24px rgba(217,179,101,.30);transition:.22s;
}
.primary-btn::after{
  content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-20deg);transition:left .5s ease;
}
.primary-btn:hover{transform:translateY(-1px);box-shadow:0 12px 32px rgba(217,179,101,.42)}
.primary-btn:hover::after{left:120%}
.primary-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.secondary-btn{
  padding:14px 18px;border-radius:12px;cursor:pointer;font-family:var(--serif);font-weight:600;font-size:14.5px;letter-spacing:2px;
  background:rgba(78,207,160,.08);border:1px solid rgba(78,207,160,.38);color:var(--jade);transition:.2s;
}
.secondary-btn:hover{background:rgba(78,207,160,.16);box-shadow:0 6px 18px rgba(78,207,160,.15)}
.secondary-btn:disabled{opacity:.45;cursor:not-allowed}
.ghost-btn{
  padding:8px 14px;border-radius:9px;cursor:pointer;font-size:12.5px;letter-spacing:1px;
  background:rgba(255,255,255,.035);border:1px solid var(--line);color:var(--dim);transition:.2s;
}
.ghost-btn:hover{color:var(--gold-bright);border-color:var(--line-strong);background:rgba(217,179,101,.06)}
.ghost-btn:disabled{opacity:.45;cursor:wait}
.ghost-btn.danger{color:var(--danger);border-color:rgba(255,107,107,.28)}
.ghost-btn.danger:hover{background:rgba(255,107,107,.08);color:var(--danger);border-color:rgba(255,107,107,.5)}
.ghost-btn.full{width:100%;margin-top:12px}

/* ---------------- 命盘 ---------------- */
.reading-head,.image-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.reading-head .panel-title,.image-head .panel-title{margin-bottom:0;flex:1}
.badge{font-size:11px;padding:4px 11px;border-radius:20px;border:1px solid rgba(78,207,160,.35);color:var(--jade);letter-spacing:.5px;background:rgba(78,207,160,.06)}
.badge.warn{color:var(--danger);border-color:rgba(255,107,107,.4);background:rgba(255,107,107,.06)}
.meta-row{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px 16px;
  font-size:12.5px;color:var(--dim);margin-bottom:20px;
  padding:14px 16px;border-radius:12px;background:var(--card-deep);border:1px solid rgba(255,255,255,.045);
}
.meta-row b{color:var(--faint);font-weight:400;margin-right:7px;font-size:11.5px}
.meta-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.meta-row .meta-detail{grid-column:1/-1;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.65}
.calculation-basis{
  margin:-7px 0 19px;border:1px solid rgba(217,179,101,.13);border-radius:12px;
  background:linear-gradient(135deg,rgba(217,179,101,.055),rgba(255,255,255,.012));
}
.calculation-basis summary{padding:11px 14px;cursor:pointer;color:var(--gold);font-size:12px;letter-spacing:1px;list-style:none;user-select:none}
.calculation-basis summary::-webkit-details-marker{display:none}
.calculation-basis summary::before{content:'＋';display:inline-block;width:18px;color:var(--faint)}
.calculation-basis[open] summary::before{content:'－'}
.calculation-basis summary small{margin-left:8px;color:var(--faint);font-size:9.5px;font-weight:400;letter-spacing:.4px}
.calculation-basis-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px 14px;padding:0 14px 13px}
.calculation-basis-list span{display:flex;align-items:flex-start;gap:7px;color:var(--dim);font-size:11px;line-height:1.55}
.calculation-basis-list b{flex:0 0 18px;height:18px;display:grid;place-items:center;border-radius:50%;background:rgba(217,179,101,.1);color:var(--gold);font-size:9px}
.calculation-warning{margin:10px 0 16px;padding:10px 12px;border:1px solid rgba(255,184,92,.3);border-radius:10px;background:rgba(255,164,64,.08);color:#ffd59a;font-size:11px;line-height:1.65}

/* 四柱立柱卡片 */
.pillar-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pillar-card{
  position:relative;border-radius:14px;padding:14px 8px 12px;text-align:center;
  background:linear-gradient(175deg,rgba(255,255,255,.035),rgba(255,255,255,0) 40%),var(--card-deep);
  border:1px solid rgba(217,179,101,.14);transition:.25s;
}
.pillar-card:hover{transform:translateY(-2px);border-color:var(--line-strong)}
.pillar-card.day{
  border-color:var(--line-strong);
  background:linear-gradient(175deg,rgba(217,179,101,.10),rgba(217,179,101,.015) 55%),var(--card-deep);
  box-shadow:0 0 26px rgba(217,179,101,.12), inset 0 0 18px rgba(217,179,101,.04);
}
.pillar-card .pc-name{font-size:11px;color:var(--faint);letter-spacing:3px;margin-bottom:10px}
.pillar-card.day .pc-name{color:var(--gold)}
.pillar-card .pc-layer{display:flex;flex-direction:column;align-items:center}
.pillar-card .pc-layer-title{
  color:var(--dim);font-size:9px;line-height:1.25;letter-spacing:.8px;white-space:nowrap;
}
.pillar-card .pc-layer-title small{margin-left:3px;color:var(--faint);font-size:8px;letter-spacing:0}
.pillar-card .pc-shishen{
  display:inline-block;font-size:11px;color:var(--gold-bright);letter-spacing:1px;
  padding:2px 9px;border-radius:12px;border:1px solid rgba(217,179,101,.25);background:rgba(217,179,101,.07);
  margin-top:5px;
}
.pillar-card .pc-zhi-layer{margin:5px 0 3px}
.pillar-card .pc-shishen-zhi{
  color:#bcebdc;border-color:rgba(78,207,160,.27);background:rgba(78,207,160,.065);
}
.pillar-card .pc-gz{display:flex;flex-direction:column;align-items:center;gap:2px;margin:10px 0}
.pillar-card .pc-gz b{
  font-family:var(--serif);font-size:34px;font-weight:900;line-height:1.22;
  text-shadow:0 0 22px rgba(255,255,255,.10);
}
.pillar-card .pc-hidden-layer{
  min-height:70px;padding:7px 5px 6px;border-radius:9px;
  border:1px solid rgba(255,255,255,.055);background:rgba(5,4,17,.2);
}
.pillar-card .pc-hide{
  width:100%;margin-top:6px;font-size:11px;color:var(--dim);line-height:1.45;
  display:flex;flex-direction:column;align-items:center;gap:3px;
}
.pillar-card .pc-hide-item{display:flex;align-items:baseline;justify-content:center;gap:4px;white-space:nowrap}
.pillar-card .pc-hide-item b{color:var(--ink);font-family:var(--serif);font-size:12px;font-weight:600}
.pillar-card .pc-hide i{font-style:normal;color:var(--faint);font-size:10px}
.pillar-card .pc-hide-empty{color:var(--faint)}
.pillar-card .pc-foot{margin-top:9px;padding-top:8px;border-top:1px dashed rgba(255,255,255,.08);font-size:10.5px;color:var(--faint);line-height:1.6}

/* 常用神煞 */
.shensha-block{margin-top:24px}
.shensha-block h3{
  font-family:var(--serif);font-size:14px;color:var(--gold);margin-bottom:12px;font-weight:600;letter-spacing:2px;
  display:flex;align-items:center;gap:10px;
}
.shensha-block h3::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}
.shensha-block h3 small{font-family:var(--sans);font-size:9.5px;font-weight:400;letter-spacing:.5px;color:var(--faint);white-space:nowrap}
.shensha-help{
  display:flex;align-items:center;gap:6px;margin:-5px 0 10px;color:var(--faint);
  font-size:9.5px;line-height:1.5;letter-spacing:.25px;
}
.shensha-help span{color:var(--gold);font-size:8px}
.shensha-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.shensha-column{
  min-width:0;padding:10px 8px 11px;border-radius:12px;
  background:var(--card-deep);border:1px solid rgba(217,179,101,.12);
}
.shensha-column.day{
  border-color:rgba(217,179,101,.28);
  background:linear-gradient(170deg,rgba(217,179,101,.08),rgba(217,179,101,.015)),var(--card-deep);
}
.shensha-column-head{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:0 2px 7px}
.shensha-column-head span{color:var(--faint);font-size:10px;letter-spacing:1px}
.shensha-column-head b{color:var(--dim);font-family:var(--serif);font-size:11px;font-weight:600;letter-spacing:1px;white-space:nowrap}
.shensha-column.day .shensha-column-head span,.shensha-column.day .shensha-column-head b{color:var(--gold)}
.shensha-tags{display:flex;flex-wrap:wrap;align-content:flex-start;gap:5px;min-height:27px}
.shensha-tag{
  display:inline-flex;align-items:center;justify-content:center;min-height:23px;max-width:100%;
  padding:3px 6px 3px 7px;border-radius:8px;font-family:var(--sans);font-size:10px;line-height:1.35;text-align:center;overflow-wrap:anywhere;
  border:1px solid rgba(255,255,255,.12);color:var(--dim);background:rgba(255,255,255,.035);
  appearance:none;-webkit-appearance:none;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
}
.shensha-tag.is-good{color:var(--gold-bright);border-color:rgba(217,179,101,.28);background:rgba(217,179,101,.075)}
.shensha-tag.is-neutral{color:#9edcc9;border-color:rgba(78,207,160,.24);background:rgba(78,207,160,.055)}
.shensha-tag.is-caution{color:#e8a8a8;border-color:rgba(255,107,107,.22);background:rgba(255,107,107,.045)}
.shensha-tag-arrow{flex:0 0 auto;margin-left:1px;font-family:serif;font-size:14px;line-height:.8;opacity:.58;transform:translateY(-.5px)}
.shensha-tag:focus-visible{
  outline:none;box-shadow:0 0 0 2px var(--bg),0 0 0 4px currentColor;filter:brightness(1.12);
}
.shensha-tag[aria-expanded="true"]{box-shadow:0 0 0 1px currentColor,0 0 14px rgba(217,179,101,.15);filter:brightness(1.12)}
@media(hover:hover){
  .shensha-tag:hover{transform:translateY(-1px);filter:brightness(1.16);box-shadow:0 5px 13px rgba(0,0,0,.18)}
}
.shensha-empty{align-self:center;color:var(--faint);font-size:10px;padding:4px 2px}
.shensha-basis-note{margin-top:8px;color:var(--faint);font-size:9.5px;line-height:1.65;letter-spacing:.2px}

/* 神煞释义 */
.shensha-dialog-surface{width:min(570px,100%)}
.shensha-dialog-meta{position:relative;display:flex;align-items:center;gap:8px;margin:-2px 0 11px}
.shensha-dialog-tone,.shensha-dialog-position{
  display:inline-flex;align-items:center;min-height:24px;padding:4px 9px;border-radius:999px;
  font-size:9.5px;line-height:1.2;letter-spacing:.45px;
}
.shensha-dialog-tone{border:1px solid var(--line);color:var(--dim);background:rgba(255,255,255,.025)}
.shensha-dialog-tone.is-good{color:var(--gold-bright);border-color:rgba(217,179,101,.3);background:rgba(217,179,101,.08)}
.shensha-dialog-tone.is-neutral{color:#9edcc9;border-color:rgba(78,207,160,.27);background:rgba(78,207,160,.065)}
.shensha-dialog-tone.is-caution{color:#e8a8a8;border-color:rgba(255,107,107,.25);background:rgba(255,107,107,.06)}
.shensha-dialog-position{color:var(--faint);border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.018)}
.shensha-dialog-position:empty{display:none}
.shensha-dialog-keywords{position:relative;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:13px}
.shensha-dialog-keywords span{
  padding:5px 9px;border-radius:8px;color:var(--gold);font-size:10px;line-height:1.25;
  border:1px solid rgba(217,179,101,.13);background:rgba(217,179,101,.035);
}
.shensha-dialog-copy{
  position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;
  overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(217,179,101,.3) transparent;
}
.shensha-dialog-copy section{
  min-width:0;padding:13px 14px;border-radius:13px;border:1px solid rgba(217,179,101,.105);
  background:linear-gradient(145deg,rgba(217,179,101,.045),rgba(255,255,255,.015));
}
.shensha-dialog-copy h4{
  margin-bottom:7px;color:var(--gold-bright);font-family:var(--serif);font-size:11.5px;font-weight:600;letter-spacing:1.2px;
}
.shensha-dialog-copy p{color:var(--dim);font-size:11.5px;line-height:1.85}
.shensha-dialog-copy .shensha-dialog-variant{
  margin-top:9px;padding-top:8px;border-top:1px dashed rgba(217,179,101,.13);color:var(--faint);font-size:10.5px;
}
.shensha-dialog-note{
  position:relative;margin-top:11px;padding:9px 11px;border-radius:10px;color:var(--faint);font-size:9.5px;line-height:1.65;
  border:1px solid rgba(78,207,160,.11);background:rgba(78,207,160,.035);
}
.shensha-dialog-note span{margin-right:5px;color:var(--jade)}

/* 五行 */
.wx-block,.dayun-block{margin-top:24px}
.wx-block h3,.dayun-block h3{
  font-family:var(--serif);font-size:14px;color:var(--gold);margin-bottom:12px;font-weight:600;letter-spacing:2px;
  display:flex;align-items:center;gap:10px;
}
.dayun-block h3 small{font-family:var(--sans);font-size:9.5px;font-weight:400;letter-spacing:.5px;color:var(--faint);white-space:nowrap}
.wx-block h3::after,.dayun-block h3::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}
.wx-bars{display:flex;flex-direction:column;gap:8px}
.wx-bar{display:flex;align-items:center;gap:12px}
.wx-bar .wx-name{width:18px;font-family:var(--serif);font-size:15px;font-weight:700;text-align:center;filter:drop-shadow(0 0 8px currentColor)}
.wx-bar .wx-track{flex:1;height:10px;border-radius:6px;background:rgba(255,255,255,.05);overflow:hidden}
.wx-bar .wx-fill{display:block;height:100%;border-radius:6px;transition:width 1s cubic-bezier(.2,.8,.2,1)}
.wx-bar .wx-val{width:32px;font-size:12px;color:var(--dim);text-align:right;font-variant-numeric:tabular-nums}

/* 规则证据层 */
.rule-evidence-block{
  margin-top:24px;border:1px solid var(--line);border-radius:16px;
  background:var(--paper-subtle);overflow:hidden;
}
.rule-evidence-block>summary{
  display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;
  list-style:none;cursor:pointer;color:var(--ink);user-select:none;
}
.rule-evidence-block>summary::-webkit-details-marker{display:none}
.rule-evidence-block>summary>span{font-family:var(--serif);font-size:15px;font-weight:700;letter-spacing:1.5px}
.rule-evidence-block>summary>span::before{content:'＋';display:inline-block;width:20px;color:var(--gold)}
.rule-evidence-block[open]>summary>span::before{content:'－'}
.rule-evidence-block>summary small{margin-left:7px;color:var(--faint);font-family:var(--sans);font-size:9.5px;font-weight:400;letter-spacing:.2px}
.rule-evidence-block>summary>b{
  flex:0 0 auto;padding:4px 9px;border:1px solid rgba(65,104,70,.26);border-radius:999px;
  color:var(--jade);background:var(--jade-wash);font-size:9.5px;font-weight:600;letter-spacing:.4px;
}
.rule-evidence-block>summary>b.is-limited{color:var(--gold-deep);border-color:rgba(154,116,58,.28);background:var(--gold-wash)}
.rule-evidence-scope{margin:0;padding:0 16px 13px;color:var(--faint);font-size:9.5px;line-height:1.65}
.rule-evidence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 14px 14px}
.rule-evidence-card{
  min-width:0;padding:13px;border:1px solid var(--line);border-radius:13px;
  background:var(--paper-strong);
}
.rule-evidence-card>header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.rule-evidence-card>header>span{color:var(--ink);font-family:var(--serif);font-size:12.5px;font-weight:700;letter-spacing:1px}
.rule-evidence-card>header>small{color:var(--faint);font-size:8.5px;line-height:1.45;text-align:right}
.rule-relation-group{display:grid;grid-template-columns:24px minmax(0,1fr);gap:7px;margin-top:7px}
.rule-relation-group:first-child{margin-top:0}
.rule-relation-group>b{
  display:grid;place-items:center;width:23px;height:23px;border-radius:50%;
  color:var(--gold-deep);background:var(--gold-wash);font-family:var(--serif);font-size:10px;
}
.rule-relation-group>div{display:flex;flex-wrap:wrap;gap:5px}
.rule-evidence-tag{
  display:inline-flex;align-items:center;gap:5px;min-height:23px;padding:3px 7px;border:1px solid var(--line);
  border-radius:8px;color:var(--ink-soft);background:var(--paper-subtle);font-size:9.5px;line-height:1.35;
}
.rule-evidence-tag small,.rule-evidence-card li>small,.rule-season-result>small{
  color:var(--faint);font-size:7.5px;font-variant-numeric:tabular-nums;letter-spacing:.1px;
}
.rule-evidence-card ul{display:flex;flex-direction:column;gap:7px;margin:0;padding:0;list-style:none}
.rule-evidence-card li{display:block;min-width:0;color:var(--dim);font-size:9.5px;line-height:1.7;overflow-wrap:anywhere}
.rule-evidence-card li.has-match::before,.rule-evidence-card li.no-match::before{display:none}
.rule-evidence-card li.has-match span{color:var(--ink-soft)}
.rule-evidence-card li.no-match span{color:var(--faint)}
.rule-season-result{position:relative;padding-left:0}
.rule-season-result>b{display:inline-block;margin-left:8px;color:var(--jade);font-size:12px}
.rule-season-result>p{margin:7px 0 0;color:var(--ink-soft);font-size:10px;line-height:1.7}
.rule-season-result>em{display:block;margin-top:8px;padding-top:7px;border-top:1px dashed var(--line);color:var(--faint);font-size:8.5px;font-style:normal;line-height:1.55}
.rule-evidence-empty{margin:0;color:var(--faint);font-size:9.5px;line-height:1.65}
.rule-evidence-note{margin:0;padding:11px 16px 13px;border-top:1px solid var(--line);color:var(--dim);font-size:9.5px;line-height:1.65;background:var(--jade-wash)}

/* 大运 */
.dayun-line{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;
  padding:10px 0 2px;overflow:visible;
}
.dayun-chip{
  position:relative;min-width:0;min-height:98px;padding:12px 6px 9px;border-radius:12px;text-align:center;
  width:100%;appearance:none;font:inherit;color:inherit;cursor:pointer;
  background:var(--card-deep);border:1px solid rgba(217,179,101,.13);transition:.2s;
}
.dayun-chip:hover{border-color:var(--line-strong)}
.dayun-chip:focus-visible{outline:2px solid var(--jade);outline-offset:2px}
.dayun-chip.selected{border-color:rgba(78,207,160,.48);box-shadow:inset 0 0 0 1px rgba(78,207,160,.12)}
.dayun-chip.current{
  border-color:var(--gold);background:linear-gradient(170deg,rgba(217,179,101,.14),rgba(217,179,101,.03));
  box-shadow:0 0 20px rgba(217,179,101,.18);
}
.dayun-chip.current::before{
  content:'当前';position:absolute;top:-8px;left:50%;transform:translateX(-50%);
  font-size:9.5px;color:#221a08;background:linear-gradient(120deg,var(--gold-bright),var(--gold));
  padding:1px 8px;border-radius:8px;font-weight:700;letter-spacing:1px;
}
.dayun-chip .dc-gz{font-family:var(--serif);font-size:18px;font-weight:700;color:var(--ink);letter-spacing:2px;white-space:nowrap}
.dayun-chip .dc-age{font-size:10px;color:var(--dim);margin-top:4px;line-height:1.35;min-height:27px;display:flex;align-items:center;justify-content:center;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.dayun-chip .dc-xusui{font-size:9px;color:var(--gold);opacity:.78;margin:1px 0 3px;letter-spacing:.3px}
.dayun-chip .dc-year{font-size:10px;color:var(--faint);margin-top:1px;white-space:nowrap;font-variant-numeric:tabular-nums}
.yun-start{font-size:11.5px;color:var(--faint);margin-top:8px;letter-spacing:.5px}
.dayun-current{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:7px;margin-top:13px;
  padding:10px;border:1px solid rgba(217,179,101,.2);border-radius:12px;
  background:linear-gradient(135deg,rgba(217,179,101,.075),rgba(255,255,255,.015));
}
.dayun-current span{display:flex;flex-direction:column;gap:2px;min-width:0;padding:2px 5px}
.dayun-current small{color:var(--faint);font-size:9px;letter-spacing:.7px}
.dayun-current b{color:var(--gold-bright);font-size:11.5px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.dayun-current.is-uncertain{border-color:rgba(255,184,92,.28);background:rgba(255,164,64,.055)}
.dayun-current.is-uncertain b{color:#ffd59a}
.dayun-detail{
  margin-top:14px;padding:13px 12px 11px;border:1px solid rgba(78,207,160,.16);border-radius:13px;
  background:linear-gradient(170deg,rgba(78,207,160,.035),rgba(5,4,17,.2));
}
.dayun-detail-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.dayun-detail-head h4{font-family:var(--serif);font-size:12px;color:var(--jade);font-weight:600;letter-spacing:1.2px}
.dayun-detail-head h4 small{font-family:var(--sans);font-size:8.5px;color:var(--faint);font-weight:400;letter-spacing:.2px}
.dayun-detail-head>span{color:var(--dim);font-size:10px;text-align:right;font-variant-numeric:tabular-nums}
.dayun-year-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.dayun-year-card{
  position:relative;min-width:0;min-height:112px;padding:8px 6px 7px;border-radius:10px;
  border:1px solid rgba(255,255,255,.07);background:rgba(7,6,20,.45);text-align:center;
}
.dayun-year-card.current{border-color:var(--gold);background:linear-gradient(165deg,rgba(217,179,101,.14),rgba(217,179,101,.025))}
.dayun-year-card.current::before{
  content:'今年';position:absolute;top:-7px;right:5px;padding:1px 5px;border-radius:7px;
  color:#221a08;background:var(--gold-bright);font-size:8px;font-weight:700;
}
.dyr-head{display:flex;flex-direction:column;gap:1px;padding-bottom:5px;border-bottom:1px dashed rgba(255,255,255,.07)}
.dyr-head b{color:var(--ink);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}
.dyr-head small{color:var(--faint);font-size:8.5px;line-height:1.35}
.dyr-liunian,.dyr-xiaoyun{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:2px;margin-top:5px;line-height:1.25}
.dyr-liunian span,.dyr-xiaoyun span{color:var(--faint);font-size:8.5px;text-align:left}
.dyr-liunian b,.dyr-xiaoyun b{color:var(--gold-bright);font-family:var(--serif);font-size:13px;letter-spacing:1px;white-space:nowrap}
.dyr-liunian small,.dyr-xiaoyun small{grid-column:2;color:var(--faint);font-size:8px;min-height:10px}
.dyr-xiaoyun b{color:#aee6d3;font-size:11.5px}
.dayun-detail-note{margin-top:8px;color:var(--faint);font-size:9px;line-height:1.55}
.dayun-detail-empty{grid-column:1/-1;padding:14px;color:var(--faint);font-size:10px;text-align:center}
.chart-actions{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}
.chart-actions .primary-btn{flex:1.4;min-width:190px;width:auto}
.chart-actions .secondary-btn{flex:1;min-width:150px}
.wechat-notice-option{
  display:flex;align-items:center;gap:11px;margin-top:12px;padding:11px 13px;border-radius:12px;
  border:1px solid rgba(78,207,160,.28);background:rgba(78,207,160,.055);cursor:pointer;
  color:var(--ink);text-align:left;
}
.wechat-notice-option[hidden]{display:none}
.wechat-notice-option input{width:18px;height:18px;accent-color:var(--jade);flex:0 0 auto}
.wechat-notice-option span{display:flex;flex-direction:column;gap:2px}
.wechat-notice-option b{font-size:13px;color:var(--jade);font-weight:600;letter-spacing:.4px}
.wechat-notice-option small{font-size:10.5px;color:var(--faint);line-height:1.5}

/* ---------------- 欢迎空状态 ---------------- */
.welcome{text-align:center;padding:64px 30px}
.welcome-icon{
  font-size:54px;line-height:1;margin-bottom:18px;color:var(--gold);
  filter:drop-shadow(0 0 24px rgba(217,179,101,.35));
  animation:breathe 4s ease-in-out infinite;
}
@keyframes breathe{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
.welcome h2{font-family:var(--serif);font-size:22px;color:var(--gold-bright);letter-spacing:6px;margin-bottom:14px;font-weight:700}
.welcome p{color:var(--dim);font-size:14px;line-height:2;max-width:420px;margin:0 auto 26px}
.welcome-steps{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.welcome-steps span{
  font-size:12px;color:var(--faint);letter-spacing:1px;
  padding:7px 14px;border-radius:20px;border:1px dashed rgba(217,179,101,.25);
}

/* ---------------- 插画 ---------------- */
.image-box{min-height:100px;display:flex;flex-direction:column;align-items:center;gap:12px}
.image-box img{max-width:min(100%,560px);border-radius:16px;border:1px solid var(--line);box-shadow:0 16px 50px rgba(0,0,0,.55)}
.image-box .img-loading{color:var(--dim);font-size:13.5px;padding:26px;letter-spacing:1px}
.image-save-fallback{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;color:var(--faint);font-size:12px;text-align:center}
.image-save-fallback a{text-decoration:none}
.img-loading-card{width:min(100%,440px);display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 20px;border:1px solid var(--line);border-radius:16px;background:var(--card-deep)}
.img-loading-card .img-loading{padding:0;text-align:center;color:var(--ink)}
.img-loading-note{font-size:11.5px;color:var(--faint);text-align:center;line-height:1.7}
.img-orbit{width:44px;height:44px;display:grid;place-items:center;color:var(--gold-bright);border:1px solid var(--line-strong);border-radius:50%;animation:imageOrbit 1.8s ease-in-out infinite;box-shadow:0 0 20px rgba(217,179,101,.14)}
.img-error{color:var(--danger)!important;text-align:center;line-height:1.8}
.img-error-note{color:var(--danger);font-size:12px;text-align:center;line-height:1.7}
@keyframes imageOrbit{0%,100%{transform:rotate(-8deg) scale(.94);opacity:.58}50%{transform:rotate(8deg) scale(1.06);opacity:1}}

/* ---------------- 解读 ---------------- */
.reading-tools{display:flex;gap:7px;flex-wrap:wrap}
.reading-status{font-size:12.5px;color:var(--jade);margin-bottom:14px;min-height:19px;letter-spacing:.5px}
.reading-status.err{color:var(--danger)}
.reading-status.warn{color:var(--gold)}
.reading-status .bg-ok{color:var(--gold);font-weight:500}
.reading-status .dots::after{content:'';animation:dots 1.4s steps(4,end) infinite}
@keyframes dots{0%{content:''}25%{content:' ·'}50%{content:' ··'}75%{content:' ···'}100%{content:''}}
.markdown{width:100%;min-width:0;font-family:var(--serif);font-size:16px;line-height:2.05;color:#e9e6f4;letter-spacing:.3px;max-width:76ch;margin:0 auto}
.markdown h1{
  font-size:24px;margin:10px 0 22px;color:var(--gold-bright);font-weight:900;text-align:center;letter-spacing:3px;
}
.markdown h1::after{content:'';display:block;width:72px;height:2px;margin:14px auto 0;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.markdown h2{
  font-size:20px;margin:36px 0 16px;color:var(--gold);font-weight:700;letter-spacing:2px;
  padding-left:13px;border-left:3px solid var(--gold);
}
.markdown h3{font-size:17px;margin:26px 0 10px;color:var(--gold-bright);font-weight:600;letter-spacing:1px}
.markdown p{margin:0 0 15px;text-align:justify}
.markdown strong{color:#ffedc2;font-weight:600}
.markdown em{color:var(--jade);font-style:normal}
.markdown ul,.markdown ol{margin:0 0 15px;padding-left:24px}
.markdown li{margin:5px 0}
.markdown blockquote{margin:18px 0;padding:12px 18px;border-left:3px solid var(--jade);background:rgba(78,207,160,.05);border-radius:0 10px 10px 0;color:var(--dim)}
.markdown hr{border:none;border-top:1px dashed var(--line);margin:30px 0}
#readingPanel .markdown pre{
  width:100%;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;
  white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;-webkit-overflow-scrolling:touch;
}
#readingPanel .markdown code{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
#readingPanel .markdown pre code{display:block;min-width:0;max-width:100%;white-space:inherit}

/* ---------------- 加密报告分享 ---------------- */
.share-report-btn{border-color:rgba(217,179,101,.44);color:var(--gold-bright)}
.share-report-surface{width:min(780px,100%)}
.share-report-status{margin-bottom:12px}
.share-report-disclosure{padding:15px 17px;border:1px solid var(--line);border-radius:15px;background:var(--card-deep)}
.share-report-disclosure ul{margin:0 0 13px;padding-left:20px;color:var(--dim);font-size:12px;line-height:1.8}
.share-report-disclosure li+li{margin-top:5px}
.share-report-confirm{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(217,179,101,.05);color:var(--ink);font-size:12px;line-height:1.65;cursor:pointer}
.share-report-confirm input{flex:0 0 auto;width:18px;height:18px;margin:2px 0 0;accent-color:var(--gold)}
.share-poster-stage{position:relative;flex:1 1 auto;min-height:220px;overflow:auto;overscroll-behavior:contain;display:flex;align-items:flex-start;justify-content:center;padding:10px;border:1px solid var(--line);border-radius:15px;background:var(--canvas-soft)}
.share-poster-stage img{display:block;width:min(100%,440px);height:auto;border-radius:11px;box-shadow:var(--shadow-card);-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto}
.share-poster-loading{align-self:center;padding:38px 18px;color:var(--dim);font-size:12px;text-align:center}
.share-report-link{align-self:center;margin-top:10px;color:var(--gold-deep);font-size:12px;text-underline-offset:4px}
.share-report-actions{flex:0 0 auto;flex-wrap:wrap}
.share-report-actions .danger{margin-right:auto}

/* ---------------- 文字报告分页图 ---------------- */
.report-images-surface{width:min(960px,100%)}
.report-images-status{margin-bottom:10px}
.report-images-gallery{
  position:relative;flex:1 1 auto;min-height:0;min-width:0;overflow-y:auto;overscroll-behavior:contain;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;padding:3px 5px 10px 2px;
  scrollbar-width:thin;scrollbar-color:rgba(217,179,101,.30) transparent;
}
.report-images-gallery::-webkit-scrollbar{width:5px}
.report-images-gallery::-webkit-scrollbar-thumb{background:rgba(217,179,101,.25);border-radius:5px}
.report-images-loading{
  grid-column:1/-1;min-height:180px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:11px;
  color:var(--dim);font-size:12px;text-align:center;border:1px dashed var(--line);border-radius:15px;background:rgba(255,255,255,.018);
}
.report-images-loading span{font-size:30px;color:var(--gold);animation:imageOrbit 1.8s ease-in-out infinite}
.report-images-loading b{font-weight:400;letter-spacing:.6px}
.report-image-card{margin:0;padding:9px;border:1px solid var(--line);border-radius:15px;background:var(--card-deep)}
.report-image-card.is-current{border-color:rgba(217,179,101,.58);box-shadow:0 0 0 2px rgba(217,179,101,.09),0 12px 34px rgba(0,0,0,.34)}
.report-image-card img{
  display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;border-radius:9px;cursor:zoom-in;
  background:#0c0b1a;box-shadow:0 8px 24px rgba(0,0,0,.38);
  -webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto;
}
.report-image-card figcaption{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;color:var(--faint);font-size:10.5px}
.report-image-card .ghost-btn{white-space:nowrap}
.report-images-actions{flex:0 0 auto;flex-wrap:wrap}
.report-images-tip{color:var(--faint);font-size:10.5px;line-height:1.5}
.report-images-download{white-space:nowrap}

/* 受限手机浏览器的高清图兜底。这里按需使用 data: 图片，避开 blob: 下载被静默拦截。 */
.report-image-viewer{z-index:90}
.report-image-viewer-surface{width:min(760px,100%);height:min(900px,calc(100vh - 40px));height:min(900px,calc(100dvh - 40px))}
.report-image-viewer-help{margin-bottom:10px;color:var(--gold-bright);text-align:center}
.report-image-viewer-stage{
  position:relative;flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;
  display:flex;align-items:flex-start;justify-content:center;padding:8px;border-radius:14px;
  border:1px solid rgba(217,179,101,.14);background:#080713;
  scrollbar-width:thin;scrollbar-color:rgba(217,179,101,.30) transparent;
}
.report-image-viewer-stage::-webkit-scrollbar{width:5px}
.report-image-viewer-stage::-webkit-scrollbar-thumb{background:rgba(217,179,101,.25);border-radius:5px}
.report-image-viewer-stage img{
  display:block;width:min(100%,540px);height:auto;border-radius:8px;background:#0c0b1a;
  -webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto;
}
.report-image-viewer-loading{align-self:center;padding:32px;color:var(--dim);font-size:12px;text-align:center}
.report-image-viewer-actions{flex:0 0 auto;flex-wrap:wrap}
.report-image-viewer-actions .ghost-btn:disabled{opacity:.32;cursor:not-allowed}

/* 导出专用 DOM 始终放在视口外，但不能 hidden，否则无法测量与截图。 */
.report-export-flow{
  position:fixed;left:-12000px;top:0;
}
.report-export-flow,.report-export-flow-copy{
  width:600px;max-width:none;margin:0;padding:1px 0;display:flow-root;
  pointer-events:none;background:#0c0b1a;color:#e9e6f4;overflow-wrap:anywhere;
}
.report-export-flow-copy{background:transparent}
.report-export-flow *,.report-export-flow-copy *{animation:none!important;transition:none!important}

/* 排盘使用固定 600px 桌面排版，避免手机媒体查询改变图片页数。 */
.report-export-chart{
  width:600px;max-width:none;margin:0;padding:4px 0 30px;display:flow-root;
  border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;
  color:var(--ink);font-family:var(--sans);font-size:12px;line-height:1.65;
}
.report-export-chart .chart-actions,.report-export-chart .wechat-notice-option{display:none!important}
.report-export-chart .panel-title{font-size:21px;letter-spacing:3px}
.report-export-chart .meta-row{
  grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin-bottom:20px;padding:14px 16px;
}
.report-export-chart .meta-row span{
  min-width:0;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;
}
.report-export-chart .calculation-basis{margin:-7px 0 19px}
.report-export-chart .calculation-basis summary{cursor:default}
.report-export-chart .calculation-basis-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.report-export-chart .pillar-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.report-export-chart .pillar-card{padding:14px 8px 12px}
.report-export-chart .pillar-card:hover{transform:none}
.report-export-chart .pillar-card .pc-name{min-height:0;margin-bottom:10px;display:block}
.report-export-chart .pillar-card .pc-gz b{font-size:34px}
.report-export-chart .pillar-card .pc-shishen{font-size:11px;padding:2px 9px}
.report-export-chart .pillar-card .pc-layer-title{font-size:9px;letter-spacing:.8px}
.report-export-chart .pillar-card .pc-layer-title small{display:inline;margin-left:3px;font-size:8px}
.report-export-chart .pillar-card .pc-hidden-layer{min-height:70px;padding:7px 5px 6px}
.report-export-chart .pillar-card .pc-hide{font-size:11px;gap:3px}
.report-export-chart .pillar-card .pc-hide-item{gap:4px}
.report-export-chart .pillar-card .pc-hide-item b{font-size:12px}
.report-export-chart .pillar-card .pc-hide i{font-size:10px}
.report-export-chart .pillar-card .pc-foot{font-size:10.5px}
.report-export-chart .shensha-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.report-export-chart .shensha-block h3 small{display:inline}
.report-export-chart .shensha-help,.report-export-chart .shensha-tag-arrow{display:none}
.report-export-chart .shensha-tag{cursor:default}
.report-export-chart .dayun-line{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.report-export-chart .dayun-chip{min-height:98px;padding:12px 6px 9px}
.report-export-chart .dayun-year-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.report-export-chart .dayun-detail{padding:13px 12px 11px}
.report-export-chart .dayun-detail-head{align-items:baseline;flex-direction:row;gap:10px}
.report-export-chart .dayun-year-card{min-height:112px;padding:8px 6px 7px}
.report-export-chart [data-report-page-keep]{break-inside:avoid}

.report-export-reading-section{width:600px;max-width:none;margin:0;padding:0;display:flow-root}
.report-export-reading-head{
  margin:6px 0 30px;padding:25px 0 20px;text-align:center;
  border-top:1px solid rgba(217,179,101,.22);border-bottom:1px solid rgba(217,179,101,.12);
}
.report-export-reading-head span{display:block;margin-bottom:5px;color:var(--faint);font-family:var(--sans);font-size:9px;letter-spacing:4px}
.report-export-reading-head h2{margin:0;color:var(--gold-bright);font-family:var(--serif);font-size:22px;letter-spacing:5px;font-weight:800}
/* 测量 DOM 与截图 DOM 必须使用完全相同的排版参数；双 class 覆盖手机端 .markdown 规则。 */
.markdown.report-export-reading{
  width:600px;max-width:none;margin:0;padding:1px 0;
  font-family:var(--serif);font-size:16px;line-height:2.05;letter-spacing:.3px;
}
.report-export-flow pre,.report-export-flow-copy pre{white-space:pre-wrap;overflow-wrap:anywhere}
.report-export-flow table,.report-export-flow-copy table{width:100%;table-layout:fixed;overflow-wrap:anywhere}
.report-export-page{
  position:fixed;left:-12000px;top:0;width:720px;height:960px;overflow:hidden;pointer-events:none;
  box-sizing:border-box;background:
    radial-gradient(440px 220px at 88% -4%,rgba(79,54,161,.20),transparent 65%),
    linear-gradient(180deg,#14102b 0%,#0c0b1a 24%,#090817 100%);
  color:#e9e6f4;border:1px solid rgba(217,179,101,.26);font-family:var(--serif);
}
.report-export-page::before{content:'';position:absolute;inset:14px;border:1px solid rgba(217,179,101,.10);pointer-events:none}
.report-export-page-head{position:absolute;left:48px;right:48px;top:27px;height:38px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid rgba(217,179,101,.20)}
.report-export-page-brand{color:var(--gold-bright);font-size:14px;font-weight:700;letter-spacing:4px;white-space:nowrap}
.report-export-page-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(233,230,244,.58);font-family:var(--sans);font-size:9px;letter-spacing:1px;text-align:right}
.report-export-page-window{position:absolute;left:60px;top:88px;width:600px;overflow:hidden}
.report-export-page-shift{width:600px;will-change:transform}
.report-export-page-foot{position:absolute;left:48px;right:48px;bottom:25px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:rgba(233,230,244,.36);font-family:var(--sans);font-size:8.5px;letter-spacing:.7px}
.report-export-page-no{color:var(--gold);font-size:10px;letter-spacing:2px}
.markdown table{width:100%;border-collapse:collapse;margin:16px 0;font-size:13.5px;font-family:var(--sans)}
.markdown th,.markdown td{border:1px solid var(--line);padding:8px 10px;text-align:left}
.markdown th{background:rgba(217,179,101,.08);color:var(--gold)}
.cursor-blink{display:inline-block;width:8px;height:18px;background:var(--gold);margin-left:3px;animation:blink 1s step-end infinite;vertical-align:text-bottom;border-radius:1px}
@keyframes blink{50%{opacity:0}}

/* ---------------- footer ---------------- */
.site-footer{position:relative;z-index:1;max-width:760px;margin:14px auto 44px;padding:0 24px;text-align:center;color:var(--faint);font-size:11.5px;line-height:1.8}
.site-footer .dim{opacity:.65;margin-top:5px;letter-spacing:2px}

/* ---------------- 历史抽屉 ---------------- */
.drawer{
  position:fixed;top:0;right:0;height:100%;width:344px;max-width:88vw;z-index:40;
  background:linear-gradient(180deg,#161331,#0b0a18);border-left:1px solid var(--line);
  box-shadow:-18px 0 60px rgba(0,0,0,.6);padding:22px;display:flex;flex-direction:column;
  animation:slideIn .28s ease;
}
@keyframes slideIn{from{transform:translateX(100%)}to{transform:none}}
.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.drawer-head h3{font-family:var(--serif);color:var(--gold);font-size:16px;letter-spacing:2px}
.history-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:9px;scrollbar-width:thin}
.history-item{
  flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;overflow:hidden;
  border-radius:12px;background:rgba(255,255,255,.03);border:1px solid var(--line);transition:.2s;
}
.history-item:hover,.history-item:focus-within{border-color:var(--gold);background:rgba(217,179,101,.06);transform:translateX(-2px)}
.history-open-btn{
  min-width:0;padding:12px 10px 12px 14px;border:0;background:transparent;color:inherit;
  font:inherit;text-align:left;cursor:pointer;
}
.history-open-btn:focus-visible{outline:none}
.history-item .hi-title{display:block;font-size:13.5px;color:var(--ink);font-weight:500;letter-spacing:.5px}
.history-item .hi-sub{display:block;font-size:11px;color:var(--faint);margin-top:4px}
.history-item-actions{align-self:center;display:flex;align-items:center;gap:5px;margin:7px 9px 7px 0}
.history-followup-btn{
  min-width:50px;min-height:44px;padding:0 9px;border-radius:9px;border:1px solid rgba(217,179,101,.42);
  background:rgba(217,179,101,.10);color:var(--gold);font-family:var(--sans);font-size:11.5px;letter-spacing:1px;cursor:pointer;transition:.2s;
}
.history-followup-btn:hover,.history-followup-btn:focus-visible{
  outline:none;border-color:var(--gold);background:rgba(217,179,101,.18);box-shadow:0 0 0 3px rgba(217,179,101,.08);
}
.history-delete-btn{
  min-width:50px;min-height:44px;margin:0;padding:0 9px;
  border-radius:9px;border:1px solid rgba(255,107,107,.28);background:rgba(255,107,107,.055);
  color:var(--danger);font-family:var(--sans);font-size:11.5px;letter-spacing:1px;cursor:pointer;transition:.2s;
}
.history-delete-btn:hover,.history-delete-btn:focus-visible{
  outline:none;border-color:rgba(255,107,107,.62);background:rgba(255,107,107,.14);
  box-shadow:0 0 0 3px rgba(255,107,107,.08);
}
.history-empty{color:var(--faint);font-size:13px;text-align:center;padding:44px 0;letter-spacing:1px}
.drawer-mask{position:fixed;inset:0;background:rgba(3,3,10,.55);z-index:39;backdrop-filter:blur(3px)}

/* ---------------- 生成完成弹层 ---------------- */
.completion-modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px}
.completion-modal[hidden]{display:none}
.completion-mask{position:absolute;inset:0;background:rgba(3,3,10,.76);backdrop-filter:blur(8px)}
.completion-card{
  position:relative;width:min(360px,100%);padding:30px 26px 25px;text-align:center;border-radius:20px;
  border:1px solid rgba(217,179,101,.38);background:linear-gradient(160deg,#1b1737,#0c0b1a);
  box-shadow:0 24px 80px rgba(0,0,0,.68),0 0 42px rgba(217,179,101,.12);
}
.completion-icon{
  width:52px;height:52px;margin:0 auto 15px;display:grid;place-items:center;border-radius:50%;
  color:#07150f;background:linear-gradient(135deg,#8be4bd,var(--jade));font-size:26px;font-weight:800;
  box-shadow:0 0 28px rgba(78,207,160,.3);
}
.completion-card h3{font-family:var(--serif);font-size:20px;color:var(--gold-bright);letter-spacing:3px;margin-bottom:9px}
.completion-card p{font-size:13px;color:var(--dim);line-height:1.8;margin-bottom:20px}
.completion-card .primary-btn{width:100%}

/* ---------------- 响应式 ---------------- */
@media(max-width:900px){
  main.layout{grid-template-columns:1fr;gap:18px;margin-top:14px}
  .col-left{position:static}
  .site-header{padding:30px 20px 4px}
  .brand-text h1{font-size:34px;letter-spacing:6px}
  #btnHistory{top:20px;right:18px}
}
@media(max-width:560px){
  .panel{padding:20px 16px}
  .time-row{grid-template-columns:1fr}
  .pillar-cards{gap:6px}
  .rule-evidence-block>summary{align-items:flex-start;padding:13px 12px}
  .rule-evidence-block>summary>span{font-size:14px;line-height:1.45}
  .rule-evidence-block>summary small{display:block;margin:2px 0 0 20px}
  .rule-evidence-scope{padding-inline:12px}
  .rule-evidence-grid{grid-template-columns:1fr;padding-inline:10px}
  .rule-evidence-card{padding:11px}
  .rule-evidence-card>header{align-items:flex-start;flex-direction:column;gap:2px}
  .rule-evidence-card>header>small{text-align:left}
  .rule-evidence-card li{font-size:10.5px;line-height:1.75}
  .rule-evidence-note{padding-inline:12px}
  .shensha-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .shensha-block h3 small{display:none}
  .shensha-help{margin-top:-3px}
  .shensha-dialog-meta{flex-wrap:wrap}
  .shensha-dialog-copy{grid-template-columns:1fr}
  .shensha-dialog-copy section{padding:12px 13px}
  .shensha-dialog-copy p{font-size:12px;line-height:1.8}
  .dayun-line{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .dayun-year-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .dayun-chip{min-height:78px;padding:11px 4px 8px}
  .dayun-detail{padding:12px 9px 10px}
  .dayun-detail-head{align-items:flex-start;flex-direction:column;gap:2px}
  .dayun-year-card{min-height:108px;padding-inline:8px}
  .pillar-card{padding:11px 4px 9px}
  .pillar-card .pc-name{min-height:27px;margin-bottom:8px;display:flex;align-items:flex-start;justify-content:center}
  .pillar-card .pc-gz b{font-size:25px}
  .pillar-card .pc-shishen{font-size:9.5px;padding:2px 5px}
  .pillar-card .pc-layer-title{font-size:8px;letter-spacing:.2px}
  .pillar-card .pc-layer-title small{display:block;margin:1px 0 0;font-size:7.5px}
  .pillar-card .pc-hidden-layer{min-height:72px;padding-inline:2px}
  .pillar-card .pc-hide{font-size:9.5px;gap:2px}
  .pillar-card .pc-hide-item{gap:2px}
  .pillar-card .pc-hide-item b{font-size:10.5px}
  .pillar-card .pc-hide i{font-size:9px}
  .pillar-card .pc-foot{font-size:9px}
  .markdown{font-size:15.5px;line-height:2}
  .chart-actions .primary-btn,.chart-actions .secondary-btn{min-width:100%}
  .brand-text p{letter-spacing:3px}
  .app-dialog{place-items:end center;padding:0}
  .app-dialog-surface{
    width:100%;max-height:88vh;max-height:88dvh;max-height:var(--tianji-visual-viewport-88-height,88dvh);padding:20px 16px calc(16px + env(safe-area-inset-bottom));
    border-radius:23px 23px 0 0;border-left:none;border-right:none;border-bottom:none;
    transform:translateY(100%) scale(1);
  }
  .app-dialog-surface::before{inset:7px 7px auto;height:54px;border-bottom:none;border-radius:17px 17px 0 0}
  .app-dialog.is-open .app-dialog-surface{transform:translateY(0)}
  .app-dialog-head h3,.confirm-dialog-surface h3{font-size:18px}
  .dialog-kicker{letter-spacing:1.8px}
  .location-options{gap:6px}
  .location-option{min-height:49px;padding:7px 9px}
  .location-step{grid-template-columns:22px minmax(0,1fr);column-gap:5px;padding:7px 5px}
  .location-step>span{width:22px;height:22px}
  .location-step small{font-size:8px}
  .location-county-panel{padding:22px 14px}
  .time-options{grid-template-columns:repeat(2,minmax(0,1fr));max-height:55vh;max-height:55dvh}
  .time-options.is-minute{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
  .time-option{padding:9px}
  .time-options.is-minute .time-option{min-height:46px;padding:6px 3px}
  .confirm-dialog-surface{width:calc(100% - 24px);margin:0 12px 12px;border:1px solid rgba(217,179,101,.2);border-radius:21px;padding:28px 22px 22px;transform:translateY(28px) scale(.985)}
  .app-dialog.is-open .confirm-dialog-surface{transform:none}
  .toast{bottom:calc(22px + env(safe-area-inset-bottom));font-size:12.5px}
  .reading-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .reading-tools .ghost-btn{width:100%;min-height:42px}
  .reading-tools .share-report-btn{grid-column:1/-1}
  .share-report-surface{max-height:94vh;max-height:94dvh}
  .share-report-disclosure{padding:12px}
  .share-report-disclosure ul{font-size:11.5px}
  .share-report-confirm{font-size:11.5px}
  .share-poster-stage{min-height:190px;padding:6px}
  .share-poster-stage img{width:100%}
  .share-report-actions{display:grid;grid-template-columns:1fr 1fr}
  .share-report-actions .dialog-action-spacer{display:none}
  .share-report-actions .dialog-primary-btn{grid-column:1/-1;width:100%}
  .share-report-actions .ghost-btn{width:100%;margin:0}
  .report-images-surface{max-height:94vh;max-height:94dvh}
  .report-images-gallery{grid-template-columns:1fr;padding-right:2px}
  .report-image-card{padding:8px}
  .report-images-actions{display:grid;grid-template-columns:1fr 1fr}
  .report-images-actions .dialog-action-spacer{display:none}
  .report-images-tip{grid-column:1/-1;width:100%;text-align:center}
  .report-images-actions [data-report-images-close],.report-images-download{width:100%}
  .report-images-actions .dialog-primary-btn{grid-column:1/-1;width:100%}
  .report-image-viewer{padding:0}
  .report-image-viewer-surface{
    width:100%;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;padding:16px 12px calc(12px + env(safe-area-inset-bottom));
    border:none;border-radius:0;transform:translateY(100%) scale(1);
  }
  .report-image-viewer-help{font-size:11.5px}
  .report-image-viewer-stage{padding:5px}
  .report-image-viewer-stage img{width:100%}
  .report-image-viewer-actions{gap:7px}
  .report-image-viewer-actions .ghost-btn{padding-inline:10px}
  #btnDownloadCurrentReportImage{padding-inline:12px}
}

@media(max-height:520px){
  .app-dialog{padding:8px}
  .app-dialog-surface{max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);padding:14px 16px}
  .app-dialog-head{margin-bottom:7px}
  .dialog-kicker{display:none}
  .dialog-lead{margin-bottom:8px}
  .location-draft-summary{min-height:30px;margin-bottom:8px;padding-top:5px;padding-bottom:5px}
  .location-draft-summary::before{top:5px}
  .location-stepper{margin-bottom:8px}
  .dialog-search{height:36px;margin-bottom:7px}
  .app-dialog-actions{margin-top:8px;padding-top:8px}
  .county-orbit{display:none}
  .location-county-panel{justify-content:flex-start;padding:12px}
}
@media(max-width:360px){
  .dayun-line{grid-template-columns:repeat(2,minmax(0,1fr))}
  .picker-trigger{gap:7px;padding-left:7px}
  .picker-trigger-mark{flex-basis:28px;width:28px;height:28px}
  .picker-trigger-meta{display:none}
  .location-step small{display:none}
  .location-step{grid-template-rows:1fr;align-items:center}
  .location-step>span{grid-row:1}
  .location-options{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  #stars{display:none}
  .app-dialog,.app-dialog-surface,.picker-trigger-arrow,.location-option,.time-option,.shensha-tag{transition:none}
}

/* ============================================================
   宋韵水墨主题 · 米宣纸 × 青绿山水 × 低饱和五行
   这一层集中覆盖旧的深色主题，同时保留现有交互与导出结构。
   ============================================================ */
:root{
  color-scheme:light;
  --canvas:#f6f2e9;
  --canvas-soft:#f1ece2;
  --paper:#fbf8f1;
  --paper-strong:#fffdf8;
  --paper-subtle:#f2ede4;
  --bg:var(--canvas);
  --bg0:var(--canvas);
  --bg1:var(--canvas-soft);
  --bg2:#e9e2d6;
  --ink:#383c37;
  --ink-soft:#5b605b;
  --dim:#686d68;
  --faint:#6b6f68;
  --gold:#9a743a;
  --gold-bright:#765b2e;
  --gold-deep:#6d5228;
  --gold-fill:#b4894b;
  --gold-wash:#e8dcc4;
  --jade:#416846;
  --jade-fill:#719865;
  --jade-wash:#dde7d7;
  --sky:#3d7597;
  --sky-end:#477d82;
  --sky-wash:#d9e7ec;
  --seal:#b4493c;
  --danger:#b6423a;
  /* 五行色：取自然矿物色相，降低高纯度色在宣纸底上的跳脱感。 */
  --wood-ink:#28624c;
  --wood-fill:#4b8a68;
  --wood-fill-end:#7fb091;
  --wood-wash:#dcece1;
  --fire-ink:#a24542;
  --fire-fill:#c9695e;
  --fire-fill-end:#e6a39a;
  --fire-wash:#f4dfdb;
  /* 土取沉稳陶褐；金用高辨识度的鎏金黄，和宣纸金玉主题一致。 */
  --earth-ink:#6c5034;
  --earth-fill:#8a684d;
  --earth-fill-end:#b49476;
  --earth-wash:#eadfd4;
  --metal-ink:#8f6000;
  --metal-fill:#b87900;
  --metal-fill-end:#f0c554;
  --metal-wash:#fff1c2;
  --water-ink:#356b84;
  --water-fill:#5a8ba9;
  --water-fill-end:#91bccd;
  --water-wash:#dcebf0;
  --line:rgba(102,86,60,.16);
  --line-strong:rgba(102,86,60,.32);
  --card:rgba(251,248,241,.94);
  --card-deep:rgba(242,237,228,.92);
  --shadow-card:0 1px 2px rgba(65,54,39,.06),0 8px 24px rgba(65,54,39,.07);
  --shadow-float:0 20px 60px rgba(65,54,39,.16);
  --focus-ring:0 0 0 3px rgba(61,117,151,.24);
  --serif:'Noto Serif SC','Songti SC','STSong',serif;
  --sans:'PingFang SC','Hiragino Sans GB','Noto Sans SC','Microsoft YaHei',system-ui,sans-serif;
  --display:'Ma Shan Zheng','STKaiti','KaiTi',var(--serif);
  --radius:22px;
  --report-bg:#f6f2e9;
}

body{
  color:var(--ink);
  background-color:var(--canvas);
  background-image:
    linear-gradient(180deg,rgba(255,253,248,.88),rgba(246,242,233,.68) 42%,rgba(241,236,226,.82)),
    url('ink-mountains.webp');
  background-position:center,center bottom;
  background-size:auto,cover;
  background-repeat:repeat,no-repeat;
  background-attachment:fixed;
}
body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    radial-gradient(circle at 20% 30%,rgba(104,87,59,.08) 0 .55px,transparent .7px),
    radial-gradient(circle at 78% 68%,rgba(104,87,59,.06) 0 .5px,transparent .7px);
  background-size:8px 11px,13px 17px;
  opacity:.28;mix-blend-mode:multiply;
}
::selection{background:rgba(154,116,58,.22);color:var(--ink)}
#stars,.bagua-bg{display:none!important}
a{color:inherit}
button,input,select{font:inherit}
:where(button,a,input,select,summary):focus-visible{outline:none;box-shadow:var(--focus-ring)}

/* 顶部品牌 */
.site-header{
  position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:30px 24px 0;text-align:left;
}
.header-top{display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{
  display:inline-flex;flex-direction:row;align-items:center;gap:12px;
  color:var(--ink);text-decoration:none;
}
.brand-text h1{
  font-family:var(--display);font-size:clamp(38px,4vw,48px);font-weight:400;line-height:1.05;
  letter-spacing:5px;text-indent:0;color:var(--ink);background:none;filter:none;
}
.brand-text p{
  display:block;margin-top:7px;color:var(--dim);font-size:10.5px;line-height:1.4;
  letter-spacing:3.2px;text-indent:1px;
}
.brand-text p::before,.brand-text p::after{display:none}
#btnHistory{position:static;top:auto;right:auto}
.history-btn{
  min-height:46px;display:inline-flex;align-items:center;padding:5px 12px;
  border-color:transparent;background:transparent;color:var(--dim);
}
/* 主布局与纸张卡片 */
main.layout{
  max-width:1180px;margin:28px auto 0;padding:0 24px 46px;
  grid-template-columns:380px minmax(0,1fr);gap:24px;
}
.col-left{top:18px}
.col-right{gap:20px}
@media(min-width:901px){
  .col-left{
    top:18px;
    max-height:calc(100vh - 36px);max-height:calc(100dvh - 36px);overflow-y:auto;overscroll-behavior-y:contain;
    scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:rgba(154,116,58,.32) transparent;
  }
  .col-left::-webkit-scrollbar{width:6px}
  .col-left::-webkit-scrollbar-track{background:transparent}
  .col-left::-webkit-scrollbar-thumb{border-radius:999px;background:rgba(154,116,58,.32)}
}
.panel{
  padding:25px;border-radius:var(--radius);color:var(--ink);
  border:1px solid var(--line);box-shadow:var(--shadow-card);
}
.glass{
  background:
    linear-gradient(180deg,rgba(255,253,248,.96),rgba(251,248,241,.93)),
    url('ink-mountains.webp') center bottom/100% auto no-repeat;
  border:1px solid var(--line);box-shadow:var(--shadow-card);
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
.panel-title{
  margin-bottom:18px;color:var(--ink);font-family:var(--serif);font-size:19px;font-weight:700;
  letter-spacing:2px;
}
.panel-title::before{
  content:'';width:9px;height:9px;display:inline-block;transform:rotate(45deg);
  border:1px solid var(--gold);background:var(--paper-strong);box-shadow:inset 0 0 0 2px var(--gold-wash);
}
.panel-title::after{background:linear-gradient(90deg,var(--line-strong),transparent)}

/* 表单、切换与选择器 */
.mode-tabs{
  gap:22px;padding:0 2px 12px;margin-bottom:24px;border:0;border-radius:0;
  background:transparent;border-bottom:1px solid var(--line);
}
.mode-tabs button{
  position:relative;min-height:42px;padding:8px 4px;border-radius:0;color:var(--dim);
  background:transparent;font-family:var(--serif);font-size:15px;letter-spacing:1px;
}
.mode-tabs button:hover{color:var(--ink)}
.mode-tabs button.active{
  color:var(--ink);background:transparent;box-shadow:none;font-weight:700;
}
.mode-tabs button.active::after{
  content:'';position:absolute;left:20%;right:20%;bottom:-13px;height:3px;border-radius:3px;background:var(--gold-fill);
}
.field{margin-bottom:19px}
.field>label{margin-bottom:8px;color:var(--ink-soft);font-size:12.5px;font-weight:500;letter-spacing:1.2px}
.opt{
  color:var(--faint);background:var(--paper-subtle);border:1px solid var(--line);
  border-radius:999px;padding:2px 7px;
}
.opt.required{color:var(--danger);border-color:rgba(182,66,58,.2);background:rgba(182,66,58,.06)}
.field-validation{margin:8px 0 0;padding:8px 10px;border-radius:9px;color:var(--danger);background:rgba(182,66,58,.07);font-size:11.5px;line-height:1.65}
.picker-trigger[aria-invalid="true"]{border-color:var(--danger);box-shadow:0 0 0 3px rgba(182,66,58,.1)}
input[type=text],input[type=number],select{
  min-height:46px;padding:11px 13px;border-radius:11px;color:var(--ink);
  background:rgba(255,253,248,.92);border:1px solid var(--line-strong);
  box-shadow:inset 0 1px 1px rgba(83,67,42,.025);
}
input:focus,select:focus{border-color:var(--sky);box-shadow:var(--focus-ring)}
input::placeholder{color:#6f736d}
select{
  background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);
  background-position:calc(100% - 17px) 55%,calc(100% - 12px) 55%;
  background-size:5px 5px;background-repeat:no-repeat;
}
.seg{
  padding:4px;border:0;border-radius:12px;background:var(--paper-subtle);
}
.seg button{min-height:40px;color:var(--dim);border:1px solid transparent}
.seg button{white-space:nowrap}
.seg button:hover{color:var(--ink)}
.seg button.active{
  color:var(--jade);background:var(--jade-wash);border-color:transparent;
  box-shadow:none;font-weight:700;
}
.check{color:var(--dim);font-size:12px}
.check input,.wechat-notice-option input{accent-color:var(--jade)}
.time-mode-hint,.hint,.longitude-override i{color:var(--faint)}
.birthplace-hint b{color:var(--gold-deep)}
.calendar-date-field .grid3 select{padding-right:30px;font-weight:500}
.calendar-date-hint{
  min-height:26px;margin:7px 0 0;padding:3px 2px;border:0;border-radius:0;
  background:transparent;color:var(--jade);
  font-size:10.5px;line-height:1.7;letter-spacing:.15px;
}
.calendar-date-hint::before{content:'历';display:inline-grid;place-items:center;width:18px;height:18px;margin-right:6px;border-radius:50%;background:rgba(65,104,70,.10);font-family:var(--serif);font-size:9px;font-weight:700;vertical-align:-1px}
.calendar-date-hint.is-incomplete{border:0;background:transparent;color:var(--dim)}
.calendar-date-hint.is-incomplete::before{content:'!';background:color-mix(in srgb,var(--danger) 12%,transparent);font-family:var(--sans)}
.picker-trigger{
  min-height:55px;border-color:var(--line-strong);color:var(--ink);
  background:rgba(255,253,248,.9);
}
.picker-trigger:hover{border-color:rgba(61,117,151,.55);background:var(--paper-strong)}
.picker-trigger:focus-visible,.picker-trigger[aria-expanded="true"]{
  border-color:var(--sky);box-shadow:var(--focus-ring);background:var(--paper-strong);
}
.picker-trigger-mark{
  border-color:rgba(154,116,58,.28);color:var(--gold-deep);
  background:var(--gold-wash);box-shadow:none;
}
.picker-trigger-value{color:var(--ink)}
.picker-trigger-value.is-placeholder{color:var(--dim)}
.picker-trigger-meta{color:var(--faint)}
.picker-trigger-arrow{color:var(--gold)}
.dropzone{
  border:1px dashed var(--line-strong);background:rgba(242,237,228,.65);border-radius:16px;
}
.dropzone:hover,.dropzone.dragover{border-color:var(--sky);background:var(--sky-wash);box-shadow:var(--focus-ring)}
.dz-icon{
  width:42px;height:42px;display:grid;place-items:center;margin:0 auto 10px;border-radius:50%;
  background:var(--sky-wash);color:var(--sky);font-family:var(--serif);font-size:15px;
}
.dropzone p{color:var(--ink-soft)}
.dropzone .dz-sub{color:var(--faint)}
#dzPreview img{border-color:var(--line);box-shadow:var(--shadow-card)}

/* 按钮 */
.primary-btn{
  min-height:52px;padding:13px 20px;border:1px solid rgba(45,93,113,.26);border-radius:999px;
  color:#fff;background:linear-gradient(100deg,var(--sky),#3f758e 52%,#3d6f73);
  box-shadow:0 8px 20px rgba(61,117,151,.18);font-size:15px;letter-spacing:2.5px;
}
.primary-btn::after{
  opacity:.36;background:linear-gradient(100deg,transparent,rgba(255,255,255,.52),transparent);
}
.primary-btn:hover{box-shadow:0 11px 26px rgba(61,117,151,.24)}
.vision-submit-actions{
  margin-top:3px;padding-top:17px;border-top:1px solid var(--line);
}
.vision-submit-actions .primary-btn{width:100%}
.secondary-btn{
  min-height:52px;border:1px solid rgba(65,104,70,.38);border-radius:999px;
  color:var(--jade);background:var(--jade-wash);box-shadow:none;
}
.secondary-btn:hover{background:#d3e1cd;box-shadow:0 7px 18px rgba(65,104,70,.11)}
.ghost-btn{
  min-height:40px;border-color:var(--line);color:var(--dim);background:rgba(255,253,248,.64);
}
.ghost-btn:hover{color:var(--ink);border-color:var(--line-strong);background:var(--paper-strong)}
.ghost-btn.danger{color:var(--danger);border-color:rgba(182,66,58,.24)}
.ghost-btn.danger:hover{background:rgba(182,66,58,.07);border-color:rgba(182,66,58,.42)}
.primary-btn:focus-visible,.secondary-btn:focus-visible,.ghost-btn:focus-visible,
.dialog-primary-btn:focus-visible,.dialog-danger-btn:focus-visible,
.mode-tabs button:focus-visible,.seg button:focus-visible{
  outline:2px solid var(--sky);outline-offset:2px;
}

/* 命盘结果：身份横幅 + 独立内容纸卡 */
#chartPanel{
  padding:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none;
}
#chartPanel>.meta-row,
#chartPanel>.calculation-basis,
#chartPanel>.calculation-warning,
#chartPanel>.shensha-block,
#chartPanel>.wx-block,
#chartPanel>.rule-evidence-block,
#chartPanel>.dayun-block{
  border:1px solid var(--line);background-color:rgba(251,248,241,.95);box-shadow:var(--shadow-card);
}
.reading-head .panel-title,.image-head .panel-title{margin-bottom:0}
.badge{
  display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-color:rgba(65,104,70,.3);
  color:var(--jade);background:var(--jade-wash);
}
.badge::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.badge.warn{color:var(--danger);border-color:rgba(182,66,58,.28);background:rgba(182,66,58,.07)}
.meta-row{
  position:relative;isolation:isolate;min-height:280px;margin:0 0 14px;padding:28px 44% 78px 28px;
  grid-template-columns:repeat(2,minmax(130px,1fr));gap:10px 18px;border-radius:22px;overflow:hidden;
  color:var(--ink-soft);
  background:
    linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.94) 38%,rgba(248,246,255,.7) 57%,rgba(248,246,255,.08) 86%),
    url('assets/tech-light/bazi-meta-banner-tech-light-v2.webp') right center/auto 100% no-repeat;
}
.meta-row::before{
  content:'命';position:absolute;z-index:-1;right:54px;top:34px;width:108px;height:108px;
  display:grid;place-items:center;border-radius:50%;border:1px solid rgba(61,117,151,.28);
  color:rgba(46,92,105,.72);font-family:var(--display);font-size:58px;
  box-shadow:inset 0 0 0 8px rgba(217,231,236,.35),0 0 0 1px rgba(61,117,151,.08);
}
html:not([data-theme="dark"]) .meta-row::before{display:none}
.meta-identity{display:contents}
.meta-row b{color:var(--faint);font-size:11.5px}
.meta-row span{
  position:relative;z-index:1;color:var(--ink-soft);font-size:13px;
  white-space:normal;overflow:visible;text-overflow:clip;
}
html:not([data-theme="dark"]) .meta-row b{color:#666179;font-weight:600}
html:not([data-theme="dark"]) .meta-row span{color:#3d3854}
.chart-birth-edit{
  position:absolute;left:28px;right:auto;bottom:24px;z-index:3;min-width:0;min-height:40px;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;
  border:1px solid color-mix(in srgb,var(--gold) 26%,var(--line));border-radius:999px;
  color:var(--gold-deep);background:color-mix(in srgb,var(--paper-strong) 72%,transparent);
  box-shadow:0 4px 12px rgba(62,49,117,.06);cursor:pointer;font:600 11px/1 var(--sans);
  letter-spacing:.25px;white-space:nowrap;
  transition:border-color .18s,background .18s,color .18s,box-shadow .18s,transform .18s;
}
.chart-birth-edit[hidden]{display:none}
.chart-birth-edit::before{content:'✎';font-size:14px;font-weight:500;line-height:1}
.chart-birth-edit:hover,.chart-birth-edit:focus-visible{
  outline:none;color:var(--jade);border-color:color-mix(in srgb,var(--jade) 54%,var(--line));
  background:color-mix(in srgb,var(--jade-wash) 74%,var(--paper-strong));
  box-shadow:0 9px 22px rgba(65,104,70,.13);transform:translateY(-1px);
}
.calculation-basis{
  margin:0 0 14px!important;border-radius:18px;background:rgba(251,248,241,.92)!important;
}
.calculation-basis summary{padding:13px 16px;color:var(--gold-deep)}
.calculation-basis-list{padding:0 16px 15px}
.calculation-basis-list span{color:var(--dim)}
.calculation-basis-list b{color:var(--gold-deep);background:var(--gold-wash)}
.calculation-warning{
  margin:0 0 14px!important;color:#8d5225;background:#f6ead4!important;border-color:rgba(154,116,58,.25)!important;
}
.pillar-cards{gap:12px;margin-bottom:14px}
.pillar-card{
  min-height:330px;padding:17px 9px 14px;border-color:var(--line);border-radius:18px;
  background:
    linear-gradient(180deg,rgba(255,253,248,.98) 0%,rgba(251,248,241,.96) 58%,rgba(251,248,241,.54) 100%),
    url('ink-mountains.webp') center bottom/auto 43% no-repeat;
  box-shadow:var(--shadow-card);
}
.pillar-card:hover{border-color:var(--line-strong);box-shadow:0 10px 28px rgba(65,54,39,.1)}
.pillar-card.day{
  border-color:rgba(154,116,58,.55);
  background:
    linear-gradient(180deg,rgba(255,253,248,.98),rgba(250,243,228,.9) 58%,rgba(250,243,228,.54)),
    url('ink-mountains.webp') center bottom/auto 43% no-repeat;
  box-shadow:0 0 0 2px rgba(154,116,58,.08),var(--shadow-card);
}
.pillar-card .pc-name{color:var(--jade);font-family:var(--serif);font-size:13px;font-weight:700}
.pillar-card.day .pc-name{color:var(--gold-deep)}
.pillar-card .pc-layer-title{color:var(--dim)}
.pillar-card .pc-layer-title small{color:var(--faint)}
.pillar-card .pc-shishen{
  color:var(--gold-deep);border-color:rgba(154,116,58,.28);background:var(--gold-wash);
}
.pillar-card .pc-shishen-zhi{color:var(--jade);border-color:rgba(65,104,70,.22);background:var(--jade-wash)}
.pillar-card .pc-gz b{font-size:36px;text-shadow:none}
.wx-glyph{
  --wx-ink:var(--ink);
  --wx-wash:var(--paper-subtle);
}
.pillar-card .pc-gz .wx-glyph{
  display:inline-grid;grid-template-columns:auto minmax(21px,auto);align-items:center;justify-content:center;
  gap:5px;color:var(--wx-ink);
}
.pillar-card .pc-gz .wx-char{font:inherit;line-height:1.16}
.pillar-card .pc-gz .wx-element{
  min-width:21px;padding:2px 5px;border:1px solid currentColor;border-radius:999px;
  color:var(--wx-ink);background:var(--wx-wash);box-shadow:0 1px 3px rgba(65,54,39,.06);
  font-family:var(--sans);font-size:9px;font-style:normal;font-weight:700;line-height:1.35;letter-spacing:0;
}
.pillar-card .pc-hidden-layer{
  border-color:var(--line);background:rgba(255,253,248,.55);
}
.pillar-card .pc-hide{color:var(--dim)}
.pillar-card .pc-hide-item b{color:var(--ink)}
.pillar-card .pc-hide i,.pillar-card .pc-foot{color:var(--faint)}
.pillar-card .pc-foot{border-top-color:var(--line)}
.wx-glyph[data-wuxing="木"]{--wx-ink:var(--wood-ink);--wx-wash:var(--wood-wash)}
.wx-glyph[data-wuxing="火"]{--wx-ink:var(--fire-ink);--wx-wash:var(--fire-wash)}
.wx-glyph[data-wuxing="土"]{--wx-ink:var(--earth-ink);--wx-wash:var(--earth-wash)}
.wx-glyph[data-wuxing="金"]{--wx-ink:var(--metal-ink);--wx-wash:var(--metal-wash)}
.wx-glyph[data-wuxing="水"]{--wx-ink:var(--water-ink);--wx-wash:var(--water-wash)}
.wx-bar[data-wuxing="木"] .wx-name{color:var(--wood-ink)}
.wx-bar[data-wuxing="火"] .wx-name{color:var(--fire-ink)}
.wx-bar[data-wuxing="土"] .wx-name{color:var(--earth-ink)}
.wx-bar[data-wuxing="金"] .wx-name{
  color:var(--metal-ink);border-color:rgba(184,121,0,.52);
  background:linear-gradient(135deg,#fff9df,#f6dd91);box-shadow:inset 0 1px rgba(255,255,255,.85),0 2px 5px rgba(143,96,0,.10);
}
.wx-bar[data-wuxing="水"] .wx-name{color:var(--water-ink)}

/* 神煞、五行、大运 */
#chartPanel>.shensha-block,#chartPanel>.wx-block,#chartPanel>.rule-evidence-block,#chartPanel>.dayun-block{
  margin-top:14px;padding:20px 22px;border-radius:20px;
  background:
    linear-gradient(180deg,rgba(255,253,248,.97),rgba(251,248,241,.94)),
    url('ink-mountains.webp') center bottom/100% auto no-repeat;
}
.shensha-block h3,.wx-block h3,.dayun-block h3{color:var(--ink);font-size:16px}
.shensha-block h3::after,.wx-block h3::after,.dayun-block h3::after{background:linear-gradient(90deg,var(--line-strong),transparent)}
.shensha-column{
  border-color:var(--line);background:rgba(255,253,248,.72);
}
.shensha-column.day{border-color:rgba(154,116,58,.35);background:rgba(232,220,196,.3)}
.shensha-column-head span{color:var(--faint)}
.shensha-column-head b{color:var(--ink-soft)}
.shensha-column.day .shensha-column-head span,.shensha-column.day .shensha-column-head b{color:var(--gold-deep)}
.shensha-tag{border-color:var(--line);color:var(--ink-soft);background:var(--paper-subtle)}
.shensha-tag.is-good{color:var(--gold-deep);border-color:rgba(154,116,58,.3);background:var(--gold-wash)}
.shensha-tag.is-neutral{color:var(--jade);border-color:rgba(65,104,70,.24);background:var(--jade-wash)}
.shensha-tag.is-caution{color:var(--danger);border-color:rgba(182,66,58,.2);background:rgba(182,66,58,.065)}
.shensha-dialog-tone{color:var(--ink-soft);border-color:var(--line);background:var(--paper-subtle)}
.shensha-dialog-tone.is-good{color:var(--gold-deep);border-color:rgba(154,116,58,.3);background:var(--gold-wash)}
.shensha-dialog-tone.is-neutral{color:var(--jade);border-color:rgba(65,104,70,.24);background:var(--jade-wash)}
.shensha-dialog-tone.is-caution{color:var(--danger);border-color:rgba(182,66,58,.2);background:rgba(182,66,58,.065)}
.shensha-dialog-position{color:var(--dim);border-color:var(--line);background:var(--paper-subtle)}
.shensha-dialog-keywords span{color:var(--gold-deep);border-color:rgba(154,116,58,.22);background:var(--gold-wash)}
.shensha-dialog-copy section{border-color:var(--line);background:rgba(255,253,248,.72)}
.shensha-dialog-copy h4{color:var(--ink)}
.shensha-dialog-copy p{color:var(--dim)}
.shensha-dialog-copy .shensha-dialog-variant{border-top-color:var(--line);color:var(--faint)}
.shensha-dialog-note{color:var(--dim);border-color:rgba(65,104,70,.18);background:var(--jade-wash)}
.shensha-tag:focus-visible{box-shadow:var(--focus-ring)}
.shensha-tag[aria-expanded="true"]{box-shadow:0 0 0 1px currentColor,var(--focus-ring)}
.shensha-basis-note,.shensha-help{color:var(--faint)}
.wx-bars{gap:12px}
.wx-bar{gap:12px;--wx-ink:var(--ink);--wx-fill:var(--ink-soft);--wx-fill-end:var(--ink-soft);--wx-wash:var(--paper-subtle)}
.wx-bar .wx-name{
  display:inline-flex;align-items:center;justify-content:center;gap:5px;width:46px;min-height:26px;padding:0 8px;
  border:1px solid color-mix(in srgb,var(--wx-ink) 16%,transparent);border-radius:999px;color:var(--wx-ink);background:var(--wx-wash);
  font-family:var(--serif);font-size:14px;font-weight:700;filter:none;
}
.wx-bar .wx-name::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--wx-fill);box-shadow:0 0 0 3px color-mix(in srgb,var(--wx-fill) 14%,transparent)}
.wx-bar .wx-track{height:12px;border:1px solid color-mix(in srgb,var(--wx-ink) 8%,transparent);background:rgba(98,103,106,.09)}
.wx-bar .wx-fill{width:var(--wx-ratio);background:linear-gradient(90deg,var(--wx-fill),var(--wx-fill-end));box-shadow:inset 0 1px rgba(255,255,255,.36),0 2px 5px color-mix(in srgb,var(--wx-fill) 18%,transparent)}
.wx-bar[data-wuxing="木"]{--wx-ink:var(--wood-ink);--wx-fill:var(--wood-fill);--wx-fill-end:var(--wood-fill-end);--wx-wash:var(--wood-wash)}
.wx-bar[data-wuxing="火"]{--wx-ink:var(--fire-ink);--wx-fill:var(--fire-fill);--wx-fill-end:var(--fire-fill-end);--wx-wash:var(--fire-wash)}
.wx-bar[data-wuxing="土"]{--wx-ink:var(--earth-ink);--wx-fill:var(--earth-fill);--wx-fill-end:var(--earth-fill-end);--wx-wash:var(--earth-wash)}
.wx-bar[data-wuxing="金"]{--wx-ink:var(--metal-ink);--wx-fill:var(--metal-fill);--wx-fill-end:var(--metal-fill-end);--wx-wash:var(--metal-wash)}
.wx-bar[data-wuxing="金"] .wx-fill{
  background:linear-gradient(90deg,#a86d00 0%,#d89500 38%,#ffe49a 54%,#bd7c00 100%);
  box-shadow:inset 0 1px rgba(255,255,255,.68),0 2px 7px rgba(184,121,0,.34);
}
.wx-bar[data-wuxing="水"]{--wx-ink:var(--water-ink);--wx-fill:var(--water-fill);--wx-fill-end:var(--water-fill-end);--wx-wash:var(--water-wash)}
.wx-bar .wx-val{color:var(--ink-soft)}
.dayun-line{
  grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(118px,1fr);
  gap:10px;padding:13px 2px 9px;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:thin;scrollbar-color:rgba(154,116,58,.25) transparent;
}
.dayun-line::-webkit-scrollbar{height:5px}
.dayun-line::-webkit-scrollbar-thumb{background:rgba(154,116,58,.25);border-radius:8px}
.dayun-chip{
  min-height:112px;padding:15px 8px 11px;border-color:var(--line);border-radius:14px;
  background:rgba(255,253,248,.74);scroll-snap-align:start;
}
.dayun-chip:hover{border-color:var(--line-strong);background:var(--paper-strong)}
.dayun-chip:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.dayun-chip.selected{border-color:rgba(65,104,70,.52);box-shadow:inset 0 0 0 2px rgba(65,104,70,.11)}
.dayun-chip.current{
  border-color:var(--jade-fill);background:rgba(221,231,215,.58);
  box-shadow:inset 0 0 0 2px rgba(113,152,101,.18),var(--shadow-card);
}
.dayun-chip.current::before{
  content:'当前';top:-8px;color:#fff;background:var(--jade);box-shadow:0 3px 8px rgba(65,104,70,.18);
}
.dayun-chip .dc-gz{color:var(--ink)}
.dayun-chip .dc-age{color:var(--dim)}
.dayun-chip .dc-xusui{color:var(--jade)}
.dayun-chip .dc-year,.yun-start{color:var(--faint)}
.dayun-current{
  border-color:rgba(65,104,70,.24);background:var(--jade-wash);
}
.dayun-current b{color:var(--jade)}
.dayun-current.is-uncertain{border-color:rgba(154,116,58,.28);background:#f6ead4}
.dayun-current.is-uncertain b{color:#8d5225}
.dayun-detail{border-color:rgba(65,104,70,.2);background:rgba(221,231,215,.36)}
.dayun-detail-head h4{color:var(--jade)}
.dayun-year-card{border-color:var(--line);background:rgba(255,253,248,.75)}
.dayun-year-card.current{border-color:var(--gold);background:rgba(232,220,196,.45)}
.dayun-year-card.current::before{color:#fff;background:var(--gold-deep)}
.dyr-head{border-bottom-color:var(--line)}
.dyr-head b{color:var(--ink)}
.dyr-liunian b{color:var(--gold-deep)}
.dyr-xiaoyun b{color:var(--jade)}
.chart-actions{margin-top:16px;padding:6px 2px 0}
.wechat-notice-option{
  border-color:rgba(65,104,70,.24);background:var(--jade-wash);color:var(--ink);
}
.wechat-notice-option b{color:var(--jade)}

/* 欢迎、插画与阅读 */
.welcome{
  min-height:520px;padding:62px 42px 235px;
  background:
    linear-gradient(180deg,rgba(255,253,248,.97) 0%,rgba(251,248,241,.88) 53%,rgba(251,248,241,.15) 100%),
    url('ink-mountains.webp') center bottom/cover no-repeat;
}
.welcome-icon{
  width:112px;height:112px;display:grid;place-items:center;margin:0 auto 22px;border-radius:50%;
  color:rgba(46,92,105,.78);border:1px solid rgba(61,117,151,.3);
  background:rgba(217,231,236,.36);font-family:var(--display);font-size:58px;
  filter:none;box-shadow:inset 0 0 0 9px rgba(255,253,248,.42);animation:none;
}
.welcome h2{color:var(--ink);font-size:24px}
.welcome p{color:var(--ink-soft)}
.welcome-steps span{
  color:var(--dim);border:1px solid var(--line);background:rgba(255,253,248,.6);
}
#imagePanel,#readingPanel{
  background:rgba(251,248,241,.96);box-shadow:var(--shadow-card);
}
.image-box img{border-color:var(--line);box-shadow:var(--shadow-float)}
.image-caption{color:var(--faint);font-size:12px;text-align:center}
.img-loading-card{border-color:var(--line);background:var(--paper-subtle)}
.img-orbit{
  position:relative;border-color:rgba(61,117,151,.3);color:var(--sky);box-shadow:none;
}
.img-orbit::before,.report-images-loading span::before{
  content:'山';font-family:var(--display);font-size:22px;color:var(--sky);
}
.img-error,.img-error-note{color:var(--danger)!important}
.reading-status{
  display:flex;align-items:center;gap:8px;color:var(--jade);
}
.reading-status:not(:empty)::before{
  content:'';flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:currentColor;
}
.reading-status.err{color:var(--danger)}
.reading-status.warn{color:var(--gold-deep)}
.reading-status .bg-ok{color:var(--jade)}
.markdown{color:var(--ink);font-size:16px;line-height:2.05}
.markdown h1{color:var(--ink)}
.markdown h2{color:var(--gold-deep);border-left-color:var(--gold)}
.markdown h3{color:var(--ink)}
.markdown strong{color:var(--gold-deep)}
.markdown em{color:var(--jade)}
.markdown blockquote{border-left-color:var(--jade);background:var(--jade-wash);color:var(--ink-soft)}
.markdown th{background:var(--gold-wash);color:var(--gold-deep)}
.cursor-blink{background:var(--gold)}

/* 统一浅色弹层 */
.app-dialog-mask{background:rgba(44,39,31,.36);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.app-dialog-surface{
  color:var(--ink);
  background:
    linear-gradient(180deg,rgba(255,253,248,.99),rgba(246,242,233,.99)),
    url('ink-mountains.webp') center bottom/100% auto no-repeat;
  background-color:var(--paper-strong);
  border-color:var(--line-strong);box-shadow:var(--shadow-float);
}
.app-dialog-surface::before{border-color:rgba(154,116,58,.08)}
.dialog-glow{border-color:rgba(154,116,58,.11);box-shadow:0 0 70px rgba(154,116,58,.08)}
.dialog-kicker{color:var(--gold)}
.app-dialog-head h3,.confirm-dialog-surface h3{color:var(--ink)}
.dialog-icon-btn{border-color:var(--line);background:var(--paper-subtle);color:var(--dim)}
.dialog-icon-btn:hover,.dialog-icon-btn:focus-visible{color:var(--ink);border-color:var(--line-strong);background:var(--paper-strong)}
.dialog-lead{color:var(--dim)}
.location-draft-summary{border-color:rgba(65,104,70,.2);background:var(--jade-wash);color:var(--jade)}
.location-draft-summary.is-empty{color:var(--faint);border-color:var(--line);background:var(--paper-subtle)}
.location-stepper{border-color:var(--line);background:var(--paper-subtle)}
.location-step{color:var(--faint)}
.location-step>span{border-color:var(--line-strong);color:var(--faint)}
.location-step:hover:not(:disabled){color:var(--ink);background:var(--paper-strong)}
.location-step.active{color:var(--jade);background:var(--jade-wash);box-shadow:none}
.location-step.active>span{border-color:rgba(65,104,70,.28);color:var(--jade);background:rgba(255,253,248,.55)}
.location-step.active small{color:var(--jade)}
.location-step.is-done:not(.active){color:var(--gold-deep)}
.dialog-search{border-color:var(--line);background:rgba(255,253,248,.8)}
.dialog-search:focus-within{border-color:var(--sky);box-shadow:var(--focus-ring)}
.dialog-search>span{color:var(--gold)}
.dialog-search input[type=search]{color:var(--ink)}
.dialog-search input[type=search]::-webkit-search-cancel-button{filter:none}
.location-option,.time-option{
  border-color:var(--line);background:var(--paper-strong);color:var(--dim);
}
.location-option:hover,.location-option:focus-visible,.time-option:hover,.time-option:focus-visible{
  color:var(--ink);border-color:var(--line-strong);background:var(--paper-strong);box-shadow:var(--focus-ring);
}
.location-option-check{border-color:var(--line)}
.location-option.is-selected,.time-option.is-selected{
  border-color:rgba(65,104,70,.5);background:var(--jade-wash);color:var(--jade);box-shadow:none;
}
.location-option.is-selected .location-option-check{border-color:var(--jade);background:var(--jade);color:#fff;box-shadow:none}
.location-option.is-selected .location-option-check::before{content:'✓';font-size:10px}
.location-county-panel{border-color:var(--line);background:rgba(242,237,228,.6)}
.county-orbit{border-color:var(--line-strong);color:var(--gold);box-shadow:none}
.location-county-panel input{background:var(--paper-strong)}
.app-dialog-actions{border-top-color:var(--line)}
.dialog-primary-btn{color:#fff;background:var(--sky);box-shadow:0 5px 15px rgba(61,117,151,.18)}
.dialog-primary-btn:hover,.dialog-primary-btn:focus-visible{box-shadow:0 8px 20px rgba(61,117,151,.24)}
.dialog-danger-btn{color:var(--danger);border-color:rgba(182,66,58,.32);background:rgba(182,66,58,.07);box-shadow:none}
.confirm-symbol{border-color:rgba(182,66,58,.3);background:rgba(182,66,58,.07)}
.toast{
  color:var(--ink);border-color:var(--line-strong);background:rgba(255,253,248,.98);
  box-shadow:var(--shadow-float);
}

/* 历史、完成提示、页脚 */
.drawer{
  color:var(--ink);background:linear-gradient(180deg,var(--paper-strong),var(--canvas-soft));
  border-left-color:var(--line);box-shadow:-18px 0 60px rgba(65,54,39,.18);
}
.drawer-head h3{color:var(--ink)}
.history-item{background:rgba(255,253,248,.72);border-color:var(--line)}
.history-item:hover,.history-item:focus-within{border-color:var(--gold);background:var(--gold-wash)}
.history-item .hi-title{color:var(--ink)}
.history-followup-btn{border-color:rgba(137,105,39,.30);background:rgba(137,105,39,.07);color:var(--gold-deep)}
.history-delete-btn{border-color:rgba(182,66,58,.24);background:rgba(182,66,58,.06);color:var(--danger)}
.drawer-mask,.completion-mask{background:rgba(44,39,31,.42)}
.completion-card{
  border-color:var(--line-strong);background:linear-gradient(160deg,var(--paper-strong),var(--canvas-soft));
  box-shadow:var(--shadow-float);
}
.completion-icon{color:#fff;background:var(--jade);box-shadow:0 8px 22px rgba(65,104,70,.18)}
.completion-card h3{color:var(--ink)}
.completion-card p{color:var(--dim)}
.site-footer{color:var(--dim)}

/* 报告预览与导出保持同一套宣纸主题 */
.report-images-gallery{scrollbar-color:rgba(154,116,58,.25) transparent}
.report-images-loading{color:var(--dim);border-color:var(--line);background:var(--paper-subtle)}
.report-images-loading span{color:var(--sky)}
.report-image-card{border-color:var(--line);background:var(--paper-subtle)}
.report-image-card.is-current{border-color:rgba(154,116,58,.5);box-shadow:0 0 0 2px rgba(154,116,58,.08),var(--shadow-card)}
.report-image-card img{background:var(--canvas);box-shadow:var(--shadow-card)}
.report-image-viewer-help{color:var(--gold-deep)}
.report-image-viewer-stage{border-color:var(--line);background:var(--canvas-soft)}
.report-image-viewer-stage img{background:var(--canvas)}
.report-export-flow,.report-export-flow-copy{
  background:var(--report-bg);color:var(--ink);
}
.report-export-flow-copy{background:transparent}
.report-export-reading-head{border-color:var(--line)}
.report-export-reading-head h2{color:var(--ink)}
.report-export-page{
  background:
    linear-gradient(180deg,rgba(255,253,248,.96),rgba(246,242,233,.9)),
    url('ink-mountains.webp') center bottom/cover no-repeat;
  color:var(--ink);border-color:var(--line-strong);
}
.report-export-page::before{border-color:rgba(154,116,58,.15)}
.report-export-page-head{border-bottom-color:var(--line)}
.report-export-page-brand{color:var(--ink);font-family:var(--display);font-size:17px}
.report-export-page-title{color:var(--dim)}
.report-export-page-foot{color:var(--faint)}
.report-export-page-no{color:var(--gold-deep)}

/* 截图识盘：提取 → 核对 → 生成 */
.vision-review-panel{overflow:hidden}
.vision-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.vision-review-head .panel-title{margin:4px 0 0}
.panel-kicker{display:block;color:var(--faint);font-size:10px;font-weight:700;letter-spacing:2.2px;text-transform:uppercase}
.badge.review{flex:0 0 auto;color:var(--gold-deep);border-color:rgba(154,116,58,.28);background:var(--gold-wash)}
.vision-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:15px}
.vision-flow span{min-height:38px;display:flex;align-items:center;justify-content:center;gap:7px;padding:7px 8px;border:1px solid var(--line);border-radius:11px;background:var(--paper-subtle);color:var(--faint);font-size:11px}
.vision-flow b{width:21px;height:21px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:50%;font-size:10px}
.vision-flow .is-done{color:var(--jade);border-color:rgba(65,104,70,.2);background:var(--jade-wash)}
.vision-flow .is-current{color:var(--gold-deep);border-color:rgba(154,116,58,.3);background:var(--gold-wash);font-weight:700}
.vision-review-alert{margin-bottom:15px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--paper-subtle);color:var(--dim);font-size:12px;line-height:1.65}
.vision-review-alert.is-warning{color:var(--gold-deep);border-color:rgba(154,116,58,.3);background:var(--gold-wash)}
.vision-review-alert.is-ready{color:var(--jade);border-color:rgba(65,104,70,.22);background:var(--jade-wash)}
.vision-review-alert.is-error{color:var(--danger);border-color:rgba(182,66,58,.24);background:rgba(182,66,58,.07)}
.vision-review-alert.is-loading{color:var(--sky);border-color:rgba(61,117,151,.22);background:var(--sky-wash)}
.vision-review-source{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:16px;margin-bottom:20px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--paper-subtle)}
.vision-review-source img{width:150px;height:104px;object-fit:contain;border:1px solid var(--line);border-radius:10px;background:var(--paper-strong)}
.vision-review-source p{color:var(--dim);font-size:11.5px;line-height:1.75}
.vision-review-group{min-width:0;margin:0 0 20px;padding:0;border:0}
.vision-review-group legend{width:100%;margin-bottom:10px;padding-bottom:7px;border-bottom:1px solid var(--line);color:var(--ink);font-family:var(--serif);font-size:15px;font-weight:700;letter-spacing:1.5px}
.vision-pillar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.vision-field-card{min-width:0;display:block;padding:10px;border:1px solid var(--line);border-radius:13px;background:var(--paper-subtle);transition:border-color .2s,background .2s,box-shadow .2s}
.vision-field-card>span{min-height:36px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;margin-bottom:7px;text-align:center}
.vision-field-card b{color:var(--ink-soft);font-size:12px;letter-spacing:1px}
.vision-field-card i,.vision-dayun-meta i,.vision-dayun-confidence{color:var(--faint);font-size:9px;font-style:normal;line-height:1.35}
.vision-field-card input{min-height:54px;padding:7px 3px;text-align:center;font-family:var(--serif);font-size:25px;font-weight:800;letter-spacing:4px;text-indent:4px}
.vision-field-card.is-low,.vision-dayun-row.is-low{border-color:rgba(154,116,58,.48);background:var(--gold-wash);box-shadow:0 0 0 2px rgba(154,116,58,.07)}
.vision-field-card.is-low i,.vision-dayun-row.is-low .vision-dayun-confidence{color:var(--gold-deep);font-weight:700}
.vision-field-card.is-clear,.vision-dayun-row.is-clear{border-color:rgba(65,104,70,.2)}
.vision-field-card.is-clear i,.vision-dayun-row.is-clear .vision-dayun-confidence{color:var(--jade)}
.vision-field-card.is-edited,.vision-dayun-row.is-edited{border-color:rgba(61,117,151,.42);background:var(--sky-wash);box-shadow:0 0 0 2px rgba(61,117,151,.06)}
.vision-field-card.is-edited i,.vision-dayun-row.is-edited .vision-dayun-confidence{color:var(--sky);font-weight:700}
.vision-dayun-meta{display:grid;grid-template-columns:.8fr 1.15fr 1fr;gap:9px;margin-bottom:12px}
.vision-dayun-meta>label{min-width:0;display:flex;flex-direction:column;gap:5px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--paper-subtle)}
.vision-dayun-meta>label>span{color:var(--ink-soft);font-size:11px}
.vision-dayun-meta small,.vision-dayun-row small{color:var(--faint);font-weight:400}
.vision-dayun-meta input,.vision-dayun-meta select{min-height:40px;padding-block:8px;font-size:12.5px}
.vision-dayun-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0}
.vision-dayun-toolbar p{color:var(--faint);font-size:10.5px}
.vision-dayun-toolbar .ghost-btn{flex:0 0 auto;padding:7px 10px;font-size:11px}
.vision-dayun-list{display:flex;flex-direction:column;gap:8px;transition:opacity .2s}
.vision-dayun-list.is-disabled{opacity:.38}
.vision-dayun-row{display:grid;grid-template-columns:28px .72fr 1fr .9fr auto auto;align-items:end;gap:8px;padding:9px;border:1px solid var(--line);border-radius:12px;background:var(--paper-subtle)}
.vision-dayun-order{width:27px;height:27px;align-self:center;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:50%;color:var(--gold-deep);font-family:var(--serif);font-size:11px;font-weight:700}
.vision-dayun-row label{min-width:0;display:flex;flex-direction:column;gap:4px}
.vision-dayun-row label>span{overflow:hidden;color:var(--faint);font-size:9px;line-height:1.2;white-space:nowrap;text-overflow:ellipsis}
.vision-dayun-row input{min-width:0;min-height:39px;padding:7px 8px;font-size:12px}
.vision-dayun-confidence{align-self:center;max-width:76px;text-align:center}
.vision-dayun-remove{align-self:center;padding:5px;border:0;background:transparent;color:var(--danger);font-size:10px;cursor:pointer}
.vision-no-dayun{display:flex;margin-top:12px;padding:10px 12px;border:1px dashed var(--line-strong);border-radius:11px;background:var(--paper-subtle)}
.vision-warnings{margin:2px 0 15px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--paper-subtle);color:var(--dim);font-size:11px}
.vision-warnings b{display:block;margin-bottom:4px;color:var(--ink-soft)}
.vision-warnings ul{padding-left:18px}
.vision-warnings li+li{margin-top:3px}
.vision-confirm-check{display:flex;align-items:flex-start;gap:11px;margin:6px 0 12px;padding:13px;border:1px solid rgba(65,104,70,.25);border-radius:13px;background:var(--jade-wash);cursor:pointer}
.vision-confirm-check input{width:18px;height:18px;flex:0 0 auto;margin-top:2px;accent-color:var(--jade)}
.vision-confirm-check span{display:flex;flex-direction:column;gap:2px}
.vision-confirm-check b{color:var(--jade);font-size:12.5px}
.vision-confirm-check small{color:var(--dim);font-size:10.5px;line-height:1.55}
.vision-review-actions{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;margin-top:13px}
.vision-review-actions .primary-btn,.vision-review-actions .ghost-btn{width:100%;margin:0}
.vision-review-panel.is-loading #visionReviewForm{opacity:.58;pointer-events:none}
.dropzone.is-busy{cursor:progress;opacity:.72}
.vision-review-form [aria-invalid="true"],#visionReviewForm [aria-invalid="true"]{border-color:var(--danger);box-shadow:0 0 0 3px rgba(182,66,58,.1)}

/* 响应式 */
@media(max-width:900px){
  .site-header{padding:24px 20px 0}
  .brand-text h1{font-size:38px;letter-spacing:4px}
  main.layout{max-width:820px;margin-top:20px;padding-inline:20px;grid-template-columns:minmax(0,1fr)}
  .welcome{min-height:470px}
  .vision-dayun-row{grid-template-columns:28px .65fr 1fr .8fr auto auto}
}
@media(max-width:560px){
  body{background-size:auto,auto 78vh}
  .site-header{padding:20px 14px 0}
  .header-top{gap:8px}
  .brand{gap:8px}
  .brand-text h1{font-size:33px;letter-spacing:3px}
  .brand-text p{font-size:9px;letter-spacing:1.8px}
  .history-btn{
    min-height:44px;padding:4px 12px;white-space:nowrap;
    border:1px solid var(--line);border-radius:999px;background:rgba(251,248,241,.66);
    color:var(--ink);font-size:12px;font-weight:600;letter-spacing:.25px;
  }
  main.layout{margin-top:16px;padding:0 14px 34px;gap:16px}
  .panel{padding:20px 16px;border-radius:19px}
  .mode-tabs{gap:8px}
  .mode-tabs button{font-size:14px}
  .grid3{gap:8px}
  .welcome{min-height:430px;padding:48px 22px 190px}
  .welcome-icon{width:94px;height:94px;font-size:48px}
  .vision-review-head{align-items:flex-start;gap:10px}
  .vision-review-head .panel-title{font-size:17px;letter-spacing:1px}
  .badge.review{max-width:112px;text-align:center;white-space:normal}
  .vision-flow{gap:5px}
  .vision-flow span{min-height:48px;flex-direction:column;gap:3px;padding:5px 2px;font-size:9.5px}
  .vision-review-source{grid-template-columns:96px 1fr;gap:10px}
  .vision-review-source img{width:96px;height:90px}
  .vision-pillar-grid{gap:6px}
  .vision-field-card{padding:8px 4px}
  .vision-field-card b{font-size:10.5px}
  .vision-field-card i{font-size:7.8px}
  .vision-field-card input{min-height:50px;font-size:21px;letter-spacing:2px;text-indent:2px}
  .vision-dayun-meta{grid-template-columns:1fr 1fr}
  .vision-dayun-meta>label:last-child{grid-column:1/-1}
  .vision-dayun-toolbar{align-items:flex-start}
  .vision-dayun-row{grid-template-columns:26px minmax(0,1fr) minmax(0,1fr);align-items:end}
  .vision-dayun-order{grid-column:1;grid-row:1}
  .vision-dayun-row label:nth-of-type(1){grid-column:2;grid-row:1}
  .vision-dayun-row label:nth-of-type(2){grid-column:3;grid-row:1}
  .vision-dayun-row label:nth-of-type(3){grid-column:2;grid-row:2}
  .vision-dayun-confidence{grid-column:3;grid-row:2;max-width:none;align-self:center;text-align:right}
  .vision-dayun-remove{grid-column:1;grid-row:2;justify-self:center}
  .vision-review-actions{grid-template-columns:1fr}
  .meta-row{
    min-height:255px;padding:24px 18px 104px;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px 12px;background:
      linear-gradient(180deg,rgba(255,253,248,.97),rgba(251,248,241,.88) 55%,rgba(251,248,241,.25)),
      url('ink-mountains.webp') center bottom/auto 58% no-repeat;
  }
  .meta-row::before{
    right:22px;top:auto;bottom:31px;width:76px;height:76px;font-size:40px;
  }
  .meta-row span{font-size:12px;white-space:normal}
  /* 四柱是一个整体：手机端也保持年、月、日、时同排。 */
  .pillar-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .pillar-card{min-width:0;min-height:300px;padding:13px 4px 10px;border-radius:15px}
  .pillar-card .pc-name{
    min-height:27px;margin-bottom:8px;display:flex;align-items:flex-start;justify-content:center;
    font-size:10.5px;line-height:1.3;
  }
  .pillar-card .pc-gz{margin:8px 0}
  .pillar-card .pc-gz b{font-size:28px}
  .pillar-card .pc-gz .wx-glyph{grid-template-columns:auto minmax(18px,auto);gap:3px}
  .pillar-card .pc-gz .wx-element{min-width:18px;padding:1px 3px;font-size:8px}
  .pillar-card .pc-layer-title{font-size:7.5px;letter-spacing:.1px}
  .pillar-card .pc-layer-title small{display:block;margin:1px 0 0;font-size:7px}
  .pillar-card .pc-shishen{font-size:9px;padding:2px 5px}
  .pillar-card .pc-hidden-layer{min-height:70px;padding:7px 2px 6px}
  .pillar-card .pc-hide{font-size:9px;gap:2px}
  .pillar-card .pc-hide-item{gap:2px}
  .pillar-card .pc-hide-item b{font-size:10.5px}
  .pillar-card .pc-hide i{font-size:8.5px}
  .pillar-card .pc-foot{font-size:8.5px}
  #chartPanel>.shensha-block,#chartPanel>.wx-block,#chartPanel>.dayun-block{padding:18px 15px;border-radius:18px}
  #chartPanel>.shensha-block{padding-inline:0}
  #chartPanel>.shensha-block h3,
  #chartPanel>.shensha-block .shensha-help,
  #chartPanel>.shensha-block .shensha-basis-note{margin-left:15px;margin-right:15px}
  .shensha-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .shensha-column{padding:9px 4px 10px}
  .shensha-column-head{
    min-height:43px;flex-direction:column;justify-content:flex-start;gap:2px;padding:0 0 7px;text-align:center;
  }
  .shensha-column-head span{font-size:9px;letter-spacing:.2px}
  .shensha-column-head b{font-size:10px;letter-spacing:.3px}
  .shensha-tags{flex-flow:column nowrap;align-items:stretch;gap:5px}
  .shensha-tag{width:100%;min-height:28px;padding:4px 2px;font-size:9px}
  .shensha-tag-arrow{margin-left:0;font-size:11px}
  .shensha-empty{padding:6px 0;font-size:9px;text-align:center}
  .dayun-line{
    grid-template-columns:none;grid-auto-columns:112px;gap:8px;margin-inline:-3px;padding-inline:3px;
  }
  .dayun-chip{min-height:108px}
  .app-dialog-surface{background:linear-gradient(180deg,var(--paper-strong),var(--canvas-soft))}
  .confirm-dialog-surface{border-color:var(--line-strong)}
}
@media(max-width:360px){
  .brand-text h1{font-size:29px}
  .brand-text p{display:none}
  .meta-row{grid-template-columns:1fr}
  .pillar-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
  .pillar-card{padding-inline:2px;border-radius:13px}
  .pillar-card .pc-name{font-size:9.5px}
  .pillar-card .pc-gz b{font-size:25px}
  .pillar-card .pc-gz .wx-glyph{grid-template-columns:auto minmax(17px,auto);gap:2px}
  .pillar-card .pc-gz .wx-element{min-width:17px;padding-inline:2px;font-size:7.5px}
  .pillar-card .pc-layer-title{font-size:7px}
  .pillar-card .pc-shishen{font-size:8.5px;padding-inline:4px}
  .pillar-card .pc-hide-item b{font-size:10px}
  .pillar-card .pc-hide i,.pillar-card .pc-foot{font-size:8px}
  .shensha-grid{gap:4px}
  .shensha-column{padding-inline:2px;border-radius:10px}
  .shensha-tag{font-size:8.5px}
  .dayun-line{grid-template-columns:none}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ============================================================
   界面皮肤切换 · 宋韵亮色 / 玄青暗色
   亮色仍使用上方现有规则；暗色只改变色彩与材质，不改布局。
   ============================================================ */
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}
.theme-switch{
  min-height:42px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:3px;
  border:1px solid var(--line);border-radius:999px;background:rgba(251,248,241,.66);
  box-shadow:inset 0 1px 1px rgba(83,67,42,.035);
}
.theme-switch button{
  min-width:44px;min-height:34px;display:flex;align-items:center;justify-content:center;padding:5px 9px;
  border:0;border-radius:999px;background:transparent;color:var(--dim);cursor:pointer;
  font-family:var(--sans);font-size:13px;font-weight:600;line-height:1;letter-spacing:.5px;
  transition:color .2s,background .2s,box-shadow .2s,transform .2s;
}
.theme-switch button:hover{color:var(--ink);background:rgba(255,253,248,.58)}
.theme-switch button.active{
  color:var(--gold-deep);background:var(--paper-strong);
  box-shadow:0 2px 8px rgba(65,54,39,.11),inset 0 0 0 1px rgba(154,116,58,.13);
}
.theme-switch button:focus-visible{outline:2px solid var(--sky);outline-offset:2px;box-shadow:none}

:root[data-theme="dark"]{
  color-scheme:dark;
  --canvas:#292c31;
  --canvas-soft:#30333a;
  --paper:#36373f;
  --paper-strong:#414149;
  --paper-subtle:#303138;
  --bg:#292c31;
  --bg0:#23262b;
  --bg1:#292c31;
  --bg2:#32353c;
  --ink:#f1ede6;
  --ink-soft:#d7d0dc;
  --dim:#beb6c4;
  --faint:#9d96a2;
  --gold:#c7aa78;
  --gold-bright:#ead5aa;
  --gold-deep:#d0b27f;
  --gold-fill:#a8834e;
  --gold-wash:rgba(208,178,127,.12);
  --jade:#a6c5b4;
  --jade-fill:#647f72;
  --jade-wash:rgba(166,197,180,.12);
  --sky:#a0bbc2;
  --sky-end:#809ca4;
  --sky-wash:rgba(160,187,194,.13);
  --seal:#ad5a4c;
  --danger:#e89486;
  --wood-ink:#b2c7aa;
  --wood-fill:#5b8f60;
  --wood-fill-end:#7aa37d;
  --wood-wash:rgba(91,143,96,.18);
  --fire-ink:#eda096;
  --fire-fill:#b65d52;
  --fire-fill-end:#cf8076;
  --fire-wash:rgba(182,93,82,.18);
  --earth-ink:#d1b692;
  --earth-fill:#9e8060;
  --earth-fill-end:#c6a987;
  --earth-wash:rgba(158,128,96,.18);
  --metal-ink:#ffe2a1;
  --metal-fill:#c9952d;
  --metal-fill-end:#ecd086;
  --metal-wash:rgba(201,149,45,.18);
  --water-ink:#b4c7df;
  --water-fill:#5c7fa8;
  --water-fill-end:#7d9fbd;
  --water-wash:rgba(92,127,168,.18);
  --line:rgba(226,232,236,.12);
  --line-strong:rgba(195,208,216,.28);
  --card:rgba(43,45,52,.95);
  --card-deep:rgba(27,30,35,.9);
  --shadow-card:0 1px 0 rgba(255,255,255,.035),0 14px 34px rgba(0,0,0,.2);
  --shadow-float:0 24px 64px rgba(0,0,0,.34);
  --focus-ring:0 0 0 3px rgba(160,187,194,.24);
  --surface-panel:rgba(43,45,52,.97);
  --surface-raised:rgba(52,53,61,.98);
  --surface-control:rgba(30,32,38,.94);
  --surface-hover:rgba(61,64,72,.96);
  --surface-gold:rgba(208,178,127,.12);
  --surface-jade:rgba(166,197,180,.12);
  --backdrop:rgba(14,16,20,.72);
  --text-on-accent:#fffaf2;
  --radius:18px;
}

html[data-theme="dark"] body{
  color:var(--ink);background-color:var(--canvas);
  background-image:
    radial-gradient(900px 520px at 82% -14%,rgba(111,135,153,.17),transparent 68%),
    linear-gradient(180deg,rgba(41,44,49,.82),rgba(25,28,32,.94)),
    url('ink-mountains.webp');
  background-position:center,center,center bottom;background-size:auto,auto,cover;
  background-repeat:no-repeat;background-attachment:fixed;background-blend-mode:normal,normal,luminosity;
}
html[data-theme="dark"] body::before{
  background-image:
    url('paper-fibers.svg'),
    repeating-linear-gradient(4deg,rgba(232,236,241,.022) 0 1px,transparent 1px 6px),
    radial-gradient(circle at 23% 31%,rgba(226,232,236,.10) 0 .55px,transparent .8px);
  background-size:240px 240px,auto,13px 17px;
  opacity:.62;mix-blend-mode:soft-light;
}
html[data-theme="dark"] body::after{
  content:'';position:fixed;z-index:0;inset:0;
  pointer-events:none;opacity:.52;
  background:
    radial-gradient(ellipse at 7% 17%,rgba(115,133,151,.18),transparent 31%),
    radial-gradient(ellipse at 92% 72%,rgba(13,16,20,.38),transparent 38%),
    linear-gradient(90deg,rgba(9,12,16,.16),transparent 28%,transparent 72%,rgba(9,12,16,.16));
  mix-blend-mode:multiply;
}
html[data-theme="dark"] #stars,html[data-theme="dark"] .bagua-bg{display:none!important}
html[data-theme="dark"] ::selection{background:rgba(200,150,71,.3);color:var(--text-on-accent)}

html[data-theme="dark"] .brand-text h1{
  color:var(--gold-bright);background:none;filter:none;
}
html[data-theme="dark"] .history-btn{color:var(--dim);background:transparent}
html[data-theme="dark"] .history-btn:hover{color:var(--gold-bright);background:var(--surface-gold)}
html[data-theme="dark"] .theme-switch{
  border-color:var(--line);background:var(--surface-control);box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
html[data-theme="dark"] .theme-switch button{color:var(--faint)}
html[data-theme="dark"] .theme-switch button:hover{color:var(--ink);background:var(--surface-hover)}
html[data-theme="dark"] .theme-switch button.active{
  color:var(--gold-bright);background:var(--surface-gold);
  box-shadow:inset 0 0 0 1px var(--line-strong);
}
html[data-theme="dark"] .panel{color:var(--ink);border-color:var(--line);box-shadow:var(--shadow-card)}
html[data-theme="dark"] .glass{
  background:
    url('paper-fibers.svg') 0 0/240px 240px repeat,
    linear-gradient(155deg,rgba(54,55,63,.985),rgba(38,40,47,.985));
  background-blend-mode:soft-light,normal;border-color:var(--line-strong);
  box-shadow:var(--shadow-card),inset 0 0 0 1px rgba(255,255,255,.025);
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
html[data-theme="dark"] .panel-title{color:var(--gold-bright)}
html[data-theme="dark"] .panel-title::before{border-color:var(--gold);background:var(--canvas);box-shadow:inset 0 0 0 2px var(--gold-wash)}
html[data-theme="dark"] .mode-tabs{border-bottom-color:var(--line)}
html[data-theme="dark"] .mode-tabs button{color:var(--dim)}
html[data-theme="dark"] .mode-tabs button:hover,html[data-theme="dark"] .mode-tabs button.active{color:var(--gold-bright)}
html[data-theme="dark"] .mode-tabs button.active::after{background:var(--seal);box-shadow:none}
html[data-theme="dark"] .field>label{color:var(--ink-soft)}
html[data-theme="dark"] .opt{color:var(--faint);background:transparent;border-color:var(--line)}
html[data-theme="dark"] input[type=text],
html[data-theme="dark"] input[type=number],
html[data-theme="dark"] select{
  color:var(--ink);background-color:var(--surface-control);border-color:var(--line-strong);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
html[data-theme="dark"] input:focus,html[data-theme="dark"] select:focus{border-color:var(--sky);box-shadow:var(--focus-ring)}
html[data-theme="dark"] input::placeholder{color:var(--faint)}
html[data-theme="dark"] .calendar-date-hint{
  color:var(--jade);border:0;background:transparent;
}
html[data-theme="dark"] .calendar-date-hint::before{background:rgba(127,180,158,.14)}
html[data-theme="dark"] .calendar-date-hint.is-incomplete{color:var(--dim);border:0;background:transparent}
html[data-theme="dark"] .calendar-date-hint.is-incomplete::before{background:rgba(239,119,109,.13)}
html[data-theme="dark"] .opt.required{color:var(--danger);border-color:rgba(239,119,109,.25);background:rgba(239,119,109,.08)}
html[data-theme="dark"] .field-validation{color:var(--danger);background:rgba(239,119,109,.09)}
html[data-theme="dark"] .picker-trigger[aria-invalid="true"]{border-color:var(--danger);box-shadow:0 0 0 3px rgba(239,119,109,.1)}
html[data-theme="dark"] .seg{
  background:var(--surface-control);border:0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
html[data-theme="dark"] .seg button{color:var(--dim)}
html[data-theme="dark"] .seg button:hover{color:var(--ink)}
html[data-theme="dark"] .seg button.active{
  color:#dfeaed;background:rgba(160,187,194,.14);
  border-color:transparent;
  box-shadow:none;font-weight:600;
}
html[data-theme="dark"] .check{color:var(--dim)}
html[data-theme="dark"] .time-mode-hint,html[data-theme="dark"] .hint,html[data-theme="dark"] .longitude-override i{color:var(--faint)}
html[data-theme="dark"] .birthplace-hint b{color:var(--gold-bright)}
html[data-theme="dark"] .picker-trigger{
  color:var(--ink);border-color:var(--line-strong);background:var(--surface-control);
}
html[data-theme="dark"] .picker-trigger:hover{border-color:var(--gold);background:var(--surface-hover)}
html[data-theme="dark"] .picker-trigger:focus-visible,html[data-theme="dark"] .picker-trigger[aria-expanded="true"]{
  border-color:var(--gold);box-shadow:var(--focus-ring);background:var(--surface-hover);
}
html[data-theme="dark"] .picker-trigger-mark{border-color:var(--line-strong);color:var(--gold-bright);background:var(--surface-gold)}
html[data-theme="dark"] .picker-trigger-value{color:var(--ink)}
html[data-theme="dark"] .picker-trigger-value.is-placeholder,html[data-theme="dark"] .picker-trigger-meta{color:var(--faint)}
html[data-theme="dark"] .dropzone{border-color:var(--line-strong);background:var(--surface-control)}
html[data-theme="dark"] .dropzone:hover,html[data-theme="dark"] .dropzone.dragover{border-color:var(--gold);background:var(--surface-gold);box-shadow:var(--focus-ring)}
html[data-theme="dark"] .dz-icon{color:var(--gold-bright);background:var(--surface-gold)}
html[data-theme="dark"] .dropzone p{color:var(--ink-soft)}

html[data-theme="dark"] .primary-btn{
  color:var(--text-on-accent);border-color:rgba(224,168,145,.30);
  background:#965548;
  box-shadow:0 7px 18px rgba(54,27,22,.20),inset 0 1px 0 rgba(255,238,218,.13);
}
html[data-theme="dark"] .primary-btn:hover{background:#a25d50;box-shadow:0 9px 22px rgba(54,27,22,.24)}
html[data-theme="dark"] .primary-btn::after{display:none}
html[data-theme="dark"] .primary-btn:hover{transform:none}
html[data-theme="dark"] .secondary-btn{color:var(--jade);border-color:rgba(127,180,158,.4);background:var(--surface-jade)}
html[data-theme="dark"] .secondary-btn:hover{color:var(--ink);background:rgba(146,168,147,.22);box-shadow:0 5px 14px rgba(20,21,18,.14)}
html[data-theme="dark"] .ghost-btn{color:var(--dim);border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .ghost-btn:hover{color:var(--gold-bright);border-color:var(--line-strong);background:var(--surface-hover)}
html[data-theme="dark"] .ghost-btn.danger{color:var(--danger);border-color:rgba(239,119,109,.28)}
html[data-theme="dark"] .ghost-btn.danger:hover{background:rgba(239,119,109,.09);border-color:rgba(239,119,109,.48)}

html[data-theme="dark"] #chartPanel>.meta-row,
html[data-theme="dark"] #chartPanel>.calculation-basis,
html[data-theme="dark"] #chartPanel>.calculation-warning,
html[data-theme="dark"] #chartPanel>.shensha-block,
html[data-theme="dark"] #chartPanel>.wx-block,
html[data-theme="dark"] #chartPanel>.rule-evidence-block,
html[data-theme="dark"] #chartPanel>.dayun-block{
  border-color:var(--line);background-color:var(--surface-panel);box-shadow:var(--shadow-card);
}
html[data-theme="dark"] .badge{color:var(--jade);border-color:rgba(127,180,158,.36);background:var(--surface-jade)}
html[data-theme="dark"] .badge.warn{color:var(--danger);border-color:rgba(239,119,109,.3);background:rgba(239,119,109,.08)}
html[data-theme="dark"] .meta-row{
  color:var(--ink-soft);background:
    url('paper-fibers.svg') 0 0/240px 240px repeat,
    linear-gradient(180deg,var(--surface-raised),var(--surface-panel));
  background-blend-mode:soft-light,normal;
}
html[data-theme="dark"] .meta-row::before{
  border-color:var(--line-strong);color:var(--gold-bright);
  box-shadow:inset 0 0 0 8px var(--surface-gold);
}
html[data-theme="dark"] .meta-row b{color:var(--faint)}
html[data-theme="dark"] .meta-row span{color:var(--ink-soft)}
html[data-theme="dark"] .calculation-basis{background:var(--surface-panel)!important}
html[data-theme="dark"] .calculation-basis summary{color:var(--gold-bright)}
html[data-theme="dark"] .calculation-basis-list span{color:var(--dim)}
html[data-theme="dark"] .calculation-basis-list b{color:var(--gold-bright);background:var(--surface-gold)}
html[data-theme="dark"] .calculation-warning{color:#e5ba78;background:rgba(137,85,33,.15)!important;border-color:rgba(226,177,88,.28)!important}
html[data-theme="dark"] .pillar-card{
  border-color:var(--line);background:
    url('paper-fibers.svg') 0 0/240px 240px repeat,
    linear-gradient(180deg,var(--surface-raised),var(--surface-panel));
  background-blend-mode:soft-light,normal;box-shadow:var(--shadow-card);
}
html[data-theme="dark"] .pillar-card:hover{border-color:var(--line-strong);box-shadow:0 10px 26px rgba(20,21,18,.22)}
html[data-theme="dark"] .pillar-card.day{
  border-color:rgba(221,201,154,.48);background:
    url('paper-fibers.svg') 0 0/240px 240px repeat,
    linear-gradient(180deg,rgba(79,76,61,.98),rgba(65,65,55,.98));
  background-blend-mode:soft-light,normal;box-shadow:inset 0 3px 0 rgba(182,155,105,.34),var(--shadow-card);
}
html[data-theme="dark"] .pillar-card .pc-name{color:var(--jade)}
html[data-theme="dark"] .pillar-card.day .pc-name{color:var(--gold-bright)}
html[data-theme="dark"] .pillar-card .pc-shishen{color:var(--gold-bright);border-color:rgba(226,177,88,.3);background:var(--surface-gold)}
html[data-theme="dark"] .pillar-card .pc-shishen-zhi{color:var(--jade);border-color:rgba(127,180,158,.24);background:var(--surface-jade)}
html[data-theme="dark"] .pillar-card .pc-gz b{text-shadow:none}
html[data-theme="dark"] .pillar-card .pc-gz .wx-element{box-shadow:inset 0 0 0 1px rgba(255,255,255,.025)}
html[data-theme="dark"] .pillar-card .pc-hidden-layer{border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .pillar-card .pc-hide-item b{color:var(--ink)}
html[data-theme="dark"] .pillar-card .pc-foot{border-top-color:var(--line)}
html[data-theme="dark"] #chartPanel>.shensha-block,
html[data-theme="dark"] #chartPanel>.wx-block,
html[data-theme="dark"] #chartPanel>.rule-evidence-block,
html[data-theme="dark"] #chartPanel>.dayun-block{
  background:
    url('paper-fibers.svg') 0 0/240px 240px repeat,
    linear-gradient(180deg,var(--surface-raised),var(--surface-panel));
  background-blend-mode:soft-light,normal;
}
html[data-theme="dark"] .shensha-block h3,
html[data-theme="dark"] .wx-block h3,
html[data-theme="dark"] .dayun-block h3{color:var(--gold-bright)}
html[data-theme="dark"] .shensha-column{border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .shensha-column.day{border-color:rgba(226,177,88,.38);background:var(--surface-gold)}
html[data-theme="dark"] .shensha-column-head b{color:var(--ink-soft)}
html[data-theme="dark"] .shensha-column.day .shensha-column-head span,
html[data-theme="dark"] .shensha-column.day .shensha-column-head b{color:var(--gold-bright)}
html[data-theme="dark"] .shensha-tag{border-color:var(--line);color:var(--ink-soft);background:var(--surface-control)}
html[data-theme="dark"] .shensha-tag.is-good{color:var(--gold-bright);border-color:rgba(226,177,88,.3);background:var(--surface-gold)}
html[data-theme="dark"] .shensha-tag.is-neutral{color:var(--jade);border-color:rgba(127,180,158,.26);background:var(--surface-jade)}
html[data-theme="dark"] .shensha-tag.is-caution{color:var(--danger);border-color:rgba(239,119,109,.24);background:rgba(239,119,109,.065)}
html[data-theme="dark"] .shensha-dialog-tone{color:var(--ink-soft);border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .shensha-dialog-tone.is-good{color:var(--gold-bright);border-color:rgba(226,177,88,.3);background:var(--surface-gold)}
html[data-theme="dark"] .shensha-dialog-tone.is-neutral{color:var(--jade);border-color:rgba(127,180,158,.26);background:var(--surface-jade)}
html[data-theme="dark"] .shensha-dialog-tone.is-caution{color:var(--danger);border-color:rgba(239,119,109,.24);background:rgba(239,119,109,.065)}
html[data-theme="dark"] .shensha-dialog-position{color:var(--dim);border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .shensha-dialog-keywords span{color:var(--gold-bright);border-color:rgba(226,177,88,.24);background:var(--surface-gold)}
html[data-theme="dark"] .shensha-dialog-copy section{border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .shensha-dialog-copy h4{color:var(--gold-bright)}
html[data-theme="dark"] .shensha-dialog-copy p{color:var(--dim)}
html[data-theme="dark"] .shensha-dialog-copy .shensha-dialog-variant{border-top-color:var(--line);color:var(--faint)}
html[data-theme="dark"] .shensha-dialog-note{color:var(--dim);border-color:rgba(127,180,158,.2);background:var(--surface-jade)}
html[data-theme="dark"] .wx-bar .wx-track{background:rgba(255,255,255,.07)}
html[data-theme="dark"] .wx-bar .wx-fill{box-shadow:inset 0 1px rgba(255,255,255,.18),0 0 10px color-mix(in srgb,currentColor 12%,transparent)}
html[data-theme="dark"] .wx-bar[data-wuxing="金"] .wx-name{border-color:rgba(255,210,103,.52);background:linear-gradient(135deg,rgba(255,226,161,.20),rgba(201,149,45,.24));box-shadow:inset 0 1px rgba(255,245,204,.15),0 0 12px rgba(201,149,45,.12)}
html[data-theme="dark"] .wx-bar[data-wuxing="金"] .wx-fill{box-shadow:inset 0 1px rgba(255,255,255,.35),0 0 13px rgba(237,190,73,.34)}
html[data-theme="dark"] .wx-bar .wx-val{color:var(--ink-soft)}
html[data-theme="dark"] .dayun-chip{border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .dayun-chip:hover{border-color:var(--line-strong);background:var(--surface-hover)}
html[data-theme="dark"] .dayun-chip.selected{border-color:rgba(127,180,158,.52);box-shadow:inset 0 0 0 2px rgba(127,180,158,.1)}
html[data-theme="dark"] .dayun-chip.current{border-color:var(--jade);background:var(--surface-jade);box-shadow:inset 0 0 0 2px rgba(127,180,158,.13),var(--shadow-card)}
html[data-theme="dark"] .dayun-chip.current::before{color:var(--text-on-accent);background:var(--jade-fill);box-shadow:0 3px 9px rgba(20,21,18,.16)}
html[data-theme="dark"] .dayun-chip .dc-gz{color:var(--ink)}
html[data-theme="dark"] .dayun-current{border-color:rgba(127,180,158,.25);background:var(--surface-jade)}
html[data-theme="dark"] .dayun-current b{color:var(--jade)}
html[data-theme="dark"] .dayun-current.is-uncertain{border-color:rgba(226,177,88,.3);background:rgba(137,85,33,.14)}
html[data-theme="dark"] .dayun-current.is-uncertain b{color:#e5ba78}
html[data-theme="dark"] .dayun-detail{border-color:rgba(127,180,158,.22);background:rgba(21,67,62,.17)}
html[data-theme="dark"] .dayun-year-card{border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .dayun-year-card.current{border-color:var(--gold);background:var(--surface-gold)}
html[data-theme="dark"] .dayun-year-card.current::before{color:var(--text-on-accent);background:#8a5d22}
html[data-theme="dark"] .dyr-head{border-bottom-color:var(--line)}
html[data-theme="dark"] .dyr-head b{color:var(--ink)}
html[data-theme="dark"] .wechat-notice-option{color:var(--ink);border-color:rgba(127,180,158,.25);background:var(--surface-jade)}

html[data-theme="dark"] .welcome{
  background-color:var(--surface-panel);
  background:
    url('paper-fibers.svg') 0 0/240px 240px repeat,
    linear-gradient(180deg,rgba(52,53,61,.92),rgba(38,40,47,.88)),
    url('ink-mountains.webp') center bottom/cover no-repeat;
  background-blend-mode:soft-light,normal,luminosity;
}
html[data-theme="dark"] .welcome-icon{
  width:94px;height:94px;border-radius:10px;color:var(--gold-bright);
  border-color:var(--line-strong);background:var(--surface-gold);
  box-shadow:inset 0 0 0 5px rgba(208,178,127,.045);
}
html[data-theme="dark"] .welcome h2{color:var(--gold-bright)}
html[data-theme="dark"] .welcome p{color:var(--ink-soft)}
html[data-theme="dark"] .welcome-steps span{
  color:var(--dim);border-color:var(--line);border-radius:7px;background:var(--surface-control);
}
html[data-theme="dark"] #imagePanel,html[data-theme="dark"] #readingPanel{background:var(--surface-panel);box-shadow:var(--shadow-card)}
html[data-theme="dark"] .image-box img{border-color:var(--line);box-shadow:var(--shadow-float)}
html[data-theme="dark"] .img-loading-card{border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .reading-status .bg-ok{color:var(--jade)}
html[data-theme="dark"] .markdown{color:var(--ink)}
html[data-theme="dark"] .markdown h1{color:var(--gold-bright)}
html[data-theme="dark"] .markdown h2{color:var(--gold-bright);border-left-color:var(--gold)}
html[data-theme="dark"] .markdown h3{color:var(--ink)}
html[data-theme="dark"] .markdown strong{color:var(--gold-bright)}
html[data-theme="dark"] .markdown blockquote{border-left-color:var(--jade);background:var(--surface-jade);color:var(--ink-soft)}
html[data-theme="dark"] .markdown th{background:var(--surface-gold);color:var(--gold-bright)}

html[data-theme="dark"] .app-dialog-mask{background:var(--backdrop);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
html[data-theme="dark"] .app-dialog-surface{
  color:var(--ink);background:
    url('paper-fibers.svg') 0 0/240px 240px repeat,
    linear-gradient(180deg,var(--surface-raised),var(--surface-panel));
  background-color:var(--surface-panel);
  background-blend-mode:soft-light,normal;border-color:var(--line-strong);box-shadow:var(--shadow-float);
}
html[data-theme="dark"] .app-dialog-surface::before{border-color:rgba(226,177,88,.1)}
html[data-theme="dark"] .dialog-glow{display:none}
html[data-theme="dark"] .app-dialog-head h3,html[data-theme="dark"] .confirm-dialog-surface h3{color:var(--gold-bright)}
html[data-theme="dark"] .dialog-icon-btn{border-color:var(--line);background:var(--surface-control);color:var(--dim)}
html[data-theme="dark"] .dialog-icon-btn:hover,html[data-theme="dark"] .dialog-icon-btn:focus-visible{color:var(--gold-bright);border-color:var(--line-strong);background:var(--surface-hover)}
html[data-theme="dark"] .dialog-lead{color:var(--dim)}
html[data-theme="dark"] .location-draft-summary{border-color:rgba(127,180,158,.22);background:var(--surface-jade);color:var(--jade)}
html[data-theme="dark"] .location-draft-summary.is-empty{color:var(--faint);border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .location-stepper{border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .location-step:hover:not(:disabled){color:var(--ink);background:var(--surface-hover)}
html[data-theme="dark"] .location-step.active{color:var(--jade);background:var(--surface-jade)}
html[data-theme="dark"] .location-step.active>span{border-color:rgba(170,187,170,.3);color:var(--jade);background:rgba(50,54,48,.7)}
html[data-theme="dark"] .location-step.is-done:not(.active){color:var(--gold-bright)}
html[data-theme="dark"] .dialog-search{border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .dialog-search:focus-within{border-color:var(--gold);box-shadow:var(--focus-ring)}
html[data-theme="dark"] .dialog-search input[type=search]{color:var(--ink)}
html[data-theme="dark"] .dialog-search input[type=search]::-webkit-search-cancel-button{filter:invert(1)}
html[data-theme="dark"] .location-option,html[data-theme="dark"] .time-option{border-color:var(--line);background:var(--surface-control);color:var(--dim)}
html[data-theme="dark"] .location-option:hover,html[data-theme="dark"] .location-option:focus-visible,
html[data-theme="dark"] .time-option:hover,html[data-theme="dark"] .time-option:focus-visible{
  color:var(--ink);border-color:var(--line-strong);background:var(--surface-hover);box-shadow:var(--focus-ring);
}
html[data-theme="dark"] .location-option.is-selected,html[data-theme="dark"] .time-option.is-selected{
  border-color:rgba(127,180,158,.5);background:var(--surface-jade);color:var(--jade);box-shadow:none;
}
html[data-theme="dark"] .location-option.is-selected .location-option-check{border-color:var(--jade);background:var(--jade-fill);color:var(--text-on-accent)}
html[data-theme="dark"] .location-county-panel{border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .location-county-panel input{background:var(--surface-control)}
html[data-theme="dark"] .app-dialog-actions{border-top-color:var(--line)}
html[data-theme="dark"] .dialog-primary-btn{color:var(--text-on-accent);background:#6d7e6c;box-shadow:0 5px 15px rgba(20,21,18,.18)}
html[data-theme="dark"] .dialog-danger-btn{color:var(--danger);border-color:rgba(239,119,109,.32);background:rgba(239,119,109,.075)}
html[data-theme="dark"] .confirm-symbol{border-color:rgba(239,119,109,.34);background:rgba(239,119,109,.075)}
html[data-theme="dark"] .toast{color:var(--ink);border-color:var(--line-strong);background:var(--surface-raised);box-shadow:var(--shadow-float)}

html[data-theme="dark"] .drawer{
  color:var(--ink);background:
    url('paper-fibers.svg') 0 0/240px 240px repeat,
    linear-gradient(180deg,var(--surface-raised),var(--surface-panel));
  background-blend-mode:soft-light,normal;border-left-color:var(--line);box-shadow:-16px 0 46px rgba(20,21,18,.3);
}
html[data-theme="dark"] .drawer-head h3{color:var(--gold-bright)}
html[data-theme="dark"] .history-item{background:var(--surface-control);border-color:var(--line)}
html[data-theme="dark"] .history-item:hover,html[data-theme="dark"] .history-item:focus-within{border-color:var(--gold);background:var(--surface-gold)}
html[data-theme="dark"] .history-item .hi-title{color:var(--ink)}
html[data-theme="dark"] .history-followup-btn{border-color:rgba(217,179,101,.38);background:rgba(217,179,101,.10);color:var(--gold-bright)}
html[data-theme="dark"] .history-delete-btn{border-color:rgba(239,119,109,.25);background:rgba(239,119,109,.06);color:var(--danger)}
html[data-theme="dark"] .drawer-mask,html[data-theme="dark"] .completion-mask{background:var(--backdrop)}
html[data-theme="dark"] .completion-card{
  border-color:var(--line-strong);background:
    url('paper-fibers.svg') 0 0/240px 240px repeat,
    linear-gradient(155deg,var(--surface-raised),var(--surface-panel));
  background-blend-mode:soft-light,normal;box-shadow:var(--shadow-float);
}
html[data-theme="dark"] .completion-icon{color:var(--text-on-accent);background:var(--jade-fill);box-shadow:0 6px 18px rgba(20,21,18,.2)}
html[data-theme="dark"] .completion-card h3{color:var(--gold-bright)}
html[data-theme="dark"] .completion-card p,html[data-theme="dark"] .site-footer{color:var(--dim)}
html[data-theme="dark"] .report-images-loading{color:var(--dim);border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .report-image-card{border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .report-image-card.is-current{border-color:var(--gold);box-shadow:0 0 0 2px rgba(200,150,71,.09),var(--shadow-card)}
html[data-theme="dark"] .report-image-card img{background:var(--canvas);box-shadow:var(--shadow-card)}
html[data-theme="dark"] .report-image-viewer-stage{border-color:var(--line);background:var(--canvas-soft)}

/* 导出的排盘/解读图固定使用宣纸色，便于阅读、分享和打印。 */
html[data-theme="dark"] .report-export-flow,
html[data-theme="dark"] .report-export-flow-copy,
html[data-theme="dark"] .report-export-page{
  color-scheme:light;
  --canvas:#f6f2e9;--canvas-soft:#f1ece2;--paper:#fbf8f1;--paper-strong:#fffdf8;--paper-subtle:#f2ede4;
  --ink:#242724;--ink-soft:#555953;--dim:#646a65;--faint:#6b6f68;
  --gold:#9a743a;--gold-bright:#765b2e;--gold-deep:#6d5228;--gold-fill:#b4894b;--gold-wash:#e8dcc4;
  --jade:#416846;--jade-fill:#719865;--jade-wash:#dde7d7;--sky:#3d7597;--sky-wash:#d9e7ec;
  --wood-ink:#28624c;--wood-fill:#4b8a68;--wood-fill-end:#7fb091;--wood-wash:#dcece1;
  --fire-ink:#a24542;--fire-fill:#c9695e;--fire-fill-end:#e6a39a;--fire-wash:#f4dfdb;
  --earth-ink:#6c5034;--earth-fill:#8a684d;--earth-fill-end:#b49476;--earth-wash:#eadfd4;
  --metal-ink:#8f6000;--metal-fill:#b87900;--metal-fill-end:#f0c554;--metal-wash:#fff1c2;
  --water-ink:#356b84;--water-fill:#5a8ba9;--water-fill-end:#91bccd;--water-wash:#dcebf0;
  --line:rgba(102,86,60,.16);--line-strong:rgba(102,86,60,.32);--report-bg:#f6f2e9;
  --shadow-card:0 1px 2px rgba(65,54,39,.06),0 8px 24px rgba(65,54,39,.07);
}

@media(max-width:560px){
  .header-actions{gap:4px}
  .theme-switch{min-height:44px;padding:2px}
  .theme-switch button{min-width:40px;min-height:38px;padding:5px}
  html[data-theme="dark"] .history-btn{
    color:var(--ink);border-color:var(--line);background:var(--surface-control);
  }
  html[data-theme="dark"] .meta-row{
    background:
      url('paper-fibers.svg') 0 0/240px 240px repeat,
      linear-gradient(180deg,var(--surface-raised),var(--surface-panel));
    background-blend-mode:soft-light,normal;
  }
}

/* ============================================================
   舒缓排版 · 操作区清晰柔和，命盘与章节标题保留东方气质
   ============================================================ */
body{
  -webkit-font-smoothing:auto;
  text-rendering:optimizeLegibility;
}
.panel-title,
.mode-tabs button,
.primary-btn,
.secondary-btn,
.dialog-primary-btn,
.dialog-danger-btn,
.app-dialog-head h3,
.confirm-dialog-surface h3,
.shensha-block h3,
.wx-block h3,
.dayun-block h3,
.drawer-head h3,
.completion-card h3,
.welcome h2,
.time-option strong,
.shensha-column-head b,
.pillar-card .pc-name,
.pillar-card .pc-hide-item b{
  font-family:var(--sans);
}
.panel-title{font-weight:600;letter-spacing:1px}
.mode-tabs button{font-weight:500;letter-spacing:.6px}
.mode-tabs button.active{font-weight:600}
.field>label{font-size:13px;letter-spacing:.6px}
input[type=text],input[type=number],select{font-size:15px;line-height:1.5}
.picker-trigger-value{font-size:14.5px;line-height:1.5}
.seg button{font-size:14px;font-weight:500;line-height:1.5}
.primary-btn,.secondary-btn,.dialog-primary-btn,.dialog-danger-btn{
  font-weight:600;letter-spacing:.08em;
}
.welcome h2{font-weight:600;letter-spacing:1.5px}
.pillar-card .pc-name{letter-spacing:.8px}
.pillar-card .pc-gz b{font-weight:700}
.shensha-block h3,.wx-block h3,.dayun-block h3{font-weight:600;letter-spacing:1px}
.time-mode-hint,
.hint,
.picker-trigger-meta,
.dropzone .dz-sub,
.wechat-notice-option small,
.site-footer{
  color:var(--dim);font-size:11.5px;line-height:1.75;
}
.location-option small,.time-option small{color:var(--dim);font-size:10.5px;line-height:1.5}
.calculation-basis-list span{font-size:12px;line-height:1.65}
.shensha-dialog-copy p{font-size:12.5px;line-height:1.8}

#readingPanel .markdown,
.markdown.report-export-reading,
.report-export-flow-copy{
  font-family:var(--sans);
  font-size:16.5px;
  line-height:1.95;
  letter-spacing:0;
}
.markdown h1,.markdown h2,.markdown h3{
  font-family:var(--serif);
}
.markdown h1{font-weight:700;letter-spacing:1px}
.markdown h2{font-weight:600;letter-spacing:1.2px}
.markdown h3{font-weight:600;letter-spacing:.8px}
.markdown strong{font-weight:600}
.report-export-reading-head h2{font-weight:700;letter-spacing:2px}

html[data-theme="dark"] .brand-text h1{
  color:var(--gold-bright);background:none;filter:none;
}
html[data-theme="dark"] .panel-title,
html[data-theme="dark"] .mode-tabs button,
html[data-theme="dark"] .welcome h2,
html[data-theme="dark"] .shensha-block h3,
html[data-theme="dark"] .wx-block h3,
html[data-theme="dark"] .dayun-block h3,
html[data-theme="dark"] .app-dialog-head h3,
html[data-theme="dark"] .confirm-dialog-surface h3,
html[data-theme="dark"] .drawer-head h3,
html[data-theme="dark"] .completion-card h3{
  font-family:var(--serif);
}
html[data-theme="dark"] .pillar-card .pc-gz b{text-shadow:none}
html[data-theme="dark"] .panel-title,
html[data-theme="dark"] .welcome h2,
html[data-theme="dark"] .shensha-block h3,
html[data-theme="dark"] .wx-block h3,
html[data-theme="dark"] .dayun-block h3,
html[data-theme="dark"] .markdown h1,
html[data-theme="dark"] .markdown h3,
html[data-theme="dark"] .app-dialog-head h3,
html[data-theme="dark"] .confirm-dialog-surface h3,
html[data-theme="dark"] .drawer-head h3,
html[data-theme="dark"] .completion-card h3{
  color:var(--ink);
}

/* ---------------- 理性使用、隐私确认与 AI 内容标识 ---------------- */
.footer-policy-btn{
  border:0;background:transparent;color:var(--sky);font-family:var(--sans);font-size:11.5px;
  text-decoration:underline;text-underline-offset:3px;cursor:pointer;white-space:nowrap;
}
.footer-policy-btn:hover,.footer-policy-btn:focus-visible{outline:none;color:var(--gold-deep)}
.reading-title-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ai-content-tag{color:var(--dim);font:500 11px/1.5 var(--sans);letter-spacing:0;white-space:nowrap}
.footer-policy-actions{margin:5px 0 2px}
.footer-policy-btn{font-size:12px}

.ai-consent-dialog{z-index:96}
.ai-consent-surface{width:min(720px,100%);overflow-y:auto}
.ai-consent-lead{margin-bottom:12px}
.ai-consent-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 13px;padding:0;list-style:none}
.ai-consent-facts li{
  min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:var(--paper-subtle);
}
.ai-consent-facts b{display:block;margin-bottom:3px;color:var(--gold-deep);font-size:11.5px;letter-spacing:.5px}
.ai-consent-facts span{display:block;color:var(--dim);font-size:11px;line-height:1.7}
.ai-consent-checks{display:grid;gap:8px}
.ai-consent-check{
  display:grid;grid-template-columns:18px minmax(0,1fr);gap:9px;align-items:start;padding:11px 12px;
  border:1px solid rgba(61,117,151,.23);border-radius:11px;background:rgba(217,231,236,.28);
  color:var(--ink);font-size:11.5px;line-height:1.7;cursor:pointer;
}
.ai-consent-check input{width:17px;height:17px;margin-top:2px;accent-color:var(--jade)}
.ai-consent-check:focus-within{border-color:var(--sky);box-shadow:var(--focus-ring)}
.ai-consent-error{margin:9px 2px 0;color:var(--danger);font-size:11.5px;line-height:1.6}
.ai-consent-actions{flex:0 0 auto}

.policy-dialog{z-index:94}
.policy-dialog-surface{width:min(760px,100%)}
.policy-sections{min-height:0;overflow-y:auto;overscroll-behavior:contain;display:grid;gap:10px;padding:1px 4px 4px 1px}
.policy-sections section{padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:var(--paper-subtle)}
.policy-sections h4{margin:0 0 5px;color:var(--gold-deep);font-family:var(--serif);font-size:13px;letter-spacing:.5px}
.policy-sections p{color:var(--dim);font-size:11.5px;line-height:1.8}
.policy-contact-section{border-color:rgba(182,66,58,.22)!important}
.operator-contact-placeholder{
  display:flex;align-items:flex-start;gap:7px;margin-top:9px;padding:9px 10px;border-radius:9px;
  background:rgba(182,66,58,.07);color:var(--ink)!important;
}
.operator-contact-placeholder b{flex:0 0 auto;color:var(--danger)}
.policy-contact-warning{margin-top:7px;color:var(--danger)!important}
.policy-capability-status{margin-top:8px;padding:8px 9px;border-radius:8px;background:var(--jade-wash);color:var(--jade)!important}
.policy-capability-status.is-warning{background:rgba(182,66,58,.07);color:var(--danger)!important}
.policy-reference-section ul{display:grid;gap:6px;margin:0;padding-left:18px}
.policy-reference-section li{color:var(--dim);font-size:11.5px;line-height:1.65}
.policy-reference-section a{color:var(--sky);text-decoration:underline;text-underline-offset:3px}
.policy-reference-section a:hover,.policy-reference-section a:focus-visible{color:var(--gold-deep);outline:none}
.policy-actions{flex:0 0 auto}

.report-export-disclaimer{
  width:600px;max-width:none;margin:0 0 18px;padding:10px 12px;border:1px solid var(--line);
  background:var(--gold-wash);color:var(--gold-deep);font-family:var(--sans);font-size:10px;
  font-weight:600;line-height:1.6;letter-spacing:.8px;text-align:center;
}
.report-export-disclaimer-bottom{margin:24px 0 0}

html[data-theme="dark"] .footer-policy-btn{color:var(--gold-bright)}
html[data-theme="dark"] .ai-output-notice{background:transparent;color:var(--faint)}
html[data-theme="dark"] .ai-consent-facts li,
html[data-theme="dark"] .policy-sections section{background:var(--surface-control)}
html[data-theme="dark"] .ai-consent-facts b,
html[data-theme="dark"] .policy-sections h4{color:var(--gold-bright)}
html[data-theme="dark"] .ai-consent-check{border-color:rgba(200,150,71,.24);background:var(--surface-gold);color:var(--ink)}
html[data-theme="dark"] .operator-contact-placeholder{background:rgba(239,119,109,.08);color:var(--ink)!important}
html[data-theme="dark"] .policy-capability-status{background:var(--surface-jade);color:var(--jade)!important}
html[data-theme="dark"] .policy-capability-status.is-warning{background:rgba(239,119,109,.08);color:var(--danger)!important}
html[data-theme="dark"] .policy-reference-section a{color:var(--gold-bright)}

@media(max-width:640px){
  .ai-consent-facts{grid-template-columns:1fr}
  .ai-consent-surface,.policy-dialog-surface{max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px)}
  .ai-consent-actions,.policy-actions{flex-wrap:wrap}
  .policy-actions #btnPolicyHistory,.policy-actions #btnForgetAiConsent{width:100%}
  .operator-contact-placeholder{display:block}
  .operator-contact-placeholder b{display:block;margin-bottom:3px}
}

/* ============================================================
   首份解读后的延伸对话
   ============================================================ */
.followup-panel{
  max-width:76ch;margin:52px auto 0;padding-top:30px;border-top:1px solid var(--line-strong);scroll-margin-top:16px;
}
.followup-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:8px}
.followup-kicker{display:block;margin-bottom:4px;color:var(--jade);font-size:10.5px;font-weight:700;letter-spacing:3px}
.followup-head h3{color:var(--ink);font-family:var(--serif);font-size:20px;line-height:1.45;letter-spacing:1.5px}
.followup-lead{margin-bottom:17px;color:var(--dim);font-size:13px;line-height:1.8}
.followup-suggestions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.followup-suggestions button{
  min-height:38px;padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:var(--paper-subtle);
  color:var(--ink-soft);font-size:12px;line-height:1.35;cursor:pointer;transition:border-color .18s,background .18s,color .18s,transform .18s;
}
.followup-suggestions button:hover,.followup-suggestions button:focus-visible{
  border-color:var(--gold);background:var(--gold-wash);color:var(--gold-deep);transform:translateY(-1px);outline:none;
}
.followup-suggestions button:disabled{opacity:.5;cursor:not-allowed;transform:none}
.page-jump-nav{
  position:fixed;z-index:18;right:0;top:90px;width:24px;height:60vh;
  pointer-events:none;user-select:none;-webkit-user-select:none;
}
.page-jump-nav[hidden],
body:not(.bazi-detail-active) .page-jump-nav{display:none!important}
.page-jump-nav::before{
  content:'';position:absolute;right:4px;top:0;bottom:0;width:2px;border-radius:2px;
  background:rgba(93,56,146,.12);background:color-mix(in srgb,var(--gold-deep) 12%,transparent);
}
.page-scroll-thumb{
  position:absolute;top:0;right:0;width:24px;min-height:44px;
  pointer-events:auto;touch-action:none;cursor:grab;outline:none;
}
.page-scroll-thumb::after{
  content:'';position:absolute;top:0;bottom:0;right:3px;width:4px;border-radius:4px;
  background:#a38bbd;background:color-mix(in srgb,var(--gold-deep) 52%,var(--paper-strong));
  transition:width .15s,background .15s;
}
.page-scroll-thumb:focus-visible::after,.is-dragging .page-scroll-thumb::after{
  width:6px;background:var(--gold-deep);box-shadow:0 0 0 2px var(--paper-strong);
}
.page-scroll-thumb::before{
  content:attr(data-progress);position:absolute;right:30px;top:50%;transform:translateY(-50%);
  padding:5px 8px;border:1px solid var(--line);border-radius:8px;
  background:var(--paper-strong);color:var(--gold-deep);font:500 12px/1.3 var(--sans);
  opacity:0;pointer-events:none;
}
.is-dragging .page-scroll-thumb{cursor:grabbing}
.is-dragging .page-scroll-thumb::before,.page-scroll-thumb:focus-visible::before{opacity:1}
html.is-page-scroll-dragging{scroll-behavior:auto!important;user-select:none;-webkit-user-select:none}
@media(min-width:981px){.page-jump-nav{display:none!important}}
@media(prefers-reduced-motion:reduce){.page-scroll-thumb::after{transition:none}}
.followup-chat-shell{
  min-width:0;overflow:visible;border:0;border-radius:0;
  background:transparent;box-shadow:none;
}
.followup-messages{display:flex;flex-direction:column;margin:0}
.followup-messages:empty{display:none}
.followup-conversation{
  width:100%;min-width:0;flex:0 0 auto;border:0;border-radius:0;
  background:transparent;box-shadow:none;
}
.followup-conversation>summary{
  min-height:48px;cursor:pointer;list-style:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;
}
.followup-conversation>summary::-webkit-details-marker{display:none}
.followup-conversation>summary:focus-visible{outline:1px solid var(--sky);outline-offset:2px;box-shadow:none}
.followup-conversation-summary{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 0;
  border-radius:0;color:var(--ink-soft);background:transparent;
}
.followup-conversation-copy{min-width:0;display:grid;gap:2px}
.followup-conversation-copy strong{color:var(--ink);font:650 13px/1.45 var(--sans)}
.followup-conversation-copy small{color:var(--faint);font:400 10px/1.4 var(--sans);overflow-wrap:anywhere}
.followup-conversation-list{
  max-height:none;min-height:0;display:flex;flex-direction:column;gap:28px;overflow:visible;
  padding:20px 0 28px;border-radius:0;background:transparent;
}
/* Follow-ups take their natural height and share the page's scrolling. */
.followup-conversation-list>.followup-message{flex:0 0 auto;min-width:0}
.followup-conversation:not([open])>.followup-conversation-list{display:none}
.followup-collapse-toggle{min-width:34px;color:var(--gold-deep);font:650 10px/1.4 var(--sans);text-align:right;white-space:nowrap}
.followup-collapse-toggle .when-open{display:none}
.followup-conversation[open]>.followup-conversation-summary .when-collapsed{display:none}
.followup-conversation[open]>.followup-conversation-summary .when-open{display:inline}
.followup-conversation[open]>.followup-conversation-summary{border-bottom:1px solid var(--line);background:transparent}
.followup-message{width:100%;max-width:none;align-self:stretch;align-items:stretch}
.followup-message{display:flex;flex-direction:column;gap:6px;max-width:92%}
.followup-message.user{align-self:flex-end;align-items:flex-end}
.followup-message.assistant{align-self:flex-start;align-items:flex-start}
.followup-message-label{padding:0 5px;color:var(--faint);font-size:10px;letter-spacing:1px}
.followup-message-body{border:1px solid var(--line);border-radius:16px;padding:13px 16px;background:var(--paper-subtle);overflow-wrap:anywhere}
.followup-message.user .followup-message-body{border-color:rgba(61,117,151,.24);border-bottom-right-radius:5px;background:var(--sky-wash);color:var(--ink);font-size:14px;line-height:1.8;white-space:pre-wrap}
.followup-message.assistant .followup-message-body{border-bottom-left-radius:5px;background:var(--paper-strong)}
.followup-message.assistant .markdown{max-width:none;font-family:var(--sans);font-size:14px;line-height:1.9;letter-spacing:0}
.followup-message.assistant .markdown h1{font-size:18px;margin:3px 0 14px;text-align:left;letter-spacing:1px}
.followup-message.assistant .markdown h1::after{display:none}
.followup-message.assistant .markdown h2{font-size:16px;margin:22px 0 9px;padding-left:9px;letter-spacing:.5px}
.followup-message.assistant .markdown h3{font-size:15px;margin:18px 0 8px;letter-spacing:.3px}
.followup-message.assistant .markdown p{margin-bottom:11px;text-align:left}
.followup-message.assistant .markdown p:last-child,.followup-message.assistant .markdown ul:last-child,.followup-message.assistant .markdown ol:last-child{margin-bottom:0}
.followup-message.is-streaming .followup-message-body{border-color:rgba(65,104,70,.35);box-shadow:0 0 0 3px rgba(65,104,70,.06)}
.followup-form{margin:0;padding:20px 0 0;border:0;border-radius:0;background:transparent;scroll-margin-bottom:calc(16px + env(safe-area-inset-bottom))}
.followup-messages:not(:empty)+.followup-form{border-top:1px solid var(--line)}
.followup-compose-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin-bottom:11px}
.followup-compose-head>label{color:var(--ink);font-size:12px;font-weight:650;white-space:nowrap}
.followup-context-note{margin:0;color:var(--dim);font-size:11px;line-height:1.7}
.followup-composer{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--paper-strong);transition:border-color .18s,box-shadow .18s}
.followup-composer:focus-within{border-color:var(--sky);box-shadow:var(--focus-ring)}
.followup-form textarea{
  display:block;width:100%;min-height:76px;max-height:220px;resize:vertical;padding:12px 14px;border:0;border-radius:0;
  outline:none;background:transparent;color:var(--ink);font:14px/1.75 var(--sans);
}
.followup-form textarea::placeholder{color:var(--faint)}
.followup-form textarea:focus{outline:none;box-shadow:none}
.followup-form textarea:disabled{opacity:.68;cursor:not-allowed}
.followup-form-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:0 12px 10px}
.followup-form-foot>span{color:var(--faint);font-size:10.5px}
.followup-form-foot>span b{font-weight:500}
.followup-actions{display:flex;flex:0 0 auto;align-items:center;gap:8px;white-space:nowrap}
.followup-actions .primary-btn,.followup-actions .ghost-btn{flex:0 0 auto;width:auto;margin:0;white-space:nowrap}
.followup-actions .primary-btn{min-width:108px;min-height:40px;padding:8px 17px;font-size:13px}
.followup-actions .ghost-btn{min-width:96px;min-height:40px;padding:8px 13px}
.followup-actions .primary-btn[aria-busy="true"]{min-width:96px;display:inline-flex;align-items:center;justify-content:center;gap:8px;opacity:.78;cursor:wait}
.followup-actions .primary-btn[aria-busy="true"]::before{content:'';width:12px;height:12px;flex:0 0 12px;border:2px solid rgba(255,255,255,.42);border-top-color:#fff;border-radius:50%;animation:followup-spin .8s linear infinite}
@keyframes followup-spin{to{transform:rotate(360deg)}}
.followup-status{margin:0;padding:12px 0 0;color:var(--jade);font-size:11.5px;line-height:1.6}
.followup-status:empty{display:none}
.followup-status.err{color:var(--danger)}
.followup-status.warn{color:var(--gold-deep)}
.followup-privacy{margin:8px 0 12px;color:var(--faint);font-size:10.5px;line-height:1.7}

html[data-theme="dark"] .followup-head h3{color:var(--gold-bright)}
html[data-theme="dark"] .followup-suggestions button{border-color:var(--line);background:var(--surface-control);color:var(--ink-soft)}
html[data-theme="dark"] .followup-suggestions button:hover,html[data-theme="dark"] .followup-suggestions button:focus-visible{border-color:var(--gold);background:var(--surface-gold);color:var(--gold-bright)}
html[data-theme="dark"] :is(.followup-chat-shell,.followup-conversation-summary,.followup-conversation-list){background:transparent}
html[data-theme="dark"] .followup-conversation[open]>.followup-conversation-summary{border-bottom-color:var(--line);background:transparent}
html[data-theme="dark"] .followup-conversation-copy strong{color:var(--ink)}
html[data-theme="dark"] .followup-message.user .followup-message-body{border-color:rgba(87,151,190,.28);background:rgba(61,117,151,.14);color:var(--ink)}
html[data-theme="dark"] .followup-message.assistant .followup-message-body{border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .followup-message.is-streaming .followup-message-body{border-color:rgba(127,180,158,.35);box-shadow:0 0 0 3px rgba(127,180,158,.06)}
html[data-theme="dark"] .followup-composer{border-color:var(--line);background:var(--surface-control)}

@media(max-width:640px){
  .followup-panel{margin-top:38px;padding-top:25px}
  .followup-head{align-items:center}
  .followup-head h3{font-size:18px}
  .followup-suggestions{display:grid;grid-template-columns:1fr 1fr}
  .followup-suggestions button{width:100%;padding-inline:9px}
  .followup-conversation-list{gap:24px;padding:16px 0 24px}
  .followup-conversation-summary{gap:8px;padding:11px 0}
  .followup-collapse-toggle{min-width:32px}
  .followup-message{max-width:96%}
  .followup-message-body{padding:12px 13px}
  .followup-form{padding:18px 0 0}
  .followup-status{padding:10px 0 0}
  .followup-form-foot{align-items:center;gap:9px}
  .followup-actions{flex-direction:row;align-items:center}
  .followup-actions .primary-btn{min-width:104px}
  .followup-actions .ghost-btn{min-width:94px}
  #readingPanel .markdown p{text-align:left}
  /* 快捷跳转已并入底部导航，正文与追问恢复完整行宽。 */
  #readingPanel>.reading,#readingPanel>.followup-panel{padding-right:0}
}

@media(max-width:380px){
  .followup-suggestions{grid-template-columns:1fr}
  .followup-head{align-items:flex-start}
  .followup-head #btnClearFollowup{padding-inline:9px}
  .followup-form-foot{flex-wrap:wrap}
  .followup-actions{width:auto;margin-left:auto;justify-content:flex-end}
}

/* Bazi detail view and long-report reader. */
#chartPanel{scroll-margin-top:92px}
body.bazi-detail-active .layout{grid-template-columns:minmax(0,1040px);justify-content:center;max-width:1120px}body.bazi-detail-active .col-left{display:none}body.bazi-detail-active .col-right{min-width:0;width:100%}body.bazi-detail-active #welcomePanel,body.bazi-detail-active #visionReviewPanel{display:none!important}
body.bazi-reading-generating #chartPanel>.chart-actions{display:none!important}
.report-more-menu{position:relative}.report-more-menu>summary{list-style:none;cursor:pointer}.report-more-menu>summary::-webkit-details-marker{display:none}.report-more-menu>div{position:absolute;z-index:8;top:calc(100% + 7px);right:0;min-width:178px;display:grid;gap:5px;padding:7px;border:1px solid var(--line);border-radius:13px;background:var(--paper-strong);box-shadow:0 14px 34px rgba(49,41,30,.18)}.report-more-menu>div button{width:100%;justify-content:flex-start;text-align:left}
.report-reader-tools{position:sticky;z-index:6;top:76px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;margin:10px 0 20px;padding:8px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--paper-strong) 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.report-progress{position:relative;height:6px;overflow:hidden;border-radius:999px;background:var(--paper-subtle)}.report-progress i{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,var(--gold),var(--jade));transition:width .15s}.report-progress span{position:absolute;right:0;top:-18px;color:var(--faint);font-size:9px}
.report-toc{position:relative}.report-toc>summary,.report-resume{min-height:34px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;color:var(--dim);background:var(--paper-subtle);cursor:pointer;font:600 10px/1 var(--sans)}.report-toc>nav{position:absolute;z-index:10;top:calc(100% + 7px);right:0;width:min(320px,70vw);max-height:50vh;display:grid;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:13px;background:var(--paper-strong);box-shadow:0 16px 38px rgba(49,41,30,.18)}.report-toc>nav a{padding:9px;border-radius:8px;color:var(--ink-soft);font-size:11px;line-height:1.45;text-decoration:none}.report-toc>nav a:hover{background:var(--paper-subtle)}.report-chapter-heading{position:relative;cursor:pointer;padding-right:32px}.report-chapter-heading::after{content:'－';position:absolute;top:0;right:8px;color:var(--gold-deep);font-family:var(--sans);font-size:18px;font-weight:400}.report-chapter-heading[aria-expanded="false"]::after{content:'＋'}
@media(max-width:980px){.report-reader-tools{position:relative;top:auto;grid-template-columns:1fr auto;background:var(--paper-strong)}.report-resume{grid-column:1/-1}.followup-form{position:relative;bottom:auto;box-shadow:none}}
@media(max-width:560px){.reading-tools{gap:6px}.reading-tools .ghost-btn{padding-inline:9px}.report-more-menu>div{position:fixed;right:12px;bottom:calc(142px + env(safe-area-inset-bottom));left:12px;top:auto}.report-reader-tools{margin-inline:-4px}}

/* ============================================================
   解读方向 · 流年 / 专题 / 一事一问
   ============================================================ */
.reading-plan{
  position:relative;overflow:hidden;margin-top:26px;padding:21px;
  border:1px solid var(--line-strong);border-radius:20px;
  background:
    radial-gradient(circle at 95% 0,rgba(65,104,70,.10),transparent 33%),
    linear-gradient(145deg,rgba(255,253,248,.88),rgba(241,235,219,.56));
}
.reading-plan::before{
  content:'';position:absolute;inset:0 0 auto;height:3px;
  background:linear-gradient(90deg,var(--gold),var(--jade),transparent 86%);
}
.reading-plan-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:20px;margin-bottom:17px}
.reading-plan-head>div{min-width:0}
.reading-plan-kicker{
  display:block;margin-bottom:4px;color:var(--jade);font-size:10px;font-weight:700;letter-spacing:2.5px;
}
.reading-plan-head h3{margin:0;color:var(--ink);font-family:var(--serif);font-size:19px;letter-spacing:1.5px}
.reading-plan-head p{
  flex:0 1 330px;min-width:0;margin:0;max-width:330px;
  color:var(--dim);font-size:11.5px;line-height:1.65;text-align:right;overflow-wrap:anywhere;
}
.reading-scope-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.reading-scope-grid button{
  display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;
  min-width:0;padding:11px 10px;border:1px solid var(--line);border-radius:14px;
  background:var(--paper-subtle);color:var(--ink-soft);text-align:left;cursor:pointer;
  transition:border-color .18s,background .18s,box-shadow .18s,transform .18s;
}
.reading-scope-grid button>span{
  grid-row:1/3;display:grid;place-items:center;align-self:center;width:30px;height:30px;
  border:1px solid var(--line);border-radius:50%;background:var(--paper-strong);
  color:var(--gold-deep);font-family:var(--serif);font-size:12px;font-weight:700;
}
.reading-scope-grid button b{overflow:hidden;color:var(--ink);font-size:12px;line-height:1.4;white-space:nowrap;text-overflow:ellipsis}
.reading-scope-grid button small{overflow:hidden;margin-top:2px;color:var(--faint);font-size:9.5px;line-height:1.35;white-space:nowrap;text-overflow:ellipsis}
.reading-scope-grid button:hover,.reading-scope-grid button:focus-visible{
  border-color:var(--sky);background:var(--sky-wash);transform:translateY(-1px);
}
.reading-scope-grid button.active,.reading-scope-grid button[aria-pressed="true"]{
  border-color:var(--gold);background:var(--gold-wash);box-shadow:0 7px 20px rgba(154,116,58,.10);
}
.reading-scope-grid button.active>span,.reading-scope-grid button[aria-pressed="true"]>span{
  border-color:rgba(154,116,58,.36);background:var(--gold);color:#fffdf7;
}
.reading-focus-row,.reading-period-fields,.reading-question-fields{margin-top:17px;padding-top:16px;border-top:1px dashed var(--line)}
.reading-plan-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:9px}
.reading-plan-label b{color:var(--ink);font-size:12px;letter-spacing:.4px}
.reading-plan-label span{color:var(--faint);font-size:10px}
.reading-focus-options{display:flex;flex-wrap:wrap;gap:7px}
.reading-focus-options button{
  min-height:34px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;
  background:var(--paper-strong);color:var(--ink-soft);font-size:11.5px;line-height:1.35;cursor:pointer;
  transition:border-color .18s,background .18s,color .18s,transform .18s;
}
.reading-focus-options button:hover,.reading-focus-options button:focus-visible{
  border-color:var(--sky);background:var(--sky-wash);color:var(--ink);transform:translateY(-1px);
}
.reading-focus-options button.active,.reading-focus-options button[aria-pressed="true"]{
  border-color:var(--jade);background:var(--jade-wash);color:var(--jade);font-weight:600;
}
.reading-focus-options.compact{gap:6px}
.reading-focus-options.compact button{padding-inline:10px}
.annual-reading-preview{
  margin-top:17px;padding:15px;border:1px solid rgba(65,104,70,.24);border-radius:15px;background:var(--jade-wash);
}
.annual-reading-range{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:baseline}
.annual-reading-range>span{color:var(--jade);font-size:10px;font-weight:700;letter-spacing:1.5px}
.annual-reading-range>b{color:var(--ink);font-family:var(--serif);font-size:15px}
.annual-reading-range>small{grid-column:1/-1;color:var(--dim);font-size:10px;line-height:1.55}
.annual-reading-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:11px}
.annual-reading-fact{
  display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:1px 9px;
  padding:10px 11px;border:1px solid rgba(65,104,70,.18);border-radius:11px;background:rgba(255,253,248,.58);
}
.annual-reading-fact>span{grid-row:1/3;align-self:center;color:var(--faint);font-size:10px}
.annual-reading-fact>b{color:var(--ink);font-family:var(--serif);font-size:14px;letter-spacing:1px}
.annual-reading-fact>small{overflow:hidden;color:var(--dim);font-size:9.5px;line-height:1.4;white-space:nowrap;text-overflow:ellipsis}
.reading-plan-caveat,.reading-plan-note{margin-top:10px;color:var(--faint);font-size:10.5px;line-height:1.65}
.reading-plan-note{margin-bottom:0}
.reading-period-grid{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:9px;align-items:end}
.reading-period-grid>span{padding-bottom:10px;color:var(--faint);font-size:11px}
.reading-period-grid label{display:grid;gap:5px;color:var(--dim);font-size:10.5px}
.reading-period-grid input{min-width:0;width:100%;height:40px;padding:7px 10px;font-size:12px}
.reading-question-fields>label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}
.reading-question-fields>label b{color:var(--ink);font-size:12px}
.reading-question-fields>label span{color:var(--faint);font-size:10px}
.reading-question-fields textarea{
  display:block;width:100%;min-height:86px;resize:vertical;padding:11px 12px;
  border:1px solid var(--line);border-radius:12px;outline:none;background:var(--paper-strong);
  color:var(--ink);font:13px/1.7 var(--sans);transition:border-color .18s,box-shadow .18s;
}
.reading-question-fields textarea::placeholder{color:var(--faint)}
.reading-question-fields textarea:focus{border-color:var(--sky);box-shadow:var(--focus-ring)}
.reading-question-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:7px;color:var(--faint);font-size:10.5px}
.reading-question-meta>label{display:flex;align-items:center;gap:6px;color:var(--dim);cursor:pointer}
.reading-question-meta input{width:15px;height:15px;accent-color:var(--jade)}
.reading-question-fields .reading-period-grid{margin-top:11px;padding-top:11px;border-top:1px dashed var(--line)}
.vision-focus-field .reading-focus-options{margin-top:8px}

html[data-theme="dark"] .reading-plan{
  background:
    url('paper-fibers.svg') 0 0/240px 240px repeat,
    linear-gradient(145deg,var(--surface-raised),var(--surface-control));
  background-blend-mode:soft-light,normal;
}
html[data-theme="dark"] .reading-plan-head h3,
html[data-theme="dark"] .reading-plan-label b,
html[data-theme="dark"] .reading-question-fields>label b{color:var(--gold-bright)}
html[data-theme="dark"] .reading-scope-grid button,
html[data-theme="dark"] .reading-focus-options button{background:var(--surface-control);border-color:var(--line)}
html[data-theme="dark"] .reading-scope-grid button>span{background:var(--surface-hover)}
html[data-theme="dark"] .reading-scope-grid button.active,
html[data-theme="dark"] .reading-scope-grid button[aria-pressed="true"]{border-color:var(--gold);background:var(--surface-gold)}
html[data-theme="dark"] .reading-focus-options button.active,
html[data-theme="dark"] .reading-focus-options button[aria-pressed="true"]{border-color:var(--jade);background:var(--surface-jade);color:var(--jade)}
html[data-theme="dark"] .annual-reading-preview{border-color:rgba(82,187,154,.25);background:var(--surface-jade)}
html[data-theme="dark"] .annual-reading-fact{border-color:rgba(166,197,180,.24);background:var(--surface-control)}
html[data-theme="dark"] .reading-question-fields textarea{background:var(--surface-control);color:var(--ink)}

@media(max-width:760px){
  .reading-scope-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reading-plan-head{align-items:flex-start}
  .reading-plan-head p{flex-basis:250px;max-width:250px}
}
@media(max-width:560px){
  .reading-plan{padding:18px 14px}
  .reading-plan-head{display:block}
  .reading-plan-head p{max-width:none;margin-top:6px;text-align:left}
  .reading-scope-grid{gap:7px}
  .reading-scope-grid button{grid-template-columns:27px minmax(0,1fr);column-gap:7px;padding:10px 8px}
  .reading-scope-grid button>span{width:27px;height:27px}
  .annual-reading-facts{grid-template-columns:1fr}
  .reading-question-fields>label{display:grid;gap:3px}
}
@media(max-width:380px){
  .reading-scope-grid{grid-template-columns:1fr}
  .reading-period-grid{grid-template-columns:1fr}
  .reading-period-grid>span{display:none}
}

/* ============================================================
   联系与社群 · 保留微信原图与二维码静区，支持手机长按识别
   ============================================================ */
.footer-policy-actions{
  display:flex;align-items:center;justify-content:center;gap:9px;
}
.footer-action-separator{color:var(--faint);font-size:12px;opacity:.7}

.contact-dialog{z-index:95}
.contact-dialog-surface{width:min(900px,100%)}
.contact-dialog-body{
  flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px 4px 4px 1px;
  scrollbar-color:rgba(154,116,58,.25) transparent;
}
.contact-qr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.contact-qr-card{
  min-width:0;display:flex;flex-direction:column;align-items:center;padding:16px;
  border:1px solid var(--line);border-radius:16px;background:var(--paper-subtle);
}
.contact-qr-head{width:100%;min-height:112px;margin-bottom:12px;text-align:left}
.contact-qr-badge{
  display:inline-flex;align-items:center;min-height:24px;margin-bottom:8px;padding:3px 9px;
  border:1px solid rgba(154,116,58,.26);border-radius:999px;background:var(--gold-wash);
  color:var(--gold-deep);font-size:10px;font-weight:700;line-height:1.3;letter-spacing:1px;
}
.contact-qr-badge.is-group{
  border-color:rgba(65,104,70,.24);background:var(--jade-wash);color:var(--jade);
}
.contact-qr-head h4{
  margin:0 0 5px;color:var(--ink);font-family:var(--serif);font-size:16px;line-height:1.5;letter-spacing:.7px;
}
.contact-qr-head p{margin:0;color:var(--dim);font-size:11.5px;line-height:1.7}
.contact-qr-link{
  display:block;width:min(100%,320px);padding:8px;border:1px solid var(--line);border-radius:15px;
  background:#fff;text-decoration:none;box-shadow:var(--shadow-card);
  transition:border-color .18s,box-shadow .18s,transform .18s;
  -webkit-touch-callout:default;
}
.contact-qr-link:hover,.contact-qr-link:focus-visible{
  border-color:var(--gold);box-shadow:0 0 0 3px rgba(154,116,58,.09),var(--shadow-card);transform:translateY(-1px);outline:none;
}
.contact-qr-link img{
  display:block;width:100%;height:auto;border-radius:10px;background:#fff;
  filter:none!important;mix-blend-mode:normal;image-rendering:auto;
}
.contact-qr-tip{margin:10px 0 0;color:var(--faint);font-size:10.5px;line-height:1.55;text-align:center}
.contact-qr-tip.is-expiring{color:var(--gold-deep);font-weight:600}
.contact-dialog-actions{flex:0 0 auto}

html[data-theme="dark"] .contact-qr-card{border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .contact-qr-head h4{color:var(--gold-bright)}
html[data-theme="dark"] .contact-qr-badge{border-color:rgba(200,150,71,.28);background:var(--surface-gold);color:var(--gold-bright)}
html[data-theme="dark"] .contact-qr-badge.is-group{border-color:rgba(82,187,154,.26);background:var(--surface-jade);color:var(--jade)}
html[data-theme="dark"] .contact-qr-link{border-color:rgba(200,150,71,.28);background:#fff}
html[data-theme="dark"] .contact-qr-tip.is-expiring{color:var(--gold-bright)}

@media(max-width:640px){
  .contact-dialog-surface{width:100%}
  .contact-qr-grid{grid-template-columns:1fr}
  .contact-qr-card{padding:14px 12px}
  .contact-qr-head{min-height:0;margin-bottom:11px}
  .contact-qr-link{width:min(100%,330px)}
}

/* ============================================================
   十神释义 · 四柱、藏干与流年统一点击入口
   ============================================================ */
.shishen-help{
  display:flex;align-items:center;gap:6px;margin:-2px 0 10px;color:var(--faint);
  font-size:10px;line-height:1.5;letter-spacing:.2px;
}
.shishen-help span{color:var(--jade);font-size:9px}
.shishen-trigger{
  display:inline-flex;align-items:center;justify-content:center;gap:2px;margin:0;padding:0;
  appearance:none;-webkit-appearance:none;border:0;background:none;color:inherit;
  font:inherit;line-height:inherit;vertical-align:baseline;cursor:pointer;
  transition:filter .16s ease,transform .16s ease,box-shadow .16s ease,color .16s ease;
}
.shishen-trigger-arrow{flex:0 0 auto;font-family:serif;font-size:1.25em;line-height:.7;opacity:.58;transform:translateY(-.03em)}
.shishen-trigger:hover{filter:brightness(1.08)}
.shishen-trigger:focus-visible{outline:2px solid var(--jade);outline-offset:2px}
.shishen-trigger[aria-expanded="true"]{filter:brightness(1.1)}

.pillar-card .pc-shishen.shishen-trigger{display:inline-flex}
.pillar-card .pc-shishen.shishen-trigger:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(65,54,39,.1)}
.pillar-card .pc-shishen.shishen-trigger[aria-expanded="true"]{box-shadow:0 0 0 1px currentColor,0 4px 12px rgba(65,54,39,.1)}
.pillar-card .pc-hide-shishen{
  color:var(--faint);font-size:10px;border-bottom:1px dashed rgba(154,116,58,.32);border-radius:1px;
}
.pillar-card .pc-hide-shishen:hover,.pillar-card .pc-hide-shishen[aria-expanded="true"]{color:var(--gold-deep);border-bottom-color:currentColor}

.dayun-current .shishen-current{
  color:inherit;border-bottom:1px dashed currentColor;border-radius:1px;font-weight:inherit;
}
.dyr-liunian .shishen-year,.dyr-xiaoyun .shishen-year{
  color:var(--faint);border-bottom:1px dashed rgba(154,116,58,.28);border-radius:1px;
}
.dyr-liunian .shishen-year:hover,.dyr-xiaoyun .shishen-year:hover,
.dyr-liunian .shishen-year[aria-expanded="true"],.dyr-xiaoyun .shishen-year[aria-expanded="true"]{
  color:var(--gold-deep);border-bottom-color:currentColor;
}

.annual-reading-fact>small{display:flex;align-items:center;gap:4px;min-width:0}
.annual-reading-fact>small i,.annual-reading-fact>small em{overflow:hidden;font-style:normal;text-overflow:ellipsis}
.annual-reading-fact .shishen-annual{
  flex:0 0 auto;color:var(--jade);border-bottom:1px dashed rgba(65,104,70,.38);border-radius:1px;
}
.annual-reading-fact .shishen-annual:hover,.annual-reading-fact .shishen-annual[aria-expanded="true"]{border-bottom-color:currentColor}

.shishen-dialog-surface{width:min(570px,100%)}
.shishen-dialog-relation{
  color:var(--jade);border-color:rgba(65,104,70,.26);background:var(--jade-wash);
}
html[data-theme="dark"] .shishen-dialog-relation{
  color:var(--jade);border-color:rgba(127,180,158,.26);background:var(--surface-jade);
}
html[data-theme="dark"] .pillar-card .pc-hide-shishen,
html[data-theme="dark"] .dyr-liunian .shishen-year,
html[data-theme="dark"] .dyr-xiaoyun .shishen-year{color:var(--faint);border-bottom-color:rgba(226,177,88,.3)}
html[data-theme="dark"] .pillar-card .pc-hide-shishen:hover,
html[data-theme="dark"] .dyr-liunian .shishen-year:hover,
html[data-theme="dark"] .dyr-xiaoyun .shishen-year:hover{color:var(--gold-bright)}

.report-export-chart .shishen-help{display:none}
.report-export-chart .shishen-trigger{pointer-events:none;cursor:default;transform:none!important;filter:none!important;box-shadow:none!important}
.report-export-chart .shishen-trigger-arrow{display:none}
.report-export-chart .pc-hide-shishen,.report-export-chart .shishen-year,
.report-export-chart .shishen-current,.report-export-chart .shishen-annual{border-bottom:0}

@media(pointer:coarse){
  .shishen-trigger{min-width:24px;min-height:24px}
}

@media(max-width:560px){
  .pillar-card .pc-shishen .shishen-trigger-arrow{display:none}
  .pillar-card .pc-hide-shishen{font-size:8.5px}
  .annual-reading-fact>small{overflow:visible;white-space:normal;text-overflow:clip}
  .annual-reading-fact>small em{white-space:nowrap;text-overflow:ellipsis}
}

/* ============================================================
   留存与任务中心 · IndexedDB 历史、后台任务独立导航
   ============================================================ */
.task-center-btn{
  position:relative;min-height:46px;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;
  border-color:transparent;background:transparent;color:var(--dim);white-space:nowrap;
}
.task-center-btn .task-count-badge{
  min-width:18px;height:18px;display:grid;place-items:center;padding:0 5px;border-radius:999px;
  background:var(--jade);color:#fff;font-size:10px;line-height:1;
}
.task-center-btn.is-running::before{
  content:'';width:7px;height:7px;border-radius:50%;background:var(--jade);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--jade) 13%,transparent);animation:taskPulse 1.6s ease-in-out infinite;
}
@keyframes taskPulse{50%{opacity:.45;transform:scale(.82)}}
.task-center-lead{margin:-3px 0 14px;color:var(--dim);font-size:11.5px;line-height:1.7}
.task-center-summary{margin:4px 0 0;color:var(--faint);font-size:10.5px;line-height:1.5}
.task-list{display:flex;flex:1;min-height:0;overflow-y:auto;flex-direction:column;gap:10px}
.task-empty{padding:44px 10px;color:var(--faint);font-size:13px;line-height:1.8;text-align:center}
.task-card{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--paper-subtle)}
.task-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.task-card-head>div{min-width:0}
.task-card-kicker{display:block;margin-bottom:4px;color:var(--jade);font-size:9px;font-weight:700;letter-spacing:1.4px}
.task-card h4{overflow:hidden;color:var(--ink);font-size:13.5px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}
.task-status-pill{flex:0 0 auto;padding:4px 8px;border-radius:999px;background:var(--jade-wash);color:var(--jade);font-size:10px;font-weight:600}
.task-status-pill.is-warning{background:var(--gold-wash);color:var(--gold-deep)}
.task-card-meta{display:grid;grid-template-columns:1fr auto;gap:5px 10px;margin-top:11px;color:var(--faint);font-size:10.5px}
.task-card-progress{grid-column:1/-1;height:5px;overflow:hidden;border-radius:999px;background:var(--line)}
.task-card-progress i{display:block;width:46%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--jade),var(--gold));animation:taskProgress 2.2s ease-in-out infinite}
@keyframes taskProgress{50%{transform:translateX(85%) scaleX(.72)}}
.task-card-actions{display:flex;gap:7px;margin-top:13px;flex-wrap:wrap}
.task-card-actions button{min-height:40px;flex:1;padding:7px 9px}
.task-continue-btn{border-color:color-mix(in srgb,var(--jade) 46%,var(--line));color:var(--jade)}

/* 流年 → 十二流月 → 原局 / 大运 / 流年关系 */
.dayun-year-card{transition:border-color .18s,background .18s,box-shadow .18s}
.dayun-year-card.selected{border-color:var(--jade);background:var(--jade-wash);box-shadow:0 0 0 2px color-mix(in srgb,var(--jade) 10%,transparent)}
.dyr-select{
  width:100%;display:flex;flex-direction:column;gap:1px;padding:0 0 5px;border:0;border-bottom:1px dashed var(--line);
  appearance:none;background:transparent;color:inherit;text-align:center;cursor:pointer;
}
.dyr-select:hover b,.dyr-select:focus-visible b{color:var(--jade)}
.dyr-select small::after{content:' · 看流月';color:var(--jade)}
.dayun-year-card.selected .dyr-select small::after{content:' · 已选'}
.annual-linkage{margin-top:13px;padding-top:13px;border-top:1px solid var(--line)}
.annual-linkage-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.annual-linkage-head>div{min-width:0}
.annual-linkage-head span{display:block;margin-bottom:3px;color:var(--jade);font-size:9px;font-weight:700;letter-spacing:1.6px}
.annual-linkage-head h5{color:var(--ink);font-family:var(--serif);font-size:14px;line-height:1.45;letter-spacing:.7px}
.annual-linkage-head>small{max-width:185px;color:var(--faint);font-size:9px;line-height:1.5;text-align:right}
.relation-overview{display:flex;gap:6px;margin-top:10px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.relation-chip{flex:0 0 auto;padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:var(--paper-strong);color:var(--dim);font-size:9.5px;line-height:1.35}
.relation-chip.combine,.relation-chip.meeting,.relation-chip.generate,.relation-chip.supported{border-color:color-mix(in srgb,var(--jade) 36%,var(--line));background:var(--jade-wash);color:var(--jade)}
.relation-chip.clash,.relation-chip.harm,.relation-chip.break,.relation-chip.punish,.relation-chip.control,.relation-chip.controlled{border-color:color-mix(in srgb,var(--gold) 38%,var(--line));background:var(--gold-wash);color:var(--gold-deep)}
.relation-empty{color:var(--faint);font-size:10px;line-height:1.6}
.flow-month-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-top:12px}
.flow-month-card{
  min-width:0;min-height:72px;padding:8px 4px;border:1px solid var(--line);border-radius:10px;
  background:var(--paper-strong);color:var(--ink-soft);text-align:center;cursor:pointer;
}
.flow-month-card:hover,.flow-month-card:focus-visible{border-color:var(--sky);background:var(--sky-wash)}
.flow-month-card.selected{border-color:var(--jade);background:var(--jade-wash);box-shadow:0 0 0 2px color-mix(in srgb,var(--jade) 10%,transparent)}
.flow-month-card b{display:block;color:var(--ink);font-family:var(--serif);font-size:14px;letter-spacing:1px}
.flow-month-card span{display:block;margin-top:3px;color:var(--dim);font-size:9px}
.flow-month-card small{display:block;margin-top:3px;color:var(--faint);font-size:8px;line-height:1.3}
.flow-month-card.is-boundary small{color:var(--gold-deep);font-weight:600}
.flow-month-relations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}
.relation-layer{min-width:0;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--paper-subtle)}
.relation-layer h6{margin:0 0 7px;color:var(--ink);font-size:10.5px;letter-spacing:.5px}
.relation-layer h6 small{display:block;margin-top:2px;color:var(--faint);font-size:8.5px;font-weight:400;letter-spacing:0}
.relation-layer .relation-chip{display:block;width:max-content;max-width:100%;margin-top:5px;overflow-wrap:anywhere;white-space:normal}
.annual-linkage-note{margin-top:9px;color:var(--faint);font-size:9px;line-height:1.6}
.report-export-chart .annual-linkage{display:none!important}

/* 历史搜索、星标、分组、导出 */
.history-tools{margin-bottom:11px}
.history-search{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:var(--paper-subtle)}
.history-search>span{color:var(--gold-deep);font-size:10px;font-weight:600;letter-spacing:1px}
.history-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:12px}
.history-search input::placeholder{color:var(--faint)}
.history-filters{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:6px;margin-top:8px}
.history-filters button,.history-filters select{min-height:36px;padding:6px 9px;border:1px solid var(--line);border-radius:9px;background:var(--paper-strong);color:var(--dim);font-size:10.5px}
.history-filters button{cursor:pointer}
.history-filters button.active{border-color:var(--jade);background:var(--jade-wash);color:var(--jade);font-weight:600}
.history-count{min-height:16px;margin-top:6px;color:var(--faint);font-size:9.5px;text-align:right}
.history-item{grid-template-columns:42px minmax(0,1fr) auto}
.history-star-btn{align-self:stretch;border:0;border-right:1px solid var(--line);background:transparent;color:var(--faint);font-size:20px;cursor:pointer}
.history-star-btn[aria-pressed="true"]{color:var(--gold-deep);background:var(--gold-wash)}
.history-open-btn{padding-left:11px}
.history-item-meta{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;padding:7px 9px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--paper-subtle) 76%,transparent)}
.history-item-meta span{color:var(--faint);font-size:9.5px}
.history-group-input{min-width:0;width:100%;height:30px;padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:var(--paper-strong);color:var(--ink-soft);font-size:10.5px}
.history-drawer-actions{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:11px}
.history-drawer-actions button{min-height:44px}

html[data-theme="dark"] .task-center-btn{color:var(--dim);background:transparent}
html[data-theme="dark"] .task-card,html[data-theme="dark"] .relation-layer{border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .task-status-pill,html[data-theme="dark"] .dayun-year-card.selected,
html[data-theme="dark"] .flow-month-card.selected{background:var(--surface-jade)}
html[data-theme="dark"] .dyr-select{border-bottom-color:var(--line)}
html[data-theme="dark"] .flow-month-card,html[data-theme="dark"] .relation-chip,
html[data-theme="dark"] .history-search,html[data-theme="dark"] .history-filters button,
html[data-theme="dark"] .history-filters select,html[data-theme="dark"] .history-group-input{border-color:var(--line);background:var(--surface-control);color:var(--ink)}
html[data-theme="dark"] .history-item-meta{border-top-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .history-star-btn{border-right-color:var(--line)}
html[data-theme="dark"] .history-star-btn[aria-pressed="true"]{background:var(--surface-gold);color:var(--gold-bright)}

@media(max-width:560px){
  .task-center-btn{min-height:44px;padding:4px 9px;border:1px solid var(--line);border-radius:999px;background:rgba(251,248,241,.66);color:var(--ink);font-size:12px;font-weight:600}
  .task-center-btn.is-running::before{display:none}
  .flow-month-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .flow-month-relations{grid-template-columns:1fr}
  .annual-linkage-head{display:block}
  .annual-linkage-head>small{display:block;max-width:none;margin-top:4px;text-align:left}
  .history-item{grid-template-columns:38px minmax(0,1fr) auto}
  .history-item-actions{gap:4px;margin-right:7px}
  .history-followup-btn,.history-delete-btn{min-width:48px;padding-inline:7px}
  html[data-theme="dark"] .task-center-btn{color:var(--ink);border-color:var(--line);background:var(--surface-control)}
}
@media(max-width:380px){
  .theme-switch button{min-width:34px}
  .history-btn,.task-center-btn{padding-inline:8px}
}

/* ============================================================
   解读分段操作 · 正文按语义章节，追问按整条回答
   ============================================================ */
.reading-section,.reading-section-body{min-width:0;max-width:100%}
.reading-section-body>:first-child{margin-top:0}
.content-action-bar{
  display:flex;align-items:center;justify-content:flex-end;gap:5px;
  margin:8px 0 30px;padding:11px 0 17px;border-top:1px solid var(--line);
  font-family:var(--sans);font-size:11px;letter-spacing:.2px;
}
.reading-section:last-child>.content-action-bar{margin-bottom:0;padding-bottom:2px}
.content-action-button{
  min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;
  border:1px solid transparent;border-radius:999px;background:transparent;color:var(--faint);
  font:600 11px/1.2 var(--sans);letter-spacing:.25px;cursor:pointer;
  transition:color .18s ease,border-color .18s ease,background .18s ease,transform .18s ease,opacity .18s ease;
}
.content-action-button svg{
  width:16px;height:16px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.65;
  stroke-linecap:round;stroke-linejoin:round;
}
.content-action-label{display:inline-flex;align-items:center;gap:2px;white-space:nowrap}
.content-action-button:hover{
  color:var(--gold-deep);border-color:var(--line);background:var(--gold-wash);transform:translateY(-1px);
}
.content-action-button:focus-visible{
  outline:0;color:var(--gold-deep);border-color:var(--gold);background:var(--gold-wash);box-shadow:var(--focus-ring);
}
.content-action-button:disabled{opacity:.5;cursor:wait;transform:none}
.content-action-button.is-success{color:var(--jade);border-color:color-mix(in srgb,var(--jade) 28%,var(--line));background:var(--jade-wash)}
.followup-message.assistant .content-action-bar{
  width:100%;margin:0;padding:1px 3px 0;border-top:0;justify-content:flex-start;
}
.followup-message.assistant .content-action-button{min-height:34px;padding:6px 8px;font-size:10.5px}

html[data-theme="dark"] .content-action-button:hover,
html[data-theme="dark"] .content-action-button:focus-visible{
  color:var(--gold-bright);border-color:var(--line-strong);background:var(--surface-gold);
}
html[data-theme="dark"] .content-action-button.is-success{
  color:var(--jade);border-color:rgba(127,180,158,.3);background:var(--surface-jade);
}

@media(max-width:560px){
  .content-action-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:6px;padding-top:10px}
  .content-action-button{width:100%;min-height:44px;padding:8px 5px;border-color:var(--line);background:var(--paper-subtle);font-size:11px}
  .content-action-suffix{display:none}
  .followup-message.assistant .content-action-bar{padding:1px 0 0;gap:5px}
  .followup-message.assistant .content-action-button{min-height:42px;padding-inline:4px}
  html[data-theme="dark"] .content-action-button{border-color:var(--line);background:var(--surface-control)}
}

@media print{
  .content-action-bar{display:none!important}
}

/* ============================================================
   出生年月日选择器 · 日期与时间合并为一个连续录入区
   ============================================================ */
.birth-datetime-field{
  padding:2px 0 0;border:0;border-radius:0;background:transparent;
}
.birth-datetime-field>.time-mode-seg{margin-top:13px}
#baziForm .time-mode-seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
#baziForm .time-mode-seg button{min-width:0;min-height:44px;padding-inline:6px}
.calendar-date-field .calendar-picker-trigger{
  min-height:46px;height:46px;padding:0 10px 0 11px;gap:6px;border-radius:11px;
}
.calendar-date-field .calendar-picker-trigger .picker-trigger-mark,
.calendar-date-field .calendar-picker-trigger .picker-trigger-meta{display:none}
.calendar-date-field .calendar-picker-trigger .picker-trigger-copy{display:block;min-width:0}
.calendar-date-field .calendar-picker-trigger .picker-trigger-value{
  display:block;overflow:hidden;color:var(--ink);font-size:15px;font-weight:500;line-height:1.45;
  text-overflow:ellipsis;white-space:nowrap;
}
.calendar-date-field .calendar-picker-trigger .picker-trigger-value.is-placeholder{
  color:var(--dim);font-weight:500;
}
.calendar-date-field .calendar-picker-trigger .picker-trigger-arrow{font-size:19px}

.calendar-picker-surface{width:min(540px,100%)}
.calendar-picker-summary{
  position:relative;min-height:40px;margin:0 0 13px;padding:9px 12px 9px 39px;
  border:1px solid rgba(65,104,70,.18);border-radius:11px;background:var(--jade-wash);
  color:var(--jade);font-size:12px;font-weight:500;line-height:1.7;
}
.calendar-picker-summary::before{
  content:'历';position:absolute;left:11px;top:10px;width:20px;height:20px;display:grid;place-items:center;
  border-radius:50%;background:rgba(65,104,70,.11);font-family:var(--serif);font-size:9px;font-weight:700;
}
.calendar-picker-tabs{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:12px;padding:4px;
  border:1px solid var(--line);border-radius:13px;background:var(--paper-subtle);
}
.calendar-picker-tab{
  min-width:0;min-height:48px;display:grid;grid-template-columns:27px minmax(0,1fr);grid-template-rows:auto auto;
  column-gap:8px;padding:7px 10px;border:1px solid transparent;border-radius:9px;background:transparent;
  color:var(--faint);text-align:left;cursor:pointer;transition:border-color .18s,background .18s,color .18s;
}
.calendar-picker-tab>span{
  grid-row:1/3;width:27px;height:27px;align-self:center;display:grid;place-items:center;
  border:1px solid var(--line-strong);border-radius:50%;font-size:10px;color:inherit;
}
.calendar-picker-tab b{align-self:end;font-size:12px;font-weight:600;line-height:1.25;color:inherit}
.calendar-picker-tab small{
  overflow:hidden;color:var(--faint);font-size:9px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap;
}
.calendar-picker-tab:hover,.calendar-picker-tab:focus-visible{
  color:var(--ink);border-color:var(--line);background:var(--paper-strong);box-shadow:none;
}
.calendar-picker-tab.active{
  color:var(--jade);border-color:rgba(65,104,70,.22);background:var(--jade-wash);
}
.calendar-picker-tab.active>span{border-color:rgba(65,104,70,.34);background:rgba(255,253,248,.5)}
.calendar-picker-tab.active small{color:var(--jade)}
.calendar-picker-tab:disabled{opacity:.64;cursor:not-allowed}
.calendar-picker-tab:disabled:hover{color:var(--faint);border-color:transparent;background:transparent}

.calendar-picker-options{
  min-height:0;max-height:min(430px,54vh);max-height:min(430px,54dvh);overflow-y:auto;overscroll-behavior:contain;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;align-content:start;
  padding:2px 3px 5px 1px;scrollbar-width:thin;scrollbar-color:rgba(154,116,58,.28) transparent;
}
.calendar-picker-options.is-year{grid-template-columns:repeat(4,minmax(0,1fr))}
.calendar-picker-options.is-month{grid-template-columns:repeat(3,minmax(0,1fr))}
.calendar-picker-options::-webkit-scrollbar{width:5px}
.calendar-picker-options::-webkit-scrollbar-thumb{border-radius:6px;background:rgba(154,116,58,.25)}
.calendar-picker-option{
  position:relative;min-width:0;min-height:49px;padding:8px 22px 8px 6px;border:1px solid var(--line);border-radius:11px;
  background:var(--paper-strong);color:var(--ink-soft);font:600 13px/1.35 var(--sans);
  text-align:center;cursor:pointer;transition:border-color .18s,background .18s,color .18s,transform .18s,box-shadow .18s;
}
.calendar-picker-option:hover,.calendar-picker-option:focus-visible{
  outline:none;color:var(--ink);border-color:var(--sky);background:var(--sky-wash);
  box-shadow:var(--focus-ring);transform:translateY(-1px);
}
.calendar-picker-option.is-selected{
  color:var(--jade);border-color:rgba(65,104,70,.5);background:var(--jade-wash);
  box-shadow:inset 0 0 0 1px rgba(65,104,70,.08);
}
.calendar-picker-option i{
  position:absolute;right:6px;top:6px;width:14px;height:14px;display:grid;place-items:center;
  border-radius:50%;background:var(--jade);font-style:normal;
  opacity:0;transform:scale(.7);transition:opacity .18s,transform .18s;
}
.calendar-picker-option i::before{
  content:'';width:5px;height:3px;margin-top:-1px;border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;
  transform:rotate(-45deg);
}
.calendar-picker-option.is-selected i{opacity:1;transform:none}

html[data-theme="dark"] .calendar-picker-summary{
  color:var(--jade);border-color:rgba(127,180,158,.22);background:var(--surface-jade);
}
html[data-theme="dark"] .calendar-picker-summary::before{background:rgba(127,180,158,.14)}
html[data-theme="dark"] .calendar-picker-tabs{border-color:var(--line);background:var(--surface-control)}
html[data-theme="dark"] .calendar-picker-tab{color:var(--faint)}
html[data-theme="dark"] .calendar-picker-tab>span{border-color:var(--line-strong)}
html[data-theme="dark"] .calendar-picker-tab:hover,
html[data-theme="dark"] .calendar-picker-tab:focus-visible{
  color:var(--gold-bright);border-color:var(--line-strong);background:var(--surface-hover);
}
html[data-theme="dark"] .calendar-picker-tab.active{
  color:var(--jade);border-color:rgba(127,180,158,.28);background:var(--surface-jade);
}
html[data-theme="dark"] .calendar-picker-tab.active>span{
  border-color:rgba(127,180,158,.34);background:rgba(127,180,158,.08);
}
html[data-theme="dark"] .calendar-picker-tab.active small{color:var(--jade)}
html[data-theme="dark"] .calendar-picker-option{
  color:var(--ink-soft);border-color:var(--line);background:var(--surface-control);
}
html[data-theme="dark"] .calendar-picker-option:hover,
html[data-theme="dark"] .calendar-picker-option:focus-visible{
  color:var(--gold-bright);border-color:var(--gold);background:var(--surface-hover);box-shadow:var(--focus-ring);
}
html[data-theme="dark"] .calendar-picker-option.is-selected{
  color:var(--jade);border-color:rgba(127,180,158,.38);background:var(--surface-jade);
  box-shadow:inset 0 0 0 1px rgba(127,180,158,.06);
}

@media(max-width:560px){
  .calendar-picker-surface{max-height:88vh;max-height:88dvh;max-height:var(--tianji-visual-viewport-88-height,88dvh)}
  .calendar-picker-summary{margin-bottom:10px}
  .calendar-picker-tabs{margin-bottom:10px}
  .calendar-picker-options{max-height:48vh;max-height:48dvh;gap:6px}
  .calendar-picker-options.is-year{grid-template-columns:repeat(3,minmax(0,1fr))}
  .calendar-picker-options.is-month{grid-template-columns:repeat(3,minmax(0,1fr))}
  .calendar-picker-option{min-height:48px;padding:7px 20px 7px 4px;font-size:12.5px}
}
@media(max-width:380px){
  .birth-datetime-field .grid3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .birth-datetime-field .grid3>div:first-child{grid-column:1/-1}
  .calendar-date-field .calendar-picker-trigger{padding-inline:8px;gap:3px}
  .calendar-date-field .calendar-picker-trigger .picker-trigger-value{font-size:14px}
  .calendar-date-field .calendar-picker-trigger .picker-trigger-arrow{font-size:17px}
  .calendar-picker-tab{min-height:44px;display:flex;align-items:center;justify-content:center;padding-inline:5px;column-gap:5px;text-align:center}
  .calendar-picker-tab>span{width:23px;height:23px;flex:0 0 23px}
  .calendar-picker-tab small{display:none}
  .calendar-picker-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
  .calendar-picker-options.is-year{grid-template-columns:repeat(3,minmax(0,1fr))}
  .calendar-picker-option{min-height:46px;padding-right:18px;font-size:12px}
  .calendar-picker-option i{right:5px;top:5px;width:13px;height:13px}
}

@media(max-width:340px){
  .birth-confirm-actions{grid-template-columns:1fr}
  .birth-confirm-actions .birth-confirm-back{order:2}
}

/* ============================================================
   移动端交互兼容：统一触摸反馈，避免 WebView 吞掉首次点击
   ============================================================ */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
:where(button,a,summary,label,[role="button"],[role="option"]){
  -webkit-tap-highlight-color:transparent;
}
:where(button,a,summary,[role="button"],[role="option"]){touch-action:manipulation}
button{-webkit-appearance:none;appearance:none}

.seg button:active{background:var(--paper-strong);color:var(--ink)}
.seg button.active:active{background:var(--jade-wash);color:var(--jade)}
.picker-trigger:active:not(:disabled){
  border-color:var(--sky);background:var(--sky-wash);transform:scale(.995);
}
html[data-theme="dark"] .seg button:active{background:var(--surface-hover);color:var(--ink)}
html[data-theme="dark"] .seg button.active:active{background:var(--surface-jade);color:var(--jade)}
html[data-theme="dark"] .picker-trigger:active:not(:disabled){
  border-color:var(--gold);background:var(--surface-hover);
}

@media(hover:none),(pointer:coarse){
  .picker-trigger:not([aria-expanded="true"]):hover{
    border-color:var(--line-strong);background:rgba(255,253,248,.9);
  }
  html[data-theme="dark"] .picker-trigger:not([aria-expanded="true"]):hover{
    border-color:var(--line);background:var(--surface-control);
  }
  .seg button:not(.active):hover{color:var(--dim);background:transparent}
  html[data-theme="dark"] .seg button:not(.active):hover{color:var(--dim);background:transparent}
}

@media(max-width:640px){
  #baziForm input[type="text"],
  #baziForm input[type="number"],
  #baziForm select,
  #visionForm input[type="text"],
  #locationCountyInput,
  .dialog-search input[type="search"],
  .history-search input,
  .history-group-input,
  .followup-form textarea,
  .reading-question-fields textarea,
  .reading-period-grid input{font-size:16px}
}

/* 历法切换：主名称优先，别名仅作辅助，窄栏不再被括号文案撑成两行。 */
.birth-calendar-field{container-name:birth-calendar;container-type:inline-size}
#calSeg{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;
  padding:4px;border-radius:13px;
}
#calSeg button{
  min-width:0;min-height:44px;padding:9px 10px;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  overflow:hidden;white-space:nowrap;word-break:keep-all;
  line-height:20px;font-weight:500;
}
.calendar-seg-main{flex:0 0 auto;font-size:14px;font-weight:600;letter-spacing:.2px}
.calendar-seg-alias{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;
  color:var(--faint);font-size:11px;font-weight:500;letter-spacing:.2px;
}
.calendar-seg-alias::before{
  content:'';width:3px;height:3px;flex:0 0 3px;border-radius:50%;background:currentColor;opacity:.72;
}
#calSeg button.active{font-weight:600;box-shadow:0 1px 2px rgba(65,54,39,.05)}
#calSeg button.active .calendar-seg-alias{color:color-mix(in srgb,var(--jade) 76%,var(--dim))}
html[data-theme="dark"] #calSeg button.active .calendar-seg-alias{color:#b8c9cb}

@container birth-calendar (max-width:250px){
  #calSeg .calendar-seg-alias{display:none}
}

/* ---------- 强制邮箱账号门禁与云同步 ---------- */
html[data-account-gate="checking"],html[data-account-gate="required"]{scroll-behavior:auto}
html[data-account-gate="checking"] body,html[data-account-gate="required"] body{overflow:hidden}
html[data-account-gate="checking"] .site-header,
html[data-account-gate="checking"] main.layout,
html[data-account-gate="checking"] #pageJumpNav,
html[data-account-gate="checking"] .site-footer,
html[data-account-gate="required"] .site-header,
html[data-account-gate="required"] main.layout,
html[data-account-gate="required"] #pageJumpNav,
html[data-account-gate="required"] .site-footer{
  visibility:hidden;pointer-events:none;user-select:none
}
.account-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.account-btn[hidden]{display:none!important}
.account-btn[data-signed-in="true"]{color:var(--jade);border-color:rgba(72,125,99,.34);background:var(--surface-jade)}
.account-quota-badge{min-width:27px;padding:2px 6px;border-radius:999px;background:var(--jade);color:#fff;font:700 9px/1.5 var(--sans);letter-spacing:.1px;text-align:center;white-space:nowrap}
.account-dialog{z-index:120}
.account-dialog .app-dialog-mask{background:rgba(33,29,23,.58);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.account-dialog-surface{width:min(600px,calc(100vw - 28px));overflow-y:auto;overscroll-behavior:contain}
.account-state{display:grid;gap:13px;margin-top:18px}
.account-gate-message{grid-template-columns:44px minmax(0,1fr);align-items:center;padding:17px;border:1px solid var(--line);border-radius:15px;background:var(--surface-control)}
.account-gate-message>div{min-width:0}
.account-gate-message b{display:block;color:var(--ink);font:700 13px/1.5 var(--serif);letter-spacing:.5px}
.account-gate-message p{margin:4px 0 0;color:var(--dim);font-size:10.5px;line-height:1.75}
.account-gate-message .account-actions-row{grid-column:1/-1;justify-content:flex-end}
.account-gate-message.is-error{border-color:rgba(182,66,58,.24);background:rgba(182,66,58,.06)}
.account-gate-message.is-error b{color:var(--danger)}
.account-gate-orbit{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(154,116,58,.28);border-radius:50%;background:var(--surface-gold);color:var(--gold-deep);font:700 17px/1 var(--serif);box-shadow:0 0 0 6px rgba(154,116,58,.04)}
#accountGateChecking .account-gate-orbit{animation:account-gate-breathe 1.8s ease-in-out infinite}
@keyframes account-gate-breathe{50%{transform:scale(1.07);box-shadow:0 0 0 9px rgba(154,116,58,.055)}}
.account-auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:4px;border:1px solid var(--line);border-radius:13px;background:var(--paper-subtle)}
.account-auth-tabs button{min-height:43px;padding:9px 10px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--dim);cursor:pointer;font:600 12px/1.45 var(--sans);transition:.2s}
.account-auth-tabs button:hover{color:var(--ink)}
.account-auth-tabs button.active{border-color:rgba(154,116,58,.25);background:var(--paper-strong);color:var(--gold-deep);box-shadow:0 3px 12px rgba(76,61,38,.07)}
.account-auth-fields{display:grid;gap:13px}
.account-channel-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface-control)}
.account-channel-tabs[hidden]{display:none}
.account-channel-tabs button{min-height:38px;padding:8px 12px;border:0;border-radius:9px;background:transparent;color:var(--dim);cursor:pointer;font:600 11.5px/1.4 var(--sans)}
.account-channel-tabs button:hover,.account-channel-tabs button:focus-visible{outline:none;color:var(--ink);background:var(--paper-subtle)}
.account-channel-tabs button.active{color:var(--ink);background:var(--paper-strong);box-shadow:0 3px 12px rgba(65,54,39,.08)}
.account-identity-fields{display:grid;gap:13px}
.account-mode-hint{display:flex;flex-direction:column;gap:2px;margin:0;padding:11px 13px;border-left:3px solid var(--gold);border-radius:2px 10px 10px 2px;background:var(--surface-gold)}
.account-mode-hint b{color:var(--gold-deep);font:700 11.5px/1.5 var(--sans)}
.account-mode-hint span{color:var(--dim);font-size:10.5px;line-height:1.7}
.account-invite-notice{display:flex;flex-direction:column;gap:3px;margin:0;padding:12px 14px;border:1px solid rgba(72,125,99,.22);border-radius:12px;background:var(--surface-jade)}
.account-invite-notice[hidden]{display:none}
.account-invite-notice b{color:var(--jade);font:700 12px/1.5 var(--sans)}
.account-invite-notice span{color:var(--dim);font-size:10.5px;line-height:1.7}
.account-field{display:grid;gap:7px}
.account-field[hidden]{display:none}
.account-field>span{color:var(--dim);font:600 11px/1.4 var(--sans);letter-spacing:.6px}
.account-field input{width:100%;min-height:44px;padding:10px 13px;border:1px solid var(--line);border-radius:11px;color:var(--ink);background:var(--surface-control);font:500 14px/1.4 var(--sans);outline:none}
.account-field input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(154,116,58,.12)}
.account-phone-shell{position:relative;min-width:0}
.account-phone-shell>b{position:absolute;z-index:1;left:18px;top:50%;transform:translateY(-50%);color:var(--dim);font:700 13px/1 var(--sans);pointer-events:none}
.account-phone-shell>input{padding-left:64px!important}
.account-hint{margin:0;color:var(--faint);font-size:10.5px;line-height:1.75}
.account-password-login,.account-code-row{display:grid;gap:11px;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--paper-subtle)}
.account-password-setup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.account-password-hint{grid-column:1/-1}
.account-field small{color:var(--faint);font-size:9px;font-weight:500;letter-spacing:0}
.account-auth-alternatives{flex-wrap:wrap}
.account-text-btn{min-height:38px;padding:7px 11px;font-size:10.5px}
.account-actions-row{display:flex;align-items:center;gap:9px}
.account-actions-wrap{flex-wrap:wrap}
.account-identity{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-control)}
.account-identity span{color:var(--faint);font-size:10px;letter-spacing:.7px}
.account-identity b{min-width:0;overflow-wrap:anywhere;color:var(--ink);font:600 13px/1.5 var(--sans)}
.account-quota-card,.account-invite-card{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-control)}
.account-profiles-card{display:grid;gap:11px;padding:14px;border:1px solid rgba(65,104,70,.24);border-radius:14px;background:linear-gradient(135deg,var(--surface-jade),var(--paper-subtle))}
.account-profiles-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.account-profiles-heading>div{display:grid;gap:2px}
.account-profiles-heading span{color:var(--faint);font:600 10px/1.5 var(--sans);letter-spacing:.7px}
.account-profiles-heading b{color:var(--jade);font:700 15px/1.4 var(--serif)}
.account-profiles-heading i{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--jade);color:#fff;font:700 15px/1 var(--serif);font-style:normal}
.account-profiles-card>p{margin:0;color:var(--dim);font-size:10.5px;line-height:1.75}
.account-daily-profile{display:grid;gap:3px;padding:10px 12px;border:1px solid rgba(154,116,58,.22);border-radius:11px;background:var(--surface-gold)}
.account-daily-profile[hidden]{display:none}
.account-daily-profile span{color:var(--gold-deep);font:600 9.5px/1.4 var(--sans);letter-spacing:.5px}
.account-daily-profile b{color:var(--ink);font:700 12px/1.5 var(--serif)}
.account-daily-profile p{margin:0;color:var(--dim);font-size:10px;line-height:1.7}
.account-profile-list{display:grid;gap:7px}
.account-profile-empty{margin:0;padding:10px 11px;border:1px dashed rgba(65,104,70,.25);border-radius:10px;color:var(--faint);font-size:10.5px;line-height:1.7}
.account-profile-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:rgba(255,253,248,.58)}
.account-profile-row>div:first-child{min-width:0;display:grid;gap:2px}
.account-profile-row b{overflow:hidden;color:var(--ink);font:700 12px/1.45 var(--sans);text-overflow:ellipsis;white-space:nowrap}
.account-profile-row small{color:var(--faint);font-size:9.5px;line-height:1.4}
.account-profile-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.account-profile-actions .ghost-btn{min-height:29px;padding:5px 7px;font-size:9.5px}
.account-profile-default{padding:4px 6px;border-radius:999px;background:rgba(65,104,70,.13);color:var(--jade);font:700 9px/1.3 var(--sans);font-style:normal}
.account-profile-save-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.account-profile-save-actions .ghost-btn{min-height:42px;padding:9px 12px;white-space:nowrap}
.account-quota-card>div{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.account-quota-card>div>span,.account-invite-heading span{color:var(--faint);font:600 10px/1.5 var(--sans);letter-spacing:.7px}
.account-quota-card>div>b{color:var(--jade);font:700 24px/1.15 var(--serif)}
.account-quota-card>p,.account-invite-card>p{margin:7px 0 0;color:var(--dim);font-size:10.5px;line-height:1.75}
.account-recharge-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;margin-top:10px;padding:7px 12px;border:1px solid var(--gold);border-radius:999px;color:#fff;background:var(--gold-fill);font-size:10px;font-weight:700;text-decoration:none}
.account-invite-card{display:grid;gap:11px;border-color:rgba(154,116,58,.23);background:linear-gradient(135deg,var(--surface-gold),var(--paper-subtle));outline:none}
.account-invite-card[hidden]{display:none}
.account-invite-card:focus-visible{box-shadow:0 0 0 3px rgba(154,116,58,.16)}
.account-invite-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.account-invite-heading>div{display:grid;gap:2px}
.account-invite-heading b{color:var(--gold-deep);font:700 15px/1.4 var(--serif)}
.account-invite-heading i{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--gold-deep);color:#fff;font:700 13px/1 var(--sans);font-style:normal;box-shadow:0 6px 16px rgba(109,78,28,.18)}
.account-invite-link{display:grid;gap:6px}
.account-invite-link>span{color:var(--faint);font:600 9.5px/1.4 var(--sans);letter-spacing:.5px}
.account-invite-link input{width:100%;min-height:40px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--paper-strong);color:var(--dim);font:500 11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;outline:none}
.account-invite-link input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(154,116,58,.1)}
.account-sync-disclosure{padding:13px 14px;border:1px solid rgba(154,116,58,.23);border-radius:12px;background:var(--surface-gold)}
.account-sync-disclosure>b{display:block;color:var(--gold-deep);font:700 12px/1.5 var(--sans)}
.account-sync-disclosure>p{margin:5px 0 0;color:var(--dim);font-size:10.5px;line-height:1.8}
.account-sync-status{min-height:20px;margin:15px 0 0;color:var(--dim);font-size:11px;line-height:1.65}
.account-sync-status[data-state="success"]{color:var(--jade)}
.account-sync-status[data-state="error"]{color:var(--danger)}
.account-sync-status[data-state="busy"]{color:var(--gold-deep)}
.account-login-success{justify-items:center;text-align:center;padding:17px 0 4px}
.account-login-success-mark{
  width:72px;height:72px;display:grid;place-items:center;border:1px solid rgba(65,104,70,.28);border-radius:50%;
  background:var(--surface-jade);color:var(--jade);font:800 35px/1 var(--sans);box-shadow:0 0 0 10px rgba(65,104,70,.055)
}
.account-login-success-copy{display:grid;gap:7px;margin-top:22px}
.account-login-success-copy b{color:var(--ink);font:700 20px/1.4 var(--sans)}
.account-login-success-copy p{margin:0;color:var(--dim);font-size:12px;line-height:1.75}
.account-login-success .dialog-primary-btn{width:100%;min-height:48px;margin-top:22px;border-radius:999px}
.account-login-success-progress{width:100%;height:3px;margin-top:14px;overflow:hidden;border-radius:999px;background:var(--line)}
.account-login-success-progress i{display:block;width:100%;height:100%;transform-origin:left;background:var(--jade);animation:account-login-redirect 1.2s linear forwards}
@keyframes account-login-redirect{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.account-dialog[data-view="success"] .account-dialog-surface{width:min(460px,calc(100vw - 32px));padding:34px 38px 30px}
.account-dialog[data-view="success"] .app-dialog-head{justify-content:center;text-align:center}
.account-dialog[data-view="success"] .dialog-kicker{color:var(--jade)}
.account-dialog[data-view="success"] .dialog-lead{text-align:center}
html[data-theme="dark"] .account-btn[data-signed-in="true"]{color:var(--jade);border-color:rgba(127,180,158,.3);background:var(--surface-jade)}
html[data-theme="dark"] .account-sync-disclosure>b{color:var(--gold-bright)}
html[data-theme="dark"] .account-auth-tabs button.active,html[data-theme="dark"] .account-mode-hint b{color:var(--gold-bright)}
html[data-theme="dark"] .account-channel-tabs button.active{background:var(--surface-control)}
html[data-theme="dark"] .account-invite-heading b{color:var(--gold-bright)}
html[data-theme="dark"] .account-profiles-card{border-color:rgba(127,180,158,.25);background:linear-gradient(135deg,var(--surface-jade),var(--surface-control))}
html[data-theme="dark"] .account-profile-row{background:var(--surface-control)}
@media(max-width:620px){
  html[data-account-gate="checking"] .account-dialog,html[data-account-gate="required"] .account-dialog{place-items:center;padding:12px}
  html[data-account-gate="checking"] .account-dialog-surface,html[data-account-gate="required"] .account-dialog-surface{
    width:min(600px,100%);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:20px 16px;
    border:1px solid var(--line-strong);border-radius:22px;transform:translateY(14px) scale(.985)
  }
  html[data-account-gate="checking"] .account-dialog.is-open .account-dialog-surface,html[data-account-gate="required"] .account-dialog.is-open .account-dialog-surface{transform:none}
  .account-btn span{display:none}
  .account-btn::before{content:'账号';font-size:11px}
  .account-quota-badge{min-width:24px;padding-inline:5px}
  .account-password-setup{grid-template-columns:1fr}
  .account-code-row .dialog-primary-btn{width:100%}
  .account-actions-wrap>*{flex:1 1 100%;justify-content:center}
  .account-invite-link input{font-size:10px}
  .account-profile-row{grid-template-columns:1fr}
  .account-profile-actions{justify-content:flex-start}
  .account-profile-save-actions{grid-template-columns:1fr}
  .account-dialog[data-view="success"] .account-dialog-surface{width:min(430px,calc(100vw - 28px));min-height:0;padding:30px 24px 25px;border:1px solid var(--line-strong);border-radius:24px}
}
@media(max-width:380px){
  .account-auth-tabs button{padding-inline:5px;font-size:11px}
  .account-gate-message{grid-template-columns:36px minmax(0,1fr);padding:13px}
  .account-gate-orbit{width:34px;height:34px;font-size:14px}
}
@media(prefers-reduced-motion:reduce){#accountGateChecking .account-gate-orbit,.account-login-success-progress i{animation:none}}


/* ---------- 参考清爽账户页的认证态 ---------- */
.policy-dialog{z-index:140}
.account-dialog[data-view="auth"] .account-dialog-surface{
  width:min(720px,calc(100vw - 40px));max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);
  padding:44px 52px 36px;border:0;border-radius:28px;background:var(--paper-strong);box-shadow:0 26px 80px rgba(65,54,39,.16);
}
.account-dialog[data-view="auth"] .dialog-glow{display:none}
.account-dialog[data-view="auth"] .app-dialog-surface::before{display:none}
.account-dialog[data-view="auth"] .app-dialog-head{margin-bottom:7px}
.account-dialog[data-view="auth"] .dialog-icon-btn{
  border:0;background:transparent;box-shadow:none;
}
.account-dialog[data-view="auth"] .dialog-icon-btn:hover,
.account-dialog[data-view="auth"] .dialog-icon-btn:focus-visible{
  outline:none;border:0;background:var(--sky-wash);box-shadow:none;
}
.account-dialog[data-view="auth"] .dialog-kicker{margin-bottom:8px;color:var(--sky);font-size:10.5px;font-weight:700;letter-spacing:2.6px}
.account-dialog[data-view="auth"] .app-dialog-head h3{
  font-family:var(--sans);font-size:clamp(28px,4vw,38px);font-weight:700;line-height:1.25;letter-spacing:-.8px;
}
.account-dialog[data-view="auth"] .dialog-lead{margin:0;color:var(--dim);font-size:14px;line-height:1.75}
.account-dialog[data-view="auth"] #accountSignedOut{gap:22px;margin-top:24px}
.account-dialog[data-view="auth"] .account-auth-tabs{
  width:max-content;max-width:100%;display:flex;grid-template-columns:none;gap:24px;padding:0;border:0;border-radius:0;background:transparent;
}
.account-dialog[data-view="auth"] .account-auth-tabs button{
  min-height:0;padding:0 0 7px;border:0;border-bottom:2px solid transparent;border-radius:0;
  color:var(--dim);background:transparent;font-size:14px;font-weight:600;line-height:1.5;box-shadow:none;
}
.account-dialog[data-view="auth"] .account-auth-tabs button:hover,
.account-dialog[data-view="auth"] .account-auth-tabs button:focus-visible{outline:none;color:var(--ink);border-bottom-color:var(--line-strong)}
.account-dialog[data-view="auth"] .account-auth-tabs button.active{
  color:var(--ink);border-color:var(--sky);background:transparent;box-shadow:none;
}
.account-dialog[data-view="auth"] .account-auth-fields{gap:17px}
.account-dialog[data-view="auth"] .account-channel-tabs{width:max-content;max-width:100%;grid-template-columns:repeat(2,minmax(92px,1fr));gap:5px;padding:4px;border:0;border-radius:14px;background:var(--sky-wash)}
.account-dialog[data-view="auth"] .account-channel-tabs button{min-height:38px;padding:8px 18px;border-radius:999px;font-size:12.5px}
.account-dialog[data-view="auth"] .account-channel-tabs button.active{color:var(--ink);background:var(--paper-strong);box-shadow:none}
.account-dialog[data-view="auth"] .account-mode-hint{
  gap:3px;padding:12px 14px;border:0;border-radius:12px;background:var(--sky-wash);
}
.account-dialog[data-view="auth"] .account-mode-hint b{color:var(--sky);font-size:12px}
.account-dialog[data-view="auth"] .account-mode-hint span{font-size:11.5px;line-height:1.65}
.account-field>label{color:var(--dim);font:600 11px/1.4 var(--sans);letter-spacing:.6px}
.account-input-shell{position:relative;min-width:0}
.account-dialog[data-view="auth"] .account-field{gap:9px}
.account-dialog[data-view="auth"] .account-field>span,
.account-dialog[data-view="auth"] .account-field>label{
  color:var(--ink);font-size:14px;font-weight:700;letter-spacing:.2px;
}
.account-dialog[data-view="auth"] .account-field input{
  min-height:56px;padding:13px 18px;border:1px solid var(--line);border-radius:15px;background:var(--paper-subtle);
  color:var(--ink);font-size:16px;font-weight:500;line-height:1.5;transition:border-color .18s,box-shadow .18s,background .18s;
}
.account-dialog[data-view="auth"] .account-input-shell input{padding-right:76px}
.account-dialog[data-view="auth"] .account-field input:hover{border-color:var(--line-strong)}
.account-dialog[data-view="auth"] .account-field input:focus{
  border-color:color-mix(in srgb,var(--sky) 52%,var(--line));background:var(--paper-strong);
  box-shadow:0 6px 18px rgba(61,117,151,.10);
}
.account-password-toggle{
  position:absolute;z-index:1;right:17px;top:50%;min-width:42px;padding:6px 3px;transform:translateY(-50%);
  border:0;border-radius:8px;background:transparent;color:var(--sky);font:600 11.5px/1.2 var(--sans);cursor:pointer;
}
.account-password-toggle:hover,.account-password-toggle:focus-visible{outline:none;background:var(--sky-wash);color:var(--ink)}
.account-dialog[data-view="auth"] .account-hint{font-size:11px;line-height:1.7}
.account-dialog[data-view="auth"] .account-password-login,
.account-dialog[data-view="auth"] .account-code-row{
  gap:16px;padding:0;border:0;border-radius:0;background:transparent;
}
.account-dialog[data-view="auth"] .account-password-setup{grid-template-columns:1fr;gap:16px}
.account-dialog[data-view="auth"] .account-auth-alternatives{gap:10px}
.account-dialog[data-view="auth"] .dialog-primary-btn{
  width:100%;min-height:56px;padding:13px 20px;border-radius:999px;font-size:14.5px;letter-spacing:.06em;
}
.account-dialog[data-view="auth"] .dialog-primary-btn:focus-visible{
  outline:none;box-shadow:0 7px 18px rgba(61,117,151,.20);
}
.account-dialog[data-view="auth"] #btnAccountRequestCode{flex:1 1 100%}
.account-dialog[data-view="auth"] #btnAccountResetPassword,
.account-dialog[data-view="auth"] #btnAccountBackToLogin{
  width:auto;min-height:34px;padding:5px 2px;border:0;background:transparent;color:var(--sky);box-shadow:none;
}
.account-dialog[data-view="auth"] #btnAccountResetPassword{margin-left:auto}
.account-dialog[data-view="auth"] #btnAccountResetPassword:hover,
.account-dialog[data-view="auth"] #btnAccountResetPassword:focus-visible,
.account-dialog[data-view="auth"] #btnAccountBackToLogin:hover,
.account-dialog[data-view="auth"] #btnAccountBackToLogin:focus-visible{outline:none;color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.account-policy-note{
  display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;padding:13px 14px;
  border:0;border-radius:14px;background:var(--paper-subtle);
}
.account-policy-mark{
  width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:var(--sky-wash);color:var(--sky);
  font-size:11px;font-weight:800;
}
.account-policy-note p{margin:0;color:var(--dim);font-size:11.5px;line-height:1.75}
.account-sync-intent{width:100%;min-height:44px;justify-content:center;border:0;background:transparent;box-shadow:none}
.account-policy-link{
  margin:0 3px;padding:0;border:0;background:transparent;color:var(--sky);font:inherit;font-weight:600;
  text-decoration:underline;text-underline-offset:3px;cursor:pointer;
}
.account-policy-link:hover,.account-policy-link:focus-visible{outline:none;color:var(--ink)}
.account-dialog[data-view="auth"] .account-sync-status{min-height:21px;margin:16px 2px 0;font-size:11.5px}
html[data-account-gate="required"] .account-dialog[data-view="auth"]{padding:24px}
html[data-account-gate="required"] .account-dialog[data-view="auth"] .app-dialog-mask{
  background:var(--canvas);backdrop-filter:none;-webkit-backdrop-filter:none;
}
html[data-account-gate="required"] .account-dialog[data-view="auth"] .account-dialog-surface{box-shadow:none}
html[data-theme="dark"] .account-dialog[data-view="auth"] .account-dialog-surface{background:var(--paper-strong);box-shadow:0 26px 80px rgba(20,21,18,.28)}
html[data-theme="dark"] .account-dialog[data-view="auth"] .account-field input{background:var(--surface-control)}
html[data-theme="dark"] .account-policy-note{background:var(--surface-control)}
html[data-theme="dark"] .account-dialog[data-view="auth"] .account-mode-hint{border-color:rgba(164,181,181,.2);background:var(--sky-wash)}

@media(max-width:620px){
  html[data-account-gate="required"] .account-dialog[data-view="auth"]{place-items:start center;padding:0}
  html[data-account-gate="required"] .account-dialog[data-view="auth"] .account-dialog-surface,
  .account-dialog[data-view="auth"] .account-dialog-surface{
    width:100%;max-height:100vh;max-height:100dvh;min-height:100vh;min-height:100dvh;
    padding:max(30px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(26px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));
    border:0;border-radius:0;overflow-y:auto;transform:translateY(10px);
  }
  .account-dialog[data-view="auth"].is-open .account-dialog-surface{transform:none}
  .account-dialog[data-view="auth"] .app-dialog-surface::before{display:none}
  .account-dialog[data-view="auth"] .app-dialog-head h3{font-size:30px}
  .account-dialog[data-view="auth"] #accountSignedOut{margin-top:20px}
  .account-dialog[data-view="auth"] .account-auth-tabs{gap:18px}
  .account-dialog[data-view="auth"] .account-channel-tabs{width:100%}
  .account-dialog[data-view="auth"] .account-field input{min-height:54px;font-size:16px}
  .account-dialog[data-view="auth"] .dialog-primary-btn{min-height:54px}
  .account-policy-note{padding:12px}
}
@media(max-width:380px){
  .account-dialog[data-view="auth"] .account-dialog-surface{
    padding-left:max(17px,env(safe-area-inset-left));padding-right:max(17px,env(safe-area-inset-right));
  }
  .account-dialog[data-view="auth"] .app-dialog-head h3{font-size:27px}
  .account-dialog[data-view="auth"] .account-auth-tabs button{padding-inline:0;font-size:12.5px}
}

/* Some Android browsers enlarge the layout viewport while the software
   keyboard is open. Keep account authentication full-bleed from the measured
   visual viewport instead of falling back to the centred dialog gutters. */
html.mobile-keyboard-open .account-dialog[data-view="auth"]{
  top:var(--tianji-visual-viewport-top,0px);right:0;bottom:auto;left:0;
  width:100%;height:var(--tianji-visual-viewport-height,100vh);
  place-items:start center;padding:0;
}
html.mobile-keyboard-open .account-dialog[data-view="auth"] .account-dialog-surface{
  width:100%;max-width:none;height:100%;min-height:100%;max-height:100%;
  padding:max(30px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(26px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));
  border:0;border-radius:0;overflow-y:auto;transform:none;
}
html.mobile-keyboard-open .account-dialog[data-view="auth"] .app-dialog-surface::before{display:none}

/* ============================================================
   八字排盘视觉精修 · 结果层级、四柱可读性与移动端安全区
   ============================================================ */
body.bazi-detail-active .layout{
  max-width:1180px;
  grid-template-columns:minmax(0,1100px);
}

#chartPanel>.meta-row{
  border-color:color-mix(in srgb,var(--sky) 14%,var(--line));
  box-shadow:0 2px 5px rgba(65,54,39,.045),0 16px 40px rgba(65,54,39,.065);
}

.pillar-cards{gap:14px}
.pillar-card{
  --pillar-accent:var(--jade);
  overflow:hidden;border-color:color-mix(in srgb,var(--pillar-accent) 17%,var(--line));
  box-shadow:0 2px 4px rgba(65,54,39,.045),0 13px 30px rgba(65,54,39,.065);
}
.pillar-card::before{
  content:'';position:absolute;inset:0 0 auto;height:4px;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--pillar-accent) 68%,transparent),transparent);
}
.pillar-card:nth-child(1){--pillar-accent:var(--metal-ink)}
.pillar-card:nth-child(2){--pillar-accent:var(--jade)}
.pillar-card:nth-child(3){--pillar-accent:var(--gold-deep)}
.pillar-card:nth-child(4){--pillar-accent:var(--fire-ink)}
.pillar-card.day::before{height:5px;background:linear-gradient(90deg,var(--gold),var(--gold-fill),var(--gold))}
.pillar-card .pc-name{margin-top:2px}
.pillar-card .pc-hidden-layer{border-radius:12px}
.pillar-card .pc-foot{letter-spacing:.2px}

.shensha-column{
  border-radius:15px;
  box-shadow:inset 0 1px rgba(255,255,255,.42),0 5px 14px rgba(65,54,39,.035);
}
.shensha-column-head{padding-bottom:9px;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
.shensha-tags{padding-top:8px}

html[data-theme="dark"] .pillar-card{box-shadow:0 12px 30px rgba(0,0,0,.13)}
html[data-theme="dark"] .shensha-column{box-shadow:inset 0 1px rgba(255,255,255,.025)}

@media(max-width:900px){
  /* 窄屏先完成录入，避免无操作价值的欢迎大图把表单拉成两屏。 */
  #welcomePanel:not([hidden]){display:none}
}

@media(max-width:560px){
  body.bazi-detail-active main.layout{margin-top:12px;padding-inline:12px;padding-bottom:42px;gap:12px}
  .meta-row{
    min-height:300px;padding:20px 16px 78px;gap:8px 12px;border-radius:18px;
    background:
      linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.95) 58%,rgba(248,246,255,.7) 78%,rgba(248,246,255,.24) 100%),
      url('assets/tech-light/bazi-meta-banner-tech-light-v2.webp') right bottom/auto 58% no-repeat;
  }
  .meta-row::before{right:18px;bottom:24px;width:68px;height:68px;font-size:36px}
  .meta-row span{font-size:11.5px;line-height:1.65}
  .meta-row b{display:block;margin:0 0 1px;font-size:10.5px;letter-spacing:.3px}
  .chart-birth-edit{left:16px;right:auto;bottom:18px;min-width:0;min-height:44px;padding:9px 12px;font-size:12px}

  .calculation-basis{border-radius:16px}
  .calculation-basis summary{padding:13px 14px;line-height:1.55}
  .calculation-basis summary small{display:block;margin:2px 0 0 18px;white-space:normal}
  .calculation-basis-list{grid-template-columns:1fr;gap:9px;padding:0 14px 15px}

  /* 四柱连排：共用外框与行高，年、月、日、时始终在同一行。 */
  #pillarCards{
    grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(5,auto);gap:0;
    overflow:hidden;border:1px solid var(--line-strong);border-radius:16px;
    background:var(--paper-strong);box-shadow:var(--shadow-card);
  }
  #pillarCards .pillar-card{
    display:grid;grid-row:span 5;grid-template-rows:minmax(48px,auto) minmax(55px,auto) minmax(156px,auto) minmax(119px,auto) auto;
    align-content:start;min-width:0;min-height:0;padding:0;border:0;border-radius:0;
    background:transparent;box-shadow:none;transform:none;
  }
  #pillarCards .pillar-card+.pillar-card{border-left:1px solid var(--line)}
  #pillarCards .pillar-card::before{display:none}
  #pillarCards .pillar-card.day{background:var(--gold-wash)}
  #pillarCards .pc-name{
    display:block;align-content:center;min-height:48px;margin:0;padding:7px 3px;
    border-bottom:1px solid var(--line);background:var(--jade-wash);
    min-width:0;font-size:12px;line-height:1.35;letter-spacing:0;white-space:normal;overflow-wrap:anywhere;
  }
  #pillarCards .pc-name-note{display:block;font-size:10px;line-height:1.35;font-weight:500}
  #pillarCards .day .pc-name{background:var(--gold-wash)}
  #pillarCards .pc-visible-layer{padding:9px 2px 0}
  #pillarCards .pc-gz{margin:0;padding:8px 2px;gap:5px;justify-content:center}
  #pillarCards .pc-gz b{font-size:32px}
  #pillarCards .pc-gz .wx-glyph{grid-template-columns:auto 18px;gap:3px}
  #pillarCards .pc-gz .wx-element{min-width:18px;padding:1px 2px;font-size:10px}
  #pillarCards .pc-zhi-layer{margin:2px 0}
  #pillarCards .pc-layer-title{font-size:11px;line-height:1.4;letter-spacing:0}
  #pillarCards .pc-layer-title small{display:none}
  #pillarCards .pc-shishen{min-height:26px;margin-top:4px;padding:2px 6px;font-size:11px;letter-spacing:0}
  #pillarCards .pc-hidden-layer{
    min-height:119px;padding:8px 2px;border:0;border-top:1px solid var(--line);
    border-radius:0;background:transparent;
  }
  #pillarCards .pc-hide{gap:2px;margin-top:6px;font-size:11px}
  #pillarCards .pc-hide-item{min-height:24px;gap:3px}
  #pillarCards .pc-hide-item b{font-size:13px}
  #pillarCards .pc-hide i,#pillarCards .pc-hide-shishen{font-size:11px}
  #pillarCards .shishen-trigger-arrow{display:none}
  #pillarCards .pc-foot{
    min-height:55px;margin:0;padding:8px 2px;border-top:1px solid var(--line);
    font-size:11px;line-height:1.7;letter-spacing:0;
  }
  @supports(grid-template-rows:subgrid){
    #pillarCards .pillar-card{grid-template-rows:subgrid}
  }

  #chartPanel>.shensha-block,#chartPanel>.wx-block,#chartPanel>.rule-evidence-block,#chartPanel>.dayun-block{
    margin-top:12px;padding:17px 14px;border-radius:17px;
  }
  #chartPanel>.shensha-block{padding-inline:14px}
  #chartPanel>.shensha-block h3,
  #chartPanel>.shensha-block .shensha-help,
  #chartPanel>.shensha-block .shensha-basis-note{margin-left:0;margin-right:0}
  .shensha-block h3,.wx-block h3,.dayun-block h3{align-items:flex-start;flex-wrap:wrap;gap:5px 8px;font-size:15px}
  .shensha-block h3 small,.dayun-block h3 small{white-space:normal;line-height:1.5}
  .shensha-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .shensha-column{padding:10px 9px 11px}
  .shensha-column-head{min-height:0;flex-direction:row;justify-content:space-between;padding:0 1px 8px;text-align:left}
  .shensha-column-head span{font-size:11px}
  .shensha-column-head b{font-size:12px}
  .shensha-tags{flex-flow:row wrap;align-items:flex-start;gap:5px;padding-top:8px}
  .shensha-tag{width:auto;min-height:31px;flex:1 1 calc(50% - 5px);padding:5px 6px;font-size:10.5px}
  .shensha-empty{padding:7px 0;font-size:10.5px;text-align:left}
  .dayun-line{grid-auto-columns:minmax(126px,42vw)}
}

@media(max-width:360px){
  .meta-row{grid-template-columns:1fr;min-height:0;padding-bottom:94px}
  .shensha-grid{gap:7px}
  .shensha-tag{flex-basis:100%}
}

/* ============================================================
   历史命盘 · 紧凑资料侧栏
   ============================================================ */
body.history-drawer-open{overflow:hidden}
body.history-drawer-open .drawer-mask{z-index:129}
body.history-drawer-open #confirmDialog{z-index:180}

#historyDrawer.history-drawer{
  top:0;right:0;width:clamp(390px,34vw,432px);max-width:calc(100vw - 24px);
  height:100vh;height:100dvh;padding:0;z-index:130;overflow:hidden;isolation:isolate;
  border-left-color:color-mix(in srgb,var(--gold) 21%,var(--line));
  background:
    radial-gradient(420px 150px at 92% -8%,color-mix(in srgb,var(--gold-wash) 66%,transparent),transparent 72%),
    linear-gradient(180deg,var(--paper-strong),var(--canvas-soft));
  box-shadow:-18px 0 58px rgba(48,39,27,.2);
}
#historyDrawer .drawer-head{
  position:relative;flex:0 0 auto;align-items:center;gap:16px;margin:0;padding:17px 18px 14px;
  border-bottom:1px solid color-mix(in srgb,var(--line) 82%,transparent);
}
.history-drawer-heading{min-width:0}
.history-drawer-kicker{
  display:block;margin-bottom:2px;color:var(--gold-deep);font-size:9px;font-weight:700;letter-spacing:2.2px;
}
#historyDrawer .drawer-head h3{
  margin:0;color:var(--ink);font-family:var(--serif);font-size:20px;line-height:1.35;font-weight:700;letter-spacing:1.4px;
}
.history-drawer-heading p{
  max-width:320px;margin:3px 0 0;overflow:hidden;color:var(--dim);font-size:10.5px;line-height:1.5;
  text-overflow:ellipsis;white-space:nowrap;
}
.history-close-btn{
  width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;margin:0;
  border:1px solid var(--line);border-radius:50%;background:color-mix(in srgb,var(--paper-strong) 82%,transparent);
  color:var(--dim);font:500 15px/1 var(--sans);cursor:pointer;
  transition:color .18s,border-color .18s,background .18s,transform .18s;
}
.history-close-btn:hover,.history-close-btn:focus-visible{
  outline:none;color:var(--ink);border-color:var(--gold);background:var(--gold-wash);transform:rotate(4deg);
}

#historyDrawer .history-tools{
  flex:0 0 auto;margin:0;padding:11px 14px 9px;
  border-bottom:1px solid color-mix(in srgb,var(--line) 68%,transparent);
  background:color-mix(in srgb,var(--paper-strong) 70%,transparent);
}
#historyDrawer .history-search{
  min-height:44px;display:flex;grid-template-columns:none;align-items:center;gap:8px;padding:0 11px;
  border:1px solid var(--line-strong);border-radius:12px;background:var(--paper-strong);
  box-shadow:inset 0 1px rgba(255,255,255,.46);
  transition:border-color .18s,box-shadow .18s,background .18s;
}
#historyDrawer .history-search:focus-within{
  border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 13%,transparent);
}
#historyDrawer .history-search-icon{
  flex:0 0 auto;color:var(--gold-deep);font:500 21px/1 var(--serif);transform:translateY(-1px);
}
#historyDrawer .history-search input{font-size:13px;line-height:1.5}
#historyDrawer .history-filters{
  display:grid;grid-template-columns:62px 62px minmax(0,1fr);gap:6px;margin-top:7px;
}
#historyDrawer .history-filters button,#historyDrawer .history-filters select{
  min-height:44px;padding:7px 9px;border-radius:10px;font-size:11px;
  transition:color .18s,border-color .18s,background .18s,box-shadow .18s;
}
#historyDrawer .history-filters button:hover,#historyDrawer .history-filters button:focus-visible,
#historyDrawer .history-filters select:focus-visible{
  outline:none;color:var(--ink);border-color:var(--line-strong);box-shadow:var(--focus-ring);
}
#historyDrawer .history-filters button.active{
  border-color:color-mix(in srgb,var(--jade) 43%,var(--line));background:var(--jade-wash);color:var(--jade);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--jade) 8%,transparent);
}
#historyDrawer .history-count{
  min-height:16px;margin:6px 2px 0;color:var(--faint);font-size:10.5px;line-height:1.5;text-align:left;
}

#historyDrawer .history-list{
  flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;
  gap:8px;padding:10px 14px 14px;scrollbar-gutter:stable;scrollbar-width:thin;
}
#historyDrawer .history-item{
  flex:0 0 auto;display:grid;grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:
    'star open actions'
    'star group group';
  align-items:start;column-gap:7px;row-gap:5px;padding:9px 9px 8px;overflow:hidden;border:1px solid var(--line);
  border-radius:14px;background:color-mix(in srgb,var(--paper-strong) 91%,transparent);
  box-shadow:0 4px 13px rgba(65,54,39,.045);
  transition:border-color .18s,background .18s,box-shadow .18s,transform .18s;
}
#historyDrawer .history-item:hover,#historyDrawer .history-item:focus-within{
  border-color:color-mix(in srgb,var(--gold) 55%,var(--line));background:var(--paper-strong);
  box-shadow:0 7px 18px rgba(65,54,39,.075);transform:translateY(-1px);
}
#historyDrawer .history-star-btn{
  grid-area:star;align-self:start;width:44px;height:44px;display:grid;place-items:center;margin:0;
  border:0;border-radius:10px;background:transparent;color:var(--faint);
  font:500 20px/1 var(--serif);cursor:pointer;
  transition:color .18s,background .18s,transform .18s;
}
#historyDrawer .history-star-btn:hover,#historyDrawer .history-star-btn:focus-visible{
  outline:none;color:var(--gold-deep);background:var(--gold-wash);transform:scale(1.03);
}
#historyDrawer .history-star-btn[aria-pressed="true"]{color:var(--gold-deep);background:var(--gold-wash)}
#historyDrawer .history-open-btn{
  grid-area:open;min-width:0;display:block;padding:1px 0 0;border:0;background:transparent;color:inherit;
  font:inherit;text-align:left;cursor:pointer;
}
#historyDrawer .history-open-btn:focus-visible{outline:none}
.history-title-row{display:flex;align-items:center;gap:6px;min-width:0}
#historyDrawer .history-item .hi-title{
  min-width:0;overflow:hidden;color:var(--ink);font-family:var(--serif);font-size:14px;line-height:1.4;
  font-weight:700;letter-spacing:.2px;text-overflow:ellipsis;white-space:nowrap;
}
.history-record-badge{
  flex:0 0 auto;padding:2px 5px;border:1px solid var(--line);border-radius:999px;
  background:var(--paper-subtle);color:var(--dim);font:600 10px/1.3 var(--sans);letter-spacing:.15px;
}
.history-record-badge[data-tone="complete"]{border-color:color-mix(in srgb,var(--jade) 30%,var(--line));background:var(--jade-wash);color:var(--jade)}
.history-record-badge[data-tone="warning"]{border-color:color-mix(in srgb,var(--gold) 38%,var(--line));background:var(--gold-wash);color:var(--gold-deep)}
.history-record-badge[data-tone="reading"]{border-color:color-mix(in srgb,var(--sky) 31%,var(--line));background:var(--sky-wash);color:var(--sky)}
#historyDrawer .history-item .hi-sub{
  display:block;overflow:hidden;margin-top:2px;color:var(--ink-soft);font-size:10.5px;line-height:1.45;
  text-overflow:ellipsis;white-space:nowrap;
}
.hi-detail{display:flex;align-items:center;overflow:hidden;gap:5px;margin-top:2px;color:var(--faint);font-size:10.5px;line-height:1.4;white-space:nowrap}
.hi-detail span{flex:0 0 auto;color:var(--dim)}
.hi-detail i{width:3px;height:3px;flex:0 0 3px;border-radius:50%;background:var(--line-strong)}
.hi-detail time{overflow:hidden;font-style:normal;text-overflow:ellipsis}
#historyDrawer .history-item-actions{
  grid-area:actions;align-self:start;display:flex;align-items:center;justify-content:flex-end;gap:3px;
  margin:-4px -4px 0 0;padding:0;border:0;background:transparent;
}
#historyDrawer .history-followup-btn,#historyDrawer .history-delete-btn{
  min-height:44px;margin:0;border-radius:10px;font-size:10.5px;letter-spacing:.1px;
}
#historyDrawer .history-followup-btn{min-width:68px;padding:0 9px;border-color:color-mix(in srgb,var(--gold) 34%,var(--line));background:var(--gold-wash);color:var(--gold-deep)}
#historyDrawer .history-delete-btn{min-width:44px;padding:0 7px;border-color:transparent;background:transparent;color:var(--faint)}
#historyDrawer .history-delete-btn:hover,#historyDrawer .history-delete-btn:focus-visible{
  border-color:color-mix(in srgb,var(--danger) 28%,var(--line));background:color-mix(in srgb,var(--danger) 7%,transparent);color:var(--danger);
}
#historyDrawer .history-item-meta{
  grid-area:group;width:min(230px,100%);display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;
  margin:0;padding:0;border:0;background:transparent;
}
#historyDrawer .history-item-meta>span{color:var(--faint);font-size:9px;font-weight:600;letter-spacing:.4px}
#historyDrawer .history-group-input{
  min-width:0;width:100%;height:28px;padding:3px 8px;border:1px solid var(--line);border-radius:8px;
  background:color-mix(in srgb,var(--paper-strong) 88%,transparent);color:var(--ink-soft);font-size:10px;
}
#historyDrawer .history-group-input:focus{outline:none;border-color:var(--gold);box-shadow:var(--focus-ring)}
#historyDrawer .history-empty{
  display:grid;place-items:center;min-height:170px;padding:28px 18px;border:1px dashed var(--line-strong);
  border-radius:14px;background:color-mix(in srgb,var(--paper-strong) 55%,transparent);color:var(--faint);
  font-size:11.5px;line-height:1.7;text-align:center;
}
#historyDrawer .history-empty::before{
  content:'册';width:40px;height:40px;display:grid;place-items:center;margin-bottom:7px;border:1px solid var(--line);
  border-radius:12px;background:var(--paper-subtle);color:var(--gold-deep);font-family:var(--serif);font-size:17px;
}
#historyDrawer .history-drawer-actions{
  flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr) auto;gap:6px;
  margin:0;padding:8px 14px calc(9px + env(safe-area-inset-bottom));border-top:1px solid var(--line);
  background:color-mix(in srgb,var(--paper-strong) 94%,transparent);
  box-shadow:0 -7px 18px rgba(65,54,39,.045);
}
#historyDrawer .history-drawer-actions button,#historyDrawer .history-all-records-link{min-height:44px;border-radius:10px;font-size:10.5px}
.history-all-records-link{
  min-width:0;display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 9px;
  border:1px solid color-mix(in srgb,var(--gold) 34%,var(--line));background:var(--gold-wash);color:var(--gold-deep);
  font-weight:700;text-align:center;text-decoration:none;white-space:nowrap;
}
.history-all-records-link span{font-family:var(--serif);font-size:12px}
.history-all-records-link:hover,.history-all-records-link:focus-visible{outline:none;border-color:var(--gold);box-shadow:var(--focus-ring)}

html[data-theme="dark"] #historyDrawer.history-drawer{
  background:
    radial-gradient(420px 150px at 92% -8%,color-mix(in srgb,var(--surface-gold) 62%,transparent),transparent 72%),
    url('paper-fibers.svg') 0 0/240px 240px repeat,
    linear-gradient(180deg,var(--surface-raised),var(--surface-panel));
  background-blend-mode:normal,soft-light,normal;border-left-color:var(--line);box-shadow:-18px 0 58px rgba(0,0,0,.4);
}
html[data-theme="dark"] #historyDrawer .history-tools,
html[data-theme="dark"] #historyDrawer .history-drawer-actions{background:color-mix(in srgb,var(--surface-raised) 92%,transparent)}
html[data-theme="dark"] #historyDrawer .history-search,
html[data-theme="dark"] #historyDrawer .history-item,
html[data-theme="dark"] #historyDrawer .history-group-input{background:var(--surface-control)}
html[data-theme="dark"] #historyDrawer .history-item:hover,
html[data-theme="dark"] #historyDrawer .history-item:focus-within{background:var(--surface-hover)}
html[data-theme="dark"] #historyDrawer .history-record-badge{background:var(--surface-control)}
html[data-theme="dark"] #historyDrawer .history-close-btn{background:var(--surface-control)}

@media(max-width:640px){
  #historyDrawer.history-drawer{
    width:100vw;max-width:none;border-left:0;box-shadow:none;
    animation:historySheetIn .22s cubic-bezier(.2,.8,.25,1);
  }
  @keyframes historySheetIn{from{opacity:.7;transform:translateY(18px)}to{opacity:1;transform:none}}
  #historyDrawer .drawer-head{gap:12px;padding:calc(12px + env(safe-area-inset-top)) 12px 10px}
  #historyDrawer .drawer-head h3{font-size:19px}
  .history-drawer-heading p{display:none}
  .history-close-btn{width:44px;height:44px;flex-basis:44px}
  #historyDrawer .history-tools{padding:9px 10px 8px}
  #historyDrawer .history-search{min-height:44px}
  #historyDrawer .history-search input{font-size:16px}
  #historyDrawer .history-filters{grid-template-columns:58px 58px minmax(0,1fr);gap:5px;margin-top:6px}
  #historyDrawer .history-filters button,#historyDrawer .history-filters select{min-height:44px;padding-inline:7px;font-size:10.5px}
  #historyDrawer .history-count{margin-top:4px}
  #historyDrawer .history-list{gap:7px;padding:8px 10px 11px;scrollbar-gutter:auto}
  #historyDrawer .history-item{padding:8px 7px 7px;border-radius:13px}
  #historyDrawer .history-item .hi-title{font-size:13.5px}
  #historyDrawer .history-item .hi-sub{font-size:10.5px}
  .hi-detail{font-size:8.8px}
  #historyDrawer .history-group-input{height:34px;font-size:16px}
  #historyDrawer .history-drawer-actions{padding:7px 10px calc(8px + env(safe-area-inset-bottom))}
}

@media(max-width:370px){
  #historyDrawer .drawer-head{padding-inline:10px}
  #historyDrawer .history-tools{padding-inline:8px}
  #historyDrawer .history-filters{grid-template-columns:54px 54px minmax(0,1fr)}
  #historyDrawer .history-list{padding-inline:8px}
  #historyDrawer .history-item{grid-template-columns:40px minmax(0,1fr) auto;column-gap:5px}
  #historyDrawer .history-star-btn{width:40px}
  #historyDrawer .history-followup-btn{min-width:62px;padding-inline:7px}
  #historyDrawer .history-delete-btn{min-width:40px;padding-inline:5px}
  #historyDrawer .history-drawer-actions{padding-inline:8px}
  #historyDrawer .history-drawer-actions button,#historyDrawer .history-all-records-link{font-size:9.5px}
  .history-record-badge{font-size:8px}
}

@media(prefers-reduced-motion:reduce){
  #historyDrawer.history-drawer{animation:none}
  #historyDrawer .history-item,#historyDrawer .history-star-btn,#historyDrawer .history-close-btn{transition:none}
}

/* ============================================================
   八字录入工作台 · 移除空欢迎栏并改为横版单列入口
   ============================================================ */
#welcomePanel{display:none!important}
main.layout{
  max-width:1320px;
  grid-template-columns:minmax(0,1fr);
}
#inputPanel{
  border:1px solid color-mix(in srgb,var(--gold) 22%,var(--line-strong));
  background:color-mix(in srgb,var(--paper-strong) 72%,transparent);
  box-shadow:var(--shadow-card),inset 0 1px 0 color-mix(in srgb,var(--paper-strong) 78%,transparent);
}
.col-left{
  position:static;
  top:auto;
}
.col-right{width:100%}

@media(min-width:901px){
  .col-left{
    max-height:none;
    overflow:visible;
    overscroll-behavior-y:auto;
    scrollbar-gutter:auto;
    scrollbar-width:auto;
  }
}

/* 排盘截图工作台：主流程收成“上传 → 补充偏好 → 提取核对”，避免临界宽度的三列拉扯。 */
#visionForm:not([hidden]){
  display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:stretch;
}
#visionForm>.vision-entry-card{
  position:relative;min-width:0;overflow:hidden;padding:20px;border:1px solid color-mix(in srgb,var(--line-strong) 54%,var(--line));border-radius:18px;
  background:rgba(255,253,248,.68);background:color-mix(in srgb,var(--paper-strong) 76%,transparent);
  box-shadow:inset 0 1px rgba(255,255,255,.46),0 8px 22px rgba(81,67,44,.035);
}
#visionForm>.vision-entry-card::before{
  content:'';position:absolute;inset:0 0 auto;height:3px;
  background:linear-gradient(90deg,var(--gold),var(--jade),transparent 88%);opacity:.58;
}
.vision-entry-heading{
  display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:11px;
  margin-bottom:17px;padding-bottom:14px;border-bottom:1px solid var(--line);
}
.vision-step-mark{
  width:36px;height:36px;display:grid;place-items:center;border:1px solid rgba(154,116,58,.28);border-radius:12px;
  background:var(--gold-wash);color:var(--gold-deep);font-size:10px;font-weight:800;letter-spacing:1px;
}
.vision-entry-heading>div{min-width:0;display:grid;gap:3px}
.vision-entry-heading b{color:var(--ink);font-size:16px;line-height:1.4;letter-spacing:.45px}
.vision-entry-heading small{color:var(--dim);font-size:11.5px;line-height:1.55}
#visionForm .field{margin-bottom:0}
#visionForm .field>label{margin-bottom:8px}
#visionForm .hint{margin-top:8px;text-align:left}
.vision-upload-card{display:flex;flex-direction:column}
.vision-upload-card .vision-upload-field{min-height:0;display:flex;flex:1;flex-direction:column}
.vision-upload-card .dropzone{
  min-height:214px;display:grid;flex:1;place-items:center;padding:26px 22px;border-radius:16px;
  border-color:color-mix(in srgb,var(--sky) 24%,var(--line-strong));
  background:color-mix(in srgb,var(--paper-subtle) 82%,var(--sky-wash));
}
.vision-upload-card .dropzone:focus-visible{
  outline:none;border-color:var(--sky);background:var(--sky-wash);box-shadow:var(--focus-ring);
}
.vision-upload-card .dz-icon{
  width:52px;height:52px;margin-bottom:13px;border:1px solid rgba(61,117,151,.16);
  background:var(--sky-wash);box-shadow:inset 0 0 0 5px color-mix(in srgb,var(--paper-strong) 38%,transparent);
}
.vision-upload-card .dz-icon svg{
  width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
}
.vision-upload-card .dz-title{color:var(--ink);font-size:14.5px;font-weight:650;letter-spacing:.2px}
.vision-upload-card .dropzone .dz-sub{max-width:34em;margin:7px auto 0;font-size:11.5px;line-height:1.7}
.vision-preferences-card{display:grid;grid-template-rows:auto auto 1fr;gap:14px}
.vision-preferences-card .vision-entry-heading{margin-bottom:0}
.vision-identity-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
#vGenderSeg{
  min-height:52px;display:grid;grid-template-columns:minmax(0,1.35fr) repeat(2,minmax(0,1fr));
  gap:3px;padding:4px;border-radius:15px;
}
#vGenderSeg button{
  min-width:0;min-height:44px;display:flex;align-items:center;justify-content:center;
  padding:8px 10px;border-radius:11px;font-size:clamp(13.5px,3.7vw,14.5px);
  font-weight:600;line-height:1;letter-spacing:.1px;white-space:nowrap;
}
#vGenderSeg button.active{
  color:var(--jade);border-color:color-mix(in srgb,var(--jade) 28%,var(--line));
  background:color-mix(in srgb,var(--jade-wash) 82%,var(--paper-strong));
  box-shadow:inset 0 1px rgba(255,255,255,.42),0 2px 6px rgba(65,104,70,.08);
}
#vGenderSeg button:focus-visible{position:relative;z-index:1}
html[data-theme="dark"] #vGenderSeg button.active{
  color:#dfeaed;border-color:rgba(160,187,194,.34);background:rgba(160,187,194,.14);
  box-shadow:inset 0 1px rgba(255,255,255,.04),0 2px 8px rgba(0,0,0,.14);
}
.vision-focus-field{align-self:end;padding-top:14px;border-top:1px solid var(--line)}
.vision-focus-field .reading-focus-options{margin-top:0}
#visionForm #visionFocusSeg{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;
}
#visionForm #visionFocusSeg button{min-width:0;min-height:44px;padding:8px 5px;white-space:nowrap}
#visionForm #visionFocusSeg button:focus-visible{outline:none;box-shadow:var(--focus-ring)}
#visionForm>.vision-submit-actions{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:15px;align-items:center;overflow:hidden;
  margin:0;padding:15px 18px;border:1px solid rgba(65,104,70,.2);border-radius:16px;
  background:rgba(221,231,215,.54);background:color-mix(in srgb,var(--jade-wash) 64%,var(--paper-strong));
  box-shadow:inset 0 1px rgba(255,255,255,.38);
}
#visionForm>.vision-submit-actions::before{
  content:'';position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(180deg,var(--jade),var(--gold));opacity:.72;
}
.vision-submit-copy{min-width:0;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px}
.vision-submit-copy>div{min-width:0;display:grid;gap:2px}
.vision-submit-mark{
  width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(65,104,70,.22);border-radius:14px;
  background:color-mix(in srgb,var(--paper-strong) 72%,var(--jade-wash));color:var(--jade);
  font-family:var(--serif);font-size:16px;font-weight:700;box-shadow:inset 0 1px rgba(255,255,255,.5);
}
.vision-submit-kicker{color:var(--jade);font-size:9.5px;font-weight:700;letter-spacing:1.6px}
.vision-submit-copy b{overflow:hidden;color:var(--ink);font-size:13.5px;line-height:1.5;letter-spacing:.3px;text-overflow:ellipsis;white-space:nowrap}
.vision-submit-copy small{color:var(--dim);font-size:10.5px;line-height:1.55}
#visionForm>.vision-submit-actions .primary-btn{
  width:100%;min-height:54px;margin:0;border-radius:14px;font-size:14px;letter-spacing:1.5px;
}
#visionForm>.vision-submit-actions .primary-btn:disabled{filter:saturate(.42);box-shadow:none}
html[data-theme="dark"] #visionForm>.vision-entry-card{
  background:var(--surface-control);border-color:var(--line);box-shadow:inset 0 1px rgba(255,255,255,.025);
}
html[data-theme="dark"] .vision-upload-card .dz-icon{border-color:var(--line);box-shadow:none}
html[data-theme="dark"] #visionForm>.vision-submit-actions{
  border-color:rgba(166,197,180,.18);background:color-mix(in srgb,var(--surface-jade) 66%,var(--surface-control));
}
html[data-theme="dark"] .vision-submit-mark{border-color:var(--line);background:var(--surface-control);box-shadow:none}

@media(min-width:901px){
  #visionForm:not([hidden]){
    grid-template-columns:minmax(300px,.82fr) minmax(400px,1.18fr);gap:20px 22px;
  }
  #visionForm>.vision-upload-card{grid-column:1;grid-row:1}
  #visionForm>.vision-preferences-card{grid-column:2;grid-row:1}
  #visionForm>.vision-submit-actions{
    grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(270px,320px);gap:24px;
  }
  #visionForm>.vision-submit-actions .primary-btn{grid-column:2;grid-row:1}
}

@media(min-width:1100px){
  #inputPanel{padding:30px 32px 32px}
  #inputPanel>.mode-tabs{
    width:min(500px,100%);margin-right:auto;margin-left:auto;
  }
}

@media(max-width:620px){
  #visionForm>.vision-entry-card{padding:17px 15px;border-radius:16px}
  .vision-entry-heading{grid-template-columns:36px minmax(0,1fr);gap:10px;margin-bottom:16px;padding-bottom:13px}
  .vision-step-mark{width:36px;height:36px;border-radius:12px}
  .vision-entry-heading b{font-size:15px}
  .vision-entry-heading small{font-size:11px}
  .vision-identity-fields{grid-template-columns:minmax(0,1fr);gap:16px}
  .vision-upload-card .dropzone{min-height:194px;padding:24px 14px}
  .vision-focus-field{padding-top:15px}
  #visionForm #visionFocusSeg{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}
  #visionForm #visionFocusSeg button{grid-column:span 2;min-height:44px;padding-inline:3px}
  #visionForm #visionFocusSeg button:nth-last-child(-n+2){grid-column:span 3}
  #visionForm>.vision-submit-actions{padding:15px}
  .vision-submit-copy{grid-template-columns:40px minmax(0,1fr);gap:10px}
  .vision-submit-mark{width:40px;height:40px;border-radius:12px;font-size:15px}
  .vision-submit-copy b{white-space:normal}
  #visionForm>.vision-submit-actions .primary-btn{min-height:52px}
}

@media(max-width:360px){
  #vGenderSeg{grid-template-columns:minmax(0,1.45fr) repeat(2,minmax(0,.9fr))}
  #vGenderSeg button{padding-inline:6px;font-size:13.5px}
}

/* ============================================================
   操作层级降噪 · 每个区域只保留一个明显主操作
   ============================================================ */
.chart-actions .chart-utility-action{
  flex:0 0 auto;
  align-self:center;
  width:auto;
  min-width:0;
  min-height:44px;
  margin:0;
  padding:8px 12px;
  border-color:transparent;
  background:transparent;
  color:var(--dim);
  box-shadow:none;
}
.chart-actions .chart-utility-action:hover,
.chart-actions .chart-utility-action:focus-visible{
  color:var(--gold-deep);
  border-color:transparent;
  background:var(--gold-wash);
  box-shadow:var(--focus-ring);
}
html[data-theme="dark"] .chart-actions .chart-utility-action{
  border-color:transparent;
  background:transparent;
  color:var(--dim);
}
html[data-theme="dark"] .chart-actions .chart-utility-action:hover,
html[data-theme="dark"] .chart-actions .chart-utility-action:focus-visible{
  color:var(--gold-bright);
  background:var(--surface-gold);
}

@media(max-width:640px){
  .followup-suggestions{
    display:flex;
    grid-template-columns:none;
    flex-wrap:nowrap;
    gap:7px;
    max-width:100%;
    overflow-x:auto;
    padding-bottom:3px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .followup-suggestions::-webkit-scrollbar{display:none}
  .followup-suggestions button{
    flex:0 0 auto;
    width:auto;
    min-height:42px;
    padding-inline:12px;
  }
}

@media(max-width:560px){
  .chart-actions{
    align-items:center;
    justify-content:center;
    row-gap:12px;
    column-gap:8px;
  }
  .chart-actions .primary-btn{flex:1 1 100%;min-width:100%}
  .chart-actions .chart-utility-action{flex:0 0 auto;min-width:0}

  .reading-head{align-items:flex-start}
  .reading-tools{
    display:flex;
    grid-template-columns:none;
    flex:0 1 auto;
    width:auto;
    max-width:100%;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:2px;
  }
  .reading-tools>.ghost-btn,
  .reading-tools>.report-more-menu>summary.ghost-btn{
    width:auto;
    min-width:0;
    min-height:44px;
    padding:8px 10px;
    border-color:transparent;
    background:transparent;
    color:var(--dim);
    box-shadow:none;
  }
  .reading-tools>.report-ask-btn{
    color:var(--gold-deep);
    background:var(--gold-wash);
  }
  .reading-tools>.share-report-btn{grid-column:auto}
  .reading-tools>.ghost-btn:hover,
  .reading-tools>.ghost-btn:focus-visible,
  .reading-tools>.report-more-menu>summary.ghost-btn:hover,
  .reading-tools>.report-more-menu>summary.ghost-btn:focus-visible{
    border-color:transparent;
    color:var(--gold-deep);
    background:var(--gold-wash);
  }
  .report-more-menu>div .ghost-btn{width:100%}

  .content-action-bar{
    display:flex;
    grid-template-columns:none;
    align-items:center;
    justify-content:flex-start;
    flex-wrap:wrap;
    gap:0;
    margin-top:4px;
    padding-top:7px;
  }
  .content-action-button{
    flex:0 0 auto;
    width:auto;
    min-height:44px;
    padding:8px 9px;
    border-color:transparent;
    background:transparent;
    color:var(--faint);
  }
  .followup-message.assistant .content-action-bar{display:flex;gap:0;padding-inline:0}
  .followup-message.assistant .content-action-button{width:auto;min-height:44px;padding-inline:8px}
  html[data-theme="dark"] .content-action-button{
    border-color:transparent;
    background:transparent;
  }
  html[data-theme="dark"] .reading-tools>.ghost-btn,
  html[data-theme="dark"] .reading-tools>.report-more-menu>summary.ghost-btn{
    border-color:transparent;
    background:transparent;
    color:var(--dim);
  }
  html[data-theme="dark"] .reading-tools>.report-ask-btn{
    color:var(--gold-bright);
    background:var(--surface-gold);
  }
}

/* Touch devices spend most of their time scrolling long reports. Fixed,
   blended paper textures and full-screen backdrop blurs force large repaints
   on those devices, so keep the same palette with cheaper flat compositing. */
@media(max-width:980px),(pointer:coarse){
  body,
  html[data-theme="dark"] body{
    background-attachment:scroll;
  }
  body::before,
  html[data-theme="dark"] body::before,
  html[data-theme="dark"] body::after{
    display:none;
  }
  .app-dialog{
    transition:none;
  }
  .app-dialog-surface,
  .app-dialog.is-open .app-dialog-surface{
    transform:none;
    transition:none;
  }
  .app-dialog-mask,
  html[data-theme="dark"] .app-dialog-mask,
  .drawer-mask,
  .completion-mask,
  .report-reader-tools{
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
}

/* ============================================================
   雾紫薄荷亮色主题
   参考产品配色：冷白雾紫底、白色内容面、薰衣草紫主操作，
   以薄荷绿、雾粉、浅灰蓝和奶油黄承载低饱和辅助信息。
   暗色主题与固定宣纸导出规则保持不变。
   ============================================================ */
:root:not([data-theme="dark"]){
  --canvas:#f6f5fb;
  --canvas-soft:#f0edff;
  --paper:#fdfcff;
  --paper-strong:#ffffff;
  --paper-subtle:#f0edff;
  --bg:var(--canvas);
  --bg0:var(--canvas);
  --bg1:var(--canvas-soft);
  --bg2:#e9f2fc;
  --ink:#2e2b44;
  --ink-soft:#56516d;
  --dim:#79758d;
  --faint:#8e8aa0;
  --gold:#6858c7;
  --gold-bright:#5546b1;
  --gold-deep:#2f296d;
  --gold-fill:#6858c7;
  --gold-wash:#f0edff;
  --jade:#477e6c;
  --jade-fill:#70a994;
  --jade-wash:#e6f6ef;
  --sky:#5d7fae;
  --sky-end:#6f92bd;
  --sky-wash:#e9f2fc;
  --seal:#ad5c75;
  --danger:#a74862;
  --line:rgba(104,88,199,.14);
  --line-strong:rgba(104,88,199,.28);
  --card:rgba(255,255,255,.95);
  --card-deep:rgba(240,237,255,.92);
  --shadow-card:0 1px 2px rgba(62,49,117,.04),0 10px 28px rgba(62,49,117,.075);
  --shadow-float:0 22px 64px rgba(62,49,117,.15);
  --focus-ring:0 0 0 3px rgba(104,88,199,.22);
  --report-bg:#f6f5fb;
}

html:not([data-theme="dark"]) body{
  background-color:var(--canvas);
  background-image:
    radial-gradient(circle at 8% 0,rgba(104,88,199,.14),transparent 31rem),
    linear-gradient(180deg,rgba(255,255,255,.94),rgba(246,245,251,.92) 42%,rgba(240,237,255,.94)),
    url('ink-mountains.webp');
  background-position:center,center,center bottom;
  background-size:auto,auto,cover;
  background-repeat:no-repeat,no-repeat,no-repeat;
  background-blend-mode:normal,normal,soft-light;
}

html:not([data-theme="dark"]) body::before{
  background-image:
    radial-gradient(circle at 20% 30%,rgba(104,88,199,.06) 0 .55px,transparent .7px),
    radial-gradient(circle at 78% 68%,rgba(71,126,108,.05) 0 .5px,transparent .7px);
  opacity:.22;
  mix-blend-mode:multiply;
}

html:not([data-theme="dark"]) ::selection{
  color:var(--ink);
  background:rgba(104,88,199,.18);
}

html:not([data-theme="dark"]) .glass{
  background:
    linear-gradient(180deg,rgba(255,255,255,.97),rgba(250,249,255,.94)),
    url('ink-mountains.webp') center bottom/100% auto no-repeat;
  background-blend-mode:normal,soft-light;
}

html:not([data-theme="dark"]) input[type=text],
html:not([data-theme="dark"]) input[type=number],
html:not([data-theme="dark"]) select{
  background-color:rgba(255,255,255,.94);
  box-shadow:inset 0 1px 1px rgba(62,49,117,.025);
}

html:not([data-theme="dark"]) .theme-switch{
  background:rgba(255,255,255,.7);
  box-shadow:inset 0 1px 1px rgba(62,49,117,.035);
}

html:not([data-theme="dark"]) .theme-switch button:hover{
  background:rgba(255,255,255,.72);
}

html:not([data-theme="dark"]) .theme-switch button.active{
  box-shadow:0 2px 9px rgba(62,49,117,.11),inset 0 0 0 1px rgba(104,88,199,.13);
}

/* ============================================================
   雾紫薄荷亮色兼容层
   旧版八字页仍有一批宣纸金棕色写死在组件内部。全站亮色主题切换为
   雾紫薄荷后，用共享语义色统一这些表单、弹层与内容卡片，避免新旧配色
   在同一界面混用。暗色主题保持原有独立配色。
   ============================================================ */
:root[data-theme="light"] body{
  background-color:var(--canvas);
  background-image:
    radial-gradient(circle at 0 0,color-mix(in srgb,var(--gold) 15%,transparent),transparent 31rem),
    radial-gradient(circle at 100% 16%,color-mix(in srgb,var(--jade-fill) 20%,transparent),transparent 30rem),
    linear-gradient(180deg,var(--paper-strong),var(--canvas) 48%,var(--canvas-soft));
}
:root[data-theme="light"] body::before{
  background-image:
    linear-gradient(color-mix(in srgb,var(--gold) 3%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--gold) 3%,transparent) 1px,transparent 1px);
  background-size:32px 32px;
  opacity:.32;
  mix-blend-mode:normal;
}
:root[data-theme="light"] ::selection{color:var(--ink);background:color-mix(in srgb,var(--gold) 20%,transparent)}
:root[data-theme="light"] .glass{
  background:linear-gradient(180deg,color-mix(in srgb,var(--paper-strong) 96%,transparent),color-mix(in srgb,var(--paper) 94%,transparent));
}
:root[data-theme="light"] input[type=text],
:root[data-theme="light"] input[type=number],
:root[data-theme="light"] select,
:root[data-theme="light"] textarea,
:root[data-theme="light"] .picker-trigger,
:root[data-theme="light"] .ghost-btn{
  background:color-mix(in srgb,var(--paper-strong) 94%,transparent);
}
:root[data-theme="light"] .picker-trigger-mark,
:root[data-theme="light"] .vision-step-mark{
  border-color:color-mix(in srgb,var(--gold) 25%,var(--line));
  background:var(--gold-wash);
}
:root[data-theme="light"] .daily-profile-panel,
:root[data-theme="light"] .badge.review,
:root[data-theme="light"] .vision-flow .is-current,
:root[data-theme="light"] .account-daily-profile,
:root[data-theme="light"] .account-invite-card,
:root[data-theme="light"] .account-sync-disclosure{
  border-color:color-mix(in srgb,var(--gold) 24%,var(--line));
}
:root[data-theme="light"] .meta-row,
:root[data-theme="light"] .calculation-basis,
:root[data-theme="light"] .history-drawer-actions,
:root[data-theme="light"] .history-item,
:root[data-theme="light"] .account-profile-row{
  background:color-mix(in srgb,var(--paper-strong) 84%,transparent);
}
:root[data-theme="light"] .app-dialog-surface{
  background:
    radial-gradient(circle at 100% 0,color-mix(in srgb,var(--gold-wash) 64%,transparent),transparent 16rem),
    radial-gradient(circle at 0 100%,color-mix(in srgb,var(--jade-wash) 58%,transparent),transparent 18rem),
    linear-gradient(180deg,var(--paper-strong),color-mix(in srgb,var(--paper) 96%,var(--canvas-soft)));
  background-color:var(--paper-strong);
  border-color:var(--line-strong);
  box-shadow:var(--shadow-float);
}
:root[data-theme="light"] .app-dialog-surface::before{border-color:color-mix(in srgb,var(--gold) 8%,transparent)}
:root[data-theme="light"] .dialog-glow{
  border-color:color-mix(in srgb,var(--gold) 10%,transparent);
  box-shadow:0 0 70px color-mix(in srgb,var(--gold) 7%,transparent);
}
:root[data-theme="light"] .dialog-search,
:root[data-theme="light"] .location-option,
:root[data-theme="light"] .time-option,
:root[data-theme="light"] .calendar-picker-option{
  color:var(--ink-soft);
  border-color:var(--line);
  background:var(--paper-strong);
  background:color-mix(in srgb,var(--paper-strong) 92%,var(--paper-subtle));
}
:root[data-theme="light"] .location-option:hover,
:root[data-theme="light"] .location-option:focus-visible,
:root[data-theme="light"] .time-option:hover,
:root[data-theme="light"] .time-option:focus-visible,
:root[data-theme="light"] .calendar-picker-option:hover,
:root[data-theme="light"] .calendar-picker-option:focus-visible{
  color:var(--gold-deep);border-color:var(--gold);background:var(--gold-wash);box-shadow:var(--focus-ring);
}
:root[data-theme="light"] .location-option.is-selected,
:root[data-theme="light"] .time-option.is-selected,
:root[data-theme="light"] .calendar-picker-option.is-selected{
  color:var(--jade);border-color:color-mix(in srgb,var(--jade) 48%,var(--line));background:var(--jade-wash);
}
:root[data-theme="light"] .calendar-picker-tab.active>span,
:root[data-theme="light"] .location-step.active>span{
  border-color:color-mix(in srgb,var(--jade) 34%,var(--line));
  background:color-mix(in srgb,var(--paper-strong) 56%,transparent);
}
:root[data-theme="light"] .calendar-picker-options,
:root[data-theme="light"] .time-picker-options,
:root[data-theme="light"] .location-options,
:root[data-theme="light"] .dayun-line,
:root[data-theme="light"] .report-images-gallery{
  scrollbar-color:color-mix(in srgb,var(--gold) 25%,transparent) transparent;
}
:root[data-theme="light"] .calendar-picker-options::-webkit-scrollbar-thumb,
:root[data-theme="light"] .time-picker-options::-webkit-scrollbar-thumb,
:root[data-theme="light"] .location-options::-webkit-scrollbar-thumb,
:root[data-theme="light"] .dayun-line::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--gold) 25%,transparent)}
:root[data-theme="light"] .account-gate-orbit{
  border-color:color-mix(in srgb,var(--gold) 28%,var(--line));
  box-shadow:0 0 0 6px color-mix(in srgb,var(--gold) 4%,transparent);
}
:root[data-theme="light"] .account-auth-tabs button.active{
  background:transparent;box-shadow:none;
}
:root[data-theme="light"] .account-channel-tabs button.active{
  border-color:transparent;background:var(--paper-strong);box-shadow:none;
}
:root[data-theme="light"] .drawer{
  background:linear-gradient(180deg,var(--paper-strong),var(--paper));
  box-shadow:-18px 0 60px color-mix(in srgb,var(--gold-deep) 14%,transparent);
}
:root[data-theme="light"] .welcome-icon{
  box-shadow:inset 0 0 0 9px color-mix(in srgb,var(--paper-strong) 42%,transparent);
}
:root[data-theme="light"] .welcome-steps span,
:root[data-theme="light"] .shensha-dialog-copy section{
  background:color-mix(in srgb,var(--paper-strong) 84%,var(--paper-subtle));
}
:root[data-theme="light"] #chartPanel>.meta-row{
  background-color:transparent;
  box-shadow:var(--shadow-card);
}
:root[data-theme="light"] #chartPanel>.calculation-basis{
  background:color-mix(in srgb,var(--paper-strong) 94%,var(--paper-subtle))!important;
}
:root[data-theme="light"] #chartPanel>.calculation-warning{
  color:var(--seal);
  border-color:color-mix(in srgb,var(--seal) 25%,var(--line))!important;
  background:var(--seal-wash)!important;
}
:root[data-theme="light"] #chartPanel>.shensha-block,
:root[data-theme="light"] #chartPanel>.wx-block,
:root[data-theme="light"] #chartPanel>.rule-evidence-block,
:root[data-theme="light"] #chartPanel>.dayun-block{
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--paper-strong) 97%,transparent),color-mix(in srgb,var(--paper) 94%,transparent));
}
:root[data-theme="light"] .pillar-card{
  background:
    linear-gradient(180deg,var(--paper-strong),color-mix(in srgb,var(--paper) 94%,var(--paper-subtle)) 64%,color-mix(in srgb,var(--paper-subtle) 55%,transparent));
  box-shadow:var(--shadow-card);
}
:root[data-theme="light"] .pillar-card.day{
  border-color:color-mix(in srgb,var(--gold) 45%,var(--line));
  background:
    linear-gradient(180deg,var(--paper-strong),color-mix(in srgb,var(--gold-wash) 55%,var(--paper-strong)) 64%,color-mix(in srgb,var(--gold-wash) 45%,transparent));
  box-shadow:0 0 0 2px color-mix(in srgb,var(--gold) 8%,transparent),var(--shadow-card);
}
:root[data-theme="light"] .reading-plan{
  background:
    radial-gradient(circle at 95% 0,color-mix(in srgb,var(--jade) 10%,transparent),transparent 33%),
    linear-gradient(145deg,color-mix(in srgb,var(--paper-strong) 96%,transparent),color-mix(in srgb,var(--paper-subtle) 58%,transparent));
}
:root[data-theme="light"] .reading-plan .active{
  box-shadow:0 7px 20px color-mix(in srgb,var(--gold) 10%,transparent);
}
:root[data-theme="light"] .reading-plan .active>span,
:root[data-theme="light"] .contact-qr-badge{
  border-color:color-mix(in srgb,var(--gold) 28%,var(--line));
}
:root[data-theme="light"] .usage-cost-note{
  box-shadow:0 3px 12px color-mix(in srgb,var(--gold-deep) 4%,transparent);
}

:root[data-theme="light"] #historyDrawer .history-drawer-actions{
  background:color-mix(in srgb,var(--paper-strong) 94%,transparent);
  box-shadow:0 -7px 18px color-mix(in srgb,var(--gold-deep) 4%,transparent);
}
:root[data-theme="light"] #imagePanel,
:root[data-theme="light"] #readingPanel{
  background:color-mix(in srgb,var(--paper-strong) 96%,transparent);
  box-shadow:var(--shadow-card);
}
