/* The network desk is one viewport. Every operating surface belongs to this fullscreen root. */
html.network-map-open,html.network-map-open body{overflow:hidden;overscroll-behavior:none}
.map-workspace{position:fixed;inset:var(--map-vtop,0px) 0 auto;height:var(--map-vh,100dvh);min-height:0;width:100%;z-index:15;overflow:hidden;background:#4e6d71;color:#e8e7ce;padding:0}
.map-workspace:fullscreen{inset:0;height:100dvh;width:100vw}.map-workspace::backdrop{background:#28484a}
.map-workspace .graph-shell{position:absolute;inset:0;max-width:none;padding:0;margin:0;overflow:hidden}
.map-workspace .graph-map-panel{position:absolute;inset:0;padding:0;border-width:3px;scroll-margin:0;min-height:0;box-shadow:none}
.map-workspace .graph-map-host{width:100%;height:100%!important}
.map-workspace .graph-sticky{position:absolute;top:max(7px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));z-index:9;box-shadow:0 3px 9px #183c3e88;border:1px solid #8d9a8a}
.map-workspace .graph-global{min-height:58px;padding:5px 7px;gap:5px;flex-wrap:wrap;background:#d5d9c3}
.map-workspace .graph-clock{min-width:106px;padding:3px 8px;border-width:2px;margin-right:auto}.map-workspace .graph-clock>span{font-size:8px}.map-workspace .graph-clock>b{font-size:19px;margin-top:2px}
.map-workspace .graph-global>button{min-height:44px;min-width:44px;font-size:11px;padding:6px 10px}.map-workspace .graph-global>.run-button{font-size:12px}
.map-workspace .map-alert-zone{position:absolute;top:calc(var(--hud-bottom,74px) + env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));z-index:8;pointer-events:none}
.map-attention{display:flex;align-items:center;gap:6px;max-width:810px;margin:0 auto;background:#e2d6aa;color:#4c5135;border:1px solid #9e8956;border-left:4px solid #b08d41;padding:7px 9px;box-shadow:0 2px 6px #223e3b44;pointer-events:auto}
.map-attention>div{flex:1;min-width:0}.map-attention b{font-size:11px;line-height:1.4;display:block}.map-attention span{display:block;font:10px/1.4 Arial,sans-serif;max-width:620px;margin-top:2px}.map-attention>button{font-size:10px;min-width:44px;min-height:44px;padding:5px 9px}
.map-workspace .map-bottom-hud{position:absolute;left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));bottom:max(7px,env(safe-area-inset-bottom));z-index:7;pointer-events:none;display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.map-workspace .map-bottom-hud>*{pointer-events:auto;max-width:100%}.map-workspace .graph-feedback{padding:5px 9px;font:11px/1.4 Arial,sans-serif;min-height:0;max-width:min(850px,100%);background:#193e3de8;color:#e5e4c5;border-color:#92a28b;max-height:65px;overflow:auto}
.map-workspace .graph-camera-tools{padding:4px;gap:4px;background:#c3ceb6eb;border:1px solid #6c877a;box-shadow:0 2px 5px #173a3955;justify-content:flex-start;flex-wrap:wrap}
.map-workspace .graph-camera-tools>button{font-size:10px;padding:5px 9px;min-height:44px;min-width:44px}.map-workspace .graph-camera-label{right:8px;left:auto;bottom:4px;font-size:8px;max-width:50%;text-align:right;opacity:.8}
.map-workspace .graph-control-tray{display:none;position:absolute;right:max(10px,env(safe-area-inset-right));top:var(--sheet-top,78px);bottom:max(105px,calc(95px + env(safe-area-inset-bottom)));width:350px;max-width:40%;max-height:none;z-index:8;overflow:auto;overscroll-behavior:contain;border:2px solid #829a75;box-shadow:0 4px 18px #173e3b88;scroll-margin:0}
.map-workspace .graph-control-tray.is-open{display:block;position:absolute;right:max(10px,env(safe-area-inset-right));bottom:max(105px,calc(95px + env(safe-area-inset-bottom)));width:350px;max-width:40%;max-height:none}
.map-workspace .graph-tray-tabs{position:sticky;top:0;padding:4px;gap:3px;z-index:3}.map-workspace .graph-tray-tabs>button{font-size:10px;min-height:44px}.map-workspace .graph-close-controls{display:block;flex:0 0 44px!important;min-width:44px}
.map-workspace .graph-control-tray>[data-zone]{padding:10px}.map-workspace .graph-panel-title{margin-bottom:6px}.map-workspace .graph-small{font-size:10px;line-height:1.5}.map-workspace .graph-selected-service{padding:6px;gap:8px}.map-workspace .graph-selected-service>strong{font-size:20px;padding:5px}.map-workspace .graph-selected-service b{font-size:11px}.map-workspace .graph-selected-service span{font-size:10px;margin-top:3px}.map-workspace .graph-itinerary{font-size:10px;margin:7px 0}
.map-workspace .graph-destinations{grid-template-columns:1fr 1fr;gap:5px}.map-workspace .graph-destinations>button{font-size:10px;padding:7px;min-height:44px}.map-workspace .graph-small-heading{margin:8px 0;font-size:9px}
.map-workspace .graph-preview{padding:8px;margin-top:8px}.map-workspace .graph-preview>p{font-size:11px;line-height:1.4}.map-workspace .graph-path-variants{gap:4px;margin-top:5px}.map-workspace .graph-path-variants>button{min-height:44px;font-size:10px;padding:5px}.map-workspace .graph-preview-buttons{margin:6px 0}.map-workspace .graph-requirements{max-height:90px;margin-top:6px}.map-workspace .graph-check{padding:6px;margin:5px 0!important}.map-workspace .graph-preview>.primary{min-height:46px;bottom:-10px;box-shadow:0 -5px 0 #f0ebcf}.map-workspace .graph-mentor{font-size:10px;line-height:1.4;margin-top:7px;padding-top:7px}
.map-workspace .graph-point-detail{padding:9px;margin-bottom:7px}.map-workspace .graph-point-detail h3{font-size:19px;margin-top:5px}.map-workspace .graph-point-detail p{margin-top:5px;font-size:10px}.map-workspace .graph-position-buttons{margin-top:7px;gap:5px}.map-workspace .graph-position-buttons>button{padding:6px;min-height:44px}.map-workspace .graph-point-list{max-height:210px}.map-workspace .graph-point-list>button{font-size:10px}
.map-workspace .graph-timetable{margin:0;padding:6px;box-shadow:none;background:#ece8ce}.map-workspace .graph-timetable .stamp{display:none}.map-workspace .graph-timetable .paper-title h2{font-size:18px}.map-workspace .graph-timetable .paper-title p{font-size:8px}.map-workspace .graph-timetable td{font-size:10px;padding:7px 4px}.map-workspace .graph-timetable td>small{font-size:8px}.map-workspace .graph-timetable th:first-child{width:42%}.map-workspace .graph-timetable th:nth-child(2){width:20%}.map-workspace .graph-timetable th:nth-child(3){width:38%}
.graph-location-list,.graph-menu-actions{display:grid;gap:6px;margin-top:10px}.graph-location-list>button,.graph-menu-actions>button{min-height:44px;text-align:left;padding:9px;background:#e5e8ce;color:#355b3e;border:1px solid #94a67d;font-size:11px}.graph-location-list>.active{background:#c7d9ab}.graph-pan-controls{display:flex;gap:5px;margin-top:10px}.graph-pan-controls>button{min-width:44px;min-height:44px;background:#e2e5cc;color:#3b593c;border:1px solid #8b9b75}
.map-workspace [data-zone="dialog"] .overlay{position:absolute;inset:0;z-index:30;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));overflow:auto}.map-workspace .dialog{max-height:100%;margin:auto}.map-workspace .mode-choice>button{min-height:44px;padding:12px;font-size:12px;line-height:1.5}
.map-train-hit,.map-berth-hit{position:absolute;width:44px;min-width:44px;height:44px;min-height:44px;pointer-events:auto;border:1px solid transparent;background:transparent;color:#ffe4cf;font:bold 10px monospace;padding:2px;cursor:pointer;line-height:1.1}.map-train-hit{background:#1f383ce6;border:2px solid #869a91;box-shadow:1px 2px 0 #263c3b}.map-train-hit>small{display:block;font:7px Arial,sans-serif;margin-top:3px}.map-train-hit.selected{border-color:#ead494}.map-train-hit:focus-visible,.map-berth-hit:focus-visible{outline:2px solid #e7d495;outline-offset:1px}.map-berth-hit{border:1px dashed #bbc9aa88;font-size:8px;color:#e4e3c8;background:#294a4833}.map-train-hit:hover,.map-berth-hit:hover{background:#364d47aa}
@media(orientation:portrait),(max-width:650px){.map-workspace .graph-control-tray,.map-workspace .graph-control-tray.is-open{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));top:auto;bottom:max(112px,calc(102px + env(safe-area-inset-bottom)));width:auto;max-width:none;height:44%;max-height:44%}.map-workspace .graph-control-tray>[data-zone]{padding:8px}.map-workspace .graph-destinations{grid-template-columns:1fr 1fr 1fr}.map-workspace .graph-position-buttons{grid-template-columns:1fr 1fr}.map-workspace .graph-point-list{max-height:180px}.map-workspace .graph-timetable td{height:58px}.map-workspace .graph-global>button{font-size:10px;padding:5px 8px}.map-workspace .graph-clock{min-width:100px}.map-workspace .graph-clock>b{font-size:18px}.map-attention{padding:5px;gap:4px}.map-attention span{display:none}.map-attention b{font-size:10px}.map-attention>button{padding:5px;min-width:44px}.map-workspace .graph-camera-label{display:none}}
@media(max-width:450px){.map-workspace .graph-global{gap:4px;padding:4px}.map-workspace .graph-clock{min-width:95px;margin-right:0}.map-workspace .graph-global>button{flex:1;font-size:10px}.map-workspace .graph-global>[data-action="net-controls"]{flex:1.4}.map-workspace .graph-destinations{grid-template-columns:1fr 1fr}.map-workspace .graph-camera-tools>button{padding:5px 7px;font-size:9px}.map-workspace .graph-control-tray,.map-workspace .graph-control-tray.is-open{height:42%;max-height:42%;bottom:112px}.map-workspace .graph-feedback{font-size:10px;max-height:44px}.map-workspace .graph-position-buttons{grid-template-columns:1fr 1fr}}

.graph-train-layer{position:absolute;inset:0;pointer-events:none}

.map-workspace .graph-moving text{display:none}
