* { box-sizing: border-box; }
body { font-family: 'PingFang SC','Noto Sans SC',system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
.chart-280 { height:280px; width:100%; }
.chart-300 { height:300px; width:100%; }
.chart-320 { height:320px; width:100%; }
.chart-340 { height:340px; width:100%; }
.section-rule { border-left:4px solid #1e3a5f; padding-left:14px; }
.callout-blue  { border-left:4px solid #2d5a8e; background:#eef5fc; padding:16px 20px; border-radius:8px; }
.callout-green { border-left:4px solid #16a34a; background:#f0fdf4; padding:16px 20px; border-radius:8px; }
.callout-red   { border-left:4px solid #dc2626; background:#fff1f2; padding:16px 20px; border-radius:8px; }
.callout-gold  { border-left:4px solid #d97706; background:#fffbeb; padding:16px 20px; border-radius:8px; }
thead th { background:#1e3a5f; color:white; font-weight:500; font-size:12px; padding:10px 14px; }
thead th:first-child { border-radius:8px 0 0 0; }
thead th:last-child  { border-radius:0 8px 0 0; }
tbody td { padding:9px 14px; font-size:13px; border-bottom:1px solid #f1f5f9; color:#334155; }
tbody tr:last-child td { border-bottom:none; }
tbody tr:hover td { background:#f8fafc; }
.up   { color:#16a34a; font-weight:600; }
.down { color:#dc2626; font-weight:600; }
.neu  { color:#94a3b8; }

/* Shared report content system */
.report-content {
  font-family:'PingFang SC','Noto Sans SC',system-ui,sans-serif;
  color:#334155;
  padding-top:56px !important;
  padding-bottom:56px !important;
}
.report-content > section,
.report-content > div[id] {
  margin-bottom:64px !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

/* Unified, clickable table of contents */
.report-content > :first-child { margin-bottom:64px !important; }
.report-content :has(> .report-toc-title) {
  padding:32px !important;
  border:1px solid #e2e8f0 !important;
  border-radius:16px !important;
  background:#fff !important;
  box-shadow:0 1px 3px rgb(15 23 42 / 0.08) !important;
}
.report-content .report-toc-title {
  margin:0 0 24px !important;
  padding-left:14px !important;
  border-left:4px solid #1e3a5f !important;
  font-size:24px !important;
  line-height:32px !important;
  font-weight:700 !important;
  color:#1e293b !important;
}
.report-content .report-toc-title > span { display:none !important; }
.report-content :has(> .report-toc-title) > :not(.report-toc-title) {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:10px 16px !important;
  margin:0 !important;
  padding:0 !important;
}
.report-content :has(> .report-toc-title) a {
  display:flex !important;
  align-items:center !important;
  min-height:44px !important;
  padding:9px 12px !important;
  border:1px solid #e2e8f0 !important;
  border-radius:8px !important;
  background:#f8fafc !important;
  font-size:14px !important;
  line-height:20px !important;
  color:#334155 !important;
  text-decoration:none !important;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease !important;
}
.report-content :has(> .report-toc-title) a::after {
  content:'\2192';
  margin-left:auto;
  padding-left:12px;
  color:#94a3b8;
  font-size:16px;
}
.report-content :has(> .report-toc-title) a:hover,
.report-content :has(> .report-toc-title) a:focus-visible {
  border-color:#93c5fd !important;
  background:#eff6ff !important;
  color:#1d4ed8 !important;
  outline:none !important;
}
.report-content :has(> .report-toc-title) a:hover::after,
.report-content :has(> .report-toc-title) a:focus-visible::after { color:#2563eb; }
.report-content :has(> .report-toc-title) a > span:last-child:not(:first-child) {
  display:none !important;
}
.report-content [id] { scroll-margin-top:24px; }
html { scroll-behavior:smooth; }

@media (max-width:640px) {
  .report-content :has(> .report-toc-title) { padding:24px !important; }
  .report-content :has(> .report-toc-title) > :not(.report-toc-title) {
    grid-template-columns:1fr !important;
  }
}

/* Executive summary and numbered section headings. */
.report-content h2.section-rule,
.report-content .report-summary-title {
  margin:0 0 24px !important;
  padding-left:14px !important;
  border-left:4px solid #1e3a5f !important;
  font-size:24px !important;
  line-height:32px !important;
  font-weight:700 !important;
  color:#1e293b !important;
}
.report-content .report-summary-title > span { display:none !important; }

/* Body copy within analytical sections. */
.report-content section p,
.report-content > div[id] p {
  font-size:14px;
  line-height:1.75;
  color:#475569;
}

/* Plot containers. */
.report-content [id^="chart_"] {
  width:100%;
  margin:0 !important;
}

/* Unified report footer */
.report-footer {
  margin-top:64px;
  padding:32px 0 16px;
  border-top:1px solid #cbd5e1;
  background:transparent;
  border-radius:0;
  color:#64748b;
  font-size:14px;
  line-height:1.75;
}
.report-footer p {
  margin:0 0 12px;
  color:#64748b;
  font-size:14px;
  line-height:1.75;
}
.report-footer strong {
  color:#334155;
  font-weight:600;
}
.report-footer .report-footer-brand {
  margin-top:24px;
  margin-bottom:0;
  color:#94a3b8;
  font-size:12px;
}

/* Shared conclusion and outlook blocks */
.report-content .sub-title,
.report-content .conclusion-title {
  margin:0 0 20px;
  color:#334155;
  font-size:18px;
  line-height:28px;
  font-weight:600;
}
.report-content .conclusion-list {
  display:grid;
  gap:16px;
  margin-bottom:32px;
}
.report-content .conclusion-item {
  display:flex;
  gap:16px;
  padding:20px;
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#fff;
  box-shadow:0 1px 2px rgb(15 23 42 / 0.05);
}
.report-content .conclusion-num {
  flex:0 0 40px;
  color:#2563eb;
  font-size:20px;
  line-height:28px;
  font-weight:700;
}
.report-content .conclusion-body { min-width:0; }
.report-content .conclusion-body h4 {
  margin:0 0 8px;
  color:#1e293b;
  font-size:16px;
  line-height:24px;
  font-weight:600;
}
.report-content .conclusion-body p { margin:0; }
.report-content .outlook-panel {
  margin-top:32px;
  padding:28px;
  border-radius:12px;
  background:#1e3a5f;
  color:#fff;
}
.report-content .outlook-panel > h3,
.report-content .outlook-title {
  margin:0 0 20px;
  color:#fff;
  font-size:18px;
  line-height:28px;
  font-weight:700;
}
.report-content .outlook-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.report-content .outlook-item {
  padding:18px;
  border:1px solid rgb(255 255 255 / 0.12);
  border-radius:10px;
  background:rgb(255 255 255 / 0.08);
}
.report-content .outlook-item h4 {
  margin:0 0 8px;
  color:#bfdbfe;
  font-size:15px;
  line-height:22px;
  font-weight:600;
}
.report-content .outlook-item p {
  margin:0;
  color:#cbd5e1;
  font-size:13px;
  line-height:1.7;
}

/* Unified executive-summary findings and follow-up panels */
.report-content :has(> .report-core-title),
.report-content :has(> .report-outlook-title) {
  padding:32px !important;
  border:1px solid rgb(255 255 255 / 0.08) !important;
  border-radius:16px !important;
  background:linear-gradient(135deg,#0f1923,#1e3a5f) !important;
  color:#e2e8f0 !important;
  box-shadow:none !important;
}
.report-content .report-core-title,
.report-content .report-outlook-title {
  display:block !important;
  margin:0 0 20px !important;
  padding:0 !important;
  border:0 !important;
  color:#fff !important;
  font-size:18px !important;
  line-height:28px !important;
  font-weight:700 !important;
}
.report-content .report-core-title > span,
.report-content .report-outlook-title > span { display:none !important; }
.report-content :has(> .report-core-title) > :not(.report-core-title),
.report-content :has(> .report-outlook-title) > :not(.report-outlook-title) {
  margin:0 !important;
  color:#cbd5e1 !important;
  font-size:14px !important;
  line-height:1.75 !important;
}
.report-content :has(> .report-core-title) > :not(.report-core-title) {
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:16px !important;
}
.report-content :has(> .report-core-title) > :not(.report-core-title) > * {
  margin:0 !important;
  color:#cbd5e1 !important;
  font-size:14px !important;
  line-height:1.75 !important;
}
.report-content :has(> .report-core-title) p,
.report-content :has(> .report-core-title) li,
.report-content :has(> .report-core-title) p > span:not(:first-child) {
  color:#cbd5e1 !important;
  font-size:14px !important;
  line-height:1.75 !important;
}
.report-content :has(> .report-core-title) li > span:first-child,
.report-content :has(> .report-core-title) > div > div > span:first-child {
  color:#6ee7b7 !important;
}
.report-content :has(> .report-outlook-title) > :not(.report-outlook-title) {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:16px !important;
}
.report-content :has(> .report-outlook-title) > :not(.report-outlook-title) > * {
  margin:0 !important;
  padding:18px !important;
  border:1px solid rgb(255 255 255 / 0.12) !important;
  border-radius:10px !important;
  background:rgb(255 255 255 / 0.08) !important;
  box-shadow:none !important;
}
.report-content :has(> .report-outlook-title) h4,
.report-content :has(> .report-outlook-title) > :not(.report-outlook-title) > * > div:first-child {
  margin:0 0 8px !important;
  color:#bfdbfe !important;
  font-size:15px !important;
  line-height:22px !important;
  font-weight:600 !important;
}
.report-content :has(> .report-outlook-title) p {
  margin:0 !important;
  color:#cbd5e1 !important;
  font-size:13px !important;
  line-height:1.7 !important;
}

@media (max-width:768px) {
  .report-content :has(> .report-core-title),
  .report-content :has(> .report-outlook-title) { padding:24px !important; }
  .report-content :has(> .report-outlook-title) > :not(.report-outlook-title) {
    grid-template-columns:1fr !important;
  }
}

/* Shared RCEP section components used by legacy report layouts */
.report-content .report-section { margin-bottom:64px; }
.report-content .kpi-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin-bottom:32px;
}
.report-content .kpi-card {
  padding:20px;
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#fff;
  box-shadow:0 1px 2px rgb(15 23 42 / 0.05);
}
.report-content .kpi-label {
  margin-bottom:8px;
  color:#64748b;
  font-size:12px;
  line-height:18px;
}
.report-content .kpi-value {
  color:#1e293b;
  font-size:24px;
  line-height:32px;
  font-weight:700;
}
.report-content .kpi-unit,
.report-content .kpi-sub,
.report-content .kpi-desc {
  margin-top:4px;
  color:#94a3b8;
  font-size:12px;
  line-height:18px;
}
.report-content .kpi-yoy {
  margin-top:8px;
  font-size:14px;
  line-height:20px;
  font-weight:600;
}
/* RCEP KPI reference: 202607 (responsive 2/4 grid and semantic value colors). */
.report-content .rcep-kpi-grid .kpi-card {
  padding:20px;
  border:1px solid #e2e8f0;
  border-radius:8px;
  background:#fff;
  box-shadow:0 1px 2px rgb(15 23 42 / 0.05);
}
.report-content .rcep-kpi-grid .kpi-label { margin-bottom:4px; }
.report-content .rcep-kpi-grid .kpi-value { margin-bottom:4px; color:#0f172a; }
.report-content .rcep-kpi-grid .kpi-card:nth-child(2) .kpi-value { color:#059669; }
.report-content .rcep-kpi-grid .kpi-card:nth-child(3) .kpi-value { color:#2563eb; }
.report-content .rcep-kpi-grid .kpi-card:nth-child(4) .kpi-value { color:#7c3aed; }
.report-content .rcep-kpi-grid .kpi-yoy { margin-top:0; }
.report-content .rcep-kpi-grid .kpi-desc { margin-top:4px; color:#94a3b8; }
/* Executive-summary KPI reference: 202607. */
.report-content .summary-kpi-grid .kpi-card {
  padding:20px;
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#fff;
  box-shadow:0 1px 2px rgb(15 23 42 / 0.05);
}
.report-content .summary-kpi-grid .kpi-label { margin-bottom:4px; }
.report-content .summary-kpi-grid .kpi-value { margin:0; color:#1e293b; }
.report-content .summary-kpi-grid .kpi-unit { margin:0 0 8px; color:#94a3b8; }
.report-content .summary-kpi-grid .kpi-yoy { margin:0; }
.report-content .summary-kpi-grid .kpi-desc { margin-top:8px; color:#64748b; }
.report-content .num-up { color:#16a34a; font-weight:600; }
.report-content .num-dn,
.report-content .num-abnormal { color:#dc2626; font-weight:600; }
.report-content .muted { color:#94a3b8; }
.report-content .prose-block {
  display:grid;
  gap:16px;
  margin-bottom:32px;
  color:#475569;
  font-size:14px;
  line-height:1.75;
}
.report-content .prose-block p { margin:0; }
.report-content .data-table {
  width:100% !important;
  min-width:860px;
  margin:0 !important;
  border-collapse:collapse !important;
}
.report-content .data-table thead th { white-space:nowrap; }
.report-content .data-table tbody tr:nth-child(even) td { background:#f8fafc; }
.report-content .data-table tbody tr:hover td { background:#eff6ff; }
@media (max-width:640px) {
  .report-content {
    padding-top:40px !important;
    padding-bottom:40px !important;
  }
  .report-content > :first-child.bg-white,
  .report-content > :first-child > .bg-white { padding:20px !important; }
  .report-content .outlook-grid { grid-template-columns:1fr; }
  .report-content .conclusion-item { padding:16px; }
  .report-content .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Stable visual contracts for the seven recurring table categories. */
.data-table[class*="table-category-"] {
  width:100% !important;
  border:1px solid #e2e8f0 !important;
  border-radius:8px !important;
  background:#fff !important;
  font-variant-numeric:tabular-nums;
}
.data-table[class*="table-category-"] th,
.data-table[class*="table-category-"] td {
  padding:12px 14px !important;
  line-height:1.5 !important;
  vertical-align:middle !important;
}
.data-table[class*="table-category-"] thead th {
  color:#334155 !important;
  background:#f1f5f9 !important;
  border-bottom:1px solid #cbd5e1 !important;
  font-size:13px !important;
  font-weight:600 !important;
}
.data-table[class*="table-category-"] tbody td {
  color:#475569 !important;
  border-bottom:1px solid #e2e8f0 !important;
  font-size:13px !important;
}
.data-table[class*="table-category-"] tbody tr:last-child td { border-bottom:0 !important; }
.table-category-1 { min-width:760px !important; }
.table-category-2 { min-width:880px !important; }
.table-category-3,
.table-category-7 { min-width:860px !important; }
.table-category-4 { min-width:980px !important; }
.table-category-5,
.table-category-6 { min-width:920px !important; }
.table-category-1 th:first-child,
.table-category-1 td:first-child { min-width:140px; }
.table-category-2 th:first-child { min-width:120px; }
.table-category-2 th:nth-child(2) { min-width:110px; }
.table-category-3 th:first-child,
.table-category-3 td:first-child,
.table-category-4 th:first-child,
.table-category-4 td:first-child,
.table-category-5 th:first-child,
.table-category-5 td:first-child,
.table-category-6 th:first-child,
.table-category-6 td:first-child,
.table-category-7 th:first-child,
.table-category-7 td:first-child { min-width:150px; }
.table-category-2 td[rowspan] {
  min-width:120px;
  color:#334155 !important;
  background:#eef5fc !important;
  border-right:1px solid #dbeafe !important;
  font-weight:600 !important;
}
.table-category-2 tbody tr:nth-child(3n + 1) td { border-top:1px solid #cbd5e1; }

/* Unified narrative typography and semantic information blocks. */
.report-body-text,
.prose-block {
  margin:0 0 24px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#475569 !important;
  font-size:14px !important;
  line-height:1.8 !important;
}
.report-body-text p,
.prose-block p {
  margin:0 0 14px !important;
  color:inherit !important;
  font-size:inherit !important;
  line-height:inherit !important;
}
.report-body-text p:last-child,
.prose-block p:last-child { margin-bottom:0 !important; }

.report-callout {
  margin:24px 0 32px !important;
  padding:16px 20px !important;
  border-radius:8px !important;
  color:#475569 !important;
  font-size:14px !important;
  line-height:1.75 !important;
  box-shadow:none !important;
}
.report-callout > :first-child { margin-top:0 !important; }
.report-callout > :last-child { margin-bottom:0 !important; }
.report-callout strong,
.report-callout b,
.report-callout .font-semibold,
.report-callout .font-bold {
  color:#1e3a5f !important;
  font-weight:600 !important;
}

/* Notices always use the same blue information treatment. */
.report-notice {
  border-left:4px solid #2d5a8e !important;
  background:#eef5fc !important;
}

/* Notes are compact supporting copy below tables and figures. */
.report-note {
  display:block !important;
  margin:12px 0 0 !important;
  padding:10px 12px !important;
  border:1px solid #e2e8f0 !important;
  border-radius:6px !important;
  background:#f8fafc !important;
  color:#64748b !important;
  font-size:12px !important;
  line-height:1.65 !important;
}

/* Explanations and section summaries share a stable card rhythm. */
.report-explanation {
  margin:16px 0 24px !important;
  padding:12px 16px !important;
  border-left:4px solid #64748b !important;
  border-radius:8px !important;
  background:#f8fafc !important;
  color:#475569 !important;
  font-size:13px !important;
  line-height:1.7 !important;
}
.report-summary-callout {
  border-left:4px solid #2d5a8e !important;
  background:#eef5fc !important;
}
.report-summary-callout > :first-child {
  margin:0 0 6px !important;
  color:#1e3a5f !important;
  font-size:14px !important;
  line-height:22px !important;
  font-weight:600 !important;
}

/* Core findings and outlook titles. */
.report-core-title,
.report-outlook-title {
  display:block !important;
  margin:0 0 20px !important;
  padding:0 !important;
  border:0 !important;
  color:#fff !important;
  font-size:18px !important;
  line-height:28px !important;
  font-weight:700 !important;
}

/* One complete component contract for every Core Findings panel. */
:has(> .report-core-title) {
  padding:32px !important;
  border:1px solid rgb(255 255 255 / 0.08) !important;
  border-radius:16px !important;
  background:linear-gradient(135deg,#0f1923,#1e3a5f) !important;
  color:#e2e8f0 !important;
  box-shadow:none !important;
}
:has(> .report-core-title) > :not(.report-core-title) {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  gap:16px !important;
  margin:0 !important;
  padding:0 !important;
  color:#cbd5e1 !important;
  font-size:14px !important;
  line-height:1.75 !important;
  list-style:none !important;
}
:has(> .report-core-title) > :not(.report-core-title) > div,
:has(> .report-core-title) > :not(.report-core-title) > li {
  display:flex !important;
  grid-column:auto !important;
  align-items:flex-start !important;
  gap:12px !important;
  margin:0 !important;
  padding:14px 16px !important;
  border:1px solid rgb(255 255 255 / 0.10) !important;
  border-radius:10px !important;
  background:rgb(255 255 255 / 0.06) !important;
  color:#cbd5e1 !important;
  font-size:14px !important;
  line-height:1.75 !important;
}
:has(> .report-core-title) > :not(.report-core-title) > div > :first-child:not(div),
:has(> .report-core-title) > :not(.report-core-title) > div > div > :first-child,
:has(> .report-core-title) > :not(.report-core-title) > li > :first-child:not(div),
:has(> .report-core-title) > :not(.report-core-title) > li > div > :first-child {
  color:#bfdbfe !important;
  font-weight:600 !important;
}
:has(> .report-core-title) > :not(.report-core-title) > div > span:first-child,
:has(> .report-core-title) > :not(.report-core-title) > li > span:first-child {
  flex:0 0 auto !important;
  min-width:28px;
  color:#93c5fd !important;
  font-size:14px !important;
  line-height:1.75 !important;
  font-weight:700 !important;
}
:has(> .report-core-title) p {
  margin:0 !important;
  color:#cbd5e1 !important;
  font-size:14px !important;
  line-height:1.75 !important;
}

@media (max-width:640px) {
  :has(> .report-core-title) { padding:24px !important; }
  :has(> .report-core-title) > :not(.report-core-title) > div,
  :has(> .report-core-title) > :not(.report-core-title) > li { padding:12px 14px !important; }
}

/* Final cross-report component contract. */
.report-content {
  min-width:0;
  max-width:100%;
  overflow-x:clip;
}
.report-content > * { min-width:0; }
.report-section-shell {
  margin-bottom:56px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

.chart-card,
:has(> .report-chart-title) {
  width:100% !important;
  max-width:none !important;
  margin:0 0 32px !important;
  padding:24px !important;
  overflow:visible !important;
  border:1px solid #e2e8f0 !important;
  border-radius:12px !important;
  background:#fff !important;
  box-shadow:0 1px 2px rgb(15 23 42 / .05) !important;
}

.report-chart-grid {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  gap:24px !important;
}
.report-chart-grid > .chart-card,
.report-chart-grid > :has(> .report-chart-title) {
  grid-column:1 !important;
}

.report-content .report-chart-title,
.report-content .report-table-title {
  margin:0 0 16px !important;
  color:#1e293b !important;
  font-weight:700 !important;
  line-height:1.4 !important;
}

.table-card,
:has(> .report-table-title) {
  width:100% !important;
  max-width:100% !important;
  margin:0 0 32px !important;
  padding:24px !important;
  overflow-x:auto !important;
  border:1px solid #e2e8f0 !important;
  border-radius:12px !important;
  background:#fff !important;
  box-shadow:0 1px 2px rgb(15 23 42 / .05) !important;
  overscroll-behavior-inline:contain;
}

#chart_rcep_pie { min-height:420px; }

@media (max-width:640px) {
  .chart-card,
  :has(> .report-chart-title),
  .table-card,
  :has(> .report-table-title) {
    padding:20px !important;
  }
  #chart_rcep_pie { min-height:480px; }
}
