/* Workshop map: main navigation. Phone first (390x844). */
.map-page{max-width:720px;margin:0 auto}
.map-frame{background:#fff;border:1px solid var(--line);border-radius:18px;padding:8px;box-shadow:0 6px 24px rgba(23,62,53,.07)}
.map-svg{display:block;width:100%;height:auto;font-family:inherit;touch-action:manipulation}
.map-building{fill:#f7f9f3;stroke:#173e35;stroke-width:3}
.map-caption{font-size:8px;letter-spacing:1.4px;fill:#7d8f6a;font-weight:650}
.map-door{fill:#a8612d}.map-door-label{font-size:7px;fill:#a8612d}
.map-area{cursor:pointer;outline:none}
.map-zone{stroke-width:2;transition:transform .12s ease,filter .12s ease}
.map-area:hover .map-zone,.map-area:focus-visible .map-zone{filter:brightness(.96);stroke-width:3}
.map-area:active .map-zone{filter:brightness(.9)}
.map-machine .map-zone{fill:#dcebc7;stroke:#547b42}
.map-stock .map-zone{fill:#e3ecf3;stroke:#41627a}
.map-bench .map-zone{fill:#f3efdc;stroke:#a28c48}
.map-office .map-zone{fill:#efe9f2;stroke:#7a5c88}
.map-remote .map-zone{fill:#fff4ea;stroke:#a8612d;stroke-dasharray:6 4}
.map-icon{font-size:22px;fill:#173e35}.map-icon.tight{font-size:16px}
.map-label{font-size:13px;font-weight:700;fill:#173e35}.map-label.tight{font-size:12px}
.map-sub{font-size:8.5px;fill:#5f7266}
.map-badge rect{fill:#173e35}.map-badge text{fill:#d6ed94;font-size:10px;font-weight:700}
.map-badge.hot rect{fill:#a8612d}.map-badge.hot text{fill:#fff}
.map-area.stuck .map-zone{stroke:#a8612d;stroke-width:3}
.map-flow{fill:none;stroke:#a7b79a;stroke-width:3;stroke-linecap:round}
.map-order{fill:none;stroke:#a8612d;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.map-order.back{stroke:#547b42}
.map-order.hot{stroke-width:3.6}
.map-path-kicker{font-size:9px;fill:#8a6135;font-weight:700;letter-spacing:.4px}
.map-path-kicker.sub{font-size:8px;font-weight:600;fill:#5f7266}
.map-edge .map-zone{fill:#f4f1ea;stroke:#8a6135;stroke-dasharray:6 4}
.map-edge .map-icon{fill:#8a6135}
.map-remote-line{fill:none;stroke:#a8612d;stroke-width:2;stroke-dasharray:5 5}
.map-remote-line.back{stroke:#547b42}
.map-remote-label{font-size:8px;fill:#a8612d;font-weight:650}
.map-remote-label.back{fill:#547b42}
.map-legend{display:flex;flex-wrap:wrap;gap:12px;margin:12px 4px 4px;font-size:10px;color:#5f7266}
.map-legend .lg{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px;border:1.5px solid}
.lg.machine{background:#dcebc7;border-color:#547b42}.lg.stock{background:#e3ecf3;border-color:#41627a}.lg.flow{background:#f3efdc;border-color:#a28c48}.lg.edge{background:#f4f1ea;border-color:#8a6135;border-style:dashed}.lg.remote{background:#fff4ea;border-color:#a8612d;border-style:dashed}.lg.path{background:transparent;border-color:transparent;border-top:2px solid #a8612d;height:0;width:14px;border-radius:0}
.map-foot{font-size:10px;color:#7d8f6a;margin:6px 4px 16px;line-height:1.6}
.map-sheet{background:#fff;border:1px solid #ecd9c6;border-radius:16px;padding:16px;margin-top:14px;box-shadow:0 8px 28px rgba(168,97,45,.12)}
.map-sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.map-sheet-head h2{font-size:18px;margin:2px 0 8px}
.map-close{font-size:18px;min-width:44px;min-height:44px;display:grid;place-items:center;color:#7d8f6a}
.map-pick{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#667c5a;margin:6px 0 12px}
.map-pick select{min-height:44px;font-size:14px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#f8faf4}
.map-status{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}
.map-status div{background:#f7f9f3;border-radius:10px;padding:9px 6px;text-align:center}
.map-status b{display:block;font-size:20px;color:#173e35}.map-status span{font-size:9px;color:#7d8f6a}
.map-status .late b{color:#a8612d}
.map-h4{font-size:11px;letter-spacing:.8px;text-transform:uppercase;color:#7d8f6a;margin:16px 0 8px}
.map-jobs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.map-jobs li{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:10px}
.map-jobs small,.map-rates small{display:block;font-size:9px;color:#7d8f6a;margin-top:3px;line-height:1.45}
.map-rates small.derived{color:#a8612d}
.map-contact{display:flex;flex-direction:column;gap:6px}
.map-call{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border-radius:10px;background:#eef5e4;color:#173e35;font-weight:600;font-size:14px}
.map-call small{font-weight:400;color:#5f7266;font-size:10px}
.map-empty-slot{border:1.5px dashed #c9b49a;border-radius:10px;padding:10px;color:#8a6135;font-size:12px}
.map-sheet-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.map-sheet-actions .button{min-height:44px;display:inline-flex;align-items:center}
.map-rate-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.map-rates{width:100%;border-collapse:collapse;font-size:11px;min-width:420px}
.map-rates th{text-align:left;font-size:9px;color:#7d8f6a;font-weight:600;padding:6px 4px;border-bottom:1px solid var(--line)}
.map-rates td{padding:8px 4px;border-bottom:1px solid #f0f2ec;vertical-align:top}
.map-rates .num{text-align:right;white-space:nowrap}
.map-rates tr.min-charge td{background:#fff8ef}
.map-min{font-size:12px;background:#fff8ef;border-radius:10px;padding:10px;margin:0 0 8px}
.map-noprice{margin-top:6px}
.map-lumps{margin-top:10px;font-size:11px}.map-lumps ul{padding-left:16px}.map-lumps li{margin:6px 0}
.pb-area{background:#fff;border:2px solid #547b42;border-radius:16px;padding:16px;margin-bottom:16px}
.pb-area h2{margin:2px 0 6px}.pb-area ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.pb-area li{border:1px solid var(--line);border-radius:10px;padding:10px;font-size:12px}
.pb-area li small{display:block;color:#7d8f6a;font-size:10px;margin-top:3px}
.route-flash{animation:routeflash 1.4s ease}
@keyframes routeflash{0%{box-shadow:0 0 0 4px rgba(214,237,148,.9)}100%{box-shadow:0 0 0 0 rgba(214,237,148,0)}}
.coater-profile .sup-contacts a{display:inline-flex;min-height:40px;align-items:center}
.ph-chart{border:1px solid var(--line);border-radius:12px;padding:10px;margin:8px 0;background:#fff}
.ph-head{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px;margin-bottom:6px}
.ph-svg{width:100%;height:auto;display:block}.ph-svg circle{fill:#173e35;stroke:#d6ed94;stroke-width:2;cursor:pointer}
.ph-axis{font-size:10px;fill:#5f7150;font-variant-numeric:tabular-nums}
.ph-grid{stroke:#e3ead6;stroke-width:1;stroke-dasharray:3 3}
.ph-head b{min-width:0;overflow-wrap:anywhere}.ph-head .badge{flex:none;white-space:nowrap}
.sup-dates{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;margin:6px 0;padding:8px 10px;border-radius:10px;background:#f2f6ea;font-size:13px;color:#1a4e42}
.sup-dates.late{background:#fdf0e6;color:#7a3d12;border:1px solid #f0c9a8}
.sup-activity li>span{display:block}.sup-activity .sup-text{display:block;white-space:pre-wrap;margin-top:4px;color:#2d3b2a}
.sup-activity .sup-when{color:#6b7a5d}.badge.src{background:#e7f3df;color:#2f6b2a}
.geo-acts .sup-dates{margin:6px 0 0}.geo-acts a.stock-track{display:inline-block;margin-top:4px}
.sup-drawing{display:block;max-width:100%;max-height:240px;margin-top:6px;border:1px solid var(--line);border-radius:8px;background:#fff}
.geo-map{height:min(58vh,520px);border-radius:16px;border:1px solid var(--line);overflow:hidden;background:#e8eee2}
.geo-toggle{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.geo-toggle .chip{min-height:40px}
.geo-attrib{font-size:9px;color:#7d8f6a;margin:6px 4px}
.geo-pin{display:grid!important;place-items:center;border-radius:50% 50% 50% 4px;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35);font-size:15px;color:#fff}
.geo-pin span{transform:none}.geo-pin.approx{border-style:dashed;opacity:.9}
.geo-factory{background:#173e35;font-size:22px;border-radius:12px}.geo-powder_coater{background:#a8612d}.geo-material{background:#41627a}
.geo-hardware{background:#547b42}.geo-packaging{background:#a28c48}.geo-freight{background:#7a5c88}.geo-overseas{background:#b23a48}
.geo-legend{display:flex;flex-wrap:wrap;gap:10px;font-size:10px;color:#5f7266;margin:8px 4px}
.geo-dot{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;color:#fff;font-style:normal;font-size:10px;margin-right:4px}
.geo-chips{display:flex;flex-wrap:wrap;gap:6px}.geo-chip{min-height:40px;border:1px solid var(--line);background:#fff;border-radius:20px;padding:6px 12px;font-size:12px;display:inline-flex;gap:6px;align-items:center}
.geo-chip span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;color:#fff;font-size:11px}
.geo-chip.geo-factory span{background:#173e35}.geo-chip.geo-powder_coater span{background:#a8612d}.geo-chip.geo-material span{background:#41627a}.geo-chip.geo-hardware span{background:#547b42}.geo-chip.geo-packaging span{background:#a28c48}.geo-chip.geo-freight span{background:#7a5c88}.geo-chip.geo-overseas span{background:#b23a48}
.geo-chip{background:#fff!important;color:#173e35!important}
.geo-sheet{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;margin-top:12px;box-shadow:0 8px 28px rgba(23,62,53,.1)}
.geo-sheet-head{display:flex;justify-content:space-between;gap:10px}.geo-sheet h2{margin:2px 0 6px;font-size:18px}
.geo-uses{margin:0;padding-left:18px;font-size:12px;color:#40534a}.geo-none{font-size:12px;padding-left:18px}.geo-none small{color:#7d8f6a}
.geo-acts li{display:block!important;padding:10px 12px}.geo-acts li b{display:block;font-size:13px;word-break:break-word}
.geo-status{display:inline-block;margin:4px 0;padding:3px 8px;border-radius:10px;background:#fbefd9;color:#7a4b12;font-size:11px;font-weight:700}
.geo-acts li small{display:block;color:#5f7266;font-size:11px}
.sup-orders li>span{display:block}.sup-orders small{display:block;margin-top:3px}
