/* Customer account V2: visual layer only. Legacy ids/classes stay intact for AJAX. */
body.shop-shell-v2 .shop-account-v2 {
  width: calc(100% - 48px);
  max-width: 1440px;
  padding: 32px 20px 64px;
}

body.shop-shell-v2 .shop-account-v2__notice {
  margin: 0 0 20px;
  border: 0;
  border-left: 4px solid var(--shop-v2-main-color);
  border-radius: 16px;
  box-shadow: 0 10px 24px color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 8%, transparent);
}

body.shop-shell-v2 .shop-account-v2 > .row:first-of-type,
body.shop-shell-v2 .shop-account-v2 > .row:first-of-type > .col-md-12 {
  margin: 0;
  padding: 0;
}

body.shop-shell-v2 .shop-account-v2 .nav.nav-pills {
  display: flex;
  gap: 8px;
  margin: 0 0 0;
  padding: 4px;
  overflow-x: auto;
  border: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 12%, transparent);
  border-bottom: 0;
  border-radius: 20px 20px 0 0;
  background: color-mix(in srgb, var(--shop-v2-secondary-color) 92%, transparent);
  scrollbar-width: thin;
}

body.shop-shell-v2 .shop-account-v2 .nav.nav-pills > li {
  float: none;
  flex: 0 0 auto;
}

body.shop-shell-v2 .shop-account-v2 .nav.nav-pills > li > a,
body.shop-shell-v2 .shop-account-v2 .nav.nav-pills > li.active > a {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 13px;
  border: 0;
  background: transparent;
  color: var(--shop-v2-secondary-color-text-color);
  font-weight: 700;
  white-space: nowrap;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}

body.shop-shell-v2 .shop-account-v2 .nav.nav-pills > li > a:hover,
body.shop-shell-v2 .shop-account-v2 .nav.nav-pills > li > a:focus {
  background: color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 7%, transparent);
  color: #20313a;
}

body.shop-shell-v2 .shop-account-v2 .nav.nav-pills > li.active > a {
  background: var(--shop-v2-main-color);
  color: var(--shop-v2-main-color-text-color);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--shop-v2-main-color) 28%, transparent);
}

body.shop-shell-v2 .shop-account-v2__content {
  margin: 0;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 12%, transparent);
  border-top: 0 !important;
  border-radius: 0 0 24px 24px !important;
  box-shadow: 0 18px 45px color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 11%, transparent);
}

body.shop-shell-v2 .shop-account-v2__content > .panel-body {
  padding: clamp(18px, 3vw, 36px);
}

body.shop-shell-v2 .shop-account-v2 .tab-pane > .row,
body.shop-shell-v2 .shop-account-v2 #overview > .row {
  margin-bottom: 24px;
}

body.shop-shell-v2 .shop-account-v2 .overview-personal-info {
  gap: 18px;
  padding: 24px;
  border-radius: 20px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--shop-v2-background-color) 94%, var(--shop-v2-secondary-color)), color-mix(in srgb, var(--shop-v2-background-color) 72%, var(--shop-v2-secondary-color)));
}

body.shop-shell-v2 .shop-account-v2 .customers-bookings-title,
body.shop-shell-v2 .shop-account-v2 .customers-activity-vouchers-title,
body.shop-shell-v2 .shop-account-v2 .customers-unpaid-invoices-title,
body.shop-shell-v2 .shop-account-v2 .customers-giftcards-title {
  margin: 28px 0 14px;
  padding: 0;
  color: var(--shop-v2-product-section-title-color);
  font-size: clamp(var(--shop-v2-font-size-4xl), 2.4vw, var(--shop-v2-font-size-6xl));
  letter-spacing: -.02em;
}

body.shop-shell-v2 .shop-account-v2 table {
  border-collapse: separate;
}

body.shop-shell-v2 .shop-account-v2 table > thead > tr > th {
  border: 0;
  color: var(--shop-v2-secondary-color-text-color);
  font-size: var(--shop-v2-font-size-sm);
  letter-spacing: .06em;
  text-transform: uppercase;
}

body.shop-shell-v2 .shop-account-v2 table > tbody > tr > td {
  border-top: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 8%, transparent) !important;
  border-bottom: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 8%, transparent) !important;
}

body.shop-shell-v2 .shop-account-v2 table > tbody > tr > td:first-child {
  border-left: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 8%, transparent) !important;
  border-radius: 12px 0 0 12px;
}

body.shop-shell-v2 .shop-account-v2 table > tbody > tr > td:last-child {
  border-right: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 8%, transparent) !important;
  border-radius: 0 12px 12px 0;
}

body.shop-shell-v2 .shop-account-v2 .btn-book,
body.shop-shell-v2 .shop-account-v2 .btn-add-note,
body.shop-shell-v2 .shop-account-v2 .btn-unbook,
body.shop-shell-v2 .shop-account-v2 .btn-success,
body.shop-shell-v2 .shop-account-v2 .btn-primary {
  border: 0;
  border-radius: 12px;
  box-shadow: none;
  font-weight: 700;
}

/* Desktop card treatment for account lists. */
body.shop-shell-v2 .shop-account-v2 .bloc_customers_bookings_v2,
body.shop-shell-v2 .shop-account-v2 .customer-account-booking-list,
body.shop-shell-v2 .shop-account-v2 .bloc_customers_giftcards,
body.shop-shell-v2 .shop-account-v2 .bloc_customers_activity_vouchers_v2,
body.shop-shell-v2 .shop-account-v2 .bloc_customer_vouchers_bookable_vouchers,
body.shop-shell-v2 .shop-account-v2 .bloc_customer_dropzone_vouchers_bookable_vouchers,
body.shop-shell-v2 .shop-account-v2 [class*="_pass_bookable_vouchers"],
body.shop-shell-v2 .shop-account-v2 .bloc_customer_vouchers_about_to_expire_content,
body.shop-shell-v2 .shop-account-v2 .bloc_customer_invoices {
  padding: 4px;
  border-radius: 20px;
  background: color-mix(in srgb, var(--shop-v2-background-color) 72%, var(--shop-v2-secondary-color));
}

body.shop-shell-v2 .shop-account-v2 .bloc_customers_bookings_v2 table,
body.shop-shell-v2 .shop-account-v2 .customer-account-booking-list table,
body.shop-shell-v2 .shop-account-v2 .bloc_customers_giftcards table,
body.shop-shell-v2 .shop-account-v2 .bloc_customers_activity_vouchers_v2 table {
  margin: 0 !important;
}

body.shop-shell-v2 .shop-account-v2 table > tbody > tr.booking-activity,
body.shop-shell-v2 .shop-account-v2 table > tbody > tr.voucher-activity {
  border: 0;
  box-shadow: 0 8px 18px color-mix(in srgb, var(--shop-v2-main-color) 20%, transparent);
}

body.shop-shell-v2 .shop-account-v2 table > tbody > tr.booking-activity td,
body.shop-shell-v2 .shop-account-v2 table > tbody > tr.voucher-activity td {
  color: inherit;
  font-weight: 800;
  letter-spacing: .01em;
}

body.shop-shell-v2 .shop-account-v2 .bloc_customers_activity_vouchers_v2 > table > tbody > tr.voucher-activity {
  cursor: pointer;
}

body.shop-shell-v2 .shop-account-v2 .bloc_customers_activity_vouchers_v2 > table.is-collapsed > tbody > tr:not(.voucher-activity) {
  display: none;
}

body.shop-shell-v2 .shop-account-v2__voucher-section-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  float: right;
  width: 26px;
  height: 26px;
  margin-left: 12px;
  border: 1px solid color-mix(in srgb, var(--shop-v2-main-color-text-color) 35%, transparent);
  border-radius: 999px;
  font-size: var(--shop-v2-font-size-xl);
  font-weight: 400;
  line-height: 1;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title {
  position: relative;
  min-height: 42px;
  padding: 10px 52px 10px 12px;
  border: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 10%, transparent);
  border-radius: 16px;
}

body.shop-shell-v2 .shop-account-v2__voucher-section-button {
  position: absolute;
  top: 17px;
  right: 10px;
  width: 30px;
  height: 30px;
  margin: 0;
  border: 1px solid color-mix(in srgb, var(--shop-v2-main-color) 45%, transparent);
  border-radius: 999px;
  color: var(--shop-v2-secondary-color-text-color);
  font-size: var(--shop-v2-font-size-xl);
  line-height: 1;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row.is-collapsed > .col-md-12 > h3.panel-title {
  margin-bottom: 0;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row.is-collapsed .bloc_customer_vouchers_bookable_vouchers,
body.shop-shell-v2 .shop-account-v2 #vouchers > .row.is-collapsed .bloc_customer_dropzone_vouchers_bookable_vouchers,
body.shop-shell-v2 .shop-account-v2 #vouchers > .row.is-collapsed [class*="_pass_bookable_vouchers"] {
  display: none !important;
}

/* Voucher headers stay compact on desktop as well as on mobile. */
body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table,
body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody {
  display: table !important;
  width: 100% !important;
  table-layout: fixed;
  border-spacing: 0;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody > tr {
  display: table-row !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody > tr > td {
  display: table-cell !important;
  width: auto !important;
  min-width: 0;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  vertical-align: middle !important;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody > tr > td:first-child {
  width: 52% !important;
  padding-right: 16px !important;
  text-align: left !important;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody > tr > td:last-child {
  width: 48% !important;
  text-align: right !important;
  white-space: nowrap !important;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table .btn {
  margin: 0 !important;
  white-space: nowrap;
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 #vouchers td.text-right {
    display: flex !important;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    flex-wrap: wrap;
  }
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__mobile-actions {
    display: inline-block;
    position: relative;
  }
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__mobile-actions-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 34px;
    padding: 0 8px;
    border: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 16%, transparent);
    border-radius: 999px;
    color: var(--shop-v2-secondary-color-text-color);
    font-size: var(--shop-v2-font-size-xl);
    font-weight: 800;
    line-height: 1;
  }
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__mobile-actions-trigger:hover,
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__mobile-actions-trigger:focus,
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__mobile-actions.open .shop-account-v2__mobile-actions-trigger {
    border-color: var(--shop-v2-main-color);
    background: color-mix(in srgb, var(--shop-v2-main-color) 12%, var(--shop-v2-secondary-color));
    color: var(--shop-v2-main-color);
  }
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__mobile-actions .dropdown-menu {
    min-width: 190px;
    margin-top: 6px;
    padding: 6px;
    border: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 12%, transparent);
    border-radius: 14px;
    box-shadow: 0 16px 30px color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 16%, transparent);
  }
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__mobile-actions .dropdown-menu > li > a {
    display: block;
    width: auto !important;
    min-height: 36px;
    padding: 9px 11px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--shop-v2-secondary-color-text-color);
    white-space: normal;
  }
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__mobile-actions .dropdown-menu > li > a:hover,
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__mobile-actions .dropdown-menu > li > a:focus {
    background: color-mix(in srgb, var(--shop-v2-main-color) 10%, var(--shop-v2-secondary-color));
    color: var(--shop-v2-main-color);
  }
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 #invoices table > tbody > tr {
    grid-template-columns: minmax(88px, .34fr) minmax(0, .66fr);
    column-gap: 16px;
  }

  body.shop-shell-v2 .shop-account-v2 #invoices table > tbody > tr > td:first-child {
    font-size: var(--shop-v2-font-size-sm);
    color: color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 82%, transparent);
  }

  body.shop-shell-v2 .shop-account-v2 #invoices table > tbody > tr > td:nth-child(2) {
    min-width: 0;
  }

  body.shop-shell-v2 .shop-account-v2 #invoices table > tbody > tr > td:nth-child(2) h4 {
    margin: 0 0 10px;
    font-size: var(--shop-v2-font-size-lg);
    line-height: 1.1;
  }

  body.shop-shell-v2 .shop-account-v2 #invoices table > tbody > tr > td:nth-child(2) ul,
  body.shop-shell-v2 .shop-account-v2 #invoices table > tbody > tr > td:nth-child(2) ol {
    margin: 0;
    padding-left: 18px;
  }

  body.shop-shell-v2 .shop-account-v2 #invoices table > tbody > tr > td:nth-child(3),
  body.shop-shell-v2 .shop-account-v2 #invoices table > tbody > tr > td:last-child {
    grid-column: 1 / -1;
  }

  body.shop-shell-v2 .shop-account-v2 #invoices table > tbody > tr > td:nth-child(3) {
    padding-top: 12px !important;
    text-align: right !important;
    font-weight: 700;
  }

  body.shop-shell-v2 .shop-account-v2 #invoices table > tbody > tr > td:last-child {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    padding-top: 2px !important;
  }

  body.shop-shell-v2 .shop-account-v2 #invoices .shop-account-v2__mobile-actions-trigger {
    background: color-mix(in srgb, var(--shop-v2-main-color) 9%, var(--shop-v2-secondary-color));
  }

  /* Keep the invoice date as a compact header meta instead of a full column. */
  body.shop-shell-v2 .shop-account-v2 #invoices .bloc_customers_unpaid_invoices table > tbody > tr {
    position: relative;
    grid-template-columns: minmax(0, 1fr);
  }

  body.shop-shell-v2 .shop-account-v2 #invoices .bloc_customers_unpaid_invoices table > tbody > tr > td:first-child {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 1;
    width: auto !important;
    padding: 0 !important;
    text-align: right;
  }

  body.shop-shell-v2 .shop-account-v2 #invoices .bloc_customers_unpaid_invoices table > tbody > tr > td:nth-child(2) {
    grid-column: 1 / -1;
  }

  body.shop-shell-v2 .shop-account-v2 #invoices .bloc_customers_unpaid_invoices table > tbody > tr > td:nth-child(2) h4 {
    padding-right: 104px;
  }
}

/* Each voucher family is one panel: title + list, with no inner scroll. */
body.shop-shell-v2 .shop-account-v2 #vouchers > .row {
  margin: 0 0 20px !important;
  padding: 0 !important;
  border: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 10%, transparent);
  border-radius: 20px;
  background: color-mix(in srgb, var(--shop-v2-background-color) 72%, var(--shop-v2-secondary-color));
  box-shadow: 0 10px 24px color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 7%, transparent);
  overflow: visible !important;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 {
  padding: 0 !important;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title {
  margin: 0 !important;
  min-height: 62px;
  padding: 16px 56px 16px 20px;
  border: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 9%, transparent);
  border-radius: 20px 20px 0 0 !important;
  background: transparent;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > br {
  display: none;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > .bloc_customer_vouchers_bookable_vouchers,
body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > .bloc_customer_dropzone_vouchers_bookable_vouchers,
body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > [class*="_pass_bookable_vouchers"] {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: 12px !important;
  border: 0;
  border-radius: 0 0 20px 20px;
  background: transparent;
  box-shadow: none;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row.is-collapsed > .col-md-12 > h3.panel-title {
  border-bottom: 0;
  border-radius: 20px !important;
}

/* Voucher families live directly inside the My vouchers panel. */
body.shop-shell-v2 .shop-account-v2 #vouchers > .row {
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title,
body.shop-shell-v2 .shop-account-v2 #vouchers > .row.is-collapsed > .col-md-12 > h3.panel-title {
  min-height: 58px;
  padding: 16px 56px 16px 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table,
body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody,
body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table tr,
body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table td {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > .bloc_customer_vouchers_bookable_vouchers,
body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > .bloc_customer_dropzone_vouchers_bookable_vouchers,
body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > [class*="_pass_bookable_vouchers"] {
  padding: 0 0 24px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

/* My bookings uses the same flat section treatment as My vouchers. */
body.shop-shell-v2 .shop-account-v2 #bookings > .row {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

body.shop-shell-v2 .shop-account-v2 #bookings > .row > .col-md-12 {
  padding: 0 !important;
}

body.shop-shell-v2 .shop-account-v2 #bookings > .row > .col-md-12 > h3.panel-title,
body.shop-shell-v2 .shop-account-v2 #bookings > .row.is-collapsed > .col-md-12 > h3.panel-title {
  position: relative;
  min-height: 58px;
  margin: 0 !important;
  padding: 16px 56px 16px 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 #bookings > .row > .col-md-12 > br {
  display: none;
}

body.shop-shell-v2 .shop-account-v2 #bookings > .row > .col-md-12 > .bloc_customer_bookings,
body.shop-shell-v2 .shop-account-v2 #bookings > .row > .col-md-12 > .bloc_customer_dz_bookings,
body.shop-shell-v2 .shop-account-v2 #bookings > .row > .col-md-12 > .customer-account-booking-list,
body.shop-shell-v2 .shop-account-v2 #bookings > .row > .col-md-12 > .bloc_customer_hotel_rooms_bookings {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: 0 0 24px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 #bookings > .row.is-collapsed > .col-md-12 > h3.panel-title {
  border-bottom: 0;
}

body.shop-shell-v2 .shop-account-v2 #bookings > .row.is-collapsed .bloc_customer_bookings,
body.shop-shell-v2 .shop-account-v2 #bookings > .row.is-collapsed .bloc_customer_dz_bookings,
body.shop-shell-v2 .shop-account-v2 #bookings > .row.is-collapsed .customer-account-booking-list,
body.shop-shell-v2 .shop-account-v2 #bookings > .row.is-collapsed .bloc_customer_hotel_rooms_bookings {
  display: none !important;
}

body.shop-shell-v2 .shop-account-v2 #bookings .display-more-link,
body.shop-shell-v2 .shop-account-v2 #bookings a[onclick*="bloc_customer_bookings(true)"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px 18px;
  border: 1px solid color-mix(in srgb, var(--shop-v2-main-color) 32%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--shop-v2-main-color) 8%, var(--shop-v2-secondary-color));
  color: var(--shop-v2-main-color);
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

body.shop-shell-v2 .shop-account-v2 #bookings .display-more-link:hover,
body.shop-shell-v2 .shop-account-v2 #bookings .display-more-link:focus,
body.shop-shell-v2 .shop-account-v2 #bookings a[onclick*="bloc_customer_bookings(true)"]:hover,
body.shop-shell-v2 .shop-account-v2 #bookings a[onclick*="bloc_customer_bookings(true)"]:focus {
  border-color: var(--shop-v2-main-color);
  background: color-mix(in srgb, var(--shop-v2-main-color) 15%, var(--shop-v2-secondary-color));
  transform: translateY(-1px);
}

/* My invoices fills the tab content directly: no nested panel or scroll area. */
body.shop-shell-v2 .shop-account-v2 #invoices {
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
}

body.shop-shell-v2 .shop-account-v2 #invoices > .row {
  width: 100%;
  margin: 0 0 24px !important;
  padding: 0 !important;
}

body.shop-shell-v2 .shop-account-v2 #invoices > .row > .col-md-12 {
  width: 100%;
  padding: 0 !important;
}

body.shop-shell-v2 .shop-account-v2 #invoices .panel,
body.shop-shell-v2 .shop-account-v2 #invoices .panel-body {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 #invoices .bloc_customer_invoices,
body.shop-shell-v2 .shop-account-v2 #invoices .bloc_customer_third_parties_payments,
body.shop-shell-v2 .shop-account-v2 #invoices .bloc_customers_unpaid_invoices,
body.shop-shell-v2 .shop-account-v2 #invoices .bloc_customer_orders,
body.shop-shell-v2 .shop-account-v2 #invoices .bloc_customer_backlogs {
  width: 100%;
  max-height: none !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 #invoices .bloc_customer_invoices > h3,
body.shop-shell-v2 .shop-account-v2 #invoices .bloc_customer_third_parties_payments > h3,
body.shop-shell-v2 .shop-account-v2 #invoices > .row > .col-md-12 > h3 {
  margin: 0 0 18px;
  padding: 0;
  color: var(--shop-v2-product-section-title-color);
}

body.shop-shell-v2 .shop-account-v2 #invoices table {
  width: 100% !important;
  max-width: none;
  margin: 0 !important;
}

/* Keep invoice status colors consistent with the V1 account view. */
body.shop-shell-v2 .shop-account-v2 #invoices .bloc_customers_unpaid_invoices td.text-danger {
  color: #a94442 !important;
}

body.shop-shell-v2 .shop-account-v2 #invoices .bloc_customers_unpaid_invoices td.text-warning {
  color: #8a6d3b !important;
}

body.shop-shell-v2 .shop-account-v2 #invoices .bloc_customers_unpaid_invoices td.text-success {
  color: #3c763d !important;
}

body.shop-shell-v2 .shop-account-v2 .bloc_customers_unpaid_invoices tr.danger > td {
  background: #f2dede !important;
}

body.shop-shell-v2 .shop-account-v2 .bloc_customers_unpaid_invoices td .shop-account-v2__invoice-pay-button {
  border: 0 !important;
  border-radius: 999px;
  background: var(--shop-v2-buy-buttons-bg-color) !important;
  color: var(--shop-v2-buy-buttons-text-color) !important;
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0 12px;
    margin: 0 0 16px;
    padding: 16px !important;
    background: var(--shop-v2-secondary-color) !important;
    border: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 10%, transparent) !important;
    border-radius: 14px;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr.invoice-status-unpaid {
    background: #f2dede !important;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr > td {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr > td:first-child {
    position: absolute;
    top: 16px;
    right: 16px;
    width: auto !important;
    text-align: right;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr > td:nth-child(2) {
    grid-column: 1 / -1;
    padding-top: 30px !important;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr > td:nth-child(2) h4 {
    margin: 0 0 10px;
    padding-right: 110px;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr > td:nth-child(3) {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    padding-top: 18px !important;
    text-align: right !important;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr > td:last-child {
    grid-column: 2;
    display: flex;
    justify-content: flex-end;
    padding-top: 12px !important;
  }
}

body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .invoice-status-unpaid > td {
  background-color: #f2dede !important;
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0 12px;
    margin: 0 0 16px;
    padding: 16px !important;
    background: var(--shop-v2-secondary-color) !important;
    border: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 10%, transparent) !important;
    border-radius: 14px;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr.invoice-status-unpaid {
    background: #f2dede !important;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr > td {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr > td:first-child {
    position: absolute;
    top: 16px;
    right: 16px;
    width: auto !important;
    font-size: var(--shop-v2-font-size-sm);
    text-align: right;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr > td:nth-child(2) {
    grid-column: 1 / -1;
    padding-top: 30px !important;
    padding-right: 0 !important;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr > td:nth-child(2) h4 {
    margin: 0 0 10px;
    padding-right: 110px;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr > td:nth-child(3) {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    padding-top: 18px !important;
    text-align: right !important;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_overview_unpaid_invoices .bloc_customers_unpaid_invoices table > tbody > tr > td:last-child {
    grid-column: 2;
    display: flex;
    justify-content: flex-end;
    padding-top: 12px !important;
  }
}

body.shop-shell-v2 .shop-account-v2 .bloc_customers_unpaid_invoices td .shop-account-v2__invoice-pay-button {
  border: 0 !important;
  border-radius: 999px;
  background: var(--shop-v2-buy-buttons-bg-color) !important;
  color: var(--shop-v2-buy-buttons-text-color) !important;
}

body.shop-shell-v2 .shop-account-v2 .bloc_customers_unpaid_invoices td .shop-account-v2__invoice-pay-button {
  margin-left: 8px;
  vertical-align: middle;
  border: 0 !important;
  border-radius: 999px;
  background: var(--shop-v2-buy-buttons-bg-color) !important;
  color: var(--shop-v2-buy-buttons-text-color) !important;
  font-weight: 800;
  box-shadow: 0 5px 12px color-mix(in srgb, var(--shop-v2-buy-buttons-bg-color) 22%, transparent);
}

/* Overview upcoming bookings: use the same direct section/list relationship as vouchers. */
body.shop-shell-v2 .shop-account-v2 #overview #row_customer_overview_bookings,
body.shop-shell-v2 .shop-account-v2 #overview [id^="row_customer_overview_bookings_"] {
  margin-right: 0 !important;
  margin-left: 0 !important;
}

body.shop-shell-v2 .shop-account-v2 #overview #row_customer_overview_bookings > .col-md-12,
body.shop-shell-v2 .shop-account-v2 #overview [id^="row_customer_overview_bookings_"] > .col-md-12 {
  padding: 0 !important;
}

body.shop-shell-v2 .shop-account-v2 #overview .bloc_customers_bookings_v2,
body.shop-shell-v2 .shop-account-v2 #overview .customer-account-booking-list,
body.shop-shell-v2 .shop-account-v2 #overview .bloc_customer_dz_bookings_v2,
body.shop-shell-v2 .shop-account-v2 #overview .bloc_customer_hotel_rooms_bookings_v2 {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 #overview .bloc_customers_bookings_v2 table,
body.shop-shell-v2 .shop-account-v2 #overview .customer-account-booking-list table,
body.shop-shell-v2 .shop-account-v2 #overview .bloc_customer_dz_bookings_v2 table,
body.shop-shell-v2 .shop-account-v2 #overview .bloc_customer_hotel_rooms_bookings_v2 table {
  width: 100% !important;
  margin: 0 !important;
}

body.shop-shell-v2 .shop-account-v2 #overview table > tbody > tr.booking-activity {
  background: transparent !important;
  color: var(--shop-v2-product-section-title-color) !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 #overview table > tbody > tr.booking-activity td {
  padding: 16px 0 12px !important;
  border: 0 !important;
  border-bottom: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 10%, transparent) !important;
  color: var(--shop-v2-product-section-title-color) !important;
  font-size: var(--shop-v2-font-size-xl);
  font-weight: 800;
  text-align: left !important;
}

/* Compact modern actions inside booking and voucher cards. */
body.shop-shell-v2 .shop-account-v2 td.booking-actions,
body.shop-shell-v2 .shop-account-v2 td.text-right {
  vertical-align: middle !important;
}

body.shop-shell-v2 .shop-account-v2 td.booking-actions a:not(.btn),
body.shop-shell-v2 .shop-account-v2 td.text-right a:not(.btn) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin: 2px 0 2px 6px;
  padding: 0;
  border-radius: 11px;
  color: #3c3f3f;
  text-decoration: none;
  vertical-align: middle;
  transition: transform .18s ease, border-color .18s ease, color .18s ease, background .18s ease;
}

body.shop-shell-v2 .shop-account-v2 td.booking-actions a:not(.btn):hover,
body.shop-shell-v2 .shop-account-v2 td.text-right a:not(.btn):hover {
  transform: translateY(-1px);
  border-color: var(--shop-v2-main-color);
  background: color-mix(in srgb, var(--shop-v2-main-color) 12%, var(--shop-v2-secondary-color));
  color: #3c3f3f;
}

body.shop-shell-v2 .shop-account-v2 a.shop-account-v2__action-text {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-width: 0;
  height: auto;
  min-height: 34px;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: var(--shop-v2-font-size-sm);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
  box-sizing: border-box;
}

body.shop-shell-v2 .shop-account-v2 .dropdown-menu .glyphicon,
body.shop-shell-v2 .shop-account-v2 .dropdown-menu .glyphicons {
  display: none;
}

body.shop-shell-v2 .shop-account-v2 td.booking-actions .btn,
body.shop-shell-v2 .shop-account-v2 td.text-right .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  margin: 2px 0 2px 6px;
  padding: 7px 13px;
  border: 0;
  border-radius: 999px;
  background: var(--shop-v2-buy-buttons-bg-color);
  color: var(--shop-v2-buy-buttons-text-color);
  font-size: var(--shop-v2-font-size-sm);
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
  box-sizing: border-box;
  box-shadow: 0 5px 12px color-mix(in srgb, var(--shop-v2-buy-buttons-bg-color) 22%, transparent);
}

body.shop-shell-v2 .shop-account-v2 td.booking-actions .btn:hover,
body.shop-shell-v2 .shop-account-v2 td.text-right .btn:hover {
  transform: translateY(-1px);
  filter: brightness(1.04);
}

body.shop-shell-v2 .shop-account-v2 td.booking-actions .circle-button-container,
body.shop-shell-v2 .shop-account-v2 td.text-right .circle-button-container {
  display: inline-flex;
  vertical-align: middle;
}

body.shop-shell-v2 .shop-account-v2 table > tbody > tr:not(.booking-activity):not(.voucher-activity):not(.order-activity):not(.no-booking-message) {
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

body.shop-shell-v2 .shop-account-v2 table > tbody > tr:not(.booking-activity):not(.voucher-activity):not(.order-activity):not(.no-booking-message):hover {
  position: relative;
  z-index: 1;
  transform: translateY(-1px);
  box-shadow: 0 10px 22px color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 10%, transparent);
}

body.shop-shell-v2 .shop-account-v2 table > tbody > tr > td {
  padding: 13px 12px !important;
  color: #20313a;
  line-height: 1.45;
}

body.shop-shell-v2 .shop-account-v2 table > tbody > tr > td:first-child {
  padding-left: 16px !important;
}

body.shop-shell-v2 .shop-account-v2 table > tbody > tr > td:last-child {
  padding-right: 16px !important;
}

body.shop-shell-v2 .shop-account-v2 .booking-actions,
body.shop-shell-v2 .shop-account-v2 td.text-right {
  white-space: nowrap;
}

body.shop-shell-v2 .shop-account-v2 .rounded-dropdown-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  min-width: 38px;
  height: 34px;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 14%, transparent);
  border-radius: 999px;
  color: var(--shop-v2-secondary-color-text-color);
  font-size: var(--shop-v2-font-size-sm);
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

body.shop-shell-v2 .shop-account-v2 .circle-button-container .dropdown-menu {
  top: calc(100% + 6px);
  right: 0;
  left: auto;
  min-width: 170px;
  margin-top: 0;
  padding: 6px;
  border: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 12%, transparent);
  border-radius: 14px;
  box-shadow: 0 16px 30px color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 16%, transparent);
}

body.shop-shell-v2 .shop-account-v2 .circle-button-container .dropdown-menu > li > a {
  display: block;
  width: 100%;
  height: auto;
  min-height: 36px;
  margin: 0;
  padding: 9px 11px;
  border-radius: 9px;
  white-space: normal;
  box-sizing: border-box;
}

body.shop-shell-v2 .shop-account-v2 .rounded-dropdown-button:hover,
body.shop-shell-v2 .shop-account-v2 .rounded-dropdown-button:focus {
  border-color: var(--shop-v2-main-color);
  color: var(--shop-v2-main-color);
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 {
    width: calc(100% - 20px);
    padding: 16px 10px 40px;
  }
  body.shop-shell-v2 .shop-account-v2 .nav.nav-pills { display: none; }
  body.shop-shell-v2 .shop-account-v2__content { border: 0; background: transparent; box-shadow: none; overflow: visible; }
  body.shop-shell-v2 .shop-account-v2__content > .panel-body { padding: 0; }
  body.shop-shell-v2 .shop-account-v2--accordion .tab-content { display: block; }
  body.shop-shell-v2 .shop-account-v2--accordion .shop-account-v2__accordion-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 8px;
    padding: 17px 18px;
    border: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 12%, transparent);
    border-radius: 16px;
    color: var(--shop-v2-secondary-color-text-color);
    font-size: var(--shop-v2-font-size-xl);
    font-weight: 700;
    text-align: left;
    background: color-mix(in srgb, var(--shop-v2-main-color) 70%, transparent);
    box-shadow: 0 8px 20px color-mix(in srgb, var(--shop-v2-main-color) 7%, transparent);
  }
  body.shop-shell-v2 .shop-account-v2--accordion .shop-account-v2__accordion-trigger.is-open {
    margin-bottom: 0;
    border-color: var(--shop-v2-main-color);
    border-radius: 16px 16px 0 0;
    background: var(--shop-v2-main-color);
    color: var(--shop-v2-main-color-text-color);
  }
  body.shop-shell-v2 .shop-account-v2__accordion-label { min-width: 0; }
  body.shop-shell-v2 .shop-account-v2__accordion-icon {
    flex: 0 0 auto;
    font-size: var(--shop-v2-font-size-4xl);
    font-weight: 400;
    line-height: 1;
  }
  body.shop-shell-v2 .shop-account-v2__accordion-trigger.is-open .shop-account-v2__accordion-icon { transform: rotate(45deg); }
  body.shop-shell-v2 .shop-account-v2--accordion .shop-account-v2__accordion-panel {
    display: none;
    margin: 0 0 8px;
    padding: 18px 12px 12px;
    border: 1px solid color-mix(in srgb, var(--shop-v2-main-color) 32%, transparent);
    border-top: 0;
    border-radius: 0 0 16px 16px;
  }
  body.shop-shell-v2 .shop-account-v2--accordion .shop-account-v2__accordion-panel.is-open { display: block !important; }
  body.shop-shell-v2 .shop-account-v2 .overview-personal-info { padding: 16px 10px; }
  body.shop-shell-v2 .shop-account-v2 .table-responsive { border: 0; }
  body.shop-shell-v2 .shop-account-v2,
  body.shop-shell-v2 .shop-account-v2__content,
  body.shop-shell-v2 .shop-account-v2 .tab-pane {
    max-width: 100%;
    overflow-x: hidden;
  }
  body.shop-shell-v2 .shop-account-v2 .row {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  body.shop-shell-v2 .shop-account-v2 table {
    display: block;
    width: 100% !important;
    max-width: 100%;
    overflow: visible;
    border-spacing: 0;
  }
  body.shop-shell-v2 .shop-account-v2 table > tbody,
  body.shop-shell-v2 .shop-account-v2 table > thead {
    display: block;
    width: 100%;
  }
  body.shop-shell-v2 .shop-account-v2 table > thead {
    display: none;
  }
  body.shop-shell-v2 .shop-account-v2 table > tbody > tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 14px;
    width: 100%;
    margin: 0 0 10px;
    padding: 12px;
    border: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 10%, transparent);
    border-radius: 16px;
    box-shadow: 0 6px 16px color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 6%, transparent);
  }
  body.shop-shell-v2 .shop-account-v2 table > tbody > tr > td {
    display: block;
    width: auto !important;
    min-width: 0;
    padding: 5px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent;
    overflow-wrap: anywhere;
    word-break: normal;
    white-space: normal !important;
    vertical-align: top !important;
  }
  body.shop-shell-v2 .shop-account-v2 table > tbody > tr > td:last-child,
  body.shop-shell-v2 .shop-account-v2 table > tbody > tr > td.booking-actions,
  body.shop-shell-v2 .shop-account-v2 table > tbody > tr > td.booking-see-more-message {
    grid-column: 1 / -1;
  }
  body.shop-shell-v2 .shop-account-v2 table > tbody > tr > td.booking-see-more-message {
    padding: 10px 0 0 !important;
    text-align: center;
  }
  body.shop-shell-v2 .shop-account-v2 table > tbody > tr > td[colspan] {
    grid-column: 1 / -1;
  }
  body.shop-shell-v2 .shop-account-v2 table > tbody > tr:has(th) {
    display: none;
  }
  body.shop-shell-v2 .shop-account-v2 table > tbody > tr.booking-activity,
  body.shop-shell-v2 .shop-account-v2 table > tbody > tr.voucher-activity {
    display: block;
    margin: 14px 0 8px;
    padding: 12px 14px;
    border: 0;
    border-radius: 12px;
    box-shadow: none;
    color: var(--shop-v2-product-section-title-color);
    text-align: left;
  }
  body.shop-shell-v2 .shop-account-v2 table > tbody > tr.booking-activity td,
  body.shop-shell-v2 .shop-account-v2 table > tbody > tr.voucher-activity td {
    display: block;
    padding: 0 !important;
    font-weight: 800;
    text-align: left !important;
  }
  body.shop-shell-v2 .shop-account-v2 .bloc_customers_giftcards table > tbody > tr > td:last-child {
    grid-column: 1 / -1;
  }
  body.shop-shell-v2 .shop-account-v2 .bloc_customers_giftcards .copy-giftcard {
    float: right;
  }
  body.shop-shell-v2 .shop-account-v2 .voucher-activity-header {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: space-between;
  }
  body.shop-shell-v2 .shop-account-v2 .voucher-activity-header-activity {
    width: auto;
  }
  body.shop-shell-v2 .shop-account-v2 .booking-button {
    margin-left: auto;
  }
  body.shop-shell-v2 .shop-account-v2 .bloc_customer_invoices,
  body.shop-shell-v2 .shop-account-v2 .bloc_customer_third_parties_payments {
    margin-right: 0 !important;
    margin-left: 0 !important;
    overflow: visible !important;
  }
  /* Keep the level table on its original desktop layout. */
  body.shop-shell-v2 .shop-account-v2 #level {
    overflow-x: auto;
  }
  body.shop-shell-v2 .shop-account-v2 #level table {
    display: table;
    width: 100% !important;
    max-width: none;
    table-layout: auto;
  }
  body.shop-shell-v2 .shop-account-v2 #level table > thead {
    display: table-header-group;
  }
  body.shop-shell-v2 .shop-account-v2 #level table > tbody {
    display: table-row-group;
  }
  body.shop-shell-v2 .shop-account-v2 #level table > thead > tr,
  body.shop-shell-v2 .shop-account-v2 #level table > tbody > tr,
  body.shop-shell-v2 .shop-account-v2 #level table > tbody > tr:has(th) {
    display: table-row !important;
    width: auto;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  body.shop-shell-v2 .shop-account-v2 #level table > thead > tr > th,
  body.shop-shell-v2 .shop-account-v2 #level table > tbody > tr > td {
    display: table-cell;
    width: auto !important;
    min-width: 0;
    padding: 8px !important;
    border: 0 !important;
    border-top: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 12%, transparent) !important;
    border-radius: 0 !important;
    background: transparent;
    white-space: nowrap !important;
    overflow-wrap: normal;
  }
}


@media (max-width: 767px) {
  /* Keep section titles readable without turning them into extra cards. */
  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title,
  body.shop-shell-v2 .shop-account-v2 #bookings > .row > .col-md-12 > h3.panel-title {
    min-height: 52px;
    margin: 0 !important;
    padding: 15px 48px 12px 10px;
    border: 0 !important;
    border-radius: 14px 14px 0 0 !important;
    background: color-mix(in srgb, var(--shop-v2-main-color) 7%, transparent) !important;
    color: var(--shop-v2-product-section-title-color);
    font-size: var(--shop-v2-font-size-xl);
    line-height: 1.25;
  }

  body.shop-shell-v2 .shop-account-v2 #vouchers > .row + .row,
  body.shop-shell-v2 .shop-account-v2 #bookings > .row + .row {
    border-top: 0 !important;
  }

  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table {
    margin: 0;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .bloc_customers_giftcards {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .bloc_customers_giftcards table {
    margin: 0 !important;
    border-spacing: 0;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .bloc_customers_giftcards table > tbody > tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 14px;
    margin: 0 0 10px;
    padding: 16px;
    border: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 9%, transparent);
    border-radius: 16px;
    box-shadow: 0 7px 16px color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 6%, transparent);
  }

  body.shop-shell-v2 .shop-account-v2 #overview .bloc_customers_giftcards table > tbody > tr > td {
    min-width: 0;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    line-height: 1.45;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .bloc_customers_giftcards table > tbody > tr > td:nth-child(1) {
    grid-column: 1;
    text-align: left !important;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .bloc_customers_giftcards table > tbody > tr > td:nth-child(2) {
    grid-column: 2;
    text-align: right !important;
    white-space: nowrap !important;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .bloc_customers_giftcards table > tbody > tr > td:nth-child(3) {
    grid-column: 1 / -1;
    padding-top: 8px !important;
    border-top: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 8%, transparent) !important;
    text-align: left !important;
    overflow-wrap: anywhere;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .bloc_customers_giftcards .copy-giftcard {
    float: right;
    margin-left: 8px;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_quick_bookings_v2,
  body.shop-shell-v2 .shop-account-v2 #row_customer_voucher_book_v2,
  body.shop-shell-v2 .shop-account-v2 #row_customer_voucher_book_v2 > .col-md-12 {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_voucher_book_v2 table {
    margin: 0 !important;
    border: 0 !important;
    border-spacing: 0 8px;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_voucher_book_v2 table > tbody {
    display: table-row-group;
    border: 0 !important;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_voucher_book_v2 table > tbody > tr {
    display: table-row;
    margin: 0;
    padding: 0;
    border: 0 !important;
    border-radius: 0;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_voucher_book_v2 table > tbody > tr > td {
    display: table-cell;
    padding: 12px 8px !important;
    border: 0 !important;
    vertical-align: middle !important;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_voucher_book_v2 table > tbody > tr > td:first-child {
    border-radius: 14px 0 0 14px;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_voucher_book_v2 table > tbody > tr > td:last-child {
    border-radius: 0 14px 14px 0;
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_voucher_book_v2 table > tbody > tr > td:nth-child(2) {
    width: 32px;
    text-align: center !important;
    font-weight: 800;
  }

  body.shop-shell-v2 .shop-account-v2 #overview table > tbody > tr.booking-activity {
    display: block;
    margin: 20px 0 8px;
    padding: 11px 12px;
    border: 0 !important;
    border-left: 4px solid var(--shop-v2-main-color) !important;
    border-radius: 8px;
    background: color-mix(in srgb, var(--shop-v2-main-color) 9%, var(--shop-v2-secondary-color)) !important;
    color: var(--shop-v2-product-section-title-color) !important;
    box-shadow: none !important;
    text-align: left;
  }

  body.shop-shell-v2 .shop-account-v2 #overview table > tbody > tr.booking-activity td {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    font-size: var(--shop-v2-font-size-lg);
    line-height: 1.25;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .customer-account-booking-list table > tbody > tr:not(.booking-activity),
  body.shop-shell-v2 .shop-account-v2 #overview .bloc_customers_bookings_v2 table > tbody > tr:not(.booking-activity),
  body.shop-shell-v2 .shop-account-v2 #overview .bloc_customer_dz_bookings_v2 table > tbody > tr:not(.booking-activity),
  body.shop-shell-v2 .shop-account-v2 #overview .bloc_customer_hotel_rooms_bookings_v2 table > tbody > tr:not(.booking-activity) {
    margin-bottom: 12px;
    padding: 14px;
    border-radius: 16px;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .booking-button {
    min-height: 34px;
    padding: 8px 12px;
    border-radius: 999px;
  }
}

@keyframes shop-account-v2-skeleton-shimmer {
  0% { background-position: -420px 0, 0 0, 0 0, 0 0; }
  100% { background-position: 420px 0, 0 0, 0 0, 0 0; }
}

body.shop-shell-v2 .shop-account-v2 .bloc_customer_vouchers_bookable_vouchers:empty,
body.shop-shell-v2 .shop-account-v2 .bloc_customer_dropzone_vouchers_bookable_vouchers:empty,
body.shop-shell-v2 .shop-account-v2 [class*="_pass_bookable_vouchers"]:empty,
body.shop-shell-v2 .shop-account-v2 .bloc_customer_bookings:empty,
body.shop-shell-v2 .shop-account-v2 .bloc_customer_dz_bookings:empty,
body.shop-shell-v2 .shop-account-v2 .customer-account-booking-list:empty,
body.shop-shell-v2 .shop-account-v2 .bloc_customer_hotel_rooms_bookings:empty,
body.shop-shell-v2 .shop-account-v2 .bloc_customer_invoices:empty,
body.shop-shell-v2 .shop-account-v2 .bloc_customer_down_payments:empty,
body.shop-shell-v2 .shop-account-v2 .bloc_customer_orders:empty,
body.shop-shell-v2 .shop-account-v2 .bloc_customer_level:empty {
  display: block;
  min-height: 180px;
  margin: 0 !important;
  padding: 18px !important;
  border-radius: 16px;
  background-color: var(--shop-v2-background-color);
  background-image:
    linear-gradient(90deg,
      color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 8%, transparent),
      color-mix(in srgb, var(--shop-v2-background-color) 80%, transparent),
      color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 8%, transparent)),
    linear-gradient(var(--shop-v2-secondary-color-text-color), var(--shop-v2-secondary-color-text-color)),
    linear-gradient(var(--shop-v2-secondary-color-text-color), var(--shop-v2-secondary-color-text-color)),
    linear-gradient(var(--shop-v2-secondary-color-text-color), var(--shop-v2-secondary-color-text-color));
  background-size: 420px 100%, 32% 12px, 76% 12px, 58% 12px;
  background-position: -420px 0, 18px 28px, 18px 62px, 18px 96px;
  background-repeat: no-repeat;
  animation: shop-account-v2-skeleton-shimmer 1.35s ease-in-out infinite;
  opacity: .72;
}

body.shop-shell-v2 .shop-account-v2 .bloc_customer_invoices:empty {
  min-height: 230px;
}

body.shop-shell-v2 .shop-account-v2 .bloc_customer_level:empty {
  min-height: 260px;
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 #overview .customers-bookings-title,
  body.shop-shell-v2 .shop-account-v2 #overview .customers-activity-vouchers-title,
  body.shop-shell-v2 .shop-account-v2 #overview .customers-giftcards-title {
    margin: 22px 0 12px;
    padding: 0 0 9px;
    border-bottom: 2px solid color-mix(in srgb, var(--shop-v2-main-color) 38%, transparent);
    color: var(--shop-v2-product-section-title-color);
    font-size: var(--shop-v2-font-size-2xl);
    line-height: 1.2;
  }

  /* Voucher headers contain a legacy table: keep it as a compact two-column header. */
  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table,
  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody {
    display: table !important;
    width: 100% !important;
    table-layout: fixed;
    border-spacing: 0;
  }

  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody > tr {
    display: table-row !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody > tr > td {
    display: table-cell !important;
    width: auto !important;
    min-width: 0;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    vertical-align: middle !important;
    white-space: normal !important;
  }

  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody > tr > td:first-child {
    width: 52% !important;
    padding-right: 10px !important;
    text-align: left !important;
    overflow-wrap: normal;
  }

  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody > tr > td:last-child {
    width: 48% !important;
    text-align: right !important;
    white-space: nowrap !important;
  }

  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table .btn {
    min-height: 34px;
    margin: 0 !important;
    padding: 8px 12px;
    border-radius: 999px;
    white-space: nowrap;
  }
}

@media (min-width: 768px) {
  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title {
    min-height: 58px;
    padding: 16px 56px 16px 0;
    border: 0 !important;
    border-radius: 14px 14px 0 0 !important;
    background: color-mix(in srgb, var(--shop-v2-main-color) 7%, transparent) !important;
    color: var(--shop-v2-product-section-title-color);
  }

  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table,
  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody {
    display: table !important;
    width: 100% !important;
    table-layout: fixed;
    border-spacing: 0;
  }

  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody > tr {
    display: table-row !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody > tr > td {
    display: table-cell !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    vertical-align: middle !important;
  }

  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody > tr > td:first-child {
    width: 52% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    text-align: left !important;
  }

  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table > tbody > tr > td:last-child {
    width: 48% !important;
    text-align: right !important;
    white-space: nowrap !important;
  }

  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.panel-title > table .btn {
    margin: 0 !important;
    white-space: nowrap;
  }
}

/* Shared account components: every V2 section can inherit the voucher treatment. */
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 64px;
  margin: 0 !important;
  padding: 14px 18px;
  border: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 12%, transparent) !important;
  border-radius: 14px 14px 0 0 !important;
  background: var(--shop-v2-secondary-color) !important;
  color: var(--shop-v2-secondary-color-text-color);
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header-title {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0 !important;
  text-align: left !important;
  font-size: var(--shop-v2-font-size-2xl);
  font-weight: 800;
  line-height: 1.2;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: 0;
  text-align: right !important;
  white-space: nowrap !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-list {
  width: 100%;
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 0 14px 14px;
  background: var(--shop-v2-background-color);
  box-shadow: none;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-list > table {
  width: 100% !important;
  margin: 0 !important;
  border-collapse: separate;
  border-spacing: 0 7px;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-list > table > thead > tr > th {
  padding: 0 8px 5px !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--shop-v2-secondary-color-text-color);
  font-size: var(--shop-v2-font-size-sm);
  font-weight: 800;
  letter-spacing: .02em;
  text-align: left;
  text-transform: none;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-list > table > tbody > tr:not(.booking-activity):not(.voucher-activity) {
  transition: transform .18s ease, box-shadow .18s ease;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-list > table > tbody > tr:not(.booking-activity):not(.voucher-activity) > td {
  padding: 13px 12px !important;
  border-top: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 9%, transparent) !important;
  border-bottom: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 9%, transparent) !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-list > table > tbody > tr:not(.booking-activity):not(.voucher-activity) > td:first-child {
  padding-left: 16px !important;
  border-left: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 9%, transparent) !important;
  border-radius: 14px 0 0 14px;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-list > table > tbody > tr:not(.booking-activity):not(.voucher-activity) > td:last-child {
  padding-right: 16px !important;
  border-right: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 9%, transparent) !important;
  border-radius: 0 14px 14px 0;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-list > table > tbody > tr:not(.booking-activity):not(.voucher-activity):hover {
  position: relative;
  z-index: 1;
  transform: translateY(-1px);
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header {
    min-height: 52px;
    padding: 14px 14px;
    gap: 12px;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header-title {
    flex: 1 1 auto;
    padding: 0 !important;
    font-size: var(--shop-v2-font-size-xl);
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header-actions {
    flex: 0 0 auto;
    gap: 6px;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header-actions .btn {
    min-height: 34px;
    margin: 0 !important;
    padding: 8px 12px;
    border-radius: 999px;
    white-space: nowrap;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-list > table {
    border-spacing: 0;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-list > table > tbody > tr:not(.booking-activity):not(.voucher-activity) > td {
    padding: 5px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-list > table > tbody > tr:not(.booking-activity):not(.voucher-activity) > td:first-child,
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-list > table > tbody > tr:not(.booking-activity):not(.voucher-activity) > td:last-child {
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
  }
}

/* Component styles must win over the legacy tab-specific selectors. */
body.shop-shell-v2 .shop-account-v2 #bookings > .row > .col-md-12 > h3.shop-account-v2__section-header,
body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.shop-account-v2__section-header {
  position: relative;
  min-height: 58px;
  margin: 0 !important;
  padding: 16px 56px 16px 0;
  border: 0 !important;
  border-radius: 14px 14px 0 0 !important;
  background: color-mix(in srgb, var(--shop-v2-main-color) 7%, transparent) !important;
  color: var(--shop-v2-product-section-title-color);
  box-shadow: none !important;
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 #bookings > .row > .col-md-12 > h3.shop-account-v2__section-header,
  body.shop-shell-v2 .shop-account-v2 #vouchers > .row > .col-md-12 > h3.shop-account-v2__section-header {
    min-height: 52px;
    padding: 15px 48px 12px 10px;
    border: 0 !important;
    border-radius: 14px 14px 0 0 !important;
  }
}

/* Styles extracted from page_customer_account_v3.php. Keep these rules V2-only. */
body.shop-shell-v2 .shop-account-v2 .nav-pills > li.active > a,
body.shop-shell-v2 .shop-account-v2 .nav-pills > li.active > a:focus,
body.shop-shell-v2 .shop-account-v2 .nav-pills > li.active > a:hover {
  color: var(--main-color-text-color, #000);
  background-color: var(--main-color, #43C7F2);
}

body.shop-shell-v2 .shop-account-v2 .nav-pills > li > a,
body.shop-shell-v2 .shop-account-v2 .nav-pills > li > a:focus,
body.shop-shell-v2 .shop-account-v2 .nav-pills > li > a:hover {
  color: var(--secondary-color-text-color);
  background-color: var(--secondary-color);
}

body.shop-shell-v2 .shop-account-v2 .share-my-voucher:hover { cursor: pointer; }
body.shop-shell-v2 .shop-account-v2 .levelcheck_badge { margin-left: 0 !important; }
body.shop-shell-v2 .shop-account-v2 a#request-tooltip { text-decoration: none; color: #333; }
body.shop-shell-v2 .shop-account-v2 .no-break { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.shop-shell-v2 .shop-account-v2 .full-height { height: 100%; vertical-align: middle; }
body.shop-shell-v2 .shop-account-v2 .full-height .content { height: 100%; width: 100%; }

body.shop-shell-v2 .shop-account-v2 .overview-personal-info {
  min-height: 220px;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-direction: column;
}

@media (min-width: 768px) {
  body.shop-shell-v2 .shop-account-v2 .overview-personal-info { flex-direction: row; }
  body.shop-shell-v2 .shop-account-v2 .nav-justified > li { width: unset; }
}

body.shop-shell-v2 .shop-account-v2 .btn-unbook {
  background-color: #eee;
  color: rgb(223, 57, 57);
  border: 1px solid #ddd;
  margin-bottom: .5rem;
}

body.shop-shell-v2 .shop-account-v2 .btn-book,
body.shop-shell-v2 .shop-account-v2 .btn-add-note {
  background-color: #eee;
  color: rgb(57, 115, 223);
  border: 1px solid #ddd;
  margin-bottom: .5rem;
}

body.shop-shell-v2 .shop-account-v2 .btn-rounded { border-radius: 50%; }
body.shop-shell-v2 .shop-account-v2 .booking-icon { margin-right: .5rem; color: rgb(57, 115, 223); }
body.shop-shell-v2 .shop-account-v2 .gift-icon { margin-right: .5rem; }

body.shop-shell-v2 .shop-account-v2 .customers-bookings-title,
body.shop-shell-v2 .shop-account-v2 .customers-activity-vouchers-title,
body.shop-shell-v2 .shop-account-v2 .customers-unpaid-invoices-title,
body.shop-shell-v2 .shop-account-v2 .customers-giftcards-title {
  font-size: var(--shop-v2-font-size-8xl);
  font-weight: 800;
  padding: 0 1rem;
}

body.shop-shell-v2 .shop-account-v2 tr.booking-activity,
body.shop-shell-v2 .shop-account-v2 tr.voucher-activity,
body.shop-shell-v2 .shop-account-v2 tr.order-activity {
  text-align: center;
  background-color: #eee;
  font-weight: 800;
}

body.shop-shell-v2 .shop-account-v2 tr:not(.booking-activity) td,
body.shop-shell-v2 .shop-account-v2 tr:not(.voucher-activity) td { vertical-align: middle !important; }
body.shop-shell-v2 .shop-account-v2 td.booking-actions,
body.shop-shell-v2 .shop-account-v2 td.booking-see-more-message { text-align: right; }
body.shop-shell-v2 .shop-account-v2 td.no-booking-message { text-align: center; }
body.shop-shell-v2 .shop-account-v2 .display-more-link { cursor: pointer; text-decoration: underline; }
body.shop-shell-v2 .shop-account-v2 .customer_name.overview { font-size: var(--shop-v2-font-size-3xl) !important; }
body.shop-shell-v2 .shop-account-v2 .levelcheck_badge { background-color: unset; }
body.shop-shell-v2 .shop-account-v2 .levelcheck_badge span.level_badge { border-radius: 4px; }
body.shop-shell-v2 .shop-account-v2 td.booking-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
body.shop-shell-v2 .shop-account-v2 .nav-justified > li > a,
body.shop-shell-v2 .shop-account-v2 .nav-justified > a { background-image: unset; }
body.shop-shell-v2 .shop-account-v2 .level_name {
  width: 25px;
  padding: 2px 5px;
  border-radius: 4px;
  text-align: center;
}
body.shop-shell-v2 .shop-account-v2 .btn-logout { background-color: #FF0058; }
body.shop-shell-v2 .shop-account-v2 .logout-link button,
body.shop-shell-v2 .shop-account-v2 .logout-link button:hover { text-decoration: none; color: #FFF; }
body.shop-shell-v2 .shop-account-v2 .proflyer-status,
body.shop-shell-v2 .shop-account-v2 .request_proflyer .btn-danger {
  border-radius: 4px;
  padding: 6px 12px !important;
  font-size: var(--shop-v2-font-size-md);
}
body.shop-shell-v2 .shop-account-v2 .quick-book-actions a.btn span.glyphicon,
body.shop-shell-v2 .shop-account-v2 .btn-book span.glyphicon { color: rgb(57, 115, 223) !important; }
body.shop-shell-v2 .shop-account-v2 .btn-book span.glyphicon { margin-bottom: .5rem; }
body.shop-shell-v2 .shop-account-v2 .tooltip-inner {
  width: 250px;
  max-width: 250px;
  white-space: normal;
}

/* Keep overview sections aligned with the account content grid. */
body.shop-shell-v2 .shop-account-v2 #row_customer_overview_giftcards > .col-md-12 {
  padding-left: 0;
  padding-right: 0;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__skeleton-line {
  display: block;
  width: 68%;
  height: 14px;
  border-radius: 999px;
  background: linear-gradient(90deg, color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 8%, transparent) 25%, color-mix(in srgb, var(--shop-v2-main-color) 18%, transparent) 50%, color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 8%, transparent) 75%);
  background-size: 220% 100%;
  animation: shop-account-v2-skeleton-shimmer 1.4s ease-in-out infinite;
}
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__skeleton-line--short { width: 34%; }
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__skeleton-line--action { width: 86%; }

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-skeleton > tr > td {
  padding: 13px 12px !important;
  border: 0 !important;
  background: var(--shop-v2-background-color) !important;
}
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-skeleton > tr:first-child > td:first-child {
  border-radius: 14px 0 0 14px;
}
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-skeleton > tr:first-child > td:last-child {
  border-radius: 0 14px 14px 0;
}
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-skeleton .shop-account-v2__skeleton-line {
  margin: 0;
}
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__booking-skeleton {
  display: grid;
  gap: 10px;
  width: 100%;
  padding: 16px;
  border-radius: 14px;
  background: var(--shop-v2-background-color);
}
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__voucher-skeleton {
  display: grid;
  gap: 10px;
  width: 100%;
  padding: 16px;
  border-radius: 14px;
  background: var(--shop-v2-background-color);
}
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__invoice-skeleton,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__level-skeleton {
  display: grid;
  gap: 10px;
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 16px;
  border-radius: 14px;
  background: var(--shop-v2-background-color);
}
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__level-skeleton {
  gap: 8px;
  align-content: start;
  overflow: hidden;
}
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__level-skeleton-row {
  display: grid;
  grid-template-columns: .55fr 1.2fr 1fr .8fr 1fr;
  gap: 14px;
  align-items: center;
  min-height: 46px;
  padding: 8px 12px;
  border-radius: 12px;
  background: color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 4%, var(--shop-v2-background-color));
}
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__level-skeleton-row .shop-account-v2__skeleton-line {
  width: 100%;
  height: 12px;
}

@keyframes shop-account-v2-skeleton-shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-skeleton > tr > td {
    padding: 12px 8px !important;
    background: var(--shop-v2-background-color) !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__booking-skeleton {
    padding: 12px;
    border-radius: 12px;
    background: var(--shop-v2-background-color);
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__voucher-skeleton {
    padding: 12px;
    border-radius: 12px;
    background: var(--shop-v2-background-color);
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__invoice-skeleton,
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__level-skeleton {
    padding: 12px;
    border-radius: 12px;
    background: var(--shop-v2-background-color);
  }
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__level-skeleton-row {
    grid-template-columns: .8fr 1.4fr 1fr;
    gap: 8px;
    min-height: 42px;
    padding: 8px;
    background: color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 4%, var(--shop-v2-background-color));
  }
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__level-skeleton-row .shop-account-v2__skeleton-line:nth-child(4),
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__level-skeleton-row .shop-account-v2__skeleton-line:nth-child(5) {
    display: none;
  }
}

/* Styles extracted from V2 customer-account blocks. */
body.shop-shell-v2 .shop-account-v2 .credit_card {
  width: 258px;
  height: 162px;
  border: 1px solid #bbbbbb;
  border-radius: 10px;
  position: relative;
  padding: 5px 10px;
  box-shadow: 0 0 10px 0 #bbbbbb;
}
body.shop-shell-v2 .shop-account-v2 .credit_card.alert {
  border: 1px solid #ff0000;
  box-shadow: 0 0 10px 0 #ff0000;
}
body.shop-shell-v2 .shop-account-v2 .credit_card .last_four {
  position: absolute;
  top: 40px;
  left: 20px;
  font-size: var(--shop-v2-font-size-3xl);
  font-weight: bold;
}
body.shop-shell-v2 .shop-account-v2 .credit_card .expiry_date {
  position: absolute;
  bottom: 50px;
  left: 50px;
  font-size: var(--shop-v2-font-size-sm);
}
body.shop-shell-v2 .shop-account-v2 .credit_card .holder_name {
  position: absolute;
  bottom: 30px;
  left: 20px;
  font-size: var(--shop-v2-font-size-sm);
}
body.shop-shell-v2 .shop-account-v2 .credit_card .brand {
  position: absolute;
  bottom: 5px;
  right: 10px;
  font-size: var(--shop-v2-font-size-5xl);
  font-weight: bold;
}

body.shop-shell-v2 .shop-account-v2 .has_form:hover { cursor: pointer; }
body.shop-shell-v2 .shop-account-v2 .wallet-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border-radius: 1rem;
  height: 200px;
  color: var(--main-color-text-color, #000);
  background: var(--main-color, #EEE);
  background: linear-gradient(to right, var(--main-color, #EEE), var(--secondary-color, #a5a5a5));
}
body.shop-shell-v2 .shop-account-v2 .wallet-amount-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 1rem;
}
body.shop-shell-v2 .shop-account-v2 span.wallet-amount { font-size: var(--shop-v2-font-size-9xl); margin-bottom: 1rem; }
body.shop-shell-v2 .shop-account-v2 .custom-btn-outline,
body.shop-shell-v2 .shop-account-v2 .custom-btn-plain {
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid;
  border-radius: 1rem;
  padding: .6rem 1.5rem;
}
body.shop-shell-v2 .shop-account-v2 .custom-btn-outline {
  color: #FFF;
  background-color: transparent;
}
body.shop-shell-v2 .shop-account-v2 .custom-btn-plain { color: #333; background-color: #FFF; }
body.shop-shell-v2 .shop-account-v2 .custom-btn-outline span { margin-bottom: 1px; margin-left: .6rem; }
body.shop-shell-v2 .shop-account-v2 a.btn.btn-lg.custom-btn-outline:hover { background-color: #FFF !important; }
body.shop-shell-v2 .shop-account-v2 a.btn.btn-lg.custom-btn-outline:focus { color: #FFF; }
body.shop-shell-v2 .shop-account-v2 .custom-btn-outline .glyphicon,
body.shop-shell-v2 .shop-account-v2 .custom-btn-plain .glyphicon { margin-right: .5rem; }
body.shop-shell-v2 .shop-account-v2 .wallet-amount-container .wallet-balance {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: .8rem;
}
body.shop-shell-v2 .shop-account-v2 .wallet-amount-container .wallet-balance a {
  display: flex;
  justify-content: center;
  align-items: center;
}
body.shop-shell-v2 .shop-account-v2 .wallet-amount-container .tooltip-inner { width: 200px; }

body.shop-shell-v2 .shop-account-v2 .logout-link span { margin-right: .5rem; }
body.shop-shell-v2 .shop-account-v2 .subscriber-card { max-width: 450px; border-radius: .5rem; }
body.shop-shell-v2 .shop-account-v2 .bloc_customers_giftcards span.glyphicon {
  margin-left: .5rem;
  cursor: pointer;
}
body.shop-shell-v2 .shop-account-v2 .btn-disabled {
  padding: 6px 12px;
  border: 1px solid transparent;
  line-height: 1.42857143;
  background-color: #e3e3e3;
  cursor: not-allowed;
}
body.shop-shell-v2 .shop-account-v2 #dz_proflyerpacks_all_jumps {
  height: 300px;
  padding: 5px;
  margin-top: 10px;
}
body.shop-shell-v2 .shop-account-v2 #dz_proflyerpacks_all_jumps option { padding: 5px 10px; }

body.shop-shell-v2 .shop-account-v2 .calltoaction-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border: 1px solid #eee;
  border-radius: 1rem;
  background: var(--main-color);
  color: var(--main-color-text-color);
  background: linear-gradient(to right, var(--main-color, rgb(209, 209, 209)), var(--secondary-color, rgb(146, 146, 146)));
  padding-left: 0;
  padding-right: 0;
}
body.shop-shell-v2 .shop-account-v2 .calltoaction-container .product-title {
  width: 100%;
  color: #DDD;
  padding: 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-radius: 1rem 1rem 0 0;
  background-color: var(--secondary-color);
  color: var(--secondary-color-text-color);
}
body.shop-shell-v2 .shop-account-v2 .calltoaction-total-time { font-size: var(--shop-v2-font-size-9xl); font-weight: 800; }
body.shop-shell-v2 .shop-account-v2 .calltoaction-total-time-ww { font-size: var(--shop-v2-font-size-6xl); font-weight: 600; }
body.shop-shell-v2 .shop-account-v2 .calltoaction-container .row { line-height: 3rem; }
body.shop-shell-v2 .shop-account-v2 .calltoaction-container .catalog-preview-container {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  height: 200px;
  padding: 2rem 0;
  width: 100%;
  border-radius: 0 0 1rem 1rem;
}
body.shop-shell-v2 .shop-account-v2 .product-title .product-title-text {
  font-size: var(--shop-v2-font-size-3xl);
  font-weight: 500;
  max-width: 75%;
}
body.shop-shell-v2 .shop-account-v2 .calltoaction-intro h3 {
  font-size: var(--shop-v2-font-size-8xl);
  font-weight: 800;
  padding: 0 1rem;
}
body.shop-shell-v2 .shop-account-v2 .welcome-message { font-size: var(--shop-v2-font-size-3xl); }

@media (max-width: 767px) {
  /* Keep the overview card compact and readable on narrow screens. */
  body.shop-shell-v2 .shop-account-v2 .overview-personal-info {
    min-height: 0;
    gap: 18px;
    padding: 20px 14px 16px;
    border: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 8%, transparent);
    border-radius: 18px;
    box-shadow: 0 10px 24px color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 8%, transparent);
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info > [class*="col-xs-"] {
    width: 100%;
    padding: 0 !important;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .row.mb-2 {
    display: grid;
    grid-template-columns: minmax(56px, .28fr) minmax(0, .72fr);
    align-items: center;
    gap: 8px 10px;
    margin: 0 0 14px !important;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-name-row {
    display: block;
    margin-bottom: 18px !important;
    padding-bottom: 18px;
    border-bottom: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 9%, transparent);
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-name-row > .col-xs-3 {
    margin-bottom: 6px;
    color: color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 68%, transparent);
    font-size: var(--shop-v2-font-size-sm);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-name-row .customer_name.overview {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--shop-v2-secondary-color-text-color);
    font-size: var(--shop-v2-font-size-5xl) !important;
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.08;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-name-row .customer_name.overview .btn {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    margin: 0;
    padding: 0;
    border-radius: 50%;
    background: color-mix(in srgb, var(--shop-v2-main-color) 12%, transparent);
    color: var(--shop-v2-main-color);
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-status-row,
  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-waiver-row {
    display: flex !important;
    align-items: center;
    gap: 10px;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-status-row > .col-xs-3,
  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-waiver-row > .col-xs-3 {
    flex: 0 0 66px;
    width: 66px;
    color: color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 78%, transparent);
    font-size: var(--shop-v2-font-size-md);
    text-align: left;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-status-row > .request_proflyer,
  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-waiver-row > .waiver_info {
    flex: 1 1 auto;
    width: auto;
    text-align: left;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-status-row .btn,
  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-waiver-row .btn {
    min-height: 38px;
    border-radius: 12px;
    font-size: var(--shop-v2-font-size-md);
    font-weight: 700;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-status-row .request_proflyer .btn {
    width: 100%;
    padding-right: 10px;
    padding-left: 10px;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-logout-row {
    display: block;
    margin: 20px 0 0 !important;
    padding-top: 16px;
    border-top: 1px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 9%, transparent);
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-logout-row > .col-xs-3 {
    display: none;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-logout-row > .col-xs-8 {
    width: auto;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-logout-row .logout-link button {
    min-height: 38px;
    padding: 8px 16px;
    border-radius: 999px;
    font-size: var(--shop-v2-font-size-md);
    font-weight: 700;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .row.mb-2 > [class*="col-xs-"] {
    width: auto;
    float: none;
    padding: 0 !important;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .customer_name.overview {
    min-width: 0;
    overflow: visible;
    white-space: normal;
    font-size: var(--shop-v2-font-size-3xl) !important;
    line-height: 1.3;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .request_proflyer,
  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .waiver_info {
    min-width: 0;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .request_proflyer .btn,
  body.shop-shell-v2 .shop-account-v2 .overview-personal-info .waiver_info .btn {
    max-width: 100%;
    white-space: normal;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info hr {
    width: 100%;
    margin: 18px 0 0;
    border-color: color-mix(in srgb, var(--shop-v2-secondary-color-text-color) 10%, transparent);
  }

  body.shop-shell-v2 .shop-account-v2 #row_customer_calltoaction {
    margin: 0 !important;
  }

  body.shop-shell-v2 .shop-account-v2 .calltoaction-intro h3 {
    margin: 0 0 10px;
    padding: 0 8px;
    font-size: var(--shop-v2-font-size-3xl);
    line-height: 1.15;
  }

  body.shop-shell-v2 .shop-account-v2 .calltoaction-container .product-title {
    min-height: 86px;
    padding: 16px 14px;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    text-align: center;
  }

  body.shop-shell-v2 .shop-account-v2 .product-title .product-title-text {
    max-width: 100%;
    font-size: var(--shop-v2-font-size-3xl);
    line-height: 1.25;
  }

  body.shop-shell-v2 .shop-account-v2 .calltoaction-container .catalog-preview-container {
    height: 140px;
    padding: 16px;
  }
}

body.shop-shell-v2 .shop-account-v2 .voucher-activity-header {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}
body.shop-shell-v2 .shop-account-v2 .voucher-activity-header-activity { width: 100%; }
body.shop-shell-v2 .shop-account-v2 .voucher-activity-header-alt {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  margin-bottom: 2rem;
}
body.shop-shell-v2 .shop-account-v2 .booking-button { margin-left: auto; }
body.shop-shell-v2 .shop-account-v2 .booking-button-alb {
  background-color: #508ba9 !important;
  color: #f3e7d0 !important;
  border-color: #f3e7d0 !important;
}

/* Invoice status colors must win over the generic V2 section-list rules. */
body.shop-shell-v2 .shop-account-v2 .bloc_customers_unpaid_invoices td.text-danger {
  color: #a94442 !important;
}

body.shop-shell-v2 .shop-account-v2 .bloc_customers_unpaid_invoices td.text-warning {
  color: #8a6d3b !important;
}

body.shop-shell-v2 .shop-account-v2 .bloc_customers_unpaid_invoices td.text-success {
  color: #3c763d !important;
}

body.shop-shell-v2 .shop-account-v2 .bloc_customers_unpaid_invoices tr.danger > td {
  background: #f2dede !important;
}

body.shop-shell-v2 .shop-account-v2 .bloc_customers_unpaid_invoices td .shop-account-v2__invoice-pay-button {
  border: 0 !important;
  border-radius: 999px;
  background: var(--shop-v2-buy-buttons-bg-color) !important;
  color: var(--shop-v2-buy-buttons-text-color) !important;
}

/* Final account component hierarchy: activity headers are distinct from their items. */
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header {
  background: var(--shop-v2-secondary-color) !important;
  color: var(--shop-v2-secondary-color-text-color) !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header-title,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header-actions {
  color: var(--shop-v2-secondary-color-text-color) !important;
}

/* --------------------------------------------------------------------------
 * Account dashboard composition
 *
 * This final, scoped layer deliberately sits after the legacy-compatible
 * list rules above. It gives the account its own hierarchy without changing
 * the identifiers used by the account AJAX handlers.
 * -------------------------------------------------------------------------- */
body.shop-shell-v2 .shop-account-v2 {
  --shop-account-v2-surface: var(--shop-v2-background-color, #ffffff);
  --shop-account-v2-soft-surface: color-mix(in srgb, var(--shop-v2-background-color, #ffffff) 92%, var(--shop-v2-secondary-color, #f4f7f9));
  --shop-account-v2-line: color-mix(in srgb, #20313a 12%, transparent);
  --shop-account-v2-muted: color-mix(in srgb, #20313a 66%, transparent);
  --shop-account-v2-radius: 22px;
  --shop-account-v2-shadow: 0 18px 44px color-mix(in srgb, var(--shop-v2-secondary-color-text-color, #20313a) 9%, transparent);
  width: calc(100% - 64px);
  max-width: 1720px;
}

body.shop-shell-v2 .shop-account-v2__layout {
  display: grid;
  grid-template-columns: minmax(300px, 340px) minmax(0, 1fr);
  align-items: start;
  gap: clamp(20px, 2.6vw, 40px);
}

body.shop-shell-v2 .shop-account-v2__rail {
  position: sticky;
  top: 20px;
  display: grid;
  gap: 18px;
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--shop-account-v2-line);
  border-radius: var(--shop-account-v2-radius);
  background: var(--shop-account-v2-surface);
  box-shadow: 0 12px 32px color-mix(in srgb, var(--shop-v2-secondary-color-text-color, #20313a) 7%, transparent);
}

body.shop-shell-v2 .shop-account-v2__identity {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

body.shop-shell-v2 .shop-account-v2__identity-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 16px;
  background: color-mix(in srgb, var(--shop-v2-secondary-color, #5dc4f1) 15%, var(--shop-v2-background-color, #ffffff));
  color: var(--shop-v2-main-color, #5dc4f1);
  font-size: var(--shop-v2-font-size-lg);
  font-weight: 800;
  letter-spacing: .04em;
}

body.shop-shell-v2 .shop-account-v2__identity-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

body.shop-shell-v2 .shop-account-v2__identity-eyebrow,
body.shop-shell-v2 .shop-account-v2__section-header-eyebrow {
  color: var(--shop-account-v2-muted);
  font-size: var(--shop-v2-font-size-xs);
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.shop-shell-v2 .shop-account-v2__identity-name {
  overflow: hidden;
  margin: 0;
  color: var(--shop-v2-product-section-title-color, #20313a);
  font-size: var(--shop-v2-font-size-xl);
  font-weight: 800;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.shop-shell-v2 .shop-account-v2__identity-meta {
  overflow: hidden;
  color: var(--shop-account-v2-muted);
  font-size: var(--shop-v2-font-size-sm);
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.shop-shell-v2 .shop-account-v2__identity-edit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--shop-account-v2-line);
  border-radius: 50%;
  color: var(--shop-v2-main-color, #20313a);
  transition: border-color .18s ease, background .18s ease, color .18s ease;
}

body.shop-shell-v2 .shop-account-v2__identity-edit:hover,
body.shop-shell-v2 .shop-account-v2__identity-edit:focus {
  border-color: var(--shop-v2-main-color, #5dc4f1);
  background: color-mix(in srgb, var(--shop-v2-main-color, #5dc4f1) 10%, var(--shop-v2-background-color, #ffffff));
  color: var(--shop-v2-main-color, #5dc4f1);
  outline: 0;
}

body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills > li {
  width: 100%;
}

body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills > li > a,
body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills > li.active > a {
  justify-content: flex-start;
  min-height: 42px;
  padding: 10px 12px;
  border-radius: 12px;
  box-shadow: none;
  color: #20313a;
  font-size: var(--shop-v2-font-size-base);
}

body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills > li.active > a {
  background: color-mix(in srgb, var(--shop-v2-secondary-color, #5dc4f1) 12%, var(--shop-v2-background-color, #ffffff));
  box-shadow: inset 3px 0 0 var(--shop-v2-secondary-color, #5dc4f1);
  color: var(--shop-v2-secondary-color-text-color, #20313a);
}

body.shop-shell-v2 .shop-account-v2__main {
  min-width: 0;
}

body.shop-shell-v2 .shop-account-v2__content {
  overflow: visible;
  border: 1px solid var(--shop-account-v2-line);
  border-radius: var(--shop-account-v2-radius) !important;
  background: var(--shop-account-v2-surface);
  box-shadow: var(--shop-account-v2-shadow);
}

body.shop-shell-v2 .shop-account-v2__content > .panel-body {
  padding: clamp(20px, 3vw, 38px);
}

body.shop-shell-v2 .shop-account-v2 .tab-content > .shop-account-v2__overview {
  display: none;
}

body.shop-shell-v2 .shop-account-v2 .tab-content > .shop-account-v2__overview.active {
  display: flex;
  flex-direction: column;
}

/* Unclassified legacy rows (claim code, subscriptions, partners) belong after
 * the primary account actions. The named sections below override this order. */
body.shop-shell-v2 .shop-account-v2__overview > .row { order: 8; }
body.shop-shell-v2 .shop-account-v2__overview > .presales_container { order: 0; }
body.shop-shell-v2 .shop-account-v2__overview > .shop-account-v2__overview-hero { order: 1; }
body.shop-shell-v2 .shop-account-v2__overview > [id^="row_customer_overview_bookings"],
body.shop-shell-v2 .shop-account-v2__overview > #row_customer_overview_dz_bookings,
body.shop-shell-v2 .shop-account-v2__overview > .no_customer_overview_bookings { order: 2; }
/* The Dropzone jump balance block keeps its legacy id but is not marked as a
 * `.row`, so it otherwise falls into the default flex order and can appear
 * above the personal-information hero. */
body.shop-shell-v2 .shop-account-v2__overview > #row_customer_quick_bookings { order: 2; }
body.shop-shell-v2 .shop-account-v2__overview > .shop-account-v2__priority-section { order: 3; }
body.shop-shell-v2 .shop-account-v2__overview > #row_customer_overview_vouchers_v2 { order: 4; }
/* Payment issues are the most urgent account action, so show them directly
 * below the identity/hero block before bookings and vouchers. */
body.shop-shell-v2 .shop-account-v2__overview > #row_customer_overview_unpaid_invoices { order: 2; }
body.shop-shell-v2 .shop-account-v2__overview > #row_customer_overview_unpaid_down_payments { order: 5; }
body.shop-shell-v2 .shop-account-v2__overview > #row_customer_overview_giftcards,
body.shop-shell-v2 .shop-account-v2__overview > #row_customer_overview_orders { order: 6; }

body.shop-shell-v2 .shop-account-v2__overview-hero {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 24px;
  margin: 0 0 28px;
}

/* A partner account, or a customer without an available discovery card, has
 * no second hero item. Let the profile use the full content width in that
 * case instead of leaving an empty grid track beside it. */
body.shop-shell-v2 .shop-account-v2__overview-hero:not(:has(.shop-account-v2__overview-wallet)):not(:has(.shop-account-v2__discovery-card)) {
  grid-template-columns: minmax(0, 1fr);
}

body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin: 0 0 28px !important;
  padding: clamp(20px, 3vw, 30px);
  border: 1px solid var(--shop-account-v2-line);
  border-radius: var(--shop-account-v2-radius);
  background: linear-gradient(135deg, var(--shop-account-v2-surface), var(--shop-account-v2-soft-surface));
}

body.shop-shell-v2 .shop-account-v2__overview-hero .overview-personal-info.shop-account-v2__overview-summary {
  width: 100%;
  height: 100%;
  margin: 0 !important;
}

body.shop-shell-v2 .shop-account-v2__overview-hero .overview-personal-info.shop-account-v2__overview-summary--profile-only {
  align-self: stretch;
  width: 100%;
  max-width: none;
}

body.shop-shell-v2 .shop-account-v2__overview-hero .shop-account-v2__discovery-section {
  width: auto;
  margin: 0 !important;
}

body.shop-shell-v2 .shop-account-v2__overview-hero .shop-account-v2__discovery-section > .col-md-12 {
  height: 100%;
  padding: 0;
}

body.shop-shell-v2 .shop-account-v2__overview-hero .shop-account-v2__discovery-card {
  height: 100%;
}

body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary > .col-sm-6 {
  width: calc(50% - 10px);
  min-width: 0;
  padding: 0;
}

body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-name-row {
  align-items: center;
  margin-bottom: 18px !important;
}

body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-name-row > .col-xs-3,
body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-status-row > .col-xs-3,
body.shop-shell-v2 .shop-account-v2 .overview-personal-info .overview-waiver-row > .col-xs-3 {
  color: var(--shop-account-v2-muted);
  font-size: var(--shop-v2-font-size-sm);
  font-weight: 700;
}

body.shop-shell-v2 .shop-account-v2 .overview-personal-info .customer_name.overview strong {
  color: var(--shop-v2-product-section-title-color, #20313a);
  font-size: clamp(var(--shop-v2-font-size-xl), 1.6vw, var(--shop-v2-font-size-3xl));
}

body.shop-shell-v2 .shop-account-v2__wallet-card,
body.shop-shell-v2 .shop-account-v2 .wallet-container {
  margin: 0 !important;
  padding: 24px !important;
  border: 1px solid color-mix(in srgb, var(--shop-v2-main-color, #5dc4f1) 22%, transparent);
  border-radius: 18px;
  background: color-mix(in srgb, var(--shop-v2-main-color, #5dc4f1) 8%, var(--shop-account-v2-surface));
}

body.shop-shell-v2 .shop-account-v2 .wallet-amount-container {
  display: grid;
  gap: 4px;
  text-align: left;
}

body.shop-shell-v2 .shop-account-v2 .wallet-amount {
  color: var(--shop-v2-product-section-title-color, #20313a);
  font-size: clamp(var(--shop-v2-font-size-5xl), 3vw, var(--shop-v2-font-size-7xl));
  font-weight: 800;
  line-height: 1.05;
}

body.shop-shell-v2 .shop-account-v2 .wallet-balance {
  color: var(--shop-account-v2-muted);
  font-size: var(--shop-v2-font-size-sm);
}

body.shop-shell-v2 .shop-account-v2 .wallet-container .d-flex {
  justify-content: flex-start !important;
  margin-top: 18px;
}

body.shop-shell-v2 .shop-account-v2 .wallet-container .btn,
body.shop-shell-v2 .shop-account-v2__empty-state-action {
  min-height: 40px;
  border-radius: 12px;
  box-shadow: none;
  font-weight: 800;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 14px;
  padding: 0;
  border: 0;
  background: transparent;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header-copy {
  min-width: 0;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 3px;
  color: var(--shop-v2-product-section-title-color, #20313a);
  font-size: clamp(var(--shop-v2-font-size-xl), 1.8vw, var(--shop-v2-font-size-3xl));
  font-weight: 800;
  line-height: 1.2;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header-description {
  margin: 5px 0 0;
  color: var(--shop-account-v2-muted);
  font-size: var(--shop-v2-font-size-sm);
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header-badge {
  padding: 3px 8px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--shop-v2-main-color, #5dc4f1) 13%, var(--shop-account-v2-surface));
  color: var(--shop-v2-main-color, #5dc4f1);
  font-size: var(--shop-v2-font-size-xs);
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-list,
body.shop-shell-v2 .shop-account-v2 .bloc_customers_bookings_v2,
body.shop-shell-v2 .shop-account-v2 .customer-account-booking-list,
body.shop-shell-v2 .shop-account-v2 .bloc_customers_activity_vouchers_v2,
body.shop-shell-v2 .shop-account-v2 .bloc_customer_invoices,
body.shop-shell-v2 .shop-account-v2 .bloc_customers_giftcards {
  border-color: var(--shop-account-v2-line);
  box-shadow: none;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__priority-section,
body.shop-shell-v2 .shop-account-v2 .no_customer_overview_bookings {
  padding: 20px;
  border: 1px solid color-mix(in srgb, var(--shop-v2-main-color, #5dc4f1) 20%, transparent);
  border-radius: 18px;
  background: color-mix(in srgb, var(--shop-v2-main-color, #5dc4f1) 5%, var(--shop-account-v2-surface));
}

body.shop-shell-v2 .shop-account-v2 .no_customer_overview_bookings {
  padding: 0;
  border: 0;
  background: transparent;
}

body.shop-shell-v2 .shop-account-v2__empty-state {
  display: grid;
  justify-items: center;
  gap: 10px;
  padding: 34px 20px;
  border: 1px dashed color-mix(in srgb, var(--shop-v2-main-color, #5dc4f1) 34%, transparent);
  border-radius: 18px;
  background: var(--shop-account-v2-soft-surface);
  color: var(--shop-account-v2-muted);
  text-align: center;
}

body.shop-shell-v2 .shop-account-v2__empty-state-icon {
  color: var(--shop-v2-main-color, #5dc4f1);
  font-size: var(--shop-v2-font-size-4xl);
}

body.shop-shell-v2 .shop-account-v2__empty-state p {
  margin: 0;
}

body.shop-shell-v2 .shop-account-v2__profile-panel {
  padding: clamp(20px, 3vw, 32px);
  border: 1px solid var(--shop-account-v2-line);
  border-radius: var(--shop-account-v2-radius);
  background: var(--shop-account-v2-surface);
  box-shadow: 0 12px 28px color-mix(in srgb, var(--shop-v2-secondary-color-text-color, #20313a) 6%, transparent);
}

body.shop-shell-v2 .shop-account-v2__profile-panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
}

body.shop-shell-v2 .shop-account-v2__profile-panel-header h2 {
  margin: 4px 0 0;
  color: var(--shop-v2-product-section-title-color, #20313a);
  font-size: var(--shop-v2-font-size-3xl);
  font-weight: 800;
}

body.shop-shell-v2 .shop-account-v2__profile-panel-edit {
  flex: 0 0 auto;
  border-radius: 12px;
}

body.shop-shell-v2 .shop-account-v2__profile-panel .row {
  margin-bottom: 12px;
}

body.shop-shell-v2 .shop-account-v2__profile-panel hr {
  width: 100% !important;
  margin: 22px 0;
  border-color: var(--shop-account-v2-line);
}

body.shop-shell-v2 .shop-account-v2__profile-panel-actions {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--shop-account-v2-line);
}

body.shop-shell-v2 .shop-account-v2__destructive-action {
  color: #b42318;
  font-weight: 700;
}

body.shop-shell-v2 .shop-account-v2__discovery-card {
  display: block;
  overflow: hidden;
  border: 1px solid var(--shop-account-v2-line);
  border-radius: 18px;
  background: var(--shop-account-v2-surface);
}

body.shop-shell-v2 .shop-account-v2__discovery-card .calltoaction-intro h3 {
  margin: 0;
  padding: 18px 20px 0;
  color: var(--shop-v2-product-section-title-color, #20313a);
  font-size: var(--shop-v2-font-size-xl);
  font-weight: 800;
  text-align: left;
}

body.shop-shell-v2 .shop-account-v2__discovery-card .calltoaction-container {
  margin: 0;
  padding: 18px 20px 20px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.shop-shell-v2 .shop-account-v2__discovery-card .catalog-preview-container {
  min-height: 180px;
  border-radius: 14px;
}

body.shop-shell-v2 .shop-account-v2 .catalog-shortcut {
  margin: 20px 0 0;
  text-align: left;
}

body.shop-shell-v2 .shop-account-v2 a:focus-visible,
body.shop-shell-v2 .shop-account-v2 button:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--shop-v2-main-color, #5dc4f1) 52%, transparent);
  outline-offset: 3px;
}

@media (min-width: 768px) and (max-width: 1100px) {
  body.shop-shell-v2 .shop-account-v2__layout {
    display: block;
  }

  body.shop-shell-v2 .shop-account-v2__rail {
    position: static;
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 20px;
    padding: 12px 14px;
  }

  body.shop-shell-v2 .shop-account-v2__identity {
    min-width: 220px;
    flex: 0 1 32%;
  }

  body.shop-shell-v2 .shop-account-v2__navigation {
    min-width: 0;
    flex: 1 1 auto;
  }

  body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills {
    display: flex;
    flex-direction: row;
    overflow-x: auto;
    scrollbar-width: thin;
  }

  body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills > li {
    width: auto;
    flex: 0 0 auto;
  }
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 {
    width: calc(100% - 20px);
  }

  body.shop-shell-v2 .shop-account-v2--accordion .tab-content > .shop-account-v2__overview.shop-account-v2__accordion-panel.is-open {
    display: flex !important;
  }

  body.shop-shell-v2 .shop-account-v2__layout {
    display: block;
  }

  body.shop-shell-v2 .shop-account-v2__rail {
    position: static;
    margin-bottom: 14px;
    padding: 14px;
    border-radius: 18px;
    box-shadow: none;
  }

  body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills {
    display: none;
  }

  body.shop-shell-v2 .shop-account-v2__identity {
    grid-template-columns: 42px minmax(0, 1fr) auto;
  }

  body.shop-shell-v2 .shop-account-v2__identity-avatar {
    width: 42px;
    height: 42px;
    border-radius: 14px;
  }

  body.shop-shell-v2 .shop-account-v2__content {
    border: 0;
    border-radius: 0 !important;
    box-shadow: none;
  }

  body.shop-shell-v2 .shop-account-v2__content > .panel-body {
    padding: 0;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary {
    display: block;
    margin-bottom: 20px !important;
    padding: 18px;
    border-radius: 18px;
  }

  body.shop-shell-v2 .shop-account-v2__overview-hero {
    display: block;
    margin-bottom: 20px;
  }

  body.shop-shell-v2 .shop-account-v2__overview-hero .overview-personal-info.shop-account-v2__overview-summary {
    height: auto;
    margin-bottom: 16px !important;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary > .col-sm-6 {
    width: 100%;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary > .col-sm-6 + .col-sm-6 {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--shop-account-v2-line);
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__priority-section {
    padding: 16px;
    border-radius: 16px;
  }

  body.shop-shell-v2 .shop-account-v2__profile-panel {
    padding: 20px 16px;
    border-radius: 18px;
    box-shadow: none;
  }

  body.shop-shell-v2 .shop-account-v2__profile-panel-header {
    margin-bottom: 20px;
  }

  body.shop-shell-v2 .shop-account-v2__profile-panel-edit {
    padding: 9px 11px;
  }

  body.shop-shell-v2 .shop-account-v2 .wallet-container .d-flex {
    align-items: stretch;
    flex-direction: column;
  }

  body.shop-shell-v2 .shop-account-v2 .wallet-container .btn,
  body.shop-shell-v2 .shop-account-v2__empty-state-action {
    width: 100%;
  }

  body.shop-shell-v2 .shop-account-v2__empty-state {
    padding: 28px 16px;
  }

  body.shop-shell-v2 .shop-account-v2__discovery-card .catalog-preview-container {
    min-height: 160px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.shop-shell-v2 .shop-account-v2 *,
  body.shop-shell-v2 .shop-account-v2 *::before,
  body.shop-shell-v2 .shop-account-v2 *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

body.shop-shell-v2 .shop-account-v2 table > tbody > tr.booking-activity,
body.shop-shell-v2 .shop-account-v2 table > tbody > tr.voucher-activity,
body.shop-shell-v2 .shop-account-v2 table > tbody > tr.booking-activity > td,
body.shop-shell-v2 .shop-account-v2 table > tbody > tr.voucher-activity > td {
  background: var(--shop-v2-secondary-color) !important;
  color: var(--shop-v2-secondary-color-text-color) !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-list {
  background: var(--shop-v2-background-color) !important;
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header {
    min-height: 52px;
    padding: 14px;
    border-radius: 12px 12px 0 0 !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header-title {
    font-size: var(--shop-v2-font-size-xl);
  }
}

/* Keep the dashboard hierarchy calm even when a theme uses a saturated
 * secondary colour for legacy account section headers. */
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header {
  background: transparent !important;
  color: var(--shop-v2-product-section-title-color, #20313a) !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header-title,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-header-actions {
  color: var(--shop-v2-product-section-title-color, #20313a) !important;
}

body.shop-shell-v2 .shop-account-v2 table > tbody > tr.booking-activity,
body.shop-shell-v2 .shop-account-v2 table > tbody > tr.voucher-activity,
body.shop-shell-v2 .shop-account-v2 table > tbody > tr.booking-activity > td,
body.shop-shell-v2 .shop-account-v2 table > tbody > tr.voucher-activity > td {
  background: color-mix(in srgb, var(--shop-v2-main-color, #5dc4f1) 8%, var(--shop-account-v2-surface)) !important;
  color: var(--shop-v2-product-section-title-color, #20313a) !important;
}

/* Bootstrap's nav-justified defaults cap the old menu at one row.
 * The account rail deliberately uses a real vertical flex list instead. */
body.shop-shell-v2 .shop-account-v2__navigation {
  width: 100%;
  min-width: 0;
}

body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch;
  width: 100%;
  max-height: none !important;
  overflow: visible;
}

body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills > li {
  display: block !important;
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
}

body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills > li > a,
body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills > li.active > a {
  display: flex !important;
  box-sizing: border-box;
  width: 100% !important;
  margin: 0 !important;
}

body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary {
  min-height: 0;
}

body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary--profile-only > .col-sm-6 {
  width: 100%;
  max-width: 620px;
}

body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary--profile-only {
  align-self: flex-start;
  width: min(100%, 660px);
}

/* The personal-information tab already lives inside the account content
 * surface: keep its details flat instead of creating a second card. */
body.shop-shell-v2 .shop-account-v2__profile-panel {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.shop-shell-v2 .shop-account-v2__profile-panel-header {
  margin-bottom: 20px;
}

body.shop-shell-v2 .shop-account-v2__profile-panel-actions {
  margin-top: 20px;
}

body.shop-shell-v2 .shop-account-v2__overview > .shop-account-v2__discovery-section {
  order: 7;
}

body.shop-shell-v2 .shop-account-v2__discovery-section {
  margin-top: 4px !important;
}

body.shop-shell-v2 .shop-account-v2__discovery-card .calltoaction-container {
  display: grid;
  gap: 14px;
  align-items: stretch;
  padding: 16px !important;
}

body.shop-shell-v2 .shop-account-v2__discovery-card .calltoaction-container .product-title {
  min-height: 0;
  padding: 0 !important;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  color: var(--shop-v2-product-section-title-color, #20313a);
}

body.shop-shell-v2 .shop-account-v2__discovery-card .product-title .product-title-text {
  color: inherit;
  font-size: var(--shop-v2-font-size-lg);
  font-weight: 800;
}

body.shop-shell-v2 .shop-account-v2__discovery-card .catalog-preview-container {
  height: 150px !important;
  min-height: 150px;
  padding: 14px !important;
  background-color: var(--shop-account-v2-soft-surface);
  background-position: center;
  border-radius: 14px !important;
}

body.shop-shell-v2 .shop-account-v2__discovery-card .product-link .btn {
  border-radius: 12px;
  box-shadow: none;
  font-weight: 800;
}

@media (min-width: 768px) and (max-width: 1100px) {
  body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills {
    flex-direction: row !important;
    overflow-x: auto;
  }

  body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills > li {
    width: auto !important;
    flex: 0 0 auto;
  }

  body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills > li > a,
  body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills > li.active > a {
    width: auto !important;
  }
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2__rail .nav.nav-pills {
    display: none !important;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary--profile-only > .col-sm-6 {
    max-width: none;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary--profile-only {
    width: 100%;
  }

  body.shop-shell-v2 .shop-account-v2__profile-panel {
    padding: 0;
  }

  body.shop-shell-v2 .shop-account-v2__discovery-card .catalog-preview-container {
    height: 132px !important;
    min-height: 132px;
  }
}

/* Product recommendation: the visual is the card's focal point, not a small
 * thumbnail placed in a large empty surface. */
body.shop-shell-v2 .shop-account-v2__overview-hero .shop-account-v2__discovery-card {
  display: flex;
  flex-direction: column;
}

body.shop-shell-v2 .shop-account-v2__overview-hero .shop-account-v2__discovery-card .calltoaction-container {
  display: grid;
  flex: 1 1 auto;
  grid-template-rows: auto minmax(230px, 1fr);
  min-height: 0;
  padding: 18px !important;
}

body.shop-shell-v2 .shop-account-v2__overview-hero .shop-account-v2__discovery-card .calltoaction-container .product-title {
  align-items: center;
  padding: 0 2px !important;
  text-align: center;
}

body.shop-shell-v2 .shop-account-v2__overview-hero .shop-account-v2__discovery-card .catalog-preview-container {
  width: 100%;
  height: 100% !important;
  min-height: 230px;
  padding: 20px !important;
  border-radius: 16px !important;
  box-shadow: inset 0 -72px 68px rgba(15, 23, 42, .28);
}

body.shop-shell-v2 .shop-account-v2__overview-hero .shop-account-v2__discovery-card .product-link .btn {
  min-height: 46px;
  padding: 11px 22px;
  background: var(--shop-account-v2-surface);
  color: var(--shop-v2-product-section-title-color, #20313a);
  font-size: var(--shop-v2-font-size-base);
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2__overview-hero .shop-account-v2__discovery-card .calltoaction-container {
    grid-template-rows: auto minmax(210px, 1fr);
    padding: 14px !important;
  }

  body.shop-shell-v2 .shop-account-v2__overview-hero .shop-account-v2__discovery-card .catalog-preview-container {
    min-height: 210px;
  }
}

/* Quick booking: present the available balance as one clear next action,
 * without the former nested-panel/table treatment.  The AJAX hooks still
 * populate the same table rows. */
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking {
  overflow: hidden;
  padding: 0;
  border-color: var(--shop-account-v2-line);
  border-radius: 20px;
  background: var(--shop-account-v2-surface);
  box-shadow: 0 14px 32px color-mix(in srgb, var(--shop-v2-secondary-color-text-color, #20313a) 5%, transparent);
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking > .shop-account-v2__section-header {
  min-height: 0;
  margin: 0;
  padding: 21px 24px 13px;
  border: 0;
  background: transparent;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking > .shop-account-v2__section-header .shop-account-v2__section-header-title {
  gap: 10px;
  font-size: var(--shop-v2-font-size-xl);
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking > .row,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking #row_customer_voucher_book_v2 {
  margin: 0 !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking #row_customer_voucher_book_v2 {
  padding: 0 16px 16px;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking #row_customer_voucher_book_v2 > .col-md-12 {
  padding: 0 !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list {
  width: 100%;
  margin: 0 !important;
  border: 0 !important;
  border-collapse: separate;
  border-spacing: 0 8px !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list > tbody > tr {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 14px;
  min-height: 68px;
  border: 1px solid var(--shop-account-v2-line) !important;
  border-radius: 14px;
  background: var(--shop-account-v2-soft-surface) !important;
  box-shadow: none !important;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list > tbody > tr:hover {
  border-color: color-mix(in srgb, var(--shop-v2-main-color, #5dc4f1) 42%, var(--shop-account-v2-line)) !important;
  box-shadow: 0 8px 18px color-mix(in srgb, var(--shop-v2-secondary-color-text-color, #20313a) 7%, transparent) !important;
  transform: translateY(-1px);
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list > tbody > tr > td {
  display: block !important;
  width: auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  vertical-align: middle !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list > tbody > tr > td:first-child {
  min-width: 0;
  padding-left: 18px !important;
  color: var(--shop-v2-product-section-title-color, #20313a);
  font-weight: 700;
  overflow-wrap: anywhere;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list > tbody > tr > td:nth-child(2) {
  display: inline-grid !important;
  place-items: center;
  width: 32px !important;
  height: 32px;
  padding: 0 !important;
  border-radius: 999px !important;
  background: color-mix(in srgb, var(--shop-v2-main-color, #5dc4f1) 14%, var(--shop-account-v2-surface)) !important;
  color: var(--shop-v2-main-color, #5dc4f1);
  font-size: var(--shop-v2-font-size-sm);
  font-weight: 800;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list > tbody > tr > td:last-child {
  padding-right: 10px !important;
  text-align: right !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list .btn {
  min-width: 82px;
  min-height: 40px;
  padding: 9px 16px;
  border-radius: 11px;
  box-shadow: none;
  font-weight: 800;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list .shop-account-v2__quick-booking-skeleton > tr,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list .shop-account-v2__quick-booking-empty > tr {
  grid-template-columns: 1fr;
  min-height: 58px;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list .shop-account-v2__quick-booking-skeleton > tr > td,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list .shop-account-v2__quick-booking-empty > tr > td {
  width: auto !important;
  height: auto;
  padding: 0 18px !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list .shop-account-v2__quick-booking-skeleton > tr > td:not(:first-child) {
  display: none !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list .shop-account-v2__quick-booking-skeleton .shop-account-v2__skeleton-line {
  width: 54%;
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking > .shop-account-v2__section-header {
    padding: 18px 16px 11px;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking #row_customer_voucher_book_v2 {
    padding: 0 12px 12px;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list > tbody > tr {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    min-height: 0;
    padding: 13px 10px 13px 0;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list > tbody > tr > td:last-child {
    grid-column: 1 / -1;
    padding: 2px 0 0 18px !important;
    text-align: left !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list .btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list > tbody > tr {
    transition: none;
  }
}

/* Keep the desktop rail visibly below the fixed 60px shell header while it
 * remains sticky during long account pages. */
@media (min-width: 1101px) {
  body.shop-shell-v2 .shop-account-v2__rail {
    top: 76px;
  }
}

/* On mobile the accordion script intentionally removes Bootstrap's `active`
 * class before opening a panel.  Re-declare the Overview's column layout on
 * the accordion state itself; otherwise its flex container falls back to a
 * horizontal row and squeezes every dashboard section side by side. */
@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2--accordion .tab-content > .shop-account-v2__overview.shop-account-v2__accordion-panel.is-open {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  body.shop-shell-v2 .shop-account-v2--accordion .tab-content > .shop-account-v2__overview.shop-account-v2__accordion-panel.is-open > * {
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  body.shop-shell-v2 .shop-account-v2--accordion .shop-account-v2__overview-hero,
  body.shop-shell-v2 .shop-account-v2--accordion .shop-account-v2__overview-hero > .shop-account-v2__discovery-section,
  body.shop-shell-v2 .shop-account-v2--accordion .shop-account-v2__overview-hero > .shop-account-v2__discovery-section > .col-md-12 {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  body.shop-shell-v2 .shop-account-v2--accordion #overview .shop-account-v2__upcoming-bookings,
  body.shop-shell-v2 .shop-account-v2--accordion #overview .shop-account-v2__priority-section,
  body.shop-shell-v2 .shop-account-v2--accordion #overview #row_customer_overview_vouchers_v2 {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
}

/* The wallet is rendered inside the overview summary for compatibility with
 * the legacy template. Keep the profile and wallet in explicit columns so
 * the wallet remains on the right instead of dropping below a wide profile. */
@media (min-width: 768px) {
  body.shop-shell-v2 .shop-account-v2__overview-hero:has(.shop-account-v2__overview-wallet) {
    grid-template-columns: minmax(0, 1fr);
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary:has(> .col-sm-6 + .col-sm-6) {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(260px, .85fr);
    align-items: stretch;
    gap: 24px;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary:has(> .col-sm-6 + .col-sm-6) > .col-sm-6 {
    width: auto !important;
    min-width: 0;
    height: auto !important;
    min-height: 0;
    float: none;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary:has(> .col-sm-6 + .col-sm-6) > .col-sm-6:first-child {
    grid-column: 1;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary:has(> .col-sm-6 + .col-sm-6) > .col-sm-6 + .col-sm-6 {
    grid-column: 2;
  }

  body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary > .col-sm-6:has(.shop-account-v2__overview-wallet) {
    display: flex;
    flex-direction: column;
  }

  body.shop-shell-v2 .shop-account-v2__overview-hero .shop-account-v2__overview-wallet {
    flex: 1 1 auto;
    min-height: 0;
  }
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2__overview-hero .overview-personal-info.shop-account-v2__overview-summary > .col-sm-6 {
    height: auto !important;
    min-height: 0;
  }
}

/* Bookable vouchers: one product card makes the available balance, its
 * primary booking action and the individual voucher details read together. */
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers {
  overflow: visible;
  border: 1px solid var(--shop-account-v2-line);
  border-radius: 20px;
  background: var(--shop-account-v2-surface);
  box-shadow: 0 14px 32px color-mix(in srgb, var(--shop-v2-secondary-color-text-color, #20313a) 5%, transparent);
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers > .shop-account-v2__section-header {
  min-height: 0;
  margin: 0;
  padding: 21px 24px 13px;
  border: 0;
  border-bottom: 1px solid var(--shop-account-v2-line);
  background: transparent !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers > .shop-account-v2__section-header .shop-account-v2__section-header-title {
  font-size: var(--shop-v2-font-size-xl);
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__section-list {
  padding: 0;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group {
  width: 100%;
  margin: 0 !important;
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 0;
  background: transparent;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group + .shop-account-v2__voucher-group {
  margin-top: 0 !important;
  border-top: 8px solid var(--shop-account-v2-soft-surface);
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.voucher-activity,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.voucher-activity > td {
  border: 0 !important;
  border-radius: 0 !important;
  background: color-mix(in srgb, var(--shop-v2-main-color, #5dc4f1) 8%, var(--shop-account-v2-surface)) !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.voucher-activity > td {
  padding: 14px 16px !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .voucher-activity-header {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 44px;
  gap: 12px;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-product {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  gap: 11px;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-product-icon {
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: color-mix(in srgb, var(--shop-v2-secondary-color, #5dc4f1) 16%, var(--shop-account-v2-surface));
  color: var(--shop-v2-secondary-color, #5dc4f1);
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .voucher-activity-header-activity {
  width: auto;
  color: var(--shop-v2-product-section-title-color, #20313a);
  font-size: var(--shop-v2-font-size-base);
  font-weight: 800;
  text-align: left;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-product-actions {
  display: inline-flex;
  align-items: center;
  margin-left: auto;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-product-actions .btn {
  min-height: 40px;
  margin: 0 !important;
  padding: 9px 15px;
  border-radius: 11px;
  font-weight: 800;
  white-space: nowrap;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-section-toggle {
  flex: 0 0 auto;
  float: none;
  width: 30px;
  height: 30px;
  margin: 0 0 0 2px;
  border-color: var(--shop-account-v2-line);
  background: var(--shop-account-v2-surface);
  color: var(--shop-v2-product-section-title-color, #20313a);
  font-size: var(--shop-v2-font-size-3xl);
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.shop-account-v2__voucher-column-labels > th {
  padding: 15px 16px 7px !important;
  border: 0 !important;
  background: var(--shop-account-v2-surface) !important;
  color: color-mix(in srgb, var(--shop-v2-product-section-title-color, #20313a) 68%, transparent);
  font-size: var(--shop-v2-font-size-sm);
  font-weight: 800;
  letter-spacing: .055em;
  line-height: 1.2;
  text-align: left;
  text-transform: uppercase;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.shop-account-v2__voucher-row > td {
  padding: 15px 16px !important;
  border-top: 1px solid var(--shop-account-v2-line) !important;
  border-bottom: 0 !important;
  border-radius: 0 !important;
  background: var(--shop-account-v2-surface) !important;
  color: var(--shop-v2-product-section-title-color, #20313a);
  vertical-align: middle !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.shop-account-v2__voucher-row {
  transition: background-color .18s ease;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.shop-account-v2__voucher-row:hover > td {
  background: var(--shop-account-v2-soft-surface) !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-code {
  color: color-mix(in srgb, var(--shop-v2-product-section-title-color, #20313a) 76%, transparent);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: var(--shop-v2-font-size-md);
  font-weight: 700;
  letter-spacing: .015em;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-title {
  font-weight: 800;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-entries,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-expiry {
  color: color-mix(in srgb, var(--shop-v2-product-section-title-color, #20313a) 76%, transparent);
  font-size: var(--shop-v2-font-size-md);
  white-space: nowrap;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-actions {
  width: 58px;
  padding-right: 10px !important;
  text-align: right;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-actions .circle-button-container {
  display: inline-flex;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-actions .rounded-dropdown-button {
  width: 36px;
  height: 36px;
  padding: 0;
  border-color: var(--shop-account-v2-line);
  border-radius: 999px;
  background: var(--shop-account-v2-surface);
  color: var(--shop-v2-product-section-title-color, #20313a);
  box-shadow: none;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group--empty > tbody > tr > td {
  padding: 28px 18px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--shop-account-v2-soft-surface) !important;
  color: color-mix(in srgb, var(--shop-v2-product-section-title-color, #20313a) 76%, transparent);
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .voucher-activity:focus-visible {
  position: relative;
  z-index: 1;
  outline: 3px solid color-mix(in srgb, var(--shop-v2-main-color, #5dc4f1) 55%, transparent);
  outline-offset: -3px;
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers {
    border-radius: 16px;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers > .shop-account-v2__section-header {
    padding: 18px 16px 12px;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__section-list {
    padding: 0;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group,
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody {
    display: block;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.voucher-activity {
    position: relative;
    display: block;
    margin: 0;
    padding: 0;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.voucher-activity > td {
    display: block;
    padding: 14px 50px 14px 14px !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .voucher-activity-header {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-product-actions {
    width: 100%;
    margin: 2px 0 0;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-product-actions .btn {
    width: 100%;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-section-toggle {
    position: absolute;
    top: 18px;
    right: 14px;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.shop-account-v2__voucher-column-labels {
    display: none !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.shop-account-v2__voucher-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "code actions"
      "title actions"
      "entries actions"
      "expiry actions";
    gap: 6px 12px;
    margin: 0 !important;
    padding: 14px !important;
    border-top: 1px solid var(--shop-account-v2-line) !important;
    border-radius: 0 !important;
    background: var(--shop-account-v2-surface) !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.shop-account-v2__voucher-row > td {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    text-align: left !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-code { grid-area: code; }
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-title { grid-area: title; }
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-entries { grid-area: entries; }
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-expiry { grid-area: expiry; }
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-actions {
    grid-area: actions;
    align-self: center;
    width: auto;
    padding: 0 !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-row > td[data-label]::before {
    content: attr(data-label);
    margin-bottom: 2px;
    color: color-mix(in srgb, var(--shop-v2-product-section-title-color, #20313a) 58%, transparent);
    font-size: var(--shop-v2-font-size-xs);
    font-weight: 800;
    letter-spacing: .05em;
    line-height: 1.2;
    text-transform: uppercase;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-row > .shop-account-v2__voucher-actions::before {
    content: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.shop-account-v2__voucher-row {
    transition: none;
  }
}

/* Upcoming bookings use the same continuous-card pattern as bookable
 * vouchers: a section title, an activity strip, then quiet detail rows. */
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings {
  margin: 0 0 28px !important;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings:not(.shop-account-v2__upcoming-bookings--standalone) > .col-md-12,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings--standalone {
  overflow: visible;
  padding: 0 !important;
  border: 1px solid var(--shop-account-v2-line) !important;
  border-radius: 20px !important;
  background: var(--shop-account-v2-surface) !important;
  box-shadow: 0 14px 32px color-mix(in srgb, var(--shop-v2-secondary-color-text-color, #20313a) 5%, transparent) !important;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings > .col-md-12 > .shop-account-v2__section-header,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings--standalone > .shop-account-v2__section-header {
  min-height: 0;
  margin: 0;
  padding: 21px 24px 13px;
  border: 0;
  border-bottom: 1px solid var(--shop-account-v2-line);
  background: transparent !important;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings > .col-md-12 > .shop-account-v2__section-header .shop-account-v2__section-header-title,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings--standalone > .shop-account-v2__section-header .shop-account-v2__section-header-title {
  font-size: var(--shop-v2-font-size-xl);
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .bloc_customers_bookings_v2,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .customer-account-booking-list,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .bloc_customer_dz_bookings_v2,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .bloc_customer_hotel_rooms_bookings_v2 {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .shop-account-v2__booking-group {
  width: 100%;
  margin: 0 !important;
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  background: transparent;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .shop-account-v2__booking-group > tbody > tr.booking-activity,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .shop-account-v2__booking-group > tbody > tr.booking-activity > td {
  border: 0 !important;
  border-radius: 0 !important;
  background: color-mix(in srgb, var(--shop-v2-main-color, #5dc4f1) 8%, var(--shop-account-v2-surface)) !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .shop-account-v2__booking-group > tbody > tr.booking-activity > td {
  padding: 14px 16px !important;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-product {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  min-height: 40px;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-product-icon {
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: color-mix(in srgb, var(--shop-v2-secondary-color, #5dc4f1) 16%, var(--shop-account-v2-surface));
  color: var(--shop-v2-secondary-color, #5dc4f1);
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-product-title {
  color: var(--shop-v2-product-section-title-color, #20313a);
  font-size: var(--shop-v2-font-size-base);
  font-weight: 800;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group > tbody > tr.shop-account-v2__booking-row > td {
  padding: 15px 16px !important;
  border: 0 !important;
  border-top: 1px solid var(--shop-account-v2-line) !important;
  border-radius: 0 !important;
  background: var(--shop-account-v2-surface) !important;
  color: var(--shop-v2-product-section-title-color, #20313a);
  vertical-align: middle !important;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group > tbody > tr.shop-account-v2__booking-row {
  transition: background-color .18s ease;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group > tbody > tr.shop-account-v2__booking-row:hover > td {
  background: var(--shop-account-v2-soft-surface) !important;
  box-shadow: none !important;
  transform: none;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group > tbody > tr.shop-account-v2__booking-row:hover {
  box-shadow: none !important;
  transform: none !important;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group > tbody > tr.shop-account-v2__booking-row.danger > td {
  background: color-mix(in srgb, #d92d20 5%, var(--shop-account-v2-surface)) !important;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-date {
  color: var(--shop-v2-product-section-title-color, #20313a);
  font-weight: 800;
  white-space: nowrap;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-duration,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-type,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-level,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-location,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-price,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-date-end {
  color: color-mix(in srgb, var(--shop-v2-product-section-title-color, #20313a) 76%, transparent);
  font-size: var(--shop-v2-font-size-md);
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-customer {
  font-weight: 700;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-payment {
  width: 28px;
  color: #d92d20;
  text-align: center;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-actions {
  width: 58px;
  padding-right: 10px !important;
  text-align: right;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-actions .circle-button-container {
  display: inline-flex;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-actions .rounded-dropdown-button,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-actions > a:not(.btn) {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--shop-account-v2-line);
  border-radius: 999px;
  background: var(--shop-account-v2-surface);
  color: var(--shop-v2-product-section-title-color, #20313a);
  box-shadow: none;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group .booking-see-more-message {
  padding: 15px 16px !important;
  border-top: 1px solid var(--shop-account-v2-line) !important;
  background: var(--shop-account-v2-soft-surface) !important;
  color: var(--shop-v2-product-section-title-color, #20313a);
  text-align: center;
}

body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group .booking-see-more-message .display-more-link {
  color: inherit;
  font-size: var(--shop-v2-font-size-sm);
  font-weight: 800;
  text-decoration: none;
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings:not(.shop-account-v2__upcoming-bookings--standalone) > .col-md-12,
  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings--standalone {
    border-radius: 16px !important;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings > .col-md-12 > .shop-account-v2__section-header,
  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings--standalone > .shop-account-v2__section-header {
    padding: 18px 16px 12px;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .shop-account-v2__booking-group,
  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .shop-account-v2__booking-group > tbody {
    display: block;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .shop-account-v2__booking-group > tbody > tr.booking-activity,
  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .shop-account-v2__booking-group > tbody > tr.booking-activity > td {
    display: block;
    margin: 0;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .shop-account-v2__booking-group > tbody > tr.booking-activity > td {
    padding: 14px !important;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group > tbody > tr.shop-account-v2__booking-row {
    position: relative;
    display: block !important;
    margin: 0 !important;
    padding: 14px 58px 14px 14px !important;
    border: 0 !important;
    border-top: 1px solid var(--shop-account-v2-line) !important;
    border-radius: 0 !important;
    background: var(--shop-account-v2-surface) !important;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group > tbody > tr.shop-account-v2__booking-row > td {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    padding: 0 0 8px !important;
    border: 0 !important;
    background: transparent !important;
    text-align: left !important;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group > tbody > tr.shop-account-v2__booking-row > td:empty,
  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group > tbody > tr.shop-account-v2__booking-row > .shop-account-v2__booking-payment:empty {
    display: none !important;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group > tbody > tr.shop-account-v2__booking-row > .shop-account-v2__booking-actions {
    position: absolute;
    top: 50%;
    right: 12px;
    width: auto;
    padding: 0 !important;
    transform: translateY(-50%);
  }

  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group > tbody > tr.shop-account-v2__booking-row > .shop-account-v2__booking-payment {
    position: absolute;
    top: 14px;
    right: 15px;
    width: auto;
    padding: 0 !important;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group > tbody > tr.shop-account-v2__booking-row > td[data-label]::before {
    content: attr(data-label);
    margin-bottom: 2px;
    color: color-mix(in srgb, var(--shop-v2-product-section-title-color, #20313a) 58%, transparent);
    font-size: var(--shop-v2-font-size-xs);
    font-weight: 800;
    letter-spacing: .05em;
    line-height: 1.2;
    text-transform: uppercase;
  }

  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group .booking-see-more-message {
    display: block !important;
    padding: 14px !important;
    text-align: center !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__booking-group > tbody > tr.shop-account-v2__booking-row {
    transition: none;
  }
}

/* Menus must be allowed to leave their card. The account shell used to clip
 * the dropdown and the hover transform on table rows created a lower
 * stacking context than the following action buttons. Keep the regular rows
 * quiet, then lift only the row whose menu is open. */
body.shop-shell-v2 .shop-account-v2__content,
body.shop-shell-v2 .shop-account-v2__content > .panel-body,
body.shop-shell-v2 .shop-account-v2__content > .panel-body > .tab-pane {
  overflow: visible !important;
}

body.shop-shell-v2 .shop-account-v2 .circle-button-container {
  position: relative;
  z-index: 1;
}

body.shop-shell-v2 .shop-account-v2 table > tbody > tr:has(.circle-button-container.open),
body.shop-shell-v2 .shop-account-v2 table > tbody > tr:has(.shop-account-v2__mobile-actions.open) {
  position: relative !important;
  z-index: 1050 !important;
}

body.shop-shell-v2 .shop-account-v2 .circle-button-container.open,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__mobile-actions.open {
  z-index: 1051 !important;
}

body.shop-shell-v2 .shop-account-v2 .circle-button-container .dropdown-menu,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__mobile-actions .dropdown-menu {
  z-index: 1060 !important;
}

/* Shared V2 action trigger: horizontal ellipsis in a compact circular button.
 * It is a pseudo-element so theme button rules cannot hide the glyph. */
body.shop-shell-v2 .shop-account-v2 .rounded-dropdown-button.shop-account-v2__actions-trigger::before {
  content: '•••';
  display: block;
  color: var(--shop-v2-product-section-title-color, #20313a) !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: var(--shop-v2-font-size-sm);
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1;
  transform: translateY(-1px);
}

body.shop-shell-v2 .shop-account-v2 .rounded-dropdown-button.shop-account-v2__actions-trigger > .shop-account-v2__actions-icon,
body.shop-shell-v2 .shop-account-v2 .rounded-dropdown-button.shop-account-v2__actions-trigger > .glyphicon {
  display: none !important;
}

body.shop-shell-v2 .shop-account-v2 .rounded-dropdown-button:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--shop-v2-secondary-color-text-color, #20313a) 62%, transparent);
  outline-offset: 2px;
}

/* Account listing tabs -----------------------------------------------------
 * Bookings, vouchers and invoices share the same visual language: one clear
 * surface per family, a compact contextual header, then readable data rows.
 * This is deliberately scoped to the tab rows so overview components keep
 * their action-card layout. */
body.shop-shell-v2 .shop-account-v2 #bookings > .shop-account-v2__listing-section,
body.shop-shell-v2 .shop-account-v2 #vouchers > .shop-account-v2__listing-section,
body.shop-shell-v2 .shop-account-v2 #invoices > .shop-account-v2__listing-section {
  width: 100%;
  margin: 0 0 24px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 #bookings > .shop-account-v2__listing-section > .col-md-12,
body.shop-shell-v2 .shop-account-v2 #vouchers > .shop-account-v2__listing-section > .col-md-12,
body.shop-shell-v2 .shop-account-v2 #invoices > .shop-account-v2__listing-section > .col-md-12 {
  width: 100%;
  padding: 0 !important;
  overflow: visible !important;
  border: 1px solid var(--shop-account-v2-line) !important;
  border-radius: 20px !important;
  background: var(--shop-account-v2-surface) !important;
  box-shadow: 0 16px 34px color-mix(in srgb, var(--shop-v2-product-section-title-color, #20313a) 6%, transparent) !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-header {
  min-height: 0;
  margin: 0 !important;
  padding: 20px 24px 15px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--shop-account-v2-line) !important;
  border-radius: 20px 20px 0 0 !important;
  background: transparent !important;
  color: var(--shop-v2-product-section-title-color, #20313a) !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-header-title {
  color: var(--shop-v2-product-section-title-color, #20313a) !important;
  font-size: var(--shop-v2-font-size-xl);
  font-weight: 800;
  line-height: 1.2;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-header-actions {
  gap: 10px;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-header-actions .btn {
  min-height: 36px;
  margin: 0 !important;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: var(--shop-v2-font-size-sm);
  font-weight: 800;
  white-space: nowrap;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section > .col-md-12 > .shop-account-v2__section-list,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > .shop-account-v2__section-list {
  width: 100%;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 0 20px 20px !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table {
  width: 100% !important;
  margin: 0 !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  background: transparent !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table > thead > tr > th,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table > tbody > tr:has(th) > th {
  padding: 13px 24px 9px !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--shop-account-v2-muted) !important;
  font-size: var(--shop-v2-font-size-xs);
  font-weight: 800;
  letter-spacing: .06em;
  line-height: 1.2;
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table > tbody > tr:not(:has(th)) {
  transition: background .18s ease;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table > tbody > tr:not(:has(th)) > td {
  padding: 17px 24px !important;
  border: 0 !important;
  border-top: 1px solid var(--shop-account-v2-line) !important;
  background: var(--shop-account-v2-surface) !important;
  color: var(--shop-v2-product-section-title-color, #20313a);
  font-size: var(--shop-v2-font-size-md);
  line-height: 1.45;
  vertical-align: middle !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table > tbody > tr:not(:has(th)):hover > td {
  background: var(--shop-account-v2-soft-surface) !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table > tbody > tr:not(:has(th)):hover {
  z-index: auto;
  transform: none !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table > tbody > tr:not(:has(th)) > td:first-child {
  font-weight: 700;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table > tbody > tr.danger > td {
  background: color-mix(in srgb, #a94442 6%, var(--shop-account-v2-surface)) !important;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table > tbody > tr.danger > td:first-child {
  box-shadow: inset 3px 0 0 #a94442;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section--vouchers .shop-account-v2__section-list > table > tbody > tr:not(:has(th)) > td:first-child {
  color: var(--shop-v2-product-section-title-color, #20313a);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: var(--shop-v2-font-size-sm);
  letter-spacing: .025em;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list td.text-right,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list td[align="right"] {
  text-align: right !important;
  white-space: nowrap;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list td.text-right .shop-account-v2__action-text {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  margin: 0 0 0 12px;
  color: var(--shop-v2-main-color, #5dc4f1);
  font-size: var(--shop-v2-font-size-sm);
  font-weight: 800;
  text-decoration: none;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .bloc_customers_unpaid_invoices td:nth-child(2) h4 {
  margin: 0 0 7px;
  color: var(--shop-v2-product-section-title-color, #20313a);
  font-size: var(--shop-v2-font-size-lg);
  line-height: 1.25;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .bloc_customers_unpaid_invoices td:nth-child(2) ul {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .bloc_customers_unpaid_invoices td:nth-child(2) li {
  color: var(--shop-account-v2-muted);
  font-size: var(--shop-v2-font-size-sm);
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .bloc_customers_unpaid_invoices td:nth-child(2) li::before {
  content: '•';
  margin-right: 7px;
  color: var(--shop-v2-main-color, #5dc4f1);
}

body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .bloc_customers_unpaid_invoices td.text-success,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .bloc_customers_unpaid_invoices td.text-warning,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .bloc_customers_unpaid_invoices td.text-danger {
  font-size: var(--shop-v2-font-size-md);
  font-weight: 800;
}

@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 #bookings > .shop-account-v2__listing-section,
  body.shop-shell-v2 .shop-account-v2 #vouchers > .shop-account-v2__listing-section,
  body.shop-shell-v2 .shop-account-v2 #invoices > .shop-account-v2__listing-section {
    margin-bottom: 18px !important;
  }

  body.shop-shell-v2 .shop-account-v2 #bookings > .shop-account-v2__listing-section > .col-md-12,
  body.shop-shell-v2 .shop-account-v2 #vouchers > .shop-account-v2__listing-section > .col-md-12,
  body.shop-shell-v2 .shop-account-v2 #invoices > .shop-account-v2__listing-section > .col-md-12 {
    border-radius: 16px !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-header {
    flex-wrap: wrap;
    gap: 12px;
    padding: 17px 16px 13px !important;
    border-radius: 16px 16px 0 0 !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-header-title {
    font-size: var(--shop-v2-font-size-lg);
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-header-actions {
    width: 100%;
    justify-content: flex-start;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list {
    overflow-x: auto !important;
    border-radius: 0 0 16px 16px !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table {
    min-width: 620px;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table > thead > tr > th,
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table > tbody > tr:has(th) > th {
    padding: 12px 16px 8px !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table > tbody > tr:not(:has(th)) > td {
    padding: 14px 16px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table > tbody > tr:not(:has(th)) {
    transition: none;
  }
}

/* A listing already owns its card. Remove the account shell surface while a
 * listing tab is active so invoices, bookings and vouchers never read as a
 * card nested inside another card. */
body.shop-shell-v2 .shop-account-v2__content:has(#bookings.active),
body.shop-shell-v2 .shop-account-v2__content:has(#vouchers.active),
body.shop-shell-v2 .shop-account-v2__content:has(#invoices.active) {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.shop-shell-v2 .shop-account-v2__content > .panel-body:has(#bookings.active),
body.shop-shell-v2 .shop-account-v2__content > .panel-body:has(#vouchers.active),
body.shop-shell-v2 .shop-account-v2__content > .panel-body:has(#invoices.active) {
  padding: 0 !important;
}

/* Mobile listing cards ----------------------------------------------------
 * Remote account endpoints still return desktop tables. Keep their markup
 * and actions intact, but stack every data row instead of forcing a 620px
 * wide table inside an accordion panel. */
@media (max-width: 767px) {
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list {
    overflow: visible !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list:has(.shop-account-v2__mobile-stack-list) {
    overflow: visible !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__section-list > table.shop-account-v2__mobile-stack-list {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: auto;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__mobile-stack-list > thead,
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__mobile-stack-list > tbody {
    display: block !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__mobile-stack-list > thead > tr,
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__mobile-stack-list > tbody > tr:has(th) {
    display: none !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__mobile-stack-list > tbody > tr:not(:has(th)) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    width: auto !important;
    min-width: 0;
    margin: 10px 12px !important;
    padding: 14px !important;
    border: 1px solid var(--shop-account-v2-line) !important;
    border-radius: 14px !important;
    background: var(--shop-account-v2-surface) !important;
    box-shadow: none !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__mobile-stack-list > tbody > tr:not(:has(th)) > td {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    width: auto !important;
    min-width: 0;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--shop-v2-product-section-title-color, #20313a);
    overflow-wrap: anywhere;
    text-align: left !important;
    white-space: normal !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__mobile-stack-list > tbody > tr:not(:has(th)) > td[data-label]::before {
    content: attr(data-label);
    margin-bottom: 2px;
    color: var(--shop-account-v2-muted);
    font-size: var(--shop-v2-font-size-xs);
    font-weight: 800;
    letter-spacing: .055em;
    line-height: 1.2;
    text-transform: uppercase;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__mobile-stack-list > tbody > tr:not(:has(th)) > td:empty {
    display: none !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__mobile-stack-list > tbody > tr:not(:has(th)) > td[colspan] {
    align-items: center;
    text-align: center !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__mobile-stack-list td.text-right,
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__mobile-stack-list td[align="right"] {
    text-align: left !important;
    white-space: normal !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__mobile-stack-list .btn {
    max-width: 100%;
    margin: 2px 0 0 !important;
  }

  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__mobile-stack-list .shop-account-v2__mobile-actions,
  body.shop-shell-v2 .shop-account-v2 .shop-account-v2__listing-section .shop-account-v2__mobile-stack-list .shop-account-v2__mobile-actions-trigger {
    width: 100%;
  }
}

/* White account surfaces ---------------------------------------------------
 * A few themes expose a light-grey page background as their V2 background
 * token.  On the account dashboard that made the nested cards blend into one
 * another.  Keep the theme colours for text and accents, but use white for
 * every resting account surface; the borders now provide the hierarchy.
 */
body.shop-shell-v2 .shop-account-v2 {
  --shop-account-v2-surface: #fff;
  --shop-account-v2-soft-surface: #fff;
}

body.shop-shell-v2 .shop-account-v2 .overview-personal-info.shop-account-v2__overview-summary,
body.shop-shell-v2 .shop-account-v2__wallet-card,
body.shop-shell-v2 .shop-account-v2 .wallet-container,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__priority-section,
body.shop-shell-v2 .shop-account-v2__empty-state,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__section-list,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__quick-booking-list > tbody > tr,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.voucher-activity,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.voucher-activity > td,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .shop-account-v2__booking-group > tbody > tr.booking-activity,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .shop-account-v2__booking-group > tbody > tr.booking-activity > td,
body.shop-shell-v2 .shop-account-v2 table > tbody > tr.booking-activity,
body.shop-shell-v2 .shop-account-v2 table > tbody > tr.voucher-activity,
body.shop-shell-v2 .shop-account-v2 table > tbody > tr.booking-activity > td,
body.shop-shell-v2 .shop-account-v2 table > tbody > tr.voucher-activity > td {
  background: #fff !important;
}

body.shop-shell-v2 .shop-account-v2__wallet-card,
body.shop-shell-v2 .shop-account-v2 .wallet-container,
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__priority-section {
  border-color: var(--shop-account-v2-line);
}

/* Product-group rows retain a quiet directional cue without reintroducing a
 * coloured panel background. */
body.shop-shell-v2 .shop-account-v2 .shop-account-v2__bookable-vouchers .shop-account-v2__voucher-group > tbody > tr.voucher-activity > td:first-child,
body.shop-shell-v2 .shop-account-v2 #overview .shop-account-v2__upcoming-bookings .shop-account-v2__booking-group > tbody > tr.booking-activity > td:first-child {
  box-shadow: inset 3px 0 0 var(--shop-v2-main-color, #5dc4f1);
}

/* The legacy wallet action was white-on-colour. Once the card becomes white,
 * make it an outlined action so it stays readable and keyboard-visible. */
body.shop-shell-v2 .shop-account-v2 .wallet-container .custom-btn-outline,
body.shop-shell-v2 .shop-account-v2 .wallet-container a.btn.btn-lg.custom-btn-outline:hover,
body.shop-shell-v2 .shop-account-v2 .wallet-container a.btn.btn-lg.custom-btn-outline:focus {
  border-color: var(--shop-account-v2-line);
  background: #fff !important;
  color: var(--shop-v2-product-section-title-color, #20313a) !important;
}
