:root {
  --portal-bg: #f4f7fb;
  --portal-panel: #ffffff;
  --portal-panel-soft: #f8fbff;
  --portal-ink: #172033;
  --portal-muted: #68778b;
  --portal-line: #dbe4ef;
  --portal-blue: #2374ab;
  --portal-green: #1f9d73;
  --portal-yellow: #f3b23e;
  --portal-coral: #e86f61;
  --shadow-soft: 0 18px 45px rgba(29, 48, 78, .12);
}

/* Wearable connection management */
.wearables-content {
  display: grid;
  gap: 18px;
}

.wearable-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.wearable-card {
  min-height: 180px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: 1fr auto;
  align-items: start;
  gap: 14px;
}

.wearable-card-icon {
  width: 48px;
  height: 48px;
  display: inline-grid;
  place-items: center;
  border-radius: 15px;
  background: #eaf4ff;
  color: var(--portal-blue);
}

.wearable-card-icon svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.wearable-card-copy h2,
.wearable-detail-heading h1 {
  margin: 0 0 9px;
  color: var(--portal-ink);
  letter-spacing: -.02em;
}

.wearable-card-copy h2 { font-size: 1.1rem; }

.wearable-status {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  padding: 5px 9px;
  border-radius: 999px;
  background: #eef2f7;
  color: #526175;
  font-size: .76rem;
  font-weight: 900;
}

.wearable-status--connected,
.wearable-status--syncing {
  background: #e8f7ef;
  color: #167553;
}

.wearable-status--attention {
  background: #fff3dd;
  color: #9a5a00;
}

.wearable-status--coming-soon,
.wearable-status--disconnected,
.wearable-status--disabled {
  background: #f1f4f8;
  color: #657489;
}

.wearable-card-sync {
  margin: 13px 0 0;
  color: var(--portal-muted);
  font-size: .83rem;
  line-height: 1.45;
}

.wearable-action {
  grid-column: 1 / -1;
  justify-self: stretch;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  border-radius: 12px;
  background: var(--portal-blue);
  color: #fff;
  font-size: .86rem;
  font-weight: 900;
  text-decoration: none;
}

.wearables-footnote,
.wearable-readonly-note {
  margin: 0;
  color: var(--portal-muted);
  font-size: .86rem;
  line-height: 1.55;
}

.wearable-detail-content { max-width: 760px; }

.wearable-back-link {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--portal-blue);
  font-weight: 900;
  text-decoration: none;
}

.wearable-back-link svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

.wearable-detail-card { display: grid; gap: 22px; }

.wearable-detail-heading {
  display: flex;
  align-items: center;
  gap: 15px;
}

.wearable-detail-heading .portal-eyebrow { margin-bottom: 4px; }
.wearable-detail-heading h1 { font-size: 1.65rem; }

.wearable-detail-list {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.wearable-detail-list div {
  padding: 14px;
  border: 1px solid var(--portal-line);
  border-radius: 14px;
  background: var(--portal-panel-soft);
}

.wearable-detail-list dt {
  color: var(--portal-muted);
  font-size: .74rem;
  font-weight: 900;
  text-transform: uppercase;
}

.wearable-detail-list dd {
  margin: 7px 0 0;
  font-size: .9rem;
  font-weight: 850;
}

.wearable-issue {
  padding: 14px 16px;
  border: 1px solid #f1d39a;
  border-radius: 14px;
  background: #fff8e9;
  color: #754500;
}

.wearable-issue p { margin: 5px 0 0; line-height: 1.5; }

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

@media (max-width: 620px) {
  .wearable-grid,
  .wearable-detail-list { grid-template-columns: 1fr; }
  .wearable-card { min-height: 0; }
}

* { box-sizing: border-box; }

body.user-portal {
  margin: 0;
  min-height: 100vh;
  background: var(--portal-bg);
  color: var(--portal-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a { color: inherit; text-decoration: none; }
button, input { font: inherit; }

.login-shell {
  width: min(1080px, calc(100% - 32px));
  min-height: 100vh;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(320px, 440px);
  align-items: center;
  gap: 32px;
  padding: 36px 0;
}

.portal-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--portal-ink);
  font-weight: 900;
  letter-spacing: 0;
}

.portal-brand-mark {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  border-radius: 9px;
  background: var(--portal-blue);
  color: #fff;
  box-shadow: 0 10px 22px rgba(35, 116, 171, .25);
}

.login-brand-panel {
  min-height: 540px;
  border-radius: 24px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.92), rgba(248,251,255,.76)),
    radial-gradient(circle at 18% 22%, rgba(31,157,115,.18), transparent 26%),
    radial-gradient(circle at 82% 74%, rgba(232,111,97,.18), transparent 30%);
  box-shadow: var(--shadow-soft);
  padding: 34px;
  overflow: hidden;
  position: relative;
}

.login-brand-panel p {
  max-width: 360px;
  margin: 28px 0 0;
  color: #536276;
  font-size: 1.4rem;
  line-height: 1.35;
  font-weight: 780;
}

.login-map-art, .map-placeholder {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
}

.login-map-art {
  position: absolute;
  right: 28px;
  bottom: 28px;
  width: min(430px, 72%);
  transform: rotate(-8deg);
}

.login-map-art span,
.map-placeholder span {
  aspect-ratio: 1;
  border-radius: 10px;
  background: #dce9f5;
  box-shadow: inset 0 0 0 1px rgba(35, 116, 171, .08);
}

.login-map-art span:nth-child(2), .map-placeholder span:nth-child(2) { background: #b7dcce; }
.login-map-art span:nth-child(3), .map-placeholder span:nth-child(4) { background: #f7d38d; }
.login-map-art span:nth-child(5), .map-placeholder span:nth-child(6) { background: #f2b2a8; }

.login-card, .portal-card, .stat-card {
  background: var(--portal-panel);
  border: 1px solid rgba(219, 228, 239, .78);
  border-radius: 18px;
  box-shadow: 0 14px 34px rgba(29, 48, 78, .08);
}

.login-card { padding: 34px; }

.portal-eyebrow {
  margin: 0 0 8px;
  color: var(--portal-blue);
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.login-card h1, .portal-topbar h1 {
  margin: 0;
  font-size: clamp(2rem, 6vw, 3.15rem);
  line-height: 1;
  letter-spacing: 0;
}

.login-card p:not(.portal-eyebrow) {
  margin: 14px 0 0;
  color: var(--portal-muted);
  line-height: 1.6;
}

.portal-form {
  display: grid;
  gap: 16px;
  margin-top: 24px;
}

.portal-form label {
  display: grid;
  gap: 8px;
  color: #36445a;
  font-size: .88rem;
  font-weight: 820;
}

.portal-form input {
  width: 100%;
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  padding: 13px 14px;
  color: var(--portal-ink);
  background: #fff;
  outline: none;
}

.portal-form input:focus {
  border-color: var(--portal-blue);
  box-shadow: 0 0 0 4px rgba(35, 116, 171, .12);
}

.portal-form button, .profile-cluster form button {
  border: 0;
  border-radius: 12px;
  background: var(--portal-blue);
  color: #fff;
  font-weight: 900;
  cursor: pointer;
}

.portal-form button { padding: 14px 16px; }
.profile-cluster form button { padding: 9px 12px; font-size: .84rem; }

.form-help { font-size: .9rem; }
.back-link {
  display: inline-block;
  margin-top: 18px;
  color: var(--portal-blue);
  font-weight: 850;
}

.form-error {
  margin-top: 18px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #fff0ed;
  color: #a23d32;
  font-weight: 760;
}

.portal-app-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 256px minmax(0, 1fr);
}

.portal-sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 24px 18px;
  background: #ffffff;
  border-right: 1px solid var(--portal-line);
}

.portal-sidebar nav, .mobile-nav {
  display: grid;
  gap: 7px;
  margin-top: 28px;
}

.portal-sidebar a:not(.portal-brand), .mobile-nav a {
  padding: 11px 12px;
  border-radius: 12px;
  color: #526176;
  font-weight: 820;
}

.portal-sidebar a.is-active, .mobile-nav a.is-active {
  color: var(--portal-blue);
  background: #eaf4fb;
}

.portal-main {
  min-width: 0;
  padding: 24px;
}

.portal-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 22px;
}

.portal-section-title {
  min-width: 0;
  flex: 1;
}

.portal-section-title h1 {
  margin: 0;
}

.portal-section-title p {
  max-width: 680px;
  margin: 6px 0 0;
  color: var(--portal-muted);
  line-height: 1.5;
}

.drawer-toggle {
  display: none;
  min-width: 42px;
  height: 42px;
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  background: #fff;
  color: var(--portal-ink);
  font-weight: 900;
}

.profile-cluster {
  display: flex;
  align-items: center;
  gap: 12px;
}

.notification-dot {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--portal-coral);
  box-shadow: 0 0 0 5px rgba(232, 111, 97, .13);
}

.avatar {
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  overflow: hidden;
  border-radius: 50%;
  background: var(--avatar-color, var(--portal-blue));
  color: #fff;
  font-weight: 900;
}

.avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.stat-card {
  padding: 18px;
  display: grid;
  gap: 8px;
}

.stat-card span, .stat-card small, .muted-copy, .empty-state {
  color: var(--portal-muted);
}

.stat-card span {
  font-size: .8rem;
  font-weight: 900;
  text-transform: uppercase;
}

.stat-card strong {
  font-size: 1.9rem;
  line-height: 1;
}

.dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
  gap: 16px;
  margin-top: 16px;
}

.portal-card { padding: 18px; }

.card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 16px;
}

.card-heading h2 {
  margin: 0;
  font-size: 1.18rem;
  letter-spacing: 0;
}

.card-heading a, .coming-soon-panel a {
  color: var(--portal-blue);
  font-weight: 900;
  white-space: nowrap;
}

.map-placeholder {
  min-height: 210px;
  align-content: center;
  padding: 24px;
  border-radius: 16px;
  background:
    linear-gradient(90deg, rgba(35,116,171,.08) 1px, transparent 1px),
    linear-gradient(0deg, rgba(35,116,171,.08) 1px, transparent 1px),
    #f7fbff;
  background-size: 34px 34px;
}

.compact-list, .activity-list {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.compact-list li, .activity-row, .ranking-table tr {
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  background: var(--portal-panel-soft);
}

.compact-list li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 12px;
}

.ranking-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 10px;
}

.ranking-table td {
  padding: 12px;
  font-weight: 850;
}

.ranking-table td span {
  display: block;
  margin-top: 3px;
  color: var(--portal-muted);
  font-size: .78rem;
  font-weight: 780;
}

.ranking-table td:last-child { text-align: right; color: var(--portal-green); }
.is-user-row { box-shadow: inset 3px 0 0 var(--portal-green); }

.activity-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px;
}

.activity-row strong, .activity-row span { display: block; }
.activity-row span { color: var(--portal-muted); margin-top: 4px; }
.activity-row small { color: var(--portal-blue); font-weight: 850; text-align: right; }

.wallet-total {
  margin: 0;
  color: var(--portal-green);
  font-size: 2.1rem;
  font-weight: 920;
}

.empty-state {
  margin: 0;
  padding: 18px;
  border: 1px dashed #c8d5e4;
  border-radius: 14px;
  background: #fbfdff;
  line-height: 1.5;
}

.mobile-nav { display: none; }
.coming-soon-panel { max-width: 680px; }

@media (max-width: 980px) {
  .login-shell { grid-template-columns: 1fr; }
  .login-brand-panel { min-height: 320px; }
  .portal-app-shell { grid-template-columns: 1fr; }
  .portal-sidebar { display: none; }
  .portal-main { padding: 18px; }
  .drawer-toggle { display: inline-grid; place-items: center; flex: 0 0 auto; }
  .mobile-nav {
    margin: -6px 0 18px;
    padding: 10px;
    border: 1px solid var(--portal-line);
    border-radius: 16px;
    background: #fff;
  }
  .mobile-nav:not(.is-open) { display: none; }
  .mobile-nav.is-open { display: grid; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .login-shell { width: min(100% - 24px, 440px); padding: 18px 0; }
  .login-brand-panel { display: none; }
  .login-card { padding: 24px; }
  .portal-main { padding: 14px; }
  .portal-topbar { align-items: flex-start; }
  .portal-topbar h1 { font-size: 2rem; }
  .profile-cluster { gap: 8px; }
  .notification-dot { display: none; }
  .stats-grid, .mobile-nav.is-open { grid-template-columns: 1fr; }
  .activity-row, .compact-list li { align-items: flex-start; flex-direction: column; }
  .activity-row small { text-align: left; }
  .map-placeholder { min-height: 170px; padding: 18px; gap: 7px; }
}

.stat-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.stat-icon {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  border-radius: 10px;
  background: #eaf4fb;
  color: var(--portal-blue);
  font-weight: 950;
}

.stat-badge,
.activity-badges span,
.territory-select small {
  border-radius: 999px;
  background: #eef5ed;
  color: #28765d;
  font-size: .72rem;
  font-weight: 900;
  padding: 5px 8px;
  white-space: nowrap;
}

.notification-menu { position: relative; }

.notification-button {
  position: relative;
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  background: #fff;
  color: var(--portal-ink);
  cursor: pointer;
}

.notification-button span[aria-hidden="true"] {
  width: 18px;
  height: 20px;
  overflow: hidden;
  text-indent: -999px;
  border: 2px solid currentColor;
  border-top-left-radius: 9px;
  border-top-right-radius: 9px;
  border-bottom: 0;
  position: relative;
}

.notification-button span[aria-hidden="true"]::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -5px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  border: 2px solid currentColor;
  transform: translateX(-50%);
  background: #fff;
}

.notification-button span[aria-hidden="true"]::after {
  content: "";
  position: absolute;
  left: 4px;
  right: 4px;
  bottom: -6px;
  height: 8px;
  border-radius: 50%;
  border-bottom: 2px solid currentColor;
}

.notification-badge {
  position: absolute;
  top: -6px;
  right: -7px;
  min-width: 20px;
  height: 20px;
  display: inline-grid;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 999px;
  background: var(--portal-coral);
  color: #fff;
  font-size: .68rem;
  line-height: 1;
}

.notification-dropdown {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 20;
  width: min(360px, calc(100vw - 28px));
  display: none;
  padding: 14px;
  border: 1px solid var(--portal-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.notification-menu.is-open .notification-dropdown { display: block; }

.notification-dropdown-heading,
.split-labels {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.notification-dropdown-heading span,
.notification-dropdown time {
  color: var(--portal-muted);
  font-size: .78rem;
  font-weight: 800;
}

.notification-dropdown ul {
  list-style: none;
  margin: 12px 0;
  padding: 0;
  display: grid;
  gap: 9px;
}

.notification-dropdown li {
  padding: 11px;
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  background: var(--portal-panel-soft);
}

.notification-dropdown li.is-unread { box-shadow: inset 3px 0 0 var(--portal-coral); }
.notification-dropdown li div { display: flex; justify-content: space-between; gap: 10px; }
.notification-dropdown li span { color: var(--portal-blue); font-size: .72rem; font-weight: 900; white-space: nowrap; }
.notification-dropdown p { margin: 7px 0; color: #526176; line-height: 1.35; }
.notification-dropdown a { color: var(--portal-blue); font-weight: 900; }

.fitness-card,
.wide-card { grid-column: span 2; }

.fitness-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.fitness-metrics div,
.wallet-summary div {
  padding: 13px;
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  background: var(--portal-panel-soft);
}

.fitness-metrics span,
.wallet-summary span {
  display: block;
  color: var(--portal-muted);
  font-size: .78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.fitness-metrics strong,
.wallet-summary strong {
  display: block;
  margin-top: 5px;
  font-size: 1.28rem;
}

.sport-split { margin-top: 16px; }

.split-track {
  display: flex;
  height: 12px;
  overflow: hidden;
  border-radius: 999px;
  background: #e7edf5;
}

.split-track span { background: var(--portal-green); }
.split-track i { display: block; background: var(--portal-yellow); }
.split-labels { margin-top: 8px; color: var(--portal-muted); font-size: .82rem; font-weight: 850; }

.trend-bars {
  height: 112px;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  align-items: end;
  gap: 8px;
  margin-top: 18px;
  padding-top: 8px;
  border-top: 1px solid var(--portal-line);
}

.trend-bars span {
  min-width: 0;
  display: grid;
  justify-items: center;
  gap: 6px;
}

.trend-bars i {
  width: 100%;
  max-width: 28px;
  height: var(--bar-height);
  border-radius: 7px 7px 3px 3px;
  background: var(--portal-blue);
}

.trend-bars small { color: var(--portal-muted); font-size: .7rem; font-weight: 850; }

.map-preview {
  position: relative;
  min-height: 230px;
  overflow: hidden;
  border: 1px solid var(--portal-line);
  border-radius: 16px;
  background:
    linear-gradient(90deg, rgba(35,116,171,.09) 1px, transparent 1px),
    linear-gradient(0deg, rgba(35,116,171,.09) 1px, transparent 1px),
    radial-gradient(circle at 25% 28%, rgba(31,157,115,.13), transparent 28%),
    #f7fbff;
  background-size: 32px 32px, 32px 32px, auto, auto;
}

.map-river {
  position: absolute;
  inset: 16% -8%;
  border-top: 18px solid rgba(35, 116, 171, .13);
  border-radius: 45%;
  transform: rotate(-18deg);
}

.map-marker {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--rx);
  height: var(--ry);
  min-width: 54px;
  min-height: 34px;
  border: 0;
  border-radius: 48% 52% 45% 55%;
  background: rgba(31, 157, 115, .34);
  box-shadow: inset 0 0 0 2px rgba(31, 157, 115, .4), 0 8px 18px rgba(29, 48, 78, .12);
  cursor: pointer;
  transform: translate(-50%, -50%) rotate(-8deg);
}

.map-marker span {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #fff;
  transform: translate(-50%, -50%);
}

.map-marker.is-selected {
  background: rgba(232, 111, 97, .42);
  box-shadow: inset 0 0 0 3px var(--portal-coral), 0 12px 24px rgba(232, 111, 97, .2);
}

.selected-territory {
  position: absolute;
  left: 14px;
  bottom: 14px;
  max-width: calc(100% - 28px);
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 12px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 10px 20px rgba(29, 48, 78, .1);
}

.selected-territory span { display: block; color: var(--portal-muted); font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.selected-territory strong { display: block; margin-top: 2px; }

.territory-list li { padding: 0; border: 0; background: transparent; }

.territory-select {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px;
  padding: 11px 12px;
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  background: var(--portal-panel-soft);
  color: var(--portal-ink);
  cursor: pointer;
  text-align: left;
}

.territory-select.is-selected {
  border-color: rgba(232,111,97,.55);
  background: #fff7f5;
}

.territory-select span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 900; }
.territory-select strong { color: var(--portal-green); white-space: nowrap; }

.ranking-table tr { cursor: pointer; }
.ranking-table tr.is-selected { outline: 2px solid rgba(232,111,97,.34); }

.activity-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(240px, auto);
}

.activity-sport-chip {
  width: 38px;
  height: 38px;
  display: inline-grid;
  place-items: center;
  border-radius: 12px;
  background: #eaf4fb;
  color: var(--portal-blue);
  font-weight: 950;
}

.activity-main strong,
.activity-main span { display: block; }
.activity-main span { color: var(--portal-muted); margin-top: 4px; }

.activity-badges {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 7px;
}

.activity-badges span:nth-child(3) { background: #fff6df; color: #966716; }
.activity-badges span:nth-child(4) { background: #fff0ed; color: #a23d32; }

.wallet-summary {
  display: grid;
  gap: 10px;
}

.wallet-card .muted-copy { margin-bottom: 0; }

@media (max-width: 980px) {
  .fitness-card,
  .wide-card { grid-column: auto; }
  .activity-row { grid-template-columns: auto minmax(0, 1fr); }
  .activity-badges { grid-column: 1 / -1; justify-content: flex-start; }
}

@media (max-width: 620px) {
  .notification-dropdown { right: -86px; }
  .fitness-metrics { grid-template-columns: 1fr; }
  .territory-select { grid-template-columns: minmax(0, 1fr) auto; }
  .territory-select strong { grid-column: 1 / -1; }
  .activity-row { align-items: flex-start; }
  .profile-cluster form button { padding: 9px 10px; }
}

/* Premium dashboard polish pass */
.portal-card,
.stat-card {
  border-color: rgba(207, 218, 231, .86);
  box-shadow: 0 16px 36px rgba(29, 48, 78, .075);
}

.portal-card {
  border-radius: 16px;
}

.card-heading {
  align-items: center;
}

.card-heading a {
  padding: 7px 10px;
  border: 1px solid rgba(35, 116, 171, .14);
  border-radius: 999px;
  background: #f5fafe;
  font-size: .78rem;
}

.stat-card {
  min-height: 150px;
  padding: 18px 18px 16px;
  overflow: hidden;
  position: relative;
}

.stat-card::after {
  content: "";
  position: absolute;
  inset: auto -34px -46px auto;
  width: 112px;
  height: 112px;
  border-radius: 50%;
  background: rgba(35, 116, 171, .055);
  pointer-events: none;
}

.stat-icon,
.activity-sport-chip,
.notification-icon {
  color: var(--portal-blue);
}

.stat-icon svg,
.activity-sport-chip svg,
.notification-icon svg,
.fitness-orbit svg,
.map-castle-marker svg {
  width: 20px;
  height: 20px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.stat-icon {
  background: linear-gradient(145deg, #fafdff, #e7f2fb);
  box-shadow: inset 0 0 0 1px rgba(35, 116, 171, .11), 0 8px 18px rgba(35, 116, 171, .11);
}

.stat-badge {
  background: #f4f8f2;
  color: #2c765c;
  box-shadow: inset 0 0 0 1px rgba(31, 157, 115, .13);
}

.notification-button {
  border-radius: 14px;
  background: linear-gradient(180deg, #fff, #f7fbff);
  box-shadow: 0 10px 22px rgba(29, 48, 78, .08);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.notification-button:hover,
.notification-menu.is-open .notification-button {
  border-color: rgba(35, 116, 171, .32);
  box-shadow: 0 14px 28px rgba(35, 116, 171, .13);
  transform: translateY(-1px);
}

.notification-button span[aria-hidden="true"] {
  width: auto;
  height: auto;
  overflow: visible;
  text-indent: 0;
  border: 0;
  border-radius: 0;
}

.notification-button span[aria-hidden="true"]::before,
.notification-button span[aria-hidden="true"]::after {
  content: none;
}

.notification-icon svg {
  width: 21px;
  height: 21px;
  stroke-width: 2;
}

.notification-dropdown {
  border-radius: 18px;
  box-shadow: 0 22px 50px rgba(29, 48, 78, .16);
}

.notification-dropdown li {
  border-color: rgba(219, 228, 239, .82);
  background: linear-gradient(180deg, #fff, #f8fbff);
}

.fitness-card-premium {
  padding: 20px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(248,251,255,.94)),
    radial-gradient(circle at 88% 14%, rgba(31,157,115,.08), transparent 28%);
}

.fitness-heading { margin-bottom: 18px; }

.fitness-hero-row {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(260px, .9fr);
  gap: 14px;
}

.fitness-primary-metric {
  min-height: 150px;
  display: grid;
  align-content: end;
  gap: 7px;
  padding: 18px;
  border: 1px solid rgba(35, 116, 171, .13);
  border-radius: 16px;
  background:
    linear-gradient(150deg, rgba(35,116,171,.1), rgba(31,157,115,.08)),
    #f8fcff;
}

.fitness-primary-metric span,
.fitness-mini-stats span,
.split-summary small,
.trend-heading span,
.fitness-empty-state p {
  color: var(--portal-muted);
}

.fitness-primary-metric span,
.fitness-mini-stats span {
  font-size: .76rem;
  font-weight: 950;
  text-transform: uppercase;
}

.fitness-primary-metric strong {
  font-size: clamp(2.35rem, 5vw, 3.4rem);
  line-height: .95;
  letter-spacing: 0;
}

.fitness-primary-metric small {
  color: #496174;
  font-weight: 850;
}

.fitness-mini-stats {
  display: grid;
  gap: 12px;
}

.fitness-mini-stats div {
  min-height: 69px;
  padding: 14px;
  border: 1px solid rgba(219, 228, 239, .9);
  border-radius: 14px;
  background: #fff;
}

.fitness-mini-stats strong {
  display: block;
  margin-top: 6px;
  font-size: 1.35rem;
}

.fitness-panel,
.trend-card {
  margin-top: 14px;
  padding: 15px;
  border: 1px solid rgba(219, 228, 239, .86);
  border-radius: 16px;
  background: rgba(255,255,255,.78);
}

.split-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.split-summary div {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 9px;
  row-gap: 2px;
  align-items: center;
}

.split-summary strong { font-size: .95rem; }
.split-summary small { grid-column: 2; font-weight: 820; }

.split-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

.split-dot.running { background: var(--portal-green); }
.split-dot.cycling { background: var(--portal-yellow); }

.fitness-card-premium .sport-split { margin-top: 13px; }
.fitness-card-premium .split-track { height: 14px; background: #edf2f6; }
.fitness-card-premium .split-track span,
.fitness-card-premium .split-track i { min-width: 0; transition: width .2s ease; }

.trend-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.trend-heading strong { font-size: .95rem; }
.trend-heading span { font-size: .78rem; font-weight: 850; }

.fitness-card-premium .trend-bars {
  height: 132px;
  margin-top: 10px;
  padding: 8px 2px 0;
  border-top: 0;
}

.fitness-card-premium .trend-bars i {
  max-width: 34px;
  border-radius: 9px 9px 5px 5px;
  background: #dde8f2;
  box-shadow: inset 0 0 0 1px rgba(35, 116, 171, .04);
}

.fitness-card-premium .trend-bars .has-distance i {
  background: linear-gradient(180deg, var(--portal-blue), #1f9d73);
  box-shadow: 0 8px 16px rgba(35, 116, 171, .16);
}

.fitness-empty-state {
  min-height: 190px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  padding: 20px;
  border: 1px dashed rgba(35, 116, 171, .22);
  border-radius: 16px;
  background: #f8fcff;
}

.fitness-empty-state strong { display: block; font-size: 1.1rem; }
.fitness-empty-state p { margin: 6px 0 0; line-height: 1.45; }

.fitness-orbit {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: #eaf4fb;
  color: var(--portal-blue);
}

.google-map-preview {
  position: relative;
  min-height: 440px;
  overflow: hidden;
  border: 1px solid rgba(207, 218, 231, .95);
  border-radius: 18px;
  background: #eef2f5;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.65);
}

.google-map-canvas {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: #e9eef2;
}

.google-map-canvas.is-google-ready {
  background: #dfe9ef;
}

.google-map-canvas.is-google-ready .map-integration-layer,
.google-map-canvas.is-google-ready .map-polygon-layer,
.google-map-canvas.is-google-ready .map-castle-marker {
  display: none;
}

.map-integration-layer,
.map-polygon-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.map-integration-layer {
  background:
    linear-gradient(90deg, rgba(255,255,255,.72) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,.72) 1px, transparent 1px),
    #e9eef2;
  background-size: 96px 96px;
}

.map-integration-layer::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.18), rgba(23,32,51,.05));
}

.map-polygon-layer {
  border: 1px solid rgba(35, 116, 171, .16);
  border-radius: 18px;
}

.map-castle-marker {
  position: absolute;
  left: 50%;
  top: 47%;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(35, 116, 171, .18);
  border-radius: 16px;
  background: rgba(255,255,255,.94);
  color: var(--portal-blue);
  box-shadow: 0 14px 26px rgba(29, 48, 78, .14);
  transform: translate(-50%, -50%);
}

.map-castle-marker::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -7px;
  width: 12px;
  height: 12px;
  border-radius: 2px;
  background: rgba(255,255,255,.94);
  border-right: 1px solid rgba(35, 116, 171, .18);
  border-bottom: 1px solid rgba(35, 116, 171, .18);
  transform: translateX(-50%) rotate(45deg);
}

.map-status {
  left: 16px;
  top: 16px;
  right: auto;
  bottom: auto;
  width: min(320px, calc(100% - 32px));
  max-width: none;
  padding: 9px 11px;
  border-radius: 14px;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(12px);
}

.map-status small {
  display: block;
  margin-top: 4px;
  color: var(--portal-muted);
  font-size: .78rem;
  font-weight: 820;
}

.map-status-action {
  display: inline-flex;
  margin-top: 8px;
  padding: 6px 9px;
  border-radius: 999px;
  background: #eaf4ff;
  color: var(--portal-blue);
  font-size: .78rem;
  font-weight: 950;
  text-decoration: none;
}

.map-status-action:hover,
.map-status-action:focus-visible {
  background: #dceeff;
}

.google-map-preview.has-map-message::before {
  content: attr(data-map-message-title);
  position: absolute;
  z-index: 4;
  left: 50%;
  top: 34%;
  width: min(280px, calc(100% - 32px));
  padding: 14px 16px 6px;
  border: 1px solid rgba(255,255,255,.82);
  border-radius: 16px 16px 0 0;
  background: rgba(255,255,255,.94);
  color: var(--portal-ink);
  font-weight: 950;
  text-align: center;
  box-shadow: 0 14px 30px rgba(29, 48, 78, .12);
  transform: translate(-50%, -50%);
}

.google-map-preview.has-map-message::after {
  content: attr(data-map-message-detail);
  position: absolute;
  z-index: 4;
  left: 50%;
  top: calc(34% + 34px);
  width: min(280px, calc(100% - 32px));
  min-height: 22px;
  padding: 0 16px 14px;
  border: 1px solid rgba(255,255,255,.82);
  border-top: 0;
  border-radius: 0 0 16px 16px;
  background: rgba(255,255,255,.94);
  color: var(--portal-muted);
  font-size: .82rem;
  font-weight: 760;
  line-height: 1.35;
  text-align: center;
  box-shadow: 0 14px 30px rgba(29, 48, 78, .12);
  transform: translate(-50%, -50%);
}

.territory-map-card .territory-list {
  margin-top: 12px;
}

.territory-select {
  border-color: rgba(219, 228, 239, .9);
  background: #fff;
  box-shadow: 0 6px 14px rgba(29, 48, 78, .045);
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.territory-select:hover,
.territory-select.is-selected {
  border-color: rgba(35, 116, 171, .32);
  box-shadow: 0 10px 20px rgba(35, 116, 171, .08);
  transform: translateY(-1px);
}

.territory-select.is-selected {
  background: #f7fbff;
}

.ranking-table tr {
  transition: outline-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.ranking-table tr:hover,
.ranking-table tr.is-selected {
  box-shadow: inset 3px 0 0 var(--portal-blue), 0 8px 18px rgba(29, 48, 78, .06);
  transform: translateY(-1px);
}

.activity-row {
  border-color: rgba(219, 228, 239, .9);
  background: #fff;
  box-shadow: 0 8px 18px rgba(29, 48, 78, .045);
}

.activity-sport-chip {
  background: #f3f8fc;
  box-shadow: inset 0 0 0 1px rgba(35, 116, 171, .1);
}

.wallet-summary div {
  background: linear-gradient(180deg, #fff, #f8fbff);
}

@media (max-width: 1180px) {
  .google-map-preview { min-height: 420px; }
}

@media (max-width: 980px) {
  .fitness-hero-row { grid-template-columns: 1fr; }
  .google-map-preview { min-height: 390px; }
}

@media (max-width: 620px) {
  .portal-topbar { gap: 12px; }
  .profile-cluster { flex-wrap: wrap; justify-content: flex-end; }
  .stat-card { min-height: 136px; }
  .fitness-card-premium { padding: 16px; }
  .fitness-primary-metric { min-height: 132px; padding: 16px; }
  .fitness-mini-stats { grid-template-columns: 1fr; }
  .split-summary { grid-template-columns: 1fr; }
  .fitness-empty-state { grid-template-columns: 1fr; }
  .google-map-preview { min-height: 370px; }
  .map-status { left: 12px; top: 12px; right: auto; bottom: auto; width: min(300px, calc(100% - 24px)); }
  .notification-dropdown { right: -70px; }
}

@media (max-width: 430px) {
  .google-map-preview { min-height: 360px; }
  .map-status { width: min(280px, calc(100% - 24px)); }
}

/* Focused dashboard refinement pass */
.portal-brand {
  gap: 12px;
  font-size: 1.08rem;
}

.portal-brand-mark {
  position: relative;
  width: 42px;
  height: 42px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 15px 15px 15px 6px;
  background:
    radial-gradient(circle at 34% 28%, rgba(255, 255, 255, .9) 0 10%, transparent 11%),
    linear-gradient(135deg, #0b6ff0 0, #42b7ff 52%, #31d5a5 100%);
  box-shadow: 0 13px 28px rgba(31, 124, 255, .22);
}

.portal-brand-mark::before {
  position: absolute;
  inset: 0;
  z-index: 2;
  content: "";
  background: url('/assets/web/logo.png') center / cover no-repeat;
}

.portal-brand-mark::after {
  position: absolute;
  right: -12px;
  bottom: -12px;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  content: "";
  background: rgba(255, 255, 255, .18);
  transform: rotate(22deg);
}

.portal-brand-mark > span { display: none; }

.notification-button {
  outline: none;
  color: #12334f;
}

.notification-button:focus-visible {
  border-color: rgba(35, 116, 171, .58);
  box-shadow: 0 0 0 4px rgba(35, 116, 171, .14), 0 14px 28px rgba(35, 116, 171, .13);
}

.notification-button:active {
  transform: translateY(0);
  box-shadow: 0 8px 18px rgba(29, 48, 78, .1);
}

.notification-icon {
  width: 22px;
  height: 22px;
  display: inline-grid;
  place-items: center;
  color: #12334f;
}

.notification-icon svg {
  width: 22px;
  height: 22px;
  stroke-width: 2.15;
}

.notification-badge {
  top: -7px;
  right: -7px;
  z-index: 2;
  box-shadow: 0 5px 12px rgba(232, 111, 97, .28);
}

.activity-sport-chip {
  width: 40px;
  height: 40px;
  min-width: 40px;
  flex: 0 0 40px;
  display: inline-grid;
  place-items: center;
  padding: 0;
  line-height: 0;
}

.activity-sport-chip svg {
  width: 22px;
  height: 22px;
  margin: auto;
  stroke-width: 1.85;
}

.social-stat-card {
  gap: 10px;
}

.social-stat-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  position: relative;
  z-index: 1;
}

.social-stat-pair div {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(219, 228, 239, .82);
  border-radius: 12px;
  background: rgba(248, 251, 255, .86);
}

.social-stat-pair strong {
  display: block;
  font-size: 1.45rem;
  line-height: 1;
}

.social-stat-pair small {
  display: block;
  margin-top: 5px;
  color: var(--portal-muted);
  font-size: .74rem;
  font-weight: 900;
  text-transform: uppercase;
}

.social-avatar-stack {
  display: flex;
  align-items: center;
  min-height: 20px;
  margin-top: 1px;
  position: relative;
  z-index: 1;
}

.social-avatar-stack span {
  width: 20px;
  height: 20px;
  display: block;
  border: 2px solid #fff;
  border-radius: 50%;
  background: linear-gradient(135deg, #dce9f5, #b7dcce);
  box-shadow: 0 4px 10px rgba(29, 48, 78, .08);
}

.social-avatar-stack span + span { margin-left: -7px; }
.social-avatar-stack span:nth-child(2) { background: linear-gradient(135deg, #f7d38d, #f2b2a8); }
.social-avatar-stack span:nth-child(3) { background: linear-gradient(135deg, #eaf4fb, #cbd8e6); }

@media (max-width: 620px) {
  .portal-brand-mark {
    width: 38px;
    height: 38px;
    border-radius: 13px 13px 13px 5px;
  }

  .notification-button {
    width: 40px;
    height: 40px;
  }

  .social-stat-pair {
    grid-template-columns: 1fr 1fr;
  }
}

/* Mobile-app alignment: real avatars and tighter icon treatment */
.mini-avatar,
.notification-avatar,
.social-mini-avatar,
.ranking-avatar {
  display: inline-grid;
  place-items: center;
  overflow: hidden;
  border: 1.5px solid color-mix(in srgb, var(--avatar-accent, #2F80ED) 34%, #ffffff);
  border-radius: 50%;
  background: color-mix(in srgb, var(--avatar-accent, #2F80ED) 12%, #ffffff);
  color: var(--avatar-accent, #2F80ED);
  font-weight: 900;
  line-height: 1;
  flex: 0 0 auto;
}

.mini-avatar img,
.notification-avatar img,
.social-mini-avatar img,
.ranking-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.notification-avatar {
  width: 36px;
  height: 36px;
  border-radius: 14px;
  font-size: .82rem;
}

.social-mini-avatar {
  width: 26px;
  height: 26px;
  border-width: 2px;
  border-color: #fff;
  background: linear-gradient(135deg, color-mix(in srgb, var(--avatar-accent, #2F80ED) 18%, #ffffff), #ffffff);
  box-shadow: 0 5px 12px rgba(16, 32, 51, .1);
  font-size: .74rem;
}

.ranking-avatar {
  width: 34px;
  height: 34px;
  border-radius: 14px;
  font-size: .84rem;
  background: #fff;
}

.notification-dropdown li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: flex-start;
  gap: 10px;
}

.notification-dropdown li .notification-copy {
  min-width: 0;
}

.notification-dropdown li .notification-copy > div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.notification-dropdown li .notification-copy strong {
  min-width: 0;
}

.ranking-user-cell {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.ranking-user-cell > span {
  display: block;
  min-width: 0;
}

.ranking-user-cell strong,
.ranking-user-cell small {
  display: block;
}

.ranking-user-cell strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ranking-user-cell small {
  margin-top: 3px;
  color: var(--portal-muted);
  font-size: .78rem;
  font-weight: 780;
}

.activity-sport-chip {
  border-radius: 16px;
  background: #F1F7FF;
  border: 1px solid #D7E8FB;
  color: #2F80ED;
}

.activity-sport-chip svg {
  width: 23px;
  height: 23px;
  transform-origin: center;
}

.activity-row .activity-sport-chip svg {
  transform: translateY(.25px);
}

.notification-button {
  width: 42px;
  height: 42px;
  border-radius: 21px;
  background: transparent;
  border-color: transparent;
  color: #2F80ED;
  box-shadow: none;
}

.notification-button:hover,
.notification-button:focus-visible,
.notification-menu.is-open .notification-button {
  background: #EAF4FF;
  border-color: #CFE4FA;
}

.notification-icon {
  color: #2F80ED;
}

.social-avatar-stack {
  gap: 0;
}

.social-avatar-stack .social-mini-avatar + .social-mini-avatar {
  margin-left: -8px;
}


/* Notification dropdown readability pass */
.notification-dropdown {
  width: min(460px, calc(100vw - 32px));
  max-height: min(620px, calc(100vh - 110px));
  overflow-y: auto;
}

.notification-dropdown-heading {
  align-items: flex-start;
}

.notification-dropdown ul {
  gap: 10px;
}

.notification-dropdown li {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 12px;
  padding: 12px;
  border-radius: 14px;
}

.notification-dropdown li.is-unread {
  box-shadow: inset 3px 0 0 var(--portal-coral), 0 10px 22px rgba(29, 48, 78, .055);
}

.notification-dropdown li .notification-copy,
.notification-dropdown li .notification-copy > div {
  min-width: 0;
}

.notification-dropdown li .notification-copy {
  display: grid;
  gap: 7px;
}

.notification-dropdown li .notification-copy > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 8px;
}

.notification-dropdown li .notification-copy strong {
  min-width: 0;
  color: var(--portal-ink);
  font-size: .9rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.notification-dropdown li .notification-copy > div span {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 150px;
  padding: 4px 7px;
  border-radius: 999px;
  background: #eaf4ff;
  color: var(--portal-blue);
  font-size: .68rem;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.notification-dropdown p {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: #526176;
  font-size: .84rem;
  line-height: 1.42;
  overflow-wrap: break-word;
  word-break: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.notification-dropdown time {
  display: block;
  font-size: .76rem;
  line-height: 1.2;
  white-space: nowrap;
}

.notification-dropdown > a {
  display: inline-flex;
  margin-top: 2px;
  text-decoration: none;
}

@media (max-width: 620px) {
  .notification-dropdown {
    position: fixed;
    top: 72px;
    left: 16px;
    right: 16px;
    width: auto;
    max-height: calc(100vh - 92px);
  }

  .notification-dropdown li {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
  }

  .notification-dropdown li .notification-copy > div {
    grid-template-columns: 1fr;
  }

  .notification-dropdown li .notification-copy > div span {
    max-width: 100%;
  }

  .notification-dropdown p {
    -webkit-line-clamp: 2;
  }

  .notification-dropdown time {
    white-space: normal;
  }

  .notification-avatar {
    width: 34px;
    height: 34px;
    border-radius: 13px;
  }

  .ranking-user-cell {
    gap: 8px;
  }
}


.overview-panel {
  display: grid;
  gap: 16px;
  max-width: 1040px;
}

.overview-hero {
  padding: 24px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(248,251,255,.94)),
    radial-gradient(circle at 92% 12%, rgba(35,116,171,.07), transparent 26%);
}

.overview-hero h2 {
  margin: 0;
  font-size: clamp(1.7rem, 4vw, 2.35rem);
  line-height: 1.05;
  letter-spacing: 0;
}

.overview-hero p:not(.portal-eyebrow) {
  max-width: 720px;
  margin: 12px 0 0;
  color: var(--portal-muted);
  line-height: 1.6;
  font-weight: 720;
}

.overview-hero a {
  display: inline-flex;
  margin-top: 18px;
  color: var(--portal-blue);
  font-weight: 900;
}

.overview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.overview-tile {
  min-height: 190px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 18px;
  padding: 18px;
  border: 1px solid rgba(207, 218, 231, .86);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 12px 26px rgba(29, 48, 78, .06);
}

.overview-tile h2 {
  margin: 0;
  font-size: 1.08rem;
  letter-spacing: 0;
}

.overview-tile p {
  margin: 8px 0 0;
  color: var(--portal-muted);
  line-height: 1.5;
}

.overview-tile a {
  align-self: flex-start;
  padding: 8px 11px;
  border: 1px solid rgba(35, 116, 171, .14);
  border-radius: 999px;
  background: #f5fafe;
  color: var(--portal-blue);
  font-size: .82rem;
  font-weight: 900;
}

.social-stat-card {
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.social-stat-card:hover,
.social-stat-card:focus-visible {
  border-color: rgba(35, 116, 171, .3);
  box-shadow: 0 18px 38px rgba(35, 116, 171, .12);
  transform: translateY(-1px);
}

@media (max-width: 760px) {
  .overview-grid { grid-template-columns: 1fr; }
  .overview-hero { padding: 20px; }
  .overview-tile { min-height: 0; }
}

.activities-page {
  display: grid;
  gap: 16px;
}

.activities-header {
  padding: 22px;
}

.activities-header h2 {
  margin: 0;
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  line-height: 1.02;
}

.activities-header p:not(.portal-eyebrow) {
  max-width: 650px;
  margin: 10px 0 0;
  color: var(--portal-muted);
  line-height: 1.55;
}

.activity-controls {
  display: grid;
  gap: 12px;
}

.activity-tabs,
.activity-filter-form {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
}

.activity-tab,
.activity-filter-form a,
.activity-action,
.activity-pagination a,
.activity-pagination span {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--portal-line);
  border-radius: 999px;
  background: #fff;
  color: #526176;
  font-weight: 900;
}

.activity-tab {
  padding: 0 14px;
}

.activity-tab.is-active {
  border-color: rgba(35, 116, 171, .32);
  background: #eaf4fb;
  color: var(--portal-blue);
}

.activity-filter-form {
  padding: 12px;
  border: 1px solid rgba(219, 228, 239, .86);
  border-radius: 16px;
  background: #fff;
}

.activity-filter-form label {
  display: grid;
  gap: 5px;
  color: #4b5b70;
  font-size: .76rem;
  font-weight: 900;
  text-transform: uppercase;
}

.activity-filter-form select,
.activity-filter-form input {
  min-height: 40px;
  border: 1px solid var(--portal-line);
  border-radius: 11px;
  background: #fff;
  color: var(--portal-ink);
  padding: 0 11px;
}

.activity-filter-form button,
.activity-comment-form button {
  min-height: 40px;
  align-self: end;
  border: 0;
  border-radius: 11px;
  background: var(--portal-blue);
  color: #fff;
  font-weight: 900;
  padding: 0 15px;
  cursor: pointer;
}

.activity-filter-form a {
  align-self: end;
  padding: 0 13px;
  font-size: .82rem;
}

.activity-search {
  flex: 1 1 260px;
}

.activity-search input {
  width: 100%;
}

.activities-feed {
  display: grid;
  gap: 14px;
}

.activity-feed-card,
.activity-empty-state {
  padding: 18px;
  border: 1px solid rgba(207, 218, 231, .9);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(29, 48, 78, .075);
}

.activity-feed-card.is-highlighted {
  border-color: rgba(35, 116, 171, .38);
  box-shadow: 0 18px 42px rgba(35, 116, 171, .14);
}

.activity-card-topline,
.activity-card-body,
.activity-actions,
.activity-pagination {
  display: flex;
  align-items: center;
  gap: 12px;
}

.activity-card-topline {
  justify-content: space-between;
}

.activity-avatar {
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  overflow: hidden;
  border-radius: 50%;
  background: var(--avatar-accent, var(--portal-blue));
  color: #fff;
  font-weight: 900;
}

.activity-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.activity-author {
  min-width: 0;
  margin-right: auto;
}

.activity-author strong,
.activity-author span {
  display: block;
}

.activity-author span,
.activity-card-body time,
.activity-feed-card p,
.activity-metrics dt,
.activity-empty-state p {
  color: var(--portal-muted);
}

.activity-sport-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border-radius: 999px;
  background: #eaf4fb;
  color: var(--portal-blue);
  font-size: .78rem;
  font-weight: 900;
  white-space: nowrap;
}

.activity-sport-pill svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.activity-card-body {
  align-items: stretch;
  justify-content: space-between;
  margin-top: 14px;
}

.activity-card-body h2 {
  margin: 4px 0 0;
  font-size: 1.35rem;
}

.activity-card-body p {
  max-width: 760px;
  margin: 8px 0 0;
  line-height: 1.5;
}

.activity-route-visual {
  width: 190px;
  min-height: 92px;
  flex: 0 0 auto;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(219, 228, 239, .9);
  border-radius: 14px;
  background:
    linear-gradient(90deg, rgba(35,116,171,.08) 1px, transparent 1px),
    linear-gradient(0deg, rgba(35,116,171,.08) 1px, transparent 1px),
    #f7fbff;
  background-size: 28px 28px;
}

.activity-route-visual i {
  position: absolute;
  left: 18px;
  right: 18px;
  top: 45px;
  height: 20px;
  border-top: 4px solid rgba(35, 116, 171, .6);
  border-radius: 50%;
  transform: rotate(-9deg);
}

.activity-route-visual span {
  position: absolute;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: var(--portal-green);
}

.activity-route-visual span:nth-child(1) { left: 20px; top: 51px; }
.activity-route-visual span:nth-child(2) { left: 84px; top: 35px; background: var(--portal-yellow); }
.activity-route-visual span:nth-child(3) { right: 22px; top: 42px; background: var(--portal-coral); }

.activity-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 10px;
  margin: 16px 0 0;
}

.activity-metrics div {
  padding: 12px;
  border: 1px solid rgba(219, 228, 239, .86);
  border-radius: 12px;
  background: var(--portal-panel-soft);
}

.activity-metrics dt {
  font-size: .73rem;
  font-weight: 900;
  text-transform: uppercase;
}

.activity-metrics dd {
  margin: 4px 0 0;
  font-size: 1.02rem;
  font-weight: 920;
}

.activity-card-badges,
.activity-actions {
  flex-wrap: wrap;
  margin-top: 13px;
}

.activity-badge {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  background: #eef5ed;
  color: #28765d;
  font-size: .78rem;
  font-weight: 900;
}

.activity-badge.reward { background: #fff6df; color: #966716; }
.activity-badge.muted { background: #f1f5f9; color: #68778b; }

.activity-actions form {
  margin: 0;
}

.activity-action {
  padding: 0 13px;
  cursor: pointer;
}

.activity-action.is-active {
  border-color: rgba(232, 111, 97, .35);
  background: #fff0ed;
  color: #a23d32;
}

.activity-empty-state h2 {
  margin: 0;
}

.activity-empty-state p {
  margin: 8px 0 0;
}

.activity-pagination {
  justify-content: space-between;
}

.activity-pagination a,
.activity-pagination span {
  min-width: 120px;
  padding: 0 16px;
}

.activity-comments-dialog {
  width: min(620px, calc(100% - 28px));
  border: 1px solid var(--portal-line);
  border-radius: 18px;
  box-shadow: var(--shadow-soft);
  padding: 18px;
}

.activity-comments-dialog::backdrop {
  background: rgba(23, 32, 51, .38);
}

.activity-comments-dialog > form[method="dialog"] {
  float: right;
  margin: 0;
}

.activity-comments-dialog > form[method="dialog"] button {
  border: 1px solid var(--portal-line);
  border-radius: 999px;
  background: #fff;
  color: var(--portal-ink);
  font-weight: 900;
  padding: 8px 12px;
}

.activity-comments-dialog h2 {
  margin: 0 0 14px;
}

.activity-comments-list {
  display: grid;
  gap: 10px;
  max-height: 360px;
  overflow: auto;
  margin-bottom: 14px;
}

.activity-comment {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  padding: 11px;
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  background: var(--portal-panel-soft);
}

.activity-comment strong,
.activity-comment span,
.activity-comment p {
  display: block;
}

.activity-comment span {
  color: var(--portal-muted);
  font-size: .78rem;
  font-weight: 800;
}

.activity-comment p {
  margin: 5px 0 0;
  color: #344256;
  line-height: 1.4;
}

.activity-comment-form {
  display: grid;
  gap: 10px;
}

.activity-comment-form label {
  display: grid;
  gap: 7px;
  color: #4b5b70;
  font-size: .78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.activity-comment-form textarea {
  width: 100%;
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  padding: 11px;
  resize: vertical;
}

@media (max-width: 760px) {
  .activity-card-body {
    flex-direction: column;
  }

  .activity-route-visual {
    width: 100%;
  }

  .activity-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .activity-filter-form {
    display: grid;
  }

  .activity-filter-form label,
  .activity-filter-form button,
  .activity-filter-form a {
    width: 100%;
  }

  .activity-card-topline {
    align-items: flex-start;
  }

  .activity-sport-pill {
    max-width: 44px;
    overflow: hidden;
    justify-content: center;
    padding-inline: 8px;
    color: transparent;
  }

  .activity-sport-pill svg {
    color: var(--portal-blue);
    flex: 0 0 auto;
  }

  .activity-metrics {
    grid-template-columns: 1fr;
  }
}

.activity-route-visual svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.activity-route-visual.has-route {
  background:
    linear-gradient(90deg, rgba(255,255,255,.76) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,.76) 1px, transparent 1px),
    #e9f1f5;
  background-size: 30px 30px;
}

.route-preview-shadow,
.route-preview-line {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.route-preview-shadow {
  stroke: rgba(29, 48, 78, .18);
  stroke-width: 8;
}

.route-preview-line {
  stroke: var(--portal-blue);
  stroke-width: 4;
}

.activity-route-visual.is-empty {
  display: grid;
  place-items: center;
  padding: 14px;
  text-align: center;
}

.activity-route-visual.is-empty strong {
  max-width: 130px;
  color: var(--portal-muted);
  font-size: .78rem;
  line-height: 1.25;
}

.activity-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}

.activity-modal-header h2 {
  min-width: 0;
  margin: 0;
  line-height: 1.16;
  overflow-wrap: anywhere;
}

.activity-modal-header form {
  flex: 0 0 auto;
  margin: 0;
}

.activity-comments-dialog > form[method="dialog"] {
  float: none;
}

.activity-comments-dialog,
.activity-likes-dialog {
  width: min(620px, calc(100% - 28px));
  border: 1px solid var(--portal-line);
  border-radius: 18px;
  box-shadow: var(--shadow-soft);
  padding: 18px;
}

.activity-comments-dialog::backdrop,
.activity-likes-dialog::backdrop {
  background: rgba(23, 32, 51, .38);
}

.activity-modal-header button {
  border: 1px solid var(--portal-line);
  border-radius: 999px;
  background: #fff;
  color: var(--portal-ink);
  font-weight: 900;
  padding: 8px 12px;
}

.activity-comment-form input[type="hidden"] {
  display: none;
}

.activity-comment a,
.activity-like-user a {
  color: inherit;
}

.activity-comment-replies {
  display: grid;
  gap: 9px;
  margin-top: 10px;
}

.activity-comment.is-reply {
  border-style: dashed;
  background: #fff;
}

.activity-comment-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.activity-comment-actions form {
  margin: 0;
}

.activity-comment-actions button {
  border: 1px solid var(--portal-line);
  border-radius: 999px;
  background: #fff;
  color: var(--portal-blue);
  font-size: .76rem;
  font-weight: 900;
  padding: 6px 10px;
  cursor: pointer;
}

.activity-likes-list {
  display: grid;
  gap: 10px;
  max-height: 420px;
  overflow: auto;
}

.activity-like-user {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 11px;
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  background: var(--portal-panel-soft);
}

.activity-like-user strong,
.activity-like-user span {
  display: block;
}

.activity-like-user span {
  color: var(--portal-muted);
  font-size: .8rem;
  font-weight: 800;
}

.activity-pagination {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.activity-pagination div {
  min-width: 0;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 7px;
}

.activity-pagination a,
.activity-pagination span {
  min-width: 42px;
  padding: 0 12px;
}

.activity-pagination a.is-current {
  border-color: rgba(35, 116, 171, .34);
  background: #eaf4fb;
  color: var(--portal-blue);
}

.activity-pagination .is-disabled,
.activity-pagination .pagination-ellipsis {
  color: var(--portal-muted);
  background: transparent;
}

.public-profile-preview .activity-avatar {
  width: 58px;
  height: 58px;
  margin-bottom: 10px;
}

@media (max-width: 520px) {
  .activity-modal-header {
    align-items: flex-start;
  }

  .activity-pagination {
    grid-template-columns: 1fr;
  }

  .activity-pagination div {
    justify-content: flex-start;
  }
}

.activity-card-meta {
  margin-top: 12px;
  color: var(--portal-muted);
  font-size: .84rem;
  font-weight: 820;
}

.activity-card-body {
  display: block;
  margin-top: 8px;
}

.activity-route-visual {
  width: 100%;
  min-height: 240px;
  flex: none;
  margin-top: 15px;
  border-radius: 16px;
}

.activity-route-visual.has-route {
  background:
    linear-gradient(90deg, rgba(255,255,255,.72) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,.72) 1px, transparent 1px),
    #e8f0f5;
  background-size: 42px 42px;
}

.activity-route-visual svg {
  inset: 10px;
  width: calc(100% - 20px);
  height: calc(100% - 20px);
}

.activity-route-visual.is-empty {
  min-height: 220px;
}

.activity-route-visual.is-empty strong {
  max-width: none;
  font-size: .9rem;
}

.activity-modal-action {
  margin: 0 0 10px;
  padding: 11px;
  border: 1px solid rgba(232, 111, 97, .24);
  border-radius: 12px;
  background: #fff7f5;
}

.activity-modal-action button {
  min-height: 38px;
  border: 0;
  border-radius: 999px;
  background: var(--portal-coral);
  color: #fff;
  font-weight: 900;
  padding: 0 14px;
  cursor: pointer;
}

@media (max-width: 760px) {
  .activity-route-visual {
    min-height: 210px;
  }
}

@media (max-width: 520px) {
  .activity-route-visual,
  .activity-route-visual.is-empty {
    min-height: 185px;
  }
}

.activity-route-map {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .18s ease;
}

.activity-route-visual.is-google-ready .activity-route-map {
  opacity: 1;
}

.activity-route-visual.is-google-ready svg {
  opacity: 0;
}

.activity-route-visual.is-svg-fallback svg {
  opacity: 1;
}

.activity-route-visual.has-route svg {
  z-index: 2;
  pointer-events: none;
}

.activity-route-map {
  z-index: 1;
  pointer-events: auto;
}

.activity-route-visual.is-google-ready svg {
  display: none;
  pointer-events: none;
}

.activity-route-visual.is-google-ready {
  background: #e8f0f5;
}

.activity-metrics {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.activity-metrics div {
  padding: 10px;
}

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

@media (max-width: 620px) {
  .activity-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 420px) {
  .activity-metrics {
    grid-template-columns: 1fr;
  }
}


.territories-page {
  display: grid;
  gap: 16px;
}

.territory-summary-grid {
  margin-bottom: 0;
}

.territory-controls,
.territory-explorer-shell {
  border: 1px solid rgba(219, 228, 239, .86);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(29, 48, 78, .07);
}

.territory-controls {
  padding: 14px;
}

.territory-filter-form {
  margin-top: 0;
}

.territory-explorer-shell {
  position: relative;
  overflow: hidden;
  padding: 16px;
}

.territory-explorer-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}

.territory-explorer-heading h2 {
  margin: 0;
  font-size: 1.18rem;
}

.territory-search-area,
.territory-detail-actions button,
.territory-progress-table button,
.territory-progress-card button {
  border: 0;
  border-radius: 12px;
  background: var(--portal-blue);
  color: #fff;
  cursor: pointer;
  font-weight: 900;
}

.territory-search-area {
  padding: 10px 12px;
  white-space: nowrap;
}

.territory-search-area[hidden] {
  display: none;
}

.territory-search-area:disabled {
  opacity: .62;
  cursor: progress;
}

.territory-explorer-map {
  position: relative;
  min-height: 560px;
  overflow: hidden;
  border: 1px solid rgba(207, 218, 231, .95);
  border-radius: 16px;
  background: #eef2f5;
}

.territory-map-canvas {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: #e9eef2;
}

.territory-map-canvas.is-google-ready .map-integration-layer,
.territory-map-canvas.is-google-ready .map-castle-marker {
  display: none;
}

.territory-map-empty {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  width: min(340px, calc(100% - 32px));
  padding: 14px 16px;
  border: 1px solid rgba(255,255,255,.86);
  border-radius: 14px;
  background: rgba(255,255,255,.94);
  color: var(--portal-muted);
  font-weight: 850;
  text-align: center;
  box-shadow: 0 16px 30px rgba(29, 48, 78, .12);
  transform: translate(-50%, -50%);
}

.territory-detail-panel {
  position: absolute;
  z-index: 4;
  right: 32px;
  top: 86px;
  width: min(380px, calc(100% - 64px));
  padding: 16px;
  border: 1px solid rgba(219, 228, 239, .92);
  border-radius: 16px;
  background: rgba(255,255,255,.95);
  box-shadow: 0 18px 38px rgba(29, 48, 78, .16);
  backdrop-filter: blur(12px);
}

.territory-detail-panel h2 {
  margin: 0;
  font-size: 1.35rem;
}

.territory-detail-panel p:not(.portal-eyebrow) {
  color: var(--portal-muted);
  line-height: 1.5;
}

.territory-detail-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.territory-detail-meta span,
.territory-progress-card span {
  border-radius: 999px;
  background: #eaf4fb;
  color: var(--portal-blue);
  font-size: .78rem;
  font-weight: 900;
  padding: 6px 9px;
}

.territory-detail-stats,
.territory-ranking-summary dl,
.territory-progress-card dl {
  display: grid;
  gap: 10px;
  margin: 14px 0 0;
}

.territory-detail-stats div,
.territory-ranking-summary div,
.territory-progress-card dl div {
  display: grid;
  gap: 3px;
  padding: 10px;
  border: 1px solid rgba(219, 228, 239, .82);
  border-radius: 12px;
  background: #f8fbff;
}

.territory-detail-stats dt,
.territory-ranking-summary dt,
.territory-progress-card dt {
  color: var(--portal-muted);
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.territory-detail-stats dd,
.territory-ranking-summary dd,
.territory-progress-card dd {
  margin: 0;
  color: var(--portal-ink);
  font-weight: 880;
}

.territory-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.territory-detail-actions button,
.territory-progress-table button,
.territory-progress-card button {
  padding: 9px 11px;
}

.territory-detail-actions button + button {
  background: var(--portal-green);
}

.territory-progress-section .card-heading span {
  color: var(--portal-muted);
  font-weight: 900;
}

.territory-table-wrap {
  overflow-x: auto;
}

.territory-progress-table {
  width: 100%;
  min-width: 860px;
  border-collapse: separate;
  border-spacing: 0 10px;
}

.territory-progress-table th {
  padding: 0 12px 2px;
  color: var(--portal-muted);
  font-size: .74rem;
  font-weight: 900;
  text-align: left;
  text-transform: uppercase;
}

.territory-progress-table td {
  padding: 13px 12px;
  border-top: 1px solid rgba(219, 228, 239, .92);
  border-bottom: 1px solid rgba(219, 228, 239, .92);
  background: #fff;
  font-weight: 820;
}

.territory-progress-table td:first-child {
  border-left: 1px solid rgba(219, 228, 239, .92);
  border-radius: 12px 0 0 12px;
}

.territory-progress-table td:last-child {
  border-right: 1px solid rgba(219, 228, 239, .92);
  border-radius: 0 12px 12px 0;
}

.territory-progress-table strong,
.territory-progress-table small {
  display: block;
}

.territory-progress-table small {
  margin-top: 4px;
  color: var(--portal-muted);
}

.territory-progress-table tr,
.territory-progress-card {
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease;
}

.territory-progress-table tr:hover td,
.territory-progress-table tr.is-selected td {
  background: #f7fbff;
}

.territory-progress-table tr.is-selected td:first-child {
  box-shadow: inset 3px 0 0 var(--portal-blue);
}

.territory-card-list {
  display: none;
}

.territory-ranking-dialog {
  width: min(720px, calc(100% - 28px));
  max-height: min(760px, calc(100vh - 28px));
  overflow: auto;
  border: 0;
  border-radius: 18px;
  padding: 18px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .28);
}

.territory-ranking-dialog::backdrop {
  background: rgba(15, 23, 42, .42);
}

.territory-ranking-summary dl {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 14px;
}

.ranking-separator td {
  text-align: center !important;
  color: var(--portal-muted) !important;
  background: transparent !important;
  border: 0 !important;
}

@media (max-width: 980px) {
  .territory-explorer-map { min-height: 480px; }
  .territory-detail-panel {
    position: static;
    width: 100%;
    margin-top: 12px;
    box-shadow: 0 12px 26px rgba(29, 48, 78, .1);
  }
  .territory-ranking-summary dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .territory-filter-form {
    grid-template-columns: 1fr;
  }
  .territory-explorer-shell { padding: 12px; }
  .territory-explorer-heading { align-items: stretch; flex-direction: column; }
  .territory-search-area { width: 100%; }
  .territory-explorer-map { min-height: 420px; }
  .territory-table-wrap { display: none; }
  .territory-card-list {
    display: grid;
    gap: 12px;
  }
  .territory-progress-card {
    display: grid;
    gap: 12px;
    padding: 13px;
    border: 1px solid rgba(219, 228, 239, .92);
    border-radius: 14px;
    background: #fff;
  }
  .territory-progress-card > div:first-child {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
  }
  .territory-progress-card strong {
    font-size: 1rem;
  }
  .territory-progress-card dl { grid-template-columns: 1fr 1fr; }
  .territory-ranking-dialog {
    width: 100%;
    max-width: none;
    margin: auto 0 0;
    border-radius: 18px 18px 0 0;
  }
}

@media (max-width: 480px) {
  .territory-summary-grid { grid-template-columns: 1fr; }
  .territory-explorer-map { min-height: 380px; }
  .territory-detail-actions,
  .territory-detail-actions button { width: 100%; }
  .territory-progress-card dl,
  .territory-ranking-summary dl { grid-template-columns: 1fr; }
}


/* Authenticated portal refinement: lighter, more compact UI */
body.user-portal .portal-app-shell {
  font-size: 15px;
  line-height: 1.45;
}

body.user-portal .portal-app-shell strong,
body.user-portal .portal-app-shell h1,
body.user-portal .portal-app-shell h2,
body.user-portal .portal-app-shell h3 {
  font-weight: 720;
}

body.user-portal .portal-section-title h1 {
  font-size: clamp(1.72rem, 3.4vw, 2.35rem);
  line-height: 1.08;
}

body.user-portal .portal-section-title p,
body.user-portal .overview-hero p:not(.portal-eyebrow),
body.user-portal .activities-header p:not(.portal-eyebrow) {
  font-weight: 400;
}

body.user-portal .portal-eyebrow,
body.user-portal .stat-card span,
body.user-portal .activity-filter-form label,
body.user-portal .activity-metrics dt,
body.user-portal .territory-progress-table th,
body.user-portal .territory-detail-stats dt,
body.user-portal .territory-ranking-summary dt,
body.user-portal .territory-progress-card dt,
body.user-portal .fitness-primary-metric span,
body.user-portal .fitness-mini-stats span,
body.user-portal .wallet-summary span {
  font-weight: 650;
  letter-spacing: .06em;
}

body.user-portal .portal-sidebar a:not(.portal-brand),
body.user-portal .mobile-nav a {
  padding: 9px 11px;
  font-size: .92rem;
  font-weight: 620;
}

body.user-portal .portal-sidebar nav,
body.user-portal .mobile-nav {
  gap: 5px;
}

body.user-portal .portal-card,
body.user-portal .stat-card,
body.user-portal .activity-feed-card,
body.user-portal .activity-empty-state,
body.user-portal .territory-controls,
body.user-portal .territory-explorer-shell {
  border-color: rgba(219, 228, 239, .72);
  box-shadow: 0 10px 24px rgba(29, 48, 78, .055);
}

body.user-portal .portal-card,
body.user-portal .activity-feed-card,
body.user-portal .activity-empty-state {
  padding: 16px;
}

body.user-portal .stat-card {
  min-height: 132px;
  padding: 15px;
}

body.user-portal .stat-card strong {
  font-size: 1.62rem;
  font-weight: 720;
}

body.user-portal .card-heading h2,
body.user-portal .overview-tile h2,
body.user-portal .territory-explorer-heading h2 {
  font-size: 1.05rem;
}

body.user-portal .activities-header {
  padding: 18px;
}

body.user-portal .activities-header h2 {
  font-size: clamp(1.55rem, 3.4vw, 2.1rem);
}

body.user-portal .activity-tab,
body.user-portal .activity-filter-form a,
body.user-portal .activity-action,
body.user-portal .activity-pagination a,
body.user-portal .activity-pagination span,
body.user-portal .activity-filter-form button,
body.user-portal .activity-comment-form button,
body.user-portal .activity-modal-header button,
body.user-portal .activity-modal-action button,
body.user-portal .profile-cluster form button,
body.user-portal .territory-search-area,
body.user-portal .territory-detail-actions button,
body.user-portal .territory-progress-table button,
body.user-portal .territory-progress-card button {
  min-height: 36px;
  font-size: .84rem;
  font-weight: 620;
}

body.user-portal .activity-tab,
body.user-portal .activity-action,
body.user-portal .activity-pagination a,
body.user-portal .activity-pagination span,
body.user-portal .activity-filter-form a {
  padding-inline: 11px;
}

body.user-portal .activity-filter-form button,
body.user-portal .activity-comment-form button,
body.user-portal .territory-search-area,
body.user-portal .territory-detail-actions button,
body.user-portal .territory-progress-table button,
body.user-portal .territory-progress-card button {
  padding-inline: 12px;
}

body.user-portal .activity-filter-form select,
body.user-portal .activity-filter-form input {
  min-height: 36px;
  font-size: .9rem;
}

body.user-portal .activity-feed-card {
  border-radius: 14px;
}

body.user-portal .activity-card-body h2 {
  font-size: 1.12rem;
}

body.user-portal .activity-metrics {
  gap: 7px;
}

body.user-portal .activity-metrics div {
  padding: 9px;
}

body.user-portal .activity-metrics dd {
  font-size: .96rem;
  font-weight: 680;
}

body.user-portal .activity-badge,
body.user-portal .activity-sport-pill,
body.user-portal .stat-badge,
body.user-portal .activity-badges span,
body.user-portal .territory-select small,
body.user-portal .territory-detail-meta span,
body.user-portal .territory-progress-card span {
  font-weight: 620;
}

body.user-portal .territory-explorer-map {
  min-height: 600px;
}

body.user-portal .territory-detail-panel {
  position: static;
  width: 100%;
  margin-top: 12px;
  padding: 14px;
  border-color: rgba(219, 228, 239, .76);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(29, 48, 78, .05);
  backdrop-filter: none;
}

body.user-portal .territory-detail-main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

body.user-portal .territory-detail-panel h2 {
  font-size: 1.08rem;
  line-height: 1.2;
}

body.user-portal .territory-detail-meta {
  margin-top: 8px;
}

body.user-portal .territory-detail-meta span {
  padding: 5px 8px;
  font-size: .76rem;
}

body.user-portal .territory-detail-stats {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(219, 228, 239, .72);
}

body.user-portal .territory-detail-stats div {
  gap: 2px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

body.user-portal .territory-detail-stats dt {
  font-size: .68rem;
}

body.user-portal .territory-detail-stats dd {
  font-size: .9rem;
  font-weight: 560;
}

body.user-portal .territory-detail-actions {
  flex: 0 0 auto;
  margin-top: 0;
  gap: 8px;
}

body.user-portal .territory-detail-actions button {
  padding-block: 0;
  border-radius: 999px;
}

body.user-portal .territory-progress-table {
  border-spacing: 0 7px;
}

body.user-portal .territory-progress-table td {
  padding: 10px 11px;
  font-weight: 500;
}

body.user-portal .territory-progress-table strong {
  font-weight: 650;
}

body.user-portal .territory-progress-card {
  gap: 10px;
}

@media (max-width: 980px) {
  body.user-portal .territory-explorer-map { min-height: 500px; }
  body.user-portal .territory-detail-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  body.user-portal .territory-explorer-map { min-height: 430px; }
  body.user-portal .territory-detail-main { display: grid; }
  body.user-portal .territory-detail-actions { width: 100%; }
}

@media (max-width: 480px) {
  body.user-portal .territory-explorer-map { min-height: 390px; }
  body.user-portal .territory-detail-stats { grid-template-columns: 1fr; }
}


/* Territory explorer auto-loading and ranking refinement */
.territory-map-status {
  align-self: center;
  margin: 0;
  color: var(--portal-muted);
  font-size: .82rem;
  font-weight: 500;
  line-height: 1.3;
  text-align: right;
}

.territory-map-status[hidden] {
  display: none;
}

.territory-map-status.is-loading::before {
  content: "";
  width: 7px;
  height: 7px;
  display: inline-block;
  margin-right: 7px;
  border-radius: 50%;
  background: var(--portal-blue);
  box-shadow: 0 0 0 4px rgba(35, 116, 171, .1);
  vertical-align: 1px;
}

body.user-portal .territory-progress-table th:last-child,
body.user-portal .territory-progress-table td:last-child {
  width: 1%;
  white-space: nowrap;
}

body.user-portal .territory-progress-table button {
  min-width: max-content;
  white-space: nowrap;
}

body.user-portal .territory-ranking-dialog {
  border: 1px solid rgba(219, 228, 239, .74);
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 20px 54px rgba(15, 23, 42, .22);
}

body.user-portal .territory-ranking-dialog .activity-modal-header {
  margin-bottom: 10px;
}

body.user-portal .territory-ranking-dialog h2 {
  font-size: 1.12rem;
  font-weight: 680;
}

body.user-portal .territory-ranking-summary dl {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}

body.user-portal .territory-ranking-summary div {
  padding: 9px;
  border-color: rgba(219, 228, 239, .7);
  background: #fbfdff;
}

body.user-portal .territory-ranking-summary dd {
  font-size: .88rem;
  font-weight: 560;
}

body.user-portal .territory-ranking-list .ranking-table {
  border-spacing: 0 6px;
}

body.user-portal .territory-ranking-list .ranking-table tr {
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
}

body.user-portal .territory-ranking-list .ranking-table td {
  padding: 9px 10px;
  border-top: 1px solid rgba(219, 228, 239, .72);
  border-bottom: 1px solid rgba(219, 228, 239, .72);
  font-weight: 560;
}

body.user-portal .territory-ranking-list .ranking-table td:first-child {
  width: 54px;
  border-left: 1px solid rgba(219, 228, 239, .72);
  border-radius: 10px 0 0 10px;
  color: var(--portal-muted);
  font-weight: 620;
}

body.user-portal .territory-ranking-list .ranking-table td:last-child {
  border-right: 1px solid rgba(219, 228, 239, .72);
  border-radius: 0 10px 10px 0;
  color: var(--portal-green);
  font-weight: 650;
}

body.user-portal .territory-ranking-list .ranking-table tr:hover,
body.user-portal .territory-ranking-list .ranking-table tr.is-selected {
  transform: none;
  box-shadow: none;
}

body.user-portal .territory-ranking-list .ranking-table tr.is-user-row td {
  background: #f7fbff;
}

body.user-portal .territory-ranking-list .ranking-table tr.is-user-row td:first-child {
  box-shadow: inset 3px 0 0 var(--portal-green);
}

body.user-portal .territory-ranking-list .ranking-user-cell strong {
  font-weight: 620;
}

body.user-portal .territory-ranking-list .ranking-user-cell small {
  font-weight: 450;
}

body.user-portal .territory-ranking-list .ranking-avatar {
  width: 30px;
  height: 30px;
  border-radius: 12px;
  font-size: .78rem;
  font-weight: 650;
}

@media (max-width: 720px) {
  .territory-map-status {
    text-align: left;
  }

  body.user-portal .territory-ranking-summary dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 480px) {
  body.user-portal .territory-ranking-summary dl {
    grid-template-columns: 1fr;
  }
}


body.user-portal .territory-detail-stats {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}


.activity-feed-card.is-linked-target {
  border-color: rgba(35, 116, 171, .48);
  box-shadow: 0 0 0 4px rgba(51, 199, 160, .14), 0 18px 42px rgba(35, 116, 171, .13);
  outline: none;
}


/* Authenticated Social portal */
.social-page {
  display: grid;
  gap: 16px;
}

.social-section-tabs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-width: thin;
}

.social-summary-grid {
  margin-top: 2px;
}

.social-nav-grid {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.social-content-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.social-content-grid.two-column {
  align-items: start;
}

.social-panel {
  display: grid;
  align-content: start;
  gap: 12px;
}

.social-list {
  display: grid;
  gap: 10px;
}

.social-user-card,
.social-activity-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 11px;
  border: 1px solid rgba(219, 228, 239, .74);
  border-radius: 12px;
  background: #fff;
}

.social-user-main,
.social-activity-row span:first-of-type {
  min-width: 0;
}

.social-user-main,
.social-activity-row {
  color: var(--portal-ink);
}

.social-user-main {
  display: flex;
  align-items: center;
  gap: 10px;
}

.social-user-main > span,
.social-activity-row > span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.social-user-main strong,
.social-activity-row strong {
  overflow: hidden;
  font-size: .94rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.social-user-main small,
.social-user-main em,
.social-activity-row small {
  color: var(--portal-muted);
  font-size: .8rem;
  font-style: normal;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.social-list-avatar {
  width: 38px;
  height: 38px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  overflow: hidden;
  border: 1.5px solid color-mix(in srgb, var(--avatar-accent, #2F80ED) 34%, #ffffff);
  border-radius: 14px;
  background: color-mix(in srgb, var(--avatar-accent, #2F80ED) 12%, #ffffff);
  color: var(--avatar-accent, #2F80ED);
  font-size: .84rem;
  font-weight: 720;
  line-height: 1;
}

.social-list-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.social-user-side,
.social-request-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: max-content;
}

.social-state-pill {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 9px;
  border-radius: 999px;
  background: #f7fbff;
  color: var(--portal-muted);
  font-size: .76rem;
  font-weight: 620;
  white-space: nowrap;
}

.social-button,
.social-search-form a {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--portal-blue);
  border-radius: 999px;
  padding: 0 12px;
  background: var(--portal-blue);
  color: #fff;
  cursor: pointer;
  font-size: .84rem;
  font-weight: 620;
  white-space: nowrap;
}

.social-button.secondary,
.social-search-form a {
  border-color: rgba(219, 228, 239, .9);
  background: #fff;
  color: var(--portal-ink);
}

.social-activity-row em {
  color: var(--portal-green);
  font-size: .84rem;
  font-style: normal;
  font-weight: 680;
  white-space: nowrap;
}

.social-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: end;
  gap: 10px;
}

.social-search-form label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: #36445a;
  font-size: .82rem;
  font-weight: 620;
}

.social-search-form input {
  width: 100%;
  min-height: 38px;
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  padding: 9px 11px;
  color: var(--portal-ink);
  background: #fff;
  outline: none;
}

.social-search-form input:focus {
  border-color: var(--portal-blue);
  box-shadow: 0 0 0 4px rgba(35, 116, 171, .1);
}

.social-empty {
  margin: 0;
  border: 1px dashed rgba(219, 228, 239, .9);
  border-radius: 12px;
  background: #fbfdff;
}

.social-leaderboards .overview-tile a {
  display: none;
}

.social-leaderboard-controls {
  grid-template-columns: repeat(4, minmax(110px, .8fr)) minmax(160px, 1.2fr) auto auto;
  align-items: end;
}

.social-search-form select {
  width: 100%;
  min-height: 38px;
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  padding: 8px 10px;
  background: #fff;
  color: var(--portal-ink);
  outline: none;
}

.social-search-form select:focus {
  border-color: var(--portal-blue);
  box-shadow: 0 0 0 4px rgba(35, 116, 171, .1);
}

.social-leaderboard-table {
  display: grid;
  gap: 8px;
}

.social-leaderboard-row {
  display: grid;
  grid-template-columns: 44px auto minmax(0, 1fr) minmax(180px, 1.2fr) auto;
  align-items: center;
  gap: 10px;
  min-width: 0;
  border: 1px solid rgba(219, 228, 239, .74);
  border-radius: 12px;
  padding: 10px;
  background: #fff;
}

.social-leaderboard-row.is-current-user {
  border-color: rgba(35, 116, 171, .38);
  background: #f7fbff;
  box-shadow: inset 3px 0 0 var(--portal-blue);
}

.social-leaderboard-rank {
  color: var(--portal-muted);
  font-size: .86rem;
  text-align: center;
}

.social-leaderboard-person,
.social-leaderboard-metric {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.social-leaderboard-person strong,
.social-leaderboard-metric strong {
  color: var(--portal-ink);
  font-size: .92rem;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.social-leaderboard-person small,
.social-leaderboard-metric small {
  color: var(--portal-muted);
  font-size: .78rem;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.social-leaderboard-person em {
  width: fit-content;
  border-radius: 999px;
  padding: 2px 7px;
  background: #f4f9fd;
  color: var(--portal-blue);
  font-size: .72rem;
  font-style: normal;
  font-weight: 650;
}

@media (max-width: 980px) {
  .social-leaderboard-controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .social-leaderboard-search,
  .social-leaderboard-controls .social-button,
  .social-leaderboard-controls a {
    grid-column: auto;
  }

  .social-leaderboard-row {
    grid-template-columns: 38px auto minmax(0, 1fr);
    align-items: start;
  }

  .social-leaderboard-metric,
  .social-leaderboard-row .social-profile-link {
    grid-column: 3;
  }
}

@media (max-width: 620px) {
  .social-leaderboard-controls {
    grid-template-columns: 1fr;
  }

  .social-leaderboard-row {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .social-leaderboard-rank {
    grid-row: span 2;
  }

  .social-leaderboard-row .social-list-avatar,
  .social-leaderboard-metric,
  .social-leaderboard-row .social-profile-link {
    grid-column: 2;
  }
}


body.user-portal .social-section-tabs .activity-tab,
body.user-portal .social-button,
body.user-portal .social-search-form a {
  font-weight: 620;
}

@media (max-width: 900px) {
  .social-content-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .social-user-card,
  .social-activity-row {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .social-user-side,
  .social-request-actions {
    justify-content: space-between;
    min-width: 0;
  }

  .social-search-form {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .social-search-form .social-button,
  .social-search-form a {
    width: 100%;
  }
}


/* Compact Social overview dashboard */
.social-quick-switcher {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-width: thin;
}

.social-switch-pill {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  border: 1px solid rgba(219, 228, 239, .86);
  border-radius: 999px;
  padding: 0 13px;
  background: #fff;
  color: #526176;
  font-size: .88rem;
  font-weight: 620;
  white-space: nowrap;
}

.social-switch-pill span {
  width: 22px;
  height: 22px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: #f1f7ff;
  color: var(--portal-blue);
}

.social-switch-pill svg {
  width: 15px;
  height: 15px;
  stroke-width: 2;
}

.social-switch-pill.is-active {
  border-color: rgba(35, 116, 171, .34);
  background: #eaf4fb;
  color: var(--portal-blue);
  box-shadow: 0 8px 18px rgba(29, 48, 78, .055);
}

.social-management-panel {
  min-height: 238px;
}

.social-overview-previews {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  gap: 16px;
  align-items: start;
}

.social-request-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.social-request-columns section {
  display: grid;
  align-content: start;
  gap: 9px;
  min-width: 0;
}

.social-request-columns h3 {
  margin: 0;
  color: var(--portal-muted);
  font-size: .78rem;
  font-weight: 650;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.social-profile-link {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(219, 228, 239, .9);
  border-radius: 999px;
  padding: 0 10px;
  background: #fff;
  color: var(--portal-blue);
  font-size: .8rem;
  font-weight: 620;
  white-space: nowrap;
}

.social-leaderboard-preview-list {
  display: grid;
  gap: 8px;
}

.social-leaderboard-preview-list span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 38px;
  border: 1px solid rgba(219, 228, 239, .74);
  border-radius: 12px;
  padding: 8px 10px;
  background: #fbfdff;
  color: var(--portal-ink);
  font-size: .9rem;
  font-weight: 620;
}

.social-leaderboard-preview-list small {
  color: var(--portal-muted);
  font-size: .76rem;
  font-weight: 560;
  white-space: nowrap;
}

body.user-portal .social-management-panel .card-heading h2,
body.user-portal .social-overview-previews .card-heading h2 {
  font-size: 1rem;
}

body.user-portal .social-user-card,
body.user-portal .social-activity-row {
  min-height: 60px;
}

@media (max-width: 980px) {
  .social-overview-previews {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .social-request-columns {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .social-switch-pill {
    min-height: 36px;
    padding-inline: 11px;
  }

  .social-user-side {
    flex-wrap: wrap;
  }

  .social-profile-link,
  .social-user-side form,
  .social-user-side .social-button {
    flex: 1 1 auto;
  }
}


/* Social overview refinement: cards drive the page */
.social-selector-card {
  position: relative;
  border-color: rgba(219, 228, 239, .76);
}

.social-selector-card.is-active {
  border-color: rgba(35, 116, 171, .42);
  background: #f7fbff;
  box-shadow: inset 3px 0 0 var(--portal-blue), 0 12px 26px rgba(35, 116, 171, .09);
}

.social-selector-card[href$="#community-activity"] {
  scroll-margin-top: 16px;
}

#community-activity {
  scroll-margin-top: 96px;
}

.social-management-heading {
  align-items: start;
  gap: 12px;
}

.social-heading-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.social-panel-control {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: 1px solid rgba(219, 228, 239, .8);
  border-radius: 999px;
  padding: 3px;
  background: #fbfdff;
}

.social-panel-control a {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 0 9px;
  color: var(--portal-muted);
  font-size: .78rem;
  font-weight: 620;
  white-space: nowrap;
}

.social-panel-control a.is-active {
  background: #eaf4fb;
  color: var(--portal-blue);
}

.social-inline-filter {
  margin-bottom: 2px;
}

.social-community-section {
  display: grid;
  gap: 12px;
  scroll-margin-top: 18px;
}

.social-community-heading {
  margin-top: 2px;
}

.social-community-actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-width: thin;
}

.social-community-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
}

.social-community-card {
  min-width: 0;
  display: grid;
  gap: 5px;
  border: 1px solid rgba(219, 228, 239, .76);
  border-radius: 12px;
  padding: 12px;
  background: #fff;
  color: var(--portal-ink);
  box-shadow: 0 10px 22px rgba(29, 48, 78, .045);
}

.social-community-card > span,
.social-community-card > small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.social-community-card > span {
  color: var(--portal-muted);
  font-size: .78rem;
  font-weight: 650;
}

.social-community-card strong {
  color: var(--portal-ink);
  font-size: 1.05rem;
  line-height: 1.15;
}

.social-community-card > small {
  color: var(--portal-muted);
  font-size: .78rem;
}

.social-community-card.is-active {
  border-color: rgba(35, 116, 171, .42);
  background: #f7fbff;
  box-shadow: inset 3px 0 0 var(--portal-blue), 0 12px 26px rgba(35, 116, 171, .09);
}


.social-community-section .social-overview-previews {
  grid-template-columns: minmax(0, 1.1fr) minmax(230px, .8fr) minmax(220px, .7fr);
}

.social-soft-cta {
  width: fit-content;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(219, 228, 239, .9);
  border-radius: 999px;
  padding: 0 12px;
  background: #fff;
  color: var(--portal-blue);
  font-size: .84rem;
  font-weight: 620;
}

@media (max-width: 1120px) {
  .social-community-section .social-overview-previews {
    grid-template-columns: 1fr 1fr;
  }

  .social-community-section .social-overview-previews > article:first-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  .social-management-heading {
    display: grid;
  }

  .social-heading-actions {
    justify-content: flex-start;
  }

  .social-panel-control {
    max-width: 100%;
    overflow-x: auto;
  }

  .social-community-section .social-overview-previews {
    grid-template-columns: 1fr;
  }

  .social-community-section .social-overview-previews > article:first-child {
    grid-column: auto;
  }
}


/* Social final polish */
html {
  scroll-behavior: smooth;
}

.public-profile-page .back-link {
  width: fit-content;
  margin-top: 0;
}

.public-profile-hero {
  display: flex;
  align-items: center;
  gap: 16px;
}

.public-profile-avatar {
  width: 74px;
  height: 74px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  overflow: hidden;
  border: 2px solid color-mix(in srgb, var(--avatar-accent, #2F80ED) 28%, #ffffff);
  border-radius: 24px;
  background: color-mix(in srgb, var(--avatar-accent, #2F80ED) 12%, #ffffff);
  color: var(--avatar-accent, #2F80ED);
  font-size: 1.35rem;
  font-weight: 720;
}

.public-profile-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.public-profile-hero h2 {
  margin: 0;
  font-size: clamp(1.35rem, 3vw, 1.8rem);
}

.public-profile-actions {
  justify-content: flex-start;
  margin-top: 10px;
}

.public-profile-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 16px;
}

.public-profile-wide {
  grid-column: 1 / -1;
}

.public-profile-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}

.public-profile-stats div,
.public-profile-territory {
  min-width: 0;
  border: 1px solid rgba(219, 228, 239, .74);
  border-radius: 12px;
  padding: 10px;
  background: #fbfdff;
}

.public-profile-stats dt {
  color: var(--portal-muted);
  font-size: .74rem;
  font-weight: 620;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.public-profile-stats dd {
  margin: 4px 0 0;
  color: var(--portal-ink);
  font-size: 1rem;
  font-weight: 680;
}

.public-profile-territories {
  display: grid;
  gap: 9px;
}

.public-profile-territory {
  display: grid;
  gap: 3px;
}

.public-profile-territory strong,
.public-profile-territory span,
.public-profile-territory em {
  overflow-wrap: anywhere;
}

.public-profile-territory span {
  color: var(--portal-muted);
  font-size: .82rem;
}

.public-profile-territory em {
  color: var(--portal-green);
  font-size: .84rem;
  font-style: normal;
  font-weight: 650;
}

@media (max-width: 760px) {
  .public-profile-hero {
    align-items: flex-start;
  }

  .public-profile-grid,
  .public-profile-stats {
    grid-template-columns: 1fr;
  }
}


/* Community activity compact selector panel */
.social-community-control {
  justify-self: end;
}

.social-community-panel {
  min-height: 160px;
}

.social-community-body {
  display: grid;
  gap: 12px;
  min-height: 72px;
}

.social-community-copy {
  margin: 0;
  line-height: 1.45;
}

.social-community-copy + .social-community-copy {
  margin-top: -6px;
}

.social-event-type {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  border: 1px solid rgba(35, 116, 171, .16);
  border-radius: 999px;
  padding: 2px 7px;
  background: #f4f9fd;
  color: var(--portal-blue);
  font-size: .72rem;
  font-weight: 680;
  line-height: 1;
}

.social-feed-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(132px, auto);
  align-items: start;
  gap: 11px 14px;
  padding: 10px 11px;
  border: 1px solid rgba(219, 228, 239, .74);
  border-radius: 12px;
  background: #fff;
}

.social-feed-content {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.social-feed-title {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  flex-wrap: wrap;
}

.social-feed-title strong {
  color: var(--portal-ink);
  font-size: .93rem;
  font-weight: 650;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.social-feed-content small,
.social-feed-content p {
  margin: 0;
  color: var(--portal-muted);
  font-size: .8rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.social-feed-side {
  display: grid;
  justify-items: end;
  gap: 5px;
  color: var(--portal-muted);
  font-size: .78rem;
  text-align: right;
  white-space: nowrap;
}

.social-feed-side time {
  color: var(--portal-muted);
}

.social-feed-side em {
  color: var(--portal-green);
  font-size: .8rem;
  font-style: normal;
  font-weight: 680;
}

.social-feed-side a {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(219, 228, 239, .9);
  border-radius: 999px;
  padding: 0 10px;
  background: #fff;
  color: var(--portal-blue);
  font-size: .78rem;
  font-weight: 650;
}

@media (max-width: 680px) {
  .social-feed-row {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .social-feed-side {
    grid-column: 2;
    justify-items: start;
    grid-auto-flow: column;
    justify-content: start;
    align-items: center;
    gap: 8px;
    text-align: left;
    white-space: normal;
  }
}


.social-community-body .social-list,
.social-community-body .social-leaderboard-preview-list {
  min-height: 44px;
}


.social-community-panel .social-leaderboard-preview-list span {
  min-height: 34px;
  padding-block: 7px;
}

.social-community-section .social-overview-previews {
  display: block;
  grid-template-columns: none;
}

@media (max-width: 760px) {
  .social-community-heading {
    display: grid;
    gap: 10px;
  }

  .social-community-control {
    justify-self: start;
    max-width: 100%;
    overflow-x: auto;
  }

  .social-community-card-grid {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
    overflow-x: auto;
    padding-bottom: 2px;
  }
}

.wallet-page {
  display: grid;
  gap: 16px;
}

.wallet-summary-grid {
  margin-bottom: 0;
}

.wallet-action-panel,
.wallet-panel {
  display: grid;
  gap: 14px;
}

.wallet-action-panel {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.wallet-action-panel h2,
.wallet-help-grid h2 {
  margin: 0;
  font-size: 1.16rem;
}

.wallet-action-panel p:not(.portal-eyebrow),
.wallet-help-grid p:not(.portal-eyebrow) {
  margin: 8px 0 0;
  color: var(--portal-muted);
  line-height: 1.5;
}

.wallet-button,
.wallet-row-button {
  border: 0;
  border-radius: 12px;
  background: var(--portal-blue);
  color: #fff;
  cursor: pointer;
  font-weight: 900;
}

.wallet-button {
  min-height: 40px;
  padding: 0 14px;
}

.wallet-button:disabled {
  opacity: .55;
  cursor: not-allowed;
}

.wallet-row-button {
  min-height: 34px;
  padding: 0 11px;
  font-size: .82rem;
}

.wallet-message {
  padding: 12px 14px;
  border: 1px solid rgba(219, 228, 239, .9);
  border-radius: 14px;
  background: #fff;
  color: var(--portal-muted);
  font-weight: 850;
}

.wallet-message.success {
  border-color: rgba(31, 157, 115, .28);
  background: #eefaf5;
  color: #17795a;
}

.wallet-table-wrap {
  overflow-x: auto;
}

.wallet-table {
  width: 100%;
  min-width: 920px;
  border-collapse: separate;
  border-spacing: 0 10px;
}

.wallet-table th {
  padding: 0 10px 2px;
  color: var(--portal-muted);
  font-size: .72rem;
  font-weight: 900;
  text-align: left;
  text-transform: uppercase;
}

.wallet-table td {
  padding: 12px 10px;
  border-top: 1px solid rgba(219, 228, 239, .92);
  border-bottom: 1px solid rgba(219, 228, 239, .92);
  background: #fff;
  font-weight: 820;
  vertical-align: middle;
}

.wallet-table td:first-child {
  border-left: 1px solid rgba(219, 228, 239, .92);
  border-radius: 12px 0 0 12px;
}

.wallet-table td:last-child {
  border-right: 1px solid rgba(219, 228, 239, .92);
  border-radius: 0 12px 12px 0;
}

.wallet-table strong,
.wallet-table small {
  display: block;
}

.wallet-table a {
  color: var(--portal-blue);
}

.wallet-table small {
  margin-top: 4px;
  color: var(--portal-muted);
  font-size: .78rem;
}

.wallet-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  border-radius: 999px;
  padding: 0 9px;
  background: #f1f5f9;
  color: #526176;
  font-size: .76rem;
  font-weight: 900;
  white-space: nowrap;
}

.wallet-status.available { background: #eefaf5; color: #17795a; }
.wallet-status.review { background: #fff6df; color: #966716; }
.wallet-status.approved { background: #eaf4fb; color: var(--portal-blue); }
.wallet-status.paid { background: #eaf7ef; color: var(--portal-green); }
.wallet-status.rejected { background: #fff0ed; color: #a23d32; }
.wallet-status.cancelled { background: #f1f5f9; color: #68778b; }
.wallet-status.void { background: #f1f5f9; color: #68778b; }

.wallet-inline-state {
  color: var(--portal-muted);
  font-size: .82rem;
  font-weight: 900;
}

.wallet-card-list {
  display: none;
}

.wallet-bulk-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 4px;
}

.wallet-bulk-footer span {
  color: var(--portal-muted);
  font-weight: 850;
}

.wallet-request-list {
  display: grid;
  gap: 9px;
}

.wallet-request-row {
  display: grid;
  grid-template-columns: minmax(120px, auto) minmax(90px, 1fr) minmax(120px, auto) minmax(80px, auto);
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid rgba(219, 228, 239, .92);
  border-radius: 13px;
  background: #fff;
}

.wallet-request-row.is-selected {
  border-color: rgba(35, 116, 171, .35);
  background: #f7fbff;
}

.wallet-request-row strong {
  color: var(--portal-ink);
}

.wallet-request-row small,
.wallet-request-row em {
  color: var(--portal-muted);
  font-style: normal;
  font-weight: 850;
}

.wallet-request-detail {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(219, 228, 239, .92);
  border-radius: 14px;
  background: #f8fbff;
}

.wallet-detail-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}

.wallet-detail-list div {
  display: grid;
  gap: 4px;
  padding: 10px;
  border: 1px solid rgba(219, 228, 239, .9);
  border-radius: 12px;
  background: #fff;
}

.wallet-detail-list dt {
  color: var(--portal-muted);
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.wallet-detail-list dd {
  margin: 0;
  font-weight: 900;
}

.wallet-public-note {
  margin: 0;
  color: var(--portal-muted);
  line-height: 1.5;
}

.wallet-request-items {
  display: grid;
  gap: 8px;
}

.wallet-request-items > span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 11px;
  background: #fff;
  color: var(--portal-muted);
  font-weight: 820;
}

.wallet-request-items > span > span {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.wallet-request-items small {
  color: var(--portal-muted);
  font-size: .7rem;
  font-weight: 820;
}

.wallet-request-items > span > strong {
  color: var(--portal-ink);
  white-space: nowrap;
}

.wallet-request-items > span > span strong {
  color: var(--portal-ink);
  white-space: normal;
}

.wallet-help-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

@media (max-width: 820px) {
  .wallet-action-panel {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .wallet-action-panel .wallet-button,
  .wallet-filter-form button,
  .wallet-filter-form a {
    width: 100%;
  }

  .wallet-table-wrap {
    display: none;
  }

  .wallet-card-list {
    display: grid;
    gap: 10px;
  }

  .wallet-entry-card {
    display: grid;
    gap: 10px;
    padding: 12px;
    border: 1px solid rgba(219, 228, 239, .92);
    border-radius: 14px;
    background: #fff;
  }

  .wallet-entry-card strong,
  .wallet-entry-card small {
    display: block;
  }

  .wallet-entry-card strong a {
    color: var(--portal-blue);
  }

  .wallet-entry-card small,
  .wallet-card-check,
  .wallet-entry-card-actions span {
    color: var(--portal-muted);
    font-size: .82rem;
    font-weight: 850;
  }

  .wallet-entry-card-side,
  .wallet-entry-card-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
  }

  .wallet-detail-list,
  .wallet-help-grid {
    grid-template-columns: 1fr;
  }

  .wallet-request-row {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 480px) {
  .wallet-request-row,
  .wallet-entry-card-side,
  .wallet-entry-card-actions,
  .wallet-bulk-footer,
  .wallet-request-items > span {
    align-items: flex-start;
    flex-direction: column;
  }

  .wallet-request-row {
    display: flex;
  }
}


.profile-page {
  display: grid;
  gap: 16px;
}

.profile-summary-card,
.profile-form-card,
.profile-panel-card {
  padding: 18px;
}

.profile-summary-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.profile-summary-avatar {
  width: 88px;
  height: 88px;
  display: inline-grid;
  place-items: center;
  overflow: hidden;
  border-radius: 50%;
  background: var(--avatar-accent, var(--portal-blue));
  color: #fff;
  font-size: 1.75rem;
  font-weight: 900;
  box-shadow: 0 14px 28px rgba(35, 116, 171, .18);
}

.profile-summary-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profile-summary-card h2,
.profile-form-card h2,
.profile-panel-card h2 {
  margin: 0;
  font-size: 1.25rem;
  letter-spacing: 0;
}

.profile-bio {
  max-width: 760px;
  margin: 10px 0 0;
  color: #3f4d62;
  line-height: 1.55;
}

.profile-meta-row,
.profile-actions,
.profile-form-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
}

.profile-meta-row {
  margin-top: 12px;
}

.profile-meta-row span,
.profile-chip-list span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 9px;
  border: 1px solid rgba(219, 228, 239, .82);
  border-radius: 999px;
  background: #f8fbff;
  color: var(--portal-muted);
  font-size: .78rem;
  font-weight: 760;
}

.profile-actions {
  margin-top: 14px;
}

.profile-stat-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0 0;
}

.profile-stat-strip div,
.profile-detail-list div {
  padding: 11px;
  border: 1px solid rgba(219, 228, 239, .78);
  border-radius: 12px;
  background: var(--portal-panel-soft);
}

.profile-stat-strip dt,
.profile-detail-list dt {
  color: var(--portal-muted);
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.profile-stat-strip dd,
.profile-detail-list dd {
  margin: 4px 0 0;
  color: var(--portal-ink);
  font-weight: 900;
  overflow-wrap: anywhere;
}

.profile-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .85fr);
  gap: 16px;
  align-items: start;
}

.profile-primary-column,
.profile-side-column {
  display: grid;
  gap: 16px;
}

.profile-settings-form {
  display: grid;
  gap: 14px;
  margin-top: 16px;
}

.profile-settings-form.compact {
  gap: 10px;
}

.profile-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.profile-settings-form label {
  display: grid;
  gap: 7px;
  color: #36445a;
  font-size: .84rem;
  font-weight: 820;
}

.profile-settings-form input,
.profile-settings-form textarea,
.profile-settings-form select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  padding: 10px 12px;
  color: var(--portal-ink);
  background: #fff;
  outline: none;
}

.profile-settings-form textarea {
  min-height: 116px;
  resize: vertical;
  line-height: 1.45;
}

.profile-settings-form input[readonly] {
  background: #f4f7fb;
  color: var(--portal-muted);
}

.profile-settings-form input:focus,
.profile-settings-form textarea:focus,
.profile-settings-form select:focus {
  border-color: var(--portal-blue);
  box-shadow: 0 0 0 4px rgba(35, 116, 171, .12);
}

.profile-wide-field {
  grid-column: 1 / -1;
}

.profile-check-row {
  display: flex !important;
  grid-template-columns: none;
  align-items: center;
  gap: 9px !important;
}

.profile-check-row input {
  width: 18px;
  min-height: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.profile-info-list {
  display: grid;
  gap: 9px;
  margin-top: 12px;
}

.profile-info-list p,
.profile-panel-card > .muted-copy {
  margin: 0;
  color: var(--portal-muted);
  line-height: 1.45;
}

.profile-detail-list {
  display: grid;
  gap: 10px;
  margin: 14px 0;
}

.profile-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.profile-chip-list strong {
  margin-left: 6px;
  color: var(--portal-blue);
}

.profile-wallet-link {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 4px 12px;
  align-items: center;
  padding: 16px;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.profile-wallet-link:hover,
.profile-wallet-link:focus-visible {
  border-color: rgba(35, 116, 171, .3);
  box-shadow: 0 18px 38px rgba(35, 116, 171, .12);
  transform: translateY(-1px);
}

.profile-wallet-link .stat-icon {
  grid-row: span 2;
}

.profile-wallet-link strong {
  font-size: .98rem;
}

.profile-wallet-link small {
  color: var(--portal-muted);
  line-height: 1.35;
}

@media (max-width: 980px) {
  .profile-content-grid,
  .profile-stat-strip {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .profile-summary-main,
  .profile-form-grid {
    grid-template-columns: 1fr;
  }

  .profile-summary-avatar {
    width: 72px;
    height: 72px;
    font-size: 1.4rem;
  }
}


/* Final authenticated portal visual system polish */
body.user-portal {
  overflow-x: hidden;
  background:
    radial-gradient(circle at 8% 3%, rgba(51, 199, 160, .18), transparent 30rem),
    radial-gradient(circle at 82% 0%, rgba(47, 128, 237, .14), transparent 34rem),
    linear-gradient(180deg, #f4fbf8 0%, #f6f9fd 42%, #eef5f7 100%);
}

body.user-portal::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(35, 116, 171, .045) 1px, transparent 1px),
    linear-gradient(0deg, rgba(31, 157, 115, .035) 1px, transparent 1px);
  background-size: 88px 88px;
  -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.72), transparent 72%);
  mask-image: linear-gradient(180deg, rgba(0,0,0,.72), transparent 72%);
}

body.user-portal .portal-app-shell {
  min-height: 100vh;
}

body.user-portal .portal-main {
  width: min(100%, 1320px);
  padding: 24px clamp(18px, 3vw, 34px) 34px;
}

body.user-portal .portal-sidebar {
  padding: 24px 16px;
  border-right: 1px solid rgba(207, 218, 231, .68);
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,252,255,.91)),
    radial-gradient(circle at 22% 8%, rgba(51, 199, 160, .12), transparent 15rem);
  box-shadow: 12px 0 34px rgba(29, 48, 78, .045);
}

body.user-portal .portal-sidebar nav::before {
  content: "Conquest hub";
  display: block;
  margin: 2px 8px 8px;
  color: #7d8ca0;
  font-size: .68rem;
  font-weight: 720;
  letter-spacing: .12em;
  text-transform: uppercase;
}

body.user-portal .portal-sidebar nav::after {
  content: "Movement builds territory. Territory builds rewards.";
  display: block;
  margin: 18px 4px 0;
  padding: 12px;
  border: 1px solid rgba(51, 199, 160, .18);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(234, 250, 246, .92), rgba(246, 250, 255, .94));
  color: #496174;
  font-size: .78rem;
  font-weight: 560;
  line-height: 1.35;
}

body.user-portal .portal-nav-link,
body.user-portal .mobile-nav .portal-nav-link {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid transparent;
  border-radius: 14px;
  color: #526176;
  transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease;
}

body.user-portal .portal-nav-link:hover,
body.user-portal .portal-nav-link:focus-visible {
  border-color: rgba(35, 116, 171, .16);
  background: rgba(255,255,255,.82);
  color: #12334f;
  outline: none;
  transform: translateX(2px);
}

body.user-portal .portal-nav-link.is-active {
  border-color: rgba(47, 128, 237, .18);
  background: linear-gradient(135deg, #eaf4ff, #edf9f4);
  color: #12334f;
  box-shadow: 0 10px 22px rgba(35, 116, 171, .08);
}

.portal-nav-icon {
  width: 28px;
  height: 28px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 10px;
  background: rgba(35, 116, 171, .08);
  color: var(--portal-blue);
}

.portal-nav-icon svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.user-portal .portal-topbar {
  align-items: stretch;
  margin-bottom: 18px;
}

.portal-section-hero {
  min-height: 142px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(150px, 240px);
  align-items: center;
  gap: 18px;
  padding: 22px;
  overflow: hidden;
  position: relative;
  border: 1px solid rgba(207, 218, 231, .68);
  border-radius: 20px;
  background:
    radial-gradient(circle at 88% 18%, rgba(47, 128, 237, .12), transparent 14rem),
    radial-gradient(circle at 72% 86%, rgba(51, 199, 160, .13), transparent 14rem),
    linear-gradient(135deg, rgba(255,255,255,.97), rgba(247, 251, 255, .91));
  box-shadow: 0 16px 38px rgba(29, 48, 78, .07);
}

.portal-section-copy {
  min-width: 0;
  position: relative;
  z-index: 1;
}

body.user-portal .portal-section-title h1 {
  font-size: clamp(1.85rem, 3.6vw, 2.7rem);
  font-weight: 760;
}

body.user-portal .portal-section-title p:not(.portal-eyebrow) {
  max-width: 620px;
  color: #5f6f83;
  font-size: .98rem;
}

.portal-section-visual {
  min-height: 104px;
  align-self: stretch;
  position: relative;
  border-radius: 18px;
  background:
    var(--section-hero-image) center / contain no-repeat,
    linear-gradient(135deg, rgba(35, 116, 171, .1), rgba(51, 199, 160, .12));
  box-shadow: inset 0 0 0 1px rgba(35, 116, 171, .08);
}

.portal-section-visual::before {
  content: "";
  position: absolute;
  inset: 14px 18px;
  border-radius: 44% 56% 50% 50%;
  background: linear-gradient(135deg, rgba(47, 128, 237, .18), rgba(51, 199, 160, .16));
  transform: rotate(-8deg);
}

.portal-section-visual span,
.portal-section-visual i {
  position: absolute;
  display: block;
  border-radius: 999px;
}

.portal-section-visual span {
  left: 22%;
  top: 30%;
  width: 42%;
  height: 12px;
  background: rgba(35, 116, 171, .42);
  transform: rotate(-16deg);
}

.portal-section-visual i {
  right: 18%;
  bottom: 22%;
  width: 28px;
  height: 28px;
  background: #fff;
  box-shadow: 0 10px 20px rgba(29, 48, 78, .12);
}

body.user-portal .portal-card,
body.user-portal .stat-card,
body.user-portal .activity-feed-card,
body.user-portal .activity-empty-state,
body.user-portal .territory-controls,
body.user-portal .territory-explorer-shell {
  border-color: rgba(207, 218, 231, .66);
  border-radius: 18px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 14px 34px rgba(29, 48, 78, .06);
}

body.user-portal a.stat-card,
body.user-portal .overview-tile,
body.user-portal .activity-feed-card,
body.user-portal .social-user-card,
body.user-portal .social-activity-row,
body.user-portal .wallet-request-row,
body.user-portal .profile-wallet-link {
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}

body.user-portal a.stat-card:hover,
body.user-portal a.stat-card:focus-visible,
body.user-portal .overview-tile:hover,
body.user-portal .social-user-card:hover,
body.user-portal .social-activity-row:hover,
body.user-portal .wallet-request-row:hover,
body.user-portal .profile-wallet-link:hover {
  border-color: rgba(47, 128, 237, .22);
  box-shadow: 0 18px 42px rgba(35, 116, 171, .1);
  transform: translateY(-2px);
}

body.user-portal .stat-card {
  background:
    radial-gradient(circle at 92% 8%, rgba(51, 199, 160, .1), transparent 6rem),
    linear-gradient(180deg, #fff, #f8fbff);
}

body.user-portal .stat-icon,
body.user-portal .activity-sport-chip,
body.user-portal .fitness-orbit,
body.user-portal .profile-wallet-link .stat-icon {
  border: 1px solid rgba(47, 128, 237, .14);
  background: linear-gradient(145deg, #f8fcff, #e9f5ff);
  color: #2f80ed;
}

body.user-portal .card-heading {
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(219, 228, 239, .58);
}

body.user-portal .card-heading a,
body.user-portal .overview-tile a,
body.user-portal .back-link,
body.user-portal .map-status-action,
body.user-portal .social-soft-cta,
body.user-portal .social-profile-link,
body.user-portal .activity-tab,
body.user-portal .activity-action,
body.user-portal .activity-pagination a,
body.user-portal .activity-pagination span,
body.user-portal .social-button,
body.user-portal .social-search-form a,
body.user-portal .wallet-button,
body.user-portal .wallet-row-button,
body.user-portal .profile-cluster form button,
body.user-portal .territory-search-area,
body.user-portal .territory-detail-actions button,
body.user-portal .territory-progress-table button,
body.user-portal .territory-progress-card button,
body.user-portal .activity-filter-form button,
body.user-portal .activity-comment-form button,
body.user-portal .activity-modal-header button,
body.user-portal .activity-modal-action button {
  border-radius: 999px;
  letter-spacing: 0;
  transition: background .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}

body.user-portal .social-button,
body.user-portal .wallet-button,
body.user-portal .activity-filter-form button,
body.user-portal .activity-comment-form button,
body.user-portal .territory-search-area,
body.user-portal .territory-detail-actions button,
body.user-portal .territory-progress-table button,
body.user-portal .territory-progress-card button {
  border: 1px solid rgba(35, 116, 171, .22);
  background: linear-gradient(135deg, #2374ab, #2f80ed);
  box-shadow: 0 9px 18px rgba(35, 116, 171, .16);
}

body.user-portal .social-button.secondary,
body.user-portal .social-search-form a,
body.user-portal .profile-cluster form button,
body.user-portal .activity-filter-form a,
body.user-portal .activity-action,
body.user-portal .activity-pagination a,
body.user-portal .activity-pagination span,
body.user-portal .activity-modal-header button {
  border-color: rgba(207, 218, 231, .82);
  background: rgba(255,255,255,.86);
  color: #415169;
  box-shadow: none;
}

body.user-portal button:hover,
body.user-portal .social-button:hover,
body.user-portal .wallet-button:hover,
body.user-portal .activity-filter-form a:hover,
body.user-portal .activity-action:hover,
body.user-portal .activity-pagination a:hover,
body.user-portal .card-heading a:hover,
body.user-portal .overview-tile a:hover,
body.user-portal .social-profile-link:hover {
  transform: translateY(-1px);
}

body.user-portal input,
body.user-portal select,
body.user-portal textarea {
  border-color: rgba(207, 218, 231, .9);
  background: rgba(255,255,255,.94);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}

body.user-portal input:focus,
body.user-portal select:focus,
body.user-portal textarea:focus {
  border-color: rgba(47, 128, 237, .58);
  box-shadow: 0 0 0 4px rgba(47, 128, 237, .12);
  outline: none;
}

body.user-portal .empty-state,
body.user-portal .activity-empty-state,
body.user-portal .social-empty,
body.user-portal .territory-map-empty {
  position: relative;
  border-color: rgba(47, 128, 237, .2);
  background:
    radial-gradient(circle at 22px 22px, rgba(51, 199, 160, .14), transparent 34px),
    linear-gradient(135deg, rgba(255,255,255,.94), rgba(247,251,255,.92));
  color: #5f6f83;
}

body.user-portal .empty-state::before,
body.user-portal .activity-empty-state::before {
  content: "";
  width: 32px;
  height: 32px;
  display: block;
  margin-bottom: 10px;
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(47,128,237,.16), rgba(51,199,160,.16)),
    url(/assets/web/user-portal/icons/empty-state.svg) center / 18px 18px no-repeat;
}

body.user-portal .stat-badge,
body.user-portal .activity-badge,
body.user-portal .activity-badges span,
body.user-portal .wallet-status,
body.user-portal .social-state-pill,
body.user-portal .territory-detail-meta span,
body.user-portal .territory-progress-card span {
  border: 1px solid rgba(255,255,255,.72);
  box-shadow: inset 0 0 0 1px rgba(29, 48, 78, .035);
}

body.user-portal .ranking-table,
body.user-portal .territory-progress-table,
body.user-portal .wallet-table {
  border-spacing: 0 8px;
}

body.user-portal .ranking-table tr,
body.user-portal .territory-progress-table tr,
body.user-portal .wallet-table tbody tr {
  box-shadow: 0 8px 18px rgba(29, 48, 78, .035);
}

body.user-portal .ranking-table td,
body.user-portal .territory-progress-table td,
body.user-portal .wallet-table td {
  background: rgba(255,255,255,.96);
}

body.user-portal .territory-progress-table th,
body.user-portal .wallet-table th {
  color: #7d8ca0;
  font-size: .72rem;
  letter-spacing: .08em;
}

body.user-portal .notification-dropdown {
  border-color: rgba(207, 218, 231, .74);
  background: rgba(255,255,255,.98);
  box-shadow: 0 24px 60px rgba(29, 48, 78, .18);
}

body.user-portal .notification-dropdown li:hover {
  border-color: rgba(47, 128, 237, .18);
  background: #f8fcff;
}

@media (max-width: 980px) {
  body.user-portal .portal-main {
    width: 100%;
    padding: 18px;
  }

  body.user-portal .portal-topbar {
    align-items: center;
  }

  .portal-section-hero {
    grid-template-columns: minmax(0, 1fr) 132px;
    min-height: 126px;
    padding: 18px;
  }

  .portal-section-visual {
    min-height: 88px;
  }

  body.user-portal .mobile-nav {
    border-color: rgba(207, 218, 231, .72);
    background: rgba(255,255,255,.94);
    box-shadow: 0 12px 28px rgba(29, 48, 78, .06);
  }
}

@media (max-width: 680px) {
  body.user-portal .portal-topbar {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
  }

  body.user-portal .profile-cluster {
    grid-column: 1 / -1;
    justify-content: space-between;
  }

  .portal-section-hero {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 16px;
    border-radius: 18px;
  }

  .portal-section-visual {
    display: none;
  }

  body.user-portal .portal-section-title h1 {
    font-size: clamp(1.7rem, 8vw, 2.15rem);
  }

  body.user-portal .stats-grid,
  body.user-portal .overview-grid,
  body.user-portal .wallet-summary-grid {
    grid-template-columns: 1fr;
  }
}


/* Second authenticated portal polish: integrated hero controls and dashboard modules */
body.user-portal .portal-topbar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: stretch;
  gap: 14px;
}

body.user-portal .portal-topbar .drawer-toggle {
  align-self: start;
  margin-top: 10px;
}

body.user-portal .portal-section-hero {
  grid-template-columns: minmax(0, 1fr) minmax(112px, 190px) auto;
  width: 100%;
  min-height: 154px;
  padding: 22px;
  isolation: isolate;
}

body.user-portal .portal-section-hero::after {
  content: "";
  position: absolute;
  right: 20px;
  top: 18px;
  bottom: 18px;
  width: min(420px, 44%);
  z-index: -1;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(255,255,255,.44), rgba(255,255,255,.12));
}

.portal-section-actions {
  min-width: 0;
  align-self: stretch;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  position: relative;
  z-index: 3;
}

.portal-section-actions .profile-cluster {
  min-width: max-content;
  padding: 8px;
  border: 1px solid rgba(207, 218, 231, .62);
  border-radius: 999px;
  background: rgba(255,255,255,.76);
  box-shadow: 0 12px 28px rgba(29, 48, 78, .075);
  backdrop-filter: blur(14px);
}

.portal-section-actions .profile-cluster .avatar {
  width: 40px;
  height: 40px;
  border: 2px solid rgba(255,255,255,.92);
  box-shadow: 0 8px 18px rgba(29, 48, 78, .12);
}

.portal-section-actions .profile-cluster form button {
  min-height: 38px;
  padding-inline: 14px;
  color: #526176;
  background: rgba(255,255,255,.72);
}

.portal-section-actions .notification-button {
  background: rgba(255,255,255,.7);
}

.portal-nav-icon,
.stat-icon,
.notification-icon {
  position: relative;
  overflow: hidden;
}

.portal-nav-asset,
.stat-icon-asset,
.notification-icon-asset {
  position: absolute;
  inset: 50% auto auto 50%;
  z-index: 2;
  width: 70%;
  height: 70%;
  display: block;
  object-fit: contain;
  transform: translate(-50%, -50%);
}

.portal-nav-asset[hidden],
.stat-icon-asset[hidden],
.notification-icon-asset[hidden] {
  display: none;
}

.portal-nav-asset:not([hidden]) + svg,
.stat-icon-asset:not([hidden]) + svg,
.notification-icon-asset:not([hidden]) + svg {
  opacity: 0;
}

body.user-portal .portal-nav-link {
  position: relative;
}

body.user-portal .portal-nav-link::after {
  content: "";
  position: absolute;
  right: 10px;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: transparent;
}

body.user-portal .portal-nav-link.is-active::after {
  background: var(--portal-green);
  box-shadow: 0 0 0 5px rgba(31, 157, 115, .11);
}

.dashboard-summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.dashboard-summary-grid .stat-card {
  min-height: 184px;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  align-content: stretch;
  gap: 10px;
  padding: 18px;
  overflow: hidden;
  position: relative;
  border-radius: 22px;
  background:
    radial-gradient(circle at 92% 8%, rgba(255,255,255,.84), transparent 7rem),
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(246,251,255,.9));
}

.dashboard-summary-grid .stat-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(circle at 20% 110%, rgba(51, 199, 160, .12), transparent 9rem),
    linear-gradient(135deg, rgba(47, 128, 237, .06), transparent 54%);
  pointer-events: none;
}

.dashboard-summary-grid .stat-card > * {
  position: relative;
  z-index: 1;
}

.stat-card-pattern {
  position: absolute !important;
  right: -18px;
  bottom: -22px;
  z-index: 0 !important;
  width: 156px;
  height: 116px;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 34px;
  background: linear-gradient(135deg, rgba(47,128,237,.08), rgba(51,199,160,.1));
  opacity: .9;
  overflow: hidden;
  text-transform: none !important;
}

.stat-card-pattern img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.stat-card-pattern img[hidden] {
  display: none;
}

.dashboard-summary-grid .stat-card-top {
  align-items: flex-start;
}

.dashboard-summary-grid .stat-icon {
  width: 44px;
  height: 44px;
  border-radius: 15px;
}

.dashboard-summary-grid .stat-label {
  color: #526176;
  font-size: .78rem;
  font-weight: 720;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.user-portal .dashboard-summary-grid .stat-value {
  max-width: 100%;
  color: #102033;
  font-size: clamp(1.9rem, 3vw, 2.45rem);
  font-weight: 760;
  line-height: .96;
  overflow-wrap: anywhere;
}

.dashboard-summary-grid .stat-detail {
  max-width: 82%;
  color: #65758b;
  font-size: .88rem;
  line-height: 1.35;
}

.dashboard-summary-grid .stat-badge {
  align-self: start;
  margin-left: auto;
  background: rgba(255,255,255,.78);
  color: #415169;
}

.dashboard-summary-grid .stat-card-wallet {
  background: linear-gradient(145deg, #fffdf7, #f8fcff);
}

.dashboard-summary-grid .stat-card-wallet::before {
  background: radial-gradient(circle at 20% 110%, rgba(245, 178, 62, .16), transparent 9rem), linear-gradient(135deg, rgba(31,157,115,.07), transparent 54%);
}

.dashboard-summary-grid .stat-card-territories::before {
  background: radial-gradient(circle at 20% 110%, rgba(31,157,115,.16), transparent 9rem), linear-gradient(135deg, rgba(47,128,237,.07), transparent 54%);
}

.dashboard-summary-grid .stat-card-social::before {
  background: radial-gradient(circle at 20% 110%, rgba(232,111,97,.13), transparent 9rem), linear-gradient(135deg, rgba(47,128,237,.06), transparent 54%);
}

.social-stat-module {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.social-stat-module div {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(207, 218, 231, .66);
  border-radius: 14px;
  background: rgba(255,255,255,.68);
}

.social-stat-module strong,
.social-stat-module small {
  display: block;
}

.social-stat-module strong {
  color: #102033;
  font-size: 1.35rem;
  line-height: 1;
}

.social-stat-module small {
  margin-top: 5px;
  color: #65758b;
  font-size: .72rem;
  font-weight: 680;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.social-stat-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.social-stat-footer > small {
  color: #65758b;
  font-size: .8rem;
  font-weight: 620;
  white-space: nowrap;
}

.dashboard-summary-grid .social-avatar-stack {
  margin: 0;
}

@media (max-width: 1180px) {
  .dashboard-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  body.user-portal .portal-section-hero {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .portal-section-visual {
    display: none;
  }

  .portal-section-actions {
    align-items: flex-start;
  }
}

@media (max-width: 680px) {
  body.user-portal .portal-topbar {
    grid-template-columns: 1fr;
  }

  body.user-portal .portal-topbar .drawer-toggle {
    width: 100%;
    margin-top: 0;
  }

  body.user-portal .portal-section-hero {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .portal-section-actions {
    justify-content: stretch;
  }

  .portal-section-actions .profile-cluster {
    width: 100%;
    min-width: 0;
    justify-content: space-between;
    border-radius: 18px;
  }

  .dashboard-summary-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-summary-grid .stat-card {
    min-height: 168px;
  }

  .dashboard-summary-grid .stat-detail {
    max-width: 100%;
  }
}


/* Corrective portal layout polish: global topbar, safe icon fallbacks, softer KPIs */
body.user-portal .portal-app-shell {
  grid-template-columns: 236px minmax(0, 1fr);
}

body.user-portal .portal-sidebar {
  top: 78px;
  height: calc(100vh - 78px);
  padding-top: 18px;
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(14px);
}

body.user-portal .portal-sidebar > .portal-brand {
  display: none;
}

.portal-global-topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 68px;
  margin: -24px clamp(-34px, -3vw, -18px) 22px;
  padding: 12px clamp(18px, 3vw, 34px);
  border-bottom: 1px solid rgba(207, 218, 231, .72);
  background: rgba(247, 251, 255, .86);
  box-shadow: 0 10px 28px rgba(29, 48, 78, .055);
  backdrop-filter: blur(18px);
}

.portal-global-left {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.portal-topbar-brand {
  flex: 0 0 auto;
}

.portal-global-topbar .profile-cluster {
  padding: 6px;
  border: 1px solid rgba(207, 218, 231, .72);
  border-radius: 999px;
  background: rgba(255,255,255,.76);
  box-shadow: 0 10px 24px rgba(29, 48, 78, .07);
}

.portal-global-topbar .notification-button {
  background: transparent;
}

.portal-global-topbar .avatar {
  width: 38px;
  height: 38px;
  border: 2px solid #fff;
  box-shadow: 0 7px 16px rgba(29, 48, 78, .12);
}

.account-name {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 180px;
  color: #344256;
  font-size: .9rem;
  font-weight: 560;
  line-height: 1;
}

.account-name > span {
  color: #7d8ca0;
  font-size: .72rem;
}

.portal-global-topbar .profile-cluster form button {
  min-height: 34px;
  padding-inline: 12px;
  color: #526176;
  background: rgba(255,255,255,.7);
  font-weight: 560;
}

body.user-portal .portal-section-hero {
  grid-template-columns: minmax(0, 1fr) minmax(120px, 220px);
  min-height: 138px;
  margin-bottom: 18px;
}

body.user-portal .portal-section-hero::after {
  z-index: 0;
}

body.user-portal .portal-section-copy,
body.user-portal .portal-section-visual {
  z-index: 1;
}

body.user-portal .portal-section-title h1 {
  font-weight: 650;
  letter-spacing: 0;
}

body.user-portal .portal-section-title p:not(.portal-eyebrow) {
  font-weight: 400;
  line-height: 1.55;
}

body.user-portal .portal-eyebrow,
body.user-portal .stat-label,
body.user-portal .stat-card span:not(.stat-icon):not(.stat-card-pattern):not(.social-mini-avatar),
body.user-portal .activity-filter-form label,
body.user-portal .territory-progress-table th,
body.user-portal .wallet-table th {
  font-weight: 560;
  letter-spacing: .04em;
}

.portal-nav-asset,
.stat-icon-asset,
.notification-icon-asset {
  display: none !important;
}

.portal-nav-icon svg,
.stat-icon svg,
.notification-icon svg {
  opacity: 1 !important;
}

.dashboard-summary-grid .stat-card {
  min-height: 168px;
  gap: 9px;
  border-radius: 18px;
}

.dashboard-summary-grid .stat-card::before {
  opacity: .72;
}

.stat-card-pattern {
  right: -34px;
  bottom: -38px;
  width: 148px;
  height: 148px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 36% 34%, rgba(255,255,255,.72), transparent 24%),
    linear-gradient(135deg, rgba(47,128,237,.08), rgba(51,199,160,.1)),
    var(--dashboard-card-pattern, none) center / cover no-repeat;
}

.stat-card-activities { --dashboard-card-pattern: url(/assets/web/user-portal/patterns/dashboard-card-activities.png); }
.stat-card-wallet { --dashboard-card-pattern: url(/assets/web/user-portal/patterns/dashboard-card-wallet.png); }
.stat-card-territories { --dashboard-card-pattern: url(/assets/web/user-portal/patterns/dashboard-card-territories.png); }
.stat-card-social { --dashboard-card-pattern: url(/assets/web/user-portal/patterns/dashboard-card-social.png); }

body.user-portal .dashboard-summary-grid .stat-value {
  font-size: clamp(1.7rem, 2.4vw, 2.15rem);
  font-weight: 650;
}

.dashboard-summary-grid .stat-detail {
  color: #65758b;
  font-size: .84rem;
  line-height: 1.42;
}

.dashboard-summary-grid .stat-badge {
  font-weight: 560;
}

.social-stat-module div {
  padding: 9px;
  border-radius: 12px;
}

.social-stat-module strong {
  font-size: 1.18rem;
  font-weight: 650;
}

.social-stat-module small,
.social-stat-footer > small {
  font-weight: 500;
}

@media (max-width: 980px) {
  body.user-portal .portal-app-shell {
    grid-template-columns: 1fr;
  }

  .portal-global-topbar {
    margin: -18px -18px 18px;
  }

  body.user-portal .portal-sidebar {
    display: none;
  }

  body.user-portal .portal-section-hero {
    grid-template-columns: minmax(0, 1fr) 128px;
  }
}

@media (max-width: 680px) {
  .portal-global-topbar {
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
    margin: -14px -14px 16px;
  }

  .portal-global-left,
  .portal-global-topbar .profile-cluster {
    width: 100%;
    justify-content: space-between;
  }

  .portal-global-topbar .drawer-toggle {
    width: 42px;
  }

  .account-name {
    max-width: min(46vw, 180px);
  }

  body.user-portal .portal-section-hero {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px) {
  .portal-global-topbar .profile-cluster {
    border-radius: 18px;
  }

  .account-name {
    display: none;
  }
}


/* Final mockup-aligned correction: fixed app topbar and clean content hero */
body.user-portal .portal-app-shell {
  grid-template-columns: 248px minmax(0, 1fr);
  padding-top: 72px;
}

body.user-portal .portal-main {
  width: 100%;
  max-width: none;
  padding-top: 24px;
}

.portal-global-topbar {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 80;
  min-height: 72px;
  margin: 0;
  padding: 12px clamp(18px, 2.4vw, 32px);
  border-bottom: 1px solid rgba(207, 218, 231, .78);
  background: rgba(250, 252, 255, .92);
  box-shadow: 0 10px 30px rgba(29, 48, 78, .055);
  backdrop-filter: blur(18px);
}

body.user-portal .portal-sidebar {
  position: sticky;
  top: 72px;
  height: calc(100vh - 72px);
  padding: 20px 16px;
  border-right: 1px solid rgba(207, 218, 231, .7);
  background: rgba(255,255,255,.86);
  box-shadow: 10px 0 26px rgba(29, 48, 78, .035);
}

body.user-portal .portal-sidebar nav {
  margin-top: 0;
}

body.user-portal .portal-nav-link {
  min-height: 44px;
  padding: 9px 12px;
  border-radius: 12px;
  font-weight: 520;
}

body.user-portal .portal-nav-icon {
  width: 27px;
  height: 27px;
  border-radius: 9px;
  background: transparent;
  color: #6d7f94;
}

body.user-portal .portal-nav-link.is-active {
  border-color: rgba(47, 128, 237, .2);
  background: linear-gradient(135deg, #2f80ed, #286fd5);
  color: #fff;
  box-shadow: 0 12px 24px rgba(47, 128, 237, .2);
}

body.user-portal .portal-nav-link.is-active .portal-nav-icon {
  color: #fff;
}

body.user-portal .portal-nav-link::after {
  content: none;
}

.portal-global-topbar .portal-brand {
  font-size: 1rem;
  font-weight: 650;
}

.portal-global-topbar .portal-brand-mark {
  width: 36px;
  height: 36px;
  border-radius: 13px 13px 13px 5px;
}

.portal-global-topbar .profile-cluster {
  gap: 8px;
  padding: 5px;
  border-color: rgba(207, 218, 231, .66);
  background: rgba(255,255,255,.82);
  box-shadow: 0 8px 22px rgba(29, 48, 78, .06);
}

.portal-global-topbar .notification-button {
  width: 38px;
  height: 38px;
}

.portal-global-topbar .avatar {
  width: 36px;
  height: 36px;
}

.account-name {
  max-width: 160px;
  font-size: .88rem;
  font-weight: 520;
}

.portal-global-topbar .profile-cluster form button {
  min-height: 32px;
  padding: 0 11px;
  font-size: .8rem;
  font-weight: 520;
}

body.user-portal .portal-section-hero {
  grid-template-columns: minmax(0, 1fr) minmax(108px, 180px);
  min-height: 122px;
  padding: 18px 20px;
  margin-bottom: 16px;
  border-radius: 16px;
  box-shadow: 0 12px 26px rgba(29, 48, 78, .052);
}

body.user-portal .portal-section-hero .portal-section-actions {
  display: none !important;
}

body.user-portal .portal-section-title h1 {
  font-size: clamp(1.62rem, 2.6vw, 2.2rem);
  font-weight: 620;
}

body.user-portal .portal-section-title p:not(.portal-eyebrow) {
  max-width: 680px;
  font-size: .94rem;
}

.dashboard-summary-grid {
  gap: 14px;
}

.dashboard-summary-grid .stat-card {
  min-height: 132px;
  padding: 15px;
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(29, 48, 78, .055);
}

.dashboard-summary-grid .stat-icon {
  width: 38px;
  height: 38px;
  border-radius: 12px;
}

body.user-portal .dashboard-summary-grid .stat-value {
  font-size: clamp(1.48rem, 2.1vw, 1.9rem);
  font-weight: 620;
}

.dashboard-summary-grid .stat-label {
  font-size: .78rem;
  font-weight: 520;
  letter-spacing: 0;
  text-transform: none;
}

.dashboard-summary-grid .stat-detail {
  max-width: 100%;
  font-size: .82rem;
}

.stat-card-pattern {
  right: -44px;
  bottom: -54px;
  width: 128px;
  height: 128px;
  opacity: .58;
}

.social-stat-module {
  gap: 7px;
}

.social-stat-module div {
  padding: 8px;
}

.social-stat-footer > small {
  display: none;
}

@media (max-width: 980px) {
  body.user-portal .portal-app-shell {
    grid-template-columns: 1fr;
    padding-top: 72px;
  }

  body.user-portal .portal-main {
    padding: 18px;
  }

  .portal-global-topbar {
    min-height: 72px;
  }

  body.user-portal .portal-sidebar {
    display: none;
  }

  body.user-portal .portal-section-hero {
    grid-template-columns: minmax(0, 1fr) 120px;
  }
}

@media (max-width: 680px) {
  body.user-portal .portal-app-shell {
    padding-top: 116px;
  }

  .portal-global-topbar {
    align-items: stretch;
    flex-direction: column;
    min-height: 116px;
    gap: 8px;
  }

  .portal-global-left,
  .portal-global-topbar .profile-cluster {
    width: 100%;
    justify-content: space-between;
  }

  body.user-portal .portal-section-hero {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px) {
  body.user-portal .portal-app-shell {
    padding-top: 110px;
  }

  .portal-global-topbar {
    min-height: 110px;
  }

  .portal-global-topbar .profile-cluster form button {
    padding-inline: 9px;
  }
}


/* Account dropdown and compact KPI refinement */
.portal-global-topbar .profile-cluster {
  position: relative;
  gap: 10px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
}

.profile-divider {
  width: 1px;
  height: 30px;
  background: rgba(129, 151, 178, .28);
}

.account-menu {
  position: relative;
}

.account-trigger {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  max-width: min(52vw, 300px);
  padding: 4px 12px 4px 5px;
  border: 1px solid rgba(199, 215, 232, .78);
  border-radius: 999px;
  color: #344256;
  background: rgba(255,255,255,.88);
  box-shadow: 0 12px 28px rgba(29, 48, 78, .075);
  font: inherit;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}

.account-trigger:hover,
.account-trigger:focus-visible,
.account-menu.is-open .account-trigger {
  border-color: rgba(47,128,237,.28);
  background: #fff;
  box-shadow: 0 16px 34px rgba(29, 48, 78, .1);
  transform: translateY(-1px);
}

.account-trigger:focus-visible {
  outline: 3px solid rgba(47,128,237,.18);
  outline-offset: 2px;
}

.account-trigger .avatar {
  flex: 0 0 auto;
}

.account-trigger .account-name {
  display: block;
  overflow: hidden;
  max-width: 190px;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: #344256;
  font-size: .9rem;
  font-weight: 560;
  letter-spacing: 0;
}

.account-chevron {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  color: #8190a3;
  transition: transform .18s ease;
}

.account-chevron svg {
  width: 14px;
  height: 14px;
  stroke-width: 2.3;
}

.account-menu.is-open .account-chevron {
  transform: rotate(180deg);
}

.account-dropdown {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 100;
  display: none;
  min-width: 190px;
  padding: 8px;
  border: 1px solid rgba(199, 215, 232, .78);
  border-radius: 16px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 24px 50px rgba(29, 48, 78, .14);
  backdrop-filter: blur(16px);
}

.account-menu.is-open .account-dropdown {
  display: grid;
  gap: 4px;
}

.account-dropdown a,
.account-dropdown button {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 38px;
  padding: 9px 11px;
  border: 0;
  border-radius: 11px;
  color: #42536a;
  background: transparent;
  font: inherit;
  font-size: .9rem;
  font-weight: 560;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.account-dropdown a:hover,
.account-dropdown a:focus-visible,
.account-dropdown button:hover,
.account-dropdown button:focus-visible {
  color: #1f6fd1;
  background: rgba(47,128,237,.08);
  outline: none;
}

.account-dropdown form {
  width: 100%;
  margin: 0;
  padding-top: 4px;
  border-top: 1px solid rgba(199, 215, 232, .68);
}

.account-dropdown-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 19px;
  height: 19px;
  color: currentColor;
}

.account-dropdown-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.portal-global-topbar .account-dropdown form button {
  min-height: 38px;
  padding: 9px 11px;
  color: #42536a;
  background: transparent;
  box-shadow: none;
}

.dashboard-summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.dashboard-summary-grid .stat-card {
  min-height: 126px;
  padding: 14px 14px 16px;
  gap: 8px;
  border: 1px solid rgba(199, 215, 232, .72);
  border-radius: 13px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.96), rgba(248,252,255,.92));
  box-shadow: 0 10px 22px rgba(29, 48, 78, .06);
}

.dashboard-summary-grid .stat-card:hover,
.dashboard-summary-grid .stat-card:focus-visible {
  border-color: rgba(47,128,237,.28);
  box-shadow: 0 16px 30px rgba(29, 48, 78, .09);
  transform: translateY(-1px);
}

.dashboard-summary-grid .stat-card::before,
.dashboard-summary-grid .stat-card::after,
.dashboard-summary-grid .stat-card-pattern {
  display: none;
}

.dashboard-summary-grid .stat-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.dashboard-summary-grid .stat-card-title {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}

.dashboard-summary-grid .stat-icon {
  width: 34px;
  height: 34px;
  border-radius: 11px;
  color: #2f80ed;
  background: linear-gradient(145deg, rgba(47,128,237,.12), rgba(49,213,165,.1));
  box-shadow: inset 0 0 0 1px rgba(47,128,237,.16);
}

.dashboard-summary-grid .stat-card-wallet .stat-icon {
  color: #246bd6;
  background: linear-gradient(145deg, rgba(47,128,237,.12), rgba(255,214,109,.14));
}

.dashboard-summary-grid .stat-card-territories .stat-icon {
  color: #1f6fd1;
  background: linear-gradient(145deg, rgba(47,128,237,.12), rgba(136,198,255,.12));
}

.dashboard-summary-grid .stat-card-social .stat-icon {
  color: #268b73;
  background: linear-gradient(145deg, rgba(49,213,165,.16), rgba(47,128,237,.08));
}

.dashboard-summary-grid .stat-label {
  overflow: hidden;
  color: #4d5d73;
  font-size: .82rem;
  font-weight: 620;
  letter-spacing: 0;
  text-overflow: ellipsis;
  text-transform: none;
  white-space: nowrap;
}

.dashboard-summary-grid .stat-badge {
  flex: 0 0 auto;
  max-width: 118px;
  padding: 6px 9px;
  border: 1px solid rgba(49, 213, 165, .18);
  border-radius: 999px;
  color: #287b68;
  background: rgba(49, 213, 165, .09);
  box-shadow: none;
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .dashboard-summary-grid .stat-value {
  margin-top: 4px;
  color: #0e1d2f;
  font-size: clamp(1.45rem, 2vw, 1.82rem);
  font-weight: 640;
  letter-spacing: 0;
  line-height: 1.05;
}

.dashboard-summary-grid .stat-detail {
  margin-top: auto;
  color: #68798f;
  font-size: .82rem;
  line-height: 1.35;
}

.dashboard-summary-grid .social-stat-module {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 2px;
}

.dashboard-summary-grid .social-stat-module div {
  padding: 9px 10px;
  border: 1px solid rgba(199, 215, 232, .72);
  border-radius: 11px;
  background: rgba(255,255,255,.7);
}

.dashboard-summary-grid .social-stat-module strong {
  color: #0e1d2f;
  font-size: 1.15rem;
  font-weight: 650;
  line-height: 1;
}

.dashboard-summary-grid .social-stat-module small {
  margin-top: 4px;
  color: #6b7c92;
  font-size: .67rem;
  font-weight: 650;
  letter-spacing: .06em;
}

.dashboard-summary-grid .social-stat-footer {
  align-items: center;
  margin-top: auto;
}

.dashboard-summary-grid .social-avatar-stack {
  margin-top: 0;
}

.dashboard-summary-grid .social-stat-footer > small {
  display: inline;
  color: #68798f;
  font-size: .8rem;
}

@media (max-width: 1180px) {
  .dashboard-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .portal-global-topbar .profile-cluster {
    justify-content: flex-end;
  }

  .profile-divider {
    height: 28px;
  }

  .account-trigger {
    max-width: calc(100vw - 104px);
  }

  .account-dropdown {
    right: 0;
  }

  .dashboard-summary-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px) {
  .portal-global-topbar .profile-cluster {
    gap: 7px;
    border-radius: 0;
  }

  .account-trigger {
    min-height: 40px;
    padding-right: 9px;
  }

  .account-trigger .account-name {
    max-width: 112px;
    font-size: .82rem;
  }

  .account-chevron {
    width: 12px;
  }
}


/* Dashboard KPI product module redesign */
.dashboard-summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(12px, 1.4vw, 18px);
}

.dashboard-summary-grid .stat-card {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  min-height: 214px;
  padding: 16px 16px 14px;
  overflow: hidden;
  border: 1px solid rgba(199, 215, 232, .76);
  border-radius: 16px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(247,251,255,.94));
  box-shadow: 0 14px 34px rgba(29, 48, 78, .07);
  text-decoration: none;
}

.dashboard-summary-grid .stat-card::before,
.dashboard-summary-grid .stat-card::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.dashboard-summary-grid .stat-card::before {
  left: 16px;
  right: 16px;
  bottom: 70px;
  height: 1px;
  background: rgba(135, 154, 178, .14);
}

.dashboard-summary-grid .stat-card::after {
  inset: auto 0 0 0;
  height: 3px;
  background: var(--stat-accent, #2f80ed);
}

.dashboard-summary-grid .stat-card:hover,
.dashboard-summary-grid .stat-card:focus-visible {
  border-color: color-mix(in srgb, var(--stat-accent, #2f80ed) 28%, rgba(199,215,232,.76));
  box-shadow: 0 20px 42px rgba(29, 48, 78, .1);
  transform: translateY(-2px);
}

.dashboard-summary-grid .stat-card > * {
  position: relative;
  z-index: 1;
}

.dashboard-summary-grid .stat-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.dashboard-summary-grid .stat-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  color: var(--stat-accent, #2f80ed);
  background: color-mix(in srgb, var(--stat-accent, #2f80ed) 10%, #fff);
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb, var(--stat-accent, #2f80ed) 18%, transparent),
    0 10px 20px rgba(29, 48, 78, .06);
}

.dashboard-summary-grid .stat-badge {
  max-width: none;
  padding: 6px 10px;
  border: 1px solid color-mix(in srgb, var(--stat-accent, #2f80ed) 16%, transparent);
  color: color-mix(in srgb, var(--stat-accent, #2f80ed) 76%, #12334f);
  background: color-mix(in srgb, var(--stat-accent, #2f80ed) 9%, #fff);
  font-size: .72rem;
  font-weight: 680;
  line-height: 1;
}

.dashboard-summary-grid .stat-card-main {
  display: grid;
  gap: 2px;
  margin-top: 14px;
}

.dashboard-summary-grid .stat-label {
  color: color-mix(in srgb, var(--stat-accent, #2f80ed) 78%, #223047);
  font-size: .92rem;
  font-weight: 680;
  letter-spacing: 0;
  text-transform: none;
  white-space: normal;
}

body.user-portal .dashboard-summary-grid .stat-value {
  margin: 0;
  color: #0e1d2f;
  font-size: clamp(2rem, 2.75vw, 2.55rem);
  font-weight: 690;
  letter-spacing: 0;
  line-height: .98;
}

.dashboard-summary-grid .stat-detail {
  margin: 0;
  color: #51637a;
  font-size: .86rem;
  font-weight: 520;
  line-height: 1.25;
}

.dashboard-summary-grid .stat-motif {
  position: relative;
  align-self: stretch;
  min-height: 54px;
  margin: 4px -16px 0;
  overflow: hidden;
  opacity: .9;
}

.dashboard-summary-grid .stat-secondary-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 0;
  min-height: 54px;
  margin: 0 -2px;
  padding-top: 12px;
}

.dashboard-summary-grid .stat-secondary-list > span {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: #23344d;
}

.dashboard-summary-grid .stat-secondary-list > i {
  width: 1px;
  height: 34px;
  justify-self: center;
  background: rgba(135, 154, 178, .18);
}

.dashboard-summary-grid .stat-secondary-list > span > span:not(.stat-secondary-icon):not(.social-avatar-stack) {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.dashboard-summary-grid .stat-secondary-list strong {
  overflow: hidden;
  color: #17263b;
  font-size: .86rem;
  font-weight: 680;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-summary-grid .stat-secondary-list small {
  overflow: hidden;
  color: #607187;
  font-size: .74rem;
  font-weight: 520;
  letter-spacing: 0;
  line-height: 1.12;
  text-overflow: ellipsis;
  text-transform: none;
  white-space: nowrap;
}

.stat-secondary-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  color: var(--stat-accent, #2f80ed);
}

.stat-secondary-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.stat-card-activities { --stat-accent: #2478f2; }
.stat-card-wallet { --stat-accent: #14a979; }
.stat-card-territories { --stat-accent: #1587d4; }
.stat-card-social { --stat-accent: #7257d8; }

.stat-card-activities .stat-motif {
  background:
    radial-gradient(circle at 29% 56%, #fff 0 5px, #2478f2 6px 8px, transparent 9px),
    radial-gradient(circle at 68% 34%, #fff 0 5px, #2478f2 6px 8px, transparent 9px),
    radial-gradient(circle at 88% 48%, #fff 0 4px, rgba(36,120,242,.55) 5px 7px, transparent 8px),
    linear-gradient(148deg, transparent 22%, rgba(36,120,242,.12) 22% 23%, transparent 24%),
    repeating-linear-gradient(155deg, transparent 0 18px, rgba(36,120,242,.42) 19px 21px, transparent 22px 35px);
  clip-path: inset(0 round 0);
}

.stat-card-wallet .stat-motif {
  background:
    radial-gradient(ellipse at 70% 56%, rgba(20,169,121,.16) 0 28px, transparent 29px),
    radial-gradient(ellipse at 77% 42%, transparent 0 21px, rgba(20,169,121,.48) 22px 24px, transparent 25px),
    radial-gradient(ellipse at 57% 68%, rgba(20,169,121,.13) 0 25px, transparent 26px),
    radial-gradient(ellipse at 63% 54%, transparent 0 19px, rgba(20,169,121,.42) 20px 22px, transparent 23px),
    linear-gradient(180deg, transparent, rgba(20,169,121,.06));
}

.stat-card-territories .stat-motif {
  background:
    linear-gradient(90deg, rgba(21,135,212,.16) 2px, transparent 2px),
    linear-gradient(30deg, rgba(21,135,212,.12) 2px, transparent 2px),
    radial-gradient(circle at 64% 50%, rgba(21,135,212,.16) 0 22px, transparent 23px),
    linear-gradient(135deg, rgba(21,135,212,.08), rgba(20,169,121,.08));
  background-size: 48px 48px, 54px 54px, auto, auto;
  clip-path: polygon(46% 18%, 76% 10%, 100% 31%, 91% 80%, 58% 92%, 27% 76%, 20% 38%);
}

.stat-card-territories .stat-motif::after {
  content: "";
  position: absolute;
  left: 52%;
  top: 18%;
  width: 26px;
  height: 34px;
  border-left: 3px solid #1587d4;
  background: linear-gradient(90deg, #1587d4 0 18px, transparent 18px);
  clip-path: polygon(0 0, 100% 9%, 72% 47%, 0 38%);
}

.stat-card-social .stat-motif {
  background:
    radial-gradient(circle at 58% 44%, rgba(114,87,216,.16) 0 34px, transparent 35px),
    radial-gradient(circle at 72% 28%, #fff 0 5px, rgba(114,87,216,.62) 6px 8px, transparent 9px),
    radial-gradient(circle at 86% 58%, #fff 0 5px, rgba(114,87,216,.58) 6px 8px, transparent 9px),
    radial-gradient(circle at 49% 68%, #fff 0 5px, rgba(114,87,216,.54) 6px 8px, transparent 9px),
    repeating-radial-gradient(circle at 70% 48%, transparent 0 30px, rgba(114,87,216,.25) 31px 33px, transparent 34px 44px);
}

.dashboard-summary-grid .social-secondary-list {
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.dashboard-summary-grid .social-secondary-list > span:first-child {
  min-width: 74px;
}

.dashboard-summary-grid .social-avatar-stack {
  margin: 0;
}

.dashboard-summary-grid .social-mini-avatar {
  width: 24px;
  height: 24px;
  font-size: .68rem;
}

@media (max-width: 1180px) {
  .dashboard-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .dashboard-summary-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-summary-grid .stat-card {
    min-height: 204px;
  }
}


/* Dashboard summary KPI cards: simplified readable final state */
.dashboard-summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: 16px;
}

.dashboard-summary-grid .stat-card {
  --stat-accent: #1f76e8;
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 174px;
  padding: 18px;
  overflow: visible;
  border: 1px solid rgba(209, 221, 235, .9);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 14px 30px rgba(23, 38, 58, .065);
  color: #0c1830;
  text-decoration: none;
}

.dashboard-summary-grid .stat-card::before,
.dashboard-summary-grid .stat-card::after,
.dashboard-summary-grid .stat-card-pattern,
.dashboard-summary-grid .stat-motif {
  display: none;
  content: none;
}

.dashboard-summary-grid .stat-card:hover,
.dashboard-summary-grid .stat-card:focus-visible {
  border-color: color-mix(in srgb, var(--stat-accent) 22%, rgba(209, 221, 235, .9));
  box-shadow: 0 18px 38px rgba(23, 38, 58, .09);
  transform: translateY(-1px);
}

.dashboard-summary-grid .stat-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}

.dashboard-summary-grid .stat-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border: 1px solid color-mix(in srgb, var(--stat-accent) 18%, #d9e4f1);
  border-radius: 13px;
  color: var(--stat-accent);
  background: color-mix(in srgb, var(--stat-accent) 8%, #fff);
  box-shadow: none;
}

.dashboard-summary-grid .stat-icon svg {
  width: 22px;
  height: 22px;
}

.dashboard-summary-grid .stat-badge {
  display: inline-flex;
  align-items: center;
  flex: 0 1 auto;
  max-width: 100%;
  min-height: 28px;
  padding: 6px 10px;
  overflow: visible;
  border: 0;
  border-radius: 999px;
  color: color-mix(in srgb, var(--stat-accent) 68%, #123047);
  background: color-mix(in srgb, var(--stat-accent) 10%, #fff);
  box-shadow: none;
  font-size: .74rem;
  font-weight: 620;
  letter-spacing: 0;
  line-height: 1.15;
  text-align: right;
  text-overflow: clip;
  white-space: normal;
}

.dashboard-summary-grid .stat-card-main {
  display: grid;
  gap: 7px;
  min-width: 0;
  margin-top: 18px;
}

.dashboard-summary-grid .stat-label {
  overflow: visible;
  color: var(--stat-accent);
  font-size: .95rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.2;
  text-overflow: clip;
  text-transform: none;
  white-space: normal;
}

body.user-portal .dashboard-summary-grid .stat-value {
  margin: 0;
  color: #0b1730;
  font-size: clamp(1.85rem, 2.35vw, 2.3rem);
  font-weight: 730;
  letter-spacing: 0;
  line-height: 1.02;
  overflow-wrap: anywhere;
}

.dashboard-summary-grid .stat-detail,
.dashboard-summary-grid .stat-helper {
  display: block;
  margin: 0;
  color: #53667f;
  font-size: .88rem;
  font-weight: 450;
  line-height: 1.32;
  overflow-wrap: normal;
  white-space: normal;
}

.dashboard-summary-grid .stat-helper {
  color: #718197;
  font-size: .8rem;
}

.dashboard-summary-grid .stat-secondary-list {
  display: none;
}

.dashboard-summary-grid .stat-card-activities { --stat-accent: #1f76e8; }
.dashboard-summary-grid .stat-card-wallet { --stat-accent: #099464; }
.dashboard-summary-grid .stat-card-territories { --stat-accent: #1683cc; }
.dashboard-summary-grid .stat-card-social { --stat-accent: #734bd3; }

.dashboard-summary-grid .social-stat-card {
  overflow: hidden;
}

.dashboard-summary-grid .social-avatar-stack {
  display: flex;
  align-items: center;
  min-height: 28px;
  margin-top: auto;
  padding-top: 12px;
}

.dashboard-summary-grid .social-mini-avatar {
  width: 28px;
  height: 28px;
  margin-left: -7px;
  border: 2px solid #fff;
  box-shadow: 0 7px 14px rgba(21, 31, 47, .13);
  font-size: .66rem;
}

.dashboard-summary-grid .social-mini-avatar:first-child {
  margin-left: 0;
}

@media (max-width: 1180px) {
  .dashboard-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .dashboard-summary-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-summary-grid .stat-card {
    min-height: 160px;
  }
}


/* Dashboard KPI asset cards: final pass */
body.user-portal .section-dashboard .portal-section-visual {
  display: block;
  min-height: 112px;
  border-radius: 14px;
  background: var(--section-hero-image) right center / contain no-repeat;
  box-shadow: none;
}

body.user-portal .section-dashboard .portal-section-visual::before,
body.user-portal .section-dashboard .portal-section-visual span,
body.user-portal .section-dashboard .portal-section-visual i {
  display: none;
}

.dashboard-kpi-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: 16px;
}

.dashboard-kpi-grid .dashboard-kpi-card {
  --dashboard-kpi-accent: #1f76e8;
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-rows: auto minmax(88px, 1fr) auto;
  min-height: 224px;
  padding: 16px 16px 14px;
  overflow: hidden;
  border: 1px solid rgba(209, 221, 235, .92);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 14px 30px rgba(23, 38, 58, .065);
  color: #0c1830;
  text-decoration: none;
}

.dashboard-kpi-grid .dashboard-kpi-card::before,
.dashboard-kpi-grid .dashboard-kpi-card::after,
.dashboard-kpi-grid .stat-card-pattern,
.dashboard-kpi-grid .stat-motif,
.dashboard-kpi-grid .stat-card-header,
.dashboard-kpi-grid .stat-card-main,
.dashboard-kpi-grid .stat-secondary-list {
  display: none;
  content: none;
}

.dashboard-kpi-grid .dashboard-kpi-card:hover,
.dashboard-kpi-grid .dashboard-kpi-card:focus-visible {
  border-color: color-mix(in srgb, var(--dashboard-kpi-accent) 24%, rgba(209, 221, 235, .92));
  box-shadow: 0 18px 38px rgba(23, 38, 58, .09);
  transform: translateY(-1px);
}

.dashboard-kpi-top,
.dashboard-kpi-body,
.dashboard-kpi-bottom,
.dashboard-kpi-accent {
  position: relative;
  z-index: 2;
}

.dashboard-kpi-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.dashboard-kpi-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border: 1px solid color-mix(in srgb, var(--dashboard-kpi-accent) 18%, #d9e4f1);
  border-radius: 12px;
  color: var(--dashboard-kpi-accent);
  background: color-mix(in srgb, var(--dashboard-kpi-accent) 8%, #fff);
}

.dashboard-kpi-icon svg {
  width: 21px;
  height: 21px;
}

.dashboard-kpi-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 58%;
  min-height: 27px;
  padding: 5px 9px;
  overflow-wrap: anywhere;
  border: 1px solid color-mix(in srgb, var(--dashboard-kpi-accent) 16%, transparent);
  border-radius: 999px;
  color: color-mix(in srgb, var(--dashboard-kpi-accent) 72%, #123047);
  background: color-mix(in srgb, var(--dashboard-kpi-accent) 9%, #fff);
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 1.12;
  text-align: center;
  text-transform: none;
}

.dashboard-kpi-body {
  display: grid;
  align-content: start;
  gap: 5px;
  max-width: 64%;
  min-width: 0;
  padding-top: 17px;
}

.dashboard-kpi-title {
  color: #24344d;
  font-size: .94rem;
  font-weight: 680;
  letter-spacing: 0;
  line-height: 1.18;
  text-transform: none;
}

body.user-portal .dashboard-kpi-primary {
  color: #0b1730;
  font-size: clamp(2rem, 2.6vw, 2.48rem);
  font-weight: 720;
  letter-spacing: 0;
  line-height: 1;
  overflow-wrap: anywhere;
}

.dashboard-kpi-descriptor {
  color: #62728a;
  font-size: .86rem;
  font-weight: 450;
  letter-spacing: 0;
  line-height: 1.28;
  text-transform: none;
}

.dashboard-kpi-visual {
  position: absolute;
  z-index: 1;
  right: 8px;
  bottom: 58px;
  width: min(48%, 156px);
  max-height: 118px;
  object-fit: contain;
  object-position: right bottom;
  opacity: .6;
  pointer-events: none;
}

.dashboard-kpi-bottom {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: end;
  gap: 10px;
  min-height: 44px;
  padding-top: 12px;
}

.dashboard-kpi-bottom > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.dashboard-kpi-bottom strong {
  color: #17263b;
  font-size: .84rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.12;
  overflow-wrap: anywhere;
}

.dashboard-kpi-bottom small {
  color: #65758a;
  font-size: .72rem;
  font-weight: 480;
  letter-spacing: 0;
  line-height: 1.14;
  text-transform: none;
  white-space: normal;
}

.dashboard-kpi-accent {
  position: absolute;
  inset: auto 0 0 0;
  height: 3px;
  background: var(--dashboard-kpi-accent);
}

.dashboard-kpi-card--activities { --dashboard-kpi-accent: #1f76e8; }
.dashboard-kpi-card--wallet { --dashboard-kpi-accent: #0f9d74; }
.dashboard-kpi-card--territories { --dashboard-kpi-accent: #1387c8; }
.dashboard-kpi-card--social { --dashboard-kpi-accent: #7457d8; }

.dashboard-kpi-card--activities .dashboard-kpi-visual {
  right: -2px;
  bottom: 56px;
  width: min(46%, 148px);
  max-height: 106px;
  opacity: .58;
}

.dashboard-kpi-card--wallet .dashboard-kpi-visual {
  width: min(46%, 148px);
  max-height: 112px;
  opacity: .62;
}

.dashboard-kpi-card--territories .dashboard-kpi-visual {
  width: min(47%, 152px);
  max-height: 116px;
  opacity: .6;
}

.dashboard-kpi-card--social .dashboard-kpi-visual {
  right: 4px;
  width: min(44%, 142px);
  max-height: 108px;
  opacity: .55;
}

.dashboard-kpi-grid .social-avatar-stack {
  display: flex;
  align-items: center;
  min-height: 28px;
  margin: 0;
  padding: 0;
}

.dashboard-kpi-grid .social-mini-avatar {
  width: 26px;
  height: 26px;
  margin-left: -7px;
  border: 2px solid #fff;
  box-shadow: 0 7px 14px rgba(21, 31, 47, .13);
  font-size: .64rem;
}

.dashboard-kpi-grid .social-mini-avatar:first-child {
  margin-left: 0;
}

@media (max-width: 1180px) {
  .dashboard-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  body.user-portal .section-dashboard {
    grid-template-columns: minmax(0, 1fr) 96px;
  }

  body.user-portal .section-dashboard .portal-section-visual {
    display: block;
    min-height: 84px;
    background-position: center;
  }

  .dashboard-kpi-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-kpi-grid .dashboard-kpi-card {
    min-height: 208px;
  }

  .dashboard-kpi-body {
    max-width: 66%;
  }

  .dashboard-kpi-visual {
    width: min(44%, 146px);
    max-height: 104px;
  }
}


/* Dashboard KPI composition fix */
body.user-portal .dashboard-kpi-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

body.user-portal .dashboard-kpi-grid .dashboard-kpi-card {
  --dashboard-kpi-accent: #1f76e8;
  display: grid;
  grid-template-rows: auto minmax(112px, 1fr) auto;
  min-height: 232px;
  padding: 22px 22px 18px;
  overflow: hidden;
  border: 1px solid rgba(210, 222, 236, .9);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 15px 32px rgba(23, 38, 58, .07);
}

body.user-portal .dashboard-kpi-top {
  z-index: 3;
  align-items: center;
}

body.user-portal .dashboard-kpi-icon {
  width: 50px;
  height: 50px;
  border-color: color-mix(in srgb, var(--dashboard-kpi-accent) 24%, #d9e4f1);
  border-radius: 14px;
  color: var(--dashboard-kpi-accent);
  background: color-mix(in srgb, var(--dashboard-kpi-accent) 11%, #fff);
}

body.user-portal .dashboard-kpi-icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.user-portal .dashboard-kpi-pill {
  max-width: 62%;
  min-height: 28px;
  padding: 6px 10px;
  font-size: .74rem;
  font-weight: 650;
  white-space: nowrap;
}

body.user-portal .dashboard-kpi-main {
  position: relative;
  z-index: 2;
  min-width: 0;
  min-height: 112px;
  display: flex;
  align-items: center;
  padding: 12px 0 4px;
}

body.user-portal .dashboard-kpi-copy {
  position: relative;
  z-index: 3;
  display: grid;
  align-content: center;
  gap: 5px;
  width: 58%;
  min-width: 0;
}

body.user-portal .dashboard-kpi-body {
  max-width: none;
  padding-top: 0;
}

body.user-portal .dashboard-kpi-title {
  color: color-mix(in srgb, var(--dashboard-kpi-accent) 74%, #24344d);
  font-size: 1rem;
  font-weight: 680;
  letter-spacing: 0;
  line-height: 1.18;
  text-transform: none;
  white-space: nowrap;
}

body.user-portal .dashboard-kpi-primary {
  color: #0b1730;
  font-size: clamp(2.35rem, 3.1vw, 2.85rem);
  font-weight: 730;
  letter-spacing: 0;
  line-height: .98;
}

body.user-portal .dashboard-kpi-descriptor {
  color: #5e7087;
  font-size: 1rem;
  font-weight: 480;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: none;
  white-space: nowrap;
}

body.user-portal .dashboard-kpi-visual {
  position: absolute;
  z-index: 1;
  right: 12px;
  bottom: -4px;
  width: min(50%, 190px);
  max-height: 148px;
  object-fit: contain;
  object-position: right bottom;
  opacity: .82;
  pointer-events: none;
}

body.user-portal .dashboard-kpi-bottom {
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 30px;
  padding-top: 6px;
}

body.user-portal .dashboard-kpi-mini {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  max-width: 100%;
  color: #3c4d64;
  font-size: .88rem;
  font-weight: 590;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: none;
  white-space: nowrap;
}

body.user-portal .dashboard-kpi-mini + .dashboard-kpi-mini::before {
  content: "";
  width: 1px;
  height: 14px;
  margin-right: 8px;
  background: rgba(132, 151, 174, .28);
}

body.user-portal .dashboard-kpi-mini--media {
  margin-left: auto;
  flex: 0 0 auto;
}

body.user-portal .dashboard-kpi-accent {
  height: 2px;
  opacity: .9;
}

body.user-portal .dashboard-kpi-card--activities { --dashboard-kpi-accent: #1f76e8; }
body.user-portal .dashboard-kpi-card--wallet { --dashboard-kpi-accent: #0f9d74; }
body.user-portal .dashboard-kpi-card--territories { --dashboard-kpi-accent: #1387c8; }
body.user-portal .dashboard-kpi-card--social { --dashboard-kpi-accent: #7357d8; }

body.user-portal .dashboard-kpi-card--activities .dashboard-kpi-visual {
  right: 8px;
  bottom: 18px;
  width: min(49%, 188px);
  max-height: 142px;
  opacity: .8;
}

body.user-portal .dashboard-kpi-card--wallet .dashboard-kpi-visual {
  right: 12px;
  bottom: 12px;
  width: min(48%, 184px);
  max-height: 144px;
  opacity: .84;
}

body.user-portal .dashboard-kpi-card--territories .dashboard-kpi-visual {
  right: 10px;
  bottom: 12px;
  width: min(50%, 190px);
  max-height: 148px;
  opacity: .82;
}

body.user-portal .dashboard-kpi-card--social .dashboard-kpi-visual {
  right: 10px;
  bottom: 18px;
  width: min(47%, 178px);
  max-height: 138px;
  opacity: .78;
}

body.user-portal .dashboard-kpi-grid .social-avatar-stack {
  min-height: 26px;
}

body.user-portal .dashboard-kpi-grid .social-mini-avatar {
  width: 25px;
  height: 25px;
  font-size: .62rem;
}

@media (max-width: 1180px) {
  body.user-portal .dashboard-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.user-portal .dashboard-kpi-grid .dashboard-kpi-card {
    min-height: 224px;
  }

  body.user-portal .dashboard-kpi-copy {
    width: 56%;
  }
}

@media (max-width: 680px) {
  body.user-portal .dashboard-kpi-grid {
    grid-template-columns: 1fr;
  }

  body.user-portal .dashboard-kpi-grid .dashboard-kpi-card {
    min-height: 214px;
    padding: 18px 18px 16px;
  }

  body.user-portal .dashboard-kpi-copy {
    width: 60%;
  }

  body.user-portal .dashboard-kpi-primary {
    font-size: clamp(2.1rem, 10vw, 2.55rem);
  }

  body.user-portal .dashboard-kpi-visual {
    right: 8px;
    width: min(42%, 150px);
    max-height: 118px;
    opacity: .72;
  }

  body.user-portal .dashboard-kpi-bottom {
    flex-wrap: wrap;
    row-gap: 4px;
  }

  body.user-portal .dashboard-kpi-mini {
    font-size: .82rem;
  }
}


/* Dashboard reference refinement */
body.user-portal .section-dashboard {
  position: relative;
  display: block;
  min-height: 190px;
  padding: 30px 38px;
  overflow: hidden;
  border-color: rgba(198, 214, 232, .72);
  border-radius: 20px;
  background:
    linear-gradient(90deg, rgba(255,255,255,.99) 0%, rgba(255,255,255,.96) 48%, rgba(245,251,255,.7) 70%, rgba(236,249,247,.72) 100%);
  box-shadow: 0 16px 38px rgba(29, 48, 78, .07);
}

body.user-portal .section-dashboard::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  width: auto;
  border-radius: inherit;
  background:
    radial-gradient(circle at 82% 18%, rgba(47,128,237,.11), transparent 18rem),
    radial-gradient(circle at 74% 92%, rgba(51,199,160,.12), transparent 20rem);
  pointer-events: none;
}

body.user-portal .section-dashboard .portal-section-copy {
  position: relative;
  z-index: 2;
  max-width: 62%;
}

body.user-portal .section-dashboard .portal-eyebrow {
  margin-bottom: 8px;
  color: #61758f;
  font-size: .76rem;
  font-weight: 680;
  letter-spacing: .08em;
}

body.user-portal .section-dashboard .portal-eyebrow strong {
  color: #1474df;
  font-weight: 760;
}

body.user-portal .section-dashboard h1 {
  margin: 0;
  color: #0b1730;
  font-size: 2.7rem;
  font-weight: 720;
  line-height: 1.02;
}

body.user-portal .section-dashboard .portal-section-copy > p:not(.portal-eyebrow) {
  max-width: 660px;
  margin-top: 12px;
  color: #536984;
  font-size: 1rem;
  line-height: 1.48;
}

body.user-portal .section-dashboard .portal-section-visual {
  position: absolute;
  inset: 10px 0 0 auto;
  z-index: 1;
  display: block;
  width: 52%;
  min-height: 0;
  border: 0;
  border-radius: 0;
  background: var(--section-hero-image) right center / contain no-repeat;
  box-shadow: none;
  opacity: .72;
  pointer-events: none;
}

body.user-portal .section-dashboard .portal-section-visual::before,
body.user-portal .section-dashboard .portal-section-visual span,
body.user-portal .section-dashboard .portal-section-visual i {
  display: none;
}

body.user-portal .dashboard-kpi-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: 16px;
}

body.user-portal .dashboard-kpi-grid .dashboard-kpi-card {
  --dashboard-kpi-accent: #2478f2;
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-rows: auto minmax(126px, 1fr) auto;
  min-height: 270px;
  padding: 18px 20px 0;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--dashboard-kpi-accent) 15%, #d2deec);
  border-radius: 16px;
  background:
    radial-gradient(circle at 92% 38%, color-mix(in srgb, var(--dashboard-kpi-accent) 8%, transparent), transparent 46%),
    linear-gradient(145deg, #fff 42%, color-mix(in srgb, var(--dashboard-kpi-accent) 4%, #fff));
  box-shadow: 0 15px 34px rgba(23, 38, 58, .075);
}

body.user-portal .dashboard-kpi-top {
  position: relative;
  z-index: 4;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}

body.user-portal .dashboard-kpi-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border: 1px solid color-mix(in srgb, var(--dashboard-kpi-accent) 25%, #d9e4f1);
  border-radius: 14px;
  color: var(--dashboard-kpi-accent);
  background: color-mix(in srgb, var(--dashboard-kpi-accent) 10%, #fff);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--dashboard-kpi-accent) 9%, transparent);
}

body.user-portal .dashboard-kpi-icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.user-portal .dashboard-kpi-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex: 0 1 auto;
  min-width: 0;
  max-width: calc(100% - 62px);
  min-height: 27px;
  padding: 5px 9px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--dashboard-kpi-accent) 13%, transparent);
  border-radius: 999px;
  color: color-mix(in srgb, var(--dashboard-kpi-accent) 78%, #18324d);
  background: color-mix(in srgb, var(--dashboard-kpi-accent) 8%, #fff);
  font-size: .7rem;
  font-weight: 680;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .dashboard-kpi-pill::before {
  content: "";
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--dashboard-kpi-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--dashboard-kpi-accent) 10%, transparent);
}

body.user-portal .dashboard-kpi-main {
  position: relative;
  z-index: 2;
  min-width: 0;
  min-height: 126px;
  display: flex;
  align-items: center;
  padding: 14px 0 10px;
  isolation: isolate;
}

body.user-portal .dashboard-kpi-copy {
  position: relative;
  z-index: 3;
  display: grid;
  align-content: center;
  gap: 5px;
  width: 58%;
  min-width: 0;
}

body.user-portal .dashboard-kpi-title {
  color: var(--dashboard-kpi-accent);
  font-size: 1.02rem;
  font-weight: 720;
  letter-spacing: 0;
  line-height: 1.15;
  text-transform: none;
  white-space: nowrap;
}

body.user-portal .dashboard-kpi-primary {
  max-width: 100%;
  margin: 0;
  overflow: hidden;
  color: #0b1730;
  font-size: 2.38rem;
  font-weight: 740;
  letter-spacing: 0;
  line-height: .98;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .dashboard-kpi-descriptor {
  color: #566a83;
  font-size: .9rem;
  font-weight: 480;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: none;
  white-space: nowrap;
}

body.user-portal .dashboard-kpi-visual {
  position: absolute;
  z-index: 1;
  right: -8%;
  bottom: -10px;
  width: 60%;
  max-width: 220px;
  max-height: 172px;
  object-fit: contain;
  object-position: right bottom;
  opacity: .68;
  pointer-events: none;
}

body.user-portal .dashboard-kpi-bottom {
  position: relative;
  z-index: 4;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  width: auto;
  min-width: 0;
  min-height: 66px;
  margin: 0 -20px;
  padding: 13px 20px 15px;
  overflow: visible;
  border-top: 1px solid color-mix(in srgb, var(--dashboard-kpi-accent) 13%, #dce5ef);
  background: rgba(255,255,255,.7);
}

body.user-portal .dashboard-kpi-bottom--1 {
  grid-template-columns: minmax(0, 1fr);
}

body.user-portal .dashboard-kpi-metric {
  display: grid;
  align-content: center;
  gap: 3px;
  min-width: 0;
}

body.user-portal .dashboard-kpi-metric + .dashboard-kpi-metric {
  margin-left: 13px;
  padding-left: 13px;
  border-left: 1px solid rgba(132, 151, 174, .24);
}

body.user-portal .dashboard-kpi-metric strong {
  display: block;
  min-width: 0;
  color: #20334d;
  font-size: .82rem;
  font-weight: 720;
  letter-spacing: 0;
  line-height: 1.12;
  white-space: nowrap;
}

body.user-portal .dashboard-kpi-metric small {
  display: block;
  min-width: 0;
  color: #6a7c92;
  font-size: .67rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.16;
  text-transform: none;
  overflow-wrap: anywhere;
  white-space: normal;
}

body.user-portal .dashboard-kpi-metric--label span {
  color: #445972;
  font-size: .78rem;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: none;
  white-space: nowrap;
}

body.user-portal .dashboard-kpi-metric--media {
  justify-items: end;
}

body.user-portal .dashboard-kpi-card--social .dashboard-kpi-bottom {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

body.user-portal .dashboard-social-stats {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-width: 0;
}

body.user-portal .dashboard-social-stats > span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

body.user-portal .dashboard-social-stats strong {
  color: #0b1730;
  font-size: 2rem;
  font-weight: 740;
  letter-spacing: 0;
  line-height: 1;
}

body.user-portal .dashboard-social-stats small {
  color: #566a83;
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.1;
  text-transform: none;
}

body.user-portal .dashboard-social-stats i {
  padding-top: 4px;
  color: var(--dashboard-kpi-accent);
  font-size: 1.3rem;
  font-style: normal;
  line-height: 1;
}

body.user-portal .dashboard-kpi-accent {
  position: absolute;
  inset: auto 0 0;
  z-index: 5;
  height: 3px;
  background: var(--dashboard-kpi-accent);
  opacity: 1;
}

body.user-portal .dashboard-kpi-card--activities { --dashboard-kpi-accent: #2478f2; }
body.user-portal .dashboard-kpi-card--wallet { --dashboard-kpi-accent: #10a875; }
body.user-portal .dashboard-kpi-card--territories { --dashboard-kpi-accent: #1487cf; }
body.user-portal .dashboard-kpi-card--social { --dashboard-kpi-accent: #7652d5; }

body.user-portal .dashboard-kpi-card--activities .dashboard-kpi-visual {
  right: -9%;
  bottom: -10px;
  width: 61%;
  max-height: 168px;
  opacity: .7;
}

body.user-portal .dashboard-kpi-card--wallet .dashboard-kpi-visual {
  right: -7%;
  bottom: -12px;
  width: 58%;
  max-height: 172px;
  opacity: .76;
}

body.user-portal .dashboard-kpi-card--territories .dashboard-kpi-visual {
  right: -9%;
  bottom: -12px;
  width: 62%;
  max-height: 176px;
  opacity: .72;
}

body.user-portal .dashboard-kpi-card--social .dashboard-kpi-visual {
  right: -7%;
  bottom: -10px;
  width: 58%;
  max-height: 166px;
  opacity: .62;
}

body.user-portal .dashboard-kpi-grid .social-avatar-stack {
  display: flex;
  align-items: center;
  min-height: 27px;
  margin: 0;
  padding: 0;
}

body.user-portal .dashboard-kpi-grid .social-mini-avatar {
  width: 27px;
  height: 27px;
  margin-left: -7px;
  border: 2px solid #fff;
  box-shadow: 0 6px 13px rgba(21, 31, 47, .14);
  font-size: .62rem;
}

body.user-portal .dashboard-kpi-grid .social-mini-avatar:first-child {
  margin-left: 0;
}

@media (max-width: 1420px) {
  body.user-portal .dashboard-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.user-portal .dashboard-kpi-grid .dashboard-kpi-card {
    min-height: 258px;
  }

  body.user-portal .dashboard-kpi-visual {
    max-width: 240px;
  }
}

@media (max-width: 680px) {
  body.user-portal .section-dashboard {
    min-height: 164px;
    padding: 22px 20px;
  }

  body.user-portal .section-dashboard .portal-section-copy {
    max-width: 76%;
  }

  body.user-portal .section-dashboard h1 {
    font-size: 2.15rem;
  }

  body.user-portal .section-dashboard .portal-section-copy > p:not(.portal-eyebrow) {
    max-width: 92%;
    margin-top: 9px;
    font-size: .86rem;
    line-height: 1.4;
  }

  body.user-portal .section-dashboard .portal-section-visual {
    inset: 18px -8% 0 auto;
    width: 54%;
    opacity: .38;
  }

  body.user-portal .dashboard-kpi-grid {
    grid-template-columns: 1fr;
  }

  body.user-portal .dashboard-kpi-grid .dashboard-kpi-card {
    min-height: 252px;
    padding-inline: 18px;
  }

  body.user-portal .dashboard-kpi-copy {
    width: 58%;
  }

  body.user-portal .dashboard-kpi-visual,
  body.user-portal .dashboard-kpi-card .dashboard-kpi-visual {
    right: -6%;
    bottom: -8px;
    width: 56%;
    max-width: 210px;
    max-height: 152px;
  }

  body.user-portal .dashboard-kpi-bottom {
    margin-inline: -18px;
    padding-inline: 18px;
  }
}


/* Fitness progress reference refinement */
body.user-portal .fitness-card-premium {
  padding: 20px 24px 18px;
  overflow: hidden;
  border-color: rgba(205, 218, 233, .78);
  background: rgba(255,255,255,.96);
  box-shadow: 0 14px 32px rgba(29, 48, 78, .065);
}

body.user-portal .fitness-heading {
  margin: 0;
  padding-bottom: 15px;
}

body.user-portal .fitness-heading .portal-eyebrow {
  color: #1474df;
  font-size: .7rem;
  font-weight: 720;
  letter-spacing: .08em;
}

body.user-portal .fitness-heading h2 {
  color: #111d31;
  font-size: 1.32rem;
  font-weight: 710;
  letter-spacing: 0;
}

body.user-portal .fitness-heading > a {
  align-self: center;
  min-height: 34px;
  padding: 7px 13px;
  border: 1px solid rgba(47,128,237,.25);
  border-radius: 999px;
  color: #176dcc;
  background: rgba(255,255,255,.82);
  font-size: .78rem;
  font-weight: 650;
}

body.user-portal .fitness-summary-band {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 31%);
  align-items: stretch;
  min-width: 0;
  padding: 20px 0 18px;
  border-bottom: 1px solid rgba(211, 222, 235, .72);
}

body.user-portal .fitness-summary-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: center;
  min-width: 0;
}

body.user-portal .fitness-summary-metric {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-width: 0;
  min-height: 62px;
  padding: 0 16px;
  border-left: 1px solid rgba(135, 154, 178, .2);
}

body.user-portal .fitness-summary-metric:first-child {
  padding-left: 0;
  border-left: 0;
}

body.user-portal .fitness-summary-icon {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  color: #52749b;
}

body.user-portal .fitness-summary-icon svg {
  width: 29px;
  height: 29px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.user-portal .fitness-summary-metric > div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

body.user-portal .fitness-summary-metric small {
  overflow: hidden;
  color: #708198;
  font-size: .68rem;
  font-weight: 560;
  letter-spacing: 0;
  line-height: 1.15;
  text-overflow: ellipsis;
  text-transform: none;
  white-space: nowrap;
}

body.user-portal .fitness-summary-metric strong {
  overflow: hidden;
  color: #1a273a;
  font-size: 1rem;
  font-weight: 720;
  letter-spacing: 0;
  line-height: 1.08;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .fitness-summary-trend {
  min-width: 0;
  padding-left: 22px;
  border-left: 1px solid rgba(135, 154, 178, .2);
}

body.user-portal .fitness-trend-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

body.user-portal .fitness-trend-heading strong {
  color: #334860;
  font-size: .72rem;
  font-weight: 650;
}

body.user-portal .fitness-trend-heading span {
  color: #176dcc;
  font-size: .7rem;
  font-weight: 680;
  white-space: nowrap;
}

body.user-portal .fitness-card-premium .trend-bars {
  height: 72px;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  align-items: end;
  gap: 7px;
  margin: 5px 0 0;
  padding: 0 2px;
  border: 0;
  background: linear-gradient(to top, rgba(135,154,178,.16) 1px, transparent 1px) bottom / 100% 1px no-repeat;
}

body.user-portal .fitness-card-premium .trend-bars span {
  display: grid;
  justify-items: center;
  align-items: end;
  gap: 4px;
  min-width: 0;
}

body.user-portal .fitness-card-premium .trend-bars i {
  width: 100%;
  max-width: 18px;
  height: var(--bar-height);
  border-radius: 6px 6px 2px 2px;
  background: #dce8f5;
  box-shadow: none;
}

body.user-portal .fitness-card-premium .trend-bars .has-distance i {
  background: linear-gradient(180deg, #6facf5, #2478e8);
  box-shadow: 0 4px 10px rgba(36,120,232,.12);
}

body.user-portal .fitness-card-premium .trend-bars small {
  color: #8391a4;
  font-size: .58rem;
  font-weight: 560;
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
}

body.user-portal .fitness-support-row {
  display: grid;
  grid-template-columns: minmax(150px, .8fr) minmax(130px, auto) minmax(130px, auto) minmax(180px, 1.2fr);
  align-items: center;
  gap: 20px;
  min-width: 0;
  padding-top: 15px;
}

body.user-portal .fitness-support-heading {
  display: grid;
  gap: 3px;
}

body.user-portal .fitness-support-heading strong {
  color: #334860;
  font-size: .78rem;
  font-weight: 680;
}

body.user-portal .fitness-support-heading span {
  color: #7a8a9e;
  font-size: .67rem;
  font-weight: 520;
}

body.user-portal .fitness-sport-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
}

body.user-portal .fitness-sport-item > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

body.user-portal .fitness-sport-item strong {
  color: #34485f;
  font-size: .74rem;
  font-weight: 650;
}

body.user-portal .fitness-sport-item small {
  color: #708198;
  font-size: .66rem;
  font-weight: 520;
  white-space: nowrap;
}

body.user-portal .fitness-support-row .split-dot {
  width: 8px;
  height: 8px;
}

body.user-portal .fitness-split-bar {
  display: flex;
  height: 7px;
  min-width: 0;
  overflow: hidden;
  border-radius: 999px;
  background: #e8eef5;
}

body.user-portal .fitness-split-bar span,
body.user-portal .fitness-split-bar i {
  display: block;
  min-width: 0;
}

body.user-portal .fitness-split-bar span {
  background: #22a779;
}

body.user-portal .fitness-split-bar i {
  background: #efb84f;
}

@media (max-width: 980px) {
  body.user-portal .fitness-summary-band {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  body.user-portal .fitness-summary-trend {
    padding: 16px 0 0;
    border-top: 1px solid rgba(135, 154, 178, .16);
    border-left: 0;
  }

  body.user-portal .fitness-support-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 20px;
  }

  body.user-portal .fitness-split-bar {
    grid-column: 1 / -1;
  }
}

@media (max-width: 680px) {
  body.user-portal .fitness-card-premium {
    padding: 18px;
  }

  body.user-portal .fitness-summary-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 16px;
  }

  body.user-portal .fitness-summary-metric {
    padding: 0 12px;
  }

  body.user-portal .fitness-summary-metric:nth-child(3) {
    padding-left: 0;
    border-left: 0;
  }

  body.user-portal .fitness-summary-metric:nth-child(n + 3) {
    padding-top: 15px;
    border-top: 1px solid rgba(135, 154, 178, .16);
  }

  body.user-portal .fitness-support-row {
    grid-template-columns: 1fr 1fr;
  }

  body.user-portal .fitness-support-heading,
  body.user-portal .fitness-split-bar {
    grid-column: 1 / -1;
  }
}


/* Final responsive shell and Dashboard layout correction */
html,
body.user-portal {
  max-width: 100%;
}

body.user-portal .portal-main,
body.user-portal .portal-main > main,
body.user-portal .section-dashboard,
body.user-portal .dashboard-kpi-grid,
body.user-portal .dashboard-kpi-grid > *,
body.user-portal .dashboard-grid,
body.user-portal .dashboard-grid > *,
body.user-portal .fitness-card-premium,
body.user-portal .fitness-summary-band,
body.user-portal .fitness-summary-metrics,
body.user-portal .fitness-summary-trend,
body.user-portal .fitness-support-row {
  min-width: 0;
  max-width: 100%;
}

body.user-portal .mobile-nav {
  display: none !important;
}

.portal-drawer-backdrop {
  display: none;
}

.drawer-toggle-icon {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
}

.drawer-toggle-icon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (min-width: 1180px) {
  body.user-portal .dashboard-kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
  }

  body.user-portal .dashboard-kpi-grid .dashboard-kpi-card {
    grid-template-rows: auto minmax(108px, 1fr) auto;
    min-height: 246px;
    padding: 16px 16px 0;
  }

  body.user-portal .dashboard-kpi-icon {
    width: 44px;
    height: 44px;
    border-radius: 13px;
  }

  body.user-portal .dashboard-kpi-icon svg {
    width: 22px;
    height: 22px;
  }

  body.user-portal .dashboard-kpi-pill {
    max-width: calc(100% - 54px);
    min-height: 25px;
    padding: 5px 8px;
    overflow: visible;
    font-size: .66rem;
    text-overflow: clip;
  }

  body.user-portal .dashboard-kpi-main {
    min-height: 108px;
    padding: 12px 0 8px;
  }

  body.user-portal .dashboard-kpi-copy {
    width: 61%;
  }

  body.user-portal .dashboard-kpi-title {
    font-size: .94rem;
  }

  body.user-portal .dashboard-kpi-primary {
    overflow: visible;
    font-size: 2.02rem;
    text-overflow: clip;
  }

  body.user-portal .dashboard-kpi-descriptor {
    font-size: .82rem;
  }

  body.user-portal .dashboard-kpi-visual,
  body.user-portal .dashboard-kpi-card .dashboard-kpi-visual {
    right: -7%;
    bottom: -8px;
    width: 55%;
    max-width: 164px;
    max-height: 146px;
  }

  body.user-portal .dashboard-kpi-bottom {
    min-height: 61px;
    margin-inline: -16px;
    padding: 11px 16px 13px;
  }

  body.user-portal .dashboard-kpi-metric + .dashboard-kpi-metric {
    margin-left: 9px;
    padding-left: 9px;
  }

  body.user-portal .dashboard-kpi-metric strong {
    font-size: .76rem;
  }

  body.user-portal .dashboard-kpi-metric small {
    font-size: .63rem;
  }

  body.user-portal .dashboard-social-stats {
    gap: 7px;
  }

  body.user-portal .dashboard-social-stats strong {
    font-size: 1.72rem;
  }
}

@media (min-width: 1180px) and (max-width: 1366px) {
  body.user-portal .portal-app-shell {
    grid-template-columns: 220px minmax(0, 1fr);
  }

  body.user-portal .portal-main {
    padding-right: 20px;
    padding-left: 20px;
  }
}

@media (min-width: 760px) and (max-width: 1179px) {
  body.user-portal .dashboard-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  body.user-portal.portal-drawer-open {
    overflow: hidden;
  }

  body.user-portal .portal-app-shell {
    grid-template-columns: 1fr;
    padding-top: 64px;
  }

  body.user-portal .portal-main {
    width: 100%;
    min-width: 0;
    padding: 16px;
  }

  .portal-global-topbar {
    align-items: center;
    flex-direction: row;
    gap: 8px;
    width: 100%;
    min-width: 0;
    min-height: 64px;
    height: 64px;
    padding: 8px 12px;
  }

  .portal-global-left {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    justify-content: flex-start;
    gap: 8px;
  }

  .portal-global-topbar .drawer-toggle {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid rgba(199, 215, 232, .82);
    border-radius: 13px;
    color: #344b67;
    background: rgba(255,255,255,.9);
    box-shadow: 0 7px 16px rgba(29,48,78,.06);
  }

  .portal-global-topbar .drawer-toggle:hover,
  .portal-global-topbar .drawer-toggle:focus-visible,
  .portal-global-topbar .drawer-toggle.is-open {
    border-color: rgba(47,128,237,.36);
    color: #176dcc;
    background: #fff;
    outline: none;
  }

  .portal-global-topbar .drawer-toggle:focus-visible {
    box-shadow: 0 0 0 3px rgba(47,128,237,.16);
  }

  .portal-topbar-brand {
    min-width: 0;
    gap: 8px;
    white-space: nowrap;
  }

  .portal-global-topbar .portal-brand-mark {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
  }

  .portal-global-topbar .profile-cluster {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
    gap: 6px;
    justify-content: flex-end;
  }

  .portal-global-topbar .notification-button {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
  }

  .portal-global-topbar .profile-divider {
    height: 28px;
  }

  .portal-global-topbar .account-trigger {
    min-width: 44px;
    min-height: 44px;
    max-width: 180px;
    padding: 3px 9px 3px 4px;
  }

  .portal-global-topbar .account-trigger .account-name {
    max-width: 92px;
  }

  body.user-portal .portal-sidebar {
    position: fixed;
    inset: 64px auto 0 0;
    z-index: 75;
    display: flex;
    flex-direction: column;
    width: min(320px, 86vw);
    max-width: calc(100vw - 36px);
    height: calc(100dvh - 64px);
    padding: 18px 14px 22px;
    overflow-x: hidden;
    overflow-y: auto;
    visibility: hidden;
    border-right: 1px solid rgba(199, 215, 232, .82);
    background: rgba(255,255,255,.98);
    box-shadow: 24px 0 48px rgba(21, 34, 51, .16);
    transform: translateX(-104%);
    transition: transform .22s ease, visibility .22s ease;
    overscroll-behavior: contain;
  }

  body.user-portal .portal-sidebar.is-open {
    visibility: visible;
    transform: translateX(0);
  }

  body.user-portal .portal-sidebar nav {
    width: 100%;
    min-width: 0;
    margin: 0;
  }

  body.user-portal .portal-sidebar .portal-nav-link {
    width: 100%;
    min-height: 46px;
  }

  .portal-drawer-backdrop {
    position: fixed;
    inset: 64px 0 0;
    z-index: 70;
    display: block;
    visibility: hidden;
    opacity: 0;
    background: rgba(13, 26, 43, .34);
    transition: opacity .2s ease, visibility .2s ease;
  }

  body.user-portal.portal-drawer-open .portal-drawer-backdrop {
    visibility: visible;
    opacity: 1;
  }

  body.user-portal .notification-dropdown {
    position: fixed;
    top: 58px;
    right: 12px;
    left: 12px;
    width: auto;
    max-width: none;
    max-height: calc(100dvh - 76px);
  }

  body.user-portal .account-dropdown {
    right: 0;
    width: min(210px, calc(100vw - 24px));
    min-width: 0;
    max-width: calc(100vw - 24px);
  }
}

@media (max-width: 759px) {
  body.user-portal .dashboard-kpi-grid {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  body.user-portal .dashboard-kpi-grid .dashboard-kpi-card {
    width: 100%;
    min-width: 0;
    min-height: 240px;
    padding: 16px 16px 0;
  }

  body.user-portal .dashboard-kpi-pill {
    max-width: calc(100% - 58px);
    overflow: visible;
    font-size: .68rem;
    text-overflow: clip;
  }

  body.user-portal .dashboard-kpi-primary {
    overflow: visible;
    font-size: 2.12rem;
    text-overflow: clip;
  }

  body.user-portal .dashboard-kpi-descriptor {
    font-size: .86rem;
  }

  body.user-portal .dashboard-kpi-visual,
  body.user-portal .dashboard-kpi-card .dashboard-kpi-visual {
    right: -5%;
    width: 52%;
    max-width: 174px;
    max-height: 146px;
  }

  body.user-portal .dashboard-kpi-bottom {
    margin-inline: -16px;
    padding-inline: 16px;
  }

  body.user-portal .section-dashboard {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-height: 156px;
    padding: 20px 18px;
  }

  body.user-portal .section-dashboard .portal-section-copy {
    max-width: 78%;
    min-width: 0;
  }

  body.user-portal .section-dashboard h1 {
    font-size: 2.05rem;
  }

  body.user-portal .section-dashboard .portal-section-copy > p:not(.portal-eyebrow) {
    max-width: 100%;
    font-size: .84rem;
  }

  body.user-portal .section-dashboard .portal-section-visual {
    inset: 20px -3% 0 auto;
    width: 48%;
    max-width: 190px;
    opacity: .32;
  }
}

@media (max-width: 680px) {
  .portal-global-topbar .account-trigger .account-name {
    display: none;
  }

  body.user-portal .fitness-card-premium {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: 17px 16px 16px;
  }

  body.user-portal .fitness-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 10px;
    width: 100%;
    min-width: 0;
  }

  body.user-portal .fitness-heading > div {
    min-width: 0;
  }

  body.user-portal .fitness-heading h2 {
    font-size: 1.2rem;
  }

  body.user-portal .fitness-heading > a {
    min-width: 0;
    max-width: 100%;
    padding-inline: 11px;
    white-space: nowrap;
  }

  body.user-portal .fitness-summary-band,
  body.user-portal .fitness-summary-metrics,
  body.user-portal .fitness-summary-trend,
  body.user-portal .fitness-card-premium .trend-bars,
  body.user-portal .fitness-support-row,
  body.user-portal .fitness-split-bar {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  body.user-portal .fitness-summary-band {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    padding: 16px 0;
  }

  body.user-portal .fitness-summary-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 0;
  }

  body.user-portal .fitness-summary-metric {
    grid-template-columns: 27px minmax(0, 1fr);
    gap: 7px;
    min-width: 0;
    min-height: 74px;
    padding: 8px 9px;
  }

  body.user-portal .fitness-summary-metric:first-child,
  body.user-portal .fitness-summary-metric:nth-child(3) {
    padding-left: 0;
    border-left: 0;
  }

  body.user-portal .fitness-summary-metric:nth-child(n + 3) {
    border-top: 1px solid rgba(135,154,178,.16);
  }

  body.user-portal .fitness-summary-icon,
  body.user-portal .fitness-summary-icon svg {
    width: 27px;
    height: 27px;
  }

  body.user-portal .fitness-summary-metric strong {
    overflow: visible;
    font-size: .88rem;
    text-overflow: clip;
    white-space: nowrap;
  }

  body.user-portal .fitness-summary-metric small {
    font-size: .62rem;
  }

  body.user-portal .fitness-summary-trend {
    overflow: hidden;
    padding: 15px 0 0;
  }

  body.user-portal .fitness-trend-heading {
    min-width: 0;
  }

  body.user-portal .fitness-trend-heading strong,
  body.user-portal .fitness-trend-heading span {
    min-width: 0;
    font-size: .68rem;
  }

  body.user-portal .fitness-card-premium .trend-bars {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 4px;
    padding-inline: 0;
    overflow: hidden;
  }

  body.user-portal .fitness-card-premium .trend-bars i {
    max-width: 15px;
  }

  body.user-portal .fitness-card-premium .trend-bars small {
    font-size: .54rem;
  }

  body.user-portal .fitness-support-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 12px;
  }

  body.user-portal .fitness-support-heading,
  body.user-portal .fitness-split-bar {
    grid-column: 1 / -1;
  }

  body.user-portal .fitness-sport-item {
    min-width: 0;
  }

  body.user-portal .fitness-sport-item small {
    overflow-wrap: anywhere;
    white-space: normal;
  }
}

@media (max-width: 430px) {
  body.user-portal .portal-main {
    padding: 12px;
  }

  .portal-global-topbar {
    padding-inline: 10px;
  }

  .portal-topbar-brand > span:last-child {
    display: none;
  }

  .portal-global-topbar .account-trigger {
    padding-right: 5px;
  }

  .portal-global-topbar .account-chevron {
    display: none;
  }

  body.user-portal .section-dashboard {
    padding: 18px 16px;
  }

  body.user-portal .section-dashboard h1 {
    font-size: 1.9rem;
  }

  body.user-portal .dashboard-kpi-grid .dashboard-kpi-card {
    padding-inline: 14px;
  }

  body.user-portal .dashboard-kpi-bottom {
    margin-inline: -14px;
    padding-inline: 14px;
  }

  body.user-portal .dashboard-kpi-metric + .dashboard-kpi-metric {
    margin-left: 8px;
    padding-left: 8px;
  }

  body.user-portal .dashboard-kpi-metric strong {
    font-size: .78rem;
  }

  body.user-portal .dashboard-kpi-metric small {
    font-size: .62rem;
  }
}

@media (max-width: 360px) {
  body.user-portal .fitness-heading {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }

  body.user-portal .fitness-heading > a {
    width: max-content;
  }

  body.user-portal .fitness-summary-metric {
    grid-template-columns: 25px minmax(0, 1fr);
    gap: 6px;
    padding-inline: 7px;
  }

  body.user-portal .fitness-summary-icon,
  body.user-portal .fitness-summary-icon svg {
    width: 25px;
    height: 25px;
  }

  body.user-portal .fitness-summary-metric strong {
    font-size: .82rem;
  }

  body.user-portal .fitness-support-row {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .fitness-support-heading,
  body.user-portal .fitness-split-bar {
    grid-column: auto;
  }
}


/* Mobile topbar single-row containment */
@media (max-width: 680px) {
  .portal-global-topbar {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding-right: 12px;
    min-height: 64px;
    height: 64px;
  }

  .portal-global-left {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    overflow: hidden;
  }

  body.user-portal .portal-global-topbar .profile-cluster {
    grid-column: auto;
    display: flex;
    flex: 0 0 auto;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: flex-end;
    width: auto;
    min-width: 0;
    max-width: none;
    margin-right: 0;
    gap: 8px;
  }

  .portal-global-topbar .profile-divider {
    display: none;
  }

  .portal-global-topbar .notification-button,
  .portal-global-topbar .account-menu,
  .portal-global-topbar .account-trigger {
    flex: 0 0 44px;
    width: 44px;
    min-width: 44px;
    max-width: 44px;
  }

  .portal-global-topbar .account-trigger {
    justify-content: center;
    height: 44px;
    min-height: 44px;
    padding: 3px;
    overflow: visible;
    border-radius: 999px;
  }

  .portal-global-topbar .account-trigger .avatar {
    width: 36px;
    height: 36px;
  }

  body.user-portal .account-dropdown {
    right: 0;
    left: auto;
  }
}


/* Dashboard Territories summary module */
body.user-portal .dashboard-territories-module {
  grid-column: 1 / -1;
  padding: 22px 24px 20px;
  overflow: hidden;
  border-color: rgba(205, 218, 233, .82);
  background: rgba(255, 255, 255, .97);
}

body.user-portal .dashboard-territories-heading {
  align-items: center;
  margin-bottom: 16px;
  padding-bottom: 0;
  border-bottom: 0;
}

body.user-portal .dashboard-territories-heading .portal-eyebrow {
  color: #1474df;
  font-size: .7rem;
  font-weight: 720;
  letter-spacing: .08em;
}

body.user-portal .dashboard-territories-heading h2 {
  margin-top: 5px;
  color: #111d31;
  font-size: 1.32rem;
  font-weight: 760;
}

body.user-portal .dashboard-territories-heading > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 17px;
  border: 1px solid rgba(47, 128, 237, .25);
  border-radius: 999px;
  background: #fff;
  color: #1474df;
  font-size: .82rem;
  text-decoration: none;
}

body.user-portal .dashboard-territories-body {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(340px, .88fr);
  align-items: stretch;
  gap: 20px;
  min-width: 0;
}

body.user-portal .dashboard-territory-map,
body.user-portal .dashboard-territory-standings {
  min-width: 0;
}

body.user-portal .dashboard-territory-map > h3,
body.user-portal .dashboard-territory-standings-heading h3 {
  margin: 0;
  color: #17243a;
  font-size: .9rem;
  font-weight: 760;
}

body.user-portal .dashboard-territory-map > h3 {
  margin-bottom: 10px;
}

body.user-portal .dashboard-territory-map .google-map-preview {
  min-height: 390px;
  height: calc(100% - 28px);
  border-radius: 14px;
}

body.user-portal .dashboard-territory-standings {
  display: flex;
  flex-direction: column;
}

body.user-portal .dashboard-territory-standings-heading {
  padding: 1px 4px 7px;
}

body.user-portal .dashboard-territory-standings-heading p {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 7px 0 0;
  color: #5b7190;
  font-size: .72rem;
  font-weight: 650;
  line-height: 1.35;
}

body.user-portal .dashboard-territory-standings-heading p span {
  width: 17px;
  height: 17px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  color: #267bd9;
}

body.user-portal .dashboard-territory-standings-heading svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.user-portal .dashboard-territory-standings .ranking-table {
  width: 100%;
  table-layout: fixed;
  border-spacing: 0 6px;
}

body.user-portal .dashboard-territory-standings .ranking-table tr {
  box-shadow: none;
  transform: none;
}

body.user-portal .dashboard-territory-standings .ranking-table td {
  height: 58px;
  padding: 8px 10px;
  overflow: hidden;
  border-top: 1px solid rgba(213, 224, 237, .76);
  border-bottom: 1px solid rgba(213, 224, 237, .76);
  background: #fff;
  color: #1a2940;
  font-size: .78rem;
  font-weight: 680;
}

body.user-portal .dashboard-territory-standings .ranking-table td:first-child {
  width: 52px;
  border-left: 1px solid rgba(213, 224, 237, .76);
  border-radius: 10px 0 0 10px;
  text-align: center;
}

body.user-portal .dashboard-territory-standings .ranking-table td:last-child {
  width: 78px;
  border-right: 1px solid rgba(213, 224, 237, .76);
  border-radius: 0 10px 10px 0;
  color: #3e5879;
  text-align: right;
}

body.user-portal .dashboard-territory-standings .ranking-table td:last-child strong,
body.user-portal .dashboard-territory-standings .ranking-table td:last-child small {
  display: block;
}

body.user-portal .dashboard-territory-standings .ranking-table td:last-child strong {
  font-size: .9rem;
}

body.user-portal .dashboard-territory-standings .ranking-table td:last-child small {
  margin-top: 2px;
  color: #61738c;
  font-size: .61rem;
  font-weight: 650;
}

body.user-portal .dashboard-territory-standings .ranking-user-cell {
  gap: 9px;
}

body.user-portal .dashboard-territory-standings .ranking-avatar {
  width: 34px;
  height: 34px;
}

body.user-portal .dashboard-territory-standings .ranking-user-cell strong {
  color: #3e5879;
  font-size: .78rem;
  font-weight: 680;
}

body.user-portal .dashboard-territory-standings .ranking-user-cell small {
  width: max-content;
  max-width: 100%;
  margin-top: 3px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #edf5ff;
  color: #2470ca;
  font-size: .61rem;
  font-weight: 620;
}

body.user-portal .dashboard-territory-standings .ranking-table tr.is-user-row td {
  background: #fbfdff;
}

body.user-portal .dashboard-territory-standings .ranking-table tr:hover td,
body.user-portal .dashboard-territory-standings .ranking-table tr.is-selected td {
  border-color: rgba(47, 128, 237, .34);
  background: #f6faff;
}

body.user-portal .dashboard-territory-standings .ranking-table tr.is-selected td:first-child {
  box-shadow: inset 3px 0 0 #2f80ed;
}

body.user-portal .dashboard-territory-selected {
  position: static;
  width: 100%;
  max-width: none;
  display: grid;
  grid-template-columns: minmax(220px, 1.2fr) minmax(240px, 1fr) auto;
  align-items: center;
  gap: 18px;
  margin-top: 18px;
  padding: 14px 16px;
  border: 1px solid rgba(47, 128, 237, .22);
  border-radius: 12px;
  background: linear-gradient(90deg, #f8fbff, #f4f8ff);
  box-shadow: none;
}

body.user-portal .dashboard-territory-selected-identity {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

body.user-portal .dashboard-territory-selected-identity > div {
  min-width: 0;
}

body.user-portal .dashboard-territory-selected-identity span:not(.dashboard-territory-avatar) {
  margin-bottom: 3px;
  color: #73849a;
  font-size: .61rem;
  font-weight: 720;
  letter-spacing: .04em;
}

body.user-portal .dashboard-territory-selected-identity strong {
  display: block;
  overflow: hidden;
  color: #17243a;
  font-size: .95rem;
  font-weight: 760;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .dashboard-territory-avatar {
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  overflow: hidden;
  border: 2px solid #fff;
  border-radius: 50%;
  background: color-mix(in srgb, var(--avatar-accent, #2f80ed) 12%, #fff);
  color: var(--avatar-accent, #2f80ed);
  font-size: .82rem;
  font-weight: 800;
  line-height: 1;
  text-transform: none;
  box-shadow: 0 4px 12px rgba(29, 48, 78, .12);
}

body.user-portal .dashboard-territory-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.user-portal .dashboard-territory-selected > small {
  min-width: 0;
  overflow: hidden;
  color: #536985;
  font-size: .74rem;
  font-weight: 680;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .dashboard-territory-selected .map-status-action {
  min-width: 132px;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 9px 16px;
  border-radius: 8px;
  background: linear-gradient(135deg, #1672df, #0867d5);
  color: #fff;
  font-size: .78rem;
  text-decoration: none;
  box-shadow: 0 8px 18px rgba(18, 105, 213, .2);
}

@media (max-width: 980px) {
  body.user-portal .dashboard-territories-module {
    grid-column: auto;
  }

  body.user-portal .dashboard-territories-body {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .dashboard-territory-map .google-map-preview {
    height: auto;
    min-height: 370px;
  }
}

@media (max-width: 620px) {
  body.user-portal .dashboard-territories-module {
    padding: 17px 16px 16px;
  }

  body.user-portal .dashboard-territories-heading {
    align-items: flex-start;
    gap: 10px;
  }

  body.user-portal .dashboard-territories-heading h2 {
    font-size: 1.12rem;
  }

  body.user-portal .dashboard-territories-heading > a {
    min-height: 36px;
    padding: 7px 12px;
  }

  body.user-portal .dashboard-territory-map .google-map-preview {
    min-height: 320px;
  }

  body.user-portal .dashboard-territory-standings .ranking-table td {
    height: 54px;
    padding-inline: 7px;
  }

  body.user-portal .dashboard-territory-standings .ranking-table td:first-child {
    width: 40px;
  }

  body.user-portal .dashboard-territory-standings .ranking-table td:last-child {
    width: 64px;
  }

  body.user-portal .dashboard-territory-standings .ranking-avatar {
    width: 30px;
    height: 30px;
  }

  body.user-portal .dashboard-territory-standings .ranking-user-cell {
    gap: 7px;
  }

  body.user-portal .dashboard-territory-selected {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px 12px;
    padding: 12px;
  }

  body.user-portal .dashboard-territory-selected > small {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  body.user-portal .dashboard-territory-selected .map-status-action {
    grid-column: 2;
    grid-row: 1;
    min-width: 112px;
    min-height: 38px;
    padding-inline: 12px;
  }
}

@media (max-width: 390px) {
  body.user-portal .dashboard-territory-selected {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .dashboard-territory-selected > small,
  body.user-portal .dashboard-territory-selected .map-status-action {
    grid-column: 1;
    grid-row: auto;
  }

  body.user-portal .dashboard-territory-selected .map-status-action {
    width: 100%;
  }
}


/* Dashboard Recent activity module */
body.user-portal .dashboard-recent-activity-module {
  grid-column: 1 / -1;
  padding: 22px 24px 20px;
  overflow: hidden;
  border-color: rgba(205, 218, 233, .82);
  background: rgba(255, 255, 255, .97);
}

body.user-portal .dashboard-recent-activity-heading {
  align-items: center;
  margin-bottom: 0;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(213, 224, 237, .72);
}

body.user-portal .dashboard-recent-activity-heading .portal-eyebrow {
  color: #1474df;
  font-size: .7rem;
  font-weight: 720;
  letter-spacing: .08em;
}

body.user-portal .dashboard-recent-activity-heading h2 {
  margin-top: 5px;
  color: #111d31;
  font-size: 1.32rem;
  font-weight: 760;
}

body.user-portal .dashboard-recent-activity-heading > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 17px;
  border: 1px solid rgba(47, 128, 237, .25);
  border-radius: 999px;
  background: #fff;
  color: #1474df;
  font-size: .82rem;
  text-decoration: none;
}

body.user-portal .dashboard-activity-list {
  gap: 8px;
  margin: 12px 0 0;
}

body.user-portal .dashboard-activity-list > li {
  min-width: 0;
}

body.user-portal .dashboard-activity-row {
  grid-template-columns: 50px minmax(190px, 1.35fr) minmax(420px, 1fr) 22px;
  align-items: center;
  gap: 16px;
  min-width: 0;
  min-height: 84px;
  padding: 13px 15px;
  overflow: hidden;
  border-color: rgba(213, 224, 237, .78);
  border-radius: 14px;
  background: #fff;
  color: #17243a;
  text-decoration: none;
  box-shadow: 0 5px 14px rgba(29, 48, 78, .035);
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease;
}

body.user-portal .dashboard-activity-row:hover,
body.user-portal .dashboard-activity-row:focus-visible {
  border-color: rgba(47, 128, 237, .3);
  background: #fbfdff;
  box-shadow: 0 10px 22px rgba(35, 116, 171, .08);
  outline: none;
  transform: translateY(-1px);
}

body.user-portal .dashboard-activity-row .activity-sport-chip {
  width: 48px;
  height: 48px;
  display: inline-grid;
  place-items: center;
  margin: 0;
  border: 1px solid rgba(47, 128, 237, .14);
  border-radius: 14px;
  background: linear-gradient(145deg, #f8fcff, #e9f4ff);
  color: #2180eb;
  box-shadow: none;
}

body.user-portal .dashboard-activity-row .activity-main {
  min-width: 0;
}

body.user-portal .dashboard-activity-row .activity-main strong {
  overflow: hidden;
  color: #17243a;
  font-size: .92rem;
  font-weight: 760;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .dashboard-activity-row .activity-main span {
  margin: 5px 0 0;
  overflow: hidden;
  color: #526986;
  font-size: .76rem;
  font-weight: 560;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .dashboard-activity-metrics {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
}

body.user-portal .dashboard-activity-metric {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin: 0;
  padding: 2px 8px;
  border-left: 1px solid rgba(213, 224, 237, .76);
  color: #536985;
  text-align: center;
}

body.user-portal .dashboard-activity-metric strong {
  max-width: 100%;
  display: inline-block;
  margin: 0;
  padding: 5px 10px;
  overflow: hidden;
  border-radius: 999px;
  color: #36516f;
  font-size: .72rem;
  font-weight: 760;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .dashboard-activity-metric small {
  display: block;
  margin: 0;
  color: #65778f;
  font-size: .64rem;
  font-weight: 580;
  line-height: 1;
  text-align: center;
}

body.user-portal .dashboard-activity-metric--distance strong {
  background: #eaf8f0;
  color: #19855d;
}

body.user-portal .dashboard-activity-metric--time strong {
  background: #eaf3ff;
  color: #1769c1;
}

body.user-portal .dashboard-activity-metric--conquest strong {
  background: #fff5dc;
  color: #9a6508;
}

body.user-portal .dashboard-activity-metric--territories strong {
  min-width: 48px;
  background: #fff0ef;
  color: #bd554e;
}

body.user-portal .dashboard-activity-chevron {
  width: 22px;
  height: 22px;
  display: inline-grid;
  place-items: center;
  margin: 0;
  color: #2180eb;
}

body.user-portal .dashboard-activity-chevron svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transform: rotate(-90deg);
}

@media (max-width: 1080px) {
  body.user-portal .dashboard-activity-row {
    grid-template-columns: 48px minmax(170px, 1fr) minmax(380px, 1.25fr) 20px;
    gap: 12px;
    padding-inline: 13px;
  }

  body.user-portal .dashboard-activity-metric {
    padding-inline: 5px;
  }

  body.user-portal .dashboard-activity-metric strong {
    padding-inline: 7px;
    font-size: .68rem;
  }
}

@media (max-width: 900px) {
  body.user-portal .dashboard-recent-activity-module {
    grid-column: auto;
  }

  body.user-portal .dashboard-activity-row {
    grid-template-columns: 48px minmax(0, 1fr) 20px;
    gap: 12px;
  }

  body.user-portal .dashboard-activity-metrics {
    grid-column: 1 / -1;
    grid-row: 2;
    padding-top: 11px;
    border-top: 1px solid rgba(213, 224, 237, .62);
  }

  body.user-portal .dashboard-activity-chevron {
    grid-column: 3;
    grid-row: 1;
  }

  body.user-portal .dashboard-activity-metric:first-child {
    border-left: 0;
  }
}

@media (max-width: 620px) {
  body.user-portal .dashboard-recent-activity-module {
    padding: 17px 16px 16px;
  }

  body.user-portal .dashboard-recent-activity-heading {
    align-items: flex-start;
    gap: 10px;
    padding-bottom: 13px;
  }

  body.user-portal .dashboard-recent-activity-heading h2 {
    font-size: 1.12rem;
  }

  body.user-portal .dashboard-recent-activity-heading > a {
    min-height: 36px;
    padding: 7px 12px;
  }

  body.user-portal .dashboard-activity-list {
    margin-top: 10px;
  }

  body.user-portal .dashboard-activity-row {
    min-height: 0;
    padding: 12px;
  }
}

@media (max-width: 480px) {
  body.user-portal .dashboard-activity-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 8px;
  }

  body.user-portal .dashboard-activity-metric:nth-child(3) {
    border-left: 0;
  }

  body.user-portal .dashboard-activity-metric:nth-child(n + 3) {
    padding-top: 8px;
    border-top: 1px solid rgba(213, 224, 237, .55);
  }
}

@media (max-width: 360px) {
  body.user-portal .dashboard-activity-row {
    grid-template-columns: 42px minmax(0, 1fr) 18px;
    gap: 9px;
    padding-inline: 10px;
  }

  body.user-portal .dashboard-activity-row .activity-sport-chip {
    width: 42px;
    height: 42px;
  }

  body.user-portal .dashboard-activity-row .activity-main strong {
    font-size: .84rem;
  }

  body.user-portal .dashboard-activity-row .activity-main span {
    font-size: .69rem;
  }
}


/* Dashboard Wallet overview module */
body.user-portal .dashboard-wallet-module {
  grid-column: 1 / -1;
  padding: 22px 24px 20px;
  overflow: hidden;
  border-color: rgba(205, 218, 233, .82);
  background: rgba(255, 255, 255, .97);
}

body.user-portal .dashboard-wallet-heading {
  align-items: center;
  margin-bottom: 16px;
  padding-bottom: 0;
  border-bottom: 0;
}

body.user-portal .dashboard-wallet-heading .portal-eyebrow,
body.user-portal .dashboard-wallet-panel-heading .portal-eyebrow,
body.user-portal .dashboard-wallet-actions .portal-eyebrow {
  color: #1474df;
  font-size: .68rem;
  font-weight: 720;
  letter-spacing: .08em;
}

body.user-portal .dashboard-wallet-heading h2 {
  margin-top: 5px;
  color: #111d31;
  font-size: 1.32rem;
  font-weight: 760;
}

body.user-portal .dashboard-wallet-heading > div > p:last-child {
  margin: 6px 0 0;
  color: #60728a;
  font-size: .78rem;
  font-weight: 540;
}

body.user-portal .dashboard-wallet-heading > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 17px;
  border: 1px solid rgba(47, 128, 237, .25);
  border-radius: 999px;
  background: #fff;
  color: #1474df;
  font-size: .82rem;
  text-decoration: none;
}

body.user-portal .dashboard-wallet-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(213, 224, 237, .76);
  border-radius: 14px;
  background: #fff;
}

body.user-portal .dashboard-wallet-metric {
  --wallet-metric-color: #2478d4;
  --wallet-metric-bg: #eaf3ff;
  min-width: 0;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  min-height: 104px;
  padding: 15px 16px;
  border-left: 1px solid rgba(213, 224, 237, .7);
}

body.user-portal .dashboard-wallet-metric:first-child {
  border-left: 0;
}

body.user-portal .dashboard-wallet-metric--lifetime {
  --wallet-metric-color: #158c68;
  --wallet-metric-bg: #e8f8f2;
}

body.user-portal .dashboard-wallet-metric--review {
  --wallet-metric-color: #b87a0e;
  --wallet-metric-bg: #fff5df;
}

body.user-portal .dashboard-wallet-metric--entries {
  --wallet-metric-color: #7353c8;
  --wallet-metric-bg: #f1edff;
}

body.user-portal .dashboard-wallet-metric-icon {
  width: 44px;
  height: 44px;
  display: inline-grid;
  place-items: center;
  margin: 0;
  border-radius: 50%;
  background: var(--wallet-metric-bg);
  color: var(--wallet-metric-color);
}

body.user-portal .dashboard-wallet-metric-icon svg,
body.user-portal .dashboard-wallet-payout-icon svg,
body.user-portal .dashboard-wallet-action-icon svg,
body.user-portal .dashboard-wallet-trust-note > span svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.user-portal .dashboard-wallet-metric > div {
  min-width: 0;
}

body.user-portal .dashboard-wallet-metric small,
body.user-portal .dashboard-wallet-metric strong,
body.user-portal .dashboard-wallet-metric > div > span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.user-portal .dashboard-wallet-metric small {
  color: #63758d;
  font-size: .62rem;
  font-weight: 720;
  letter-spacing: .03em;
  text-transform: uppercase;
  white-space: nowrap;
}

body.user-portal .dashboard-wallet-metric strong {
  margin-top: 6px;
  color: #17243a;
  font-size: 1.08rem;
  font-weight: 780;
  line-height: 1;
  white-space: nowrap;
}

body.user-portal .dashboard-wallet-metric > div > span {
  margin-top: 7px;
  color: #64768d;
  font-size: .68rem;
  font-weight: 540;
  white-space: nowrap;
}

body.user-portal .dashboard-wallet-content {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(280px, .65fr);
  align-items: stretch;
  gap: 16px;
  min-width: 0;
  margin-top: 16px;
}

body.user-portal .dashboard-wallet-payouts,
body.user-portal .dashboard-wallet-actions {
  min-width: 0;
  padding: 17px;
  border: 1px solid rgba(213, 224, 237, .76);
  border-radius: 14px;
  background: #fff;
}

body.user-portal .dashboard-wallet-panel-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(213, 224, 237, .64);
}

body.user-portal .dashboard-wallet-panel-heading h3,
body.user-portal .dashboard-wallet-actions h3 {
  margin: 4px 0 0;
  color: #17243a;
  font-size: .9rem;
  font-weight: 750;
}

body.user-portal .dashboard-wallet-panel-heading > span {
  min-width: 28px;
  height: 28px;
  display: inline-grid;
  place-items: center;
  padding-inline: 8px;
  border-radius: 999px;
  background: #eaf3ff;
  color: #176dcc;
  font-size: .7rem;
  font-weight: 760;
}

body.user-portal .dashboard-wallet-payout-summary {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 18px 4px;
}

body.user-portal .dashboard-wallet-payout-icon,
body.user-portal .dashboard-wallet-action-icon {
  width: 40px;
  height: 40px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 12px;
  background: #eef6ff;
  color: #2478d4;
}

body.user-portal .dashboard-wallet-payout-summary > div {
  min-width: 0;
}

body.user-portal .dashboard-wallet-payout-summary strong {
  display: block;
  overflow: hidden;
  color: #20314a;
  font-size: .86rem;
  font-weight: 740;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .dashboard-wallet-payout-summary p {
  margin: 5px 0 0;
  color: #62758c;
  font-size: .72rem;
  font-weight: 540;
  line-height: 1.4;
}

body.user-portal .dashboard-wallet-review-state {
  padding: 6px 10px;
  border-radius: 999px;
  background: #fff5df;
  color: #9c680d;
  font-size: .66rem;
  font-weight: 720;
  white-space: nowrap;
}

body.user-portal .dashboard-wallet-panel-link {
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-top: 1px solid rgba(213, 224, 237, .64);
  color: #176dcc;
  font-size: .74rem;
  font-weight: 720;
  text-decoration: none;
}

body.user-portal .dashboard-wallet-panel-link span,
body.user-portal .dashboard-wallet-actions a > i {
  width: 17px;
  height: 17px;
  display: inline-grid;
  place-items: center;
  color: #2478d4;
  font-style: normal;
}

body.user-portal .dashboard-wallet-panel-link svg,
body.user-portal .dashboard-wallet-actions a > i svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transform: rotate(-90deg);
}

body.user-portal .dashboard-wallet-side {
  min-width: 0;
  display: grid;
  gap: 12px;
}

body.user-portal .dashboard-wallet-actions > a {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) 17px;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 12px 0;
  border-bottom: 1px solid rgba(213, 224, 237, .64);
  color: #20314a;
  text-decoration: none;
}

body.user-portal .dashboard-wallet-actions > a:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

body.user-portal .dashboard-wallet-actions > a > span:nth-child(2) {
  min-width: 0;
}

body.user-portal .dashboard-wallet-actions strong,
body.user-portal .dashboard-wallet-actions small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .dashboard-wallet-actions strong {
  font-size: .78rem;
  font-weight: 730;
}

body.user-portal .dashboard-wallet-actions small {
  margin-top: 4px;
  color: #65778e;
  font-size: .66rem;
  font-weight: 540;
}

body.user-portal .dashboard-wallet-actions > a:hover strong,
body.user-portal .dashboard-wallet-actions > a:focus-visible strong,
body.user-portal .dashboard-wallet-panel-link:hover,
body.user-portal .dashboard-wallet-panel-link:focus-visible {
  color: #0f69cf;
}

body.user-portal .dashboard-wallet-actions > a:focus-visible,
body.user-portal .dashboard-wallet-panel-link:focus-visible {
  outline: 2px solid rgba(47, 128, 237, .24);
  outline-offset: 3px;
}

body.user-portal .dashboard-wallet-trust-note {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  min-width: 0;
  padding: 13px 14px;
  border: 1px solid rgba(47, 128, 237, .16);
  border-radius: 12px;
  background: #f6faff;
  color: #2478d4;
}

body.user-portal .dashboard-wallet-trust-note > span {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  border-radius: 10px;
  background: #e8f3ff;
}

body.user-portal .dashboard-wallet-trust-note p {
  margin: 0;
  color: #61748c;
  font-size: .68rem;
  font-weight: 540;
  line-height: 1.45;
}

body.user-portal .dashboard-wallet-trust-note strong {
  display: block;
  margin-bottom: 3px;
  color: #304963;
  font-size: .72rem;
  font-weight: 740;
}

@media (max-width: 980px) {
  body.user-portal .dashboard-wallet-module {
    grid-column: auto;
  }

  body.user-portal .dashboard-wallet-content {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .dashboard-wallet-side {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: stretch;
  }
}

@media (max-width: 760px) {
  body.user-portal .dashboard-wallet-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.user-portal .dashboard-wallet-metric:nth-child(3) {
    border-left: 0;
  }

  body.user-portal .dashboard-wallet-metric:nth-child(n + 3) {
    border-top: 1px solid rgba(213, 224, 237, .7);
  }

  body.user-portal .dashboard-wallet-side {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 620px) {
  body.user-portal .dashboard-wallet-module {
    padding: 17px 16px 16px;
  }

  body.user-portal .dashboard-wallet-heading {
    align-items: flex-start;
    gap: 10px;
  }

  body.user-portal .dashboard-wallet-heading h2 {
    font-size: 1.12rem;
  }

  body.user-portal .dashboard-wallet-heading > a {
    min-height: 36px;
    padding: 7px 12px;
  }

  body.user-portal .dashboard-wallet-metric {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 9px;
    min-height: 94px;
    padding: 12px 10px;
  }

  body.user-portal .dashboard-wallet-metric-icon {
    width: 38px;
    height: 38px;
  }

  body.user-portal .dashboard-wallet-metric small {
    white-space: normal;
  }

  body.user-portal .dashboard-wallet-metric strong {
    font-size: .96rem;
  }

  body.user-portal .dashboard-wallet-metric > div > span {
    white-space: normal;
  }

  body.user-portal .dashboard-wallet-payouts,
  body.user-portal .dashboard-wallet-actions {
    padding: 14px;
  }

  body.user-portal .dashboard-wallet-payout-summary {
    grid-template-columns: 40px minmax(0, 1fr);
  }

  body.user-portal .dashboard-wallet-review-state {
    grid-column: 2;
    width: max-content;
  }
}

@media (max-width: 360px) {
  body.user-portal .dashboard-wallet-metric {
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
  }

  body.user-portal .dashboard-wallet-metric-icon {
    width: 34px;
    height: 34px;
  }

  body.user-portal .dashboard-wallet-metric strong {
    margin-top: 5px;
  }
}


/* Dashboard Wallet earnings overview */
body.user-portal .dashboard-wallet-earnings {
  min-width: 0;
  margin-top: 16px;
  padding: 17px;
  border: 1px solid rgba(213, 224, 237, .76);
  border-radius: 14px;
  background: linear-gradient(180deg, #fff, #fbfdff);
}

body.user-portal .dashboard-wallet-earnings-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(213, 224, 237, .64);
}

body.user-portal .dashboard-wallet-earnings-heading > div {
  min-width: 0;
}

body.user-portal .dashboard-wallet-earnings-heading .portal-eyebrow {
  color: #1474df;
  font-size: .68rem;
  font-weight: 720;
  letter-spacing: .08em;
}

body.user-portal .dashboard-wallet-earnings-heading h3 {
  margin: 4px 0 0;
  color: #17243a;
  font-size: .9rem;
  font-weight: 750;
}

body.user-portal .dashboard-wallet-earnings-heading > div > p:last-child {
  margin: 5px 0 0;
  color: #62758c;
  font-size: .72rem;
  font-weight: 540;
}

body.user-portal .dashboard-wallet-earnings-heading > span {
  flex: 0 0 auto;
  padding: 7px 11px;
  border: 1px solid rgba(213, 224, 237, .82);
  border-radius: 999px;
  background: #fff;
  color: #536985;
  font-size: .67rem;
  font-weight: 680;
  white-space: nowrap;
}

body.user-portal .dashboard-wallet-earnings-body {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  align-items: center;
  gap: 22px;
  min-width: 0;
  padding-top: 16px;
}

body.user-portal .dashboard-wallet-earnings-total {
  min-width: 0;
  padding-right: 20px;
  border-right: 1px solid rgba(213, 224, 237, .68);
}

body.user-portal .dashboard-wallet-earnings-total span,
body.user-portal .dashboard-wallet-earnings-total strong,
body.user-portal .dashboard-wallet-earnings-total small {
  display: block;
}

body.user-portal .dashboard-wallet-earnings-total span {
  color: #63758d;
  font-size: .66rem;
  font-weight: 700;
  text-transform: uppercase;
}

body.user-portal .dashboard-wallet-earnings-total strong {
  margin-top: 7px;
  color: #176dcc;
  font-size: 1.45rem;
  font-weight: 790;
  line-height: 1;
}

body.user-portal .dashboard-wallet-earnings-total small {
  margin-top: 8px;
  color: #6b7c92;
  font-size: .66rem;
  font-weight: 540;
}

body.user-portal .dashboard-wallet-chart {
  min-width: 0;
  overflow: hidden;
}

body.user-portal .dashboard-wallet-chart svg {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
}

body.user-portal .dashboard-wallet-chart-grid {
  fill: none;
  stroke: #dce7f3;
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

body.user-portal .dashboard-wallet-chart-area {
  fill: url(#dashboard-wallet-earnings-fill);
  stroke: none;
}

body.user-portal .dashboard-wallet-chart-line {
  fill: none;
  stroke: #247be0;
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

body.user-portal .dashboard-wallet-chart-dots circle {
  fill: #fff;
  stroke: #247be0;
  stroke-width: 1.75;
  vector-effect: non-scaling-stroke;
}

body.user-portal .dashboard-wallet-chart-labels {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 4px;
  color: #718198;
  font-size: .61rem;
  font-weight: 560;
}

body.user-portal .dashboard-wallet-chart-labels span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .dashboard-wallet-chart-labels span:nth-child(2) {
  text-align: center;
}

body.user-portal .dashboard-wallet-chart-labels span:last-child {
  text-align: right;
}

body.user-portal .dashboard-wallet-earnings-empty {
  min-height: 130px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 0;
  padding: 18px;
  border: 1px dashed rgba(47, 128, 237, .22);
  border-radius: 12px;
  background: #f8fbff;
  color: #65788f;
  text-align: center;
}

body.user-portal .dashboard-wallet-earnings-empty strong {
  color: #304963;
  font-size: .82rem;
  font-weight: 720;
}

body.user-portal .dashboard-wallet-earnings-empty span {
  font-size: .7rem;
  font-weight: 540;
  line-height: 1.4;
}

@media (max-width: 760px) {
  body.user-portal .dashboard-wallet-earnings-body {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  body.user-portal .dashboard-wallet-earnings-total {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 4px 12px;
    padding: 0 0 12px;
    border-right: 0;
    border-bottom: 1px solid rgba(213, 224, 237, .68);
  }

  body.user-portal .dashboard-wallet-earnings-total strong {
    grid-column: 2;
    grid-row: 1 / span 2;
    margin-top: 0;
  }

  body.user-portal .dashboard-wallet-earnings-total small {
    margin-top: 0;
  }
}

@media (max-width: 620px) {
  body.user-portal .dashboard-wallet-earnings {
    padding: 14px;
  }

  body.user-portal .dashboard-wallet-earnings-heading {
    gap: 10px;
  }

  body.user-portal .dashboard-wallet-earnings-heading > span {
    padding: 6px 9px;
  }

  body.user-portal .dashboard-wallet-earnings-total strong {
    font-size: 1.25rem;
  }

  body.user-portal .dashboard-wallet-chart-labels {
    font-size: .58rem;
  }
}

@media (max-width: 390px) {
  body.user-portal .dashboard-wallet-earnings-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .dashboard-wallet-earnings-heading > span {
    width: max-content;
  }

  body.user-portal .dashboard-wallet-earnings-total {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .dashboard-wallet-earnings-total strong {
    grid-column: 1;
    grid-row: auto;
    margin-top: 4px;
  }
}


/* Dashboard Wallet payout request preview */
body.user-portal .dashboard-wallet-panel-heading > div {
  min-width: 0;
}

body.user-portal .dashboard-wallet-panel-heading > div > p:last-child {
  margin: 5px 0 0;
  color: #62758c;
  font-size: .68rem;
  font-weight: 540;
}

body.user-portal .dashboard-wallet-request-list {
  min-width: 0;
}

body.user-portal .dashboard-wallet-request-row {
  display: grid;
  grid-template-columns: 38px minmax(150px, 1.25fr) 76px 96px minmax(118px, .8fr) 18px;
  align-items: center;
  gap: 10px;
  min-width: 0;
  min-height: 62px;
  padding: 10px 4px;
  border-bottom: 1px solid rgba(213, 224, 237, .64);
  color: #20314a;
  text-decoration: none;
  transition: background .16s ease, color .16s ease;
}

body.user-portal .dashboard-wallet-request-row:hover,
body.user-portal .dashboard-wallet-request-row:focus-visible {
  background: #f8fbff;
  outline: none;
}

body.user-portal .dashboard-wallet-request-icon {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  border-radius: 10px;
  background: #eef6ff;
  color: #2478d4;
}

body.user-portal .dashboard-wallet-request-icon svg,
body.user-portal .dashboard-wallet-request-chevron svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.user-portal .dashboard-wallet-request-main,
body.user-portal .dashboard-wallet-request-amount,
body.user-portal .dashboard-wallet-request-status,
body.user-portal .dashboard-wallet-request-updated {
  min-width: 0;
}

body.user-portal .dashboard-wallet-request-main strong,
body.user-portal .dashboard-wallet-request-main small,
body.user-portal .dashboard-wallet-request-amount strong,
body.user-portal .dashboard-wallet-request-amount small,
body.user-portal .dashboard-wallet-request-updated strong,
body.user-portal .dashboard-wallet-request-updated small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .dashboard-wallet-request-main strong {
  color: #304963;
  font-size: .74rem;
  font-weight: 720;
}

body.user-portal .dashboard-wallet-request-main small,
body.user-portal .dashboard-wallet-request-amount small,
body.user-portal .dashboard-wallet-request-updated small {
  margin-top: 4px;
  color: #718198;
  font-size: .59rem;
  font-weight: 540;
}

body.user-portal .dashboard-wallet-request-amount {
  text-align: right;
}

body.user-portal .dashboard-wallet-request-amount strong {
  color: #304963;
  font-size: .76rem;
  font-weight: 750;
}

body.user-portal .dashboard-wallet-request-status {
  display: flex;
  justify-content: center;
}

body.user-portal .dashboard-wallet-request-status .wallet-status {
  max-width: 100%;
  overflow: hidden;
  font-size: .61rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .dashboard-wallet-request-updated strong {
  margin-top: 4px;
  color: #526981;
  font-size: .64rem;
  font-weight: 640;
}

body.user-portal .dashboard-wallet-request-chevron {
  width: 18px;
  height: 18px;
  display: inline-grid;
  place-items: center;
  color: #2478d4;
}

body.user-portal .dashboard-wallet-request-chevron svg {
  transform: rotate(-90deg);
}

body.user-portal .dashboard-wallet-payout-empty {
  min-height: 116px;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 18px 4px;
  border-bottom: 1px solid rgba(213, 224, 237, .64);
}

body.user-portal .dashboard-wallet-payout-empty > span {
  width: 40px;
  height: 40px;
  display: inline-grid;
  place-items: center;
  border-radius: 12px;
  background: #eef6ff;
  color: #2478d4;
}

body.user-portal .dashboard-wallet-payout-empty svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.user-portal .dashboard-wallet-payout-empty strong {
  display: block;
  color: #304963;
  font-size: .78rem;
  font-weight: 720;
}

body.user-portal .dashboard-wallet-payout-empty p {
  margin: 5px 0 0;
  color: #65788f;
  font-size: .68rem;
  font-weight: 540;
  line-height: 1.4;
}

@media (max-width: 1180px) {
  body.user-portal .dashboard-wallet-request-row {
    grid-template-columns: 36px minmax(130px, 1fr) 70px 90px minmax(100px, .75fr) 16px;
    gap: 8px;
  }
}

@media (max-width: 760px) {
  body.user-portal .dashboard-wallet-request-row {
    grid-template-columns: 36px minmax(0, 1fr) auto 18px;
    gap: 8px 10px;
    padding-block: 11px;
  }

  body.user-portal .dashboard-wallet-request-main {
    grid-column: 2;
    grid-row: 1;
  }

  body.user-portal .dashboard-wallet-request-amount {
    grid-column: 3;
    grid-row: 1;
  }

  body.user-portal .dashboard-wallet-request-status {
    grid-column: 2;
    grid-row: 2;
    justify-content: flex-start;
  }

  body.user-portal .dashboard-wallet-request-updated {
    grid-column: 3;
    grid-row: 2;
    text-align: right;
  }

  body.user-portal .dashboard-wallet-request-chevron {
    grid-column: 4;
    grid-row: 1 / span 2;
  }
}

@media (max-width: 430px) {
  body.user-portal .dashboard-wallet-request-row {
    grid-template-columns: 34px minmax(0, 1fr) 18px;
  }

  body.user-portal .dashboard-wallet-request-icon {
    width: 32px;
    height: 32px;
  }

  body.user-portal .dashboard-wallet-request-main {
    grid-column: 2;
  }

  body.user-portal .dashboard-wallet-request-amount,
  body.user-portal .dashboard-wallet-request-status,
  body.user-portal .dashboard-wallet-request-updated {
    grid-column: 2;
    text-align: left;
  }

  body.user-portal .dashboard-wallet-request-amount {
    grid-row: 2;
  }

  body.user-portal .dashboard-wallet-request-status {
    grid-row: 3;
  }

  body.user-portal .dashboard-wallet-request-updated {
    grid-row: 4;
  }

  body.user-portal .dashboard-wallet-request-chevron {
    grid-column: 3;
    grid-row: 1 / span 4;
  }
}


/* Activities feed card approved layout */
body.user-portal .activities-page .activities-feed {
  gap: 18px;
}

body.user-portal .activities-page .activity-feed-card {
  padding: 0;
  overflow: hidden;
  border-color: rgba(205, 218, 233, .82);
  border-radius: 18px;
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 14px 32px rgba(29, 48, 78, .065);
}

body.user-portal .activities-page .activity-card-header {
  padding: 20px 22px 16px;
  border-bottom: 1px solid rgba(213, 224, 237, .68);
}

body.user-portal .activities-page .activity-card-topline {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}

body.user-portal .activities-page .activity-avatar {
  width: 48px;
  height: 48px;
  border: 2px solid #fff;
  box-shadow: 0 5px 14px rgba(29, 48, 78, .12);
}

body.user-portal .activities-page .activity-author {
  margin: 0;
}

body.user-portal .activities-page .activity-author strong {
  overflow: hidden;
  color: #17243a;
  font-size: .9rem;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .activities-page .activity-author span {
  margin-top: 3px;
  overflow: hidden;
  color: #60728a;
  font-size: .74rem;
  font-weight: 540;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .activities-page .activity-sport-pill {
  min-height: 38px;
  margin: 0;
  padding: 8px 13px;
  border: 1px solid rgba(47, 128, 237, .12);
  background: #edf5ff;
  color: #176dcc;
  font-size: .72rem;
  font-weight: 690;
}

body.user-portal .activities-page .activity-card-meta {
  margin-top: 15px;
  color: #5f7189;
  font-size: .72rem;
  font-weight: 650;
}

body.user-portal .activities-page .activity-card-body {
  margin-top: 6px;
}

body.user-portal .activities-page .activity-card-body h2 {
  margin: 0;
  color: #111d31;
  font-size: 1.28rem;
  font-weight: 770;
  line-height: 1.25;
}

body.user-portal .activities-page .activity-card-body h2 a {
  color: inherit;
  text-decoration: none;
}

body.user-portal .activities-page .activity-card-body p {
  max-width: 760px;
  margin: 7px 0 0;
  color: #60728a;
  font-size: .76rem;
  font-weight: 480;
  line-height: 1.45;
}

body.user-portal .activities-page .activity-card-content {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(300px, .85fr);
  align-items: stretch;
  gap: 14px;
  min-width: 0;
  padding: 18px 20px;
}

body.user-portal .activities-page .activity-card-map-pane,
body.user-portal .activities-page .activity-summary-panel {
  min-width: 0;
}

body.user-portal .activities-page .activity-card-map-pane {
  display: flex;
}

body.user-portal .activities-page .activity-route-visual,
body.user-portal .activities-page .activity-route-visual.is-empty {
  width: 100%;
  min-height: 410px;
  height: 100%;
  margin: 0;
  border-radius: 14px;
}

body.user-portal .activities-page .activity-summary-panel {
  padding: 17px;
  border: 1px solid rgba(213, 224, 237, .78);
  border-radius: 14px;
  background: #fff;
}

body.user-portal .activities-page .activity-summary-panel > .portal-eyebrow {
  margin-bottom: 9px;
  color: #5c6f89;
  font-size: .66rem;
  font-weight: 720;
  letter-spacing: .08em;
}

body.user-portal .activities-page .activity-summary-metrics {
  min-width: 0;
}

body.user-portal .activities-page .activity-summary-metric {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-width: 0;
  min-height: 57px;
  padding: 8px 2px;
  border-bottom: 1px solid rgba(213, 224, 237, .65);
}

body.user-portal .activities-page .activity-summary-metric.is-conquest,
body.user-portal .activities-page .activity-summary-metric.is-territory {
  margin-top: 7px;
  padding: 9px;
  border: 1px solid rgba(224, 202, 153, .45);
  border-radius: 11px;
  background: #fffaf0;
}

body.user-portal .activities-page .activity-summary-metric.is-territory {
  border-color: rgba(75, 165, 125, .2);
  background: #f5fbf7;
}

body.user-portal .activities-page .activity-summary-icon {
  --summary-icon-color: #2374d8;
  --summary-icon-bg: #edf5ff;
  width: 38px;
  height: 38px;
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  background: var(--summary-icon-bg);
  color: var(--summary-icon-color);
}

body.user-portal .activities-page .activity-summary-icon.distance,
body.user-portal .activities-page .activity-summary-icon.territory {
  --summary-icon-color: #16895f;
  --summary-icon-bg: #e9f8f0;
}

body.user-portal .activities-page .activity-summary-icon.elevation {
  --summary-icon-color: #7353c8;
  --summary-icon-bg: #f1edff;
}

body.user-portal .activities-page .activity-summary-icon.conquest {
  --summary-icon-color: #ae7106;
  --summary-icon-bg: #fff2d7;
}

body.user-portal .activities-page .activity-summary-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.user-portal .activities-page .activity-summary-metric > div {
  min-width: 0;
}

body.user-portal .activities-page .activity-summary-metric small,
body.user-portal .activities-page .activity-summary-metric strong {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.user-portal .activities-page .activity-summary-metric small {
  color: #62758d;
  font-size: .65rem;
  font-weight: 570;
  white-space: nowrap;
}

body.user-portal .activities-page .activity-summary-metric strong {
  margin-top: 4px;
  color: #17243a;
  font-size: .9rem;
  font-weight: 740;
  line-height: 1.2;
  white-space: nowrap;
}

body.user-portal .activities-page .activity-summary-metric.is-conquest strong {
  color: #a36a07;
}

body.user-portal .activities-page .activity-summary-metric.is-territory strong {
  color: #257554;
  font-size: .72rem;
  white-space: normal;
}

body.user-portal .activities-page .activity-summary-rewards {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 9px;
}

body.user-portal .activities-page .activity-summary-rewards:empty {
  display: none;
}

body.user-portal .activities-page .activity-summary-rewards .activity-badge {
  min-height: 28px;
  font-size: .68rem;
}

body.user-portal .activities-page .activity-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  margin: 0 20px 20px;
  padding: 8px 10px;
  overflow: hidden;
  border: 1px solid rgba(213, 224, 237, .76);
  border-radius: 12px;
  background: #fbfdff;
}

body.user-portal .activities-page .activity-actions form {
  display: flex;
  margin: 0;
}

body.user-portal .activities-page .activity-action {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 14px;
  border: 0;
  border-right: 1px solid rgba(213, 224, 237, .8);
  border-radius: 0;
  background: transparent;
  color: #304963;
  font-size: .72rem;
  font-weight: 650;
  white-space: nowrap;
  box-shadow: none;
}

body.user-portal .activities-page .activity-actions > .activity-action:last-child {
  border-right: 0;
}

body.user-portal .activities-page .activity-action:hover,
body.user-portal .activities-page .activity-action:focus-visible {
  background: #eef6ff;
  color: #176dcc;
  outline: none;
  transform: none;
}

body.user-portal .activities-page .activity-action.is-active {
  background: #fff0ed;
  color: #a23d32;
}

body.user-portal .activities-page .activity-action-icon {
  width: 19px;
  height: 19px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
}

body.user-portal .activities-page .activity-action-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 980px) {
  body.user-portal .activities-page .activity-card-content {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .activities-page .activity-route-visual,
  body.user-portal .activities-page .activity-route-visual.is-empty {
    min-height: 360px;
  }

  body.user-portal .activities-page .activity-summary-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 14px;
  }

  body.user-portal .activities-page .activity-summary-metric.is-conquest,
  body.user-portal .activities-page .activity-summary-metric.is-territory {
    margin-top: 7px;
  }
}

@media (max-width: 620px) {
  body.user-portal .activities-page .activity-card-header {
    padding: 16px;
  }

  body.user-portal .activities-page .activity-card-content {
    gap: 12px;
    padding: 14px;
  }

  body.user-portal .activities-page .activity-route-visual,
  body.user-portal .activities-page .activity-route-visual.is-empty {
    min-height: 250px;
  }

  body.user-portal .activities-page .activity-summary-panel {
    padding: 14px;
  }

  body.user-portal .activities-page .activity-summary-metrics {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .activities-page .activity-summary-metric.is-conquest,
  body.user-portal .activities-page .activity-summary-metric.is-territory {
    margin-top: 7px;
  }

  body.user-portal .activities-page .activity-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0 14px 14px;
    padding: 6px;
  }

  body.user-portal .activities-page .activity-actions form {
    width: 100%;
    min-width: 0;
  }

  body.user-portal .activities-page .activity-action {
    width: 100%;
    min-width: 0;
    justify-content: center;
    padding-inline: 7px;
    overflow: hidden;
    font-size: .66rem;
  }

  body.user-portal .activities-page .activity-action > span:last-child {
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

@media (max-width: 430px) {
  body.user-portal .activities-page .activity-card-topline {
    grid-template-columns: auto minmax(0, 1fr);
  }

  body.user-portal .activities-page .activity-sport-pill {
    grid-column: 2;
    width: max-content;
    min-height: 34px;
    padding: 6px 10px;
  }

  body.user-portal .activities-page .activity-card-body h2 {
    overflow-wrap: anywhere;
    font-size: 1.08rem;
  }

  body.user-portal .activities-page .activity-route-visual,
  body.user-portal .activities-page .activity-route-visual.is-empty {
    min-height: 220px;
  }

  body.user-portal .activities-page .activity-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .activities-page .activity-action {
    justify-content: flex-start;
    border-right: 0;
    border-bottom: 1px solid rgba(213, 224, 237, .72);
  }

  body.user-portal .activities-page .activity-actions > .activity-action:last-child {
    border-bottom: 0;
  }
}


/* Activities social modals */
body.user-portal .activity-comments-dialog,
body.user-portal .activity-likes-dialog {
  width: min(100% - 32px, 820px);
  max-width: none;
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(207, 218, 231, .9);
  border-radius: 20px;
  background: #fff;
  color: var(--portal-ink);
  box-shadow: 0 28px 70px rgba(29, 48, 78, .24);
}

body.user-portal .activity-likes-dialog {
  width: min(100% - 32px, 720px);
}

body.user-portal .activity-comments-dialog[open] {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

body.user-portal .activity-likes-dialog[open] {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

body.user-portal .activity-comments-dialog::backdrop,
body.user-portal .activity-likes-dialog::backdrop {
  background: rgba(20, 34, 55, .46);
  backdrop-filter: blur(3px);
}

body.user-portal .activity-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin: 0;
  padding: 22px 24px 18px;
  border-bottom: 1px solid rgba(219, 228, 239, .86);
}

body.user-portal .activity-modal-heading {
  min-width: 0;
}

body.user-portal .activity-modal-header h2 {
  margin: 0;
  color: #10203b;
  font-size: 1.38rem;
  font-weight: 760;
  line-height: 1.2;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

body.user-portal .activity-modal-summary {
  display: flex;
  align-items: center;
  gap: 7px;
  width: fit-content;
  margin: 10px 0 0;
  padding: 5px 9px;
  border: 1px solid rgba(207, 218, 231, .8);
  border-radius: 999px;
  background: #f7faff;
  color: #53667f;
  font-size: .76rem;
  font-weight: 760;
}

body.user-portal .activity-modal-summary svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.user-portal .activity-modal-header .activity-modal-close {
  display: inline-grid;
  place-items: center;
  flex: 0 0 40px;
  width: 40px;
  min-width: 40px;
  height: 40px;
  min-height: 40px;
  padding: 0;
  border: 1px solid rgba(207, 218, 231, .9);
  border-radius: 50%;
  background: #fff;
  color: #233651;
  box-shadow: 0 5px 14px rgba(29, 48, 78, .07);
  cursor: pointer;
}

body.user-portal .activity-modal-header .activity-modal-close:hover {
  border-color: rgba(35, 116, 171, .34);
  background: #f5f9ff;
  color: var(--portal-blue);
}

body.user-portal .activity-modal-header .activity-modal-close:focus-visible,
body.user-portal .activity-comment-actions button:focus-visible,
body.user-portal .activity-modal-row-chevron:focus-visible {
  outline: 3px solid rgba(47, 128, 237, .22);
  outline-offset: 2px;
}

body.user-portal .activity-modal-close svg,
body.user-portal .activity-comment-form button svg,
body.user-portal .activity-comment-actions button svg,
body.user-portal .activity-modal-row-chevron svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.user-portal .activity-comments-list,
body.user-portal .activity-likes-list {
  min-height: 0;
  max-height: none;
  margin: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

body.user-portal .activity-comments-list {
  display: block;
  padding: 4px 24px;
}

body.user-portal .activity-comment {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  padding: 17px 0;
  border: 0;
  border-bottom: 1px solid rgba(219, 228, 239, .78);
  border-radius: 0;
  background: transparent;
}

body.user-portal .activity-comment:last-child {
  border-bottom: 0;
}

body.user-portal .activity-comment .activity-avatar,
body.user-portal .activity-like-user .activity-avatar {
  width: 44px;
  height: 44px;
  font-size: .9rem;
}

body.user-portal .activity-comment-content {
  min-width: 0;
}

body.user-portal .activity-comment-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

body.user-portal .activity-comment-heading > div {
  min-width: 0;
}

body.user-portal .activity-comment-heading strong,
body.user-portal .activity-like-user strong {
  color: #152540;
  font-size: .93rem;
  font-weight: 760;
  line-height: 1.25;
}

body.user-portal .activity-comment .activity-comment-username,
body.user-portal .activity-comment-heading time,
body.user-portal .activity-like-user span {
  display: block;
  color: #71829a;
  font-size: .76rem;
  font-weight: 650;
  line-height: 1.35;
}

body.user-portal .activity-comment-heading time {
  flex: 0 0 auto;
  padding-top: 1px;
  text-align: right;
}

body.user-portal .activity-comment p {
  margin: 9px 0 0;
  color: #33445c;
  font-size: .92rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

body.user-portal .activity-comment-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 11px;
}

body.user-portal .activity-comment-actions button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid rgba(207, 218, 231, .9);
  border-radius: 999px;
  background: #fff;
  color: var(--portal-blue);
  font-size: .76rem;
  font-weight: 720;
}

body.user-portal .activity-comment-actions button.is-delete {
  color: #c44f47;
}

body.user-portal .activity-comment-actions button svg {
  width: 15px;
  height: 15px;
}

body.user-portal .activity-comment-replies {
  display: grid;
  gap: 0;
  margin: 13px 0 0 3px;
  padding-left: 17px;
  border-left: 2px solid rgba(47, 128, 237, .14);
}

body.user-portal .activity-comment.is-reply {
  padding: 13px 0;
  border: 0;
  border-bottom: 1px solid rgba(219, 228, 239, .66);
  border-radius: 0;
  background: transparent;
}

body.user-portal .activity-comment.is-reply:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

body.user-portal .activity-comment-form {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 18px 24px 20px;
  border-top: 1px solid rgba(219, 228, 239, .86);
  background: #fbfdff;
}

body.user-portal .activity-comment-composer-heading,
body.user-portal .activity-comment-form-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

body.user-portal .activity-comment-composer-heading strong {
  color: #20324d;
  font-size: .88rem;
  font-weight: 760;
}

body.user-portal .activity-comment-composer-heading span,
body.user-portal .activity-comment-form-footer small,
body.user-portal .activity-modal-privacy {
  color: #71829a;
  font-size: .74rem;
  font-weight: 620;
  line-height: 1.4;
}

body.user-portal .activity-comment-form label {
  display: block;
}

body.user-portal .activity-comment-form textarea {
  display: block;
  width: 100%;
  min-height: 88px;
  max-height: 180px;
  padding: 12px 14px;
  border: 1px solid rgba(194, 208, 225, .94);
  border-radius: 12px;
  background: #fff;
  color: #172844;
  font: inherit;
  font-size: .9rem;
  line-height: 1.45;
  resize: vertical;
}

body.user-portal .activity-comment-form textarea:focus {
  border-color: rgba(47, 128, 237, .62);
  outline: 3px solid rgba(47, 128, 237, .12);
}

body.user-portal .activity-comment-form button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 0 0 auto;
  min-height: 40px;
  padding: 0 16px;
}

body.user-portal .activity-comment-form button svg {
  width: 17px;
  height: 17px;
}

body.user-portal .activity-likes-list {
  display: grid;
  gap: 0;
  padding: 10px 24px;
}

body.user-portal .activity-like-user {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 2px;
  border: 0;
  border-bottom: 1px solid rgba(219, 228, 239, .78);
  border-radius: 0;
  background: transparent;
}

body.user-portal .activity-like-user:last-child {
  border-bottom: 0;
}

body.user-portal .activity-like-user > div {
  min-width: 0;
}

body.user-portal .activity-like-user strong,
body.user-portal .activity-like-user span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .activity-modal-row-chevron {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: #51657e;
}

body.user-portal .activity-modal-row-chevron:hover {
  background: #eef5ff;
  color: var(--portal-blue);
}

body.user-portal .activity-modal-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 4px 0 8px;
  padding: 12px 14px;
  border: 1px solid rgba(232, 111, 97, .26);
  border-radius: 14px;
  background: #fff8f7;
}

body.user-portal .activity-modal-action-icon svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
  stroke: none;
}

body.user-portal .activity-modal-action-copy {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 0;
}

body.user-portal .activity-modal-action-icon {
  display: grid;
  place-items: center;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #ef746b;
  color: #fff;
  font-size: 1rem;
}

body.user-portal .activity-modal-action-copy strong,
body.user-portal .activity-modal-action-copy span {
  display: block;
}

body.user-portal .activity-modal-action-copy strong {
  color: #273950;
  font-size: .84rem;
  font-weight: 760;
}

body.user-portal .activity-modal-action-copy div > span {
  margin-top: 2px;
  color: #71829a;
  font-size: .72rem;
  font-weight: 620;
}

body.user-portal .activity-modal-action button {
  flex: 0 0 auto;
  min-height: 36px;
  padding: 0 13px;
  border: 1px solid rgba(232, 111, 97, .5);
  background: #fff;
  color: #c84e46;
}

body.user-portal .activity-modal-privacy {
  margin: 0;
  padding: 13px 24px 16px;
  border-top: 1px solid rgba(219, 228, 239, .76);
  background: #fbfdff;
  text-align: center;
}

body.user-portal .activity-comments-list > .empty-state,
body.user-portal .activity-likes-list > .empty-state {
  margin: 0;
  padding: 34px 12px;
  text-align: center;
}

@media (max-width: 620px) {
  body.user-portal .activity-comments-dialog,
  body.user-portal .activity-likes-dialog {
    width: calc(100% - 16px);
    max-height: calc(100dvh - 16px);
    border-radius: 16px;
  }

  body.user-portal .activity-modal-header {
    gap: 12px;
    padding: 17px 16px 14px;
  }

  body.user-portal .activity-modal-header h2 {
    font-size: 1.18rem;
  }

  body.user-portal .activity-modal-header .activity-modal-close {
    flex-basis: 38px;
    width: 38px;
    min-width: 38px;
    height: 38px;
    min-height: 38px;
  }

  body.user-portal .activity-comments-list,
  body.user-portal .activity-likes-list {
    padding-inline: 16px;
    scrollbar-gutter: auto;
  }

  body.user-portal .activity-comment {
    gap: 10px;
    padding-block: 14px;
  }

  body.user-portal .activity-comment .activity-avatar,
  body.user-portal .activity-like-user .activity-avatar {
    width: 40px;
    height: 40px;
  }

  body.user-portal .activity-comment-heading {
    display: block;
  }

  body.user-portal .activity-comment-heading time {
    margin-top: 3px;
    text-align: left;
  }

  body.user-portal .activity-comment-replies {
    margin-left: 0;
    padding-left: 12px;
  }

  body.user-portal .activity-comment-form {
    padding: 14px 16px 16px;
  }

  body.user-portal .activity-comment-form-footer {
    align-items: stretch;
    flex-direction: column;
    gap: 9px;
  }

  body.user-portal .activity-comment-form button {
    width: 100%;
  }

  body.user-portal .activity-modal-action {
    align-items: flex-start;
  }

  body.user-portal .activity-modal-action-copy div > span {
    display: none;
  }

  body.user-portal .activity-modal-privacy {
    padding-inline: 16px;
  }
}


/* Activities header artwork */
body.user-portal .section-activities {
  grid-template-columns: minmax(0, 1fr) minmax(190px, 300px);
  isolation: isolate;
}

body.user-portal .section-activities .portal-section-copy {
  z-index: 2;
  max-width: 720px;
}

body.user-portal .section-activities .portal-section-visual {
  display: block;
  min-height: 112px;
  border: 0;
  border-radius: 0;
  background: var(--section-hero-image) right center / contain no-repeat;
  box-shadow: none;
  opacity: .76;
  pointer-events: none;
}

body.user-portal .section-activities .portal-section-visual::before,
body.user-portal .section-activities .portal-section-visual span,
body.user-portal .section-activities .portal-section-visual i {
  display: none;
}

@media (max-width: 900px) {
  body.user-portal .section-activities {
    grid-template-columns: minmax(0, 1fr) minmax(150px, 210px);
  }

  body.user-portal .section-activities .portal-section-visual {
    min-height: 96px;
    opacity: .68;
  }
}

@media (max-width: 680px) {
  body.user-portal .section-activities {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  body.user-portal .section-activities .portal-section-copy {
    max-width: 100%;
  }

  body.user-portal .section-activities .portal-section-visual {
    width: min(52%, 180px);
    min-height: 68px;
    justify-self: end;
    opacity: .52;
  }
}


/* Territories page approved layout */
body.user-portal .section-territories,
body.user-portal .section-activities {
  position: relative;
  grid-template-columns: minmax(0, 42%) minmax(0, 58%);
  min-height: 156px;
  isolation: isolate;
  overflow: hidden;
}

body.user-portal .section-territories .portal-section-copy,
body.user-portal .section-activities .portal-section-copy {
  z-index: 2;
  max-width: none;
}

body.user-portal .section-territories .portal-section-visual,
body.user-portal .section-activities .portal-section-visual {
  position: absolute;
  inset: 6px 12px 4px 39%;
  z-index: 1;
  display: block;
  width: auto;
  min-height: 0;
  border: 0;
  border-radius: 0;
  background: var(--section-hero-image) right center / contain no-repeat;
  box-shadow: none;
  opacity: .74;
  pointer-events: none;
}

body.user-portal .section-activities .portal-section-visual {
  inset: 2px 18px 2px 41%;
  opacity: .78;
}

body.user-portal .section-territories .portal-section-visual::before,
body.user-portal .section-territories .portal-section-visual span,
body.user-portal .section-territories .portal-section-visual i,
body.user-portal .section-activities .portal-section-visual::before,
body.user-portal .section-activities .portal-section-visual span,
body.user-portal .section-activities .portal-section-visual i {
  display: none;
}

body.user-portal .territories-page {
  width: 100%;
  min-width: 0;
  gap: 14px;
}

body.user-portal .territory-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

body.user-portal .territory-summary-grid .stat-card {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  grid-template-rows: auto;
  align-items: center;
  gap: 14px;
  min-width: 0;
  min-height: 118px;
  padding: 16px;
  overflow: hidden;
  border: 1px solid rgba(210, 221, 235, .86);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 9px 24px rgba(29, 48, 78, .055);
}

body.user-portal .territory-summary-grid .stat-card-pattern,
body.user-portal .territory-summary-grid .stat-badge,
body.user-portal .territory-summary-grid .stat-secondary-list {
  display: none;
}

body.user-portal .territory-summary-grid .stat-card-header {
  grid-column: 1;
  grid-row: 1;
  align-self: start;
}

body.user-portal .territory-summary-grid .stat-icon {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #edf5ff;
  color: #2478f2;
}

body.user-portal .territory-summary-grid .stat-card:nth-child(2) .stat-icon {
  background: #eaf8f3;
  color: #15916b;
}

body.user-portal .territory-summary-grid .stat-card:nth-child(3) .stat-icon {
  background: #f2efff;
  color: #7157d8;
}

body.user-portal .territory-summary-grid .stat-card:nth-child(4) .stat-icon {
  background: #edf6ff;
  color: #2679da;
}

body.user-portal .territory-summary-grid .stat-icon svg {
  width: 22px;
  height: 22px;
}

body.user-portal .territory-summary-grid .stat-card-main {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}

body.user-portal .territory-summary-grid .stat-label {
  display: block;
  margin: 0 0 5px;
  color: #61738c;
  font-size: .69rem;
  font-weight: 720;
  line-height: 1.25;
  text-transform: uppercase;
}

body.user-portal .territory-summary-grid .stat-value {
  display: block;
  margin: 0;
  color: #10203a;
  font-size: 1.55rem;
  font-weight: 760;
  line-height: 1;
}

body.user-portal .territory-summary-grid .stat-detail {
  display: block;
  margin-top: 7px;
  color: #65768c;
  font-size: .76rem;
  font-weight: 450;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

body.user-portal .territory-explorer-shell.portal-card {
  display: grid;
  gap: 0;
  min-width: 0;
  padding: 18px;
  overflow: hidden;
  border: 1px solid rgba(207, 218, 231, .78);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 15px 36px rgba(29, 48, 78, .065);
}

body.user-portal .territory-explorer-heading {
  align-items: center;
  margin: 0;
  padding: 0 2px 14px;
}

body.user-portal .territory-explorer-heading h2 {
  margin: 3px 0 0;
  color: #10203a;
  font-size: 1.15rem;
  font-weight: 740;
}

body.user-portal .territory-explorer-layout {
  display: grid;
  grid-template-columns: minmax(0, 3.45fr) minmax(238px, 1fr);
  gap: 14px;
  min-width: 0;
}

body.user-portal .territory-explorer-map {
  min-width: 0;
  min-height: 0;
  height: 390px;
  border: 1px solid rgba(203, 216, 230, .9);
  border-radius: 14px;
  background: #eaf2ef;
}

body.user-portal .territory-detail-panel {
  position: static;
  display: flex;
  flex-direction: column;
  min-width: 0;
  width: auto;
  height: 390px;
  margin: 0;
  padding: 16px;
  overflow: hidden auto;
  border: 1px solid rgba(207, 218, 231, .78);
  border-radius: 14px;
  background: linear-gradient(150deg, #f8fbff, #f3f8ff);
  box-shadow: none;
  backdrop-filter: none;
}

body.user-portal .territory-detail-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 11px;
}

body.user-portal .territory-context-icon,
body.user-portal .territory-row-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #e8f2ff;
  color: #2478f2;
}

body.user-portal .territory-context-icon svg,
body.user-portal .territory-row-icon svg,
body.user-portal .territory-sport-cell svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.user-portal .territory-detail-copy {
  min-width: 0;
}

body.user-portal .territory-detail-panel h2 {
  margin: 3px 0 0;
  color: #13243f;
  font-size: 1rem;
  font-weight: 750;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

body.user-portal .territory-detail-meta {
  display: grid;
  gap: 3px;
  margin-top: 7px;
}

body.user-portal .territory-detail-meta span {
  width: fit-content;
  max-width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: #5d718b;
  font-size: .72rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: normal;
}

body.user-portal .territory-detail-stats {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 14px 0 0;
  padding: 4px 0 0;
  border-top: 1px solid rgba(207, 218, 231, .7);
}

body.user-portal .territory-detail-stats div {
  display: grid;
  gap: 2px;
  padding: 8px 0;
  border: 0;
  border-bottom: 1px solid rgba(219, 228, 239, .7);
  border-radius: 0;
  background: transparent;
}

body.user-portal .territory-detail-stats dt {
  color: #74849a;
  font-size: .64rem;
  font-weight: 700;
  line-height: 1.25;
  text-transform: uppercase;
}

body.user-portal .territory-detail-stats dd {
  margin: 0;
  color: #30445e;
  font-size: .76rem;
  font-weight: 620;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

body.user-portal .territory-detail-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  width: 100%;
  margin-top: auto;
  padding-top: 12px;
}

body.user-portal .territory-detail-actions button {
  min-width: 0;
  min-height: 36px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: .74rem;
  white-space: nowrap;
}

body.user-portal .territory-detail-actions button + button {
  border: 1px solid rgba(47, 128, 237, .24);
  background: #fff;
  color: #1769c2;
  box-shadow: none;
}

body.user-portal .territory-detail-panel.is-empty .territory-detail-stats,
body.user-portal .territory-detail-panel.is-empty .territory-detail-actions {
  display: none;
}

body.user-portal .territory-controls {
  margin-top: 14px;
  padding: 12px 0;
  border: solid rgba(219, 228, 239, .86);
  border-width: 1px 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.user-portal .territory-filter-form {
  display: grid;
  grid-template-columns: minmax(104px, .78fr) minmax(130px, .95fr) minmax(230px, 2.5fr) minmax(130px, .95fr) auto auto;
  align-items: end;
  gap: 10px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

body.user-portal .territory-filter-form label {
  min-width: 0;
}

body.user-portal .territory-filter-form select,
body.user-portal .territory-filter-form input {
  width: 100%;
  min-width: 0;
}

body.user-portal .territory-filter-form button,
body.user-portal .territory-filter-form a {
  min-height: 38px;
  padding-inline: 16px;
  white-space: nowrap;
}

body.user-portal .territory-filter-form a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(207, 218, 231, .9);
  border-radius: 999px;
  background: #fff;
  color: #42546d;
  font-size: .82rem;
  font-weight: 650;
}

body.user-portal .territory-progress-section {
  min-width: 0;
  padding-top: 15px;
}

body.user-portal .territory-progress-section .card-heading {
  align-items: end;
  padding: 0 2px 11px;
}

body.user-portal .territory-progress-section .card-heading h2 {
  margin-top: 2px;
  font-size: 1.04rem;
}

body.user-portal .territory-progress-section .card-heading > span {
  color: #6d7e94;
  font-size: .76rem;
  font-weight: 650;
}

body.user-portal .territory-table-wrap {
  min-width: 0;
  overflow: visible;
}

body.user-portal .territory-progress-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  border-collapse: collapse;
  border-spacing: 0;
}

body.user-portal .territory-progress-table th {
  padding: 9px 8px;
  border-bottom: 1px solid rgba(219, 228, 239, .82);
  background: #f8fafd;
  color: #708198;
  font-size: .62rem;
  font-weight: 720;
  letter-spacing: .03em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.user-portal .territory-progress-table th:nth-child(1) { width: 25%; }
body.user-portal .territory-progress-table th:nth-child(2) { width: 10%; }
body.user-portal .territory-progress-table th:nth-child(3) { width: 8%; }
body.user-portal .territory-progress-table th:nth-child(4) { width: 11%; }
body.user-portal .territory-progress-table th:nth-child(5) { width: 20%; }
body.user-portal .territory-progress-table th:nth-child(6) { width: 12%; }
body.user-portal .territory-progress-table th:nth-child(7) { width: 14%; }

body.user-portal .territory-progress-table tr {
  box-shadow: none;
}

body.user-portal .territory-progress-table td {
  min-width: 0;
  padding: 10px 8px;
  border: 0;
  border-bottom: 1px solid rgba(219, 228, 239, .75);
  background: #fff;
  color: #2d405a;
  font-size: .72rem;
  font-weight: 540;
  line-height: 1.35;
  overflow-wrap: anywhere;
  vertical-align: middle;
}

body.user-portal .territory-progress-table td:first-child,
body.user-portal .territory-progress-table td:last-child {
  border-left: 0;
  border-right: 0;
  border-radius: 0;
}

body.user-portal .territory-progress-table tr:hover td {
  background: #f8fbff;
}

body.user-portal .territory-progress-table tr.is-selected td {
  background: #f3f8ff;
}

body.user-portal .territory-progress-table tr.is-selected td:first-child {
  box-shadow: inset 3px 0 0 #2478f2;
}

body.user-portal .territory-name-cell,
body.user-portal .territory-sport-cell {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}

body.user-portal .territory-name-cell > span:last-child {
  min-width: 0;
}

body.user-portal .territory-name-cell .territory-row-icon {
  width: 34px;
  height: 34px;
}

body.user-portal .territory-name-cell strong,
body.user-portal .territory-name-cell small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

body.user-portal .territory-name-cell strong {
  color: #14243e;
  font-size: .78rem;
  font-weight: 720;
}

body.user-portal .territory-name-cell small {
  margin-top: 2px;
  color: #74849a;
  font-size: .64rem;
  font-weight: 480;
}

body.user-portal .territory-sport-cell {
  gap: 5px;
  white-space: nowrap;
}

body.user-portal .territory-sport-cell svg {
  width: 15px;
  height: 15px;
}

body.user-portal .territory-progress-table button {
  min-width: 0;
  min-height: 34px;
  width: 100%;
  padding: 0 8px;
  font-size: .68rem;
  white-space: nowrap;
}

body.user-portal .territory-card-list {
  display: none;
}

body.user-portal .territory-progress-section .activity-pagination {
  margin-top: 13px;
}

@media (max-width: 1100px) {
  body.user-portal .territory-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.user-portal .territory-filter-form {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  body.user-portal .territory-filter-form .activity-search {
    grid-column: span 2;
  }

  body.user-portal .territory-table-wrap {
    display: none;
  }

  body.user-portal .territory-card-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  body.user-portal .territory-progress-card {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px 12px;
    min-width: 0;
    padding: 13px;
    border: 1px solid rgba(210, 221, 235, .84);
    border-radius: 12px;
    background: #fff;
    box-shadow: none;
  }

  body.user-portal .territory-progress-card.is-selected {
    border-color: rgba(47, 128, 237, .34);
    background: #f5f9ff;
    box-shadow: inset 3px 0 0 #2478f2;
  }

  body.user-portal .territory-progress-card header {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
  }

  body.user-portal .territory-progress-card header > div {
    min-width: 0;
  }

  body.user-portal .territory-progress-card header strong,
  body.user-portal .territory-progress-card header small {
    display: block;
    overflow-wrap: anywhere;
  }

  body.user-portal .territory-progress-card header strong {
    color: #14243e;
    font-size: .84rem;
    font-weight: 720;
  }

  body.user-portal .territory-progress-card header small,
  body.user-portal .territory-progress-card > small {
    margin-top: 2px;
    color: #718198;
    font-size: .7rem;
    font-weight: 520;
  }

  body.user-portal .territory-progress-card .territory-card-points {
    align-self: center;
    color: #1769c2;
    font-size: .95rem;
    font-weight: 740;
    white-space: nowrap;
  }

  body.user-portal .territory-progress-card p {
    grid-column: 1 / -1;
    margin: 2px 0 0;
    color: #354963;
    font-size: .76rem;
    font-weight: 590;
  }

  body.user-portal .territory-progress-card > small {
    align-self: center;
  }

  body.user-portal .territory-progress-card button {
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
  }
}

@media (max-width: 980px) {
  body.user-portal .section-territories,
  body.user-portal .section-activities {
    grid-template-columns: minmax(0, 48%) minmax(0, 52%);
  }

  body.user-portal .territory-explorer-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .territory-explorer-map {
    height: 360px;
  }

  body.user-portal .territory-detail-panel {
    display: grid;
    grid-template-columns: minmax(190px, .8fr) minmax(0, 1.4fr) auto;
    gap: 14px;
    width: 100%;
    height: auto;
    overflow: visible;
  }

  body.user-portal .territory-detail-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-self: center;
    margin: 0;
    padding: 0;
    border-top: 0;
  }

  body.user-portal .territory-detail-stats div {
    padding: 5px 8px;
    border: 0;
  }

  body.user-portal .territory-detail-actions {
    grid-template-columns: 1fr;
    align-self: center;
    width: 116px;
    margin: 0;
    padding: 0;
  }
}

@media (max-width: 680px) {
  body.user-portal .section-territories,
  body.user-portal .section-activities {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    min-height: 0;
  }

  body.user-portal .section-territories .portal-section-copy,
  body.user-portal .section-activities .portal-section-copy {
    max-width: 100%;
  }

  body.user-portal .section-territories .portal-section-visual,
  body.user-portal .section-activities .portal-section-visual {
    position: static;
    width: min(58%, 210px);
    min-height: 68px;
    justify-self: end;
    opacity: .58;
  }

  body.user-portal .territory-explorer-shell.portal-card {
    padding: 14px;
  }

  body.user-portal .territory-explorer-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
  }

  body.user-portal .territory-explorer-map {
    height: clamp(278px, 82vw, 350px);
  }

  body.user-portal .territory-detail-panel {
    display: flex;
    height: auto;
  }

  body.user-portal .territory-detail-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 12px;
    padding-top: 5px;
    border-top: 1px solid rgba(207, 218, 231, .7);
  }

  body.user-portal .territory-detail-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    margin-top: 10px;
    padding-top: 0;
  }

  body.user-portal .territory-filter-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.user-portal .territory-filter-form .activity-search {
    grid-column: 1 / -1;
  }

  body.user-portal .territory-card-list {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 540px) {
  body.user-portal .territory-summary-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .territory-summary-grid .stat-card {
    min-height: 108px;
  }
}

@media (max-width: 420px) {
  body.user-portal .territory-filter-form {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .territory-filter-form .activity-search {
    grid-column: auto;
  }

  body.user-portal .territory-detail-stats {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .territory-detail-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .territory-progress-card {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .territory-progress-card .territory-card-points,
  body.user-portal .territory-progress-card button {
    width: 100%;
  }
}


/* Social community hub approved layout */
body.user-portal .section-social {
  position: relative;
  grid-template-columns: minmax(0, 42%) minmax(0, 58%);
  min-height: 156px;
  isolation: isolate;
  overflow: hidden;
}

body.user-portal .section-social .portal-section-copy {
  z-index: 2;
  max-width: none;
}

body.user-portal .section-social .portal-section-visual {
  position: absolute;
  inset: 4px 10px 2px 39%;
  z-index: 1;
  display: block;
  width: auto;
  min-height: 0;
  border: 0;
  border-radius: 0;
  background: var(--section-hero-image) right center / contain no-repeat;
  box-shadow: none;
  opacity: .78;
  pointer-events: none;
}

body.user-portal .section-social .portal-section-visual::before,
body.user-portal .section-social .portal-section-visual span,
body.user-portal .section-social .portal-section-visual i {
  display: none;
}

body.user-portal .social-page {
  width: 100%;
  min-width: 0;
  gap: 14px;
}

body.user-portal .social-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
}

body.user-portal .social-summary-grid .social-selector-card {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  grid-template-rows: auto auto auto;
  align-content: center;
  gap: 3px 14px;
  min-width: 0;
  min-height: 118px;
  padding: 16px;
  overflow: hidden;
  border: 1px solid rgba(210, 221, 235, .86);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 9px 24px rgba(29, 48, 78, .055);
}

body.user-portal .social-summary-grid .social-selector-card.is-active {
  border-color: rgba(47, 128, 237, .32);
  background: #f7fbff;
  box-shadow: inset 3px 0 0 #2478f2, 0 9px 24px rgba(29, 48, 78, .055);
}

body.user-portal .social-summary-grid .stat-card-top {
  grid-column: 1;
  grid-row: 1 / 4;
  align-self: center;
}

body.user-portal .social-summary-grid .stat-badge {
  display: none;
}

body.user-portal .social-summary-grid .stat-icon {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #edf5ff;
  color: #2478f2;
}

body.user-portal .social-summary-grid .social-selector-card:nth-child(2) .stat-icon {
  background: #eaf8f3;
  color: #15916b;
}

body.user-portal .social-summary-grid .social-selector-card:nth-child(3) .stat-icon {
  background: #f2efff;
  color: #7655db;
}

body.user-portal .social-summary-grid .social-selector-card:nth-child(4) .stat-icon {
  background: #edf6ff;
  color: #2679da;
}

body.user-portal .social-summary-grid .stat-icon svg {
  width: 21px;
  height: 21px;
}

body.user-portal .social-summary-grid .social-selector-card > span {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  color: #61738c;
  font-size: .69rem;
  font-weight: 720;
  line-height: 1.25;
  text-transform: uppercase;
}

body.user-portal .social-summary-grid .social-selector-card > strong {
  grid-column: 2;
  grid-row: 2;
  color: #10203a;
  font-size: 1.55rem;
  font-weight: 760;
  line-height: 1;
}

body.user-portal .social-summary-grid .social-selector-card > small {
  grid-column: 2;
  grid-row: 3;
  min-width: 0;
  margin-top: 4px;
  color: #65768c;
  font-size: .76rem;
  font-weight: 450;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

body.user-portal .social-hub-grid {
  display: grid;
  grid-template-columns: minmax(0, 2.25fr) minmax(270px, .95fr);
  align-items: start;
  gap: 14px;
  min-width: 0;
}

body.user-portal .social-management-panel {
  min-width: 0;
  min-height: 0;
  gap: 12px;
  padding: 17px 18px;
}

body.user-portal .social-management-heading {
  display: grid;
  gap: 10px;
  min-width: 0;
}

body.user-portal .social-management-heading .portal-eyebrow {
  margin: 0;
}

body.user-portal .social-panel-control,
body.user-portal .social-community-tabs {
  display: flex;
  align-items: center;
  gap: 24px;
  width: 100%;
  min-width: 0;
  padding: 0;
  overflow-x: auto;
  border: 0;
  border-bottom: 1px solid rgba(219, 228, 239, .88);
  border-radius: 0;
  background: transparent;
  scrollbar-width: thin;
}

body.user-portal .social-panel-control a,
body.user-portal .social-community-tabs a {
  position: relative;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  padding: 0 0 9px;
  border-radius: 0;
  background: transparent;
  color: #52657e;
  font-size: .8rem;
  font-weight: 620;
  white-space: nowrap;
}

body.user-portal .social-panel-control a::after,
body.user-portal .social-community-tabs a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  border-radius: 999px;
  background: transparent;
}

body.user-portal .social-panel-control a.is-active,
body.user-portal .social-community-tabs a.is-active {
  background: transparent;
  color: #176fd4;
}

body.user-portal .social-panel-control a.is-active::after,
body.user-portal .social-community-tabs a.is-active::after {
  background: #2478f2;
}

body.user-portal .social-active-panel-title {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

body.user-portal .social-inline-filter {
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 9px;
  margin: 0;
}

body.user-portal .social-inline-filter label {
  gap: 5px;
  font-size: .76rem;
}

body.user-portal .social-inline-filter input {
  min-height: 38px;
  border-radius: 11px;
}

body.user-portal .social-management-panel .social-list {
  gap: 0;
}

body.user-portal .social-management-panel .social-user-card {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  min-width: 0;
  min-height: 0;
  padding: 11px 0;
  border: 0;
  border-bottom: 1px solid rgba(219, 228, 239, .78);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.user-portal .social-management-panel .social-user-card:last-child {
  border-bottom: 0;
}

body.user-portal .social-management-panel .social-user-main {
  min-width: 0;
}

body.user-portal .social-management-panel .social-list-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
}

body.user-portal .social-management-panel .social-user-main > span {
  min-width: 0;
}

body.user-portal .social-management-panel .social-user-main strong {
  color: #14243e;
  font-size: .87rem;
  font-weight: 720;
  white-space: normal;
  overflow-wrap: anywhere;
}

body.user-portal .social-management-panel .social-user-main small,
body.user-portal .social-management-panel .social-user-main em {
  font-size: .72rem;
  font-weight: 500;
}

body.user-portal .social-management-panel .social-user-side,
body.user-portal .social-management-panel .social-request-actions {
  flex-wrap: wrap;
  gap: 7px;
  min-width: 0;
}

body.user-portal .social-management-panel .social-state-pill {
  min-height: 29px;
  padding: 4px 9px;
  background: #f2f6fb;
  color: #60728a;
  font-size: .7rem;
}

body.user-portal .social-management-panel .social-button,
body.user-portal .social-management-panel .social-profile-link {
  min-height: 32px;
  padding-inline: 11px;
  font-size: .72rem;
}

body.user-portal .social-management-panel .social-button.secondary {
  border-color: rgba(199, 211, 226, .92);
  background: #fff;
  color: #30445e;
  box-shadow: none;
}

body.user-portal .social-request-columns {
  grid-template-columns: 1fr;
  gap: 14px;
}

body.user-portal .social-request-columns section {
  gap: 0;
}

body.user-portal .social-request-columns h3 {
  padding: 7px 0;
  border-bottom: 1px solid rgba(219, 228, 239, .78);
  font-size: .68rem;
}

body.user-portal .social-hub-aside {
  display: grid;
  gap: 14px;
  min-width: 0;
}

body.user-portal .social-preview-card {
  min-width: 0;
  padding: 15px;
  gap: 0;
}

body.user-portal .social-preview-card .card-heading {
  align-items: center;
  padding-bottom: 10px;
}

body.user-portal .social-preview-card .card-heading a {
  min-height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #176fd4;
  font-size: .72rem;
  font-weight: 650;
}

body.user-portal .social-preview-list {
  display: grid;
  gap: 0;
}

body.user-portal .social-preview-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  min-width: 0;
  padding: 10px 0;
  border-bottom: 1px solid rgba(219, 228, 239, .74);
  color: #1f314b;
}

body.user-portal .social-preview-row:last-child {
  border-bottom: 0;
}

body.user-portal .social-preview-row .social-list-avatar,
body.user-portal .social-preview-rank {
  width: 36px;
  height: 36px;
  border-radius: 50%;
}

body.user-portal .social-preview-row > span:nth-child(2) {
  min-width: 0;
}

body.user-portal .social-preview-row strong,
body.user-portal .social-preview-row small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

body.user-portal .social-preview-row strong {
  color: #192a45;
  font-size: .77rem;
  font-weight: 700;
  line-height: 1.32;
}

body.user-portal .social-preview-row small {
  display: -webkit-box;
  margin-top: 2px;
  overflow: hidden;
  color: #718198;
  font-size: .67rem;
  font-weight: 500;
  line-height: 1.3;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

body.user-portal .social-preview-chevron {
  color: #7a8ba1;
}

body.user-portal .social-preview-chevron svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  transform: rotate(-90deg);
}

body.user-portal .social-preview-rank {
  display: inline-grid;
  place-items: center;
  background: #edf3fa;
  color: #6f8095;
}

body.user-portal .social-preview-rank.rank-1 {
  background: #fff6dc;
  color: #d29416;
}

body.user-portal .social-preview-rank.rank-3 {
  background: #fff0eb;
  color: #bd674c;
}

body.user-portal .social-preview-rank svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
}

body.user-portal .social-preview-footer {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
  border: 1px solid rgba(47, 128, 237, .22);
  border-radius: 999px;
  background: #f8fbff;
  color: #176fd4;
  font-size: .72rem;
  font-weight: 650;
}

body.user-portal .social-community-section {
  gap: 12px;
  margin-top: 2px;
}

body.user-portal .social-community-tabs {
  gap: 24px;
}

body.user-portal .social-community-panel {
  min-width: 0;
}

body.user-portal .public-profile-grid {
  align-items: start;
}

body.user-portal .public-profile-stats {
  align-items: stretch;
}

body.user-portal .public-profile-stats div,
body.user-portal .public-profile-territory {
  min-height: 0;
  box-shadow: none;
}

@media (max-width: 1100px) {
  body.user-portal .social-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  body.user-portal .section-social {
    grid-template-columns: minmax(0, 48%) minmax(0, 52%);
  }

  body.user-portal .social-hub-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .social-hub-aside {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  body.user-portal .section-social {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    min-height: 0;
  }

  body.user-portal .section-social .portal-section-copy {
    max-width: 100%;
  }

  body.user-portal .section-social .portal-section-visual {
    position: static;
    width: min(58%, 210px);
    min-height: 68px;
    justify-self: end;
    opacity: .58;
  }

  body.user-portal .social-management-panel {
    padding: 15px;
  }

  body.user-portal .social-management-panel .social-user-card {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .social-management-panel .social-user-side,
  body.user-portal .social-management-panel .social-request-actions {
    justify-content: flex-start;
    padding-left: 58px;
  }

  body.user-portal .social-hub-aside {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 540px) {
  body.user-portal .social-summary-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .social-summary-grid .social-selector-card {
    min-height: 106px;
  }

  body.user-portal .social-inline-filter {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .social-inline-filter .social-button,
  body.user-portal .social-inline-filter a {
    width: 100%;
  }
}

@media (max-width: 390px) {
  body.user-portal .social-panel-control,
  body.user-portal .social-community-tabs {
    gap: 16px;
  }

  body.user-portal .social-management-panel .social-user-side,
  body.user-portal .social-management-panel .social-request-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-left: 0;
  }

  body.user-portal .social-management-panel .social-state-pill {
    grid-column: 1 / -1;
  }

  body.user-portal .social-management-panel .social-user-side form,
  body.user-portal .social-management-panel .social-user-side .social-button,
  body.user-portal .social-management-panel .social-profile-link {
    width: 100%;
  }
}


/* Social leaderboard focused refinement */
body.user-portal .social-preview-card-footer {
  margin: 10px -15px -15px;
  padding: 12px 15px 14px;
  border-top: 1px solid rgba(219, 228, 239, .82);
  background: #fbfdff;
}

body.user-portal .social-preview-card-footer .social-preview-footer {
  width: 100%;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0;
  padding: 0 16px;
  border: 1px solid rgba(47, 128, 237, .28);
  border-radius: 999px;
  background: #fff;
  color: #176fd4;
  font-size: .75rem;
  font-weight: 680;
  line-height: 1;
  white-space: nowrap;
}

body.user-portal .social-preview-card-footer .social-preview-footer:hover {
  border-color: rgba(47, 128, 237, .48);
  background: #f1f7ff;
  color: #0f62bd;
}

body.user-portal .social-preview-card-footer .social-preview-footer:focus-visible {
  outline: 3px solid rgba(47, 128, 237, .2);
  outline-offset: 2px;
}

body.user-portal .social-preview-card-footer .social-preview-footer > span:last-child {
  display: inline-grid;
  place-items: center;
}

body.user-portal .social-preview-card-footer .social-preview-footer svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transform: rotate(-90deg);
}

body.user-portal .social-leaderboards {
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: 18px;
}

body.user-portal .social-leaderboards-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 15px;
  border-bottom: 1px solid rgba(219, 228, 239, .84);
}

body.user-portal .social-leaderboards-header > div {
  min-width: 0;
}

body.user-portal .social-leaderboards-header h2 {
  margin: 3px 0 0;
  color: #10203a;
  font-size: 1.28rem;
  font-weight: 750;
  line-height: 1.2;
}

body.user-portal .social-leaderboards-header p:not(.portal-eyebrow) {
  max-width: 650px;
  margin: 7px 0 0;
  color: #65768c;
  font-size: .82rem;
  line-height: 1.45;
}

body.user-portal .social-leaderboards-header .social-profile-link {
  flex: 0 0 auto;
  min-height: 36px;
  padding-inline: 13px;
}

body.user-portal .social-leaderboards-context {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
}

body.user-portal .social-leaderboards-context span {
  min-height: 27px;
  display: inline-flex;
  align-items: center;
  padding: 4px 9px;
  border: 1px solid rgba(207, 218, 231, .82);
  border-radius: 999px;
  background: #f7faff;
  color: #53677f;
  font-size: .7rem;
  font-weight: 640;
}

body.user-portal .social-leaderboards .social-leaderboard-controls {
  grid-template-columns: repeat(4, minmax(105px, .8fr)) minmax(180px, 1.5fr) auto auto;
  gap: 9px;
  margin: 0;
  padding: 13px;
  border: 1px solid rgba(210, 221, 235, .82);
  border-radius: 13px;
  background: #f9fbfe;
}

body.user-portal .social-leaderboards .social-leaderboard-controls label {
  min-width: 0;
  gap: 5px;
  color: #61738b;
  font-size: .69rem;
}

body.user-portal .social-leaderboards .social-leaderboard-controls select,
body.user-portal .social-leaderboards .social-leaderboard-controls input {
  width: 100%;
  min-width: 0;
  min-height: 37px;
  border-radius: 10px;
  font-size: .78rem;
}

body.user-portal .social-leaderboards .social-leaderboard-controls .social-button,
body.user-portal .social-leaderboards .social-leaderboard-controls > a {
  min-height: 37px;
  padding-inline: 14px;
}

body.user-portal .social-leaderboards .social-leaderboard-table {
  display: grid;
  gap: 0;
  overflow: hidden;
  border: 1px solid rgba(210, 221, 235, .82);
  border-radius: 13px;
  background: #fff;
}

body.user-portal .social-leaderboards .social-leaderboard-row {
  grid-template-columns: 42px 44px minmax(150px, .82fr) minmax(230px, 1.4fr) auto;
  gap: 11px;
  min-width: 0;
  padding: 12px 14px;
  border: 0;
  border-bottom: 1px solid rgba(219, 228, 239, .78);
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

body.user-portal .social-leaderboards .social-leaderboard-row:last-child {
  border-bottom: 0;
}

body.user-portal .social-leaderboards .social-leaderboard-row:hover {
  background: #f8fbff;
}

body.user-portal .social-leaderboards .social-leaderboard-row.is-current-user {
  border-color: rgba(219, 228, 239, .78);
  background: #f3f8ff;
  box-shadow: inset 3px 0 0 #2478f2;
}

body.user-portal .social-leaderboards .social-leaderboard-rank {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  align-self: center;
  border-radius: 50%;
  background: #eef3f8;
  color: #607189;
  font-size: .74rem;
  font-weight: 720;
}

body.user-portal .social-leaderboards .social-leaderboard-row.rank-1 .social-leaderboard-rank {
  background: #fff4d4;
  color: #b87a05;
}

body.user-portal .social-leaderboards .social-leaderboard-row.rank-2 .social-leaderboard-rank {
  background: #edf3fb;
  color: #617792;
}

body.user-portal .social-leaderboards .social-leaderboard-row.rank-3 .social-leaderboard-rank {
  background: #fff0e9;
  color: #ad6249;
}

body.user-portal .social-leaderboards .social-list-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
}

body.user-portal .social-leaderboards .social-leaderboard-person strong,
body.user-portal .social-leaderboards .social-leaderboard-metric strong {
  color: #172842;
  font-size: .84rem;
  font-weight: 710;
  line-height: 1.3;
  white-space: normal;
  overflow-wrap: anywhere;
}

body.user-portal .social-leaderboards .social-leaderboard-person small,
body.user-portal .social-leaderboards .social-leaderboard-metric small {
  color: #718198;
  font-size: .69rem;
  font-weight: 500;
  line-height: 1.35;
}

body.user-portal .social-leaderboards .social-leaderboard-person em {
  margin-top: 2px;
  padding: 2px 7px;
  background: #f1f6fc;
  color: #526b87;
  font-size: .66rem;
}

body.user-portal .social-leaderboards .social-leaderboard-metric {
  align-self: center;
}

body.user-portal .social-leaderboards .social-profile-link {
  align-self: center;
  min-height: 32px;
  padding-inline: 10px;
  font-size: .7rem;
}

body.user-portal .social-leaderboards > .activity-pagination {
  margin-top: 0;
  padding-top: 2px;
}

@media (max-width: 1120px) {
  body.user-portal .social-leaderboards .social-leaderboard-controls {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.user-portal .social-leaderboards .social-leaderboard-search {
    grid-column: span 2;
  }
}

@media (max-width: 820px) {
  body.user-portal .social-leaderboards .social-leaderboard-controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.user-portal .social-leaderboards .social-leaderboard-search {
    grid-column: 1 / -1;
  }

  body.user-portal .social-leaderboards .social-leaderboard-row {
    grid-template-columns: 38px 42px minmax(0, 1fr);
    align-items: center;
  }

  body.user-portal .social-leaderboards .social-leaderboard-rank {
    grid-column: 1;
    grid-row: 1 / span 2;
  }

  body.user-portal .social-leaderboards .social-list-avatar {
    grid-column: 2;
    grid-row: 1;
  }

  body.user-portal .social-leaderboards .social-leaderboard-person {
    grid-column: 3;
    grid-row: 1;
  }

  body.user-portal .social-leaderboards .social-leaderboard-metric,
  body.user-portal .social-leaderboards .social-leaderboard-row .social-profile-link {
    grid-column: 2 / -1;
  }
}

@media (max-width: 540px) {
  body.user-portal .social-leaderboards {
    padding: 15px;
  }

  body.user-portal .social-leaderboards-header {
    display: grid;
  }

  body.user-portal .social-leaderboards-header .social-profile-link {
    width: fit-content;
  }

  body.user-portal .social-leaderboards .social-leaderboard-controls {
    grid-template-columns: minmax(0, 1fr);
    padding: 11px;
  }

  body.user-portal .social-leaderboards .social-leaderboard-search {
    grid-column: auto;
  }

  body.user-portal .social-leaderboards .social-leaderboard-controls .social-button,
  body.user-portal .social-leaderboards .social-leaderboard-controls > a {
    width: 100%;
  }
}

@media (max-width: 420px) {
  body.user-portal .social-leaderboards .social-leaderboard-row {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 9px;
    padding: 11px;
  }

  body.user-portal .social-leaderboards .social-leaderboard-rank {
    grid-column: 1;
    grid-row: 1;
  }

  body.user-portal .social-leaderboards .social-list-avatar {
    grid-column: 1;
    grid-row: 2;
  }

  body.user-portal .social-leaderboards .social-leaderboard-person {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  body.user-portal .social-leaderboards .social-leaderboard-metric,
  body.user-portal .social-leaderboards .social-leaderboard-row .social-profile-link {
    grid-column: 1 / -1;
  }

  body.user-portal .social-leaderboards .social-leaderboard-row .social-profile-link {
    width: 100%;
  }
}


/* Social overview balance and Community workspace */
@media (min-width: 981px) {
  body.user-portal .social-hub-grid {
    grid-template-columns: minmax(0, 2.3fr) minmax(280px, 1fr);
    align-items: stretch;
  }

  body.user-portal .social-management-panel {
    height: 100%;
  }

  body.user-portal .social-hub-aside {
    grid-template-rows: repeat(2, minmax(0, 1fr));
    height: 100%;
  }

  body.user-portal .social-hub-aside .social-preview-card {
    height: 100%;
  }
}

body.user-portal .social-community-dialog {
  width: min(1120px, calc(100vw - 32px));
  height: calc(100dvh - 32px);
  max-width: none;
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  overflow-x: hidden;
  overflow-y: auto;
  border: 1px solid rgba(199, 213, 230, .92);
  border-radius: 20px;
  background: #fff;
  color: #14243e;
  box-shadow: 0 28px 80px rgba(24, 50, 86, .24);
}

body.user-portal .social-community-dialog[open] {
  display: block;
}

body.user-portal .social-community-dialog::backdrop {
  background: rgba(25, 43, 68, .42);
  backdrop-filter: blur(5px);
}

body.user-portal .social-community-workspace {
  min-height: 100%;
  height: auto;
  max-height: none;
  display: grid;
  grid-template-rows: auto auto auto;
  overflow: visible;
  background: #fff;
}

body.user-portal .social-community-workspace-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 21px 24px 17px;
  border-bottom: 1px solid rgba(219, 228, 239, .84);
}

body.user-portal .social-community-workspace-header > div {
  min-width: 0;
}

body.user-portal .social-community-workspace-header h2 {
  margin: 4px 0 0;
  color: #10203a;
  font-size: 1.42rem;
  font-weight: 760;
  line-height: 1.2;
}

body.user-portal .social-community-workspace-header p:last-child {
  max-width: 650px;
  margin: 7px 0 0;
  color: #65768c;
  font-size: .82rem;
  line-height: 1.45;
}

body.user-portal .social-community-workspace-header form {
  flex: 0 0 auto;
  margin: 0;
}

body.user-portal .social-community-workspace-header .activity-modal-close {
  width: 38px;
  height: 38px;
}

body.user-portal .social-community-workspace > .social-community-tabs {
  margin: 0 24px;
  padding-top: 12px;
}

body.user-portal .social-community-workspace-panel {
  min-width: 0;
  min-height: 0;
  height: auto;
  display: grid;
  grid-template-rows: auto auto;
  align-content: start;
  gap: 14px;
  padding: 18px 24px 24px;
  overflow: visible;
  overscroll-behavior: contain;
}

body.user-portal .social-community-workspace-panel.social-leaderboards {
  padding: 18px 24px 24px;
}

body.user-portal .social-community-workspace-panel .social-community-panel-heading {
  margin: 0;
}

body.user-portal .social-community-workspace-panel .social-community-body {
  min-width: 0;
  min-height: 0;
  overflow: visible;
  align-content: start;
  gap: 13px;
}

body.user-portal .social-community-workspace-panel .social-leaderboard-table {
  min-height: 0;
}

body.user-portal .social-community-workspace-panel .social-community-filter {
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 9px;
  padding: 12px;
  border: 1px solid rgba(210, 221, 235, .82);
  border-radius: 13px;
  background: #f9fbfe;
}

body.user-portal .social-community-workspace-panel .social-community-filter input {
  background: #fff;
}

body.user-portal .social-community-workspace-panel[data-community-active="discover"] .social-list {
  display: grid;
  gap: 0;
  overflow: hidden;
  border: 1px solid rgba(210, 221, 235, .82);
  border-radius: 13px;
  background: #fff;
}

body.user-portal .social-community-workspace-panel[data-community-active="discover"] .social-user-card {
  border: 0;
  border-bottom: 1px solid rgba(219, 228, 239, .78);
  border-radius: 0;
  box-shadow: none;
}

body.user-portal .social-community-workspace-panel[data-community-active="discover"] .social-user-card:last-child {
  border-bottom: 0;
}

@media (max-width: 820px) {
  body.user-portal .social-community-dialog {
    width: min(calc(100% - 20px), 760px);
    height: calc(100dvh - 20px);
    max-height: calc(100dvh - 20px);
    border-radius: 17px;
  }

  body.user-portal .social-community-workspace {
    max-height: none;
  }

  body.user-portal .social-community-workspace-header {
    padding: 18px 18px 15px;
  }

  body.user-portal .social-community-workspace > .social-community-tabs {
    margin-inline: 18px;
  }

  body.user-portal .social-community-workspace-panel,
  body.user-portal .social-community-workspace-panel.social-leaderboards {
    padding: 16px 18px 20px;
  }
}

@media (max-width: 540px) {
  body.user-portal .social-community-dialog {
    width: calc(100% - 12px);
    height: calc(100dvh - 12px);
    max-height: calc(100dvh - 12px);
    border-radius: 15px;
  }

  body.user-portal .social-community-workspace {
    max-height: none;
  }

  body.user-portal .social-community-workspace-header {
    gap: 12px;
    padding: 15px 14px 13px;
  }

  body.user-portal .social-community-workspace-header h2 {
    font-size: 1.18rem;
  }

  body.user-portal .social-community-workspace-header p:last-child {
    font-size: .76rem;
  }

  body.user-portal .social-community-workspace > .social-community-tabs {
    gap: 17px;
    margin-inline: 14px;
    padding-top: 10px;
  }

  body.user-portal .social-community-workspace-panel,
  body.user-portal .social-community-workspace-panel.social-leaderboards {
    padding: 14px 14px 18px;
  }

  body.user-portal .social-community-workspace-panel .social-community-filter {
    grid-template-columns: minmax(0, 1fr);
    padding: 11px;
  }

  body.user-portal .social-community-workspace-panel .social-community-filter .social-button,
  body.user-portal .social-community-workspace-panel .social-community-filter > a {
    width: 100%;
  }
}


/* Public profile approved composition */
body.user-portal .public-profile-page {
  display: grid;
  gap: 14px;
  min-width: 0;
}

body.user-portal .public-profile-back {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: fit-content;
  margin: 0 0 1px;
  color: #176fd4;
  font-size: .78rem;
  font-weight: 680;
}

body.user-portal .public-profile-back > span:first-child {
  display: inline-grid;
  place-items: center;
}

body.user-portal .public-profile-back svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.user-portal .public-profile-shell {
  min-width: 0;
  padding: 0;
  overflow: hidden;
}

body.user-portal .public-profile-hero {
  position: relative;
  min-height: 205px;
  display: block;
  padding: 24px;
  overflow: hidden;
}

body.user-portal .public-profile-cover {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 61%;
  overflow: hidden;
  background: #dceaf6;
  -webkit-mask-image: linear-gradient(to right, transparent 0, rgba(0, 0, 0, .86) 24%, #000 46%);
  mask-image: linear-gradient(to right, transparent 0, rgba(0, 0, 0, .86) 24%, #000 46%);
}

body.user-portal .public-profile-cover img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center 46%;
  opacity: .88;
}

body.user-portal .public-profile-identity {
  position: relative;
  z-index: 2;
  width: min(58%, 650px);
  min-height: 157px;
  display: flex;
  align-items: center;
  gap: 20px;
  min-width: 0;
}

body.user-portal .public-profile-avatar {
  width: 106px;
  height: 106px;
  border: 3px solid rgba(255, 255, 255, .94);
  border-radius: 29px;
  box-shadow: 0 10px 28px rgba(24, 50, 86, .16), 0 0 0 1px rgba(47, 128, 237, .24);
}

body.user-portal .public-profile-identity-copy {
  min-width: 0;
}

body.user-portal .public-profile-identity-copy .portal-eyebrow {
  margin: 0 0 6px;
}

body.user-portal .public-profile-identity-copy h1 {
  max-width: 100%;
  margin: 0;
  color: #10203a;
  font-size: 1.72rem;
  font-weight: 780;
  line-height: 1.16;
  overflow-wrap: anywhere;
}

body.user-portal .public-profile-username {
  margin: 5px 0 0;
  color: #66788f;
  font-size: .82rem;
  font-weight: 560;
}

body.user-portal .public-profile-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 9px;
  margin-top: 9px;
  color: #536981;
  font-size: .76rem;
  font-weight: 560;
}

body.user-portal .public-profile-meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
}

body.user-portal .public-profile-meta i {
  display: inline-grid;
  place-items: center;
  color: #58769b;
  font-style: normal;
}

body.user-portal .public-profile-meta svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
}

body.user-portal .public-profile-meta b {
  color: #9aabc0;
  font-weight: 700;
}

body.user-portal .public-profile-actions {
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

body.user-portal .public-profile-actions .social-state-pill,
body.user-portal .public-profile-actions .social-button,
body.user-portal .public-profile-actions .social-soft-cta {
  min-height: 31px;
  padding: 5px 11px;
  font-size: .71rem;
}

body.user-portal .public-profile-actions .social-state-pill {
  border-color: rgba(123, 99, 219, .2);
  background: #f6f3ff;
  color: #6752b7;
}

body.user-portal .public-profile-actions .social-soft-cta {
  margin: 0;
  border-color: rgba(47, 128, 237, .28);
  background: #fff;
  color: #176fd4;
}

body.user-portal .public-profile-stats-band {
  padding: 14px 18px;
  border-top: 1px solid rgba(210, 221, 235, .86);
  background: rgba(251, 253, 255, .94);
}

body.user-portal .public-profile-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 0;
}

body.user-portal .public-profile-stats div {
  min-width: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

body.user-portal .public-profile-stat {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  padding: 4px 20px !important;
  border-left: 1px solid rgba(210, 221, 235, .9) !important;
}

body.user-portal .public-profile-stat > div {
  min-width: 0;
  display: grid;
}

body.user-portal .public-profile-stat:first-child {
  border-left: 0 !important;
}

body.user-portal .public-profile-stat > span {
  width: 38px;
  height: 38px;
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  background: #edf5ff;
  color: #2478f2;
}

body.user-portal .public-profile-stat.violet > span {
  background: #f3efff;
  color: #7558d6;
}

body.user-portal .public-profile-stat.amber > span {
  background: #fff5df;
  color: #c48813;
}

body.user-portal .public-profile-stat svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
}

body.user-portal .public-profile-stat dt {
  grid-row: 2;
  margin-top: 2px;
  color: #708198;
  font-size: .7rem;
  font-weight: 560;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: none;
  overflow-wrap: anywhere;
}

body.user-portal .public-profile-stat dd {
  grid-row: 1;
  margin: 0;
  color: #15253f;
  font-size: 1.08rem;
  font-weight: 760;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

body.user-portal .public-profile-content {
  display: grid;
  grid-template-columns: minmax(0, 1.62fr) minmax(310px, 1fr);
  align-items: start;
  gap: 14px;
  min-width: 0;
}

body.user-portal .public-profile-module {
  min-width: 0;
  padding: 17px 18px 10px;
  overflow: hidden;
}

body.user-portal .public-profile-module .card-heading {
  align-items: center;
  gap: 14px;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(219, 228, 239, .84);
}

body.user-portal .public-profile-module .card-heading h2 {
  margin-top: 3px;
  font-size: 1rem;
}

body.user-portal .public-profile-module .card-heading > a {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex: 0 0 auto;
  padding: 0;
  color: #176fd4;
  font-size: .72rem;
  font-weight: 680;
  white-space: nowrap;
}

body.user-portal .public-profile-module .card-heading > a svg,
body.user-portal .public-profile-row-chevron svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  transform: rotate(-90deg);
}

body.user-portal .public-profile-list {
  display: grid;
  gap: 0;
  min-width: 0;
}

body.user-portal .public-profile-activity-row,
body.user-portal .public-profile-territory-row {
  min-width: 0;
  display: grid;
  align-items: center;
  border-bottom: 1px solid rgba(219, 228, 239, .76);
  color: #18304e;
}

body.user-portal .public-profile-activity-row:last-child,
body.user-portal .public-profile-territory-row:last-child {
  border-bottom: 0;
}

body.user-portal .public-profile-activity-row {
  grid-template-columns: 42px minmax(0, 1fr) minmax(112px, auto) 18px;
  gap: 11px;
  min-height: 68px;
  padding: 10px 0;
}

body.user-portal .public-profile-territory-row {
  grid-template-columns: 48px minmax(0, 1fr) 18px;
  gap: 11px;
  min-height: 76px;
  padding: 10px 0;
}

body.user-portal .public-profile-activity-row:hover,
body.user-portal .public-profile-territory-row:hover {
  background: #f8fbff;
}

body.user-portal .public-profile-activity-row:focus-visible,
body.user-portal .public-profile-territory-row:focus-visible,
body.user-portal .public-profile-back:focus-visible,
body.user-portal .public-profile-module .card-heading > a:focus-visible {
  outline: 3px solid rgba(47, 128, 237, .2);
  outline-offset: 2px;
}

body.user-portal .public-profile-row-icon {
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
}

body.user-portal .public-profile-row-icon.sport {
  width: 38px;
  height: 38px;
  background: #edf5ff;
  color: #2478f2;
}

body.user-portal .public-profile-row-icon.territory {
  width: 46px;
  height: 46px;
  background: #f3efff;
  color: #7558d6;
}

body.user-portal .public-profile-row-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
}

body.user-portal .public-profile-row-copy {
  min-width: 0;
}

body.user-portal .public-profile-row-copy strong,
body.user-portal .public-profile-row-copy small,
body.user-portal .public-profile-row-copy em {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

body.user-portal .public-profile-row-copy strong {
  color: #172842;
  font-size: .81rem;
  font-weight: 710;
  line-height: 1.3;
}

body.user-portal .public-profile-row-copy small {
  margin-top: 3px;
  color: #718198;
  font-size: .69rem;
  font-weight: 510;
  line-height: 1.35;
}

body.user-portal .public-profile-row-points {
  color: #1e4f87;
  font-size: .75rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.3;
  text-align: right;
  white-space: nowrap;
}

body.user-portal .public-profile-row-copy .public-profile-row-points {
  margin-top: 3px;
  text-align: left;
}

body.user-portal .public-profile-row-points.is-zero {
  color: #77879b;
  font-weight: 610;
}

body.user-portal .public-profile-row-chevron {
  display: inline-grid;
  place-items: center;
  color: #6d83a0;
}

body.user-portal .public-profile-module .social-empty {
  margin: 12px 0;
}

@media (max-width: 900px) {
  body.user-portal .public-profile-content {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 760px) {
  body.user-portal .public-profile-hero {
    min-height: 300px;
    padding: 16px;
  }

  body.user-portal .public-profile-cover {
    top: 0;
    right: 0;
    bottom: auto;
    left: 0;
    width: 100%;
    height: 130px;
    -webkit-mask-image: linear-gradient(to bottom, #000 0, rgba(0, 0, 0, .78) 55%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0, rgba(0, 0, 0, .78) 55%, transparent 100%);
  }

  body.user-portal .public-profile-cover img {
    object-position: center 44%;
    opacity: .68;
  }

  body.user-portal .public-profile-identity {
    width: 100%;
    min-height: 0;
    align-items: flex-start;
    padding-top: 82px;
  }

  body.user-portal .public-profile-avatar {
    width: 86px;
    height: 86px;
    border-radius: 24px;
  }

  body.user-portal .public-profile-identity-copy h1 {
    font-size: 1.42rem;
  }

  body.user-portal .public-profile-stats-band {
    padding: 10px 12px;
  }

  body.user-portal .public-profile-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.user-portal .public-profile-stat {
    padding: 11px 12px !important;
  }

  body.user-portal .public-profile-stat:nth-child(3) {
    border-left: 0 !important;
  }

  body.user-portal .public-profile-stat:nth-child(n + 3) {
    border-top: 1px solid rgba(210, 221, 235, .9) !important;
  }
}

@media (max-width: 540px) {
  body.user-portal .public-profile-page {
    gap: 12px;
  }

  body.user-portal .public-profile-hero {
    min-height: 340px;
    padding: 14px;
  }

  body.user-portal .public-profile-identity {
    display: grid;
    gap: 11px;
    padding-top: 72px;
  }

  body.user-portal .public-profile-avatar {
    width: 78px;
    height: 78px;
    border-radius: 22px;
  }

  body.user-portal .public-profile-meta {
    gap: 5px 7px;
  }

  body.user-portal .public-profile-module {
    padding: 15px 14px 8px;
  }

  body.user-portal .public-profile-activity-row {
    grid-template-columns: 38px minmax(0, 1fr) 17px;
    gap: 9px;
  }

  body.user-portal .public-profile-activity-row > .public-profile-row-points {
    grid-column: 2;
    justify-self: start;
    text-align: left;
  }

  body.user-portal .public-profile-activity-row > .public-profile-row-chevron {
    grid-column: 3;
    grid-row: 1 / span 2;
  }

  body.user-portal .public-profile-row-icon.sport {
    width: 36px;
    height: 36px;
  }

  body.user-portal .public-profile-row-points {
    white-space: normal;
  }
}

@media (max-width: 360px) {
  body.user-portal .public-profile-identity-copy h1 {
    font-size: 1.25rem;
  }

  body.user-portal .public-profile-stat {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 8px;
    padding-inline: 8px !important;
  }

  body.user-portal .public-profile-stat > span {
    width: 32px;
    height: 32px;
  }

  body.user-portal .public-profile-module .card-heading {
    align-items: flex-start;
  }
}


/* Full Wallet approved workspace */
body.user-portal .section-wallet {
  position: relative;
  grid-template-columns: minmax(0, 45%) minmax(0, 55%);
  min-height: 158px;
  isolation: isolate;
  overflow: hidden;
  background: linear-gradient(105deg, rgba(255, 255, 255, .98) 0 43%, rgba(239, 247, 255, .92) 72%, rgba(247, 249, 255, .96) 100%);
}

body.user-portal .section-wallet .portal-section-copy {
  position: relative;
  z-index: 2;
  max-width: 560px;
}

body.user-portal .section-wallet .portal-section-visual {
  position: absolute;
  inset: 2px 24px 2px 43%;
  z-index: 1;
  display: block;
  width: auto;
  min-height: 0;
  border: 0;
  border-radius: 0;
  background: var(--section-hero-image) right center / min(46%, 290px) auto no-repeat;
  box-shadow: none;
  opacity: .72;
  pointer-events: none;
}

body.user-portal .section-wallet .portal-section-visual::before,
body.user-portal .section-wallet .portal-section-visual span,
body.user-portal .section-wallet .portal-section-visual i {
  display: none;
}

body.user-portal .wallet-page {
  width: 100%;
  min-width: 0;
  gap: 14px;
}

body.user-portal .wallet-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
}

body.user-portal .wallet-summary-card {
  --wallet-summary-color: #2478f2;
  --wallet-summary-soft: #eaf3ff;
  min-width: 0;
  min-height: 112px;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: 13px;
  padding: 15px;
  overflow: hidden;
  border: 1px solid rgba(210, 221, 235, .86);
  border-radius: 14px;
  background: linear-gradient(145deg, #fff 58%, color-mix(in srgb, var(--wallet-summary-soft) 48%, #fff));
  box-shadow: 0 9px 24px rgba(29, 48, 78, .055);
}

body.user-portal .wallet-summary-card--review {
  --wallet-summary-color: #b77908;
  --wallet-summary-soft: #fff3d9;
}

body.user-portal .wallet-summary-card--paid {
  --wallet-summary-color: #147f85;
  --wallet-summary-soft: #e4f7f5;
}

body.user-portal .wallet-summary-card--lifetime {
  --wallet-summary-color: #7252c5;
  --wallet-summary-soft: #f0ebff;
}

body.user-portal .wallet-summary-icon {
  width: 46px;
  height: 46px;
  display: inline-grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--wallet-summary-color) 17%, transparent);
  border-radius: 50%;
  background: var(--wallet-summary-soft);
  color: var(--wallet-summary-color);
}

body.user-portal .wallet-summary-icon svg,
body.user-portal .wallet-action-primary svg,
body.user-portal .wallet-action-secondary svg,
body.user-portal .wallet-help-note svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.user-portal .wallet-summary-copy {
  min-width: 0;
  display: grid;
  justify-items: start;
  gap: 3px;
}

body.user-portal .wallet-summary-badge {
  max-width: 100%;
  padding: 3px 8px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--wallet-summary-soft);
  color: var(--wallet-summary-color);
  font-size: .64rem;
  font-weight: 750;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.user-portal .wallet-summary-copy strong {
  color: #10203a;
  font-size: 1.42rem;
  font-weight: 780;
  line-height: 1.12;
}

body.user-portal .wallet-summary-copy > span {
  min-width: 0;
  color: #6a7a91;
  font-size: .72rem;
  font-weight: 560;
  line-height: 1.35;
}

body.user-portal .wallet-workspace {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 2.55fr) minmax(270px, 1fr);
  align-items: start;
  gap: 14px;
}

body.user-portal .wallet-entries-panel,
body.user-portal .wallet-side-card,
body.user-portal .wallet-history-panel {
  min-width: 0;
  padding: 16px;
  border-radius: 15px;
}

body.user-portal .wallet-entries-panel {
  gap: 12px;
}

body.user-portal .wallet-entries-heading {
  padding-bottom: 11px;
}

body.user-portal .wallet-entries-heading h2,
body.user-portal .wallet-side-heading h2,
body.user-portal .wallet-history-panel .card-heading h2 {
  margin: 3px 0 0;
  color: #10203a;
  font-size: 1rem;
  font-weight: 760;
  line-height: 1.25;
}

body.user-portal .wallet-entries-heading .muted-copy,
body.user-portal .wallet-history-panel .card-heading .muted-copy {
  margin: 4px 0 0;
  font-size: .72rem;
}

body.user-portal .wallet-filter-form {
  grid-template-columns: minmax(88px, .72fr) minmax(88px, .72fr) minmax(92px, .78fr) minmax(170px, 1.9fr) auto auto;
  gap: 8px;
  margin: 0;
  padding: 10px;
  border: 1px solid rgba(210, 221, 235, .84);
  border-radius: 12px;
  background: #f9fbfe;
}

body.user-portal .wallet-filter-form label {
  min-width: 0;
  gap: 4px;
  font-size: .64rem;
}

body.user-portal .wallet-filter-form select,
body.user-portal .wallet-filter-form input,
body.user-portal .wallet-filter-form button,
body.user-portal .wallet-filter-form a {
  min-width: 0;
  min-height: 34px;
  border-radius: 9px;
  font-size: .71rem;
}

body.user-portal .wallet-filter-form button,
body.user-portal .wallet-filter-form a {
  align-self: end;
  padding-inline: 12px;
}

body.user-portal .wallet-filter-form a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(207, 218, 231, .9);
  background: #fff;
  color: #52657c;
  font-weight: 700;
}

body.user-portal .wallet-table-wrap {
  width: 100%;
  overflow-x: auto;
  border: 1px solid rgba(210, 221, 235, .82);
  border-radius: 12px;
}

body.user-portal .wallet-table {
  min-width: 680px;
  table-layout: fixed;
  border-collapse: collapse;
  border-spacing: 0;
}

body.user-portal .wallet-table th:nth-child(1) { width: 42px; }
body.user-portal .wallet-table th:nth-child(2) { width: 82px; }
body.user-portal .wallet-table th:nth-child(3) { width: 25%; }
body.user-portal .wallet-table th:nth-child(4) { width: 68px; }
body.user-portal .wallet-table th:nth-child(5) { width: 66px; }
body.user-portal .wallet-table th:nth-child(6) { width: 92px; }
body.user-portal .wallet-table th:nth-child(7) { width: 104px; }
body.user-portal .wallet-table th:nth-child(8) { width: 72px; }

body.user-portal .wallet-table th {
  padding: 8px 7px;
  border-bottom: 1px solid rgba(219, 228, 239, .76);
  background: #f9fbfe;
  color: #718198;
  font-size: .59rem;
  letter-spacing: 0;
  line-height: 1.2;
  white-space: normal;
}

body.user-portal .wallet-table tbody tr {
  box-shadow: none;
}

body.user-portal .wallet-table td,
body.user-portal .wallet-table td:first-child,
body.user-portal .wallet-table td:last-child {
  min-width: 0;
  padding: 9px 7px;
  border: 0;
  border-bottom: 1px solid rgba(219, 228, 239, .7);
  border-radius: 0;
  background: #fff;
  color: #253750;
  font-size: .68rem;
  font-weight: 650;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

body.user-portal .wallet-table tbody tr:last-child td {
  border-bottom: 0;
}

body.user-portal .wallet-table tbody tr:has(input:checked) td {
  background: #f2f7ff;
}

body.user-portal .wallet-table tbody tr:has(input:checked) td:first-child {
  box-shadow: inset 3px 0 0 #2478f2;
}

body.user-portal .wallet-table small {
  margin-top: 2px;
  font-size: .61rem;
  line-height: 1.25;
}

body.user-portal .wallet-table input[type="checkbox"],
body.user-portal .wallet-card-check input {
  width: 15px;
  height: 15px;
  accent-color: #2478f2;
}

body.user-portal .wallet-status {
  min-height: 22px;
  padding: 2px 7px;
  border: 0;
  font-size: .61rem;
  font-weight: 720;
  line-height: 1.2;
}

body.user-portal .wallet-status.available { background: #eaf3ff; color: #1766c3; }
body.user-portal .wallet-status.review { background: #fff3d9; color: #9a6605; }
body.user-portal .wallet-status.approved { background: #e4f5f6; color: #14737a; }
body.user-portal .wallet-status.paid { background: #eeeaff; color: #6848b8; }
body.user-portal .wallet-status.rejected { background: #ffede9; color: #a84438; }
body.user-portal .wallet-status.cancelled,
body.user-portal .wallet-status.void { background: #eef2f6; color: #637186; }

body.user-portal .wallet-row-button,
body.user-portal .wallet-inline-state {
  font-size: .65rem;
}

body.user-portal .wallet-row-button {
  min-height: 28px;
  padding-inline: 9px;
  border-radius: 8px;
}

body.user-portal .wallet-bulk-footer {
  padding-top: 2px;
}

body.user-portal .wallet-bulk-footer .wallet-button {
  min-height: 34px;
  border-radius: 9px;
  font-size: .7rem;
}

body.user-portal .wallet-bulk-footer > span {
  font-size: .7rem;
}

body.user-portal .wallet-pagination {
  padding-top: 10px;
  border-top: 1px solid rgba(219, 228, 239, .72);
}

body.user-portal .wallet-pagination a,
body.user-portal .wallet-pagination span {
  min-width: 30px;
  min-height: 30px;
  padding: 0 9px;
  border-radius: 8px;
  font-size: .66rem;
}

body.user-portal .wallet-pagination .is-current {
  border-color: #2478f2;
  background: #2478f2;
  color: #fff;
}

body.user-portal .wallet-workspace-aside {
  min-width: 0;
  display: grid;
  align-items: start;
  gap: 14px;
}

body.user-portal .wallet-side-card {
  display: grid;
  gap: 11px;
}

body.user-portal .wallet-side-heading {
  padding-bottom: 9px;
  border-bottom: 1px solid rgba(219, 228, 239, .76);
}

body.user-portal .wallet-preview-list {
  display: grid;
  border: 1px solid rgba(210, 221, 235, .8);
  border-radius: 11px;
  overflow: hidden;
}

body.user-portal .wallet-preview-request {
  min-width: 0;
  min-height: 43px;
  display: grid;
  grid-template-columns: minmax(72px, 1fr) auto auto auto 14px;
  align-items: center;
  gap: 7px;
  padding: 7px 8px;
  border-bottom: 1px solid rgba(219, 228, 239, .7);
  color: #24364f;
}

body.user-portal .wallet-preview-request:last-child {
  border-bottom: 0;
}

body.user-portal .wallet-preview-request:hover,
body.user-portal .wallet-preview-request:focus-visible {
  background: #f7faff;
}

body.user-portal .wallet-preview-request strong,
body.user-portal .wallet-preview-request small,
body.user-portal .wallet-preview-request em {
  min-width: 0;
  font-size: .63rem;
  font-style: normal;
  white-space: nowrap;
}

body.user-portal .wallet-preview-request small,
body.user-portal .wallet-preview-request em {
  color: #6d7c91;
}

body.user-portal .wallet-preview-request i,
body.user-portal .wallet-side-footer > span:last-child,
body.user-portal .wallet-action-secondary i,
body.user-portal .wallet-request-row > i {
  display: inline-grid;
  place-items: center;
  color: #2478f2;
}

body.user-portal .wallet-preview-request i svg,
body.user-portal .wallet-side-footer svg,
body.user-portal .wallet-action-secondary i svg,
body.user-portal .wallet-request-row > i svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  transform: rotate(-90deg);
}

body.user-portal .wallet-side-footer {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-top: 1px solid rgba(219, 228, 239, .72);
  color: #176bd0;
  font-size: .68rem;
  font-weight: 730;
  white-space: nowrap;
}

body.user-portal .wallet-quick-actions form {
  display: flex;
  align-items: flex-start;
  margin: 0;
}

body.user-portal .wallet-action-primary,
body.user-portal .wallet-action-secondary {
  width: 100%;
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 9px;
  font-size: .7rem;
  font-weight: 730;
}

body.user-portal .wallet-request-all-button {
  width: auto;
  min-width: 210px;
  max-width: 100%;
  align-self: flex-start;
  padding-inline: 18px;
}

body.user-portal .wallet-payout-dialog {
  width: min(1180px, calc(100vw - 48px));
  max-width: none;
  max-height: calc(100dvh - 48px);
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(199, 213, 230, .92);
  border-radius: 20px;
  background: #fff;
  color: #14243e;
  box-shadow: 0 28px 80px rgba(24, 50, 86, .24);
}

body.user-portal .wallet-payout-dialog[open] {
  display: block;
}

body.user-portal .wallet-payout-dialog::backdrop {
  background: rgba(25, 43, 68, .42);
  backdrop-filter: blur(5px);
}

body.user-portal .wallet-payout-workspace {
  max-height: calc(100dvh - 50px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  background: #fff;
}

body.user-portal .wallet-payout-workspace-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 21px 24px 17px;
  border-bottom: 1px solid rgba(219, 228, 239, .84);
}

body.user-portal .wallet-payout-workspace-header h2 {
  margin: 4px 0 0;
  color: #10203a;
  font-size: 1.42rem;
  font-weight: 760;
  line-height: 1.2;
}

body.user-portal .wallet-payout-workspace-header p:last-child {
  max-width: 650px;
  margin: 7px 0 0;
  color: #65768c;
  font-size: .82rem;
  line-height: 1.45;
}

body.user-portal .wallet-payout-workspace-header form {
  margin: 0;
}

body.user-portal .wallet-payout-workspace-header .activity-modal-close {
  width: 38px;
  height: 38px;
}

body.user-portal .wallet-payout-workspace-body {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, .48fr);
  gap: 16px;
  padding: 18px 24px 24px;
  overflow: auto;
  overscroll-behavior: contain;
}

body.user-portal .wallet-payout-list-panel {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 10px;
}

body.user-portal .wallet-request-list-heading,
body.user-portal .wallet-payout-dialog .wallet-request-row {
  grid-template-columns: minmax(108px, .9fr) minmax(82px, .7fr) minmax(96px, .8fr) minmax(96px, .8fr) minmax(84px, .8fr) minmax(86px, .7fr) 16px;
}

body.user-portal .wallet-request-list-heading {
  display: grid;
  gap: 10px;
  padding: 0 11px 3px;
  color: #7c8ba0;
  font-size: .62rem;
  font-weight: 780;
  text-transform: uppercase;
}

body.user-portal .wallet-payout-dialog .wallet-request-list {
  max-height: none;
}

body.user-portal .wallet-payout-dialog .wallet-request-row {
  cursor: pointer;
}

body.user-portal .wallet-request-detail-empty {
  align-content: center;
  min-height: 260px;
}

body.user-portal .wallet-payout-dialog .wallet-request-detail {
  gap: 10px;
  padding: 12px;
  border-color: rgba(212, 224, 238, .82);
  border-radius: 13px;
  background: #f9fbfe;
}

body.user-portal .wallet-payout-dialog .wallet-request-detail .card-heading {
  align-items: center;
  gap: 10px;
  padding-bottom: 10px;
}

body.user-portal .wallet-payout-dialog .wallet-request-detail .card-heading h2 {
  margin-top: 2px;
  color: #182a43;
  font-size: .98rem;
  font-weight: 680;
  line-height: 1.2;
}

body.user-portal .wallet-payout-dialog .wallet-request-detail .card-heading a {
  min-height: 30px;
  padding-inline: 10px;
  font-size: .68rem;
  font-weight: 650;
}

body.user-portal .wallet-payout-dialog .wallet-detail-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

body.user-portal .wallet-payout-dialog .wallet-detail-list div {
  gap: 3px;
  min-width: 0;
  padding: 8px 9px;
  border-color: rgba(219, 228, 239, .72);
  border-radius: 10px;
  background: rgba(255,255,255,.86);
}

body.user-portal .wallet-payout-dialog .wallet-detail-list dt {
  color: #76879d;
  font-size: .59rem;
  font-weight: 650;
  letter-spacing: .04em;
  line-height: 1.15;
}

body.user-portal .wallet-payout-dialog .wallet-detail-list dd {
  color: #334861;
  font-size: .72rem;
  font-weight: 580;
  line-height: 1.25;
  overflow-wrap: normal;
}

body.user-portal .wallet-payout-dialog .wallet-detail-list div:nth-child(1) dd,
body.user-portal .wallet-payout-dialog .wallet-detail-list div:nth-child(2) dd,
body.user-portal .wallet-payout-dialog .wallet-detail-list div:nth-child(4) dd {
  color: #172842;
  font-size: .78rem;
  font-weight: 680;
}

body.user-portal .wallet-payout-dialog .wallet-detail-list div:nth-child(n+5) dd {
  white-space: nowrap;
}

body.user-portal .wallet-payout-dialog .wallet-detail-list .wallet-status {
  min-height: 20px;
  padding: 2px 7px;
  font-size: .58rem;
}

body.user-portal .wallet-payout-dialog .wallet-public-note {
  padding: 8px 9px;
  border-radius: 10px;
  background: #fff;
  font-size: .72rem;
  line-height: 1.4;
}

body.user-portal .wallet-payout-dialog .wallet-request-items {
  gap: 6px;
}

body.user-portal .wallet-payout-dialog .wallet-request-items > span {
  gap: 8px;
  padding: 8px 9px;
  border: 1px solid rgba(219, 228, 239, .66);
  border-radius: 10px;
  font-weight: 560;
}

body.user-portal .wallet-payout-dialog .wallet-request-items > span > span strong {
  font-size: .74rem;
  font-weight: 650;
  line-height: 1.25;
}

body.user-portal .wallet-payout-dialog .wallet-request-items small {
  font-size: .66rem;
  font-weight: 520;
  line-height: 1.25;
}

body.user-portal .wallet-payout-dialog .wallet-request-items > span > strong {
  color: #24364f;
  font-size: .74rem;
  font-weight: 650;
}

body.user-portal .wallet-action-primary span,
body.user-portal .wallet-action-secondary > span:first-child {
  display: inline-grid;
  place-items: center;
}

body.user-portal .wallet-action-primary svg,
body.user-portal .wallet-action-secondary svg {
  width: 16px;
  height: 16px;
}

body.user-portal .wallet-action-secondary {
  position: relative;
  border: 1px solid rgba(196, 212, 231, .92);
  background: #fff;
  color: #42546c;
}

body.user-portal .wallet-action-secondary i {
  position: absolute;
  right: 10px;
}

body.user-portal .wallet-help-note {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 9px;
  padding: 10px;
  border-radius: 10px;
  background: #f5f8fc;
  color: #617189;
}

body.user-portal .wallet-help-note > span {
  width: 28px;
  height: 28px;
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  background: #e9f3ff;
  color: #2478f2;
}

body.user-portal .wallet-help-note svg {
  width: 15px;
  height: 15px;
}

body.user-portal .wallet-help-note p,
body.user-portal .wallet-help-note strong {
  display: block;
  margin: 0;
  font-size: .64rem;
  line-height: 1.45;
}

body.user-portal .wallet-history-panel {
  gap: 12px;
  scroll-margin-top: 16px;
}

body.user-portal .wallet-request-list {
  gap: 0;
  overflow: hidden;
  border: 1px solid rgba(210, 221, 235, .82);
  border-radius: 12px;
}

body.user-portal .wallet-request-row {
  grid-template-columns: minmax(105px, .9fr) minmax(80px, .7fr) minmax(110px, 1fr) minmax(80px, .8fr) 16px;
  min-height: 47px;
  gap: 10px;
  padding: 9px 11px;
  border: 0;
  border-bottom: 1px solid rgba(219, 228, 239, .72);
  border-radius: 0;
  box-shadow: none;
}

body.user-portal .wallet-request-row:last-child {
  border-bottom: 0;
}

body.user-portal .wallet-request-row:hover {
  transform: none;
  box-shadow: none;
  background: #f8fbff;
}

body.user-portal .wallet-request-row strong,
body.user-portal .wallet-request-row small,
body.user-portal .wallet-request-row em {
  font-size: .7rem;
}

body.user-portal .wallet-entry-card-request {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 10px;
  padding: 9px 0;
  border-top: 1px solid rgba(219, 228, 239, .72);
  border-bottom: 1px solid rgba(219, 228, 239, .72);
}

body.user-portal .wallet-entry-card-request > span,
body.user-portal .wallet-entry-card-request > small,
body.user-portal .wallet-card-lock {
  color: #718198;
  font-size: .72rem;
  font-weight: 650;
}

body.user-portal .wallet-entry-card-request > small {
  grid-column: 1 / -1;
}

@media (max-width: 1180px) {
  body.user-portal .wallet-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.user-portal .wallet-workspace {
    grid-template-columns: minmax(0, 2fr) minmax(250px, 1fr);
  }

  body.user-portal .wallet-filter-form {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.user-portal .wallet-filter-form .activity-search {
    grid-column: 1 / span 2;
  }
}

@media (max-width: 980px) {
  body.user-portal .wallet-workspace {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .wallet-workspace-aside {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  body.user-portal .section-wallet {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .section-wallet .portal-section-copy {
    max-width: 68%;
  }

  body.user-portal .section-wallet .portal-section-visual {
    left: 52%;
    opacity: .48;
  }

  body.user-portal .wallet-workspace-aside {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .wallet-table-wrap {
    display: none;
  }

  body.user-portal .wallet-card-list {
    display: grid;
    gap: 9px;
  }

  body.user-portal .wallet-entry-card {
    gap: 10px;
    border-radius: 12px;
  }

  body.user-portal .wallet-entry-card:has(input:checked) {
    border-color: rgba(36, 120, 242, .42);
    background: #f3f8ff;
    box-shadow: inset 3px 0 0 #2478f2;
  }

  body.user-portal .wallet-entry-card-main {
    min-width: 0;
    display: grid;
    gap: 3px;
  }

  body.user-portal .wallet-card-check {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 4px;
  }

  body.user-portal .wallet-entry-card-side {
    align-items: center;
  }

  body.user-portal .wallet-entry-card-actions {
    justify-content: flex-end;
  }
}

@media (max-width: 600px) {
  body.user-portal .section-wallet {
    min-height: 142px;
  }

  body.user-portal .section-wallet .portal-section-copy {
    max-width: 76%;
  }

  body.user-portal .section-wallet .portal-section-visual {
    inset: 18px 8px 8px 58%;
    background-size: contain;
    opacity: .32;
  }

  body.user-portal .wallet-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  body.user-portal .wallet-summary-card {
    min-height: 104px;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 9px;
    padding: 11px;
  }

  body.user-portal .wallet-summary-icon {
    width: 36px;
    height: 36px;
  }

  body.user-portal .wallet-summary-icon svg {
    width: 18px;
    height: 18px;
  }

  body.user-portal .wallet-summary-copy strong {
    font-size: 1.12rem;
  }

  body.user-portal .wallet-summary-copy > span {
    font-size: .64rem;
  }

  body.user-portal .wallet-entries-panel,
  body.user-portal .wallet-side-card,
  body.user-portal .wallet-history-panel {
    padding: 13px;
  }

  body.user-portal .wallet-filter-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.user-portal .wallet-filter-form .activity-search {
    grid-column: 1 / -1;
  }

  body.user-portal .wallet-filter-form button,
  body.user-portal .wallet-filter-form a {
    width: 100%;
  }

  body.user-portal .wallet-preview-request {
    grid-template-columns: minmax(0, 1fr) auto 14px;
    gap: 4px 8px;
    padding: 9px;
  }

  body.user-portal .wallet-preview-request > span,
  body.user-portal .wallet-preview-request > small {
    grid-column: 1;
  }

  body.user-portal .wallet-preview-request > strong,
  body.user-portal .wallet-preview-request > em {
    grid-column: 2;
    text-align: right;
  }

  body.user-portal .wallet-preview-request > i {
    grid-column: 3;
    grid-row: 1 / span 2;
  }

  body.user-portal .wallet-request-row {
    grid-template-columns: minmax(0, 1fr) auto 16px;
    gap: 5px 8px;
  }

  body.user-portal .wallet-payout-dialog {
    width: min(calc(100% - 20px), 760px);
    max-height: calc(100dvh - 20px);
    border-radius: 17px;
  }

  body.user-portal .wallet-payout-workspace {
    max-height: calc(100dvh - 22px);
  }

  body.user-portal .wallet-payout-workspace-header {
    padding: 18px 18px 15px;
  }

  body.user-portal .wallet-payout-workspace-body {
    grid-template-columns: minmax(0, 1fr);
    padding: 16px 18px 20px;
  }

  body.user-portal .wallet-request-list-heading {
    display: none;
  }

  body.user-portal .wallet-request-row > span,
  body.user-portal .wallet-request-row > small {
    grid-column: 1;
  }

  body.user-portal .wallet-request-row > strong,
  body.user-portal .wallet-request-row > em {
    grid-column: 2;
    text-align: right;
  }

  body.user-portal .wallet-request-row > i {
    grid-column: 3;
    grid-row: 1 / span 2;
  }

  body.user-portal .wallet-request-items > span {
    align-items: flex-start;
  }

  body.user-portal .wallet-payout-dialog .wallet-detail-list {
    grid-template-columns: repeat(2, minmax(118px, 1fr));
  }

  body.user-portal .wallet-detail-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 420px) {
  body.user-portal .section-wallet .portal-section-copy {
    max-width: 100%;
  }

  body.user-portal .section-wallet .portal-section-visual {
    inset: 44px 2px 2px 58%;
    opacity: .14;
  }

  body.user-portal .wallet-summary-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .wallet-summary-card {
    min-height: 88px;
    grid-template-columns: 42px minmax(0, 1fr);
  }

  body.user-portal .wallet-filter-form {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .wallet-filter-form .activity-search {
    grid-column: auto;
  }

  body.user-portal .wallet-bulk-footer {
    align-items: stretch;
  }

  body.user-portal .wallet-bulk-footer .wallet-button {
    width: 100%;
  }

  body.user-portal .wallet-request-all-button {
    width: 100%;
  }

  body.user-portal .wallet-payout-dialog {
    width: calc(100% - 12px);
    max-height: calc(100dvh - 12px);
    border-radius: 15px;
  }

  body.user-portal .wallet-payout-workspace {
    max-height: calc(100dvh - 14px);
  }

  body.user-portal .wallet-payout-workspace-header {
    gap: 12px;
    padding: 15px 14px 13px;
  }

  body.user-portal .wallet-payout-workspace-header h2 {
    font-size: 1.18rem;
  }

  body.user-portal .wallet-payout-workspace-body {
    padding: 14px;
  }

  body.user-portal .wallet-pagination {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .wallet-pagination div {
    justify-content: center;
  }

  body.user-portal .wallet-detail-list {
    grid-template-columns: minmax(0, 1fr);
  }

  body.user-portal .wallet-payout-dialog .wallet-detail-list {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* Profile account-settings workspace final pass */
body.user-portal .section-profile {
  min-height: 142px;
  grid-template-columns: minmax(0, 1fr) minmax(150px, 240px);
  background: linear-gradient(105deg, rgba(255, 255, 255, .98) 0 48%, rgba(238, 249, 252, .92) 72%, rgba(247, 251, 255, .96) 100%);
}

body.user-portal .section-profile .portal-section-visual {
  background:
    var(--section-hero-image) center / contain no-repeat,
    linear-gradient(135deg, rgba(35, 116, 171, .09), rgba(51, 199, 160, .11));
}

body.user-portal .profile-page {
  gap: 14px;
}

body.user-portal .profile-summary-card,
body.user-portal .profile-form-card,
body.user-portal .profile-panel-card {
  padding: 18px;
  border-radius: 16px;
}

body.user-portal .profile-identity-card {
  min-height: 190px;
  display: grid;
  align-items: center;
  overflow: hidden;
  position: relative;
  background: linear-gradient(105deg, rgba(255, 255, 255, .98) 0 48%, rgba(238, 249, 252, .92) 72%, rgba(247, 251, 255, .96) 100%);
  isolation: isolate;
}

body.user-portal .profile-summary-main {
  grid-template-columns: minmax(0, 1fr) minmax(180px, 260px);
  gap: clamp(20px, 4vw, 44px);
  align-items: center;
}

body.user-portal .profile-identity-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(circle at 78% 18%, rgba(47, 128, 237, .13), transparent 15rem),
    radial-gradient(circle at 88% 82%, rgba(51, 199, 160, .14), transparent 15rem);
}

body.user-portal .profile-identity-visual {
  min-height: 148px;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 14px;
  padding: 18px;
  border-radius: 18px;
  background:
    radial-gradient(circle at 70% 28%, rgba(255, 255, 255, .92), transparent 36px),
    radial-gradient(circle at 34% 45%, rgba(47, 128, 237, .16), transparent 72px),
    linear-gradient(135deg, rgba(35, 116, 171, .08), rgba(51, 199, 160, .1));
  box-shadow: inset 0 0 0 1px rgba(35, 116, 171, .08);
}

body.user-portal .profile-summary-avatar {
  width: 118px;
  height: 118px;
  border: 4px solid rgba(255, 255, 255, .94);
  font-size: 2.2rem;
  box-shadow: 0 18px 40px rgba(35, 116, 171, .2);
}

body.user-portal .profile-identity-copy {
  min-width: 0;
}

body.user-portal .profile-identity-copy h2,
body.user-portal .profile-form-card h2,
body.user-portal .profile-panel-card h2 {
  margin: 0;
  color: #10223f;
  font-size: 1.05rem;
  font-weight: 730;
  letter-spacing: 0;
}

body.user-portal .profile-identity-copy h2 {
  margin-top: 14px;
  font-size: 1.28rem;
}

body.user-portal .profile-identity-copy h1 {
  margin: 2px 0 0;
  color: #10223f;
  font-size: clamp(1.9rem, 3vw, 2.55rem);
  font-weight: 760;
  line-height: 1.02;
  letter-spacing: 0;
}

body.user-portal .profile-hero-subtitle {
  max-width: 620px;
  margin: 8px 0 0;
  color: #5f6f83;
  font-size: .98rem;
  line-height: 1.45;
}

body.user-portal .profile-username {
  margin: 6px 0 0;
  color: #64748b;
  font-size: .9rem;
  font-weight: 560;
}

body.user-portal .profile-meta-row {
  margin-top: 12px;
  gap: 8px;
}

body.user-portal .profile-meta-row span {
  min-height: 32px;
  gap: 7px;
  padding: 6px 12px;
  border-radius: 999px;
  background: #f7fbff;
  color: #556a86;
  font-size: .82rem;
  font-weight: 620;
}

body.user-portal .profile-meta-row svg {
  width: 15px;
  height: 15px;
  color: #2f80ed;
}

body.user-portal .profile-actions {
  justify-content: flex-end;
  margin-top: 0;
}

body.user-portal .profile-actions .social-button,
body.user-portal .profile-identity-visual .social-button,
body.user-portal .profile-management-form .social-button,
body.user-portal .profile-settings-form .social-button {
  min-height: 38px;
  border-radius: 10px;
  padding: 9px 14px;
  font-size: .84rem;
  font-weight: 690;
}

body.user-portal .profile-identity-visual .social-button {
  justify-content: center;
  min-width: 178px;
  background: rgba(255, 255, 255, .9);
}

body.user-portal .profile-content-grid {
  grid-template-columns: minmax(0, 1.55fr) minmax(320px, .9fr);
  gap: 14px;
}

body.user-portal .profile-primary-column,
body.user-portal .profile-side-column {
  gap: 14px;
}

body.user-portal .profile-form-card .card-heading > div,
body.user-portal .profile-panel-card .card-heading > div {
  display: flex;
  align-items: center;
  gap: 10px;
}

body.user-portal .profile-card-icon {
  width: 30px;
  height: 30px;
  display: inline-grid;
  place-items: center;
  border-radius: 10px;
  background: rgba(47, 128, 237, .1);
  color: #2f80ed;
}

body.user-portal .profile-card-icon svg {
  width: 16px;
  height: 16px;
}

body.user-portal .profile-wearables-entry .muted-copy {
  margin-top: 12px;
}

body.user-portal .profile-context-action {
  width: fit-content;
  margin-top: 14px;
}

body.user-portal .profile-settings-form {
  gap: 13px;
  margin-top: 14px;
}

body.user-portal .profile-settings-form.compact {
  gap: 11px;
}

body.user-portal .profile-form-grid {
  gap: 12px;
}

body.user-portal .profile-settings-form label {
  gap: 6px;
  color: #4e627e;
  font-size: .78rem;
  font-weight: 640;
}

body.user-portal .profile-settings-form label > span,
body.user-portal .profile-detail-list dt,
body.user-portal .profile-locked-row > span {
  color: #687b95;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}

body.user-portal .profile-settings-form input,
body.user-portal .profile-settings-form textarea,
body.user-portal .profile-settings-form select {
  min-height: 40px;
  border-radius: 10px;
  padding: 9px 11px;
  color: #17233a;
  font-size: .88rem;
  font-weight: 520;
}

body.user-portal .profile-settings-form textarea {
  min-height: 96px;
}

body.user-portal .profile-settings-form input[readonly] {
  color: #5d6f87;
  background: #f4f7fb;
}

body.user-portal .profile-field-note {
  align-self: end;
  margin: -4px 0 2px;
  color: #7a8aa0;
  font-size: .76rem;
  line-height: 1.35;
}

body.user-portal .profile-detail-list {
  gap: 9px;
  margin: 14px 0;
}

body.user-portal .profile-detail-list div,
body.user-portal .profile-locked-row,
body.user-portal .profile-management-form {
  border: 1px solid rgba(219, 228, 239, .86);
  border-radius: 12px;
  background: #f8fbff;
}

body.user-portal .profile-detail-list div {
  padding: 10px 11px;
}

body.user-portal .profile-detail-list dd {
  margin: 3px 0 0;
  color: #17233a;
  font-size: .9rem;
  font-weight: 590;
  overflow-wrap: anywhere;
}

body.user-portal .profile-check-row {
  min-height: 42px;
  padding: 9px 10px;
  border: 1px solid rgba(219, 228, 239, .86);
  border-radius: 12px;
  background: #f8fbff;
  color: #26364d;
  font-size: .86rem;
  font-weight: 610;
}

body.user-portal .profile-check-row input {
  accent-color: #2f80ed;
}

body.user-portal .profile-locked-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 42px;
  padding: 10px 11px;
}

body.user-portal .profile-locked-row strong {
  color: #17233a;
  font-size: .86rem;
  font-weight: 630;
}

body.user-portal .profile-management-form {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
}

body.user-portal .profile-management-form div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

body.user-portal .profile-management-form strong {
  color: #17233a;
  font-size: .9rem;
  font-weight: 650;
}

body.user-portal .profile-management-form span {
  color: #687b95;
  font-size: .78rem;
  line-height: 1.35;
}

body.user-portal .profile-management-form button:disabled,
body.user-portal .profile-settings-form button:disabled {
  cursor: not-allowed;
  opacity: .55;
}

@media (max-width: 980px) {
  body.user-portal .profile-content-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  body.user-portal .section-profile {
    grid-template-columns: 1fr;
  }

  body.user-portal .section-profile .portal-section-visual {
    display: none;
  }

  body.user-portal .profile-summary-main {
    grid-template-columns: 1fr;
  }

  body.user-portal .profile-identity-visual {
    justify-self: stretch;
  }

  body.user-portal .profile-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  body.user-portal .profile-summary-avatar {
    width: 96px;
    height: 96px;
    font-size: 1.75rem;
  }

  body.user-portal .profile-form-grid,
  body.user-portal .profile-management-form,
  body.user-portal .profile-locked-row {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  body.user-portal .profile-management-form,
  body.user-portal .profile-locked-row {
    display: grid;
  }

  body.user-portal .profile-management-form .social-button,
  body.user-portal .profile-identity-visual .social-button,
  body.user-portal .profile-settings-form .social-button,
  body.user-portal .profile-actions .social-button {
    width: 100%;
    justify-content: center;
  }
}


/* User portal login final visual polish */
body.user-portal.login-screen {
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: clamp(12px, 2.5vh, 32px) clamp(18px, 3vw, 48px);
  overflow-x: hidden;
  background:
    radial-gradient(circle at 50% 44%, rgba(255, 255, 255, .92), transparent 28rem),
    radial-gradient(circle at 7% 3%, rgba(51, 199, 160, .2), transparent 34rem),
    radial-gradient(circle at 95% 4%, rgba(47, 128, 237, .16), transparent 36rem),
    linear-gradient(105deg, #eefbf6 0%, #f8fbfd 47%, #eef6ff 100%);
}

body.user-portal.login-screen::before {
  opacity: .55;
}

body.user-portal.login-screen .login-shell {
  width: min(1390px, 100%);
  min-height: min(820px, calc(100dvh - 64px));
  max-height: calc(100dvh - 24px);
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 56fr) minmax(380px, 44fr);
  align-items: stretch;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(207, 218, 231, .74);
  border-radius: 28px;
  background: rgba(255, 255, 255, .72);
  box-shadow: 0 28px 74px rgba(29, 48, 78, .13);
}

body.user-portal.login-screen .login-brand-panel,
body.user-portal.login-screen .login-card {
  min-height: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

body.user-portal.login-screen .login-brand-panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) minmax(150px, 250px);
  gap: clamp(28px, 5vh, 54px);
  padding: clamp(34px, 4.2vw, 58px);
  background:
    linear-gradient(100deg, rgba(255, 255, 255, .96), rgba(247, 251, 255, .82)),
    radial-gradient(circle at 18% 8%, rgba(51, 199, 160, .16), transparent 18rem),
    radial-gradient(circle at 88% 86%, rgba(47, 128, 237, .12), transparent 20rem);
}

body.user-portal.login-screen .portal-brand {
  width: max-content;
  font-size: 1.02rem;
}

body.user-portal.login-screen .portal-brand-mark {
  width: 58px;
  height: 58px;
  border-radius: 16px;
}

body.user-portal.login-screen .login-brand-content {
  align-self: center;
  display: grid;
  gap: clamp(40px, 5vh, 56px);
}

body.user-portal.login-screen .login-brand-content h2 {
  max-width: 620px;
  margin: 0;
  color: #08132b;
  font-size: clamp(2.5rem, 3.6vw, 3.65rem);
  font-weight: 780;
  line-height: 1.08;
  letter-spacing: 0;
}

body.user-portal.login-screen .login-brand-content h2 strong {
  color: #146dd8;
  font-weight: inherit;
}

body.user-portal.login-screen .login-feature-list {
  display: grid;
  gap: 28px;
}

body.user-portal.login-screen .login-feature-item {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  align-items: center;
  gap: 16px;
}

body.user-portal.login-screen .login-feature-icon {
  width: 54px;
  height: 54px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(47, 128, 237, .12);
  color: #2374ab;
}

body.user-portal.login-screen .login-feature-icon.green {
  background: rgba(51, 199, 160, .15);
  color: #1f9d73;
}

body.user-portal.login-screen .login-feature-icon.amber {
  background: rgba(243, 178, 62, .17);
  color: #d88d09;
}

body.user-portal.login-screen .login-feature-icon svg {
  width: 24px;
  height: 24px;
}

body.user-portal.login-screen .login-feature-item p {
  margin: 0;
  color: #334663;
  line-height: 1.32;
}

body.user-portal.login-screen .login-feature-item strong,
body.user-portal.login-screen .login-feature-item small {
  display: block;
}

body.user-portal.login-screen .login-feature-item strong {
  font-size: 1.02rem;
  font-weight: 710;
}

body.user-portal.login-screen .login-feature-item small {
  margin-top: 3px;
  color: #5d6f8a;
  font-size: .94rem;
}

body.user-portal.login-screen .login-territory-art {
  min-height: 170px;
  align-self: end;
  position: relative;
  margin: 0 calc(clamp(34px, 4.2vw, 58px) * -1) calc(clamp(34px, 4.2vw, 58px) * -1);
  overflow: hidden;
}

body.user-portal.login-screen .login-territory-art::before,
body.user-portal.login-screen .login-territory-art::after {
  content: "";
  position: absolute;
  left: -8%;
  right: -8%;
  bottom: -34%;
  height: 120%;
  border-radius: 50% 50% 0 0;
  background: linear-gradient(180deg, rgba(199, 237, 234, .78), rgba(221, 246, 240, .52));
}

body.user-portal.login-screen .login-territory-art::after {
  left: 18%;
  right: -16%;
  bottom: -56%;
  background: linear-gradient(180deg, rgba(186, 229, 221, .62), rgba(229, 248, 245, .45));
}

body.user-portal.login-screen .login-territory-art i {
  position: absolute;
  left: 20%;
  right: 14%;
  bottom: 50%;
  z-index: 2;
  height: 62px;
  border-bottom: 3px dotted rgba(255, 255, 255, .92);
  border-radius: 0 0 50% 50%;
  transform: rotate(2deg);
}

body.user-portal.login-screen .login-territory-art .marker {
  position: absolute;
  z-index: 3;
  width: 32px;
  height: 32px;
  border-radius: 50% 50% 50% 0;
  background: #48b99d;
  transform: rotate(-45deg);
  box-shadow: 0 12px 24px rgba(29, 48, 78, .16);
}

body.user-portal.login-screen .login-territory-art .marker::before {
  content: "";
  position: absolute;
  inset: 9px;
  border-radius: 999px;
  background: #fff;
}

body.user-portal.login-screen .login-territory-art .marker::after {
  content: "";
  position: absolute;
  left: -8px;
  bottom: -12px;
  width: 48px;
  height: 10px;
  border-radius: 999px;
  background: rgba(35, 116, 171, .13);
  transform: rotate(45deg);
}

body.user-portal.login-screen .login-territory-art .marker-a {
  left: 18%;
  bottom: 36%;
}

body.user-portal.login-screen .login-territory-art .marker-b {
  left: 58%;
  bottom: 62%;
  background: #f3b23e;
}

body.user-portal.login-screen .login-territory-art .marker-c {
  right: 14%;
  bottom: 42%;
  background: #e86f61;
}

body.user-portal.login-screen .login-card {
  display: grid;
  align-content: center;
  padding: clamp(38px, 4vw, 58px);
  background: rgba(255, 255, 255, .95);
  border-left: 1px solid rgba(207, 218, 231, .76);
}

body.user-portal.login-screen .login-card h1 {
  margin: 0;
  color: #08132b;
  font-size: clamp(3rem, 4.3vw, 4.15rem);
  font-weight: 780;
  line-height: .98;
  letter-spacing: 0;
}

body.user-portal.login-screen .login-card > p:not(.portal-eyebrow):not(.form-help) {
  max-width: 500px;
  margin-top: 18px;
  color: #60728d;
  font-size: 1.04rem;
  line-height: 1.5;
}

body.user-portal.login-screen .portal-form {
  gap: 18px;
  margin-top: 30px;
}

body.user-portal.login-screen .portal-form label {
  gap: 9px;
  color: #101b33;
  font-size: .94rem;
  font-weight: 740;
}

body.user-portal.login-screen .login-field-control {
  min-height: 58px;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(196, 210, 228, .9);
  border-radius: 14px;
  background: #fff;
  padding: 0 14px;
  transition: border-color .16s ease, box-shadow .16s ease;
}

body.user-portal.login-screen .login-field-control:focus-within {
  border-color: rgba(47, 128, 237, .58);
  box-shadow: 0 0 0 4px rgba(47, 128, 237, .12);
}

body.user-portal.login-screen .login-field-icon,
body.user-portal.login-screen .password-visibility-toggle {
  color: #8190a8;
}

body.user-portal.login-screen .login-field-icon svg,
body.user-portal.login-screen .password-visibility-toggle svg,
body.user-portal.login-screen .back-link svg {
  width: 20px;
  height: 20px;
}

body.user-portal.login-screen .portal-form input {
  min-width: 0;
  min-height: auto;
  border: 0;
  border-radius: 0;
  padding: 0;
  color: #172033;
  background: transparent;
  box-shadow: none;
  outline: none;
}

body.user-portal.login-screen .portal-form input::placeholder {
  color: #8d9bb1;
}

body.user-portal.login-screen .portal-form input:-webkit-autofill {
  -webkit-text-fill-color: #172033;
  transition: background-color 9999s ease-in-out 0s;
}

body.user-portal.login-screen .password-visibility-toggle {
  width: 36px;
  height: 36px;
  display: inline-grid;
  place-items: center;
  border: 0;
  border-radius: 10px;
  background: transparent;
  box-shadow: none;
}

body.user-portal.login-screen .password-visibility-toggle:hover,
body.user-portal.login-screen .password-visibility-toggle:focus-visible {
  background: #f2f6fb;
  color: #2374ab;
  outline: none;
}

body.user-portal.login-screen .portal-form > button[type="submit"] {
  min-height: 62px;
  margin-top: 10px;
  border-radius: 14px;
  background: linear-gradient(135deg, #096eb5, #2679f2);
  box-shadow: 0 16px 32px rgba(35, 116, 171, .24);
  font-size: 1.08rem;
  font-weight: 760;
}

body.user-portal.login-screen .portal-form > button[type="submit"]:hover,
body.user-portal.login-screen .portal-form > button[type="submit"]:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 20px 38px rgba(35, 116, 171, .28);
  outline: none;
}

body.user-portal.login-screen .portal-form.is-submitting > button[type="submit"] {
  cursor: wait;
  opacity: .78;
}

body.user-portal.login-screen .form-error {
  margin-top: 20px;
  border: 1px solid rgba(232, 111, 97, .22);
  border-radius: 14px;
  background: #fff2ef;
  color: #9a352b;
  font-size: .9rem;
  line-height: 1.4;
}

body.user-portal.login-screen .form-help {
  margin-top: 24px;
  color: #60728d;
  font-size: .92rem;
  line-height: 1.45;
}

body.user-portal.login-screen .back-link {
  width: max-content;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
  color: #096eb5;
  font-size: .94rem;
  font-weight: 720;
}

body.user-portal.login-screen .back-link:hover,
body.user-portal.login-screen .back-link:focus-visible {
  color: #075995;
  outline: none;
  text-decoration: underline;
  text-underline-offset: 4px;
}

@media (max-width: 1180px) {
  body.user-portal.login-screen .login-shell {
    width: min(1180px, 100%);
    grid-template-columns: minmax(0, 54fr) minmax(360px, 46fr);
    min-height: min(760px, calc(100dvh - 56px));
  }

  body.user-portal.login-screen .login-brand-panel,
  body.user-portal.login-screen .login-card {
    padding: 34px;
  }

  body.user-portal.login-screen .login-brand-content h2 {
    font-size: clamp(2.15rem, 3.6vw, 3rem);
  }

  body.user-portal.login-screen .login-card h1 {
    font-size: clamp(2.7rem, 4.4vw, 3.45rem);
  }
}

@media (min-width: 900px) and (max-height: 850px) {
  body.user-portal.login-screen {
    padding-block: 12px;
  }

  body.user-portal.login-screen .login-shell {
    min-height: 0;
    height: min(744px, calc(100dvh - 24px));
    max-height: calc(100dvh - 24px);
  }

  body.user-portal.login-screen .login-brand-panel {
    grid-template-rows: auto minmax(0, 1fr) clamp(96px, 15vh, 128px);
    gap: clamp(16px, 2.3vh, 24px);
    padding: clamp(24px, 3.2vw, 38px);
  }

  body.user-portal.login-screen .portal-brand-mark {
    width: 48px;
    height: 48px;
    border-radius: 14px;
  }

  body.user-portal.login-screen .login-brand-content {
    gap: clamp(26px, 3.2vh, 32px);
  }

  body.user-portal.login-screen .login-brand-content h2 {
    font-size: clamp(2.25rem, 3.25vw, 3rem);
    line-height: 1.04;
  }

  body.user-portal.login-screen .login-feature-list {
    gap: 20px;
  }

  body.user-portal.login-screen .login-feature-item {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 12px;
  }

  body.user-portal.login-screen .login-feature-icon {
    width: 48px;
    height: 48px;
  }

  body.user-portal.login-screen .login-feature-icon svg {
    width: 21px;
    height: 21px;
  }

  body.user-portal.login-screen .login-feature-item strong {
    font-size: .96rem;
    line-height: 1.22;
  }

  body.user-portal.login-screen .login-feature-item small {
    margin-top: 2px;
    font-size: .88rem;
    line-height: 1.22;
  }

  body.user-portal.login-screen .login-territory-art {
    min-height: 0;
    height: clamp(92px, 15vh, 128px);
    margin: 0 calc(clamp(24px, 3.2vw, 38px) * -1) calc(clamp(24px, 3.2vw, 38px) * -1);
  }

  body.user-portal.login-screen .login-territory-art .marker {
    width: 27px;
    height: 27px;
  }

  body.user-portal.login-screen .login-territory-art .marker::before {
    inset: 8px;
  }

  body.user-portal.login-screen .login-card {
    padding: clamp(26px, 3.1vw, 38px);
  }

  body.user-portal.login-screen .portal-eyebrow {
    margin-bottom: 6px;
  }

  body.user-portal.login-screen .login-card h1 {
    font-size: clamp(2.85rem, 3.9vw, 3.55rem);
    line-height: 1.02;
  }

  body.user-portal.login-screen .login-card > p:not(.portal-eyebrow):not(.form-help) {
    margin-top: 12px;
    font-size: .99rem;
    line-height: 1.42;
  }

  body.user-portal.login-screen .portal-form {
    gap: 14px;
    margin-top: 22px;
  }

  body.user-portal.login-screen .portal-form label {
    gap: 7px;
  }

  body.user-portal.login-screen .login-field-control {
    min-height: 56px;
  }

  body.user-portal.login-screen .portal-form > button[type="submit"] {
    min-height: 58px;
    margin-top: 4px;
  }

  body.user-portal.login-screen .form-help {
    margin-top: 16px;
  }

  body.user-portal.login-screen .back-link {
    margin-top: 14px;
  }
}

@media (min-width: 900px) and (max-height: 740px) {
  body.user-portal.login-screen {
    padding-block: 8px;
  }

  body.user-portal.login-screen .login-shell {
    height: calc(100dvh - 16px);
    max-height: calc(100dvh - 16px);
  }

  body.user-portal.login-screen .login-brand-panel {
    grid-template-rows: auto minmax(0, 1fr) clamp(68px, 12vh, 92px);
    gap: 12px;
    padding: 22px 28px;
  }

  body.user-portal.login-screen .portal-brand-mark {
    width: 42px;
    height: 42px;
  }

  body.user-portal.login-screen .login-brand-content {
    gap: 18px;
  }

  body.user-portal.login-screen .login-brand-content h2 {
    font-size: clamp(2rem, 3vw, 2.55rem);
  }

  body.user-portal.login-screen .login-feature-list {
    gap: 14px;
  }

  body.user-portal.login-screen .login-feature-item {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px;
  }

  body.user-portal.login-screen .login-feature-icon {
    width: 42px;
    height: 42px;
  }

  body.user-portal.login-screen .login-feature-item strong {
    font-size: .9rem;
  }

  body.user-portal.login-screen .login-feature-item small {
    font-size: .82rem;
  }

  body.user-portal.login-screen .login-territory-art {
    height: clamp(68px, 12vh, 92px);
    opacity: .82;
  }

  body.user-portal.login-screen .login-card {
    padding: 22px 28px;
  }

  body.user-portal.login-screen .login-card h1 {
    font-size: clamp(2.45rem, 3.45vw, 3rem);
  }

  body.user-portal.login-screen .login-card > p:not(.portal-eyebrow):not(.form-help) {
    margin-top: 9px;
    font-size: .94rem;
    line-height: 1.34;
  }

  body.user-portal.login-screen .portal-form {
    gap: 11px;
    margin-top: 16px;
  }

  body.user-portal.login-screen .login-field-control {
    min-height: 53px;
  }

  body.user-portal.login-screen .portal-form > button[type="submit"] {
    min-height: 54px;
  }

  body.user-portal.login-screen .form-help,
  body.user-portal.login-screen .back-link {
    margin-top: 10px;
  }
}

@media (max-width: 860px) {
  body.user-portal.login-screen {
    place-items: start center;
    padding: max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));
  }

  body.user-portal.login-screen .login-shell {
    width: min(100%, 520px);
    min-height: auto;
    grid-template-columns: 1fr;
    border-radius: 24px;
  }

  body.user-portal.login-screen .login-brand-panel {
    display: block;
    padding: 22px 24px 0;
    background: rgba(255, 255, 255, .94);
  }

  body.user-portal.login-screen .login-brand-content {
    display: none;
  }

  body.user-portal.login-screen .login-territory-art {
    display: none;
  }

  body.user-portal.login-screen .portal-brand-mark {
    width: 48px;
    height: 48px;
    border-radius: 14px;
  }

  body.user-portal.login-screen .login-card {
    padding: 28px 24px 30px;
    border-left: 0;
  }

  body.user-portal.login-screen .login-card h1 {
    font-size: clamp(2.3rem, 10vw, 3rem);
  }
}

@media (max-width: 390px) {
  body.user-portal.login-screen {
    padding-inline: 10px;
  }

  body.user-portal.login-screen .login-card {
    padding: 24px 18px 26px;
  }

  body.user-portal.login-screen .login-field-control {
    min-height: 54px;
    gap: 9px;
    padding-inline: 12px;
  }
}


/* Campaigns portal page */
body.campaigns-screen .section-campaigns .portal-section-visual {
  position: relative;
  background-image: var(--section-hero-image);
  background-size: contain;
  background-position: center right;
  background-repeat: no-repeat;
}
.campaign-page-content {
  display: grid;
  gap: 28px;
}
.campaign-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.campaign-kpi {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 110px;
  padding: 18px;
  border: 1px solid #E3ECF6;
  border-radius: 8px;
  background: #FFFFFF;
  box-shadow: 0 14px 34px rgba(16, 44, 84, 0.07);
}
.campaign-kpi-icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid #D9E8FA;
  background: #EEF6FF;
  color: #0B63CE;
  flex: 0 0 auto;
}
.campaign-kpi-icon svg { width: 22px; height: 22px; }
.campaign-kpi--available .campaign-kpi-icon { color: #047857; background: #ECFDF5; border-color: #CDEFE1; }
.campaign-kpi--completed .campaign-kpi-icon { color: #B7791F; background: #FFF7E6; border-color: #FBE2A8; }
.campaign-kpi--reward .campaign-kpi-icon { color: #7C3AED; background: #F5F0FF; border-color: #E3D8FF; }
.campaign-kpi small,
.campaign-card-title-row p,
.campaign-card-date,
.campaign-card-description,
.campaign-card-footer span,
.campaign-progress small,
.campaign-progress--empty span,
.campaign-detail-facts dt,
.campaign-detail-grid li {
  color: #53657D;
}
.campaign-kpi strong {
  display: block;
  margin-top: 4px;
  color: #071A38;
  font-size: 28px;
  line-height: 1;
}
.campaign-kpi p { margin: 8px 0 0; color: #64748B; font-weight: 700; }
.campaign-section { display: grid; gap: 14px; }
.campaign-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
}
.campaign-section-heading h2 { margin: 0 0 10px; color: #071A38; font-size: 20px; }
.campaign-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.campaign-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 7px 12px;
  border: 1px solid #DDE8F5;
  border-radius: 999px;
  background: #FFFFFF;
  color: #1B3152;
  font-weight: 800;
  text-decoration: none;
}
.campaign-tab.is-active {
  background: #0B63CE;
  border-color: #0B63CE;
  color: #FFFFFF;
}
.campaign-tab span { font-size: 12px; opacity: 0.82; }
.campaign-my-grid,
.campaign-available-grid {
  display: grid;
  gap: 16px;
}
.campaign-my-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.campaign-available-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.campaign-card {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  gap: 14px;
  min-height: 178px;
  padding: 16px;
  border: 1px solid #DDE8F5;
  border-radius: 8px;
  background: #FFFFFF;
  box-shadow: 0 12px 28px rgba(15, 42, 77, 0.06);
}
.campaign-available-grid .campaign-card { grid-template-columns: 1fr; }
.campaign-card-media {
  display: block;
  min-height: 132px;
  border-radius: 7px;
  overflow: hidden;
  background: #EEF6FF;
}
.campaign-card-media img,
.campaign-detail-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.campaign-image-fallback {
  min-height: 132px;
  display: grid;
  place-items: center;
  color: #0B63CE;
  background: linear-gradient(135deg, #EEF6FF, #E9FBF5);
}
.campaign-image-fallback svg { width: 34px; height: 34px; }
.campaign-card-body { min-width: 0; display: grid; gap: 9px; }
.campaign-card-title-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}
.campaign-card-title-row h3 { margin: 0; font-size: 15px; line-height: 1.25; color: #071A38; }
.campaign-card-title-row h3 a { color: inherit; text-decoration: none; }
.campaign-card-title-row p,
.campaign-card-date,
.campaign-card-description { margin: 3px 0 0; font-weight: 700; font-size: 13px; line-height: 1.45; }
.campaign-card-date { display: flex; align-items: center; gap: 6px; margin-top: 0; }
.campaign-card-date svg { width: 14px; height: 14px; }
.campaign-status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  min-height: 26px;
  padding: 5px 9px;
  border-radius: 999px;
  background: #EAF4FF;
  color: #0B63CE;
  font-size: 11px;
  font-weight: 900;
}
.campaign-card--completed .campaign-status-pill,
.campaign-card--active .campaign-status-pill { background: #ECFDF3; color: #15803D; }
.campaign-card--upcoming .campaign-status-pill { background: #E0F2FE; color: #0369A1; }
.campaign-card--ended .campaign-status-pill { background: #F1F5F9; color: #64748B; }
.campaign-progress { display: grid; gap: 6px; }
.campaign-progress div { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 12px; font-weight: 900; color: #071A38; }
.campaign-progress-track {
  display: block;
  height: 7px;
  border-radius: 999px;
  overflow: hidden;
  background: #E6EEF7;
}
.campaign-progress-track i { display: block; height: 100%; border-radius: inherit; background: #12A66A; }
.campaign-card-footer {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 10px;
  margin-top: auto;
}
.campaign-card-footer strong { color: #058747; font-size: 15px; text-align: right; }
.campaign-card-button,
.campaign-card-link,
.campaign-card-disabled,
.campaign-detail-primary,
.campaign-detail-secondary,
.campaign-load-more a,
.campaign-filters button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  border-radius: 8px;
  border: 1px solid #D8E7FA;
  background: #EAF4FF;
  color: #0B63CE;
  font-weight: 900;
  text-decoration: none;
}
.campaign-card-button,
.campaign-detail-primary,
.campaign-filters button { background: #0B63CE; border-color: #0B63CE; color: #FFFFFF; }
.campaign-card-disabled { color: #64748B; background: #F2F6FA; }
.campaign-filters { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.campaign-filters input,
.campaign-filters select {
  min-height: 36px;
  border: 1px solid #DDE8F5;
  border-radius: 8px;
  padding: 0 11px;
  background: #FFFFFF;
  color: #1B3152;
  font-weight: 800;
}
.campaign-empty {
  grid-column: 1 / -1;
  min-height: 180px;
  display: grid;
  place-items: center;
  text-align: center;
  gap: 8px;
  padding: 24px;
  border: 1px dashed #CFE0F4;
  border-radius: 8px;
  background: #F8FBFF;
}
.campaign-empty span { color: #0B63CE; }
.campaign-empty svg { width: 28px; height: 28px; }
.campaign-empty strong { color: #071A38; font-size: 17px; }
.campaign-empty p { margin: 0; color: #64748B; }
.campaign-message {
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid #DDE8F5;
  font-weight: 800;
}
.campaign-message.is-success { background: #ECFDF3; border-color: #BBF7D0; color: #15803D; }
.campaign-message.is-error { background: #FFF1F2; border-color: #FECDD3; color: #BE123C; }
.campaign-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(8, 22, 36, 0.42);
}
.campaign-detail-modal {
  position: relative;
  display: grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(0, 1.35fr);
  width: min(980px, 100%);
  max-height: min(760px, calc(100vh - 48px));
  overflow: hidden;
  border-radius: 8px;
  background: #FFFFFF;
  box-shadow: 0 24px 80px rgba(5, 20, 44, 0.28);
}
.campaign-detail-close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #071A38;
  background: rgba(255,255,255,0.92);
  border: 1px solid #DDE8F5;
}
.campaign-detail-close svg { width: 18px; height: 18px; }
.campaign-detail-hero { min-height: 100%; background: #EEF6FF; }
.campaign-detail-content { overflow: auto; padding: 28px; display: grid; gap: 18px; }
.campaign-detail-heading h2 { margin: 12px 0 8px; font-size: 30px; color: #071A38; }
.campaign-detail-heading p { margin: 0; color: #53657D; line-height: 1.55; font-weight: 700; }
.campaign-detail-facts,
.campaign-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.campaign-detail-facts { margin: 0; }
.campaign-detail-facts div,
.campaign-detail-grid section {
  padding: 14px;
  border: 1px solid #E3ECF6;
  border-radius: 8px;
  background: #F8FBFF;
}
.campaign-detail-facts dt { font-size: 12px; font-weight: 900; }
.campaign-detail-facts dd { margin: 4px 0 0; color: #071A38; font-weight: 900; }
.campaign-detail-grid h3 { margin: 0 0 8px; color: #071A38; font-size: 15px; }
.campaign-detail-grid ul { margin: 0; padding-left: 18px; }
.campaign-detail-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.campaign-detail-primary,
.campaign-detail-secondary { padding: 0 16px; min-height: 42px; }
.campaign-detail-secondary { background: #FFFFFF; color: #64748B; border-color: #DDE8F5; }
.campaign-detail-state { color: #64748B; font-weight: 900; }
.campaign-load-more { text-align: center; }
.campaign-load-more a { padding: 0 16px; }
@media (max-width: 1180px) {
  .campaign-kpi-grid,
  .campaign-available-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .campaign-my-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .campaign-page-content { gap: 22px; }
  .campaign-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .campaign-kpi { min-height: 104px; padding: 13px; gap: 10px; }
  .campaign-kpi-icon { width: 42px; height: 42px; }
  .campaign-kpi strong { font-size: 22px; }
  .campaign-section-heading { align-items: stretch; flex-direction: column; }
  .campaign-tabs { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 2px; }
  .campaign-my-grid,
  .campaign-available-grid { grid-template-columns: 1fr; }
  .campaign-card { grid-template-columns: 96px minmax(0, 1fr); padding: 12px; }
  .campaign-available-grid .campaign-card { grid-template-columns: 1fr; }
  .campaign-card-media,
  .campaign-image-fallback { min-height: 112px; }
  .campaign-card-title-row { flex-direction: column; align-items: flex-start; }
  .campaign-card-footer { align-items: flex-start; flex-direction: column; }
  .campaign-card-footer strong { text-align: left; }
  .campaign-filters { justify-content: stretch; }
  .campaign-filters input,
  .campaign-filters select,
  .campaign-filters button { width: 100%; }
  .campaign-modal-backdrop { padding: 0; align-items: stretch; }
  .campaign-detail-modal {
    width: 100%;
    min-height: 100vh;
    max-height: none;
    grid-template-columns: 1fr;
    border-radius: 0;
  }
  .campaign-detail-hero { min-height: 220px; max-height: 260px; }
  .campaign-detail-content { padding: 22px 16px 28px; }
  .campaign-detail-heading h2 { font-size: 24px; }
  .campaign-detail-facts,
  .campaign-detail-grid { grid-template-columns: 1fr; }
}


/* Campaign visual correction pass */
body.campaigns-screen .portal-section-hero.section-campaigns {
  min-height: 116px;
  padding: 16px 22px;
  grid-template-columns: minmax(0, 1fr) minmax(150px, 260px);
  align-items: center;
  overflow: hidden;
}
body.campaigns-screen .portal-section-hero.section-campaigns .portal-section-copy {
  align-self: center;
}
body.campaigns-screen .portal-section-hero.section-campaigns .portal-eyebrow {
  margin-bottom: 6px;
}
body.campaigns-screen .portal-section-hero.section-campaigns h1 {
  margin-bottom: 6px;
  font-size: clamp(2rem, 3vw, 2.65rem);
}
body.campaigns-screen .portal-section-hero.section-campaigns p:not(.portal-eyebrow) {
  margin: 0;
  max-width: 560px;
}
body.campaigns-screen .section-campaigns .portal-section-visual {
  width: min(260px, 100%);
  height: 96px;
  justify-self: end;
  border: 1px solid rgba(189, 213, 240, .78);
  border-radius: 18px;
  background-color: rgba(255,255,255,.58);
  background-image: var(--section-hero-image);
  background-size: auto 112%;
  background-position: center right 10px;
  background-repeat: no-repeat;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.86), 0 14px 28px rgba(42, 77, 122, .08);
  overflow: hidden;
}
body.campaigns-screen .section-campaigns .portal-section-visual::before {
  content: "";
  position: absolute;
  inset: 10px auto 10px -24px;
  width: 86px;
  border-radius: 999px;
  background: rgba(204, 231, 252, .72);
}
body.campaigns-screen .section-campaigns .portal-section-visual span,
body.campaigns-screen .section-campaigns .portal-section-visual i {
  display: none;
}
body.campaigns-screen .campaign-page-content {
  gap: 24px;
}
body.campaigns-screen .campaign-kpi {
  min-height: 96px;
  padding: 16px;
}
body.campaigns-screen .campaign-my-grid {
  grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
}
body.campaigns-screen .campaign-available-grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
body.campaigns-screen .campaign-card {
  grid-template-columns: 150px minmax(0, 1fr);
  min-height: 0;
  align-items: stretch;
}
body.campaigns-screen .campaign-available-grid .campaign-card {
  grid-template-columns: 1fr;
}
body.campaigns-screen .campaign-card-media {
  position: relative;
  min-height: 0;
  height: 100%;
  min-width: 0;
  aspect-ratio: 4 / 5;
}
body.campaigns-screen .campaign-available-grid .campaign-card-media {
  height: auto;
  aspect-ratio: 16 / 10;
}
body.campaigns-screen .campaign-card-media img[hidden] {
  display: none;
}
body.campaigns-screen .campaign-card-media img:not([hidden]) + .campaign-image-fallback {
  display: none;
}
body.campaigns-screen .campaign-image-fallback {
  min-height: 100%;
  height: 100%;
}
body.campaigns-screen .campaign-card-body {
  align-content: start;
  gap: 10px;
}
body.campaigns-screen .campaign-card-title-row {
  align-items: flex-start;
}
body.campaigns-screen .campaign-card-title-row h3 {
  font-size: 16px;
  line-height: 1.28;
}
body.campaigns-screen .campaign-card-title-row p,
body.campaigns-screen .campaign-card-date,
body.campaigns-screen .campaign-card-description {
  overflow-wrap: anywhere;
}
body.campaigns-screen .campaign-status-pill {
  flex: 0 0 auto;
  max-width: 150px;
}
body.campaigns-screen .campaign-progress div {
  align-items: flex-start;
}
body.campaigns-screen .campaign-progress div span {
  min-width: 0;
  overflow-wrap: anywhere;
}
body.campaigns-screen .campaign-card-footer {
  align-items: flex-end;
}
body.campaigns-screen .campaign-card-footer span {
  min-width: 0;
}
body.campaigns-screen .campaign-card-footer strong {
  white-space: normal;
  max-width: 120px;
}
body.campaigns-screen .campaign-card-link,
body.campaigns-screen .campaign-card-button,
body.campaigns-screen .campaign-card-disabled {
  width: 100%;
  min-height: 38px;
}
body.campaigns-screen .campaign-modal-backdrop {
  z-index: 90;
  align-items: center;
  padding: calc(72px + 20px) 24px 24px;
  overflow: auto;
}
body.campaigns-screen .campaign-detail-modal {
  width: min(1120px, 100%);
  max-height: calc(100vh - 116px);
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
}
body.campaigns-screen .campaign-detail-hero {
  min-height: 0;
  height: auto;
}
body.campaigns-screen .campaign-detail-content {
  min-height: 0;
  max-height: calc(100vh - 116px);
  padding: 28px;
  align-content: start;
}
body.campaigns-screen .campaign-detail-heading h2 {
  font-size: clamp(2rem, 3vw, 2.65rem);
  line-height: 1.12;
}
body.campaigns-screen .campaign-detail-grid section {
  min-width: 0;
}
body.campaigns-screen .campaign-detail-grid li {
  overflow-wrap: anywhere;
}
@media (max-width: 1180px) {
  body.campaigns-screen .campaign-my-grid {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  }
}
@media (max-width: 760px) {
  body.campaigns-screen .portal-section-hero.section-campaigns {
    grid-template-columns: 1fr minmax(92px, 120px);
    min-height: 104px;
    padding: 14px 16px;
  }
  body.campaigns-screen .section-campaigns .portal-section-visual {
    width: 118px;
    height: 74px;
    background-size: auto 122%;
    background-position: center right -2px;
  }
  body.campaigns-screen .portal-section-hero.section-campaigns h1 {
    font-size: 1.65rem;
  }
  body.campaigns-screen .portal-section-hero.section-campaigns p:not(.portal-eyebrow) {
    font-size: .88rem;
    line-height: 1.35;
  }
  body.campaigns-screen .campaign-my-grid,
  body.campaigns-screen .campaign-available-grid {
    grid-template-columns: 1fr;
  }
  body.campaigns-screen .campaign-card {
    grid-template-columns: 112px minmax(0, 1fr);
  }
  body.campaigns-screen .campaign-available-grid .campaign-card {
    grid-template-columns: 1fr;
  }
  body.campaigns-screen .campaign-card-media {
    aspect-ratio: 1 / 1.12;
  }
  body.campaigns-screen .campaign-available-grid .campaign-card-media {
    aspect-ratio: 16 / 9;
  }
  body.campaigns-screen .campaign-status-pill {
    max-width: 100%;
  }
  body.campaigns-screen .campaign-card-footer {
    align-items: flex-start;
  }
  body.campaigns-screen .campaign-card-footer strong {
    max-width: none;
    text-align: left;
  }
  body.campaigns-screen .campaign-modal-backdrop {
    padding: 72px 0 0;
    overflow: hidden;
  }
  body.campaigns-screen .campaign-detail-modal {
    width: 100%;
    min-height: calc(100vh - 72px);
    max-height: calc(100vh - 72px);
    grid-template-columns: 1fr;
    grid-template-rows: 180px minmax(0, 1fr);
    border-radius: 0;
  }
  body.campaigns-screen .campaign-detail-hero {
    min-height: 0;
    max-height: none;
  }
  body.campaigns-screen .campaign-detail-content {
    max-height: none;
    overflow: auto;
    padding: 20px 16px 28px;
  }
  body.campaigns-screen .campaign-detail-heading h2 {
    font-size: 1.8rem;
  }
}
@media (max-width: 520px) {
  body.campaigns-screen .portal-section-hero.section-campaigns {
    grid-template-columns: 1fr;
  }
  body.campaigns-screen .section-campaigns .portal-section-visual {
    display: none;
  }
  body.campaigns-screen .campaign-card {
    grid-template-columns: 1fr;
  }
  body.campaigns-screen .campaign-card-media {
    aspect-ratio: 16 / 9;
  }
}


/* Campaign approved-mockup redesign pass */
body.campaigns-screen .portal-section-hero.section-campaigns {
  min-height: clamp(170px, 15vw, 205px);
  padding: clamp(22px, 3vw, 34px) clamp(24px, 3.4vw, 42px);
  grid-template-columns: minmax(0, 1fr) minmax(260px, 36%);
  align-items: center;
  isolation: isolate;
}
body.campaigns-screen .portal-section-hero.section-campaigns::before {
  content: "";
  position: absolute;
  inset: 0 0 0 auto;
  width: 46%;
  background:
    radial-gradient(circle at 72% 52%, rgba(255, 198, 58, .24), transparent 22%),
    radial-gradient(circle at 58% 62%, rgba(20, 184, 166, .20), transparent 25%),
    linear-gradient(90deg, rgba(255,255,255,0), rgba(224, 242, 254, .7));
  z-index: 0;
}
body.campaigns-screen .portal-section-hero.section-campaigns h1 {
  font-size: clamp(2.1rem, 3.4vw, 3.05rem);
  line-height: 1.02;
}
body.campaigns-screen .section-campaigns .portal-section-visual {
  position: relative;
  width: min(100%, 420px);
  height: clamp(132px, 12vw, 164px);
  justify-self: end;
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(180deg, rgba(189, 231, 245, .42), rgba(255,255,255,0) 72%),
    var(--section-hero-image);
  background-size: contain;
  background-position: center right;
  background-repeat: no-repeat;
  box-shadow: none;
  overflow: visible;
  filter: drop-shadow(0 20px 26px rgba(22, 62, 100, .13));
}
body.campaigns-screen .section-campaigns .portal-section-visual::before {
  display: none;
}
body.campaigns-screen .campaign-kpi-grid {
  gap: 14px;
}
body.campaigns-screen .campaign-kpi {
  min-height: 86px;
  padding: 15px 16px;
  align-items: center;
}
body.campaigns-screen .campaign-kpi-icon {
  width: 46px;
  height: 46px;
}
body.campaigns-screen .campaign-kpi-icon svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  fill: none;
}
body.campaigns-screen .campaign-kpi strong {
  font-size: 25px;
}
body.campaigns-screen .campaign-kpi p {
  margin-top: 5px;
  font-size: 13px;
  line-height: 1.25;
}
body.campaigns-screen .campaign-section {
  min-width: 0;
  gap: 12px;
}
body.campaigns-screen .campaign-section-heading h2 {
  margin-bottom: 8px;
}
body.campaigns-screen .campaign-tabs {
  gap: 7px;
}
body.campaigns-screen .campaign-tab {
  min-height: 30px;
  padding: 6px 11px;
  font-size: 13px;
  font-weight: 760;
}
body.campaigns-screen .campaign-tab span {
  font-size: 11px;
}
body.campaigns-screen .campaign-my-grid,
body.campaigns-screen .campaign-available-grid {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(300px, 330px);
  grid-template-columns: none;
  gap: 16px;
  overflow-x: auto;
  overflow-y: visible;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  padding: 2px 8px 12px 0;
  scrollbar-width: thin;
}
body.campaigns-screen .campaign-my-grid::after,
body.campaigns-screen .campaign-available-grid::after {
  content: "";
  width: 1px;
}
body.campaigns-screen .campaign-available-grid {
  grid-auto-columns: minmax(280px, 320px);
}
body.campaigns-screen .campaign-card {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
  padding: 0;
  overflow: hidden;
  scroll-snap-align: start;
}
body.campaigns-screen .campaign-card-media {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  min-height: 0;
  border-radius: 0;
  border-bottom: 1px solid #DDE8F5;
}
body.campaigns-screen .campaign-card-media img {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .18s ease;
}
body.campaigns-screen .campaign-card-media.is-loaded img {
  opacity: 1;
}
body.campaigns-screen .campaign-card-media.is-error img {
  display: none;
}
body.campaigns-screen .campaign-card-media.is-loaded .campaign-media__fallback {
  opacity: 0;
}
body.campaigns-screen .campaign-media__fallback {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    linear-gradient(150deg, rgba(238, 246, 255, .96), rgba(232, 251, 245, .92)),
    radial-gradient(circle at 78% 18%, rgba(255, 200, 87, .32), transparent 22%);
  color: #0B63CE;
}
body.campaigns-screen .campaign-media__fallback span {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(191, 219, 254, .78);
  box-shadow: 0 12px 26px rgba(25, 73, 124, .09);
  z-index: 1;
}
body.campaigns-screen .campaign-media__fallback svg {
  width: 26px;
  height: 26px;
}
body.campaigns-screen .campaign-media__fallback i {
  position: absolute;
  inset: auto -18px -24px 30%;
  height: 72px;
  border-radius: 50% 50% 0 0;
  background: rgba(18, 166, 106, .16);
}
body.campaigns-screen .campaign-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 9px;
  padding: 14px;
}
body.campaigns-screen .campaign-card-title-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
}
body.campaigns-screen .campaign-status-pill {
  max-width: 138px;
  min-height: 24px;
  padding: 5px 9px;
  font-size: 10.5px;
}
body.campaigns-screen .campaign-card-title-row h3 {
  font-size: 16px;
  line-height: 1.25;
}
body.campaigns-screen .campaign-card-title-row p,
body.campaigns-screen .campaign-card-description {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
body.campaigns-screen .campaign-card-title-row p {
  -webkit-line-clamp: 1;
}
body.campaigns-screen .campaign-card-description {
  -webkit-line-clamp: 2;
}
body.campaigns-screen .campaign-card-date {
  font-size: 12.5px;
}
body.campaigns-screen .campaign-progress {
  padding-top: 2px;
}
body.campaigns-screen .campaign-progress div {
  font-size: 12px;
}
body.campaigns-screen .campaign-card-footer {
  margin-top: auto;
  padding-top: 4px;
}
body.campaigns-screen .campaign-card-footer strong {
  max-width: 112px;
  font-size: 14px;
}
body.campaigns-screen .campaign-card-link,
body.campaigns-screen .campaign-card-button,
body.campaigns-screen .campaign-card-disabled {
  margin-top: 2px;
}
body.campaigns-screen .campaign-empty {
  min-height: 190px;
  width: min(100%, 360px);
  place-self: start;
}
body.campaigns-screen .campaign-modal-backdrop {
  z-index: 90;
  align-items: center;
  padding: 24px;
  overflow: hidden;
}
body.campaigns-screen .campaign-detail-modal {
  display: flex;
  flex-direction: column;
  width: min(960px, calc(100vw - 48px));
  max-height: calc(100dvh - 48px);
  overflow: hidden;
  border-radius: 16px;
}
body.campaigns-screen .campaign-detail-close {
  top: 14px;
  right: 14px;
  z-index: 4;
  border-radius: 12px;
}
body.campaigns-screen .campaign-detail-hero {
  order: 0;
  flex: 0 0 auto;
  width: calc(100% - 40px);
  aspect-ratio: 16 / 6;
  max-height: 250px;
  min-height: 150px;
  margin: 20px 20px 0;
  border-radius: 14px;
  overflow: hidden;
}
body.campaigns-screen .campaign-detail-hero img {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .18s ease;
}
body.campaigns-screen .campaign-detail-hero.is-loaded img {
  opacity: 1;
}
body.campaigns-screen .campaign-detail-hero.is-error img {
  display: none;
}
body.campaigns-screen .campaign-detail-hero.is-loaded .campaign-media__fallback {
  opacity: 0;
}
body.campaigns-screen .campaign-detail-content {
  order: 1;
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  padding: 20px 20px 24px;
}
body.campaigns-screen .campaign-detail-heading {
  position: sticky;
  top: 0;
  z-index: 3;
  margin: -20px -20px 0;
  padding: 18px 68px 14px 20px;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid #E3ECF6;
  backdrop-filter: blur(12px);
}
body.campaigns-screen .campaign-detail-heading h2 {
  margin: 8px 0 4px;
  font-size: clamp(1.55rem, 2.6vw, 2.25rem);
  line-height: 1.12;
}
body.campaigns-screen .campaign-detail-heading p {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-width: 720px;
}
body.campaigns-screen .campaign-detail-facts {
  order: 2;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
body.campaigns-screen .campaign-detail-facts div,
body.campaigns-screen .campaign-detail-grid section {
  background: #FFFFFF;
}
body.campaigns-screen .campaign-detail-facts dd {
  font-size: 14px;
  line-height: 1.35;
}
body.campaigns-screen .campaign-detail-content > .campaign-progress {
  order: 3;
  padding: 16px;
  border: 1px solid #E3ECF6;
  border-radius: 12px;
  background: #F8FBFF;
}
body.campaigns-screen .campaign-detail-grid {
  order: 4;
}
body.campaigns-screen .campaign-detail-actions {
  order: 5;
  padding-top: 2px;
}
@media (min-width: 1280px) {
  body.campaigns-screen .campaign-my-grid {
    grid-auto-columns: calc((100% - 32px) / 3);
  }
}
@media (max-width: 1180px) {
  body.campaigns-screen .campaign-my-grid {
    grid-auto-columns: minmax(300px, 48%);
  }
}
@media (max-width: 760px) {
  body.campaigns-screen .portal-section-hero.section-campaigns {
    min-height: 128px;
    grid-template-columns: 1fr minmax(76px, 104px);
    padding: 18px 16px;
  }
  body.campaigns-screen .portal-section-hero.section-campaigns::before {
    width: 36%;
  }
  body.campaigns-screen .section-campaigns .portal-section-visual {
    width: 104px;
    height: 82px;
    opacity: .82;
  }
  body.campaigns-screen .campaign-my-grid,
  body.campaigns-screen .campaign-available-grid {
    grid-auto-columns: minmax(260px, 86vw);
  }
  body.campaigns-screen .campaign-card-title-row {
    grid-template-columns: 1fr;
  }
  body.campaigns-screen .campaign-status-pill {
    justify-self: start;
    max-width: none;
  }
  body.campaigns-screen .campaign-modal-backdrop {
    padding: 0;
  }
  body.campaigns-screen .campaign-detail-modal {
    width: 100%;
    min-height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
  }
  body.campaigns-screen .campaign-detail-hero {
    width: calc(100% - 28px);
    margin: 14px 14px 0;
    min-height: 128px;
    max-height: 190px;
    aspect-ratio: 16 / 7;
  }
  body.campaigns-screen .campaign-detail-content {
    padding: 18px 14px max(24px, env(safe-area-inset-bottom));
  }
  body.campaigns-screen .campaign-detail-heading {
    margin: -18px -14px 0;
    padding: 15px 62px 12px 14px;
  }
  body.campaigns-screen .campaign-detail-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 430px) {
  body.campaigns-screen .section-campaigns .portal-section-visual {
    display: none;
  }
  body.campaigns-screen .portal-section-hero.section-campaigns {
    grid-template-columns: 1fr;
    min-height: 118px;
  }
  body.campaigns-screen .campaign-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body.campaigns-screen .campaign-kpi {
    display: grid;
    gap: 8px;
  }
  body.campaigns-screen .campaign-detail-facts {
    grid-template-columns: 1fr;
  }
}


/* Campaign detail modal focused refinement */
body.campaigns-screen:has(.campaign-modal-backdrop) {
  overflow: hidden;
}
body.campaigns-screen .campaign-modal-backdrop {
  z-index: 90;
  display: grid;
  place-items: center;
  padding: 24px;
  overflow: hidden;
  background: rgba(8, 22, 36, .46);
}
body.campaigns-screen .campaign-detail-modal {
  width: min(920px, calc(100vw - 48px));
  max-height: calc(100dvh - 48px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 16px;
  background: #FFFFFF;
  box-shadow: 0 28px 90px rgba(5, 20, 44, .30);
}
body.campaigns-screen .campaign-detail-topbar {
  flex: 0 0 auto;
  min-height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px 12px 22px;
  border-bottom: 1px solid #E3ECF6;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(14px);
}
body.campaigns-screen .campaign-detail-topbar > span {
  color: #53657D;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
body.campaigns-screen .campaign-detail-close {
  position: static;
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 10px;
  border: 1px solid #DDE8F5;
  background: #F8FBFF;
  color: #071A38;
  text-decoration: none;
  box-shadow: none;
}
body.campaigns-screen .campaign-detail-close:hover,
body.campaigns-screen .campaign-detail-close:focus-visible {
  background: #EAF4FF;
  color: #0B63CE;
}
body.campaigns-screen .campaign-detail-close svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
}
body.campaigns-screen .campaign-detail-content {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: 24px 26px 28px;
}
body.campaigns-screen .campaign-detail-heading {
  position: static;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  backdrop-filter: none;
}
body.campaigns-screen .campaign-detail-heading .campaign-status-pill {
  margin-bottom: 10px;
}
body.campaigns-screen .campaign-detail-heading h2 {
  margin: 0 0 10px;
  color: #071A38;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.08;
  letter-spacing: 0;
}
body.campaigns-screen .campaign-detail-heading p {
  max-width: 720px;
  margin: 0;
  color: #53657D;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 720;
  display: block;
  overflow: visible;
}
body.campaigns-screen .campaign-detail-hero {
  order: initial;
  position: relative;
  width: 100%;
  min-height: 150px;
  max-height: 220px;
  aspect-ratio: 16 / 5;
  margin: 0;
  flex: 0 0 auto;
  border: 1px solid #DDE8F5;
  border-radius: 14px;
  background: #EEF6FF;
  overflow: hidden;
}
body.campaigns-screen .campaign-detail-hero img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0;
  transition: opacity .18s ease;
}
body.campaigns-screen .campaign-detail-hero.is-loaded img {
  opacity: 1;
}
body.campaigns-screen .campaign-detail-hero.is-error img {
  display: none;
}
body.campaigns-screen .campaign-detail-hero.is-loaded .campaign-media__fallback {
  opacity: 0;
}
body.campaigns-screen .campaign-detail-facts {
  order: initial;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}
body.campaigns-screen .campaign-detail-facts div {
  min-width: 0;
  padding: 12px;
  border-radius: 10px;
  background: #F8FBFF;
}
body.campaigns-screen .campaign-detail-facts dt {
  font-size: 11px;
  line-height: 1.2;
  color: #64748B;
  font-weight: 900;
}
body.campaigns-screen .campaign-detail-facts dd {
  margin-top: 5px;
  color: #071A38;
  font-size: 13px;
  line-height: 1.35;
  font-weight: 900;
  overflow-wrap: anywhere;
}
body.campaigns-screen .campaign-detail-content > .campaign-progress {
  order: initial;
  gap: 8px;
  padding: 14px;
  border: 1px solid #E3ECF6;
  border-radius: 12px;
  background: #F8FBFF;
}
body.campaigns-screen .campaign-detail-content > .campaign-progress div {
  font-size: 13px;
}
body.campaigns-screen .campaign-detail-content > .campaign-progress small,
body.campaigns-screen .campaign-detail-content > .campaign-progress.campaign-progress--empty span {
  color: #53657D;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 760;
}
body.campaigns-screen .campaign-detail-grid {
  order: initial;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
body.campaigns-screen .campaign-detail-grid section {
  min-width: 0;
  padding: 14px;
  border-radius: 12px;
}
body.campaigns-screen .campaign-detail-grid h3 {
  margin-bottom: 8px;
  font-size: 14px;
}
body.campaigns-screen .campaign-detail-grid ul {
  margin: 0;
  padding-left: 18px;
}
body.campaigns-screen .campaign-detail-grid li {
  font-size: 13px;
  line-height: 1.45;
}
body.campaigns-screen .campaign-detail-actions {
  order: initial;
  margin-top: -2px;
}
@media (max-width: 1024px) {
  body.campaigns-screen .campaign-detail-modal {
    width: min(920px, calc(100vw - 32px));
    max-height: calc(100dvh - 32px);
  }
  body.campaigns-screen .campaign-detail-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  body.campaigns-screen .campaign-modal-backdrop {
    padding: 0;
    align-items: stretch;
  }
  body.campaigns-screen .campaign-detail-modal {
    width: 100%;
    min-height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
  }
  body.campaigns-screen .campaign-detail-topbar {
    min-height: calc(58px + env(safe-area-inset-top));
    padding: calc(10px + env(safe-area-inset-top)) 12px 10px 16px;
  }
  body.campaigns-screen .campaign-detail-content {
    padding: 20px 16px max(26px, env(safe-area-inset-bottom));
    gap: 18px;
  }
  body.campaigns-screen .campaign-detail-heading h2 {
    font-size: clamp(26px, 8vw, 32px);
  }
  body.campaigns-screen .campaign-detail-heading p {
    font-size: 14px;
  }
  body.campaigns-screen .campaign-detail-hero {
    min-height: 145px;
    max-height: 190px;
    aspect-ratio: 16 / 6;
  }
  body.campaigns-screen .campaign-detail-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body.campaigns-screen .campaign-detail-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 390px) {
  body.campaigns-screen .campaign-detail-content {
    padding-inline: 12px;
  }
  body.campaigns-screen .campaign-detail-hero {
    min-height: 132px;
    max-height: 170px;
  }
  body.campaigns-screen .campaign-detail-facts {
    grid-template-columns: 1fr;
  }
}

body.campaigns-screen .campaign-detail-progress {
  display: grid;
  gap: 9px;
  padding: 14px;
  border: 1px solid #E3ECF6;
  border-radius: 12px;
  background: #F8FBFF;
}
body.campaigns-screen .campaign-detail-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: #071A38;
  font-size: 13px;
  font-weight: 900;
}
body.campaigns-screen .campaign-detail-progress .campaign-progress {
  gap: 8px;
}
body.campaigns-screen .campaign-detail-progress .campaign-progress div {
  font-size: 13px;
}
body.campaigns-screen .campaign-detail-progress .campaign-progress small,
body.campaigns-screen .campaign-detail-progress .campaign-progress--empty span {
  color: #53657D;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 760;
}


/* Campaign final presentation pass */
body.campaigns-screen .portal-section-hero.section-campaigns {
  min-height: clamp(174px, 15vw, 212px);
  padding: clamp(24px, 3vw, 34px) clamp(24px, 3.6vw, 46px);
  grid-template-columns: minmax(0, 1fr) minmax(250px, 36%);
  background:
    linear-gradient(110deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.94) 48%, rgba(229, 246, 255, .72) 100%),
    linear-gradient(135deg, rgba(235, 253, 247, .82), rgba(239, 247, 255, .86));
}
body.campaigns-screen .portal-section-hero.section-campaigns::before {
  width: 40%;
  background:
    radial-gradient(circle at 70% 37%, rgba(255, 199, 54, .28), transparent 16%),
    radial-gradient(circle at 50% 68%, rgba(20, 184, 166, .22), transparent 28%),
    linear-gradient(90deg, rgba(255,255,255,0), rgba(213, 238, 252, .58));
}
body.campaigns-screen .portal-section-hero.section-campaigns h1 {
  font-size: clamp(2.15rem, 3.2vw, 3rem);
}
body.campaigns-screen .section-campaigns .portal-section-visual {
  width: min(360px, 100%);
  height: clamp(130px, 11vw, 164px);
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(circle at 74% 34%, rgba(255, 211, 92, .46) 0 18px, transparent 19px),
    linear-gradient(150deg, transparent 0 45%, rgba(82, 196, 180, .20) 46% 58%, transparent 59%),
    linear-gradient(165deg, transparent 0 56%, rgba(56, 189, 248, .18) 57% 69%, transparent 70%);
  box-shadow: none;
  filter: drop-shadow(0 18px 26px rgba(33, 82, 130, .12));
  overflow: visible;
}
body.campaigns-screen .section-campaigns .portal-section-visual::before {
  display: block;
  content: "";
  position: absolute;
  inset: auto 4px 12px 10px;
  height: 52px;
  border-radius: 56% 44% 34% 42%;
  background:
    linear-gradient(170deg, rgba(35, 116, 171, .20), rgba(51, 199, 160, .12)),
    linear-gradient(10deg, transparent 0 46%, rgba(11, 99, 206, .34) 47% 50%, transparent 51%);
}
body.campaigns-screen .section-campaigns .portal-section-visual span,
body.campaigns-screen .section-campaigns .portal-section-visual i {
  display: block;
  position: absolute;
}
body.campaigns-screen .section-campaigns .portal-section-visual span {
  right: 48px;
  top: 20px;
  width: 72px;
  height: 72px;
  border-radius: 50% 50% 44% 44%;
  background: linear-gradient(180deg, #FFD768, #F5A91D);
  box-shadow: inset 0 -10px 0 rgba(173, 105, 15, .13), 0 14px 22px rgba(201, 140, 22, .18);
}
body.campaigns-screen .section-campaigns .portal-section-visual span::before,
body.campaigns-screen .section-campaigns .portal-section-visual span::after {
  content: "";
  position: absolute;
}
body.campaigns-screen .section-campaigns .portal-section-visual span::before {
  inset: 10px 13px auto;
  height: 28px;
  border-radius: 0 0 22px 22px;
  border: 6px solid rgba(255,255,255,.72);
  border-top: 0;
}
body.campaigns-screen .section-campaigns .portal-section-visual span::after {
  left: 27px;
  bottom: -28px;
  width: 18px;
  height: 36px;
  background: linear-gradient(180deg, #F5A91D, #D89018);
  box-shadow: -20px 36px 0 8px rgba(18, 72, 118, .14), 20px 36px 0 8px rgba(18, 72, 118, .14);
}
body.campaigns-screen .section-campaigns .portal-section-visual i {
  right: 12px;
  top: 42px;
  width: 42px;
  height: 56px;
  border-left: 4px solid #2374AB;
}
body.campaigns-screen .section-campaigns .portal-section-visual i::before,
body.campaigns-screen .section-campaigns .portal-section-visual i::after {
  content: "";
  position: absolute;
}
body.campaigns-screen .section-campaigns .portal-section-visual i::before {
  left: 0;
  top: 0;
  width: 34px;
  height: 20px;
  border-radius: 4px 12px 12px 4px;
  background: #2F80ED;
}
body.campaigns-screen .section-campaigns .portal-section-visual i::after {
  left: -142px;
  bottom: 0;
  width: 134px;
  height: 48px;
  border-bottom: 4px dashed rgba(47, 128, 237, .46);
  border-radius: 0 0 90px 90px;
  transform: rotate(-5deg);
}
.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;
}
body.campaigns-screen .campaign-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
body.campaigns-screen .campaign-toolbar h2 {
  margin: 0;
}
body.campaigns-screen .campaign-search {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
}
body.campaigns-screen .campaign-search-control {
  position: relative;
  width: clamp(300px, 30vw, 380px);
  max-width: 100%;
  display: flex;
  align-items: center;
}
body.campaigns-screen .campaign-search__icon {
  position: absolute;
  left: 13px;
  width: 17px;
  height: 17px;
  color: #64748B;
  pointer-events: none;
}
body.campaigns-screen .campaign-search__icon svg {
  width: 17px;
  height: 17px;
  stroke: currentColor;
}
body.campaigns-screen .campaign-search-control input {
  width: 100%;
  height: 44px;
  padding: 0 42px 0 38px;
  border: 1px solid #CFE0F2;
  border-radius: 12px;
  background: #FFFFFF;
  color: #071A38;
  font: inherit;
  font-size: 14px;
  font-weight: 760;
  outline: none;
}
body.campaigns-screen .campaign-search-control input:focus-visible {
  border-color: #2F80ED;
  box-shadow: 0 0 0 4px rgba(47, 128, 237, .14);
}
body.campaigns-screen .campaign-search__clear {
  position: absolute;
  right: 6px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #64748B;
  cursor: pointer;
}
body.campaigns-screen .campaign-search__clear:hover,
body.campaigns-screen .campaign-search__clear:focus-visible {
  background: #EAF4FF;
  color: #0B63CE;
  outline: none;
}
body.campaigns-screen .campaign-search__clear[hidden] {
  display: none;
}
body.campaigns-screen .campaign-search__clear svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
}
body.campaigns-screen .campaign-search [data-campaign-search-status] {
  min-width: 92px;
  margin: 0;
  color: #64748B;
  font-size: 12px;
  font-weight: 800;
  text-align: right;
  white-space: nowrap;
}
body.campaigns-screen .campaign-card.is-campaign-search-hidden {
  display: none !important;
}
body.campaigns-screen .campaign-search-empty {
  width: 100%;
  min-height: 0;
  margin: -2px 0 2px;
  padding: 0 2px;
  color: #64748B;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
}
body.campaigns-screen .campaign-search-empty p {
  margin: 0;
}

body.campaigns-screen .campaign-detail-badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}
body.campaigns-screen .campaign-type-pill,
body.campaigns-screen .campaign-date-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: fit-content;
  min-height: 28px;
  padding: 6px 10px;
  border-radius: 999px;
  background: #EDF6FF;
  color: #0B4D88;
  font-size: 11px;
  line-height: 1.1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
body.campaigns-screen .campaign-date-chip {
  margin-top: 14px;
  text-transform: none;
  letter-spacing: 0;
  color: #0B63CE;
}
body.campaigns-screen .campaign-date-chip svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
}
body.campaigns-screen .campaign-detail-objective {
  color: #53657D;
  font-size: 17px;
  line-height: 1.45;
  font-weight: 900;
}
body.campaigns-screen .campaign-detail-description {
  margin-top: 8px !important;
  color: #64748B !important;
  font-size: 14px !important;
  font-weight: 720 !important;
}
body.campaigns-screen .campaign-detail-info,
body.campaigns-screen .campaign-detail-checks,
body.campaigns-screen .campaign-detail-status {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid #E3ECF6;
  border-radius: 12px;
  background: #F8FBFF;
}
body.campaigns-screen .campaign-detail-info h3,
body.campaigns-screen .campaign-detail-checks h3 {
  margin: 0;
  color: #071A38;
  font-size: 15px;
  line-height: 1.25;
  font-weight: 900;
}
body.campaigns-screen .campaign-detail-info-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
body.campaigns-screen .campaign-detail-info-list article,
body.campaigns-screen .campaign-detail-status {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
body.campaigns-screen .campaign-detail-info-list article {
  min-width: 0;
  padding: 12px;
  border-radius: 10px;
  background: #FFFFFF;
}
body.campaigns-screen .campaign-detail-info-list article > span,
body.campaigns-screen .campaign-detail-status > span,
body.campaigns-screen .campaign-detail-checks li > span {
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #EAF4FF;
  color: #0B63CE;
}
body.campaigns-screen .campaign-detail-info-list svg,
body.campaigns-screen .campaign-detail-status svg,
body.campaigns-screen .campaign-detail-checks svg {
  width: 15px;
  height: 15px;
  stroke: currentColor;
}
body.campaigns-screen .campaign-detail-info-list strong,
body.campaigns-screen .campaign-detail-status strong {
  display: block;
  color: #64748B;
  font-size: 11px;
  line-height: 1.2;
  font-weight: 900;
}
body.campaigns-screen .campaign-detail-info-list p,
body.campaigns-screen .campaign-detail-status p {
  margin: 4px 0 0;
  color: #071A38;
  font-size: 13px;
  line-height: 1.42;
  font-weight: 820;
}
body.campaigns-screen .campaign-detail-progress .campaign-progress em {
  display: block;
  margin-top: 2px;
  color: #64748B;
  font-size: 12px;
  line-height: 1.35;
  font-style: normal;
  font-weight: 760;
}
body.campaigns-screen .campaign-detail-checks ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.campaigns-screen .campaign-detail-checks li {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #53657D;
  font-size: 13px;
  line-height: 1.35;
  font-weight: 820;
}
body.campaigns-screen .campaign-detail-checks li.is-done > span {
  background: #ECFDF3;
  color: #15803D;
}
body.campaigns-screen .campaign-detail-facts,
body.campaigns-screen .campaign-detail-grid {
  display: none;
}
@media (max-width: 760px) {
  body.campaigns-screen .portal-section-hero.section-campaigns {
    grid-template-columns: 1fr minmax(90px, 126px);
    min-height: 138px;
    padding: 18px 16px;
  }
  body.campaigns-screen .section-campaigns .portal-section-visual {
    width: 126px;
    height: 90px;
    opacity: .78;
  }
  body.campaigns-screen .section-campaigns .portal-section-visual i::after {
    display: none;
  }
  body.campaigns-screen .campaign-toolbar {
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
  }
  body.campaigns-screen .campaign-search {
    align-items: stretch;
    flex-direction: column;
    gap: 7px;
    margin-left: 0;
  }
  body.campaigns-screen .campaign-search-control {
    width: 100%;
  }
  body.campaigns-screen .campaign-search [data-campaign-search-status] {
    min-width: 0;
    text-align: left;
  }
  body.campaigns-screen .campaign-detail-info-list {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 430px) {
  body.campaigns-screen .portal-section-hero.section-campaigns {
    grid-template-columns: 1fr;
    min-height: 126px;
  }
  body.campaigns-screen .section-campaigns .portal-section-visual {
    display: none;
  }
}

.activity-route-shell { width: 100%; display: flex; flex-direction: column; min-width: 0; }
.route-preview-gap { fill: none; stroke: #D64545; stroke-width: 3; stroke-dasharray: 8 7; stroke-linecap: round; }
.route-interruption-summary { margin-top: 10px; padding: 11px 12px; border: 1px solid #F3C5C2; border-radius: 12px; background: #FFF8F7; color: #5F3C3C; font-size: .82rem; line-height: 1.4; }
.route-interruption-summary strong, .route-interruption-summary > span { display: block; }
.route-interruption-summary strong { color: #8D2929; margin-bottom: 2px; }
.route-preview-legend { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px; color: #455A6B; font-size: .76rem; font-weight: 750; }
.route-preview-legend span { display: inline-flex; align-items: center; gap: 6px; }
.route-preview-legend i { display: inline-block; width: 28px; height: 3px; border-radius: 2px; }
.route-preview-legend .legend-solid { background: #2F80ED; }
.route-preview-legend .legend-dashed { background: repeating-linear-gradient(90deg, #D64545 0 7px, transparent 7px 11px); }

/* Wearables private-web product artwork */
body.wearables-screen .portal-section-hero.section-wearables {
  aspect-ratio: 3 / 1;
  min-height: 0;
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: 0;
  padding: 0;
  background: #fff;
}

body.wearables-screen .portal-section-hero.section-wearables::after {
  display: none;
}

body.wearables-screen .section-wearables .portal-section-copy {
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

body.wearables-screen .section-wearables .portal-section-copy > p:not(.portal-eyebrow) {
  max-width: none;
}

body.wearables-screen .section-wearables .portal-section-visual {
  width: 100%;
  height: 100%;
  min-height: 0;
  display: block;
  align-self: stretch;
  border-radius: 0;
  background: var(--section-hero-image) center / cover no-repeat;
  box-shadow: none;
}

body.wearables-screen .section-wearables .portal-section-visual::before,
body.wearables-screen .section-wearables .portal-section-visual span,
body.wearables-screen .section-wearables .portal-section-visual i {
  display: none;
}

body.wearables-screen .wearables-content {
  display: block;
  margin-top: clamp(28px, 3vw, 40px);
}

body.wearables-screen .wearable-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

body.wearables-screen .wearable-card {
  aspect-ratio: 2 / 1;
  min-width: 0;
  min-height: 0;
  display: flex;
  align-items: flex-end;
  padding: 12px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid rgba(207, 218, 231, .78);
  border-radius: 20px;
  background: #edf6fc var(--wearable-art) center / cover no-repeat;
  box-shadow: 0 14px 34px rgba(29, 48, 78, .1);
}

body.wearables-screen .wearable-card::before {
  content: "";
  position: absolute;
  inset: 38% 28% 0 0;
  z-index: -1;
  background: linear-gradient(135deg, rgba(18, 42, 66, .06), rgba(18, 42, 66, .2));
  filter: blur(20px);
}

body.wearables-screen .wearable-card-copy {
  width: fit-content;
  max-width: min(68%, 210px);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  position: relative;
  z-index: 1;
}

body.wearables-screen .wearable-card-copy h2 {
  max-width: 100%;
  margin: 0;
  padding: 6px 10px;
  border: 1px solid rgba(255,255,255,.68);
  border-radius: 11px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 5px 14px rgba(21, 48, 77, .08);
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
  color: #10253d;
  font-size: clamp(.96rem, 1.5vw, 1.1rem);
  line-height: 1.16;
  letter-spacing: -.015em;
}

body.wearables-screen .wearable-status {
  min-height: 24px;
  padding: 4px 8px;
  font-size: .7rem;
  line-height: 1;
}

body.wearables-screen .wearable-status--available {
  background: #e6f2ff;
  color: #0b63a3;
}

body.wearables-screen .wearable-card-copy--minimal {
  width: fit-content;
  max-width: calc(100% - 4px);
  display: block;
}

body.wearables-screen .wearable-card-copy--minimal .wearable-status {
  min-height: 22px;
  padding: 4px 7px;
  border: 1px solid rgba(255,255,255,.66);
  background: rgba(255,255,255,.9);
  box-shadow: 0 4px 12px rgba(21, 48, 77, .07);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  color: #465a70;
  font-size: .66rem;
  font-weight: 500;
  line-height: 1.15;
}

body.wearables-screen .wearable-card-copy--minimal .wearable-status--sync-available,
body.wearables-screen .wearable-card-copy--minimal .wearable-status--sync-enabled {
  border-color: transparent;
  color: #fff;
}

body.wearables-screen .wearable-card-copy--minimal .wearable-status--sync-available {
  background: var(--portal-blue);
}

body.wearables-screen .wearable-card-copy--minimal .wearable-status--sync-enabled {
  background: #16845b;
}

body.wearables-screen .wearable-sync-pill {
  appearance: none;
  cursor: pointer;
  font-family: inherit;
  text-decoration: none;
}

body.wearables-screen .wearable-sync-pill:focus-visible {
  outline: 3px solid rgba(35, 116, 171, .35);
  outline-offset: 2px;
}

body.wearables-screen .wearable-card-sync {
  max-width: 100%;
  margin: 0;
  padding: 5px 9px;
  border: 1px solid rgba(255,255,255,.58);
  border-radius: 999px;
  background: rgba(255,255,255,.84);
  box-shadow: 0 4px 12px rgba(21, 48, 77, .06);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  color: #52667d;
  font-size: .75rem;
  line-height: 1.35;
}

body.wearables-screen .wearable-action {
  width: fit-content;
  min-height: 32px;
  margin-top: 0;
  padding: 6px 12px;
  border-radius: 10px;
  font-size: .76rem;
}

body.wearables-screen .wearable-action:focus-visible {
  outline: 3px solid rgba(35, 116, 171, .35);
  outline-offset: 2px;
}

body.wearables-screen button.wearable-action {
  border: 0;
  cursor: pointer;
  font: inherit;
}

.wearable-setup-modal {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: center;
  padding: 20px;
}

.wearable-setup-modal[hidden] { display: none; }
.wearable-setup-backdrop { position: absolute; inset: 0; background: rgba(8, 25, 43, .58); }
.wearable-setup-panel {
  position: relative;
  z-index: 1;
  width: min(100%, 440px);
  padding: 28px;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 24px 80px rgba(8, 25, 43, .25);
  text-align: center;
}
.wearable-setup-panel h2 { margin: 4px 0 10px; }
.wearable-setup-close { position: absolute; top: 12px; right: 14px; border: 0; background: transparent; font-size: 1.8rem; cursor: pointer; }
.wearable-setup-qr { min-height: 232px; display: grid; place-items: center; margin: 18px auto 10px; }
.wearable-setup-qr svg { width: 232px; max-width: 100%; height: auto; }
.wearable-setup-open { display: inline-flex !important; margin: 8px auto !important; }
.wearable-setup-open[hidden] { display: none !important; }
.wearable-setup-status { color: #52667d; font-size: .9rem; }
.wearable-action--danger { background: #fff1f1 !important; color: #a52828 !important; }

@media (max-width: 1100px) {
  body.wearables-screen .wearable-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  body.wearables-screen .wearable-grid {
    grid-template-columns: 1fr;
  }

  body.wearables-screen .wearable-card {
    min-height: 0;
  }

  body.wearables-screen .wearable-card-copy {
    width: fit-content;
    max-width: min(76%, 230px);
  }
}
