/* Map navigation: pan on canvas, rotate with a dedicated view joystick. */
.header-time{right:10px}
.tree-row .area-alert{white-space:nowrap;font-size:9px;padding:2px 4px;line-height:1.3;border-color:#d2718255;background:#a03d512e;color:#ff9eab}
.tree-row .tree-name{min-width:0;flex:1}.tree-row .tree-name>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tree-row.room>.area-alert{margin-left:4px}.tree-row.room>.online-ratio{font-size:9px}
.factory-entry{position:absolute;z-index:12;pointer-events:auto;transform:translate(-50%,9px);padding:7px 13px;border:1px solid #78d9e6aa;border-radius:3px;background:linear-gradient(135deg,#126688ef,#082e48f5);color:#d2f8ff;font-size:12px;box-shadow:0 3px 14px #00223599,0 0 12px #2fcbe522;white-space:nowrap}
.factory-entry span{margin-left:9px;color:#70deea}.factory-entry:hover{background:#176985;box-shadow:0 0 14px #3ee2ef55}
.factory-entry[hidden],#cruiseStatus[hidden]{display:none!important}
#cruiseStatus{position:absolute;top:calc(var(--ov-top) + 82px);left:calc(var(--ov-map-left) + 13px);width:242px;z-index:9;padding:13px 15px;color:#b9e6ef;background:linear-gradient(135deg,#08324aea,#041d32f2);border:1px solid #4b9ebc88;border-left:2px solid #51d1dc;box-shadow:0 8px 25px #00132355;backdrop-filter:blur(7px)}
.cruise-heading{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#6ec9d9}.cruise-heading small{font:10px Arial;letter-spacing:1px;color:#729cac}.cruise-heading i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#61d4c6;margin-right:6px;box-shadow:0 0 7px #6efdeb88}
#cruisePlace{display:block;font-size:13px;font-weight:500;margin-top:11px;color:#daf6ff}.cruise-track{height:2px;background:#27647c66;margin:12px 0}.cruise-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,#278fca,#71f1dc);box-shadow:0 0 7px #53e6e577}
.cruise-actions{display:flex;align-items:center;gap:6px}.cruise-actions>span{margin-right:auto;color:#8eafbf;font-size:10px}.cruise-actions button{font-size:10px;padding:5px 8px;color:#b1e5ec;border:1px solid #4697ad77;background:#15567144;border-radius:2px}
#cruiseStatus p{font-size:9px;color:#678da3;margin:10px 0 0}body.map-only #cruiseStatus{left:14px}
#metrics .summary-total{grid-template-columns:clamp(36px,3.3vw,58px) max-content;gap:4px;align-content:center}
.summary-art,.compact-preview .summary-art{width:clamp(36px,3.3vw,58px);height:clamp(44px,3.8vw,65px)}
.compact-preview #metrics .summary-total{grid-template-columns:36px max-content}
#scene canvas{cursor:grab;touch-action:none}#scene canvas:active{cursor:grabbing}
.layer-launcher{position:absolute;left:calc(var(--ov-map-left) + 10px);bottom:calc(var(--ov-bottom) + 12px);z-index:7;display:flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid #3e86a575;border-radius:4px;background:linear-gradient(135deg,#0b3349ee,#061e32ed);box-shadow:0 4px 12px #00111c40;color:#b9deed;font-size:12px}
.layer-launcher .ui-icon{width:16px;height:16px}
.layer-launcher[aria-expanded="true"]{border-color:#60c9db;color:#ddfaff;background:#124b65ef}
#mapLegend{width:280px;left:calc(var(--ov-map-left) + 10px);bottom:calc(var(--ov-bottom) + 58px);padding:12px;border-radius:5px;background:linear-gradient(135deg,#092b41f7,#051c30f5);box-shadow:0 8px 32px #0006;backdrop-filter:blur(10px)}
#mapLegend .legend-heading{justify-content:space-between}
#mapLegend .legend-heading strong{font-size:12px;font-weight:600;letter-spacing:.5px}
#legendCollapse{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:#8cc5d8;transform:none}
#legendCollapse .ui-icon{width:10px;height:10px}
#mapLegend .legend-content{padding-top:8px}
#mapLegend .scene-layer-switches{flex-direction:row;gap:16px;padding-bottom:10px}
#mapLegend .scene-layer-switches>label{flex:1;gap:6px;white-space:nowrap;font-size:11px}
#mapLegend .point-control-heading{margin:9px 0 0}
#mapLegend .point-control-heading>label{font-size:11px;font-weight:500}
#mapLegend #layers{grid-template-columns:repeat(3,1fr);gap:6px;margin:9px 0 10px}
#mapLegend .legend-choice{position:relative;justify-content:center;gap:6px;padding:6px 4px;border:1px solid #4a72844a;border-radius:3px;background:#102b3b5e;color:#547a91;font-size:11px;min-height:29px}
#mapLegend .legend-choice .category-icon{width:15px;height:15px;background:#567c93;opacity:.7}
#mapLegend .legend-choice:has(input:checked){border-color:#3292ac70;background:linear-gradient(135deg,#0d587b5e,#12435a48);color:#bddeeb}
#mapLegend .legend-choice:has(input:checked) .category-icon{background:#51cde5;opacity:1}
#mapLegend .legend-choice:hover{border-color:#53bcd2}
#mapLegend .legend-choice input,#mapLegend .point-state-options input{appearance:none;position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;padding:0;cursor:pointer}
#mapLegend .legend-choice:focus-within,#mapLegend .point-state-options label:focus-within{outline:1px solid #76e4ee;outline-offset:2px}
#mapLegend .point-state-options{gap:5px;justify-content:flex-start;align-items:center;margin-top:0;border-top:1px solid #41778f33;padding-top:9px}
#mapLegend .point-state-options>span{font-size:10px;color:#749db2;margin-right:3px}
#mapLegend .point-state-options label{position:relative;justify-content:center;flex:1;border:1px solid #3d637547;padding:5px 4px;border-radius:3px;font-size:10px;color:#5f8194;background:#0a273b44}
#mapLegend .point-state-options label:has(input:checked){border-color:#426c8470;color:#b8d5e2;background:#1a45604f}
#mapLegend .point-state-options label:not(:has(input:checked)) i{opacity:.3}
#mapLegend #pointControls.disabled{opacity:.35}
.view-control{position:absolute;right:calc(var(--ov-map-right) + 10px);bottom:calc(var(--ov-bottom) + 62px);z-index:7;display:flex;flex-direction:column;align-items:center;gap:7px;user-select:none}
.view-joystick{position:relative;width:94px;height:94px;border-radius:50%;border:1px solid #4c96b477;background:radial-gradient(circle,#0c3448b8 30%,#061f34e8 62%,#0c3b52e8);box-shadow:0 4px 16px #00142155,inset 0 0 0 5px #17465d33;touch-action:none;cursor:grab}
.view-joystick.dragging{cursor:grabbing;border-color:#6bdded;box-shadow:0 0 14px #2ccee321,inset 0 0 0 5px #17465d33}
.joystick-orbit{position:absolute;inset:18px;border:1px solid #4e8ba445;border-radius:50%;pointer-events:none}
.view-direction{position:absolute;display:block;color:#8acada;line-height:16px;font:20px Arial;pointer-events:none}
.view-direction.up{left:39px;top:2px}.view-direction.down{left:39px;bottom:2px}.view-direction.left{top:34px;left:7px}.view-direction.right{top:34px;right:7px}
.joystick-thumb{position:absolute;left:50%;top:50%;width:34px;height:34px;transform:translate(calc(-50% + var(--stick-x,0px)),calc(-50% + var(--stick-y,0px)));border-radius:50%;border:1px solid #67c9d988;padding:8px;background:radial-gradient(circle at 35% 25%,#28748d,#104158 65%);box-shadow:0 2px 8px #00141e66,inset 0 1px #c3fcff24;touch-action:none;cursor:grab}
.joystick-thumb .ui-icon{display:block;width:16px;height:16px;pointer-events:none}
.view-joystick.dragging .joystick-thumb{cursor:grabbing}
.topview-shortcut{padding:4px 14px;border:1px solid #3f839f55;border-radius:3px;background:#07273dd9;display:flex;align-items:center;gap:6px;color:#9fcbdc;font-size:10px}
.topview-shortcut .ui-icon{width:12px;height:12px}
.toolbar,.compact-preview .toolbar{bottom:calc(var(--ov-bottom) + 12px);gap:4px;max-width:none}
.toolbar #penetrate,.inside-view .toolbar #penetrate{display:flex}
.toolbar button{padding:8px 9px;font-size:11px}
.toolbar button:disabled{opacity:.4;cursor:default;background:transparent}
#hint,.compact-preview #hint{right:calc(var(--ov-map-right) + 118px);bottom:calc(var(--ov-bottom) + 66px);max-width:320px;font-size:9px}
body.map-only .layer-launcher{left:14px;bottom:14px}
body.map-only #mapLegend{left:14px;bottom:60px}
body.map-only .view-control{right:14px;bottom:66px}
body.map-only .toolbar{right:14px;bottom:14px}
body.map-only #hint{right:126px;bottom:66px}
@media(max-width:1500px){.toolbar button{padding:7px;font-size:10px}.view-joystick{width:88px;height:88px}.view-direction.up,.view-direction.down{left:36px}.view-direction.left,.view-direction.right{top:31px}.view-control{gap:6px}#hint,.compact-preview #hint{max-width:260px;font-size:8px}.layer-launcher{font-size:11px;padding:8px 12px}}
