/* Mobile-first responsive foundation shared by every legacy module. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { min-width: 0; overflow-x: hidden; }
img, svg, video, canvas, iframe { max-width: 100%; height: auto; }
input, select, textarea, button { max-width: 100%; }
button, .btn, [role="button"] { min-height: 44px; }
a, button, input, select, textarea { touch-action: manipulation; }
.container, .container-fluid, .row, [class*="col-"] { min-width: 0; }
.table-responsive { -webkit-overflow-scrolling: touch; }
.app-stack, .app-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.app-stack { flex-direction: column; }
.app-actions { align-items: center; }
.app-scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.form-control, .custom-select { min-height: 44px; font-size: 16px; }
.modal-dialog { margin: .75rem auto; max-width: calc(100vw - 1.5rem); }
.modal-body { overflow-wrap: anywhere; }

/* Dashboard, cards, feeds, galleries and profile panels. */
.grid, .panel-grid-areas { grid-template-columns: minmax(0, 1fr); }
.panel-grid-areas > *, .main-container > *, .room-sidebar-get-notified-msg { min-width: 0; }
.crushes-gallery { padding: 1rem; gap: .75rem; scroll-snap-type: x proximity; }
.crushes-gallery .item { flex: 0 0 7rem; scroll-snap-align: start; }
.panel-grid-areas--crush-gallery { grid-template-columns: minmax(0, 1fr); }
.panel-grid-areas--centered { width: min(100%, 1100px); margin-inline: auto; }
@media (min-width: 1200px) { .panel-grid-areas--crush-gallery.panel-grid-areas--centered, .crush-singles-section.panel-grid-areas--centered { width: 916px; } }
.crush-gallery-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.crush-gallery-heading__title { display: inline-flex; align-items: center; min-width: 0; white-space: nowrap; }
.crush-gallery-heading__title, .crush-singles-section__header h2 { margin: 0; color: #495057; font-family: Roboto, sans-serif; font-size: clamp(1.2rem, 2vw, 1.45rem); font-weight: 700; line-height: 1.2; }
.super-cupids-gallery { display: flex; align-items: center; justify-content: flex-end; min-width: 0; overflow: hidden; padding-left: .5rem; }
.super-cupids-gallery__help { min-height: 0 !important; flex: 0 0 auto; padding: 0; margin: 0 .25rem 0 0; line-height: 1; }
.super-cupids-gallery__help img { width: 1.25rem; height: 1.25rem; }
.super-cupids-gallery__avatar { width: 2.25rem; height: 2.25rem; flex: 0 0 2.25rem; border: 2px solid #fff; border-radius: 50%; object-fit: cover; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .18); cursor: help; }
.super-cupids-gallery__avatar + .super-cupids-gallery__avatar { margin-left: -.75rem; }
.super-cupids-gallery__more { margin-left: -.15rem; color: #0d6efd; font-size: 1.35rem; }
.image-gallery__size { width: min(160px, 100%); height: auto; aspect-ratio: 1; object-fit: cover; }
.img-choose { min-width: 0; width: 100%; max-width: 163px; height: auto; aspect-ratio: 1.1; object-fit: cover; }
.s-modal { inset: 5vh 4vw; width: auto; height: auto; max-height: 90vh; }
.s-modal__content { height: 90vh; }
#modal_img { width: auto; max-width: 90vw; max-height: 80vh; object-fit: contain; }

/* Chat: stack room list and conversation on narrow screens without viewport overflow. */
.main-container { width: 100%; min-height: 100dvh; }
.room-container__msg, .room-container__preview-img { min-height: 100dvh; height: 100dvh; }
.room-sidebar-get-notified-msg1, .room-sidebar-get-notified-msg2, .h-users { white-space: normal; }

/* Authenticated shell: navigation remains usable at every viewport width. */
.app-search { width: min(100%, 26rem); margin-left: 2rem; }
.quick-search { position: relative; }
.quick-search__suggestions {
  position: absolute;
  z-index: 1050;
  top: calc(100% + .35rem);
  left: 0;
  right: 0;
  max-height: min(22rem, 55dvh);
  overflow-y: auto;
  border: 1px solid #dee2e6;
  border-radius: .5rem;
  background: #fff;
}
.quick-search__group-title {
  padding: .6rem .75rem .3rem;
  color: #6c757d;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.quick-search__option {
  display: block;
  width: 100%;
  min-height: 44px;
  padding: .65rem .75rem;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: #212529;
  text-align: left;
}
.quick-search__option:hover,
.quick-search__option:focus-visible { background: #f3efff; outline: 2px solid #6f42c1; outline-offset: -2px; }

/* Publication launcher: one modal entry point plus the member's publication count. */
.publication-compose-launcher {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  width: 100%;
  padding: 0 .5rem;
}
.publication-compose-launcher__button { min-height: 48px; padding-inline: 1.4rem; border-radius: 999px; font-weight: 700; }
.publication-compose-modal__dialog { width: min(calc(100vw - 2rem), 480px); max-width: 480px; }
.publication-compose-modal__content { border: 0; border-radius: 1rem; box-shadow: 0 18px 48px rgba(34, 39, 52, .22); }
.publication-compose-modal__avatar { width: 44px; height: 44px; max-width: none; object-fit: cover; }
.publication-compose-modal__submit { min-height: 44px; border-radius: 999px; font-size: 1rem; font-weight: 700; }
@media (min-width: 768px) { .publication-compose-launcher__button { width: 170px; } }
.publication-compose-launcher__count { color: #5f6670; font-size: .875rem; font-weight: 600; text-align: right; white-space: nowrap; }
.publication-media-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 44px;
  width: 100%;
  border: 0;
  border-radius: .75rem;
  background: transparent;
  font-weight: 700;
}
.publication-media-action svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.publication-media-action--photo { color: #e94057; }
.publication-media-action--video { color: #705cf6; }
.publication-media-action:hover,
.publication-media-action:focus-visible { background: #f4f1ff; outline: 2px solid currentColor; outline-offset: 2px; }
.publication-upload-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }

/* Compact social comment thread: inline composer, light bubbles, progressive disclosure. */
.post-card__comments { width: 100%; }
.comment-thread { padding: .65rem .75rem .75rem; border-top: 1px solid #edf0f4; }
.comment-composer, .comment-thread__item { display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: start; gap: .5rem; }
.comment-composer__avatar, .comment-thread__avatar { width: 32px; height: 32px; object-fit: cover; }
.comment-composer__entry { display: flex; align-items: center; min-width: 0; gap: .45rem; }
.comment-composer__input { flex: 1 1 auto; min-width: 0; min-height: 44px; padding: .5rem .8rem; border-radius: 999px; background: #f4f6f8; }
.comment-composer__submit { flex: 0 0 auto; min-height: 44px; padding-inline: .8rem; font-size: .85rem; font-weight: 700; }
.comment-thread__list { display: grid; gap: .45rem; margin-top: .65rem; }
.comment-thread__bubble { min-width: 0; padding: .45rem .65rem; border-radius: .75rem; background: #f4f6f8; color: #333; }
.comment-thread__bubble .font-name-user { font-size: .84rem; line-height: 1.15; }
.comment-thread__bubble .postagem { margin-top: .15rem; overflow-wrap: anywhere; }
.comment-thread__show-all { min-height: 36px; margin: .5rem 0 0 40px; padding: .25rem 0; border: 0; background: transparent; color: #705cf6; font-size: .84rem; font-weight: 700; text-align: left; }
.comment-thread__show-all:hover, .comment-thread__show-all:focus-visible { text-decoration: underline; outline: 2px solid #705cf6; outline-offset: 2px; }

/* Published post cards: square, consistent feed items regardless of media type. */
.post-feed { display: grid; grid-template-columns: minmax(0, 1fr); width: 50%; max-width: 50%; margin-top: 1rem; padding: 0 15px; }
.post-feed > .publication-feed__card {
  width: 100%;
  max-width: 100%;
  margin-bottom: 2px !important;
  border-radius: 0 !important;
  overflow: hidden;
}
.publication-feed__empty { display: grid; place-items: center; min-height: 160px; width: 100%; padding: 2rem 1rem; color: #6c757d; text-align: center; background: #fff; }
.publication-feed__empty p { margin: 0; }
@media (max-width: 767.98px) { .publication-feed__empty { background: transparent; min-height: 0; padding: 1.25rem 1rem; } .publication-feed__empty p { font-family: Georgia, "Times New Roman", serif; color: #343a40; font-size: 1.15rem; font-style: italic; font-weight: 700; letter-spacing: .01em; } }
.publication-feed__card .card-body, .publication-feed__card .carousel, .publication-feed__card .carousel-inner, .publication-feed__card .carousel-item { min-width: 0; width: 100%; }
.publication-feed__card .carousel,
.publication-feed__card .carousel img,
.publication-feed__card .carousel video,
.publication-feed__card .carousel iframe { display: block; max-width: 100%; }
.publication-feed__card .carousel img, .publication-feed__card .carousel video { width: 100%; height: auto; }

/* Published post cards: author status and evenly aligned engagement actions. */
.post-card__header { display: flex; align-items: center; gap: .65rem; }
.post-card__avatar { flex: 0 0 auto; }
.post-card__avatar img { width: 40px; height: 40px; object-fit: cover; }
.post-card__author { flex: 1 1 auto; min-width: 0; }
.post-card__author-line { display: flex; align-items: baseline; gap: .3rem; min-width: 0; }
.post-card__author-line a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.post-card__time { color: #737b85; font-size: .78rem; white-space: nowrap; }
.post-card__author-type { margin-top: .1rem; color: #705cf6; font-size: .78rem; font-weight: 700; line-height: 1.2; }
.post-card__actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: center; border-top: 1px solid #edf0f4; }
.post-card__action { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-height: 48px; padding: .5rem; border: 0; background: transparent; color: #5f6670; }
.post-card__action img { width: 1.15rem; height: 1.15rem; object-fit: contain; }
.post-card__action:hover,
.post-card__action:focus-visible { background: #f4f1ff; outline: 2px solid #705cf6; outline-offset: -2px; }
.post-card__action a { display: inline-flex; align-items: center; }
.app-shell .navbar { min-height: 64px; }
.app-shell .dropdown-menu { max-width: calc(100vw - 1.5rem); }

@media (max-width: 767.98px) {
  .app-shell { display: block !important; padding-top: 176px; background: #eef0f5; }
  .app-shell #page-content-wrapper > .container-fluid { background: #eef0f5 !important; }
  .app-shell #sidebar-wrapper { width: 100vw; min-height: 100dvh; height: 100dvh; margin: 0 0 0 -100vw !important; position: fixed; inset: 0 auto 0 0; z-index: 1040; max-height: none; overflow-y: auto; box-shadow: 0 12px 24px rgba(0,0,0,.16); }
  .app-shell #sidebar-wrapper .list-group { width: 100%; }
  .mobile-account-menu { display: block; background: #fff; padding: .5rem 0 env(safe-area-inset-bottom); }
  .mobile-account-menu__profile, .mobile-account-menu__item, .mobile-account-menu__notifications summary { display: flex; align-items: center; gap: .75rem; width: 100%; min-height: 48px; padding: .75rem 1rem; color: #212529; font-size: 1rem; }
  .mobile-account-menu__profile img { width: 42px; height: 42px; object-fit: cover; }
  .mobile-account-menu__profile span { display: grid; gap: .1rem; }
  .mobile-account-menu__profile small { color: #6c757d; }
  .mobile-account-menu__notifications summary { cursor: pointer; list-style: none; justify-content: space-between; }
  .mobile-account-menu__notifications summary::-webkit-details-marker { display: none; }
  .mobile-account-menu__notification-list { padding: 0 .75rem .5rem; }
  .mobile-account-menu__notification { display: grid; gap: .15rem; padding: .65rem .75rem; border-radius: .5rem; background: #f8f9fa; margin-bottom: .4rem; }
  .mobile-account-menu__logout { color: #b02a37; border-top: 1px solid #e9ecef; margin-top: .5rem; }
  .app-shell.toggled #sidebar-wrapper { margin-left: 0 !important; }
  .app-shell #page-content-wrapper { min-width: 0; width: 100%; }
  .app-shell .navbar { align-items: center; flex-wrap: wrap; padding: .4rem .75rem; position: fixed; }
  .app-shell .mobile-menu-toggle, .app-shell .mobile-account-toggle { flex: 0 0 44px; padding: .25rem; }
  .app-shell .mobile-account-toggle { margin-left: auto; }
  .app-shell .mobile-account-toggle img { width: 38px; height: 38px; object-fit: cover; }
  .mobile-account-options { flex-basis: 100%; display: grid; grid-template-columns: 1fr; margin-top: .25rem; border-top: 1px solid #e9ecef; }
  .mobile-account-options__item { min-height: 44px; display: flex; align-items: center; padding: .65rem .75rem; color: #212529; }
  .mobile-account-options__logout { color: #b02a37; }
  .app-shell .mobile-brand { position: absolute; left: 50%; top: .5rem; transform: translateX(-50%); display: inline-flex; align-items: center; gap: .35rem; max-width: calc(100vw - 11rem); font-size: 1.05rem; white-space: nowrap; }
  .app-shell .mobile-brand img { width: 34px !important; height: 34px; object-fit: contain; }
  .app-search { order: 3; width: 100%; margin: .45rem 0 0; }
  .app-shell .navbar { flex-wrap: wrap; }
  .app-shell .navbar-collapse { width: 100%; }
  .app-shell .navbar-nav { display: flex; flex-direction: row; flex-wrap: wrap; gap: .25rem; }
  .app-shell .nav-item { margin-right: 0 !important; }
  .app-shell .nav-link { padding: .6rem; }
  /* Account/profile forms: equal-width desktop fields become readable stacks. */
  #form-personal-data .form-row > .col,
  #form-profile-data .form-row > .col { flex: 0 0 100%; max-width: 100%; }
  #form-personal-data .form-row > [class*="col-md-"],
  #form-profile-data .form-row > [class*="col-md-"] { flex: 0 0 100%; max-width: 100%; }
  #form-avatar .file-button { margin-left: -.75rem !important; }
  /* Feed/upload previews and pricing cards must not preserve desktop fixed dimensions. */
  .file-upload__grid_preview > [class*="col-"] { flex: 0 0 100%; max-width: 100%; }
  .card[style*="height: 550px"] { height: auto !important; min-height: 0; }
  .card[style*="height: 550px"] .mt-auto { margin-top: 2rem !important; }
  .depoimento { width: 100%; }
  /* Living Room gallery/lightbox and legacy registration cards. */
  .img-choose { min-width: 0; width: 100%; height: auto; max-height: 18rem; object-fit: cover; }
  .image-gallery__size { width: min(100%, 10rem); height: auto; aspect-ratio: 1; object-fit: cover; }
  .s-modal { width: calc(100vw - 1.5rem); height: auto; max-height: calc(100dvh - 1.5rem); left: .75rem; top: .75rem; overflow: auto; }
  .s-modal__content { height: calc(100dvh - 1.5rem); }
  #modal_img { width: auto; max-width: 92vw; max-height: 82dvh; object-fit: contain; }
  .main-container { width: 100%; grid-template-columns: 1fr; }
  .room-sidebar { border-right: 0; border-bottom: 1px solid #ccc; max-height: 45dvh; overflow-y: auto; }
  .room-container__msg, .room-container__preview-img { min-height: 55dvh; height: 55dvh; }
  .panel-grid-areas { grid-template-columns: 1fr; }
  .panel-grid-areas--crush-gallery--mobile-compact { margin-top: -80px; }
  /* Pull the launcher into the inherited mobile header clearance, leaving an 8px visual gap. */
  .publication-compose-card--mobile-compact {
    flex: 0 0 100vw !important;
    max-width: 100vw !important;
    width: 100vw !important;
    margin-top: -88px;
    margin-right: 0 !important;
    margin-left: calc(50% - 50vw) !important;
  }
  /* Cancel inherited composer spacing so the first post starts 8px below the launcher. */
  .post-feed { display: grid; grid-template-columns: minmax(0, 1fr); flex: 0 0 calc(100vw - 1rem) !important; width: calc(100vw - 1rem) !important; max-width: calc(100vw - 1rem) !important; min-width: 0; margin: -32px 0 0; margin-left: calc(50% - 50vw + 12px) !important; padding: 0; }
  .post-feed > .publication-feed__card { width: 100% !important; max-width: 100% !important; min-width: 0; margin-bottom: 2px !important; }
  .publication-feed__card .card-body, .publication-feed__card .carousel, .publication-feed__card .carousel-inner, .publication-feed__card .carousel-item { max-width: 100%; min-width: 0; width: 100%; }
  .publication-feed__card .postagem { overflow-wrap: anywhere; min-width: 0; width: 100%; }
  .crushes-gallery { padding: 1rem 8px; gap: 3px; align-items: center; }
  .crushes-gallery .item { flex: 0 0 7rem; }
  .crushes-gallery .item { margin-right: 0 !important; margin-bottom: 0 !important; }
  .crush-singles-list__item { flex: 0 0 50%; max-width: 50%; }
  .super-cupids-gallery__avatar { width: 2rem; height: 2rem; flex-basis: 2rem; }
  .super-cupids-gallery__avatar + .super-cupids-gallery__avatar { margin-left: -.65rem; }
  .card[style*="width: 400px"] { width: 100% !important; max-width: 25rem; }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .app-search { margin-left: 1rem; width: min(42vw, 22rem); }
  .panel-grid-areas--centered { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767.98px) {
  .container { width: 100%; padding-right: 1rem; padding-left: 1rem; }
  .row { margin-right: -.5rem; margin-left: -.5rem; }
  .row > [class*="col-"] { padding-right: .5rem; padding-left: .5rem; }
  .offset-1, .offset-2, .offset-3, .offset-4, .offset-5, .offset-6 { margin-left: 0; }
  .ml-1, .ml-2, .ml-3, .ml-4, .ml-5 { margin-left: 0 !important; }
  .mr-1, .mr-2, .mr-3, .mr-4, .mr-5 { margin-right: 0 !important; }
  .mt-5 { margin-top: 2rem !important; }
  .p-5 { padding: 1.25rem !important; }
  .form-row > .form-group { margin-bottom: 1rem; }
  .app-actions > .btn, .app-actions > button, .registration-submit { width: 100%; }
  .modal-footer { flex-wrap: wrap; gap: .5rem; }
  .modal-footer .btn, .modal-footer button { flex: 1 1 100%; }
  .scrolling-wrapper-v { max-height: none !important; overflow-y: visible; }
  .main-container { display: block; }
  .room-sidebar { border-right: 0; border-bottom: 1px solid #ccc; max-height: 38dvh; overflow-y: auto; }
  .room-container__msg { min-height: 62dvh; height: 62dvh; }
  .room-sidebar-header { gap: .5rem; }
  .room-sidebar-get-notified { grid-template-columns: 40px minmax(0, 1fr); }
  .msg-header { padding: 0 .65rem; gap: .4rem; }
  .room-sidebar-groups-g-time { padding: .25rem; }
  .publication-layout { width: 100%; margin-right: 0; margin-left: 0; }
  .publication-layout > * { min-width: 0; }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .panel-grid-areas { grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr); }
  .main-container { grid-template-columns: minmax(260px, 1fr) minmax(0, 2fr); }
  .modal-dialog.modal-lg { max-width: calc(100vw - 3rem); }
}

@media (min-width: 992px) {
  .panel-grid-areas { grid-template-columns: minmax(0, 3fr) minmax(240px, 1fr); }
  .panel-grid-areas--centered { grid-template-columns: minmax(0, 1fr); }
}

.chat-nav-link { position: relative; display: inline-flex; align-items: center; justify-content: center; }
.chat-nav-link__badge { position: absolute; z-index: 2; top: -2px; right: -7px; display: block; min-width: 21px; height: 21px; padding: 0 5px; color: #fff; line-height: 21px; font-size: .72rem; }

/* Community: photo-first social discovery cards. */
.community-members { width: min(100% - 2rem, 1180px); margin: 2rem auto; }
.community-members__header { display: flex; align-items: center; gap: .4rem; margin: 0 0 1rem; }
.community-members__header h1 { margin: 0; color: #343a40; font-size: clamp(1.25rem, 2vw, 1.5rem); font-weight: 700; }
.community-members__help { display: inline-grid; place-items: center; min-width: 36px; min-height: 36px; padding: .35rem; border: 0; background: transparent; border-radius: 50%; }
.community-members__help img { width: 20px; height: 20px; }
.community-members__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(205px, 1fr)); gap: 1rem; }
.community-member-card { min-width: 0; overflow: hidden; border-radius: 22px; box-shadow: 0 8px 22px rgba(20, 26, 38, .14); background: #dfe3ea; transition: transform .18s ease, box-shadow .18s ease; }
.community-member-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(20, 26, 38, .2); }
.community-member-card__profile-link { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; color: #fff; text-decoration: none; isolation: isolate; }
.community-member-card__media, .community-member-card__avatar, .community-member-card__gradient { position: absolute; inset: 0; width: 100%; height: 100%; }
.community-member-card__avatar { object-fit: cover; object-position: center 25%; background: linear-gradient(145deg, #d9dde4, #b9c0cc); }
.community-member-card__gradient { z-index: 1; background: linear-gradient(to top, rgba(0, 0, 0, .78) 0%, rgba(0, 0, 0, .36) 33%, transparent 62%); }
.community-member-card__top-actions { position: absolute; z-index: 2; inset: .7rem .75rem auto; display: flex; align-items: center; justify-content: space-between; text-shadow: 0 1px 3px rgba(0, 0, 0, .55); }
.community-member-card__trophy, .community-member-card__more { display: grid; place-items: center; min-width: 32px; min-height: 32px; border-radius: 50%; background: rgba(0, 0, 0, .25); color: #fff; font-size: 1rem; }
.community-member-card__more { font-size: 1.55rem; line-height: 1; }
.community-member-card__identity { position: absolute; z-index: 2; right: 1rem; bottom: 1rem; left: 1rem; color: #fff; text-shadow: 0 1px 4px rgba(0, 0, 0, .65); }
.community-member-card__identity h2 { margin: 0; color: inherit; font-size: 1.2rem; font-weight: 700; line-height: 1.2; }
.community-member-card__identity h2 span { font-weight: 500; }
.community-member-card__identity p { margin: .3rem 0 0; color: rgba(255, 255, 255, .88); font-size: .85rem; }
.community-members__empty { grid-column: 1 / -1; padding: 3rem 1rem; color: #6c757d; text-align: center; }
.community-members__pagination { display: flex; justify-content: center; margin-top: 1.5rem; }
@media (max-width: 575.98px) { .community-members { width: calc(100% - 1rem); margin: 1rem auto; } .community-members__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; } .community-member-card { border-radius: 18px; } .community-member-card__top-actions { inset: .5rem .55rem auto; } .community-member-card__identity { right: .7rem; bottom: .7rem; left: .7rem; } .community-member-card__identity h2 { font-size: 1rem; } .community-member-card__identity p { font-size: .73rem; } }
@media (min-width: 1280px) { .community-members__grid { grid-template-columns: repeat(3, 325.98px); column-gap: 2rem; row-gap: 1rem; } .community-member-card { width: 325.98px; } .community-member-card__profile-link { aspect-ratio: 1 / 1; } }

/* Crushes Single: photo-led discovery cards. */
.crush-singles-section { margin-top: 1.5rem; }
.crush-singles-section__header { display: flex; align-items: center; gap: .35rem; margin: 0 0 1rem; color: #495057; }
.crush-singles-section__help { display: inline-grid; place-items: center; min-width: 36px; min-height: 36px; padding: .35rem; border: 0; background: transparent; border-radius: 50%; }
.crush-singles-section__help img { width: 20px; height: 20px; }
.crush-singles-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; padding-bottom: 1.5rem; }
.crush-single-card { min-width: 0; overflow: hidden; border-radius: 20px; background: #dfe3ea; box-shadow: 0 8px 22px rgba(20, 26, 38, .14); transition: transform .18s ease, box-shadow .18s ease; }
.crush-single-card:hover { transform: scale(1.03); box-shadow: 0 14px 30px rgba(20, 26, 38, .22); }
.crush-single-card__profile-link { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; color: #fff; text-decoration: none; isolation: isolate; }
.crush-single-card__avatar { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 25%; background: linear-gradient(145deg, #d9dde4, #b9c0cc); transition: filter .18s ease, transform .18s ease; }
.crush-single-card:hover .crush-single-card__avatar { filter: brightness(.88); transform: scale(1.025); }
.crush-single-card__gradient { position: absolute; z-index: 1; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, .8) 0%, rgba(0, 0, 0, .35) 33%, transparent 64%); }
.crush-single-card__indicator { position: absolute; z-index: 2; top: .7rem; right: .7rem; display: grid; place-items: center; min-width: 32px; min-height: 32px; border-radius: 50%; background: rgba(0, 0, 0, .24); font-size: .95rem; text-shadow: 0 1px 3px rgba(0, 0, 0, .55); }
.crush-single-card__identity { position: absolute; z-index: 2; right: .9rem; bottom: .9rem; left: .9rem; color: #fff; text-shadow: 0 1px 4px rgba(0, 0, 0, .7); }
.crush-single-card__identity h3 { margin: 0; color: inherit; font-size: 1.08rem; font-weight: 700; line-height: 1.2; }
.crush-single-card__identity h3 span { font-weight: 500; }
.crush-single-card__identity p { margin: .3rem 0 0; color: rgba(255, 255, 255, .88); font-size: .82rem; }
.crush-singles-list__empty { grid-column: 1 / -1; padding: 2rem 1rem; color: #6c757d; text-align: center; }
@media (min-width: 576px) and (max-width: 991.98px) { .crush-singles-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .crush-singles-section { width: calc(100% - 1rem); margin: 1rem auto 0; } .crush-singles-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; } .crush-single-card { border-radius: 18px; } .crush-single-card__indicator { top: .5rem; right: .5rem; min-width: 29px; min-height: 29px; } .crush-single-card__identity { right: .7rem; bottom: .7rem; left: .7rem; } .crush-single-card__identity h3 { font-size: 1rem; } .crush-single-card__identity p { font-size: .74rem; } }
@media (min-width: 1280px) { .crush-singles-list { grid-template-columns: repeat(3, 325.98px); column-gap: 2rem; row-gap: 1rem; } .crush-single-card { width: 325.98px; } .crush-single-card__profile-link { aspect-ratio: 1 / 1; } }

/* Living Room: profile-led layout with clear actions and content modules. */
.livingroom-page { width: min(100%, 1120px); margin: 2rem auto; }
.livingroom-profile { position: relative; display: block; padding: 0; overflow: hidden; border: 1px solid #e8e4ec; border-radius: 24px; background: #fff; box-shadow: 0 10px 28px rgba(35, 29, 48, .08); }
.livingroom-profile__cover { height: 230px; background: linear-gradient(120deg, #6f42c1, #b9a7df 52%, #e8d3c1); }
.livingroom-profile__avatar-wrap { position: absolute; z-index: 2; top: 158px; left: 2rem; margin: 0; }
.livingroom-profile__avatar { width: 136px; height: 136px; object-fit: cover; border: 5px solid #fff; box-shadow: 0 8px 22px rgba(30, 37, 48, .2); }
.livingroom-profile__details { width: 100%; min-height: 180px; padding: 4.6rem 2rem 1.5rem 11.5rem; border: 0 !important; border-radius: 0; background: #fff; }
.livingroom-profile__actions { position: absolute; top: 255px; right: 2rem; width: auto; margin: 0 !important; }
.livingroom-profile__actions [class*="col-"] { max-width: 100%; }
.livingroom-profile__actions button { min-height: 44px; padding-inline: 1.25rem; text-align: center; }
.livingroom-profile__identity { align-items: center; gap: .75rem; color: #303643; }
.livingroom-profile__identity .h5 { margin: 0; font-size: 1.65rem; font-weight: 700; }
.livingroom-profile__identity > div:last-child { color: #6b7280; font-size: .95rem; }
.livingroom-profile__status { display: inline-block; margin-top: .75rem; padding: .32rem .62rem; border-radius: 999px; background: #f1edfa; color: #6f42c1; font-size: .78rem; font-weight: 800; }
.livingroom-sections { width: min(100%, 1120px); margin: 1.5rem auto 0; }
.livingroom-section { display: flex; flex-direction: column; margin-bottom: 1rem; }
.livingroom-section__label { margin: 0 0 .55rem; color: #3a3542; font-weight: 800; }
.livingroom-section__video, .livingroom-section__bio { overflow: hidden; border: 1px solid #e8e4ec; border-radius: 18px; box-shadow: 0 7px 22px rgba(30, 37, 48, .08); }
.livingroom-section__bio { display: flex; min-height: 235px; margin: 0; background: #fff; }
.livingroom-section__bio > * { width: 100%; }
.livingroom-section__gallery { padding-top: 1.25rem; border: 0 !important; }
.livingroom-section__gallery img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 12px; }
@media (max-width: 767.98px) { .livingroom-profile__cover { height: 154px; } .livingroom-page { width: calc(100% - 1rem); margin: 1rem auto; padding: 0; } .livingroom-page > .row { padding-right: .5rem !important; padding-left: .5rem !important; } .livingroom-profile { flex-basis: 100%; max-width: 100%; } .livingroom-profile__avatar-wrap { top: 108px; left: 1.25rem; } .livingroom-profile__avatar { width: 94px; height: 94px; border-width: 4px; } .livingroom-profile__details { min-height: 0; padding: 3.7rem 1.1rem 1.1rem; } .livingroom-profile__actions { position: static; display: flex; justify-content: center; margin: 1rem 0 0 !important; } .livingroom-profile__actions > [class*="col-"] { flex: 0 0 auto; width: 100%; } .livingroom-profile__actions button { display: inline-flex !important; width: calc(50% - .3rem) !important; align-items: center; justify-content: center; text-align: center; margin: 0 .15rem .3rem; } .livingroom-profile__identity { flex-direction: column; align-items: flex-start; gap: .2rem; text-align: left; } .livingroom-profile__identity .h5 { font-size: 1.35rem; } .livingroom-profile__identity > div:last-child { margin: 0 !important; } .livingroom-sections { width: calc(100% - 1rem); margin-top: 1rem; } .livingroom-section__video { aspect-ratio: 16 / 9; padding-bottom: 0; height: auto; } .livingroom-section__video .video-js, .livingroom-section__video video { width: 100%; height: 100%; } .livingroom-section__bio { min-height: 160px; } }

/* Mobile fixed header: notification and ChatCrush actions remain adjacent and touch-sized. */
.mobile-header-actions { display: none; }
.crush-gallery__chat-link { display: block; color: inherit; }
.crush-gallery__chat-link:focus-visible { outline: 3px solid #705cf6; outline-offset: 3px; }
@media (max-width: 767.98px) { .mobile-header-actions { display: inline-flex; position: absolute; z-index: 2; top: .5rem; right: .65rem; align-items: center; gap: .2rem; } .mobile-header-actions__button { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; min-height: 44px; padding: .45rem; border: 0; border-radius: 50%; background: transparent; color: #343a40; } .mobile-header-actions__button:hover, .mobile-header-actions__button:focus-visible { background: #f3efff; outline: 2px solid #705cf6; outline-offset: 1px; } .mobile-header-actions__button svg, .mobile-header-actions__button img { width: 22px; height: 22px; object-fit: contain; } .mobile-header-actions__badge { position: absolute; top: 0; right: -1px; min-width: 18px; height: 18px; padding: 0 4px; line-height: 18px; font-size: .65rem; } .mobile-header-actions .chat-nav-link__badge { top: 0; right: -1px; } .mobile-notifications-menu { width: min(20rem, calc(100vw - 1rem)); max-height: 60dvh; overflow-y: auto; } }
