:root {
  --cn-paper: #f4f1e9;
  --cn-ink: #20282b;
  --cn-muted: #657074;
  --cn-rule: #bbb8ae;
  --cn-soft-rule: #d9d5ca;
  --cn-accent: #7f3033;
  --cn-rise: #ad2f2b;
  --cn-fall: #18734a;
}

* { box-sizing: border-box; }
html { background: var(--cn-paper); color: var(--cn-ink); scroll-behavior: smooth; }
body.jjzz-ashare-home { margin: 0; background: var(--cn-paper); color: var(--cn-ink); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; }
.jjzz-ashare-home a { color: inherit; text-underline-offset: .18em; }
.jjzz-ashare-home a:focus-visible,
.jjzz-ashare-home button:focus-visible,
.jjzz-ashare-home input:focus-visible { outline: 2px solid var(--cn-accent); outline-offset: 3px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.cn-paper { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 24px 0 36px; }
.cn-masthead { border-top: 4px solid var(--cn-ink); border-bottom: 4px double var(--cn-ink); }
.cn-topline { display: grid; grid-template-columns: 1fr auto 1fr; gap: 18px; align-items: center; padding: 9px 0 8px; border-bottom: 1px solid var(--cn-rule); color: var(--cn-muted); font-size: 12px; letter-spacing: .04em; }
.cn-topline span:nth-child(2) { text-align: center; }
.cn-topline a { justify-self: end; }
.cn-name { display: block; width: fit-content; margin: 20px auto 4px; text-decoration: none; font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif; font-size: clamp(42px, 6vw, 72px); font-weight: 800; line-height: 1.05; letter-spacing: .16em; }
.cn-masthead > p { margin: 0 0 17px; text-align: center; color: var(--cn-muted); font-family: "Songti SC", "STSong", serif; font-size: 14px; letter-spacing: .16em; }
.cn-nav { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; padding: 10px 0; border-top: 1px solid var(--cn-rule); }
.cn-nav nav { display: flex; gap: 26px; white-space: nowrap; }
.cn-nav nav a { font-size: 14px; font-weight: 700; text-decoration: none; }
.cn-nav form { display: grid; grid-template-columns: minmax(120px, 180px) auto; }
.cn-nav input,
.cn-nav button { min-height: 36px; border: 1px solid var(--cn-ink); border-radius: 0; background: transparent; color: var(--cn-ink); font: inherit; }
.cn-nav input { padding: 7px 9px; border-right: 0; }
.cn-nav button { padding: 7px 12px; background: var(--cn-ink); color: var(--cn-paper); cursor: pointer; }
.cn-nav button:active,
.cn-button:active { transform: translateY(1px); }

.cn-edition { display: flex; gap: 18px; margin: 18px 0 0; color: var(--cn-muted); font-size: 13px; font-variant-numeric: tabular-nums; }
.cn-edition strong { color: var(--cn-ink); }
.cn-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(300px, .86fr); gap: 42px; align-items: start; margin-top: 22px; }
.cn-main,
.cn-rail { min-width: 0; }
.cn-rail { padding-left: 28px; border-left: 1px solid var(--cn-rule); }

.cn-lead { padding-bottom: 32px; border-bottom: 3px double var(--cn-ink); }
.cn-dateline,
.cn-kicker { margin: 0 0 8px; color: var(--cn-accent); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.cn-lead h1 { max-width: 15em; margin: 0 0 14px; font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif; font-size: clamp(32px, 4.3vw, 54px); line-height: 1.22; letter-spacing: -.025em; }
.cn-lead h1 a { text-decoration: none; }
.cn-summary { max-width: 46em; margin: 0 0 20px; color: #3f484b; font-family: "Songti SC", "STSong", serif; font-size: 17px; line-height: 1.85; }
.cn-home-points { margin: 0 0 22px; padding: 0; list-style: none; counter-reset: cn-point; columns: 2; column-gap: 34px; }
.cn-home-points li { display: grid; grid-template-columns: 2em 1fr; break-inside: avoid; gap: 7px; padding: 10px 0; border-bottom: 1px solid var(--cn-soft-rule); font-family: "Songti SC", "STSong", serif; font-size: 16px; line-height: 1.72; }
.cn-home-points li::before { counter-increment: cn-point; content: counter(cn-point, decimal-leading-zero); padding-top: .2em; color: var(--cn-accent); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; font-weight: 800; }
.cn-read,
.cn-more { display: inline-flex; min-height: 40px; align-items: center; color: var(--cn-accent); font-size: 14px; font-weight: 800; }
.cn-empty-lead > p:not(.cn-dateline) { max-width: 42em; font-family: "Songti SC", "STSong", serif; font-size: 17px; line-height: 1.85; }

.cn-section { padding: 32px 0 8px; border-bottom: 1px solid var(--cn-rule); }
.cn-section > h2,
.cn-rail-section > h2 { margin: 0 0 18px; font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif; font-size: 24px; line-height: 1.3; }
.cn-section > h2 { padding-bottom: 9px; border-bottom: 2px solid var(--cn-ink); }
.cn-story { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 3px 22px; padding: 0 0 22px; margin-bottom: 22px; border-bottom: 1px solid var(--cn-soft-rule); }
.cn-story:last-child { border-bottom: 0; }
.cn-story .cn-kicker { grid-row: 1 / span 2; padding-top: 5px; }
.cn-story h3,
.cn-brief-list h3,
.cn-events h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 19px; line-height: 1.5; }
.cn-story > p:last-child,
.cn-brief-list p,
.cn-events p { max-width: 38em; margin: 6px 0 0; color: #495356; font-size: 16px; line-height: 1.85; }
.cn-events,
.cn-brief-list { margin: 0; padding: 0; list-style: none; }
.cn-events li { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 20px; padding: 0 0 22px; }
.cn-events time { color: var(--cn-accent); font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums; }
.cn-brief-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 22px; padding: 0 0 22px; }
.cn-brief-list strong { align-self: start; color: var(--cn-accent); font-size: 13px; white-space: nowrap; }

.cn-rail-section { padding: 0 0 26px; margin-bottom: 26px; border-bottom: 1px solid var(--cn-rule); }
.cn-rail-section > h2 { padding-bottom: 8px; border-bottom: 2px solid var(--cn-ink); font-size: 20px; }
.cn-rail-section table { width: 100%; border-collapse: collapse; font-size: 13px; font-variant-numeric: tabular-nums; }
.cn-rail-section th,
.cn-rail-section td { padding: 9px 2px; border-bottom: 1px solid var(--cn-soft-rule); text-align: right; vertical-align: top; }
.cn-rail-section th:first-child { width: 42%; text-align: left; font-weight: 600; }
.cn-rail-section thead th { color: var(--cn-muted); font-size: 11px; font-weight: 500; }
.cn-rail-section small { display: block; margin-top: 2px; color: var(--cn-muted); font-size: 10px; font-weight: 500; }
.cn-up { color: var(--cn-rise); font-weight: 800; }
.cn-down { color: var(--cn-fall); font-weight: 800; }
.cn-neutral { color: var(--cn-muted); }
.cn-empty { margin: 0; padding: 12px 0; color: var(--cn-muted); font-size: 13px; line-height: 1.75; }
.cn-subscribe p { font-size: 13px; line-height: 1.7; }
.cn-subscribe .mailpoet_form { margin: 14px 0 0; }
.cn-subscribe .mailpoet_paragraph { margin: 0 0 9px; }
.cn-subscribe .mailpoet_text,
.cn-subscribe .mailpoet_submit {
  width: 100% !important;
  min-height: 40px;
  border: 1px solid var(--cn-ink) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font: inherit !important;
}
.cn-subscribe .mailpoet_text {
  padding: 8px 10px !important;
  background: transparent !important;
  color: var(--cn-ink) !important;
}
.cn-subscribe .mailpoet_submit {
  padding: 8px 12px !important;
  background: var(--cn-ink) !important;
  color: var(--cn-paper) !important;
  cursor: pointer;
}
.cn-subscribe .mailpoet_validate_success,
.cn-subscribe .mailpoet_validate_error {
  font-size: 12px;
  line-height: 1.6;
}
.cn-button { display: inline-flex; min-height: 40px; align-items: center; padding: 7px 14px; background: var(--cn-ink); color: var(--cn-paper) !important; text-decoration: none; }
.cn-small { color: var(--cn-muted); font-size: 11px !important; }
.cn-recent { margin: 0; padding: 0; list-style: none; }
.cn-recent li { display: grid; grid-template-columns: 88px 1fr; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--cn-soft-rule); }
.cn-recent time { color: var(--cn-muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.cn-recent a { font-family: "Songti SC", "STSong", serif; font-size: 13px; line-height: 1.55; }

.cn-footer { display: grid; grid-template-columns: auto 1fr; gap: 12px 34px; margin-top: 36px; padding-top: 18px; border-top: 4px double var(--cn-ink); color: var(--cn-muted); font-size: 12px; }
.cn-footer strong { color: var(--cn-ink); }
.cn-footer nav { display: flex; justify-content: flex-end; gap: 20px; }
.cn-footer p { grid-column: 1 / -1; margin: 0; }

.cn-caption,
.cn-source,
.cn-small { color: var(--cn-muted); font-size: 12px !important; line-height: 1.6; }
.cn-story .cn-source { margin-top: 10px; }
.cn-story .cn-source a { color: var(--cn-accent); font-weight: 700; }
.cn-fold { padding: 14px 0; border-bottom: 1px solid var(--cn-rule); font-size: 16px; line-height: 1.8; }
.cn-fold summary { cursor: pointer; font-family: "Songti SC", "STSong", serif; font-size: 20px; font-weight: 700; }
.cn-fold p { max-width: 38em; }
.cn-fold dl { display: grid; grid-template-columns: 10em 1fr; gap: 6px 18px; max-width: 48em; }
.cn-fold dt { font-weight: 700; }
.cn-fold dd { margin: 0; }
.cn-table-scroll { overflow-x: auto; }
.cn-table-scroll table { min-width: 620px; }
.cn-story strong { font-weight: 800; }

@media (max-width: 820px) {
  .cn-paper { width: min(100% - 28px, 720px); padding-top: 14px; }
  .cn-topline { grid-template-columns: 1fr auto; }
  .cn-topline span:nth-child(2) { display: none; }
  .cn-name { margin-top: 16px; font-size: clamp(38px, 11vw, 58px); }
  .cn-nav { grid-template-columns: 1fr; gap: 10px; }
  .cn-nav nav { gap: 18px; overflow-x: auto; padding-bottom: 3px; }
  .cn-nav form { grid-template-columns: 1fr auto; }
  .cn-grid { grid-template-columns: 1fr; gap: 0; }
  .cn-rail { padding: 26px 0 0; border-left: 0; }
  .cn-home-points { columns: 1; }
  .cn-story { grid-template-columns: 1fr; gap: 2px; }
  .cn-story .cn-kicker { grid-row: auto; }
  .cn-events li { grid-template-columns: 90px minmax(0, 1fr); gap: 12px; }
  .cn-footer { grid-template-columns: 1fr; }
  .cn-footer nav { justify-content: flex-start; flex-wrap: wrap; }
  .cn-footer p { grid-column: auto; }
}

@media (max-width: 480px) {
  .cn-name { letter-spacing: .09em; }
  .cn-masthead > p { letter-spacing: .06em; }
  .cn-lead h1 { font-size: 31px; }
  .cn-events li { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}

@media print {
  .cn-nav form,
  .cn-subscribe { display: none; }
  .cn-paper { width: 100%; }
}

/* Mobile reading order follows the agreed V5: summary, indices, narrative, metals. */
@media (max-width: 820px) {
  .cn-grid { display: flex; flex-direction: column; }
  .cn-main, .cn-rail { display: contents; }
  .cn-lead { order: 0; width: 100%; }
  .cn-section, .cn-rail-section { width: 100%; }
  .cn-rail-section { order: 8; margin-top: 24px; }
  #cn-indices { order: 1; }
  #cn-events { order: 2; }
  #cn-sectors { order: 3; }
  #cn-market-updates { order: 4; }
  #cn-watchlist { order: 5; }
  #cn-reviews { order: 6; }
  #cn-breadth, #cn-focus { order: 7; }
  #cn-subscribe { order: 9; }
  .cn-story > p:last-child,
  .cn-brief-list p,
  .cn-events p,
  .cn-fold { font-size: 16px; }
}
.cn-rail-section .cn-small { overflow-wrap: anywhere; margin: 10px 0 0; }
.cn-mobile-quick { padding:12px 0; border-bottom:1px solid var(--cn-rule); }
.cn-mobile-quick h2 { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.cn-mobile-quick-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.cn-mobile-quick a { display:flex; flex-wrap:wrap; gap:8px; text-decoration:none; align-items:baseline; font-variant-numeric:tabular-nums; }
.cn-mobile-quick em { font-style:normal; }
.cn-story { display:block; max-width:620px; }
.cn-story p,.cn-brief-list p,.cn-summary { font-family:inherit; font-size:16px; line-height:1.85; max-width:38em; }
.cn-story p { margin:8px 0; }
.cn-story .cn-kicker { font-size:14px; }
.cn-paper table { width:100%; border-collapse:collapse; font-size:14px; font-variant-numeric:tabular-nums; }
.cn-paper th,.cn-paper td { padding:9px 4px; text-align:right; border-bottom:1px solid var(--cn-rule); }
.cn-paper th:first-child { text-align:left; }
.cn-paper small { font-size:12px; display:block; }
.cn-rail-section thead th,.cn-home-points li::before,.cn-recent time {font-size:12px;}
.cn-rail-section small {font-size:12px;}
.cn-home-points a {text-decoration:none;}
.cn-home-points a:hover {text-decoration:underline;}
.cn-fold summary {min-height:44px;}
.cn-caption {display:block;}
:target {scroll-margin-top:16px;}
@media(max-width:820px) {
 .cn-name {font-size:38px;margin:10px auto 4px;}
 .cn-masthead>p {margin-bottom:8px;}
 .cn-nav {gap:6px;padding:6px 0;}
 .cn-mobile-quick a {display:grid;gap:0;font-size:14px;}
 .cn-mobile-quick strong {font-size:14px;}
 .cn-mobile-quick span {font-size:16px;font-weight:700;}
 .cn-fold dl {display:block;}
 .cn-fold dd {margin-bottom:12px;}
 .cn-main>.cn-section {padding:20px 0 0;}
}
.cn-points-title {font-size:20px;margin:16px 0 8px;}
.cn-brief-list {font-size:16px;}
.cn-lead .cn-summary {white-space:pre-line;}
.cn-story p {max-width:38em;}
.cn-main>.cn-section>h2 {font-size:24px;}
.cn-fold p,.cn-fold li,.cn-fold dd {font-size:16px;}
@media(max-width:820px){
 .cn-rail-section table {font-size:14px;}
 .cn-lead {padding-bottom:18px;}
 .cn-home-points li {padding:7px 0;}
 .cn-section {padding-top:22px;}
 .cn-story {margin-bottom:16px;padding-bottom:16px;}
 .cn-rail-section {padding-bottom:14px;margin-bottom:14px;}
}
.cn-quick-metals {display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;font-size:14px;}
.cn-quick-metals small {width:100%;font-size:12px;}
.cn-quote-details summary {cursor:pointer;min-height:40px;font-size:16px;line-height:1.8;}
.cn-fold .cn-table-scroll th,.cn-fold .cn-table-scroll td {font-size:14px;}
/* Compact vertical rhythm, while keeping the audited reading sizes. */
.cn-story h3 {margin:0 0 6px;}
.cn-story p {margin:4px 0;line-height:1.8;}
.cn-story {padding-bottom:12px;margin-bottom:12px;}
.cn-story:last-child {margin-bottom:0;}
.cn-brief-list p {line-height:1.8;}
@media(max-width:820px){
 .cn-main>.cn-section {padding-top:16px;}
 .cn-section>h2 {margin-bottom:12px;}
 .cn-rail-section {margin-top:12px;margin-bottom:8px;padding-bottom:8px;}
 .cn-rail-section>h2 {margin-bottom:8px;}
 .cn-home-points li {padding:5px 0;}
 .cn-paper {padding-bottom:20px;}
}
.cn-utility {max-width:680px;min-height:45vh;margin:32px auto;font-size:17px;line-height:1.85;}
.cn-utility h1,.cn-utility h2 {font-family:"Songti SC","STSong",serif;}
.cn-utility h1 {font-size:32px;}.cn-utility h2 {font-size:24px;}
.cn-utility input,.cn-utility button {font:inherit;max-width:100%;border:1px solid var(--cn-ink);border-radius:0;padding:8px;background:var(--cn-paper);}
.cn-utility button,.cn-utility input[type=submit] {background:var(--cn-ink);color:var(--cn-paper);}
/* V5 print typography: locally hosted Noto Serif SC, licensed under SIL OFL. */
:root {--cn-serif:"JJZZ Song","Songti SC","STSong","SimSun",serif;}
.cn-name,.cn-lead h1,.cn-section h2,.cn-section h3,.cn-story h3,.cn-rail-section h2,.cn-fold summary,.cn-utility h1,.cn-utility h2 {font-family:var(--cn-serif);font-weight:700;}
.cn-story p:not(.cn-kicker):not(.cn-source),.cn-brief-list p,.cn-events p {font-family:var(--cn-serif);font-size:16.5px;line-height:1.9;max-width:34em;}
.cn-summary {font-family:var(--cn-serif);font-size:18px;line-height:1.9;max-width:32em;}
.cn-home-points {columns:1;}
.cn-home-points li {font-family:var(--cn-serif);font-size:17px;line-height:1.8;grid-template-columns:2.2em 1fr;gap:16px;padding:8px 0;}
.cn-home-points li::before {font-family:var(--cn-serif);font-size:15px;color:var(--cn-accent);border-right:2px solid var(--cn-accent);padding-right:12px;}
.cn-story h3,.cn-brief-list h3 {font-size:21px;}
.cn-paper table {font-family:var(--cn-serif);font-size:14.5px;font-variant-numeric:tabular-nums lining-nums;}
.cn-paper th:first-child {font-size:15px;}
.cn-paper small,.cn-paper thead th,.cn-caption {font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-size:12px;}
.cn-mobile-quick-grid span,.cn-mobile-quick-grid em {font-family:var(--cn-serif);font-variant-numeric:tabular-nums;}
.cn-nav nav a {font-family:var(--cn-serif);font-size:16px;}
.jjzz-ashare-home .cn-read,.jjzz-ashare-home .cn-more,.jjzz-ashare-home .cn-source,.jjzz-ashare-home .cn-nav a[aria-current=page] {color:var(--cn-accent);}
.cn-read::after,.cn-more::after {content:" →";white-space:pre;}
.cn-utility {font-family:var(--cn-serif);}
@media(max-width:820px){.cn-home-points li{font-size:16.5px;gap:12px;padding:6px 0;}.cn-story h3,.cn-brief-list h3{font-size:20px;}.cn-summary{font-size:17px;}.cn-nav nav{gap:18px;}}
@media(max-width:820px){
 .cn-edition {display:grid;grid-template-columns:auto 1fr;gap:5px 16px;}
 .cn-edition strong,.cn-edition>a {white-space:nowrap;}
 .cn-edition>span {grid-column:1/-1;}
}
.cn-jumps {display:flex;flex-wrap:wrap;gap:8px 20px;margin:14px 0;font-size:14px;}
.cn-jumps a {color:var(--cn-accent);}
.cn-rail-section svg {display:block;width:100%;height:auto;}
.cn-rail-section td:last-child {min-width:76px;white-space:nowrap;}
.cn-nav nav a,.cn-footer nav a,.cn-rail-section th a,.cn-rail-section td a {min-height:40px;display:inline-flex;align-items:center;}
@media print {details>*{display:block!important;} .cn-nav,.cn-jumps,.cn-subscribe{display:none;} .cn-grid{display:block;} .cn-rail{border:0;padding:0;} a{color:#000!important;}}
