:root{--navy:#18384a;--teal:#0e6b64;--gold:#b67c24;--ink:#233e4b;--muted:#6c7e87;--line:#dce6e7;--paper:#fff;--ground:#f3f7f8;--land:#e7efeb;--warn:#86601e}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--ground);font-family:"Microsoft YaHei UI","PingFang SC",sans-serif;font-size:13px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,svg:focus-visible{outline:3px solid #b4d8d0;outline-offset:2px}button{transition:background .15s}h1,h2,p{margin:0}h1{font-size:20px;letter-spacing:1px;font-weight:700}h2{font-size:17px;line-height:1.55}.topbar{height:80px;background:var(--navy);color:white;padding:0 27px;display:flex;align-items:center;justify-content:space-between}.identity{display:flex;gap:15px;align-items:center}.brandmark{width:42px;height:44px;border:1px solid #a0b6bb;display:grid;place-items:center;font-family:serif;font-size:28px}.identity p{font-size:11px;letter-spacing:3px;color:#b1c5cd;margin-top:5px}.header-end{display:flex;align-items:center;gap:20px}.scope{font-size:12px;color:#b8d2d8}.topbar .quiet{border-color:#516a79;background:transparent;color:#e4ecee}.notice{min-height:38px;display:flex;gap:9px;align-items:center;padding:8px 28px;background:#eef4f0;color:#4d6c60;font-size:11px;border-bottom:1px solid #d6e2db}.dot{width:6px;height:6px;background:var(--teal);border-radius:50%;flex-shrink:0}.workspace{display:grid;grid-template-columns:300px minmax(350px,1fr) 310px;min-height:calc(100vh - 149px)}.explorer,.inspector{background:white}.explorer{display:flex;flex-direction:column;border-right:1px solid var(--line);padding:20px 17px 0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:14px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--muted);font-weight:600}.text-button{border:0;background:none;color:var(--teal);font-size:12px;padding:4px}.searchbox{display:flex;align-items:center;background:#f2f6f7;border:1px solid var(--line);border-radius:4px;margin-bottom:15px;padding:0 10px}.searchbox span{font-size:24px;color:#617a80}.searchbox input{width:100%;border:0;background:none;padding:12px 7px;outline-offset:0}.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.filter-row>label{min-width:0}label{display:block;font-size:11px;color:var(--muted);line-height:1.8}select,input:not([type=checkbox]){width:100%;height:35px;border:1px solid var(--line);border-radius:3px;background:white;color:var(--ink);padding:4px 8px}input[type=checkbox]{accent-color:var(--teal);vertical-align:middle;margin:0 4px 0 0}.tabs{display:flex;border-bottom:1px solid var(--line);margin-top:17px}.tabs button{flex:1;padding:11px 0;border:0;background:none;color:var(--muted);border-bottom:2px solid transparent;font-weight:600}.tabs button[aria-selected=true]{color:var(--teal);border-bottom-color:var(--teal)}.result-summary{font-size:11px;color:var(--muted);padding:13px 0;min-height:41px}.results{max-height:calc(100vh - 437px);min-height:230px;overflow:auto;flex:1}.result-card{width:100%;text-align:left;border:0;border-bottom:1px solid #eaf0f1;background:white;padding:13px 8px;display:block}.result-card:hover{background:#f4f8f7}.result-card.selected{background:#eaf4ef;border-left:3px solid var(--teal);padding-left:5px}.card-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.result-card strong{font-size:13px;line-height:1.7}.card-meta{font-size:11px;line-height:1.7;color:var(--muted);margin-top:5px}.status-tag{font-size:10px;color:var(--warn);background:#f8f2e6;padding:1px 5px;white-space:nowrap;border-radius:2px}.pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 0}.pagination span{font-size:11px;color:var(--muted)}.quiet{border:1px solid var(--line);background:white;border-radius:3px;color:var(--ink);padding:7px 10px;font-size:11px}.quiet:hover{background:#edf4f2}.explorer-foot{font-size:10px;color:#8b9a9f;border-top:1px solid var(--line);padding:12px 0}.map-panel{position:relative;display:flex;flex-direction:column;background:#f3f7f5;min-width:0;overflow:hidden}.map-top{display:flex;justify-content:space-between;align-items:center;padding:20px 23px 10px}.map-top h2{font-size:18px;margin-top:5px}.metrics{display:flex;padding:0 23px;gap:25px;min-height:62px;align-items:center;border-bottom:1px solid #e3ebe7}.metric b{font:600 20px Consolas,monospace;color:var(--navy);margin-right:6px}.metric span{font-size:10px;color:var(--muted)}.map-stage{position:relative;flex:1;min-height:450px;overflow:hidden;background:radial-gradient(ellipse at 60% 50%,#f7faf6,transparent 75%)}#map{display:block;width:100%;height:100%;min-height:450px;position:absolute;inset:0;touch-action:none;cursor:grab}#map:active{cursor:grabbing}.province{fill:#e5eee7;stroke:#a2bcb0;stroke-width:1.5;vector-effect:non-scaling-stroke}.city-area{fill:transparent;stroke:#c0d0c8;stroke-width:.6;vector-effect:non-scaling-stroke;cursor:pointer}.city-area:hover,.city-area.active{fill:#c8dfd2;fill-opacity:.7;stroke:#80a99c}.highway-path{fill:none;stroke:#cb9b54;stroke-width:1.3;opacity:.64;vector-effect:non-scaling-stroke}.rail-path{fill:none;stroke:#214f86;stroke-width:2.8;opacity:1;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:pointer}.line-selected{stroke:#e45024!important;stroke-width:3!important;opacity:1!important}.map-label{fill:#597368;pointer-events:none;paint-order:stroke;stroke:#f5f9f5;stroke-width:3;stroke-linejoin:round}.marker{cursor:pointer;stroke:white;stroke-width:1.6;vector-effect:non-scaling-stroke}.marker.station{fill:#0e6b64}.marker.mineral{fill:#bc7d38;fill-opacity:.8}.marker.industry{fill:#7177aa}.marker.selected{stroke:#e94d21;stroke-width:3}.selected-label{fill:#18384a;font-weight:bold;paint-order:stroke;stroke:white;stroke-width:3;pointer-events:none}.map-tools{position:absolute;right:16px;bottom:45px;display:flex;flex-direction:column;box-shadow:0 2px 10px #18384a12}.map-tools button{width:33px;height:33px;border:1px solid var(--line);background:white;color:var(--ink);font-size:22px}.map-help{position:absolute;bottom:12px;left:20px;font-size:10px;color:#7e9188;pointer-events:none}.legend{display:flex;gap:11px;flex-wrap:wrap;border-top:1px solid var(--line);padding:10px 18px;background:#fbfdfb}.legend label{font-size:10px;display:flex;align-items:center;cursor:pointer;white-space:nowrap}.line-key{width:16px;display:inline-block;border-top:2px solid;margin-right:5px}.line-key.highway{border-color:#cb9b54}.point-key{width:7px;height:7px;display:inline-block;margin-right:5px;background:var(--teal)}.point-key.mineral{background:#bc7d38;transform:rotate(45deg)}.point-key.industry{background:#7177aa;border-radius:50%}.map-status{padding:3px 18px 9px;font-size:10px;color:#85958d;line-height:1.65}.inspector{padding:20px 19px;border-left:1px solid var(--line);max-height:calc(100vh - 118px);overflow:auto}.detail{min-height:200px;padding-bottom:18px;border-bottom:1px solid var(--line)}.detail h2{margin:10px 0 9px}.detail p{line-height:1.9;color:var(--muted);font-size:12px}.detail dl{display:grid;grid-template-columns:65px 1fr;gap:7px;margin:13px 0;font-size:11px;line-height:1.7}.detail dt{color:var(--muted)}.detail dd{margin:0;overflow-wrap:anywhere}.detail a,.dialog a{color:var(--teal);overflow-wrap:anywhere}.detail-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}.small-badge{color:var(--warn);background:#f8f2e6;font-size:10px;padding:2px 6px;border-radius:3px}.planning{padding-top:18px}.planning h2{font-size:14px}.planning>.panel-heading{margin-bottom:5px}.subtle{font-size:10px;line-height:1.8;color:var(--muted);margin-bottom:10px}.planning label{margin-top:8px}.swap{display:block;margin:4px auto 0;border:0;background:none;color:var(--teal);font-size:10px}.primary{border:0;border-radius:3px;background:var(--teal);color:white;padding:11px;width:100%;margin-top:14px;font-size:12px}.primary:hover{background:#08544f}.plan-result{margin-top:10px;background:#f3f7f6;border:1px solid #e2ebe8;padding:10px;font-size:11px;line-height:1.9;color:#5c746a}.plan-result ul{padding-left:16px;margin:5px 0}.button-row{display:flex;gap:8px;margin:10px 0}.button-row button{flex:1}.bottom{min-height:31px;display:flex;justify-content:space-between;gap:10px;padding:8px 22px;border-top:1px solid var(--line);font-size:10px;color:var(--muted);background:white}.empty{padding:22px 4px;color:var(--muted);line-height:1.9;font-size:12px}.toast{position:fixed;bottom:35px;left:50%;transform:translateX(-50%);background:var(--navy);color:white;padding:12px 22px;border-radius:4px;z-index:5;max-width:90%;font-size:12px}dialog{width:min(700px,92vw);max-height:85vh;border:1px solid var(--line);border-radius:5px;padding:25px;color:var(--ink)}dialog::backdrop{background:#18384a66}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}dialog p,dialog li{line-height:1.9;font-size:12px}dialog ul{padding-left:20px}dialog a{color:var(--teal)}.nearby-list{margin-top:8px}.nearby-list button{display:block;border:0;background:none;color:var(--teal);font-size:11px;padding:3px 0;text-align:left}.loading{opacity:.6}@media(min-width:1600px){.workspace{grid-template-columns:330px minmax(400px,1fr) 350px}.topbar{padding:0 32px}.explorer{padding:23px 22px 0}.inspector{padding:23px}.metrics{gap:34px}}@media(max-width:1120px){.workspace{grid-template-columns:260px minmax(340px,1fr)}.inspector{grid-column:1/-1;max-height:none;display:grid;grid-template-columns:1fr 1fr;gap:30px;border-top:1px solid var(--line)}.planning{padding-top:0}.detail{border-bottom:0}.results{max-height:440px}.map-stage{min-height:560px}.header-end{gap:8px}.scope{display:none}}@media(max-width:700px){.topbar{height:70px;padding:0 14px}h1{font-size:17px}.brandmark{width:34px;height:37px;font-size:24px}.identity{gap:10px}.identity p{letter-spacing:1px;font-size:10px}.topbar .quiet{font-size:10px;padding:7px}.notice{padding:8px 14px;font-size:10px}.workspace{display:flex;flex-direction:column}.map-panel{order:0}.explorer{order:1;border-top:1px solid var(--line);padding-top:17px}.inspector{order:2;display:block;padding:20px;max-height:none}.map-stage{min-height:420px}.map-top{padding:16px 15px 4px}.map-top h2{font-size:16px}.metrics{padding:0 15px;gap:17px}.metric b{font-size:17px}.metric span{font-size:9px}.legend{gap:7px;padding:9px 14px}.results{max-height:340px;min-height:100px}.explorer-foot{display:none}.planning{padding-top:20px}.detail{border-bottom:1px solid var(--line)}.bottom{font-size:9px;padding:8px 12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
[hidden]{display:none!important}
.map-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.rail-halo{fill:none;stroke:#fff;stroke-width:6;vector-effect:non-scaling-stroke;pointer-events:none}.rail-ties{fill:none;stroke:#214f86;stroke-width:5;stroke-dasharray:1 7;vector-effect:non-scaling-stroke;pointer-events:none}.passenger-path{fill:none;stroke:#8175a6;stroke-width:1.8;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;cursor:pointer}.rail-label{cursor:pointer}.rail-label rect{fill:#fff;fill-opacity:.96;stroke:#214f86;stroke-width:.7;vector-effect:non-scaling-stroke}.rail-label text{fill:#173e70;font-weight:600}.rail-label:focus rect{stroke:#e45024;stroke-width:2}.line-key.rail{border-color:#214f86;border-top-width:3px}.line-key.passenger{border-color:#8175a6;border-top-style:dashed}@media(max-width:700px){.map-actions{max-width:130px}.map-top{gap:8px}}
.branch-path,.construction-path,.planned-path,.inactive-path,.transit-path{fill:none;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:pointer}.branch-path{stroke:#647f9b;stroke-width:1.2;opacity:.8}.construction-path{stroke:#c67429;stroke-width:2;stroke-dasharray:6 4}.planned-path{stroke:#b99b6f;stroke-width:1.6;stroke-dasharray:2 6}.inactive-path{stroke:#787f84;stroke-width:1.5;stroke-dasharray:4 5}.transit-path{stroke:#9c7eaf;stroke-width:1.3}.line-key.branch{border-color:#647f9b}.line-key.construction{border-color:#c67429;border-top-style:dashed}.line-key.planned{border-color:#b99b6f;border-top-style:dotted}.line-key.inactive{border-color:#787f84;border-top-style:dashed}.line-key.transit{border-color:#9c7eaf}

.area-key.industry{width:11px;height:8px;margin-right:5px;background:#cfe7f4;border:1px solid #5283a0}
.city-area.industry-match{fill:#cfe7f4;fill-opacity:.85;stroke:#82a5ba}
.city-area.industry-selected,.city-area.industry-match.active,.city-area.industry-match:hover{fill:#b2d6eb;fill-opacity:.94;stroke:#367091;stroke-width:1.3}
.industry-reference{fill:#fff;stroke:#8e3544;stroke-width:2.3;vector-effect:non-scaling-stroke;cursor:pointer}
.industry-reference.destination{fill:#8e3544}
.industry-reference:hover,.industry-reference:focus{stroke:#441421;stroke-width:3}
.park-pin{cursor:pointer}
.park-pin .park-hit{fill:transparent}
.park-pin .park-dot{fill:#57518d;stroke:white;stroke-width:1.6;vector-effect:non-scaling-stroke}
.park-pin.office .park-dot,.park-pin.service .park-dot,.park-pin.planning .park-dot{fill:white;stroke:#57518d;stroke-width:2}
.park-pin.active .park-dot,.park-pin:hover .park-dot,.park-pin:focus-visible .park-dot{stroke:#271c55;stroke-width:3}
.industry-coverage{margin:10px 0 3px;padding:8px 10px;background:#eff6fa;border-left:2px solid #5283a0;color:#264f66;font-size:11px;line-height:1.65}
.industry-map-note{color:#325a70}
.detail h3{font-size:12px;margin:13px 0 4px}
.industry-sources,.industry-nodes,.industry-related ul{padding-left:17px;margin:4px 0 12px;font-size:11px;line-height:1.65}
.industry-sources li,.industry-nodes li,.industry-related li{margin:4px 0}
.industry-related{font-size:11px;margin-top:10px}
.industry-related summary{cursor:pointer;color:var(--teal)}
.industry-related .text-button{text-align:left;white-space:normal}
.directory-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.directory-actions .quiet{flex:1;white-space:nowrap}
.directory-actions .quiet[aria-pressed="true"]{color:#194c5c;background:#e7f1f6;border-color:#6e9ab2}
#park-level-label,#park-factory-label{grid-column:1/-1}
.factory-record{margin:6px 0;padding:6px 8px;border:1px solid var(--line);border-radius:6px;overflow-wrap:anywhere}
.factory-record summary{cursor:pointer;color:var(--teal);font-size:12px}
.factory-record p{margin:4px 0}
.factory-metrics li{margin-bottom:7px}
.park-capacity{margin:18px 0;padding:12px;border:1px solid var(--line);border-radius:8px}
.capacity-product,.capacity-audit{border-top:1px solid var(--line);padding:7px 0;overflow-wrap:anywhere}
.capacity-product summary,.capacity-audit summary{cursor:pointer;font-size:12px;font-weight:650;line-height:1.55}
.capacity-status{display:inline-block;margin-left:7px;font-size:11px;font-weight:500;color:var(--muted)}
.capacity-factory{padding:8px 0 4px;font-size:12px}
.capacity-factory+.capacity-factory{border-top:1px solid var(--line)}
.capacity-pending{color:var(--muted)}
.product-link{display:inline-block;max-width:100%;padding:3px 2px;border:0;background:transparent;color:var(--teal);font:inherit;text-align:left;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;cursor:pointer}
.product-link:hover,.product-link:focus-visible{background:#e6f0ed}
#product-dialog{width:min(780px,calc(100vw - 26px));max-height:calc(100dvh - 34px);overflow:auto}
#product-dialog .dialog-top{align-items:center}
#product-title{margin:3px 0 0;overflow-wrap:anywhere}
.product-main{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;margin:14px 0}
.product-main.with-photo{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.product-photo{margin:0;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#f4f7f6}
.product-photo img{display:block;width:100%;height:220px;object-fit:contain;background:#eef2f0}
.product-photo figcaption{padding:9px 11px;font-size:11px;line-height:1.65;overflow-wrap:anywhere}
.product-photo figcaption span{display:block}
.product-kicker,.product-data-status{color:var(--muted);font-size:12px}
.product-intro p{margin:0 0 9px;line-height:1.6}
.product-facts{display:grid;grid-template-columns:4em minmax(0,1fr);gap:6px 9px;margin:9px 0;font-size:12px;line-height:1.65}
.product-facts dt{color:var(--muted)}
.product-facts dd{margin:0;overflow-wrap:anywhere}
.product-section{border-top:1px solid var(--line);padding-top:10px;margin-top:12px}
.product-section h3{margin:0 0 7px;font-size:13px}
.product-section ul{margin:0;padding-left:17px;font-size:12px;line-height:1.65}
.product-section li{margin:3px 0;overflow-wrap:anywhere}
@media(max-width:620px){.product-main.with-photo{grid-template-columns:minmax(0,1fr)}.product-photo img{height:180px}}
