/* Wood desk, mounted paper, ink and vermilion: one material system for every view. */
:root {
  --bg-paper:#f6f3e9; --paper-raised:#faf7ef; --paper-inset:#ece7d9;
  --ink-primary:#302c25; --ink-secondary:#6a6050; --vermilion:#a63728;
  --green:#4e6855; --rule:#b7a78a; --rule-soft:#d3c5a8;
  --manuscript-paper:linear-gradient(110deg,#fffdf52b,#ffffff00 50%,#e3d9c312),url('../assets/materials/xuan-paper-v2.png');
  --manuscript-wood:url('../assets/materials/dark-wood.png');
}
body { margin:0; padding:0 24px 68px; background-color:#30251d; background-image:linear-gradient(90deg,#130e0999,transparent 35%,transparent 65%,#130e0999),var(--manuscript-wood); background-size:100% 100%,760px 760px; background-attachment:fixed; }
.preview-bar { background:#201b17d9; border:0; border-bottom:1px solid #c9b48d33; color:#e9dcc4; margin:0 -24px; padding-inline:24px; }
.preview-bar span { color:#c4b398; }
.preview-controls button { color:#e0cfb0; border-color:#8e7c5e; }
.preview-controls button[aria-pressed=true] { background:#c4ad82; border-color:#c4ad82; color:#271f16; }
#user-bar { max-width:1120px; padding:12px 0!important; background:transparent!important; color:#e9dcc6!important; }
#user-bar strong,#user-bar>span { color:#e9dcc6!important; }
#user-bar #profile-btn { color:#e9dcc6!important; }
#user-bar #logout-btn { color:#dca38a!important; }
.app-container { max-width:1120px; width:100%; margin:22px auto 0; position:relative; isolation:isolate; background-color:var(--bg-paper); background-image:var(--manuscript-paper); border:1px solid #d4c5a7; box-shadow:0 3px 0 #b8a383,0 6px 0 #e0d2b7,0 7px 0 #8b7557,0 18px 34px #100b0870,inset 0 0 54px #b7a17c16; border-radius:1px; }
.app-container:before { content:''; position:absolute; z-index:1; pointer-events:none; top:-10px; left:14%; width:72%; height:15px; border:1px solid #20170f; border-radius:2px; background-image:linear-gradient(#a58a5b55,#17110bd9),var(--manuscript-wood); background-size:auto,600px; box-shadow:inset 0 2px 1px #d6bb8b70,0 5px 9px #3024184d; }
.app-container:after { content:''; pointer-events:none; position:absolute; z-index:-1; inset:13px 12px; border:1px solid #a7906b50; border-left:3px double #a7906b60; border-right:3px double #a7906b60; }
.view { padding:42px 42px 38px; }
#report-view { padding-top:36px; }
.report-paper { background:transparent; }
.report-header { border-top:0; margin-bottom:28px; }
.report-actions-row { min-height:100px; margin-bottom:28px; gap:22px; padding:4px 0 24px; border-bottom:3px double #a8916e; }
.brand-seal-only { height:auto; display:flex; align-items:center; gap:24px; min-width:0; }
.brand-seal-only .seal-container { width:82px; height:82px; flex:none; border:4px double var(--vermilion); transform:rotate(-4deg)!important; box-shadow:inset 0 0 0 3px var(--bg-paper),inset 0 0 0 4px #a6372850; }
.brand-seal-only .seal-mark { font-size:29px; line-height:1; padding:6px; gap:3px; }
.manuscript-masthead { min-width:0; }
.manuscript-masthead h1 { font:700 36px/1.4 var(--font-serif); margin:0; letter-spacing:.025em; color:#302c25; }
.manuscript-masthead p { font:12px/1.7 var(--font-sans); letter-spacing:.16em; margin:8px 0 0; color:var(--ink-secondary); }
.header-actions { gap:8px; flex:none; }
.header-actions .action-btn { min-height:44px; padding:9px 12px; font-size:14px; }
.identity-card { grid-template-columns:minmax(0,1fr) minmax(232px,.85fr) 160px; column-gap:24px; padding:28px 24px; border:0; border-bottom:1px solid var(--rule); background:transparent; position:relative; }
.id-name { font-size:36px; line-height:1.35; }
.id-subtitle { font-size:13px; margin-top:10px; }
.id-bazi { padding-left:22px; border-color:var(--rule); }
.pillar-label { font-size:13px; }
.pillar-char { font-size:30px; }
.id-date { font-size:12px; }
#audit-verdict-seal.verdict-seal { width:152px; min-height:74px; padding:13px 9px; border:5px double var(--vermilion); font-size:32px; line-height:1.25; letter-spacing:.04em; opacity:.95; transform:rotate(-5deg); box-shadow:inset 0 0 0 2px #f5efdf,inset 0 0 0 3px #a637283d; }
#audit-verdict-seal.verdict-seal[data-len="5"],#audit-verdict-seal.verdict-seal[data-len="6"] { font-size:27px; }
.opinion-box.full-width { min-width:0; width:100%; padding:0 24px 24px; background:transparent; border:0; border-bottom:1px solid var(--rule-soft); }
.audit-brief { padding-bottom:22px; border-color:var(--rule); }
.audit-brief-title { font-size:25px; color:#302c25; }
.audit-brief-item strong { font-size:17px; }
.rich-text { font-size:17px; line-height:2; }
.sticky-note-inline { margin:24px 14px 0; padding:20px 26px; background-color:#ece0bf; background-image:var(--manuscript-paper); color:var(--vermilion); border:1px solid #bfa77b; box-shadow:2px 5px 7px #6b4c2524; transform:rotate(-.65deg); position:relative; }
.sticky-note-inline:before { content:''; position:absolute; top:-1px; left:24px; width:36px; height:8px; background:#aa977039; border-inline:1px solid #aa977044; }
.sticky-note-inline p { color:var(--vermilion); font-size:25px; line-height:1.7; }
.dashboard-row-bottom { margin-top:5px; border-top:3px double var(--rule); border-bottom:3px double var(--rule); gap:0; }
.chart-card.overview-radar,.stats-panel.overview-stats { border:0; border-radius:0; background:transparent!important; padding:26px 22px; }
.chart-card.overview-radar { border-right:1px solid var(--rule); }
.overview-radar:after { display:none; }
.overview-radar h4,.overview-stats h4 { font-size:25px; }
.score-column-heading h5 { color:var(--score-color); }
.score-track { background-image:linear-gradient(#beaf91,#beaf91); }
.balance-sheet-grid { gap:0; margin:32px 0; border:1px solid #b29977; border-top:4px double #a88a63; border-bottom:4px double #a88a63; background-image:linear-gradient(90deg,transparent 49.9%,#a6372824 50%,transparent 50.1%); }
.sheet-column { border:0; background:transparent; }
.sheet-column:first-child { border-right:1px solid #a6372860; }
.column-header { border:0; border-bottom:1px solid var(--rule-soft); padding:19px 20px 13px; margin:0 0 13px; font-size:26px; }
.sheet-column:last-child .column-header { border-top:0; }
#assets-summary>div,#liabilities-summary>div { padding:0 20px 16px!important; }
.audit-card { padding:21px 20px; border-bottom:1px solid #aa906344; }
.card-name { font-size:18px; }
.card-body,.nice-typography { color:#3b3429; line-height:1.95; }
.action-note { padding:9px 11px; background:#ded0b02b; border-left:2px solid #a78b60; color:#655440; font-size:13px; }
.grade-badge { border-radius:1px; font-size:12px; padding:3px 7px; background:transparent!important; }
.net-worth-display { background-color:#e8ddc4; background-image:var(--manuscript-paper); border:1px solid #b5a17e; border-block:3px double #9e8460; padding:30px; }
.nw-stat-value { font-family:var(--font-serif); font-size:46px; }
.nw-rank-title { font-size:26px; }
.nw-rank-desc { font-size:14px; }
.kline-section>h3,.owners-equity>h3 { font-size:28px; border-bottom:3px double #927654!important; padding-bottom:17px!important; }
.kline-chart-panel { background:#fbf7ed80; border-color:var(--rule); border-radius:0; padding:15px 10px; }
.owners-equity { background:transparent; padding:30px 26px; border:1px solid #a98e67; border-top:5px double #96754c; position:relative; }
.owners-equity:before { display:none; }
.equity-content>div:first-child { background:#e9dfc86b; border-block:1px solid #c0ae8e; padding:22px 20px; }
#core-value-text .equity-core-main { font-size:25px; line-height:1.7; }
.owners-equity .equity-strategy { padding:24px 0; grid-template-columns:118px minmax(0,1fr); border-bottom:1px solid var(--rule-soft); }
.owners-equity .equity-strategy>h3 { font-size:19px; border-left:2px solid var(--vermilion); color:#583e2d; }
.manuscript-colophon { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:28px; padding:24px 6px 3px; border-top:3px double var(--rule); }
.manuscript-colophon p { font:13px/1.9 var(--font-serif); color:var(--ink-secondary); margin:0; }
.manuscript-colophon .manuscript-imprint { flex:none; width:80px; height:80px; display:grid; place-content:center; border:4px double var(--vermilion); color:var(--vermilion); transform:rotate(-5deg); font:27px/1.1 var(--font-hand); letter-spacing:.05em; }
.manuscript-imprint span { display:block; }
.preview-report-note { color:#756448; border-color:#b49e7b; }
.main-header { padding:32px 12px; margin:0 0 24px; border-bottom:3px double #ad9470; }
.main-header .seal-container { width:96px; height:96px; border:4px double var(--vermilion); box-shadow:none; }
.main-header .seal-mark { font-size:34px; }
.app-title { font:700 42px/1.5 var(--font-serif); letter-spacing:.08em; margin:25px 0 10px; }
.input-section { max-width:590px; border:1px solid #bca783; background:#fffcf130; padding:30px 34px; margin-bottom:28px; box-shadow:3px 4px 0 #d6c8aa66; }
#landing-view.active .input-section { transform-origin:center top; animation:manuscript-sheet-open 650ms cubic-bezier(.2,.65,.2,1); }
.form-group label { font-size:16px; font-weight:600; }
.ink-input { border-bottom:1px solid #ae9069; background:#eae0ca60; border-radius:0; font-size:16px; }
.ink-input:focus { background:#fffaf0; outline:2px solid var(--vermilion); outline-offset:2px; }
.calibration-header h2 { font-size:34px; }
#bazi-container { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); width:100%; max-width:720px; gap:16px; margin:32px auto; }
#bazi-container .pillar { min-width:0; padding:18px 8px; }
#bazi-container .bazi-select { font-family:'ZCOOL XiaoWei',var(--font-serif)!important; font-size:30px!important; }
.pillar { background-color:#f8f0dc; background-image:var(--manuscript-paper); border:1px solid #af9268; border-top:3px double #99734b; border-radius:0; }
#ritual-view { min-height:650px; perspective:900px; background-image:var(--manuscript-paper); }
.seal-container.seal-ritual { width:118px; height:118px; border:5px double var(--vermilion); box-shadow:0 10px 20px #4c281e20,inset 0 0 0 4px #a6372810; animation:manuscript-seal-breathe 3s ease-in-out infinite!important; }
.seal-container.seal-ritual .seal-mark { font-size:39px; }
.ritual-text { font:600 27px/1.9 var(--font-serif); color:#4b3b29; }
.ritual-progress-bar { width:min(420px,80%); height:3px; background:#ccba94; }
.ritual-progress-fill { background:#a63728; }
.profile-card { background-color:#f8f0df!important; background-image:var(--manuscript-paper)!important; border-color:var(--rule)!important; box-shadow:none!important; }
.profile-archive-item,.history-item { background:#e7dcc366; border-color:#bba27b; }
@keyframes manuscript-seal-breathe { 0%,100% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-5px) rotate(-3deg); } }
@keyframes manuscript-sheet-open { from { opacity:.2; transform:perspective(900px) rotateX(6deg) translateY(9px); } to { opacity:1; transform:perspective(900px) rotateX(0) translateY(0); } }
@media(max-width:1050px) {
  .manuscript-masthead h1 { font-size:30px; }
  .brand-seal-only { gap:20px; }
  .identity-card { grid-template-columns:minmax(0,1fr) 160px; column-gap:24px; }
  .id-left { grid-column:1; grid-row:1/3; }
  #audit-verdict-seal.verdict-seal { grid-column:2; grid-row:1; }
  .id-right { grid-column:2; grid-row:2; }
  .id-bazi { grid-column:1/-1; grid-row:3; padding:18px 0 0; margin:10px 0 0; border:0; border-top:1px solid var(--rule-soft); }
}
@media(max-width:800px) {
  body { padding-inline:16px; }
  .preview-bar { margin-inline:-16px; padding-inline:16px; }
  .view { padding:30px 23px; }
  .manuscript-masthead h1 { font-size:27px; }
  .brand-seal-only .seal-container { width:76px; height:76px; }
  .brand-seal-only .seal-mark { font-size:27px; }
  .brand-seal-only { gap:18px; }
  .manuscript-masthead p { letter-spacing:.04em; }
  .report-actions-row { flex-wrap:wrap; }
  .identity-card { padding:22px 12px; }
  .id-name { font-size:34px; }
  .chart-card.overview-radar,.stats-panel.overview-stats { padding:22px 13px; }
  .overview-radar h4,.overview-stats h4 { font-size:24px; }
  .column-header { font-size:23px; padding:16px 14px 12px; }
  .audit-card { padding:18px 14px; }
  .card-name { font-size:17px; }
  .card-body { font-size:15px; }
  .owners-equity { padding:24px 20px; }
  .owners-equity .equity-strategy { grid-template-columns:1fr; gap:12px; }
  .owners-equity>h3>span { display:block; margin:8px 0 0!important; }
  .equity-content>div:first-child { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  body { padding-inline:10px; padding-bottom:32px; }
  .preview-bar { margin-inline:-10px; padding-inline:14px; }
  .app-container { margin-top:12px; }
  .app-container:after { inset:9px 7px; }
  .view,#report-view { padding:25px 16px; }
  .report-actions-row { gap:20px; padding-bottom:22px; margin-bottom:18px; }
  .brand-seal-only { gap:15px; }
  .brand-seal-only .seal-container { width:70px; height:70px; }
  .brand-seal-only .seal-mark { font-size:25px; padding:5px; }
  .manuscript-masthead h1 { font-size:25px; letter-spacing:0; }
  .manuscript-masthead p { font-size:10px; letter-spacing:0; margin-top:7px; }
  .header-actions { margin-left:auto; }
  .header-actions .action-btn { padding:8px 14px; min-height:40px; }
  .identity-card { grid-template-columns:minmax(0,1fr) 144px; column-gap:8px; row-gap:17px; padding:16px 8px 23px; }
  .id-left { grid-column:1/-1; grid-row:1; }
  .id-name { font-size:30px; }
  .id-subtitle { font-size:12px; }
  .id-right { grid-column:1; grid-row:2; align-self:center; justify-self:start; }
  #audit-verdict-seal.verdict-seal { grid-column:2; grid-row:2; width:128px; min-height:66px; font-size:27px; padding:10px 6px; }
  #audit-verdict-seal.verdict-seal[data-len="5"],#audit-verdict-seal.verdict-seal[data-len="6"] { font-size:23px; }
  .id-date { font-size:11px; }
  .id-bazi { margin:0; padding-top:17px; gap:8px; }
  .pillar-char { font-size:27px; }
  .opinion-box.full-width { padding:0 6px 20px; }
  .audit-brief-title { font-size:23px; }
  .audit-brief-item strong { font-size:16px; }
  .rich-text { font-size:16px; }
  .sticky-note-inline { margin:21px 3px 0; padding:17px 16px; }
  .sticky-note-inline p { font-size:23px; }
  .dashboard-row-bottom { grid-template-columns:1fr; }
  .chart-card.overview-radar { border-right:0; border-bottom:1px solid var(--rule); }
  .chart-card.overview-radar,.stats-panel.overview-stats { padding:23px 9px; }
  .score-columns { column-gap:20px; }
  .score-column-liabilities:before { left:-10px; }
  .score-item-name { font-size:14px; }
  .column-header { font-size:20px; padding:15px 9px 10px; }
  #assets-summary>div,#liabilities-summary>div { padding-inline:9px!important; }
  .audit-card { padding:15px 9px; }
  .card-name { font-size:16px; }
  .card-body { font-size:14px; }
  .grade-badge { font-size:11px; padding:3px 5px; }
  .action-note { font-size:12px; padding:7px; }
  .net-worth-display { padding:24px 14px; }
  .nw-stat-value { font-size:36px; }
  .nw-rank-title { font-size:23px; }
  .kline-section>h3,.owners-equity>h3 { font-size:25px; }
  .owners-equity { padding:23px 14px; }
  #core-value-text .equity-core-main { font-size:22px; }
  .equity-content>div:first-child { padding:16px 12px; }
  .manuscript-colophon { gap:16px; }
  .manuscript-colophon .manuscript-imprint { width:72px; height:72px; font-size:25px; }
  .manuscript-colophon p { font-size:12px; }
  .main-header { padding:24px 0; }
  .app-title { font-size:32px; letter-spacing:.02em; }
  .input-section { padding:23px 15px; }
  #bazi-container { gap:8px; }
  #ritual-view { min-height:560px; }
  .ritual-text { font-size:23px; text-align:center; }
}
@media(max-width:360px) {
  #bazi-container { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .manuscript-masthead h1 { font-size:22px; }
  .brand-seal-only { gap:12px; }
  .brand-seal-only .seal-container { width:66px; height:66px; }
  .id-name { font-size:28px; }
  .identity-card { padding-inline:0; }
  .score-columns { column-gap:16px; }
  .score-column-liabilities:before { left:-8px; }
}
@media(prefers-reduced-motion:reduce) { .seal-container.seal-ritual { animation:none!important; } }
body.export-mode .report-paper { background-color:var(--bg-paper); background-image:var(--manuscript-paper); }
body.export-mode .manuscript-imprint,body.export-mode #audit-verdict-seal { animation:none!important; }
/* Rotated seals need a paper margin inside the captured PNG/PDF boundary. */
body.export-mode .report-paper { box-sizing:border-box; width:calc(100% + 24px); margin-inline:-12px; padding:12px; }

/* Native phone scrolling and comfortable controls, including landscape safe areas. */
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { --desk-gutter:24px; padding-left:max(var(--desk-gutter),env(safe-area-inset-left)); padding-right:max(var(--desk-gutter),env(safe-area-inset-right)); padding-bottom:max(68px,env(safe-area-inset-bottom)); }
#radar-container,#radar-container canvas,#kline-chart canvas { touch-action:pan-y pinch-zoom!important; }
@media(max-width:800px) { body { --desk-gutter:16px; } }
@media(max-width:600px) { body { --desk-gutter:10px; } }
@media(max-width:480px) {
  #bazi-container { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
}
@media(pointer:coarse) {
  body { background-attachment:scroll; }
  #user-bar { backdrop-filter:none; -webkit-backdrop-filter:none; }
  button,.preview-controls button,.header-actions .action-btn,.radio-label { min-height:44px; min-width:44px; touch-action:manipulation; }
  #user-bar a { display:inline-flex; align-items:center; min-height:44px; }
  .ink-input { min-height:48px; font-size:16px!important; }
  #bazi-container .bazi-select { min-height:44px; min-width:44px; }
  .radar-tools { height:48px; align-items:center; }
  .radar-mode-button { min-height:44px; padding:10px 12px; font-size:13px; }
}

/* One reading face, one brush face. No additional display family per module. */
:is(.view,#user-bar,.preview-bar) * { font-family:var(--font-serif)!important; }
:is(.seal-mark,.seal-mark *,#roast-text,.verdict-seal,.manuscript-imprint,.manuscript-imprint *) { font-family:var(--font-hand)!important; }
.element-flow svg { display:block; width:100%; height:auto; margin:17px 0 0; overflow:visible; }
.element-flow h4 { margin:0; }
.element-flow-note { margin:10px 0 0; font-size:12px; line-height:1.8; color:#71664f; }
.element-destination { cursor:pointer; outline:none; }
.element-destination:focus-visible rect { stroke-width:3; }
.element-stream { transition:stroke-opacity 160ms; }
.element-flow[data-selected]:not([data-selected=""]) .element-stream { stroke-opacity:.08; }
.element-flow[data-selected=wood] [data-element=wood],.element-flow[data-selected=fire] [data-element=fire],.element-flow[data-selected=earth] [data-element=earth],.element-flow[data-selected=metal] [data-element=metal],.element-flow[data-selected=water] [data-element=water] { stroke-opacity:.85; }
.dashboard-row-bottom { grid-template-columns:1fr 1.15fr; }
.sticky-note-inline { border:0; background:none; box-shadow:none; margin:16px 8px 25px 12%; padding:0 12px 9px 0; transform:rotate(-2deg); }
.sticky-note-inline:before { display:none; }
.sticky-note-inline:after { content:''; position:absolute; right:8%; bottom:0; width:43%; height:4px; border-bottom:3px solid #9f3025; border-radius:50%; transform:rotate(-2deg); opacity:.8; }
.sticky-note-inline p { font-size:30px; line-height:1.55; text-align:left; color:#992b20; text-shadow:.4px .7px 0 #92251940; }
#audit-verdict-seal.verdict-seal { background:#a73527; color:#fff3da; border-color:#922c20; box-shadow:inset 0 0 0 3px #eed7b5,inset 0 0 0 5px #9f3425,2px 4px 0 #702a21,5px 9px 13px #592b2440; font-size:42px; padding:10px 6px; line-height:1.08; }
.manuscript-colophon .manuscript-imprint { color:#fff0d8; background:#a73527; border-color:#8c2b20; box-shadow:inset 0 0 0 2px #ebd0aa,2px 3px 0 #702a21,4px 6px 9px #592b2430; }
@media(max-width:600px) {
  .dashboard-row-bottom { grid-template-columns:1fr; }
  .sticky-note-inline { margin:12px 3px 23px 4%; padding-right:3px; }
  .sticky-note-inline p { font-size:26px; }
  #audit-verdict-seal.verdict-seal { font-size:36px; padding:9px 6px; }
}
.radar-tools { gap:14px; height:48px; align-items:center; }
.radar-mode-button,.radar-turn-button { margin:0; min-height:44px; padding:8px 6px; border:0; border-bottom:1px solid #a28c67; color:#695c45; background:transparent; cursor:pointer; font:13px/1.5 var(--font-serif); }
body.export-mode .radar-turn-button { display:none; }
.report-paper { position:relative; }
.app-container,.report-paper,.input-section,.owners-equity,.pillar,#ritual-view,.profile-card { background-size:auto,600px 600px; }
.app-container { border-color:#ddd6c5; box-shadow:0 1px 1px #d3caba,0 3px 0 #eee8d9,0 4px 1px #938473,0 14px 26px #100b0860,inset 0 0 34px #a5967610; }
.app-container:before { display:none; }
.manuscript-roller { position:absolute; z-index:10; left:0; right:0; top:0; height:13px; pointer-events:none; border-radius:50% / 3px; background-color:var(--bg-paper); background-image:linear-gradient(#fffef9bd,#ddd5c58a),url('../assets/materials/xuan-paper-v2.png'); background-size:auto,600px 600px; border-bottom:1px solid #bcb09a70; box-shadow:0 7px 10px #37261624,inset 0 2px 2px #fffef9; }
body.export-mode .manuscript-roller { display:none!important; }

/* Native time modes and a writing area sized for actual life-event notes. */
.time-mode-toggle { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.time-mode-toggle .radio-label { display:flex; align-items:center; justify-content:center; gap:8px; min-height:50px; margin:0; padding:10px 6px; border:1px solid var(--rule); font-size:16px!important; white-space:nowrap; cursor:pointer; background:#faf7ef80; -webkit-tap-highlight-color:transparent; }
.time-mode-toggle .radio-label:has(input:checked) { border-color:var(--vermilion); color:var(--vermilion); background:#a637280c; box-shadow:inset 0 -2px var(--vermilion); }
.time-mode-toggle input { flex:none; width:16px; height:16px; margin:0; }
.time-mode-help,.story-writing-help { margin:10px 0 0; font-size:14px; line-height:1.8; color:var(--ink-secondary); }
#shichenSelect { appearance:auto; min-height:52px; font-size:17px; }
.calibration-story-block { width:100%; max-width:960px; text-align:left; margin:28px auto 0; }
.calibration-story-label { text-align:left; justify-content:flex-start; font-size:23px!important; }
.calibration-story-label span { margin-left:10px; font-size:14px; font-weight:400; color:var(--ink-secondary); }
#major-events { display:block; width:100%; min-height:300px; padding:20px 22px; font-size:18px; line-height:1.9; resize:vertical; overflow-y:auto; text-align:left; }
.calibration-story-help { max-width:none; text-align:left; margin-top:10px; font-size:13px; }
.calibration-story-actions { justify-content:flex-start; }
.calibration-info-box { display:flex; align-items:flex-start; gap:14px; width:100%; max-width:720px; min-height:78px; margin:0 auto; padding:15px 18px; text-align:left; line-height:1.9; }
.calibration-info-box .info-icon { flex:none; color:var(--vermilion); font-size:14px; padding-top:2px; }
#bazi-explanation-text { font-size:15px; white-space:pre-line; }
#bazi-container { margin-bottom:18px; }
.pillar-explain { background:transparent; border:0; border-bottom:1px dotted var(--rule); cursor:help; padding:4px 7px; min-height:36px; }
#bazi-container .bazi-select { appearance:auto!important; min-width:52px; }
.calibration-element { flex:none; display:grid; place-items:center; width:34px; height:34px; padding:0; border:1px solid var(--element-color); border-radius:2px; color:var(--element-color); background:var(--paper-raised); font-size:18px; cursor:help; }
.app-floating-tooltip { font-family:var(--font-serif); font-size:15px; line-height:1.8; white-space:pre-line; }
@media(max-width:600px) {
  .time-mode-toggle .radio-label { font-size:15px!important; }
  .calibration-story-block { margin-top:24px; }
  #major-events { min-height:280px; padding:16px 14px; font-size:17px!important; }
  .calibration-story-label { font-size:22px!important; }
  .calibration-info-box { padding:13px 12px; gap:10px; }
  .pillar-explain { min-height:44px; }
  #bazi-container { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .calibration-element { width:44px; height:44px; }
}

#bazi-container .pillar { border-top:3px solid var(--pillar-color,var(--rule)); }
.calibration-element { color:#fffdf5; background:var(--element-color); }
.calibration-story-actions { justify-content:flex-end; align-items:stretch; gap:12px; }
.calibration-story-actions button { margin:0!important; min-height:46px; display:inline-flex!important; align-items:center; justify-content:center; padding:10px 16px!important; font-size:15px!important; line-height:1.5!important; }
.card-name>span { font-size:16px!important; line-height:1.7!important; }
.card-name .tooltip-term { font-size:inherit!important; }
@media(max-width:600px) {
  .calibration-story-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .calibration-story-actions button { width:100%!important; padding:10px 8px!important; font-size:14px!important; }
  .card-name>span { font-size:14px!important; }
}

/* Explanations stay readable on the page and in a complete report image. */
.dimension-trigger { appearance:none; display:flex; flex-direction:column; align-items:center; gap:2px; width:100%; margin:0; padding:3px 0; border:0; border-bottom:1px dotted var(--rule); border-radius:0; background:transparent; color:var(--ink-primary); font:inherit; cursor:help; }
.dimension-trigger span { font-size:16px; }
.dimension-trigger small { font-size:14px; color:var(--ink-secondary); }
.dimension-score dd small { margin-left:2px; font-size:13px; font-weight:400; color:var(--ink-secondary); }
.dimension-reading,.element-reading { margin-top:18px; padding:14px 0 0; border-top:1px solid var(--rule-soft); font-size:15px; line-height:1.85; color:var(--ink-primary); }
.dimension-reading strong,.element-reading strong { display:block; font-size:16px; font-weight:600; }
.dimension-reading p,.element-reading p { margin:6px 0 0; min-height:5.55em; }
.dimension-source,.element-flow-note { margin:12px 0 0; font-size:13px; line-height:1.85; color:var(--ink-secondary); }
.chart-explainer { cursor:help; }
.chart-explainer:focus-visible { outline:2px solid #a63828; outline-offset:4px; }
.element-stream:hover,.element-stream:focus { stroke-width:8; stroke-opacity:1!important; }
.radar-turn-button:disabled { opacity:.65; cursor:progress; }
body.export-mode .element-stream { stroke-opacity:.38!important; }
body.export-mode .app-floating-tooltip { display:none!important; }
@media(max-width:600px) {
  .dimension-trigger span { font-size:15px; }
  .dimension-trigger small { font-size:13px; }
  .dimension-score dd { font-size:27px; }
  .dimension-reading,.element-reading { font-size:14px; }
  .dimension-reading strong,.element-reading strong { font-size:15px; }
}

/* The closing leaf: one continuous manuscript, with a clear final judgement. */
.app-container { border-color:#d9d2c3; box-shadow:0 1px 0 #f4f0e6,0 3px 0 #c5bbaa,0 5px 0 #eee8dc,0 6px 1px #afa18d,0 20px 36px #130d0866,inset 9px 0 18px -15px #88745788,inset -9px 0 18px -15px #88745766; }
.owners-equity { margin-top:48px!important; padding:34px 30px 22px; border:0; border-top:3px double #766953; border-bottom:1px solid #ab9c83; background:transparent; }
.manuscript-endnote { display:block; margin:0 0 11px; color:#97604a; font-size:13px; line-height:1.6; letter-spacing:.28em; }
.owners-equity>h3 { display:flex; align-items:baseline; flex-wrap:wrap; gap:10px 20px; margin:0 0 28px!important; padding:0!important; border:0!important; font-size:34px; line-height:1.55; letter-spacing:.035em; }
.owners-equity>h3>span { margin:0!important; font-size:14px!important; line-height:1.8; color:#796f5f; letter-spacing:.02em; }
.owners-equity .equity-content>div:first-child { display:block!important; position:relative; margin:0 0 12px!important; padding:24px 0 30px!important; border:0; border-top:1px solid #c5b9a4; border-bottom:1px solid #c5b9a4; background:transparent; }
.owners-equity .equity-content>div:first-child>span:first-child { display:block; width:fit-content; padding:0!important; margin:0 0 13px; color:#946149!important; font-size:14px!important; letter-spacing:.16em; }
#core-value-text { display:block; }
#core-value-text .equity-core-main { display:block; max-width:25em; font-size:30px; line-height:1.8; font-weight:600; color:#302d27; text-wrap:pretty; }
#core-value-text .equity-core-pill-row { margin-top:17px; gap:12px 22px; }
#core-value-text .equity-core-pill { padding:0 0 3px; border:0; border-bottom:1px solid #b8aa90; border-radius:0; background:transparent; color:#71654f; font-size:14px; line-height:1.8; }
.owners-equity .equity-strategy { position:relative; grid-template-columns:174px minmax(0,1fr); gap:24px; padding:26px 0; border-bottom:1px solid #b8aa8b55; }
.owners-equity .equity-strategy>h3 { position:relative; margin:0; padding:2px 0 0 43px; border:0; color:#353127; font-size:20px; line-height:1.8; font-weight:600; }
.owners-equity .equity-strategy:before { content:attr(data-folio); position:absolute; left:0; top:29px; color:#927c5c; font-size:25px; line-height:1.5; }
.owners-equity .equity-strategy-body { font-size:17px; line-height:2; color:#474238; }
.owners-equity .equity-strategy-body p { margin:0; text-align:justify; }
.owners-equity .equity-strategy:last-child { padding-bottom:28px; }
.manuscript-colophon { gap:24px; margin-top:4px; padding:28px 8px 8px 0; border-top:3px double #a89a82; }
.manuscript-colophon p { display:flex; flex-direction:column; gap:8px; }
.colophon-name { color:#4a4338; font-size:17px; letter-spacing:.14em; }
.colophon-motto { color:#81715a; font-size:15px; letter-spacing:.06em; }
.manuscript-colophon .manuscript-imprint { position:relative; width:104px; height:104px; border:3px solid #943224; outline:1px solid #a63828; outline-offset:3px; background:#a63828; color:#fff0d8; font-size:36px; line-height:1.08; letter-spacing:.035em; transform:rotate(-6deg); box-shadow:inset 0 0 0 2px #edd4b4,inset 0 0 0 4px #a63828,1px 2px 1px #702a215c,4px 8px 12px #592b242b; }
.manuscript-colophon .manuscript-imprint:after { content:''; position:absolute; inset:3px; pointer-events:none; border:1px solid #f2dcc480; }
@media(max-width:800px) {
  .owners-equity { padding:28px 12px 20px; }
  .owners-equity>h3 { font-size:30px; }
  .owners-equity .equity-strategy { grid-template-columns:1fr; gap:10px; padding:23px 0; }
  .owners-equity .equity-strategy:before { top:25px; }
  #core-value-text .equity-core-main { font-size:27px; }
}
@media(max-width:600px) {
  .owners-equity { margin-top:34px!important; padding:26px 6px 18px; }
  .owners-equity>h3 { display:block; font-size:28px; margin-bottom:22px!important; }
  .owners-equity>h3>span { margin-top:8px!important; font-size:13px!important; }
  .manuscript-endnote { font-size:12px; }
  .owners-equity .equity-content>div:first-child { padding:20px 0 24px!important; }
  #core-value-text .equity-core-main { font-size:25px; line-height:1.8; }
  #core-value-text .equity-core-pill { font-size:13px; }
  .owners-equity .equity-strategy>h3 { font-size:20px; padding-left:39px; }
  .owners-equity .equity-strategy:before { font-size:24px; }
  .owners-equity .equity-strategy-body { font-size:16px; line-height:2; }
  .manuscript-colophon { gap:12px; padding-top:25px; padding-right:8px; }
  .colophon-name { font-size:15px; letter-spacing:.07em; }
  .colophon-motto { font-size:13px; letter-spacing:0; }
  .manuscript-colophon .manuscript-imprint { width:86px; height:86px; font-size:30px; }
}
body.pdf-export .audit-card,body.pdf-export .equity-strategy,body.pdf-export .manuscript-colophon,body.pdf-export .identity-card { break-inside:avoid; page-break-inside:avoid; }
body.pdf-export .equity-strategy>h3 { break-after:avoid; page-break-after:avoid; }

/* Account actions belong to the manuscript, in the same place before and after login. */
.account-toolbar { display:flex; justify-content:flex-end; align-items:center; min-height:64px; padding:8px 32px; border-bottom:1px solid var(--rule-soft); }
.account-toolbar #user-bar { position:static!important; width:auto!important; max-width:100%; margin:0!important; padding:0!important; border:0!important; background:transparent!important; box-shadow:none!important; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:4px 18px; font:15px/1.6 var(--font-serif)!important; }
.account-toolbar #user-bar>span { color:var(--ink-primary)!important; overflow-wrap:anywhere; }
.account-toolbar #user-bar-name { min-width:0; max-width:100%; }
.account-toolbar :is(#login-open-btn,#profile-btn,#logout-btn) { position:static!important; appearance:none; width:auto; min-height:44px; margin:0!important; padding:8px 2px!important; border:0!important; border-bottom:1px solid transparent!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; color:var(--ink-secondary)!important; font:500 15px/1.6 var(--font-serif)!important; letter-spacing:.06em; cursor:pointer; }
.account-toolbar #login-open-btn { color:var(--vermilion)!important; border-bottom-color:#a6372855!important; font-size:16px!important; }
.account-toolbar #user-bar #profile-btn { color:var(--ink-primary)!important; }
.account-toolbar #user-bar #logout-btn { color:var(--ink-secondary)!important; }
.account-toolbar :is(#login-open-btn,#profile-btn,#logout-btn):hover { color:var(--vermilion)!important; border-bottom-color:var(--vermilion)!important; }
.account-toolbar :is(#login-open-btn,#profile-btn,#logout-btn):focus-visible { outline:2px solid var(--vermilion); outline-offset:4px; }
@media(max-width:600px) { .account-toolbar { min-height:60px; padding:6px 18px; } .account-toolbar #user-bar { column-gap:14px; } }
