/* 3.4.4 - FS25 LiveMap direct integration. Scoped to the map page only. */
.lm-loading{min-height:360px;display:grid;place-content:center;justify-items:center;gap:10px;text-align:center;color:var(--muted)}
.lm-loading b{color:var(--text);font-size:1rem}.lm-loading span{max-width:560px}
.lm-card{padding:0;overflow:hidden}.lm-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--panel)}
.lm-status{display:flex;align-items:center;gap:10px;min-width:210px}.lm-status>div{display:flex;flex-direction:column;gap:2px}.lm-status b{font-size:.84rem}.lm-status small{font-size:.69rem;color:var(--muted)}
.lm-live-dot{width:10px;height:10px;border-radius:50%;background:#2aaa66;box-shadow:0 0 0 5px color-mix(in srgb,#2aaa66 14%,transparent);flex:0 0 auto}
.lm-filters{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;min-width:0}.lm-filter{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:var(--panel-soft);color:var(--muted);border-radius:9px;padding:7px 9px;font-size:.69rem;font-weight:800;cursor:pointer;white-space:nowrap}.lm-filter:hover{border-color:color-mix(in srgb,var(--accent) 38%,var(--line));color:var(--text)}.lm-filter.active{background:color-mix(in srgb,var(--accent) 11%,var(--panel));border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent-strong,var(--accent))}
.lm-zoom{display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--panel-soft)}.lm-zoom button{border:0;border-right:1px solid var(--line);background:transparent;color:var(--text);width:34px;height:32px;display:grid;place-items:center;cursor:pointer;font-weight:900}.lm-zoom button:last-child{border-right:0;border-left:1px solid var(--line)}.lm-zoom span{min-width:56px;text-align:center;font-size:.67rem;font-weight:800;color:var(--muted)}
.lm-map-warning{display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;background:#fff6d9;color:#745b10;border-bottom:1px solid #ead89c;font-size:.72rem;font-weight:700}
[data-theme="dark"] .lm-map-warning{background:#2a2618;color:#e9d37e;border-color:#4a4327}
.lm-viewport{position:relative;width:100%;aspect-ratio:1/1;max-height:min(74vh,920px);overflow:hidden;background:#d4ddd0;touch-action:none;cursor:grab;user-select:none}.lm-viewport.dragging{cursor:grabbing}.lm-stage{--lm-inverse:1;position:absolute;inset:0;transform-origin:50% 50%;will-change:transform}.lm-map-image,.lm-map-placeholder,.lm-fields,.lm-marker-layer{position:absolute;inset:0;width:100%;height:100%}.lm-map-image{object-fit:fill;pointer-events:none;-webkit-user-drag:none}.lm-map-placeholder{background:linear-gradient(135deg,#dbe5d6,#c8d7c3)}
[data-theme="dark"] .lm-map-placeholder{background:linear-gradient(135deg,#1a2720,#142018)}
.lm-fields{overflow:visible;pointer-events:none}.lm-field-shape{vector-effect:non-scaling-stroke;stroke-width:1.35;fill:transparent;stroke:rgba(255,255,255,.42)}.lm-field-shape.other{stroke:rgba(255,255,255,.33);fill:rgba(255,255,255,.018)}.lm-field-shape.own{stroke:#70d38e;stroke-width:2.2;fill:rgba(55,157,86,.12);filter:drop-shadow(0 0 2px rgba(20,70,35,.28))}.lm-field-label{font-size:18px;font-weight:900;text-anchor:middle;dominant-baseline:middle;fill:#fff;stroke:rgba(20,50,28,.78);stroke-width:4px;paint-order:stroke;vector-effect:non-scaling-stroke}
.lm-marker-layer{pointer-events:none}.lm-marker{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;border:0;background:transparent;padding:0;cursor:pointer;z-index:5}.lm-marker-core{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;color:#fff;background:#2d6744;border:2px solid rgba(255,255,255,.95);box-shadow:0 4px 12px rgba(20,34,25,.27);transform:scale(var(--lm-inverse));transform-origin:center;transition:box-shadow .15s,filter .15s}.lm-marker:hover .lm-marker-core,.lm-marker.selected .lm-marker-core{box-shadow:0 0 0 4px rgba(255,255,255,.72),0 7px 18px rgba(20,34,25,.35);filter:brightness(1.08)}.lm-marker-label{position:absolute;left:50%;top:calc(100% + 5px);transform:translateX(-50%) scale(var(--lm-inverse));transform-origin:top center;background:rgba(20,32,23,.88);color:#fff;padding:4px 7px;border-radius:7px;font-size:8px;font-weight:800;white-space:nowrap;opacity:0;pointer-events:none;box-shadow:0 4px 12px rgba(0,0,0,.15)}.lm-marker:hover .lm-marker-label,.lm-marker.selected .lm-marker-label{opacity:1}
.lm-vehicle .lm-marker-core{background:#d68b20;transform:scale(var(--lm-inverse)) rotate(var(--lm-rot))}.lm-player .lm-marker-core{background:#3978b9;transform:scale(var(--lm-inverse)) rotate(var(--lm-rot));border-radius:50%}.lm-hotspot.type-production_point .lm-marker-core{background:#28724a}.lm-hotspot.owned-production .lm-marker-core{box-shadow:0 0 0 4px rgba(61,189,105,.28),0 5px 14px rgba(20,34,25,.25)}.lm-hotspot.type-fuel .lm-marker-core{background:#3c70a8}.lm-hotspot.type-unloading .lm-marker-core,.lm-hotspot.type-unloading_train .lm-marker-core,.lm-hotspot.type-loading .lm-marker-core,.lm-hotspot.dashboard-storage .lm-marker-core{background:#7358a5}.lm-hotspot.type-farm .lm-marker-core{background:#875b34}.lm-hotspot.type-shop .lm-marker-core,.lm-hotspot.type-animal_shop .lm-marker-core{background:#506075}.lm-hotspot.type-cow .lm-marker-core,.lm-hotspot.type-chicken .lm-marker-core,.lm-hotspot.type-bee .lm-marker-core{background:#8b6b32}
.lm-hidden{display:none!important}.lm-coordinate-note{position:absolute;right:10px;bottom:10px;z-index:15;padding:5px 7px;border-radius:7px;background:rgba(18,30,21,.67);color:#fff;font-size:8px;pointer-events:none}
.lm-detail{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px 15px;border-top:1px solid var(--line);background:var(--panel);min-height:58px}.lm-detail>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:170px}.lm-detail b{font-size:.83rem}.lm-detail small,.lm-detail-empty{font-size:.69rem;color:var(--muted)}.lm-detail-kv{display:grid;grid-template-columns:auto auto;gap:2px 10px;align-items:center}.lm-detail-kv span{font-size:.65rem;color:var(--muted)}.lm-detail-kv strong{font-size:.69rem;text-align:right}.lm-legend{display:flex;gap:14px;flex-wrap:wrap;padding:9px 15px;border-top:1px solid var(--line);background:var(--panel-soft);font-size:.65rem;color:var(--muted)}.lm-legend span{display:flex;align-items:center;gap:5px}.lm-legend i{width:8px;height:8px;border-radius:3px;background:#888}.lm-legend i.vehicle{background:#d68b20}.lm-legend i.production{background:#28724a}.lm-legend i.field{background:#70d38e}.lm-legend i.player{background:#3978b9}.lm-legend i.place{background:#7358a5}
.lm-fallback{overflow:hidden;padding:0}.lm-fallback-head{padding:13px 16px;border-bottom:1px solid var(--line)}.lm-fallback-head>div{display:flex;flex-direction:column;gap:3px}.lm-fallback-head small{color:var(--muted)}.lm-fallback .map-toolbar{padding:13px 16px;margin:0}.lm-fallback .map-art{height:min(64vh,720px)}
@media(max-width:1050px){.lm-toolbar{grid-template-columns:1fr auto}.lm-filters{grid-column:1/-1;grid-row:2;justify-content:flex-start}.lm-status{min-width:0}.lm-viewport{max-height:none}}
@media(max-width:700px){.lm-toolbar{grid-template-columns:1fr;gap:10px}.lm-zoom{justify-self:start}.lm-filters{grid-column:1;grid-row:auto;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;width:100%;padding-bottom:2px}.lm-filter{flex:0 0 auto}.lm-viewport{aspect-ratio:1/1}.lm-marker-core{width:29px;height:29px}.lm-marker-label{display:none}.lm-field-label{font-size:22px}.lm-detail{align-items:flex-start;flex-direction:column;gap:8px}.lm-detail-kv{width:100%;grid-template-columns:1fr auto}.lm-legend{gap:9px}.lm-map-warning{align-items:flex-start;justify-content:flex-start}.lm-coordinate-note{display:none}}
/* 3.4.4 direct LiveMap bridge: DDS background is decoded locally in the browser. */
.lm-map-image-loading{visibility:hidden}.lm-map-image{transition:opacity .18s ease}

/* 3.4.5 – direct LiveMap only fallback: no manual upload UI on the map page. */
.lm-direct-wait{min-height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;padding:34px}
.lm-direct-wait>span{max-width:760px;color:var(--muted,#68746f);line-height:1.55}
.lm-wait-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(900px,100%);margin-top:10px}
.lm-wait-steps span{display:flex;align-items:center;gap:9px;text-align:left;padding:12px 14px;border:1px solid var(--line,#dfe7e2);border-radius:14px;background:var(--surface-soft,#f7faf8);font-size:13px}
.lm-wait-steps b{display:grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:#dff3e4;color:#18713b}
@media(max-width:760px){.lm-wait-steps{grid-template-columns:1fr}.lm-direct-wait{padding:24px 16px}}


/* 3.4.7 – stable, square LiveMap canvas. Never stretch the 1:1 game map. */
.lm-card{background:var(--panel)}
.lm-viewport{width:min(100%,960px);height:auto;aspect-ratio:1/1;max-height:none;margin:16px auto;border:1px solid var(--line);border-radius:16px;background:#d4ddd0;box-shadow:0 12px 32px rgba(22,45,30,.10)}
.lm-stage{width:100%;height:100%}
.lm-map-image{object-fit:contain;background:#152018}
.lm-field-shape.other{stroke:rgba(255,255,255,.28);fill:transparent}
.lm-all-fields-toggle{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:9px;padding:7px 9px;font-size:.69rem;font-weight:800;cursor:pointer;white-space:nowrap}
.lm-all-fields-toggle.active{background:color-mix(in srgb,var(--accent) 11%,var(--panel));border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent-strong,var(--accent))}
@media(max-width:1050px){.lm-viewport{width:min(100%,820px);margin:12px auto}}
@media(max-width:700px){.lm-viewport{width:100%;margin:0;border-left:0;border-right:0;border-radius:0}}

/* 3.4.8 LiveMap alignment hotfix
   FS25 LiveMap renders the game world from the centered 50% of overview.dds.
   World -size/2..+size/2 therefore maps to source image 25%..75% on both axes. */
.lm-stage{overflow:hidden}
.lm-map-image{
  inset:auto !important;
  left:-50% !important;
  top:-50% !important;
  width:200% !important;
  height:200% !important;
  max-width:none !important;
  object-fit:fill !important;
}

/* 3.4.9 LiveMap field info */
.lm-field-shape{pointer-events:visiblePainted;cursor:pointer;transition:fill .15s ease,stroke .15s ease,filter .15s ease}
.lm-field-shape:hover{fill:rgba(255,255,255,.12);stroke:#fff;filter:drop-shadow(0 0 4px rgba(255,255,255,.38))}
.lm-field-shape.own:hover{fill:rgba(55,157,86,.22);stroke:#9af0b2}
.lm-field-shape.selected{fill:rgba(48,134,230,.20);stroke:#8fc5ff;stroke-width:2.8;filter:drop-shadow(0 0 5px rgba(61,135,224,.5))}
.lm-field-label{pointer-events:none}
.lm-detail-warnings{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
.lm-detail-warnings span{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;background:#fff3d4;border:1px solid #efd28b;color:#765916;font-size:.62rem;font-weight:750;line-height:1.2}
@media(max-width:700px){.lm-detail-warnings{margin-top:6px}.lm-detail-warnings span{font-size:.65rem}}

/* 3.4.10 – compact field info popup directly beside the clicked field */
.lm-field-popup[hidden]{display:none!important}
.lm-field-popup{position:absolute;z-index:40;width:min(270px,calc(100% - 20px));padding:12px 13px 11px;border:1px solid rgba(202,216,207,.96);border-radius:13px;background:rgba(255,255,255,.97);color:#233229;box-shadow:0 12px 30px rgba(18,38,25,.24);backdrop-filter:blur(8px);cursor:default;user-select:text;pointer-events:auto}
.lm-field-popup::before{content:"";position:absolute;left:-7px;top:18px;width:12px;height:12px;background:inherit;border-left:1px solid rgba(202,216,207,.96);border-bottom:1px solid rgba(202,216,207,.96);transform:rotate(45deg)}
.lm-field-popup-head{display:flex;flex-direction:column;gap:1px;padding-right:24px;margin-bottom:8px}.lm-field-popup-head b{font-size:.82rem;line-height:1.2;color:#173824}.lm-field-popup-head small{font-size:.62rem;color:#6c7a70}
.lm-field-popup-close{position:absolute;right:7px;top:7px;width:24px;height:24px;border:0;border-radius:8px;background:#f1f5f2;color:#5c6a61;font-size:17px;line-height:1;cursor:pointer;display:grid;place-items:center}.lm-field-popup-close:hover{background:#e5eee8;color:#1f4730}
.lm-field-popup-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center}.lm-field-popup-grid span{font-size:.62rem;color:#78847c;min-width:0}.lm-field-popup-grid strong{font-size:.66rem;text-align:right;color:#27362c;max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lm-field-popup-warnings{display:flex;gap:4px;flex-wrap:wrap;margin-top:9px;padding-top:8px;border-top:1px solid #e7ede9}.lm-field-popup-warnings span{padding:3px 6px;border-radius:999px;background:#fff3d4;border:1px solid #efd28b;color:#765916;font-size:.58rem;font-weight:800;line-height:1.2}
[data-theme="dark"] .lm-field-popup{background:rgba(25,35,29,.97);border-color:#425248;color:#edf5ef;box-shadow:0 14px 34px rgba(0,0,0,.42)}[data-theme="dark"] .lm-field-popup::before{border-color:#425248}[data-theme="dark"] .lm-field-popup-head b,[data-theme="dark"] .lm-field-popup-grid strong{color:#edf5ef}[data-theme="dark"] .lm-field-popup-head small,[data-theme="dark"] .lm-field-popup-grid span{color:#aab7ae}[data-theme="dark"] .lm-field-popup-close{background:#334039;color:#c9d4cd}[data-theme="dark"] .lm-field-popup-warnings{border-top-color:#3b4941}
@media(max-width:700px){.lm-field-popup{width:min(245px,calc(100% - 18px));padding:11px 12px}.lm-field-popup-grid strong{max-width:125px}.lm-field-popup::before{display:none}}
.lm-fields{pointer-events:auto}
.lm-field-popup.lm-field-popup-left::before{left:auto;right:-7px;border-left:0;border-bottom:0;border-right:1px solid rgba(202,216,207,.96);border-top:1px solid rgba(202,216,207,.96)}
[data-theme="dark"] .lm-field-popup.lm-field-popup-left::before{border-color:#425248}
