:root {
    --cpic-blue: #0c5ca8;
    --cpic-blue-2: #1f76d2;
    --cpic-text: #163654;
    --cpic-muted: #66788f;
    --cpic-border: #d6e3f1;
    --cpic-shadow: 0 14px 38px rgba(12, 41, 75, .24);
    --safe-top: env(safe-area-inset-top, 0px);
    --safe-bottom: env(safe-area-inset-bottom, 0px);
    --app-height: var(--cpic-app-height, 100dvh);
  }

  * {
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
  }

  html,
  body {
    width: 100%;
    height: var(--app-height);
    min-height: var(--app-height);
    max-height: var(--app-height);
    margin: 0;
    padding: 0;
    overflow: hidden;
    overscroll-behavior: none;
    font-family: Arial, Helvetica, sans-serif;
    color: var(--cpic-text);
    background: #dbe9f7;
  }

  button,
  input {
    font-family: inherit;
  }

  .mobile-app {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: var(--app-height);
    min-height: var(--app-height);
    max-height: var(--app-height);
    display: grid;
    grid-template-rows: calc(102px + var(--safe-top)) minmax(0, 1fr);
    background: #dbe9f7;
    overflow: hidden;
  }

  .mobile-header {
    position: relative;
    z-index: 1500;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: calc(102px + var(--safe-top));
    padding: calc(14px + var(--safe-top)) 14px 14px;
    background: rgba(255, 255, 255, .98);
    border-bottom: 1px solid rgba(214, 227, 241, .95);
    box-shadow: 0 8px 22px rgba(12, 41, 75, .13);
  }

  .brand-mini {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
  }

  .brand-icon {
    width: 68px;
    height: 80px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(180deg, var(--cpic-blue-2), var(--cpic-blue));
    font-size: 46px;
    flex: 0 0 auto;
  }

  .brand-title {
    font-size: 24px;
    font-weight: 900;
    line-height: 1.1;
  }

  .brand-sub {
    margin-top: 5px;
    max-width: calc(100vw - 150px);
    color: var(--cpic-muted);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .header-search-btn {
    width: 76px;
    height: 76px;
    border: 1px solid var(--cpic-border);
    border-radius: 22px;
    background: #f5f9ff;
    color: var(--cpic-text);
    font-size: 42px;
    font-weight: 900;
    flex: 0 0 auto;
    box-shadow: 0 8px 22px rgba(12, 41, 75, .12);
  }

  .map-wrap {
    position: relative;
    min-height: 0;
    overflow: hidden;
  }

  .mobile-map {
    position: absolute;
    inset: 0;
    z-index: 1;
  }

  .edge-tab {
    position: absolute;
    top: 50%;
    z-index: 1000;
    width: 88px;
    height: 154px;
    transform: translateY(-50%);
    border: 1px solid rgba(214, 227, 241, .98);
    background: rgba(255, 255, 255, .96);
    color: var(--cpic-text);
    box-shadow: var(--cpic-shadow);
    font-size: 52px;
    font-weight: 900;
    display: grid;
    place-items: center;
  }

  .edge-tab-left {
    left: 0;
    border-radius: 0 30px 30px 0;
    border-left: 0;
  }

  .edge-tab-right {
    right: 0;
    border-radius: 30px 0 0 30px;
    border-right: 0;
  }

  .floating-locate {
    position: absolute;
    right: 14px;
    bottom: 22px;
    z-index: 1000;
    width: 84px;
    height: 84px;
    border-radius: 26px;
    border: 1px solid rgba(214, 227, 241, .95);
    background: rgba(255, 255, 255, .96);
    color: var(--cpic-text);
    box-shadow: var(--cpic-shadow);
    font-size: 46px;
    font-weight: 900;
    display: grid;
    place-items: center;
  }

  .side-drawer {
    position: fixed;
    inset: 0;
    z-index: 12000;
  }

  .side-drawer.hidden {
    display: none;
  }

  .drawer-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(12, 31, 52, .38);
  }

  .drawer-panel {
    position: absolute;
    top: 0;
    bottom: 0;
    width: min(96vw, 620px);
    padding: calc(16px + var(--safe-top)) 18px calc(20px + var(--safe-bottom));
    background: #fff;
    overflow: auto;
    box-shadow: var(--cpic-shadow);
  }

  .side-drawer-left .drawer-panel {
    left: 0;
    border-radius: 0 34px 34px 0;
  }

  .side-drawer-right .drawer-panel {
    right: 0;
    border-radius: 34px 0 0 34px;
  }

  .drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 18px;
  }

  .drawer-head h2 {
    margin: 0;
    font-size: 46px;
    line-height: 1.12;
  }

  .drawer-close {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    border: 1px solid var(--cpic-border);
    background: #fff;
    color: var(--cpic-muted);
    font-size: 48px;
    line-height: 1;
  }

  .drawer-section {
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid #edf3fa;
  }

  .drawer-section:first-of-type {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
  }

  .drawer-label {
    display: block;
    margin: 0 0 10px;
    color: var(--cpic-text);
    font-size: 24px;
    font-weight: 900;
  }

  .mobile-input {
    width: 100%;
    height: 80px;
    border: 1px solid var(--cpic-border);
    border-radius: 22px;
    padding: 0 18px;
    font-size: 27px;
    outline: none;
    color: var(--cpic-text);
    background: #f8fbff;
  }

  .drawer-info {
    margin: 12px 3px;
    color: var(--cpic-muted);
    font-size: 21px;
    font-weight: 700;
  }

  .section-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
  }

  .section-title-row h3 {
    margin: 0;
    font-size: 31px;
  }

  .mini-pill {
    border: 1px solid var(--cpic-border);
    border-radius: 999px;
    background: #eef6ff;
    color: var(--cpic-text);
    padding: 14px 18px;
    font-size: 22px;
    font-weight: 900;
    white-space: nowrap;
  }

  .mini-pill.is-active {
    background: linear-gradient(180deg, var(--cpic-blue-2), var(--cpic-blue));
    color: #fff;
    border-color: transparent;
  }

  .result-list,
  .category-list,
  .layer-list {
    display: grid;
    gap: 14px;
    margin-top: 16px;
  }

  .result-item,
  .category-item,
  .layer-item {
    width: 100%;
    min-height: 106px;
    border: 1px solid var(--cpic-border);
    border-radius: 28px;
    background: #fff;
    padding: 22px 22px;
    color: var(--cpic-text);
    text-align: left;
    display: grid;
    align-items: center;
    box-shadow: 0 8px 22px rgba(12, 41, 75, .08);
  }

  .result-title {
    font-weight: 900;
    font-size: 27px;
    line-height: 1.2;
  }

  .result-sub {
    margin-top: 5px;
    color: var(--cpic-muted);
    font-size: 21px;
    font-weight: 700;
    line-height: 1.25;
  }

  .layer-item {
    grid-template-columns: minmax(0, 1fr) auto;
    font-weight: 900;
    font-size: 29px;
  }

  .layer-item.is-active {
    border-color: rgba(12, 92, 168, .7);
    background: #eef6ff;
  }

  .category-item {
    grid-template-columns: 66px minmax(0, 1fr) auto;
    gap: 16px;
  }

  .category-dot {
    width: 66px;
    height: 66px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--cpic-blue);
    font-weight: 900;
    font-size: 31px;
  }

  .category-title {
    font-weight: 900;
    font-size: 27px;
  }

  .category-count {
    color: var(--cpic-muted);
    font-size: 21px;
    font-weight: 700;
    margin-top: 4px;
  }

  .category-check {
    width: 46px;
    height: 46px;
  }

  .category-item.is-selected {
    border-color: rgba(12, 92, 168, .65);
    background: #eef6ff;
  }

  .poi-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 15px 0;
  }

  .small-btn {
    min-height: 78px;
    border-radius: 20px;
    border: 1px solid var(--cpic-border);
    background: #eef6ff;
    color: var(--cpic-text);
    font-weight: 900;
    font-size: 24px;
  }

  .small-btn.danger {
    background: #fff4f4;
    color: #9c3333;
  }

  .empty-state {
    padding: 20px;
    border: 1px dashed var(--cpic-border);
    border-radius: 22px;
    color: var(--cpic-muted);
    background: #f8fbff;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.45;
  }

  .toast {
    position: fixed;
    left: 18px;
    right: 18px;
    bottom: calc(24px + var(--safe-bottom));
    z-index: 13000;
    padding: 16px 18px;
    border-radius: 22px;
    background: rgba(22, 54, 84, .94);
    color: #fff;
    text-align: center;
    font-size: 24px;
    font-weight: 900;
    box-shadow: var(--cpic-shadow);
  }

  .toast.hidden {
    display: none;
  }

  .loading-overlay {
    position: fixed;
    inset: 0;
    z-index: 20000;
    display: grid;
    place-items: center;
    background: rgba(238, 246, 255, .72);
    backdrop-filter: blur(10px);
  }

  .loading-overlay.hidden {
    display: none;
  }

  .loading-card {
    width: min(86vw, 420px);
    padding: 28px;
    border-radius: 30px;
    background: rgba(255, 255, 255, .93);
    border: 1px solid var(--cpic-border);
    box-shadow: var(--cpic-shadow);
    text-align: center;
  }

  .spinner {
    width: 66px;
    height: 66px;
    margin: 0 auto 14px;
    border-radius: 50%;
    border: 5px solid #dceafa;
    border-top-color: var(--cpic-blue);
    animation: spin 1s linear infinite;
  }

  .loading-title {
    font-weight: 900;
    font-size: 27px;
  }

  .loading-subtitle {
    margin-top: 8px;
    color: var(--cpic-muted);
    font-size: 21px;
  }

  @keyframes spin {
    to { transform: rotate(360deg); }
  }

  .leaflet-bottom.leaflet-right {
    bottom: 108px !important;
    right: 14px !important;
  }

  .leaflet-control-zoom {
    border: none !important;
    box-shadow: 0 10px 28px rgba(12, 41, 75, .20) !important;
  }

  .leaflet-control-zoom a {
    width: 72px !important;
    height: 72px !important;
    line-height: 72px !important;
    font-size: 48px !important;
    color: var(--cpic-text) !important;
  }

  .leaflet-popup-content-wrapper {
    border-radius: 22px;
  }

  .mobile-popup {
    min-width: 310px;
    color: var(--cpic-text);
  }

  .mobile-popup-title {
    font-size: 27px;
    font-weight: 900;
    margin-bottom: 8px;
  }

  .mobile-popup-sub {
    color: var(--cpic-muted);
    font-size: 22px;
    margin-bottom: 12px;
  }

  .mobile-popup-route {
    display: block;
    padding: 14px 16px;
    border-radius: 17px;
    color: #fff !important;
    background: linear-gradient(180deg, var(--cpic-blue-2), var(--cpic-blue));
    text-align: center;
    text-decoration: none;
    font-size: 22px;
    font-weight: 900;
  }

  .harbor-mobile-icon {
    width: 66px;
    height: 66px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #fff;
    border: 3px solid #fff;
    box-shadow: 0 8px 22px rgba(0,0,0,.28);
    font-size: 34px;
    font-weight: 900;
    background: linear-gradient(180deg, var(--cpic-blue-2), var(--cpic-blue));
  }

  .poi-marker-wrap {
    display: flex;
    align-items: center;
    gap: 6px;
    transform: translateY(-3px);
  }

  .poi-mobile-icon {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #fff;
    border: 3px solid #fff;
    box-shadow: 0 7px 20px rgba(0,0,0,.28);
    font-size: 27px;
    font-weight: 900;
    background: #8b6f43;
    flex: 0 0 auto;
  }

  .poi-mobile-label {
    max-width: 150px;
    padding: 5px 8px;
    border-radius: 999px;
    background: rgba(255,255,255,.94);
    color: #163654;
    border: 1px solid rgba(214,227,241,.95);
    box-shadow: 0 5px 14px rgba(0,0,0,.18);
    font-size: 15px;
    font-weight: 900;
    line-height: 1.1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  @media (orientation: landscape) and (max-height: 520px) {
    .mobile-app {
      grid-template-rows: calc(70px + var(--safe-top)) minmax(0, 1fr);
    }

    .mobile-header {
      min-height: calc(70px + var(--safe-top));
      padding: calc(8px + var(--safe-top)) 10px 8px;
    }

    .brand-icon {
      width: 48px;
      height: 48px;
      border-radius: 16px;
    }

    .edge-tab {
      width: 64px;
      height: 100px;
    }
  }

  /* =========================================================
     CPIC Mobile BIG+ Overrides
     ========================================================= */

  .brand-sub {
    font-size: 19px;
  }

  .drawer-label {
    font-size: 24px;
  }

  .drawer-info {
    font-size: 21px;
  }

  .result-title,
  .category-title {
    font-size: 28px;
  }

  .result-sub,
  .category-count {
    font-size: 21px;
  }

  .small-btn {
    font-size: 24px;
  }

  .empty-state {
    font-size: 23px;
  }

  .mobile-popup-title {
    font-size: 26px;
  }

  .mobile-popup-sub,
  .mobile-popup-route {
    font-size: 22px;
  }

  .harbor-pulse-wrap {
    position: relative;
    width: 72px;
    height: 72px;
  }

  .harbor-pulse-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(230, 0, 0, .28);
    border: 4px solid rgba(230, 0, 0, .75);
    animation: cpicPulse 1.35s ease-out infinite;
  }

  .harbor-pulse-core {
    position: absolute;
    left: 9px;
    top: 9px;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #fff;
    background: #e00000;
    border: 4px solid #fff;
    box-shadow: 0 8px 24px rgba(0,0,0,.34);
    font-size: 30px;
    font-weight: 900;
  }

  @keyframes cpicPulse {
    0% {
      transform: scale(.75);
      opacity: .95;
    }
    70% {
      transform: scale(1.45);
      opacity: .12;
    }
    100% {
      transform: scale(1.55);
      opacity: 0;
    }
  }

  .poi-marker-wrap {
    gap: 8px;
  }

  .poi-mobile-icon {
    width: 58px;
    height: 58px;
    font-size: 28px;
    border-width: 4px;
  }

  .poi-mobile-label {
    max-width: 230px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.97);
    color: #102c46;
    border: 2px solid rgba(214,227,241,.98);
    box-shadow: 0 8px 22px rgba(0,0,0,.24);
    font-size: 21px;
    font-weight: 900;
    line-height: 1.12;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .leaflet-control-attribution {
    font-size: 14px !important;
  }

  @media (max-width: 430px) {
    .drawer-panel {
      width: 96vw;
    }

    .poi-mobile-label {
      max-width: 190px;
      font-size: 19px;
    }

    .edge-tab {
      width: 82px;
      height: 144px;
    }
  }


  /* Label-Fix: Leaflet darf den Text neben dem Icon nicht abschneiden */
  .leaflet-marker-icon {
    overflow: visible !important;
  }

  .poi-marker-wrap {
    width: 420px !important;
    min-width: 420px !important;
    overflow: visible !important;
    pointer-events: auto;
  }

  .poi-mobile-label {
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    max-width: 300px !important;
    min-height: 34px;
    padding: 9px 14px !important;
    font-size: 22px !important;
    background: rgba(255,255,255,.98) !important;
    color: #102c46 !important;
    border: 3px solid rgba(214,227,241,.98) !important;
  }


  /* Leaflet Tooltip Labels für POIs */
  .leaflet-tooltip.cpic-poi-tooltip {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: rgba(255, 255, 255, .98) !important;
    color: #102c46 !important;
    border: 3px solid rgba(214, 227, 241, .98) !important;
    border-radius: 999px !important;
    padding: 8px 14px !important;
    font-size: 22px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    box-shadow: 0 8px 22px rgba(0,0,0,.22) !important;
    white-space: nowrap !important;
    pointer-events: none !important;
  }

  .leaflet-tooltip-left.cpic-poi-tooltip::before,
  .leaflet-tooltip-right.cpic-poi-tooltip::before {
    display: none !important;
  }


  /* =========================================================
     CPIC Mobile POI Export
     ========================================================= */

  .mobile-poi-export-box {
    margin-top: 22px;
    padding: 18px;
    border: 1px solid #d6e3f1;
    border-radius: 24px;
    background: #f8fbff;
    box-shadow: 0 8px 22px rgba(12, 41, 75, .08);
  }

  .mobile-poi-export-box.is-disabled {
    opacity: .58;
  }

  .mobile-poi-export-title {
    margin: 0 0 14px;
    color: var(--cpic-text);
    font-size: 24px;
    font-weight: 900;
    line-height: 1.25;
  }

  .mobile-poi-export-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  .mobile-poi-export-btn {
    min-height: 64px;
    border: none;
    border-radius: 16px;
    background: #244f28;
    color: #fff;
    font-size: 22px;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 6px 16px rgba(36, 79, 40, .18);
  }

  .mobile-poi-export-btn:disabled {
    cursor: not-allowed;
    opacity: .55;
  }

  .mobile-poi-export-hint {
    margin-top: 12px;
    color: var(--cpic-muted);
    font-size: 19px;
    font-weight: 700;
    line-height: 1.35;
  }

/* =========================================================
   CPIC Mobile Hotfix 2: kompaktere Darstellung
   ========================================================= */

.mobile-app {
  grid-template-rows: calc(72px + var(--safe-top)) minmax(0, 1fr) !important;
}

.mobile-header {
  min-height: calc(72px + var(--safe-top)) !important;
  padding: calc(8px + var(--safe-top)) 10px 8px !important;
  gap: 8px !important;
}

.brand-icon {
  width: 52px !important;
  height: 52px !important;
  border-radius: 14px !important;
  font-size: 30px !important;
}

.brand-title {
  font-size: 22px !important;
  line-height: 1.05 !important;
}

.brand-sub {
  max-width: calc(100vw - 126px) !important;
  font-size: 16px !important;
  margin-top: 2px !important;
}

.header-search-btn {
  width: 54px !important;
  height: 54px !important;
  border-radius: 16px !important;
  font-size: 30px !important;
}

.edge-tab {
  z-index: 6500 !important;
  width: 54px !important;
  height: 94px !important;
  font-size: 32px !important;
  top: 54% !important;
}

.edge-tab-left {
  left: 0 !important;
}

.edge-tab-right {
  right: 0 !important;
}

.floating-locate {
  width: 58px !important;
  height: 58px !important;
  right: 12px !important;
  bottom: 14px !important;
  border-radius: 18px !important;
  font-size: 30px !important;
}

.drawer-panel {
  width: min(92vw, 430px) !important;
  padding: calc(12px + var(--safe-top)) 14px calc(14px + var(--safe-bottom)) !important;
}

.drawer-head {
  margin-bottom: 12px !important;
}

.drawer-head h2 {
  font-size: 30px !important;
}

.drawer-close {
  width: 48px !important;
  height: 48px !important;
  font-size: 34px !important;
}

.drawer-section {
  margin-top: 14px !important;
  padding-top: 14px !important;
}

.drawer-label {
  font-size: 18px !important;
  margin-bottom: 8px !important;
}

.mobile-input {
  height: 54px !important;
  border-radius: 16px !important;
  padding: 0 14px !important;
  font-size: 18px !important;
}

.drawer-info {
  margin: 8px 2px !important;
  font-size: 15px !important;
}

.section-title-row h3 {
  font-size: 22px !important;
}

.mini-pill {
  padding: 9px 12px !important;
  font-size: 16px !important;
}

.result-list,
.category-list,
.layer-list {
  gap: 10px !important;
  margin-top: 10px !important;
}

.result-item,
.category-item,
.layer-item {
  min-height: 68px !important;
  border-radius: 18px !important;
  padding: 12px 14px !important;
}

.result-title,
.category-title {
  font-size: 19px !important;
}

.result-sub,
.category-count {
  font-size: 15px !important;
}

.layer-item {
  font-size: 19px !important;
}

.category-item {
  grid-template-columns: 42px minmax(0,1fr) 34px !important;
  gap: 10px !important;
}

.category-dot {
  width: 42px !important;
  height: 42px !important;
  font-size: 20px !important;
}

.category-check {
  width: 30px !important;
  height: 30px !important;
}

.poi-actions {
  gap: 10px !important;
  margin: 10px 0 !important;
}

.small-btn {
  min-height: 52px !important;
  border-radius: 16px !important;
  font-size: 18px !important;
}

.empty-state {
  padding: 14px !important;
  border-radius: 16px !important;
  font-size: 16px !important;
}

.harbor-mobile-icon {
  width: 42px !important;
  height: 42px !important;
  font-size: 23px !important;
  border-width: 2px !important;
}

.harbor-pulse-wrap {
  width: 44px !important;
  height: 44px !important;
}

.harbor-pulse-ring {
  display: none !important;
}

.harbor-pulse-core {
  left: 0 !important;
  top: 0 !important;
  width: 42px !important;
  height: 42px !important;
  font-size: 23px !important;
  border-width: 2px !important;
  background: #0c5ca8 !important;
}

.poi-mobile-icon {
  width: 34px !important;
  height: 34px !important;
  font-size: 17px !important;
  border-width: 2px !important;
}

.leaflet-tooltip.cpic-poi-tooltip {
  padding: 4px 8px !important;
  font-size: 13px !important;
  border-width: 1px !important;
  box-shadow: 0 4px 12px rgba(0,0,0,.18) !important;
  max-width: 160px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.leaflet-control-zoom a {
  width: 44px !important;
  height: 44px !important;
  line-height: 44px !important;
  font-size: 28px !important;
}

.mobile-popup {
  min-width: 220px !important;
  max-width: 280px !important;
}

.mobile-popup-title {
  font-size: 20px !important;
}

.mobile-popup-sub,
.mobile-popup-route {
  font-size: 16px !important;
}

.mobile-popup-route {
  padding: 10px 12px !important;
  border-radius: 12px !important;
}

.mobile-poi-export-box {
  margin-top: 14px !important;
  padding: 12px !important;
  border-radius: 18px !important;
}

.mobile-poi-export-title {
  font-size: 17px !important;
}

.mobile-poi-export-btn {
  min-height: 44px !important;
  border-radius: 12px !important;
  font-size: 16px !important;
}

.mobile-poi-export-hint {
  font-size: 14px !important;
}

/* Auf sehr schmalen Geräten noch kompakter */
@media (max-width: 430px) {
  .brand-title {
    font-size: 20px !important;
  }

  .brand-sub {
    font-size: 15px !important;
  }

  .drawer-panel {
    width: 90vw !important;
  }

  .edge-tab {
    width: 50px !important;
    height: 86px !important;
    font-size: 28px !important;
  }
}


/* =========================================================
   CPIC Mobile Hotfix 3: echte Icons + Route Hafen → POI
   ========================================================= */

.category-dot.category-dot-img,
.poi-mobile-icon.poi-mobile-icon-img {
  color: #163654 !important;
  overflow: hidden !important;
}

.category-dot .mobile-local-icon-img,
.poi-mobile-icon .mobile-local-icon-img {
  margin: auto !important;
}

.category-dot .mobile-icon-fallback,
.poi-mobile-icon .mobile-icon-fallback {
  color: #163654 !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

.poi-mobile-icon.poi-mobile-icon-img {
  display: grid !important;
  place-items: center !important;
  background: #fff !important;
}

.category-title {
  line-height: 1.16 !important;
}

.category-count {
  display: block !important;
  margin-top: 2px !important;
}

.category-check {
  justify-self: end !important;
}

/* POI-Popup etwas luftiger, aber weiter kompakt */
.mobile-popup-title {
  line-height: 1.15 !important;
}

.mobile-popup-sub {
  line-height: 1.25 !important;
}


/* =========================================================
   CPIC Mobile Hotfix 4: Icon-Fallback stabilisieren
   ========================================================= */

.mobile-local-icon-img {
  max-width: 100% !important;
  max-height: 100% !important;
}

.category-dot.category-dot-img {
  display: grid !important;
  place-items: center !important;
}

.category-dot .mobile-icon-fallback,
.poi-mobile-icon .mobile-icon-fallback {
  display: none;
  font-size: 17px !important;
}

.category-dot img:not([src]),
.poi-mobile-icon img:not([src]) {
  display: none !important;
}

