*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden}
button,select,input{font:inherit}
button{touch-action:manipulation}
.jpp-root{
  --navy:#1e3a5f;--navy-dark:#0f1e3a;--gold:#d4af37;--gold-light:#f4cf5f;
  --text:#2c3e50;--muted:#6f7f8f;--male:#2878c8;--male-dark:#165b9e;
  --female:#d85c83;--female-dark:#a9365b;--child:#fff2bd;--work:#e9f4ff;--older:#f2e9ff;
  width:100%;height:100vh;height:100dvh;min-height:560px;color:var(--text);
  background:linear-gradient(135deg,#0ea5e9,#6366f1,#8b5cf6);
  font-family:system-ui,-apple-system,"Segoe UI","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  overflow:hidden
}
.jpp-root *{box-sizing:border-box}
.jpp-app{height:100%;display:flex;flex-direction:column}
.jpp-header{
  height:66px;flex:0 0 66px;padding:10px 20px;display:flex;align-items:center;gap:16px;
  background:var(--navy);color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.2);z-index:30
}
.jpp-title{margin:0;flex:0 0 auto;font-size:19px;font-weight:900;white-space:nowrap;letter-spacing:.02em}
.jpp-header-stats{flex:0 0 auto;min-width:300px;padding-left:15px;border-left:1px solid rgba(255,255,255,.28);display:flex;align-items:center;gap:12px;line-height:1}
.jpp-header-badge{min-height:25px;padding:6px 9px;border-radius:999px;background:#e8f1fa;color:var(--navy);display:inline-flex;align-items:center;font-size:11px;font-weight:950;white-space:nowrap}
.jpp-header-badge.is-estimate{background:#dff4e8;color:#185b37}.jpp-header-badge.is-warning{background:#fff0db;color:#8a4400}
.jpp-header-year,.jpp-header-total{display:grid;gap:3px;white-space:nowrap}.jpp-header-year strong{font-size:20px;font-weight:950;letter-spacing:-.02em}
.jpp-header-year span,.jpp-header-total span{font-size:10px;font-weight:800;color:rgba(255,255,255,.72)}
.jpp-header-total{padding-left:12px;border-left:1px solid rgba(255,255,255,.25)}.jpp-header-total strong{font-size:17px;font-weight:950;color:var(--gold-light)}
.jpp-header-stats.is-compare{min-width:390px;gap:9px}.jpp-header-stats.is-compare .jpp-header-year strong{font-size:16px}.jpp-header-stats.is-compare .jpp-header-total strong{font-size:13px}
.jpp-header-sex{flex:0 1 310px;min-width:255px;padding-left:12px;border-left:1px solid rgba(255,255,255,.28);display:grid;grid-template-columns:auto minmax(160px,1fr) auto;align-items:center;gap:8px}
.jpp-header-sex.is-hidden{display:none}.jpp-header-sex-label{font-size:15px;font-weight:950}.jpp-header-sex-label--male{color:#78c2ff}.jpp-header-sex-label--female{color:#ff9cbb}
.jpp-header-sex-detail{min-width:0;text-align:center;display:grid;gap:3px}.jpp-header-sex-detail span{font-size:9px;font-weight:800;color:rgba(255,255,255,.7)}.jpp-header-sex-detail strong{overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:900;color:#fff;white-space:nowrap}
.jpp-tabs{flex:1;display:flex;justify-content:center;gap:7px;overflow-x:auto;scrollbar-width:none}
.jpp-tabs::-webkit-scrollbar{display:none}
.jpp-tab{
  min-width:106px;height:40px;padding:0 18px;border:0;border-radius:999px;
  background:rgba(255,255,255,.14);color:#fff;font-weight:900;cursor:pointer;white-space:nowrap
}
.jpp-tab[aria-selected="true"]{background:var(--gold);color:var(--navy-dark)}
.jpp-national-view{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr)}
.jpp-subtabs{display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 10px;border-bottom:1px solid #dbe5ef;background:#f7fafc;overflow-x:auto;scrollbar-width:none}.jpp-subtabs::-webkit-scrollbar{display:none}.jpp-subtabs button{min-height:35px;padding:0 17px;border:0;border-radius:9px;background:transparent;color:#526778;font-size:12px;font-weight:900;white-space:nowrap;cursor:pointer}.jpp-subtabs button[aria-selected="true"]{background:var(--navy);color:#fff}
.jpp-fullscreen,.jpp-modal-close{
  width:42px;height:42px;flex:0 0 42px;border:0;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.14);color:#fff;cursor:pointer
}
.jpp-icon{width:27px;height:27px;fill:currentColor;pointer-events:none}
.jpp-workspace{flex:1;min-height:0;padding:14px 88px 16px 14px;overflow:hidden}
.jpp-card{
  position:relative;width:100%;height:100%;min-height:0;background:#fff;border-radius:16px;
  box-shadow:0 8px 24px rgba(0,0,0,.18);overflow:hidden;border-top:4px solid var(--navy)
}
.jpp-view{height:100%;min-height:0}
.jpp-single{height:100%;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto auto}
.jpp-chart-wrap{min-height:0;padding:6px 14px 3px;display:flex;flex-direction:column;position:relative}
.jpp-chart-head{height:34px;display:grid;grid-template-columns:1fr 62px 1fr;align-items:center;gap:5px}
.jpp-sex{font-size:15px;font-weight:950}.jpp-sex--male{text-align:right;color:var(--male-dark)}
.jpp-sex--female{color:var(--female-dark)}
.jpp-age-detail{text-align:center;font-size:11px;font-weight:900;color:var(--muted);white-space:nowrap}
.jpp-chart{flex:1;min-height:0;display:grid;grid-template-rows:repeat(18,minmax(12px,1fr));gap:2px;position:relative}
.jpp-bar-row{
  width:100%;min-height:0;padding:0;border:0;background:transparent;display:grid;
  grid-template-columns:minmax(0,1fr) 62px minmax(0,1fr);gap:5px;align-items:stretch;cursor:pointer;border-radius:5px
}
.jpp-bar-row:hover,.jpp-bar-row:focus-visible,.jpp-bar-row.is-selected{outline:3px solid rgba(212,175,55,.9);outline-offset:0;z-index:2}
.jpp-bar-row.is-event{background:rgba(244,207,95,.25);box-shadow:inset 0 0 0 2px rgba(212,175,55,.55)}
.jpp-side{position:relative;display:flex;align-items:stretch;min-width:0;background:linear-gradient(90deg,rgba(31,77,120,.035),rgba(31,77,120,.08));border-radius:3px;overflow:hidden}
.jpp-side--male{justify-content:flex-end}
.jpp-side--female{justify-content:flex-start;background:linear-gradient(90deg,rgba(120,31,64,.08),rgba(120,31,64,.035))}
.jpp-bar{height:100%;min-width:1px;transition:width var(--jpp-transition,1.08s) cubic-bezier(.22,.61,.36,1);box-shadow:inset 0 -1px rgba(0,0,0,.08)}
.jpp-root.is-smooth-playing .jpp-bar{transition:none}
.jpp-root.is-smooth-playing .jpp-bar-row{pointer-events:none}
.jpp-bar--male{background:linear-gradient(90deg,var(--male-dark),var(--male))}
.jpp-bar--female{background:linear-gradient(90deg,var(--female),var(--female-dark))}
.jpp-age-label{display:grid;place-items:center;border-radius:4px;font-size:clamp(9px,1vw,12px);font-weight:900;white-space:nowrap;color:#33485a}
.jpp-age-label[data-band="child"]{background:var(--child)}
.jpp-age-label[data-band="work"]{background:var(--work)}
.jpp-age-label[data-band="older"]{background:var(--older)}
.jpp-axis{height:24px;display:grid;grid-template-columns:1fr 62px 1fr;gap:5px;color:var(--muted);font-size:10px;font-weight:800}
.jpp-axis-side{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #bdcbd8}
.jpp-axis-side--male{flex-direction:row-reverse}
.jpp-axis-center{text-align:center;padding-top:5px}
.jpp-summary{padding:5px 14px 7px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.jpp-summary-item{min-width:0;padding:7px 10px;border-radius:10px;border:1px solid #dce6ef;display:flex;align-items:center;justify-content:space-between;gap:8px}
.jpp-summary-item[data-band="child"]{background:#fff9df}.jpp-summary-item[data-band="work"]{background:#f1f8ff}.jpp-summary-item[data-band="older"]{background:#f7f0ff}
.jpp-summary-name{font-size:11px;font-weight:900;color:#526778;white-space:nowrap}
.jpp-summary-number{font-size:clamp(14px,1.7vw,22px);font-weight:950;color:var(--navy);white-space:nowrap}
.jpp-timeline{padding:5px 18px 10px;border-top:1px solid #dbe5ef;background:#f8fbfe}
.jpp-timeline-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}
.jpp-timeline-year{font-size:11px;font-weight:900;color:var(--muted)}
.jpp-range{width:100%;height:28px;accent-color:var(--gold);cursor:pointer}
.jpp-timeline-note{text-align:center;height:17px;font-size:11px;font-weight:900;color:#9a4e00}
.jpp-toolbar{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:12px;z-index:50}
.jpp-tool{
  position:relative;width:56px;height:56px;padding:0;border:0;border-radius:50%;display:grid;place-items:center;
  background:#fff;color:var(--navy);box-shadow:0 4px 14px rgba(0,0,0,.25);cursor:pointer
}
.jpp-tool--primary{background:var(--gold);color:var(--navy-dark)}
.jpp-tool.is-hidden{display:none}
.jpp-tool:disabled{opacity:.38;cursor:not-allowed;transform:none!important}
.jpp-tool:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.32)}
.jpp-tool-label{
  position:absolute;right:66px;top:50%;transform:translateY(-50%);padding:5px 9px;border-radius:7px;
  background:var(--navy-dark);color:#fff;font-size:12px;font-weight:900;white-space:nowrap;
  opacity:0;pointer-events:none;transition:opacity .15s
}
.jpp-tool:hover .jpp-tool-label,.jpp-tool:focus-visible .jpp-tool-label,.jpp-tool--primary .jpp-tool-label{opacity:1}
.jpp-missing{height:100%;display:grid;place-items:center;padding:24px}
.jpp-missing-card{max-width:700px;text-align:center;padding:34px;border:3px dashed #d4af37;border-radius:22px;background:#fffaf0}
.jpp-missing-year{font-size:clamp(54px,10vw,100px);font-weight:950;color:var(--navy)}
.jpp-missing-title{font-size:clamp(22px,3vw,36px);font-weight:950;color:#a65300;margin:10px 0}
.jpp-missing-text{font-size:clamp(15px,1.8vw,20px);font-weight:750;line-height:1.7}
.jpp-compare{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;padding:12px}
.jpp-compare-head{display:flex;justify-content:center;align-items:center;gap:10px;font-weight:900;color:var(--navy)}
.jpp-compare-grid{min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:28px}
.jpp-compare-card{min-width:0;min-height:0;border:2px solid #d9e4ee;border-top:4px solid var(--male);border-radius:14px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;background:#fff}
.jpp-compare-card:last-child{border-top-color:var(--female)}
.jpp-compare-card-head{padding:7px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#f8fbfe;border-bottom:1px solid #dbe5ef}
.jpp-year-select{height:38px;min-width:118px;border:2px solid #b7c8d8;border-radius:10px;padding:0 9px;background:#fff;color:var(--navy);font-weight:950}
.jpp-compare-total{text-align:right}.jpp-compare-total strong{display:block;color:var(--navy);font-size:18px}.jpp-compare-total span{font-size:10px;color:var(--muted);font-weight:800}
.jpp-compare-chart{min-height:0;padding:4px 8px 2px}
.jpp-compare-chart .jpp-chart-head{height:24px}.jpp-compare-chart .jpp-chart{gap:1px}.jpp-compare-chart .jpp-bar-row{grid-template-columns:minmax(0,1fr) 52px minmax(0,1fr);gap:3px}
.jpp-compare-chart .jpp-age-label{font-size:8px}.jpp-compare-chart .jpp-axis{grid-template-columns:1fr 52px 1fr;height:18px}
.jpp-compare-summary{padding:5px 8px 7px;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;border-top:1px solid #e1e8ef}
.jpp-compare-pill{text-align:center;padding:5px 2px;border-radius:8px;background:#edf4fa;font-size:10px;font-weight:850}
.jpp-compare-pill strong{display:block;margin-top:2px;font-size:13px;color:var(--navy)}
.jpp-delta{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;font-size:12px;font-weight:900;color:#526778}
.jpp-delta strong{color:var(--navy)}
.jpp-trend{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:12px 16px 16px}.jpp-trend-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:0 8px 8px}.jpp-trend-head strong{color:var(--navy);font-size:18px}.jpp-trend-head span{color:var(--muted);font-size:11px;font-weight:850}.jpp-trend-chart{width:100%;height:100%;min-height:350px}.jpp-trend-grid{stroke:#dce5ed;stroke-width:1;vector-effect:non-scaling-stroke}.jpp-trend-axis{fill:#65798b;font-size:14px;font-weight:800}.jpp-trend-line{fill:none;stroke:#2878c8;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.jpp-trend-area{fill:#dceffd;opacity:.72}.jpp-trend-point{fill:#fff;stroke:#2878c8;stroke-width:4;vector-effect:non-scaling-stroke;cursor:pointer}.jpp-trend-point.is-selected{fill:var(--gold);stroke:var(--navy)}.jpp-trend-label{fill:var(--navy);font-size:15px;font-weight:950}.jpp-trend-value{fill:#31485d;font-size:15px;font-weight:900}
.jpp-map{height:100%;min-height:0;padding:12px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px}
.jpp-map-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.jpp-map-head.is-directory,.jpp-map-head.is-map-metric,.jpp-map-head.is-ranking{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(420px,1fr)}.jpp-map-head.is-directory .jpp-map-metrics,.jpp-map-head.is-map-metric .jpp-map-metrics,.jpp-map-head.is-ranking .jpp-map-metrics{justify-self:end}
.jpp-map-title{min-width:0}.jpp-map-title strong{display:block;color:var(--navy);font-size:17px}.jpp-map-title span{display:block;margin-top:2px;color:var(--muted);font-size:10px;font-weight:800}
.jpp-map-metrics{display:flex;flex-wrap:wrap;gap:5px;padding:4px;border-radius:12px;background:#edf3f8}
.jpp-map-metrics button{min-height:36px;padding:0 13px;border:0;border-radius:9px;background:transparent;color:#526778;font-size:12px;font-weight:900;cursor:pointer;white-space:nowrap}
.jpp-map-metrics button[aria-pressed="true"]{background:#fff;color:var(--navy);box-shadow:0 2px 8px rgba(20,46,76,.16)}
.jpp-map-control-stack{display:grid;justify-items:end;gap:5px}.jpp-map-submetrics{display:flex;justify-content:center;gap:4px;padding:3px;border-radius:9px;background:#f7ead0}.jpp-map-submetrics button{min-height:30px;padding:0 11px;border:0;border-radius:7px;background:transparent;color:#6f5b30;font-size:11px;font-weight:900;cursor:pointer}.jpp-map-submetrics button[aria-pressed="true"]{background:#fff;color:var(--navy);box-shadow:0 1px 6px rgba(20,46,76,.14)}.jpp-map-header-year{justify-self:center;color:var(--navy);font-size:25px;font-weight:950;white-space:nowrap}
.jpp-map-body{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:12px}
.jpp-map-scroll{min-width:0;min-height:0;overflow:auto;padding:4px;border:1px solid #dbe5ef;border-radius:14px;background:linear-gradient(180deg,#f6fbff,#eef6fb)}
.jpp-tile-map{height:100%;min-height:400px;min-width:690px;display:grid;grid-template-columns:repeat(16,minmax(34px,1fr));grid-template-rows:repeat(11,minmax(28px,1fr));gap:3px;padding:7px}
.jpp-pref{min-width:0;min-height:0;padding:2px;border:1px solid rgba(15,30,58,.2);border-radius:7px;color:#fff;font-size:9px;font-weight:950;line-height:1.05;text-shadow:0 1px 2px rgba(0,0,0,.45);cursor:pointer;transition:background-color .12s linear,transform .15s,box-shadow .15s}
.jpp-pref:hover,.jpp-pref:focus-visible{transform:scale(1.12);z-index:3}.jpp-pref.is-selected{box-shadow:0 0 0 3px var(--gold),0 4px 10px rgba(0,0,0,.28);z-index:2}
.jpp-map-side{min-height:0;display:flex;flex-direction:column;gap:9px;overflow:auto}
.jpp-pref-card{padding:12px;border:2px solid #d7e2ec;border-top:5px solid var(--gold);border-radius:14px;background:#fff}
.jpp-pref-card h2{margin:0;color:var(--navy);font-size:21px}.jpp-pref-pop{margin:5px 0 8px;font-size:25px;font-weight:950;color:var(--navy)}
.jpp-pref-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.jpp-pref-stat{padding:7px;border-radius:9px;background:#f2f6fa}.jpp-pref-stat span{display:block;color:var(--muted);font-size:9px;font-weight:850}.jpp-pref-stat strong{display:block;margin-top:2px;color:#31485d;font-size:13px}
.jpp-map-ranking{padding:10px;border-radius:12px;background:#f8fbfe;border:1px solid #dbe5ef}.jpp-map-ranking strong{display:block;margin-bottom:7px;color:var(--navy);font-size:12px}.jpp-rank-row{display:flex;justify-content:space-between;gap:6px;padding:3px 0;font-size:10px;font-weight:850}.jpp-rank-row b{color:#d85874}.jpp-rank-row.is-down b{color:#338fc8}
.jpp-legend{display:grid;gap:4px;padding:9px;border-radius:12px;background:#fff;border:1px solid #dbe5ef}.jpp-legend-bar{height:10px;border-radius:999px;background:linear-gradient(90deg,#79c7ff,#f6f8fa,#ff8fa3)}.jpp-legend-bar.is-pop{background:linear-gradient(90deg,#dceffd,#0b4f91)}.jpp-legend-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:9px;font-weight:850}
.jpp-geo-map{width:100%;height:100%;min-height:430px;display:block;overflow:visible}.jpp-geo-map.is-zoomable{touch-action:none}
.jpp-geo-pref{fill:#dce7ef;stroke:#fff;stroke-width:1.8;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .16s,opacity .16s}
.jpp-geo-pref:hover,.jpp-geo-pref:focus{filter:brightness(.92) saturate(1.18)}.jpp-geo-pref.is-selected{stroke:#fff;stroke-width:2.8;filter:brightness(.88) saturate(1.3)}
.jpp-map-dot{fill:#7890a3;stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}.jpp-map-dot.is-selected{fill:#a58bea;stroke:#fff;stroke-width:2.2}
.jpp-flow-grid{height:100%;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.jpp-flow-panel{min-width:0;min-height:0;position:relative;display:grid;grid-template-rows:32px minmax(0,1fr);border:1px solid #dbe5ef;border-radius:14px;overflow:hidden;background:linear-gradient(180deg,#f8fbfd,#edf4f8)}
.jpp-flow-title{padding:7px 10px;color:#fff;font-size:12px;font-weight:950;letter-spacing:.02em}.jpp-flow-panel--in .jpp-flow-title{background:#2369ad}.jpp-flow-panel--out .jpp-flow-title{background:#3a9232}
.jpp-flow-panel .jpp-geo-map{min-height:0}.jpp-flow-line{fill:none;stroke-linecap:round;opacity:.68;pointer-events:none;vector-effect:non-scaling-stroke;stroke-dasharray:1;animation:jpp-flow-draw .75s ease-out both}
.jpp-flow-panel--in .jpp-flow-line{stroke:#ff8fa3}.jpp-flow-panel--out .jpp-flow-line{stroke:#79c7ff}
.jpp-flow-line--in{stroke:#ff8fa3}.jpp-flow-line--out{stroke:#79c7ff}
.jpp-flow-particle{pointer-events:none;opacity:0;vector-effect:non-scaling-stroke;stroke:#fff;stroke-width:1.2}.jpp-flow-particle--in{fill:#ff8fa3}.jpp-flow-particle--out{fill:#79c7ff}
.jpp-absorb-ring{fill:none;pointer-events:none;opacity:0;vector-effect:non-scaling-stroke;stroke-width:3}.jpp-absorb-ring--in{stroke:#ff8fa3}.jpp-absorb-ring--out{stroke:#79c7ff}
.jpp-geo-pref.is-absorbing{filter:brightness(1.08) saturate(1.3)}
.jpp-flow-stage{position:relative;height:100%;min-height:430px}.jpp-flow-key{position:absolute;left:10px;bottom:10px;display:flex;gap:8px;flex-wrap:wrap;padding:6px 9px;border-radius:10px;background:rgba(255,255,255,.94);box-shadow:0 2px 9px rgba(15,30,58,.16);color:#40586d;font-size:10px;font-weight:900}.jpp-flow-key span{display:flex;align-items:center;gap:5px}.jpp-flow-key i{display:block;width:22px;height:4px;border-radius:999px}.jpp-flow-key .is-in{background:#ff8fa3}.jpp-flow-key .is-out{background:#79c7ff}
.jpp-flow-filter{position:absolute;right:10px;top:10px;z-index:4;display:flex;gap:3px;padding:4px;border-radius:11px;background:rgba(255,255,255,.94);box-shadow:0 2px 9px rgba(15,30,58,.16)}.jpp-flow-filter button{min-height:32px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:#526778;font-size:10px;font-weight:900;cursor:pointer}.jpp-flow-filter button[aria-pressed="true"]{background:#263f61;color:#fff}.jpp-flow-filter button.is-in[aria-pressed="true"]{background:#ff8fa3;color:#5d2532}.jpp-flow-filter button.is-out[aria-pressed="true"]{background:#79c7ff;color:#173f5b}
.jpp-migration-year{position:absolute;left:10px;top:10px;z-index:5;display:flex;align-items:center;gap:6px;padding:5px 7px;border-radius:10px;background:rgba(255,255,255,.96);box-shadow:0 2px 9px rgba(15,30,58,.16);color:#40586d;font-size:10px;font-weight:900}.jpp-migration-year select{min-height:30px;padding:0 25px 0 8px;border:1px solid #c8d7e3;border-radius:7px;background:#fff;color:var(--navy);font:inherit;cursor:pointer}
.jpp-directory{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px}.jpp-compare-strip{display:grid;grid-template-columns:1fr 1fr;gap:8px}.jpp-compare-strip.is-empty{display:block;padding:9px 12px;border-radius:11px;background:#edf4fa;color:#526778;font-size:11px;font-weight:850}.jpp-compare-pref{position:relative;padding:10px 38px 10px 12px;border-radius:12px;background:#edf4fa;color:#31485d}.jpp-compare-pref strong{display:block;color:var(--navy);font-size:15px}.jpp-compare-pref span{font-size:10px;font-weight:850}.jpp-compare-pref button{position:absolute;right:7px;top:50%;width:28px;height:28px;transform:translateY(-50%);border:0;border-radius:50%;background:#fff;color:var(--navy);font-size:17px;cursor:pointer}.jpp-pref-card-list{min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start;gap:8px;padding:2px}.jpp-info-card{min-height:100px;padding:11px;border:1px solid #d8e3ec;border-radius:13px;background:#fff;text-align:left;cursor:pointer}.jpp-info-card:hover,.jpp-info-card:focus-visible{border-color:#7890a3;background:#f8fbfe}.jpp-info-card.is-compared{box-shadow:inset 0 0 0 3px #a58bea}.jpp-info-card strong{display:block;color:var(--navy);font-size:16px}.jpp-info-card b{display:block;margin-top:5px;color:#31485d;font-size:18px}.jpp-info-card span{display:block;margin-top:4px;color:#607487;font-size:10px;font-weight:850}.jpp-pref-modal{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:18px;background:rgba(16,37,65,.48)}.jpp-pref-dialog{position:relative;width:min(650px,96%);max-height:92%;overflow:auto;padding:20px;border-radius:18px;background:#fff;box-shadow:0 15px 45px rgba(15,30,58,.3)}.jpp-pref-dialog h2{margin:0 42px 3px 0;color:var(--navy);font-size:25px}.jpp-pref-dialog-year{color:#637789;font-size:11px;font-weight:850}.jpp-modal-close{position:absolute;right:12px;top:12px;width:36px;height:36px;border:0;border-radius:50%;background:#edf3f8;color:var(--navy);font-size:22px;cursor:pointer}.jpp-modal-pop{margin:12px 0;color:var(--navy);font-size:29px;font-weight:950}.jpp-modal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.jpp-modal-stat{padding:9px;border-radius:11px;background:#f2f6fa}.jpp-modal-stat span{display:block;color:#637789;font-size:10px;font-weight:850}.jpp-modal-stat strong{display:block;margin-top:3px;color:#31485d;font-size:14px}.jpp-modal-compare{width:100%;min-height:42px;margin-top:13px;border:0;border-radius:11px;background:#263f61;color:#fff;font-size:13px;font-weight:900;cursor:pointer}.jpp-modal-compare.is-remove{background:#e9eef4;color:#31485d}.jpp-modal-compare:disabled{opacity:.45;cursor:not-allowed}.jpp-ranking-screen{min-height:0;overflow:auto;padding:2px}.jpp-ranking-note{margin:0 0 8px;color:#637789;font-size:11px;font-weight:850}.jpp-turnover-table{width:100%;border-collapse:collapse;background:#fff}.jpp-turnover-table th,.jpp-turnover-table td{padding:8px 10px;border-bottom:1px solid #e2e9ef;text-align:right;font-size:11px;white-space:nowrap}.jpp-turnover-table th{position:sticky;top:0;z-index:2;background:#edf4fa;color:#40586d}.jpp-turnover-table th:nth-child(2),.jpp-turnover-table td:nth-child(2){text-align:left}.jpp-turnover-table button{border:0;background:transparent;color:var(--navy);font-weight:900;cursor:pointer}.jpp-turnover-table .is-in{color:#d85874;font-weight:900}.jpp-turnover-table .is-out{color:#338fc8;font-weight:900}
.jpp-directory-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.jpp-directory-tools .jpp-compare-strip{flex:1 1 460px}.jpp-directory-controls{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.jpp-directory-sort{display:flex;align-items:center;gap:7px;color:#526778;font-size:11px;font-weight:900}.jpp-directory-sort select{min-height:36px;padding:0 30px 0 10px;border:1px solid #c8d7e3;border-radius:9px;background:#fff;color:var(--navy);font:inherit;cursor:pointer}
.jpp-compare-pref span{display:block;margin-top:2px}.jpp-migration-list-title{margin-top:8px;color:var(--navy);font-size:11px;font-weight:950}.jpp-migration-list-title:first-child{margin-top:0}.jpp-migration-row{display:flex;justify-content:space-between;gap:8px;padding:3px 0;color:#40586d;font-size:10px;font-weight:850}.jpp-migration-row b{color:var(--navy)}
.jpp-pref-modal-close{position:absolute;right:12px;top:12px;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:50%;background:#edf3f8;color:var(--navy);font-size:22px;cursor:pointer}
.jpp-flow-summary{position:absolute;left:9px;bottom:8px;display:flex;gap:6px;z-index:3}.jpp-flow-chip{padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 2px 8px rgba(15,30,58,.18);color:var(--navy);font-size:10px;font-weight:950;white-space:nowrap}
.jpp-migration-detail{padding:7px 12px;border-radius:11px;background:#edf4fa;color:#40586d;font-size:11px;font-weight:850;text-align:center}.jpp-migration-detail strong{color:var(--navy);font-size:13px}
.jpp-pop-race{min-height:0;display:grid;grid-template-rows:minmax(0,1fr)}.jpp-race-chart{position:relative;min-height:500px;overflow:hidden;border-top:1px solid #dbe5ef;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),#e3eaf0 calc(25% - 1px),#e3eaf0 25%)}.jpp-race-row{position:absolute;left:0;right:0;height:31px;display:grid;grid-template-columns:34px 84px minmax(0,1fr) 92px;align-items:center;gap:7px;will-change:transform,opacity;transition:transform .22s linear,opacity .18s linear}.jpp-race-rank{text-align:right;color:#607487;font-size:11px;font-weight:950}.jpp-race-name{overflow:hidden;border:0;background:transparent;color:var(--navy);font-size:11px;font-weight:950;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.jpp-race-track{height:20px}.jpp-race-bar{height:100%;min-width:2px;border-radius:4px;box-shadow:inset 0 -2px 0 rgba(20,65,105,.1)}.jpp-race-value{color:#31485d;font-size:11px;font-weight:950;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.jpp-pref-dialogs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:min(1100px,96%);max-height:92%}.jpp-pref-dialogs.is-single{display:block;width:min(650px,96%)}.jpp-pref-dialogs .jpp-pref-dialog{width:100%;max-height:92vh}.jpp-map-head.is-directory .jpp-directory-sort{justify-self:center}
.jpp-directory{grid-template-rows:minmax(0,1fr)}
@keyframes jpp-flow-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.jpp-events{height:100%;min-height:0;display:grid;grid-template-rows:minmax(0,1fr)}
.jpp-events .jpp-single{min-height:0;grid-template-rows:minmax(0,1fr) auto}
.jpp-event-strip{padding:7px 14px 10px;display:flex;gap:8px;overflow-x:auto;border-top:1px solid #dbe5ef;background:#fffaf0}
.jpp-event-card{flex:0 0 auto;max-width:280px;padding:7px 10px;border-radius:10px;background:#fff;border:2px solid #ead38a;font-size:11px;line-height:1.35}
.jpp-event-card strong{display:block;color:#8b4b00;font-size:12px}
.jpp-event-empty{width:100%;text-align:center;color:var(--muted);font-size:12px;font-weight:850}
.jpp-label-panel{position:fixed;right:88px;bottom:20px;width:min(330px,calc(100vw - 110px));max-height:min(520px,calc(100dvh - 100px));padding:12px;border-radius:16px;background:#fff;color:var(--text);box-shadow:0 10px 34px rgba(7,20,38,.35);z-index:80;overflow:auto}
.jpp-label-panel[hidden]{display:none}.jpp-label-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.jpp-label-panel-head strong{color:var(--navy);font-size:16px}.jpp-label-panel-close{width:34px;height:34px;border:0;border-radius:50%;background:#edf3f8;color:var(--navy);font-weight:950;cursor:pointer}
.jpp-label-help{margin:0 0 9px;color:var(--muted);font-size:11px;font-weight:750;line-height:1.45}.jpp-label-options{display:grid;gap:7px}.jpp-label-option{min-height:42px;padding:8px 11px;border:2px solid #dfc260;border-radius:11px;background:#fff9dc;color:#694600;text-align:left;font-size:13px;font-weight:900;cursor:pointer}.jpp-label-option:hover{background:#fff0a8}.jpp-label-option.is-active{border-color:#9b7300;background:#ffe46e;box-shadow:inset 0 0 0 1px #9b7300}.jpp-label-clear{width:100%;min-height:38px;margin-top:10px;border:1px solid #c9d5df;border-radius:10px;background:#f4f7fa;color:#526778;font-size:12px;font-weight:850;cursor:pointer}
.jpp-label-layer{position:absolute;inset:4px 10px 28px;pointer-events:none;z-index:12}.jpp-placed-label{position:absolute;left:50%;max-width:160px;min-height:24px;padding:4px 8px;border:1px solid #b98a00;border-radius:5px;background:#ffe87c;color:#533d00;box-shadow:0 2px 5px rgba(0,0,0,.18);font-size:10px;font-weight:950;line-height:1.2;white-space:nowrap;pointer-events:auto;user-select:none;transform:translate(-50%,-50%)}
.jpp-placed-label[hidden]{display:none}
.jpp-modal{width:min(620px,calc(100vw - 28px));max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:18px;box-shadow:0 20px 70px rgba(0,0,0,.38);color:var(--text)}
.jpp-modal::backdrop{background:rgba(7,20,38,.62)}
.jpp-modal-head{height:58px;padding:8px 10px 8px 18px;display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:#fff}
.jpp-modal-head h2{margin:0;font-size:18px}.jpp-modal-close{background:rgba(255,255,255,.14)}
.jpp-modal-head .jpp-modal-close{position:static;right:auto;top:auto;width:42px;height:42px;color:#fff;font-size:inherit}
.jpp-modal-body{max-height:calc(100dvh - 90px);overflow:auto;padding:18px}
.jpp-setting{margin-bottom:20px}.jpp-setting h3{margin:0 0 9px;font-size:14px;color:var(--navy)}
.jpp-segment{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.jpp-segment--3{grid-template-columns:repeat(3,1fr)}
.jpp-segment button{min-height:44px;border:2px solid #c3d1de;border-radius:10px;background:#fff;color:var(--navy);font-weight:900;cursor:pointer}
.jpp-segment button[aria-pressed="true"]{border-color:var(--gold);background:#fff6c9;box-shadow:inset 0 0 0 1px var(--gold)}
.jpp-source{padding:12px;border-radius:12px;background:#f2f6fa;font-size:12px;line-height:1.65}
.jpp-source a{color:#155fa0;font-weight:850}.jpp-source strong{color:var(--navy)}
.jpp-demo-note{padding:8px 10px;border-radius:10px;background:#fff3d8;color:#855000;font-size:12px;font-weight:850;line-height:1.55}
.jpp-root button:focus-visible,.jpp-root select:focus-visible,.jpp-root input:focus-visible{outline:4px solid var(--gold-light);outline-offset:2px}
.jpp-sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:880px){
  .jpp-title{display:none}.jpp-header{gap:8px}.jpp-header-stats{min-width:225px;padding-left:0;border-left:0;gap:7px}.jpp-header-badge{font-size:9px;padding-inline:7px}.jpp-header-year strong{font-size:16px}.jpp-header-total{padding-left:7px}.jpp-header-total strong{font-size:13px}.jpp-header-stats.is-compare{min-width:310px}.jpp-header-sex{min-width:210px;padding-left:8px;grid-template-columns:auto minmax(130px,1fr) auto;gap:5px}.jpp-header-sex-detail strong{font-size:10px}.jpp-tab{min-width:82px;padding:0 9px}.jpp-workspace{padding-right:76px}
  .jpp-summary-name{font-size:9px}.jpp-summary-number{font-size:14px}
  .jpp-compare-grid{gap:16px}.jpp-compare{padding:7px}.jpp-compare-card-head{padding:5px}.jpp-year-select{min-width:100px;font-size:12px}
  .jpp-map-body{grid-template-columns:minmax(0,1fr) 210px}.jpp-map-metrics button{padding-inline:9px}.jpp-map-control-stack{justify-items:stretch}.jpp-map-submetrics{justify-content:center}.jpp-pref-pop{font-size:20px}
  .jpp-flow-grid{gap:6px}.jpp-flow-title{font-size:10px}.jpp-geo-map{min-height:390px}
}
@media(max-width:640px){
  .jpp-root{min-height:520px}.jpp-header{height:58px;flex-basis:58px;padding:8px 9px;gap:7px}
  .jpp-header-stats{min-width:auto;padding-left:0;border-left:0;gap:6px}.jpp-header-badge,.jpp-header-year span,.jpp-header-total span{display:none}.jpp-header-year strong{font-size:14px}.jpp-header-total{padding-left:7px}.jpp-header-total strong{font-size:12px}.jpp-header-stats.is-compare{min-width:auto}.jpp-header-stats.is-compare .jpp-header-year strong{font-size:11px}.jpp-header-stats.is-compare .jpp-header-total{display:none}.jpp-header-sex{min-width:118px;flex-basis:118px;padding-left:5px;grid-template-columns:1fr}.jpp-header-sex-label,.jpp-header-sex-detail span{display:none}.jpp-header-sex-detail strong{font-size:9px;white-space:normal;line-height:1.2}.jpp-tabs{justify-content:flex-start}.jpp-tab{height:38px;min-width:75px;padding:0 8px;font-size:12px}.jpp-subtabs{justify-content:flex-start}
  .jpp-trend{padding:8px}.jpp-trend-head{align-items:flex-start;flex-direction:column}.jpp-trend-chart{min-height:310px}
  .jpp-fullscreen{width:38px;height:38px;flex-basis:38px}.jpp-workspace{padding:8px 66px 10px 8px;overflow:auto}
  .jpp-toolbar{right:10px;bottom:10px;gap:8px}.jpp-tool{width:50px;height:50px}.jpp-tool-label{display:none}
  .jpp-label-panel{right:68px;bottom:10px;width:min(300px,calc(100vw - 82px))}.jpp-placed-label{max-width:135px;font-size:9px}
  .jpp-chart-wrap{padding-inline:7px}
  .jpp-chart-head,.jpp-bar-row,.jpp-axis{grid-template-columns:minmax(0,1fr) 52px minmax(0,1fr);gap:3px}
  .jpp-summary{padding-inline:7px;gap:4px}.jpp-summary-item{padding:5px 4px;display:block;text-align:center}.jpp-summary-name{display:block}.jpp-timeline{padding-inline:9px}
  .jpp-compare{height:auto;min-height:100%;overflow:visible}.jpp-compare-grid{grid-template-columns:1fr;grid-template-rows:repeat(2,minmax(410px,1fr))}
  .jpp-compare-card{min-height:410px}.jpp-delta{padding-bottom:8px}
  .jpp-map{height:auto;min-height:100%;padding:7px}.jpp-map-head{align-items:flex-start;flex-direction:column}.jpp-map-metrics{width:100%}.jpp-map-metrics button{flex:1;padding-inline:4px}.jpp-map-body{grid-template-columns:1fr;grid-template-rows:minmax(380px,54vh) auto}.jpp-map-side{display:grid;grid-template-columns:1fr 1fr;overflow:visible}.jpp-map-ranking{display:none}.jpp-tile-map{min-height:360px}.jpp-pref-card{padding:9px}.jpp-modal-grid{grid-template-columns:1fr 1fr}.jpp-compare-strip{grid-template-columns:1fr}.jpp-turnover-table th,.jpp-turnover-table td{padding:7px 6px;font-size:10px}
  .jpp-flow-grid{height:auto;grid-template-columns:1fr;grid-template-rows:repeat(2,minmax(390px,55vh))}.jpp-flow-panel{min-height:390px}.jpp-map.is-migration{height:auto}.jpp-map.is-migration .jpp-map-head{position:sticky;top:0;z-index:4;background:#fff;padding-bottom:5px}.jpp-map.is-migration .jpp-map-side{grid-template-columns:1fr}
}
@media(max-width:880px){.jpp-map-head.is-directory,.jpp-map-head.is-map-metric,.jpp-map-head.is-ranking{display:flex;align-items:flex-start}.jpp-map-head.is-directory .jpp-directory-sort,.jpp-map-head.is-map-metric .jpp-map-submetrics,.jpp-map-head.is-ranking .jpp-map-header-year{align-self:center}.jpp-pref-dialogs{grid-template-columns:1fr;overflow:auto}.jpp-pref-dialogs .jpp-pref-dialog{max-height:none}}
@media(max-width:640px){.jpp-race-row{grid-template-columns:28px 68px minmax(0,1fr) 76px;gap:5px}.jpp-race-year{font-size:25px}.jpp-race-value,.jpp-race-name,.jpp-race-rank{font-size:10px}}
@media(prefers-reduced-motion:reduce){.jpp-root *{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
