:root {
    --ets2-bg: #eef2f6;
    --ets2-panel: #ffffff;
    --ets2-panel-soft: #f6f8fb;
    --ets2-border: #d6dde6;
    --ets2-text: #21303f;
    --ets2-text-soft: #687584;
    --ets2-primary: #167a68;
    --ets2-primary-dark: #0f5f51;
    --ets2-accent: #ef8f25;
    --ets2-shadow: 0 18px 45px rgba(24, 39, 56, 0.12);
    --ets2-focus-ring: 0 0 0 3px rgba(239, 143, 37, 0.3);
    --ats-shell-bg: #1f1f1f;
    --ats-frame-bg: #101720;
    --ats-panel-bg: #111821;
    --ats-surface-bg: #18212d;
    --ats-canvas-bg: #141c26;
    --ats-text: #f8fafc;
    --ats-text-soft: rgba(226, 232, 240, 0.72);
    --ats-border: rgba(255, 255, 255, 0.08);
}

#ets2-live-map-app {
    --ets2-nav-offset: 0px;
    --ets2-viewport-height: 100vh;
    --ets2-viewport-height: 100dvh;
    display: block;
    position: relative;
    top: 0;
    width: 100%;
    max-width: 100%;
    margin-top: 0 !important;
    margin-left: 0;
    margin-right: 0;
    padding-top: var(--ets2-nav-offset);
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
    overflow-x: clip;
}

.ets2-live-map-shell {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 0;
    min-height: calc(var(--ets2-viewport-height) - var(--ets2-nav-offset));
    margin: 0 !important;
    border-top: 0;
    border-bottom: 0;
    border-left: 0;
    border-right: 0;
    border-radius: 0;
    overflow: hidden;
    background: #333333;
    box-shadow: none;
}

.ets2-live-map-rail {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    padding: 16px 10px;
    background: linear-gradient(180deg, #4a596b 0%, #2f3d4e 100%);
    border-right: 1px solid rgba(255, 255, 255, 0.08);
    z-index: 1046;
}

.ets2-live-map-rail-btn {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.15s ease;
}

.ets2-live-map-rail-btn:hover,
.ets2-live-map-rail-btn.is-active {
    background: #f4f8fb;
    color: #24404f;
    transform: translateY(-1px);
}

.ets2-live-map-rail-btn:focus-visible,
.ets2-live-map-search input:focus-visible,
.ets2-live-map-list-tools select:focus-visible,
.ets2-live-map-scope:focus-visible,
#ets2-map-fit:focus-visible,
.ets2-live-map-filter:focus-visible,
.ets2-live-map-toolbar-btn:focus-visible,
.ets2-live-map-follow-btn:focus-visible,
.ets2-live-map-mapcard-btn:focus-visible,
.ets2-live-map-mainnav-link:focus-visible,
.ets2-live-map-drivers-toolbar input:focus-visible,
.ets2-live-map-drivers-toolbar select:focus-visible {
    outline: none;
    box-shadow: var(--ets2-focus-ring);
}

.ets2-live-map-sidebar-offcanvas {
    --bs-offcanvas-width: 360px;
    width: min(360px, calc(100vw - 72px));
    top: var(--ets2-nav-offset);
    height: calc(var(--ets2-viewport-height) - var(--ets2-nav-offset));
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: #fbfcfe;
    border-right: 1px solid var(--ets2-border);
}

.ets2-live-map-sidebar-offcanvas .offcanvas-header {
    align-items: flex-start;
}

.ets2-live-map-sidebar-offcanvas .offcanvas-body {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 0;
}

.ets2-live-map-sidebar-offcanvas:not(.show) {
    visibility: hidden;
}

.ets2-live-map-app-no-bootstrap .ets2-live-map-sidebar-offcanvas {
    position: fixed;
    top: var(--ets2-nav-offset);
    left: 54px;
    bottom: auto;
    height: calc(var(--ets2-viewport-height) - var(--ets2-nav-offset));
    z-index: 1045;
    transform: translateX(-100%);
    transition: transform 0.2s ease;
    box-shadow: 0 18px 45px rgba(24, 39, 56, 0.18);
}

.ets2-live-map-app-no-bootstrap .ets2-live-map-sidebar-offcanvas.is-open {
    transform: translateX(0);
    visibility: visible;
}

.ets2-live-map-app-no-bootstrap .ets2-live-map-sidebar-offcanvas:not(.is-open) {
    pointer-events: none;
}

.ets2-live-map-sidebar {
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: #fbfcfe;
    border-right: 1px solid var(--ets2-border);
}

.ets2-live-map-sidebar-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 20px 14px;
    border-bottom: 1px solid #ebeff5;
}

.ets2-live-map-close {
    margin-left: auto;
}

.ets2-live-map-kicker {
    margin: 0 0 6px;
    color: var(--ets2-primary);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ets2-live-map-sidebar-head h1,
.ets2-live-map-list-head h2,
.ets2-live-map-section-head h2 {
    margin: 0;
    color: var(--ets2-text);
    font-size: 1.05rem;
}

.ets2-live-map-sidebar-count {
    min-width: 74px;
    padding: 10px 12px;
    border-radius: 14px;
    text-align: center;
    background: linear-gradient(180deg, #ebf7f4 0%, #d5efe9 100%);
    color: var(--ets2-primary-dark);
}

.ets2-live-map-sidebar-count span {
    display: block;
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1;
}

.ets2-live-map-sidebar-count small {
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.ets2-live-map-search,
.ets2-live-map-controls,
.ets2-live-map-panel {
    padding-left: 20px;
    padding-right: 20px;
}

.ets2-live-map-search {
    padding-top: 14px;
}

.ets2-live-map-search input {
    width: 100%;
    border: 1px solid var(--ets2-border);
    border-radius: 12px;
    background: var(--ets2-panel);
    color: var(--ets2-text);
    font: inherit;
    padding: 12px 14px;
    outline: none;
}

.ets2-live-map-search input:focus {
    border-color: #8bb6b0;
    box-shadow: 0 0 0 3px rgba(22, 122, 104, 0.12);
}

.ets2-live-map-quickfilters {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    padding: 12px 0 0;
}

.ets2-live-map-list-tools {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 20px 10px;
}

.ets2-live-map-list-tools label {
    color: var(--ets2-text-soft);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.ets2-live-map-list-tools select {
    min-width: 132px;
    border: 1px solid var(--ets2-border);
    border-radius: 10px;
    background: #fff;
    color: var(--ets2-text);
    font: inherit;
    font-size: 0.9rem;
    padding: 6px 10px;
}

.ets2-live-map-controls {
    display: flex;
    gap: 10px;
    padding-top: 12px;
    padding-bottom: 14px;
    border-bottom: 1px solid #ebeff5;
}

.ets2-live-map-scope,
#ets2-map-fit,
.ets2-live-map-filter,
.ets2-live-map-toolbar-btn {
    border: 1px solid var(--ets2-border);
    border-radius: 999px;
    background: #fff;
    color: var(--ets2-text);
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    padding: 9px 13px;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.ets2-live-map-scope:hover,
.ets2-live-map-scope.is-active,
.ets2-live-map-filter:hover,
.ets2-live-map-filter.is-active,
#ets2-map-fit:hover,
.ets2-live-map-toolbar-btn:hover,
.ets2-live-map-toolbar-btn.is-active {
    background: var(--ets2-primary);
    border-color: var(--ets2-primary);
    color: #fff;
}

.ets2-live-map-scope[disabled] {
    opacity: 0.45;
    cursor: not-allowed;
}

.ets2-live-map-filter {
    width: 100%;
    min-width: 0;
    padding: 6px 6px;
    font-size: 0.68rem;
    line-height: 1.15;
    text-align: center;
    white-space: normal;
    overflow-wrap: anywhere;
}

.ets2-live-map-panel {
    display: none;
    min-height: 0;
    padding-top: 18px;
    padding-bottom: 18px;
}

.ets2-live-map-panel.is-active {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}

.ets2-live-map-list-head,
.ets2-live-map-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.ets2-live-map-overlay-head {
    margin-top: 20px;
}

.ets2-live-map-list-head p,
.ets2-live-map-section-head p {
    margin: 4px 0 0;
    color: var(--ets2-text-soft);
    font-size: 0.86rem;
    line-height: 1.4;
}

.ets2-live-map-list,
.ets2-live-map-details,
.ets2-live-map-layer-list {
    min-height: 0;
    overflow: auto;
}

.ets2-live-map-panel[data-panel="layers"] {
    overflow: auto;
}

.ets2-live-map-panel[data-panel="layers"] .ets2-live-map-layer-list {
    min-height: auto;
    overflow: visible;
}

.ets2-live-map-list {
    display: grid;
    gap: 10px;
    padding-right: 6px;
}

.ets2-live-map-empty {
    margin: 0;
    color: var(--ets2-text-soft);
}

.ets2-live-map-item {
    width: 100%;
    text-align: left;
    border: 1px solid #dbe4ee;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    cursor: pointer;
    padding: 12px 14px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.ets2-live-map-item:hover,
.ets2-live-map-item.is-active {
    border-color: #8fbdb5;
    box-shadow: 0 10px 22px rgba(22, 122, 104, 0.12);
    transform: translateY(-1px);
}

.ets2-live-map-item.is-following {
    border-color: #167a68;
    box-shadow: 0 12px 24px rgba(22, 122, 104, 0.18);
}

.ets2-live-map-item-head,
.ets2-live-map-item-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.ets2-live-map-item-head strong {
    color: var(--ets2-text);
    font-size: 0.95rem;
}

.ets2-live-map-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 4px 9px;
    font-size: 0.72rem;
    font-weight: 700;
}

.ets2-live-map-chip.is-driving {
    background: #ddf6e7;
    color: #176c3d;
}

.ets2-live-map-chip.is-idle {
    background: #fee3df;
    color: #a33b2c;
}

.ets2-live-map-item p {
    margin: 8px 0 0;
    color: var(--ets2-text-soft);
    font-size: 0.84rem;
}

.ets2-truck-brand {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    vertical-align: middle;
}

.ets2-truck-brand-logo {
    width: auto;
    height: 14px;
    max-width: 56px;
    object-fit: contain;
    flex: 0 0 auto;
}

.ets2-truck-brand-model {
    min-width: 0;
    color: inherit;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ets2-truck-brand-fallback {
    font-weight: 700;
}

.ets2-live-map-item-meta {
    margin-top: 10px;
    color: #536170;
    font-size: 0.82rem;
}

.ets2-live-map-item-submeta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 8px;
    color: var(--ets2-text-soft);
    font-size: 0.76rem;
}

.ets2-live-map-layer-list {
    display: grid;
    gap: 8px;
}

.ets2-live-map-layer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid #dbe4ee;
    border-radius: 12px;
    background: #fff;
}

.ets2-live-map-layer strong {
    display: block;
    color: var(--ets2-text);
    font-size: 0.88rem;
    line-height: 1.2;
}

.ets2-live-map-layer small {
    display: block;
    margin-top: 2px;
    color: var(--ets2-text-soft);
    font-size: 0.76rem;
    line-height: 1.25;
}

.ets2-live-map-layer input {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    accent-color: var(--ets2-primary);
}

.ets2-live-map-layer.is-disabled {
    opacity: 0.62;
}

.ets2-live-map-details {
    border: 1px solid #dbe4ee;
    border-radius: 16px;
    background: linear-gradient(180deg, #fff 0%, #f7fafc 100%);
    padding: 16px;
}

.ets2-live-map-details h3 {
    margin: 0;
    color: var(--ets2-text);
}

.ets2-live-map-details-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.ets2-live-map-follow-btn {
    border: 1px solid var(--ets2-border);
    border-radius: 999px;
    background: #fff;
    color: var(--ets2-text);
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    padding: 8px 12px;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.ets2-live-map-follow-btn:hover,
.ets2-live-map-follow-btn.is-active {
    background: var(--ets2-primary);
    border-color: var(--ets2-primary);
    color: #fff;
}

.ets2-live-map-follow-btn.is-danger:hover,
.ets2-live-map-follow-btn.is-danger {
    border-color: #d04b3f;
    color: #b63d32;
}

.ets2-live-map-follow-btn.is-danger:hover {
    background: #d04b3f;
    color: #fff;
}

.ets2-live-map-follow-btn[disabled] {
    opacity: 0.45;
    cursor: not-allowed;
}

.ets2-live-map-details-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.ets2-live-map-details-grid div {
    padding: 10px 12px;
    border-radius: 12px;
    background: var(--ets2-panel-soft);
}

.ets2-live-map-details-grid strong {
    display: block;
    color: var(--ets2-text-soft);
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.ets2-live-map-details-grid span,
.ets2-live-map-details-route p {
    display: block;
    margin-top: 5px;
    color: var(--ets2-text);
}

.ets2-live-map-details-route {
    margin-top: 14px;
    padding: 12px;
    border-radius: 12px;
    background: var(--ets2-panel-soft);
}

.ets2-live-map-details-route p {
    margin: 0;
}

.ets2-live-map-stage {
    position: relative;
    min-width: 0;
    padding: 0;
    background: #333333;
}

.ets2-live-map-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
    padding: 12px 14px;
    border: 1px solid #d8e1ea;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.86);
    backdrop-filter: blur(12px);
}

.ets2-live-map-toolbar-block {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.ets2-live-map-toolbar-block strong {
    color: var(--ets2-text-soft);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.ets2-live-map-toolbar-block span {
    color: var(--ets2-text);
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ets2-live-map-toolbar-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.ets2-live-map-canvas-wrap {
    position: relative;
    min-height: calc(var(--ets2-viewport-height) - var(--ets2-nav-offset));
    background: #333333;
    isolation: isolate;
}

.ets2-live-map-fab {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 700;
    border: 0;
    border-radius: 999px;
    background: rgba(34, 49, 65, 0.84);
    color: #fff;
    font: inherit;
    font-weight: 700;
    padding: 10px 16px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.22);
    backdrop-filter: blur(8px);
}

.ets2-live-map-canvas {
    overflow: hidden;
    min-height: calc(var(--ets2-viewport-height) - var(--ets2-nav-offset));
    background: #333333;
    border-left: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: none;
}

.ets2-live-map-canvas .leaflet-container {
    height: 100%;
    width: 100%;
    min-height: calc(var(--ets2-viewport-height) - var(--ets2-nav-offset));
    border-radius: 0;
    background: #333333;
}

.ets2-live-map-canvas .leaflet-bottom.leaflet-left .leaflet-control-zoom {
    margin-left: 16px;
    margin-bottom: 16px;
    border: 0;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.22);
}

.ets2-live-map-canvas .leaflet-tile {
    filter: brightness(0.72) saturate(0.82);
}

.ets2-live-map-tone-layer {
    position: absolute;
    inset: 0;
    z-index: 250;
    pointer-events: none;
    background: rgba(51, 51, 51, 0.28);
}

.ets2-live-map-mapcard {
    position: absolute;
    z-index: 500;
    max-width: 260px;
    padding: 12px 14px;
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 14px;
    background: rgba(34, 49, 65, 0.74);
    color: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(8px);
}

.ets2-live-map-mapcard p {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.4;
}

.ets2-live-map-follow-card {
    display: grid;
    gap: 6px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.ets2-live-map-follow-card.is-hidden {
    display: none;
}

.ets2-live-map-follow-actions {
    display: flex;
    gap: 8px;
    margin-top: 2px;
}

.ets2-live-map-mapcard-btn {
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    font: inherit;
    font-size: 0.74rem;
    font-weight: 700;
    padding: 7px 10px;
}

.ets2-live-map-mapcard-btn.is-danger {
    border-color: rgba(255, 135, 120, 0.45);
    color: #ffd6d1;
}

.ets2-live-map-mapcard-btn[disabled] {
    opacity: 0.4;
    cursor: not-allowed;
}

.ets2-live-map-mapcard-title {
    margin-bottom: 6px;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ets2-live-map-mapcard-left {
    top: 70px;
    left: 16px;
}

.ets2-live-map-mapcard-right {
    top: 16px;
    right: 16px;
}

.ets2-live-map-legend {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ets2-live-map-legend li {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ets2-live-map-legend span {
    width: 10px;
    height: 10px;
    border-radius: 999px;
}

.ets2-live-map-legend .is-driving {
    background: #45d17f;
}

.ets2-live-map-legend .is-idle {
    background: #f87a62;
}

.ets2-map-marker-wrap {
    background: transparent;
    border: 0;
}

.leaflet-marker-pane > .leaflet-marker-icon.ets2-map-marker-wrap {
    transition: transform 0.12s linear;
    will-change: transform;
}

.leaflet-marker-pane > .leaflet-marker-icon.ets2-map-overlay-icon {
    background: transparent;
    border: 0;
    filter: drop-shadow(0 2px 8px rgba(15, 23, 42, 0.18));
}

.ets2-live-map-canvas.is-map-transforming .leaflet-marker-pane > .leaflet-marker-icon.ets2-map-marker-wrap {
    transition: none;
}

.ets2-map-marker {
    position: relative;
    display: block;
    width: 20px;
    height: 20px;
    border: 3px solid #fff;
    border-radius: 50%;
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.25);
}

.ets2-map-marker.is-driving {
    background: #16a34a;
}

.ets2-map-marker.is-idle {
    background: #dc2626;
}

.ets2-map-marker.is-truckslog {
    background: #f59e0b;
}

.ets2-map-marker.is-selected {
    transform: scale(1.15);
    border-width: 4px;
    box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.22), 0 10px 22px rgba(15, 23, 42, 0.34);
}

.ets2-map-marker.is-inactive {
    opacity: 0.54;
    filter: grayscale(0.25);
}

.ets2-map-marker-badge {
    position: absolute;
    top: -10px;
    right: -10px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: #1f2937;
    color: #fff;
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.3);
}

.ets2-live-map-canvas .leaflet-tooltip.ets2-map-name-tooltip {
    padding: 6px 10px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 999px;
    background: rgba(17, 24, 39, 0.9);
    color: #f8fafc;
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.28);
    pointer-events: none;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.28);
}

.ets2-live-map-canvas .leaflet-tooltip.ets2-map-name-tooltip:before {
    display: none;
}

.ets2-live-map-canvas .leaflet-popup.ets2-map-leaflet-popup .leaflet-popup-content-wrapper {
    overflow: hidden;
    border: 1px solid rgba(196, 208, 221, 0.85);
    border-radius: 22px;
    background:
        radial-gradient(circle at top right, rgba(31, 122, 104, 0.08), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 251, 254, 0.98) 100%);
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.22);
}

.ets2-live-map-canvas .leaflet-popup.ets2-map-leaflet-popup .leaflet-popup-content {
    margin: 0;
    min-width: 248px;
}

.ets2-live-map-canvas .leaflet-popup.ets2-map-leaflet-popup .leaflet-popup-tip {
    background: rgba(255, 255, 255, 0.96);
}

.ets2-map-popup-card {
    display: grid;
    gap: 10px;
    padding: 13px;
    color: var(--ets2-text);
}

.ets2-map-popup-head,
.ets2-map-popup-meta {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.ets2-map-popup-titleblock {
    min-width: 0;
}

.ets2-map-popup-titleblock h3 {
    margin: 0;
    color: var(--ets2-text) !important;
    font-size: 1.02rem;
    font-weight: 800;
    line-height: 1.15;
}

.ets2-map-popup-titleblock p {
    margin: 4px 0 0;
    color: #5e6d7d;
    font-size: 0.76rem;
    line-height: 1.25;
}

.ets2-map-popup-titleblock .ets2-truck-brand-logo {
    height: 16px;
    max-width: 62px;
}

.ets2-map-popup-titleblock .ets2-truck-brand-model {
    color: #5e6d7d;
}

.ets2-map-popup-head h3 {
    margin: 0;
}

.ets2-map-popup-topline {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.ets2-map-popup-stat {
    padding: 8px 10px;
    border-radius: 12px;
    background: linear-gradient(180deg, #f5f8fb 0%, #eef3f8 100%);
}

.ets2-map-popup-stat strong,
.ets2-map-popup-plate-card strong,
.ets2-map-popup-widecard strong {
    display: block;
    margin-bottom: 3px;
    color: #728094;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ets2-map-popup-stat span {
    display: block;
    color: #223142;
    font-size: 0.94rem;
    font-weight: 800;
    line-height: 1.1;
}

.ets2-map-popup-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    color: #48576a;
    font-size: 0.74rem;
}

.ets2-map-popup-grid span {
    display: block;
    padding: 8px 10px;
    border: 1px solid #e8eef4;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.84);
    line-height: 1.25;
}

.ets2-map-popup-grid strong {
    display: block;
    margin-bottom: 4px;
    color: var(--ets2-text-soft);
    font-size: 0.69rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ets2-map-popup-plates {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.ets2-map-popup-plate-card,
.ets2-map-popup-widecard {
    padding: 8px 10px;
    border: 1px solid #e8eef4;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.84);
}

.ets2-map-popup-plate-card .ets2-plate {
    margin-top: 2px;
}

.ets2-map-popup-widecard span {
    display: block;
    color: #2f3f51;
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.3;
}

.ets2-map-popup-route {
    display: grid;
    gap: 6px;
    padding: 9px 11px;
    border-radius: 14px;
    background: rgba(244, 247, 251, 0.82);
}

.ets2-map-popup-route p {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 8px;
    align-items: center;
    margin: 0;
    color: #334155;
    font-size: 0.78rem;
    line-height: 1.25;
}

.ets2-map-popup-route strong {
    display: inline-flex;
    align-items: center;
    color: var(--ets2-text-soft);
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ets2-map-popup-route p:last-child strong {
    transform: translateY(3px);
}

.ets2-map-popup-route span,
.ets2-map-popup-meta span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.ets2-map-popup-meta {
    align-items: center;
    justify-content: space-between;
    padding-top: 0;
    color: #667587;
    font-size: 0.72rem;
}

.ets2-plate {
    display: inline-flex;
    align-items: stretch;
    min-height: 26px;
    overflow: hidden;
    border: 1px solid #b7c2cf;
    border-radius: 6px;
    background: linear-gradient(180deg, #ffffff 0%, #f7fafc 100%);
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.1);
    color: #182535;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    white-space: nowrap;
}

.ets2-plate.is-empty {
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    letter-spacing: 0;
}

.ets2-plate-eu {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    background: linear-gradient(180deg, #1f5fbf 0%, #154896 100%);
    color: #fff;
    font-size: 0.58rem;
    font-weight: 800;
}

.ets2-plate-eu span {
    transform: translateY(0.5px);
}

.ets2-plate-text {
    display: inline-flex;
    align-items: center;
    padding: 0 9px 0 8px;
    font-family: "Bahnschrift", "Arial Narrow", sans-serif;
    line-height: 1;
}

.ets2-live-map-details-grid .ets2-plate {
    margin-top: 2px;
}

.ets2-live-map-popup {
    position: absolute;
    right: 16px;
    bottom: 16px;
    max-width: 360px;
    padding: 16px;
    z-index: 20;
}

.ets2-live-map-popup h3 {
    margin: 0 0 10px;
    color: var(--ets2-text);
}

.ets2-live-map-popup p {
    margin: 8px 0 0;
    color: #334155;
}

.ets2-live-map-popup code {
    color: var(--ets2-text);
}

/* ETS2 custom shell */
#ets2-live-map-app {
    --ets2-nav-width: 280px;
    --ets2-nav-offset: 0px;
    --ets2-viewport-height: 100vh;
    --ets2-viewport-height: 100dvh;
    min-height: 100vh;
    min-height: 100dvh;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
}

.ets2-live-map-shell {
    grid-template-columns: minmax(0, 1fr);
    min-height: 100vh;
    min-height: 100dvh;
    height: 100vh;
    height: 100dvh;
    background: var(--ats-shell-bg);
}

.ets2-live-map-rail,
.ets2-live-map-sidebar-offcanvas,
.ets2-live-map-mapcard,
.ets2-live-map-fab,
.ets2-live-map-popup,
.ets2-live-map-support,
.ets2-live-map-dashboard {
    display: none !important;
}

.ets2-live-map-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 20;
    display: flex;
    flex-direction: column;
    width: var(--ets2-nav-width);
    height: 100vh;
    height: 100dvh;
    min-height: 100vh;
    min-height: 100dvh;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(9, 13, 19, 0.82) 0%, rgba(9, 13, 19, 0.92) 100%),
        url('/_IMG/bg_live_map_1.png') center center / cover no-repeat;
    border-right: 1px solid var(--ats-border);
}

.ets2-live-map-sidebar-brand {
    padding: 14px 18px 10px;
    border-bottom: 1px solid var(--ats-border);
}

.ets2-live-map-sidebar-brand h1 {
    margin: 0;
    color: var(--ats-text);
    font-size: 1.35rem;
    line-height: 1.1;
}

.ets2-live-map-kicker {
    margin: 0 0 6px;
    color: #ef8f25;
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ets2-live-map-mainnav {
    display: grid;
    gap: 8px;
    padding: 12px 12px 14px;
    overflow: auto;
}

.ets2-live-map-mainnav-link {
    width: 100%;
    border: 1px solid var(--ats-border);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.03);
    color: rgba(248, 250, 252, 0.9);
    font: inherit;
    font-weight: 700;
    text-align: left;
    padding: 10px 12px;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.ets2-live-map-mainnav-link:hover,
.ets2-live-map-mainnav-link.is-active {
    background: linear-gradient(90deg, rgba(239, 143, 37, 0.28), rgba(239, 143, 37, 0.08));
    border-color: rgba(239, 143, 37, 0.45);
    color: #fff;
}

.ets2-live-map-content {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-width: 0;
    min-height: 100vh;
    min-height: 100dvh;
    height: 100vh;
    height: 100dvh;
    margin-left: var(--ets2-nav-width);
    padding: 0 12px 12px;
    gap: 10px;
    background: #2d2d2d;
    overflow: hidden;
}

.ets2-live-map-frame-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    border: 0;
    border-radius: 0 0 16px 16px;
    background: var(--ats-frame-bg);
    color: var(--ats-text);
}

.ets2-live-map-frame-head h2 {
    margin: 0 0 4px;
    color: var(--ats-text);
    font-size: 1.15rem;
}

.ets2-live-map-frame-head p {
    margin: 0;
    color: var(--ats-text-soft);
}

.ets2-live-map-frame-meta {
    display: flex;
    gap: 8px;
}

.ets2-live-map-frame-meta div {
    min-width: 92px;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.04);
}

.ets2-live-map-frame-meta strong,
.ets2-live-map-frame-meta span {
    display: block;
}

.ets2-live-map-frame-meta strong {
    font-size: 1rem;
    color: var(--ats-text);
}

.ets2-live-map-frame-meta span {
    margin-top: 4px;
    font-size: 0.78rem;
    color: var(--ats-text-soft);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.ets2-live-map-frame {
    height: 100%;
    min-height: 0;
    border: 1px solid var(--ats-border);
    border-radius: 20px;
    background: var(--ats-panel-bg);
    overflow: auto;
}

.ets2-live-map-panel.ets2-live-map-panel-frame {
    display: none;
    min-height: 100%;
    height: 100%;
    padding: 0;
    overflow: hidden;
}

.ets2-live-map-panel.ets2-live-map-panel-frame.is-active {
    display: flex;
    flex-direction: column;
}

.ets2-live-map-canvas-wrap {
    min-height: 100%;
    height: 100%;
    background: var(--ats-canvas-bg);
}

.ets2-live-map-canvas,
.ets2-live-map-canvas .leaflet-container {
    min-height: calc(var(--ets2-viewport-height) - 180px);
    height: 100%;
}

.ets2-live-map-drivers-toolbar {
    display: flex;
    gap: 12px;
    padding: 18px;
    border-bottom: 1px solid var(--ats-border);
    background: var(--ats-panel-bg);
}

.ets2-live-map-drivers-toolbar input,
.ets2-live-map-drivers-toolbar select {
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    background: var(--ats-surface-bg);
    color: var(--ats-text);
    font: inherit;
    padding: 12px 14px;
}

.ets2-live-map-drivers-toolbar input {
    flex: 1 1 auto;
    min-width: 0;
}

.ets2-live-map-driver-list {
    flex: 1 1 auto;
    min-height: 0;
    padding: 18px;
    background: var(--ats-frame-bg);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-content: start;
    gap: 14px;
    overflow: auto;
}

.ets2-live-map-driver-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 0 18px 18px;
    border-bottom: 1px solid var(--ats-border);
    background: var(--ats-panel-bg);
}

.ets2-live-map-driver-filters .ets2-live-map-filter,
.ets2-live-map-driver-filters .ets2-live-map-scope {
    width: auto;
    min-width: 0;
    padding: 9px 13px;
    font-size: 0.82rem;
    white-space: nowrap;
}

.ets2-live-map-info-panel {
    display: grid;
    gap: 18px;
    padding: 18px;
    min-height: 100%;
    background: var(--ats-frame-bg);
    overflow: auto;
}

.ets2-live-map-info-section {
    display: grid;
    gap: 12px;
}

.ets2-live-map-info-head h3,
.ets2-live-map-info-head p {
    margin: 0;
}

.ets2-live-map-info-head h3 {
    color: var(--ats-text);
    font-size: 1rem;
}

.ets2-live-map-info-head p {
    margin-top: 6px;
    color: var(--ats-text-soft);
    font-size: 0.86rem;
}

.ets2-live-map-follow-box,
.ets2-live-map-details,
.ets2-live-map-layer {
    border: 1px solid var(--ats-border);
    background: linear-gradient(180deg, var(--ats-surface-bg) 0%, var(--ats-canvas-bg) 100%);
}

.ets2-live-map-follow-box {
    display: grid;
    gap: 8px;
    padding: 14px 16px;
    border-radius: 16px;
}

.ets2-live-map-follow-box.is-hidden {
    display: none;
}

.ets2-live-map-follow-box p {
    margin: 0;
    color: var(--ats-text);
}

.ets2-live-map-follow-box p:last-of-type {
    color: var(--ats-text-soft);
}

.ets2-live-map-details {
    color: var(--ats-text);
}

.ets2-live-map-details h3,
.ets2-live-map-details strong,
.ets2-live-map-details span,
.ets2-live-map-details p,
.ets2-live-map-layer strong,
.ets2-live-map-layer small {
    color: var(--ats-text);
}

.ets2-live-map-details-grid div,
.ets2-live-map-details-route,
.ets2-live-map-layer {
    background: rgba(255, 255, 255, 0.04);
}

.ets2-live-map-details-grid strong,
.ets2-live-map-details-route strong,
.ets2-live-map-layer small {
    color: var(--ats-text-soft);
}

.ets2-live-map-details-route p,
.ets2-live-map-item-meta,
.ets2-live-map-item-submeta {
    color: var(--ats-text-soft);
}

.ets2-live-map-layer-list {
    gap: 10px;
}

.ets2-live-map-layer {
    border-radius: 14px;
}

.ets2-live-map-stats-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 18px;
    padding: 18px;
    min-height: 100%;
    background: var(--ats-frame-bg);
}

.ets2-live-map-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.ets2-live-map-stat-card {
    padding: 18px;
    border: 1px solid var(--ats-border);
    border-radius: 16px;
    background: linear-gradient(180deg, var(--ats-surface-bg) 0%, var(--ats-canvas-bg) 100%);
}

.ets2-live-map-stat-card span,
.ets2-live-map-stat-card strong {
    display: block;
    color: var(--ats-text);
}

.ets2-live-map-stat-card span {
    margin-bottom: 8px;
    font-size: 0.8rem;
    color: var(--ats-text-soft);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.ets2-live-map-stat-card strong {
    font-size: 1.35rem;
}

.ets2-live-map-stats-columns {
    display: grid;
    grid-template-columns: 360px minmax(0, 1fr);
    gap: 18px;
    min-height: 0;
}

.ets2-live-map-stats-box {
    display: flex;
    flex-direction: column;
    min-height: 0;
    border: 1px solid var(--ats-border);
    border-radius: 16px;
    background: var(--ats-panel-bg);
    overflow: hidden;
}

.ets2-live-map-stats-box header {
    padding: 18px;
    border-bottom: 1px solid var(--ats-border);
}

.ets2-live-map-stats-box h3,
.ets2-live-map-stats-box p {
    margin: 0;
    color: var(--ats-text);
}

.ets2-live-map-stats-box p {
    margin-top: 6px;
    color: var(--ats-text-soft);
}

.ets2-live-map-stats-list,
.ets2-live-map-stats-table-wrap {
    min-height: 0;
    overflow: auto;
    padding: 18px;
}

.ets2-live-map-stats-driver {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 0;
    border-bottom: 1px solid var(--ats-border);
}

.ets2-live-map-stats-driver:first-child {
    padding-top: 0;
}

.ets2-live-map-stats-driver:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.ets2-live-map-stats-driver strong,
.ets2-live-map-stats-driver span {
    display: block;
    color: var(--ats-text);
}

.ets2-live-map-stats-driver span {
    margin-top: 4px;
    color: var(--ats-text-soft);
}

.ets2-live-map-stats-driver-meta {
    text-align: right;
}

.ets2-live-map-stats-table {
    width: 100%;
    border-collapse: collapse;
    color: var(--ats-text);
}

.ets2-live-map-stats-table th,
.ets2-live-map-stats-table td {
    padding: 12px 10px;
    border-bottom: 1px solid var(--ats-border);
    text-align: left;
    vertical-align: top;
}

.ets2-live-map-stats-table th {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ats-text-soft);
}

.ets2-live-map-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-content: start;
    gap: 14px;
    padding-right: 0;
}

.ets2-live-map-item {
    border: 1px solid var(--ats-border);
    background: linear-gradient(180deg, var(--ats-surface-bg) 0%, var(--ats-canvas-bg) 100%);
    min-height: 168px;
    padding: 14px;
}

.ets2-live-map-item-head strong,
.ets2-live-map-item p,
.ets2-live-map-item-meta,
.ets2-live-map-item-submeta {
    color: var(--ats-text);
}

.ets2-live-map-empty {
    color: var(--ats-text-soft);
    grid-column: 1 / -1;
}

@media (min-width: 1680px) {
    .ets2-live-map-driver-list,
    .ets2-live-map-list {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

@media (max-width: 1400px) {
    .ets2-live-map-driver-list,
    .ets2-live-map-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .ets2-live-map-driver-list,
    .ets2-live-map-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .ets2-live-map-driver-list,
    .ets2-live-map-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .ets2-live-map-shell {
        grid-template-columns: 1fr;
        min-height: auto;
        height: auto;
    }

    .ets2-live-map-sidebar {
        position: static;
        width: 100%;
        height: auto;
        min-height: auto;
    }

    .ets2-live-map-content {
        height: auto;
        min-height: auto;
        margin-left: 0;
        padding: 16px;
        overflow: visible;
    }

    .ets2-live-map-frame-head,
    .ets2-live-map-drivers-toolbar {
        flex-direction: column;
    }

    .ets2-live-map-driver-filters {
        padding-top: 0;
    }

    .ets2-live-map-stats-grid {
        grid-template-columns: 1fr;
    }

    .ets2-live-map-stats-columns {
        display: grid;
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .ets2-live-map-driver-filters {
        flex-direction: column;
    }

    .ets2-live-map-driver-filters .ets2-live-map-filter,
    .ets2-live-map-driver-filters .ets2-live-map-scope {
        width: 100%;
        white-space: normal;
    }

    .ets2-map-popup-grid {
        grid-template-columns: 1fr;
    }

    .ets2-map-popup-plates {
        grid-template-columns: 1fr;
    }

    .ets2-live-map-canvas-wrap,
    .ets2-live-map-canvas,
    .ets2-live-map-canvas .leaflet-container {
        min-height: 70vh;
        min-height: 70dvh;
    }
}


