
.chart-highlight {
  display: flex;
  gap: 3.5rem;
  align-items: flex-start;
  margin-top: 0;
  margin-bottom: 0;
  width: 100%;
  box-sizing: border-box;
}

.chart-highlight-info {
  flex: 0 0 410px;
  max-width: 410px;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.chart-highlight-subtitle {
  margin: 0;
  font-family: var(--base-font-stack);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--darkgray);
}

.dark-theme .chart-highlight-subtitle,
html.dark-theme .chart-highlight-subtitle {
  color: var(--text-secondary, #b7c1cc);
}

.chart-highlight-subtitle a {
  color: var(--primary, #2188ff);
  text-decoration: none;
}

.chart-highlight-subtitle a:hover,
.chart-highlight-subtitle a:focus {
  color: var(--primary-hover, #0366d6);
  text-decoration: underline;
}

.chart-highlight-stat-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
}

.chart-highlight-stat {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.chart-highlight-stat-value {
  font-family: var(--base-font-stack);
  font-size: 2.25rem;
  font-weight: 400;
  line-height: 1.1;
  color: #334f74;
}

.dark-theme .chart-highlight-stat-value,
html.dark-theme .chart-highlight-stat-value {
  color: var(--text, #e6edf3);
}

.chart-highlight-stat-meta {
  font-size: 0.85rem;
  color: var(--muted);
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}

.chart-highlight-description {
  margin: 0;
  font-family: var(--base-font-stack);
  font-size: 15px;
  line-height: 1.6;
  color: var(--darkgray);
}

.chart-highlight-description a {
  color: var(--primary, #2188ff);
  text-decoration: none;
}

.chart-highlight-description a:hover,
.chart-highlight-description a:focus {
  color: var(--primary-hover, #0366d6);
  text-decoration: underline;
}

.dark-theme .chart-highlight-description,
html.dark-theme .chart-highlight-description {
  color: var(--text-secondary, #b7c1cc);
}

.chart-highlight-source {
  font-size: 0.85rem;
  line-height: 1.3;
  color: var(--text-secondary, var(--muted));
}

.chart-highlight-source a {
  color: var(--primary, #2188ff);
  text-decoration: none;
}

.chart-highlight-source a:hover,
.chart-highlight-source a:focus {
  color: var(--primary-hover, #0366d6);
  text-decoration: underline;
}

.chart-highlight-chart {
  flex: 1 1 auto;
  min-width: 0;
  max-width: calc(100% - 1rem);
  min-height: 0;
  padding-left: 1.5rem;
  box-sizing: border-box;
}

.chart-duo-row {
  display: flex;
  flex-wrap: wrap;
  gap: 3.5rem;
  margin-top: 3rem;
  width: 100%;
}

.chart-duo-col {
  flex: 1 1 calc(50% - 1.75rem);
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

@media (max-width: 900px) {
  .chart-highlight {
    flex-direction: column;
    gap: 1.25rem;
    align-items: stretch;
    width: 100%;
  }
  .chart-highlight-info {
    flex: 1 1 auto;
    width: 100%;
    max-width: 100%;
    gap: 1rem;
  }
  .chart-highlight-chart {
    flex: 1 1 auto;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding-left: 0;
  }
  .chart-highlight-chart .chart-container,
  .chart-highlight-chart .chart-container--line {
    width: 100%;
    max-width: 100%;
    margin-top: 0;
    box-sizing: border-box;
  }
  .chart-highlight-chart .chart-container--line .chart-content {
    padding: 14px 14px 14px;
    min-height: 0;
  }
  .chart-highlight-chart .chart-viz {
    margin-top: 0;
    width: 100%;
    max-width: 100%;
  }

  .chart-highlight-chart .chart-export-root:has(.chart-headers--evolution) .chart-viz {
    margin-top: 14px;
  }
  .chart-duo-row {
    flex-direction: column;
    gap: 2.5rem;
    margin-top: 2.5rem;
  }
  .chart-duo-col {
    flex: 1 1 100%;
    max-width: 100%;
  }
}

@media (max-width: 900px) {
  .chart-split-col,
  .chart-split-col--map,
  .chart-split-col--table {
    flex: 0 0 100%;
    max-width: 100%;
    margin-bottom: 16px;
  }
  .chart-split-col:last-child {
    margin-bottom: 0;
  }
  .chart-split-col--table .ranking-list {
    padding: 16px 16px 0;
  }
  .chart-container {
    min-height: 380px;
  }
  .chart-container--map {
    width: 100%;
    max-width: 100%;
  }
  .profile-stats {
    max-width: 1000px;
    column-gap: 0;
  }
  .Stat {
    flex: 0 0 33.333%;
    max-width: 33.333%;
    padding: 12px 6px;
  }
  .about-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .about-col--meta {
    border-left: none;
    padding-left: 0;
    border-top: 1px solid var(--border);
    padding-top: 20px;
    grid-column: 1 / -1;
  }
  .about-meta {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px 24px;
  }
  .about-meta-row {
    margin: 0;
  }
  .dark-theme .about-col--meta,
  html.dark-theme .about-col--meta {
    border-top-color: var(--border-color, #30363d);
  }
}

@media (max-width: 768px) {
  .profile-subtitle {
    margin: 4px 0 12px;
  }

  .section-topic.charts-section {
    padding-top: 6px;
  }

  .section-topic.about-section {
    padding-top: 20px;
  }

  .about-section {
    padding-bottom: 8px;
  }

  .charts-section {
    padding-top: 0;
  }

  .chart-section-title {
    font-size: 1.4rem;
    margin: 1.5rem 0 0.75rem;
  }

  .charts-section .topic-inner > .chart-section-title:not(:first-child) {
    padding-top: 1.5rem;
    margin-top: 2rem;
  }

  .charts-section .topic-inner > .chart-section-title:first-child:not(.chart-section-title--rule-below) {
    margin-top: 0;
    margin-bottom: 1.25rem;
  }

  .charts-section .chart-section-title--rule-below {
    padding-bottom: 0.75rem;
  }

  .charts-section .chart-section-title--rule-below + .chart-subsection-title {
    margin-top: 1.25rem;
  }

  .chart-highlight {
    gap: 1rem;
  }

  .chart-highlight-info {
    gap: 0.875rem;
  }

  .chart-highlight-stat-group {
    gap: 1rem;
  }

  .chart-highlight-chart .chart-container--line .chart-content {
    padding: 12px 12px 12px;
  }
}

@media (max-width: 480px) {
  .section-topic.charts-section {
    padding-top: 4px;
  }

  .section-topic.about-section {
    padding-top: 16px;
  }

  .about-section {
    padding-bottom: 6px;
  }

  .charts-section {
    padding-top: 0;
  }

  .chart-section-title {
    font-size: 1.2rem;
    margin: 1rem 0 0.75rem;
  }

  .charts-section .topic-inner > .chart-section-title:first-child:not(.chart-section-title--rule-below) {
    margin-top: 0;
    margin-bottom: 1.1rem;
  }

  .charts-section .chart-section-title--rule-below {
    padding-bottom: 0.65rem;
  }

  .charts-section .chart-section-title--rule-below + .chart-subsection-title {
    margin-top: 1rem;
  }
}

@media (max-width: 560px) {
  .cp-hero {
    padding-top: 36px;
  }
  .SearchButton {
    flex-direction: column;
  }
  .profile-stats {
    max-width: 1000px;
    column-gap: 0;
  }
  .Stat {
    flex: 0 0 33.333%;
    max-width: 33.333%;
    padding: 12px 2px;
  }
  .Stat .stat-title {
    font-size: 9px;
  }
  .Stat .stat-value {
    font-size: 24px;
  }
  .Stat .stat-value-unit {
    font-size: 0.34em;
  }
  .Stat .stat-subtitle {
    font-size: 9px;
  }
  .profile-stats {
    padding: 16px 0 34px;
  }
  .about-grid {
    grid-template-columns: 1fr;
  }
  .about-meta {
    gap: 16px 18px;
  }
  .chart-split-col {
    padding: 0 8px;
  }
  .chart-split-row {
    margin: 0 -8px;
  }
  .chart-content,
  .ranking-list {
    padding: 12px 12px 0;
  }
  .subnav {
    gap: 18px;
  }
}

@media (max-width: 360px) {
  .cp-hero {
    padding-left: 12px;
    padding-right: 12px;
  }
  .Stat .stat-value {
    font-size: 20px;
  }
  .Stat .stat-value-unit {
    font-size: 0.32em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cp-hero,
  .hero-inner,
  .profile-stats,
  .about-section .topic-inner {
    animation: none !important;
    transition: none !important;
  }
}


:root{
  --base-font-stack:"Palanquin",sans-serif;
  --darkgray:#303f50;
  --textblue:#2a425c;
  --muted:#6b7a90;
  --border:#e6e8ef;
  --chart-border:#dfe2e9;
  --chart-radius:8px;
  --naics:#e2cfe6;
  --red:#ef6145;
  --white:#ffffff;
  --bg:#ffffff;
}

.dark-theme,
html.dark-theme{
  --bg:var(--dark,#0d1117);
  --white:var(--dark-component,#21262d);
  --border:var(--border-color,#30363d);
  --chart-border:rgba(240,246,252,0.17);
  --muted:var(--text-secondary,#8b949e);
  --darkgray:var(--text-secondary,#8b949e);
  --textblue:var(--primary,#58a6ff);
}

#App{background:var(--bg);min-height:100vh}

.dark-theme #App,
html.dark-theme #App{
  background:var(--bg);
}

.cp-hero{
  position:relative;
  overflow:hidden;
  background-color:var(--dark-alt);
  border-bottom:1px solid var(--border-color);
  padding:44px 24px 0;
  animation:fadeInScale .8s ease-out both;
}

.hero-inner{
  position:relative;
  z-index:1;
  max-width:1280px;
  margin:0 auto;
  text-align:center;
  animation:fadeInSlideUp .8s ease-out .4s both;
}

.profile-title{margin:0 0 0}

.profile-title p{
  margin:0;
  font-family:var(--base-font-stack);
  font-size:clamp(1.85rem,4vw,2.85rem);
  font-weight:800;
  line-height:1.15;
  letter-spacing:-0.02em;
  text-transform:none;
  color:#334f74;
}

.dark-theme .profile-title p,
html.dark-theme .profile-title p{
  color:var(--text-secondary,#f0f6fc);
}

.profile-subtitle{
  margin:10px 0 14px;
  display:flex;
  justify-content:center;
}

.profile-subtitle p{
  margin:0;
  display:block;
  background:transparent;
  color:#656d76;
  border-radius:0;
  padding:0;
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-size:clamp(1.15rem,2.2vw,1.5rem);
  font-weight:400;
  line-height:1.35;
  letter-spacing:0;
  text-transform:none;
}

.dark-theme .profile-subtitle p,
html.dark-theme .profile-subtitle p{
  color:var(--text-secondary,#9da7b3);
}

.profile-subtitle-icon{
  display:none;
}

.profile-subtitle-icon svg{
  width:18px;
  height:18px;
  display:block;
}

.SearchButton{
  display:flex;
  gap:10px;
  justify-content:center;
  align-items:stretch;
  max-width:640px;
  margin:0 auto 40px;
}

.profile-compare{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#fff;
  border:1px solid var(--border);
  color:var(--text);
  font-family:var(--base-font-stack);
  font-size:13px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  height:40px;
  padding:0 14px;
  border-radius:3px;
  cursor:pointer;
  transition:background .2s,border-color .2s;
}

.profile-compare:hover{background:#f5f6f9;border-color:#cfd4df}

.profile-compare.active{background:var(--red);border-color:var(--red);color:#fff}

.compare-box{
  width:12px;height:12px;border:1.5px solid currentColor;display:inline-block;border-radius:2px;
}

.search-wrap{flex:1;min-width:0}

.search-wrap input{
  width:100%;height:40px;
  border:1px solid var(--border);
  background:#fff;
  border-radius:3px;
  padding:0 12px;
  font-family:var(--base-font-stack);
  font-size:14px;
  color:var(--text);
  outline:none;
  transition:border-color .2s;
}

.search-wrap input::placeholder{color:var(--muted)}

.search-wrap input:focus{border-color:var(--primary)}

.profile-stats{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  margin:0 auto;
  padding:12px 0 40px;
  max-width:1180px;
  width:100%;
  column-gap:10px;
  row-gap:0;
  animation:fadeInSlideUp .8s ease-out .52s both;
}

.Stat{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  padding:10px 4px;
  flex:0 0 calc(16.666% - 10px);
  max-width:calc(16.666% - 10px);
}

.Stat .stat-title{
  font-family:var(--base-font-stack);
  font-size:10px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--textblue);
  line-height:1.5;
  margin-bottom:6px;
}

.Stat .stat-value{
  font-family:var(--base-font-stack);
  font-size:40px;
  font-weight:300;
  line-height:1.1;
  color:var(--hero-title-color);
  margin-bottom:4px;
  white-space:nowrap;
}

.Stat .stat-value-unit{
  font-size:.36em;
  font-weight:400;
  letter-spacing:0;
  margin-left:.12em;
  vertical-align:baseline;
}

.Stat .stat-subtitle{
  font-family:var(--base-font-stack);
  font-size:10px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
  line-height:1.5;
}

.dark-theme .Stat .stat-title,
html.dark-theme .Stat .stat-title{
  color:var(--text-secondary,#9da7b3);
}

.dark-theme .Stat .stat-value,
html.dark-theme .Stat .stat-value{
  color:var(--text,#e6edf3);
}

.light-theme .Stat .stat-value,
html.light-theme .Stat .stat-value{
  color:#334f74;
}

.dark-theme .Stat .stat-subtitle,
html.dark-theme .Stat .stat-subtitle{
  color:var(--text-secondary,#9da7b3);
}

.subnav{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:36px;
  border-top:1px solid var(--border);
  padding:16px 24px;
  max-width:1280px;
  margin:0 auto;
}

.subnav a{
  font-family:var(--base-font-stack);
  font-size:13px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted);
  text-decoration:none;
  padding:6px 0;
  border-bottom:2px solid transparent;
  transition:color .2s,border-color .2s;
}

.subnav a:hover{color:var(--hero-title-color)}

.subnav a.active{color:var(--hero-title-color);border-bottom-color:var(--red)}

.section-topic{padding:32px 24px 60px}

.topic-inner{max-width:1280px;margin:0 auto}

.section-topic.charts-section{
  background:var(--bg);
  color:var(--text);
  padding-top:16px;
}

.topic-title{
  font-family:var(--base-font-stack);
  font-size:32px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.02em;
  color:var(--hero-title-color);
  margin:0 0 14px;
}

.dark-theme .topic-title,
html.dark-theme .topic-title{
  color:var(--text,#e6edf3);
}

.about-section .topic-inner{
  animation:fadeInSlideUp .8s ease-out .64s both;
}

.about-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr)) minmax(200px,260px);
  gap:28px;
  align-items:start;
}

.about-col--content p{
  text-wrap:pretty;
}

.about-col--meta{
  border-left:1px solid var(--border);
  padding-left:22px;
}

.about-meta{
  margin:0;
}

.about-meta-row{
  margin:0 0 14px;
}

.about-meta-row:last-child{
  margin-bottom:0;
}

.about-meta dt{
  margin:0 0 4px;
  font-family:var(--base-font-stack);
  font-size:10px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
}

.about-meta dd{
  margin:0;
  font-family:var(--base-font-stack);
  font-size:14px;
  line-height:1.45;
  color:var(--text);
  font-weight:500;
}

.about-meta a{
  color:var(--textblue);
  text-decoration:underline;
  text-underline-offset:2px;
}

.about-meta a:hover{
  color:var(--primary-hover);
}

.about-col p{
  margin:0;
  font-family:var(--base-font-stack);
  font-size:15px;
  line-height:1.6;
  color:var(--darkgray);
  font-weight:400;
}

.about-col p + p{
  margin-top:1em;
}

.about-col strong{color:var(--hero-title-color);font-weight:600}

.about-col a{
  color:var(--textblue);
  text-decoration:underline;
  text-underline-offset:2px;
}

.about-col a:hover{
  color:var(--primary-hover);
}

.dark-theme .about-col--meta,
html.dark-theme .about-col--meta{
  border-left-color:var(--border-color,#30363d);
}

.dark-theme .about-meta dt,
html.dark-theme .about-meta dt{
  color:var(--text-secondary,#9da7b3);
}

.dark-theme .about-meta dd,
html.dark-theme .about-meta dd{
  color:var(--text,#e6edf3);
}

.dark-theme .about-meta a,
html.dark-theme .about-meta a{
  color:var(--primary,#58a6ff);
}

.dark-theme .about-col p,
html.dark-theme .about-col p{
  color:var(--text-secondary,#b7c1cc);
}

.dark-theme .about-col strong,
html.dark-theme .about-col strong{
  color:var(--text,#e6edf3);
}

.dark-theme .about-col a,
html.dark-theme .about-col a{
  color:var(--primary,#58a6ff);
}

.about-section{
  padding-bottom:16px;
}

.charts-section{
  padding-top:0;
  padding-bottom:48px;
  border-top:1px solid var(--border-color);
}

.chart-section-title,
.bibliotheque-chart-page .charts-section h3.chart-section-title{
  font-family:var(--base-font-stack);
  font-size:1.7rem;
  font-weight:600;
  line-height:1.25;
  color:var(--hero-title-color);
  margin:2rem 0 1rem;
  text-align:left;
  text-transform:none;
  letter-spacing:normal;
}

.charts-section .topic-inner > .chart-section-title:not(:first-child):not(.chart-section-title--rule-below){
  border-top:1px solid var(--chart-border,var(--border-color));
  padding-top:2rem;
  margin-top:2.5rem;
}

.charts-section .chart-section-title--rule-below{
  margin-top:0;
  margin-bottom:0;
  padding-bottom:0.85rem;
  border-top:none;
  border-bottom:1px solid var(--chart-border,var(--border-color));
}

.charts-section .chart-section-title--rule-below + .chart-subsection-title{
  border-top:none;
  padding-top:0;
  margin-top:2rem;
}

.dark-theme .charts-section .topic-inner > .chart-section-title:not(:first-child):not(.chart-section-title--rule-below),
html.dark-theme .charts-section .topic-inner > .chart-section-title:not(:first-child):not(.chart-section-title--rule-below){
  border-top-color:var(--chart-border,rgba(240,246,252,0.1));
}

.dark-theme .charts-section .chart-section-title--rule-below,
html.dark-theme .charts-section .chart-section-title--rule-below{
  border-bottom-color:var(--chart-border,rgba(240,246,252,0.1));
}

.chart-subsection-title{
  font-family:var(--base-font-stack);
  font-size:1.35rem;
  font-weight:550;
  line-height:1.3;
  color:var(--hero-title-color);
  margin:2.5rem 0 1.45rem;
  text-align:left;
  text-transform:none;
  letter-spacing:normal;
}

.charts-section .chart-subsection-title{
  border-top:1px solid var(--chart-border,var(--border-color));
  padding-top:2rem;
  margin-top:2.5rem;
}

.dark-theme .charts-section .chart-subsection-title,
html.dark-theme .charts-section .chart-subsection-title{
  border-top-color:var(--chart-border,rgba(240,246,252,0.1));
}

.dark-theme .chart-subsection-title,
html.dark-theme .chart-subsection-title{
  color:var(--text,#e6edf3);
}

@media (max-width:768px){
  .section-topic.charts-section{
    padding-top:6px;
  }

  .section-topic.about-section{
    padding-top:20px;
  }

  .about-section{
    padding-bottom:8px;
  }

  .charts-section .chart-section-title--rule-below + .chart-subsection-title{
    margin-top:1.25rem;
  }

  .charts-section .chart-subsection-title{
    padding-top:1.5rem;
    margin-top:2rem;
  }

  .chart-subsection-title{
    font-size:1.2rem;
    margin-bottom:1.0625rem;
  }
}

@media (max-width:480px){
  .section-topic.charts-section{
    padding-top:4px;
  }

  .section-topic.about-section{
    padding-top:16px;
  }

  .about-section{
    padding-bottom:6px;
  }

  .charts-section .chart-section-title--rule-below + .chart-subsection-title{
    margin-top:1rem;
  }

  .chart-section-title{
    font-size:1.2rem;
    margin:1rem 0 0.75rem;
  }

  .charts-section .topic-inner > .chart-section-title:not(:first-child){
    padding-top:1.25rem;
    margin-top:1.75rem;
  }

  .charts-section .chart-subsection-title{
    padding-top:1.25rem;
    margin-top:1.75rem;
  }

  .chart-subsection-title{
    font-size:1.1rem;
    margin-bottom:0.9375rem;
  }
}

.visually-hidden{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.chart-block{
  margin-top:4px;
  margin-bottom:0.5rem;
}

.chart-headers--evolution .chart-headers__title{
  font-size:16px;
}

.chart-headers--evolution .chart-headers__toolbar{
  display:flex;
  flex-wrap:nowrap;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px 16px;
  margin-top:2px;
}

.chart-headers--evolution .chart-headers__source{
  flex:1 1 auto;
  min-width:0;
  margin-bottom:0;
  font-size:11px;
  overflow-wrap:break-word;
  word-break:break-word;
}

.chart-headers--evolution .chart-outlinks{
  flex:0 0 auto;
  flex-shrink:0;
  margin-left:auto;
  justify-content:flex-end;
  gap:8px 18px;
  white-space:nowrap;
}

/* Mobile : actions PNG / SVG / partage sous le graphique (axe X), style Data Commons */
@media (max-width:768px){
  .chart-export-root:has(.chart-headers--evolution){
    display:flex;
    flex-direction:column;
  }

  .chart-export-root:has(.chart-headers--evolution) .chart-headers{
    display:contents;
  }

  .chart-export-root:has(.chart-headers--evolution) .chart-headers__toolbar{
    display:contents;
  }

  .chart-export-root:has(.chart-headers--evolution) .chart-headers__title{
    order:1;
    display:block;
    width:100%;
    padding-left:0 !important;
    margin-bottom:2px;
    font-size:16px;
  }

  .chart-export-root:has(.chart-headers--evolution) .chart-headers__source{
    order:2;
    width:100%;
    margin-top:0;
    margin-bottom:8px;
    font-size:11px;
  }

  .chart-export-root:has(.chart-headers--evolution) .chart-viz{
    order:3;
    margin-top:14px;
  }

  .chart-container--line:has(.chart-headers--evolution){
    overflow:visible;
  }

  .chart-container--line .chart-export-root:has(.chart-headers--evolution) .chart-outlinks{
    order:4;
    align-self:stretch;
    width:auto;
    margin-left:-14px;
    margin-right:-14px;
    justify-content:flex-start;
    flex-wrap:wrap;
    gap:6px 12px;
    margin-top:6px;
    padding:10px 14px 4px 18px;
    box-sizing:border-box;
    border-top:1px solid var(--chart-border,var(--border,#eceef2));
  }

  .chart-highlight-chart .chart-container--line .chart-export-root:has(.chart-headers--evolution) .chart-outlinks{
    margin-left:-12px;
    margin-right:-12px;
    padding-left:16px;
    padding-right:12px;
  }

  .dark-theme .chart-container--line .chart-export-root:has(.chart-headers--evolution) .chart-outlinks,
  html.dark-theme .chart-container--line .chart-export-root:has(.chart-headers--evolution) .chart-outlinks{
    border-top-color:var(--chart-border,rgba(240,246,252,0.1));
  }

  .chart-panel-footer{
    margin-top:0;
    padding:10px 4px 10px;
    border-top:1px solid var(--chart-border,var(--border,#eceef2));
  }

  .dark-theme .chart-panel-footer,
  html.dark-theme .chart-panel-footer{
    border-top-color:var(--chart-border,rgba(240,246,252,0.1));
  }

  .chart-panel-footer .chart-outlinks{
    width:100%;
    justify-content:flex-start;
    flex-wrap:wrap;
    gap:6px 12px;
    border-top:none;
    margin-top:0;
    padding-top:0;
    padding-left:4px;
  }

  .chart-container--map .chart-panel-footer{
    margin-left:0;
    margin-right:0;
    padding-left:12px;
    padding-right:12px;
    border-bottom:none;
  }

  .chart-split-col--table .chart-panel-footer{
    padding:10px 0 10px;
  }
}

@media (max-width:480px){
  .chart-outlinks{
    gap:4px 10px;
  }

  .chart-outlink-item{
    font-size:11px;
    gap:4px;
  }
}

.chart-split-row{
  display:flex;
  flex-wrap:wrap;
  margin:0 -12px;
  align-items:stretch;
}

.chart-split-col{
  box-sizing:border-box;
  flex:0 0 50%;
  max-width:50%;
  padding:0 12px;
  margin-bottom:0;
}

.chart-split-col--map{
  flex:0 0 62%;
  max-width:62%;
}

.chart-split-col--table{
  flex:0 0 38%;
  max-width:38%;
}

.chart-container{
  display:flex;
  flex-direction:column;
  height:100%;
  min-height:420px;
  margin-top:0;
  position:relative;
  width:100%;
  font-size:13px;
  background:var(--dark-component);
  border:1px solid var(--chart-border,var(--border,#eceef2));
  border-radius:var(--chart-radius,8px);
  box-sizing:border-box;
  box-shadow:none;
  color:var(--text);
  overflow:hidden;
}

.dark-theme .chart-container,
html.dark-theme .chart-container{
  background:transparent;
}

.dark-theme .chart-container .chart-export-root,
html.dark-theme .chart-container .chart-export-root{
  background:transparent;
}

.dark-theme .chart-viz .d3plus-viz,
html.dark-theme .chart-viz .d3plus-viz,
.dark-theme .chart-viz svg,
html.dark-theme .chart-viz svg{
  background:transparent !important;
}

.chart-container--line{
  min-height:0;
  height:auto;
  overflow:hidden;
}

.chart-container--line .chart-content{
  padding:14px 14px 14px;
  min-height:0;
}

.chart-container--line .chart-export-root{
  background:var(--dark-component);
}

.dark-theme .chart-container--line .chart-export-root,
html.dark-theme .chart-container--line .chart-export-root{
  background:transparent;
}

.chart-content,
.ranking-list{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:0;
  padding:16px 16px 0;
}

.chart-export-root{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
}

.chart-panel-footer{
  flex:0 0 auto;
  margin-top:auto;
  padding:10px 0 12px;
  background:transparent;
  border-top:1px solid var(--chart-border,var(--border,#eceef2));
  border-bottom:none;
  border-left:none;
  border-right:none;
}

.dark-theme .chart-panel-footer,
html.dark-theme .chart-panel-footer{
  border-top-color:var(--chart-border,rgba(240,246,252,0.1));
}

.chart-container--map{
  width:calc(100% - 44px);
  max-width:calc(100% - 44px);
  min-height:380px;
  background:transparent;
  border:1px solid var(--chart-border,var(--border,#eceef2));
  border-bottom:none;
  border-radius:var(--chart-radius,8px);
  overflow:hidden;
}

.chart-container--map .chart-export-root{
  background:var(--dark-component);
}

.dark-theme .chart-container--map .chart-export-root,
html.dark-theme .chart-container--map .chart-export-root{
  background:transparent;
}

.chart-container--map .chart-panel-footer{
  margin-left:-14px;
  margin-right:-14px;
  padding:10px 14px 12px;
  border-top:1px solid var(--chart-border,var(--border,#eceef2));
  border-bottom:1px solid var(--chart-border,var(--border,#eceef2));
}

.dark-theme .chart-container--map .chart-panel-footer,
html.dark-theme .chart-container--map .chart-panel-footer{
  border-top-color:var(--chart-border,rgba(240,246,252,0.1));
  border-bottom-color:var(--chart-border,rgba(240,246,252,0.1));
}

.chart-container--map .chart-content{
  padding:14px 14px 0;
}

.chart-container--ranking{
  min-height:0;
  height:100%;
  align-self:stretch;
  display:flex;
  flex-direction:column;
  background:transparent;
  border:none;
  border-radius:0;
  overflow:visible;
  box-shadow:none;
}

.chart-split-col--table .chart-container--ranking{
  min-height:380px;
}

.chart-split-col--table .ranking-list{
  flex:1 1 auto;
  min-height:0;
  padding:16px 8px 0 0;
  color:var(--text);
}

.chart-split-col--table .chart-panel-footer{
  background:transparent;
  border-top:1px solid var(--chart-border,var(--border,#eceef2));
  border-bottom:none;
  border-left:none;
  border-right:none;
  padding:10px 0 0;
}

.dark-theme .chart-split-col--table .chart-panel-footer,
html.dark-theme .chart-split-col--table .chart-panel-footer{
  border-top-color:var(--chart-border,rgba(240,246,252,0.1));
}

.chart-container .chart-headers,
.chart-container .ranking-header-section{
  display:block;
  flex:0 0 auto;
  min-height:0;
  margin:0 0 8px;
  padding:0;
  background:transparent;
  border-bottom:none;
  position:static;
  z-index:auto;
}

.chart-headers__title{
  margin:0 0 4px;
  font-family:var(--base-font-stack);
  font-size:16px;
  font-weight:550;
  line-height:1.35;
  color:var(--textblue,#334f74);
}

.dark-theme .chart-headers__title,
html.dark-theme .chart-headers__title{
  color:var(--text,#e6edf3);
}

.chart-headers__source,
.chart-headers .sources{
  margin:0;
  font-size:11px;
  line-height:1.5;
  color:var(--text-secondary);
}

.chart-source-links a{
  color:var(--primary);
  text-decoration:none;
}

.chart-source-links a:hover,
.chart-source-links a:focus{
  color:var(--primary-hover);
  text-decoration:underline;
}

.chart-viz.chart-viz--geomap{
  position:relative;
  flex:1 1 auto;
  width:100%;
  min-height:0;
  height:auto;
  overflow:hidden;
  touch-action:none;
  overscroll-behavior:contain;
}

.chart-viz.chart-viz--geomap .d3plus-viz{
  cursor:grab;
}

.chart-viz.chart-viz--geomap .d3plus-viz:active{
  cursor:grabbing;
}

.chart-viz.chart-viz--geomap .d3plus-geomap{
  display:block;
}

.chart-viz--geomap .d3plus-ColorScale-axis .d3plus-Axis-tick line,
.chart-viz--geomap .d3plus-ColorScale-axis .d3plus-Axis-tick path,
.d3plus-geomap-chart .d3plus-ColorScale-axis .d3plus-Axis-tick line,
.d3plus-geomap-chart .d3plus-ColorScale-axis .d3plus-Axis-tick path{
  display:none;
}

@media (max-width:768px){
  .chart-viz--geomap .d3plus-ColorScale-axis text,
  .d3plus-geomap-chart .d3plus-ColorScale-axis text{
    font-size:9px;
  }

  .chart-viz.chart-viz--geomap > .d3plus-zoom-control.chart-map-zoom,
  .d3plus-geomap-chart > .d3plus-zoom-control.chart-map-zoom{
    z-index:7;
  }
}

.chart-viz.chart-viz--geomap > .d3plus-zoom-control{
  top:auto !important;
  left:8px !important;
  bottom:8px !important;
  display:flex;
  flex-direction:column;
  gap:4px;
  z-index:6;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
}

.chart-viz.chart-viz--geomap > .d3plus-zoom-control.chart-map-zoom{
  opacity:1;
  visibility:visible;
}

.chart-viz.chart-viz--geomap > .d3plus-zoom-control .zoom-reset,
.chart-viz.chart-viz--geomap > .d3plus-zoom-control .zoom-brush{
  display:none !important;
}

.chart-viz.chart-viz--geomap > .d3plus-zoom-control .zoom-control{
  pointer-events:auto;
  display:flex !important;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  min-height:30px !important;
}

.chart-viz.chart-viz--geomap > .d3plus-zoom-control .zoom-in{
  border-radius:2px !important;
}

.chart-viz.chart-viz--geomap > .d3plus-zoom-control .zoom-out{
  border-radius:2px !important;
  border-top:1px solid #dadce0 !important;
}

.chart-viz.chart-viz--geomap > .d3plus-zoom-control .zoom-control i{
  font-size:14px;
  line-height:1;
  pointer-events:none;
}

.dark-theme .chart-viz.chart-viz--geomap > .d3plus-zoom-control .zoom-control,
html.dark-theme .chart-viz.chart-viz--geomap > .d3plus-zoom-control .zoom-control{
  background:#21262d !important;
  border-color:#30363d !important;
  color:#e6edf3 !important;
  box-shadow:0 1px 3px rgba(0,0,0,.35) !important;
}

.dark-theme .chart-viz.chart-viz--geomap > .d3plus-zoom-control .zoom-out,
html.dark-theme .chart-viz.chart-viz--geomap > .d3plus-zoom-control .zoom-out{
  border-top-color:#30363d !important;
}

.dark-theme .d3plus-tooltip,
html.dark-theme .d3plus-tooltip{
  background:rgba(22,27,34,0.97) !important;
  color:#e6edf3 !important;
  border-color:#30363d !important;
  box-shadow:0 4px 16px rgba(0,0,0,.35) !important;
}

.dark-theme .d3plus-tooltip .d3plus-tooltip-title,
html.dark-theme .d3plus-tooltip .d3plus-tooltip-title{
  color:#fff !important;
}

.dark-theme .d3plus-tooltip .d3plus-tooltip-body,
html.dark-theme .d3plus-tooltip .d3plus-tooltip-body{
  color:#c9d1d9 !important;
}

.chart-ranking-table-wrap{
  flex:0 0 auto;
  overflow:visible;
  margin:0;
  padding:0;
}

.chart-ranking-table{
  width:100%;
  border-collapse:collapse;
  border:none;
  font-family:var(--base-font-stack);
  font-size:14px;
  line-height:1.3;
  color:var(--text);
}

.chart-ranking-table tbody td{
  padding:3px 4px 3px 0;
  vertical-align:middle;
  border:none;
}

.chart-ranking-rank{
  width:2rem;
  padding-right:8px;
  color:var(--text-secondary);
  font-size:14px;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

.chart-ranking-name{
  padding-right:12px;
  font-size:14px;
  font-weight:400;
  color:var(--text);
}

.chart-ranking-stat{
  text-align:right;
  white-space:nowrap;
  padding-left:8px;
}

.chart-ranking-stat-value{
  font-variant-numeric:tabular-nums;
  font-weight:400;
  color:var(--text);
}

.chart-ranking-year{
  width:3rem;
  padding-left:12px;
  text-align:right;
  color:var(--text-secondary);
  font-size:14px;
  font-variant-numeric:tabular-nums;
}

.chart-error{
  margin:0;
  padding:24px 12px;
  text-align:center;
  color:var(--muted);
  font-size:14px;
}

.chart-block--error .chart-viz--geomap{
  min-height:120px;
  height:auto;
  max-height:none;
}

.chart-viz.ayitistats-chart-loading-host,
.d3plus-chart.ayitistats-chart-loading-host{
  position:relative;
  min-height:120px;
  box-sizing:border-box;
}

.chart-viz.age-pyramid-chart.ayitistats-chart-loading-host,
.d3plus-age-pyramid-chart.ayitistats-chart-loading-host{
  flex-shrink:0;
  min-height:256px;
}

.chart-viz .ayitistats-chart-loading,
.d3plus-chart > .ayitistats-chart-loading{
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  left:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  width:100%;
  margin:0;
  padding:0;
  box-sizing:border-box;
  text-align:center;
  color:#6e7781;
  background:rgba(255,255,255,0.72);
  z-index:2;
  pointer-events:none;
}

.chart-viz .ayitistats-chart-loading-spinner,
.d3plus-chart > .ayitistats-chart-loading .ayitistats-chart-loading-spinner{
  width:28px;
  height:28px;
  display:block;
  flex-shrink:0;
  animation:chartPageSpinnerRotate 0.9s linear infinite;
}

.chart-viz .ayitistats-chart-loading-text,
.d3plus-chart > .ayitistats-chart-loading .ayitistats-chart-loading-text{
  display:block;
  width:auto;
  max-width:calc(100% - 24px);
  font-size:12px;
  font-weight:600;
  line-height:1.2;
  text-align:center;
}

.dark-theme .chart-viz .ayitistats-chart-loading,
html.dark-theme .chart-viz .ayitistats-chart-loading,
.dark-theme .d3plus-chart > .ayitistats-chart-loading,
html.dark-theme .d3plus-chart > .ayitistats-chart-loading{
  color:#9ea7b3;
  background:rgba(13,17,23,0.5);
}

@keyframes chartPageSpinnerRotate{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}

.chart-outlinks{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 22px;
}

.chart-outlink-item{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin:0;
  padding:0;
  border:none;
  background:transparent;
  font-family:var(--base-font-stack);
  font-size:12px;
  font-weight:400;
  line-height:1.5;
  color:var(--primary);
  cursor:pointer;
  text-decoration:none;
  transition:color .15s ease;
}

.chart-outlink-item:hover,
.chart-outlink-item:focus-visible{
  color:var(--primary-hover);
  text-decoration:underline;
  outline:none;
}

.chart-outlink-item:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:2px;
  border-radius:2px;
}

.chart-outlink-item--copied{
  color:var(--primary);
}

.chart-outlink-icon{
  flex-shrink:0;
  width:12px;
  height:12px;
  display:block;
  color:var(--primary);
}

.chart-outlink-icon--excel,
.chart-outlink-icon--json{
  width:13px;
  height:13px;
}

.chart-outlink-item:hover .chart-outlink-icon,
.chart-outlink-item:focus-visible .chart-outlink-icon{
  color:var(--primary-hover);
}

.chart-outlink-label{
  white-space:nowrap;
}

@media (max-width:900px){
  .chart-split-col,
  .chart-split-col--map,
  .chart-split-col--table{
    flex:0 0 100%;
    max-width:100%;
    margin-bottom:16px;
  }
  .chart-split-col:last-child{
    margin-bottom:0;
  }
  .chart-split-col--table .ranking-list{
    padding:16px 16px 0;
  }
  .chart-container{
    min-height:380px;
  }
  .chart-container--map{
    width:100%;
    max-width:100%;
  }
  .profile-stats{
    max-width:1000px;
    column-gap:0;
  }
  .Stat{flex:0 0 33.333%;max-width:33.333%;padding:12px 6px}
  .about-grid{grid-template-columns:repeat(2,1fr)}
  .about-col--meta{
    border-left:none;
    padding-left:0;
    border-top:1px solid var(--border);
    padding-top:20px;
    grid-column:1 / -1;
  }
  .about-meta{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:18px 24px;
  }
  .about-meta-row{
    margin:0;
  }

  .dark-theme .about-col--meta,
  html.dark-theme .about-col--meta{
    border-top-color:var(--border-color,#30363d);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cp-hero,
  .hero-inner,
  .profile-stats,
  .about-section .topic-inner {
    animation:none !important;
    transition:none !important;
  }
}

@media (max-width:560px){
  .cp-hero{padding-top:36px}
  .SearchButton{flex-direction:column}
  .profile-stats{
    max-width:1000px;
    column-gap:0;
  }
  .Stat{flex:0 0 33.333%;max-width:33.333%;padding:12px 2px}
  .Stat .stat-title{font-size:9px}
  .Stat .stat-value{font-size:24px}
  .Stat .stat-value-unit{font-size:.34em}
  .Stat .stat-subtitle{font-size:9px}
  .profile-stats{padding:16px 0 34px}
  .about-grid{grid-template-columns:1fr}
  .about-meta{
    gap:16px 18px;
  }
  .chart-split-col{
    padding:0 8px;
  }
  .chart-split-row{
    margin:0 -8px;
  }
  .chart-content,
  .ranking-list{
    padding:12px 12px 0;
  }
  .subnav{gap:18px}
}

@media (max-width:360px){
  .cp-hero{padding-left:12px;padding-right:12px}
  .Stat .stat-value{font-size:20px}
  .Stat .stat-value-unit{font-size:.32em}
}