/*
 * T70 module layout v5
 * Purpose: keep every original module/card style, but rebuild page placement so
 * home/list/detail/play modules no longer float into the wrong column or leave
 * large empty gaps with real Chinese data.
 */

/* ---------- Global geometry ---------- */
html,body{max-width:100%;overflow-x:hidden}
*,*:before,*:after{box-sizing:border-box}
.site-shell,.site-main,.home-unique,[class*="list-unique-"],[class*="detail-unique-"],[class*="play-unique-"]{min-width:0;max-width:100%}
.site-main{width:min(1400px,calc(100% - 32px))!important;margin-inline:auto!important;padding-inline:0!important}
.home-unique,[class*="list-unique-"],[class*="detail-unique-"],[class*="play-unique-"]{width:100%!important;margin-inline:auto!important}

/* Real Chinese titles must not collapse to one-character columns. */
.media-card,.media-card *,.theme-section,.theme-rank,.compact-board,.detail-unit,.play-unit{writing-mode:horizontal-tb!important;word-break:normal!important;overflow-wrap:anywhere}
.media-card,.theme-section,.theme-rank,.compact-board,.detail-unit,.play-unit{min-width:0!important;max-width:100%!important}
.media-card>a,.media-card>div,.media-card>section,.media-card>article,.media-card figure{min-width:0!important;max-width:100%!important}
.media-card img,.detail-poster-box img,.hero-primary img{display:block;width:100%!important;max-width:100%!important;object-fit:cover}

/* Stable card grids based on the real width of each module. */
.theme-cards,.list-cards,.section-cards,.directory-cards,.matrix-cards,.window-cards,.lane-cards{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))!important;
  grid-auto-flow:row!important;
  grid-auto-columns:auto!important;
  gap:16px!important;
  width:100%!important;
  max-width:100%!important;
  overflow:visible!important;
}
.card-variant-3,.card-variant-6,.card-variant-11,.card-variant-14,.card-variant-15,.card-variant-16{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))!important;
}
.news-card>a{grid-template-columns:110px minmax(0,1fr)!important}
.task-card>div{grid-template-columns:120px minmax(0,1fr)!important}
.station-card,.channel-card,.diagonal-card,.wave-card{grid-template-columns:minmax(100px,34%) minmax(0,1fr)!important}

/* ---------- HOME: flatten decorative outer shells, keep the actual modules ---------- */
.home-unique{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:22px!important;
  align-items:start!important;
}
.home-unique>*{grid-column:1!important;width:100%!important;min-width:0!important;max-width:100%!important;margin:0!important}

/* Many original pages put a very tall module beside a short module. Flatten only
   the outer layout wrappers (two levels), then restore the actual content modules. */
.home-unique>:where(header,main,footer,aside,section,div,nav):not(.theme-hero):not(.theme-section):not(.theme-rank):not(.directory-board):not(.matrix-board):not(.lane-board):not(.window-board):not(.pair-board):not(.compact-board):not(.timeline-board),
.home-unique>:where(header,main,footer,aside,section,div,nav):not(.theme-hero):not(.theme-section):not(.theme-rank):not(.directory-board):not(.matrix-board):not(.lane-board):not(.window-board):not(.pair-board):not(.compact-board):not(.timeline-board) > :where(header,main,footer,aside,section,div,nav):not(.theme-hero):not(.theme-section):not(.theme-rank):not(.directory-board):not(.matrix-board):not(.lane-board):not(.window-board):not(.pair-board):not(.compact-board):not(.timeline-board){display:contents!important}

/* Restore real modules after display:contents. */
.home-unique .theme-hero,.home-unique .theme-section,.home-unique .theme-rank,
.home-unique .directory-board,.home-unique .matrix-board,.home-unique .lane-board,
.home-unique .window-board,.home-unique .pair-board,.home-unique .compact-board,
.home-unique .timeline-board{display:block!important;width:100%!important;max-width:100%!important;margin:0 0 22px!important;min-width:0!important}
.home-unique .theme-hero{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(260px,340px)!important;gap:20px!important;align-items:stretch!important}
.home-unique .hero-primary{min-width:0!important;min-height:420px}
.home-unique .hero-selector{min-width:0!important;max-height:420px!important;overflow:auto!important}
.home-unique .directory-board,.home-unique .matrix-board,.home-unique .window-board{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px!important;align-items:start!important
}
.home-unique .lane-board{display:grid!important;grid-template-columns:1fr!important;gap:20px!important}
.home-unique .pair-board>div{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important}
.home-unique .theme-rank ol,.home-unique .compact-board ul{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0 22px!important}
.home-unique .timeline-board>div{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0 20px!important}
.home-unique .theme-section,.home-unique .theme-rank,.home-unique .compact-board,.home-unique .timeline-board,.home-unique .pair-board,.home-unique .directory-board>article,.home-unique .matrix-board>article,.home-unique .window-cell,.home-unique .lane-board>article{contain:layout paint}

/* ---------- LIST: semantic module placement ---------- */
[class*="list-unique-"]{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(270px,320px)!important;
  grid-template-areas:
    "crumb crumb"
    "heading heading"
    "filter filter"
    "cards rank"
    "pagination rank"
    "recommend recommend"!important;
  gap:20px!important;
  align-items:start!important;
}
/* Flatten only structural wrappers used by the 10 list families. */
[class*="list-unique-"]>:where(header,main,footer,aside,section,article,div),
[class*="list-unique-"] :where(.center-core,.center-orbit,.book-left,.book-right,.panel-one,.panel-two,.panel-three,[class^="zone-"]){display:contents!important}
/* Restore semantic list modules. */
[class*="list-unique-"] .breadcrumb{display:flex!important;grid-area:crumb;min-width:0}
[class*="list-unique-"] .list-heading{display:flex!important;grid-area:heading;min-width:0}
[class*="list-unique-"] .filter-bar{display:flex!important;grid-area:filter;min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap!important}
[class*="list-unique-"] .list-cards{display:grid!important;grid-area:cards;min-width:0}
[class*="list-unique-"] .theme-rank{display:block!important;grid-area:rank;min-width:0;position:static!important}
[class*="list-unique-"] .pagination{display:flex!important;grid-area:pagination;min-width:0}
[class*="list-unique-"] .theme-section{display:block!important;grid-area:recommend;min-width:0}
[class*="list-unique-"] .list-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,185px),1fr))!important}

/* Families retain left/right differences without allowing modules to drift. */
[class*="list-unique-"][class~="unique-rail"],
[class*="list-unique-"][class~="unique-reverse"]{
  grid-template-columns:minmax(270px,320px) minmax(0,1fr)!important;
  grid-template-areas:"crumb crumb" "heading heading" "filter filter" "rank cards" "rank pagination" "recommend recommend"!important
}
[class*="list-unique-"][class~="unique-book"]{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-areas:"crumb crumb" "heading heading" "filter filter" "cards rank" "cards pagination" "recommend recommend"!important
}

/* ---------- DETAIL: semantic module placement ---------- */
[class*="detail-unique-"]{
  display:grid!important;
  grid-template-columns:minmax(240px,310px) minmax(0,1fr) minmax(270px,320px)!important;
  grid-template-areas:
    "poster meta rank"
    "episodes episodes rank"
    "intro intro rank"
    "related related related"!important;
  gap:20px!important;
  align-items:start!important;
}
/* Flatten structural wrappers; semantic detail units are restored below. */
[class*="detail-unique-"]>:where(header,main,footer,aside,section,article,div),
[class*="detail-unique-"] :where(.center-core,.center-orbit,.book-left,.book-right,.panel-one,.panel-two,.panel-three,[class^="zone-"]){display:contents!important}
[class*="detail-unique-"] .detail-unit{display:block!important;min-width:0!important;max-width:100%!important;margin:0!important;align-self:start!important}
[class*="detail-unique-"] .poster-unit{grid-area:poster}
[class*="detail-unique-"] .meta-unit{grid-area:meta}
[class*="detail-unique-"] .episode-unit{grid-area:episodes}
[class*="detail-unique-"] .rank-unit{grid-area:rank}
[class*="detail-unique-"] .intro-unit{grid-area:intro}
[class*="detail-unique-"] .related-unit{grid-area:related}
[class*="detail-unique-"] .detail-poster-box{display:block!important;width:100%!important;max-width:100%!important;margin:0!important;aspect-ratio:2/3;max-height:500px;overflow:hidden}
[class*="detail-unique-"] .detail-poster-box img{height:100%!important}
[class*="detail-unique-"] .detail-meta-box,[class*="detail-unique-"] .content-panel,[class*="detail-unique-"] .theme-rank,[class*="detail-unique-"] .theme-section{height:auto!important;min-height:0!important;max-width:100%!important}
[class*="detail-unique-"] .related-unit .theme-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,155px),1fr))!important}
[class*="detail-unique-"] .theme-episodes{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(100px,1fr))!important;gap:10px!important}

/* Ten page families keep distinct module order but share stable widths. */
[class*="detail-unique-"][class~="unique-toplower"]{
  grid-template-areas:"poster meta meta" "episodes episodes rank" "intro intro rank" "related related related"!important
}
[class*="detail-unique-"][class~="unique-mainaside"]{
  grid-template-areas:"poster meta rank" "episodes episodes rank" "related related rank" "intro intro intro"!important
}
[class*="detail-unique-"][class~="unique-grid"]{
  grid-template-areas:"poster meta meta" "episodes episodes rank" "related related rank" "intro intro intro"!important
}
[class*="detail-unique-"][class~="unique-rail"]{
  grid-template-columns:minmax(270px,320px) minmax(240px,310px) minmax(0,1fr)!important;
  grid-template-areas:"rank poster meta" "rank episodes episodes" "rank intro intro" "related related related"!important
}
[class*="detail-unique-"][class~="unique-center"]{
  grid-template-areas:"poster meta meta" "episodes rank rank" "intro intro intro" "related related related"!important
}
[class*="detail-unique-"][class~="unique-chapters"]{
  grid-template-columns:minmax(240px,310px) minmax(0,1fr)!important;
  grid-template-areas:"poster meta" "episodes episodes" "rank rank" "intro intro" "related related"!important
}
[class*="detail-unique-"][class~="unique-reverse"]{
  grid-template-areas:"meta poster rank" "episodes episodes rank" "intro intro rank" "related related related"!important
}
[class*="detail-unique-"][class~="unique-panels"]{
  grid-template-areas:"poster meta rank" "episodes related rank" "intro intro intro"!important
}
[class*="detail-unique-"][class~="unique-book"]{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-areas:"poster meta" "episodes episodes" "related rank" "intro intro"!important
}

/* ---------- PLAY: semantic module placement ---------- */
[class*="play-unique-"]{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(280px,340px)!important;
  grid-template-areas:
    "player player"
    "info episodes"
    "mini rank"
    "related rank"!important;
  gap:20px!important;
  align-items:start!important;
}
[class*="play-unique-"]>:where(header,main,footer,aside,section,article,div),
[class*="play-unique-"] :where(.center-core,.center-orbit,.book-left,.book-right,.panel-one,.panel-two,.panel-three,[class^="zone-"]){display:contents!important}
[class*="play-unique-"] .play-unit{display:block!important;min-width:0!important;max-width:100%!important;margin:0!important;align-self:start!important}
[class*="play-unique-"] .player-unit{grid-area:player}
[class*="play-unique-"] .info-unit{grid-area:info}
[class*="play-unique-"] .episodes-unit{grid-area:episodes}
[class*="play-unique-"] .mini-unit{grid-area:mini}
[class*="play-unique-"] .rank-unit{grid-area:rank}
[class*="play-unique-"] .related-unit{grid-area:related}
[class*="play-unique-"] .player-box{display:block!important;width:100%!important;max-width:100%!important;aspect-ratio:16/9!important;min-height:0!important;height:auto!important;background:#000;overflow:hidden}
[class*="play-unique-"] .player-box video{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important}
[class*="play-unique-"] .theme-episodes{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(92px,1fr))!important;gap:10px!important}
[class*="play-unique-"] .related-unit .theme-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))!important}
[class*="play-unique-"] .mini-vod{display:grid!important;grid-template-columns:90px minmax(0,1fr)!important;gap:14px!important;align-items:center!important}
[class*="play-unique-"] .mini-vod figure{width:90px!important;max-width:90px!important;margin:0!important}

[class*="play-unique-"][class~="unique-toplower"]{
  grid-template-areas:"player info" "episodes episodes" "related rank" "mini rank"!important
}
[class*="play-unique-"][class~="unique-mainaside"]{
  grid-template-areas:"player rank" "info rank" "episodes episodes" "related related" "mini mini"!important
}
[class*="play-unique-"][class~="unique-grid"]{
  grid-template-areas:"player player" "episodes info" "related rank" "mini rank"!important
}
[class*="play-unique-"][class~="unique-rail"]{
  grid-template-columns:minmax(280px,340px) minmax(0,1fr)!important;
  grid-template-areas:"rank player" "rank info" "episodes episodes" "related related" "mini mini"!important
}
[class*="play-unique-"][class~="unique-center"]{
  grid-template-areas:"player player" "info info" "episodes rank" "related related" "mini mini"!important
}
[class*="play-unique-"][class~="unique-chapters"]{
  grid-template-columns:1fr!important;
  grid-template-areas:"player" "info" "episodes" "related" "rank" "mini"!important
}
[class*="play-unique-"][class~="unique-reverse"]{
  grid-template-areas:"player player" "episodes info" "rank related" "rank mini"!important
}
[class*="play-unique-"][class~="unique-panels"]{
  grid-template-areas:"player episodes" "info episodes" "related rank" "mini rank"!important
}
[class*="play-unique-"][class~="unique-book"]{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-areas:"player episodes" "player info" "related rank" "mini rank"!important
}

/* Common module spacing and overflow. */
.theme-section,.theme-rank,.compact-board,.content-panel,.detail-meta-box,.player-info,.mini-vod{overflow:hidden;min-width:0;max-width:100%}
.filter-bar>*{flex:0 0 auto}
.player-unit,.detail-unit,.play-unit,.theme-section,.theme-rank,.compact-board{contain:layout paint}

/* ---------- Responsive ---------- */
@media(max-width:1180px){
  .site-main{width:min(1120px,calc(100% - 24px))!important}
  .home-unique .theme-hero{grid-template-columns:minmax(0,1fr) 280px!important}
  [class*="detail-unique-"]{grid-template-columns:minmax(220px,280px) minmax(0,1fr) 280px!important}
  [class*="play-unique-"]{grid-template-columns:minmax(0,1fr) 300px!important}
}
@media(max-width:900px){
  .site-main{width:calc(100% - 20px)!important}
  .home-unique .theme-hero{display:block!important}
  .home-unique .hero-primary{min-height:320px;margin-bottom:14px}
  .home-unique .hero-selector{display:flex!important;max-height:none!important;overflow-x:auto!important;overflow-y:hidden!important;gap:10px!important}
  .home-unique .hero-selector button{flex:0 0 180px!important}
  .home-unique .directory-board,.home-unique .matrix-board,.home-unique .window-board,.home-unique .pair-board>div{grid-template-columns:1fr!important}
  .home-unique .theme-rank ol,.home-unique .compact-board ul,.home-unique .timeline-board>div{grid-template-columns:1fr!important}
  [class*="list-unique-"],[class*="detail-unique-"],[class*="play-unique-"]{
    display:flex!important;flex-direction:column!important;gap:16px!important
  }
  [class*="list-unique-"] .breadcrumb,[class*="list-unique-"] .list-heading,[class*="list-unique-"] .filter-bar,[class*="list-unique-"] .list-cards,[class*="list-unique-"] .theme-rank,[class*="list-unique-"] .pagination,[class*="list-unique-"] .theme-section,
  [class*="detail-unique-"] .detail-unit,[class*="play-unique-"] .play-unit{width:100%!important;order:initial!important}
  [class*="detail-unique-"] .poster-unit{max-width:360px!important;margin-inline:auto!important}
  [class*="play-unique-"] .player-unit{order:-10!important}
  [class*="play-unique-"] .info-unit{order:-9!important}
  [class*="play-unique-"] .episodes-unit{order:-8!important}
}
@media(max-width:620px){
  .theme-cards,.list-cards,.section-cards,.directory-cards,.matrix-cards,.window-cards,.lane-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .card-variant-3,.card-variant-6,.card-variant-11,.card-variant-14,.card-variant-15,.card-variant-16{grid-template-columns:1fr!important}
  .theme-section,.theme-rank,.compact-board,.content-panel,.detail-meta-box,.player-info{padding:14px!important}
  [class*="detail-unique-"] .theme-episodes,[class*="play-unique-"] .theme-episodes{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:390px){
  .theme-cards,.list-cards,.section-cards,.directory-cards,.matrix-cards,.window-cards,.lane-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  [class*="detail-unique-"] .theme-episodes,[class*="play-unique-"] .theme-episodes{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Horizontal-information cards need a wider column than poster-only cards. This
   rule is deliberately last so nested related/list grids cannot squeeze them. */
.theme-cards.card-variant-3,.theme-cards.card-variant-6,.theme-cards.card-variant-11,
.theme-cards.card-variant-14,.theme-cards.card-variant-15,.theme-cards.card-variant-16{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))!important;
}
@media(max-width:620px){
  .theme-cards.card-variant-3,.theme-cards.card-variant-6,.theme-cards.card-variant-11,
  .theme-cards.card-variant-14,.theme-cards.card-variant-15,.theme-cards.card-variant-16{grid-template-columns:1fr!important}
}
[class*="detail-unique-"] .related-unit .theme-cards.card-variant-3,
[class*="detail-unique-"] .related-unit .theme-cards.card-variant-6,
[class*="detail-unique-"] .related-unit .theme-cards.card-variant-11,
[class*="detail-unique-"] .related-unit .theme-cards.card-variant-14,
[class*="detail-unique-"] .related-unit .theme-cards.card-variant-15,
[class*="detail-unique-"] .related-unit .theme-cards.card-variant-16,
[class*="play-unique-"] .related-unit .theme-cards.card-variant-3,
[class*="play-unique-"] .related-unit .theme-cards.card-variant-6,
[class*="play-unique-"] .related-unit .theme-cards.card-variant-11,
[class*="play-unique-"] .related-unit .theme-cards.card-variant-14,
[class*="play-unique-"] .related-unit .theme-cards.card-variant-15,
[class*="play-unique-"] .related-unit .theme-cards.card-variant-16{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))!important;
}
@media(max-width:900px){
  [class*="list-unique-"] .breadcrumb{order:-70!important}
  [class*="list-unique-"] .list-heading{order:-69!important}
  [class*="list-unique-"] .filter-bar{order:-68!important}
  [class*="list-unique-"] .list-cards{order:-67!important}
  [class*="list-unique-"] .pagination{order:-66!important}
  [class*="list-unique-"] .theme-section{order:-65!important}
  [class*="list-unique-"] .theme-rank{order:-64!important}

  [class*="detail-unique-"] .poster-unit{order:-70!important}
  [class*="detail-unique-"] .meta-unit{order:-69!important}
  [class*="detail-unique-"] .episode-unit{order:-68!important}
  [class*="detail-unique-"] .intro-unit{order:-67!important}
  [class*="detail-unique-"] .related-unit{order:-66!important}
  [class*="detail-unique-"] .rank-unit{order:-65!important}

  [class*="play-unique-"] .player-unit{order:-70!important}
  [class*="play-unique-"] .info-unit{order:-69!important}
  [class*="play-unique-"] .episodes-unit{order:-68!important}
  [class*="play-unique-"] .mini-unit{order:-67!important}
  [class*="play-unique-"] .related-unit{order:-66!important}
  [class*="play-unique-"] .rank-unit{order:-65!important}
}
/* Remove legacy root padding/floating windows that reserved empty columns. */
.home-unique{padding-left:0!important;padding-right:0!important}
.home-monitorwall-23>aside,.home-multiwindow-54 .floating-window{
  position:static!important;inset:auto!important;width:auto!important;max-width:100%!important;max-height:none!important;margin:0!important;box-shadow:none!important
}
.home-unique .directory-board>article:last-child:nth-child(odd),
.home-unique .matrix-board>article:last-child:nth-child(odd),
.home-unique .window-board>article:last-child:nth-child(odd){grid-column:1/-1!important}
/* Reset legacy explicit cell spans inside normalized home boards. */
.home-unique .window-cell,
.home-unique .directory-board>article,
.home-unique .matrix-board>article,
.home-unique .portal-center,
.home-unique [class^="puzzle-home-"]{grid-column:auto!important;grid-row:auto!important;width:auto!important;max-width:100%!important}
.home-unique .window-cell:last-child:nth-child(odd),
.home-unique .directory-board>article:last-child:nth-child(odd),
.home-unique .matrix-board>article:last-child:nth-child(odd){grid-column:1/-1!important}
