/*
 * TESLASHOP.GE — Mobile App Layer
 * Phone-first usability pass. This file intentionally loads last and only
 * changes compact layouts; desktop and Tesla navigation keep their own UI.
 */

:root {
  --tsm-safe-top: env(safe-area-inset-top, 0px);
  --tsm-safe-right: env(safe-area-inset-right, 0px);
  --tsm-safe-bottom: env(safe-area-inset-bottom, 0px);
  --tsm-safe-left: env(safe-area-inset-left, 0px);
  --tsm-header: 62px;
  --tsm-dock: 72px;
  --tsm-gutter: 14px;
  --tsm-control: 48px;
  --tsm-radius: 16px;
  --tsm-shadow: 0 14px 36px rgba(17, 24, 39, .11);
}

@media (max-width: 47.99rem) {
  html {
    scroll-padding-top: calc(var(--tsm-header) + 12px);
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body {
    min-height: 100svh;
    padding-bottom: calc(var(--tsm-dock) + var(--tsm-safe-bottom) + 12px) !important;
    font-size: 16px !important;
    line-height: 1.55 !important;
    overflow-wrap: anywhere;
    overscroll-behavior-y: contain;
  }

  body[data-module="chargers"] {
    padding-bottom: 0 !important;
    overflow: hidden !important;
    overscroll-behavior: none;
  }

  body *,
  body *::before,
  body *::after {
    min-width: 0;
  }

  body img,
  body video,
  body iframe,
  body canvas,
  body svg {
    max-width: 100%;
  }

  body p,
  body li,
  body dd,
  body td,
  body th,
  body label,
  body small,
  body span,
  body strong,
  body a {
    overflow-wrap: anywhere;
  }

  body input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  body select,
  body textarea {
    width: 100%;
    max-width: 100%;
    min-height: var(--tsm-control) !important;
    font-size: 16px !important;
    line-height: 1.35;
  }

  body textarea {
    min-height: 116px !important;
    resize: vertical;
  }

  body button,
  body [role="button"],
  body .btn,
  body .btn-tesla,
  body .btn-outline,
  body .tsn-button,
  body .mp-btn,
  body .evx-btn,
  body .seller-btn,
  body .sp-btn {
    touch-action: manipulation;
  }

  body .btn,
  body .btn-tesla,
  body .btn-outline,
  body .tsn-button,
  body .mp-btn,
  body .evx-btn,
  body .seller-btn,
  body .sp-btn,
  body button[type="submit"],
  body button[type="button"]:not(.maplibregl-ctrl button) {
    min-height: 44px;
  }

  body :focus-visible {
    outline-width: 3px !important;
    outline-offset: 2px !important;
  }

  main.container {
    width: 100% !important;
    max-width: none !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    overflow-x: clip !important;
  }

  .site-header.tsn-header {
    height: var(--tsm-header) !important;
    padding-top: var(--tsm-safe-top);
    background: rgba(255, 255, 255, .96) !important;
    border-bottom-color: rgba(17, 18, 22, .09) !important;
    box-shadow: 0 5px 18px rgba(17, 18, 22, .055);
    -webkit-backdrop-filter: saturate(1.4) blur(18px);
    backdrop-filter: saturate(1.4) blur(18px);
  }

  .tsn-header__inner {
    width: 100% !important;
    padding: 0 max(12px, var(--tsm-safe-right)) 0 max(12px, var(--tsm-safe-left)) !important;
    gap: 8px !important;
  }

  .tsn-brand {
    min-height: 44px;
    gap: 8px !important;
  }

  .tsn-brand img {
    width: 36px !important;
    height: 36px !important;
    flex: 0 0 36px;
  }

  .tsn-brand__copy strong {
    font-size: 14px !important;
    line-height: 1 !important;
  }

  .tsn-brand__copy small {
    display: none !important;
  }

  .tsn-header__route,
  .tsn-header__menu,
  [data-tsn-menu-open] {
    min-width: 44px !important;
    min-height: 44px !important;
  }

  .tsn-header__route {
    border-radius: 13px !important;
  }

  .tsn-header__route span,
  .tsn-header__menu span {
    display: none !important;
  }

  .tsn-menu {
    width: min(100%, 430px) !important;
    padding-right: max(18px, var(--tsm-safe-right)) !important;
    padding-bottom: calc(22px + var(--tsm-safe-bottom)) !important;
    padding-left: max(18px, var(--tsm-safe-left)) !important;
  }

  .tsn-menu a,
  .tsn-menu button {
    min-height: 48px;
    font-size: 15px !important;
  }

  .tsn-search-modal__panel {
    top: calc(var(--tsm-safe-top) + 8px) !important;
    right: max(8px, var(--tsm-safe-right)) !important;
    left: max(8px, var(--tsm-safe-left)) !important;
    width: auto !important;
    max-height: calc(100svh - 16px - var(--tsm-safe-top) - var(--tsm-safe-bottom));
    padding: 14px !important;
    border-radius: 20px !important;
    overflow-y: auto;
  }

  /* Mobile uses the persistent app dock and menu; the long desktop footer
     only adds scrolling and duplicate navigation. */
  .site-footer.tsn-footer {
    display: none !important;
  }

  .tsn-dock {
    z-index: 2200 !important;
    right: max(8px, var(--tsm-safe-right)) !important;
    bottom: max(8px, var(--tsm-safe-bottom)) !important;
    left: max(8px, var(--tsm-safe-left)) !important;
    min-height: 64px !important;
    padding: 5px !important;
    border-radius: 19px !important;
    background: rgba(255, 255, 255, .96) !important;
    box-shadow: 0 16px 42px rgba(17, 18, 22, .2) !important;
  }

  .tsn-dock a,
  .tsn-dock button {
    min-height: 54px !important;
    padding: 5px 2px !important;
    gap: 3px !important;
  }

  .tsn-dock svg {
    width: 22px !important;
    height: 22px !important;
  }

  body .tsn-dock span {
    max-width: 100%;
    font-size: 10px !important;
    line-height: 1.15 !important;
  }

  .tsn-dock__route i {
    width: 38px !important;
    height: 38px !important;
    margin-top: -19px !important;
    border-radius: 13px !important;
  }

  body.tsm-keyboard-open .tsn-dock {
    opacity: 0;
    translate: 0 120%;
    pointer-events: none;
  }

  /* Shared content geometry */
  .tsn-directions,
  .tsn-home-listings,
  .tsn-home-utility,
  .tsn-home-cta,
  .tsn-marketplace-hub .evm-container,
  .evm-marketplace--catalog > .evm-container,
  .evp-page,
  .diy-v2-page,
  .tsa-page,
  .seller-workspace,
  .sp-workspace,
  .evd-directory > [class$="-shell"],
  .evd-directory .services-shell,
  .evd-directory .shops-shell,
  .evd-directory .service-detail-shell,
  .evd-directory .shop-detail-shell {
    width: calc(100% - (var(--tsm-gutter) * 2)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .tsn-section-head h2,
  .evm-section__header h2,
  .sd-section-head h2,
  .shops-section-head h2,
  .services-section-head h2 {
    font-size: clamp(25px, 7.6vw, 34px) !important;
    line-height: 1.13 !important;
  }

  .tsn-section-head > p,
  .evm-section__header p:not(.evm-eyebrow) {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  /* Home */
  body[data-module="home"] .tsn-home-hero {
    min-height: auto !important;
    display: flex !important;
    flex-direction: column !important;
    background: #fff !important;
  }

  body[data-module="home"] .tsn-home-hero__media {
    position: relative !important;
    order: 1;
    height: clamp(240px, 72vw, 340px) !important;
    overflow: hidden;
    background: #fff;
  }

  body[data-module="home"] .tsn-home-hero__media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center bottom !important;
  }

  body[data-module="home"] .tsn-home-hero__veil {
    display: none !important;
  }

  body[data-module="home"] .tsn-home-hero__content {
    position: relative !important;
    z-index: 1;
    order: 2;
    width: calc(100% - (var(--tsm-gutter) * 2)) !important;
    align-self: auto !important;
    padding: 24px 0 28px !important;
    color: var(--tsn-ink) !important;
  }

  body[data-module="home"] .tsn-home-hero__content h1 {
    max-width: none !important;
    margin-top: 10px !important;
    color: var(--tsn-ink) !important;
    font-size: clamp(38px, 11vw, 52px) !important;
    line-height: .98 !important;
  }

  body[data-module="home"] .tsn-home-hero__content > p {
    color: var(--tsn-muted) !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  body[data-module="home"] .tsn-kicker,
  body[data-module="home"] .tsn-home-hero__facts small {
    color: var(--tsn-muted) !important;
    font-size: 11px !important;
  }

  body[data-module="home"] .tsn-hero-search {
    grid-template-columns: 22px minmax(0, 1fr) !important;
    min-height: 58px !important;
    padding: 7px !important;
    border: 1px solid var(--tsn-line) !important;
    background: #fff !important;
    box-shadow: 0 10px 26px rgba(17, 18, 22, .08) !important;
  }

  body[data-module="home"] .tsn-hero-search input {
    min-height: 46px !important;
    color: var(--tsn-ink) !important;
    font-size: 16px !important;
  }

  body[data-module="home"] .tsn-hero-search button {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 48px !important;
    margin-top: 2px;
    font-size: 14px !important;
  }

  body[data-module="home"] .tsn-home-hero__actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
  }

  body[data-module="home"] .tsn-home-hero__actions a {
    width: 100%;
    min-height: 48px;
    font-size: 14px !important;
  }

  body[data-module="home"] .tsn-home-hero__facts {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px !important;
    margin-top: 22px !important;
  }

  body[data-module="home"] .tsn-home-hero__facts > * {
    padding: 12px 8px;
    border-radius: 13px;
    background: #f5f6f7;
  }

  body[data-module="home"] .tsn-home-hero__facts strong {
    color: var(--tsn-ink) !important;
    font-size: 18px !important;
  }

  body[data-module="home"] .tsn-home-hero__facts small {
    max-width: none !important;
  }

  body[data-module="home"] .tsn-home-hero__route {
    position: relative !important;
    inset: auto !important;
    order: 3;
    width: calc(100% - (var(--tsm-gutter) * 2)) !important;
    margin: 0 auto 18px !important;
    color: #fff !important;
    background: var(--tsn-red) !important;
  }

  /* Current home concept uses the tsh1 component family. */
  body[data-module="home"] .tsh1-shell,
  body[data-module="home"] .tsh1-categories,
  body[data-module="home"] .tsh1-listings,
  body[data-module="home"] .tsh1-navigation,
  body[data-module="home"] .tsh1-utilities,
  body[data-module="home"] .tsh1-cta {
    width: calc(100% - (var(--tsm-gutter) * 2)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  body[data-module="home"] .tsh1-eyebrow {
    font-size: 12px !important;
    line-height: 1.4 !important;
  }

  body[data-module="home"] .tsh1-hero__copy > p {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  body[data-module="home"] .tsh1-search input {
    font-size: 16px !important;
  }

  body[data-module="home"] .tsh1-search button {
    min-height: 46px !important;
    font-size: 14px !important;
  }

  body[data-module="home"] .tsh1-button {
    min-height: 48px !important;
    padding: 10px 14px !important;
    font-size: 14px !important;
  }

  body[data-module="home"] .tsh1-hero__facts small {
    font-size: 11px !important;
    line-height: 1.3 !important;
  }

  body[data-module="home"] .tsh1-section-heading > a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    font-size: 13px !important;
  }

  body[data-module="home"] .tsh1-category-card {
    min-height: 96px !important;
    padding: 12px !important;
  }

  body[data-module="home"] .tsh1-category-card strong {
    font-size: 14px !important;
    line-height: 1.35 !important;
  }

  body[data-module="home"] .tsh1-category-card small {
    font-size: 11px !important;
    line-height: 1.35 !important;
  }

  body[data-module="home"] .tsh1-listing-grid.mp-grid.tsn-listing-grid {
    grid-template-columns: 1fr !important;
    gap: 13px !important;
  }

  body[data-module="home"] .tsh1-listing-grid .mp-card-body.tsr-listing-body {
    min-height: 0 !important;
    padding: 15px !important;
  }

  body[data-module="home"] .tsh1-listing-grid .evm-listing-card__shop {
    width: 100% !important;
    max-width: 100% !important;
    grid-template-columns: 38px minmax(0, 1fr) auto !important;
    gap: 9px !important;
    padding: 7px 9px !important;
  }

  body[data-module="home"] .tsh1-listing-grid .evm-listing-card__shop > img,
  body[data-module="home"] .tsh1-listing-grid .evm-listing-card__shop-fallback {
    width: 38px !important;
    height: 38px !important;
    max-width: 38px !important;
    max-height: 38px !important;
  }

  body[data-module="home"] .tsh1-listing-grid .evm-listing-card__shop-copy small {
    display: block !important;
    font-size: 11px !important;
  }

  body[data-module="home"] .tsh1-listing-grid .evm-listing-card__shop-copy strong {
    max-width: 100% !important;
    font-size: 14px !important;
  }

  body[data-module="home"] .tsh1-listing-grid .evm-listing-card__shop-arrow {
    display: block !important;
  }

  body[data-module="home"] .tsh1-navigation h2 {
    font-size: 23px !important;
  }

  body[data-module="home"] .tsh1-navigation p,
  body[data-module="home"] .tsh1-utility p,
  body[data-module="home"] .tsh1-cta p {
    display: block !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
  }

  .tsn-direction-grid,
  .tsn-home-utility,
  .tsn-market-direction-grid,
  .tsn-market-utilities {
    gap: 12px !important;
  }

  .tsn-direction-card {
    min-height: 290px !important;
    border-radius: 20px !important;
  }

  .tsn-direction-card__copy {
    max-width: calc(100% - 48px) !important;
  }

  .tsn-direction-card__copy h3 {
    font-size: 27px !important;
  }

  .tsn-direction-card__copy p {
    font-size: 14px !important;
  }

  .tsn-route-feature {
    min-height: 0 !important;
    border-radius: 22px !important;
  }

  .tsn-route-feature__content h2 {
    font-size: clamp(34px, 10vw, 46px) !important;
  }

  .tsn-home-utility__card {
    min-height: 190px !important;
  }

  /* Marketplace landing */
  .tsn-market-hero {
    width: calc(100% - (var(--tsm-gutter) * 2)) !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .tsn-market-hero > div,
  .tsn-market-hero > aside {
    padding: 24px 18px !important;
  }

  .tsn-market-hero h1 {
    font-size: clamp(36px, 11vw, 46px) !important;
    line-height: 1 !important;
  }

  .tsn-market-hero p {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  .tsn-market-hero .tsn-kicker,
  .tsn-market-direction small,
  .tsn-market-direction em {
    font-size: 11px !important;
  }

  .tsn-market-direction {
    min-height: 300px !important;
    border-radius: 20px !important;
  }

  .tsn-market-direction h2 {
    font-size: 29px !important;
  }

  .tsn-market-direction p {
    font-size: 14px !important;
  }

  .tsn-market-utility {
    min-height: 110px !important;
  }

  .tsn-market-utility strong {
    font-size: 17px !important;
  }

  /* Marketplace catalog */
  .evm-marketplace--catalog > .evm-container {
    padding-top: 16px !important;
  }

  .evm-breadcrumb,
  .pc-breadcrumb,
  .car-breadcrumb,
  .shops-breadcrumb,
  .services-breadcrumb,
  .sd-breadcrumb,
  .diy-v2-breadcrumb {
    min-height: 38px;
    align-items: center;
    font-size: 13px !important;
    line-height: 1.35 !important;
  }

  .evm-eyebrow,
  .pc-hero-kicker,
  .car-hero__eyebrow,
  .services-eyebrow,
  .shops-kicker,
  .diy-v2-kicker,
  .diy-v2-toolbar__eyebrow {
    font-size: 11px !important;
    line-height: 1.4 !important;
  }

  .evm-catalog-hero .evm-eyebrow,
  .evm-filter-panel .evm-eyebrow {
    font-size: 11px !important;
  }

  .evm-catalog-hero {
    padding-top: 20px !important;
    gap: 16px !important;
  }

  .evm-catalog-hero__main h1 {
    font-size: clamp(32px, 9.4vw, 40px) !important;
    line-height: 1.05 !important;
  }

  .evm-catalog-hero__lead {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  .evm-catalog-hero__aside {
    display: grid !important;
    grid-template-columns: 1fr auto;
    gap: 10px !important;
    padding: 15px !important;
    border-radius: 16px !important;
  }

  .evm-catalog-hero__aside span {
    font-size: 13px !important;
  }

  .evm-catalog-hero__aside .evm-btn {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 48px !important;
    font-size: 14px !important;
  }

  .evm-vehicle-match {
    padding: 12px !important;
  }

  .evm-vehicle-match small,
  .evm-vehicle-match a {
    font-size: 12px !important;
  }

  .evm-vehicle-match strong {
    font-size: 14px !important;
  }

  .evm-catalog-tabs {
    margin: 12px calc(var(--tsm-gutter) * -1) 14px !important;
    padding: 7px var(--tsm-gutter) 10px !important;
    scroll-snap-type: x proximity;
  }

  .evm-catalog-tabs a {
    min-width: 150px !important;
    min-height: 48px !important;
    padding: 8px 11px !important;
    scroll-snap-align: start;
  }

  .evm-catalog-tabs__label {
    font-size: 13px !important;
  }

  .evm-catalog-tabs b {
    min-width: 27px !important;
    height: 27px !important;
    font-size: 11px !important;
  }

  .evm-mobile-toolbar {
    position: sticky;
    z-index: 80;
    top: calc(var(--tsm-header) + 7px);
    gap: 8px !important;
    padding: 7px !important;
    border: 1px solid rgba(17, 18, 22, .1);
    border-radius: 15px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 9px 22px rgba(17, 18, 22, .08);
    -webkit-backdrop-filter: blur(15px);
    backdrop-filter: blur(15px);
  }

  .evm-mobile-toolbar__filter,
  .evm-mobile-toolbar__sort {
    min-height: 46px !important;
  }

  .evm-mobile-toolbar__filter,
  .evm-mobile-toolbar__sort select {
    font-size: 14px !important;
  }

  .evm-filter-panel {
    z-index: 2300 !important;
    width: min(100%, 430px) !important;
    max-width: 100% !important;
    padding-bottom: calc(18px + var(--tsm-safe-bottom)) !important;
  }

  .evm-filter-panel__mobile-head strong,
  .evm-filter-group h3,
  .evm-advanced-filters summary {
    font-size: 15px !important;
  }

  .evm-filter-panel__mobile-head span,
  .evm-filter-group--search > label,
  .evm-advanced-filters__body > label > span {
    font-size: 13px !important;
  }

  .evm-filter-panel__actions button {
    min-height: 48px !important;
    font-size: 14px !important;
  }

  .evm-results-toolbar {
    align-items: flex-start !important;
    gap: 8px !important;
  }

  .evm-results-toolbar strong {
    font-size: 17px !important;
  }

  .evm-results-toolbar p {
    font-size: 13px !important;
  }

  .mp-grid.tsn-listing-grid,
  .mp-grid.evm-listing-grid,
  .evm-catalog-results .mp-grid.evm-listing-grid {
    grid-template-columns: 1fr !important;
    gap: 13px !important;
  }

  .mp-card.tsr-listing-card,
  .evm-listing-card {
    border-radius: 18px !important;
    box-shadow: 0 8px 24px rgba(16, 24, 40, .06) !important;
  }

  .mp-card-media.tsr-listing-media,
  .evm-listing-card__media {
    aspect-ratio: 16 / 10 !important;
  }

  .mp-card-body.tsr-listing-body,
  .evm-listing-card__body {
    min-height: 0 !important;
    padding: 15px !important;
  }

  .evm-listing-card__type,
  .evm-listing-card__compatibility,
  .mp-type-chip {
    font-size: 11px !important;
  }

  .evm-listing-card__meta,
  .mp-card-meta {
    font-size: 12px !important;
  }

  .mp-card h3,
  .evm-listing-card h3 {
    font-size: 17px !important;
    line-height: 1.38 !important;
  }

  .evm-listing-card__facts,
  .mp-card-fitment,
  .mp-card-attributes {
    font-size: 13px !important;
  }

  .tsr-listing-footer strong,
  .evm-listing-card__footer strong,
  .mp-card-footer strong {
    font-size: 19px !important;
  }

  .evm-listing-card__shop {
    min-height: 48px !important;
    margin-top: 12px !important;
    padding: 8px 10px !important;
  }

  .evm-listing-card__shop-copy small {
    font-size: 11px !important;
  }

  .evm-listing-card__shop-copy strong {
    font-size: 14px !important;
  }

  .evm-service-card__description {
    font-size: 14px !important;
    line-height: 1.55 !important;
  }

  .evm-service-card__offerings span {
    min-height: 30px !important;
    font-size: 12px !important;
  }

  .evm-service-card__contact {
    gap: 8px !important;
  }

  .evm-service-card__actions .evm-service-card__icon-action {
    width: 46px !important;
    min-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
    font-size: 14px !important;
  }

  .evm-service-card__actions .evm-service-card__detail-action {
    min-height: 46px !important;
    padding: 9px 13px !important;
    font-size: 14px !important;
  }

  .tsn-marketplace-hub .evm-service-card__detail-action {
    min-height: 44px !important;
    padding: 9px 12px !important;
    font-size: 14px !important;
  }

  .evm-service-card__actions .evm-service-distance {
    font-size: 12px !important;
  }

  .evm-marketplace--services .evm-service-card__description {
    font-size: 14px !important;
  }

  .evm-marketplace--services .evm-service-card__offerings span {
    min-height: 30px !important;
    padding: 6px 9px !important;
    font-size: 12px !important;
  }

  .evm-marketplace--services .evm-service-card__address {
    font-size: 13px !important;
  }

  /* Product and car catalogs */
  .product-catalog-page,
  .car-market,
  .ds-page {
    width: 100% !important;
    margin: 0 !important;
    padding-right: var(--tsm-gutter) !important;
    padding-left: var(--tsm-gutter) !important;
  }

  .pc-breadcrumb,
  .car-breadcrumb {
    padding-top: 10px !important;
  }

  .pc-hero,
  .car-hero {
    border-radius: 20px !important;
  }

  .pc-hero h1,
  .car-hero h1 {
    font-size: clamp(30px, 9vw, 38px) !important;
    line-height: 1.05 !important;
  }

  .pc-hero p,
  .car-hero__lead {
    font-size: 14px !important;
    line-height: 1.55 !important;
  }

  .pc-hero-cta {
    min-height: 46px !important;
    font-size: 14px !important;
  }

  .pc-category-strip,
  .car-purpose-tabs {
    margin-right: calc(var(--tsm-gutter) * -1) !important;
    margin-left: calc(var(--tsm-gutter) * -1) !important;
    padding-right: var(--tsm-gutter) !important;
    padding-left: var(--tsm-gutter) !important;
    overflow-x: auto !important;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .pc-category-strip > *,
  .car-purpose-tabs > * {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }

  .car-purpose-tab {
    min-height: 44px !important;
    padding: 9px 13px !important;
    font-size: 13px !important;
  }

  .pc-mobile-filter,
  .car-filter-open,
  .car-mobile-filter,
  .pc-filter-open {
    min-height: 48px !important;
    font-size: 14px !important;
  }

  .pc-sidebar,
  .car-drawer {
    z-index: 2400 !important;
    width: min(92vw, 420px) !important;
    max-width: 100% !important;
    padding-bottom: calc(18px + var(--tsm-safe-bottom)) !important;
  }

  .pc-filter-head strong,
  .car-drawer__head h2 {
    font-size: 20px !important;
  }

  .car-view-toggle button {
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
  }

  .car-drawer .car-filter-actions button {
    min-height: 48px !important;
    font-size: 14px !important;
  }

  body .pc-sidebar label,
  body .car-drawer label {
    font-size: 14px !important;
  }

  body .pc-sidebar input:not([type="checkbox"]):not([type="radio"]),
  body .pc-sidebar select,
  body .car-drawer input:not([type="checkbox"]):not([type="radio"]),
  body .car-drawer select,
  body .car-drawer .car-filter-control {
    min-height: 48px !important;
    font-size: 16px !important;
  }

  .pc-grid,
  .car-grid,
  .ds-grid,
  .ds-shop-grid {
    grid-template-columns: 1fr !important;
    gap: 13px !important;
  }

  .pc-card h2,
  .car-card h2,
  .car-card h3,
  .ds-card h2,
  .ds-card h3 {
    font-size: 17px !important;
    line-height: 1.38 !important;
  }

  .pc-card,
  .car-card,
  .ds-card,
  .ds-shop-card {
    border-radius: 18px !important;
  }

  .pc-card-meta,
  .car-card-meta,
  .ds-card-meta,
  .ds-shop-city,
  .ds-updated {
    font-size: 13px !important;
  }

  .pc-product-category,
  .pc-discount-badge,
  .car-badge,
  .car-card__photo-count,
  .car-card__spec {
    font-size: 12px !important;
  }

  .pc-count-badge {
    font-size: 12px !important;
  }

  /* Public directories: services and shops */
  .evd-directory {
    width: 100% !important;
    margin: 0 !important;
  }

  .services-hero,
  .shops-hero {
    gap: 18px !important;
    padding: 20px 0 16px !important;
  }

  .services-hero h1,
  .shops-hero h1 {
    font-size: clamp(32px, 9.6vw, 40px) !important;
    line-height: 1.05 !important;
  }

  .services-hero p,
  .shops-hero p {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  .services-hero-stats,
  .shops-hero-stats {
    gap: 8px !important;
  }

  .services-stat,
  .shops-stat {
    min-height: 74px !important;
    padding: 11px !important;
  }

  .services-stat strong,
  .shops-stat strong {
    font-size: 20px !important;
  }

  .services-stat span,
  .shops-stat span {
    font-size: 12px !important;
    line-height: 1.3 !important;
  }

  .service-type-strip {
    margin-right: calc(var(--tsm-gutter) * -1) !important;
    margin-left: calc(var(--tsm-gutter) * -1) !important;
    padding-right: var(--tsm-gutter) !important;
    padding-left: var(--tsm-gutter) !important;
    overflow-x: auto !important;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .service-type-card {
    min-width: 190px !important;
    min-height: 88px !important;
    scroll-snap-align: start;
  }

  .service-type-card strong {
    font-size: 14px !important;
  }

  .service-type-card small {
    font-size: 12px !important;
  }

  .evd-mobile-tools {
    position: sticky;
    z-index: 80;
    top: calc(var(--tsm-header) + 7px);
    margin: 10px 0 !important;
  }

  .evd-mobile-filter-button {
    width: 100%;
    min-height: 48px !important;
    font-size: 14px !important;
    box-shadow: 0 8px 22px rgba(17, 18, 22, .08);
  }

  .services-filters,
  .shops-filters {
    z-index: 2300 !important;
    width: min(100%, 430px) !important;
    padding-bottom: calc(18px + var(--tsm-safe-bottom)) !important;
  }

  .services-grid,
  .shops-grid {
    grid-template-columns: 1fr !important;
    gap: 13px !important;
  }

  .service-card,
  .shop-card {
    border-radius: 18px !important;
  }

  .service-card-title,
  .shop-card-name {
    font-size: 18px !important;
    line-height: 1.35 !important;
  }

  .service-card-desc,
  .shop-card-desc {
    font-size: 14px !important;
    line-height: 1.55 !important;
  }

  .service-card-city,
  .service-card-tag,
  .shop-card-type,
  .shop-metric,
  .service-card-meta {
    font-size: 12px !important;
  }

  .service-card-action,
  .shop-card-primary,
  .shop-card-arrow {
    min-height: 46px !important;
    font-size: 14px !important;
  }

  .service-card-actions {
    gap: 8px !important;
  }

  .service-card-actions > a:not(.service-card-detail) {
    min-width: 46px !important;
  }

  .shops-benefits,
  .services-benefits {
    grid-template-columns: 1fr !important;
  }

  .shop-benefit strong,
  .sd-benefit strong {
    font-size: 14px !important;
  }

  .shop-benefit span,
  .sd-benefit span {
    font-size: 13px !important;
  }

  /* Service/shop details */
  .service-detail-shell,
  .shop-detail-shell {
    padding-top: 10px !important;
  }

  .sd-detail-hero,
  .sd-hero {
    gap: 12px !important;
  }

  .sd-main-media,
  .sd-hero-media {
    border-radius: 18px !important;
  }

  .sd-main-media {
    aspect-ratio: 4 / 3 !important;
    min-height: 0 !important;
  }

  .sd-main-media img {
    object-fit: contain !important;
  }

  .sd-detail-card,
  .sd-hero-content,
  .sd-card {
    padding: 17px !important;
    border-radius: 18px !important;
  }

  .sd-service-title,
  .sd-hero-content h1 {
    font-size: clamp(28px, 8.5vw, 36px) !important;
    line-height: 1.08 !important;
  }

  .sd-status-line {
    font-size: 13px !important;
  }

  .sd-quick-grid,
  .sd-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .sd-quick-item,
  .sd-summary-card {
    min-height: 74px !important;
    padding: 11px !important;
  }

  .sd-quick-item span,
  .sd-summary-card span {
    font-size: 12px !important;
  }

  .sd-quick-item strong,
  .sd-summary-card strong {
    font-size: 14px !important;
  }

  .sd-actions {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .sd-action {
    min-height: 50px !important;
    font-size: 14px !important;
  }

  .sd-tabs {
    display: flex !important;
    margin-right: -17px !important;
    margin-left: -17px !important;
    padding: 6px 17px 8px !important;
    gap: 6px !important;
    overflow-x: auto !important;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .sd-tab {
    flex: 0 0 auto !important;
    min-width: auto !important;
    min-height: 46px !important;
    padding: 9px 13px !important;
    font-size: 14px !important;
    white-space: nowrap;
    scroll-snap-align: start;
  }

  .sd-tab-panel {
    padding-top: 16px !important;
  }

  .sd-description,
  .sd-about {
    font-size: 15px !important;
    line-height: 1.7 !important;
  }

  .sd-service-row,
  .sd-info-row,
  .sd-business-row,
  .sd-branch-item {
    padding: 13px 0 !important;
  }

  .sd-service-name,
  .sd-info-row b,
  .sd-info-row a,
  .sd-branch-item b,
  .sd-branch-item span:not(.sd-info-icon) {
    font-size: 14px !important;
  }

  .sd-service-meta span,
  .sd-branch-item a {
    font-size: 12px !important;
  }

  .sd-business-head {
    gap: 10px !important;
  }

  .sd-business-head > div:last-child strong {
    font-size: 16px !important;
  }

  .sd-business-head > div:last-child span {
    font-size: 13px !important;
  }

  .evd-mobile-contact {
    right: max(8px, var(--tsm-safe-right)) !important;
    bottom: calc(var(--tsm-dock) + var(--tsm-safe-bottom) + 8px) !important;
    left: max(8px, var(--tsm-safe-left)) !important;
    gap: 7px !important;
    padding: 7px !important;
    border-radius: 17px !important;
  }

  .evd-mobile-contact a {
    min-height: 48px !important;
    font-size: 13px !important;
  }

  /* Detail pages */
  .mp-detail,
  .mp-detail-sections,
  .mp-product-page,
  .mp-car-page {
    width: calc(100% - (var(--tsm-gutter) * 2)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .mp-detail h1,
  .mp-product-titlebar h1,
  .mp-car-titlebar h1 {
    font-size: clamp(27px, 8vw, 34px) !important;
    line-height: 1.15 !important;
  }

  .mp-gallery,
  .mp-detail-info,
  .mp-product-gallery,
  .mp-product-summary,
  .mp-product-section,
  .mp-car-gallery,
  .mp-car-summary,
  .mp-car-section {
    border-radius: 18px !important;
  }

  .mp-gallery-main,
  .mp-gallery-main img {
    min-height: 0 !important;
  }

  .mp-product-main-image,
  .mp-car-main-image {
    min-height: 0 !important;
    aspect-ratio: 4 / 3 !important;
  }

  .mp-product-price small,
  .mp-product-keyfacts dt,
  .mp-car-keyfacts dt,
  .mp-product-seller span,
  .mp-car-seller span {
    font-size: 12px !important;
  }

  .mp-product-keyfacts dd,
  .mp-car-keyfacts dd {
    font-size: 14px !important;
  }

  .mp-product-specs div,
  .mp-car-specs div {
    grid-template-columns: 1fr !important;
    gap: 4px !important;
  }

  .mp-product-mobile-contact,
  .mp-car-mobile-contact {
    right: max(8px, var(--tsm-safe-right)) !important;
    bottom: calc(var(--tsm-dock) + var(--tsm-safe-bottom) + 8px) !important;
    left: max(8px, var(--tsm-safe-left)) !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    padding: 7px !important;
    border-radius: 17px !important;
  }

  .mp-product-mobile-contact a,
  .mp-product-mobile-contact button,
  .mp-car-mobile-contact a,
  .mp-car-mobile-contact button {
    min-height: 46px !important;
    font-size: 13px !important;
  }

  /* DIY */
  .diy-v2-hero {
    padding: 24px 18px !important;
    border-radius: 20px !important;
  }

  .diy-v2-hero h1 {
    font-size: clamp(32px, 9.6vw, 40px) !important;
    line-height: 1.05 !important;
  }

  .diy-v2-hero p,
  .diy-v2-featured__content p,
  .diy-v2-card__body > p {
    font-size: 14px !important;
    line-height: 1.62 !important;
  }

  .diy-v2-search__submit {
    min-height: 48px !important;
    font-size: 14px !important;
  }

  .diy-v2-grid,
  .diy-v2-related-grid {
    grid-template-columns: 1fr !important;
  }

  .diy-v2-card h3 {
    font-size: 18px !important;
  }

  .diy-v2-card__meta,
  .diy-v2-card__footer,
  .diy-v2-card__badge,
  .diy-v2-featured__badge {
    font-size: 12px !important;
  }

  .diy-v2-card__footer a,
  .diy-v2-related-card__link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    font-size: 14px !important;
  }

  .diy-v2-article h1 {
    font-size: clamp(28px, 8.3vw, 36px) !important;
    line-height: 1.18 !important;
  }

  .diy-v2-article-cover {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  .diy-v2-article-content {
    font-size: 16px !important;
    line-height: 1.75 !important;
  }

  .diy-v2-article-content table {
    display: block !important;
    width: 100% !important;
    overflow-x: auto;
    table-layout: auto !important;
    font-size: 14px !important;
  }

  .diy-v2-mobile-actions {
    bottom: calc(var(--tsm-dock) + var(--tsm-safe-bottom) + 8px) !important;
  }

  .diy-v2-mobile-actions button {
    min-height: 48px !important;
    font-size: 12px !important;
  }

  /* Dismantled vehicle finder */
  .ds-breadcrumb,
  .ds-eyebrow {
    font-size: 12px !important;
  }

  .ds-hero p,
  .ds-location-card p,
  .ds-search-card p {
    font-size: 14px !important;
    line-height: 1.55 !important;
  }

  .ds-location-btn,
  .ds-search-submit {
    min-height: 48px !important;
    font-size: 14px !important;
  }

  .ds-search-card label {
    font-size: 13px !important;
  }

  .ds-search-card input,
  .ds-search-card select {
    min-height: 48px !important;
    font-size: 16px !important;
  }

  /* Authentication */
  .auth-v2-page {
    width: 100% !important;
    min-height: calc(100svh - var(--tsm-header)) !important;
    padding: 14px var(--tsm-gutter) 28px !important;
  }

  .auth-v2-shell {
    width: 100% !important;
    min-height: 0 !important;
    grid-template-columns: 1fr !important;
    border-radius: 20px !important;
  }

  .auth-v2-visual {
    display: none !important;
  }

  .auth-v2-panel {
    padding: 24px 18px !important;
  }

  .auth-v2-panel__head h1 {
    font-size: clamp(28px, 8vw, 34px) !important;
  }

  .auth-v2-panel__head p,
  .auth-v2-label-row label,
  .auth-v2-label-row a,
  .auth-v2-switch,
  .auth-v2-trust,
  .auth-v2-help,
  .auth-v2-match {
    font-size: 13px !important;
  }

  .auth-v2-submit,
  .auth-v2-quiet-link {
    min-height: 48px !important;
    font-size: 14px !important;
  }

  /* Marketplace wizard and forms */
  .mp-wizard.evw-wizard,
  .mp-wizard-v4 {
    width: calc(100% - (var(--tsm-gutter) * 2)) !important;
    max-width: none !important;
    padding-top: 14px !important;
  }

  .mp-wizard-head,
  .mp-step,
  .mp-mode-panel,
  .mp-progress-shell {
    border-radius: 17px !important;
  }

  .mp-wizard-head h1,
  .mp-step-heading h2 {
    font-size: clamp(24px, 7vw, 30px) !important;
    line-height: 1.18 !important;
  }

  .mp-wizard-head p,
  .mp-step-heading p,
  .mp-choice-copy p,
  .mp-field-wrap small,
  .mp-field small,
  .mp-upload-zone small,
  .mp-nav-copy span {
    font-size: 13px !important;
    line-height: 1.55 !important;
  }

  .mp-stepper {
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .mp-stepper li {
    min-width: 44px;
    scroll-snap-align: center;
  }

  .mp-stepper li span {
    width: 30px !important;
    height: 30px !important;
    font-size: 13px !important;
  }

  .mp-choice-card,
  .mp-type-card {
    min-height: 104px !important;
    padding: 16px !important;
    border-radius: 15px !important;
  }

  .mp-choice-copy strong,
  .mp-type-card strong,
  .mp-section-title h3 {
    font-size: 16px !important;
  }

  .mp-form-grid,
  .mp-choice-grid,
  .mp-type-grid,
  .mp-review-facts,
  .mp-review-hero {
    grid-template-columns: 1fr !important;
  }

  .mp-field-wrap label,
  .mp-field label {
    font-size: 14px !important;
  }

  .mp-upload-zone {
    min-height: 170px !important;
    padding: 22px 15px !important;
  }

  .mp-upload-zone strong {
    font-size: 17px !important;
  }

  .mp-media-grid {
    grid-template-columns: 1fr !important;
  }

  .evw-wizard .mp-wizard-nav {
    position: fixed !important;
    z-index: 130 !important;
    right: max(8px, var(--tsm-safe-right));
    bottom: calc(var(--tsm-dock) + var(--tsm-safe-bottom) + var(--evw-keyboard-offset, 0px) + 8px) !important;
    left: max(8px, var(--tsm-safe-left));
    grid-template-columns: 1fr 1fr !important;
    width: auto;
    margin-right: 0;
    margin-left: 0;
    padding: 7px !important;
    border-radius: 17px !important;
  }

  .evw-wizard .mp-wizard-nav .mp-nav-copy {
    display: none !important;
  }

  .evw-wizard #mpWizardForm {
    padding-bottom: calc(var(--tsm-dock) + var(--tsm-safe-bottom) + 78px) !important;
  }

  .evw-wizard.is-keyboard-open .mp-wizard-nav {
    bottom: calc(var(--evw-keyboard-offset, 0px) + var(--tsm-safe-bottom) + 8px) !important;
  }

  .evw-wizard .mp-wizard-nav .mp-btn {
    min-height: 48px !important;
    font-size: 14px !important;
  }

  /* Account, seller and service workspaces */
  .tsa-layout,
  .seller-layout,
  .sp-shell {
    width: 100% !important;
    max-width: none !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 12px var(--tsm-gutter) calc(var(--tsm-dock) + 22px) !important;
  }

  .seller-sidebar,
  .sp-sidebar {
    display: none !important;
  }

  /* The account workspace uses a real off-canvas drawer on mobile. Keep it
     rendered so evhub-account-v2.js can slide it above the backdrop. */
  .tsa-account-app .tsa-sidebar {
    display: flex !important;
  }

  .tsa-account-app .tsa-sidebar[aria-hidden="true"] {
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .tsa-account-app.is-drawer-open .tsa-sidebar[aria-hidden="false"] {
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(0) !important;
  }

  .tsa-mobile-nav,
  .seller-mobile-nav,
  .sp-mobile-nav {
    display: flex !important;
    gap: 8px !important;
    margin: 0 calc(var(--tsm-gutter) * -1) 10px !important;
    padding: 4px var(--tsm-gutter) 8px !important;
    overflow-x: auto !important;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .tsa-mobile-nav a,
  .seller-mobile-nav a,
  .sp-mobile-nav a {
    min-height: 46px !important;
    padding: 0 14px !important;
    flex: 0 0 auto;
    font-size: 13px !important;
    scroll-snap-align: start;
  }

  .tsa-page-head,
  .seller-page-head,
  .sp-page-head,
  .evs-hero {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    padding: 18px !important;
    border-radius: 18px !important;
  }

  .tsa-page-head h1,
  .seller-page-head h1,
  .sp-page-head h1,
  .evs-hero h1,
  .tsa-workspace-copy h1 {
    font-size: clamp(25px, 7.5vw, 32px) !important;
    line-height: 1.15 !important;
  }

  .tsa-page-head p,
  .seller-page-head p,
  .sp-page-head p,
  .evs-hero p,
  .tsa-workspace-copy p {
    font-size: 14px !important;
    line-height: 1.55 !important;
  }

  .tsa-head-actions,
  .seller-head-actions,
  .sp-head-actions,
  .evs-hero-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100%;
    gap: 8px !important;
  }

  .tsa-head-actions > *,
  .seller-head-actions > *,
  .sp-head-actions > *,
  .evs-hero-actions > * {
    width: 100%;
    justify-content: center;
    min-height: 48px !important;
    font-size: 14px !important;
  }

  .tsa-stat-grid,
  .tsa-business-grid,
  .tsa-quick-grid,
  .seller-kpis,
  .evs-kpi-grid,
  .sp-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
  }

  .tsa-stat-card,
  .tsa-business-card,
  .tsa-quick-card,
  .seller-kpi,
  .evs-kpi,
  .sp-kpi {
    min-height: 116px !important;
    padding: 14px !important;
    border-radius: 16px !important;
  }

  .tsa-stat-label,
  .tsa-stat-card > small,
  .tsa-business-card p,
  .seller-kpi .label,
  .evs-kpi .label,
  .evs-kpi-note,
  .sp-kpi-label {
    font-size: 12px !important;
    line-height: 1.4 !important;
  }

  .seller-grid-2,
  .evs-dashboard-grid,
  .sp-grid-2,
  .tsa-grid-2,
  .tsa-dashboard-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .tsa-card,
  .seller-card,
  .evs-panel,
  .sp-card {
    border-radius: 17px !important;
  }

  .tsa-card-head,
  .seller-card-head,
  .evs-panel-head,
  .sp-card-head {
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 15px !important;
  }

  .tsa-card-head h2,
  .seller-card-head h2,
  .evs-panel-head h2,
  .sp-card-head h2 {
    font-size: 17px !important;
  }

  .seller-table-wrap,
  .evs-responsive-table,
  .sp-table-wrap,
  .tsa-table-wrap {
    width: 100%;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .seller-table-wrap table,
  .evs-responsive-table table,
  .sp-table-wrap table,
  .tsa-table-wrap table {
    min-width: 680px;
  }

  .seller-order-row,
  .evs-order-card,
  .sp-list-row,
  .tsa-listing-row {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .seller-order-meta,
  .sp-list-meta,
  .tsa-listing-meta {
    font-size: 12px !important;
  }

  .seller-form-grid,
  .sp-form-grid,
  .tsa-form-grid,
  .tsam-form-grid,
  .tsaop-form-grid,
  .df-grid,
  .form-grid {
    grid-template-columns: 1fr !important;
  }

  .seller-form-group label,
  .sp-form-group label,
  .tsa-field,
  .tsam-field,
  .tsaop-field {
    font-size: 14px !important;
  }

  .sp-savebar,
  .form-action-bar,
  .save-action {
    right: max(8px, var(--tsm-safe-right)) !important;
    bottom: calc(var(--tsm-dock) + var(--tsm-safe-bottom) + 8px) !important;
    left: max(8px, var(--tsm-safe-left)) !important;
    width: auto !important;
    padding: 8px !important;
    border-radius: 17px !important;
  }

  /* Cart and checkout */
  .ts-cart-page,
  .ts-checkout-page {
    width: calc(100% - (var(--tsm-gutter) * 2)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding: 18px 0 28px !important;
  }

  .ts-cart-title,
  .ts-checkout-title {
    margin-bottom: 16px !important;
    font-size: 28px !important;
  }

  .ts-cart-layout,
  .ts-checkout-layout,
  .ts-checkout-fields {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .ts-cart-item {
    display: grid !important;
    grid-template-columns: 86px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 12px !important;
    padding: 12px !important;
    border-radius: 16px !important;
  }

  .ts-cart-item__media {
    width: 86px !important;
    height: 86px !important;
  }

  .ts-cart-item__qty,
  .ts-cart-item__total,
  .ts-cart-item__remove {
    grid-column: 1 / -1;
  }

  .ts-cart-item__qty {
    justify-self: start;
  }

  .ts-cart-item__qty button,
  .ts-cart-item__qty span {
    width: 46px !important;
    height: 44px !important;
  }

  .ts-cart-item__total {
    justify-self: stretch;
    min-width: 0 !important;
    text-align: left !important;
  }

  .ts-cart-item__remove button {
    min-height: 44px !important;
    padding: 8px 12px !important;
    font-size: 14px !important;
  }

  .ts-cart-summary,
  .ts-checkout-summary {
    position: static !important;
    border-radius: 17px !important;
  }

  .ts-checkout-notice {
    font-size: 14px !important;
  }

  .ts-checkout-card {
    padding: 16px !important;
    border-radius: 17px !important;
  }

  .ts-checkout-choice {
    min-height: 62px;
  }

  /* Generic tables, notices and dialogs */
  .table-wrap,
  .responsive-table,
  .mp-table-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  dialog,
  .modal,
  .dialog,
  [role="dialog"] {
    max-width: calc(100% - 16px);
  }

  .modal-content,
  .dialog__panel {
    max-height: calc(100svh - 16px - var(--tsm-safe-top) - var(--tsm-safe-bottom));
    overflow-y: auto;
    border-radius: 20px !important;
  }

  /* Charger navigation keeps a dedicated full-screen interface. */
  body[data-module="chargers"] .site-header,
  body[data-module="chargers"] .tsn-dock,
  body[data-module="chargers"] .site-footer {
    display: none !important;
  }

  body[data-module="chargers"] main.container {
    height: 100svh !important;
    min-height: 100svh !important;
  }

  body[data-module="chargers"] .nav2-topbar {
    top: max(8px, var(--tsm-safe-top)) !important;
    right: max(8px, var(--tsm-safe-right)) !important;
    left: max(8px, var(--tsm-safe-left)) !important;
    gap: 7px !important;
    min-height: 56px !important;
    padding: 6px !important;
    border-radius: 17px !important;
  }

  body[data-module="chargers"] .nav2-search input {
    min-height: 44px !important;
    font-size: 16px !important;
  }

  body[data-module="chargers"] .nav2-filter-button,
  body[data-module="chargers"] .nav2-location-button,
  body[data-module="chargers"] .nav2-mode-button,
  body[data-module="chargers"] .nav2-topbar button {
    min-width: 44px !important;
    min-height: 44px !important;
    font-size: 12px !important;
  }

  body[data-module="chargers"] .nav2-sheet,
  body[data-module="chargers"] .nav2-station-card,
  body[data-module="chargers"] .nav2-route-panel {
    right: max(8px, var(--tsm-safe-right)) !important;
    bottom: max(8px, var(--tsm-safe-bottom)) !important;
    left: max(8px, var(--tsm-safe-left)) !important;
    width: auto !important;
    max-height: min(58svh, 520px) !important;
    border-radius: 20px !important;
  }

  body[data-module="chargers"] .nav2-sheet button,
  body[data-module="chargers"] .nav2-station-card button,
  body[data-module="chargers"] .nav2-route-panel button {
    min-height: 46px !important;
    font-size: 14px !important;
  }
}

@media (max-width: 25rem) {
  :root {
    --tsm-gutter: 12px;
  }

  .tsn-brand__copy strong {
    font-size: 13px !important;
  }

  body .tsn-dock span {
    font-size: 10px !important;
  }

  .tsa-stat-grid,
  .tsa-business-grid,
  .tsa-quick-grid,
  .seller-kpis,
  .evs-kpi-grid,
  .sp-kpis,
  .sd-quick-grid,
  .sd-summary-grid {
    grid-template-columns: 1fr !important;
  }

  .ts-cart-item {
    grid-template-columns: 72px minmax(0, 1fr) !important;
  }

  .ts-cart-item__media {
    width: 72px !important;
    height: 72px !important;
  }
}

@media (orientation: landscape) and (max-height: 31rem) and (max-width: 62rem) {
  :root {
    --tsm-header: 54px;
    --tsm-dock: 60px;
  }

  .tsn-dock {
    min-height: 54px !important;
  }

  .tsn-dock a,
  .tsn-dock button {
    min-height: 46px !important;
  }

  .evw-wizard .mp-wizard-nav {
    position: fixed !important;
    z-index: 130 !important;
    right: max(8px, var(--tsm-safe-right));
    bottom: calc(var(--tsm-dock) + var(--tsm-safe-bottom) + var(--evw-keyboard-offset, 0px) + 8px) !important;
    left: max(8px, var(--tsm-safe-left));
    grid-template-columns: 1fr 1fr !important;
    width: auto !important;
    margin: 0 !important;
  }

  .evw-wizard .mp-wizard-nav .mp-nav-copy {
    display: none !important;
  }

  .evw-wizard #mpWizardForm {
    padding-bottom: calc(var(--tsm-dock) + var(--tsm-safe-bottom) + 74px) !important;
  }

  .evw-wizard.is-keyboard-open .mp-wizard-nav {
    bottom: calc(var(--evw-keyboard-offset, 0px) + var(--tsm-safe-bottom) + 8px) !important;
  }

  body[data-module="chargers"] .nav2-sheet,
  body[data-module="chargers"] .nav2-station-card,
  body[data-module="chargers"] .nav2-route-panel {
    top: calc(var(--tsm-safe-top) + 72px) !important;
    right: max(8px, var(--tsm-safe-right)) !important;
    bottom: max(8px, var(--tsm-safe-bottom)) !important;
    left: auto !important;
    width: min(380px, 42vw) !important;
    max-height: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tsn-dock,
  .evm-filter-panel,
  .services-filters,
  .shops-filters,
  .pc-sidebar,
  .car-drawer {
    transition: none !important;
  }
}
