:root {
  --night: #081225;
  --night-2: #101d39;
  --ink: #172034;
  --muted: #6e7180;
  --paper: #f6f2ea;
  --paper-2: #ece5da;
  --gold: #d9bd79;
  --gold-bright: #f1d99a;
  --gold-dark: #9d7737;
  --line: rgba(214, 188, 123, .28);
  --glass: rgba(9, 20, 43, .7);
  --serif: "Source Han Serif SC", "Noto Serif SC", "Songti SC", "STSong", "Noto Serif CJK SC", serif;
  --sans: "PingFang SC", "Microsoft YaHei", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--theme-text-primary, #fff); background: var(--theme-surface-page, var(--night)); font-family: var(--sans); }
button, input, select { font: inherit; }
button { color: inherit; }
button, a, select { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }

.mobile-preview-trigger { position:fixed; right:24px; bottom:24px; z-index:140; min-height:44px; padding:10px 14px; border:1px solid var(--theme-border-subtle, var(--line)); border-radius:8px; background:var(--theme-surface-navigation, #101a2c); color:var(--theme-text-accent, var(--gold-bright)); font-size:14px; text-decoration:none; }
.mobile-preview-trigger:hover { background:var(--theme-surface-selected, rgba(217,189,121,.12)); }
.mobile-preview-page { height:100dvh; display:flex; flex-direction:column; overflow:hidden; background:radial-gradient(ellipse at center,var(--theme-surface-page, #24304a),var(--theme-surface-page, #0b1425)); }
.mobile-preview-toolbar { flex-shrink:0; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 24px; border-bottom:1px solid var(--theme-border-subtle, var(--line)); background:var(--theme-surface-card, #101a2c); }
.mobile-preview-toolbar h1 { margin:0; font-size:18px; font-weight:500; }
.mobile-preview-toolbar h1 span { margin-left:12px; color:var(--theme-text-primary, #d9bd79); font-size:14px; }
.mobile-preview-toolbar p { margin:8px 0 0; color:var(--theme-text-secondary, #c0c8d8); font-size:13px; }
.mobile-preview-toolbar nav { display:flex; gap:12px; flex-shrink:0; }
.mobile-preview-toolbar button, .mobile-preview-toolbar a { padding:10px 14px; border:1px solid var(--theme-border-subtle, var(--line)); border-radius:8px; background:transparent; color:var(--theme-text-accent, #f1d99a); font:14px var(--sans); text-decoration:none; cursor:pointer; }
.mobile-preview-stage { flex:1; min-height:0; display:flex; overflow:auto; padding:24px 16px; }
.mobile-preview-device { flex-shrink:0; margin:auto; border-radius:20px; overflow:hidden; box-shadow:0 0 0 5px var(--theme-shadow-panel, #364056),0 20px 70px var(--theme-shadow-panel, #0008); background:var(--theme-surface-page, var(--night)); }
#mobile-preview-frame { display:block; border:0; }
@media (max-width:680px) {
  .mobile-preview-trigger { display:none; }
  .mobile-preview-toolbar { flex-wrap:wrap; gap:12px; padding:12px 16px; }
}

.cosmos { position: fixed; inset: 0; z-index: -2; overflow: hidden; background: var(--theme-scene-background, #071225); }
.cosmos-image {
  position: absolute; inset: -8%; opacity: .96;
  background:
    radial-gradient(ellipse at 72% 55%, var(--theme-scene-haze, rgba(109, 81, 148, .32)), transparent 36%),
    radial-gradient(ellipse at 34% 42%, var(--theme-scene-haze, rgba(60, 105, 158, .35)), transparent 42%),
    linear-gradient(142deg, transparent 18%, var(--theme-scene-haze, rgba(117, 109, 180, .18)) 42%, var(--theme-scene-haze, rgba(128, 94, 152, .3)) 53%, transparent 75%),
    linear-gradient(165deg, var(--theme-scene-background, #061121) 0%, var(--theme-scene-background, #11284a) 49%, var(--theme-scene-background, #0a1730) 100%);
  filter: saturate(.86); animation: nebulaDrift 28s ease-in-out infinite alternate;
}
.cosmos-image::before {
  content: ""; position: absolute; inset: 2% -20%; transform: rotate(-8deg);
  background: linear-gradient(90deg, transparent 4%, var(--theme-scene-haze, rgba(209, 211, 245, .08)) 29%, var(--theme-scene-haze, rgba(164, 133, 195, .2)) 48%, var(--theme-scene-haze, rgba(97, 143, 200, .1)) 70%, transparent 92%);
  filter: blur(30px); opacity: .9;
}
#star-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.cosmos-vignette { position: absolute; inset: 0; background: linear-gradient(90deg, var(--theme-scene-vignette, rgba(2, 8, 21, .55)) 0%, var(--theme-scene-vignette, rgba(3, 10, 24, .1)) 50%, var(--theme-scene-vignette, rgba(3, 9, 22, .28)) 100%), linear-gradient(0deg, var(--theme-scene-vignette, rgba(3, 8, 20, .45)), transparent 35%); }
.orbit, .astral-word { display: none; }
@keyframes nebulaDrift { to { transform: translate3d(2.5%, -1%, 0) scale(1.04); } }

.site-header { position: fixed; z-index: 30; left: 0; right: 0; top: 0; height: 82px; display: flex; align-items: center; padding: 0 clamp(24px, 5vw, 88px); border-bottom: 1px solid var(--theme-border-subtle, rgba(232, 211, 158, .16)); background: linear-gradient(180deg, var(--theme-surface-navigation, rgba(4, 11, 27, .76)), var(--theme-surface-navigation, rgba(4, 11, 27, .08))); backdrop-filter: blur(8px); }
.brand { display: flex; align-items: center; gap: 13px; border: 0; background: none; padding: 0; cursor: pointer; }
.brand-seal { display: grid; place-items: center; flex: 0 0 40px; width: 40px; height: 40px; color: var(--theme-text-accent, var(--gold)); }
.brand-seal svg { display: block; width: 100%; height: 100%; }
.brand > span:last-child { display: grid; text-align: left; gap: 2px; }
.brand strong { font-family: var(--serif); letter-spacing: .18em; font-size: 18px; font-weight: 500; }
.brand small { color: var(--theme-text-accent, rgba(239, 219, 171, .58)); letter-spacing: .18em; font-size: 8px; }
.site-header nav { display: flex; gap: 34px; margin-left: auto; }
.site-header nav button { border: 0; background: none; color: var(--theme-text-secondary, rgba(255,255,255,.73)); font-size: 14px; letter-spacing: .1em; cursor: pointer; }
.site-header nav #theme-toggle { color: var(--theme-text-secondary, #b8c6d9); }
@media (hover: hover) and (pointer: fine) {
  .site-header nav button:not(#theme-toggle):hover { color: var(--theme-text-accent, var(--gold-bright)); }
}
.local-mark { margin-left: 36px; padding-left: 24px; border-left: 1px solid var(--theme-border-subtle, rgba(255,255,255,.16)); color: var(--theme-text-primary, rgba(255,255,255,.53)); font-size: 12px; }
.local-mark i, .entry-action p i { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--theme-surface-navigation, #91c7a6); box-shadow: 0 0 12px var(--theme-shadow-status, #91c7a6); margin-right: 7px; }

.view { display: none; min-height: 100vh; }
.view.active { display: block; animation: viewIn .65s ease both; }
@keyframes viewIn { from { opacity: 0; transform: translateY(8px); } }

.home-view { position: relative; padding: 150px clamp(24px, 8vw, 150px) 70px; }
.hero-copy { width: min(760px, 100%); position: relative; z-index: 2; }
.eyebrow { color: var(--theme-text-accent, var(--gold-bright)); font-size: 12px; letter-spacing: .36em; text-transform: uppercase; }
.hero-copy > .eyebrow { letter-spacing:.16em; }
.hero-copy h1 { margin: 20px 0 18px; color:var(--theme-text-accent, #f0d99a); font-family: var(--serif); font-size: clamp(52px, 5.6vw, 88px); line-height: 1.1; letter-spacing: .06em; font-weight: 400; text-shadow: 0 4px 30px var(--theme-shadow-text, rgba(0,0,0,.4)); }
.hero-copy h1 em { color:inherit; font-style: normal; }
.slogan { margin: 25px 0 0; color: var(--theme-text-secondary, #f7eed5); font-family: var(--serif); font-size: clamp(20px, 2vw, 27px); letter-spacing: .14em; }
.hero-intro { width: min(700px, 100%); margin: 0; color: var(--theme-text-primary, rgba(239, 242, 250, .74)); font-family: var(--serif); font-size: 16px; line-height: 2; }
.capability-map { position:relative; z-index:4; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; width:min(1180px,100%); margin:38px auto 0; }
.capability-map span { min-height:94px; padding:15px 17px; border:1px solid var(--theme-border-subtle, rgba(225,199,136,.2)); border-radius:18px; color:var(--theme-text-primary, rgba(235,239,248,.58)); background:linear-gradient(135deg,var(--theme-surface-card, rgba(8,18,40,.7)),var(--theme-surface-card, rgba(29,40,71,.52))); box-shadow:inset 0 1px 0 var(--theme-shadow-panel, rgba(255,255,255,.025)),0 12px 30px var(--theme-shadow-panel, rgba(0,0,0,.1)); backdrop-filter:blur(12px); font-size:11px; line-height:1.78; letter-spacing:.03em; }
.capability-map b { display:block; margin-bottom:2px; color:var(--theme-text-accent, #efd896); font-family:var(--serif); font-size:14px; font-weight:500; letter-spacing:.08em; }

.birth-entry { position: relative; z-index: 4; width: min(1180px, 100%); margin: 42px auto 20px; padding: 34px 40px 30px; border: 1px solid var(--theme-border-subtle, rgba(225, 199, 136, .32)); border-radius: 24px; background: linear-gradient(135deg, var(--theme-surface-card, rgba(10, 22, 47, .84)), var(--theme-surface-card, rgba(20, 30, 56, .66))); backdrop-filter: blur(22px); box-shadow:inset 0 1px 0 var(--theme-shadow-panel, rgba(255,255,255,.035)),0 25px 80px var(--theme-shadow-panel, rgba(0,0,0,.28)); }
.entry-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding-bottom: 24px; border-bottom: 1px solid var(--theme-border-subtle, rgba(229, 208, 155, .17)); }
.entry-heading > div, .panel-title { display: flex; align-items: center; gap: 16px; }
.entry-heading span, .panel-title > span { color: var(--theme-text-accent, var(--gold)); font-family: Georgia, serif; font-size: 12px; letter-spacing: .12em; }
.entry-heading h2, .panel-title h2 { margin: 0; font-family: var(--serif); font-size: 24px; font-weight: 500; letter-spacing: .08em; }
.entry-heading p, .panel-title p { margin: 0; color: var(--theme-text-secondary, rgba(255,255,255,.48)); font-size: 12px; }
.birth-form { display:grid; gap:14px; padding-top: 24px; }
.test-birth-memory { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-top:16px; color:var(--theme-text-primary, rgba(255,255,255,.6)); font-size:12px; }
.test-birth-memory[hidden] { display:none; }
.test-birth-memory button { border:0; padding:6px 0; background:transparent; color:var(--theme-text-accent, var(--gold-bright)); cursor:pointer; font:inherit; }
.birth-form-section { padding:18px 20px 20px; border:1px solid var(--theme-border-subtle, rgba(231,215,177,.12)); border-radius:16px; background:var(--theme-surface-card, rgba(255,255,255,.025)); }
.birth-form-section.location-section { background:var(--theme-surface-card, rgba(84,105,159,.055)); }
.birth-form-section.correction-section { background:linear-gradient(110deg,var(--theme-surface-card, rgba(188,148,69,.07)),var(--theme-surface-card, rgba(82,102,155,.045))); }
.birth-section-label { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:13px; padding-bottom:11px; border-bottom:1px solid var(--theme-border-subtle, rgba(231,215,177,.1)); }
.birth-section-label strong { color:var(--theme-text-primary, #ead598); font:500 14px var(--serif); letter-spacing:.08em; }
.birth-section-label span { color:var(--theme-text-primary, rgba(255,255,255,.34)); font-size:10px; }
.birth-grid { display: grid; grid-template-columns: 1.15fr .8fr .8fr 1.15fr 1fr; gap: 16px; }
.field, .line-field { display: grid; gap: 9px; }
.field > span, .line-field > span { color: var(--theme-text-secondary, rgba(255,255,255,.56)); font-size: 11px; letter-spacing: .08em; }
.field input, .field select, .line-field input, .line-field select, .wheel-trigger {
  width: 100%; min-height: 46px; border: 0; border-bottom: 1px solid var(--theme-border-control, rgba(231, 215, 177, .38)); border-radius: 0; outline: 0; padding: 0 3px; color: var(--theme-text-primary, #fff); background: transparent;
}
.field input:focus, .field select:focus, .line-field input:focus, .line-field select:focus, .wheel-trigger:focus { border-color: var(--theme-border-accent, var(--gold-bright)); }
.field select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--theme-icon-accent, var(--gold)) 50%), linear-gradient(135deg, var(--theme-icon-accent, var(--gold)) 50%, transparent 50%); background-position: calc(100% - 12px) 20px, calc(100% - 7px) 20px; background-size: 5px 5px; background-repeat: no-repeat; }
.field select option { color: var(--theme-text-primary, var(--ink)); background: var(--theme-surface-card, #fff); }
.wheel-trigger { text-align: left; cursor: pointer; }
.wheel-trigger.placeholder { color: var(--theme-text-secondary, rgba(255,255,255,.35)); }
.select-wheel { position:relative; display:block; min-width:0; }
.field select.native-select-proxy { position:absolute; width:1px; min-height:0; height:1px; overflow:hidden; margin:0; padding:0; border:0; opacity:0; pointer-events:none; }
.select-wheel-trigger { position:relative; padding-right:28px; }
.select-wheel-trigger::after { content:""; position:absolute; top:50%; right:8px; width:7px; height:7px; transform:translateY(-70%) rotate(45deg); border-right:1px solid var(--theme-border-control, var(--gold)); border-bottom:1px solid var(--theme-border-control, var(--gold)); }
.select-wheel-trigger:disabled { opacity:.38; cursor:not-allowed; }
.location-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
.birth-controls { display: flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap: 18px 26px; }
.segmented { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; padding:3px; border:1px solid var(--theme-border-control, rgba(255,255,255,.18)); border-radius:10px; }
.segmented label { position:relative; min-width:0; cursor:pointer; }
.segmented input { position: absolute; opacity: 0; }
.segmented span { display:grid; place-items:center; width:100%; padding:8px 0; border-radius:7px; color:var(--theme-text-primary, rgba(255,255,255,.55)); font-size:12px; }
.segmented input:checked + span { color: var(--theme-text-accent, #10192d); background: var(--theme-surface-selected, var(--gold-bright)); }
.switch-control, .check-control { display: flex; align-items: center; gap: 10px; cursor: pointer; color: var(--theme-text-secondary, rgba(255,255,255,.7)); font-size: 12px; }
.switch-control { max-width:52%; margin-right:auto; }
.dst-control { max-width:43%; margin-left:auto; justify-content:flex-end; text-align:right; }
.leap-control { order:3; width:100%; justify-content:center; }
.switch-control input, .check-control input { accent-color: var(--theme-icon-accent, var(--gold-dark)); }
.switch { position: relative; width: 36px; height: 20px; border-radius: 20px; background: var(--theme-surface-switch-off, rgba(255,255,255,.2)); transition: .25s; }
.switch::after { content:""; position:absolute; width:14px; height:14px; top:3px; left:3px; border-radius:50%; background:var(--theme-surface-knob, #fff); transition:.25s; }
.switch-control input { position:absolute; opacity:0; }
.switch-control input:checked + .switch { background: var(--theme-surface-switch-on, var(--gold-dark)); }
.switch-control input:checked + .switch::after { transform: translateX(16px); }
.entry-action { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 28px; }
.entry-action p { color: var(--theme-text-secondary, rgba(255,255,255,.46)); font-size: 11px; }
.gold-button, .outline-button, .text-back { border: 0; cursor: pointer; }
.gold-button { display: inline-flex; align-items: center; justify-content: center; gap: 38px; min-height: 52px; padding: 0 24px; border-radius:12px; color: var(--theme-text-primary, #151b2b); background: linear-gradient(110deg, var(--theme-surface-selected, #c9a95e), var(--theme-surface-selected, #f1dda6) 55%, var(--theme-surface-selected, #c19b51)); box-shadow: 0 9px 28px var(--theme-shadow-panel, rgba(180, 138, 54, .2)); }
.gold-button:hover { filter: brightness(1.08); transform: translateY(-1px); }
.gold-button:disabled { opacity: .5; cursor: not-allowed; }
.gold-button.small { min-height: 42px; }
.outline-button { min-height: 44px; padding: 0 20px; border: 1px solid var(--theme-border-entry, rgba(165,126,62,.45)); color: var(--theme-text-accent, var(--gold-dark)); background: transparent; }
.text-back { padding: 6px 0; color: var(--theme-text-secondary, rgba(255,255,255,.64)); background: transparent; }
.culture-disclaimer { display:grid; justify-items:center; gap:13px; width:min(1180px,100%); margin:38px auto 0; color:var(--theme-text-primary, rgba(239,242,250,.42)); text-align:center; }
.culture-disclaimer span { width:1px; height:34px; background:linear-gradient(var(--theme-surface-card, var(--gold)),transparent); }
.culture-disclaimer p { margin:0; font:11px/1.8 var(--serif); letter-spacing:.12em; }
#home-view .culture-disclaimer { margin-top:12px; gap:4px; }
.culture-disclaimer .icp-record { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:4px 8px; color:inherit; font:12px/1.6 var(--sans); text-decoration:underline; text-underline-offset:3px; }
.culture-disclaimer .icp-record:hover { color:var(--theme-text-accent, var(--gold)); }
.culture-disclaimer .icp-record:focus-visible { outline:2px solid var(--theme-border-accent, var(--gold)); outline-offset:3px; }

.inner-view { padding: 144px clamp(24px, 7vw, 120px) 100px; background: linear-gradient(var(--theme-surface-page, rgba(247,244,237,.97)), var(--theme-surface-page, rgba(247,244,237,.98))); color: var(--theme-text-secondary, var(--ink)); }
.inner-view::before { content:""; position:fixed; inset:0; z-index:-1; background:inherit; }
#home-view.inner-view { position:relative; color:var(--theme-text-primary, #fff); background:transparent; }
#home-view.inner-view::before { background:linear-gradient(180deg,var(--theme-surface-decoration, rgba(4,11,27,.12)),var(--theme-surface-decoration, rgba(4,11,27,.42))); }
#home-view > * { width:min(1180px,100%); margin-left:auto; margin-right:auto; }
#home-view .page-intro .eyebrow { color:var(--theme-text-accent, var(--gold-bright)); }
#home-view .page-intro h1 { color:var(--theme-text-primary, #f0d99a); text-shadow:0 4px 30px var(--theme-shadow-text, rgba(0,0,0,.34)); }
#home-view .page-intro > p:last-child { color:var(--theme-text-secondary, rgba(239,242,250,.68)); }
.page-intro { max-width: 780px; margin-bottom: 48px; }
.page-intro .eyebrow { color: var(--theme-text-accent, var(--gold-dark)); }
.page-intro h1 { margin: 14px 0; color: var(--theme-text-primary, #182139); font-family: var(--serif); font-size: clamp(36px,4vw,58px); font-weight:400; letter-spacing:.07em; }
.page-intro > p:last-child { color: var(--theme-text-secondary, var(--muted)); line-height:1.8; }
.page-intro.compact { margin-bottom: 28px; }
.identity-strip { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:34px; padding:17px 20px; border-top:1px solid var(--theme-border-subtle, #d9c69c); border-bottom:1px solid var(--theme-border-subtle, rgba(157,119,55,.2)); color:var(--theme-text-secondary, #5e6170); font-size:13px; }
.identity-strip strong { color:var(--theme-text-primary, var(--ink)); font-family:var(--serif); font-size:18px; font-weight:500; }
.identity-strip button { border:0; background:none; color:var(--theme-text-accent, var(--gold-dark)); cursor:pointer; }
.decade-guide { margin:0 0 42px; padding:30px 30px 32px; border:1px solid var(--theme-border-subtle, rgba(225,199,136,.27)); border-radius:22px; background:linear-gradient(135deg,var(--theme-surface-card, rgba(10,22,47,.84)),var(--theme-surface-card, rgba(20,30,56,.68))); box-shadow:inset 0 1px 0 var(--theme-shadow-panel, rgba(255,255,255,.035)),0 25px 80px var(--theme-shadow-panel, rgba(0,0,0,.24)); backdrop-filter:blur(22px); }
.decade-guide-heading { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:20px; }
.decade-guide-heading .eyebrow { margin:0 0 7px; color:var(--theme-text-accent, var(--gold-bright)); }
.decade-guide-heading h2 { margin:0; color:var(--theme-text-primary, #f5e6bc); font:500 25px var(--serif); letter-spacing:.08em; }
.decade-guide-heading > p { max-width:420px; margin:0; color:var(--theme-text-secondary, rgba(239,242,250,.5)); font-size:12px; line-height:1.8; text-align:right; }
.timeline-row { display:grid; grid-template-columns:76px minmax(0,1fr); border-top:1px solid var(--theme-border-subtle, rgba(229,208,155,.14)); }
.timeline-row-label { display:grid; align-content:center; gap:5px; min-height:104px; padding-right:16px; border-right:1px solid var(--theme-border-subtle, rgba(229,208,155,.14)); }
.timeline-row-label span { color:var(--theme-text-accent, #ecd38f); font:500 18px var(--serif); letter-spacing:.16em; }
.timeline-row-label small { color:var(--theme-text-secondary, rgba(255,255,255,.32)); font-size:9px; letter-spacing:.12em; }
.decade-range-list { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(148px,1fr); gap:10px; overflow-x:auto; padding:14px 0 14px 18px; scroll-snap-type:x proximity; scrollbar-color:var(--theme-border-control, rgba(217,189,121,.48)) transparent; }
.decade-range { position:relative; display:grid; align-content:center; min-height:76px; gap:3px; scroll-snap-align:start; border:1px solid var(--theme-border-subtle, rgba(225,199,136,.16)); border-radius:12px; padding:12px 13px; text-align:left; color:var(--theme-text-primary, #fff); background:var(--theme-surface-card, rgba(255,255,255,.035)); cursor:pointer; transition:.25s; }
.decade-range:hover { border-color:var(--theme-border-accent, rgba(225,199,136,.42)); background:var(--theme-surface-selected, rgba(255,255,255,.07)); }
.decade-range.selected { border-color:var(--theme-border-accent, rgba(241,217,154,.7)); background:linear-gradient(135deg,var(--theme-surface-selected, rgba(190,147,67,.2)),var(--theme-surface-selected, rgba(88,108,165,.13))); box-shadow:inset 0 2px var(--theme-border-accent, #d9bd79); }
.decade-range.current:not(.selected) { border-color:var(--theme-border-accent, rgba(145,199,166,.38)); }
.decade-ganzhi { color:var(--theme-text-accent, #f2d997); font:500 16px var(--serif); letter-spacing:.08em; }
.decade-years-range { color:var(--theme-text-primary, rgba(255,255,255,.78)); font-family:Georgia,serif; font-size:12px; }
.decade-range small { color:var(--theme-text-secondary, rgba(255,255,255,.38)); font-size:9px; }
.decade-range em { position:absolute; top:8px; right:8px; color:var(--theme-status-success, #aee1bd); font-size:9px; font-style:normal; }
.flow-year-timeline-row { border-bottom:1px solid var(--theme-border-subtle, rgba(229,208,155,.14)); }
.flow-year-timeline-row .timeline-row-label { min-height:150px; }
.selected-decade-panel { min-width:0; padding:17px 0 18px 18px; }
.selected-decade-meta { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:13px; }
.selected-decade-meta > div { display:flex; align-items:baseline; gap:12px; }
.selected-decade-meta strong { color:var(--theme-text-accent, #f2d997); font:500 16px var(--serif); letter-spacing:.08em; }
.selected-decade-meta span { color:var(--theme-text-accent, rgba(255,255,255,.4)); font-size:10px; }
.decade-year-grid { display:grid; grid-template-columns:repeat(10,minmax(72px,1fr)); gap:7px; overflow-x:auto; padding-bottom:5px; scrollbar-color:var(--theme-border-control, rgba(217,189,121,.48)) transparent; }
.decade-year { display:grid; gap:5px; min-height:58px; border:1px solid var(--theme-border-subtle, rgba(225,199,136,.13)); border-radius:9px; padding:10px 8px; text-align:left; color:var(--theme-text-primary, rgba(255,255,255,.76)); background:var(--theme-surface-card, rgba(255,255,255,.03)); cursor:pointer; }
.decade-year:hover, .decade-year.current { color:var(--theme-text-accent, #172034); border-color:var(--theme-border-accent, #d9bd79); background:linear-gradient(120deg,var(--theme-surface-selected, #c9a95e),var(--theme-surface-selected, #f1dda6)); }
.decade-year strong { font:500 12px Georgia,serif; }
.decade-year small { color:var(--theme-text-secondary, rgba(255,255,255,.35)); font-size:9px; }
.decade-year:hover small, .decade-year.current small { color:var(--theme-text-accent, #67542c); }
#home-view .identity-strip { border-color:var(--theme-border-subtle, rgba(225,199,136,.2)); color:var(--theme-text-primary, rgba(239,242,250,.58)); background:var(--theme-surface-card, rgba(8,18,40,.34)); }
#home-view .identity-strip strong { color:var(--theme-text-primary, #f4e1ad); }
#home-view .identity-strip button { color:var(--theme-text-accent, #e2c77f); }
.natal-chart-section { margin:0 0 42px; padding:30px; border:1px solid var(--theme-border-subtle, rgba(148,174,168,.34)); border-radius:22px; background:radial-gradient(circle at 88% 8%,var(--theme-surface-card, rgba(106,151,151,.16)),transparent 34%),linear-gradient(145deg,var(--theme-surface-card, rgba(15,34,58,.95)),var(--theme-surface-card, rgba(26,39,63,.88))); box-shadow:inset 0 1px 0 var(--theme-shadow-panel, rgba(255,255,255,.045)),0 25px 80px var(--theme-shadow-panel, rgba(0,0,0,.26)); backdrop-filter:blur(22px); }
.natal-chart-heading { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:22px; }
.natal-chart-heading .eyebrow { margin:0 0 7px; color:var(--theme-text-accent, #9ec5bd); }
.natal-chart-heading h2 { margin:0; color:var(--theme-text-primary, #f1ddb0); font:500 25px var(--serif); letter-spacing:.08em; }
.natal-chart-scroll { overflow-x:auto; padding-bottom:7px; scrollbar-color:var(--theme-border-control, rgba(148,174,168,.55)) transparent; }
.natal-chart-grid { display:grid; grid-template-columns:repeat(4,minmax(195px,1fr)); grid-template-rows:repeat(4,minmax(178px,auto)); gap:9px; min-width:860px; padding:9px; border:1px solid var(--theme-border-subtle, rgba(148,174,168,.13)); border-radius:16px; background:var(--theme-surface-card, rgba(3,13,28,.2)); }
.natal-palace { position:relative; display:flex; min-width:0; flex-direction:column; gap:10px; overflow:hidden; border:1px solid var(--theme-border-subtle, rgba(150,179,174,.26)); border-radius:12px; padding:14px; text-align:left; color:var(--theme-text-primary, #eef2ee); background:linear-gradient(150deg,var(--theme-surface-card, rgba(37,61,77,.9)),var(--theme-surface-card, rgba(25,38,61,.94))); box-shadow:inset 0 1px 0 var(--theme-shadow-panel, rgba(255,255,255,.035)),0 8px 20px var(--theme-shadow-panel, rgba(0,0,0,.1)); }
.natal-palace[data-branch="巳"] { grid-area:1 / 1; }
.natal-palace[data-branch="午"] { grid-area:1 / 2; }
.natal-palace[data-branch="未"] { grid-area:1 / 3; }
.natal-palace[data-branch="申"] { grid-area:1 / 4; }
.natal-palace[data-branch="酉"] { grid-area:2 / 4; }
.natal-palace[data-branch="戌"] { grid-area:3 / 4; }
.natal-palace[data-branch="亥"] { grid-area:4 / 4; }
.natal-palace[data-branch="子"] { grid-area:4 / 3; }
.natal-palace[data-branch="丑"] { grid-area:4 / 2; }
.natal-palace[data-branch="寅"] { grid-area:4 / 1; }
.natal-palace[data-branch="卯"] { grid-area:3 / 1; }
.natal-palace[data-branch="辰"] { grid-area:2 / 1; }
.natal-palace-head { display:flex; align-items:center; gap:8px; padding-bottom:10px; border-bottom:1px solid var(--theme-border-subtle, rgba(163,190,184,.16)); }
.natal-palace-head strong { color:var(--theme-text-primary, #f0d59c); font:500 17px var(--serif); letter-spacing:.1em; }
.natal-palace-head small { color:var(--theme-text-secondary, #9eb5b5); font:11px Georgia,serif; }
.natal-palace-head em { margin-left:auto; border:1px solid var(--theme-border-subtle, rgba(142,202,187,.42)); border-radius:999px; padding:2px 6px; color:var(--theme-text-secondary, #acd9cc); background:var(--theme-surface-card, rgba(71,127,119,.15)); font-size:9px; font-style:normal; }
.natal-star-row { display:grid; grid-template-columns:34px minmax(0,1fr); align-items:start; gap:7px; }
.natal-star-row > b { padding-top:2px; color:var(--theme-text-secondary, rgba(183,205,199,.5)); font-size:8px; font-weight:400; letter-spacing:.08em; }
.natal-star-row > span { display:flex; flex-wrap:wrap; gap:5px 7px; }
.natal-star-row i { color:var(--theme-text-secondary, rgba(207,219,216,.34)); font:11px var(--serif); font-style:normal; }
.natal-star { display:inline-flex; align-items:center; gap:3px; color:var(--theme-text-secondary, #bcd3cd); font:11px var(--serif); white-space:nowrap; }
.natal-major-stars .natal-star { color:var(--theme-text-accent, #f6e8c9); font-size:14px; }
.natal-adjective-stars .natal-star { color:var(--theme-text-secondary, #95aeb5); font-size:10px; }
.natal-star small { color:var(--theme-text-secondary, #8fa3aa); font:8px sans-serif; }
.natal-star em { display:inline-grid; place-items:center; min-width:17px; height:17px; border-radius:50%; color:var(--theme-text-primary, #1c2934); background:var(--theme-surface-selected, #d6bc7d); font:700 9px sans-serif; font-style:normal; }
.natal-star em[data-mutagen="忌"] { color:var(--theme-text-on-error, #fff); background:var(--theme-chart-ji, #9f5e64); }
.natal-star em[data-mutagen="权"] { background:var(--theme-chart-quan, #d39b62); }
.natal-star em[data-mutagen="科"] { background:var(--theme-chart-ke, #9cc2b0); }
.natal-star em[data-mutagen="禄"] { background:var(--theme-chart-lu, #d8c471); }
.natal-chart-center { grid-area:2 / 2 / 4 / 4; display:flex; flex-direction:column; justify-content:center; border:1px solid var(--theme-border-subtle, rgba(177,157,111,.3)); border-radius:15px; padding:28px 34px; color:var(--theme-text-primary, #fff); background:radial-gradient(circle at 50% 20%,var(--theme-surface-card, rgba(177,153,97,.16)),transparent 42%),linear-gradient(145deg,var(--theme-surface-card, rgba(9,25,45,.98)),var(--theme-surface-card, rgba(19,35,58,.96))); box-shadow:inset 0 0 45px var(--theme-shadow-panel, rgba(42,85,91,.12)); text-align:center; }
.natal-chart-center > p { margin:0; color:var(--theme-text-secondary, #92bdb5); font:10px Georgia,serif; letter-spacing:.22em; }
.natal-chart-center h3 { margin:14px 0 23px; color:var(--theme-text-primary, #f1ddb0); font:400 30px var(--serif); letter-spacing:.16em; }
.natal-chart-center dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; margin:0; text-align:left; }
.natal-chart-center dl div { min-width:0; padding-top:9px; border-top:1px solid var(--theme-border-subtle, rgba(151,183,176,.14)); }
.natal-chart-center dt { color:var(--theme-text-secondary, #7f9b9c); font-size:9px; letter-spacing:.12em; }
.natal-chart-center dd { overflow:hidden; margin:5px 0 0; color:var(--theme-text-primary, #dbe4df); font:12px/1.5 var(--serif); text-overflow:ellipsis; white-space:nowrap; }
.product-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.product-card { position:relative; min-height:320px; overflow:hidden; border:1px solid var(--theme-border-entry, rgba(88,71,46,.16)); padding:25px; text-align:left; color:var(--theme-text-primary, var(--ink)); background:var(--theme-surface-card, rgba(255,255,255,.46)); cursor:pointer; transition:.35s; }
.product-card::before { content:""; position:absolute; width:150px; height:150px; right:-52px; top:-62px; border:1px solid var(--theme-border-entry, rgba(190,147,67,.22)); border-radius:50%; box-shadow:0 0 0 18px var(--theme-shadow-decoration, rgba(190,147,67,.035)),0 0 0 40px var(--theme-shadow-decoration, rgba(190,147,67,.025)); }
.product-card:hover { transform:translateY(-5px); border-color:var(--theme-border-accent, rgba(157,119,55,.46)); background:var(--theme-surface-selected, #fff); box-shadow:0 20px 50px var(--theme-shadow-panel, rgba(38,31,23,.09)); }
.product-card .number { display:block; color:var(--theme-text-accent, var(--gold-dark)); font-family:Georgia,serif; font-size:12px; letter-spacing:.13em; }
.product-card .icon { display:grid; place-items:center; width:48px; height:48px; margin:32px 0 24px; border:1px solid var(--theme-border-entry, rgba(157,119,55,.34)); border-radius:50%; color:var(--theme-text-accent, var(--gold-dark)); font-family:var(--serif); font-size:21px; }
.product-card strong { display:block; margin-bottom:12px; font-family:var(--serif); font-size:21px; font-weight:500; letter-spacing:.06em; }
.product-card small { display:block; padding-right:4px; color:var(--theme-text-secondary, #74737a); font-size:12px; line-height:1.85; }
.product-card .arrow { position:absolute; right:22px; bottom:19px; color:var(--theme-text-accent, var(--gold-dark)); }
#home-view .product-card { border-color:var(--theme-border-entry, rgba(225,199,136,.2)); border-radius:18px; color:var(--theme-text-primary, #fff); background:linear-gradient(135deg,var(--theme-surface-card, rgba(8,18,40,.72)),var(--theme-surface-card, rgba(29,40,71,.56))); box-shadow:inset 0 1px 0 var(--theme-shadow-panel, rgba(255,255,255,.025)),0 12px 30px var(--theme-shadow-panel, rgba(0,0,0,.12)); backdrop-filter:blur(14px); }
#home-view .product-card:hover { border-color:var(--theme-border-accent, rgba(241,217,154,.52)); background:linear-gradient(135deg,var(--theme-surface-selected, rgba(12,26,54,.92)),var(--theme-surface-selected, rgba(34,47,82,.82))); box-shadow:0 22px 55px var(--theme-shadow-panel, rgba(0,0,0,.28)); }
#home-view .product-card .number, #home-view .product-card .icon, #home-view .product-card .arrow { color:var(--theme-text-accent, #efd896); }
#home-view .product-card .icon { border-color:var(--theme-border-entry, rgba(225,199,136,.34)); }
#home-view .product-card small { color:var(--theme-text-secondary, rgba(239,242,250,.55)); }

.configure-view { max-width:none; }
.configure-view > .text-back { color:var(--theme-text-secondary, #77716a); margin-bottom:22px; }
.configure-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; max-width:1080px; margin-bottom:38px; padding-bottom:30px; border-bottom:1px solid var(--theme-border-subtle, rgba(157,119,55,.22)); }
.configure-heading .eyebrow { color:var(--theme-text-accent, var(--gold-dark)); }
.configure-heading h1 { margin:8px 0 0; font:400 clamp(35px,4vw,54px)/1.2 var(--serif); }
.configure-heading p { max-width:470px; color:var(--theme-text-secondary, var(--muted)); line-height:1.8; }
.configure-heading.marriage-configure { flex-direction:column; align-items:flex-start; gap:10px; }
.configure-heading.marriage-configure > p { max-width:none; margin:0; }
.consultation-form { max-width:1080px; }
.form-panel { margin-bottom:18px; padding:31px 35px; border:1px solid var(--theme-border-subtle, rgba(77,58,31,.13)); background:var(--theme-surface-card, rgba(255,255,255,.62)); }
.panel-title { padding-bottom:23px; margin-bottom:25px; border-bottom:1px solid var(--theme-border-subtle, rgba(91,72,42,.11)); }
.panel-title h2 { color:var(--theme-text-primary, var(--ink)); font-size:21px; }
.panel-title p { color:var(--theme-text-secondary, #8a8790); margin-top:4px; }
.line-field { grid-template-columns:120px 1fr; align-items:center; }
.line-field > span { color:var(--theme-text-secondary, #77747a); }
.line-field input, .line-field select { color:var(--theme-text-secondary, var(--ink)); border-color:var(--theme-border-control, rgba(57,48,35,.2)); }
.primary-confirmation, .chart-confirmed { margin-top:22px; padding:17px 20px; color:var(--theme-text-secondary, #5d5c65); background:var(--theme-surface-card, #f4efe6); font-size:13px; line-height:1.8; }
.primary-confirmation strong, .chart-confirmed strong { color:var(--theme-text-primary, var(--ink)); }
.secondary-birth { color:var(--theme-text-secondary, var(--ink)); }
.secondary-birth .birth-form-section { border-color:var(--theme-border-subtle, rgba(57,48,35,.1)); background:var(--theme-surface-card, rgba(248,244,237,.78)); }
.secondary-birth .birth-section-label { border-color:var(--theme-border-subtle, rgba(57,48,35,.09)); }
.secondary-birth .birth-section-label strong { color:var(--theme-text-primary, var(--gold-dark)); }
.secondary-birth .birth-section-label span { color:var(--theme-text-secondary, #979199); }
.secondary-birth .field > span, .secondary-birth .switch-control, .secondary-birth .check-control { color:var(--theme-text-secondary, #77747a); }
.secondary-birth .field input, .secondary-birth .field select, .secondary-birth .wheel-trigger { color:var(--theme-text-secondary, var(--ink)); border-color:var(--theme-border-control, rgba(57,48,35,.2)); }
.secondary-birth .wheel-trigger.placeholder { color:var(--theme-text-secondary, #9c999b); }
.secondary-birth .birth-controls { border-color:var(--theme-border-subtle, rgba(57,48,35,.1)); }
.secondary-birth .segmented { border-color:var(--theme-border-control, rgba(57,48,35,.16)); }
.secondary-birth .segmented span { color:var(--theme-text-secondary, #716f75); }
.secondary-birth .switch { background:var(--theme-surface-switch-off, #ccc5ba); }
.product-options { color:var(--theme-text-secondary, #55545c); }
.option-section { padding:4px 0 20px; }
.option-section + .option-section { border-top:1px solid var(--theme-border-subtle, rgba(80,60,30,.09)); padding-top:20px; }
.option-section h3, .option-section h4 { color:var(--theme-text-primary, var(--ink)); font:500 16px var(--serif); }
.option-section .line-field { max-width:520px; }
.check-grid { display:flex; flex-wrap:wrap; gap:10px; }
.choice-chip { position:relative; cursor:pointer; }
.choice-chip input { position:absolute; opacity:0; }
.choice-chip span { display:block; padding:10px 15px; border:1px solid var(--theme-border-control, rgba(91,72,42,.18)); color:var(--theme-text-secondary, #66636a); background:var(--theme-surface-card, #fff); font-size:12px; }
.choice-chip input:checked + span { color:var(--theme-text-accent, #4d3715); border-color:var(--theme-border-accent, #b78d45); background:var(--theme-surface-selected, #f4e8c9); }
.policy-note { color:var(--theme-text-secondary, #88848b); font-size:12px; }
.generate-row { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:28px 0; }
.generate-row p { color:var(--theme-text-secondary, #77747a); font-size:13px; }

.library-toolbar { display:flex; gap:20px; justify-content:space-between; margin-bottom:24px; }
.library-toolbar label { display:flex; align-items:center; gap:14px; flex:1; max-width:560px; border-bottom:1px solid var(--theme-border-control, rgba(67,52,31,.22)); }
.library-toolbar label span { color:var(--theme-text-accent, var(--gold-dark)); font-size:12px; }
.library-toolbar input { flex:1; border:0; outline:0; padding:13px; background:transparent; }
.report-library { display:grid; grid-template-columns:repeat(2,1fr); gap:15px; }
.library-card { display:flex; justify-content:space-between; gap:20px; min-height:120px; padding:24px; border:1px solid var(--theme-border-subtle, rgba(70,54,33,.13)); text-align:left; color:var(--theme-text-secondary, var(--ink)); background:var(--theme-surface-card, rgba(255,255,255,.65)); cursor:pointer; }
.library-card:hover { border-color:var(--theme-border-accent, #b59457); background:var(--theme-surface-selected, #fff); }
.library-card h3 { margin:0 0 9px; font:500 19px var(--serif); }
.library-card p { margin:0; color:var(--theme-text-secondary, #858188); font-size:12px; }
.library-product { color:var(--theme-text-accent, var(--gold-dark)); font-size:12px; }
.empty-state { grid-column:1/-1; padding:70px; border:1px dashed var(--theme-border-subtle, rgba(78,59,31,.2)); text-align:center; color:var(--theme-text-secondary, #77747a); }

.report-view { padding:112px 20px 80px; background:var(--theme-surface-card, #e9e4dc); color:var(--theme-text-secondary, var(--ink)); }
.report-toolbar { display:flex; justify-content:space-between; align-items:center; max-width:920px; margin:0 auto 20px; }
.report-toolbar .text-back { color:var(--theme-text-secondary, #666); }
.report-toolbar > div { display:flex; gap:10px; }
.report-paper { width:min(940px,100%); min-height:1180px; margin:auto; padding:84px 96px; background:#fffdf9; box-shadow:0 25px 70px rgba(38,29,18,.14); }
.report-cover { min-height:390px; padding:70px 0 50px; border-top:2px solid #aa8242; border-bottom:1px solid #cdbb98; text-align:center; }
.report-cover .eyebrow { color:var(--gold-dark); }
.report-cover h1 { margin:38px 0; font:400 43px/1.4 var(--serif); letter-spacing:.08em; }
.report-meta { display:flex; flex-wrap:wrap; justify-content:center; gap:18px; color:#898179; font-size:12px; }
.customer-profile { margin:42px 0 8px; padding:30px 32px; border:1px solid #ddd1bd; border-radius:12px; background:#fbf8f2; }
.customer-profile > h2 { margin:0 0 22px; color:#75603b; font:500 18px/1.5 var(--serif); letter-spacing:.1em; text-align:left; }
.customer-profile-subject + .customer-profile-subject { margin-top:22px; padding-top:22px; border-top:1px solid #e1d7c6; }
.customer-profile-subject h3 { margin:0 0 14px; color:#343744; font:500 16px/1.5 var(--serif); }
.customer-profile dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin:0; overflow:hidden; border:1px solid #e1d7c6; border-radius:8px; background:#e1d7c6; }
.customer-profile .customer-profile-report { margin-top:14px; }
.customer-profile .profile-field { display:grid; grid-template-columns:92px minmax(0,1fr); gap:12px; min-width:0; padding:13px 15px; background:#fbf8f2; }
.customer-profile .profile-field-wide { grid-column:1 / -1; }
.customer-profile dt { color:#918676; font-size:12px; }
.customer-profile dd { min-width:0; margin:0; overflow-wrap:anywhere; color:#4b4a50; font:13px/1.65 var(--serif); }
.reading-guide { margin:48px 0 10px; padding:26px 30px; border-top:1px solid #ccb78e; border-bottom:1px solid #ccb78e; background:#faf7f0; }
.yearly-report-intro p + p { margin-top:18px; }
.reading-guide strong, .risk-scale-note strong, .applicability-note strong, .health-principle-note strong, .yearly-background-note strong { display:block; margin-bottom:10px; color:#75603b; font:500 15px/1.5 var(--serif); letter-spacing:.08em; }
.reading-guide p, .risk-scale-note p, .applicability-note p, .health-principle-note p, .yearly-background-note p { margin:0; color:#5d5a55; font:14px/1.9 var(--serif); letter-spacing:.015em; text-align:left; }
.risk-scale-note { margin:16px 0 12px; padding:20px 24px; border:1px solid #e1d6c2; border-radius:10px; background:#f8f5ef; }
.report-section { padding:64px 0 10px; }
.report-section h2 { margin:0 0 34px; color:#242839; font:500 28px/1.45 var(--serif); letter-spacing:.075em; text-align:center; }
.report-section h2::after { content:""; display:block; width:54px; height:1px; margin:15px auto 0; background:#b39158; }
.report-section p { margin:0 0 1.1em; color:#44444b; font:16px/1.92 var(--serif); letter-spacing:.015em; text-align:left; }
.report-block { position:relative; margin:0 0 30px; padding:26px 28px; border:1px solid #e3dacb; border-left:4px solid #d6c39f; border-radius:12px; background:#fffdfa; box-shadow:0 8px 24px rgba(65,49,28,.035); }
.report-block h3 { margin:0 0 20px; color:#343744; font:500 19px/1.55 var(--serif); letter-spacing:.04em; }
.report-point-group { padding:20px 0 5px; border-top:1px solid #ece5d9; }
.report-point-group:first-of-type { padding-top:0; border-top:0; }
.report-point-copy p:last-child { margin-bottom:.35em; }
.risk-attention { display:flex; align-items:center; gap:9px; width:max-content; margin:0 0 14px; padding:6px 10px; border:1px solid #dfd5c5; border-radius:999px; color:#746a5c; background:#f8f4ec; font-size:11px; line-height:1; }
.risk-attention span { letter-spacing:.04em; }
.risk-attention b { color:#b58a43; font:600 13px/1 Georgia,serif; letter-spacing:.06em; }
.risk-attention em { font-style:normal; font-weight:600; }
.risk-attention-medium { color:#8a5b24; border-color:#e2c99f; background:#fbf4e8; }
.risk-attention-medium b { color:#c17f2d; }
.risk-attention-high { color:#874747; border-color:#dfbcbc; background:#fbefef; }
.risk-attention-high b { color:#a84949; }
.applicability-note { margin:0 0 22px; padding:18px 20px; border:1px solid var(--theme-border-subtle, #dfd0b4); background:var(--theme-surface-card, #fbf8f2); }
.report-applicability-note { margin:18px 0 8px; padding:21px 24px; }
.section-applicability-note { margin:-8px 0 28px; border-radius:10px; }
.yearly-background-note { margin:-4px 0 26px; padding:18px 20px; border-left:3px solid #c7aa78; background:#faf7f0; }
.yearly-background-note strong { margin-bottom:6px; font-size:12px; line-height:1.5; }
.yearly-background-note p { font-size:12.5px; line-height:1.75; }
.report-block-advantage { border-left-color:#a89054; }
.report-block-caution { border-left-color:#c99a57; }
.report-block-risk { border-left-color:#9a4e4e; }
.report-block-risk h3 { color:#783d3d; }
.report-block-timeline { border-left-color:#637b9b; }
.report-block-timeline + .report-block-timeline { margin-top:34px; }
.decade-topic { margin:0 0 38px; padding:22px; border:1px solid #ded9ce; border-left:4px solid var(--topic-accent); border-radius:12px; background:var(--topic-wash); }
.decade-topic > header { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:10px 18px; margin-bottom:24px; }
.decade-topic > header span { color:var(--topic-accent); font:12px Georgia,serif; letter-spacing:.1em; }
.decade-topic > header h3 { margin:0; color:#343744; font:500 22px/1.5 var(--serif); }
.decade-topic.decade-topic-open { padding:0; border:0; border-radius:0; background:transparent; }
.decade-topic-open > header { padding:20px 24px; border-top:2px solid var(--topic-accent); background:linear-gradient(90deg,var(--topic-wash),transparent); }
.decade-topic-open .report-block { margin-bottom:28px; }
.decade-topic .report-block { box-shadow:none; margin-bottom:18px; scroll-margin-top:24px; }
.decade-topic .report-block:last-child { margin-bottom:0; }
.decade-topic h4 { margin:0 0 22px; font:700 21px/1.55 var(--serif); color:#343744; }
.decade-topic .report-block-risk { background:#fff8f7; }
.decade-topic .report-block-risk h4 { color:#783d3d; }
.decade-topic .report-block-caution { background:#fffcf5; }
.decade-topic-open .report-block { border:1px solid #e3dacb; border-left:4px solid var(--topic-accent); border-radius:12px; background:var(--topic-wash); padding:25px 28px 23px; box-shadow:0 8px 24px rgba(0,0,0,.035); }
.decade-topic-open .report-block h4 { color:var(--topic-accent); }
.decade-career-part + .decade-career-part { margin-top:24px; padding-top:22px; border-top:1px solid #cdc7bc; }
.decade-career-part h5 { margin:0 0 18px; color:var(--topic-accent, #343744); font:700 18px/1.6 var(--serif); }
.decade-tradeoff-summary { margin-top:24px; padding-top:22px; border-top:1px solid #cdc7bc; }
.decade-investment-part + .decade-investment-part { margin-top:24px; padding-top:22px; border-top:1px solid #cdc7bc; }
.decade-tradeoff-summary h5 { margin:0 0 18px; color:var(--topic-accent, #343744); font:700 18px/1.6 var(--serif); }
.decade-career-panel .decade-entry + .decade-entry { margin-top:18px; padding-top:0; border-top:0; }
.decade-no-signal { margin-top:48px; padding:24px 28px; border:1px solid #d5dedf; border-left:4px solid #819398; border-radius:12px; background:#f7f9f9; }
.decade-no-signal h3 { margin:10px 0 14px; font:500 20px/1.5 var(--serif); }
.decade-no-signal header > span { color:#75868a; font-size:12px; }
.decade-no-signal p { margin:0; color:#6c6963; font:12px/1.8 var(--serif); }
.decade-no-signal-item { display:grid; grid-template-columns:180px 1fr; gap:18px; margin-top:22px; padding-top:20px; border-top:1px solid #d5dedf; }
.decade-no-signal-item strong { font:500 12px/1.8 var(--serif); color:#566368; }
@media(max-width:600px) { .decade-no-signal-item { grid-template-columns:1fr; gap:6px; } }
.report-paper-decade .decade-scenario-note { margin:10px 0 18px; color:#6c6963; font:12px/1.8 var(--serif); letter-spacing:.01em; }
.decade-topic > header .decade-scenario-note { grid-column:2; margin:0; }
.report-paper-decade :is(.reading-guide, .risk-scale-note, .applicability-note, .health-principle-note, .yearly-background-note, .disclaimer) p { margin:0; color:#6c6963; font:12px/1.8 var(--serif); letter-spacing:.01em; }
.report-paper-decade :is(.reading-guide, .risk-scale-note, .applicability-note, .health-principle-note, .yearly-background-note, .disclaimer) strong { margin-bottom:6px; font:500 12px/1.5 var(--serif); letter-spacing:.06em; }
.decade-entry { scroll-margin-top:24px; }
.decade-entry + .decade-entry { margin-top:24px; padding-top:18px; border-top:1px solid #e8e0d2; }
.report-section .decade-time-label { margin:0 0 10px; font:600 13px/1.5 var(--sans); color:#827357; }
.decade-aspect { margin:8px 0 18px; font:700 18px/1.6 var(--serif); color:var(--topic-accent, #343744); }
.report-decade-section .report-applicability-note { margin:24px 0 0; padding:18px 0 0; border:0; border-top:1px solid #d8d0df; border-radius:0; background:transparent; box-shadow:none; }
.decade-overview-summary { margin:0 0 28px; padding:24px; border:1px solid #ddd1bd; border-radius:12px; background:#faf7f1; }
.decade-overview-summary p:last-child { margin-bottom:0; }
.decade-year-row { display:grid; grid-template-columns:92px minmax(0,1fr); gap:20px; padding:22px 0; border-bottom:1px solid #e3dacb; }
.decade-year-row h3 { margin:4px 0; color:#75603b; font:500 20px var(--serif); }
.decade-year-row ul { margin:0; padding-left:18px; }
.decade-year-row li { margin:0 0 10px; font:14px/1.8 var(--serif); }
.decade-year-row a { color:#465d76; text-decoration:underline; text-underline-offset:3px; }
@media (max-width:600px) {
  .decade-topic { padding:15px 12px; }
  .decade-topic .report-block { padding:20px 16px; }
  .decade-year-row { grid-template-columns:1fr; gap:8px; }
}
@media print {
  .decade-topic { box-shadow:none; }
  .decade-topic > header, .decade-topic h4, .decade-topic h5 { break-after:avoid; }
  .decade-year-row a { color:inherit; }
}
.yearly-brief-list { display:grid; gap:20px; }
.yearly-brief-card { display:grid; grid-template-columns:42px minmax(0,1fr); gap:18px; margin:0; padding:25px 28px 23px; border:1px solid #e3dacb; border-left:4px solid #d6c39f; border-radius:12px; background:#fffdfa; box-shadow:0 8px 24px rgba(65,49,28,.035); }
.yearly-brief-number { padding-top:4px; color:#a17a3b; font:11px/1.4 Georgia,serif; letter-spacing:.12em; }
.yearly-brief-card h3 { margin:0 0 13px; color:#343744; font:500 19px/1.55 var(--serif); letter-spacing:.04em; }
.yearly-card-copy { display:grid; gap:15px; }
.yearly-brief-card .yearly-card-copy p { margin:0; font-size:15px; line-height:1.95; }
.yearly-card-note { margin:14px 0 0; padding:12px 0 0; border-top:1px solid #ded4c4; }
.yearly-card-note strong { display:block; margin:0 0 5px; color:#78694f; font:500 12px/1.5 var(--serif); letter-spacing:.06em; }
.yearly-card-note p { margin:0; color:#6c6963; font:12.5px/1.75 var(--serif); letter-spacing:.01em; }
.yearly-card-note-health { border-top-color:#cbd7d6; }
.yearly-card-note-health strong { color:#607776; }
.yearly-card-note-legal { border-top-color:#dfd0b4; }
.yearly-brief-card-s2 { border-left-color:#a88449; }
.yearly-brief-card-s3 { border-left-color:#7c8b91; }
.yearly-brief-card-s4, .yearly-brief-card-health { --topic-accent:#357f70; border-left-color:#6f8a89; background:#f7faf9; }
.yearly-brief-card-decade { border-left-color:#8c7655; background:#fbf8f2; }
.yearly-brief-card .yearly-time-layer { margin:0 0 6px; color:#806c50; font:600 12px/1.5 var(--sans); letter-spacing:.08em; }
/* 专题共享外框，时间层各自保留内容、星级和说明。 */
.yearly-brief-card[data-topic-key] { border-left-color:var(--topic-accent); background:var(--topic-wash); }
.yearly-brief-card[data-topic-key] .yearly-brief-number { color:var(--topic-accent); }
.yearly-topic-card > div > h3 { margin-bottom:20px; }
.yearly-time-section h4 { margin:0 0 12px; color:var(--topic-accent, var(--theme-text-primary, #806c50)); font:600 13px/1.5 var(--sans); letter-spacing:.06em; }
.yearly-stage-reference, .yearly-time-section + .yearly-time-section { margin-top:22px; padding-top:22px; border-top:1px solid var(--topic-accent, var(--theme-border-subtle, #d6c39f)); }
.yearly-original-title { margin:0 0 10px; font-weight:600; }
.yearly-brief-card-decision { border-left-color:#a88449; background:#fcf9f3; }
.yearly-no-signal-panel { margin:0; padding:25px 28px 22px; border:1px solid #d9dfe0; border-left:4px solid #7c8b91; border-radius:12px; background:#f8faf9; box-shadow:0 8px 24px rgba(65,49,28,.025); }
.yearly-no-signal-panel > header { margin:0 0 8px; padding:0 0 17px; border-bottom:1px solid #d9dfdf; }
.yearly-no-signal-panel > header > span { display:block; margin:0 0 5px; color:#718085; font:600 10.5px/1.4 var(--sans); letter-spacing:.16em; }
.yearly-no-signal-panel > header h3 { margin:0 0 6px; color:#343744; font:500 18px/1.55 var(--serif); letter-spacing:.04em; }
.yearly-no-signal-panel > header p { margin:0; color:#716f69; font:12.5px/1.75 var(--serif); }
.yearly-no-signal-list { display:grid; }
.yearly-no-signal-item { display:grid; grid-template-columns:34px 152px minmax(0,1fr); gap:14px; align-items:start; padding:15px 0; border-bottom:1px solid #e0e4e3; }
.yearly-no-signal-item:last-child { padding-bottom:4px; border-bottom:0; }
.yearly-no-signal-item > span { padding-top:2px; color:#9a7a48; font:10.5px/1.5 Georgia,serif; letter-spacing:.12em; }
.yearly-no-signal-item strong { color:#454a50; font:500 14px/1.75 var(--serif); }
.yearly-no-signal-item p { margin:0; color:#676b6c; font:12.5px/1.8 var(--serif); }
.career-scenario-group { margin:0 0 56px; padding:0 0 34px; border-bottom:1px solid var(--theme-border-subtle, #d8c8aa); }
.career-scenario-group:last-child { margin-bottom:10px; border-bottom:0; }
.career-scenario-group > header { display:flex; align-items:center; gap:15px; margin:0 0 25px; padding:15px 18px; border-top:2px solid var(--theme-border-subtle, #a88449); background:linear-gradient(90deg,var(--theme-surface-card, #f6f0e5),var(--theme-surface-card, rgba(246,240,229,.2))); }
.career-scenario-group > header span { color:var(--theme-text-accent, #a17a3b); font:11px Georgia,serif; letter-spacing:.12em; }
.career-scenario-group > header h3 { margin:0; color:var(--theme-text-primary, #2f3240); font:500 21px/1.5 var(--serif); letter-spacing:.07em; }
.career-scenario-group .report-block { margin-left:0; }
.career-scenario-group .report-block h4 { margin:0 0 15px; color:#343744; font:500 17px/1.55 var(--serif); letter-spacing:.045em; }
.health-principle-note { margin:0 0 34px; padding:21px 24px; border:1px solid #ccd6d5; background:#f3f7f6; }
.yearly-health-principle-note { margin:22px 0 18px; }
.preview-card-grid { display:grid; gap:22px; padding-top:48px; }
.preview-result-card { padding:30px; border:1px solid var(--theme-border-subtle, #ddd1bd); background:var(--theme-surface-card, #faf7f1); }
.preview-result-card .card-number { color:var(--theme-text-accent, var(--gold-dark)); font-size:11px; letter-spacing:.14em; }
.preview-result-card h2 { font:500 23px var(--serif); }
.preview-result-card p { font:15px/1.9 var(--serif); }
.disclaimer { margin-top:58px; padding:24px 26px; border-top:1px solid var(--theme-border-subtle, #d8c8aa); color:var(--theme-text-secondary, #6d6862); background:var(--theme-surface-card, #f3eee6); font-size:12px; line-height:1.9; }
.disclaimer strong { display:block; margin-bottom:8px; color:var(--theme-text-primary, #514b45); font-family:var(--serif); font-size:14px; letter-spacing:.06em; }
.disclaimer p { margin:0; }
/* 流年阅读：仅采用已确认的字级、时间层颜色与内部线条强度。 */
@media screen {
  #report-view .report-paper-yearly .report-cover h1 { font-size:30px; }
  #report-view .report-paper-yearly .report-section > h2 { font-size:24px; }
  #report-view .report-paper-yearly .yearly-brief-card h3 { font-size:19px; }
  #report-view .report-paper-yearly .yearly-card-copy p { font-size:16px; }
  #report-view .report-paper-yearly .yearly-time-section h4 { color:#5b625e; font-size:14px; }
  #report-view .report-paper-yearly .yearly-time-section[data-time-layer="annual"] h4,
  #report-view .report-paper-yearly .yearly-time-section[data-time-layer="annual-notice"] h4,
  #report-view .report-paper-yearly .yearly-time-layer {
    color:#3c6553;
    color:color-mix(in srgb,var(--topic-accent,#527566) 72%,#172b25);
    font-size:14px;
  }
  #report-view .report-paper-yearly .yearly-time-section[data-time-layer="decade"] h4,
  #report-view .report-paper-yearly .yearly-brief-card-decade .yearly-time-layer { color:#5a625d; }
  #report-view .report-paper-yearly .yearly-stage-reference h4 { color:#6b7068; font-size:14px; font-weight:500; }
  #report-view .report-paper-yearly .yearly-stage-reference,
  #report-view .report-paper-yearly .yearly-time-section + .yearly-time-section {
    border-top-color:#b9c0b4;
    border-top-color:color-mix(in srgb,var(--topic-accent,#9b947f) 65%,#fffdf8);
  }
  #report-view .report-paper-yearly .risk-attention { font-size:12px; }
  #report-view .report-paper-yearly .risk-attention b { color:#886125; font-size:14px; }
  #report-view .report-paper-yearly .risk-attention-medium b { color:#95601d; }
  #report-view .report-paper-yearly .risk-attention-high b { color:#9b4346; }
  #report-view .report-paper-yearly :is(.reading-guide,.risk-scale-note,.applicability-note,.health-principle-note,.yearly-background-note,.yearly-card-note,.disclaimer) :is(strong,p) { font-size:13px; }
  #report-view .report-paper-yearly .yearly-card-note-investment :is(strong,p) { font-size:14px; }
}
#report-view :is(.report-paper-yearly,.report-paper-natal,.report-paper-marriage-compatibility) .report-disclaimer-more summary { display:flex; align-items:center; gap:7px; width:max-content; max-width:100%; min-height:44px; color:#75613a; font:500 13px/1.6 var(--sans); cursor:pointer; list-style:none; }
#report-view :is(.report-paper-yearly,.report-paper-natal,.report-paper-marriage-compatibility) .report-disclaimer-more summary::-webkit-details-marker { display:none; }
#report-view :is(.report-paper-yearly,.report-paper-natal,.report-paper-marriage-compatibility) .report-disclaimer-more summary svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.3; }
#report-view :is(.report-paper-yearly,.report-paper-natal,.report-paper-marriage-compatibility) .report-disclaimer-more .when-open { display:none; }
#report-view :is(.report-paper-yearly,.report-paper-natal,.report-paper-marriage-compatibility) .report-disclaimer-more[open] .when-closed { display:none; }
#report-view :is(.report-paper-yearly,.report-paper-natal,.report-paper-marriage-compatibility) .report-disclaimer-more[open] .when-open { display:inline; }
#report-view :is(.report-paper-yearly,.report-paper-natal,.report-paper-marriage-compatibility) .report-disclaimer-more[open] summary svg { transform:rotate(180deg); }
#report-view .report-paper-marriage-compatibility .report-disclaimer-more p + p { margin-top:12px; }
@media screen {
  #report-view .report-paper-marriage-compatibility .marriage-person > h4 { color:#26384a; font:600 16px/1.6 var(--sans); }
  #report-view .report-paper-marriage-compatibility .marriage-person-heading { justify-content:flex-start; column-gap:8px; }
  #report-view .report-paper-marriage-compatibility .marriage-person-scope { color:#637282; font-size:13px; font-weight:400; }
  #report-view .report-paper-marriage-compatibility .marriage-person[data-gender="男"] h5 { color:#2f6e80; }
  #report-view .report-paper-marriage-compatibility .marriage-person[data-gender="女"] h5,
  #report-view .report-paper-marriage-compatibility .marriage-joint h5 { color:#5b4b7a; }
  #report-view .report-paper-marriage-compatibility #marriage-S4 .marriage-chapter-number { color:#2f7665; }
}
@media print {
  #report-view :is(.report-paper-yearly,.report-paper-natal,.report-paper-marriage-compatibility) .report-disclaimer-more summary { display:none; }
}
.audit-panel { max-width:920px; margin:22px auto; padding:30px; color:#d9ddeb; background:#10182b; }
.audit-panel pre { overflow:auto; white-space:pre-wrap; font-size:11px; }

.wheel-dialog { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:20px; background:var(--theme-overlay-scrim, rgba(2,7,18,.72)); backdrop-filter:blur(8px); }
.wheel-sheet { position:relative; width:min(640px,100%); overflow:hidden; border:1px solid var(--theme-border-subtle, rgba(217,189,121,.35)); border-radius:22px; color:var(--theme-text-primary, var(--ink)); background:linear-gradient(180deg,var(--theme-surface-card, #fbf8f1),var(--theme-surface-card, #f2ede4)); box-shadow:0 35px 100px var(--theme-shadow-panel, rgba(0,0,0,.42)); }
.wheel-dialog.single-wheel .wheel-sheet { width:min(480px,100%); }
.wheel-head { display:flex; justify-content:space-between; align-items:center; height:64px; padding:0 20px; border-bottom:1px solid var(--theme-border-subtle, #ded5c7); }
.wheel-head h2 { margin:0; font:500 18px var(--serif); }
.wheel-head button { border:0; color:var(--theme-text-accent, var(--gold-dark)); background:none; cursor:pointer; }
.wheel-columns { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:14px; height:336px; padding:0 20px; }
.wheel-column { height:336px; overflow-y:auto; padding:144px 0; scroll-behavior:smooth; scroll-snap-type:y mandatory; overscroll-behavior:contain; touch-action:pan-y; scrollbar-width:none; -webkit-overflow-scrolling:touch; mask-image:linear-gradient(to bottom,transparent 0,#000 18%,#000 82%,transparent 100%); }
.wheel-column::-webkit-scrollbar { display:none; }
.wheel-option { position:relative; z-index:2; display:grid; place-items:center; flex:none; width:100%; height:48px; scroll-snap-align:center; scroll-snap-stop:always; border:0; border-radius:12px; color:var(--theme-text-secondary, #858188); background:transparent; cursor:pointer; transition:color .16s,background .16s,font-size .16s; }
.wheel-option.selected { color:var(--theme-text-accent, #192136); background:var(--theme-surface-selected, rgba(217,189,121,.5)); font-size:18px; font-weight:600; }
.wheel-highlight { position:absolute; z-index:1; left:20px; right:20px; top:208px; height:48px; pointer-events:none; border:1px solid var(--theme-border-subtle, rgba(157,119,55,.26)); border-radius:13px; background:var(--theme-surface-selected, rgba(255,255,255,.3)); box-shadow:0 7px 24px var(--theme-shadow-panel, rgba(102,75,31,.07)); }

.progress-overlay { position:fixed; inset:0; z-index:110; display:grid; place-items:center; background:var(--theme-overlay-scrim, rgba(3,8,20,.88)); backdrop-filter:blur(12px); }
.progress-card { width:min(480px,calc(100% - 40px)); padding:45px; border:1px solid var(--theme-border-subtle, rgba(221,190,116,.35)); text-align:center; background:var(--theme-surface-card, #0d1931); }
.progress-orbit { display:block; width:62px; height:26px; margin:0 auto 28px; border:1px solid var(--theme-border-subtle, var(--gold)); border-radius:50%; animation:spin 3s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.progress-card h2 { font:400 25px var(--serif); }
.progress-card > p:not(.eyebrow), .progress-card small { color:var(--theme-text-accent, rgba(255,255,255,.55)); }
.progress-track { height:2px; margin:28px 0 16px; background:var(--theme-border-subtle, rgba(255,255,255,.12)); }
.progress-track span { display:block; width:5%; height:100%; background:var(--theme-icon-accent, var(--gold)); transition:width .4s; }
.progress-card { max-height:calc(100vh - 40px); overflow-y:auto; }
.job-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:24px; }
.job-actions button { padding:10px 16px; font-size:14px; }
.job-reopen { position:fixed; right:24px; bottom:24px; z-index:100; }
@media print { .job-reopen, .progress-overlay { display:none !important; } }
.toast { position:fixed; z-index:130; left:50%; bottom:28px; max-width:min(520px,calc(100% - 30px)); transform:translateX(-50%); padding:14px 20px; color:var(--theme-text-error, #fff); background:var(--theme-surface-error, #862f3f); box-shadow:0 12px 40px var(--theme-shadow-panel, rgba(0,0,0,.3)); }

@media (max-width: 980px) {
  .report-paper.report-paper-yearly { padding:68px 56px; }
  .birth-grid { grid-template-columns:repeat(2,1fr); }
  .product-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 680px) {
  .site-header { height:68px; padding:0 18px; }
  .site-header nav, .local-mark { display:none; }
  .home-view { padding:115px 18px 45px; }
  .hero-copy h1 { font-size:48px; }
  .hero-intro br { display:none; }
  .capability-map { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .birth-entry { margin-top:48px; padding:24px 18px; }
  .entry-heading, .entry-action, .configure-heading, .generate-row { align-items:flex-start; flex-direction:column; }
  .birth-grid, .location-row, .product-grid, .report-library { grid-template-columns:1fr; }
  .birth-form-section { padding:16px 14px 18px; }
  .birth-section-label { align-items:flex-start; flex-direction:column; gap:3px; }
  .birth-controls { display:grid; gap:14px; }
  .switch-control, .dst-control { max-width:100%; margin:0; justify-content:flex-start; text-align:left; }
  .entry-action .gold-button, .generate-row .gold-button { width:100%; }
  .inner-view { padding:105px 18px 65px; }
  .natal-chart-section { padding:22px 16px 24px; }
  .natal-chart-heading { align-items:flex-start; flex-direction:column; gap:9px; }
  .natal-chart-grid { grid-template-columns:repeat(4,180px); min-width:752px; }
  .decade-guide { padding:22px 16px 24px; }
  .decade-guide-heading { align-items:flex-start; flex-direction:column; gap:9px; }
  .decade-guide-heading > p { text-align:left; }
  .timeline-row { grid-template-columns:54px minmax(0,1fr); }
  .timeline-row-label { padding-right:9px; }
  .timeline-row-label span { font-size:15px; }
  .decade-range-list { grid-auto-columns:145px; padding-left:12px; }
  .selected-decade-panel { padding-left:12px; }
  .selected-decade-meta { align-items:flex-start; flex-direction:column; gap:6px; }
  .selected-decade-meta > div { align-items:flex-start; flex-direction:column; gap:3px; }
  .decade-year-grid { grid-template-columns:repeat(10,72px); }
  .form-panel { padding:24px 18px; }
  .line-field { grid-template-columns:1fr; }
  .report-paper { padding:45px 24px; }
  .report-toolbar { flex-wrap:wrap; }
  .customer-profile { padding:22px 18px; }
  .customer-profile dl { grid-template-columns:1fr; }
  .customer-profile .profile-field-wide { grid-column:auto; }
  .customer-profile .profile-field { grid-template-columns:88px minmax(0,1fr); }
  .yearly-brief-card { grid-template-columns:30px minmax(0,1fr); gap:12px; padding:21px 19px; }
  .yearly-no-signal-panel { padding:22px 19px 18px; }
  .yearly-no-signal-item { grid-template-columns:28px minmax(0,1fr); gap:4px 10px; }
  .yearly-no-signal-item p { grid-column:2; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}

@media print {
  .no-print, .cosmos, .site-header, .report-toolbar { display:none !important; }
  body, .report-view { background:var(--theme-surface-card, #fff); }
  .report-view { padding:0; }
  .report-paper { width:100%; min-height:0; padding:0; box-shadow:none; }
  .yearly-brief-card.yearly-topic-card { break-inside:auto; }
  .yearly-time-section { break-inside:avoid; }
  .report-block, .preview-result-card, .customer-profile, .health-principle-note, .applicability-note, .yearly-background-note, .yearly-brief-card, .yearly-no-signal-item { break-inside:avoid; }
  .career-scenario-group > header { break-after:avoid; }
  .report-section h2, .report-block h3, .report-block h4 { break-after:avoid; }
}

/* 合婚沿用专题配色；章标题在框外，人物与共同分析各用一层内容框。 */
.marriage-dual { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; align-items:start; }
.marriage-chapter-heading { display:flex; align-items:baseline; gap:16px; margin-bottom:22px; }
.marriage-chapter-number { flex-shrink:0; color:var(--topic-accent); font:16px/1.5 Georgia,serif; letter-spacing:.08em; }
.report-marriage-section { scroll-margin-top:100px; }
.report-marriage-section h2 { margin:0; color:#343744; font:500 23px/1.55 var(--serif); text-align:left; }
.report-marriage-section h2::after { display:none; }
.report-paper-marriage .marriage-chapter-heading { justify-content:center; }
.report-paper-marriage .marriage-chapter-heading h2 { text-align:center; text-wrap:balance; }
.marriage-panel, .marriage-person, .marriage-joint { padding:28px; background:var(--topic-wash); border:1px solid #e3dacb; border-left:4px solid var(--topic-accent); border-radius:12px; }
.marriage-topic + .marriage-topic { margin-top:30px; }
.marriage-topic > h3 { margin:0 0 16px; color:var(--topic-accent); font:600 18px/1.5 var(--serif); }
.marriage-person { min-width:0; overflow-wrap:anywhere; }
.marriage-person h4 { margin:0 0 20px; padding-bottom:14px; border-bottom:1px solid #ded8cf; color:#454651; font:600 16px/1.6 var(--serif); }
.marriage-person .marriage-person-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:6px 16px; }
.marriage-person-scope { color:var(--topic-accent); font-size:14px; font-weight:400; }
.marriage-person-topic h5, .marriage-person > h5, .marriage-joint > h5 { margin:20px 0 12px; color:var(--topic-accent); font:600 16px/1.6 var(--serif); }
/* 合婚人物正文沿用流年字号；第四章暂时保留。边框仍由专题色控制。 */
.report-paper-marriage .marriage-person-topic h5,
.report-paper-marriage .marriage-person > h5 { color:#26384a; font-size:19px; line-height:1.55; }
.marriage-joint > h5:first-child { margin-top:0; }
.marriage-person-topic:first-of-type h5 { margin-top:0; }
.report-paper-marriage .marriage-person > p + h5,
.report-paper-marriage .marriage-joint > p + h5 { margin-top:30px; }
.report-paper-marriage .marriage-person > p + h5,
.report-paper-marriage .marriage-person-topic + .marriage-person-topic { border-top:1px solid #ded8cf; padding-top:22px; }
.marriage-person p, .marriage-joint p, .marriage-panel > p { margin:0 0 1.1em; font:16px/1.95 var(--serif); text-align:left; }
.marriage-person p:last-child, .marriage-joint p:last-child, .marriage-panel > p:last-child { margin-bottom:0; }
.marriage-person-topic + .marriage-person-topic { margin-top:26px; }
.marriage-conclusion-explanation { margin-top:24px; padding-top:16px; border-top:1px solid #ded8cf; }
.marriage-conclusion-explanation h3 { margin:0 0 8px; color:#75603b; font:600 14px/1.6 var(--serif); }
.marriage-conclusion-explanation p { margin:0; color:#716b62; font:14px/1.85 var(--serif); text-align:left; }
.marriage-empty p, .marriage-chapter > .marriage-empty-notice { font-size:13px; color:#78746b; }
.marriage-chapter > .marriage-empty-notice { margin:0 0 20px; }
.marriage-profile { border-color:var(--theme-border-subtle, #cdbb9d); }
.marriage-profile > .marriage-dual { grid-template-columns:repeat(2,minmax(0,1fr)); }
.marriage-profile .customer-profile-subject + .customer-profile-subject { margin:0; padding:0; border:0; }
.marriage-profile .customer-profile-grid { grid-template-columns:1fr; }
.marriage-profile dl { border-color:var(--theme-border-subtle, #e6dfd3); background:var(--theme-surface-card, #e6dfd3); }
.marriage-profile .profile-field { display:block; background:var(--theme-surface-card, #fffdfa); }
.marriage-profile .profile-field dd { margin-top:5px; }
.marriage-profile .customer-profile-report:empty { display:none; }
@media (max-width:600px) {
  .report-paper-marriage { padding:32px 14px; }
  .marriage-panel, .marriage-person, .marriage-joint { padding:18px 14px; }
  .marriage-dual { gap:18px; }
  .marriage-chapter-heading { gap:12px; }
  .report-marriage-section h2 { font-size:20px; }
  .marriage-profile > .marriage-dual { grid-template-columns:minmax(0,1fr); }
  .marriage-profile .customer-profile-subject + .customer-profile-subject { padding-top:18px; border-top:1px solid #e1d7c6; }
  .marriage-person p, .marriage-joint p, .marriage-panel > p { font-size:14px; line-height:1.9; }
  .marriage-conclusion-explanation p, .marriage-conclusion-explanation h3 { font-size:12px; }
  .marriage-person h4 { font-size:14px; }
}
@media print {
  .report-marriage-section, .marriage-chapter, .marriage-dual, .marriage-person { break-inside:auto; }
  .marriage-chapter-heading, .marriage-topic h3, .marriage-person h4, .marriage-person-topic h5, .marriage-person > h5, .marriage-joint > h5, .marriage-conclusion-explanation h3 { break-after:avoid; }
  .marriage-panel, .marriage-person, .marriage-joint { box-shadow:none; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
}

/* 本命沿用专题配色；颜色不参与风险判断，星级仍贴近各事项。 */
.natal-contents { margin-top:28px; padding:24px; border:1px solid #e3dacb; border-radius:12px; background:#faf7f1; }
.natal-contents strong { font:500 19px var(--serif); }
.natal-contents ol { display:grid; grid-template-columns:1fr 1fr; gap:12px 30px; padding-left:24px; }
.natal-contents a { color:#54596c; text-decoration:none; line-height:1.7; }
.natal-contents a:hover { text-decoration:underline; }
.marriage-contents.natal-contents { padding:24px 28px; }
.marriage-contents.natal-contents ol { display:block; margin:16px 0 0; padding:0; list-style:none; }
.marriage-contents li + li { border-top:1px solid #e3dacb; }
.marriage-contents a { display:grid; grid-template-columns:36px minmax(0,1fr); gap:16px; align-items:baseline; padding:13px 0; }
.marriage-contents-number { color:#927746; font:14px/1.7 Georgia,serif; letter-spacing:.08em; }

.report-natal-section { padding:28px 0 0; scroll-margin-top:100px; }
.natal-topic { padding:28px 30px; background:var(--topic-wash); border:1px solid #e3dacb; border-left:4px solid var(--topic-accent); border-radius:12px; box-shadow:0 8px 24px rgba(65,49,28,.035); }
.natal-chapter-heading { display:flex; align-items:baseline; gap:18px; margin-bottom:24px; padding-bottom:18px; border-bottom:1px solid #e3dacb; }
.natal-chapter-number { flex-shrink:0; color:var(--topic-accent); font:12px/1.4 Georgia,serif; letter-spacing:.12em; }
.report-natal-section h2 { margin:0; color:#343744; font:500 22px/1.55 var(--serif); letter-spacing:.04em; text-align:left; }
.report-natal-section h2::after { display:none; }
.natal-topic > p { margin:0 0 1.2em; line-height:1.95; }
.natal-topic > p:last-child { margin-bottom:0; }
.natal-topic .risk-attention { margin-top:24px; margin-bottom:8px; }
.report-paper-natal :is(.reading-guide, .risk-scale-note, .applicability-note, .health-principle-note, .disclaimer) p { margin:0; color:#6c6963; font:13px/1.8 var(--serif); letter-spacing:.01em; }
.report-paper-natal :is(.reading-guide, .risk-scale-note, .applicability-note, .health-principle-note, .disclaimer) strong { display:block; margin-bottom:6px; font:500 12px/1.5 var(--serif); letter-spacing:.06em; }
.report-paper-natal .reading-guide p + p { margin-top:12px; }
.natal-topic :is(.applicability-note, .health-principle-note) { margin:0 0 24px; padding:0 0 18px; border:0; border-bottom:1px solid #e3dacb; border-radius:0; background:transparent; }
.natal-topic p + .applicability-note { margin:20px 0 0; padding:14px 0 0; border:0; border-top:1px solid #e3dacb; }
/* 本命采用已确认的阅读字级与星色；正文、专题框和打印字级保持。 */
@media screen {
  #report-view .report-paper-natal .risk-attention { font-size:12px; }
  #report-view .report-paper-natal .risk-attention b { color:#886125; font-size:14px; }
  #report-view .report-paper-natal .risk-attention-medium b { color:#95601d; }
  #report-view .report-paper-natal .risk-attention-high b { color:#9b4346; }
  #report-view .report-paper-natal :is(.reading-guide,.risk-scale-note,.applicability-note,.health-principle-note,.disclaimer) strong { font-size:13px; }
}
.audit-panel { scroll-margin-top:100px; color:#44444b; background:#faf7f1; border:1px solid #e3dacb; border-radius:12px; }
.audit-review-intro { font-size:14px; line-height:1.8; }
.audit-issue { margin:20px 0; padding:22px 24px; border:1px solid #e3dacb; border-left:4px solid #b28646; border-radius:10px; background:#fffdfa; }
.audit-issue header { display:flex; justify-content:space-between; gap:16px; color:#867153; font-size:12px; line-height:1.7; }
.audit-issue a { color:#536b79; text-underline-offset:3px; }
.audit-issue h3 { margin:12px 0; font:500 18px/1.6 var(--serif); }
.audit-issue p, .audit-issue li { font:14px/1.85 var(--serif); overflow-wrap:anywhere; }
.audit-issue li { margin-top:10px; white-space:pre-line; }
.audit-issue-resolved { border-left-color:#6d9080; }
.audit-technical { margin-top:26px; padding:18px; color:#d9ddeb; background:#10182b; border-radius:8px; }
.audit-technical summary { cursor:pointer; font-size:13px; }
@media (max-width:600px) {
  .natal-contents ol { grid-template-columns:1fr; }
  .natal-topic { padding:20px 18px; }
  .natal-chapter-heading { gap:12px; }
  .report-natal-section h2 { font-size:20px; }
}
@media print {
  .report-natal-section .report-block, .natal-topic { break-inside:auto; }
  .report-natal-section .report-point-group { break-inside:auto; }
  .natal-contents { break-inside:avoid; }
  .report-natal-section .risk-attention { break-after:avoid; }
  .natal-chapter-heading { break-after:avoid; }
  .natal-topic { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
}

.customer-profile .profile-yearly-timeline { grid-template-columns:minmax(0,1fr); padding-block:8px; }
.yearly-year-strip { display:grid; grid-template-columns:repeat(10, minmax(0, 1fr)); gap:2px; align-items:center; }
.yearly-year { padding:3px 0; color:var(--theme-text-secondary, #77736c); text-align:center; white-space:nowrap; font-size:14px; line-height:1.3; }
.yearly-year-target { color:#895321; background:#f5ead5; border:1px solid #c6a26b; border-radius:6px; font-weight:700; font-size:1.15em; }
.yearly-year-target small { display:block; font-size:9px; line-height:1.2; text-align:center; }
@media screen and (max-width:600px) {
  .customer-profile .profile-yearly-timeline { padding-inline:4px; }
  .yearly-year-strip { gap:0; }
  .yearly-year { font-size:clamp(8px, 2vw, 12px); }
  .yearly-year-target { font-size:clamp(8px, 2vw, 12px); }
  .yearly-year .year-unit, .yearly-year-target small { display:none; }
}
/* 合伙复用合婚章节、人物框与目录样式；仅补充框内的细分标题和背景说明。 */
.partnership-panel h6 { margin:22px 0 12px; color:var(--topic-accent); font:600 15px/1.6 var(--serif); }
.marriage-person .partnership-background { color:#78746b; font:13px/1.8 var(--serif); margin:0 0 22px; }
@media (max-width:600px) { .partnership-panel h6 { font-size:14px; } }
@media print { .partnership-panel h6 { break-after:avoid; } }

/* 测算入口与资料流程：保留星轨透视，调整文字层级和操作顺序。 */
@media screen {
  .home-view { padding-top:128px; }
  .home-view > * { width:min(1180px,100%); margin-left:auto; margin-right:auto; }
  .hero-copy h1 { font-size:clamp(42px,4.7vw,64px); }
  .hero-copy .eyebrow { line-height:1.8; letter-spacing:.08em; }
  .home-products { margin-top:34px; }
  .selection-heading { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:20px; }
  .selection-heading h2 { margin:0; font:500 24px var(--serif); color:var(--theme-text-primary, #f4eee2); }
  .selection-heading p { margin:0; color:var(--theme-text-secondary, #c6ccd9); font-size:14px; }
  .product-card { display:flex; flex-direction:column; align-items:stretch; min-width:0; min-height:300px; padding:26px; }
  .card-top { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:24px; }
  .product-card .number { color:var(--theme-text-secondary, #c5cbd7) !important; font:13px var(--sans); letter-spacing:.02em; }
  .product-card .icon { flex-shrink:0; width:42px; height:42px; margin:0; }
  .product-card strong { margin:0 0 10px; font-size:22px; line-height:1.5; letter-spacing:.02em; }
  .card-question { margin-bottom:14px; font-size:15px; color:var(--theme-text-accent, #e4d3a7); }
  #home-view .product-card small { color:var(--theme-text-secondary, #d0d5e1); font-size:14px; line-height:1.85; }
  .card-action { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:24px; color:var(--theme-text-accent, #f1d99a); font-size:14px; }
  .capability-details { margin-top:28px; color:var(--theme-text-primary, #d0d5e1); }
  .capability-details > summary { cursor:pointer; padding:16px 0; font-size:14px; }
  .capability-map { margin-top:12px; }
  .capability-map span { color:var(--theme-text-primary, #d0d5e1); font-size:14px; line-height:1.8; }
  .capability-map b { font-size:16px; }
  .home-view .identity-strip { margin-top:30px; color:var(--theme-text-primary, #d0d5e1); }
  .home-view .identity-strip strong { color:var(--theme-text-primary, #f4eee2); }
  .home-view .identity-strip button { color:var(--theme-text-accent, #f1d99a); min-height:44px; }
  .culture-disclaimer { margin-top:24px; color:var(--theme-text-secondary, #b8c1d2); }
  .culture-disclaimer p { font:13px/1.85 var(--sans); letter-spacing:0; }
  .birth-view { padding:120px clamp(24px,8vw,150px) 60px; }
  .birth-view > * { max-width:1180px; margin-left:auto; margin-right:auto; }
  .birth-intro h1 { font:500 clamp(26px,3vw,38px)/1.4 var(--serif); color:var(--theme-text-primary, #f4eee2); margin:14px 0; }
  .birth-intro > p:last-child { color:var(--theme-text-secondary, #d0d5e1); font-size:15px; line-height:1.8; }
  .birth-view .birth-entry { margin-top:24px; }
  .birth-section-label strong { font-size:16px; color:var(--theme-text-primary, #eee4ca); }
  .birth-section-label span { font-size:13px; color:var(--theme-text-secondary, #c0c8d8); }
  .field > span { font-size:14px; color:var(--theme-text-secondary, #d2d8e4); letter-spacing:.02em; }
  .field input, .wheel-trigger { font-size:16px; }
  .wheel-trigger.placeholder { color:var(--theme-text-secondary, #bac4d7); }
  .switch-control, .check-control { font-size:13px; line-height:1.8; color:var(--theme-text-secondary, #d2d8e4); }
  .entry-heading p, .test-birth-memory, .entry-action p { font-size:13px; color:var(--theme-text-secondary, #c0c8d8); line-height:1.8; }
  .birth-controls { gap:20px; }
  .dst-control { text-align:left; }
  .site-header nav button { min-height:44px; padding:6px 4px; border-bottom:2px solid transparent; font-size:15px; }
  .site-header nav button[aria-current="page"] { color:var(--theme-text-accent, #f1d99a); border-bottom-color:var(--theme-border-accent, #d9bd79); }
  .light-page .site-header { background:var(--theme-surface-navigation, #f6f2ea); border-bottom:1px solid var(--theme-border-subtle, #d8d0c2); box-shadow:0 2px 12px var(--theme-shadow-panel, rgba(30,25,15,.04)); }
  .light-page .brand strong { color:var(--theme-text-primary, #172034); }
  .light-page .brand-seal, .light-page .brand small { color:var(--theme-text-accent, #775c28); border-color:var(--theme-border-entry, #9d7737); }
  .light-page .site-header nav button { color:var(--theme-text-secondary, #505665); }
  .light-page .site-header nav button[aria-current="page"] { color:var(--theme-text-accent, #765619); border-bottom-color:var(--theme-border-accent, #9d7737); }
  .light-page .local-mark { color:var(--theme-text-secondary, #626977); border-color:var(--theme-border-subtle, #d1c8b8); }
  .configure-view { padding-top:120px; }
  .configure-heading { display:block; max-width:1080px; padding-bottom:20px; margin:20px auto 24px; }
  .configure-heading h1 { font-size:clamp(28px,3.5vw,42px); margin:12px 0; }
  .configure-heading > p { max-width:760px; font-size:15px; line-height:1.85; color:var(--theme-text-secondary, #575d6a); }
  .configure-view > .text-back { display:block; width:100%; max-width:1080px; margin:auto; text-align:left; }
  .consultation-form { max-width:1080px; margin:auto; }
  .case-panel { margin-bottom:24px; }
  .case-name-details { color:var(--theme-text-secondary, #565c67); font-size:14px; }
  .case-name-details summary { cursor:pointer; line-height:1.8; padding:12px 0; }
  .case-name-details .edit-name { margin-left:14px; color:var(--theme-text-accent, #775919); text-decoration:underline; text-underline-offset:4px; }
  .case-name-details .line-field { margin:12px 0 20px; }
  .primary-confirmation { margin:12px 0; font-size:15px; }
  .form-panel { border-radius:16px; padding:28px; }
  .panel-title { padding-bottom:18px; margin-bottom:18px; }
  .policy-note, .panel-title p, .generate-row > p { font-size:14px; line-height:1.85; color:var(--theme-text-secondary, #5c616c); }
  .generate-row { gap:24px; margin-top:24px; }
  .generate-row > p { max-width:560px; }
  .outline-button { border-radius:10px; color:var(--theme-text-accent, #775919); border-color:var(--theme-border-entry, #ad9361); }
  .outline-button:disabled { opacity:.55; cursor:not-allowed; }
  #configure-view .birth-section-label strong { color:var(--theme-text-primary, #69532a); }
  #configure-view .birth-section-label span, #configure-view .field > span, #configure-view .switch-control, #configure-view .check-control { color:var(--theme-text-secondary, #575d69); }
  #configure-view .wheel-trigger.placeholder { color:var(--theme-text-secondary, #626975); }
  .preview-details { margin:18px 0; border:1px solid var(--theme-border-subtle, rgba(217,189,121,.28)); border-radius:14px; }
  .preview-details > summary { cursor:pointer; padding:16px 20px; font-size:15px; }
  .preview-details .natal-chart-section, .preview-details .decade-guide { margin:0; color:var(--theme-text-primary, #fff); }
  .preview-details[open] > summary { border-bottom:1px solid var(--theme-border-subtle, rgba(217,189,121,.2)); }
  .preview-details .decade-range small, .preview-details .decade-year small { font-size:12px; }
  .preview-details .natal-chart-scroll { overflow-x:auto; }
  :where(button, input, select, summary, [tabindex]):focus-visible { outline:2px solid var(--theme-border-accent, #e2bd67); outline-offset:4px; }
  .light-page :where(button, input, select, summary, [tabindex]):focus-visible { outline-color:var(--theme-border-accent, #85601f); }
  .switch-control:focus-within .switch { outline:2px solid var(--theme-border-accent, #e2bd67); outline-offset:4px; }
  .wheel-sheet { max-height:calc(100dvh - 32px); overflow-y:auto; }
  .wheel-head { position:sticky; top:0; z-index:4; background:var(--theme-surface-navigation, #fbf8f1); }
  .wheel-head button { min-width:44px; min-height:44px; color:var(--theme-text-accent, #775919); }
  .wheel-modes { display:flex; gap:8px; padding:16px 20px 0; }
  .wheel-modes button { border:1px solid var(--theme-border-control, #c9bca3); border-radius:8px; background:transparent; color:var(--theme-text-accent, #58534a); padding:10px 14px; cursor:pointer; }
  .wheel-modes button[aria-pressed="true"] { color:var(--theme-text-accent, #352709); background:var(--theme-surface-selected, #ebd6a1); border-color:var(--theme-border-accent, #a98b4b); }
  .wheel-manual { display:flex; gap:14px; padding:24px 20px 32px; }
  .wheel-manual label { display:grid; gap:10px; flex:1; min-width:0; font-size:14px; }
  .wheel-manual input, .wheel-search input { width:100%; min-height:48px; border:1px solid var(--theme-border-control, #aa9b81); border-radius:8px; padding:10px; color:var(--theme-text-primary, #172034); background:var(--theme-surface-card, #fffdf9); font-size:18px; }
  .wheel-search { display:grid; gap:8px; margin:16px 20px 0; color:var(--theme-text-secondary, #575d69); font-size:14px; }
  .wheel-scroll { position:relative; }
  .wheel-highlight { top:144px; }
  .wheel-error { margin:0; padding:14px 20px; background:var(--theme-surface-error, #f9e8e3); color:var(--theme-text-error, #882a2a); font-size:14px; line-height:1.6; }
}
@media screen and (max-width:980px) {
  .home-view .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
  .product-card { padding:20px; }
  .product-card strong { font-size:20px; }
  .product-card .number { font-size:12px; }
}
@media screen and (max-width:680px) {
  .site-header nav { display:flex; gap:12px; }
  .site-header nav button { font-size:14px; letter-spacing:0; }
  .brand { gap:10px; }
  .brand strong { font-size:16px; letter-spacing:.04em; }
  .brand small { font-size:7px; letter-spacing:.08em; }
  .site-header { padding:0 16px; }
  .home-view { padding-top:96px; }
  .hero-copy h1 { font-size:40px; line-height:1.16; }
  .hero-intro { font-size:14px; line-height:1.8; }
  .home-products { margin-top:26px; }
  .selection-heading { display:block; }
  .selection-heading h2 { font-size:22px; margin-bottom:10px; }
  .selection-heading p { font-size:13px; }
  .home-view .product-grid { grid-template-columns:1fr; gap:16px; }
  .product-card { min-height:0; padding:22px; }
  .card-top { margin-bottom:16px; }
  .product-card strong { font-size:23px; }
  .card-question { margin-bottom:10px; }
  .card-action { padding-top:20px; }
  .identity-strip { flex-wrap:wrap; }
  .capability-map { grid-template-columns:1fr; }
  .birth-view { padding:94px 18px 40px; }
  .birth-view .birth-entry { padding:22px 16px; }
  .birth-intro h1 { font-size:26px; }
  .birth-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 14px; }
  .birth-grid > .field:first-child, .birth-grid > .field:nth-child(4), .birth-grid > .field:nth-child(5) { grid-column:1 / -1; }
  .birth-section-label { gap:6px; }
  .birth-controls { gap:16px; }
  .configure-view { padding-top:94px; }
  .configure-heading h1 { font-size:28px; }
  .form-panel { padding:22px 16px; }
  .case-name-details summary { font-size:13px; }
  .generate-row .gold-button { width:100%; }
  .preview-details > summary { padding:15px; }
  .wheel-dialog { padding:12px; }
  .wheel-head { padding:0 12px; }
  .wheel-head h2 { font-size:16px; }
  .wheel-columns { gap:6px; padding:0 12px; }
}

/* 第一版本地产品流程：深蓝星轨界面，正文沿用各产品现有阅读样式。 */
@media screen {
  body[data-view] { --flow-text:var(--theme-text-primary, #d5ddeb); }
  .workflow-view { max-width:1080px; margin:auto; padding:120px 28px 125px; }
  .workflow-heading { margin:22px 0 28px; }
  .workflow-heading h1 { margin:10px 0 12px; font:500 34px/1.35 var(--serif); color:var(--theme-text-primary, #f4eee2); }
  .workflow-heading p, .workflow-note { color:var(--theme-text-secondary, #c0cbdd); font-size:14px; line-height:1.85; }
  .workflow-panel { margin:18px 0; padding:24px; border:1px solid var(--theme-border-subtle, var(--line)); border-radius:14px; background:linear-gradient(135deg,var(--theme-surface-card, rgba(10,23,43,.74)),var(--theme-surface-card, rgba(30,43,70,.56))); }
  .workflow-panel h2 { margin:0 0 18px; font:500 21px/1.5 var(--serif); }
  .workflow-panel p { color:var(--flow-text); font-size:14px; line-height:1.9; }
  .workflow-panel button, .profile-card-actions button, .library-card-actions button { min-height:40px; border:1px solid var(--theme-border-subtle, var(--line)); border-radius:8px; padding:8px 14px; color:var(--theme-text-accent, #f1d99a); background:var(--theme-surface-card, rgba(5,17,36,.35)); cursor:pointer; }
  button:disabled { cursor:not-allowed; }
  .profiles-shortcut { display:flex; align-items:center; gap:16px; width:100%; margin:24px 0 0; padding:20px 24px; border:1px solid var(--theme-border-subtle, var(--line)); border-radius:14px; color:var(--theme-text-accent, #f1e4c1); background:var(--theme-surface-library, rgba(24,40,63,.65)); text-align:left; cursor:pointer; }
  .profiles-shortcut > span:nth-child(2) { display:grid; gap:8px; flex:1; }
  .profiles-shortcut small { color:var(--theme-text-secondary, #bdc9dc); font-size:13px; }
  .profiles-shortcut strong { font-weight:500; }
  .shortcut-glyph { font:26px var(--serif); color:var(--theme-text-accent, var(--gold)); }
  #primary-summary, #home-chart-details, #home-timeline-details, #test-birth-memory { display:none !important; }
  .bottom-nav { position:fixed; bottom:0; left:0; right:0; z-index:35; display:flex; justify-content:center; gap:80px; padding:10px 20px max(10px,env(safe-area-inset-bottom)); border-top:1px solid var(--theme-border-subtle, var(--line)); background:var(--theme-surface-navigation, rgba(6,17,34,.96)); backdrop-filter:blur(12px); }
  .bottom-nav button { display:grid; gap:4px; justify-items:center; min-width:80px; border:0; background:none; color:var(--theme-text-secondary, #bec9dc); font-size:13px; cursor:pointer; }
  .bottom-nav button > span { font:25px/1 var(--serif); }
  .bottom-nav [aria-current=page] { color:var(--theme-text-accent, var(--gold-bright)); }
  body[data-view=configure] .site-header, body[data-view=birth] .site-header, body[data-view=review] .site-header, body[data-view=chart] .site-header, body[data-view=info] .site-header { display:none; }
  .configure-view, .birth-view { padding-top:36px; padding-bottom:125px; }
  .configure-view { background:transparent; color:var(--theme-text-primary, #fff); }
  .configure-view::before { display:none; }
  .configure-heading h1 { color:var(--theme-text-primary, #f4eee2); }
  .configure-heading > p, .configure-view > .text-back, .birth-view .text-back { color:var(--theme-text-secondary, #c6d1e2); }
  .configure-heading { margin:24px auto; border-color:var(--theme-border-subtle, var(--line)); }
  .profile-selector { margin-bottom:24px; }
  .profile-selector > h2 { margin:0 0 16px; font:500 19px var(--serif); }
  .profile-choice { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:12px 0; border:1px solid var(--theme-border-subtle, rgba(192,208,233,.24)); border-radius:12px; background:var(--theme-surface-card, rgba(13,28,49,.66)); }
  .profile-choice.selected { border-color:var(--theme-border-accent, #d2b36f); background:var(--theme-surface-selected, rgba(38,50,73,.72)); }
  .profile-choice label { display:flex; align-items:flex-start; gap:12px; flex:1; min-width:0; padding:18px; cursor:pointer; }
  .profile-choice input { width:18px; height:18px; margin:3px 0 0; accent-color:var(--theme-icon-accent, var(--gold)); flex-shrink:0; }
  .profile-choice label > span { display:grid; gap:7px; min-width:0; }
  .profile-choice strong { font-size:16px; font-weight:500; overflow-wrap:anywhere; }
  .profile-choice small { color:var(--theme-text-secondary, #c1cde0); font-size:13px; line-height:1.6; }
  .profile-choice > button { border:0; background:none; color:var(--theme-text-accent, var(--gold-bright)); padding:12px 18px 12px 0; cursor:pointer; }
  .add-profile { width:100%; min-height:46px; border-radius:10px; color:var(--theme-text-accent, var(--gold-bright)); border-color:var(--theme-border-entry, var(--line)); background:var(--theme-surface-card, rgba(8,24,42,.5)); }
  .case-name-details { color:var(--theme-text-secondary, #becbdf); }
  .case-name-details .edit-name { color:var(--theme-text-accent, var(--gold-bright)); }
  #configure-view .line-field > span { color:var(--theme-text-secondary, #d5ddeb); font-size:14px; }
  #configure-view .line-field input, #configure-view .line-field select { color:var(--theme-text-primary, #f2f4f8); border:1px solid var(--theme-border-control, #52627d); border-radius:8px; background:var(--theme-surface-card, #13243c); padding:12px; min-width:0; }
  #configure-view option { background:var(--theme-surface-card, #13243c); color:var(--theme-text-primary, #f2f4f8); }
  #configure-view .form-panel { background:var(--theme-surface-card, rgba(11,25,47,.68)); border-color:var(--theme-border-subtle, var(--line)); box-shadow:none; }
  #configure-view .panel-title, #configure-view .option-section { border-color:var(--theme-border-subtle, rgba(186,203,226,.18)); }
  #configure-view .panel-title h2, #configure-view .option-section h3 { color:var(--theme-text-primary, #f4e4bc); }
  #configure-view .policy-note, #configure-view .panel-title p, #configure-view .generate-row p { color:var(--theme-text-secondary, #bcc9dd); }
  #configure-view .choice-chip span { border-color:var(--theme-border-control, #52627d); border-radius:8px; color:var(--theme-text-primary, #d5ddeb); background:var(--theme-surface-card, rgba(12,27,45,.5)); }
  #configure-view .choice-chip input:checked + span { color:var(--theme-text-accent, #372a12); background:var(--theme-surface-selected, #ebd294); border-color:var(--theme-border-accent, #ebd294); }
  .birth-view .birth-entry { margin-top:20px; padding:24px; }
  .birth-view .entry-heading { display:none; }
  .birth-form-section { background:var(--theme-surface-card, rgba(10,26,47,.45)); }
  .birth-view .birth-form { padding-top:0; }
  .birth-view .birth-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .birth-view .birth-grid > .field:first-child { grid-column:1 / -1; }
  .birth-view .field input, .birth-view .wheel-trigger { border:1px solid var(--theme-border-control, #52627d); border-radius:8px; padding:12px; background:var(--theme-surface-card, rgba(7,20,39,.35)); }
  .birth-view .entry-action { padding-bottom:0; }
  .birth-view .entry-action p { display:none; }
  .step-action, .configure-view .generate-row, .birth-view .entry-action { position:sticky; bottom:0; z-index:20; display:flex; justify-content:flex-end; padding:18px 0 max(18px,env(safe-area-inset-bottom)); background:linear-gradient(0deg,var(--theme-surface-navigation, #0b182b) 55%,var(--theme-surface-navigation, rgba(11,24,43,.94))); }
  .configure-view .generate-row p { margin-right:20px; }
  .review-fields { margin:20px 0; padding:0 0 20px; border-bottom:1px solid var(--theme-border-subtle, var(--line)); }
  .review-fields:last-child { padding-bottom:0; border:0; }
  .review-fields > div { display:grid; grid-template-columns:160px 1fr; gap:14px; padding:7px 0; font-size:14px; line-height:1.7; }
  .review-fields dt { color:var(--theme-text-secondary, #c2cee0); }
  .review-fields dd { margin:0; color:var(--theme-text-primary, #f3f5fa); overflow-wrap:anywhere; }
  .status-badge { display:inline-block; margin-left:10px; padding:3px 8px; border:1px solid var(--theme-border-subtle, #60718a); border-radius:5px; color:var(--theme-text-secondary, #b9c6db); font:12px var(--sans); vertical-align:middle; }
  .email-placeholder button { opacity:.65; }
  .profiles-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .profile-card { margin:0; }
  .profile-card h2 small { margin-left:8px; font:14px var(--sans); color:var(--theme-text-primary, #c1cde0); }
  .profile-card-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:20px; }
  .profile-card-actions [data-delete-profile] { color:var(--theme-text-error, #eea6a6); margin-left:auto; }
  .profiles-list + .add-profile { margin-top:20px; }
  .profile-dialog { max-width:min(420px,calc(100% - 32px)); padding:28px; border:1px solid var(--theme-border-subtle, var(--gold)); border-radius:16px; background:var(--theme-surface-card, #13243b); color:var(--theme-text-primary, #eef2f9); }
  .profile-dialog::backdrop { background:var(--theme-overlay-scrim, rgba(0,5,15,.72)); }
  .profile-dialog p { line-height:1.8; color:var(--theme-text-secondary, #c4cfe1); }
  .profile-dialog form > div { display:flex; justify-content:flex-end; gap:16px; }
  .profile-dialog button { padding:10px 16px; border:1px solid var(--theme-border-subtle, var(--line)); border-radius:8px; background:transparent; color:var(--theme-text-accent, var(--gold-bright)); cursor:pointer; }
  .profile-undo { position:fixed; bottom:100px; left:50%; transform:translateX(-50%); z-index:45; display:flex; gap:24px; white-space:nowrap; padding:16px 22px; background:var(--theme-surface-card, #23334b); border:1px solid var(--theme-border-subtle, var(--gold)); border-radius:10px; }
  .profile-undo button { background:none; border:0; color:var(--theme-text-accent, var(--gold-bright)); cursor:pointer; }
  .local-account { display:flex; align-items:center; gap:20px; }
  .local-account p { margin:6px 0 0; }
  .account-avatar { display:grid; place-items:center; width:52px; height:52px; border-radius:50%; background:var(--theme-surface-card, #dbc38c); color:var(--theme-text-primary, #283040); font:28px var(--serif); }
  .account-links { overflow:hidden; border:1px solid var(--theme-border-subtle, var(--line)); border-radius:12px; background:var(--theme-surface-card, rgba(12,27,47,.6)); }
  .account-links button { display:flex; justify-content:space-between; width:100%; padding:20px; border:0; border-bottom:1px solid var(--theme-border-subtle, rgba(172,190,216,.14)); background:none; color:var(--theme-text-primary, #d7e0ed); text-align:left; cursor:pointer; }
  .account-links button:last-child { border:0; }
  .account-links span { color:var(--theme-text-secondary, #b9c7dc); }
  #chart-view, #info-view { padding-top:36px; }
  .chart-view { max-width:1300px; }
  #chart-status { color:var(--theme-text-secondary, #c7d3e5); font-size:14px; }
  .library-view { background:transparent; color:var(--theme-text-primary, #fff); padding-bottom:125px; }
  .library-view::before { display:none; }
  .library-view .page-intro h1 { color:var(--theme-text-primary, #f4eee2); }
  .library-view .page-intro .eyebrow, .library-product { color:var(--theme-text-accent, var(--gold-bright)); }
  .library-view .page-intro p, .library-toolbar label span { color:var(--theme-text-secondary, #bfccdf); }
  .library-toolbar label { border-color:var(--theme-border-control, var(--line)); }
  .library-toolbar input { color:var(--theme-text-primary, #e4ebf6); min-width:0; }
  .library-toolbar input::placeholder { color:var(--theme-text-secondary, #a4b5cd); }
  .library-toolbar .outline-button { color:var(--theme-text-accent, var(--gold-bright)); }
  .library-filters { display:flex; gap:14px; flex-wrap:wrap; margin:20px 0; }
  .library-filters button { padding:9px 12px; border:0; border-bottom:2px solid transparent; background:none; color:var(--theme-text-secondary, #bbc8dc); cursor:pointer; }
  .library-filters [aria-pressed=true] { color:var(--theme-text-accent, #f1d99a); border-bottom-color:var(--theme-border-accent, #d9bd79); }
  .library-card { display:block; min-width:0; border-color:var(--theme-border-subtle, var(--line)); border-radius:12px; background:var(--theme-surface-card, rgba(14,30,52,.72)); color:var(--theme-text-primary, #edf2fa); cursor:default; }
  .library-card:hover { background:var(--theme-surface-selected, rgba(25,43,69,.8)); }
  .library-card h3 { margin:12px 0; line-height:1.5; overflow-wrap:anywhere; }
  .library-card p { color:var(--theme-text-secondary, #bdc9db); }
  .library-card-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }
  .library-card-actions button { font-size:13px; }
  .empty-state { padding:40px 20px; border-color:var(--theme-border-subtle, var(--line)); color:var(--theme-text-secondary, #bdcadd); line-height:1.8; }
  .report-bottom-bar { position:fixed; bottom:0; left:0; right:0; z-index:40; display:flex; align-items:center; justify-content:center; gap:20px; padding:12px 20px max(12px,env(safe-area-inset-bottom)); background:var(--theme-surface-card, #f6f2ea); border-top:1px solid var(--theme-border-subtle, #d0c2aa); }
  .report-bottom-bar > button { min-height:44px; border:1px solid var(--theme-border-subtle, #bda778); border-radius:8px; padding:10px 18px; color:var(--theme-text-accent, #574522); background:transparent; cursor:pointer; font-size:14px; }
  .report-bottom-bar > .gold-button { background:var(--theme-surface-selected, #ecd397); }
  .report-view { padding-bottom:120px; }
  .report-directory { position:fixed; z-index:50; bottom:90px; left:50%; transform:translateX(-50%); width:min(560px,calc(100% - 32px)); max-height:65dvh; overflow:auto; padding:24px; border:1px solid var(--theme-border-subtle, #c7b38e); border-radius:14px; background:var(--theme-surface-card, #fffaf0); box-shadow:0 12px 60px var(--theme-shadow-panel, #0005); }
  .report-directory h2 { margin-top:0; font:20px var(--serif); }
  .report-directory button { display:block; width:100%; padding:14px 0; border:0; border-bottom:1px solid var(--theme-border-subtle, #e1d5c1); background:none; color:var(--theme-text-accent, #3b4151); text-align:left; cursor:pointer; }
  .report-section { scroll-margin-top:95px; }
  .generating-view { min-height:100dvh; padding-top:100px; padding-bottom:50px; }
  .generating-view .progress-overlay { position:static; display:block; background:none; backdrop-filter:none; }
  .generating-view .progress-card { width:100%; max-width:580px; margin:auto; max-height:none; overflow:visible; border:0; padding:20px; background:transparent; }
  .generating-view .progress-card h2 { color:var(--theme-text-primary, #f1d99a); }
  .generating-view .progress-card > p:not(.eyebrow), .generating-view .progress-card small { color:var(--theme-text-accent, #c7d3e5); line-height:1.8; }
  .generating-view .progress-card .eyebrow { font-size:11px; letter-spacing:.2em; }
  .generation-orbits { position:relative; width:270px; height:270px; margin:15px auto 32px; }
  .generation-sun { position:absolute; top:50%; left:50%; width:30px; height:30px; transform:translate(-50%,-50%); border-radius:50%; background:#f4d486; box-shadow:0 0 20px var(--theme-shadow-panel, #f2d182),0 0 60px 24px var(--theme-shadow-panel, #edbe6244),0 0 110px 60px var(--theme-shadow-panel, #e1b46218); }
  .generation-orbit { position:absolute; inset:20px; border:1px solid #d4ad654d; border-radius:50%; animation:generationOrbit 18s linear infinite; }
  .generation-orbit i { position:absolute; top:50%; left:-5px; width:9px; height:9px; border-radius:50%; background:#e9c777; box-shadow:0 0 12px var(--theme-shadow-panel, #e9c777); }
  .generation-orbit.orbit-b { inset:50px 35px; transform:rotate(50deg); animation-duration:12s; animation-direction:reverse; border-color:#9eb5d64d; }
  .generation-orbit.orbit-b i { background:#a7c1e4; box-shadow:0 0 12px var(--theme-shadow-panel, #a7c1e4); }
  .generation-orbit.orbit-c { inset:75px 60px; animation-duration:8s; }
  @keyframes generationOrbit { from { transform:rotate(0); } to { transform:rotate(360deg); } }
  .job-reopen { bottom:100px; }
  body[data-view=generating] .job-reopen { display:none; }
  .toast { bottom:105px; border-radius:10px; font-size:14px; }
}
@media screen and (max-width:680px) {
  .site-header { height:56px; }
  .site-header nav { gap:12px; }
  .site-header nav [data-action=mine] { display:none; }
  .home-view { padding:88px 18px 110px; }
  .hero-copy { display:flex; flex-direction:column; }
  .hero-copy h1 { order:0; margin:0 0 14px; font-size:32px; line-height:1.2; }
  .hero-copy .eyebrow { order:1; margin:0; color:var(--theme-text-accent, #d0d9e7); font-size:12px; line-height:1.85; letter-spacing:0; }
  .hero-intro { display:none; }
  .home-products { margin-top:24px; }
  .selection-heading { display:none; }
  .home-view .product-grid { gap:12px; }
  #home-view .product-card { display:grid; grid-template-columns:42px minmax(0,1fr); column-gap:14px; row-gap:7px; padding:18px; border-radius:12px; min-height:92px; }
  .product-card .card-top { display:contents; }
  .product-card .number, #home-view .product-card > small, .product-card .card-action { display:none; }
  .product-card .icon { grid-column:1; grid-row:1 / 3; align-self:center; }
  .product-card strong { grid-column:2; margin:0; font-size:19px; line-height:1.4; letter-spacing:0; }
  .product-card .card-question { grid-column:2; margin:0; font-size:13px; color:var(--theme-text-secondary, #c4cfdf); }
  .profiles-shortcut { padding:18px; margin-top:16px; font-size:14px; gap:12px; }
  .profiles-shortcut small { font-size:12px; }
  .capability-details { margin-top:12px; }
  .culture-disclaimer { margin-top:18px; }
  .culture-disclaimer p { font-size:11px; }
  .bottom-nav { justify-content:space-around; gap:0; padding-top:9px; }
  .bottom-nav button { font-size:12px; }
  .workflow-view, .library-view { padding:80px 18px 110px; }
  .workflow-heading { margin:12px 0 24px; }
  .workflow-heading h1 { font-size:28px; }
  .workflow-heading .eyebrow { font-size:11px; letter-spacing:.08em; }
  .workflow-panel { padding:18px; }
  .workflow-panel h2 { font-size:20px; }
  .configure-view, .birth-view, #review-view, #chart-view, #info-view { padding:26px 18px 70px; }
  .configure-heading { margin:26px auto; padding:0; }
  .configure-heading h1 { font-size:28px; }
  .configure-heading .eyebrow { font-size:11px; letter-spacing:.05em; }
  .configure-view .form-panel { padding:20px 16px; }
  .configure-view .panel-title > span { display:none; }
  #configure-view .check-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #configure-view .line-field { grid-template-columns:1fr; }
  .birth-view .birth-entry { border:0; padding:0; background:none; box-shadow:none; backdrop-filter:none; }
  .birth-form-section { padding:18px 14px; border-radius:12px; }
  .birth-view .birth-grid { grid-template-columns:1fr; gap:18px; }
  .birth-view .birth-grid > .field { grid-column:auto; }
  .birth-section-label span { display:none; }
  .birth-view .location-row { gap:16px; }
  .step-action, .configure-view .generate-row, .birth-view .entry-action { padding-top:14px; }
  .configure-view .generate-row p { display:none; }
  .step-action .gold-button, .birth-view .entry-action .gold-button { width:100%; }
  .review-fields > div { grid-template-columns:115px minmax(0,1fr); gap:12px; font-size:13px; }
  .profiles-list { grid-template-columns:1fr; }
  .library-view .page-intro h1 { font-size:28px; }
  .library-view .page-intro { margin-bottom:24px; }
  .library-toolbar { gap:10px; }
  .library-toolbar label span { display:none; }
  .report-library { grid-template-columns:1fr; }
  .library-card { padding:18px; }
  .report-toolbar { flex-wrap:wrap; gap:12px; }
  .report-toolbar > div { flex-wrap:wrap; }
  .report-toolbar .outline-button, .report-toolbar .gold-button { padding:10px 12px; font-size:12px; }
  .report-bottom-bar { gap:8px; padding-left:14px; padding-right:14px; }
  .report-bottom-bar > button { padding:10px 12px; font-size:12px; }
  .report-bottom-bar > .gold-button { flex:1; }
  .generating-view { padding-top:96px; }
  .generating-view .progress-card { padding:0; }
  .generation-orbits { width:240px; height:240px; margin-bottom:24px; }
}
@media (prefers-reduced-motion:reduce) {
  .generation-orbit { animation:none; }
}
@media print {
  .bottom-nav, .profile-undo, .profile-dialog, .workflow-view { display:none !important; }
}
@media screen {
  .bottom-nav svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
}
@media screen and (min-width:681px) {
  .bottom-nav { display:none; }
}
