/* Estland 2 public portal v30 — mobile stability and cleanup */
.portal-v11,
.portal-v11 * {
  box-sizing: border-box;
}

.portal-v11 {
  max-width: 100%;
  overflow-x: clip;
}

.portal-v11 :where(
  .surface-card,
  .portal-panel,
  .update-card,
  .pinned-card,
  .promo-code-card,
  .roadmap-card,
  .known-issue-card,
  .shop-item-card,
  .featured-shop-card,
  .rule-card,
  .leaderboard-row,
  .leaderboard-selector-button,
  .leaderboard-selector-group,
  .leaderboard-selector-groups,
  .leaderboard-player-main,
  .shop-item-body,
  .shop-price-stack,
  .tag-row,
  .update-card-tags,
  .roadmap-chip-row
) {
  min-width: 0;
  max-width: 100%;
}

.portal-v11 :where(h1, h2, h3, h4, p, strong, small, span, em, code, a, button, label) {
  overflow-wrap: anywhere;
}

.portal-v11 .site-utility-icon {
  filter: none !important;
  opacity: 1 !important;
}

.portal-v11 .site-utility-link:hover .site-utility-icon {
  filter: brightness(0) saturate(100%) invert(80%) sepia(44%) saturate(779%) hue-rotate(338deg) brightness(100%) contrast(95%) !important;
}

/* Keep the five home statistic cards equal and let content shrink safely. */
.portal-v11 .premium-stat-grid {
  align-items: stretch;
}

.portal-v11 .roblox-stat,
.portal-v11 .richest-home-spotlight {
  width: auto;
  min-width: 0;
  overflow: hidden;
}

.portal-v11 .richest-home-head,
.portal-v11 .richest-home-identity,
.portal-v11 .richest-home-wealth {
  min-width: 0;
}

.portal-v11 .richest-ribbon-name,
.portal-v11 .richest-ribbon-wealth {
  max-width: 100%;
}

/* Tablet layout */
@media (max-width: 940px) {
  .portal-v11 .leaderboard-hub-layout,
  .portal-v11 .content-grid-with-rail,
  .portal-v11 .rules-layout,
  .portal-v11 .reports-layout,
  .portal-v11 .codes-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .portal-v11 .leaderboard-selector-card,
  .portal-v11 .leaderboard-stats-card,
  .portal-v11 .known-issues-card,
  .portal-v11 .rules-toc-card,
  .portal-v11 .content-rail {
    position: static !important;
    top: auto !important;
  }
}

/* Phone layout */
@media (max-width: 720px) {
  html,
  body.portal-v11 {
    max-width: 100%;
    overflow-x: hidden;
  }

  body.portal-v11 {
    padding-bottom: 108px;
  }

  .portal-v11 .shell,
  .portal-v11 .v9-hero-shell,
  .portal-v11 .v9-after-hero,
  .portal-v11 .signal-board-section,
  .portal-v11 .content-page,
  .portal-v11 .codes-layout,
  .portal-v11 .leaderboard-hub-layout,
  .portal-v11 .reports-layout {
    width: calc(100% - 20px) !important;
    max-width: calc(100% - 20px) !important;
  }

  .portal-v11 .page-hero,
  .portal-v11 .rules-hero,
  .portal-v11 .social-command-card,
  .portal-v11 .v9-link-panel,
  .portal-v11 .portal-panel,
  .portal-v11 .surface-card,
  .portal-v11 .codes-panel,
  .portal-v11 .report-form-card,
  .portal-v11 .known-issues-card,
  .portal-v11 .leaderboard-selector-card,
  .portal-v11 .leaderboard-board-card,
  .portal-v11 .leaderboard-stats-card,
  .portal-v11 .rules-toc-card,
  .portal-v11 .rule-card,
  .portal-v11 .rules-report-cta,
  .portal-v11 .stat-rail-card,
  .portal-v11 .rail-cta-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 16px;
  }

  .portal-v11 .page-hero,
  .portal-v11 .rules-hero {
    overflow: hidden;
  }

  .portal-v11 .page-hero h1,
  .portal-v11 .rules-hero h1 {
    max-width: 100%;
    font-size: clamp(1.62rem, 7vw, 2.08rem);
    line-height: 1.02;
  }

  .portal-v11 .page-hero-tools,
  .portal-v11 .search-field,
  .portal-v11 .search-field input,
  .portal-v11 .field,
  .portal-v11 .field input,
  .portal-v11 .field textarea,
  .portal-v11 .field select,
  .portal-v11 .report-form,
  .portal-v11 .report-form input,
  .portal-v11 .report-form textarea,
  .portal-v11 .report-form select {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  /* Filters wrap instead of extending beyond the viewport. */
  .portal-v11 .filter-row {
    display: flex;
    flex-wrap: wrap;
    overflow: visible;
    width: 100%;
    gap: 6px;
  }

  .portal-v11 .filter-button,
  .portal-v11 [data-leaderboard-filter],
  .portal-v11 [data-roadmap-filter] {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 100%;
  }

  /* Header/footers inside cards must wrap cleanly. */
  .portal-v11 .update-card-top,
  .portal-v11 .update-card-footer,
  .portal-v11 .roadmap-card-top,
  .portal-v11 .promo-code-card-top,
  .portal-v11 .known-issue-meta,
  .portal-v11 .leaderboard-board-head,
  .portal-v11 .feed-heading,
  .portal-v11 .portal-panel-head,
  .portal-v11 .section-intro {
    display: flex !important;
    flex-wrap: wrap;
    align-items: flex-start !important;
    justify-content: space-between;
    gap: 8px;
  }

  .portal-v11 .update-card-tags,
  .portal-v11 .tag-row,
  .portal-v11 .roadmap-chip-row,
  .portal-v11 .shop-item-tags {
    display: flex;
    flex-wrap: wrap;
    min-width: 0;
    gap: 6px;
  }

  .portal-v11 .update-card-date,
  .portal-v11 .roadmap-priority,
  .portal-v11 .promo-code-expiry-pill {
    flex: 0 0 auto;
    max-width: 100%;
  }

  /* Home statistics */
  .portal-v11 .premium-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px;
  }

  .portal-v11 .roblox-stat,
  .portal-v11 .richest-home-spotlight {
    height: 94px !important;
    min-height: 94px !important;
    padding: 10px !important;
    border-radius: 15px !important;
  }

  .portal-v11 .roblox-stat span,
  .portal-v11 .richest-ribbon-label,
  .portal-v11 .richest-ribbon-copy {
    font-size: .49rem !important;
    line-height: 1.12;
    letter-spacing: .09em;
  }

  .portal-v11 .roblox-stat strong {
    margin-top: 7px;
    font-size: 1.04rem;
  }

  .portal-v11 .roblox-stat small {
    display: none;
  }

  .portal-v11 .richest-home-spotlight {
    display: flex !important;
    flex-direction: column;
    justify-content: space-between;
  }

  .portal-v11 .richest-home-head {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    align-items: center;
    gap: 7px;
  }

  .portal-v11 .richest-home-crown {
    width: 28px;
    height: 28px;
    border-radius: 9px;
  }

  .portal-v11 .richest-home-crown svg {
    width: 16px;
    height: 16px;
  }

  .portal-v11 .richest-ribbon-name {
    display: block;
    margin-top: 3px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .72rem !important;
  }

  .portal-v11 .richest-home-wealth {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 2px;
    margin-top: 4px;
  }

  .portal-v11 .richest-ribbon-wealth {
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
    font-size: .82rem !important;
  }

  /* Leaderboards */
  .portal-v11 .leaderboard-selector-groups {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    overflow: visible !important;
    gap: 14px !important;
  }

  .portal-v11 .leaderboard-selector-group,
  .portal-v11 .leaderboard-selector-buttons {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    gap: 8px !important;
  }

  .portal-v11 .leaderboard-selector-group + .leaderboard-selector-group {
    margin-top: 0;
    padding-top: 14px;
  }

  .portal-v11 .leaderboard-selector-button {
    width: 100%;
    min-height: 56px;
    padding: 11px 12px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
  }

  .portal-v11 .leaderboard-selector-button span {
    min-width: 0;
    font-size: .78rem;
    line-height: 1.28;
  }

  .portal-v11 .leaderboard-selector-button em {
    min-height: 28px;
    padding: 0 8px;
    font-size: .58rem;
  }

  .portal-v11 .leaderboard-board-head {
    flex-direction: column;
  }

  .portal-v11 .leaderboard-board-head .status-pill {
    align-self: flex-start;
  }

  .portal-v11 .leaderboard-row {
    min-height: 68px;
    padding: 10px;
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) !important;
    grid-template-areas: "rank player" "rank value";
    align-items: center;
    gap: 3px 9px !important;
  }

  .portal-v11 .leaderboard-rank-pill {
    grid-area: rank;
    min-height: 40px;
    height: 40px;
    border-radius: 12px;
    font-size: .82rem;
  }

  .portal-v11 .leaderboard-player-main {
    grid-area: player;
    gap: 2px;
    overflow: hidden;
  }

  .portal-v11 .leaderboard-player-main a {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .8rem;
  }

  .portal-v11 .leaderboard-player-main span {
    font-size: .48rem;
    line-height: 1.2;
  }

  .portal-v11 .leaderboard-row strong {
    grid-area: value !important;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left !important;
    font-size: .76rem !important;
    line-height: 1.2;
  }

  .portal-v11 .leaderboard-stats-card-v2 .leaderboard-stat-grid,
  .portal-v11 .leaderboard-stat-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 7px;
  }

  .portal-v11 .leaderboard-stat-grid article {
    min-height: 52px;
    padding: 10px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .portal-v11 .leaderboard-stat-grid article span {
    font-size: .56rem;
  }

  .portal-v11 .leaderboard-stat-grid article strong {
    margin: 0;
    font-size: 1rem;
    white-space: nowrap;
  }

  /* Rules */
  .portal-v11 .rules-toc-list {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    overflow: visible !important;
    width: 100%;
    gap: 7px;
  }

  .portal-v11 .rules-toc-link {
    width: 100%;
    min-height: 52px;
    grid-template-columns: 34px minmax(0, 1fr) auto;
  }

  .portal-v11 .rules-toc-link strong {
    min-width: 0;
    white-space: normal;
  }

  .portal-v11 .rule-heading-row {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 11px;
    align-items: start;
  }

  .portal-v11 .rule-icon {
    width: 42px;
    height: 42px;
    border-radius: 13px;
  }

  .portal-v11 .rule-heading-row h2 {
    max-width: 100%;
    margin-top: 6px;
    font-size: 1.16rem;
    line-height: 1.08;
  }

  .portal-v11 .rule-points li {
    grid-template-columns: 24px minmax(0, 1fr);
    padding: 11px;
    gap: 8px;
  }

  .portal-v11 .rule-points li > span {
    width: 24px;
    height: 24px;
  }

  .portal-v11 .rules-report-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .portal-v11 .rules-report-cta .button {
    width: 100%;
    justify-content: center;
  }

  /* Shop */
  .portal-v11 .shop-item-card,
  .portal-v11 .featured-shop-card {
    display: grid !important;
    grid-template-columns: 94px minmax(0, 1fr) !important;
    width: 100%;
    overflow: hidden;
  }

  .portal-v11 .shop-item-image {
    min-width: 0;
    min-height: 100%;
    height: 100%;
  }

  .portal-v11 .shop-item-body {
    padding: 11px;
    overflow: hidden;
  }

  .portal-v11 .shop-item-tags > * {
    max-width: 100%;
  }

  .portal-v11 .shop-item-body h3 {
    margin: 7px 0 4px;
    font-size: .83rem;
    line-height: 1.22;
  }

  .portal-v11 .shop-subtitle {
    font-size: .62rem;
    line-height: 1.3;
  }

  .portal-v11 .shop-item-meta-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px;
    align-items: stretch;
    margin-top: 10px;
    padding-top: 10px;
  }

  .portal-v11 .shop-price-stack {
    width: 100%;
    gap: 4px;
    overflow: hidden;
  }

  .portal-v11 .shop-price {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .9rem;
  }

  .portal-v11 .shop-sales-pill {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .5rem;
  }

  .portal-v11 .shop-action-wrap,
  .portal-v11 .shop-buy-button {
    width: 100% !important;
    min-width: 0;
  }

  .portal-v11 .shop-buy-button {
    min-height: 34px;
    padding: 0 8px;
    justify-content: center;
    white-space: normal;
    text-align: center;
    font-size: .6rem;
  }

  /* Promo codes */
  .portal-v11 .hero-mini-metrics,
  .portal-v11 .roadmap-metrics {
    width: 100% !important;
    max-width: 100%;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px;
  }

  .portal-v11 .hero-mini-metrics.single-metric {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .portal-v11 .hero-mini-metrics article,
  .portal-v11 .roadmap-metrics article {
    min-width: 0 !important;
    width: 100%;
  }

  .portal-v11 .promo-code-token-row {
    width: 100%;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 7px;
    align-items: center !important;
  }

  .portal-v11 .promo-code-token {
    width: auto !important;
    min-width: 0 !important;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .portal-v11 .copy-code-button {
    width: auto !important;
    min-width: 0;
    padding-inline: 10px;
    white-space: nowrap;
  }

  /* Roadmap */
  .portal-v11 .roadmap-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .portal-v11 .roadmap-card-top {
    flex-direction: row !important;
  }

  .portal-v11 .roadmap-chip {
    max-width: 100%;
    white-space: normal;
  }

  /* Reports */
  .portal-v11 .known-issue-card,
  .portal-v11 .known-issue-button {
    width: 100%;
    text-align: left;
  }

  .portal-v11 .known-issue-meta {
    width: 100%;
  }

  .portal-v11 .known-issue-meta span,
  .portal-v11 .known-issue-meta strong {
    min-width: 0;
    max-width: 100%;
  }

  .portal-v11 .honeypot-field {
    display: none !important;
  }

  /* Dock */
  .portal-v11 .portal-mobile-dock {
    left: 8px;
    right: 8px;
    bottom: 8px;
    width: auto;
    max-width: calc(100% - 16px);
    padding: 6px;
    gap: 3px;
  }

  .portal-v11 .portal-dock-item {
    min-width: 0;
  }

  .portal-v11 .portal-dock-item span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .55rem;
  }
}

@media (max-width: 360px) {
  .portal-v11 .site-language-inner {
    gap: 6px;
  }

  .portal-v11 .site-utility-links {
    gap: 4px;
  }

  .portal-v11 .site-utility-link {
    width: 27px;
    height: 27px;
  }

  .portal-v11 .site-utility-icon {
    width: 13px;
    height: 13px;
  }

  .portal-v11 .shop-item-card,
  .portal-v11 .featured-shop-card {
    grid-template-columns: 84px minmax(0, 1fr) !important;
  }

  .portal-v11 .shop-item-body {
    padding: 9px;
  }

  .portal-v11 .leaderboard-selector-button {
    grid-template-columns: minmax(0, 1fr);
  }

  .portal-v11 .leaderboard-selector-button em {
    justify-self: start;
  }

  .portal-v11 .promo-code-token-row {
    grid-template-columns: minmax(0, 1fr) auto !important;
  }

  .portal-v11 .copy-code-button {
    padding-inline: 8px;
    font-size: .58rem;
  }

  .portal-v11 .known-issue-meta {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Final narrow-screen corrections discovered during v30 visual audit. */
@media (max-width: 720px) {
  .portal-v11 .hero-mini-metrics,
  .portal-v11 .roadmap-metrics,
  .portal-v11 .page-hero .hero-mini-metrics,
  .portal-v11 .roadmap-metrics-card .roadmap-metrics {
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
  }

  .portal-v11 .hero-mini-metrics article,
  .portal-v11 .roadmap-metrics article {
    min-width: 0 !important;
    overflow: hidden;
  }

  /* The richest-player card keeps the exact same outer size as every other stat card. */
  .portal-v11 .richest-home-crown {
    display: none;
  }

  .portal-v11 .richest-home-head {
    display: block;
  }

  .portal-v11 .richest-home-identity {
    width: 100%;
  }

  .portal-v11 .richest-ribbon-name {
    width: 100%;
  }

  .portal-v11 .richest-ribbon-copy {
    display: none;
  }

  .portal-v11 .richest-home-wealth {
    margin-top: 6px;
  }
}

/* Richest-player card: explicit final override over legacy !important rules. */
.portal-v11 .premium-stat-grid > .richest-home-spotlight {
  box-sizing: border-box !important;
  width: 100% !important;
  height: 116px !important;
  min-height: 116px !important;
  margin: 0 !important;
  padding: 16px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  grid-template-columns: none !important;
  overflow: hidden !important;
  border-radius: 20px !important;
}

.portal-v11 .premium-stat-grid > .richest-home-spotlight .richest-home-head {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  min-width: 0 !important;
}

.portal-v11 .premium-stat-grid > .richest-home-spotlight .richest-home-crown {
  display: grid !important;
  width: 36px !important;
  height: 36px !important;
  flex: 0 0 36px !important;
}

.portal-v11 .premium-stat-grid > .richest-home-spotlight .richest-home-identity {
  min-width: 0 !important;
}

.portal-v11 .premium-stat-grid > .richest-home-spotlight .richest-ribbon-name {
  display: block !important;
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.portal-v11 .premium-stat-grid > .richest-home-spotlight .richest-home-wealth {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 8px !important;
  margin-top: 8px !important;
  min-width: 0 !important;
}

.portal-v11 .premium-stat-grid > .richest-home-spotlight .richest-ribbon-wealth {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

@media (max-width: 720px) {
  .portal-v11 .premium-stat-grid > .richest-home-spotlight {
    height: 94px !important;
    min-height: 94px !important;
    padding: 10px !important;
    border-radius: 15px !important;
  }

  .portal-v11 .premium-stat-grid > .richest-home-spotlight .richest-home-head {
    display: block !important;
  }

  .portal-v11 .premium-stat-grid > .richest-home-spotlight .richest-home-crown {
    display: none !important;
  }

  .portal-v11 .premium-stat-grid > .richest-home-spotlight .richest-ribbon-label {
    display: block !important;
  }

  .portal-v11 .premium-stat-grid > .richest-home-spotlight .richest-ribbon-name {
    margin-top: 3px !important;
    font-size: .72rem !important;
  }

  .portal-v11 .premium-stat-grid > .richest-home-spotlight .richest-home-wealth {
    display: block !important;
    margin-top: 7px !important;
  }

  .portal-v11 .premium-stat-grid > .richest-home-spotlight .richest-ribbon-copy {
    display: none !important;
  }

  .portal-v11 .premium-stat-grid > .richest-home-spotlight .richest-ribbon-wealth {
    display: block !important;
    margin: 0 !important;
    text-align: left !important;
    font-size: .82rem !important;
  }
}
