/*
 * Tailwind-style responsive layer for PinkVision.
 * Breakpoints follow Tailwind defaults:
 * sm 640px, md 768px, lg 1024px, xl 1280px, 2xl 1536px.
 * This file intentionally avoids Tailwind preflight/reset so the WordPress theme keeps its current UI.
 */

:root {
  --tw-screen-sm: 640px;
  --tw-screen-md: 768px;
  --tw-screen-lg: 1024px;
  --tw-screen-xl: 1280px;
  --tw-screen-2xl: 1536px;
  --pvw-rsp-gutter: clamp(14px, 3vw, 28px);
  --pvw-rsp-wide: min(1680px, calc(100vw - (var(--pvw-rsp-gutter) * 2)));
  --pvw-rsp-card-radius: 18px;
}

img,
video,
canvas,
svg {
  max-width: 100%;
}

input,
select,
textarea,
button {
  max-width: 100%;
}

.pvw-barba-wrapper,
.pvw-main {
  min-width: 0;
}

.pvw-container,
.pvw-home-wide-main > .pvw-container,
.pvw-home-wide-main .pvw-section > .pvw-container,
.pvw-ranking-home-shell .pvw-home-feed-section > .pvw-container,
.pvw-account-home-shell .pvw-home-feed-section .pvw-container,
body.search .pvw-container,
body.archive .pvw-container,
body.single .pvw-container,
body.page .pvw-container {
  width: var(--pvw-rsp-wide);
}

.pvw-section-head,
.pvw-account-panel-head,
.pvw-ranking-panel-head {
  min-width: 0;
}

.pvw-section-title,
.pvw-card-info h3,
.pvw-copy-card h3,
.pvw-ranking-row strong,
.pvw-account-table strong {
  overflow-wrap: anywhere;
}

/* 2xl and xl: wide PC keeps the mature layout but avoids over-stretching text blocks. */
@media (min-width: 1280px) {
  .pvw-home-wide-main .pvw-masonry,
  body.home .pvw-home-wide-main .pvw-masonry {
    grid-template-columns: repeat(auto-fill, minmax(178px, 1fr));
  }

  .pvw-copy-flow-grid,
  .pvw-ranking-flow-grid,
  .pvw-account-flow-grid {
    max-width: 1480px;
  }

  .pvw-page-hero .pvw-container,
  .pvw-archive-layout,
  body.search > .pvw-container,
  .pvw-single {
    max-width: 1480px;
  }

  .pvw-post-grid {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  }

  .pvw-xhs-modal-card {
    width: min(1280px, calc(100vw - 56px));
  }
}

/* lg: tablet landscape and small desktop. */
@media (max-width: 1279px) {
  .pvw-home-wide-shell,
  .pvw-ranking-home-shell,
  .pvw-account-home-shell,
  .pvw-vip-home-shell {
    grid-template-columns: 148px minmax(0, 1fr);
  }

  .pvw-home-wide-sidebar {
    padding-inline: 12px;
  }

  .pvw-home-wide-sidebar nav a {
    min-height: 40px;
    padding-inline: 10px;
    font-size: 13px;
  }

  .pvw-home-wide-main,
  .pvw-ranking-home-shell .pvw-home-wide-main,
  .pvw-account-home-shell .pvw-home-wide-main,
  .pvw-vip-home-shell .pvw-home-wide-main {
    padding-inline: 18px;
  }

  .pvw-header-inner {
    gap: 14px;
  }

  .pvw-nav a {
    padding-inline: 10px;
  }

  .pvw-search {
    width: clamp(170px, 18vw, 220px);
  }

  .pvw-archive-layout {
    grid-template-columns: 220px minmax(0, 1fr);
  }

  .pvw-home-wide-topbar,
  .pvw-account-topbar,
  .pvw-rank-topbar {
    grid-template-columns: minmax(240px, 1fr) auto auto;
    gap: 10px;
  }

  .pvw-feed-top-ui,
  .pvw-ranking-grid,
  .pvw-account-duo,
  .pvw-account-flow-panel .pvw-account-duo,
  .pvw-xhs-modal-card {
    grid-template-columns: 1fr;
  }

  .pvw-feed-banner-ads {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pvw-ranking-board-grid,
  .pvw-account-task-grid,
  .pvw-account-mini-stats,
  .pvw-account-chip-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pvw-post-grid {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  }

  .pvw-single-layout {
    grid-template-columns: minmax(0, 1fr) 280px;
  }
}

/* md: tablets and portrait layouts. */
@media (max-width: 1023px) {
  .pvw-home-wide-shell,
  .pvw-ranking-home-shell,
  .pvw-account-home-shell,
  .pvw-vip-home-shell {
    display: block;
  }

  .pvw-site-header {
    position: sticky;
    top: 0;
  }

  .pvw-header-inner {
    min-height: 66px;
  }

  .pvw-nav {
    max-height: calc(100vh - 94px);
    overflow-y: auto;
  }

  .pvw-nav ul {
    width: 100%;
  }

  .pvw-page-hero {
    padding: 58px 0 28px;
  }

  .pvw-page-desc {
    max-width: 100%;
  }

  .pvw-archive-layout,
  .pvw-single-layout {
    grid-template-columns: 1fr;
  }

  .pvw-sidebar,
  .pvw-single-aside {
    position: static;
  }

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

  .pvw-home-wide-sidebar,
  .pvw-account-wide-sidebar,
  .pvw-ranking-home-shell .pvw-home-wide-sidebar {
    position: relative;
    top: auto;
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid rgba(248, 95, 142, .12);
  }

  .pvw-home-wide-sidebar nav,
  .pvw-account-wide-sidebar .pvw-account-site-nav,
  .pvw-account-wide-sidebar .pvw-account-nav {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: none;
  }

  .pvw-home-wide-sidebar nav::-webkit-scrollbar,
  .pvw-account-wide-sidebar .pvw-account-site-nav::-webkit-scrollbar,
  .pvw-account-wide-sidebar .pvw-account-nav::-webkit-scrollbar {
    display: none;
  }

  .pvw-home-wide-sidebar nav a,
  .pvw-account-wide-sidebar a {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .pvw-home-side-card,
  .pvw-home-sidebar-bottom {
    display: none;
  }

  .pvw-home-wide-topbar,
  .pvw-account-topbar,
  .pvw-rank-topbar {
    position: sticky;
    top: 0;
    z-index: 40;
    margin-inline: calc(var(--pvw-rsp-gutter) * -1);
    padding-inline: var(--pvw-rsp-gutter);
  }

  .pvw-home-wide-topbar > a:not(.pvw-home-wide-user),
  .pvw-account-topbar > a:not(.pvw-rank-user),
  .pvw-rank-topbar > a {
    display: none;
  }

  .pvw-masonry,
  .pvw-home-wide-main .pvw-masonry,
  body.home .pvw-home-wide-main .pvw-masonry {
    grid-template-columns: repeat(auto-fill, minmax(156px, 1fr));
  }

  .pvw-post-grid {
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 14px;
  }

  .pvw-copy-card-link,
  .pvw-home-feed-grid[data-feed-type="copy"] .pvw-copy-card-link {
    grid-template-columns: 1fr;
  }

  .pvw-xhs-modal,
  .pvw-wallpaper-detail-modal {
    padding: 12px;
  }

  .pvw-xhs-modal-card,
  .pvw-wallpaper-detail-modal .pvw-xhs-modal-card {
    max-height: calc(100vh - 24px);
    overflow: auto;
    border-radius: 22px;
  }

  .pvw-xhs-gallery,
  .pvw-xhs-info-card {
    min-width: 0;
  }

  .pvw-auth-dialog {
    grid-template-columns: 1fr;
    width: min(520px, calc(100vw - 28px));
    min-height: 0;
    max-height: calc(100vh - 28px);
    overflow: auto;
  }

  .pvw-auth-visual {
    min-height: 210px;
  }
}

/* sm and below: phone layout. */
@media (max-width: 767px) {
  :root {
    --pvw-rsp-gutter: 16px;
    --pvw-rsp-card-radius: 16px;
  }

  body {
    min-width: 0;
    overflow-x: hidden;
  }

  .pvw-main {
    overflow-x: clip;
  }

  .pvw-container,
  .pvw-home-wide-main > .pvw-container,
  .pvw-home-wide-main .pvw-section > .pvw-container,
  body.search .pvw-container,
  body.archive .pvw-container,
  body.single .pvw-container,
  body.page .pvw-container {
    width: calc(100vw - (var(--pvw-rsp-gutter) * 2));
  }

  .pvw-section {
    padding-block: 22px;
  }

  .pvw-site-header {
    background: rgba(255, 247, 251, .92);
  }

  .pvw-header-inner {
    width: calc(100vw - (var(--pvw-rsp-gutter) * 2));
    gap: 10px;
    min-height: 60px;
  }

  .pvw-logo-text strong {
    font-size: 16px;
  }

  .pvw-logo-mark {
    width: 30px;
    height: 30px;
  }

  .pvw-menu-toggle {
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
  }

  .pvw-nav {
    left: var(--pvw-rsp-gutter);
    right: var(--pvw-rsp-gutter);
    top: 68px;
  }

  .admin-bar .pvw-nav {
    top: 104px;
  }

  .pvw-nav ul {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .pvw-nav a {
    min-height: 40px;
    padding-inline: 10px;
    font-size: 13px;
  }

  .pvw-page-hero {
    padding: 38px 0 20px;
  }

  .pvw-section-head,
  .pvw-account-panel-head,
  .pvw-ranking-panel-head {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .pvw-section-title,
  .pvw-ranking-hero-card h1,
  .pvw-account-hero-card h1,
  .pvw-page-hero h1,
  .pvw-page-title,
  .pvw-single-title {
    font-size: clamp(24px, 7vw, 34px);
    line-height: 1.15;
  }

  .pvw-page-desc {
    margin-top: 10px;
    font-size: 14px;
    line-height: 1.75;
  }

  .pvw-archive-layout {
    gap: 16px;
    padding-bottom: 32px;
  }

  .pvw-sidebar {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .pvw-filter-card {
    padding: 16px;
    border-radius: 18px;
  }

  .pvw-filter-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pvw-filter-list a {
    min-height: 38px;
    padding-inline: 10px;
  }

  .pvw-tabs,
  .pvw-ranking-module-nav,
  .pvw-douyin-filterbar,
  .pvw-feed-tagbar {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: flex-start;
    padding-bottom: 4px;
    scrollbar-width: none;
  }

  .pvw-tabs::-webkit-scrollbar,
  .pvw-ranking-module-nav::-webkit-scrollbar,
  .pvw-douyin-filterbar::-webkit-scrollbar,
  .pvw-feed-tagbar::-webkit-scrollbar {
    display: none;
  }

  .pvw-tab,
  .pvw-douyin-filterbar button,
  .pvw-ranking-module-nav button {
    flex: 0 0 auto;
    min-height: 36px;
    white-space: nowrap;
  }

  .pvw-masonry,
  .pvw-home-wide-main .pvw-masonry,
  body:not(.home) .pvw-home-wide-main .pvw-masonry {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .pvw-wall-card,
  .pvw-feature-card,
  .pvw-topic-card,
  .pvw-copy-card,
  .pvw-ranking-card,
  .pvw-account-flow-panel {
    border-radius: var(--pvw-rsp-card-radius);
  }

  .pvw-card-info {
    left: 10px;
    right: 10px;
    max-width: calc(100% - 20px);
  }

  .pvw-card-info h3 {
    font-size: 13px;
    line-height: 1.3;
  }

  .pvw-wall-actions {
    right: 9px;
    bottom: 9px;
  }

  .pvw-round-action {
    width: 32px;
    height: 32px;
  }

  .pvw-copy-flow-grid,
  .pvw-home-feed-grid[data-feed-type="copy"] {
    grid-template-columns: 1fr !important;
  }

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

  .pvw-content-card,
  .pvw-single-main,
  .pvw-single-aside {
    border-radius: 18px;
  }

  .pvw-content-card .pvw-single-body,
  .pvw-single-body,
  .pvw-single-aside {
    padding: 18px;
  }

  .pvw-single {
    padding: 24px 0 42px;
  }

  .pvw-single-cover img {
    max-height: 70vh;
  }

  .pvw-entry-content {
    font-size: 15px;
    line-height: 1.82;
  }

  .pvw-pagination {
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 24px;
  }

  .pvw-pagination .page-numbers {
    min-width: 34px;
    height: 34px;
    padding-inline: 10px;
    font-size: 13px;
  }

  .pvw-copy-card-link,
  .pvw-copy-flow-grid .pvw-copy-card-link,
  .pvw-home-feed-grid[data-feed-type="copy"] .pvw-copy-card-link {
    grid-template-columns: 1fr !important;
    padding: 14px;
  }

  .pvw-copy-card-media,
  .pvw-copy-flow-grid .pvw-copy-card-media {
    aspect-ratio: 16 / 10;
    min-height: 150px;
  }

  .pvw-copy-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pvw-ranking-hero-card,
  .pvw-account-hero-card,
  .pvw-account-login-hero,
  .pvw-vip-hero-card {
    padding: 22px;
    border-radius: 22px;
  }

  .pvw-ranking-board-grid,
  .pvw-ranking-flow-grid,
  .pvw-account-mini-stats,
  .pvw-account-chip-row,
  .pvw-account-task-grid,
  .pvw-account-level-roadmap,
  .pvw-account-flow-panel .pvw-account-overview,
  .pvw-account-flow-panel .pvw-account-form-grid,
  .pvw-account-flow-panel .pvw-verify-grid,
  .pvw-account-flow-panel .pvw-history-grid,
  .pvw-account-flow-panel .pvw-account-duo,
  .pvw-account-flow-panel .pvw-points-actions {
    grid-template-columns: 1fr !important;
  }

  .pvw-ranking-row {
    grid-template-columns: auto 52px minmax(0, 1fr);
    gap: 10px;
  }

  .pvw-ranking-row em,
  .pvw-ranking-row .pvw-ranking-score {
    grid-column: 3;
  }

  .pvw-account-table,
  .pvw-account-table tbody,
  .pvw-account-table tr,
  .pvw-account-table td,
  .pvw-account-table th {
    display: block;
    width: 100%;
  }

  .pvw-account-table tr {
    padding: 12px 0;
    border-bottom: 1px solid rgba(248, 95, 142, .12);
  }

  .pvw-account-inline-edit,
  .pvw-account-inline-edit label,
  .pvw-account-inline-edit input,
  .pvw-account-inline-edit select,
  .pvw-account-inline-edit textarea {
    width: 100%;
    min-width: 0;
  }

  .pvw-xhs-modal-card,
  .pvw-wallpaper-detail-modal .pvw-xhs-modal-card {
    width: calc(100vw - 20px);
    max-height: calc(100vh - 20px);
    border-radius: 20px;
  }

  .pvw-xhs-gallery {
    min-height: 320px;
  }

  .pvw-xhs-actions-row,
  .pvw-xhs-related-track {
    grid-template-columns: 1fr;
  }

  .pvw-auth-modal {
    padding: 12px;
  }

  .pvw-auth-dialog {
    width: 100%;
    border-radius: 22px;
  }

  .pvw-auth-panel {
    padding: 24px;
  }

  .pvw-auth-social > div {
    grid-template-columns: 1fr;
  }

  .pvw-feed-banner-ads,
  .pvw-feed-top-ui,
  .pvw-home-ad-grid {
    grid-template-columns: 1fr;
  }

  .pvw-site-footer,
  .pvw-footer-bottom {
    text-align: center;
  }
}

/* xs: narrow phones. */
@media (max-width: 479px) {
  :root {
    --pvw-rsp-gutter: 14px;
  }

  .pvw-masonry,
  .pvw-home-wide-main .pvw-masonry,
  body:not(.home) .pvw-home-wide-main .pvw-masonry {
    gap: 10px;
  }

  body:not(.home) .pvw-wall-card,
  body:not(.home) .pvw-feed-card {
    min-height: 0;
    aspect-ratio: 3 / 4.4;
  }

  .pvw-section-title,
  .pvw-ranking-hero-card h1,
  .pvw-account-hero-card h1,
  .pvw-page-hero h1,
  .pvw-page-title,
  .pvw-single-title {
    font-size: clamp(22px, 7.2vw, 30px);
  }

  .pvw-post-grid,
  .pvw-filter-list {
    grid-template-columns: 1fr;
  }

  body.search .pvw-post-grid,
  body.archive .pvw-post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pvw-content-card .pvw-single-body,
  .pvw-single-body,
  .pvw-single-aside,
  .pvw-filter-card {
    padding: 14px;
  }

  .pvw-card-info h3,
  .pvw-copy-card h3 {
    font-size: 13px;
  }

  .pvw-copy-card-text {
    font-size: 14px;
    line-height: 1.85;
  }

  .pvw-ranking-row {
    grid-template-columns: auto 46px minmax(0, 1fr);
  }

  .pvw-xhs-gallery {
    min-height: 260px;
  }

  .pvw-xhs-info-card,
  .pvw-account-flow-panel,
  .pvw-ranking-card {
    padding: 14px;
  }
}
