/* Geloni Platform — Pinterest Ideas inspired UI */
@import url('../webfonts/fonts.css');

/* Hide theme header on Geloni Platform pages (Explore, Artists, profiles, etc.) */
body.gplt-social-page #header,
body.gplt-social-page #headerimg,
body.gplt-social-page #page > hr,
body.gplt-user-portal-page #header,
body.gplt-user-portal-page #headerimg,
body.gplt-user-portal-page #page > hr,
body.gplt-social-page .lx-header,
body.gplt-social-page .lx-mobile-panel,
body.gplt-social-page header.wp-block-template-part,
body.gplt-user-portal-page .lx-header,
body.gplt-user-portal-page .lx-mobile-panel,
body.gplt-user-portal-page header.wp-block-template-part {
  display: none !important;
}

body.gplt-social-page .wp-block-post-title,
body.gplt-user-portal-page .wp-block-post-title,
body.gplt-social-page .entry-header,
body.gplt-user-portal-page .entry-header,
body.gplt-social-page main .wp-block-site-title,
body.gplt-user-portal-page main .wp-block-site-title {
  display: none !important;
}

body.gplt-social-page main.wp-block-group,
body.gplt-user-portal-page main.wp-block-group {
  margin-top: 0 !important;
}

body.gplt-social-page main .wp-block-group.alignfull,
body.gplt-user-portal-page main .wp-block-group.alignfull {
  padding-top: 0 !important;
}

body.gplt-social-page .lx-main {
  padding-top: 0;
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

body.gplt-social-page .lx-section {
  padding-top: 0;
  padding-bottom: 0;
  width: 100%;
  max-width: none;
}

body.gplt-social-page .lx-section > .lx-container {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}

body.gplt-social-page .lx-article,
body.gplt-social-page .lx-article-content,
body.gplt-social-page .lx-single-layout {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}

body.gplt-social-page .lx-sidebar,
body.gplt-social-page aside.lx-sidebar {
  display: none !important;
}

body.gplt-social-page .lx-article-content {
  margin-top: 0;
}

/* Page title duplicates Explore / Artists nav tabs */
body.gplt-social-page .lx-article > article > h1 {
  display: none !important;
}

body.gplt-user-portal-page .lx-main {
  padding-top: 0;
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

body.gplt-user-portal-page .lx-section {
  padding-top: 0;
  padding-bottom: 0;
  width: 100%;
  max-width: none;
}

body.gplt-user-portal-page .lx-section > .lx-container {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}

body.gplt-user-portal-page .lx-article,
body.gplt-user-portal-page .lx-article-content {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}

body.gplt-user-portal-page .lx-article > article > h1 {
  display: none !important;
}

#gplt-social-wrap {
  --gplt-red: #E60023;
  --gplt-red-hover: #AD081B;
  --gplt-red-light: #FFE0E6;
  --gplt-bg: #FFFFFF;
  --gplt-bg-soft: #F1F1F1;
  --gplt-surface: #FFFFFF;
  --gplt-surface-solid: #FFFFFF;
  --gplt-text: #111111;
  --gplt-muted: #767676;
  --gplt-border: #E9E9E9;
  --gplt-border-strong: #CDCDCD;
  --gplt-primary: var(--gplt-red);
  --gplt-primary-dark: var(--gplt-red-hover);
  --gplt-primary-light: var(--gplt-red-light);
  --gplt-blush: #FFF0F3;
  --gplt-success: #007A6B;
  --gplt-warning: #B8924A;
  --gplt-danger: #C62828;
  --gplt-shadow-pin: 0 2px 8px rgba(0, 0, 0, 0.12);
  --gplt-shadow-xs: 0 1px 3px rgba(0, 0, 0, 0.08);
  --gplt-shadow-hover: 0 4px 16px rgba(0, 0, 0, 0.16);
  --gplt-radius-pin: 16px;
  --gplt-radius-pill: 24px;
  --gplt-radius-sm: 12px;
  --gplt-font-serif: 'Cormorant Garamond', Georgia, serif;
  --gplt-font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
  --gplt-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
  --gplt-swipe-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --gplt-swipe-duration: 0.45s;
  --gplt-pin-col: 236px;
  --gplt-pin-gap: 16px;
  --gplt-content-max: 1320px;
  --gplt-side-pad: clamp(1.5rem, 5vw, 3rem);

  background: var(--gplt-bg);
  color: var(--gplt-text);
  padding: clamp(1rem, 2vw, 1.5rem) var(--gplt-side-pad) 3rem;
  line-height: 1.5;
  font-family: var(--gplt-font-sans);
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  width: 100%;
  max-width: none;
  margin: 0;
  box-sizing: border-box;
  overflow-x: clip;
}

#gplt-social-wrap * { box-sizing: border-box; }

#gplt-social-wrap {
  direction: inherit;
  text-align: inherit;
  isolation: isolate;
}

.gplt-social-main {
  max-width: var(--gplt-content-max);
  margin: 0 auto;
  width: 100%;
  padding: 0 clamp(0.25rem, 1.5vw, 1rem);
}

/* Mobile full-width — all GPLT frontend surfaces (after base shell rules) */
@media (max-width: 767px) {
  #gplt-social-wrap {
    --gplt-side-pad: 0;
    padding-inline: 0;
    padding-top: 0;
  }

  .gplt-social-main,
  .gplt-dashboard-page .gplt-social-main,
  .gplt-social--portal-embed .gplt-social-main {
    max-width: none;
    width: 100%;
    margin-inline: 0;
    padding-inline: 0;
  }

  .gplt-user-portal {
    max-width: none;
    width: 100%;
    margin: 0;
    padding-inline: 0;
  }

  body.gplt-user-portal-page #gplt-user-portal {
    border-radius: 0;
    margin: 0;
    padding-inline: 0;
  }

  body.gplt-auth-page #gplt-user-portal {
    padding-inline: 0;
  }

  .gplt-social-subheader {
    margin-bottom: 0;
  }

  .gplt-social-subheader-inner,
  .gplt-social-subheader-inner--megabar {
    max-width: none;
    padding-inline: .85rem;
  }

  .gplt-stories-bar {
    margin-block: 0 12px;
  }

  .gplt-stories-bar-inner {
    padding-inline: .85rem;
  }

  .gplt-directory,
  .gplt-directory--specialists,
  .gplt-feed,
  .gplt-feed--ideas,
  .gplt-profile,
  .gplt-profile-page,
  .gplt-onboarding,
  .gplt-dashboard-v2,
  .gplt-member-dashboard,
  .gplt-cert-view,
  .gplt-cert-view-shell,
  .gplt-single-post,
  .gplt-validation-grid,
  .gplt-specialists-results,
  .gplt-feed-header,
  .gplt-ideas-hero,
  .gplt-guest-membership-empty {
    max-width: none;
    width: 100%;
    margin-inline: 0;
    padding-inline: 0;
    box-sizing: border-box;
  }

  .gplt-specialists-hero,
  .gplt-specialists-advanced-search,
  .gplt-feed-header,
  .gplt-ideas-hero {
    padding-inline: .85rem;
  }

  .gplt-directory--specialists .gplt-specialists-hero,
  .gplt-directory--specialists .gplt-specialists-advanced-search {
    padding-inline: .85rem;
  }

  .gplt-pin-page .gplt-social-subheader {
    padding-inline: .75rem;
  }

  .gplt-pin-view-panel,
  .gplt-pin-view-below {
    padding-inline: .85rem;
  }

  .gplt-dashboard-v2 .gplt-dash-card,
  .gplt-dashboard-v2 .gplt-glass-card,
  .gplt-user-portal-intro,
  .gplt-user-portal-nav-list,
  .gplt-user-portal-section .gplt-dash-card,
  .gplt-user-portal-section .gplt-glass-card,
  .gplt-user-portal-section .gplt-form {
    border-radius: 0;
  }

  .gplt-user-portal-intro,
  .gplt-user-portal-nav-list {
    margin-inline: 0;
  }

  .gplt-auth-card {
    border-radius: 0;
    max-width: none;
    padding-inline: .85rem;
  }

  .gplt-social-main:has(.gplt-directory--specialists) {
    max-width: none;
    padding-inline: 0;
  }

  .gplt-directory--specialists {
    max-width: none;
    margin-inline: 0;
    padding-inline: 0;
  }
}

/* Desktop/tablet layout — restore centered shells */
@media (min-width: 768px) {
  #gplt-social-wrap {
    --gplt-side-pad: clamp(1.5rem, 5vw, 3rem);
    padding: clamp(1rem, 2vw, 1.5rem) var(--gplt-side-pad) 3rem;
  }

  #gplt-social-wrap:has(.gplt-social-subheader) {
    padding-top: 0;
  }

  .gplt-social-main,
  .gplt-dashboard-page .gplt-social-main,
  .gplt-social--portal-embed .gplt-social-main {
    max-width: var(--gplt-content-max, 1320px);
    width: 100%;
    margin-inline: auto;
    padding-inline: clamp(0.25rem, 1.5vw, 1rem);
  }

  .gplt-user-portal {
    max-width: var(--gplt-portal-max-width, 1320px);
    width: 100%;
    margin: 1.5rem auto 3rem;
    padding-inline: clamp(0.85rem, 2.5vw, 1.25rem);
  }

  body.gplt-user-portal-page #gplt-user-portal {
    border-radius: var(--gplt-radius-xl, 28px);
    margin-inline: auto;
    padding-inline: clamp(0.85rem, 2.5vw, 1.25rem);
  }

  body.gplt-auth-page #gplt-user-portal {
    padding-inline: clamp(0.85rem, 2.5vw, 1.25rem);
  }

  .gplt-social-subheader {
    margin-bottom: 1rem;
  }

  .gplt-social-subheader-inner,
  .gplt-social-subheader-inner--megabar {
    max-width: var(--gplt-content-max, 1320px);
    margin-inline: auto;
    padding-inline: clamp(1rem, 3vw, 2rem);
  }

  .gplt-stories-bar {
    margin-block: 12px 18px;
  }

  .gplt-stories-bar-inner {
    max-width: var(--gplt-content-max, 1320px);
    width: 100%;
    margin-inline: auto;
    padding-inline: clamp(0.75rem, 2vw, 1rem);
  }

  .gplt-social-subheader-inner--megabar {
    width: 100%;
    box-sizing: border-box;
  }

  .gplt-social-megabar-desktop {
    display: flex;
    align-items: center;
    width: 100%;
  }

  .gplt-social-megabar-desktop .gplt-social-megabar {
    width: 100%;
  }

  .gplt-directory,
  .gplt-feed,
  .gplt-feed--ideas,
  .gplt-profile,
  .gplt-profile-page,
  .gplt-onboarding,
  .gplt-dashboard-v2,
  .gplt-member-dashboard,
  .gplt-cert-view,
  .gplt-single-post,
  .gplt-validation-grid,
  .gplt-specialists-results,
  .gplt-guest-membership-empty {
    max-width: none;
    width: 100%;
    margin-inline: auto;
    padding-inline: 0;
  }

  .gplt-cert-view-shell {
    max-width: 760px;
    margin-inline: auto;
  }

  .gplt-ideas-hero {
    padding: clamp(2rem, 5vw, 3.5rem) 1rem 1.5rem;
  }

  .gplt-feed-header {
    padding: 2rem 1rem;
  }

  .gplt-dashboard-v2 {
    max-width: 1180px;
    margin-inline: auto;
  }

  .gplt-dashboard-v2 .gplt-dash-card,
  .gplt-dashboard-v2 .gplt-glass-card,
  .gplt-user-portal-intro,
  .gplt-user-portal-nav-list,
  .gplt-user-portal-section .gplt-dash-card,
  .gplt-user-portal-section .gplt-glass-card {
    border-radius: var(--gplt-radius-lg, 16px);
  }

  .gplt-user-portal-intro,
  .gplt-user-portal-nav-list {
    margin-inline: 0;
  }

  .gplt-auth-card {
    border-radius: var(--gplt-radius-pin, 16px);
    max-width: min(440px, 100%);
    margin-inline: auto;
    padding: clamp(1.15rem, 3vw, 1.65rem);
  }

  .gplt-directory--specialists {
    padding-inline: 5%;
  }

  .gplt-directory--specialists .gplt-specialists-hero,
  .gplt-directory--specialists .gplt-specialists-advanced-search {
    padding-inline: 0;
  }
}

/* ── Pinterest Ideas hero ─────────────────────────────────── */
.gplt-ideas-hero {
  text-align: center;
  padding: clamp(2rem, 5vw, 3.5rem) 1rem 1.5rem;
}

.gplt-ideas-title {
  font-family: var(--gplt-font-sans);
  font-size: clamp(1.75rem, 4.5vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin: 0 0 .65rem;
  color: var(--gplt-text);
}

.gplt-ideas-subtitle {
  margin: 0 auto;
  max-width: 36ch;
  font-size: 1rem;
  color: var(--gplt-muted);
  line-height: 1.5;
}

.gplt-h1 {
  font-family: var(--gplt-font-sans);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  margin: 0;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

.gplt-h2 { font-size: 1.25rem; font-weight: 600; margin: 0; }
.gplt-h3 { font-size: 1rem; font-weight: 600; margin: 0; }

.gplt-lead {
  color: var(--gplt-muted);
  margin: 0 auto 1.5rem;
  max-width: 40ch;
  font-size: 1rem;
}

/* ── Browse categories (horizontal scroll) ────────────────── */
.gplt-browse-section {
  margin-bottom: 1.25rem;
  padding: 0;
}

.gplt-browse-heading,
.gplt-review-form-title {
  font-family: var(--gplt-font-sans);
  font-size: 1.0625rem;
  font-weight: 700;
  margin: 0 0 .75rem;
  letter-spacing: -0.01em;
  color: var(--gplt-text);
}

.gplt-browse-hint {
  margin: -.35rem 0 .75rem;
  font-size: .8125rem;
  line-height: 1.45;
  color: var(--gplt-muted);
}

.gplt-browse-intro {
  margin: 0 auto;
  max-width: 42ch;
}

.gplt-seo-crosslinks {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .5rem .75rem;
  margin: .85rem auto 0;
  max-width: 52ch;
}

.gplt-seo-crosslink {
  font-size: .875rem;
  font-weight: 600;
  color: var(--gplt-red);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.gplt-seo-crosslink:hover {
  color: var(--gplt-red-hover);
}

.gplt-featured-artists {
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid var(--gplt-border);
}

.gplt-featured-artists-title {
  margin: 0 0 1.25rem;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.gplt-artist-grid--preview {
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

@media (min-width: 1200px) {
  .gplt-artist-grid--preview {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.gplt-featured-artists-cta {
  margin: 1.35rem 0 0;
  text-align: center;
}

.gplt-feed--ideas,
.gplt-profile-page .gplt-tab-panel[data-tab="created"] {
  width: 100%;
}

/* ── Browse toolbar (dropdown filters) ───────────────────── */
.gplt-browse-toolbar {
  margin-bottom: 1.25rem;
}

.gplt-browse-toolbar--inline {
  margin-bottom: 0;
}

.gplt-browse-toolbar-fields {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  align-items: flex-end;
  justify-content: center;
}

.gplt-directory-toolbar--filters {
  align-items: flex-end;
}

.gplt-browse-field {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  min-width: 0;
}

.gplt-browse-label {
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--gplt-muted);
  line-height: 1.2;
}

.gplt-browse-select {
  min-width: 9rem;
  max-width: 11rem;
}

.gplt-browse-clear {
  align-self: center;
  font-size: .8125rem;
  font-weight: 600;
  color: var(--gplt-muted);
  text-decoration: underline;
  text-underline-offset: 2px;
  padding: .5rem .25rem;
}

.gplt-browse-clear:hover {
  color: var(--gplt-text);
}

/* ── Mobile filter drawer ─────────────────────────────────── */
.gplt-mobile-filter-toggle,
.gplt-filter-backdrop,
.gplt-filter-panel-head {
  display: none;
}

@media (max-width: 768px) {
  .gplt-mobile-filter-shell {
    position: relative;
    margin-bottom: 1rem;
  }

  .gplt-mobile-filter-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    width: 100%;
    min-height: 2.75rem;
    padding: .65rem 1rem;
    border: 1px solid var(--gplt-border);
    border-radius: var(--gplt-radius-pill);
    background: #fff;
    color: var(--gplt-text);
    font-family: inherit;
    font-size: .9375rem;
    font-weight: 700;
    cursor: pointer;
  }

  .gplt-mobile-filter-toggle-icon {
    font-size: 1rem;
    line-height: 1;
  }

  .gplt-filter-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 120;
    background: rgba(17, 17, 17, .35);
  }

  .gplt-filter-backdrop[hidden] {
    display: none !important;
  }

  .gplt-filter-panel {
    display: block;
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: 121;
    max-height: min(85vh, 640px);
    background: #fff;
    border-radius: 1rem 1rem 0 0;
    box-shadow: 0 -8px 32px rgba(17, 17, 17, .12);
    transform: translateY(100%);
    transition: transform .22s ease;
    overflow: hidden;
  }

  .gplt-filter-panel[hidden] {
    display: block !important;
    visibility: hidden;
    pointer-events: none;
  }

  .gplt-mobile-filter-shell.is-open .gplt-filter-panel {
    transform: translateY(0);
    visibility: visible;
    pointer-events: auto;
  }

  .gplt-filter-panel-head {
    display: flex;
    justify-content: flex-end;
    padding: .75rem 1rem .25rem;
    border-bottom: 1px solid var(--gplt-border);
  }

  .gplt-filter-panel-close {
    border: 0;
    background: transparent;
    color: var(--gplt-text);
    font-family: inherit;
    font-size: .875rem;
    font-weight: 700;
    cursor: pointer;
    padding: .35rem .5rem;
  }

  .gplt-filter-panel-body {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding: 1rem 1rem calc(1rem + env(safe-area-inset-bottom, 0px));
    overflow-y: auto;
    max-height: calc(min(85vh, 640px) - 3rem);
  }

  .gplt-mobile-filter-shell .gplt-browse-toolbar,
  .gplt-mobile-filter-shell.gplt-directory-toolbar--filters > .gplt-filter-panel-body > .gplt-browse-toolbar {
    margin-bottom: 0;
  }

  .gplt-mobile-filter-shell .gplt-browse-toolbar-fields,
  .gplt-mobile-filter-shell.gplt-directory-toolbar--filters > .gplt-filter-panel-body {
    align-items: stretch;
  }

  .gplt-mobile-filter-shell .gplt-browse-field,
  .gplt-mobile-filter-shell .gplt-directory-search,
  .gplt-mobile-filter-shell .gplt-directory-sort,
  .gplt-mobile-filter-shell .gplt-directory-level {
    width: 100%;
    max-width: none;
  }

  .gplt-mobile-filter-shell .gplt-browse-select {
    max-width: none;
    width: 100%;
  }

  body.gplt-filter-panel-open {
    overflow: hidden;
  }
}

@media (min-width: 769px) {
  .gplt-mobile-filter-shell > .gplt-filter-panel {
    display: contents;
  }

  .gplt-mobile-filter-shell > .gplt-filter-panel > .gplt-filter-panel-body {
    display: contents;
  }
}

.gplt-review-form-title {
  margin-bottom: .25rem;
}

.gplt-category-scroller {
  display: flex;
  gap: .5rem;
  overflow-x: auto;
  padding-bottom: .35rem;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.gplt-category-scroller::-webkit-scrollbar { display: none; }

.gplt-cat-pill {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  padding: .65rem 1.1rem;
  border: none;
  border-radius: var(--gplt-radius-pill);
  background: var(--gplt-bg-soft);
  color: var(--gplt-text);
  font-family: inherit;
  font-size: .875rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  text-decoration: none;
  transition: background .15s ease, transform .15s ease;
}

a.gplt-cat-pill:visited {
  color: var(--gplt-text);
}

.gplt-cat-pill:hover {
  background: #E9E9E9;
}

.gplt-cat-pill.is-active {
  background: var(--gplt-text);
  color: #fff;
}

a.gplt-cat-pill.is-active:visited {
  color: #fff;
}

.gplt-cat-pill.is-active:hover {
  background: #333;
}

/* ── Pin grid (fixed columns — avoids empty trailing columns) ─ */
.gplt-masonry {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--gplt-pin-gap);
  width: 100%;
}

@media (max-width: 1400px) {
  .gplt-masonry {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 1200px) {
  .gplt-masonry {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .gplt-masonry {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 479px) {
  .gplt-masonry {
    grid-template-columns: 1fr;
  }
}

.gplt-masonry .gplt-empty,
.gplt-masonry .gplt-skeleton {
  grid-column: 1 / -1;
  display: block;
  width: 100%;
}

/* ── Pin card ─────────────────────────────────────────────── */
.gplt-pin,
.gplt-portfolio-card {
  margin-bottom: 0;
  display: block;
  width: 100%;
  min-width: 0;
}

.gplt-pin-media {
  position: relative;
  border-radius: var(--gplt-radius-pin);
  overflow: hidden;
  background: var(--gplt-bg-soft);
}

.gplt-pin-image-link {
  display: block;
  line-height: 0;
}

.gplt-pin-gallery-open {
  display: block;
  width: 100%;
  padding: 0;
  border: none;
  background: none;
  cursor: zoom-in;
  line-height: 0;
  text-align: left;
  position: relative;
}

.gplt-pin-gallery-open .gplt-portfolio-img,
.gplt-pin-gallery-open video {
  pointer-events: none;
  cursor: zoom-in;
}

.gplt-pin--profile .gplt-pin-gallery-open .gplt-portfolio-img,
.gplt-pin--profile .gplt-pin-gallery-open video {
  border-radius: var(--gplt-radius-pin);
}

.gplt-portfolio-lightbox {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.gplt-portfolio-lightbox[hidden] {
  display: none !important;
}

body.gplt-lightbox-open {
  overflow: hidden;
}

body.gplt-lightbox-open #gplt-social-wrap {
  pointer-events: none;
}

body.gplt-lightbox-open #gplt-social-wrap video:not(.gplt-portfolio-lightbox-video) {
  visibility: hidden !important;
}

body.gplt-lightbox-open.gplt-lightbox-profile #gplt-social-wrap {
  visibility: hidden;
}

body.gplt-lightbox-open.gplt-lightbox-feed #gplt-social-wrap {
  visibility: visible;
  filter: blur(3px) saturate(0.92);
}

.gplt-portfolio-lightbox-backdrop {
  position: fixed;
  inset: 0;
}

.gplt-portfolio-lightbox--feed .gplt-portfolio-lightbox-backdrop {
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.gplt-portfolio-lightbox--profile .gplt-portfolio-lightbox-backdrop {
  background: rgba(255, 255, 255, 0.78);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.gplt-portfolio-lightbox:not(.gplt-portfolio-lightbox--feed):not(.gplt-portfolio-lightbox--profile) .gplt-portfolio-lightbox-backdrop {
  background: rgba(0, 0, 0, 0.55);
}

.gplt-portfolio-lightbox-dialog {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(960px, 100%);
  max-height: calc(100vh - 2rem);
  pointer-events: none;
}

.gplt-portfolio-lightbox-dialog > * {
  pointer-events: auto;
}

.gplt-portfolio-lightbox-stage {
  position: relative;
  display: block;
  line-height: 0;
  max-width: 100%;
  max-height: calc(100vh - 8rem);
}

.gplt-portfolio-lightbox-image,
.gplt-portfolio-lightbox-video {
  max-width: min(960px, calc(100vw - 2rem));
  max-height: calc(100vh - 8rem);
  width: auto;
  height: auto;
  border-radius: 16px;
  object-fit: contain;
  background: #111;
  vertical-align: middle;
}

.gplt-portfolio-lightbox-image[hidden],
.gplt-portfolio-lightbox-video[hidden] {
  display: none !important;
}

.gplt-portfolio-lightbox-close,
.gplt-portfolio-lightbox-nav {
  position: absolute;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  color: #111;
  cursor: pointer;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
}

.gplt-portfolio-lightbox-close {
  top: .75rem;
  right: .75rem;
}

.gplt-portfolio-lightbox-nav {
  top: 50%;
  transform: translateY(-50%);
}

.gplt-portfolio-lightbox-prev { left: .75rem; }
.gplt-portfolio-lightbox-next { right: .75rem; }

.gplt-portfolio-lightbox-nav[hidden] {
  display: none !important;
}

.gplt-portfolio-lightbox--profile .gplt-portfolio-lightbox-nav:not([hidden]) {
  display: inline-flex;
}

.gplt-portfolio-lightbox-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  margin-top: .85rem;
  color: #fff;
}

.gplt-portfolio-lightbox--feed .gplt-portfolio-lightbox-footer {
  display: none;
}

.gplt-portfolio-lightbox--profile .gplt-portfolio-lightbox-footer {
  display: flex;
}

.gplt-portfolio-lightbox--feed .gplt-portfolio-lightbox-dialog {
  width: auto;
  max-width: none;
}

.gplt-portfolio-lightbox--feed .gplt-portfolio-lightbox-stage {
  max-height: calc(100vh - 2rem);
}

.gplt-portfolio-lightbox--feed .gplt-portfolio-lightbox-image,
.gplt-portfolio-lightbox--feed .gplt-portfolio-lightbox-video {
  max-width: calc(100vw - 2.5rem);
  max-height: calc(100vh - 2.5rem);
}

.gplt-portfolio-lightbox-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
}

.gplt-portfolio-lightbox-counter {
  font-size: .875rem;
  color: rgba(255, 255, 255, 0.75);
  white-space: nowrap;
}

.gplt-portfolio-img,
.gplt-pin-media img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--gplt-radius-pin);
  transition: transform 0.5s var(--gplt-swipe-ease, var(--gplt-ease)), opacity 0.35s ease;
}

.gplt-pin-gallery-open:hover .gplt-portfolio-img,
.gplt-pin-gallery-open:hover video {
  transform: scale(1.02);
}

.gplt-pin-hover {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  align-items: flex-start;
  gap: .4rem;
  padding: .65rem;
  opacity: 0;
  transition: opacity 0.35s var(--gplt-swipe-ease, var(--gplt-ease));
  pointer-events: none;
  border-radius: inherit;
}

.gplt-pin:hover .gplt-pin-hover,
.gplt-pin:focus-within .gplt-pin-hover {
  opacity: 1;
  background: rgba(0, 0, 0, 0.08);
}

.gplt-pin-hover .gplt-pin-action,
.gplt-pin-hover .gplt-like-btn,
.gplt-pin-hover .gplt-share-btn {
  pointer-events: auto;
}

.gplt-pin-action {
  padding: .55rem .9rem;
  border: none;
  border-radius: var(--gplt-radius-pill);
  background: var(--gplt-red);
  color: #fff;
  font-family: inherit;
  font-size: .875rem;
  font-weight: 600;
  cursor: pointer;
  box-shadow: var(--gplt-shadow-pin);
  transition: background .15s ease;
}

.gplt-pin-action.gplt-like-btn {
  background: rgba(255, 255, 255, 0.95);
  color: var(--gplt-text);
}

.gplt-pin-action:hover {
  background: var(--gplt-red-hover);
}

.gplt-pin-action.gplt-like-btn:hover {
  background: #fff;
}

.gplt-pin-action.gplt-like-btn.is-liked {
  background: var(--gplt-red-light);
  color: var(--gplt-red);
}

.gplt-pin-action.gplt-like-btn.is-liked:hover {
  background: var(--gplt-red-light);
}

.gplt-pin-action.gplt-like-btn::before {
  content: '♡ ';
  font-size: 1.15em;
  line-height: 1;
  vertical-align: -0.05em;
}

.gplt-pin-action.gplt-like-btn.is-liked::before {
  content: '♥ ';
  font-size: 1.15em;
  line-height: 1;
  vertical-align: -0.05em;
}

.gplt-pin-meta {
  padding: .6rem .15rem .35rem;
}

.gplt-pin-title {
  font-family: var(--gplt-font-sans);
  font-size: .9375rem;
  font-weight: 600;
  line-height: 1.35;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.gplt-pin-title a {
  color: var(--gplt-text);
  text-decoration: none;
}

.gplt-pin-title a:hover {
  text-decoration: underline;
}

.gplt-pin-author {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin-top: .4rem;
  font-size: .8125rem;
  color: var(--gplt-muted);
}

.gplt-pin-author a {
  color: var(--gplt-muted);
  text-decoration: none;
  font-weight: 500;
}

.gplt-pin-author a:hover {
  color: var(--gplt-text);
}

.gplt-pin-category {
  display: block;
  margin-top: .3rem;
  font-size: .8125rem;
  font-weight: 500;
  color: var(--gplt-muted);
}

.gplt-mini-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
}

/* ── Profile (Pinterest creator) ──────────────────────────── */
.gplt-profile-page {
  width: 100%;
}

.gplt-profile-header {
  display: grid;
  gap: 1.25rem;
  padding: 1rem 0 1.25rem;
  margin-bottom: .5rem;
}

.gplt-profile-header--with-map {
  align-items: start;
}

@media (min-width: 960px) {
  .gplt-profile-header--with-map {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
    gap: 1.5rem;
  }
}

.gplt-profile-header-main {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: right;
  gap: 0;
  min-width: 0;
  width: 100%;
}

@media (min-width: 768px) {
  .gplt-profile-header-main {
    align-items: flex-start;
    text-align: right;
  }
}

.gplt-profile-header-location {
  min-width: 0;
}

.gplt-profile-header-location .gplt-profile-drive {
  height: 100%;
  padding: 1.15rem 1.2rem 1.2rem;
  background: #fff;
  border: 1px solid var(--gplt-border);
  border-radius: var(--gplt-radius-pin);
}

.gplt-profile-avatar {
  width: 136px;
  height: 136px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.gplt-profile-header-body {
  flex: 1;
  min-width: 0;
  width: 100%;
}

.gplt-badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .2rem .55rem;
  border-radius: var(--gplt-radius-pill);
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: .4rem;
}

.gplt-badge-valid {
  background: #E6F4EA;
  color: var(--gplt-success);
}

.gplt-name-with-verified {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  flex-wrap: wrap;
  max-width: 100%;
}

.gplt-name-with-verified .gplt-name-text {
  min-width: 0;
}

.gplt-skill-level-badge {
  display: inline-flex;
  align-items: center;
  padding: .18rem .55rem;
  border-radius: var(--gplt-radius-pill);
  background: var(--gplt-bg-soft);
  border: 1px solid var(--gplt-border);
  font-size: .75rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--gplt-muted);
  white-space: nowrap;
}

.gplt-profile-identity {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
  margin: 0 0 .65rem;
  max-width: 100%;
}

.gplt-profile-identity .gplt-name-with-verified,
.gplt-profile-identity .gplt-h1,
.gplt-profile-identity .gplt-artist-card-name,
.gplt-profile-identity .gplt-pin-view-creator-name,
.gplt-profile-identity .gplt-profile-name {
  margin: 0;
}

.gplt-identity-avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  display: block;
}

.gplt-identity-avatar--placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--gplt-bg-soft);
  color: var(--gplt-muted);
  font-size: 1.35rem;
  font-weight: 700;
  border: 1px solid var(--gplt-border);
}

.gplt-profile-identity--sm .gplt-identity-avatar,
.gplt-profile-identity--sm .gplt-identity-avatar--placeholder {
  width: 48px;
  height: 48px;
  font-size: 1rem;
}

.gplt-profile-identity--md .gplt-identity-avatar,
.gplt-profile-identity--md .gplt-identity-avatar--placeholder {
  width: 56px;
  height: 56px;
  font-size: 1.15rem;
}

.gplt-profile-identity--lg .gplt-identity-avatar,
.gplt-profile-identity--lg .gplt-identity-avatar--placeholder {
  width: 64px;
  height: 64px;
}

.gplt-pin-view-creator .gplt-profile-identity {
  margin: 0;
}

.gplt-verified-tick {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  line-height: 0;
  vertical-align: middle;
}

.gplt-verified-tick svg {
  display: block;
  width: 1.375rem;
  height: 1.375rem;
}

.gplt-verified-tick--sm svg {
  width: 1.375rem;
  height: 1.375rem;
}

.gplt-verified-tick--md svg {
  width: 1.625rem;
  height: 1.625rem;
}

.gplt-verified-tick--lg svg {
  width: 2rem;
  height: 2rem;
}

.gplt-pin-view-creator.gplt-name-with-verified,
.gplt-pin-view-creator .gplt-name-with-verified {
  gap: .4rem;
}

.gplt-profile-bio {
  margin: .35rem 0 .75rem;
  font-size: 1rem;
  color: var(--gplt-muted);
  line-height: 1.5;
  max-width: 62ch;
}

.gplt-profile-social {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  justify-content: center;
  margin-bottom: .85rem;
}

@media (min-width: 768px) {
  .gplt-profile-social {
    justify-content: flex-start;
  }

  .gplt-profile-bio {
    max-width: none;
  }
}

.gplt-profile-social-link {
  display: inline-flex;
  align-items: center;
  padding: .45rem .85rem;
  border-radius: var(--gplt-radius-pill);
  background: var(--gplt-bg-soft);
  color: var(--gplt-text);
  font-size: .8125rem;
  font-weight: 600;
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
}

.gplt-profile-social-link:hover {
  background: #E9E9E9;
  color: var(--gplt-red);
}

.gplt-profile-drive-title {
  font-size: .875rem;
  font-weight: 700;
  margin: 0 0 .35rem;
  letter-spacing: -0.01em;
  color: var(--gplt-text);
}

.gplt-profile-drive-address {
  margin: 0 0 .65rem;
  font-size: .9375rem;
  color: var(--gplt-muted);
  line-height: 1.45;
}

.gplt-profile-drive-btn {
  margin-bottom: .85rem;
}

.gplt-profile-map {
  border-radius: var(--gplt-radius-sm);
  overflow: hidden;
  border: 1px solid var(--gplt-border);
  background: var(--gplt-bg-soft);
}

.gplt-profile-map iframe {
  display: block;
  width: 100%;
  min-height: 180px;
  height: 200px;
  border: 0;
}

/* ── Public profile (Instagram-like) ───────────────────────── */
.gplt-public-profile-header {
  padding: 1rem 0 1.25rem;
}

.gplt-public-profile-identity {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: .75rem;
}

.gplt-public-profile-avatar-wrap {
  flex-shrink: 0;
}

.gplt-public-profile-avatar,
.gplt-public-profile-avatar-wrap .gplt-identity-avatar--placeholder {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}

.gplt-public-profile-avatar-wrap .gplt-identity-avatar--placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.75rem;
  font-weight: 700;
  background: var(--gplt-bg-soft);
  color: var(--gplt-muted);
}

.gplt-public-profile-story-ring .gplt-story-ring {
  display: inline-flex;
  padding: 3px;
  border-radius: 50%;
  background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
}

.gplt-public-profile-name-block {
  flex: 1;
  min-width: 0;
}

.gplt-public-profile-display-name {
  margin: 0 0 .35rem;
  font-size: 1rem;
  line-height: 1.35;
}

.gplt-public-profile-stats {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: .85rem 1.25rem;
  min-width: 0;
}

.gplt-public-profile-stat {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: start;
  min-width: 0;
}

.gplt-public-profile-stat strong {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--gplt-text);
}

.gplt-public-profile-stat span {
  font-size: .75rem;
  color: var(--gplt-muted);
  line-height: 1.35;
}

.gplt-public-profile-bio {
  margin: 0 0 .55rem;
  font-size: .9375rem;
  line-height: 1.5;
  color: var(--gplt-text);
}

.gplt-public-profile-location {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem .55rem;
  margin: 0 0 .75rem;
  font-size: .875rem;
  color: var(--gplt-muted);
  line-height: 1.45;
}

.gplt-public-profile-location-link {
  font-weight: 600;
  color: var(--gplt-text);
  text-decoration: none;
}

.gplt-public-profile-location-link:hover {
  color: var(--gplt-red);
}

.gplt-public-profile-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: .5rem;
  align-items: stretch;
  margin: 0 0 .65rem;
}

.gplt-public-profile-actions.is-owner {
  grid-template-columns: minmax(0, 1fr) auto;
}

.gplt-public-profile-action {
  min-width: 0;
}

.gplt-public-profile-follow-action .gplt-follow-control,
.gplt-public-profile-follow-action .gplt-follow-button,
.gplt-public-profile-booking-button {
  width: 100%;
  justify-content: center;
}

.gplt-public-profile-booking-button {
  display: inline-flex;
  align-items: center;
  text-align: center;
}

.gplt-public-profile-share-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  min-width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 1px solid var(--gplt-border);
  border-radius: var(--gplt-radius-sm, 8px);
  background: var(--gplt-bg-soft);
  color: var(--gplt-text);
  cursor: pointer;
  flex-shrink: 0;
  transition: background .15s ease, border-color .15s ease;
}

.gplt-public-profile-share-button:hover,
.gplt-public-profile-share-button:focus-visible {
  background: #e9e9e9;
  border-color: var(--gplt-text);
}

.gplt-public-profile-share-button svg {
  width: 20px;
  height: 20px;
  display: block;
  flex-shrink: 0;
}

.gplt-public-profile-secondary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem .75rem;
  margin-bottom: .35rem;
}

.gplt-public-profile-secondary .gplt-profile-social {
  margin-bottom: 0;
}

.gplt-profile-portfolios,
.gplt-profile-portfolio-shell {
  width: 100%;
}

.gplt-profile-portfolio-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  padding: .35rem 0 .85rem;
  border-top: 1px solid var(--gplt-border);
  border-bottom: 1px solid var(--gplt-border);
  margin-bottom: .15rem;
}

.gplt-profile-media-tabs {
  display: inline-flex;
  align-items: center;
  gap: .15rem;
  max-width: 100%;
  border-bottom: 1px solid var(--gplt-border);
}

.gplt-profile-media-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: .45rem .65rem;
  border: 0;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  background: transparent;
  color: var(--gplt-muted);
  cursor: pointer;
  transition: color .15s ease, border-color .15s ease;
}

.gplt-profile-media-tab.is-active,
.gplt-profile-media-tab[aria-pressed="true"] {
  color: var(--gplt-text);
  border-bottom-color: var(--gplt-text);
}

.gplt-profile-media-tab svg {
  display: block;
  width: 1.35rem;
  height: 1.35rem;
}

.gplt-profile-view-toggle {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  max-width: 100%;
}

.gplt-profile-portfolio-filter-empty {
  margin: .5rem 0;
}

.gplt-profile-portfolio-filter-empty-msg[hidden] {
  display: none !important;
}

.gplt-profile-portfolio-grid[hidden],
.gplt-profile-portfolio-list[hidden] {
  display: none !important;
}

.gplt-profile-portfolios.is-grid-mode .gplt-profile-portfolio-list,
.gplt-profile-portfolio-shell.gplt-profile-grid-mode .gplt-profile-portfolio-list {
  display: none !important;
}

.gplt-profile-portfolios.is-large-mode .gplt-profile-portfolio-grid,
.gplt-profile-portfolio-shell.gplt-profile-large-mode .gplt-profile-portfolio-grid {
  display: none !important;
}

.gplt-profile-portfolios.is-grid-mode .gplt-profile-portfolio-grid,
.gplt-profile-portfolio-shell.gplt-profile-grid-mode .gplt-profile-portfolio-grid,
.gplt-profile-portfolio-views.is-showing-grid .gplt-profile-portfolio-grid {
  display: grid !important;
}

.gplt-profile-portfolios.is-large-mode .gplt-profile-portfolio-list,
.gplt-profile-portfolio-shell.gplt-profile-large-mode .gplt-profile-portfolio-list,
.gplt-profile-portfolio-views.is-showing-large .gplt-profile-portfolio-list {
  display: grid !important;
}

.gplt-profile-portfolio-views.is-showing-grid .gplt-profile-portfolio-list {
  display: none !important;
}

.gplt-profile-portfolio-views.is-showing-large .gplt-profile-portfolio-grid {
  display: none !important;
}

.gplt-profile-view-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: .35rem .65rem;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--gplt-muted);
  font: inherit;
  cursor: pointer;
  transition: color .15s ease, border-color .15s ease;
}

.gplt-profile-view-btn.is-active,
.gplt-profile-view-btn[aria-pressed="true"] {
  color: var(--gplt-text);
  border-bottom-color: var(--gplt-text);
}

.gplt-profile-view-icon {
  font-size: 1.1rem;
  line-height: 1;
}

.gplt-profile-view-label {
  font-size: .75rem;
  font-weight: 600;
}

.gplt-profile-portfolio-tile[hidden],
.gplt-profile-portfolio-card[hidden],
[data-gplt-media-type][hidden] {
  display: none !important;
}

.gplt-profile-portfolio-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 2px;
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

@media (max-width: 1200px) {
  .gplt-profile-portfolio-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .gplt-profile-portfolio-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.gplt-public-profile .gplt-profile-portfolios.is-large-mode .gplt-profile-portfolio-card .gplt-portfolio-img,
.gplt-public-profile .gplt-profile-portfolios.is-large-mode .gplt-profile-portfolio-card video,
.gplt-public-profile .gplt-profile-portfolio-views.is-showing-large .gplt-profile-portfolio-card .gplt-portfolio-img,
.gplt-public-profile .gplt-profile-portfolio-views.is-showing-large .gplt-profile-portfolio-card video {
  width: 100%;
  max-height: min(72vh, 760px);
  object-fit: cover;
}

.gplt-profile-portfolio-empty {
  grid-column: 1 / -1;
}

.gplt-profile-portfolio-tile {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--gplt-bg-soft);
}

.gplt-profile-portfolio-tile-link {
  position: absolute;
  inset: 0;
  display: block;
  color: inherit;
  text-decoration: none;
}

.gplt-profile-portfolio-tile-media {
  position: absolute;
  inset: 0;
  display: block;
}

.gplt-profile-portfolio-tile-img,
.gplt-profile-portfolio-tile-media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.gplt-profile-portfolio-tile .gplt-pin-hover {
  z-index: 3;
  padding: .35rem;
  gap: .25rem;
}

.gplt-profile-portfolio-tile:hover .gplt-pin-hover,
.gplt-profile-portfolio-tile:focus-within .gplt-pin-hover {
  opacity: 1;
  background: rgba(0, 0, 0, 0.08);
}

.gplt-profile-portfolio-tile .gplt-pin-action {
  padding: .35rem .55rem;
  font-size: .75rem;
}

.gplt-profile-portfolio-tile-gallery {
  position: absolute;
  top: .35rem;
  inset-inline-end: .35rem;
  padding: .1rem .35rem;
  border-radius: var(--gplt-radius-pill);
  background: rgba(0, 0, 0, .55);
  color: #fff;
  font-size: .6875rem;
  font-weight: 700;
}

.gplt-profile-portfolio-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2px;
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

.gplt-profile-portfolio-list.gplt-masonry {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 959px) {
  .gplt-profile-portfolio-list,
  .gplt-profile-portfolio-list.gplt-masonry {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 599px) {
  .gplt-profile-portfolio-list,
  .gplt-profile-portfolio-list.gplt-masonry {
    grid-template-columns: 1fr;
  }
}

.gplt-profile-portfolio-card {
  border: none;
  border-radius: 0;
  overflow: hidden;
  background: #fff;
}

.gplt-profile-portfolio-card .gplt-pin-meta {
  padding: .75rem .85rem .9rem;
}

.gplt-profile-portfolio-card .gplt-pin-media {
  border-radius: 0;
}

.gplt-profile-portfolio-list.gplt-masonry--related {
  margin-top: 0;
}

.gplt-public-profile .gplt-portfolio-swipe-wrap {
  display: none !important;
}

@media (min-width: 768px) {
  .gplt-public-profile-stats {
    gap: 1.25rem 1.75rem;
  }
}

@media (max-width: 479px) {
  .gplt-public-profile-actions {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  }

  .gplt-public-profile-actions.is-owner {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

@media (max-width: 479px) {
  .gplt-profile-view-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
}

.gplt-profile-tabs,
.gplt-profile .gplt-tabpanels {
  width: 100%;
}

.gplt-profile .gplt-panel-shell--wide {
  padding: 0;
}

.gplt-profile .gplt-certs-grid {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

.gplt-profile-meta {
  list-style: none;
  margin: .25rem 0 .65rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: .35rem .65rem;
  font-size: .875rem;
  color: var(--gplt-muted);
}

@media (min-width: 768px) {
  .gplt-profile-meta { justify-content: flex-start; }
  .gplt-profile-bio { margin-left: 0; margin-right: 0; }
}

.gplt-profile-meta-item {
  display: inline-flex;
  align-items: center;
}

.gplt-profile-meta-item:not(:last-child)::after {
  content: '·';
  margin-left: .65rem;
  color: var(--gplt-border-strong);
}

.gplt-profile-meta-item strong {
  color: var(--gplt-text);
  font-weight: 700;
}

.gplt-profile-meta-reviews {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .25rem .4rem;
  padding: .15rem .45rem;
  margin: -.15rem -.45rem;
  border: none;
  border-radius: var(--gplt-radius-sm);
  background: transparent;
  font: inherit;
  font-size: .875rem;
  color: var(--gplt-muted);
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}

.gplt-profile-meta-reviews:hover {
  background: var(--gplt-bg-soft);
  color: var(--gplt-text);
}

.gplt-profile-meta-reviews strong {
  color: var(--gplt-text);
}

.gplt-stars--inline {
  font-size: .72rem;
  line-height: 1;
}

.gplt-profile-meta-reviews-label {
  font-size: .8125rem;
}

.gplt-profile-meta-reviews--empty {
  font-size: .8125rem;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.gplt-profile-stat-location::before {
  content: '·';
  margin-right: .5rem;
  color: var(--gplt-border-strong);
}

.gplt-chips { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; }
@media (min-width: 768px) { .gplt-chips { justify-content: flex-start; } }

.gplt-chip {
  padding: .35rem .75rem;
  border-radius: var(--gplt-radius-pill);
  background: var(--gplt-bg-soft);
  font-size: .75rem;
  font-weight: 600;
  color: var(--gplt-text);
  border: none;
}

.gplt-chip--static {
  cursor: default;
  pointer-events: none;
}

.gplt-chip-count {
  opacity: .7;
  font-weight: 500;
}

.gplt-endorse-section {
  margin-top: .85rem;
}

.gplt-endorse-heading {
  font-family: var(--gplt-font-sans);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--gplt-muted);
  margin: 0 0 .5rem;
}

.gplt-endorse-lead {
  margin: 0 0 .55rem;
  font-size: .8125rem;
  line-height: 1.45;
  color: var(--gplt-muted);
}

.gplt-endorse-login-prompt {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem;
  margin-top: .55rem;
}

.gplt-endorse-login-lead {
  margin: 0;
  font-size: .8125rem;
  color: var(--gplt-muted);
}

.gplt-btn-sm {
  padding: .5rem .9rem;
  font-size: .8125rem;
}

.gplt-endorse-btn {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
  border: 1px solid transparent;
}

.gplt-endorse-btn:hover {
  background: #E9E9E9;
}

.gplt-endorse-btn.is-endorsed {
  background: var(--gplt-text);
  color: #fff;
}

.gplt-endorse-btn.is-endorsed .gplt-chip-count {
  opacity: .85;
  color: #fff;
}

.gplt-endorse-btn.is-endorsed:hover {
  background: #333;
}

.gplt-endorse-btn.is-loading {
  opacity: .65;
  pointer-events: none;
}

.gplt-profile-ctas {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  align-items: center;
  margin: .75rem 0 .5rem;
  justify-content: flex-start;
}

.gplt-book-btn {
  font-weight: 700;
}

.gplt-profile-filters {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin-bottom: 1rem;
  min-width: 0;
}

.gplt-profile-filters-label {
  flex-shrink: 0;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--gplt-muted);
}

.gplt-profile-filters .gplt-category-scroller {
  flex: 1;
  min-width: 0;
}

/* ── Tabs (Pinterest profile style) ───────────────────────── */
.gplt-tablist {
  display: flex;
  gap: 1.5rem;
  border-bottom: 1px solid var(--gplt-border);
  margin-bottom: 1.25rem;
  overflow-x: auto;
  scrollbar-width: none;
}

.gplt-tablist::-webkit-scrollbar { display: none; }

.gplt-tab {
  flex: 0 0 auto;
  padding: .85rem 0;
  border: none;
  background: none;
  font-family: inherit;
  font-size: .9375rem;
  font-weight: 600;
  color: var(--gplt-muted);
  cursor: pointer;
  position: relative;
  white-space: nowrap;
}

.gplt-tab::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: var(--gplt-text);
  transform: scaleX(0);
  transition: transform .2s var(--gplt-ease);
}

.gplt-tab.is-active {
  color: var(--gplt-red);
}

.gplt-tab.is-active::after {
  transform: scaleX(1);
  background: var(--gplt-red);
}

.gplt-tab-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 .35rem;
  margin-left: .35rem;
  border-radius: var(--gplt-radius-pill);
  background: var(--gplt-bg-soft);
  font-size: .6875rem;
  font-weight: 700;
  line-height: 1;
  color: var(--gplt-muted);
}

.gplt-tab.is-active .gplt-tab-badge {
  background: var(--gplt-red);
  color: #fff;
}

.gplt-tabpanel { display: none; }
.gplt-tabpanel.is-active { display: block; }

.gplt-tabpanel-lead {
  color: var(--gplt-muted);
  font-size: .875rem;
  margin: 0 0 1rem;
}

/* ── Unified panel shell (reviews, certs, etc.) ───────────── */
.gplt-panel-shell {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  background: #fff;
  border: 1px solid var(--gplt-border);
  border-radius: var(--gplt-radius-pin);
  overflow: hidden;
}

.gplt-panel-shell--wide {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding: 1rem;
}

.gplt-panel-shell--wide .gplt-certs-grid {
  gap: .75rem;
}

.gplt-panel-shell--wide .gplt-cert-card {
  margin: 0;
}

.gplt-panel-divider {
  height: 1px;
  background: var(--gplt-border);
  margin: 0;
}

/* ── Buttons ──────────────────────────────────────────────── */
.gplt-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .7rem 1.15rem;
  border-radius: var(--gplt-radius-pill);
  border: none;
  font-family: inherit;
  font-size: .9375rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: background .15s ease, transform .15s ease;
}

.gplt-btn-primary {
  background: var(--gplt-red);
  color: #fff;
}

.gplt-btn-primary:hover {
  background: var(--gplt-red-hover);
  color: #fff;
}

.gplt-btn-outline {
  background: var(--gplt-bg-soft);
  color: var(--gplt-text);
}

.gplt-btn-outline:hover {
  background: #E9E9E9;
}

.gplt-btn-ghost {
  background: transparent;
  color: var(--gplt-muted);
  padding: .7rem .85rem;
}

.gplt-btn-ghost:hover {
  background: var(--gplt-bg-soft);
  color: var(--gplt-text);
}

/* ── Legacy grids (certs, specialists) ────────────────────── */
.gplt-feed-grid,
.gplt-specialist-grid,
.gplt-certs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
}

.gplt-specialist-card,
.gplt-cert-card {
  background: var(--gplt-surface);
  border-radius: var(--gplt-radius-pin);
  border: 1px solid var(--gplt-border);
  padding: 1.25rem;
  box-shadow: none;
}

.gplt-cert-card {
  text-align: center;
}

.gplt-specialist-card .gplt-mini-avatar {
  width: 72px;
  height: 72px;
  margin: 0 auto .75rem;
}

.gplt-cert-card { padding: 1rem; }

.gplt-cert-meta {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .3rem .75rem;
  font-size: .875rem;
  margin: .75rem 0;
}

.gplt-cert-meta dt { color: var(--gplt-muted); font-weight: 500; }

/* ── Forms & filters ──────────────────────────────────────── */
.gplt-filters {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: 1.25rem;
  padding: .75rem;
  background: var(--gplt-bg-soft);
  border-radius: var(--gplt-radius-pin);
}

.gplt-filters input,
.gplt-filters select {
  flex: 1;
  min-width: 140px;
  padding: .65rem .85rem;
  border: 1px solid var(--gplt-border);
  border-radius: var(--gplt-radius-pill);
  background: #fff;
  font-family: inherit;
  font-size: .875rem;
}

.gplt-form {
  max-width: 560px;
  padding: 1.25rem;
  background: var(--gplt-bg-soft);
  border-radius: var(--gplt-radius-pin);
}

.gplt-form-group { margin-bottom: 1rem; }
.gplt-form-help {
  margin: .35rem 0 0;
  font-size: .8125rem;
  color: var(--gplt-muted);
  line-height: 1.4;
}
.gplt-form-group label,
.gplt-form-group legend {
  display: block;
  font-weight: 600;
  margin-bottom: .35rem;
  font-size: .875rem;
}

.gplt-form input,
.gplt-form textarea,
.gplt-form select {
  width: 100%;
  padding: .65rem .85rem;
  border: 1px solid var(--gplt-border);
  border-radius: var(--gplt-radius-sm);
  font-family: inherit;
}

.gplt-review-form {
  margin: 0;
  padding: 1.25rem 1.35rem 1.35rem;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  max-width: none;
}

.gplt-review-form-head {
  margin-bottom: 1.15rem;
}

.gplt-review-form-lead {
  margin: 0;
  font-size: .875rem;
  color: var(--gplt-muted);
  line-height: 1.5;
}

.gplt-review-form .gplt-form-group {
  margin-bottom: 1.1rem;
}

.gplt-review-form .gplt-form-label {
  display: block;
  font-size: .8125rem;
  font-weight: 600;
  color: var(--gplt-text);
  margin-bottom: .45rem;
}

/* Star picker */
.gplt-star-picker {
  display: inline-flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  gap: .15rem;
}

.gplt-star-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.gplt-star-pick {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  font-size: 1.65rem;
  line-height: 1;
  color: #D1D1D1;
  cursor: pointer;
  border-radius: 50%;
  transition: color .12s ease, transform .12s ease, background .12s ease;
  user-select: none;
}

.gplt-star-pick:hover {
  background: var(--gplt-blush);
  transform: scale(1.08);
}

.gplt-star-picker .gplt-star-input:checked ~ .gplt-star-pick,
.gplt-star-pick:hover,
.gplt-star-pick:hover ~ .gplt-star-pick {
  color: var(--gplt-red);
}

.gplt-star-picker-hint {
  margin: .45rem 0 0;
  font-size: .8125rem;
  color: var(--gplt-muted);
  min-height: 1.25em;
}

.gplt-review-textarea {
  width: 100%;
  min-height: 120px;
  padding: .75rem .85rem;
  border: 1px solid var(--gplt-border);
  border-radius: var(--gplt-radius-sm);
  background: var(--gplt-bg-soft);
  font-family: inherit;
  font-size: .9375rem;
  line-height: 1.55;
  resize: vertical;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.gplt-review-textarea::placeholder {
  color: #A8A8A8;
}

.gplt-review-textarea:focus {
  outline: none;
  border-color: var(--gplt-red);
  background: #fff;
  box-shadow: 0 0 0 3px var(--gplt-primary-light);
}

.gplt-review-text-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: .35rem;
  font-size: .75rem;
  color: var(--gplt-muted);
}

.gplt-char-count.is-valid { color: var(--gplt-success); }
.gplt-char-count.is-invalid { color: var(--gplt-danger); }

.gplt-review-form .gplt-form-errors {
  margin: 0 0 .85rem;
  padding: .55rem .75rem;
  background: #FEF2F2;
  border: 1px solid #FECACA;
  border-radius: var(--gplt-radius-sm);
  color: var(--gplt-danger);
  font-size: .8125rem;
}

.gplt-review-form-actions {
  display: flex;
  justify-content: flex-end;
}

.gplt-review-form .gplt-btn-primary:disabled {
  opacity: .55;
  cursor: not-allowed;
}

.gplt-review-form.is-loading .gplt-btn-primary {
  opacity: .7;
  pointer-events: none;
}

/* Reviews panel — inside unified shell */
.gplt-reviews-shell .gplt-reviews-summary {
  padding: 1.15rem 1.35rem;
  background: var(--gplt-bg-soft);
  border-bottom: 1px solid var(--gplt-border);
}

.gplt-reviews-shell .gplt-reviews-summary--empty {
  padding: 1rem 1.35rem;
}

.gplt-reviews-summary-empty {
  margin: 0;
  font-size: .875rem;
  line-height: 1.5;
  color: var(--gplt-muted);
}

.gplt-reviews-score {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.gplt-reviews-score-value {
  font-family: var(--gplt-font-sans);
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--gplt-text);
}

.gplt-reviews-score-meta {
  display: flex;
  flex-direction: column;
  gap: .2rem;
}

.gplt-reviews-score-meta .gplt-stars {
  font-size: .95rem;
}

.gplt-reviews-count {
  font-size: .8125rem;
  color: var(--gplt-muted);
}

.gplt-reviews-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.gplt-reviews-zero {
  margin: 0;
  padding: 1.35rem 1.35rem 1rem;
  text-align: center;
  font-size: .875rem;
  color: var(--gplt-muted);
  line-height: 1.55;
}

.gplt-reviews-shell .gplt-review-card {
  padding: 1rem 1.35rem;
  border: none;
  border-radius: 0;
  border-bottom: 1px solid var(--gplt-border);
  margin: 0;
  background: transparent;
  box-shadow: none;
}

.gplt-reviews-shell .gplt-review-card:last-child {
  border-bottom: none;
}

.gplt-reviews-shell .gplt-reviews-list:not(:has(.gplt-review-card)) .gplt-reviews-zero {
  padding-bottom: 1.35rem;
}

.gplt-review-compose {
  max-width: none;
}

.gplt-reviews-shell .gplt-review-login-prompt {
  padding: 1.25rem 1.35rem 1.35rem;
  background: transparent;
  border: none;
  border-radius: 0;
  text-align: left;
  max-width: none;
}

.gplt-reviews-shell .gplt-review-login-prompt .gplt-btn {
  margin-top: .25rem;
}

.gplt-form-errors { color: var(--gplt-danger); font-size: .875rem; }

/* ── Empty, reviews, misc ─────────────────────────────────── */
.gplt-empty {
  text-align: center;
  padding: 3rem 1.5rem;
  color: var(--gplt-muted);
  background: var(--gplt-bg-soft);
  border-radius: var(--gplt-radius-pin);
  width: 100%;
}

.gplt-empty p { margin: 0; }

.gplt-review-card {
  padding: 1rem 1.1rem;
  border: 1px solid var(--gplt-border);
  border-radius: var(--gplt-radius-pin);
  margin-bottom: .65rem;
  background: #fff;
}

.gplt-review-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem;
  margin-bottom: .5rem;
}

.gplt-review-author {
  display: flex;
  flex-direction: column;
  gap: .15rem;
}

.gplt-review-author strong {
  font-size: .875rem;
  font-weight: 600;
}

.gplt-review-author time {
  font-size: .75rem;
  color: var(--gplt-muted);
  font-weight: 400;
}

.gplt-review-body {
  margin: 0;
  font-size: .9375rem;
  line-height: 1.55;
  color: var(--gplt-text);
}

.gplt-stars--sm { font-size: .875rem; }

.gplt-stars { letter-spacing: .05em; color: var(--gplt-border-strong); }
.gplt-star.is-filled { color: var(--gplt-red); }
.gplt-rating-summary { display: flex; align-items: center; gap: .4rem; margin: .5rem 0; }

.gplt-feed-header {
  text-align: center;
  padding: 2rem 1rem;
  margin-bottom: 1.5rem;
}

.gplt-eyebrow {
  font-size: .75rem;
  font-weight: 600;
  color: var(--gplt-muted);
  text-transform: uppercase;
  letter-spacing: .1em;
}

.gplt-validation-grid { display: grid; gap: 1rem; }
@media (min-width: 768px) { .gplt-validation-grid { grid-template-columns: 2fr 1fr; } }

/* ── Certificate verification page ─────────────────────────── */
#gplt-social-wrap .gplt-cert-view {
  width: 100%;
}

#gplt-social-wrap .gplt-cert-view-shell {
  max-width: 760px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid var(--gplt-border);
  border-radius: var(--gplt-radius-pin);
  padding: 1.35rem 1.4rem 1.5rem;
}

#gplt-social-wrap .gplt-cert-view-header {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--gplt-border);
}

@media (min-width: 768px) {
  #gplt-social-wrap .gplt-cert-view-header {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
  }
}

#gplt-social-wrap .gplt-cert-view-intro {
  flex: 1;
  min-width: 0;
}

#gplt-social-wrap .gplt-cert-view-title {
  font-family: var(--gplt-font-sans);
  font-size: clamp(1.35rem, 3vw, 1.75rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: .45rem 0 .35rem;
  color: var(--gplt-text);
}

#gplt-social-wrap .gplt-cert-view-lead {
  margin: 0;
  font-size: .9375rem;
  color: var(--gplt-muted);
  line-height: 1.45;
  max-width: 42ch;
}

#gplt-social-wrap .gplt-cert-view-actions {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: .5rem;
  width: 100%;
}

@media (min-width: 768px) {
  #gplt-social-wrap .gplt-cert-view-actions {
    width: auto;
    justify-content: flex-end;
    flex-shrink: 0;
  }
}

#gplt-social-wrap .gplt-cert-view-actions .gplt-btn {
  flex: 1 1 auto;
  justify-content: center;
  white-space: nowrap;
  min-width: 0;
}

@media (min-width: 768px) {
  #gplt-social-wrap .gplt-cert-view-actions .gplt-btn {
    flex: 0 0 auto;
  }
}

#gplt-social-wrap .gplt-cert-view-holder {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: .85rem 1rem;
  margin-bottom: 1.25rem;
  background: var(--gplt-bg-soft);
  border-radius: var(--gplt-radius-sm);
  text-decoration: none;
  color: inherit;
  transition: background .15s ease;
}

#gplt-social-wrap .gplt-cert-view-holder:hover {
  background: #E9E9E9;
}

#gplt-social-wrap .gplt-cert-view-holder-avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

#gplt-social-wrap .gplt-cert-view-holder-label {
  display: block;
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--gplt-muted);
  margin-bottom: .15rem;
}

#gplt-social-wrap .gplt-cert-view-holder-name {
  display: block;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--gplt-text);
}

#gplt-social-wrap .gplt-cert-view-holder:hover .gplt-cert-view-holder-name {
  color: var(--gplt-red);
}

#gplt-social-wrap .gplt-cert-view-details {
  display: grid;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

@media (min-width: 640px) {
  #gplt-social-wrap .gplt-cert-view-details {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 1.25rem;
  }
}

#gplt-social-wrap .gplt-cert-view-meta {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .65rem;
}

#gplt-social-wrap .gplt-cert-view-meta-row {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: .5rem 1rem;
  align-items: baseline;
}

#gplt-social-wrap .gplt-cert-view-meta-row--full {
  grid-template-columns: 1fr;
}

#gplt-social-wrap .gplt-cert-view-meta-row--full dt {
  margin-bottom: .15rem;
}

#gplt-social-wrap .gplt-cert-view-meta dt {
  margin: 0;
  font-size: .75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--gplt-muted);
}

#gplt-social-wrap .gplt-cert-view-meta dd {
  margin: 0;
  font-size: .9375rem;
  font-weight: 600;
  color: var(--gplt-text);
  line-height: 1.4;
}

#gplt-social-wrap .gplt-cert-view-qr {
  text-align: center;
  padding: .85rem;
  background: var(--gplt-bg-soft);
  border-radius: var(--gplt-radius-sm);
  flex-shrink: 0;
}

#gplt-social-wrap .gplt-cert-view-qr img {
  display: block;
  width: 120px;
  height: 120px;
  margin: 0 auto;
}

#gplt-social-wrap .gplt-cert-view-qr p {
  margin: .5rem 0 0;
  font-size: .75rem;
  font-weight: 600;
  color: var(--gplt-muted);
}

#gplt-social-wrap .gplt-cert-view-image {
  margin: 0 0 1.25rem;
  border-radius: var(--gplt-radius-sm);
  overflow: hidden;
  border: 1px solid var(--gplt-border);
  background: var(--gplt-bg-soft);
}

#gplt-social-wrap .gplt-cert-view-image img {
  display: block;
  width: 100%;
  height: auto;
}

#gplt-social-wrap .gplt-cert-view-section-title {
  font-size: .9375rem;
  font-weight: 700;
  margin: 0 0 .75rem;
  color: var(--gplt-text);
}

#gplt-social-wrap .gplt-cert-view-portfolio-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
}

@media (min-width: 640px) {
  #gplt-social-wrap .gplt-cert-view-portfolio-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

#gplt-social-wrap .gplt-cert-view-portfolio-thumb {
  display: block;
  border-radius: var(--gplt-radius-sm);
  overflow: hidden;
  background: var(--gplt-bg-soft);
  line-height: 0;
}

#gplt-social-wrap .gplt-cert-view-portfolio-thumb img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  display: block;
  transition: transform .2s ease;
}

#gplt-social-wrap .gplt-cert-view-portfolio-thumb:hover img {
  transform: scale(1.03);
}

#gplt-social-wrap .gplt-cert-card--grid {
  height: 100%;
  transform: none;
}

#gplt-social-wrap .gplt-cert-card--grid:hover {
  transform: none;
  border-color: var(--gplt-border);
}

#gplt-social-wrap .gplt-cert-card-title {
  font-size: 1rem;
  font-weight: 700;
  margin: .35rem 0 0;
  line-height: 1.3;
}

#gplt-social-wrap .gplt-badge-expired,
#gplt-social-wrap .gplt-badge-revoked {
  background: #FFF3E0;
  color: var(--gplt-warning);
}

#gplt-social-wrap .gplt-btn-outline {
  background: #fff;
  border: 1px solid var(--gplt-border-strong);
  color: var(--gplt-text);
}

#gplt-social-wrap .gplt-btn-outline:hover {
  background: var(--gplt-bg-soft);
  color: var(--gplt-text);
}

.gplt-toast-region {
  position: fixed;
  bottom: 1.25rem;
  right: 1.25rem;
  z-index: 9999;
  pointer-events: none;
}

.gplt-toast {
  background: var(--gplt-text);
  color: #fff;
  padding: .75rem 1.15rem;
  border-radius: var(--gplt-radius-pill);
  font-size: .875rem;
  font-weight: 600;
  box-shadow: var(--gplt-shadow-hover);
  animation: gplt-toast-in .25s ease;
}

.gplt-toast--membership {
  border-radius: 16px;
  padding: 1rem 1.1rem;
  max-width: min(360px, calc(100vw - 2.5rem));
  text-align: center;
}

.gplt-toast-membership-lead {
  margin: 0 0 .85rem;
  font-size: .9rem;
  line-height: 1.55;
  font-weight: 500;
}

.gplt-toast-membership-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: center;
}

.gplt-toast-membership-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .45rem .9rem;
  border-radius: 999px;
  font-size: .8125rem;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, .35);
  color: #fff;
}

.gplt-toast-membership-btn--primary {
  background: var(--gplt-red, #e60023);
  border-color: var(--gplt-red, #e60023);
}

@keyframes gplt-toast-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}

.gplt-skeleton {
  padding: 2rem;
  text-align: center;
  color: var(--gplt-muted);
  grid-column: 1 / -1;
}

.gplt-archive-pin .gplt-pin-media { margin-bottom: 0; }

.gplt-card-actions { display: flex; gap: .4rem; flex-wrap: wrap; }

#gplt-social-wrap:has(.gplt-social-subheader) {
  padding-top: 0;
}

#gplt-social-wrap:has([data-gplt-megamenu].is-open) {
  overflow-x: visible;
}

/* Social nav & directory */
.gplt-social-subheader {
  width: 100%;
  border-bottom: 1px solid var(--gplt-border);
  background: #fff;
  margin-bottom: 1rem;
  padding-top: clamp(1rem, 2vw, 1.5rem);
  position: relative;
  z-index: 60;
}

.gplt-social-subheader-inner {
  max-width: var(--gplt-content-max, 1320px);
  margin: 0 auto;
  padding: .65rem 1rem;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: .75rem 1rem;
  flex-wrap: wrap;
  min-width: 0;
}

.gplt-social-subheader-inner--megabar {
  display: block;
  padding: .85rem 1rem 1rem;
}

@media (min-width: 768px) {
  .gplt-social-subheader-inner {
    justify-content: center;
  }

  .gplt-social-subheader-inner--megabar {
    padding-inline: clamp(1rem, 3vw, 2rem);
  }
}

.gplt-social-brand {
  font-family: var(--gplt-font-serif);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--gplt-text);
  text-decoration: none;
  line-height: 1;
  flex-shrink: 0;
  align-self: center;
}

.gplt-social-brand:hover,
.gplt-social-brand.is-active {
  color: var(--gplt-red);
}

.gplt-social-megabar {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 100%;
  min-width: 0;
}

.gplt-social-megabar-core {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  flex: 1 1 auto;
  min-width: 0;
  justify-content: flex-start;
  overflow: visible;
}

.gplt-social-megabar-navrow {
  display: flex;
  align-items: center;
  gap: .35rem;
  flex-wrap: wrap;
  min-width: 0;
  width: 100%;
  justify-content: flex-start;
}

.gplt-social-megamenu-anchor {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 100%;
  overflow: visible;
}

.gplt-social-megabar-pill {
  flex: 0 1 auto;
  width: fit-content;
  max-width: 100%;
}

[data-gplt-megamenu].is-open::before {
  content: '';
  position: absolute;
  top: 100%;
  inset-inline: 0;
  height: .65rem;
}

.gplt-social-megamenu-triggers {
  display: inline-flex;
  align-items: center;
  gap: .15rem;
  padding: .35rem;
  background: #fff;
  border: 1px solid var(--gplt-border);
  border-radius: 999px;
  box-shadow: 0 8px 24px rgba(17, 17, 17, 0.06);
  flex-wrap: wrap;
  max-width: 100%;
}

.gplt-social-megamenu-toplinks {
  display: inline-flex;
  align-items: center;
  gap: .15rem;
  flex-wrap: wrap;
  min-width: 0;
}

.gplt-social-megamenu-toplink {
  display: inline-flex;
  align-items: center;
  padding: .55rem .85rem;
  border-radius: 999px;
  color: var(--gplt-text);
  font-size: .875rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s ease, color .15s ease;
}

.gplt-social-megamenu-toplink:hover,
.gplt-social-megamenu-toplink.is-active {
  background: var(--gplt-bg-soft);
  color: var(--gplt-red);
}

.gplt-social-megamenu-trigger {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .55rem .95rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--gplt-muted);
  font: inherit;
  font-size: .9375rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}

.gplt-social-megamenu-trigger:hover,
.gplt-social-megamenu-trigger.is-active,
[data-gplt-megamenu].is-open .gplt-social-megamenu-trigger.is-active {
  background: var(--gplt-bg-soft);
  color: var(--gplt-text);
}

.gplt-social-megamenu-chevron {
  width: .95rem;
  height: .95rem;
  transition: transform .18s ease;
}

[data-gplt-megamenu].is-open .gplt-social-megamenu-trigger.is-active .gplt-social-megamenu-chevron,
[data-gplt-megamenu].is-open .gplt-social-megamenu-trigger[aria-expanded="true"] .gplt-social-megamenu-chevron {
  transform: rotate(180deg);
}

.gplt-social-megamenu-panel {
  position: absolute;
  top: calc(100% + .65rem);
  inset-inline-start: 0;
  width: min(980px, calc(100vw - 2rem));
  max-width: none;
  z-index: 100;
  background: #fff;
  border: 1px solid var(--gplt-border);
  border-radius: 24px;
  box-shadow: 0 24px 60px rgba(17, 17, 17, 0.12);
  overflow: hidden;
}

[data-gplt-megamenu]:not(.is-open) .gplt-social-megamenu-panel[hidden] {
  display: none;
}

.gplt-social-megamenu-panel-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

@media (min-width: 760px) {
  .gplt-social-megamenu-panel-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}

.gplt-social-megamenu-col {
  min-width: 0;
  padding: 1.1rem 1.15rem 1rem;
}

.gplt-social-megamenu-col + .gplt-social-megamenu-col {
  border-top: 1px solid var(--gplt-border);
}

@media (min-width: 760px) {
  .gplt-social-megamenu-col + .gplt-social-megamenu-col {
    border-top: 0;
    border-inline-start: 1px solid var(--gplt-border);
  }
}

.gplt-social-megamenu-col.is-accent {
  background: linear-gradient(180deg, #f5f8ff 0%, #f8f6ff 100%);
}

.gplt-social-megamenu-kicker {
  margin: 0 0 .85rem;
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--gplt-muted);
}

.gplt-social-megamenu-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.gplt-social-megamenu-list--rich {
  display: grid;
  gap: .15rem;
  max-height: min(24rem, 52vh);
  overflow-y: auto;
  scrollbar-width: thin;
}

.gplt-megamenu-item {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: .65rem .7rem;
  border-radius: 14px;
  color: inherit;
  text-decoration: none;
  transition: background .15s ease;
}

.gplt-megamenu-item:hover,
.gplt-megamenu-item.is-active {
  background: rgba(17, 17, 17, 0.04);
}

.gplt-megamenu-item-copy {
  display: grid;
  gap: .2rem;
  min-width: 0;
}

.gplt-megamenu-item-title {
  font-size: .9375rem;
  font-weight: 700;
  color: var(--gplt-text);
  line-height: 1.35;
}

.gplt-megamenu-item-desc {
  font-size: .8125rem;
  line-height: 1.45;
  color: var(--gplt-muted);
}

.gplt-megamenu-item-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 12px;
  flex: 0 0 auto;
}

.gplt-megamenu-item-icon svg {
  width: 1.15rem;
  height: 1.15rem;
}

.gplt-megamenu-item-icon--blue { background: #edf4ff; color: #2563eb; }
.gplt-megamenu-item-icon--violet { background: #f3edff; color: #7c3aed; }
.gplt-megamenu-item-icon--amber { background: #fff7df; color: #d97706; }
.gplt-megamenu-item-icon--rose { background: #ffe9ef; color: #e11d48; }
.gplt-megamenu-item-icon--green { background: #ebf8ef; color: #059669; }
.gplt-megamenu-item-icon--indigo { background: #eef0ff; color: #4338ca; }
.gplt-megamenu-item-icon--sky { background: #ebf8ff; color: #0284c7; }
.gplt-megamenu-item-icon--orange { background: #fff1e8; color: #ea580c; }

.gplt-megamenu-more-link {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin-top: .85rem;
  color: #2563eb;
  font-size: .875rem;
  font-weight: 700;
  text-decoration: none;
}

.gplt-megamenu-more-link svg {
  width: .95rem;
  height: .95rem;
}

.gplt-social-megamenu-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .85rem 1.15rem;
  border-top: 1px solid var(--gplt-border);
  background: #fafafa;
}

.gplt-social-megamenu-footer-copy {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-width: 0;
}

.gplt-social-megamenu-footer-copy p {
  margin: 0;
  font-size: .875rem;
  color: var(--gplt-text);
}

.gplt-social-megamenu-footer-badge {
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 6px;
  background: linear-gradient(135deg, #2563eb, #7c3aed);
  flex: 0 0 auto;
}

.gplt-social-megamenu-footer-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
  padding: .55rem 1rem;
  border-radius: 999px;
  font-size: .875rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
  border: 1px solid var(--gplt-border-strong);
  background: #fff;
  color: var(--gplt-text);
}

.gplt-social-megamenu-footer-btn:hover {
  background: var(--gplt-bg-soft);
}

.gplt-social-megabar-actions {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex: 0 0 auto;
}

.gplt-social-megabar-navrow > .gplt-social-megabar-actions {
  margin-inline-start: auto;
  margin-inline-end: 0;
}

.gplt-social-megabar-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
  padding: .55rem 1rem;
  border-radius: 999px;
  font-size: .875rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.gplt-social-megabar-btn--ghost {
  border: 1px solid var(--gplt-border-strong);
  background: #fff;
  color: var(--gplt-text);
}

.gplt-social-megabar-btn--ghost:hover {
  background: var(--gplt-bg-soft);
}

.gplt-social-megabar-btn--primary {
  border: 1px solid #2563eb;
  background: #2563eb;
  color: #fff;
}

.gplt-social-megabar-btn--primary:hover {
  background: #1d4ed8;
  border-color: #1d4ed8;
}

.gplt-mobile-nav-bar,
.gplt-mobile-nav-overlay,
.gplt-mobile-nav-drawer-head,
.gplt-mobile-nav-site-links,
.gplt-mobile-nav-drawer-auth,
.gplt-mobile-nav-accordion-trigger {
  display: none;
}

.gplt-megamenu-desktop-kicker {
  display: block;
}

@media (min-width: 760px) {
  .gplt-mobile-nav-accordion-panel[hidden] {
    display: block !important;
  }
}

.gplt-mobile-nav-bar {
  align-items: center;
  gap: .75rem;
  width: 100%;
  min-height: 3rem;
  padding: .15rem 0;
}

.gplt-mobile-nav-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 1px solid var(--gplt-border);
  border-radius: 12px;
  background: #fff;
  color: var(--gplt-text);
  cursor: pointer;
  flex: 0 0 auto;
  transition: background .15s ease, border-color .15s ease;
}

.gplt-mobile-nav-toggle:hover,
.gplt-mobile-nav-toggle.is-active {
  background: var(--gplt-bg-soft);
  border-color: var(--gplt-border-strong);
}

.gplt-hamburger {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: .28rem;
  width: 1.1rem;
  height: 1.1rem;
}

.gplt-hamburger span {
  display: block;
  width: 100%;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transition: transform .18s ease, opacity .18s ease;
}

.gplt-mobile-nav-toggle.is-active .gplt-hamburger span:nth-child(1) {
  transform: translateY(.42rem) rotate(45deg);
}

.gplt-mobile-nav-toggle.is-active .gplt-hamburger span:nth-child(2) {
  opacity: 0;
}

.gplt-mobile-nav-toggle.is-active .gplt-hamburger span:nth-child(3) {
  transform: translateY(-.42rem) rotate(-45deg);
}

.gplt-mobile-nav-bar-title {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--gplt-text);
}

.gplt-mobile-nav-bar-actions {
  display: flex;
  align-items: center;
  gap: .35rem;
  flex: 0 0 auto;
}

.gplt-mobile-nav-bar-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.25rem;
  padding: .45rem .85rem;
  border: 1px solid var(--gplt-border-strong);
  border-radius: 999px;
  background: #fff;
  color: var(--gplt-text);
  font-size: .8125rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

@media (max-width: 759px) {
  .gplt-social-megabar {
    flex-direction: column;
    align-items: stretch;
  }

  .gplt-mobile-nav-bar {
    display: flex;
  }

  .gplt-social-megabar-desktop {
    display: none;
  }

  .gplt-mobile-nav-overlay {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 110;
    background: rgba(17, 17, 17, 0.45);
    backdrop-filter: blur(2px);
  }

  .gplt-mobile-nav-overlay[hidden] {
    display: none;
  }

  .gplt-social-megamenu-panel {
    position: fixed;
    top: 0;
    inset-inline-end: 0;
    bottom: 0;
    width: min(92vw, 22rem);
    max-width: none;
    margin: 0;
    border-radius: 0;
    border: 0;
    border-inline-start: 1px solid var(--gplt-border);
    box-shadow: -12px 0 40px rgba(17, 17, 17, 0.14);
    z-index: 120;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
  }

  [data-gplt-megamenu]:not(.is-open) .gplt-social-megamenu-panel {
    display: none;
  }

  .gplt-mobile-nav-drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: 1rem 1rem .75rem;
    border-bottom: 1px solid var(--gplt-border);
    background: #fff;
    position: sticky;
    top: 0;
    z-index: 1;
  }

  .gplt-mobile-nav-drawer-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--gplt-text);
  }

  .gplt-mobile-nav-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: var(--gplt-bg-soft);
    color: var(--gplt-text);
    cursor: pointer;
  }

  .gplt-mobile-nav-close svg {
    width: 1.15rem;
    height: 1.15rem;
  }

  .gplt-mobile-nav-site-links {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    padding: .85rem 1rem;
    border-top: 1px solid var(--gplt-border);
    border-bottom: 1px solid var(--gplt-border);
    background: #fafafa;
  }

  .gplt-mobile-nav-accordion-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    width: 100%;
    min-height: 2.5rem;
    margin: 0;
    padding: .35rem 0;
    border: 0;
    background: transparent;
    color: var(--gplt-text);
    font: inherit;
    font-size: .9375rem;
    font-weight: 800;
    line-height: 1.35;
    text-align: inherit;
    cursor: pointer;
  }

  .gplt-megamenu-desktop-kicker {
    display: none;
  }

  .gplt-social-megamenu-col.gplt-mobile-nav-accordion {
    padding: .55rem 1rem;
    align-self: start;
  }

  .gplt-mobile-nav-accordion-chevron {
    width: 1rem;
    height: 1rem;
    flex: 0 0 auto;
    color: var(--gplt-muted);
    transition: transform .18s ease;
  }

  .gplt-mobile-nav-accordion.is-open .gplt-mobile-nav-accordion-chevron {
    transform: rotate(180deg);
  }

  .gplt-mobile-nav-accordion-panel {
    padding-top: .65rem;
  }

  .gplt-mobile-nav-accordion:not(.is-open) .gplt-mobile-nav-accordion-panel {
    display: none;
  }

  .gplt-mobile-nav-site-link {
    display: flex;
    align-items: center;
    min-height: 2.75rem;
    padding: .55rem .75rem;
    border-radius: 12px;
    color: var(--gplt-text);
    font-size: .9375rem;
    font-weight: 700;
    text-decoration: none;
  }

  .gplt-mobile-nav-site-link:hover,
  .gplt-mobile-nav-site-link.is-active {
    background: #fff;
    color: var(--gplt-red);
  }

  .gplt-social-megamenu-panel-grid {
    flex: 0 0 auto;
    align-content: start;
  }

  .gplt-social-megamenu-list--rich {
    max-height: none;
  }

  .gplt-social-megamenu-footer {
    flex-direction: column;
    align-items: stretch;
  }

  .gplt-mobile-nav-drawer-auth {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding: 1rem;
    border-top: 1px solid var(--gplt-border);
    background: #fff;
  }

  .gplt-mobile-nav-drawer-auth .gplt-social-megabar-btn {
    width: 100%;
  }

  body.gplt-mobile-nav-open {
    overflow: hidden;
  }
}

.gplt-social-nav-scroll {
  display: flex;
  align-items: center;
  gap: .2rem;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
  padding: 0 .15rem;
}

.gplt-social-nav-scroll::-webkit-scrollbar {
  display: none;
}

.gplt-social-nav-link {
  flex: 0 0 auto;
  text-align: center;
  padding: .55rem 1rem;
  border-radius: var(--gplt-radius-pill);
  font-size: .875rem;
  font-weight: 600;
  color: var(--gplt-muted);
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
  white-space: nowrap;
}

.gplt-social-nav-link.gplt-social-nav-cat {
  padding: .45rem .7rem;
  font-size: .8125rem;
  font-weight: 600;
}

.gplt-social-nav-tab {
  flex-shrink: 0;
}

.gplt-social-nav-link.is-active,
.gplt-social-nav-link:hover {
  background: #fff;
  color: var(--gplt-text);
  box-shadow: var(--gplt-shadow-xs);
}

.gplt-directory-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-bottom: 1.25rem;
  align-items: center;
}

.gplt-directory-search {
  flex: 1;
  min-width: 200px;
  padding: .7rem 1rem;
  border: none;
  border-radius: var(--gplt-radius-pill);
  background: var(--gplt-bg-soft);
  font-family: inherit;
  font-size: .9375rem;
}

.gplt-directory-search:focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--gplt-red);
  background: #fff;
}

.gplt-directory-sort,
.gplt-directory-level {
  padding: .65rem 2rem .65rem .85rem;
  border: none;
  border-radius: var(--gplt-radius-pill);
  background: var(--gplt-bg-soft);
  font-family: inherit;
  font-size: .875rem;
  font-weight: 600;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23767676' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .75rem center;
  cursor: pointer;
}

.gplt-directory-level {
  min-width: 11rem;
}

[dir="rtl"] .gplt-directory-sort,
[dir="rtl"] .gplt-directory-level {
  padding: .65rem .85rem .65rem 2rem;
  background-position: left .75rem center;
}

.gplt-load-more-wrap {
  display: flex;
  justify-content: center;
  margin-top: 1.5rem;
}

.gplt-artist-grid,
.gplt-specialist-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.15rem;
  width: 100%;
}

@media (max-width: 639px) {
  .gplt-artist-grid,
  .gplt-specialist-grid {
    grid-template-columns: 1fr;
  }
}

/* ── Specialist listing (compact) ─────────────────────────── */
.gplt-directory--specialists {
  --gplt-specialist-accent: #c75b7a;
  --gplt-specialist-accent-dark: #a94461;
  --gplt-specialist-accent-border: rgba(199, 91, 122, .22);
  --gplt-specialist-accent-border-soft: rgba(199, 91, 122, .14);
  --gplt-specialist-accent-bg: rgba(199, 91, 122, .05);
  --gplt-specialist-accent-bg-strong: rgba(199, 91, 122, .08);
  --gplt-specialist-accent-shadow: rgba(199, 91, 122, .12);
  --gplt-specialist-warm-muted: #9b7878;
  --gplt-specialist-warm-line: #f0e4e6;
  --gplt-specialist-card-bg: #fff;
  --gplt-specialist-gold: #e8b86d;
  --gplt-specialist-lilac: #c993b8;
  --gplt-specialist-fantasy-gradient: linear-gradient(120deg, #c75b7a 0%, #e8879b 45%, #e8b86d 100%);
  width: 100%;
  box-sizing: border-box;
}

.gplt-directory--specialists .gplt-specialists-hero {
  margin-block: 16px 12px;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.gplt-specialists-title {
  margin: 0 0 .3rem;
  font-size: clamp(1.35rem, 4.2vw, 1.85rem);
  font-weight: 800;
  line-height: 1.22;
  color: #3d2c2e;
}

.gplt-specialists-title-main {
  color: #3d2c2e;
}

.gplt-specialists-title-accent {
  background: var(--gplt-specialist-fantasy-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.gplt-specialists-lead {
  margin: 0;
  max-width: 100%;
  font-size: .84rem;
  line-height: 1.5;
  color: var(--gplt-specialist-warm-muted);
}

.gplt-specialists-seo-links {
  margin-top: .45rem;
}

.gplt-directory--specialists .gplt-seo-crosslink {
  color: var(--gplt-specialist-accent);
}

.gplt-directory--specialists .gplt-seo-crosslink:hover {
  color: var(--gplt-specialist-accent-dark);
}

.gplt-specialists-advanced-search {
  margin-bottom: .65rem;
}

.gplt-specialists-advanced-search-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  width: 100%;
  min-height: 2.65rem;
  padding: .6rem .95rem;
  border: 1px solid var(--gplt-specialist-accent-border);
  border-radius: 14px;
  background: #fff;
  color: #3d2c2e;
  font-family: inherit;
  font-size: .88rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(61, 44, 46, .04);
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.gplt-specialists-advanced-search-toggle:hover,
.gplt-specialists-advanced-search-toggle:focus-visible {
  transform: translateY(-1px);
  border-color: var(--gplt-specialist-accent);
  box-shadow: 0 6px 18px rgba(199, 91, 122, .1);
}

.gplt-specialists-advanced-search-toggle[aria-expanded="true"] {
  border-color: var(--gplt-specialist-accent);
  box-shadow: 0 4px 16px var(--gplt-specialist-accent-shadow);
}

.gplt-specialists-advanced-search-label {
  flex: 1 1 auto;
  text-align: start;
}

.gplt-specialists-advanced-search-icon {
  display: inline-flex;
  width: 1.1rem;
  height: 1.1rem;
  color: var(--gplt-specialist-accent);
  transition: transform .2s ease;
}

.gplt-specialists-advanced-search-icon svg {
  width: 100%;
  height: 100%;
}

.gplt-specialists-advanced-search-toggle[aria-expanded="true"] .gplt-specialists-advanced-search-icon {
  transform: rotate(180deg);
}

.gplt-specialists-advanced-panel {
  margin-top: .55rem;
  padding: .85rem;
  border: 1px solid var(--gplt-specialist-accent-border-soft);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 2px 12px rgba(61, 44, 46, .04);
}

.gplt-specialists-advanced-panel[hidden] {
  display: none !important;
}

.gplt-specialists-advanced-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem .55rem;
}

.gplt-specialists-advanced-field {
  min-width: 0;
}

.gplt-specialists-advanced-field--full {
  grid-column: 1 / -1;
}

.gplt-specialists-advanced-label {
  display: block;
  margin-bottom: .28rem;
  font-size: .72rem;
  font-weight: 700;
  color: var(--gplt-specialist-warm-muted);
}

.gplt-specialists-filter-row {
  margin-bottom: 0;
}

.gplt-specialists-filter-box--city {
  display: none;
}

.gplt-specialists-filter-control,
.gplt-specialists-advanced-panel .gplt-browse-select,
.gplt-specialists-advanced-panel .gplt-directory-sort,
.gplt-specialists-advanced-panel .gplt-directory-search,
.gplt-specialists-advanced-panel .gplt-directory-level {
  width: 100%;
  min-height: 2.35rem;
  padding: .5rem .7rem;
  border: 1px solid var(--gplt-specialist-accent-border);
  border-radius: 10px;
  background: #fff;
  font-family: inherit;
  font-size: .82rem;
  font-weight: 600;
  color: #3d2c2e;
  appearance: none;
  box-shadow: none;
  line-height: 1.3;
}

.gplt-specialists-advanced-panel .gplt-browse-field {
  min-width: 0;
  margin: 0;
}

.gplt-specialists-results {
  width: 100%;
}

.gplt-directory--specialists .gplt-specialist-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  width: 100%;
  margin-top: 0;
}

.gplt-directory--specialists .gplt-specialist-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: .65rem;
  width: 100%;
  min-width: 0;
  padding: 1.05rem 1.1rem 1.1rem;
  overflow: hidden;
  border: 1px solid var(--gplt-specialist-accent-border-soft);
  border-radius: 18px;
  background: var(--gplt-specialist-card-bg);
  box-shadow:
    0 1px 2px rgba(61, 44, 46, .04),
    0 8px 24px rgba(199, 91, 122, .07);
  text-align: start;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.gplt-directory--specialists .gplt-specialist-card::before {
  content: '';
  position: absolute;
  top: 0;
  inset-inline: 0;
  height: 3px;
  border-radius: 18px 18px 0 0;
  background: var(--gplt-specialist-fantasy-gradient);
  opacity: .85;
  pointer-events: none;
}

.gplt-directory--specialists .gplt-specialist-card:hover {
  transform: translateY(-2px);
  border-color: var(--gplt-specialist-accent-border);
  box-shadow:
    0 2px 4px rgba(61, 44, 46, .04),
    0 14px 32px rgba(199, 91, 122, .12);
}

.gplt-specialist-card-header {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
}

.gplt-directory--specialists .gplt-specialist-avatar {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 2px solid #fff;
  box-shadow:
    0 0 0 1px rgba(199, 91, 122, .18),
    0 4px 14px rgba(199, 91, 122, .14);
}

.gplt-specialist-main {
  min-width: 0;
  flex: 1 1 auto;
}

.gplt-specialist-name {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .25rem .35rem;
  margin: 0 0 .15rem;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.25;
}

.gplt-specialist-name a {
  color: #3d2c2e;
  text-decoration: none;
}

.gplt-specialist-name a:hover {
  color: var(--gplt-specialist-accent-dark);
}

.gplt-specialist-location,
.gplt-specialist-portfolio-count {
  margin: 0;
  font-size: .76rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--gplt-specialist-warm-muted);
}

.gplt-specialist-portfolio-count {
  margin-top: .1rem;
}

.gplt-specialist-row-meta {
  display: none;
  margin: 0;
  font-size: .76rem;
  line-height: 1.4;
  color: var(--gplt-specialist-warm-muted);
}

.gplt-specialist-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}

.gplt-specialist-tag {
  display: inline-flex;
  align-items: center;
  padding: .24rem .55rem;
  border-radius: 999px;
  font-size: .66rem;
  font-weight: 700;
  line-height: 1.2;
}

.gplt-directory--specialists .gplt-specialist-tag {
  border: 1px solid transparent;
  transition: background .15s ease;
}

.gplt-directory--specialists .gplt-specialist-tag:nth-child(3n+1) {
  background: #fdf2f6;
  border-color: rgba(199, 91, 122, .12);
  color: #9b3d5c;
}

.gplt-directory--specialists .gplt-specialist-tag:nth-child(3n+2) {
  background: #fff6f0;
  border-color: rgba(192, 104, 64, .12);
  color: #c06840;
}

.gplt-directory--specialists .gplt-specialist-tag:nth-child(3n+3),
.gplt-directory--specialists .gplt-specialist-tag--more {
  background: #f9f0f5;
  border-color: rgba(135, 74, 114, .12);
  color: #874a72;
}

.gplt-specialist-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: .15rem;
}

.gplt-specialist-profile-button,
.gplt-specialist-booking-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: .5rem .85rem;
  border-radius: 999px;
  font-size: .8rem;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

.gplt-directory--specialists .gplt-specialist-profile-button {
  flex: 1 1 auto;
  border: 1px solid var(--gplt-specialist-accent-border);
  background: #fff;
  color: var(--gplt-specialist-accent);
  box-shadow: none;
}

.gplt-directory--specialists .gplt-specialist-profile-button:hover {
  transform: translateY(-1px);
  background: var(--gplt-specialist-accent-bg);
  border-color: var(--gplt-specialist-accent);
  box-shadow: none;
}

.gplt-directory--specialists .gplt-specialist-booking-button {
  border: 0;
  background: var(--gplt-specialist-fantasy-gradient);
  color: #fff;
  box-shadow: 0 4px 14px rgba(199, 91, 122, .22);
}

.gplt-directory--specialists .gplt-specialist-booking-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(199, 91, 122, .28);
  color: #fff;
}

.gplt-specialist-profile-button {
  flex: 1 1 auto;
  border: 1px solid var(--gplt-specialist-accent);
  background: #fff;
  color: var(--gplt-specialist-accent);
}

.gplt-specialist-profile-button:hover {
  background: var(--gplt-specialist-accent-bg-strong);
}

.gplt-specialist-booking-button {
  border: 0;
  background: var(--gplt-specialist-accent);
  color: #fff;
}

.gplt-specialist-booking-button:hover {
  background: var(--gplt-specialist-accent-dark);
  color: #fff;
}

.gplt-specialist-message-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  flex-shrink: 0;
  border: 1px solid var(--gplt-specialist-accent-border);
  border-radius: 999px;
  background: #fff;
  color: var(--gplt-specialist-accent);
  text-decoration: none;
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}

.gplt-directory--specialists .gplt-specialist-message-button:hover {
  transform: translateY(-1px);
  background: var(--gplt-specialist-accent-bg);
  border-color: var(--gplt-specialist-accent);
}

.gplt-specialist-message-button svg {
  width: 1.05rem;
  height: 1.05rem;
}

.gplt-specialists-pagination {
  margin-top: 14px;
}

.gplt-specialists-pagination[hidden] {
  display: none !important;
}

.gplt-specialists-pagination-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
}

.gplt-specialists-page-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.2rem;
  min-height: 2.2rem;
  padding: .35rem .65rem;
  border: 1px solid var(--gplt-specialist-accent-border);
  border-radius: 10px;
  background: #fff;
  color: #3d2c2e;
  font: inherit;
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
}

a.gplt-specialists-page-button:hover {
  text-decoration: none;
}

.gplt-specialists-page-button:hover:not(:disabled) {
  border-color: var(--gplt-specialist-accent);
  color: var(--gplt-specialist-accent);
}

.gplt-specialists-page-button.is-active {
  background: var(--gplt-specialist-fantasy-gradient);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 4px 14px rgba(199, 91, 122, .22);
}

@media (prefers-reduced-motion: reduce) {
  .gplt-directory--specialists .gplt-specialist-card,
  .gplt-directory--specialists .gplt-specialist-profile-button,
  .gplt-directory--specialists .gplt-specialist-booking-button,
  .gplt-directory--specialists .gplt-specialist-message-button,
  .gplt-specialists-advanced-search-toggle {
    transition: none !important;
  }

  .gplt-directory--specialists .gplt-specialist-card:hover,
  .gplt-directory--specialists .gplt-specialist-profile-button:hover,
  .gplt-directory--specialists .gplt-specialist-booking-button:hover {
    transform: none;
  }
}

.gplt-specialists-page-button:disabled,
.gplt-specialists-page-button[aria-disabled="true"] {
  opacity: .45;
  cursor: not-allowed;
}

.gplt-specialists-pagination-summary {
  font-size: .78rem;
  font-weight: 700;
  color: var(--gplt-specialist-warm-muted);
  white-space: nowrap;
}

.gplt-directory--specialists .gplt-verified-tick svg circle {
  fill: var(--gplt-specialist-accent);
}

.gplt-specialists-pagination-numbers {
  display: none;
  flex-wrap: wrap;
  gap: 6px;
}

.gplt-specialists-empty {
  padding: 1rem 0;
}

@media (min-width: 768px) {
  .gplt-directory--specialists .gplt-specialist-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  .gplt-specialists-pagination-summary {
    display: none;
  }

  .gplt-specialists-pagination-numbers {
    display: flex;
  }
}

@media (min-width: 1024px) {
  .gplt-directory--specialists .gplt-specialist-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .gplt-specialists-hero {
    text-align: center;
    padding-inline: .85rem;
  }

  .gplt-specialists-title {
    font-size: clamp(1.7rem, 8vw, 2.1rem);
  }

  .gplt-specialists-advanced-fields {
    grid-template-columns: 1fr;
  }

  .gplt-specialists-advanced-field--full {
    grid-column: auto;
  }
}

@media (max-width: 767px) {
  .gplt-directory--specialists .gplt-specialists-pagination {
    padding-inline: .85rem;
  }

  .gplt-specialists-search-shell .gplt-specialists-advanced-panel {
    display: flex !important;
    flex-direction: column;
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: 121;
    margin: 0;
    padding: 0;
    max-height: min(88vh, 720px);
    border: 0;
    border-radius: 1rem 1rem 0 0;
    background: #fff;
    box-shadow: 0 -8px 32px rgba(17, 17, 17, .12);
    transform: translateY(100%);
    transition: transform .22s ease;
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
  }

  .gplt-specialists-search-shell.is-open .gplt-specialists-advanced-panel {
    transform: translateY(0);
    visibility: visible;
    pointer-events: auto;
  }

  .gplt-specialists-search-shell .gplt-specialists-advanced-panel[hidden] {
    display: flex !important;
  }

  .gplt-specialists-search-sheet-handle {
    width: 2.5rem;
    height: .25rem;
    margin: .65rem auto .35rem;
    border-radius: 999px;
    background: #d9d9de;
  }

  .gplt-specialists-search-sheet-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .35rem 1rem .75rem;
    border-bottom: 1px solid var(--gplt-border);
  }

  .gplt-specialists-search-sheet-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
    color: #111;
  }

  .gplt-specialists-search-sheet-close {
    border: 0;
    background: transparent;
    color: var(--gplt-muted);
    font: inherit;
    font-size: .85rem;
    font-weight: 700;
    cursor: pointer;
    padding: .35rem .5rem;
  }

  .gplt-specialists-search-sheet-body {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 1rem 1rem .5rem;
    max-height: calc(min(88vh, 720px) - 9.5rem);
  }

  .gplt-specialists-search-sheet-body .gplt-specialists-advanced-panel,
  .gplt-specialists-search-sheet-body .gplt-specialists-filter-row {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
  }

  .gplt-specialists-search-sheet-footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
    padding: .85rem 1rem calc(.85rem + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--gplt-border);
    background: #fff;
  }

  .gplt-specialists-search-sheet-reset,
  .gplt-specialists-search-sheet-apply {
    min-height: 2.75rem;
    border-radius: 999px;
    font: inherit;
    font-size: .9rem;
    font-weight: 700;
    cursor: pointer;
  }

  .gplt-specialists-search-sheet-reset {
    border: 1px solid var(--gplt-specialist-accent-border);
    background: #fff;
    color: var(--gplt-specialist-accent);
  }

  .gplt-specialists-search-sheet-apply {
    border: 0;
    background: var(--gplt-specialist-accent);
    color: #fff;
  }

  .gplt-directory--specialists .gplt-specialist-grid {
    gap: 0;
    background: var(--gplt-specialist-card-bg);
    border-block: 1px solid var(--gplt-specialist-warm-line);
    border-inline: 0;
    border-radius: 0;
    overflow: hidden;
  }

  .gplt-directory--specialists .gplt-specialist-card {
    flex-direction: row;
    align-items: center;
    gap: .75rem;
    padding: .85rem 1rem;
    border: 0;
    border-bottom: 1px solid var(--gplt-specialist-warm-line);
    border-radius: 0;
    box-shadow: none;
    transform: none;
  }

  .gplt-directory--specialists .gplt-specialist-card::before {
    display: none;
  }

  .gplt-directory--specialists .gplt-specialist-card:hover {
    transform: none;
    box-shadow: none;
  }

  .gplt-directory--specialists .gplt-specialist-card:last-child {
    border-bottom: 0;
  }

  .gplt-specialist-card-header {
    flex: 1 1 auto;
    align-items: center;
    min-width: 0;
  }

  .gplt-specialist-avatar {
    width: 48px;
    height: 48px;
    box-shadow:
      0 0 0 1px rgba(199, 91, 122, .16),
      0 3px 10px rgba(199, 91, 122, .1);
  }

  .gplt-specialist-name {
    font-size: .92rem;
    margin-bottom: .1rem;
  }

  .gplt-specialist-location,
  .gplt-specialist-portfolio-count,
  .gplt-specialist-tags {
    display: none !important;
  }

  .gplt-specialist-row-meta {
    display: block;
    margin: 0;
    font-size: .74rem;
    line-height: 1.45;
    color: var(--gplt-specialist-warm-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .gplt-specialist-actions {
    flex: 0 0 auto;
    margin: 0;
    gap: 0;
  }

  .gplt-specialist-booking-button,
  .gplt-specialist-message-button {
    display: none !important;
  }

  .gplt-specialist-profile-button {
    flex: none;
    min-height: 2rem;
    min-width: 5.5rem;
    padding: 0 .95rem;
    border-radius: 999px;
    border: 1px solid var(--gplt-specialist-accent);
    background: #fff;
    color: var(--gplt-specialist-accent);
    font-size: .78rem;
    font-weight: 700;
  }

  #gplt-social-wrap:has(.gplt-directory--specialists) {
    --gplt-side-pad: 0;
    padding-inline: 0;
  }

  #gplt-social-wrap:has(.gplt-directory--specialists) .gplt-social-main {
    max-width: none;
    margin-inline: 0;
    padding-inline: 0;
  }

  .gplt-directory--specialists {
    padding-inline: 0;
  }

  .gplt-directory--specialists .gplt-specialists-hero,
  .gplt-directory--specialists .gplt-specialists-advanced-search {
    padding-inline: .85rem;
  }
}

@media (min-width: 769px) {
  .gplt-specialists-search-sheet-handle,
  .gplt-specialists-search-sheet-head,
  .gplt-specialists-search-sheet-footer,
  .gplt-specialists-search-backdrop {
    display: none !important;
  }

  .gplt-specialist-row-meta {
    display: none !important;
  }
}

/* ── Portfolio pin — Pinterest close match ───────────────── */
.gplt-pin-page .lx-section > .lx-container > .lx-single-layout,
.gplt-pin-page .lx-single-head,
.gplt-pin-page .lx-single-meta,
.gplt-pin-page .lx-article-content,
.gplt-pin-page .lx-comments-wrap,
.gplt-pin-page .lx-single-sidebar {
  display: none !important;
}

.gplt-pin-page #gplt-social-wrap {
  padding-top: .5rem;
  padding-bottom: 2rem;
  background: #fff;
}

.gplt-pin-page .gplt-social-subheader {
  margin-bottom: 0;
  border-bottom-color: #efefef;
}

/* Instagram-like single portfolio post */
.gplt-single-post {
  width: 100%;
  max-width: 935px;
  margin: 0 auto;
}

.gplt-single-post-card {
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, .08);
  border-radius: 20px;
  background: rgba(255, 255, 255, .82);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 12px 40px rgba(15, 23, 42, .08);
}

.gplt-single-post-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.gplt-single-post-media-col {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.gplt-single-post-media-header {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 6;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .75rem .85rem;
  background: linear-gradient(to bottom, rgba(0, 0, 0, .55), rgba(0, 0, 0, 0));
  color: #fff;
  pointer-events: none;
}

.gplt-single-post-media-header a,
.gplt-single-post-media-header button,
.gplt-single-post-media-header .gplt-follow-control {
  pointer-events: auto;
}

.gplt-single-post-author-mini {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-width: 0;
}

.gplt-single-post-author-avatar {
  flex-shrink: 0;
  display: block;
  line-height: 0;
}

.gplt-single-post-author-avatar img {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  object-fit: cover;
  border: 2px solid rgba(255, 255, 255, .85);
}

.gplt-single-post-author-meta {
  display: flex;
  flex-direction: column;
  gap: .12rem;
  min-width: 0;
}

.gplt-single-post-author-name {
  font-weight: 700;
  font-size: .92rem;
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gplt-single-post-author-name:hover {
  text-decoration: underline;
}

.gplt-single-post-date {
  font-size: .78rem;
  opacity: .85;
  color: #fff;
}

.gplt-single-post-media-header-actions {
  position: relative;
  display: flex;
  align-items: center;
  gap: .35rem;
  flex-shrink: 0;
}

.gplt-single-post-follow .gplt-follow-button,
.gplt-single-post-follow .gplt-follow-button--guest {
  min-height: 2rem;
  padding: .35rem .75rem;
  font-size: .78rem;
}

.gplt-single-post-media-header .gplt-single-post-more {
  position: static;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .16);
  color: #fff;
  box-shadow: none;
}

.gplt-single-post-media-header .gplt-pin-more-menu {
  color: #111;
  top: calc(100% + .35rem);
  inset-inline-start: auto;
  inset-inline-end: 0;
  left: auto;
  right: auto;
}

@media (max-width: 768px) {
  .gplt-portfolio-zoomable {
    overflow: hidden;
    touch-action: pan-y;
  }

  .gplt-portfolio-zoomable img[data-gplt-zoom-media="image"],
  .gplt-portfolio-zoomable img.gplt-portfolio-img:not(.gplt-pin-video-thumb),
  .gplt-portfolio-zoomable img.gplt-pin-view-image,
  .gplt-portfolio-zoomable img.gplt-portfolio-lightbox-image {
    transform-origin: center center;
    will-change: transform;
    transition: transform 0.18s ease;
    cursor: default;
  }

  .gplt-portfolio-zoomable.is-pinching,
  .gplt-portfolio-zoomable.is-zoomed,
  .gplt-portfolio-zoomable.is-zooming,
  .gplt-portfolio-zoomable .gplt-pin-view-slide.is-pinching,
  .gplt-portfolio-zoomable .gplt-post-slide.is-pinching {
    overflow: hidden;
    touch-action: none;
  }

  .gplt-portfolio-zoomable.is-zoomed img,
  .gplt-portfolio-zoomable img.is-zoomed {
    transition: none;
    cursor: grab;
    position: relative;
    z-index: 3;
  }

  .gplt-portfolio-zoomable .gplt-pin-gallery-open {
    cursor: default;
  }

  .gplt-single-post-media.gplt-pin-lightbox-zone {
    cursor: default;
  }

  .gplt-single-post-media.gplt-pin-view-media--gallery {
    touch-action: auto;
  }
}

.gplt-single-post-details {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0 1rem 1rem;
}

.gplt-single-post-details.gplt-pin-view-panel {
  border-inline-start: none;
  max-height: none;
}

.gplt-single-post-actions {
  flex-shrink: 0;
  padding-top: .65rem;
}

.gplt-single-post-actions-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .15rem .35rem;
}

.gplt-single-post-action {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
}

.gplt-single-post-action-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.gplt-single-post-caption {
  padding: .35rem 0 .75rem;
  text-align: start;
}

.gplt-single-post-caption-text,
.gplt-single-post-caption-empty {
  margin: 0;
  font-size: .92rem;
  line-height: 1.55;
  color: #111;
}

.gplt-single-post-caption-author {
  font-weight: 700;
  margin-inline-end: .35rem;
}

.gplt-single-post-caption-body {
  display: inline;
}

.gplt-single-post-caption-body p {
  display: inline;
  margin: 0;
}

.gplt-single-post-caption-body p + p {
  display: block;
  margin-top: .65rem;
}

.gplt-single-post-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin: .65rem 0 0;
  padding: 0;
  list-style: none;
}

.gplt-single-post-tags a {
  display: inline-flex;
  padding: .2rem .55rem;
  border-radius: var(--gplt-radius-pill);
  background: rgba(0, 0, 0, .05);
  color: rgba(17, 17, 17, .78);
  font-size: .75rem;
  text-decoration: none;
}

.gplt-single-post-comments {
  border-top: 1px solid rgba(0, 0, 0, .06);
  padding-top: .75rem;
}

.gplt-single-post-comments-empty {
  margin: 0;
  padding: .5rem 0;
  color: rgba(17, 17, 17, .55);
  font-size: .85rem;
}

.gplt-single-post-footer {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  padding: .75rem 0 0;
  border-top: 1px solid rgba(0, 0, 0, .06);
}

.gplt-single-post-footer-link {
  font-size: .82rem;
  font-weight: 600;
  color: rgba(17, 17, 17, .72);
  text-decoration: none;
}

.gplt-single-post-footer-link:hover {
  color: #111;
  text-decoration: underline;
}

@media (min-width: 960px) {
  .gplt-single-post-media-col {
    padding: 0;
    max-width: none;
    width: 100%;
  }

  .gplt-single-post-details.gplt-pin-view-panel {
    width: 100%;
    max-width: 100%;
    flex: 1 1 auto;
    padding-inline: 1.15rem 1.15rem;
    border-left: none;
    border-top: 1px solid #efefef;
    max-height: none;
  }
}

@media (max-width: 959px) {
  .gplt-single-post {
    max-width: none;
  }

  .gplt-single-post-card {
    border-radius: 0;
    border-inline: none;
    box-shadow: none;
    background: transparent;
    backdrop-filter: none;
  }

  .gplt-single-post-details {
    padding-inline: 1rem;
  }
}

.gplt-single-post.gplt-pin-view {
  max-width: 935px;
}

.gplt-single-post .gplt-pin-view-stage {
  flex-direction: column;
  min-height: 0;
  max-height: none;
}

@media (min-width: 960px) {
  .gplt-single-post .gplt-pin-view-stage {
    flex-direction: column;
    align-items: stretch;
    min-height: 0;
    max-height: none;
  }
}

.gplt-pin-view {
  width: 100%;
  max-width: 1056px;
  margin: 0 auto;
}

.gplt-pin-view-stage {
  display: flex;
  flex-direction: column;
  min-height: 0;
  margin-bottom: 0;
}

@media (min-width: 960px) {
  .gplt-pin-view-stage {
    flex-direction: row;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    min-height: calc(100vh - 140px);
    max-height: calc(100vh - 100px);
  }
}

.gplt-pin-view-media-col {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  flex: 1 1 auto;
  padding: .5rem 0 1rem;
}

@media (max-width: 959px) {
  .gplt-pin-view-media-col {
    padding: 0;
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
  }

  .gplt-pin-view-media {
    border-radius: 0;
    min-height: 0;
    max-width: none;
  }

  .gplt-pin-view-image,
  .gplt-pin-view-video {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: none;
    border-radius: 0;
    object-fit: cover;
  }

  .gplt-pin-view-back {
    top: .65rem;
    inset-inline-start: .65rem;
  }

  .gplt-pin-view {
    max-width: none;
  }

  .gplt-pin-view-panel,
  .gplt-pin-view-below {
    padding-inline: 1rem;
  }

  .gplt-pin-page #gplt-social-wrap {
    padding-inline: 0;
    padding-bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px));
  }

  .gplt-pin-page .gplt-social-main {
    padding-inline: 0;
  }

  .gplt-pin-page .gplt-social-subheader {
    padding-inline: .75rem;
  }
}


@media (min-width: 960px) {
  .gplt-pin-view-media-col {
    padding: 1rem 1.25rem 1rem 0;
    max-width: calc(100% - 508px);
  }

  .gplt-single-post .gplt-pin-view-media-col,
  .gplt-single-post .gplt-single-post-media-col {
    width: 100%;
    max-width: 100%;
    padding: 0;
  }
}

.gplt-pin-view-back {
  position: absolute;
  top: 1rem;
  left: .25rem;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #fff;
  color: #111;
  text-decoration: none;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .12);
}

@media (min-width: 960px) {
  .gplt-pin-view-back { left: 0; }
}

.gplt-pin-view-media {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  border-radius: 16px;
  overflow: hidden;
  background: #0d0d0d;
}

.gplt-pin-view-media--video {
  background: #000;
}

.gplt-pin-view-slide {
  display: none;
  width: 100%;
}

.gplt-pin-view-slide.is-active {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.gplt-pin-view-image {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: min(78vh, 860px);
  height: auto;
  margin: 0 auto;
  border-radius: 16px;
  cursor: zoom-in;
}

.gplt-pin-view-video {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: min(88vh, 920px);
  aspect-ratio: 9 / 16;
  margin: 0 auto;
  background: #000;
}

.gplt-pin-view-media--gallery {
  touch-action: pan-y pinch-zoom;
}

.gplt-pin-view-counter {
  position: absolute;
  top: .85rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  padding: .25rem .65rem;
  border-radius: var(--gplt-radius-pill);
  background: rgba(0, 0, 0, .55);
  color: #fff;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .02em;
  pointer-events: none;
}

.gplt-pin-view-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, .95);
  color: #111;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .15);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: .92;
  transition: opacity .15s ease, transform .15s ease;
}

.gplt-pin-view-nav:hover {
  opacity: 1;
  transform: translateY(-50%) scale(1.04);
}

.gplt-pin-view-prev { left: .75rem; }
.gplt-pin-view-next { right: .75rem; }

.gplt-pin-view-dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: .85rem;
  display: flex;
  justify-content: center;
  gap: .4rem;
  z-index: 2;
}

.gplt-pin-view-dot {
  width: 6px;
  height: 6px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, .5);
  cursor: pointer;
}

.gplt-pin-view-dot.is-active {
  background: #fff;
  transform: scale(1.2);
}

.gplt-pin-lightbox-zone {
  cursor: zoom-in;
}

.gplt-pin-lightbox-zone .gplt-pin-view-video {
  cursor: default;
}

.gplt-pin-view-expand {
  position: absolute;
  right: .75rem;
  bottom: .75rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, .95);
  color: #111;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .15);
}

.gplt-pin-view-panel {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 0 0 auto;
  background: #fff;
}

@media (min-width: 960px) {
  .gplt-pin-view-panel {
    width: 508px;
    max-width: 508px;
    flex-shrink: 0;
    border-left: 1px solid #efefef;
    max-height: calc(100vh - 100px);
  }
}

.gplt-pin-view-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .65rem 1rem;
  flex-shrink: 0;
  border-bottom: 1px solid #efefef;
}

.gplt-pin-view-toolbar-left {
  display: flex;
  align-items: center;
  gap: .15rem;
  position: relative;
}

.gplt-pin-icon-btn {
  display: inline-flex;
  align-items: center;
  gap: .2rem;
  min-width: 48px;
  height: 48px;
  padding: 0 .65rem;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: #111;
  font-family: inherit;
  font-size: .875rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .12s ease;
}

.gplt-pin-icon-btn:hover {
  background: #efefef;
}

.gplt-pin-icon-heart {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  display: block;
}

.gplt-pin-icon-heart path {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.gplt-pin-icon-btn.is-liked,
.gplt-pin-icon-btn.is-liked .gplt-pin-icon-heart {
  color: #e60023;
}

.gplt-pin-icon-btn.is-liked .gplt-pin-icon-heart path {
  fill: #e60023;
  stroke: none;
}

.gplt-pin-icon-btn.is-liked .gplt-pin-icon-heart {
  transform: scale(1.08);
  transform-origin: center;
}

.gplt-pin-save {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .75rem 1.15rem;
  border-radius: 24px;
  background: #e60023;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: background .12s ease;
}

.gplt-pin-save:hover {
  background: #ad081b;
  color: #fff;
}

.gplt-pin-more-menu {
  position: absolute;
  top: calc(100% + .35rem);
  left: 0;
  z-index: 10;
  min-width: 160px;
  padding: .35rem 0;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, .12);
}

.gplt-pin-more-menu a,
.gplt-pin-more-menu button {
  display: block;
  width: 100%;
  padding: .65rem 1rem;
  border: none;
  background: none;
  text-align: left;
  font-family: inherit;
  font-size: .875rem;
  font-weight: 600;
  color: #111;
  cursor: pointer;
  text-decoration: none;
}

.gplt-pin-more-menu a:hover,
.gplt-pin-more-menu button:hover {
  background: #efefef;
}

.gplt-pin-view-panel-scroll {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 1rem 1.25rem 1.5rem;
  -webkit-overflow-scrolling: touch;
}

.gplt-pin-view-creator {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin-bottom: .85rem;
  text-decoration: none;
  color: #111;
}

.gplt-pin-view-creator-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
}

.gplt-pin-view-creator-name {
  font-size: .9375rem;
  font-weight: 700;
}

.gplt-pin-verified {
  flex-shrink: 0;
}

.gplt-pin-view-title {
  margin: 0 0 .85rem;
  font-family: var(--gplt-font-sans);
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: #111;
}

.gplt-pin-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  margin-bottom: 1.25rem;
  padding: .75rem 1rem;
  border-radius: 24px;
  background: #efefef;
  color: #111;
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  transition: background .12s ease;
}

.gplt-pin-cta:hover {
  background: #e2e2e2;
  color: #111;
}

.gplt-pin-view-description-heading {
  margin: 0 0 .5rem;
  font-size: 1rem;
  font-weight: 700;
  color: #111;
}

.gplt-pin-view-caption {
  font-size: 1rem;
  line-height: 1.5;
  color: #111;
}

.gplt-pin-view-caption.is-collapsed {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.gplt-pin-view-caption p:first-child { margin-top: 0; }
.gplt-pin-view-caption p:last-child { margin-bottom: 0; }

.gplt-pin-view-caption-empty {
  margin: 0;
  font-size: .9375rem;
  color: #767676;
}

.gplt-pin-view-see-more {
  margin-top: .25rem;
  padding: 0;
  border: none;
  background: none;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 600;
  color: #111;
  cursor: pointer;
}

.gplt-pin-view-see-more:hover {
  text-decoration: underline;
}

/* Pin comments */
.gplt-pin-view-comments {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid #efefef;
}

.gplt-pin-comments-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.gplt-pin-comment {
  display: flex;
  gap: .65rem;
  align-items: flex-start;
}

.gplt-pin-comment-avatar {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
}

.gplt-pin-comment-body {
  min-width: 0;
  flex: 1 1 auto;
}

.gplt-pin-comment-meta {
  margin: 0 0 .15rem;
  font-size: .875rem;
  line-height: 1.3;
}

.gplt-pin-comment-author {
  font-weight: 700;
  color: #111;
}

.gplt-pin-comment-time {
  margin-left: .35rem;
  color: #767676;
  font-weight: 400;
}

.gplt-pin-comment-text {
  margin: 0;
  font-size: .9375rem;
  line-height: 1.45;
  color: #111;
  word-break: break-word;
}

.gplt-pin-comments-empty {
  margin: 0;
  font-size: .9375rem;
  color: #767676;
}

.gplt-pin-view-composer {
  flex-shrink: 0;
  padding: .75rem 1rem 1rem;
  border-top: 1px solid #efefef;
  background: #fff;
}

.gplt-pin-comment-form {
  margin: 0;
}

.gplt-pin-comment-input {
  display: block;
  width: 100%;
  min-height: 48px;
  max-height: 120px;
  padding: .75rem 1rem;
  border: 1px solid transparent;
  border-radius: 24px;
  background: #efefef;
  color: #111;
  font-family: inherit;
  font-size: .9375rem;
  line-height: 1.4;
  resize: none;
  overflow-y: auto;
  transition: background .12s ease, border-color .12s ease;
}

.gplt-pin-comment-input::placeholder {
  color: #767676;
}

.gplt-pin-comment-input:focus {
  background: #fff;
  border-color: #cdcdcd;
  outline: none;
}

.gplt-pin-comment-login {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  padding: .75rem 1rem;
  border: none;
  border-radius: 24px;
  background: #efefef;
  color: #111;
  font-family: inherit;
  font-size: .9375rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .12s ease;
}

.gplt-pin-comment-login:hover {
  background: #e2e2e2;
}

.gplt-pin-comment-count {
  font-size: .875rem;
  font-weight: 600;
}

.gplt-pin-view-below {
  max-width: 1280px;
  margin: 0 auto;
  padding: 2rem 1rem 0;
}

.gplt-pin-view-related {
  margin-top: 0;
  margin-bottom: 2rem;
  padding-top: 0;
  border-top: none;
}

.gplt-pin-view-related + .gplt-pin-view-related {
  margin-top: 1.5rem;
}

/* ── Mobile bottom tab bar (internal pages) ───────────────── */
.gplt-mobile-bottom-nav {
  display: none;
}

@media (max-width: 767px) {
  .gplt-social-page #gplt-social-wrap {
    padding-bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px));
  }

  .gplt-mobile-bottom-nav {
    display: block;
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: 90;
    --gplt-bottom-nav-height: 4.75rem;
    background: #fff;
    border-top: 1px solid #e8e8e8;
    box-shadow: 0 -4px 24px rgba(17, 17, 17, 0.06);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  .gplt-mobile-bottom-nav-list {
    display: flex;
    align-items: stretch;
    justify-content: space-around;
    gap: .15rem;
    list-style: none;
    margin: 0;
    padding: .35rem .25rem .45rem;
  }

  .gplt-mobile-bottom-nav-item {
    flex: 1 1 0;
    min-width: 0;
  }

  .gplt-mobile-bottom-nav-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .2rem;
    min-height: 3.25rem;
    padding: .2rem .15rem;
    color: #8a8a8a;
    text-decoration: none;
    text-align: center;
    transition: color .15s ease;
  }

  .gplt-mobile-bottom-nav-link:hover,
  .gplt-mobile-bottom-nav-link.is-active {
    color: #111;
  }

  .gplt-mobile-bottom-nav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
  }

  .gplt-mobile-bottom-nav-icon svg {
    width: 1.35rem;
    height: 1.35rem;
  }

  .gplt-mobile-bottom-nav-link.is-active .gplt-mobile-bottom-nav-icon svg path,
  .gplt-mobile-bottom-nav-link.is-active .gplt-mobile-bottom-nav-icon svg circle,
  .gplt-mobile-bottom-nav-link.is-active .gplt-mobile-bottom-nav-icon svg rect {
    stroke-width: 2.1;
  }

  .gplt-mobile-bottom-nav-label {
    font-size: .625rem;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }

  .gplt-mobile-bottom-nav-link--action {
    appearance: none;
    border: 0;
    background: transparent;
    width: 100%;
    cursor: pointer;
    font: inherit;
  }
}

/* ── Bottom nav categories submenu ────────────────────────── */
.gplt-bottom-nav-submenu {
  position: fixed;
  inset-inline: 12px;
  bottom: calc(var(--gplt-mobile-bottom-nav-height, 68px) + env(safe-area-inset-bottom, 0px) + 10px);
  z-index: 9998;
  max-height: 45vh;
  overflow: auto;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 18px;
  box-shadow: 0 8px 32px rgba(17, 17, 17, .14);
}

.gplt-bottom-nav-submenu[hidden] {
  display: none !important;
}

.gplt-bottom-nav-submenu-inner {
  display: flex;
  flex-direction: column;
  padding: .35rem 0;
}

.gplt-bottom-nav-submenu-link {
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: .7rem 1rem;
  color: #111;
  text-decoration: none;
  font-size: .9rem;
  font-weight: 600;
  transition: background .15s ease;
}

.gplt-bottom-nav-submenu-link:hover,
.gplt-bottom-nav-submenu-link.is-active {
  background: #f5f5f7;
}

.gplt-bottom-nav-submenu-link .gplt-browse-category-icon {
  flex-shrink: 0;
}

@media (min-width: 768px) {
  .gplt-bottom-nav-submenu {
    display: none !important;
  }
}

.gplt-masonry--related {
  margin-top: .85rem;
}

.gplt-profile-more-ideas {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--gplt-border);
}

.gplt-pin-video-badge,
.gplt-pin-gallery-badge {
  position: absolute;
  z-index: 2;
  padding: .2rem .45rem;
  border-radius: var(--gplt-radius-pill);
  background: rgba(0, 0, 0, .65);
  color: #fff;
  font-size: .6875rem;
  font-weight: 700;
}

.gplt-pin-video-badge {
  top: .5rem;
  left: .5rem;
  font-size: .75rem;
}

.gplt-pin-gallery-badge {
  top: .5rem;
  right: .5rem;
}

.gplt-pin-media {
  position: relative;
}

.gplt-pin-video-thumb {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.gplt-layout-toggle {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.gplt-layout-option {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .55rem .85rem;
  border-radius: var(--gplt-radius-pill);
  background: var(--gplt-bg-soft);
  font-size: .875rem;
  font-weight: 600;
  cursor: pointer;
}

.gplt-layout-option:has(input:checked) {
  background: var(--gplt-text);
  color: #fff;
}

.gplt-submit-steps {
  margin: .65rem 0 0;
  padding-left: 1.15rem;
  color: var(--gplt-muted);
  font-size: .875rem;
  line-height: 1.55;
}

.gplt-submit-steps li + li {
  margin-top: .25rem;
}

.gplt-gallery-cover-badge {
  display: inline-block;
  margin-left: .25rem;
  padding: .05rem .35rem;
  border-radius: var(--gplt-radius-pill);
  background: var(--gplt-text);
  color: #fff;
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.gplt-manage-header,
.gplt-edit-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.gplt-manage-list {
  display: flex;
  flex-direction: column;
  gap: .85rem;
}

.gplt-manage-item {
  display: flex;
  gap: 1rem;
  padding: 1rem;
  background: #fff;
  border: 1px solid var(--gplt-border);
  border-radius: var(--gplt-radius-pin);
}

.gplt-manage-item-thumb {
  position: relative;
  flex-shrink: 0;
  width: 88px;
  height: 88px;
  border-radius: 12px;
  overflow: hidden;
  background: #f3f3f3;
}

.gplt-manage-item-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gplt-manage-item-count {
  position: absolute;
  right: .35rem;
  bottom: .35rem;
  padding: .1rem .4rem;
  border-radius: var(--gplt-radius-pill);
  background: rgba(0, 0, 0, .65);
  color: #fff;
  font-size: .65rem;
  font-weight: 700;
}

.gplt-manage-item-body {
  flex: 1;
  min-width: 0;
}

.gplt-manage-item-title {
  margin: 0 0 .25rem;
  font-size: 1rem;
}

.gplt-manage-item-title a {
  color: inherit;
  text-decoration: none;
}

.gplt-manage-item-meta {
  margin: 0 0 .65rem;
  font-size: .8125rem;
  color: var(--gplt-muted);
}

.gplt-manage-item-status--pending {
  color: #b45309;
}

.gplt-manage-item-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.gplt-btn-sm {
  padding: .35rem .75rem;
  font-size: .8125rem;
}

.gplt-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}

.gplt-portfolio-delete {
  color: var(--gplt-red);
}

.gplt-gallery-list {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin: .65rem 0;
}

.gplt-gallery-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .25rem;
  font-size: .75rem;
  color: var(--gplt-muted);
}

.gplt-gallery-remove {
  border: none;
  background: none;
  color: var(--gplt-red);
  font-size: 1.1rem;
  cursor: pointer;
  line-height: 1;
}

/* Focus */
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--gplt-red);
  outline-offset: 2px;
}

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute;
  height: 1px;
  width: 1px;
  overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
  .gplt-pin-hover,
  .gplt-tab::after,
  .gplt-btn,
  .gplt-cat-pill,
  .gplt-swipe-card,
  .gplt-swipe-card-media-slot,
  .gplt-swipe-card-media-el,
  .gplt-portfolio-img,
  .gplt-pin-media img {
    transition: none !important;
    animation: none !important;
  }
}

/* ── Profile portfolio swipe deck (mobile, Tinder-style) ─────── */
.gplt-portfolio-views {
  position: relative;
}

.gplt-portfolio-swipe-wrap {
  display: none;
}

.gplt-portfolio-grid-view {
  display: grid;
}

.gplt-swipe-deck-shell {
  position: relative;
  padding: 0;
  display: block;
}

.gplt-swipe-deck {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0;
  height: min(72dvh, 620px);
  min-height: 420px;
  touch-action: none;
}

.gplt-swipe-card {
  position: absolute;
  inset: 0;
  border-radius: 0;
  overflow: hidden;
  box-shadow: none;
  background: #111;
  transition: transform 0.28s var(--gplt-ease, ease), opacity 0.28s ease;
  will-change: transform;
  user-select: none;
  touch-action: none;
}

.gplt-swipe-card.is-top {
  cursor: grab;
  z-index: 3;
}

.gplt-swipe-card.is-top.is-dragging {
  cursor: grabbing;
  transition: none;
}

.gplt-swipe-card.is-flying {
  transition: transform 0.28s var(--gplt-ease, ease);
  pointer-events: none;
}

.gplt-swipe-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
}

.gplt-swipe-card-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.gplt-swipe-card-media-slot {
  width: 100%;
  height: 100%;
}

.gplt-swipe-card-media-el {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;
}

.gplt-swipe-card-gradient {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.05) 40%, rgba(0, 0, 0, 0.72) 100%);
  pointer-events: none;
}

.gplt-swipe-card-dots {
  position: absolute;
  top: 12px;
  left: 0;
  right: 0;
  z-index: 3;
  display: flex;
  justify-content: center;
  gap: 5px;
  padding: 0 12px;
  pointer-events: none;
}

.gplt-swipe-card-dot {
  flex: 1;
  max-width: 28px;
  height: 3px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.35);
  transition: background 0.2s ease, transform 0.2s ease;
}

.gplt-swipe-card-dot.is-active {
  background: #fff;
  transform: scaleY(1.35);
}

.gplt-swipe-card-nav {
  position: absolute;
  top: 50%;
  z-index: 4;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  border: none;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.32);
  color: #fff;
  font-size: 1.25rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  opacity: 0.88;
  transition: opacity 0.3s var(--gplt-swipe-ease), background 0.3s var(--gplt-swipe-ease), transform 0.3s var(--gplt-swipe-ease);
}

.gplt-swipe-card-nav:not(:disabled):active {
  transform: translateY(-50%) scale(0.94);
}

.gplt-swipe-card-nav:disabled {
  opacity: 0.25;
  cursor: default;
}

.gplt-swipe-card-nav--prev {
  left: 10px;
}

.gplt-swipe-card-nav--next {
  right: 10px;
}

.gplt-swipe-card-tap {
  position: absolute;
  top: 0;
  bottom: 88px;
  z-index: 2;
  width: 38%;
  border: none;
  padding: 0;
  margin: 0;
  background: transparent;
  cursor: pointer;
  touch-action: none;
}

.gplt-swipe-card-tap--prev {
  left: 0;
}

.gplt-swipe-card-tap--next {
  right: 0;
}

.gplt-swipe-deck-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 6;
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: var(--gplt-text, #222);
  font-size: 1.45rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.12);
  transition: transform 0.3s var(--gplt-swipe-ease), opacity 0.3s ease;
}

.gplt-swipe-deck-arrow:not(:disabled):active {
  transform: translateY(-50%) scale(0.94);
}

.gplt-swipe-deck-arrow--prev {
  left: 10px;
}

.gplt-swipe-deck-arrow--next {
  right: 10px;
}

.gplt-swipe-deck-arrow:disabled {
  opacity: 0.35;
  cursor: default;
}

.gplt-swipe-deck-arrow[hidden] {
  visibility: hidden;
  pointer-events: none;
}

.gplt-swipe-counter {
  text-align: center;
  margin: .65rem 0 0;
  font-size: .8125rem;
  color: var(--gplt-muted);
}

.gplt-swipe-card-media .gplt-pin-hover--swipe {
  z-index: 5;
  opacity: 1;
  pointer-events: none;
  background: transparent;
}

.gplt-swipe-card-media .gplt-pin-hover--swipe .gplt-pin-action,
.gplt-swipe-card-media .gplt-pin-hover--swipe .gplt-like-btn,
.gplt-swipe-card-media .gplt-pin-hover--swipe .gplt-share-btn {
  pointer-events: auto;
}

.gplt-swipe-card-info {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 1.25rem 1.1rem 1.35rem;
  color: #fff;
  text-align: start;
  pointer-events: none;
}

.gplt-swipe-card-author {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .5rem;
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  font-size: .9rem;
  pointer-events: auto;
}

.gplt-swipe-card-cat {
  display: inline-block;
  margin-bottom: .35rem;
  padding: .2rem .55rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, .18);
  font-size: .75rem;
  font-weight: 600;
}

.gplt-swipe-card-title {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.25;
  text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
}

.gplt-swipe-card-excerpt {
  margin: .45rem 0 0;
  font-size: .875rem;
  line-height: 1.45;
  opacity: .92;
}

.gplt-swipe-card-likes {
  display: inline-block;
  margin-top: .5rem;
  font-size: .8125rem;
  font-weight: 600;
}

.gplt-swipe-card-author-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid rgba(255, 255, 255, 0.85);
}

.gplt-swipe-empty {
  text-align: center;
  padding: 2rem 1rem;
}

.gplt-swipe-restart {
  margin-top: 1rem;
}

@media (max-width: 767px) {
  .gplt-social-main {
    overflow-x: clip;
  }

  .gplt-profile-page .gplt-portfolio-swipe-wrap {
    display: block;
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
  }

  .gplt-public-profile .gplt-portfolio-swipe-wrap {
    display: none !important;
  }

  .gplt-profile-page:not(.gplt-public-profile) .gplt-portfolio-grid-view {
    display: none !important;
  }

  .gplt-public-profile .gplt-profile-portfolio-grid[hidden],
  .gplt-public-profile .gplt-profile-portfolio-list[hidden] {
    display: none !important;
  }

  .gplt-profile-portfolios.is-grid-mode .gplt-profile-portfolio-grid,
  .gplt-profile-portfolio-shell.gplt-profile-grid-mode .gplt-profile-portfolio-grid {
    display: grid !important;
  }

  .gplt-profile-portfolios.is-large-mode .gplt-profile-portfolio-list,
  .gplt-profile-portfolio-shell.gplt-profile-large-mode .gplt-profile-portfolio-list {
    display: grid !important;
  }

  .gplt-profile-portfolios.is-large-mode .gplt-profile-portfolio-grid,
  .gplt-profile-portfolio-shell.gplt-profile-large-mode .gplt-profile-portfolio-grid {
    display: none !important;
  }

  .gplt-profile-portfolios.is-grid-mode .gplt-profile-portfolio-list,
  .gplt-profile-portfolio-shell.gplt-profile-grid-mode .gplt-profile-portfolio-list {
    display: none !important;
  }

  .gplt-feed--ideas .gplt-ideas-hero {
    margin-bottom: .75rem;
  }

  .gplt-feed--ideas .gplt-feed-swipe-wrap {
    display: block;
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
  }

  .gplt-feed--ideas .gplt-feed-grid-view {
    display: none !important;
  }

  .gplt-feed--ideas .gplt-load-more-wrap {
    display: none;
  }

  .gplt-feed--ideas .gplt-feed-swipe-wrap .gplt-swipe-deck-shell {
    max-width: min(100%, var(--gplt-content-max, 935px));
    margin-inline: auto;
  }

  .gplt-guest-membership-prompt--feed-grid {
    display: none;
  }
}

/* ── Guest membership prompt (portfolio preview limit) ─────── */
.gplt-guest-membership-prompt {
  margin: 1.5rem auto 0;
  max-width: 520px;
  padding: 1.5rem 1.25rem;
  border-radius: 20px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  background: linear-gradient(180deg, #fff 0%, var(--gplt-bg-soft, #fafafa) 100%);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.06);
  text-align: center;
}

.gplt-guest-membership-title {
  margin: 0 0 .5rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--gplt-text);
}

.gplt-guest-membership-lead {
  margin: 0 0 1.1rem;
  font-size: .9375rem;
  line-height: 1.55;
  color: var(--gplt-muted);
}

.gplt-guest-membership-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .65rem;
}

.gplt-guest-membership-empty {
  margin-top: .5rem;
  padding: 1.25rem 1rem 1.5rem;
  border-radius: 20px;
  background: linear-gradient(180deg, #fff 0%, var(--gplt-bg-soft, #fafafa) 100%);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.06);
}

.gplt-guest-membership-prompt--profile {
  margin-top: 1.25rem;
}

@media (min-width: 768px) {
  .gplt-guest-membership-prompt--feed-grid {
    display: block;
  }
}
/* ── Membership & Onboarding ─────────────────────────────────── */
.gplt-onboarding {
  max-width: 960px;
  margin: 0 auto;
}

.gplt-onboarding-hero {
  text-align: center;
  margin-bottom: 2rem;
}

.gplt-onboarding-lead {
  color: var(--gplt-muted);
  font-size: 1.05rem;
  max-width: 520px;
  margin: 0.5rem auto 0;
}

.gplt-form-narrow {
  max-width: 420px;
  margin: 0 auto;
}

.gplt-form-center {
  text-align: center;
}

.gplt-required {
  color: var(--gplt-red);
}

.gplt-btn-block {
  width: 100%;
}

.gplt-plan-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.25rem;
  align-items: stretch;
}

.gplt-plan-card {
  position: relative;
  background: var(--gplt-surface);
  border: 1px solid var(--gplt-border);
  border-radius: var(--gplt-radius-pin);
  padding: 1.75rem 1.5rem;
  box-shadow: var(--gplt-shadow-xs);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.gplt-plan-card.is-featured {
  border-color: var(--gplt-red);
  box-shadow: 0 8px 28px rgba(230, 0, 35, 0.15);
  transform: scale(1.03);
  z-index: 1;
}

.gplt-plan-badge {
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--gplt-red);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
}

.gplt-plan-name {
  font-family: var(--gplt-font-serif);
  font-size: 1.75rem;
  margin: 0.5rem 0 0;
}

.gplt-plan-duration {
  color: var(--gplt-muted);
  margin: 0;
}

.gplt-plan-price {
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0.25rem 0 1rem;
}

.gplt-plan-card .gplt-btn {
  margin-top: auto;
}

.gplt-member-dashboard .gplt-dash-widgets {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  margin-bottom: 2rem;
}

.gplt-dash-notice {
  border-radius: var(--gplt-radius-sm);
  padding: 1rem 1.25rem;
  margin-bottom: 1.25rem;
  border: 1px solid var(--gplt-border);
  background: var(--gplt-bg-soft);
}

.gplt-dash-notice p {
  margin: 0 0 0.5rem;
}

.gplt-dash-notice p:last-child {
  margin-bottom: 0;
}

.gplt-dash-notice-warning {
  border-color: #dba617;
  background: #fff8e5;
}

.gplt-dash-notice-info {
  border-color: var(--gplt-border);
}

.gplt-dash-notice-success {
  border-color: #46b450;
  background: #f0fff1;
}

/* ── Dashboard v2 layout ─────────────────────────────────────────────────── */
body.gplt-dashboard-page #gplt-social-wrap {
  background: var(--gplt-bg-gradient, linear-gradient(145deg, #f8fafc 0%, #eef2ff 38%, #fdf4ff 72%, #f0fdfa 100%));
}

.gplt-dashboard-v2 {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 0 2.5rem;
  position: relative;
}

.gplt-dashboard-v2.gplt-glass-surface::before {
  border-radius: var(--gplt-radius-xl);
}

.gplt-dashboard-v2 .gplt-dash-card,
.gplt-dashboard-v2 .gplt-glass-card {
  background: var(--gplt-glass-bg, rgba(255, 255, 255, 0.72));
  border: 1px solid var(--gplt-glass-border, rgba(255, 255, 255, 0.85));
  border-radius: var(--gplt-radius-lg, 22px);
  box-shadow: var(--gplt-shadow-md, 0 8px 24px rgba(15, 23, 42, 0.08));
  backdrop-filter: blur(var(--gplt-glass-blur, 18px));
  -webkit-backdrop-filter: blur(var(--gplt-glass-blur, 18px));
  padding: 1.25rem 1.35rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.gplt-dashboard-v2 .gplt-dash-card:hover,
.gplt-dashboard-v2 .gplt-glass-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--gplt-shadow-lg, 0 18px 48px rgba(15, 23, 42, 0.12));
}

.gplt-dash-hero,
.gplt-dashboard-v2 .gplt-glass-hero {
  margin-bottom: 1.25rem;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.88) 0%, rgba(255, 255, 255, 0.62) 100%);
  border-radius: var(--gplt-radius-xl, 28px);
  box-shadow: var(--gplt-shadow-lg);
}

.gplt-dash-hero-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
}

.gplt-dash-hero-kicker {
  margin: 0 0 0.35rem;
  font-size: 0.82rem;
  color: var(--gplt-muted);
  font-weight: 600;
}

.gplt-dash-hero-title {
  margin: 0 0 0.5rem;
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  line-height: 1.25;
}

.gplt-dash-hero-status {
  margin: 0;
  color: var(--gplt-muted);
  max-width: 52ch;
  line-height: 1.7;
}

.gplt-dash-hero--is-warning {
  border-color: #dba617;
  background: linear-gradient(135deg, #fffdf5 0%, #fff8e5 100%);
}

.gplt-dash-hero--is-info {
  border-color: var(--gplt-border);
}

.gplt-dash-hero-actions .gplt-btn {
  white-space: nowrap;
}

.gplt-dash-summary {
  margin-bottom: 1.5rem;
}

.gplt-dash-summary-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.85rem;
}

.gplt-dash-summary-card {
  min-height: 108px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.gplt-dash-summary-label {
  margin: 0 0 0.5rem;
  font-size: 0.82rem;
  color: var(--gplt-muted);
  font-weight: 600;
}

.gplt-dash-summary-value {
  margin: 0;
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.2;
}

.gplt-dash-summary-suffix {
  margin: 0.25rem 0 0;
  font-size: 0.78rem;
  color: var(--gplt-muted);
}

.gplt-dash-summary-muted {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  color: var(--gplt-muted);
  line-height: 1.55;
}

.gplt-dash-summary-card.is-disabled {
  opacity: 0.88;
  background: var(--gplt-bg-soft);
}

.gplt-dash-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(min(100%, 280px), 1fr);
  gap: 1.25rem;
  align-items: start;
}

.gplt-dash-main,
.gplt-dash-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}

.gplt-dash-module > section,
.gplt-dash-module > .gplt-missions-panel,
.gplt-dash-module > .gplt-achievements-panel,
.gplt-dash-module > .gplt-referrals-panel,
.gplt-dash-module > .gplt-rewards-panel,
.gplt-dash-module > .gplt-notifications-panel {
  margin-bottom: 0;
}

.gplt-dashboard-v2 .gplt-dash-section {
  margin-bottom: 0;
  padding-top: 0;
  border-top: 0;
}

.gplt-dashboard-v2 .gplt-dash-module .gplt-dash-card,
.gplt-dashboard-v2 .gplt-dash-module .gplt-notifications-hero,
.gplt-dashboard-v2 .gplt-dash-module .gplt-rewards-hero,
.gplt-dashboard-v2 .gplt-dash-module .gplt-referrals-hero {
  border: 1px solid var(--gplt-border);
  box-shadow: none;
}

.gplt-dashboard-v2 .gplt-missions-header,
.gplt-dashboard-v2 .gplt-achievements-header,
.gplt-dashboard-v2 .gplt-notifications-hero-top,
.gplt-dashboard-v2 .gplt-referrals-header,
.gplt-dashboard-v2 .gplt-rewards-hero {
  margin-bottom: 0.75rem;
}

.gplt-dashboard-v2 .gplt-missions-grid,
.gplt-dashboard-v2 .gplt-rewards-grid,
.gplt-dashboard-v2 .gplt-achievements-grid {
  gap: 0.85rem;
}

.gplt-dash-module--compact .gplt-achievements-section + .gplt-achievements-section,
.gplt-dash-module--compact .gplt-referrals-cards {
  margin-top: 0.75rem;
}

.gplt-dash-sidebar-text {
  margin: 0 0 0.85rem;
  color: var(--gplt-muted);
}

.gplt-dash-dl-compact div {
  padding: 0.3rem 0;
}

.gplt-dash-quick-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.gplt-dash-quick-list a {
  display: block;
  padding: 0.55rem 0.75rem;
  border-radius: var(--gplt-radius-sm);
  background: var(--gplt-bg-soft);
  text-decoration: none;
  color: inherit;
  transition: background 0.15s ease;
}

.gplt-dash-quick-list a:hover {
  background: var(--gplt-border);
}

.gplt-btn-block {
  display: block;
  width: 100%;
  text-align: center;
}

.gplt-dash-profile-section {
  margin-top: 1.5rem;
}

.gplt-dash-profile-header {
  margin-bottom: 1rem;
}

.gplt-dash-profile-intro {
  margin: 0.35rem 0 0;
  color: var(--gplt-muted);
  line-height: 1.65;
}

.gplt-dash-form-section {
  border: 1px solid var(--gplt-border);
  border-radius: var(--gplt-radius-sm);
  margin-bottom: 0.85rem;
  background: var(--gplt-bg-soft);
  overflow: hidden;
}

.gplt-dash-form-section > summary {
  cursor: pointer;
  list-style: none;
  padding: 0.85rem 1rem;
  font-weight: 700;
  background: #fff;
  border-bottom: 1px solid transparent;
}

.gplt-dash-form-section[open] > summary {
  border-bottom-color: var(--gplt-border);
}

.gplt-dash-form-section > summary::-webkit-details-marker {
  display: none;
}

.gplt-dash-form-section > summary::before {
  content: "◂";
  display: inline-block;
  margin-left: 0.5rem;
  transition: transform 0.15s ease;
}

.gplt-dash-form-section[open] > summary::before {
  transform: rotate(-90deg);
}

.gplt-dash-form-section > .gplt-dash-form-grid,
.gplt-dash-form-section > .gplt-form-group {
  padding: 1rem;
}

.gplt-dash-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem 1rem;
}

.gplt-form-group--full {
  grid-column: 1 / -1;
}

.gplt-dash-skills-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.45rem 0.75rem;
}

.gplt-dash-form-actions {
  padding-top: 0.5rem;
}

.gplt-dashboard-page .gplt-social-main {
  padding-top: 0.5rem;
}

@media (max-width: 1024px) {
  .gplt-dash-summary-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gplt-dash-layout {
    grid-template-columns: 1fr;
  }

  .gplt-dash-sidebar {
    order: -1;
  }
}

@media (max-width: 640px) {
  .gplt-dash-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gplt-dash-form-grid {
    grid-template-columns: 1fr;
  }

  .gplt-dash-hero-actions,
  .gplt-dash-hero-actions .gplt-btn {
    width: 100%;
  }

  .gplt-dash-hero-actions .gplt-btn {
    text-align: center;
  }

  .gplt-referrals-input,
  .gplt-referrals-code-display {
    word-break: break-all;
  }
}

.gplt-dash-card {
  background: var(--gplt-bg-soft);
  border-radius: var(--gplt-radius-sm);
  padding: 1.25rem;
}

.gplt-dash-card-title {
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gplt-muted);
  margin: 0 0 0.75rem;
}

.gplt-dash-dl div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.35rem 0;
  border-bottom: 1px solid var(--gplt-border);
}

.gplt-dash-dl dt {
  color: var(--gplt-muted);
  font-weight: 500;
}

.gplt-dash-dl dd {
  margin: 0;
  font-weight: 600;
}

.gplt-dash-stat {
  font-size: 1.1rem;
  margin: 0.5rem 0;
}

.gplt-progress-wrap {
  height: 8px;
  background: var(--gplt-border);
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 0.5rem;
}

.gplt-progress-bar {
  height: 100%;
  background: var(--gplt-red);
  border-radius: 999px;
}

.gplt-dash-section {
  margin-bottom: 2.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--gplt-border);
}

.gplt-dash-section-muted {
  opacity: 0.95;
}

.gplt-missions-panel {
  margin-bottom: 2.5rem;
}

.gplt-missions-header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem 1.5rem;
  margin-bottom: 1rem;
}

.gplt-missions-balance {
  margin: 0;
  font-size: 0.95rem;
}

.gplt-missions-section {
  margin-bottom: 1.75rem;
}

.gplt-missions-section .gplt-h3 {
  margin-bottom: 0.75rem;
}

.gplt-missions-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
  gap: 1rem;
}

.gplt-mission-card {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.gplt-mission-card-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  font-size: 0.85rem;
  color: var(--gplt-muted, #666);
}

.gplt-mission-type {
  font-weight: 600;
}

.gplt-mission-reward {
  color: var(--gplt-text, inherit);
}

.gplt-mission-title {
  margin: 0;
  font-size: 1.05rem;
}

.gplt-mission-desc {
  margin: 0;
  font-size: 0.9rem;
  color: var(--gplt-muted, #666);
}

.gplt-mission-progress-meta {
  font-size: 0.9rem;
}

.gplt-mission-meta {
  margin: 0.25rem 0 0;
  padding: 0;
  list-style: none;
  font-size: 0.82rem;
  color: var(--gplt-muted, #666);
}

.gplt-mission-meta li + li {
  margin-top: 0.25rem;
}

.gplt-missions-completed-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gplt-mission-completed-item {
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--gplt-border);
}

.gplt-mission-completed-item:last-child {
  border-bottom: none;
}

.gplt-mission-completed-meta {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.85rem;
  color: var(--gplt-muted, #666);
}

.gplt-empty-text {
  margin: 0;
  color: var(--gplt-muted, #666);
}

.gplt-empty-hint {
  margin-top: 0.35rem;
  font-size: 0.85rem;
}

.gplt-missions-admin-notice {
  margin: 0.5rem 0 0;
  color: var(--gplt-muted, #666);
}

.gplt-mission-completed-badge {
  display: inline-block;
  margin-inline-start: 0.5rem;
  padding: 0.1rem 0.45rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--gplt-text, inherit);
  background: rgba(0, 0, 0, 0.06);
  border-radius: 4px;
}

.gplt-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.gplt-achievements-panel {
  margin-bottom: 2.5rem;
}

.gplt-achievements-header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem 1.5rem;
  margin-bottom: 1rem;
}

.gplt-achievements-summary-meta {
  font-size: 0.95rem;
}

.gplt-achievements-summary-count,
.gplt-achievements-balance {
  margin: 0.15rem 0;
}

.gplt-achievements-latest {
  margin-bottom: 1rem;
  padding: 0.65rem 0.85rem;
  background: rgba(0, 0, 0, 0.04);
  border-radius: 6px;
  font-size: 0.9rem;
}

.gplt-achievements-latest-label {
  color: var(--gplt-muted, #666);
  margin-inline-end: 0.35rem;
}

.gplt-achievements-latest-date {
  display: inline-block;
  margin-inline-start: 0.5rem;
  color: var(--gplt-muted, #666);
  font-size: 0.85rem;
}

.gplt-achievements-section {
  margin-bottom: 1.75rem;
}

.gplt-achievements-section .gplt-h3 {
  margin-bottom: 0.75rem;
}

.gplt-achievements-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
  gap: 1rem;
}

.gplt-achievement-card {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.gplt-achievement-card--locked {
  opacity: 0.92;
}

.gplt-achievement-icon img {
  width: 48px;
  height: 48px;
  object-fit: contain;
  border-radius: 8px;
}

.gplt-achievement-icon--locked img {
  filter: grayscale(0.35);
  opacity: 0.85;
}

.gplt-achievement-card-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  font-size: 0.85rem;
  color: var(--gplt-muted, #666);
}

.gplt-achievement-type {
  font-weight: 600;
}

.gplt-achievement-status {
  color: var(--gplt-text, inherit);
  font-weight: 600;
}

.gplt-achievement-reward {
  color: var(--gplt-text, inherit);
}

.gplt-achievement-title {
  margin: 0;
  font-size: 1.05rem;
}

.gplt-achievement-desc {
  margin: 0;
  font-size: 0.9rem;
  color: var(--gplt-muted, #666);
}

.gplt-achievement-progress-meta {
  font-size: 0.9rem;
}

.gplt-achievement-hint {
  margin: 0;
  font-size: 0.85rem;
  color: var(--gplt-muted, #666);
  font-style: italic;
}

.gplt-achievement-meta {
  margin: 0.25rem 0 0;
  padding: 0;
  list-style: none;
  font-size: 0.82rem;
  color: var(--gplt-muted, #666);
}

.gplt-achievement-meta li + li {
  margin-top: 0.25rem;
}

.gplt-achievement-hidden-tag {
  font-size: 0.75rem;
  font-weight: 600;
}

.gplt-achievement-badge-rare .gplt-achievement-type {
  color: #2563eb;
}

.gplt-achievement-badge-epic .gplt-achievement-type {
  color: #7c3aed;
}

.gplt-achievement-badge-legendary .gplt-achievement-type {
  color: #b45309;
}

.gplt-achievement-badge-secret .gplt-achievement-type {
  color: #64748b;
}

/* ── Referral panel (Phase 4C) ─────────────────────────────────────────── */

.gplt-referrals-panel {
  margin-bottom: 2.5rem;
}

.gplt-referrals-panel--message {
  margin-bottom: 1.5rem;
}

.gplt-referrals-hero {
  margin-bottom: 1.25rem;
}

.gplt-referrals-header .gplt-h2 {
  margin: 0 0 0.5rem;
}

.gplt-referrals-intro,
.gplt-referrals-reward-hint {
  margin: 0.35rem 0 0;
  font-size: 0.95rem;
  color: var(--gplt-muted, #666);
  line-height: 1.6;
}

.gplt-referrals-reward-hint--coin {
  color: var(--gplt-text, inherit);
}

.gplt-referrals-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.gplt-referrals-card-title {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  font-weight: 600;
}

.gplt-referrals-code-display {
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  margin-bottom: 0.75rem;
  word-break: break-all;
}

.gplt-referrals-input {
  width: 100%;
  box-sizing: border-box;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--gplt-border, #ddd);
  border-radius: 8px;
  font-size: 0.9rem;
  background: var(--gplt-surface, #fafafa);
  direction: ltr;
  text-align: left;
}

.gplt-referrals-input--sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.gplt-referrals-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.gplt-referrals-copy-code.is-copied,
.gplt-referrals-copy-link.is-copied {
  border-color: #16a34a;
  color: #16a34a;
}

.gplt-referrals-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

.gplt-referrals-stat-card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 1rem;
  text-align: center;
}

.gplt-referrals-stat-label {
  font-size: 0.85rem;
  color: var(--gplt-muted, #666);
}

.gplt-referrals-stat-value {
  font-size: 1.5rem;
  line-height: 1.2;
}

.gplt-referrals-referred,
.gplt-referrals-howto {
  margin-bottom: 1.25rem;
}

.gplt-referrals-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gplt-referrals-list-item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--gplt-border, #eee);
}

.gplt-referrals-list-item:last-child {
  border-bottom: none;
}

.gplt-referrals-list-main {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.gplt-referrals-name {
  font-weight: 600;
}

.gplt-referrals-date {
  font-size: 0.85rem;
  color: var(--gplt-muted, #666);
}

.gplt-referrals-status {
  font-size: 0.82rem;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  background: var(--gplt-surface, #f3f4f6);
  white-space: nowrap;
}

.gplt-referrals-status.is-converted {
  background: #dcfce7;
  color: #166534;
}

.gplt-referrals-status.is-registered {
  background: #e0f2fe;
  color: #075985;
}

.gplt-referrals-steps {
  margin: 0 0 0.75rem;
  padding-inline-start: 1.25rem;
  line-height: 1.7;
}

.gplt-referrals-howto-extra {
  margin: 0.5rem 0 0;
  font-size: 0.9rem;
  color: var(--gplt-muted, #666);
}

@media (max-width: 768px) {
  .gplt-referrals-cards {
    grid-template-columns: 1fr;
  }

  .gplt-referrals-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gplt-referrals-code-display {
    font-size: 1.45rem;
  }
}

/* ── Leaderboard panel (Phase 5B) ────────────────────────────────────────── */

.gplt-leaderboard-panel {
  margin-bottom: 2.5rem;
}

.gplt-leaderboard-panel--message,
.gplt-leaderboard-panel--empty {
  margin-bottom: 1.5rem;
}

.gplt-leaderboard-header {
  margin-bottom: 1rem;
}

.gplt-leaderboard-header .gplt-h2 {
  margin: 0 0 0.5rem;
}

.gplt-leaderboard-description {
  margin: 0 0 0.75rem;
  color: var(--gplt-muted, #666);
  line-height: 1.6;
}

.gplt-leaderboard-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  font-size: 0.9rem;
  color: var(--gplt-muted, #666);
}

.gplt-leaderboard-meta-label {
  margin-inline-end: 0.25rem;
}

.gplt-leaderboard-current-user {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  margin-bottom: 1rem;
  padding: 0.85rem 1rem;
  background: var(--gplt-surface, #f8fafc);
  border: 1px solid var(--gplt-border, #e5e7eb);
  border-radius: 10px;
}

.gplt-leaderboard-current-label {
  font-size: 0.85rem;
  color: var(--gplt-muted, #666);
}

.gplt-leaderboard-current-value {
  font-size: 0.9rem;
  color: var(--gplt-muted, #666);
}

.gplt-leaderboard-table-wrap {
  overflow-x: auto;
}

.gplt-leaderboard-table {
  width: 100%;
  border-collapse: collapse;
}

.gplt-leaderboard-table th,
.gplt-leaderboard-table td {
  padding: 0.75rem 0.65rem;
  text-align: right;
  border-bottom: 1px solid var(--gplt-border, #eee);
}

.gplt-leaderboard-table th {
  font-size: 0.85rem;
  color: var(--gplt-muted, #666);
  font-weight: 600;
}

.gplt-leaderboard-row.is-current-user {
  background: rgba(59, 130, 246, 0.06);
}

.gplt-leaderboard-rank-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  font-weight: 700;
}

.gplt-leaderboard-user-inner {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}

.gplt-leaderboard-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.gplt-leaderboard-name {
  font-weight: 600;
}

.gplt-leaderboard-you-badge {
  font-size: 0.75rem;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  background: #dbeafe;
  color: #1d4ed8;
  white-space: nowrap;
}

.gplt-leaderboard-cards {
  display: none;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gplt-leaderboard-card {
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--gplt-border, #eee);
}

.gplt-leaderboard-card:last-child {
  border-bottom: none;
}

.gplt-leaderboard-card.is-current-user {
  background: rgba(59, 130, 246, 0.06);
  margin: 0 -0.75rem;
  padding-inline: 0.75rem;
  border-radius: 8px;
}

.gplt-leaderboard-card-rank,
.gplt-leaderboard-card-user,
.gplt-leaderboard-card-score {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}

.gplt-leaderboard-card-user {
  justify-content: flex-start;
}

.gplt-leaderboard-rank-label {
  font-size: 0.82rem;
  color: var(--gplt-muted, #666);
}

@media (max-width: 640px) {
  .gplt-leaderboard-table {
    display: none;
  }

  .gplt-leaderboard-cards {
    display: block;
  }
}

.gplt-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

@media (max-width: 600px) {
  .gplt-form-row {
    grid-template-columns: 1fr;
  }
  .gplt-plan-card.is-featured {
    transform: none;
  }
}

.gplt-status {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
}

/* ── Reward store panel (Phase 6B) ─────────────────────────────────────── */

.gplt-rewards-panel {
  margin-bottom: 2.5rem;
}

.gplt-rewards-panel--message {
  margin-bottom: 1.5rem;
}

.gplt-rewards-hero {
  margin-bottom: 1.25rem;
}

.gplt-rewards-hero .gplt-h2 {
  margin: 0 0 0.5rem;
}

.gplt-rewards-intro,
.gplt-rewards-zero-hint {
  margin: 0.35rem 0 0;
  font-size: 0.95rem;
  color: var(--gplt-muted, #666);
  line-height: 1.6;
}

.gplt-rewards-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 10px;
  background: var(--gplt-surface, #f8fafc);
  border: 1px solid var(--gplt-border, #e2e8f0);
}

.gplt-rewards-summary-label {
  font-size: 0.9rem;
  color: var(--gplt-muted, #666);
}

.gplt-rewards-summary-value {
  font-size: 1.75rem;
  line-height: 1.1;
  color: var(--gplt-text, inherit);
}

.gplt-rewards-summary-unit {
  font-size: 0.95rem;
  color: var(--gplt-muted, #666);
}

.gplt-rewards-notice {
  margin-bottom: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 8px;
  border: 1px solid transparent;
}

.gplt-rewards-notice--success {
  background: #ecfdf5;
  border-color: #a7f3d0;
  color: #065f46;
}

.gplt-rewards-notice--error {
  background: #fef2f2;
  border-color: #fecaca;
  color: #991b1b;
}

.gplt-rewards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.gplt-rewards-card {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.gplt-rewards-card.is-featured {
  border-color: var(--gplt-primary, #2563eb);
  box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.15);
}

.gplt-rewards-card-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}

.gplt-rewards-card-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.4;
}

.gplt-rewards-card-desc {
  margin: 0;
  font-size: 0.92rem;
  color: var(--gplt-muted, #666);
  line-height: 1.6;
}

.gplt-rewards-badge {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
  white-space: nowrap;
}

.gplt-rewards-badge--available {
  background: #ecfdf5;
  color: #047857;
}

.gplt-rewards-badge--unavailable {
  background: #f1f5f9;
  color: #64748b;
}

.gplt-rewards-meta {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.88rem;
  color: var(--gplt-text, inherit);
}

.gplt-rewards-meta li + li {
  margin-top: 0.35rem;
}

.gplt-rewards-meta span {
  color: var(--gplt-muted, #666);
}

.gplt-rewards-redeem-form {
  margin-top: auto;
}

.gplt-rewards-redeem-btn:disabled,
.gplt-rewards-redeem-btn[disabled] {
  opacity: 0.65;
  cursor: not-allowed;
}

.gplt-reward-notice,
.gplt-rewards-live-notice {
  margin-bottom: 0.75rem;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  font-size: 0.92rem;
}

.gplt-reward-notice.gplt-rewards-notice--success,
.gplt-rewards-live-notice.gplt-rewards-notice--success {
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #a7f3d0;
}

.gplt-reward-notice.gplt-rewards-notice--error,
.gplt-rewards-live-notice.gplt-rewards-notice--error {
  background: #fef2f2;
  color: #b91c1c;
  border: 1px solid #fecaca;
}

.gplt-reward-redeem-button.is-loading {
  opacity: 0.7;
  cursor: wait;
}

.gplt-rewards-redemptions {
  margin-top: 0.5rem;
}

.gplt-rewards-redemptions .gplt-h3 {
  margin: 0 0 0.75rem;
}

.gplt-rewards-redemptions-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gplt-rewards-redemptions-item {
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--gplt-border, #eee);
}

.gplt-rewards-redemptions-item:last-child {
  border-bottom: none;
}

.gplt-rewards-redemptions-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  margin-bottom: 0.35rem;
}

.gplt-rewards-redemptions-cost {
  font-size: 0.9rem;
  color: var(--gplt-muted, #666);
}

.gplt-rewards-redemptions-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  font-size: 0.85rem;
  color: var(--gplt-muted, #666);
}

.gplt-rewards-status,
.gplt-rewards-fulfillment {
  display: inline-block;
}

@media (max-width: 600px) {
  .gplt-rewards-grid {
    grid-template-columns: 1fr;
  }

  .gplt-rewards-summary-value {
    font-size: 1.5rem;
  }
}

/* ── Notification center (Phase 7B) ─────────────────────────────────────── */

.gplt-notifications-panel {
  margin-bottom: 2.5rem;
}

.gplt-notifications-panel--message {
  margin-bottom: 1.5rem;
}

.gplt-notifications-summary {
  margin-bottom: 1rem;
}

.gplt-notifications-summary-inner {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.gplt-notifications-bell {
  font-size: 1.5rem;
  line-height: 1;
}

.gplt-notifications-summary-text strong {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.05rem;
}

.gplt-notifications-summary-hint {
  margin: 0.35rem 0 0;
  font-size: 0.9rem;
  color: var(--gplt-muted, #666);
}

.gplt-notifications-unread-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.2;
}

.gplt-notifications-unread-badge--hero {
  vertical-align: middle;
}

.gplt-notifications-hero {
  margin-bottom: 1.25rem;
}

.gplt-notifications-hero-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.35rem;
}

.gplt-notifications-hero .gplt-h2 {
  margin: 0;
}

.gplt-notifications-intro,
.gplt-notifications-unread-hint {
  margin: 0.35rem 0 0;
  font-size: 0.95rem;
  color: var(--gplt-muted, #666);
  line-height: 1.6;
}

.gplt-notifications-mark-all-form {
  margin-top: 0.85rem;
}

.gplt-notifications-notice {
  margin-bottom: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 8px;
  border: 1px solid transparent;
}

.gplt-notifications-notice--success {
  background: #ecfdf5;
  border-color: #a7f3d0;
  color: #065f46;
}

.gplt-notifications-notice--error {
  background: #fef2f2;
  border-color: #fecaca;
  color: #991b1b;
}

.gplt-notifications-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.gplt-notifications-item {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.gplt-notifications-item.is-unread {
  border-right: 3px solid var(--gplt-primary, #2563eb);
  background: rgba(37, 99, 235, 0.04);
}

.gplt-notifications-item-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
}

.gplt-notifications-item-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
}

.gplt-notifications-item-message {
  margin: 0;
  font-size: 0.92rem;
  color: var(--gplt-muted, #666);
  line-height: 1.6;
}

.gplt-notifications-type-badge,
.gplt-notifications-status-badge {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
}

.gplt-notifications-type-badge {
  background: #f1f5f9;
  color: #334155;
}

.gplt-notifications-type-badge--mission { background: #ede9fe; color: #5b21b6; }
.gplt-notifications-type-badge--achievement { background: #fef3c7; color: #92400e; }
.gplt-notifications-type-badge--reward { background: #ecfdf5; color: #047857; }
.gplt-notifications-type-badge--referral { background: #e0f2fe; color: #0369a1; }
.gplt-notifications-type-badge--coin { background: #fff7ed; color: #c2410c; }

.gplt-notifications-status-badge--unread {
  background: #dbeafe;
  color: #1d4ed8;
}

.gplt-notifications-status-badge--read {
  background: #f1f5f9;
  color: #64748b;
}

.gplt-notifications-status-badge--archived {
  background: #f8fafc;
  color: #94a3b8;
}

.gplt-notifications-item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  font-size: 0.85rem;
  color: var(--gplt-muted, #666);
}

.gplt-notifications-item-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.25rem;
}

.gplt-notifications-action-form {
  margin: 0;
}

.gplt-notifications-live-notice {
  margin-bottom: 0.75rem;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  font-size: 0.92rem;
}

.gplt-notifications-live-notice.gplt-notifications-notice--success {
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #a7f3d0;
}

.gplt-notifications-live-notice.gplt-notifications-notice--error {
  background: #fef2f2;
  color: #b91c1c;
  border: 1px solid #fecaca;
}

.gplt-notifications-item.is-archiving,
.gplt-notifications-item.is-removing {
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 0.18s ease, transform 0.18s ease;
}

.gplt-notification-action button.is-loading,
.gplt-notifications-mark-all-btn.is-loading {
  opacity: 0.7;
  cursor: wait;
}

.gplt-notification-action button:disabled {
  cursor: not-allowed;
}

.gplt-notifications-item.is-read .gplt-notifications-mark-read-btn {
  display: none;
}

@media (max-width: 600px) {
  .gplt-notifications-item-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .gplt-notifications-item-actions .gplt-btn {
    width: 100%;
  }
}

/* ── Glass UI — Frontend dashboard modules ─────────────────────────────────── */
.gplt-dashboard-v2 .gplt-dash-summary-value {
  font-size: 1.55rem;
  font-weight: 800;
  color: var(--gplt-text, #0f172a);
  letter-spacing: -0.02em;
}

.gplt-dashboard-v2 .gplt-dash-summary-label {
  font-weight: 700;
  color: var(--gplt-text-muted, #64748b);
}

.gplt-dashboard-v2 .gplt-btn-primary,
.gplt-dashboard-v2 .gplt-btn.gplt-btn-primary {
  background: linear-gradient(135deg, var(--gplt-accent-blue, #2563ff), var(--gplt-accent-violet, #7c3aed));
  border: none;
  box-shadow: var(--gplt-shadow-glow-blue, 0 0 0 1px rgba(37, 99, 255, 0.15), 0 8px 32px rgba(37, 99, 255, 0.12));
  color: #fff;
}

.gplt-dashboard-v2 .gplt-btn-primary:hover {
  opacity: 0.95;
  color: #fff;
}

.gplt-dashboard-v2 .gplt-dash-module .gplt-missions-panel,
.gplt-dashboard-v2 .gplt-dash-module .gplt-achievements-panel,
.gplt-dashboard-v2 .gplt-dash-module .gplt-referrals-panel,
.gplt-dashboard-v2 .gplt-dash-module .gplt-rewards-panel,
.gplt-dashboard-v2 .gplt-dash-module .gplt-notifications-panel {
  background: var(--gplt-glass-bg, rgba(255, 255, 255, 0.72));
  border: 1px solid var(--gplt-glass-border-soft, rgba(148, 163, 184, 0.28));
  border-radius: var(--gplt-radius-lg, 22px);
  box-shadow: var(--gplt-shadow-md);
  backdrop-filter: blur(var(--gplt-glass-blur, 18px));
  -webkit-backdrop-filter: blur(var(--gplt-glass-blur, 18px));
  padding: 1.1rem 1.2rem;
}

.gplt-dashboard-v2 .gplt-dash-section {
  margin-bottom: 0;
  padding-top: 0;
  border-top: 0;
}

.gplt-dashboard-v2 .gplt-mission-card,
.gplt-dashboard-v2 .gplt-achievement-card,
.gplt-dashboard-v2 .gplt-rewards-card,
.gplt-dashboard-v2 .gplt-referrals-card,
.gplt-dashboard-v2 .gplt-notifications-item {
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid var(--gplt-glass-border-soft, rgba(148, 163, 184, 0.28));
  border-radius: var(--gplt-radius-md, 16px);
  box-shadow: var(--gplt-shadow-sm);
}

.gplt-dashboard-v2 .gplt-progress-bar {
  background: linear-gradient(90deg, var(--gplt-accent-blue, #2563ff), var(--gplt-accent-cyan, #06b6d4));
}

.gplt-dashboard-v2 .gplt-empty-text {
  padding: 0.85rem 1rem;
  border-radius: var(--gplt-radius-md, 16px);
  background: rgba(255, 255, 255, 0.55);
  border: 1px dashed var(--gplt-glass-border-soft, rgba(148, 163, 184, 0.28));
  color: var(--gplt-text-muted, #64748b);
}

.gplt-dashboard-v2 .gplt-dash-profile-section {
  background: var(--gplt-glass-bg-strong, rgba(255, 255, 255, 0.88));
  border: 1px solid var(--gplt-glass-border);
  border-radius: var(--gplt-radius-xl, 28px);
  box-shadow: var(--gplt-shadow-lg);
  backdrop-filter: blur(var(--gplt-glass-blur, 18px));
}

.gplt-dashboard-v2 .gplt-dash-form-section {
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid var(--gplt-glass-border-soft);
  backdrop-filter: blur(10px);
}

.gplt-dashboard-v2 .gplt-dash-form-section > summary {
  background: rgba(255, 255, 255, 0.82);
  color: var(--gplt-text, #0f172a);
  font-weight: 800;
}

.gplt-dashboard-v2 .gplt-form-group input,
.gplt-dashboard-v2 .gplt-form-group textarea,
.gplt-dashboard-v2 .gplt-form-group select {
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid var(--gplt-glass-border-soft);
  border-radius: var(--gplt-radius-sm, 12px);
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04);
}

.gplt-dashboard-v2 .gplt-form-group input:focus,
.gplt-dashboard-v2 .gplt-form-group textarea:focus,
.gplt-dashboard-v2 .gplt-form-group select:focus {
  border-color: var(--gplt-accent-blue, #2563ff);
  box-shadow: 0 0 0 3px var(--gplt-accent-blue-soft, rgba(37, 99, 255, 0.12));
  outline: none;
}

.gplt-dashboard-v2 .gplt-dash-quick-list a {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid var(--gplt-glass-border-soft);
  backdrop-filter: blur(8px);
}

.gplt-dashboard-v2 .gplt-dash-quick-list a:hover {
  border-color: var(--gplt-accent-blue, #2563ff);
  color: var(--gplt-accent-blue, #2563ff);
}

.gplt-dashboard-v2 .gplt-referrals-code-display {
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid var(--gplt-glass-border-soft);
  border-radius: var(--gplt-radius-sm);
  padding: 0.65rem 0.85rem;
}

.gplt-dashboard-v2 .gplt-notifications-unread-badge,
.gplt-dashboard-v2 .gplt-rewards-badge--available {
  background: var(--gplt-accent-blue-soft, rgba(37, 99, 255, 0.12));
  color: var(--gplt-accent-blue, #2563ff);
  border-radius: 999px;
  font-weight: 700;
}

/* Jalali date display & inputs (frontend dashboard) */
.gplt-wrap .gplt-jalali-date,
.gplt-dashboard-v2 .gplt-jalali-date,
.gplt-dash-section time {
  font-variant-numeric: tabular-nums;
}

.gplt-wrap .gplt-date-input,
.gplt-dashboard-v2 .gplt-date-input {
  direction: rtl;
  text-align: right;
  width: 100%;
  border-radius: var(--gplt-radius-sm, 10px);
  border: 1px solid var(--gplt-glass-border-soft, rgba(148, 163, 184, 0.35));
  background: rgba(255, 255, 255, 0.78);
  padding: 0.65rem 0.85rem;
}

.gplt-wrap .gplt-date-input:focus,
.gplt-dashboard-v2 .gplt-date-input:focus {
  border-color: var(--gplt-accent-blue, #2563ff);
  box-shadow: 0 0 0 3px rgba(37, 99, 255, 0.12);
  outline: none;
}

.gplt-wrap .gplt-date-help,
.gplt-dashboard-v2 .gplt-date-help {
  margin-top: 0.35rem;
  color: var(--gplt-text-muted, #64748b);
  font-size: 0.875rem;
}

.gplt-wrap .gplt-date-chip,
.gplt-dashboard-v2 .gplt-date-chip {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid var(--gplt-glass-border-soft, rgba(148, 163, 184, 0.25));
}

/* User portal page template */
.gplt-user-portal {
  max-width: var(--gplt-portal-max-width, 1320px);
  margin: 1.5rem auto 3rem;
  padding: 0 clamp(0.85rem, 2.5vw, 1.25rem);
}

.gplt-user-portal-shell {
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 1.5vw, 18px);
}

.gplt-user-portal-intro {
  padding: 1rem 1.15rem;
  border-radius: var(--gplt-radius-lg, 16px);
  background: var(--gplt-glass-bg, rgba(255, 255, 255, 0.72));
  border: 1px solid var(--gplt-glass-border, rgba(148, 163, 184, 0.28));
  box-shadow: var(--gplt-glass-shadow, 0 8px 32px rgba(15, 23, 42, 0.08));
}

.gplt-user-portal-title {
  margin: 0 0 0.35rem;
  font-size: clamp(1.05rem, 2vw, 1.2rem);
  line-height: 1.3;
}

.gplt-user-portal-lead {
  margin: 0;
  color: var(--gplt-text-muted, #64748b);
  font-size: var(--gplt-portal-text-size, 0.92rem);
  line-height: 1.55;
}

.gplt-user-portal-nav-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  list-style: none;
  margin: 0;
  padding: 0.6rem;
  border-radius: var(--gplt-radius-lg, 16px);
  background: var(--gplt-glass-bg, rgba(255, 255, 255, 0.72));
  border: 1px solid var(--gplt-glass-border, rgba(148, 163, 184, 0.28));
}

.gplt-user-portal-nav-item a {
  display: inline-block;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  text-decoration: none;
  color: var(--gplt-text, #0f172a);
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid transparent;
  font-size: var(--gplt-portal-nav-size, 0.85rem);
  line-height: 1.35;
}

.gplt-user-portal-nav-item.gplt-user-portal-active a {
  background: var(--gplt-primary-soft, rgba(99, 102, 241, 0.12));
  border-color: var(--gplt-primary, #6366f1);
  color: var(--gplt-primary, #6366f1);
  font-weight: 600;
}

.gplt-portal-top-nav {
  position: relative;
  z-index: 1000;
  overflow: visible;
}

.gplt-portal-top-nav-inner {
  display: flex;
  align-items: center;
  gap: 10px;
}

.gplt-breadcrumbs {
  margin: 0 0 14px;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--gplt-text-muted, #64748b);
}

.gplt-user-portal-section > .gplt-breadcrumbs {
  margin: 0 0 12px;
  padding: 0 0.25rem;
}

.gplt-public-profile > .gplt-breadcrumbs,
.gplt-directory > .gplt-breadcrumbs,
.gplt-feed > .gplt-breadcrumbs,
.gplt-cert-view > .gplt-breadcrumbs,
.gplt-story-single-main > .gplt-breadcrumbs {
  margin: 0 0 10px;
}

.gplt-breadcrumbs-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.gplt-breadcrumbs-item {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
}

.gplt-breadcrumbs-item:not(:last-child)::after {
  content: "/";
  margin-inline-start: 6px;
  opacity: 0.55;
  pointer-events: none;
}

.gplt-breadcrumbs-link {
  color: inherit;
  text-decoration: none;
}

.gplt-breadcrumbs-link:hover,
.gplt-breadcrumbs-link:focus-visible {
  color: var(--gplt-primary, #6366f1);
  text-decoration: underline;
  outline: none;
}

.gplt-breadcrumbs-current {
  color: var(--gplt-text, #0f172a);
  font-weight: 600;
  word-break: break-word;
}

.gplt-portal-top-nav-list {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.15rem;
  list-style: none;
  margin: 0;
  padding: 0.35rem 0.45rem;
  border-radius: var(--gplt-radius-lg, 16px);
  background: var(--gplt-glass-bg, rgba(255, 255, 255, 0.72));
  border: 1px solid var(--gplt-glass-border, rgba(148, 163, 184, 0.28));
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  min-width: 0;
}

.gplt-portal-top-nav-actions {
  flex: 0 0 auto;
  margin-inline-start: auto;
}

.gplt-portal-top-nav-bell {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 999px;
  border: 1px solid var(--gplt-glass-border, rgba(148, 163, 184, 0.28));
  background: var(--gplt-glass-bg, rgba(255, 255, 255, 0.72));
  color: var(--gplt-text, #0f172a);
  text-decoration: none;
}

.gplt-portal-top-nav-bell:hover,
.gplt-portal-top-nav-bell:focus-visible {
  border-color: var(--gplt-primary, #6366f1);
  color: var(--gplt-primary, #6366f1);
  outline: none;
}

.gplt-portal-top-nav-bell.is-active {
  background: var(--gplt-primary-soft, rgba(99, 102, 241, 0.12));
  border-color: var(--gplt-primary, #6366f1);
  color: var(--gplt-primary, #6366f1);
}

.gplt-portal-top-nav-bell-icon {
  display: inline-flex;
  width: 1.15rem;
  height: 1.15rem;
}

.gplt-portal-top-nav-bell-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.gplt-portal-top-nav-bell-count {
  position: absolute;
  top: -0.2rem;
  inset-inline-start: -0.15rem;
  min-width: 1.05rem;
  height: 1.05rem;
  padding: 0 0.2rem;
  border-radius: 999px;
  background: var(--gplt-primary, #6366f1);
  color: #fff;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1.05rem;
  text-align: center;
}

.gplt-portal-top-nav-group--categories .gplt-portal-top-nav-trigger {
  white-space: nowrap;
}

.gplt-portal-top-nav-group {
  position: relative;
  flex: 0 0 auto;
  z-index: 1;
}

.gplt-portal-top-nav-group.is-open,
.gplt-portal-top-nav-group:focus-within {
  z-index: 110;
}

.gplt-portal-top-nav-trigger {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin: 0;
  padding: 0.4rem 0.7rem;
  border: 1px solid transparent;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.55);
  color: var(--gplt-text, #0f172a);
  font: inherit;
  font-size: var(--gplt-portal-nav-size, 0.85rem);
  font-weight: 600;
  line-height: 1.35;
  white-space: nowrap;
  cursor: pointer;
}

.gplt-portal-top-nav-trigger::after {
  content: '▾';
  font-size: 0.68rem;
  opacity: 0.7;
}

.gplt-portal-top-nav-group.is-active .gplt-portal-top-nav-trigger {
  background: var(--gplt-primary-soft, rgba(99, 102, 241, 0.12));
  border-color: var(--gplt-primary, #6366f1);
  color: var(--gplt-primary, #6366f1);
}

.gplt-portal-top-nav-group.is-open .gplt-portal-top-nav-trigger {
  border-color: var(--gplt-primary, #6366f1);
}

.gplt-portal-top-nav-label--short {
  display: none;
}

.gplt-portal-top-nav-dropdown {
  display: block;
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  min-width: 11.5rem;
  margin: 0;
  padding: 0.35rem;
  list-style: none;
  border-radius: 12px;
  background: #fff;
  border: 1px solid var(--gplt-glass-border, rgba(148, 163, 184, 0.28));
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}

.gplt-portal-top-nav-dropdown::before {
  content: '';
  position: absolute;
  top: -8px;
  right: 0;
  left: 0;
  height: 8px;
}

.gplt-portal-top-nav-group.is-open .gplt-portal-top-nav-dropdown,
.gplt-portal-top-nav-dropdown.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.gplt-portal-top-nav-link {
  display: block;
  position: relative;
  z-index: 101;
  pointer-events: auto;
  padding: 0.45rem 0.65rem;
  border-radius: 8px;
  text-decoration: none;
  color: var(--gplt-text, #0f172a);
  font-size: var(--gplt-portal-nav-size, 0.85rem);
  line-height: 1.4;
  white-space: nowrap;
}

.gplt-portal-top-nav-link:hover,
.gplt-portal-top-nav-link:focus-visible {
  background: rgba(99, 102, 241, 0.08);
  outline: none;
}

.gplt-portal-top-nav-item.is-active .gplt-portal-top-nav-link,
.gplt-portal-top-nav-item.gplt-user-portal-active .gplt-portal-top-nav-link {
  background: var(--gplt-primary-soft, rgba(99, 102, 241, 0.12));
  color: var(--gplt-primary, #6366f1);
  font-weight: 600;
}

.gplt-portal-nav-item.is-active a,
.gplt-portal-nav-item.gplt-user-portal-active a {
  background: var(--gplt-primary-soft, rgba(99, 102, 241, 0.12));
  border-color: var(--gplt-primary, #6366f1);
  color: var(--gplt-primary, #6366f1);
  font-weight: 600;
}

.gplt-dash-notifications-link {
  margin: 0.35rem 0 0;
  font-size: 0.85rem;
}

.gplt-dash-notifications-link a {
  color: var(--gplt-primary, #6366f1);
  text-decoration: none;
}

.gplt-dash-notifications-link a:hover {
  text-decoration: underline;
}

body.gplt-user-portal-page .gplt-portal-top-nav {
  position: relative;
  z-index: 1000;
  overflow: visible;
}

body.gplt-user-portal-page .gplt-portal-top-nav-group {
  position: relative;
}

body.gplt-user-portal-page .gplt-portal-top-nav-dropdown {
  z-index: 9999;
  pointer-events: none;
}

body.gplt-user-portal-page .gplt-portal-top-nav-group.is-open .gplt-portal-top-nav-dropdown,
body.gplt-user-portal-page .gplt-portal-top-nav-dropdown.is-open {
  pointer-events: auto;
}

body.gplt-user-portal-page .gplt-portal-top-nav-dropdown a,
body.gplt-user-portal-page .gplt-portal-top-nav-link {
  pointer-events: auto;
  position: relative;
  z-index: 10001;
}

body.gplt-user-portal-page .gplt-user-portal-shell,
body.gplt-user-portal-page #gplt-user-portal .gplt-user-portal-shell {
  overflow: visible;
}

@media (max-width: 768px) {
  .gplt-portal-top-nav-label--full {
    display: none;
  }

  .gplt-portal-top-nav-label--short {
    display: inline;
  }

  .gplt-portal-top-nav-list {
    flex-wrap: nowrap;
  }

  .gplt-portal-top-nav-dropdown {
    min-width: 10rem;
    max-width: min(16rem, calc(100vw - 2rem));
  }
}

.gplt-user-portal-section {
  min-height: 120px;
  display: flex;
  flex-direction: column;
  gap: var(--gplt-portal-section-gap, clamp(16px, 2vw, 28px));
}

.gplt-user-portal-section-header {
  margin: 0;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-user-portal-section-title {
  margin: 0;
}

.gplt-user-portal-guest-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.75rem;
}

.gplt-social.gplt-social--portal-embed .gplt-social-main {
  padding-top: 0;
}

/* Iran-only location fields */
.gplt-iran-location-fields .gplt-iran-country-value {
  margin: 0;
  font-weight: 600;
  color: var(--gplt-text, #0f172a);
}

.gplt-location-invalid-notice {
  margin: 0 0 0.75rem;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.35);
  color: #92400e;
  font-size: 0.9rem;
  line-height: 1.5;
}

.gplt-iran-location-fields select:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

.gplt-iran-location-fields .gplt-dash-form-grid,
.gplt-profile-complete-location-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 1rem;
}

@media (max-width: 640px) {
  .gplt-iran-location-fields .gplt-dash-form-grid,
  .gplt-profile-complete-location-grid {
    grid-template-columns: 1fr;
  }
}

/* Portal page: inherit social design tokens outside #gplt-social-wrap */
#gplt-user-portal,
#gplt-user-portal .gplt-social--portal-embed {
  --gplt-portal-max-width: 1320px;
  --gplt-portal-font-size: 14px;
  --gplt-portal-text-size: 0.92rem;
  --gplt-portal-meta-size: 0.8rem;
  --gplt-portal-section-gap: clamp(16px, 2vw, 28px);
  --gplt-portal-card-gap: 18px;
  --gplt-portal-card-padding: 18px;
  --gplt-portal-grid-gap: 18px;
  --gplt-portal-nav-size: 0.85rem;
  --gplt-red: #E60023;
  --gplt-bg: #FFFFFF;
  --gplt-bg-soft: #F1F1F1;
  --gplt-surface: #FFFFFF;
  --gplt-text: #111111;
  --gplt-muted: #767676;
  --gplt-border: #E9E9E9;
  --gplt-primary: #6366f1;
  --gplt-primary-soft: rgba(99, 102, 241, 0.12);
  --gplt-glass-bg: rgba(255, 255, 255, 0.72);
  --gplt-glass-border: rgba(148, 163, 184, 0.28);
  --gplt-glass-shadow: 0 8px 32px rgba(15, 23, 42, 0.08);
  --gplt-radius-lg: 16px;
  --gplt-radius-xl: 28px;
  --gplt-shadow-md: 0 8px 24px rgba(15, 23, 42, 0.08);
  --gplt-shadow-lg: 0 18px 48px rgba(15, 23, 42, 0.12);
  --gplt-bg-gradient: linear-gradient(145deg, #f8fafc 0%, #eef2ff 38%, #fdf4ff 72%, #f0fdfa 100%);
  color: var(--gplt-text);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
  font-size: var(--gplt-portal-font-size, 14px);
  line-height: 1.5;
}

body.gplt-user-portal-page #gplt-user-portal {
  background: var(--gplt-bg-gradient);
  border-radius: var(--gplt-radius-xl);
  padding-bottom: 2rem;
}

/* Portal density: typography, width, spacing (scoped to user portal only) */
body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2,
body.gplt-user-portal-page #gplt-user-portal .gplt-member-dashboard {
  max-width: var(--gplt-portal-max-width, 1320px);
  width: 100%;
  margin-inline: auto;
  padding-inline: 0;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-h1,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-hero-title {
  font-size: clamp(1.15rem, 2.2vw, 1.55rem);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-h2 {
  font-size: 1.05rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-h3 {
  font-size: 0.95rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-lead,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-hero-status,
body.gplt-user-portal-page #gplt-user-portal p {
  font-size: var(--gplt-portal-text-size, 0.92rem);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-hero-kicker,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-summary-label,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-card-title,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-summary-suffix,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-summary-muted {
  font-size: var(--gplt-portal-meta-size, 0.8rem);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-summary-value {
  font-size: 1.2rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-card,
body.gplt-user-portal-page #gplt-user-portal .gplt-glass-card,
body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-dash-card,
body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-glass-card {
  padding: var(--gplt-portal-card-padding, 18px);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-layout {
  gap: var(--gplt-portal-grid-gap, 18px);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-main,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-sidebar {
  gap: var(--gplt-portal-card-gap, 18px);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-summary-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-member-dashboard .gplt-dash-widgets {
  gap: var(--gplt-portal-grid-gap, 18px);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-hero,
body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-glass-hero {
  margin-bottom: var(--gplt-portal-card-gap, 18px);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-summary {
  margin-bottom: var(--gplt-portal-section-gap, clamp(16px, 2vw, 28px));
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-notice {
  padding: 0.85rem 1rem;
  margin-bottom: var(--gplt-portal-card-gap, 18px);
  font-size: var(--gplt-portal-text-size, 0.92rem);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-iran-location-fields .gplt-dash-form-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-profile-complete-location-grid {
  gap: 0.85rem var(--gplt-portal-grid-gap, 18px);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-location-invalid-notice {
  font-size: var(--gplt-portal-text-size, 0.92rem);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-plan-name {
  font-size: 1.35rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-plan-price {
  font-size: 1.2rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-stat {
  font-size: 0.95rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-btn,
body.gplt-user-portal-page #gplt-user-portal .gplt-btn-primary,
body.gplt-user-portal-page #gplt-user-portal .gplt-btn-gold,
body.gplt-user-portal-page #gplt-user-portal .gplt-btn-secondary {
  font-size: var(--gplt-portal-text-size, 0.92rem);
  padding: 0.5rem 0.95rem;
}

body.gplt-user-portal-page .gplt-user-portal-section .gplt-dash-card,
body.gplt-user-portal-page .gplt-user-portal-section .gplt-glass-card,
body.gplt-user-portal-page .gplt-user-portal-section .gplt-form {
  background: var(--gplt-glass-bg);
  border: 1px solid var(--gplt-glass-border);
  border-radius: var(--gplt-radius-lg);
  box-shadow: var(--gplt-glass-shadow);
}

.gplt-user-portal #gplt-wrap.gplt-login-section,
.gplt-user-portal #gplt-wrap {
  max-width: 440px;
  margin: 0 auto;
  padding: var(--gplt-portal-card-padding, 18px);
  background: var(--gplt-glass-bg);
  border: 1px solid var(--gplt-glass-border);
  border-radius: var(--gplt-radius-lg);
  box-shadow: var(--gplt-glass-shadow);
}

.gplt-user-portal .gplt-login-title {
  color: var(--gplt-text);
  font-size: 1.2rem;
  margin: 0.35rem 0;
}

.gplt-user-portal .gplt-login-sub {
  color: var(--gplt-muted);
  font-size: var(--gplt-portal-text-size, 0.92rem);
}

.gplt-user-portal .gplt-login-form label {
  display: block;
  margin-bottom: 0.3rem;
  font-weight: 600;
  font-size: var(--gplt-portal-text-size, 0.92rem);
}

.gplt-user-portal .gplt-login-form input[type="text"],
.gplt-user-portal .gplt-login-form input[type="password"],
.gplt-user-portal .gplt-login-form input[type="email"],
.gplt-user-portal .gplt-form input,
.gplt-user-portal .gplt-form select,
.gplt-user-portal .gplt-form textarea {
  width: 100%;
  max-width: 100%;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--gplt-border);
  border-radius: 10px;
  background: #fff;
  font-size: var(--gplt-portal-text-size, 0.92rem);
  line-height: 1.4;
}

.gplt-user-portal .gplt-form label,
.gplt-user-portal .gplt-dash-form label {
  font-size: var(--gplt-portal-text-size, 0.92rem);
}

.gplt-user-portal .gplt-btn,
.gplt-user-portal .gplt-btn-primary,
.gplt-user-portal .gplt-btn-gold {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0.95rem;
  border-radius: 999px;
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  font-size: var(--gplt-portal-text-size, 0.92rem);
}

.gplt-user-portal .gplt-btn-primary,
.gplt-user-portal .gplt-btn-gold {
  background: var(--gplt-primary);
  color: #fff;
}

.gplt-user-portal .gplt-member-dashboard,
.gplt-user-portal .gplt-dashboard-v2,
.gplt-user-portal .gplt-user-profile-panel {
  width: 100%;
}

@media (max-width: 900px) {
  body.gplt-user-portal-page #gplt-user-portal .gplt-dash-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  body.gplt-user-portal-page #gplt-user-portal {
    --gplt-portal-font-size: 14px;
    --gplt-portal-section-gap: 14px;
    --gplt-portal-card-gap: 14px;
    --gplt-portal-grid-gap: 14px;
    --gplt-portal-card-padding: 16px;
  }

  body.gplt-user-portal-page #gplt-user-portal .gplt-user-portal-nav-list {
    padding: 0.5rem;
    gap: 0.35rem;
  }
}

/* Nested portal module typography — final polish (portal-scoped only) */
body.gplt-user-portal-page #gplt-user-portal .gplt-missions-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-achievements-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-leaderboard-panel {
  margin-bottom: var(--gplt-portal-section-gap, clamp(16px, 2vw, 28px));
}

body.gplt-user-portal-page #gplt-user-portal .gplt-missions-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-achievements-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-cards,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-stats-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-list {
  gap: var(--gplt-portal-grid-gap, 18px);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-dash-module .gplt-missions-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-dash-module .gplt-achievements-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-dash-module .gplt-referrals-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-dash-module .gplt-rewards-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-dash-module .gplt-notifications-panel {
  padding: var(--gplt-portal-card-padding, 18px);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-missions-header .gplt-h2,
body.gplt-user-portal-page #gplt-user-portal .gplt-achievements-header .gplt-h2,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-header .gplt-h2,
body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-hero .gplt-h2,
body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-hero .gplt-h2,
body.gplt-user-portal-page #gplt-user-portal .gplt-leaderboard-header .gplt-h2,
body.gplt-user-portal-page #gplt-user-portal .gplt-missions-section .gplt-h3,
body.gplt-user-portal-page #gplt-user-portal .gplt-achievements-section .gplt-h3,
body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-redemptions .gplt-h3 {
  font-size: 1rem;
  line-height: 1.35;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-mission-title,
body.gplt-user-portal-page #gplt-user-portal .gplt-achievement-title,
body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-card-title,
body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-item-title,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-card-title {
  font-size: 0.95rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-mission-desc,
body.gplt-user-portal-page #gplt-user-portal .gplt-achievement-desc,
body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-card-desc,
body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-item-message,
body.gplt-user-portal-page #gplt-user-portal .gplt-mission-progress-meta,
body.gplt-user-portal-page #gplt-user-portal .gplt-achievement-progress-meta {
  font-size: var(--gplt-portal-text-size, 0.92rem);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-mission-card-head,
body.gplt-user-portal-page #gplt-user-portal .gplt-achievement-card-head,
body.gplt-user-portal-page #gplt-user-portal .gplt-mission-meta,
body.gplt-user-portal-page #gplt-user-portal .gplt-achievement-meta,
body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-meta,
body.gplt-user-portal-page #gplt-user-portal .gplt-leaderboard-meta,
body.gplt-user-portal-page #gplt-user-portal .gplt-leaderboard-current-label,
body.gplt-user-portal-page #gplt-user-portal .gplt-leaderboard-rank-label {
  font-size: var(--gplt-portal-meta-size, 0.8rem);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-missions-balance,
body.gplt-user-portal-page #gplt-user-portal .gplt-achievements-summary-meta,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-intro,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-reward-hint,
body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-intro,
body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-zero-hint,
body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-intro,
body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-unread-hint,
body.gplt-user-portal-page #gplt-user-portal .gplt-leaderboard-description,
body.gplt-user-portal-page #gplt-user-portal .gplt-user-profile-panel-lead,
body.gplt-user-portal-page #gplt-user-portal .gplt-onboarding-lead {
  font-size: var(--gplt-portal-text-size, 0.92rem);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-dash-summary-value {
  font-size: 1.2rem;
  font-weight: 700;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-summary-value {
  font-size: 1.35rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-stat-value {
  font-size: 1.2rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-code-display,
body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-referrals-code-display {
  font-size: 1.3rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-bell {
  font-size: 1.15rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-summary-text strong {
  font-size: 0.95rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-leaderboard-table th,
body.gplt-user-portal-page #gplt-user-portal .gplt-leaderboard-table td {
  font-size: var(--gplt-portal-text-size, 0.92rem);
  padding: 0.55rem 0.5rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-leaderboard-avatar {
  width: 34px;
  height: 34px;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-dash-form-section > summary {
  font-size: 0.95rem;
  font-weight: 700;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-form-group input,
body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-form-group textarea,
body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-form-group select,
body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-date-input,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-input,
body.gplt-user-portal-page #gplt-user-portal .gplt-form-group input,
body.gplt-user-portal-page #gplt-user-portal .gplt-form-group select,
body.gplt-user-portal-page #gplt-user-portal .gplt-form-group textarea {
  font-size: var(--gplt-portal-text-size, 0.92rem);
  padding: 0.5rem 0.75rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-date-help,
body.gplt-user-portal-page #gplt-user-portal .gplt-form-group label,
body.gplt-user-portal-page #gplt-user-portal .gplt-form-group .gplt-date-help {
  font-size: var(--gplt-portal-text-size, 0.92rem);
}

body.gplt-user-portal-page #gplt-user-portal h4 {
  font-size: 0.92rem;
  line-height: 1.35;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-badge,
body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-type-badge,
body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-status-badge,
body.gplt-user-portal-page #gplt-user-portal .gplt-mission-completed-badge,
body.gplt-user-portal-page #gplt-user-portal .gplt-leaderboard-you-badge,
body.gplt-user-portal-page #gplt-user-portal .gplt-status {
  font-size: 0.75rem;
}

@media (max-width: 640px) {
  body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-summary-value {
    font-size: 1.2rem;
  }

  body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-code-display,
  body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2 .gplt-referrals-code-display {
    font-size: 1.1rem;
  }
}

/* Portal profile — change password card */
body.gplt-user-portal-page #gplt-user-portal .gplt-change-password-card {
  margin-top: var(--gplt-portal-section-gap, clamp(16px, 2vw, 28px));
}

body.gplt-user-portal-page #gplt-user-portal .gplt-change-password-lead {
  margin: 0.35rem 0 0;
  color: var(--gplt-muted, #64748b);
  font-size: var(--gplt-portal-text-size, 0.92rem);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-change-password-form .gplt-form-group {
  margin-bottom: 0.85rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-change-password-notice--success {
  border-color: #46b450;
  background: #f0fff1;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-change-password-notice--error {
  border-color: #dba617;
  background: #fff8e5;
}

/* Portal portfolio submit */
body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-submit-panel {
  display: grid;
  gap: var(--gplt-portal-section-gap, clamp(16px, 2vw, 28px));
}

body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-submit-header {
  margin: 0;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-submit-lead {
  margin: 0.35rem 0 0;
  color: var(--gplt-muted, #64748b);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-form-body {
  padding: 0;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-media-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.75rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-upload-error:not(:empty) {
  margin: 0.5rem 0 0;
  padding: 0.65rem 0.85rem;
  border-radius: 8px;
  border: 1px solid #dba617;
  background: #fff8e5;
  color: #6b4e00;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-submit-guidance {
  padding: clamp(16px, 2vw, 24px);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-submit-success {
  padding: clamp(16px, 2vw, 24px);
  border: 1px solid rgba(70, 180, 80, 0.35);
  background: rgba(240, 255, 241, 0.72);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-submit-success-message {
  margin: 0.5rem 0 0;
  font-weight: 600;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-submit-success-lead {
  margin: 0.35rem 0 0;
  color: var(--gplt-muted, #64748b);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-submit-success-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1rem;
}

/* ==========================================================================
   User Portal — Form UX System
   ========================================================================== */

body.gplt-user-portal-page #gplt-user-portal {
  --gplt-form-max-width: 100%;
  --gplt-form-field-height: 44px;
  --gplt-form-radius: 14px;
  --gplt-form-gap: 16px;
  --gplt-form-label-size: 0.86rem;
  --gplt-form-input-size: 0.92rem;
  --gplt-form-help-size: 0.8rem;
}

/* Auth panels stay narrow; other portal content uses full width */
body.gplt-user-portal-page #gplt-user-portal #gplt-wrap {
  max-width: none;
  width: 100%;
  margin: 0;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-user-portal-section--login #gplt-wrap,
body.gplt-user-portal-page #gplt-user-portal .gplt-user-portal-section--register #gplt-wrap,
body.gplt-user-portal-page #gplt-user-portal .gplt-user-portal-section--forgot_password .gplt-auth-card,
body.gplt-user-portal-page #gplt-user-portal .gplt-user-portal-section--reset_password .gplt-auth-card,
body.gplt-user-portal-page #gplt-user-portal .gplt-portal-form--auth {
  max-width: min(100%, 440px);
  margin-inline: auto;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-form,
body.gplt-user-portal-page #gplt-user-portal form.gplt-portal-form {
  width: 100%;
  max-width: var(--gplt-form-max-width);
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-form-narrow:not(.gplt-portal-form--auth) {
  max-width: none;
  margin: 0;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-form-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-profile-complete-location-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-iran-location-fields .gplt-dash-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gplt-form-gap);
  width: 100%;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-form-field--full,
body.gplt-user-portal-page #gplt-user-portal .gplt-form-group--full {
  grid-column: 1 / -1;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-form-field,
body.gplt-user-portal-page #gplt-user-portal .gplt-form-group {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-bottom: 0;
  min-width: 0;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-form-group label,
body.gplt-user-portal-page #gplt-user-portal .gplt-form-group legend,
body.gplt-user-portal-page #gplt-user-portal .gplt-login-form label,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form label {
  display: block;
  text-align: right;
  font-size: var(--gplt-form-label-size);
  font-weight: 600;
  line-height: 1.45;
  margin: 0;
  color: var(--gplt-text);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-form-help,
body.gplt-user-portal-page #gplt-user-portal .gplt-date-help {
  margin: 0.15rem 0 0;
  font-size: var(--gplt-form-help-size);
  line-height: 1.5;
  color: var(--gplt-muted);
}

body.gplt-user-portal-page #gplt-user-portal input[type="text"],
body.gplt-user-portal-page #gplt-user-portal input[type="email"],
body.gplt-user-portal-page #gplt-user-portal input[type="password"],
body.gplt-user-portal-page #gplt-user-portal input[type="tel"],
body.gplt-user-portal-page #gplt-user-portal input[type="url"],
body.gplt-user-portal-page #gplt-user-portal input[type="number"],
body.gplt-user-portal-page #gplt-user-portal input[type="search"],
body.gplt-user-portal-page #gplt-user-portal select,
body.gplt-user-portal-page #gplt-user-portal textarea,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-input,
body.gplt-user-portal-page #gplt-user-portal .gplt-date-input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-height: var(--gplt-form-field-height);
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--gplt-border);
  border-radius: var(--gplt-form-radius);
  background: rgba(255, 255, 255, 0.92);
  color: var(--gplt-text);
  font-family: inherit;
  font-size: var(--gplt-form-input-size);
  line-height: 1.4;
  text-align: right;
  direction: rtl;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

body.gplt-user-portal-page #gplt-user-portal textarea {
  min-height: 120px;
  resize: vertical;
}

body.gplt-user-portal-page #gplt-user-portal input:focus,
body.gplt-user-portal-page #gplt-user-portal select:focus,
body.gplt-user-portal-page #gplt-user-portal textarea:focus {
  outline: none;
  border-color: var(--gplt-primary);
  box-shadow: 0 0 0 3px var(--gplt-primary-soft);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-form-error,
body.gplt-user-portal-page #gplt-user-portal .gplt-form-errors,
body.gplt-user-portal-page #gplt-user-portal .gplt-field-error,
body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-upload-error:not(:empty) {
  margin: 0.5rem 0 0;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  border: 1px solid rgba(219, 166, 23, 0.45);
  background: rgba(255, 248, 229, 0.92);
  color: #6b4e00;
  font-size: var(--gplt-form-help-size);
  line-height: 1.5;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-form-success,
body.gplt-user-portal-page #gplt-user-portal .gplt-form-notice--success,
body.gplt-user-portal-page #gplt-user-portal .gplt-change-password-notice--success {
  border-color: rgba(70, 180, 80, 0.45);
  background: rgba(240, 255, 241, 0.92);
  color: #1f6b2d;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-form-actions,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form-actions,
body.gplt-user-portal-page #gplt-user-portal .gplt-change-password-actions,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-actions,
body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-submit-success-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.65rem;
  margin-top: 1rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-profile-form,
body.gplt-user-portal-page #gplt-user-portal .gplt-change-password-form,
body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-form-body,
body.gplt-user-portal-page #gplt-user-portal #gplt-profile-complete-form {
  display: flex;
  flex-direction: column;
  gap: var(--gplt-form-gap);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form-section {
  border: 1px solid var(--gplt-glass-border);
  border-radius: var(--gplt-form-radius);
  background: rgba(255, 255, 255, 0.45);
  overflow: hidden;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form-section > summary {
  padding: 0.85rem 1rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form-section > .gplt-dash-form-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form-section > .gplt-form-group,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form-section > .gplt-iran-location-fields {
  padding: 1rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-media-uploader,
body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-media-preview {
  width: 100%;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-media-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-input {
  margin-top: 0.35rem;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-login-wrap {
  width: 100%;
}

@media (max-width: 640px) {
  body.gplt-user-portal-page #gplt-user-portal .gplt-form-grid,
  body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form-grid,
  body.gplt-user-portal-page #gplt-user-portal .gplt-profile-complete-location-grid,
  body.gplt-user-portal-page #gplt-user-portal .gplt-iran-location-fields .gplt-dash-form-grid {
    grid-template-columns: 1fr;
  }

  body.gplt-user-portal-page #gplt-user-portal .gplt-form-actions .gplt-btn,
  body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form-actions .gplt-btn,
  body.gplt-user-portal-page #gplt-user-portal .gplt-change-password-actions .gplt-btn {
    width: 100%;
  }
}

/* Portfolio submit — category checkbox RTL alignment */
body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-category-fieldset {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-checkbox-list,
body.gplt-user-portal-page #gplt-user-portal .gplt-portfolio-category-list {
  display: grid;
  gap: 10px;
  direction: rtl;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-checkbox-option {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: 8px;
  direction: rtl;
  text-align: right;
  cursor: pointer;
  width: fit-content;
  max-width: 100%;
  margin: 0;
  font-weight: 500;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-checkbox-option input[type="checkbox"] {
  flex: 0 0 auto;
  width: 16px;
  min-width: 16px;
  height: 16px;
  min-height: 16px;
  margin: 0;
  padding: 0;
  border-radius: 4px;
  box-sizing: border-box;
  background: #fff;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-checkbox-option span {
  line-height: 1.7;
  word-break: break-word;
}

/* ── Auth pages (login, register, lost password) ─────────────── */
body.gplt-auth-page {
  overflow-x: clip;
}

body.gplt-auth-page .lx-main,
body.gplt-auth-page .lx-section,
body.gplt-auth-page .lx-container {
  overflow-x: clip;
  max-width: 100%;
}

body.gplt-auth-page #gplt-social-wrap,
body.gplt-auth-page #gplt-user-portal {
  overflow-x: clip;
  max-width: 100%;
}

body.gplt-auth-page #gplt-user-portal {
  --gplt-primary: #e60023;
  --gplt-primary-soft: rgba(230, 0, 35, 0.1);
  --gplt-glass-bg: #ffffff;
  --gplt-glass-border: #e9e9e9;
  --gplt-glass-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

body.gplt-auth-page #gplt-user-portal .gplt-user-portal-nav-item.gplt-user-portal-active a {
  background: var(--gplt-primary-soft);
  border-color: var(--gplt-primary);
  color: var(--gplt-primary);
}

body.gplt-auth-page #gplt-user-portal .gplt-user-portal-section--login,
body.gplt-auth-page #gplt-user-portal .gplt-user-portal-section--register {
  align-items: center;
}

body.gplt-auth-page #gplt-user-portal .gplt-user-portal-guest--auth .gplt-user-portal-nav-list {
  justify-content: center;
}

.gplt-auth-card {
  width: 100%;
  max-width: min(440px, 100%);
  margin-inline: auto;
  padding: clamp(1.15rem, 3vw, 1.65rem);
  box-sizing: border-box;
  background: #fff;
  border: 1px solid var(--gplt-border, #e9e9e9);
  border-radius: var(--gplt-radius-pin, 16px);
  box-shadow: var(--gplt-shadow-pin, 0 2px 8px rgba(0, 0, 0, 0.12));
}

.gplt-auth-card-header {
  text-align: center;
  margin-bottom: 1.25rem;
}

.gplt-auth-card-title {
  margin: 0 0 0.4rem;
  font-size: clamp(1.1rem, 2.4vw, 1.35rem);
  font-weight: 700;
  line-height: 1.35;
  color: var(--gplt-text, #111);
}

.gplt-auth-card-lead {
  margin: 0;
  color: var(--gplt-muted, #767676);
  font-size: 0.92rem;
  line-height: 1.55;
}

.gplt-auth-form {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  width: 100%;
  min-width: 0;
}

.gplt-auth-form .gplt-form-group {
  margin: 0;
  min-width: 0;
}

.gplt-auth-form label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--gplt-text, #111);
}

.gplt-auth-form input[type="text"],
.gplt-auth-form input[type="password"],
.gplt-auth-form input[type="email"],
.gplt-auth-form input[type="tel"] {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-height: 44px;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--gplt-border, #e9e9e9);
  border-radius: 10px;
  background: #fff;
  font: inherit;
  line-height: 1.4;
  text-align: right;
  direction: rtl;
}

.gplt-auth-form input:focus {
  outline: none;
  border-color: var(--gplt-primary, #e60023);
  box-shadow: 0 0 0 3px var(--gplt-primary-soft, rgba(230, 0, 35, 0.1));
}

.gplt-auth-form .gplt-checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.88rem;
  color: var(--gplt-muted, #767676);
  cursor: pointer;
}

.gplt-auth-form .gplt-btn-primary {
  min-height: 44px;
  border-radius: 999px;
  font-weight: 600;
}

.gplt-auth-card-footer {
  margin: 0.15rem 0 0;
  text-align: center;
}

.gplt-auth-card-link {
  color: var(--gplt-muted, #767676);
  font-size: 0.88rem;
  text-decoration: none;
}

.gplt-auth-card-link:hover,
.gplt-auth-card-link:focus-visible {
  color: var(--gplt-primary, #e60023);
}

.gplt-auth-card-switch {
  margin: 1rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid var(--gplt-border, #e9e9e9);
  text-align: center;
  font-size: 0.9rem;
  color: var(--gplt-muted, #767676);
}

.gplt-auth-card-switch a {
  color: var(--gplt-primary, #e60023);
  font-weight: 600;
  text-decoration: none;
}

.gplt-auth-card-switch a:hover,
.gplt-auth-card-switch a:focus-visible {
  text-decoration: underline;
}

.gplt-alert-success {
  padding: 0.75rem 0.85rem;
  border-radius: 10px;
  background: rgba(0, 122, 107, 0.1);
  border: 1px solid rgba(0, 122, 107, 0.25);
  color: #007a6b;
  font-size: 0.9rem;
  line-height: 1.5;
}

.gplt-alert-error {
  padding: 0.75rem 0.85rem;
  border-radius: 10px;
  background: rgba(198, 40, 40, 0.08);
  border: 1px solid rgba(198, 40, 40, 0.2);
  color: #c62828;
  font-size: 0.9rem;
  line-height: 1.5;
}

body.gplt-auth-page #gplt-social-wrap .gplt-auth-card {
  margin-top: 0.5rem;
}

body.gplt-auth-page #gplt-social-wrap {
  --gplt-primary: #e60023;
  --gplt-primary-soft: rgba(230, 0, 35, 0.1);
}

@media (max-width: 640px) {
  .gplt-auth-card {
    padding: 1rem;
  }
}

/* Block theme + Lexpoint shell overrides — keep last in file */
body.gplt-social-page,
body.gplt-user-portal-page,
body.gplt-pin-page {
  --wp--style--global--content-size: 100%;
  --wp--style--global--wide-size: min(100%, 1320px);
}

body.gplt-social-page .wp-site-blocks,
body.gplt-social-page main,
body.gplt-social-page .entry-content,
body.gplt-social-page .wp-block-post-content,
body.gplt-social-page .is-layout-constrained,
body.gplt-social-page .has-global-padding,
body.gplt-pin-page .wp-site-blocks,
body.gplt-pin-page main,
body.gplt-pin-page .entry-content,
body.gplt-pin-page .wp-block-post-content,
body.gplt-pin-page .is-layout-constrained,
body.gplt-pin-page .has-global-padding {
  max-width: none !important;
  width: 100% !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}

body.gplt-social-page .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
body.gplt-pin-page .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: none !important;
  margin-inline: 0 !important;
}

body.gplt-social-page .lx-container.lx-article,
body.gplt-user-portal-page .lx-container.lx-article,
body.gplt-social-page .lx-section > .lx-container,
body.gplt-user-portal-page .lx-section > .lx-container {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}

body.gplt-social-page .lx-single-layout,
body.gplt-pin-page .lx-single-layout {
  display: block !important;
}

body.gplt-social-page .lx-single-sidebar,
body.gplt-pin-page .lx-single-sidebar {
  display: none !important;
}

body.gplt-social-page .gplt-social-subheader-inner,
body.gplt-social-page .gplt-social-subheader-inner--megabar,
body.gplt-pin-page .gplt-social-subheader-inner,
body.gplt-pin-page .gplt-social-subheader-inner--megabar {
  width: 100%;
  max-width: var(--gplt-content-max, 1320px);
  margin-inline: auto;
  box-sizing: border-box;
}

@media (min-width: 768px) {
  body.gplt-social-page .gplt-stories-bar-inner,
  body.gplt-pin-page .gplt-stories-bar-inner {
    max-width: var(--gplt-content-max, 1320px);
    margin-inline: auto;
  }
}

/* ── User portal: horizontal overflow prevention (scoped) ─────────────────── */
body.gplt-user-portal-page {
  overflow-x: hidden;
}

body.gplt-user-portal-page #gplt-user-portal,
body.gplt-user-portal-page .gplt-user-portal,
body.gplt-user-portal-page .gplt-user-portal-shell,
body.gplt-user-portal-page .gplt-user-portal-section {
  max-width: 100%;
  overflow-x: clip;
  box-sizing: border-box;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-user-portal-shell,
body.gplt-user-portal-page #gplt-user-portal .gplt-user-portal-section,
body.gplt-user-portal-page #gplt-user-portal .gplt-dashboard-v2,
body.gplt-user-portal-page #gplt-user-portal .gplt-member-dashboard,
body.gplt-user-portal-page #gplt-user-portal .gplt-user-profile-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-layout,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-main,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-sidebar,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-card,
body.gplt-user-portal-page #gplt-user-portal .gplt-glass-card,
body.gplt-user-portal-page #gplt-user-portal .gplt-missions-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-achievements-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-saved-posts-panel,
body.gplt-user-portal-page #gplt-user-portal .gplt-leaderboard-panel {
  min-width: 0;
  max-width: 100%;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-layout {
  grid-template-columns: minmax(0, 2fr) minmax(min(100%, 280px), 1fr);
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-summary-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 1fr));
}

body.gplt-user-portal-page #gplt-user-portal .gplt-missions-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-achievements-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-saved-posts-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
}

body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-cards,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-stats-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form-grid,
body.gplt-user-portal-page #gplt-user-portal .gplt-member-dashboard .gplt-dash-widgets {
  min-width: 0;
  max-width: 100%;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-hero-actions .gplt-btn {
  white-space: normal;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-hero-actions,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form-actions,
body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-item-actions,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-actions,
body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-card-actions,
body.gplt-user-portal-page #gplt-user-portal .gplt-saved-post-card-actions,
body.gplt-user-portal-page #gplt-user-portal .gplt-user-portal-guest-actions,
body.gplt-user-portal-page #gplt-user-portal .gplt-user-portal-nav-list {
  flex-wrap: wrap;
  min-width: 0;
  max-width: 100%;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-dash-hero-actions > *,
body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form-actions > *,
body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-item-actions > *,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-actions > *,
body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-card-actions > *,
body.gplt-user-portal-page #gplt-user-portal .gplt-saved-post-card-actions > *,
body.gplt-user-portal-page #gplt-user-portal .gplt-user-portal-nav-item a {
  min-width: 0;
  max-width: 100%;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-item-title,
body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-item-message,
body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-card-title,
body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-card-desc,
body.gplt-user-portal-page #gplt-user-portal .gplt-saved-post-card-title,
body.gplt-user-portal-page #gplt-user-portal .gplt-saved-post-card-excerpt,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-code-display,
body.gplt-user-portal-page #gplt-user-portal .gplt-commerce-order-row,
body.gplt-user-portal-page #gplt-user-portal .gplt-commerce-order-item,
body.gplt-user-portal-page #gplt-user-portal .gplt-commerce-course-card,
body.gplt-user-portal-page #gplt-user-portal .gplt-commerce-access-box,
body.gplt-user-portal-page #gplt-user-portal .gplt-commerce-checkout-items li,
body.gplt-user-portal-page #gplt-user-portal code,
body.gplt-user-portal-page #gplt-user-portal a {
  overflow-wrap: anywhere;
  word-break: break-word;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-form-group input,
body.gplt-user-portal-page #gplt-user-portal .gplt-form-group select,
body.gplt-user-portal-page #gplt-user-portal .gplt-form-group textarea,
body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-input,
body.gplt-user-portal-page #gplt-user-portal .gplt-login-form input,
body.gplt-user-portal-page #gplt-user-portal .gplt-form input,
body.gplt-user-portal-page #gplt-user-portal .gplt-form select,
body.gplt-user-portal-page #gplt-user-portal .gplt-form textarea {
  max-width: 100%;
  box-sizing: border-box;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-leaderboard-table-wrap,
body.gplt-user-portal-page #gplt-user-portal .gplt-responsive-table {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-leaderboard-table,
body.gplt-user-portal-page #gplt-user-portal .gplt-responsive-table table {
  max-width: 100%;
}

body.gplt-user-portal-page #gplt-user-portal .gplt-leaderboard-card.is-current-user {
  margin-inline: 0;
  padding-inline: 0.75rem;
}

@media (max-width: 900px) {
  body.gplt-user-portal-page #gplt-user-portal .gplt-dash-layout {
    grid-template-columns: 1fr;
  }

  body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-cards {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  body.gplt-user-portal-page #gplt-user-portal {
    padding-inline: 12px;
  }

  body.gplt-user-portal-page .gplt-user-portal {
    padding-inline: 12px;
  }

  body.gplt-user-portal-page #gplt-user-portal .gplt-dash-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form-actions,
  body.gplt-user-portal-page #gplt-user-portal .gplt-commerce-actions,
  body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-actions,
  body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-item-actions,
  body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-card-actions,
  body.gplt-user-portal-page #gplt-user-portal .gplt-saved-post-card-actions {
    flex-direction: column;
    align-items: stretch;
  }

  body.gplt-user-portal-page #gplt-user-portal .gplt-dash-form-actions .gplt-btn,
  body.gplt-user-portal-page #gplt-user-portal .gplt-commerce-actions .gplt-btn,
  body.gplt-user-portal-page #gplt-user-portal .gplt-referrals-actions .gplt-btn,
  body.gplt-user-portal-page #gplt-user-portal .gplt-notifications-item-actions .gplt-btn,
  body.gplt-user-portal-page #gplt-user-portal .gplt-rewards-card-actions .gplt-btn,
  body.gplt-user-portal-page #gplt-user-portal .gplt-saved-post-card-actions .gplt-btn,
  body.gplt-user-portal-page #gplt-user-portal .gplt-dash-hero-actions .gplt-btn {
    width: 100%;
  }
}
