/* =========================================================================
   供应链「单层立体地图」样式（源自 供应链立体地图_交互版_20260920，2026-09-20 已认可基线）
   由 脚本工具/port_map_to_site.py 自动转换：选择器全部限定在 #pin 内，fixed → absolute
   ========================================================================= */
#pin{position:relative;background:#062418;overflow:hidden;height:100vh;min-height:620px}
@media (max-height:780px){#pin{height:auto;min-height:78vh}}
#pin #app{position:absolute;inset:0}#pin canvas{display:block}#pin #vignette{position:absolute;inset:0;pointer-events:none;
    background:radial-gradient(ellipse at 50% 46%, rgba(0,0,0,0) 42%, rgba(0,0,0,.42) 78%, rgba(0,0,0,.72) 100%)}#pin .ui{position:absolute;pointer-events:none;text-shadow:0 2px 14px rgba(0,0,0,.85)}#pin #hudTop{left:54px;top:38px}#pin #hudTop .t1{font-size:37px;font-weight:700;letter-spacing:2px;
    background:linear-gradient(92deg,#f2fffa 0%,#8cf3c6 56%,#ffd166 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent}#pin #hudTop .t2{margin-top:9px;font-size:17px;color:#8fd9c2;letter-spacing:3px}#pin #hudTop .t3{margin-top:13px;font-size:13.5px;color:#6f9d92;letter-spacing:1.1px}#pin #brand{position:absolute;right:54px;top:40px;height:58px;opacity:.96;pointer-events:none;
    filter:drop-shadow(0 4px 16px rgba(0,0,0,.7))}#pin #legend{left:54px;bottom:46px;font-size:14px;line-height:2.05}#pin #legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:9px;
    vertical-align:middle;box-shadow:0 0 12px currentColor;background:currentColor}#pin #legend .l1{color:#3fe08f}#pin #legend .l2{color:#39c9ff}#pin #legend .l3{color:#ffb03a}#pin #legend .flow{color:#9ff3d8}#pin #stats{right:54px;bottom:46px;text-align:right;font-size:13.5px;line-height:2.0;color:#9fe4d0}#pin #stats b{color:#ffe9a8;font-weight:600}#pin #stages{right:58px;top:126px;text-align:right;font-size:14.5px;line-height:2.25;color:#47665f}#pin #stages .on{color:#eafff5;font-weight:600}#pin #stages .on i{font-style:normal;margin-right:8px;color:#7ff0c0}#pin #bar{position:absolute;left:54px;right:54px;bottom:24px;height:2px;background:rgba(255,255,255,.07)}#pin #bar > i{display:block;height:100%;width:0;background:linear-gradient(90deg,#3fe08f,#39c9ff,#ffb03a);
    box-shadow:0 0 10px #4fe0b0}#pin #hint{position:absolute;left:0;right:0;bottom:34px;text-align:center;font-size:13px;color:#5f8a80;
    letter-spacing:2px;display:none;pointer-events:none}#pin /* ---- 交互版：仓点列表 / 悬浮提示 / 信息卡 ---- */
  #stages,#pin #bar{display:none}#pin #hubList{position:absolute;right:44px;top:122px;width:250px;pointer-events:auto;
    font-size:13px;line-height:1.5;text-shadow:0 2px 12px rgba(0,0,0,.85);z-index:6;
    /* 2026-09-24：半透明底压在地图上 → 字看不清。改成实心面板（不透明底 + 毛玻璃 + 描边） */
    background:rgba(6,28,19,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    border:1px solid rgba(205,232,107,.20);border-radius:14px;padding:12px 14px 13px;
    box-shadow:0 16px 38px rgba(0,0,0,.5)}#pin #hubList .gl{color:#9ec4b6;font-size:12px;letter-spacing:1.4px;margin:10px 0 6px}#pin #hubList .items{display:flex;flex-direction:column;gap:4px}#pin #hubList button{all:unset;cursor:pointer;display:flex;align-items:center;gap:8px;
    padding:6px 9px;border-radius:9px;color:#dcefe7;transition:background .18s,color .18s;
    border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.06)}#pin #hubList button:hover{background:rgba(205,232,107,.16);color:#fff}#pin #hubList button.on{background:rgba(255,194,71,.22);color:#fff;border-color:rgba(255,194,71,.65)}#pin #hubList button.hub.on i{box-shadow:0 0 12px #ffc247}#pin #hubList button i{width:8px;height:8px;border-radius:50%;flex:0 0 8px;box-shadow:0 0 10px currentColor}#pin #hubList button b{font-weight:600}#pin #hubList button span{color:#a6c6ba;font-size:11.5px;margin-left:auto;white-space:nowrap}#pin #hubList .hintline{margin-top:14px;color:#8fb0a4;font-size:11.5px;line-height:1.75;letter-spacing:.4px}#pin #tip{position:absolute;pointer-events:none;z-index:8;padding:6px 11px;border-radius:9px;
    background:rgba(6,36,24,.95);border:1px solid rgba(205,232,107,.45);color:#eafff5;font-size:12.5px;
    transform:translate(14px,-50%);opacity:0;transition:opacity .16s;white-space:nowrap}#pin #tip.on{opacity:1}#pin #card{position:absolute;z-index:7;width:322px;padding:16px 18px 15px;border-radius:15px;
    background:rgba(6,30,21,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    border:1px solid rgba(205,232,107,.34);box-shadow:0 20px 46px rgba(0,0,0,.6);
    opacity:0;transform:translateY(10px) scale(.97);transition:opacity .3s,transform .3s;pointer-events:none}#pin #card.on{opacity:1;transform:none;pointer-events:auto}#pin #card .k{font-size:11.5px;letter-spacing:2px;color:#CDE86B}#pin #card h3{margin:6px 0 2px;font-size:19px;color:#fff}#pin #card .sub{color:#8fd9c2;font-size:12.5px}#pin #card .row{display:flex;gap:9px;margin-top:11px;font-size:12.5px;line-height:1.7;color:#e2f3ec}#pin #card .row .lb{color:#9ec4b6;flex:0 0 52px}#pin #card .foot{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);
    font-size:11px;color:#9ec4b6;line-height:1.6}#pin #card .x{position:absolute;right:10px;top:8px;background:none;border:0;color:#8fd9c2;
    font-size:17px;cursor:pointer;line-height:1}
</style>

#pin .map-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:#5F8A80;font-size:13px;letter-spacing:.22em;font-family:"PingFang SC",sans-serif}
#pin #app{position:absolute;inset:0}

#pin #mHubTog{display:none}          /* 手机专用：立体地图 / 仓点清单 切换 */
#pin .m-hubchips{display:none}          /* 手机专用：仓点快捷条 */
