:root{--font-ui:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
html{font-size:16px}
body{font-family:var(--font-ui);font-size:16px;line-height:1.5}
button,input,select{font:inherit}
h1,h2,h3,h4,.metric strong,.brand strong{font-family:var(--font-ui)}
.app-shell{transition:grid-template-columns .38s cubic-bezier(.2,.8,.2,1)}
.sidebar{transition:padding .38s cubic-bezier(.2,.8,.2,1);overflow:hidden}
.app-shell.sidebar-collapsed{grid-template-columns:84px minmax(0,1fr)}
.sidebar-collapsed .sidebar{padding-inline:10px}
.sidebar-collapsed .brand{padding-inline:6px;justify-content:center}
.sidebar-collapsed .brand>div:last-child,.sidebar-collapsed .nav-caption,.sidebar-collapsed #mainNav button span:last-child,.sidebar-collapsed .sidebar-foot>div:last-child{display:none}
.sidebar-collapsed #mainNav button{justify-content:center;padding-inline:8px}
.sidebar-collapsed .sidebar-foot{justify-content:center;padding-inline:0}
.topbar-start{display:flex;align-items:center;gap:14px;min-width:0}
.sidebar-toggle{width:38px;height:38px;display:grid;place-content:center;gap:4px;border:1px solid #dbe6f1;border-radius:11px;background:#fff;box-shadow:0 3px 10px rgba(26,70,120,.06);cursor:pointer}
.sidebar-toggle span{display:block;width:16px;height:2px;border-radius:9px;background:#12396f;transition:transform .25s,opacity .25s}
.sidebar-toggle:hover{background:#eff6ff}
.breadcrumb{font-size:14px}
.hero{min-height:118px;padding-block:22px;margin-bottom:20px}
.hero h1{font-size:32px;line-height:1.18}
.hero p{font-size:15px;line-height:1.55}
.module-bar h2{font-size:22px}
.module-bar p,.card-head p,.map-head small{font-size:13px;line-height:1.5}
.control label,.metric .label,.kicker{font-size:11px}
.metric small,.source-note,.map-hint,.detail-number small,.detail-top p{font-size:12px;line-height:1.5}
.metric strong{font-size:24px}
.metric-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}
.controls{gap:10px}
.control{min-width:158px}
.control:has(#itemSelect),.control:has(#trendItemSelect){min-width:260px}
.native-filter-select{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.module-bar{position:relative;z-index:120;overflow:visible}
.module-bar:has(.search-select.open),.card:has(.search-select.open){z-index:2100}
.controls,.control{position:relative;overflow:visible}
.search-select{position:relative;z-index:1;min-width:inherit}
.search-select.open{z-index:2200}
.search-select-input{width:100%;min-width:158px;height:42px;border:1px solid #d6e3f0;border-radius:11px;padding:0 49px 0 12px;background:#fff;color:#173253;font-size:13px;font-weight:700;outline:none;box-shadow:0 3px 10px rgba(30,73,119,.035);cursor:text}
.search-select-toggle{position:absolute;z-index:3;right:1px;top:1px;width:42px;height:40px;border:0;border-left:1px solid #e2eaf2;border-radius:0 10px 10px 0;background:#f8fbff;display:grid;place-items:center;cursor:pointer;color:#526c89}
.search-select-toggle:hover{background:#eaf3ff;color:#12396f}
.search-select-toggle:focus-visible{outline:3px solid rgba(60,126,215,.22);outline-offset:1px}
.search-select-toggle span{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.search-select.open .search-select-toggle span{transform:translateY(2px) rotate(225deg)}
.search-select-input:focus{border-color:#4b87d7;box-shadow:0 0 0 3px rgba(60,126,215,.13)}
.search-select-menu{display:none;position:absolute;z-index:2201;left:0;right:0;top:47px;max-height:min(310px,calc(100dvh - 150px));overflow:auto;overscroll-behavior:contain;background:rgba(255,255,255,.985);border:1px solid #d9e6f2;border-radius:13px;padding:6px;box-shadow:0 22px 54px rgba(12,52,98,.24);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.search-select.open .search-select-menu{display:block;animation:filterReveal .2s ease-out}
.search-select-menu button{display:flex;flex-direction:column;gap:2px;width:100%;border:0;background:transparent;border-radius:9px;padding:9px 10px;color:#173253;text-align:left;cursor:pointer}
.search-select-menu button:hover,.search-select-menu button.active{background:#edf5ff}
.search-select-menu button span{font-size:13px;font-weight:700}
.search-select-menu button small{font-size:10px;color:#6f839a}
.search-select-menu p{font-size:12px;padding:10px;margin:0;color:#73879e}
.filter-loading-layer{position:fixed;inset:70px 0 0;z-index:2400;display:grid;place-items:start center;padding-top:min(22vh,180px);background:rgba(235,245,252,.42);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility 0s linear .18s}
.filter-loading-layer.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .18s ease}
.filter-loading-card{display:flex;align-items:center;gap:13px;min-width:290px;max-width:calc(100vw - 32px);padding:15px 18px;border:1px solid rgba(206,224,239,.96);border-radius:16px;background:rgba(255,255,255,.97);box-shadow:0 22px 55px rgba(13,55,101,.2)}
.filter-loading-card i{width:24px;height:24px;flex:none;border:3px solid #d8e7f4;border-top-color:#2367d3;border-right-color:#51cfaf;border-radius:50%;animation:filterSpin .72s linear infinite}
.filter-loading-card b,.filter-loading-card span{display:block}.filter-loading-card b{color:#12375f;font-size:14px}.filter-loading-card span{margin-top:2px;color:#657b92;font-size:12px}
@keyframes filterSpin{to{transform:rotate(1turn)}}
@keyframes filterReveal{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
.module-bar p,.card-head p,.map-head small,.metric small,.source-note,.map-hint,.detail-number small,.detail-top p,.mini-stats small,.rank-row,.search-select-menu button small{font-size:13px;color:#586f8a;line-height:1.5}
.control label,.metric .label,.kicker{font-size:12px}
.footer{font-size:12px;color:#667b94}
.line-hit{fill:transparent;stroke:transparent;cursor:crosshair;pointer-events:all}
.chart-point{outline:none}.chart-point:focus .line-dot,.chart-point:hover .line-dot{r:7;fill:#fff;stroke:#2367d3;stroke-width:4;filter:drop-shadow(0 3px 5px rgba(14,64,120,.28))}
.bar-col{cursor:crosshair;border-radius:8px;transition:background .2s,transform .2s}.bar-col:hover,.bar-col:focus-visible{background:#eef6ff;transform:translateY(-3px);outline:2px solid #8db8e8;outline-offset:2px}.bar-col:hover i,.bar-col:focus-visible i{filter:brightness(.9);box-shadow:0 0 0 2px rgba(35,103,211,.12)}
.map-tooltip.chart-data-tooltip{min-width:185px;padding:11px 13px;transform:translate(0,-100%);border:1px solid rgba(223,255,84,.45)}
.map-tooltip.chart-data-tooltip b{font-size:13px}.map-tooltip.chart-data-tooltip span{display:block;color:#fff;font-size:13px;font-weight:800;margin-top:3px}.map-tooltip.chart-data-tooltip small{display:block;color:#b9d0ed;font-size:11px;margin-top:2px}
.growth-first .chart-card{min-width:0}.growth-svg{height:auto;min-height:300px}.growth-zero{stroke:#71869e;stroke-width:1.5;stroke-dasharray:5 5}.growth-path{stroke:#2367d3}.growth-label{font-size:10px;font-weight:800;fill:#254766}.line-dot.negative{fill:#ff8d7d;stroke:#9b3f3a}.chartread{margin-top:8px;padding:11px 13px;border-radius:11px;background:#f3f7fb;color:#60758c;font-size:11px;line-height:1.55}.chartread .tg{display:inline-block;margin-right:7px;padding:2px 7px;border-radius:99px;background:#fff1cf;color:#8d6500;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.growth-extremes{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.growth-extremes>div{padding:12px;border-radius:12px;background:#f3f7fb}.growth-extremes small,.growth-extremes b,.growth-extremes span{display:block}.growth-extremes small{font-size:8px;color:#778ba2;letter-spacing:.09em}.growth-extremes b{font-size:18px;color:#123660;margin:3px 0}.growth-extremes span{font-size:11px;font-weight:800;color:#2d6dca}
.orbit-note{margin:0;text-align:center;color:#647b94;font-size:12px;font-weight:650}
.profile-sub-detail{min-width:0;overflow:hidden;container-type:inline-size}
.subsector-orbit{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(96px,1fr) minmax(126px,1.18fr) minmax(96px,1fr);grid-template-rows:112px 134px 112px;gap:7px;min-width:0;min-height:372px;padding:8px;box-sizing:border-box;border-radius:20px;background:radial-gradient(circle at 50% 50%,#f3fbff 0,#f8fbff 43%,#fff 74%);overflow:hidden}
.subsector-orbit:before,.subsector-orbit:after{content:'';position:absolute;z-index:-1;left:50%;top:50%;border:1px dashed #cfe0ed;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.subsector-orbit:before{width:76%;height:62%}.subsector-orbit:after{width:52%;height:43%;border-style:solid;opacity:.65}
.orbit-center{grid-column:2;grid-row:2;align-self:center;justify-self:stretch;z-index:2;min-width:0;text-align:center;padding:13px 9px;border-radius:23px;background:#fff;border:1px solid color-mix(in srgb,var(--sector) 32%,white);box-shadow:0 14px 30px color-mix(in srgb,var(--sector) 18%,transparent)}
.orbit-center-icon{width:34px;height:34px;margin:0 auto 5px;display:grid;place-items:center;color:var(--sector)}
.orbit-center-icon .vector-icon{width:27px;height:27px}.orbit-center small{display:block;color:var(--sector);font-size:10px;font-weight:800;letter-spacing:.11em}.orbit-center h3{margin:4px 0 2px;font-size:15px;line-height:1.18;color:#173a5d;overflow-wrap:anywhere}.orbit-center strong{display:block;font-size:28px;line-height:1;color:#0b3b84}.orbit-center>span:last-child{font-size:11px;color:#617992}
.orbit-item{position:relative;z-index:1;align-self:center;justify-self:center;width:min(100%,132px);min-height:84px;display:flex;flex-direction:column;justify-content:center;padding:22px 8px 9px;text-align:center;border-radius:16px;background:rgba(255,255,255,.78);border:1px solid color-mix(in srgb,var(--sector) 25%,white);box-shadow:0 8px 20px rgba(22,70,111,.08);animation:orbitFloat 4.8s ease-in-out var(--delay) infinite;transition:transform .32s cubic-bezier(.2,.8,.2,1),box-shadow .32s,background .32s;cursor:default}
.orbit-item:before{content:'';position:absolute;z-index:-1;inset:14% 18%;border-radius:50%;background:color-mix(in srgb,var(--sector) 14%,transparent);filter:blur(15px);opacity:.8}
.orbit-item:hover,.orbit-item:focus-visible{animation-play-state:paused;transform:translateY(-5px) scale(1.045);background:#fff;box-shadow:0 16px 30px color-mix(in srgb,var(--sector) 18%,transparent);outline:none}
.orbit-item i{position:absolute;left:50%;top:5px;transform:translateX(-50%);width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--sector) 14%,white);color:var(--sector);font-size:9px;font-style:normal;font-weight:800}.orbit-item b{font-size:11px;line-height:1.18;color:#264967;overflow-wrap:anywhere}.orbit-item strong{margin-top:4px;font-size:16px;color:var(--sector)}
.orbit-1{grid-column:1;grid-row:1}.orbit-2{grid-column:3;grid-row:1}.orbit-3{grid-column:1;grid-row:3}.orbit-4{grid-column:3;grid-row:3}
@keyframes orbitFloat{0%,100%{translate:0 0;rotate:-.4deg}50%{translate:0 -5px;rotate:.5deg}}
.province-shape.parent-aggregate{stroke:#0d5a91;stroke-dasharray:3 2;stroke-width:1.8;opacity:.92}
.province-shape.parent-aggregate:hover{opacity:1}
.coverage-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#fff4d8;border:1px solid #f2d795;color:#7e5c13;padding:6px 9px;font-size:11px;font-weight:700}
.detail-number.no-data{margin:auto 0;background:linear-gradient(145deg,#f5f8fc,#fff);border-style:dashed;text-align:center;padding:24px}.detail-number.no-data strong{color:#8ca0b6}.detail-number.no-data small{display:block;max-width:300px;margin:5px auto 0}
.view-switcher[hidden]{display:none!important}
#viewContent{animation:contentIn .36s cubic-bezier(.2,.8,.2,1)}
@keyframes contentIn{from{opacity:.25;transform:translateY(9px)}to{opacity:1;transform:none}}
@media(max-width:1200px){.app-shell.sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}}
@media(max-width:620px){
  .sidebar-toggle{display:none}
  .control,.control:has(#itemSelect),.control:has(#trendItemSelect){min-width:calc(50% - 5px)}
  .search-select-input{min-width:0}
  .app-shell.sidebar-collapsed{display:block}
  .sidebar,.sidebar-collapsed .sidebar{position:fixed;z-index:1000;left:0;right:0;top:auto;bottom:0;width:100%;height:calc(64px + env(safe-area-inset-bottom));padding:5px 7px env(safe-area-inset-bottom);overflow:hidden;overscroll-behavior:none;transform:translateZ(0)}
  #mainNav,.sidebar-collapsed #mainNav{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));align-items:stretch;gap:2px;width:100%;height:59px;overflow:hidden}
  #mainNav button,.sidebar-collapsed #mainNav button{justify-content:center;width:100%;min-width:0;height:54px;padding:5px 1px;border-radius:9px;overflow:hidden}
  #mainNav button span:last-child{display:none}
  .nav-icon{width:auto;height:auto;font-size:18px}
  .content{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
  .content.investment-mode{height:calc(100dvh - 120px - env(safe-area-inset-bottom))}
  .search-select-menu{position:fixed;z-index:2000;left:12px;right:12px;top:auto;bottom:calc(76px + env(safe-area-inset-bottom));max-height:min(330px,55dvh)}
  .filter-loading-layer{inset:56px 0 calc(64px + env(safe-area-inset-bottom));padding-top:24vh}
}
@media(max-width:850px){.metric-grid.compact{grid-template-columns:1fr}}
@media(max-width:1500px){#viewContent:has(.profile-sub-detail) .map-layout{grid-template-columns:minmax(0,1fr)}}
@container(max-width:560px){
  .subsector-orbit{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;gap:10px;min-height:0;padding:10px;background:linear-gradient(145deg,#f3fbff,#fff)}
  .subsector-orbit:before,.subsector-orbit:after{display:none}
  .orbit-center{grid-column:1/-1;grid-row:auto;justify-self:center;width:min(100%,330px);box-sizing:border-box;padding:16px 14px}
  .orbit-item,.orbit-1,.orbit-2,.orbit-3,.orbit-4{grid-column:auto;grid-row:auto;width:100%;min-width:0;min-height:96px;box-sizing:border-box;padding:24px 9px 10px}
}
@media(prefers-reduced-motion:reduce){.orbit-item{animation:none!important;transition:none!important}}
