/* 空姐影院 movifgm01 · Figma Make theme · v1.4 */
:root {
  --fgm-bg: #f0f2f5;
  --fgm-fg: #111827;
  --fgm-card: #ffffff;
  --fgm-muted: #6b7280;
  --fgm-border: rgba(0, 0, 0, 0.08);
  --fgm-accent: #2563eb;
  --fgm-nav: #111827;
  --fgm-nav2: #1e293b;
  --fgm-footer: #0d1117;
  --fgm-cta: #dc2626;
  --fgm-radius: 0.5rem;
  --fgm-container: 1200px;
  font-size: 16px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--fgm-fg);
  background: var(--fgm-bg);
}
a { color: var(--fgm-accent); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; height: auto; display: block; }
button, input { font: inherit; }

.site-container { max-width: var(--fgm-container); margin: 0 auto; padding: 0 1rem; }
.site-main { padding: 1.25rem 0 0; }

/* header */
.site-header { background: var(--fgm-nav); position: sticky; top: 0; z-index: 50; box-shadow: 0 10px 15px -3px rgba(0,0,0,.2); }
.site-header__inner { display: flex; align-items: center; gap: .75rem; padding: .75rem 0; }
.site-header__logo { color: #fff; font-weight: 700; font-size: 1rem; white-space: nowrap; border: 0; background: none; cursor: pointer; }
.site-header__logo:hover { color: #f9a8d4; }
.search-bar { flex: 1; max-width: 32rem; display: flex; align-items: center; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); border-radius: 999px; padding: .375rem .75rem; }
.search-bar:focus-within { border-color: #60a5fa; }
.search-bar input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: #fff; font-size: .875rem; margin-left: .5rem; }
.search-bar button { flex-shrink: 0; border: 0; background: none; color: rgba(255,255,255,.55); cursor: pointer; padding: 0; line-height: 1; font-size: 1rem; }
.search-bar button:hover { color: #fff; }
.history-toggle { display: none; align-items: center; gap: .25rem; color: rgba(255,255,255,.6); background: none; border: 0; cursor: pointer; font-size: .75rem; }
.history-wrap { position: relative; }
.history-panel { display: none; position: absolute; right: 0; top: 100%; margin-top: .5rem; width: 14rem; background: var(--fgm-nav2); border: 1px solid rgba(255,255,255,.1); border-radius: var(--fgm-radius); padding: .75rem; box-shadow: 0 25px 50px -12px rgba(0,0,0,.5); }
.history-panel.is-open { display: block; }
.history-panel__title { margin: 0 0 .5rem; font-size: .75rem; color: rgba(255,255,255,.6); }
.historyclean { float: right; background: none; border: 0; color: rgba(255,255,255,.5); cursor: pointer; font-size: .7rem; }
.history-panel__list { list-style: none; margin: 0; padding: 0; font-size: .75rem; }
.nav-primary { display: none; border-top: 1px solid rgba(255,255,255,.1); padding: .375rem 0 .5rem; gap: .125rem; flex-wrap: wrap; align-items: center; }
.nav-primary a { color: rgba(255,255,255,.75); font-size: .875rem; padding: .375rem .75rem; border-radius: .25rem; }
.nav-primary a:hover { color: #fff; background: rgba(255,255,255,.1); text-decoration: none; }
.nav-mobile-toggle { margin-left: auto; background: none; border: 0; color: #fff; cursor: pointer; font-size: 1.25rem; line-height: 1; }
.nav-mobile { display: none; background: var(--fgm-nav2); border-top: 1px solid rgba(255,255,255,.1); }
.nav-mobile.is-open { display: block; }
.nav-mobile a { display: block; padding: .75rem 1.25rem; color: rgba(255,255,255,.75); border-bottom: 1px solid rgba(255,255,255,.05); font-size: .875rem; }
.nav-mobile a:hover { color: #fff; background: rgba(255,255,255,.05); text-decoration: none; }

/* seo */
.seo-hero { border-left: 4px solid #f59e0b; background: #fffbeb; padding: .75rem 1rem; border-radius: 0 var(--fgm-radius) var(--fgm-radius) 0; margin-bottom: 1.25rem; }
.seo-hero--blue { border-color: var(--fgm-accent); background: #eff6ff; }
.seo-hero h1 { margin: 0 0 .375rem; font-size: 1.125rem; line-height: 1.35; }
@media (min-width: 640px) { .seo-hero h1 { font-size: 1.25rem; } }
.seo-hero p { margin: 0; font-size: .875rem; color: #4b5563; line-height: 1.6; }
.seo-hub { background: var(--fgm-card); border: 1px solid var(--fgm-border); border-radius: var(--fgm-radius); padding: 1rem; margin-bottom: 1.5rem; }
.seo-hub h2 { margin: 0 0 .25rem; font-size: .875rem; font-weight: 600; }
.seo-hub > p { margin: 0 0 .625rem; font-size: .75rem; color: var(--fgm-muted); }
.hub-links { display: flex; flex-wrap: wrap; gap: .375rem; }
.hub-links a { font-size: .75rem; color: var(--fgm-accent); border: 1px solid #bfdbfe; padding: .25rem .625rem; border-radius: .25rem; }
.hub-links a:hover { color: #fff; background: var(--fgm-accent); border-color: var(--fgm-accent); text-decoration: none; }
.seo-faq { background: var(--fgm-card); border: 1px solid var(--fgm-border); border-radius: var(--fgm-radius); padding: 1rem; margin-top: 1.5rem; }
.seo-faq h2, .seo-faq h3 { margin: 0 0 .75rem; font-size: 1rem; }
.seo-faq__item { margin-bottom: .75rem; font-size: .875rem; }
.seo-faq__item p { margin: .25rem 0 0; color: var(--fgm-muted); }

/* breadcrumb */
.breadcrumb-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .25rem;
  font-size: .75rem;
  color: var(--fgm-muted);
  padding: .5rem 0;
  margin-bottom: .75rem;
}
.breadcrumb-nav a { color: var(--fgm-muted); }
.breadcrumb-nav a:hover { color: var(--fgm-accent); }
.breadcrumb-nav em { font-style: normal; color: var(--fgm-fg); }

.platform-grid { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.platform-grid a {
  display: inline-block;
  font-size: .75rem;
  padding: .375rem .75rem;
  border: 1px solid var(--fgm-border);
  border-radius: .25rem;
  color: #4b5563;
  background: #fff;
}
.platform-grid a:hover { border-color: #93c5fd; color: var(--fgm-accent); text-decoration: none; }
.platform-grid a.is-local { background: #eff6ff; border-color: #bfdbfe; color: var(--fgm-accent); }

/* movie card / grid */
.movie-carousel { margin-bottom: 2rem; }
.movie-carousel__head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .75rem; flex-wrap: wrap; }
.movie-carousel__head h2 { margin: 0; font-size: 1rem; font-weight: 600; }
.movie-carousel__head h2 a { color: var(--fgm-fg); }
.movie-carousel__head h2 a:hover { color: var(--fgm-accent); text-decoration: none; }
.movie-carousel__track { display: flex; gap: .75rem; overflow-x: auto; padding-bottom: .5rem; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.movie-carousel__item { flex: 0 0 7.5rem; scroll-snap-align: start; }
@media (min-width: 640px) { .movie-carousel__item { flex-basis: 9.25rem; } }
.movie-carousel__nav { display: flex; align-items: center; flex-shrink: 0; }
.movie-carousel__nav button { border: 1px solid var(--fgm-border); background: #fff; border-radius: 999px; width: 2rem; height: 2rem; cursor: pointer; margin-left: .375rem; line-height: 1; }

.movie-grid {
  display: grid;
  gap: .875rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
}
@media (min-width: 640px) {
  .movie-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .movie-grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
/* 有侧栏周榜时主区最多 4 列，避免海报过窄并与侧栏重叠 */
@media (min-width: 992px) {
  .channel-layout--with-side .movie-grid,
  .channel-layout--with-side .movie-grid--6 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.movie-card { width: 100%; min-width: 0; }
.movie-card__thumb {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 2 / 3;
  border-radius: var(--fgm-radius);
  overflow: hidden;
  background: #1f2937;
  box-shadow: 0 1px 2px rgba(0,0,0,.05);
}
.movie-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.movie-card__thumb .lazyload { min-height: 0; background: #e5e7eb; }
.movie-card__rating { position: absolute; top: .375rem; right: .375rem; background: rgba(0,0,0,.65); color: #facc15; font-size: 10px; padding: .125rem .375rem; border-radius: .125rem; z-index: 1; }
.movie-card__thumb .movie-card__badge {
  position: absolute;
  bottom: .375rem;
  left: .375rem;
  right: auto;
  width: fit-content;
  max-width: calc(100% - .75rem);
  background: rgba(37,99,235,.9);
  color: #fff;
  font-size: 10px;
  line-height: 1.3;
  padding: .125rem .375rem;
  border-radius: .125rem;
  z-index: 1;
  white-space: nowrap;
}
.movie-card__play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,0); transition: background .2s; }
.movie-card:hover .movie-card__play { background: rgba(0,0,0,.25); }
.movie-card__title {
  margin: .5rem .125rem 0;
  font-size: .8125rem;
  font-weight: 500;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.7em;
}
.movie-card__title a { color: var(--fgm-fg); }
.movie-card:hover .movie-card__title a { color: var(--fgm-accent); text-decoration: none; }
.movie-card__meta { font-size: 11px; color: var(--fgm-muted); margin: .125rem .125rem 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.movie-rank { background: var(--fgm-card); border: 1px solid var(--fgm-border); border-radius: var(--fgm-radius); padding: .75rem; }
.movie-rank h3 { margin: 0 0 .75rem; font-size: .875rem; font-weight: 600; }
.movie-rank ol { list-style: none; margin: 0; padding: 0; }
.movie-rank li { display: flex; align-items: center; gap: .5rem; margin-bottom: .625rem; }
.movie-rank li span.num { width: 1rem; text-align: center; font-size: .75rem; font-weight: 700; flex-shrink: 0; }
.movie-rank li span.num.top { color: #ef4444; }
.movie-rank li a { flex: 1; font-size: .75rem; color: var(--fgm-fg); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.movie-rank li a:hover { color: var(--fgm-accent); text-decoration: none; }
.movie-rank li span.score { font-size: 10px; color: #ca8a04; flex-shrink: 0; }

.channel-section { margin-bottom: 2.25rem; }
.channel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: .875rem; }
.channel-head h3 { margin: 0; font-size: 1rem; font-weight: 600; line-height: 1.4; }
.channel-head h3 a { color: var(--fgm-fg); }
.channel-head h3 a:hover { color: var(--fgm-accent); text-decoration: none; }
.genre-tags { display: flex; flex-wrap: wrap; gap: .375rem; margin-top: .375rem; }
.genre-tags a { font-size: 11px; color: var(--fgm-accent); border: 1px solid #bfdbfe; padding: .125rem .5rem; border-radius: .25rem; white-space: nowrap; }
.genre-tags a:hover { color: #fff; background: var(--fgm-accent); text-decoration: none; }
.section-more-link { font-size: .8125rem; color: var(--fgm-accent); white-space: nowrap; flex-shrink: 0; padding-top: .125rem; }

/* 主区 + 侧栏：Grid 分列，杜绝侧栏叠在海报上 */
.channel-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
}
.channel-layout__main { min-width: 0; width: 100%; }
.channel-layout__side { display: none; min-width: 0; width: 100%; }
@media (min-width: 992px) {
  .channel-layout--with-side {
    grid-template-columns: minmax(0, 1fr) 15.625rem;
  }
  .channel-layout--with-side .channel-layout__side {
    display: block;
    width: 15.625rem;
    max-width: 15.625rem;
  }
}

.channel-text-list {
  display: none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: 1rem;
  border-top: 1px solid var(--fgm-border);
}
@media (min-width: 768px) {
  .channel-text-list { display: grid; }
}
.channel-text-list a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .5rem;
  padding: .5rem .375rem;
  font-size: .8125rem;
  color: var(--fgm-fg);
  border-bottom: 1px dotted var(--fgm-border);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.channel-text-list a:hover { color: var(--fgm-accent); text-decoration: none; }
.channel-text-list a span:last-child { font-size: .75rem; color: var(--fgm-muted); flex-shrink: 0; }
.channel-text-list a span:first-child { overflow: hidden; text-overflow: ellipsis; }

.seo-faq__title { margin: 0 0 1rem; font-size: 1rem; font-weight: 600; line-height: 1.4; }

.rank-quad-grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1rem;
}
@media (min-width: 640px) {
  .rank-quad-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .rank-quad-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.movie-list-row { display: flex; align-items: center; gap: .75rem; padding: .75rem; border-bottom: 1px solid var(--fgm-border); }
.movie-list-row:hover { background: #f9fafb; }
.movie-list-row__thumb { width: 2.25rem; height: 3rem; border-radius: .25rem; overflow: hidden; background: #374151; flex-shrink: 0; }
.movie-list-row__thumb img { width: 100%; height: 100%; object-fit: cover; }
.movie-list-row__body { flex: 1; min-width: 0; }
.movie-list-row__title { font-size: .875rem; font-weight: 500; }
.movie-list-row__meta { font-size: .75rem; color: var(--fgm-muted); margin-top: .125rem; }
.movie-list-row__desc { margin-top: .25rem; }
.movie-list-row__actions { margin: .5rem 0 0; }
.play-cta--sm { padding: .375rem 1rem; font-size: .75rem; }
.text-link--sm { margin-left: .5rem; font-size: .75rem; color: var(--fgm-accent); }
.panel-box__title { margin: 0 0 1rem; font-size: 1rem; font-weight: 600; }
.list-card__title { margin: 0 0 1rem; font-size: 1rem; font-weight: 600; }
.list-card__title a { color: inherit; text-decoration: none; }
.list-card__title a:hover { color: var(--fgm-accent); }
.detail-layout__side .movie-rank:not(:last-child) { margin-bottom: 1rem; }
.carousel-more-link { margin-left: .5rem; }

/* detail */
.tip-banner { font-size: .75rem; color: #b45309; background: #fffbeb; border: 1px solid #fef3c7; border-radius: var(--fgm-radius); padding: .375rem .75rem; margin-bottom: 1rem; }
.movie-detail { background: var(--fgm-card); border: 1px solid var(--fgm-border); border-radius: var(--fgm-radius); padding: 1.25rem; margin-bottom: 1.25rem; display: flex; flex-direction: column; gap: 1.25rem; }
@media (min-width: 640px) { .movie-detail { flex-direction: row; } }
.movie-poster { position: relative; flex-shrink: 0; width: 100%; max-width: 160px; }
.movie-poster img { width: 100%; aspect-ratio: 2/3; object-fit: cover; border-radius: var(--fgm-radius); box-shadow: 0 4px 6px -1px rgba(0,0,0,.1); }
.movie-poster__badge {
  position: absolute;
  bottom: .5rem;
  right: .5rem;
  left: auto;
  width: fit-content;
  max-width: calc(100% - 1rem);
  background: rgba(0,0,0,.65);
  color: #fff;
  font-size: 11px;
  line-height: 1.3;
  padding: .125rem .5rem;
  border-radius: .125rem;
  z-index: 1;
  white-space: nowrap;
}
.movie-meta h2 { margin: 0 0 .5rem; font-size: 1.25rem; }
.movie-meta .score { color: #eab308; font-size: 1rem; margin-left: .5rem; }
.tag-row { display: flex; flex-wrap: wrap; gap: .375rem; margin-bottom: .75rem; }
.tag-row a, .tag-row span { font-size: .75rem; padding: .125rem .5rem; border-radius: .25rem; border: 1px solid #e5e7eb; color: #4b5563; }
.tag-row a { color: var(--fgm-accent); border-color: #bfdbfe; }
.meta-list { font-size: .875rem; color: #4b5563; margin-bottom: .75rem; }
.meta-list div { margin-bottom: .25rem; }
.meta-list strong { color: var(--fgm-fg); }
.play-cta { display: inline-flex; align-items: center; gap: .5rem; background: var(--fgm-cta); color: #fff; font-weight: 700; padding: .625rem 1.75rem; border-radius: var(--fgm-radius); border: 0; cursor: pointer; font-size: .875rem; box-shadow: 0 1px 3px rgba(0,0,0,.1); }
.play-cta:hover { background: #b91c1c; color: #fff; text-decoration: none; }
.panel-box { background: var(--fgm-card); border: 1px solid var(--fgm-border); border-radius: var(--fgm-radius); padding: 1rem; margin-bottom: 1rem; }
.panel-box h3 { margin: 0 0 .5rem; font-size: .875rem; font-weight: 600; }
.source-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  margin: 0 0 1rem;
  padding: 0;
  list-style: none;
}
.source-tabs a,
.source-tabs button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .8125rem;
  line-height: 1.2;
  padding: .4375rem .875rem;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
  color: #374151;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
}
.source-tabs a:hover { background: #f3f4f6; text-decoration: none; color: #111827; }
.source-tabs a.active,
.source-tabs button.active {
  background: var(--fgm-accent);
  color: #fff;
  border-color: var(--fgm-accent);
}
.episode-pane { margin-top: .25rem; }
.episode-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(4.5rem, 1fr));
  gap: .5rem;
}
.episode-grid a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.125rem;
  padding: .4375rem .5rem;
  font-size: .8125rem;
  line-height: 1.2;
  text-align: center;
  border: 1px solid #e5e7eb;
  border-radius: .375rem;
  background: #fff;
  color: #374151;
  text-decoration: none;
  transition: border-color .15s, color .15s, background .15s;
}
.episode-grid a:hover {
  border-color: #93c5fd;
  color: var(--fgm-accent);
  background: #eff6ff;
  text-decoration: none;
}
.episode-grid a.is-current {
  background: var(--fgm-cta);
  color: #fff;
  border-color: var(--fgm-cta);
  font-weight: 600;
}
.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.detail-layout__main { min-width: 0; }
.detail-layout__side { display: none; min-width: 0; flex-direction: column; gap: 1rem; }
.detail-stack {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
  width: 100%;
}
.detail-stack > .panel-box,
.detail-stack > .movie-detail,
.detail-stack > .tip-banner,
.detail-stack > section.panel-box {
  width: 100%;
  max-width: 100%;
  margin-bottom: 0;
}
.movie-detail-highlights {
  background: #f9fafb;
  padding: 1rem;
  margin-top: 1rem;
  border-radius: var(--fgm-radius);
  border: 1px solid var(--fgm-border);
}
.movie-detail-highlights h4 { margin: 0 0 .75rem; font-size: .9375rem; font-weight: 600; }
.movie-detail-highlights ul { margin: 0; padding-left: 1.25rem; line-height: 1.9; font-size: .875rem; color: #4b5563; }
.panel-box > h3,
.panel-box > h2 { margin: 0 0 .75rem; font-size: 1rem; font-weight: 600; color: var(--fgm-fg); }
.panel-box > p { margin: 0 0 .75rem; font-size: .875rem; line-height: 1.75; color: #4b5563; }
.seo-faq.panel-box { margin-top: 0; }
.seo-faq.panel-box > h2 { font-size: 1rem; margin: 0 0 1rem; }
.seo-faq__item h4 { margin: 0 0 .375rem; font-size: .875rem; font-weight: 600; color: var(--fgm-fg); }
.seo-faq__item p { margin: 0; font-size: .875rem; color: var(--fgm-muted); line-height: 1.65; }
.movie-meta .title { margin: 0 0 .5rem; font-size: 1.25rem; font-weight: 600; }
.movie-meta .data { font-size: .875rem; color: #4b5563; margin: 0 0 .375rem; line-height: 1.6; }
.movie-meta .data a { color: var(--fgm-accent); }
.platform-grid a.btn-default { background: #eff6ff; border-color: #bfdbfe; color: var(--fgm-accent); }
@media (min-width: 992px) {
  .detail-layout--with-side {
    grid-template-columns: minmax(0, 1fr) 15.625rem;
  }
  .detail-layout--with-side .detail-layout__side {
    display: flex;
    width: 15.625rem;
    max-width: 15.625rem;
  }
}

/* player */
.player-panel { padding: 0; overflow: hidden; }
.player-panel .tip-banner { margin: 0; border-radius: 0; border-left: 0; border-right: 0; border-top: 0; }
.player-wrap {
  border-radius: 0;
  overflow: hidden;
  box-shadow: none;
  margin-bottom: 0;
  border: 0;
  background: #000;
}
.player-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
  min-height: 12rem;
}
.player-stage #dplayer,
.player-stage .url_type {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.player-stage .dplayer,
.player-stage .dplayer-video-wrap,
.player-stage .dplayer-video {
  width: 100% !important;
  height: 100% !important;
}
.player-stage .url_type {
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  color: #e5e7eb;
  font-size: .875rem;
  text-align: center;
}
.player-stage .url_type.is-on { display: flex; }
.player-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: #111827;
  padding: .625rem 1rem;
  font-size: .8125rem;
}
.player-toolbar a { color: #d1d5db; text-decoration: none; }
.player-toolbar a:hover { color: #fff; }
.player-info {
  padding: 1rem 1.25rem 1.25rem;
  background: #fff;
  border-top: 1px solid var(--fgm-border);
}
.player-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0 0 1rem;
  padding: 0;
  list-style: none;
}
.player-actions li { list-style: none; margin: 0; padding: 0; }
.player-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 4.5rem;
  padding: .5rem 1rem;
  font-size: .8125rem;
  border-radius: .375rem;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #374151;
  text-decoration: none;
}
.player-actions a:hover {
  border-color: #93c5fd;
  color: var(--fgm-accent);
  background: #eff6ff;
  text-decoration: none;
}
.player-actions a.is-disabled {
  opacity: .45;
  pointer-events: none;
}
.player-info__title {
  margin: 0 0 .625rem;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.45;
}
.player-info__title a { color: var(--fgm-fg); text-decoration: none; }
.player-info__title a:hover { color: var(--fgm-accent); }
.player-info__title em {
  font-style: normal;
  color: var(--fgm-muted);
  font-weight: 400;
}
.player-info__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .375rem 1.25rem;
  font-size: .8125rem;
  color: #6b7280;
}
.player-info__meta a { color: var(--fgm-accent); text-decoration: none; }
.player-info__meta a:hover { text-decoration: underline; }

/* filter */
.filter-bar { background: var(--fgm-card); border: 1px solid var(--fgm-border); border-radius: var(--fgm-radius); padding: 1rem; margin-bottom: 1.25rem; }
.filter-row { display: flex; align-items: flex-start; gap: .5rem; padding: .625rem 0; border-bottom: 1px solid var(--fgm-border); }
.filter-row:last-child { border-bottom: 0; }
.filter-row dt { width: 2.5rem; flex-shrink: 0; font-size: .75rem; font-weight: 500; padding-top: .25rem; margin: 0; }
.filter-row dd { margin: 0; flex: 1; display: flex; flex-wrap: wrap; gap: .375rem; }
.filter-row a { font-size: .75rem; padding: .125rem .625rem; border-radius: .25rem; color: #4b5563; }
.filter-row a.active { background: var(--fgm-accent); color: #fff; }
.filter-row a:hover { text-decoration: none; background: #f3f4f6; }
.filter-row a.active:hover { background: var(--fgm-accent); }

.result-count { font-size: .75rem; color: var(--fgm-muted); margin-bottom: .75rem; }

/* pagination */
.pagination { display: flex; align-items: center; justify-content: center; gap: .375rem; margin: 2rem 0; flex-wrap: wrap; }
.pagination a, .pagination span { font-size: .75rem; padding: .375rem .75rem; border: 1px solid var(--fgm-border); border-radius: .25rem; color: #4b5563; }
.pagination a.active { background: var(--fgm-accent); color: #fff; border-color: var(--fgm-accent); }
.pagination a:hover { background: #f3f4f6; text-decoration: none; }

/* friend links / footer */
.friend-links { background: var(--fgm-card); border: 1px solid var(--fgm-border); border-radius: var(--fgm-radius); padding: 1rem; margin-top: 1rem; }
.friend-links h3 { margin: 0 0 .5rem; font-size: .75rem; font-weight: 600; }
.friend-links__lead { font-size: .75rem; color: var(--fgm-muted); margin: 0 0 .625rem; }
.friend-links__note { font-size: .75rem; color: var(--fgm-muted); margin: 1rem 0 .5rem; }
.friend-links__apply { font-size: .75rem; margin: 0; }
.friend-links__extra { margin-top: .75rem; }
.friend-links ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .375rem; }
.friend-links a { font-size: .75rem; color: var(--fgm-accent); background: #eff6ff; padding: .25rem .5rem; border-radius: .25rem; }
.site-footer { background: var(--fgm-footer); color: rgba(255,255,255,.6); margin-top: 3rem; padding: 2rem 0; }
.site-footer__links { display: flex; flex-wrap: wrap; gap: .375rem 1rem; margin-bottom: 1.25rem; padding-bottom: 1.25rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.site-footer__links a { font-size: .75rem; color: rgba(255,255,255,.4); }
.site-footer__links a:hover { color: rgba(255,255,255,.8); text-decoration: none; }
.site-footer p { font-size: .75rem; line-height: 1.6; color: rgba(255,255,255,.35); margin: 0 0 .5rem; max-width: 42rem; }
.site-footer__copy { font-size: 11px; color: rgba(255,255,255,.2); }

.page-404 { text-align: center; padding: 2.5rem 0; }
.page-404 .hub-links { justify-content: center; }
.page-404__code { font-size: 9rem; font-weight: 700; color: #f3f4f6; line-height: 1; margin: 0 0 .75rem; }
.page-404__heading { font-size: 1rem; font-weight: 600; margin: 0 0 .5rem; }
.page-404__path { font-size: .75rem; color: var(--fgm-muted); margin: 0 0 .75rem; }
.page-404__path code { font-size: .7rem; word-break: break-all; }
.page-404__hint { font-size: .75rem; color: var(--fgm-muted); margin: 0 0 1rem; }
.page-404__nav-title { font-size: .875rem; margin: 0 0 .5rem; }
.empty-state { text-align: center; padding: 4rem 1rem; }

.back-to-top { position: fixed; bottom: 1.25rem; right: 1.25rem; z-index: 50; width: 2.5rem; height: 2.5rem; border-radius: 999px; background: var(--fgm-accent); color: #fff; border: 0; cursor: pointer; box-shadow: 0 10px 15px -3px rgba(0,0,0,.2); display: none; align-items: center; justify-content: center; }
.back-to-top.is-visible { display: flex; }

.list-card { background: var(--fgm-card); border: 1px solid var(--fgm-border); border-radius: var(--fgm-radius); overflow: hidden; }

@media (min-width: 768px) {
  .history-toggle { display: flex; }
  .nav-primary { display: flex; }
  .nav-mobile-toggle { display: none; }
}
@media (min-width: 1024px) {
  .detail-layout--with-side .movie-grid--6 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
