:root {
    --c-primary: #ff6b35;
    --c-primary-2: #ff8a3d;
    --c-primary-soft: #fff3ee;
    --c-heading: #262b33;
    /* 导航文字与版块标题 */ --c-text: #111318;
    --c-text-2: #3d4450;
    --c-text-3: #7a828e;
    --c-text-4: #b8bec8;
    --c-bg: #f5f6f8;
    --c-card: #fff;
    --c-border: #e8eaee;
    --r-sm: 6px;
    --r-md: 8px;
    --r-lg: 12px;
    --r-pill: 999px;
    --sh-sm: 0 1px 8px rgba(20,30,50,.05);
    --sh-md: 0 4px 16px rgba(20,30,50,.07);
    --sh-lg: 0 8px 24px rgba(20,30,50,.10);
    --ease: .2s ease;
    --header-h: 60px;
}*,*::before,*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}ul,ol {
    list-style: none;
}a {
    text-decoration: none;
    color: inherit;
    transition: color var(--ease);
}img {
    max-width: 100%;
    display: block;
    border: 0;
}button,input,textarea,select {
    font-family: inherit;
    font-size: 14px;
    border: none;
    outline: none;
    background: none;
}h1,h2,h3,h4,h5,h6 {
    font-weight: 500;
}::-webkit-scrollbar {
    display: none;
}.row {
    display: flex;
    align-items: center;
}.row-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}.row-center {
    display: flex;
    justify-content: center;
    align-items: center;
}.column-center {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}.flex {
    display: flex;
}.wrap {
    flex-wrap: wrap;
}.hide {
    display: none !important;
}.clearfix::after {
    content: "";
    display: block;
    clear: both;
}.line2 {
    overflow: hidden;
    word-wrap: break-word;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}.movie-main {
    width: 1200px;
    max-width: calc(100% - 32px);
    margin: 16px auto;
}.site-crumb {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 14px;
    color: var(--c-text-3);
    margin-bottom: 16px;
    padding: 0 2px;
}.site-crumb a {
    color: var(--c-text-3);
    text-decoration: none;
    transition: color var(--ease);
}.site-crumb a:hover {
    color: var(--c-primary);
}.site-crumb .sep {
    color: var(--c-text-4);
    font-size: 14px;
    line-height: 1;
}.site-crumb .current {
    color: var(--c-text);
    font-weight: 500;
    max-width: 280px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}.movie-header .h-main {
    width: 1200px;
    max-width: calc(100% - 32px);
    margin: 0 auto;
    display: flex;
    align-items: center;
}.movie-header .h-main .h-link {
    margin-right: 36px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
}.movie-header .h-main .h-link .h-icon {
    height: 26px;
    width: auto;
    object-fit: contain;
}.movie-header .h-main .h-nav {
    display: flex;
    align-items: center;
    height: 100%;
    gap: 4px;
}.movie-header .h-main .h-nav li {
    height: 100%;
    cursor: pointer;
    position: relative;
    display: flex;
    align-items: center;
}.movie-header .h-main .h-search .h-form .inp::placeholder {}.movie-header .h-main .h-search .h-form .btn:hover {}.movie-header .h-main .h-function .link-1 {}.movie-header .h-main .h-function .link-1:hover {}.fl-section {
    border-radius: var(--r-lg);
    padding: 20px 24px;
    margin-bottom: 16px;
    transition: box-shadow .3s ease;
}.fl-section:hover {
    box-shadow: var(--sh-md);
}.fl-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
    flex-wrap: wrap;
    gap: 8px;
}.fl-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--c-heading);
    line-height: 1.3;
}.fl-title::before {
    content: "";
    width: 3px;
    height: 14px;
    border-radius: 2px;
    flex-shrink: 0;
}.fl-sub {
    font-size: 12px;
    color: var(--c-text-3);
    font-weight: 400;
    margin-left: 4px;
}.fl-tabs {
    display: flex;
    gap: 2px;
    flex-wrap: wrap;
    align-items: center;
}.fl-tabs a {
    padding: 4px 10px;
    font-size: 12px;
    color: var(--c-text-2);
    border-radius: var(--r-sm);
    transition: all var(--ease);
    font-weight: 400;
    white-space: nowrap;
}.fl-tabs a:hover {
    background: var(--c-primary-soft);
    color: var(--c-primary);
}.fl-more {
    font-size: 12px;
    color: var(--c-text-3);
    padding: 4px 8px;
    border-radius: var(--r-sm);
    transition: all var(--ease);
    white-space: nowrap;
}.fl-more:hover {
    color: var(--c-primary);
    background: var(--c-primary-soft);
}.fl-poster-grid {
    display: grid;
    grid-template-columns: repeat(5,1fr);
    gap: 20px 16px;
}.fl-poster {
    min-width: 0;
}.fl-cover {
    position: relative;
    display: block;
    padding-top: 133%;
    border-radius: var(--r-md);
    overflow: hidden;
    background: var(--c-border) center/cover no-repeat;
    transition: transform .3s ease,box-shadow .3s ease;
}.fl-poster:hover .fl-cover {
    transform: translateY(-2px);
    box-shadow: var(--sh-md);
}.fl-cover::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.55) 100%);
    opacity: .7;
    transition: opacity .3s ease;
}.fl-poster:hover .fl-cover::after {
    opacity: 1;
}.fl-tag {
    position: absolute;
    top: 6px;
    left: 6px;
    z-index: 2;
    padding: 2px 6px;
    font-size: 12px;
    font-weight: 500;
    color: #fff;
    background: linear-gradient(135deg,var(--c-primary-2),var(--c-primary));
    border-radius: 4px;
    box-shadow: 0 1px 4px rgba(255,107,53,.3);
}.fl-remark {
    position: absolute;
    right: 6px;
    bottom: 6px;
    z-index: 2;
    padding: 2px 6px;
    font-size: 12px;
    font-weight: 500;
    color: #fff;
    background: rgba(0,0,0,.6);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border-radius: 4px;
    max-width: calc(100% - 12px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}.fl-name {
    display: block;
    color: var(--c-text);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color var(--ease);
    padding: 0 2px;
}.fl-name a {
    color: inherit;
    display: block;
}.fl-poster:hover .fl-name a {
    color: var(--c-primary);
}.fl-meta {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: var(--c-text-3);
    text-align: center;
}.fl-duo-main, .fl-duo-side {
    border-radius: var(--r-lg);
    padding: 18px 20px;
    min-width: 0;
}.fl-duo-main {
    overflow: hidden;
    display: flex;
    flex-direction: column;
}.fl-duo-main .fl-section-head, .fl-duo-side .fl-rank-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
    height: 28px;
    flex-shrink: 0;
}.fl-duo-main .fl-title {
    font-size: 14px;
    gap: 8px;
}.fl-duo-main .fl-sub {
    display: none;
}.fl-duo-main .fl-tabs {
    display: flex;
    gap: 2px;
    align-items: center;
    flex-wrap: nowrap;
    overflow: hidden;
}.fl-duo-main .fl-tabs a {
    padding: 4px 10px;
    font-size: 12px;
    white-space: nowrap;
    flex-shrink: 0;
}.fl-poster-grid--duo .fl-poster {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}.fl-poster-grid--duo .fl-cover {
    border-radius: var(--r-md);
    border: 1px solid rgba(0,0,0,.06);
    box-shadow: 0 2px 8px rgba(20,30,50,.06);
}.fl-poster-grid--duo .fl-poster:hover .fl-cover {
    border-color: rgba(255,107,53,.25);
    box-shadow: 0 6px 20px rgba(255,107,53,.15);
}.fl-poster-grid--duo .fl-name {
    text-align: center;
    color: var(--c-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 0 4px;
}.fl-poster-grid--duo .fl-name a {
    color: inherit;
    display: block;
}.fl-poster-grid--duo .fl-poster:hover .fl-name a {
    color: var(--c-primary);
}.fl-poster-grid--duo .fl-score {
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 2;
    padding: 2px 6px;
    font-size: 12px;
    font-weight: 600;
    color: #ffb400;
    background: rgba(0,0,0,.6);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border-radius: 4px;
    font-variant-numeric: tabular-nums;
}.fl-poster-grid--duo .fl-meta {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: var(--c-text-3);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 0 4px;
}.fl-rank-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}.fl-rank-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}.fl-rank-tab:hover {
    color: #000;
}.fl-rank-tab.active {}.fl-rank-item:nth-child(1) .fl-rank-no, .fl-rank-item:nth-child(2) .fl-rank-no, .fl-rank-item:nth-child(3) .fl-rank-no {
    color: #fff;
    background: linear-gradient(135deg,var(--c-primary-2),var(--c-primary));
    box-shadow: 0 2px 6px rgba(255,107,53,.3);
}.fl-rank-link:hover .fl-rank-name {
    color: var(--c-primary);
}.fl-rank-meta {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 3px;
    color: #000;
    white-space: nowrap;
    overflow: hidden;
}.fl-rank-meta>span {
    overflow: hidden;
    text-overflow: ellipsis;
}.fl-rank-remark {
    color: var(--c-primary);
    font-weight: 500;
}.fl-dot {
    color: var(--c-text-4);
    flex-shrink: 0;
}.ct-card {
    border-radius: var(--r-lg);
    padding: 20px 24px;
    margin-bottom: 16px;
}.ct-filter {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid var(--c-border);
}.ct-filter:last-child {
    border-bottom: none;
    padding-bottom: 0;
}.ct-filter:first-child {
    padding-top: 0;
}.ct-filter-label {
    flex-shrink: 0;
    width: 40px;
    font-size: 12px;
    font-weight: 500;
    color: var(--c-text-3);
    line-height: 30px;
}.ct-filter-opts {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}.ct-filter-opts a {
    padding: 5px 14px;
    font-size: 14px;
    color: var(--c-text-2);
    border-radius: var(--r-sm);
    transition: all var(--ease);
    font-weight: 400;
    white-space: nowrap;
}.ct-filter-opts a:hover {
    background: var(--c-primary-soft);
    color: var(--c-primary);
}.ct-filter-opts a.active {
    background: linear-gradient(135deg,var(--c-primary-2),var(--c-primary));
    color: #fff;
    box-shadow: 0 2px 8px rgba(255,107,53,.3);
}.ct-poster-section {
    background: var(--c-card);
    border-radius: var(--r-lg);
    padding: 20px 24px;
    margin-bottom: 16px;
    box-shadow: var(--sh-sm);
}.ct-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
}.ct-section-title::before {
    content: "";
    width: 3px;
    height: 14px;
    border-radius: 2px;
    background: linear-gradient(180deg,var(--c-primary-2),var(--c-primary));
}.ct-section-sub {
    font-size: 12px;
    color: var(--c-text-3);
    font-weight: 400;
}.ct-poster-grid {
    display: grid;
    grid-template-columns: repeat(6,1fr);
    gap: 18px 14px;
}.ct-poster {
    min-width: 0;
}.ct-cover {
    position: relative;
    display: block;
    padding-top: 133%;
    border-radius: var(--r-md);
    overflow: hidden;
    background: var(--c-border) center/cover no-repeat;
    border: 1px solid rgba(0,0,0,.06);
    box-shadow: 0 2px 8px rgba(20,30,50,.06);
    transition: transform .3s ease,box-shadow .3s ease,border-color .3s ease;
}.ct-poster:hover .ct-cover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(255,107,53,.18);
    border-color: rgba(255,107,53,.3);
}.ct-cover::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.65) 100%);
    opacity: .75;
    transition: opacity .3s ease;
}.ct-poster:hover .ct-cover::after {
    opacity: 1;
}.ct-tag {
    position: absolute;
    top: 6px;
    left: 6px;
    z-index: 2;
    padding: 2px 6px;
    font-size: 12px;
    font-weight: 500;
    color: #fff;
    background: linear-gradient(135deg,var(--c-primary-2),var(--c-primary));
    border-radius: 4px;
    box-shadow: 0 1px 4px rgba(255,107,53,.3);
}.ct-remark {
    position: absolute;
    right: 6px;
    bottom: 6px;
    z-index: 2;
    padding: 2px 6px;
    font-size: 12px;
    font-weight: 500;
    color: #fff;
    background: rgba(0,0,0,.6);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border-radius: 4px;
    max-width: calc(100% - 12px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}.ct-score {
    top: 6px;
    right: 6px;
}.ct-name {
    display: block;
    color: var(--c-text);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color var(--ease);
    padding: 0 4px;
}.ct-name a {
    color: inherit;
    display: block;
}.ct-poster:hover .ct-name a {
    color: var(--c-primary);
}.ct-meta {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: var(--c-text-3);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 0 4px;
}.ct-search-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    border-radius: var(--r-lg);
    padding: 16px 20px;
    margin-bottom: 16px;
    font-size: 14px;
    color: var(--c-text-2);
}.ct-search-label {
    font-size: 12px;
    font-weight: 500;
    color: var(--c-text-3);
}.ct-search-word {
    font-size: 16px;
    font-weight: 600;
    color: var(--c-primary);
    max-width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}.ct-search-count {
    font-size: 12px;
    color: var(--c-text-3);
}.ct-search-tip {
    text-align: center;
    margin: 16px 0 4px;
    font-size: 12px;
    color: var(--c-text-3);
    line-height: 1.8;
}.dt-poster::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: var(--r-md);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
    pointer-events: none;
}.dt-poster img {
    border-radius: var(--r-md);
    box-shadow: 0 6px 18px rgba(20,30,50,.12);
    transition: transform .35s ease;
    display: block;
}.dt-poster:hover img {
    transform: scale(1.01);
}.dt-score-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    min-width: 36px;
    text-align: center;
    padding: 3px 8px;
    font-size: 12px;
    font-weight: 600;
    color: #ffb400;
    background: rgba(0,0,0,.68);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255,180,0,.25);
    border-radius: var(--r-sm);
    font-variant-numeric: tabular-nums;
}.dt-info {
    grid-area: info;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0;
}.dt-tag-hot {
    color: #fff;
    background: linear-gradient(135deg,var(--c-primary-2),var(--c-primary));
    border-color: transparent;
    box-shadow: 0 2px 8px rgba(255,107,53,.28);
}.dt-actor {}.dt-actor a {
    color: var(--c-text-2);
    text-decoration: none;
    margin-right: 8px;
    transition: color var(--ease);
}.dt-actor a:hover {
    color: var(--c-primary);
}.dt-actor .dt-actor-more {
    color: var(--c-text-3);
}.dt-longtail-tags {
    display: block;
    margin-top: 12px;
}.dt-longtail-tags a {
    color: var(--c-primary);
    text-decoration: none;
    margin-right: 14px;
    font-size: 13px;
}.dt-longtail-tags a:hover {
    text-decoration: underline;
    color: var(--c-primary-2);
}.dt-actions {
    grid-area: actions;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-self: start;
    align-content: flex-start;
}.dt-btn svg {
    width: 13px;
    height: 13px;
    flex-shrink: 0;
}.dt-btn-primary {
    background: linear-gradient(135deg,var(--c-primary-2),var(--c-primary));
    color: #fff;
    box-shadow: 0 4px 14px rgba(255,107,53,.30);
}.dt-btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(255,107,53,.38);
    color: #fff;
}.dt-btn-icon {
    font-size: 13px;
    padding: 0 12px;
}.dt-rate::before {
    content: "";
    position: absolute;
    top: -40px;
    right: -40px;
    width: 120px;
    height: 120px;
    background: radial-gradient(circle,rgba(255,107,53,.18),transparent 65%);
    border-radius: 50%;
    pointer-events: none;
}.dt-rate::after {
    content: "";
    position: absolute;
    bottom: -50px;
    left: -30px;
    width: 100px;
    height: 100px;
    background: radial-gradient(circle,rgba(255,138,61,.12),transparent 65%);
    border-radius: 50%;
    pointer-events: none;
}.dt-rate-top {
    margin: 0;
    position: relative;
    z-index: 1;
}.dt-rate-btn:hover {
    color: var(--c-primary);
    transform: translateY(-1px);
}.dt-section-title a:hover {
    color: #000;
}.dt-content {
    position: relative;
    font-size: 14px;
    line-height: 1.9;
    color: var(--c-text-2);
    padding: 16px 20px;
    background: #fafbfc;
    border-radius: var(--r-md);
    border: 1px solid #f0f2f5;
}.dt-content p {
    margin: 0 0 10px;
}.dt-content p:last-child {
    margin-bottom: 0;
}.channel-set.active {
    display: grid;
}.channel-set li.history-played a {
    border-color: rgba(255,107,53,.3);
    background: #fff8f5;
    color: var(--c-primary);
}.channel-set li.history-played.active a {
    background: linear-gradient(135deg,var(--c-primary-2),var(--c-primary));
    color: #fff;
}.dt-pn-item a {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding: 12px 14px;
    background: #fafbfc;
    border: 1px solid var(--c-border);
    border-radius: var(--r-md);
    transition: all var(--ease);
}.dt-pn-item a:hover {
    background: var(--c-primary-soft);
    border-color: rgba(255,107,53,.22);
    transform: translateY(-1px);
}.dt-pn-right a {
    flex-direction: row-reverse;
    text-align: right;
}.dt-pn-label {
    flex-shrink: 0;
    font-size: 12px;
    font-weight: 600;
    color: var(--c-primary);
    padding: 3px 8px;
    background: #fff;
    border: 1px solid rgba(255,107,53,.18);
    border-radius: var(--r-sm);
}.dt-pn-name {
    min-width: 0;
    font-size: 14px;
    color: var(--c-text-2);
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}.dt-pn-empty {
    display: block;
    padding: 12px 14px;
    font-size: 14px;
    color: var(--c-text-4);
    background: #fafbfc;
    border: 1px dashed var(--c-border);
    border-radius: var(--r-md);
    text-align: center;
}.pl-crumb {
    width: 1200px;
    max-width: calc(100% - 32px);
    padding: 0;
    justify-content: space-between;
    color: #000;
    line-height: 1.5;
}.pl-crumb a {
    color: #000;
}.pl-crumb a:hover {
    color: var(--c-primary);
}.pl-crumb .sep {
    color: #000;
}.pl-crumb .current {
    color: #000;
    font-weight: 600;
}.pl-crumb .site-crumb-inner {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    min-width: 0;
    flex: 1;
}.pl-crumb-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}.pl-crumb-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 16px;
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: var(--r-sm);
    font-size: 12px;
    font-weight: 500;
    color: var(--c-text-2);
    text-decoration: none;
    transition: all var(--ease);
    box-shadow: 0 1px 3px rgba(20,30,50,.04);
}.pl-crumb-btn:hover {
    border-color: var(--c-primary);
    color: var(--c-primary);
    background: var(--c-primary-soft);
    box-shadow: 0 2px 8px rgba(255,107,53,.15);
}.pl-crumb-btn svg {
    transition: transform var(--ease);
}.pl-crumb-btn:hover svg {
    transform: translateX(-2px);
}.pl-crumb-btn:last-child:hover svg {
    transform: translateX(2px);
}.pl-stage {
    position: relative;
    background: #000;
    overflow: hidden;
}.pl-stage-inner {
    width: 1200px;
    max-width: calc(100% - 32px);
    margin: 0 auto;
    padding: 0 0 6px;
    position: relative;
    z-index: 1;
}.pl-video {
    position: relative;
    width: 100%;
    background: #000;
}.pl-video-box {
    position: relative;
    z-index: 2;
    width: 100%;
    aspect-ratio: 16/9;
    background: #000;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}.pl-video-box * {
    box-sizing: border-box;
}.pl-video-box .MacPlayer {
    z-index: 2;
}.pl-video-box .MacPlayer table, .pl-video-box .MacPlayer tbody, .pl-video-box .MacPlayer tr, .pl-video-box .MacPlayer td, .pl-video-box .MacPlayer #playleft {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
}.pl-video-box iframe, .pl-video-box video, .pl-video-box embed, .pl-video-box object {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    margin: 0 auto;
}@supports not (aspect-ratio:16/9) {
    .pl-video-box { height: 0 !important;
    padding-bottom: 56.25% !important;
}.pl-video-box .MacPlayer {}
}.pl-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: nowrap;
    padding: 10px 14px;
    background: linear-gradient(180deg,#0d0d0d 0%,#050505 100%);
    border: 1px solid #1a1a1a;
    border-top: 1px solid rgba(255,255,255,.04);
    border-radius: 0;
}.pl-toolbar-left,.pl-toolbar-right {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: nowrap;
    flex: 1;
    min-width: 0;
}.pl-toolbar-right {
    justify-content: flex-end;
}.pl-tool-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    height: 32px;
    padding: 0 12px;
    background: rgba(255,255,255,.06);
    color: #888;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: var(--r-sm);
    font-size: 13px;
    font-weight: 500;
    transition: all .2s ease;
    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
}.pl-tool-btn:hover {
    background: rgba(255,255,255,.1);
    color: #aaa;
    border-color: rgba(255,255,255,.14);
}.pl-tool-btn--primary {
    background: rgba(255,255,255,.06);
    color: #888;
    border: 1px solid rgba(255,255,255,.08);
}.pl-tool-btn--primary:hover {
    background: rgba(255,255,255,.1);
    color: #aaa;
    border-color: rgba(255,255,255,.14);
    box-shadow: none;
    transform: none;
}.pl-tool-btn--disabled {
    opacity: .3;
    pointer-events: none;
    cursor: not-allowed;
}.pl-tool-btn svg {
    transition: transform .2s ease;
    opacity: .75;
}.pl-tool-btn:not(.pl-tool-btn--disabled):first-child:hover svg {
    transform: translateX(-2px);
}.pl-tool-btn:not(.pl-tool-btn--disabled):nth-child(2):hover svg {
    transform: translateX(2px);
}

@media(max-width:768px) {.pl-toolbar {
    padding: 8px 10px;
    gap: 6px;
}.pl-toolbar-left,.pl-toolbar-right {
    gap: 6px;
}.pl-tool-btn {
    height: 30px;
    padding: 0 8px;
    font-size: 12px;
    gap: 3px;
}.pl-tool-btn svg {
    width: 12px;
    height: 12px;
}
}

@media(max-width:480px) {.pl-toolbar {
    padding: 6px 8px;
    gap: 4px;
}.pl-toolbar-left,.pl-toolbar-right {
    gap: 4px;
}.pl-tool-btn {
    height: 28px;
    padding: 0 6px;
    font-size: 11px;
    gap: 2px;
}.pl-tool-btn svg {
    width: 11px;
    height: 11px;
}
}.pl-main {
    margin-top: 20px;
}.pl-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    align-items: start;
}.pl-content {
    min-width: 0;
}.page-box {
    margin: 20px 0 4px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    list-style: none;
}.page-box li {
    border-radius: var(--r-sm);
    background: var(--c-card);
    cursor: pointer;
    transition: all var(--ease);
    box-shadow: var(--sh-sm);
    border: 1px solid var(--c-border);
    list-style: none;
}.page-box li a {
    display: block;
    height: 32px;
    line-height: 30px;
    padding: 0 12px;
    font-size: 14px;
    color: var(--c-text-2);
    min-width: 32px;
    text-align: center;
}.page-box li:hover {
    background: var(--c-primary-soft);
    border-color: rgba(255,107,53,.2);
}.page-box li:hover a {
    color: var(--c-primary);
}.page-box .active {
    background: linear-gradient(135deg,var(--c-primary-2),var(--c-primary));
    border-color: transparent;
    box-shadow: 0 2px 8px rgba(255,107,53,.3);
}.page-box .active a {
    color: #fff;
    font-weight: 500;
}.movie-foot {
    width: 100%;
    background: #fff;
    border-top: 1px solid var(--c-border);
    text-align: center;
}.movie-foot .tips {
    color: var(--c-text-3);
    font-size: 12px;
    max-width: 1200px;
    margin: 0 auto 8px;
    padding: 0 16px;
    line-height: 1.8;
}.movie-foot .link {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}.movie-foot .link a {
    color: #fff;
    font-size: 1px;
}.movie-message {
    background: var(--c-card);
    border: 1px solid var(--c-border);
    border-radius: var(--r-lg);
    padding: 20px;
    margin-bottom: 12px;
    box-shadow: var(--sh-sm);
}.movie-message .title {
    font-size: 14px;
    font-weight: 600;
    color: var(--c-text);
    padding-bottom: 10px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--c-border);
}.message-form textarea {
    width: 100%;
    min-height: 100px;
    padding: 10px 12px;
    background: var(--c-bg);
    border-radius: var(--r-md);
    font-size: 14px;
    color: var(--c-text);
    resize: vertical;
    transition: border-color var(--ease);
}.message-form textarea:focus {
    background: #fff;
    box-shadow: 0 0 0 2px rgba(255,107,53,.15);
}.code-box {
    margin-top: 10px;
    gap: 8px;
}.code-box .code {
    flex: 1;
    height: 36px;
    padding: 0 12px;
    background: var(--c-bg);
    border-radius: var(--r-md);
    font-size: 14px;
    color: var(--c-text);
}.code-box .code:focus {
    background: #fff;
    box-shadow: 0 0 0 2px rgba(255,107,53,.15);
}.message-button {
    margin-top: 12px;
    gap: 12px;
}.reset-btn,.submit-btn {
    height: 36px;
    padding: 0 24px;
    border-radius: var(--r-pill);
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all var(--ease);
}.reset-btn {
    background: var(--c-bg);
    color: var(--c-text-2);
}.reset-btn:hover {
    background: var(--c-border);
}.submit-btn,.btn-primary {
    background: linear-gradient(135deg,var(--c-primary-2),var(--c-primary));
    color: #fff;
    box-shadow: 0 2px 8px rgba(255,107,53,.3);
}.submit-btn:hover,.btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(255,107,53,.4);
}

@media screen and (max-width:1024px) {.movie-header .h-main {
    max-width: calc(100% - 24px);
}.movie-header .h-main .h-link {
    margin-right: 20px;
}.movie-header .h-main .h-nav li .title {
    padding: 0 10px;
}.movie-header .h-main .h-search {
    width: 180px;
}.movie-main {
    max-width: calc(100% - 24px);
    margin: 14px auto;
}.fl-section {
    padding: 18px;
}.fl-poster-grid {
    grid-template-columns: repeat(4,1fr);
    gap: 16px 14px;
}.fl-duo {
    align-items: start;
}.fl-duo-main,.fl-duo-side {
    padding: 18px;
}.fl-poster-grid--duo {
    flex: none;
    align-content: start;
}.fl-rank-list {
    overflow: visible;
    flex: 0 0 auto;
}.fl-rank-item {
    flex: 0 0 auto;
}.fl-rank-link {
    padding: 8px 6px;
    gap: 8px;
}.ct-card {
    padding: 18px;
}.ct-poster-grid {
    grid-template-columns: repeat(4,1fr);
    gap: 16px 14px;
}.ct-poster-section {
    padding: 18px;
}.dt-hero {}.dt-rate {
    padding: 10px 6px;
    gap: 4px;
}.dt-rate-score {
    font-size: 22px;
}.dt-rate-label {
    margin-top: 1px;
}.dt-rate-stars {
    transform: scale(.78);
}.dt-rate-btns {
    gap: 10px;
}.dt-rate-btn svg {
    width: 12px;
    height: 12px;
}.dt-section {}.movie-channel {}.channel-set {}.channel-set li a {
    height: 38px;
    padding: 0 6px;
}.pl-video-box {}
}

@media screen and (max-width:768px) {:root {}body {
    overflow-x: hidden;
}.movie-header .h-main {}.movie-header .h-main .h-link {
    margin-right: 12px;
}.movie-header .h-main .h-link .h-icon {
    height: 20px;
}.movie-header .h-main .h-nav {
    gap: 0;
}.movie-header .h-main .h-nav::-webkit-scrollbar {}.movie-header .h-main .h-nav li .title {}.movie-header .h-main .h-nav li.active::after {}.movie-header .h-main .h-search, .movie-header .h-main .h-function {}.wap-header {}.wap-header .wap-box-search {}.wap-header .wap-box-search .wap-box-search-form {}.wap-header .wap-box-search .inp {}.wap-header .wap-box-search .btn {
    flex-shrink: 0;
}.wap-header .wap-message {
    flex-shrink: 0;
}.movie-main {}.site-crumb {
    font-size: 12px;
    margin-bottom: 12px;
    gap: 8px;
}.site-crumb-inner {
    gap: 6px;
}.site-crumb .current {
    max-width: 160px;
}.pl-crumb {
    width: 100%;
    max-width: 100%;
    padding: 0 12px;
    margin: 0 auto 2px;
}.pl-video-box {}.fl-section {
    border-radius: 10px;
}.fl-section:hover {
    box-shadow: var(--sh-sm);
}.fl-section-head {}.fl-title {
    gap: 6px;
}.fl-title::before {
    height: 14px;
    width: 3px;
}.fl-sub {}.fl-tabs {
    gap: 4px;
    flex: 1;
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}.fl-tabs::-webkit-scrollbar {
    display: none;
}.fl-tabs a {
    padding: 5px 12px;
    font-size: 12px;
    white-space: nowrap;
    flex-shrink: 0;
}.fl-more {}.fl-poster-grid {
    gap: 14px 10px;
}.fl-cover {
    border-radius: var(--r-sm);
}.fl-tag {
    font-size: 12px;
    padding: 2px 6px;
    top: 4px;
    left: 4px;
}.fl-remark {
    font-size: 12px;
    padding: 2px 6px;
    right: 4px;
    bottom: 4px;
}.fl-name {}.fl-meta {
    font-size: 12px;
    margin-top: 4px;
}.fl-duo {}.fl-duo-main,.fl-duo-side {}.fl-duo-main .fl-section-head, .fl-duo-side .fl-rank-head {
    margin-bottom: 14px;
    height: auto;
    gap: 8px;
}.fl-rank-tabs {}.fl-rank-tab {
    justify-content: center;
}.fl-poster-grid--duo {}.fl-rank-list {
    flex: 0 0 auto;
}.fl-rank-item {}.fl-rank-link {}.fl-rank-no {
    flex-shrink: 0;
}.fl-rank-name {}.fl-rank-meta {
    font-size: 12px;
    margin-top: 3px;
}.ct-card {
    padding: 14px;
    border-radius: 10px;
    margin-bottom: 12px;
}.ct-filter {
    flex-direction: column;
    gap: 8px;
    padding: 10px 0;
}.ct-filter-label {
    width: auto;
    line-height: 1.4;
    font-size: 12px;
}.ct-filter-opts {
    gap: 6px;
}.ct-filter-opts a {
    padding: 5px 12px;
    font-size: 12px;
}.ct-section-head {
    margin-bottom: 12px;
}.ct-section-title {
    gap: 6px;
}.ct-section-title::before {
    height: 14px;
    width: 3px;
}.ct-section-sub {
    font-size: 12px;
}.ct-poster-section {
    padding: 16px 14px;
    border-radius: 10px;
}.ct-cover {
    border-radius: var(--r-sm);
}.ct-tag {
    font-size: 12px;
    padding: 2px 6px;
    top: 4px;
    left: 4px;
}.ct-remark {
    font-size: 12px;
    padding: 2px 6px;
    right: 4px;
    bottom: 4px;
}.ct-score {
    top: 4px;
    right: 4px;
}.ct-name {}.ct-meta {
    font-size: 12px;
    margin-top: 4px;
}.ct-search-bar {
    padding: 14px 16px;
    border-radius: 10px;
    margin-bottom: 12px;
    font-size: 12px;
    gap: 8px;
    flex-wrap: wrap;
}.ct-search-word {
    font-size: 14px;
    max-width: 180px;
}.ct-search-count {
    font-size: 12px;
}.ct-search-tip {
    font-size: 12px;
    margin: 14px 14px 6px;
}.page-box {
    margin: 16px 0 4px;
    gap: 4px;
}.page-box li a {
    height: 28px;
    line-height: 26px;
    padding: 0 10px;
    font-size: 12px;
    min-width: 28px;
}.page-box li.hidden-xs {
    display: none;
}.dt-hero {}.dt-poster {
    grid-area: poster;
    width: 108px;
    margin: 0;
}.dt-score-badge {
    font-size: 11px;
    padding: 2px 6px;
}.dt-info {
    grid-area: info;
    width: 100%;
    min-width: 0;
    justify-content: flex-start;
}.dt-title {
    text-align: left;
    margin: 0 0 8px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}.dt-tags {
    justify-content: flex-start;
    margin: 0 0 8px;
    gap: 8px;
}.dt-tag {
    padding: 3px 10px;
    font-size: 12px;
}.dt-meta-list {
    margin: 0;
    padding: 8px 10px;
    background: transparent;
    border-radius: 0;
}.dt-meta-row {
    font-size: 12px;
    padding: 3px 0;
    gap: 6px;
    align-items: flex-start;
    line-height: 1.5;
}.dt-meta-label {
    width: 30px;
    flex: none;
    font-size: 11px;
}.dt-meta-value {
    flex: 1;
    min-width: 0;
}.dt-actions {}.dt-btn {
    padding: 0 10px;
    gap: 5px;
    flex: none;
    width: 100%;
}.dt-btn svg {
    width: 15px;
    height: 15px;
}.dt-btn-icon {
    padding: 0 4px;
}.dt-rate {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    row-gap: 10px;
    text-align: left;
    background: linear-gradient(160deg,#fff5ed 0%,#fff 70%);
    border: 1px solid rgba(255,107,53,.22);
    border-radius: var(--r-md);
    box-shadow: 0 4px 12px rgba(255,107,53,.08);
}.dt-rate::before,.dt-rate::after {
    display: none;
}.dt-rate-top {
    margin: 0;
    display: flex;
    align-items: baseline;
    gap: 6px;
}.dt-rate-score {
    font-size: 22px;
    margin: 0;
}.dt-rate-label {
    margin: 0;
    font-size: 11px;
}.dt-rate-stars {
    margin: 0;
    transform: scale(.85);
    transform-origin: left center;
}.dt-rate-btns {
    gap: 14px;
    margin: 0;
}.dt-rate-btn {
    font-size: 11px;
    gap: 2px;
}.dt-rate-btn svg {
    width: 14px;
    height: 14px;
}.dt-section {}.dt-section-title {
    margin-bottom: 12px;
}.dt-content {
    padding: 14px;
}.dt-content p {
    margin: 0 0 8px;
}.movie-channel {}.channel-box-header {
    margin-bottom: 12px;
    flex-wrap: nowrap;
    align-items: center;
}.channel-header {}.channel-header .title {
    padding: 4px 10px;
}.channel-tip {
    display: none;
}.channel-sort-tabs {
    flex-shrink: 0;
}.channel-sort-btn {}.channel-set {}.channel-set li a {
    min-width: 0;
}.history-badge {
    padding: 0 4px;
}.ct-poster-grid {
    gap: 14px 10px;
}.dt-prev-next {}.dt-pn-item a {
    padding: 12px 14px;
}.dt-pn-right a {
    flex-direction: row;
    text-align: left;
}.dt-pn-label {
    font-size: 12px;
    padding: 2px 8px;
}.dt-pn-name {
    font-size: 12px;
}.pl-crumb-btn {
    height: 28px;
    padding: 0 12px;
    font-size: 12px;
    gap: 4px;
}.pl-stage-inner {
    width: 100%;
    max-width: 100%;
    padding: 0 0 4px;
}.pl-main {
    margin-top: 16px;
}.movie-message {
    padding: 14px;
    border-radius: 10px;
}.movie-message .title {
    font-size: 14px;
    padding-bottom: 10px;
    margin-bottom: 12px;
}.message-form textarea {
    min-height: 80px;
    font-size: 14px;
}.code-box .code {
    height: 38px;
    font-size: 14px;
}.message-button {
    gap: 8px;
}.reset-btn,.submit-btn {
    flex: 1;
    height: 38px;
    padding: 0 12px;
    font-size: 14px;
    border-radius: var(--r-pill);
}.movie-foot {
    padding: 16px 0;
}.movie-foot .tips {
    font-size: 12px;
}
}

@media screen and (max-width:480px) {.dt-hero {}.dt-poster {
    width: 96px;
}.dt-title {
    margin-bottom: 6px;
}.dt-tags {
    gap: 6px;
    margin-bottom: 6px;
}.dt-tag {
    padding: 2px 8px;
    font-size: 11px;
}.dt-meta-list {
    padding: 6px 8px;
}.dt-meta-row {
    padding: 2px 0;
}.dt-meta-label {}.dt-actions {
    gap: 8px;
    margin: 0;
}.dt-btn {
    height: 38px;
    font-size: 13px;
}.dt-rate {}.dt-rate-score {}.dt-rate-stars {}.dt-rate-btns {}.channel-set {}.channel-set li a {
    height: 36px;
    padding: 0 4px;
    min-width: 0;
}.fl-poster-grid {
    gap: 12px 8px;
}.ct-poster-grid {
    gap: 12px 8px;
}.pl-crumb-actions {
    gap: 6px;
}.pl-crumb-btn {
    height: 28px;
    padding: 0 10px;
    font-size: 12px;
}.wap-header {
    padding: 6px 12px;
    gap: 6px;
}.wap-header .wap-box-search {
    height: 34px;
}.wap-header .wap-message {
    height: 30px;
    padding: 0 14px;
    font-size: 12px;
}
}

@media screen and (max-width:360px) {.fl-poster-grid {}.ct-poster-grid {}.fl-poster-grid--duo {}
}a, button, input, select, textarea, label, [onclick], .fl-cover, .ct-cover, .fl-poster, .ct-poster, .channel-set li, .fl-rank-item, .fl-rank-tab, .channel-sort-btn, .dt-tag, .ct-tag, .fl-tag {
    touch-action: manipulation;
}.fl-cover, .ct-cover, .h-icon, .dt-poster img, .pl-crumb {
    -webkit-touch-callout: none;
}@supports (height: 100dvh) {
    body { min-height: 100dvh;
}
}@supports (padding: env(safe-area-inset-top)) {
    .movie-header { height: calc(var(--header-h) + env(safe-area-inset-top));
    padding-top: env(safe-area-inset-top);
    box-sizing: border-box;
}.movie-header .h-main {
    height: var(--header-h);
}.wap-header {
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
}.movie-main, .pl-stage-inner {
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
}.pl-crumb {
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
}.movie-foot {
    padding-bottom: calc(14px + env(safe-area-inset-bottom));
}.pl-video-box {
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
}
}@supports (overflow-x: clip) {
    @media screen and (max-width: 768px) { body { overflow-x: clip;
}
}
}

@media screen and (max-width: 768px) {.channel-sort-btn {}.channel-sort-tabs {
    gap: 8px;
}.channel-set {}.channel-set li > a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 4px;
}.fl-rank-tab {}.fl-rank-link {}.fl-rank-list {}.fl-more {}.h-nav li .title {
    padding: 0 14px;
}.dt-tag, .ct-tag {
    min-height: 26px;
    display: inline-flex;
    align-items: center;
}
}.fl-name, .ct-name, .dt-title, .fl-rank-name, .channel-header .title, .site-crumb .current {
    overflow-wrap: anywhere;
    word-break: break-word;
}.h-icon {
    width: auto;
    height: 20px;
    object-fit: contain;
}

@media screen and (max-width: 768px) {.dt-actions {
    grid-area: actions;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 10px;
    width: 100%;
    margin: 0;
}
}

@media screen and (max-width: 768px) {.dt-btn {
    height: 40px;
    font-size: 13px;
}.dt-pn-item {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
}
}

@media screen and (max-width: 480px) {.dt-meta-row {
    font-size: 12px;
    gap: 8px;
}.dt-meta-label {
    width: 32px;
    font-size: 11px;
}
}

@media screen and (max-width: 359px) {.movie-header .h-main {
    padding: 0 8px;
}.movie-header .h-main .h-link {
    margin-right: 6px;
}.movie-header .h-main .h-nav li .title {
    padding: 0 8px;
    font-size: 13px;
}.wap-header {
    padding: 6px 8px;
    gap: 6px;
}.movie-main {
    padding: 0 8px;
}.fl-section {
    padding: 14px 10px;
    border-radius: 8px;
}.fl-duo-main, .fl-duo-side {
    padding: 12px 10px;
}.fl-poster-grid, .ct-poster-grid {
    gap: 12px 6px;
}.fl-poster-grid--duo {
    gap: 12px 6px !important;
}.channel-set {}.dt-hero {
    grid-template-columns: 84px 1fr;
    gap: 8px;
    padding: 10px;
}.dt-poster {
    width: 84px;
}.dt-title {
    font-size: 15px;
}.dt-rate {
    gap: 8px;
    padding: 8px 10px;
}.dt-rate-score {
    font-size: 18px;
}.movie-foot .tips {
    padding: 0 10px;
    font-size: 11px;
}
}

@media screen and (orientation: landscape) and (max-height: 520px) {.pl-video-box {
    /* lj_ratio: 沉浸式宽银幕 —— 固定 21:9，画面更宽更扁， 控制条相对占比更小，对字幕的遮挡明显减轻。 原值是 aspect-ratio: auto + height: calc(100vh - 96px)， 容器高度跟着视口走，宽屏上被拉成接近方形。 */ aspect-ratio: 21 / 9 !important;
    height: auto !important;
    max-height: none !important;
    padding-bottom: 0 !important;
}.pl-crumb {
    margin: 4px auto 2px;
    font-size: 12px;
}.pl-stage-inner {
    padding-bottom: 0;
}.movie-foot {
    padding: 10px 0;
}
}

@media screen and (min-width: 1440px) {:root {}
}

@media screen and (min-width: 1680px) {:root {
    --w-main: 1440px;
}
}

@media (prefers-reduced-motion: reduce) {*, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
}
}a:focus-visible, button:focus-visible, input:focus-visible, .fl-cover:focus-visible {
    outline: 2px solid var(--c-primary);
    outline-offset: 2px;
    border-radius: 4px;
}.dt-rate-score {
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    background: none;
    -webkit-background-clip: border-box;
    -webkit-text-fill-color: currentColor;
    background-clip: border-box;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
    text-shadow: none;
    color: var(--c-primary);
}.dt-rate-label {
    font-size: 11px;
    color: var(--c-text-3);
    margin-top: 2px;
    font-weight: 500;
    letter-spacing: 0;
    margin: 0;
}.dt-rate-stars {
    align-items: center;
    justify-content: center;
    margin: 0 -14px 0 -4px;
    position: relative;
    z-index: 1;
    transform: scale(.66);
    transform-origin: left center;
}.dt-rate-btns {
    justify-content: center;
    gap: 10px;
    position: relative;
    z-index: 1;
}.dt-rate-btn {
    flex-direction: row;
    align-items: center;
    gap: 3px;
    min-width: 0;
    font-size: 11px;
    color: var(--c-text-3);
    transition: color var(--ease),transform var(--ease);
}.dt-rate-btn svg {
    width: 13px;
    height: 13px;
}

@media screen and (max-width: 768px) {.dt-hero {}.dt-rate {
    grid-area: rate;
}.dt-actions {
    justify-content: flex-start;
    align-self: start;
}
}

@media screen and (max-width: 480px) {.dt-hero {}.dt-rate {}.dt-rate-score {
    font-size: 14px;
}.dt-rate-label {
    font-size: 10px;
}.dt-rate-stars {
    transform: scale(.58);
    margin: 0 -16px 0 -3px;
}.dt-rate-btn {
    font-size: 10px;
    gap: 2px;
}.dt-rate-btn svg {
    width: 12px;
    height: 12px;
}.dt-rate-btns {
    gap: 8px;
}
}.dt-rate::before, .dt-rate::after {
    display: none !important;
}.dt-rate {
    grid-area: rate;
    padding: 4px 11px;
    background: var(--c-primary-soft);
    border: 1px solid rgba(255, 107, 53, .16);
    border-radius: 999px;
    text-align: center;
    box-shadow: none;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    position: relative;
    overflow: visible;
    align-self: center;
    /* 不再拉伸占满整格 */ justify-self: end;
    /* 胶囊形 */ box-shadow: none;
    /* 去掉原来的渐变底与投影 */ text-align: left;
    width: fit-content;
    max-width: 100%;
    justify-self: end;
}.dt-stars {
    display: inline-flex;
    gap: 1px;
    font-size: 13px;
    line-height: 1;
    letter-spacing: 0;
}.dt-stars i {
    font-style: normal;
    font-weight: normal;
}.dt-stars .s-on {
    color: #ffb400;
}.dt-stars .s-off {
    color: #dfe3e9;
}.dt-stars .s-half {
    background: linear-gradient(90deg, #ffb400 50%, #dfe3e9 50%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: #ffb400;
}.dt-score {
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    color: var(--c-primary);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
}.dt-rate-top, .dt-rate-score, .dt-rate-label, .dt-rate-stars, .dt-rate-btns, .dt-rate-btn {
    display: none;
}

@media screen and (max-width: 768px) {.dt-rate {
    justify-self: start;
    align-self: start;
    margin-top: -2px;
}.dt-stars {
    font-size: 12px;
}.dt-score {
    font-size: 13px;
}
}

@media screen and (max-width: 480px) {.dt-rate {}.dt-stars {
    font-size: 11px;
}.dt-score {
    font-size: 12px;
}
}

@media screen and (max-width: 768px) {.dt-hero {}.dt-actions .dt-rate {
    grid-area: auto;
    justify-self: auto;
    align-self: auto;
    margin: 0;
    /* 与移动端 .dt-btn 一致 */ font-size: 13px;
}.dt-actions .dt-rate .dt-stars {
    font-size: 12px;
}.dt-actions .dt-rate .dt-score {}
}

@media screen and (max-width: 480px) {.dt-hero {}.dt-actions .dt-rate {}.dt-actions .dt-rate .dt-stars {
    font-size: 11px;
}.dt-actions .dt-rate .dt-score {}
}

@media screen and (max-width: 359px) {.dt-actions {
    grid-template-columns: 1fr;
}
}

@media screen and (max-width: 768px) {.dt-actions .dt-rate {}.dt-actions .dt-rate .dt-score {}.dt-actions .dt-rate .dt-rate-num {}
}

@media screen and (max-width: 480px) {.dt-actions .dt-rate {}.dt-actions .dt-rate .dt-score {}.dt-actions .dt-rate .dt-rate-num {}.dts-list button {}
}.dt-actions .dt-rate:active {
    transform: scale(.97);
}.dt-actions .dt-rate .dt-stars {
    display: none;
    gap: 1px;
    font-size: 12px;
    line-height: 1;
    transform: none;
    /* 重置第三批的 scale */ margin: 0;
}.dts-mask {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background: rgba(0, 0, 0, .45);
    z-index: 9998;
    opacity: 0;
    transition: opacity .22s ease, visibility .22s ease;
    -webkit-tap-highlight-color: transparent;
    visibility: hidden;
}.dts-mask.on {
    opacity: 1;
    visibility: visible;
}.dts-toast {
    position: fixed;
    left: 50%;
    top: 42%;
    transform: translate(-50%, -50%) scale(.92);
    z-index: 10000;
    background: rgba(0, 0, 0, .82);
    color: #fff;
    font-size: 14px;
    line-height: 1.5;
    padding: 11px 18px;
    border-radius: 10px;
    max-width: 76vw;
    text-align: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease, transform .22s ease;
}.dts-toast.on {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

@media screen and (max-width: 768px) {.dt-actions .dt-rate {
    height: 40px;
    padding: 0 13px;
    gap: 8px;
}.dt-actions .dt-rate .dt-score {
    font-size: 20px;
}.dt-actions .dt-rate .dt-rate-num {
    font-size: 11px;
}
}

@media screen and (max-width: 480px) {.dt-actions .dt-rate {
    padding: 0 11px;
    gap: 7px;
}.dt-actions .dt-rate .dt-score {
    font-size: 19px;
}.dt-actions .dt-rate .dt-rate-num {
    font-size: 10px;
}.dts-list button {}
}.dts-sheet {
    position: fixed;
    left: 50%;
    right: auto;
    bottom: 0;
    z-index: 9999;
    background: #fff;
    border-radius: 14px;
    padding: 18px 16px 14px;
    box-shadow: 0 20px 56px rgba(20, 30, 50, .24);
    transform: translate(-50%, -46%) scale(.94);
    transition: opacity .2s ease, transform .2s cubic-bezier(.34, .69, .1, 1), visibility .2s ease;
    max-width: 560px;
    margin: 0 auto;
    top: 50%;
    width: min(400px, calc(100vw - 32px));
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    /* ---- 定位：真正居中 ---- */ left: 50%;
    /* 关键：复位第 5 批的 right: 0 */ bottom: auto;
    /* 关键：复位第 5 批的 bottom: 0，否则高度会被拉伸 */ margin: 0;
    /* 复位第 5 批的 margin: 0 auto */ max-width: none;
    /* 复位第 5 批的 max-width: 560px */ height: auto;
    box-sizing: border-box;
    /* ---- 尺寸：收小 ---- */ width: min(340px, calc(100vw - 40px));
}.dts-sheet.on {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}.dts-head {
    font-size: 14px;
    font-weight: 600;
    color: var(--c-text);
    text-align: center;
    margin-bottom: 14px;
    line-height: 1.5;
}.dts-list {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 6px;
    margin-bottom: 12px;
}.dts-list button {
    height: 40px;
    /* 触控友好 */ border: 1px solid var(--c-border);
    background: #fff;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 600;
    color: var(--c-text-2);
    cursor: pointer;
    transition: all .16s ease;
    -webkit-tap-highlight-color: transparent;
    font-variant-numeric: tabular-nums;
    border: 1px solid var(--c-border);
}.dts-list button:hover, .dts-list button:active {
    border-color: var(--c-primary);
    color: var(--c-primary);
    background: var(--c-primary-soft);
}.dts-cancel {
    display: block;
    width: 100%;
    height: 38px;
    border: none;
    background: var(--c-bg);
    border-radius: 8px;
    font-size: 13px;
    color: var(--c-text-3);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}.dts-cancel:hover {
    background: #eef0f4;
}

@media screen and (max-width: 480px) {.dts-sheet {
    width: calc(100vw - 36px);
    padding: 16px 14px 12px;
    border-radius: 12px;
}.dts-head {
    font-size: 14px;
    margin-bottom: 12px;
}.dts-list {
    gap: 6px;
    margin-bottom: 10px;
}.dts-list button {
    height: 42px;
    font-size: 15px;
}.dts-cancel {
    height: 40px;
}
}.channel-set li.active > a::after {
    box-shadow: 0 0 0 2px #fff;
}.channel-set li.is-new > a::after {}.channel-set li.is-new.active > a::after {
    box-shadow: 0 0 0 2px #fff;
}

@media screen and (max-width: 768px) {.channel-set li.is-new > a::after {}
}

@media screen and (max-width: 359px) {.channel-set li.is-new > a::after {}
}.channel-set li.is-new > a::after, .channel-set li.is-new > a:link::after, .channel-set li.is-new > a:visited::after {}

@media screen and (max-width: 1024px) {.channel-set {}
}

@media screen and (max-width: 768px) {.channel-set {}.channel-set li a {}
}

@media screen and (max-width: 480px) {.channel-set {}.channel-set li a {}
}

@media screen and (max-width: 359px) {.channel-set {}
}.channel-set li {
    list-style: none;
    min-width: 0;
    position: relative;
}.channel-set li.active .history-badge {
    background: #fff;
    color: #4a8cf0;
    box-shadow: inset 0 0 0 1px rgba(74, 140, 240, .45);
}

@media screen and (max-width: 1024px) {.channel-set {}
}

@media screen and (max-width: 768px) {.channel-set {}.channel-set li a {}.history-badge {
    width: 14px;
    height: 14px;
    line-height: 14px;
    font-size: 10px;
    top: 0;
    left: 0;
    right: auto;
}
}

@media screen and (max-width: 480px) {.channel-set {}.channel-set li a {}
}

@media screen and (max-width: 359px) {.channel-set {}.channel-set li a {}.history-badge {
    width: 13px;
    height: 13px;
    line-height: 13px;
    font-size: 9px;
}
}.movie-channel:last-child {
    margin-bottom: 0;
}.channel-header {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    flex: 1;
}.channel-tip:empty {
    display: none;
}.channel-tip {
    font-size: 12px;
    color: var(--c-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}.channel-sort-tabs {
    flex-shrink: 0;
}.channel-sort-btn {}.channel-sort-btn svg {
    transition: transform .18s ease;
    opacity: .8;
}.play-content {
    margin-top: 12px;
}#play-list {
    padding-bottom: 16px;
    padding: 16px 18px 14px;
}#play-list .dt-section-title {
    margin-bottom: 12px;
}

@media screen and (max-width: 1024px) {.movie-channel {}
}

@media screen and (max-width: 768px) {.movie-channel {
    margin-bottom: 9px;
}.channel-box-header {
    padding-bottom: 9px;
    gap: 8px;
}.channel-header {
    flex: 1;
    min-width: 0;
    gap: 6px;
}.channel-header .title {}.channel-header .title::before {}.channel-sort-btn {
    height: 26px;
}.channel-sort-btn + .channel-sort-btn {
    margin-left: 0;
}.play-content {
    margin-top: 10px;
}#play-list {
    padding: 14px 12px 12px;
}
}

@media screen and (max-width: 480px) {.channel-header .title {}.channel-sort-btn {
    height: 25px;
}.channel-sort-btn svg {
    width: 7px;
    height: 7px;
}
}.channel-set {
    display: none;
}.channel-sort-btn.active {}.channel-sort-btn.active svg {
    opacity: 1;
    color: var(--c-text-2);
}.channel-sort-btn:hover {}

@media screen and (max-width: 1024px) {.channel-set {
    grid-template-columns: repeat(auto-fill, minmax(52px, 1fr));
    gap: 9px;
}
}

@media screen and (max-width: 768px) {.channel-set {}
}

@media screen and (max-width: 480px) {.channel-set {
    grid-template-columns: repeat(auto-fill, minmax(44px, 1fr));
    gap: 7px;
}
}

@media screen and (max-width: 359px) {.channel-set {
    grid-template-columns: repeat(auto-fill, minmax(40px, 1fr)) !important;
    gap: 6px;
}
}.channel-sort-btn, .channel-sort-btn.active {}.channel-header .title {
    display: inline-flex;
    align-items: center;
    padding: 0 0 0 10px;
    background: none;
    border-radius: 0;
    box-shadow: none;
    position: relative;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-left: 17px;
}@keyframes lj-src-dot {
    0% { box-shadow: 0 0 0 0 rgba(255, 107, 53, .45);
}70% {
    box-shadow: 0 0 0 6px rgba(255, 107, 53, 0);
}100% {
    box-shadow: 0 0 0 0 rgba(255, 107, 53, 0);
}
}@keyframes lj-src-ring {
    0% { transform: translateY(-50%) scale(1);
    opacity: .38;
}70% {}100% {}
}

@media screen and (max-width: 768px) {.channel-header .title {
    padding-left: 15px;
}.channel-header .title::before, .channel-header .title::after {
    left: 2px;
    width: 7px;
    height: 7px;
}
}

@media screen and (max-width: 480px) {.channel-header .title {
    padding-left: 14px;
}.channel-header .title::before, .channel-header .title::after {
    left: 2px;
    width: 6px;
    height: 6px;
}
}@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .dt-hero, .dt-section { background: rgba(255, 255, 255, .68);
    -webkit-backdrop-filter: blur(22px) saturate(180%);
    backdrop-filter: blur(22px) saturate(180%);
    border-color: rgba(255, 255, 255, .78);
    box-shadow: 0 1px 2px rgba(20, 30, 50, .03), 0 12px 36px -14px rgba(20, 30, 50, .13), inset 0 1px 0 rgba(255, 255, 255, .85);
}
}.dt-section {
    padding: 20px 22px;
    margin-bottom: 14px;
}.dt-poster {
    grid-area: poster;
    position: relative;
    width: 100%;
    align-self: start;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 6px 20px -8px rgba(20, 30, 50, .28);
}.dt-title {
    color: var(--c-text);
    margin: 0 0 10px;
    word-break: break-word;
    margin-bottom: 9px;
}.dt-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 11px;
}.dt-tag {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    font-size: 12px;
    font-weight: 400;
    color: var(--c-text-2);
    background: rgba(20, 30, 50, .045);
    border: 1px solid transparent;
    border-radius: 7px;
    text-decoration: none;
}.dt-tag-primary {
    color: var(--c-primary);
    background: rgba(255, 107, 53, .10);
    border-color: transparent;
    font-weight: 500;
}.dt-meta-list {
    padding: 0;
    margin-bottom: 0;
    background: none;
    border-radius: 0;
}.dt-meta-row {
    display: flex;
    gap: 14px;
    padding: 6px 0;
    font-size: 13px;
    line-height: 1.6;
}.dt-meta-row + .dt-meta-row {
    border-top: 1px solid rgba(20, 30, 50, .05);
}.dt-meta-label {
    flex-shrink: 0;
    width: 34px;
    color: var(--c-text-3);
    font-weight: 400;
}.dt-meta-value {
    color: var(--c-text-2);
    min-width: 0;
    flex: 1;
    word-break: break-word;
}.dt-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 34px;
    padding: 0 16px;
    font-size: 13px;
    font-weight: 400;
    border-radius: 9px;
    cursor: pointer;
    transition: all var(--ease);
    border: 1px solid transparent;
    white-space: nowrap;
    min-width: 0;
}.dt-btn-ghost:hover {
    background: rgba(255, 255, 255, .95);
    color: var(--c-primary);
    border-color: rgba(255, 107, 53, .28);
    box-shadow: 0 6px 16px -6px rgba(255, 107, 53, .3);
}.dt-actions .dt-rate:hover {
    background: rgba(255, 107, 53, .16);
    border-color: rgba(255, 107, 53, .3);
}.dt-actions .dt-rate .dt-score {
    font-size: 20px;
    font-weight: 600;
    line-height: 1;
    color: #ff6b35;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.5px;
    background: none;
    -webkit-background-clip: border-box;
    background-clip: border-box;
    -webkit-text-fill-color: currentColor;
    /* 不支持 background-clip: text 时的回退色 */;
    /* 显式重置，防止继承到 transparent */ text-shadow: 0 1px 2px rgba(255, 107, 53, .16);
}.dt-actions .dt-rate .dt-rate-num {
    font-size: 11px;
    font-weight: 400;
    color: var(--c-text-3);
    letter-spacing: 0;
}.dt-actions .dt-rate .dt-rate-sep {
    display: block;
    width: 1px;
    height: 15px;
    flex: 0 0 auto;
    background: rgba(255, 107, 53, .22);
}.dt-section-title::before {
    content: "";
    width: 3px;
    height: 13px;
    border-radius: 2px;
}.movie-channel:hover {
    border-color: rgba(255, 107, 53, .16);
    box-shadow: none;
}.channel-box-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0;
    flex-wrap: nowrap;
    gap: 10px;
    padding-bottom: 11px;
    border-bottom: 1px solid rgba(20, 30, 50, .05);
}.channel-set li.active a {
    background: linear-gradient(135deg, var(--c-primary-2), var(--c-primary));
    color: #fff;
    font-weight: 600;
    box-shadow: 0 8px 20px -6px rgba(255, 107, 53, .5);
    border-color: transparent;
}

@media screen and (max-width: 1024px) {.dt-hero {
    padding: 16px;
}.dt-section {
    padding: 18px;
}.movie-channel {
    padding: 12px 13px 14px;
}
}

@media screen and (max-width: 768px) {.dt-hero, .dt-section {
    border-radius: 16px;
}.dt-hero {}.dt-section {}.movie-channel {
    padding: 12px 12px 13px;
    border-radius: 12px;
}.dt-title {}.channel-set li a {}
}

@media screen and (max-width: 480px) {.dt-hero, .dt-section {
    border-radius: 14px;
}.dt-hero {
    padding: 12px;
}.dt-section {
    padding: 13px 11px;
}.dt-poster {
    border-radius: 10px;
}.channel-set li a {}.channel-set li a:hover {
    transform: none;
}
}

@media (prefers-reduced-motion: reduce) {.channel-set li a:hover {}.dt-btn-ghost:hover {
    transform: none;
}
}.dt-hero, .dt-section {
    border-radius: 18px;
}.movie-channel {
    background: rgba(255, 255, 255, .55);
    border: 1px solid rgba(20, 30, 50, .045);
    border-radius: 14px;
    padding: 13px 15px 15px;
    margin-bottom: 10px;
    box-shadow: none;
    transition: border-color var(--ease),box-shadow var(--ease);
}.dt-btn-ghost {
    background: #fff;
    color: var(--c-text-2);
    border-color: rgba(20, 30, 50, .08);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}.dt-actions .dt-rate {
    grid-area: auto;
    /* 已不是网格子元素，重置定位属性 */ justify-self: auto;
    align-self: auto;
    margin: 0;
    width: auto;
    max-width: none;
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    gap: 9px;
    height: 34px;
    /* 与 .dt-btn 一致 */ padding: 0 14px;
    border: 1px solid rgba(255, 107, 53, .22);
    border-radius: 9px;
    /* 方正圆角，与 .dt-btn 同 */ background: var(--c-primary-soft);
    color: var(--c-primary);
    font-size: 13px;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
    box-shadow: none;
    overflow: visible;
    cursor: pointer;
    /* 只读信息，非可点按钮 */ user-select: none;
    -webkit-user-select: none;
    padding: 0 14px;
    background: rgba(255, 107, 53, .10);
    /* 可点击 —— 与「备用网址」一致 */ user-select: none;
    -webkit-tap-highlight-color: transparent;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
    flex-direction: row;
    /* 明确左右排布 */ align-items: center;
    user-select: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    border-color: rgba(255, 107, 53, .16);
}.channel-header .title::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--c-primary-2), var(--c-primary));
    margin-right: 6px;
    box-shadow: 0 0 0 0 rgba(255, 107, 53, .45);
    position: absolute;
    left: 3px;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    border: none;
    animation: none;
    /* 圆点静态 */ box-shadow: 0 0 0 2px rgba(255, 107, 53, .14);
}.channel-header .title::after {
    content: "";
    position: absolute;
    left: 3px;
    top: 50%;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--c-primary);
    pointer-events: none;
    will-change: transform, opacity;
}@keyframes lj-src-ring-gpu {
    0% { transform: translateY(-50%) scale(1);
    opacity: .30;
}70% {
    transform: translateY(-50%) scale(2.3);
    opacity: 0;
}100% {
    transform: translateY(-50%) scale(2.3);
    opacity: 0;
}
}.channel-set li a:hover {
    background: #fff;
    color: var(--c-primary);
    border-color: rgba(255, 107, 53, .32);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px -6px rgba(255, 107, 53, .3);
}

@media (prefers-reduced-motion: reduce) {.channel-header .title::after {
    animation: none;
    opacity: 0;
}
}.dt-section-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--c-heading);
    padding-bottom: 0;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 9px;
    letter-spacing: .2px;
}.dt-section-title a {
    text-decoration: none;
}.fl-section-head .fl-title, .fl-title {
    font-weight: 600;
}.ct-section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    color: var(--c-heading);
}.pl-content .dt-section-title {
    font-weight: 600;
}

@media screen and (max-width: 768px) {.dt-section-title {
    font-weight: 600;
}.fl-section-head .fl-title, .fl-title {}
}

@media screen and (max-width: 1024px) {.channel-set li a {
    font-weight: 600;
}
}

@media screen and (max-width: 768px) {.channel-set li a {
    font-weight: 600;
}
}

@media screen and (max-width: 480px) {.channel-set li a {
    font-weight: 600;
}
}

@media screen and (max-width: 359px) {.channel-set li a {
    font-weight: 600;
}
}

@media screen and (max-width: 1024px) {.channel-set li a {
    font-size: 13px;
}
}

@media screen and (max-width: 768px) {.channel-set li a {}
}

@media screen and (max-width: 480px) {.channel-set li a {}
}

@media screen and (max-width: 359px) {.channel-set li a {}
}.history-badge {
    position: absolute;
    top: 0;
    right: auto;
    z-index: 2;
    padding: 0;
    font-size: 10px;
    font-weight: 500;
    color: #fff;
    background: linear-gradient(135deg, #7ab3ff 0%, #4a8cf0 100%);
    border-radius: var(--r-sm) 0 8px 0;
    line-height: 15px;
    box-shadow: none;
    pointer-events: none;
    left: 0;
    width: 15px;
    height: 15px;
    text-align: center;
    letter-spacing: 0;
    display: none !important;
}

@media screen and (max-width: 480px) {.channel-set li.history-played > a:hover {}
}.channel-set li.history-played > a {}.channel-set li.history-played > a:hover {}

@media screen and (max-width: 768px) {.channel-set li.active > a, .channel-set li.history-played.active > a {}
}

@media screen and (max-width: 480px) {.channel-set li.history-played > a:hover {}
}.channel-set li.active > a, .channel-set li.history-played.active > a {}.channel-set li.active > a:hover, .channel-set li.history-played.active > a:hover {}

@media screen and (max-width: 768px) {.channel-set li.active > a, .channel-set li.history-played.active > a {
    box-shadow: 0 3px 12px -4px rgba(255, 107, 53, .45);
}
}

@media screen and (max-width: 480px) {.channel-set li.history-played > a:hover, .channel-set li.active > a:hover, .channel-set li.history-played.active > a:hover {}
}.pl-content .channel-set li.history-played > a, .pl-content .channel-set li.active > a {
    color: #fff;
}.channel-set li.history-played > a, .channel-set li.active > a, .channel-set li.history-played.active > a {
    background: linear-gradient(135deg, var(--c-primary-2) 0%, var(--c-primary) 100%);
    border-color: transparent;
    color: #fff;
    font-weight: 600;
    box-shadow: 0 3px 12px -3px rgba(255, 107, 53, .42);
}.channel-set li.history-played > a:hover, .channel-set li.active > a:hover, .channel-set li.history-played.active > a:hover {
    background: linear-gradient(135deg, var(--c-primary) 0%, #e8501f 100%);
    border-color: transparent;
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px -4px rgba(255, 107, 53, .52);
}

@media screen and (max-width: 480px) {.channel-set li.history-played > a:hover, .channel-set li.active > a:hover, .channel-set li.history-played.active > a:hover {
    transform: none;
}
}.fl-poster-grid--duo {
    display: grid !important;
    grid-template-columns: repeat(5,1fr) !important;
    grid-template-rows: repeat(3,1fr);
    gap: 12px 12px;
    flex: 1;
    align-content: stretch;
}

@media screen and (max-width: 1280px) and (min-width: 1025px) {.fl-duo {}.fl-poster-grid--duo {
    grid-template-columns: repeat(4, 1fr);
}
}

@media screen and (max-width: 1024px) {.fl-poster-grid--duo {}
}

@media screen and (max-width: 768px) {.fl-poster-grid--duo {}
}

@media screen and (max-width: 480px) {.fl-poster-grid--duo {}
}.fl-duo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px !important;
    gap: 14px;
    align-items: stretch;
    margin-bottom: 16px;
}

@media screen and (max-width: 1280px) and (min-width: 1025px) {.fl-duo {
    grid-template-columns: minmax(0, 1fr) 280px !important;
}.fl-duo .fl-poster-grid--duo {
    grid-template-columns: repeat(4, 1fr) !important;
}
}

@media screen and (max-width: 1024px) {.fl-duo {}.fl-duo .fl-poster-grid--duo {}
}

@media screen and (max-width: 768px) {.fl-duo .fl-poster-grid--duo {}
}

@media screen and (max-width: 480px) {.fl-duo .fl-poster-grid--duo {}
}

@media screen and (max-width: 1024px) {.fl-duo .fl-poster-grid--duo {}
}

@media screen and (max-width: 768px) {.fl-duo .fl-poster-grid--duo {}
}.fl-duo .fl-poster-grid--duo .fl-cover {
    padding-top: 132% !important;
}.fl-duo .fl-poster-grid--duo .fl-name {}.fl-duo .fl-poster-grid--duo .fl-meta {
    margin-top: 2px !important;
}.fl-duo .fl-poster-grid--duo {
    grid-template-columns: repeat(4, 1fr) !important;
    grid-template-rows: repeat(3, auto) !important;
    gap: 14px 12px !important;
}

@media screen and (max-width: 1024px) {.fl-duo .fl-poster-grid--duo .fl-cover {
    padding-top: 118% !important;
}
}

@media screen and (max-width: 480px) {.fl-duo .fl-poster-grid--duo .fl-cover {
    padding-top: 122% !important;
}
}.fl-duo-side .fl-rank-tabs, .fl-rank-tabs {
    display: flex;
    width: 100%;
    gap: 3px;
    padding: 3px;
    background: #f2f4f8;
    border-radius: 11px;
    box-sizing: border-box;
}.fl-duo-side .fl-rank-tab, .fl-rank-tab {
    flex: 1 1 0;
    min-width: 0;
    height: 34px;
    padding: 0 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: #5c6673;
    font-size: 13px;
    font-weight: 500;
    line-height: 34px;
    text-align: center;
    cursor: pointer;
    white-space: nowrap;
    transition: background .22s ease, color .22s ease, box-shadow .22s ease, transform .12s ease;
    -webkit-tap-highlight-color: transparent;
}.fl-rank-tab:hover:not(.active) {
    background: rgba(255, 107, 53, .08);
    color: var(--c-primary);
}.fl-rank-tab:active {
    transform: scale(.97);
}.fl-duo-side .fl-rank-tab.active, .fl-rank-tab.active {
    background: linear-gradient(135deg, var(--c-primary-2), var(--c-primary));
    color: #fff;
    font-weight: 600;
    box-shadow: 0 3px 10px -3px rgba(255, 107, 53, .55);
}.fl-rank-tab.active:hover {
    background: linear-gradient(135deg, var(--c-primary-2), var(--c-primary));
    color: #fff;
}.fl-rank-tab:focus-visible {
    outline: 2px solid var(--c-primary);
    outline-offset: 2px;
}

@media screen and (max-width: 768px) {.fl-rank-tab {}
}.dt-hero .dt-meta-row .dt-meta-label {
    flex: 0 0 56px;
    width: 56px;
    font-size: 14px;
    color: var(--c-text-3);
}.dt-hero .dt-meta-row .dt-meta-value {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 14px;
}

@media screen and (min-width: 1200px) {.dt-hero .dt-metas {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 40px;
    row-gap: 0;
}.dt-hero .dt-meta-row--actor {
    grid-column: 1 / -1;
}.dt-hero .dt-actions {}
}

@media screen and (max-width: 1199px) {.dt-hero .dt-metas {
    display: block;
}.dt-hero .dt-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
}

@media screen and (max-width: 768px) {.dt-hero .dt-tag {}.dt-hero .dt-actions .dt-btn, .dt-hero .dt-actions .dt-rate {}.dt-hero .dt-meta-row .dt-meta-label {
    flex-basis: 48px;
    width: 48px;
    font-size: 13px;
}.dt-hero .dt-meta-row .dt-meta-value {
    font-size: 13px;
}
}.dt-hero .dt-actions .dt-btn svg {
    width: 14px;
    height: 14px;
}

@media screen and (min-width: 1200px) {.dt-hero .dt-meta-list {}.dt-hero .dt-meta-list .dt-meta-row:nth-child(2) {
    grid-column: 1 / -1;
}.dt-hero .dt-action-row {
    display: block;
}
}

@media screen and (max-width: 1199px) {.dt-hero .dt-meta-list {
    display: block;
}
}

@media screen and (max-width: 768px) {.dt-hero .dt-tag {}.dt-hero .dt-actions .dt-btn, .dt-hero .dt-actions .dt-rate {
    border-radius: 8px;
}.dt-hero .dt-actions .dt-rate .dt-score {}.dt-hero .dt-actions .dt-rate .dt-rate-num {}.dt-hero .dt-meta-label {}.dt-hero .dt-meta-value {}.dt-hero .dt-meta-row {}.dt-hero .dt-actions {}.dt-hero .dt-meta-list {}
}.dt-hero .dt-tag {
    transition: background .18s ease, color .18s ease, border-color .18s ease;
}.dt-hero .dt-tag:not(.dt-tag-primary):hover {
    background: #eef1f6;
    color: var(--c-text);
    border-color: #d8dee8;
}.dt-hero .dt-tag-primary {
    border-color: transparent;
}.dt-hero .dt-tag-primary:hover {}.dt-hero .dt-meta-value.dt-actor a:hover {
    color: var(--c-primary);
    border-bottom-color: rgba(255, 107, 53, .45);
}.dt-hero .dt-meta-value.dt-actor a:last-of-type {
    margin-right: 2px;
}.dt-hero .dt-actor-more {
    color: var(--c-text-3);
    font-size: 13px;
    margin-left: 0;
}.dt-hero .dt-poster::after {
    border-radius: var(--r-md);
}.dt-hero .dt-score-badge {
    border-radius: 8px 8px 8px 3px;
    font-weight: 700;
    letter-spacing: .2px;
}

@media screen and (max-width: 768px) {.dt-hero .dt-title {}.dt-hero .dt-tags {
    gap: 6px;
}.dt-hero .dt-meta-list {}.dt-hero .dt-meta-value.dt-actor a {
    margin-right: 8px;
}.dt-hero .dt-actions .dt-rate .dt-rate-sep {
    margin-left: 8px;
}.dt-hero .dt-actions .dt-rate .dt-rate-num {
    margin-left: 8px;
}
}.dt-hero .dt-meta-list > .dt-meta-row:nth-child(2) {
    grid-column: 1 / -1;
}.dt-hero .dt-meta-list > .dt-meta-row:nth-child(2):last-child {
    grid-column: auto;
}.dt-hero .dt-tag, .dt-hero .dt-tag.dt-tag-primary {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    height: 28px !important;
    min-height: 28px;
    padding: 0 12px !important;
    font-size: 13px !important;
    line-height: 1 !important;
    border-radius: 7px !important;
    border-width: 1px;
    border-style: solid;
    box-sizing: border-box;
    vertical-align: middle;
}

@media screen and (max-width: 1100px) {.dt-hero .dt-meta-list {
    grid-template-columns: minmax(0, 1fr) !important;
    column-gap: 0;
    max-width: none;
}.dt-hero .dt-meta-list > .dt-meta-row:nth-child(2) {
    grid-column: auto !important;
}
}

@media screen and (max-width: 768px) {.dt-hero .dt-tag, .dt-hero .dt-tag.dt-tag-primary {
    height: 26px !important;
    min-height: 26px;
    padding: 0 10px !important;
    font-size: 12.5px !important;
    border-radius: 6px !important;
}.dt-hero .dt-title {}.dt-hero .dt-meta-list {
    row-gap: 2px;
}.dt-hero .dt-meta-label {
    flex-basis: 44px !important;
}.dt-hero .dt-meta-value {}.dt-hero .dt-actions {}
}.dt-hero .dt-tag.dt-tag-primary:hover {
    background: #eef1f6 !important;
    color: var(--c-text) !important;
    border-color: #d8dee8 !important;
}.dt-hero .dt-actions .dt-btn-ghost {
    background: linear-gradient(135deg, var(--c-primary-2) 0%, var(--c-primary) 100%) !important;
    border: 1px solid #e3e8ef;
    color: #fff !important;
    font-weight: 600;
    border-color: transparent !important;
    box-shadow: 0 4px 14px -6px rgba(255, 107, 53, .55);
}.dt-hero .dt-actions .dt-btn-ghost:hover {
    border-color: transparent !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--c-primary) 0%, #e8501f 100%) !important;
    transform: translateY(-1px);
    box-shadow: 0 8px 20px -8px rgba(255, 107, 53, .65);
}.dt-hero .dt-actions .dt-btn-ghost:active {
    transform: translateY(0);
    box-shadow: 0 3px 10px -6px rgba(255, 107, 53, .5);
}

@media screen and (max-width: 1100px) {.dt-hero {}.dt-hero .dt-poster {}
}

@media screen and (max-width: 768px) {.dt-hero {}.dt-hero .dt-poster {}
}

@media screen and (max-width: 480px) {.dt-hero {}.dt-hero .dt-poster {}
}.dt-hero .dt-poster {
    border-radius: var(--r-md);
    overflow: hidden;
    width: 196px !important;
}.dt-hero .dt-tag.dt-tag-primary {
    border-color: var(--c-border) !important;
    font-weight: 400 !important;
    color: var(--c-text-2) !important;
    background: #f7f8fa !important;
}

@media screen and (max-width: 1100px) {.dt-hero {
    grid-template-columns: 172px minmax(0, 1fr) !important;
}.dt-hero .dt-poster {
    width: 172px !important;
}.dt-hero .dt-poster img {
    max-height: 276px;
}
}

@media screen and (max-width: 768px) {.dt-hero {
    gap: 12px !important;
}.dt-hero .dt-poster {}.dt-hero .dt-poster img {}.dt-hero .dt-title {}.dt-hero .dt-meta-list {
    margin-top: 8px !important;
}.dt-hero .dt-actions {}
}

@media screen and (max-width: 480px) {.dt-hero {}.dt-hero .dt-poster {}.dt-hero .dt-poster img {}
}.dt-hero .dt-tags {
    gap: 8px !important;
    margin-bottom: 0;
    margin: 0 0 14px !important;
}.dt-hero .dt-actions .dt-rate {
    gap: 0;
    cursor: pointer;
    background: transparent !important;
    border: 1px solid var(--c-border) !important;
}.dt-hero .dt-actions .dt-rate:hover {
    background: transparent !important;
    border-color: rgba(255, 107, 53, .5) !important;
    transform: translateY(-1px);
}.dt-hero .dt-actions .dt-rate:active {
    transform: translateY(0);
}

@media screen and (max-width: 768px) {.dt-hero .dt-title {}.dt-hero .dt-tags {
    margin-bottom: 12px !important;
}
}

@media screen and (max-width: 480px) {.dt-hero .dt-title {
    margin-bottom: 12px !important;
}.dt-hero .dt-tags {
    margin-bottom: 10px !important;
}
}.dt-hero {
    display: grid;
    grid-template-columns: 196px minmax(0, 1fr) !important;
    grid-template-areas: "poster info" "poster actions" !important;
    gap: 18px !important;
    border-radius: var(--r-lg);
    padding: 12px 16px !important;
    margin-bottom: 12px;
    background-image: none;
    column-gap: 18px !important;
    row-gap: 0 !important;
}.dt-hero .dt-meta-row, .dt-hero .dt-meta-label {
    padding-left: 0 !important;
    margin-left: 0 !important;
}.dt-hero .dt-actions > *:first-child {
    margin-left: 0 !important;
}.dt-hero .dt-info {
    gap: 0 !important;
    display: flex !important;
    flex-direction: column;
    justify-content: flex-start !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

@media screen and (max-width: 768px) {.dt-hero {}.dt-hero .dt-actions {}
}

@media screen and (max-width: 480px) {.dt-hero .dt-actions {
    margin-top: 8px !important;
}
}.dt-hero .dt-actions > .dt-btn, .dt-hero .dt-actions > .dt-rate {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    align-self: center !important;
}

@media screen and (max-width: 768px) {.dt-hero {}.dt-hero .dt-poster {}.dt-hero .dt-poster img {}.dt-hero .dt-title, .dt-hero .dt-tags, .dt-hero .dt-meta-list, .dt-hero .dt-actions {
    padding-left: 0 !important;
    margin-left: 0 !important;
}.dt-hero .dt-actions {}.dt-hero .dt-actions > .dt-btn, .dt-hero .dt-actions > .dt-rate {}.dt-hero .dt-meta-label {}.dt-hero .dt-meta-row {}.dt-hero .dt-meta-value {}
}

@media screen and (max-width: 400px) {.dt-hero {}.dt-hero .dt-poster {
    width: 108px !important;
}.dt-hero .dt-poster img {
    max-height: 176px;
}.dt-hero .dt-actions {}.dt-hero .dt-actions > .dt-btn, .dt-hero .dt-actions > .dt-rate {}
}.dt-hero .dt-poster img {
    display: block;
    border-radius: var(--r-md);
    box-shadow: 0 6px 18px -10px rgba(20, 30, 50, .32);
}.dt-hero .dt-meta-value {
    flex: 1 1 auto !important;
    font-size: 13.5px !important;
    color: var(--c-text);
    padding: 0 !important;
    margin: 0 !important;
}.dt-hero .dt-meta-list {
    margin-top: 0 !important;
    display: block !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 40px;
    row-gap: 4px !important;
    max-width: 720px;
    /* 取消之前的两列网格，避免窄屏错位 */ margin-top: 0 !important;
    padding: 0 !important;
}.dt-hero .dt-meta-value.dt-actor {
    word-spacing: 0;
}.dt-hero .dt-meta-value.dt-actor a {
    color: var(--c-text-2);
    text-decoration: none;
    padding: 0 1px;
    margin-right: 10px;
    transition: color .16s ease;
    border-bottom: 1px solid transparent;
}.dt-hero .dt-meta-value.dt-actor .dt-actor-more {
    white-space: nowrap;
}.dt-hero .dt-title, .dt-hero .dt-tags, .dt-hero .dt-meta-list, .dt-hero .dt-actions {
    padding-left: 0 !important;
    margin-left: 0 !important;
    text-indent: 0;
}

@media screen and (max-width: 768px) {.dt-hero .dt-meta-label {
    max-width: 42px !important;
}.dt-hero .dt-meta-value {}.dt-hero .dt-meta-row {}.dt-hero .dt-meta-row + .dt-meta-row {}.dt-hero .dt-meta-value.dt-actor {}
}

@media screen and (max-width: 768px) {.dt-hero {}
}

@media screen and (max-width: 400px) {.dt-hero {
    column-gap: 10px !important;
}.dt-hero .dt-meta-label {
    flex: 0 0 40px !important;
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
}
}.dt-hero .dt-meta-value, .dt-hero .dt-meta-value.dt-actor {
    display: block !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    -webkit-line-clamp: unset !important;
    line-clamp: unset !important;
    -webkit-box-orient: initial !important;
    max-height: none !important;
    word-break: break-word;
    line-height: 28px !important;
}.dt-hero .dt-actions .dt-btn, .dt-hero .dt-actions .dt-rate {
    display: inline-flex;
    align-items: center;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 14px !important;
    font-size: 13px !important;
    line-height: 1;
    border-radius: 8px !important;
    box-sizing: border-box;
    justify-content: center;
}.dt-hero .dt-actions .dt-rate .dt-score {
    font-size: 15px !important;
    line-height: 1;
    color: var(--c-primary) !important;
}.dt-hero .dt-actions .dt-rate .dt-rate-num {
    font-size: 12px !important;
    line-height: 1;
    margin-left: 8px !important;
    padding-left: 0;
    color: var(--c-text-3) !important;
}.dt-hero .dt-actions .dt-rate .dt-rate-sep {
    width: 1px;
    height: 14px !important;
    margin: 0 0 0 10px;
    background: rgba(255, 107, 53, .25);
    flex-shrink: 0;
    margin-left: 8px !important;
}.dt-hero .dt-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 10px !important;
    margin-top: 14px !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
    flex-direction: row !important;
    justify-content: flex-start !important;
}

@media screen and (max-width: 768px) {.dt-hero .dt-meta-row {}.dt-hero .dt-meta-row + .dt-meta-row {}.dt-hero .dt-meta-value, .dt-hero .dt-meta-value.dt-actor {
    line-height: 26px !important;
}.dt-hero .dt-actions {
    margin-top: 12px !important;
}.dt-hero .dt-actions .dt-btn, .dt-hero .dt-actions .dt-rate {}.dt-hero .dt-actions .dt-rate .dt-score {}.dt-hero .dt-actions .dt-rate .dt-rate-num {}
}.dt-hero .dt-actions .dt-btn-copy, .dt-hero .dt-actions .dt-btn-copy:hover, .dt-hero .dt-actions .dt-btn-copy:active, .dt-hero .dt-actions .dt-btn-copy:focus, .dt-hero .dt-actions .dt-btn-copy:focus-visible {
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
    text-shadow: none !important;
    outline: none;
}.dt-hero .dt-actions .dt-btn-copy {
    background: #fff !important;
    border: 1px solid var(--c-border) !important;
    color: var(--c-text-2) !important;
    font-weight: 500;
    cursor: pointer;
    background-image: none !important;
    transform: none;
}.dt-hero .dt-actions .dt-btn-copy:hover {
    border-color: rgba(255, 107, 53, .5) !important;
    color: var(--c-primary) !important;
    background: #fff !important;
    transform: none;
    background-image: none !important;
    box-shadow: none !important;
}.dt-hero .dt-actions .dt-btn-copy:active {
    transform: scale(.98);
    box-shadow: none !important;
}.dt-hero .dt-actions .dt-btn-copy.is-copied {
    border-color: rgba(34, 160, 90, .55) !important;
    color: #1a9e58 !important;
    background: #fff !important;
    background-image: none !important;
    box-shadow: none !important;
}.dt-hero .dt-actions .dt-btn-copy:focus-visible {
    border-color: var(--c-primary) !important;
    box-shadow: none !important;
}.dt-hero .dt-actions .dt-rate, .dt-hero .dt-actions .dt-rate:hover, .dt-hero .dt-actions .dt-rate:active, .dt-hero .dt-actions .dt-rate:focus {
    box-shadow: none !important;
}.dt-hero .dt-actions a.dt-btn-ghost {
    font-size: 12px !important;
    letter-spacing: .2px;
}

@media screen and (max-width: 768px) {.dt-hero .dt-actions a.dt-btn-ghost {}
}

@media screen and (max-width: 768px) {.dt-hero {
    grid-template-areas: "poster info" "actions actions" !important;
}.dt-hero .dt-actions {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}.dt-hero .dt-actions > .dt-btn, .dt-hero .dt-actions > .dt-rate {
    min-width: 0 !important;
    width: auto !important;
    justify-content: center !important;
    border-radius: 9px !important;
}.dt-hero .dt-actions .dt-rate {}.dt-hero .dt-actions .dt-rate .dt-score {}.dt-hero .dt-actions .dt-rate .dt-rate-sep {}.dt-hero .dt-actions .dt-rate .dt-rate-num {
    margin: 0 !important;
    padding: 0 !important;
}.dt-hero .dt-actions a.dt-btn-ghost {}.dt-hero .dt-actions .dt-btn-copy {
    font-size: 13px !important;
}.dt-hero .dt-info {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}
}

@media screen and (max-width: 400px) {.dt-hero {
    grid-template-columns: 108px minmax(0, 1fr) !important;
}.dt-hero .dt-actions {}.dt-hero .dt-actions > .dt-btn, .dt-hero .dt-actions > .dt-rate {
    height: 34px !important;
    min-height: 34px !important;
}.dt-hero .dt-actions a.dt-btn-ghost {}.dt-hero .dt-actions .dt-btn-copy {
    font-size: 12px !important;
}.dt-hero .dt-actions .dt-rate .dt-score {}.dt-hero .dt-actions .dt-rate .dt-rate-num {}.dt-hero .dt-actions .dt-rate .dt-rate-sep {}
}

@media screen and (min-width: 769px) and (max-width: 1100px) {.dt-hero .dt-actions > .dt-btn, .dt-hero .dt-actions > .dt-rate {
    flex: 0 0 auto !important;
}
}.dt-prev-next {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 12px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}.dt-prev-next .dt-pn-item:hover {
    border-color: rgba(255, 107, 53, .45);
    box-shadow: 0 6px 18px -10px rgba(255, 107, 53, .45);
    transform: translateY(-1px);
}.dt-prev-next .dt-pn-label {
    flex: 0 0 auto !important;
    display: inline-flex;
    align-items: center;
    height: 26px;
    padding: 0 10px;
    margin-right: 10px;
    font-size: 12.5px;
    line-height: 1;
    border-radius: 7px;
    background: var(--c-primary-soft, rgba(255, 107, 53, .1));
    color: var(--c-primary);
    font-weight: 600;
    white-space: nowrap;
}.dt-prev-next .dt-pn-name {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    font-size: 13.5px;
    color: var(--c-text-2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}.dt-prev-next .dt-pn-item a {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    text-decoration: none;
    color: inherit;
}.dt-prev-next .dt-pn-empty {
    display: flex;
    align-items: center;
    min-height: 26px;
    font-size: 13px;
    color: var(--c-text-3);
}

@media screen and (max-width: 768px) {.dt-prev-next {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
}.dt-prev-next .dt-pn-item {}.dt-prev-next .dt-pn-label {
    height: 24px;
    padding: 0 8px;
    margin-right: 8px;
    font-size: 12px;
}.dt-prev-next .dt-pn-name {
    font-size: 13px;
}
}

@media screen and (max-width: 400px) {.dt-prev-next {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
}
}.site-search, .h-search, .search-form, header form[action*="search"] {
    display: flex !important;
    align-items: stretch !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 420px;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box;
}.site-search input[type="text"], .site-search input[type="search"], .h-search input[type="text"], .h-search input[type="search"], .search-form input[type="text"], .search-form input[type="search"], header form[action*="search"] input {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 14px !important;
    font-size: 14px !important;
    line-height: 40px !important;
    color: var(--c-text) !important;
    background: #fff !important;
    border: 1px solid var(--c-border) !important;
    border-radius: 10px !important;
    box-sizing: border-box;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}.site-search input:focus, .h-search input:focus, .search-form input:focus, header form[action*="search"] input:focus {
    border-color: rgba(255, 107, 53, .55) !important;
    box-shadow: 0 0 0 3px rgba(255, 107, 53, .1) !important;
}.site-search button, .site-search input[type="submit"], .h-search button, .h-search input[type="submit"], .search-form button, .search-form input[type="submit"], header form[action*="search"] button, header form[action*="search"] input[type="submit"] {
    flex: 0 0 auto !important;
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 20px !important;
    font-size: 14px !important;
    font-weight: 600;
    line-height: 1 !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--c-primary-2), var(--c-primary)) !important;
    border: 0 !important;
    border-radius: 10px !important;
    box-sizing: border-box;
    cursor: pointer;
    white-space: nowrap;
    transition: background .2s ease, box-shadow .2s ease, transform .12s ease;
}.site-search button:hover, .h-search button:hover, .search-form button:hover, header form[action*="search"] button:hover, header form[action*="search"] input[type="submit"]:hover {
    background: linear-gradient(135deg, var(--c-primary), #e8501f) !important;
    box-shadow: 0 6px 16px -8px rgba(255, 107, 53, .6);
}.site-search button:active, header form[action*="search"] button:active {
    transform: scale(.98);
}input::placeholder {
    color: var(--c-text-4, #9aa4b2);
}

@media screen and (max-width: 1100px) {.site-search, .h-search, .search-form, header form[action*="search"] {
    max-width: 320px;
}
}

@media screen and (max-width: 768px) {.site-search, .h-search, .search-form, header form[action*="search"] {
    max-width: 100% !important;
    gap: 6px !important;
}.site-search input[type="text"], .site-search input[type="search"], .h-search input, .search-form input, header form[action*="search"] input {
    height: 38px !important;
    min-height: 38px !important;
    line-height: 38px !important;
    font-size: 13.5px !important;
    padding: 0 12px !important;
}.site-search button, .site-search input[type="submit"], .h-search button, .search-form button, header form[action*="search"] button, header form[action*="search"] input[type="submit"] {
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 16px !important;
    font-size: 13.5px !important;
}
}.movie-header .h-main .h-search:focus-within {
    border-color: var(--c-primary) !important;
}.movie-header .h-main .h-search .h-form {}.movie-header .h-main .h-search .h-form .inp {}.movie-header .h-main .h-search .h-form .inp:focus {
    border: 0 !important;
}.movie-header .h-main .h-search .h-form .btn {}.wap-header .wap-box-search {
    flex: 1 !important;
    min-width: 0 !important;
    height: 36px !important;
    background: var(--c-bg) !important;
    border: 1.5px solid transparent !important;
    border-radius: var(--r-sm) !important;
    padding: 2px 4px 2px 14px !important;
    max-width: none !important;
}.wap-header .wap-box-search .wap-box-search-form {
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
}.wap-header .wap-box-search .inp {
    flex: 1 1 auto !important;
    width: 1px !important;
    height: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-size: 14px !important;
    color: var(--c-text) !important;
    outline: none !important;
    -webkit-appearance: none;
    appearance: none;
}.wap-header .wap-box-search .inp:focus {
    border: 0 !important;
    box-shadow: none !important;
}.wap-header .wap-box-search .btn {
    flex: 0 0 auto !important;
    height: 30px !important;
    min-height: 30px !important;
    padding: 0 14px !important;
    font-size: 12px !important;
    line-height: 1 !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--c-primary-2), var(--c-primary)) !important;
    border-radius: var(--r-sm) !important;
    box-shadow: none !important;
}.h-search input {
    -webkit-appearance: none;
    appearance: none;
}

@media screen and (max-width: 1200px) and (min-width: 769px) {.movie-header .h-main .h-search {
    width: 180px !important;
}
}

@media screen and (max-width: 768px) {.movie-header .h-main .h-search, .movie-header .h-main .h-function {}
}.movie-header .h-main .h-search {
    transition: all var(--ease);
    max-width: none !important;
}.movie-header .h-main .h-function .link-1, .movie-header .h-main .h-function a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 60px !important;
    height: 32px !important;
    min-height: 32px !important;
    padding: 0 16px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    color: var(--c-text-2) !important;
    background: #fff !important;
    background-image: none !important;
    border: 1px solid var(--c-border) !important;
    border-radius: var(--r-sm) !important;
    box-shadow: none !important;
    text-decoration: none;
    white-space: nowrap;
    transition: border-color .18s ease, color .18s ease, background .18s ease;
}.movie-header .h-main .h-function .link-1:hover, .movie-header .h-main .h-function a:hover {
    color: var(--c-primary) !important;
    border-color: rgba(255, 107, 53, .5) !important;
    background: rgba(255, 107, 53, .04) !important;
    transform: none !important;
    box-shadow: none !important;
}.movie-header .h-main .h-function .link-1:active, .movie-header .h-main .h-function a:active {
    transform: scale(.98) !important;
}

@media screen and (max-width: 768px) {.wap-header .wap-message, .wap-header .wap-message-1 {
    color: var(--c-text-2) !important;
    background: #fff !important;
    background-image: none !important;
    border: 1px solid var(--c-border) !important;
    box-shadow: none !important;
}.wap-header .wap-message:hover, .wap-header .wap-message-1:hover {
    color: var(--c-primary) !important;
    border-color: rgba(255, 107, 53, .5) !important;
}
}

@media screen and (min-width: 769px) {.movie-header .h-main .h-search {
    margin-right: 0 !important;
}
}

@media screen and (max-width: 768px) {.movie-header .h-main .h-search, .movie-header .h-main .h-function, .movie-header .h-main > .h-search, .movie-header .h-main > .h-function {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    left: -9999px !important;
}.wap-header {}.wap-header .wap-box-search {}.wap-header .wap-box-search .wap-box-search-form {}.wap-header .wap-box-search .inp {}.wap-header .wap-box-search .btn {}.wap-header .wap-message {
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: center !important;
    height: 30px !important;
    padding: 0 14px !important;
    font-size: 12px !important;
    line-height: 1 !important;
    color: var(--c-text-2) !important;
    background: #fff !important;
    background-image: none !important;
    border: 1px solid var(--c-border) !important;
    border-radius: var(--r-sm) !important;
    box-shadow: none !important;
    white-space: nowrap;
    text-decoration: none;
}.movie-header .h-main {
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
    padding: 0 12px !important;
    max-width: 100% !important;
}.movie-header .h-main .h-nav {}.movie-header .h-main .h-nav::-webkit-scrollbar {}
}

@media screen and (max-width: 400px) {.wap-header {
    gap: 6px !important;
}.wap-header .wap-box-search {
    padding: 2px 4px 2px 12px !important;
}.wap-header .wap-box-search .btn {}.wap-header .wap-message {
    height: 28px !important;
    padding: 0 12px !important;
}
}.movie-header .h-main .h-nav li .title {
    display: inline-flex;
    align-items: center;
    height: 100%;
    padding: 0 14px;
    font-size: 15px;
    color: var(--c-heading);
    line-height: 1;
    letter-spacing: .2px;
    transition: color .18s ease;
    text-decoration: none;
    white-space: nowrap;
}.movie-header .h-main .h-nav li:hover .title {
    color: var(--c-primary);
}.movie-header .h-main .h-nav li.active .title {
    color: var(--c-primary);
}.movie-header .h-main .h-nav li.active::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 24px;
    height: 3px;
    border-radius: 3px 3px 0 0;
    background: linear-gradient(90deg, var(--c-primary-2), var(--c-primary));
}.movie-header .h-main .h-function {
    margin-left: 10px !important;
    flex-shrink: 0 !important;
    display: none !important;
}

@media screen and (max-width: 768px) {.movie-header .h-main .h-nav li .title {}.movie-header .h-main .h-nav li.active::after {}.wap-header .wap-message {}
}

@media screen and (max-width: 400px) {.movie-header .h-main .h-nav li .title {}
}

@media screen and (max-width: 768px) {.wap-header {}.wap-header .wap-box-search {
    margin: 0 !important;
}.wap-header .wap-message, .wap-header .wap-message-1 {
    display: none !important;
}.movie-header .h-main .h-nav {
    display: flex !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}.movie-header .h-main .h-nav::-webkit-scrollbar {
    display: none;
}.movie-header .h-main .h-nav li {
    position: relative;
    flex: 0 0 auto;
}.movie-header .h-main .h-nav li .title {
    display: inline-flex;
    align-items: center;
    padding: 0 13px;
    color: var(--c-heading);
    white-space: nowrap;
    text-decoration: none;
    transition: color .18s ease;
}.movie-header .h-main .h-nav li:hover .title, .movie-header .h-main .h-nav li.active .title {
    color: var(--c-primary);
}.movie-header .h-main .h-nav li.active .title {
    font-weight: 600;
}.movie-header .h-main .h-nav li.active::after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 18px;
    height: 2px;
    border-radius: 2px 2px 0 0;
    background: linear-gradient(90deg, var(--c-primary-2), var(--c-primary));
}
}

@media screen and (max-width: 400px) {.wap-header {}.wap-header .wap-box-search {
    height: 36px !important;
}.movie-header .h-main .h-nav li .title {
    padding: 0 10px;
    font-size: 13px;
}
}

@media screen and (min-width: 769px) {.movie-header .h-main .h-search {
    display: flex !important;
    align-items: center !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    margin-left: auto !important;
    /* 整组推到右侧 */ margin-right: 0 !important;
    flex: 0 0 auto !important;
}.movie-header .h-main .h-search:focus-within {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}.movie-header .h-main .h-search .h-form {
    display: flex !important;
    align-items: center !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
}.movie-header .h-main .h-search .h-form .inp {
    flex: 0 0 auto !important;
    line-height: normal !important;
    color: var(--c-text) !important;
    background: #fff !important;
    background-image: none !important;
    border: 1px solid var(--c-border) !important;
    box-shadow: none !important;
    box-sizing: border-box;
    outline: none !important;
    -webkit-appearance: none;
    appearance: none;
    transition: border-color .18s ease, box-shadow .18s ease;
}.movie-header .h-main .h-search .h-form .inp:focus {}.movie-header .h-main .h-search .h-form .inp::placeholder {
    color: #a8b0bd;
}.movie-header .h-main .h-search .h-form .btn {
    flex: 0 0 auto !important;
    min-width: 0 !important;
    line-height: 1 !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--c-primary-2), var(--c-primary)) !important;
    cursor: pointer;
    white-space: nowrap;
    transition: background .2s ease, box-shadow .2s ease, transform .12s ease;
}.movie-header .h-main .h-search .h-form .btn:hover {
    background: linear-gradient(135deg, var(--c-primary), #e8501f) !important;
}.movie-header .h-main .h-search .h-form .btn:active {
    transform: translateY(0) scale(.98);
}

@media screen and (max-width: 1200px) {.movie-header .h-main .h-search .h-form .inp {}.movie-header .h-main .h-search .h-form .btn {}
}
}

@media screen and (max-width: 768px) {.wap-header {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
    width: 100% !important;
    box-sizing: border-box;
}.wap-header .wap-box-search {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    box-sizing: border-box;
}.wap-header .wap-box-search .wap-box-search-form {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
}.wap-header .wap-box-search .inp {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    line-height: normal !important;
    color: var(--c-text) !important;
    background: #fff !important;
    background-image: none !important;
    border: 1px solid var(--c-border) !important;
    box-shadow: none !important;
    box-sizing: border-box;
    outline: none !important;
    -webkit-appearance: none;
    appearance: none;
    transition: border-color .18s ease, box-shadow .18s ease;
}.wap-header .wap-box-search .inp:focus {}.wap-header .wap-box-search .inp::placeholder {
    color: #a8b0bd;
}.wap-header .wap-box-search .btn {
    flex: 0 0 auto !important;
    line-height: 1 !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--c-primary-2), var(--c-primary)) !important;
    border: 0 !important;
    cursor: pointer;
    white-space: nowrap;
    transition: transform .12s ease;
}.wap-header .wap-box-search .btn:active {
    transform: scale(.98);
}.movie-header .h-main .h-search, .movie-header .h-main .h-function {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    left: -9999px !important;
}
}

@media screen and (max-width: 400px) {.wap-header {}.wap-header .wap-box-search .wap-box-search-form {
    gap: 6px !important;
}.wap-header .wap-box-search .inp {}.wap-header .wap-box-search .btn {}
}input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-results-button, input[type="search"]::-webkit-search-results-decoration {
    -webkit-appearance: none;
    appearance: none;
}

@media screen and (min-width: 769px) {.movie-header .h-main .h-search .h-form .inp {
    width: 200px !important;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 12px !important;
    font-size: 13.5px !important;
    border-radius: 8px !important;
}.movie-header .h-main .h-search .h-form .inp:focus {
    border-color: rgba(255, 107, 53, .45) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 107, 53, .12) !important;
}.movie-header .h-main .h-search .h-form .btn {
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 14px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    border-radius: 8px !important;
    box-shadow: none !important;
}.movie-header .h-main .h-search .h-form .btn:hover {
    box-shadow: 0 4px 12px -6px rgba(255, 107, 53, .5) !important;
    transform: translateY(-1px);
}.movie-header .h-main .h-search, .movie-header .h-main .h-search .h-form {
    gap: 6px !important;
}.movie-header .h-main .h-search .h-form .btn svg {
    width: 13px;
    height: 13px;
}

@media screen and (max-width: 1200px) {.movie-header .h-main .h-search .h-form .inp {
    width: 150px !important;
}.movie-header .h-main .h-search .h-form .btn {
    padding: 0 12px !important;
    font-size: 12.5px !important;
}
}
}

@media screen and (max-width: 768px) {.wap-header {}.wap-header .wap-box-search .wap-box-search-form {
    gap: 6px !important;
}.wap-header .wap-box-search .inp {
    min-height: 34px !important;
    padding: 0 11px !important;
    border-radius: 8px !important;
}.wap-header .wap-box-search .inp:focus {
    border-color: rgba(255, 107, 53, .45) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 107, 53, .12) !important;
}.wap-header .wap-box-search .btn {
    min-height: 34px !important;
    font-weight: 500 !important;
    border-radius: 8px !important;
    box-shadow: none !important;
}
}

@media screen and (max-width: 400px) {.wap-header {
    padding: 6px 8px !important;
}.wap-header .wap-box-search .inp {
    height: 32px !important;
    min-height: 32px !important;
    padding: 0 10px !important;
    font-size: 13px !important;
}.wap-header .wap-box-search .btn {
    height: 32px !important;
    min-height: 32px !important;
    padding: 0 11px !important;
    font-size: 12.5px !important;
}
}.dt-hero .dt-meta-row {
    display: flex !important;
    align-items: baseline !important;
    gap: 0;
    min-height: 28px !important;
    line-height: 28px !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    border: 0 !important;
}.dt-hero .dt-meta-row:first-child::before {
    display: none !important;
}.dt-hero .dt-meta-row + .dt-meta-row {
    background-image: none !important;
}

@media screen and (max-width: 768px) {.dt-hero .dt-meta-row + .dt-meta-row {}.dt-hero .dt-meta-row + .dt-meta-row::before {
    top: -5px;
}
}.dt-hero .dt-meta-row + .dt-meta-row::before {
    position: absolute;
    left: 0;
    right: 0;
    top: -6px;
    /* 线放在两行之间的空隙正中 */ height: 1px;
    pointer-events: none;
}.dt-section + .dt-section, .dt-hero + .dt-section, .dt-section {
    border-top-color: rgba(20, 30, 50, .06) !important;
}.dt-prev-next .dt-pn-item {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 12px 14px !important;
    box-sizing: border-box;
    border-radius: 10px;
    background: #fff !important;
    border: 1px solid var(--c-border);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
    border-color: rgba(20, 30, 50, .07) !important;
}.dt-longtail-tags a, .dt-actor + .dt-actor-more {
    border-color: rgba(20, 30, 50, .07) !important;
}.dt-hero .dt-tag, .dt-hero .dt-actions .dt-btn-copy, .dt-hero .dt-actions .dt-rate {
    border-color: rgba(20, 30, 50, .09) !important;
}.movie-header .h-main .h-search .h-form .inp, .wap-header .wap-box-search .inp {
    border-color: rgba(20, 30, 50, .09) !important;
}.movie-header .h-main .h-search .h-form .btn, .wap-header .wap-box-search .btn {
    border: 0 !important;
}.dt-section-title::before, .fl-title::before {
    background: linear-gradient(180deg, var(--c-primary-2), var(--c-primary)) !important;
}.fl-section, .ct-card, .ct-poster, .fl-poster {
    border-color: rgba(20, 30, 50, .06) !important;
}.fl-rank-item + .fl-rank-item, .fl-rank-link {
    border-color: rgba(20, 30, 50, .05) !important;
}.fl-rank-tabs {
    display: inline-flex;
    background: #f5f6f8 !important;
    border-radius: var(--r-pill);
    padding: 2px;
    gap: 2px;
    flex-shrink: 0;
}.dt-hero .dt-meta-list > .dt-meta-row:first-child::before {
    content: none !important;
    display: none !important;
    height: 0 !important;
    background: transparent !important;
}.dt-hero .dt-meta-list > .dt-meta-row, .dt-hero .dt-meta-list > .dt-meta-row + .dt-meta-row {
    background-image: none !important;
    box-shadow: none !important;
}

@media screen and (max-width: 768px) {.dt-hero .dt-meta-list > .dt-meta-row + .dt-meta-row::before {
    top: -5px !important;
    background-color: rgba(20, 30, 50, .06) !important;
}.dt-hero .dt-meta-list > .dt-meta-row + .dt-meta-row {}
}.dt-hero .dt-meta-list > .dt-meta-row::before, .dt-hero .dt-meta-list > .dt-meta-row + .dt-meta-row::before {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: -6px !important;
    min-height: 1px !important;
    max-height: 1px !important;
    background-color: rgba(20, 30, 50, .06) !important;
    border-radius: 0 !important;
    opacity: 1 !important;
    box-shadow: none !important;
    pointer-events: none !important;
}.dt-hero .dt-meta-list > .dt-meta-row + .dt-meta-row {
    border-left: 0 !important;
    border-right: 0 !important;
    /* 用 padding 撑间距，线在行顶 */ margin-top: 0 !important;
    /* 清掉 margin，避免影响落点 */ background-image: none !important;
    box-shadow: none !important;
    position: static !important;
}.dt-hero .dt-meta-list > .dt-meta-row:first-child {
    border-top: 0 !important;
}.dt-hero .dt-meta-label {
    max-width: 48px !important;
    box-sizing: border-box;
}

@media screen and (max-width: 768px) {.dt-hero .dt-meta-list > .dt-meta-row + .dt-meta-row {}
}.dt-hero .dt-title {
    font-size: 19px !important;
    line-height: 1.32 !important;
    margin: 0 0 14px !important;
    letter-spacing: .2px !important;
}

@media screen and (max-width: 768px) {.dt-hero .dt-title {}
}

@media screen and (max-width: 400px) {.dt-hero .dt-title {
    font-size: 16px !important;
    margin-bottom: 10px !important;
}
}.channel-set, .pl-content .channel-set {
    grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)) !important;
    gap: 10px !important;
}.channel-set li a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 40px;
    padding: 0 10px !important;
    font-size: 13px;
    font-weight: 600;
    color: var(--c-text-2);
    background: rgba(255, 255, 255, .88);
    border: 1px solid rgba(20, 30, 50, .055);
    border-radius: 10px;
    transition: transform .22s cubic-bezier(.4, 0, .2, 1), box-shadow .22s cubic-bezier(.4, 0, .2, 1), border-color .22s ease, color .22s ease, background .22s ease;
    white-space: nowrap;
    box-shadow: 0 1px 2px rgba(20, 30, 50, .03);
    overflow: hidden;
    text-overflow: ellipsis;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
    min-width: 0 !important;
}

@media screen and (max-width: 1200px) {.channel-set, .pl-content .channel-set {
    grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)) !important;
}
}

@media screen and (max-width: 768px) {.channel-set, .pl-content .channel-set {
    grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)) !important;
    gap: 8px !important;
}.channel-set li a {
    padding: 0 8px !important;
}
}

@media screen and (max-width: 400px) {.channel-set, .pl-content .channel-set {
    grid-template-columns: repeat(auto-fill, minmax(58px, 1fr)) !important;
    gap: 6px !important;
}
}.fl-rank-item {
    list-style: none;
    display: flex;
    flex: 1;
    min-height: 0;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
}.fl-rank-link {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 11px 4px !important;
    border-radius: 0 !important;
    transition: background .16s ease;
    position: relative;
    border: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    text-decoration: none;
}.fl-rank-link:hover {
    background: rgba(255, 107, 53, .04) !important;
    border-color: var(--c-border);
    border-radius: 6px !important;
}.fl-rank-item + .fl-rank-item {
    border-top: 1px solid rgba(20, 30, 50, .06) !important;
}.fl-rank-item:last-child {
    border-bottom: 0 !important;
}.fl-rank-no {
    flex-shrink: 0;
    width: 24px !important;
    height: 24px !important;
    line-height: 1 !important;
    text-align: center;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    color: #000;
    background: var(--c-bg);
    border-radius: 6px !important;
    font-variant-numeric: tabular-nums;
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 24px !important;
}.fl-rank-info {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}.fl-rank-name {
    display: block !important;
    color: var(--c-text);
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    transition: color var(--ease);
    min-width: 0 !important;
}

@media screen and (max-width: 768px) {.fl-rank-link {}.fl-rank-item + .fl-rank-item {}.fl-rank-no {}.fl-rank-name {}
}

@media screen and (max-width: 768px) {.movie-main {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}.fl-duo {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    align-items: start !important;
    margin-bottom: 12px !important;
}.fl-duo-main, .fl-duo-side {
    width: 100% !important;
    min-width: 0 !important;
    border-radius: 10px !important;
    box-sizing: border-box;
}.fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo {
    display: grid !important;
    grid-template-rows: auto !important;
    /* 取消固定 3 行，由数量决定 */ gap: 12px 10px !important;
    width: 100% !important;
    flex: none !important;
    align-content: start !important;
}.fl-poster-grid--duo .fl-poster {
    min-width: 0 !important;
    width: 100% !important;
}.fl-poster-grid--duo .fl-cover {
    padding-top: 122% !important;
    /* 手机上略方一点，避免过高 */ border-radius: 8px !important;
}.fl-poster-grid--duo .fl-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}.fl-poster-grid--duo .fl-meta {
    margin-top: 2px !important;
}.fl-poster-grid--duo .fl-tag, .fl-poster-grid--duo .fl-score, .fl-poster-grid--duo .fl-remark {
    font-size: 10.5px !important;
}.fl-rank-tabs {}.fl-rank-tab {}.fl-rank-list {
    flex-direction: column !important;
    gap: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}.fl-rank-item {}.fl-rank-link {}.fl-rank-item + .fl-rank-item {}.fl-rank-no {}.fl-rank-info {}.fl-rank-name {}.fl-section-head {
    gap: 8px !important;
}.fl-title {
    font-weight: 600 !important;
}.fl-more {}.fl-sub {}
}

@media screen and (max-width: 400px) {.movie-main {}.fl-duo-main, .fl-duo-side {}.fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}.fl-poster-grid--duo .fl-name {
    font-size: 12px !important;
}.fl-rank-tab {
    height: 28px !important;
    line-height: 28px !important;
    font-size: 12px !important;
}.fl-rank-name {
    font-size: 12.5px !important;
}
}

@media screen and (min-width: 769px) and (max-width: 1024px) {.fl-duo {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
}.fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-template-rows: auto !important;
    gap: 14px 12px !important;
}
}.fl-rank-list {
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0;
    flex: 1;
}.fl-rank-list.active {}

@media screen and (max-width: 768px) {.fl-rank-list.active {
    gap: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    width: 100% !important;
}.fl-rank-item {
    flex: 0 0 auto !important;
    width: 100% !important;
    min-height: 0 !important;
    border: 0 !important;
    background: transparent !important;
}.fl-rank-link {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    width: 100% !important;
    border: 0 !important;
    background: transparent !important;
}.fl-rank-item + .fl-rank-item {
    border-top: 1px solid rgba(20, 30, 50, .06) !important;
}.fl-rank-no {
    flex: 0 0 auto !important;
    border-radius: 6px !important;
}.fl-rank-info {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}.fl-rank-name {
    display: block !important;
    line-height: 1.35 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}.fl-rank-tabs {
    display: flex !important;
    width: 100% !important;
    gap: 2px !important;
    padding: 2px !important;
    margin-bottom: 6px !important;
}.fl-rank-tab {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    padding: 0 6px !important;
    text-align: center !important;
}.fl-rank-head {
    margin-bottom: 8px !important;
}
}

@media screen and (min-width: 769px) {.fl-rank-list {}.fl-rank-list.active {}
}ol.fl-rank-list, .fl-rank-list {
    display: none !important;
    flex-direction: column;
}ol.fl-rank-list.active, .fl-rank-list.active, .fl-rank-list[class*="active"] {
    display: flex !important;
    flex-direction: column !important;
}.fl-duo-side {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-width: 0;
}

@media screen and (max-width: 768px) {ol.fl-rank-list, .fl-rank-list {
    display: none !important;
}ol.fl-rank-list.active, .fl-rank-list.active {
    display: flex !important;
    flex-direction: column !important;
}
}html {
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: transparent;
    background: #f7f8fa;
}body {
    font-size: 14px;
    line-height: 1.7;
    color: var(--c-text);
    background: linear-gradient(180deg, #f8f9fb 0%, #f4f6f9 42%, #f7f8fa 100%) !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    min-height: 100vh;
    background-attachment: fixed !important;
}body::before {
    content: "";
    position: fixed;
    inset: -10%;
    z-index: 0;
    pointer-events: none;
    background: radial-gradient(58vw 46vw at 10% -6%, rgba(255, 122, 60, .15), rgba(255, 122, 60, 0) 62%), radial-gradient(52vw 42vw at 92% 6%, rgba(96, 132, 255, .12), rgba(96, 132, 255, 0) 64%), radial-gradient(60vw 50vw at 50% 108%, rgba(255, 186, 74, .11), rgba(255, 186, 74, 0) 66%), radial-gradient(40vw 36vw at 78% 62%, rgba(255, 107, 53, .06), rgba(255, 107, 53, 0) 70%);
}.movie-header, .wap-header, .movie-main, .movie-footer {
    position: relative;
    z-index: 1;
}.fl-section, .fl-duo-main, .fl-duo-side, .dt-hero, .dt-section, .ct-card, .ct-search-bar {
    background: rgba(255, 255, 255, .70) !important;
    -webkit-backdrop-filter: blur(16px) saturate(160%);
    backdrop-filter: blur(16px) saturate(160%);
    border: 1px solid rgba(255, 255, 255, .72) !important;
    box-shadow: 0 1px 0 0 rgba(255, 255, 255, .9) inset, 0 10px 30px -14px rgba(20, 30, 50, .12), 0 2px 8px -4px rgba(20, 30, 50, .05) !important;
}.movie-header {
    width: 100%;
    height: var(--header-h);
    background: rgba(255, 255, 255, .82) !important;
    box-shadow: 0 1px 0 0 rgba(255, 255, 255, .85) inset, 0 4px 18px -10px rgba(20, 30, 50, .10) !important;
    border-bottom: 1px solid var(--c-border);
    position: sticky;
    top: 0;
    z-index: 999;
    -webkit-backdrop-filter: blur(18px) saturate(175%);
    backdrop-filter: blur(18px) saturate(175%);
}.wap-header {
    display: none;
    background: rgba(255, 255, 255, .86) !important;
    -webkit-backdrop-filter: blur(14px) saturate(175%);
    backdrop-filter: blur(14px) saturate(175%);
}

@media screen and (max-width: 768px) {.fl-section, .fl-duo-main, .fl-duo-side, .dt-hero, .dt-section, .ct-card {
    background: rgba(255, 255, 255, .80) !important;
    -webkit-backdrop-filter: blur(8px) saturate(150%);
    backdrop-filter: blur(8px) saturate(150%);
}.movie-header {
    background: rgba(255, 255, 255, .90) !important;
    -webkit-backdrop-filter: blur(10px) saturate(165%);
    backdrop-filter: blur(10px) saturate(165%);
}.wap-header {
    background: rgba(255, 255, 255, .92) !important;
    -webkit-backdrop-filter: blur(10px) saturate(165%);
    backdrop-filter: blur(10px) saturate(165%);
}body::before {
    background: radial-gradient(90vw 50vw at 8% -4%, rgba(255, 122, 60, .10), rgba(255, 122, 60, 0) 60%), radial-gradient(80vw 46vw at 94% 8%, rgba(96, 132, 255, .08), rgba(96, 132, 255, 0) 62%), radial-gradient(90vw 55vw at 50% 106%, rgba(255, 186, 74, .08), rgba(255, 186, 74, 0) 64%);
}
}

@media screen and (max-width: 400px) {.fl-section, .fl-duo-main, .fl-duo-side, .dt-hero, .dt-section, .ct-card {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    background: rgba(255, 255, 255, .94) !important;
}
}

@media screen and (max-width: 768px) {.movie-header {
    border-bottom: 0 !important;
    box-shadow: none !important;
}.wap-header {
    border-bottom: 1px solid rgba(20, 30, 50, .06) !important;
    box-shadow: none !important;
}.movie-header, .wap-header {
    background-clip: padding-box;
}.movie-header .h-main .h-nav li.active::after {
    bottom: 0 !important;
}
}

@media screen and (max-width: 400px) {.movie-header {
    border-bottom: 0 !important;
    box-shadow: none !important;
}.wap-header {
    border-bottom: 1px solid rgba(20, 30, 50, .06) !important;
}
}

@media screen and (max-width: 768px) {:root {
    --header-h: 60px;
}.movie-header .h-main {
    height: 60px !important;
}.movie-header .h-main .h-nav li .title {
    height: 60px !important;
    line-height: 60px !important;
}.wap-header {
    padding: 10px 14px !important;
}.wap-header .wap-box-search {
    height: 40px !important;
}.fl-section, .fl-duo-main, .fl-duo-side, .dt-section, .dt-hero {
    padding: 20px 18px !important;
}.fl-section, .dt-section {
    margin-bottom: 16px !important;
}.fl-section + .fl-section {
    margin-top: 16px !important;
}.movie-main {
    padding: 0 12px !important;
    margin: 16px 0 !important;
}.fl-section-head {
    margin-bottom: 18px !important;
}.fl-title {}.fl-sub {
    display: inline !important;
}.fl-more {
    font-size: 12.5px !important;
    padding: 5px 10px !important;
}.dt-hero .dt-actions .dt-btn, .dt-hero .dt-actions .dt-rate {
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 16px !important;
    font-size: 13.5px !important;
}.dt-hero .dt-actions a.dt-btn-ghost {}.channel-set li a {
    height: 40px !important;
}.fl-rank-tab {
    height: 34px !important;
    line-height: 34px !important;
    font-size: 13px !important;
}.fl-rank-link {
    padding: 11px 8px !important;
}.fl-rank-no {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    line-height: 24px !important;
    font-size: 12.5px !important;
}.fl-rank-name {}.dt-hero .dt-meta-row {
    font-size: 13.5px !important;
}.dt-hero .dt-meta-row + .dt-meta-row {}.dt-hero .dt-meta-list > .dt-meta-row + .dt-meta-row {}.dt-hero .dt-meta-label {
    flex: 0 0 48px !important;
    width: 48px !important;
    min-width: 48px !important;
    font-size: 13px !important;
}.dt-hero .dt-meta-value {
    font-size: 13.5px !important;
}.dt-hero .dt-title {
    margin-bottom: 16px !important;
}.dt-hero .dt-tag {
    font-size: 13px !important;
    padding: 5px 12px !important;
}.dt-content {
    font-size: 14px !important;
    line-height: 1.8 !important;
}.dt-section-title {}.fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo {
    gap: 18px 12px !important;
}.fl-poster-grid--duo .fl-name {}.fl-poster-grid--duo .fl-meta {
    font-size: 12px !important;
}.wap-header .wap-box-search .inp {
    height: 40px !important;
    font-size: 14px !important;
}.wap-header .wap-box-search .btn {
    height: 40px !important;
    font-size: 14px !important;
    padding: 0 18px !important;
}.dt-prev-next {
    gap: 14px !important;
}.dt-prev-next .dt-pn-item {
    padding: 14px 16px !important;
}
}

@media screen and (max-width: 400px) {.movie-main {
    padding: 0 10px !important;
}.fl-section, .fl-duo-main, .fl-duo-side, .dt-section, .dt-hero {
    padding: 18px 14px !important;
}.fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo {
    gap: 16px 9px !important;
}
}

@media screen and (max-width: 768px) {.dt-hero .dt-actions {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
}.dt-hero .dt-actions > .dt-btn, .dt-hero .dt-actions > .dt-rate {
    flex: 0 1 auto !important;
    /* 不再强制三等分，按内容取宽 */ min-width: 0 !important;
    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
    padding: 0 12px !important;
    font-size: 13.5px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    box-sizing: border-box;
    overflow: hidden !important;
}.dt-hero .dt-actions a.dt-btn-ghost {
    padding: 0 12px !important;
    font-size: 13px !important;
}.dt-hero .dt-actions .dt-rate {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
    padding: 0 12px !important;
}.dt-hero .dt-actions .dt-rate .dt-score {
    flex: 0 0 auto !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}.dt-hero .dt-actions .dt-rate .dt-rate-sep {
    flex: 0 0 auto !important;
    width: 1px !important;
    height: 14px !important;
    margin: 0 7px !important;
    white-space: nowrap !important;
}.dt-hero .dt-actions .dt-rate .dt-rate-num {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    font-size: 12.5px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
}

@media screen and (max-width: 400px) {.dt-hero .dt-actions {
    gap: 6px !important;
}.dt-hero .dt-actions > .dt-btn, .dt-hero .dt-actions > .dt-rate {
    padding: 0 9px !important;
    font-size: 12.5px !important;
}.dt-hero .dt-actions a.dt-btn-ghost {
    padding: 0 9px !important;
    font-size: 12px !important;
}.dt-hero .dt-actions .dt-rate {
    padding: 0 9px !important;
}.dt-hero .dt-actions .dt-rate .dt-score {
    font-size: 14px !important;
}.dt-hero .dt-actions .dt-rate .dt-rate-sep {
    margin: 0 5px !important;
    height: 12px !important;
}.dt-hero .dt-actions .dt-rate .dt-rate-num {
    font-size: 11.5px !important;
}
}.dt-hero .dt-tag, .dt-hero .dt-tag-primary, .dt-hero .dt-tag--primary {
    background: #f5f6f8 !important;
    background-image: none !important;
    border: 0 !important;
    color: var(--c-text-2) !important;
    font-weight: 400 !important;
    box-shadow: none !important;
}.dt-hero .dt-tag-primary:hover, .dt-hero .dt-tag:hover {
    background: #eef0f4 !important;
    color: var(--c-text) !important;
}.dt-hero a.dt-tag-primary:hover, .dt-hero a.dt-tag:hover {
    color: var(--c-text) !important;
}.dt-hero .dt-meta-list > .dt-meta-row, .dt-hero .dt-meta-list > .dt-meta-row + .dt-meta-row, .dt-hero .dt-meta-row, .dt-hero .dt-meta-row + .dt-meta-row {
    border-top: 0 !important;
    border-bottom: 0 !important;
    border-color: transparent !important;
}.dt-hero .dt-meta-list > .dt-meta-row::before, .dt-hero .dt-meta-list > .dt-meta-row + .dt-meta-row::before, .dt-hero .dt-meta-row::before, .dt-hero .dt-meta-row + .dt-meta-row::before {
    content: none !important;
    display: none !important;
    height: 0 !important;
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
}.dt-hero .dt-meta-list > .dt-meta-row + .dt-meta-row, .dt-hero .dt-meta-row + .dt-meta-row {
    padding-top: 0 !important;
    margin-top: 10px !important;
}.dt-hero .dt-meta-row:first-child, .dt-hero .dt-meta-list > .dt-meta-row:first-child {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

@media screen and (max-width: 768px) {.dt-hero .dt-tag, .dt-hero .dt-tag-primary, .dt-hero .dt-tag--primary {
    background: #f5f6f8 !important;
    background-image: none !important;
    border: 0 !important;
    color: var(--c-text-2) !important;
    font-weight: 400 !important;
    box-shadow: none !important;
}.dt-hero .dt-meta-list > .dt-meta-row, .dt-hero .dt-meta-list > .dt-meta-row + .dt-meta-row, .dt-hero .dt-meta-row, .dt-hero .dt-meta-row + .dt-meta-row {
    border-top: 0 !important;
    border-bottom: 0 !important;
}.dt-hero .dt-meta-list > .dt-meta-row::before, .dt-hero .dt-meta-list > .dt-meta-row + .dt-meta-row::before, .dt-hero .dt-meta-row::before, .dt-hero .dt-meta-row + .dt-meta-row::before {
    content: none !important;
    display: none !important;
    height: 0 !important;
}.dt-hero .dt-meta-list > .dt-meta-row + .dt-meta-row, .dt-hero .dt-meta-row + .dt-meta-row {
    padding-top: 0 !important;
    margin-top: 9px !important;
}
}

@media screen and (max-width: 400px) {.dt-hero .dt-meta-list > .dt-meta-row::before, .dt-hero .dt-meta-row + .dt-meta-row::before {
    content: none !important;
}.dt-hero .dt-meta-row + .dt-meta-row {
    margin-top: 8px !important;
    padding-top: 0 !important;
}
}

lj_actor_mobile_fix v2: 移动端详情页「主演」字段 =====
   v1 的做法是允许折行并用 flex 排版，但实测折行后第二行的起始位置
   与第一行不齐（视觉上「错行」）。
   v2 改为：不折行 —— 单行内放不下就省略号截断。
   配合模板层已把显示数量限制为 5 个 + 「等」，移动端一行即可放下。
   范围：只在 max-width:768px 内生效，不影响桌面端。 */
@media screen and (max-width: 768px) {.dt-hero .dt-meta-row, .dt-hero .dt-meta-label, .dt-hero .dt-meta-value {
    line-height: 24px !important;
    min-height: 0 !important;
}/* 主演：单行 + 省略号，绝不折行 */ .dt-hero .dt-meta-value.dt-actor {
    display: block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    -webkit-line-clamp: 1 !important;
    line-clamp: 1 !important;
    word-break: keep-all !important;
    max-width: 100% !important;
}.dt-hero .dt-meta-value.dt-actor a {
    display: inline !important;
    margin: 0 6px 0 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
}.dt-hero .dt-meta-value.dt-actor a:last-of-type {
    margin-right: 0 !important;
}.dt-hero .dt-meta-value.dt-actor .dt-actor-more {
    display: inline !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
}
}

/* ===== lj_actions_align: 移动端详情页底部三个按钮左右对称 =====
   问题：.dt-actions 被多批规则反复覆盖，最终生效的是
           grid-template-columns: repeat(auto-fit, minmax(120px, 1fr))
         auto-fit 的列数由容器宽度精确计算决定，且每列宽度受内容影响，
         而三个按钮内容长度不同（「备用网址」「复制网址」「9.6 | 38人评」），
         结果宽度不等、不对齐；某些宽度下还会退化成 2+1 两行。
   做法：固定为三列等宽（repeat(3, minmax(0,1fr))），子项强制拉伸并居中，
         并压缩内边距与评分的字号，保证在 1/3 宽度内放得下。
   范围：只在 max-width:768px 内生效，不影响桌面端与播放页。 */
@media screen and (max-width: 768px) {.dt-hero .dt-actions {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
    align-items: stretch !important;
}/* 三个按钮：等宽、拉伸、内容居中 */ .dt-hero .dt-actions > .dt-btn, .dt-hero .dt-actions > .dt-rate {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    justify-self: stretch !important;
    align-self: stretch !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 6px !important;
    margin: 0 !important;
    gap: 4px !important;
    font-size: 13px !important;
    height: 38px !important;
    min-height: 38px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}/* 评分模块：压缩内部间距与字号，适配 1/3 宽度 */ .dt-hero .dt-actions > .dt-rate .dt-score {
    font-size: 16px !important;
    line-height: 1 !important;
}.dt-hero .dt-actions > .dt-rate .dt-rate-sep {
    margin: 0 2px !important;
}.dt-hero .dt-actions > .dt-rate .dt-rate-num {
    font-size: 11px !important;
    margin: 0 !important;
}.dt-hero .dt-actions > .dt-rate .dt-stars {
    display: none !important;
}
    /* 窄屏（≤360px）进一步压缩 */
    @media screen and (max-width: 360px) {.dt-hero .dt-actions {
    gap: 6px !important;
}.dt-hero .dt-actions > .dt-btn, .dt-hero .dt-actions > .dt-rate {
    font-size: 12px !important;
    padding: 0 4px !important;
}.dt-hero .dt-actions > .dt-rate .dt-score {
    font-size: 15px !important;
}.dt-hero .dt-actions > .dt-rate .dt-rate-num {
    font-size: 10px !important;
}
    }
}

/* lj_actions_mask_fix: 把评分弹层遮罩排除出 .dt-actions 的 grid 布局流。
   .dt-actions 里除三个按钮外还有一个 .dts-mask（评分弹层遮罩），
   固定三列后它会占掉一格并把按钮挤到第二行。这里显式让它脱离文档流。 */
@media screen and (max-width: 768px) {.dt-hero .dt-actions > .dts-mask {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    grid-column: auto !important;
    justify-self: auto !important;
    align-self: auto !important;
}
}/* ===== lj_section_title_size: 栏目标题字号各减一号 ===== 涉及两个栏目标题样式： 首页各栏目的标题 .fl-title （在 .fl-section-head / .fl-rank-head 内） 列表页各栏目的标题 .ct-section-title 调整：桌面 14px -> 13px；移动端（≤768px）15px -> 14px。 注意特异性：原文件里有 .fl-section-head .fl-title 这种两段式选择器， 单写 .fl-title 会被它压过，所以这里用同等的两段式写法。 范围：追加在文件末尾，不修改任何现有规则。 */ .fl-section-head .fl-title, .fl-duo-main .fl-section-head .fl-title, .fl-rank-head .fl-title, .ct-section-title {
    font-size: 15px !important;
}

@media screen and (max-width: 768px) {.fl-section-head .fl-title, .fl-duo-main .fl-section-head .fl-title, .fl-rank-head .fl-title, .fl-title, .ct-section-title {
    font-size: 14px !important;
}
}

@media screen and (max-width: 480px) {.fl-section-head .fl-title, .fl-title, .ct-section-title {
    font-size: 14px !important;
}
}/* ===== lj_section_title_size2: 补齐内页栏目标题字号 ===== 上一批只改了 .fl-title（首页）和 .ct-section-title，实测内页没变化，原因有二： ① .ct-section-title 的移动端原本已是 14px，我上一批设的也是 14px —— 等于没改 ② 详情页/播放页的「猜你喜欢」「更多影片」用的是 .dt-section-title， 上一批完全没覆盖到，它有 14/14/15 三条规则竞争，最终 15px 胜出 本批把内页两类标题统一压一号： .ct-section-title 列表页/搜索页/选集页栏目标题 桌面 13px / ≤768px 13px / ≤480px 12px .dt-section-title 详情页/播放页栏目标题 桌面 13px / ≤768px 13px / ≤480px 12px 范围：追加在文件末尾，不修改任何现有规则。 */ .dt-section-title, .ct-section-title {
    font-size: 13px !important;
}

@media screen and (max-width: 768px) {.dt-section-title, .ct-section-title {
    font-size: 13px !important;
}
}

@media screen and (max-width: 480px) {.dt-section-title, .ct-section-title {
    font-size: 12px !important;
}
}/* ===== lj_dt_title_size: 影视详情页的影视名字号压小 ===== 目标：<h1 class="dt-title"> —— 详情页顶部的影片名。 实测该类桌面生效值 19px、≤768px 为 18px、≤400px 为 16px， 这里统一压小 2~1px：桌面 17px / ≤768px 16px / ≤480px 15px。 同时收紧行高，避免压小后行距显空。 范围：追加在文件末尾，不修改任何现有规则。 */ .dt-hero .dt-title, .dt-title {
    font-size: 17px !important;
    line-height: 1.3 !important;
}

@media screen and (max-width: 768px) {.dt-hero .dt-title, .dt-title {}
}

@media screen and (max-width: 480px) {.dt-hero .dt-title, .dt-title {}
}

/* ===== lj_poster_ratio: 详情页海报比例与尺寸 =====
   问题：.dt-poster img 有两条冲突规则 ——
           .dt-poster img      { aspect-ratio: 3/4; object-fit: cover; }
           .dt-hero .dt-poster img { height: auto; max-height: 310px; object-fit: cover; }后者特异性更高且在文件后面，实际胜出，于是 aspect-ratio 失效， 图片按原始比例显示。而源站海报多为细长的 2:3 甚至更高， 容器宽仅 196px，高度却到 294~310px，比右侧信息区高出一大截。 做法：① 强制统一比例，让高度由比例决定而不是由原图决定 ② 容器宽度 204px ③ 去掉 310px 的硬上限（改由比例控制，避免与比例打架） ④ object-fit: cover 保证是裁剪而不是拉伸，不会变形 比例（2026-10-06 调整）： 原来用 3/4（即 133%），与站内卡片海报统一后发现整体偏高、 比例失调。站内卡片海报已统一为 124%（约 4:5）， 详情页这里改用 4/5（=125%），与站内保持一致。 204px 宽 × 5/4 = 255px 高（原来 272px，矮了 17px）。 范围：追加在文件末尾，不修改任何现有规则。 */ .dt-hero .dt-poster {
    width: 204px !important;
}.dt-hero .dt-poster img, .dt-poster img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 5 !important;
    object-fit: cover !important;
    object-position: center top !important;
    max-height: none !important;
}

@media screen and (max-width: 1199px) {.dt-hero .dt-poster {
    width: 180px !important;
}.dt-hero .dt-poster img, .dt-poster img {
    max-height: none !important;
    aspect-ratio: 4 / 5 !important;
}
}

@media screen and (max-width: 768px) {.dt-hero .dt-poster {
    width: 140px !important;
}.dt-hero .dt-poster img, .dt-poster img {
    max-height: none !important;
    aspect-ratio: 4 / 5 !important;
}
}

@media screen and (max-width: 480px) {.dt-hero .dt-poster {}.dt-hero .dt-poster img, .dt-poster img {
    max-height: none !important;
    aspect-ratio: 4 / 5 !important;
}
}

@media screen and (max-width: 360px) {.dt-hero .dt-poster {}
}/* ===== lj_heading_all: 全站版块标题统一（唯一真源） ===== 基准：首页「周排行 / 月排行 / 年排行」的字号 字号：桌面 15px / ≤1024px 14px / ≤768px 14px / ≤480px 13px 字重：600 颜色：#262b33 (--c-heading) 要改全站标题字号，只改下面 :root 里的 --lj-heading-size* 即可。 */ :root {
    --lj-heading-size: 15px;
    --lj-heading-size-sm: 14px;
    --lj-heading-size-xs: 13px;
    --lj-heading-weight: 600;
}/* ---------- 所有版块标题 ---------- */ .fl-duo-main .fl-section-head .fl-title, .fl-section-head .fl-title, .fl-duo-side .fl-rank-tabs .fl-rank-tab, .ct-poster-section .ct-section-title, .ct-card .ct-section-title, section .ct-section-title, .dt-section .dt-section-title, .dt-section > .dt-section-title, section .dt-section-title {
    font-size: var(--lj-heading-size) !important;
    font-weight: var(--lj-heading-weight) !important;
    color: var(--c-heading) !important;
    line-height: 1.25 !important;
    letter-spacing: normal !important;
    font-family: inherit !important;
}

/* ---------- 响应式：所有标题同步收，始终一致 ---------- */
@media screen and (max-width: 1024px) {.fl-duo-main .fl-section-head .fl-title, .fl-section-head .fl-title, .fl-duo-side .fl-rank-tabs .fl-rank-tab, .ct-poster-section .ct-section-title, .ct-card .ct-section-title, section .ct-section-title, .dt-section .dt-section-title, .dt-section > .dt-section-title, section .dt-section-title {
    font-size: var(--lj-heading-size-sm) !important;
}
}
@media screen and (max-width: 768px) {.fl-duo-main .fl-section-head .fl-title, .fl-section-head .fl-title, .fl-duo-side .fl-rank-tabs .fl-rank-tab, .ct-poster-section .ct-section-title, .ct-card .ct-section-title, section .ct-section-title, .dt-section .dt-section-title, .dt-section > .dt-section-title, section .dt-section-title {
    font-size: var(--lj-heading-size-sm) !important;
}
}
@media screen and (max-width: 480px) {.fl-duo-main .fl-section-head .fl-title, .fl-section-head .fl-title, .fl-duo-side .fl-rank-tabs .fl-rank-tab, .ct-poster-section .ct-section-title, .ct-card .ct-section-title, section .ct-section-title, .dt-section .dt-section-title, .dt-section > .dt-section-title, section .dt-section-title {
    font-size: var(--lj-heading-size-xs) !important;
}
}/* ---------- 排行榜 TAB 的下划线（导航条样式，随标题一起并入本块） ---------- */ .fl-duo-side .fl-rank-tabs {
    display: flex !important;
    align-items: flex-end !important;
    gap: 20px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
}.fl-duo-side .fl-rank-tabs .fl-rank-tab {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 0 8px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: none !important;
    box-shadow: none !important;
    white-space: nowrap !important;
    cursor: pointer !important;
    appearance: none;
    -webkit-appearance: none;
    transition: color .2s var(--ease) !important;
}.fl-duo-side .fl-rank-tabs .fl-rank-tab::after {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    bottom: 0 !important;
    transform: translateX(-50%) !important;
    width: 24px !important;
    height: 3px !important;
    border-radius: 3px 3px 0 0 !important;
    background: transparent !important;
    transition: background .2s var(--ease) !important;
}.fl-duo-side .fl-rank-tabs .fl-rank-tab:hover {
    color: var(--c-primary) !important;
}.fl-duo-side .fl-rank-tabs .fl-rank-tab.active {
    color: var(--c-primary) !important;
}.fl-duo-side .fl-rank-tabs .fl-rank-tab.active::after {
    background: linear-gradient(90deg, var(--c-primary-2), var(--c-primary)) !important;
}.fl-duo-side .fl-rank-tabs .fl-rank-tab:focus-visible {
    outline: 2px solid var(--c-primary) !important;
    outline-offset: 2px !important;
    border-radius: 2px !important;
}
@media screen and (max-width: 768px) {.fl-duo-side .fl-rank-tabs {
    gap: 16px !important;
}.fl-duo-side .fl-rank-tabs .fl-rank-tab {
    padding-bottom: 6px !important;
}
}
@media screen and (max-width: 480px) {.fl-duo-side .fl-rank-tabs {
    gap: 12px !important;
}
}/* ===== lj_font_pingfang: 全站字体统一为苹方 ===== 全站只用一套字体：苹方 PingFang SC 字体栈：PingFang SC → PingFang HK → PingFang TC → sans-serif 说明：苹方是苹果系统字体，macOS / iOS 直接命中； 非苹果设备（Windows / Android）由 sans-serif 兜底走系统黑体， 观感与苹方接近，不会出现宋体衬线。 覆盖：显式声明所有文本元素与表单控件，确保 100% 统一。 图标字体单独保护，不受影响。 */ :root {
    --lj-font:
    -apple-system, BlinkMacSystemFont,
    "PingFang SC", "PingFang HK", "PingFang TC",
    "HarmonyOS Sans SC", "HarmonyOS Sans",
    "MiSans",
    "OPPO Sans", "OPPOSans",
    "vivo Sans",
    "HONOR Sans",
    "Noto Sans CJK SC", "Noto Sans SC",
    "Source Han Sans SC",
    "Microsoft YaHei",
    "DengXian",
    "Droid Sans Fallback",
    sans-serif;
}/* ---------- 全站文本元素 ---------- */ html, body, div, span, p, a, li, ul, ol, dl, dt, dd, h1, h2, h3, h4, h5, h6, table, thead, tbody, tfoot, tr, td, th, form, label, legend, fieldset, strong, b, em, small, sub, sup, blockquote, pre, code, header, footer, nav, aside, section, article, main, figure, figcaption {
    font-family: var(--lj-font);
}/* ---------- 表单控件（浏览器默认不继承字体） ---------- */ button, input, select, textarea, optgroup, option, output, datalist {
    font-family: var(--lj-font);
}/* ---------- 图标字体保护（必须放在最后，且不加通配覆盖） ---------- */ .iconfont, .iconfont *, .layui-icon, .layui-icon *, [class^="icon-"], [class*=" icon-"], [class^="layui-icon"], [class*="layui-icon"], i[class*="fa-"], .fa, .fas, .far, .fab {
    font-family: "iconfont", "layui-icon", FontAwesome, sans-serif !important;
}/* ===== lj_pingfang_webfont: 内嵌苹方，全平台统一 ===== 字体：苹方 PingFang SC（简体），子集约 7500 字符 字重方案（2026-10-06 四次调整后定型）： 400 正文 准-简 Regular (.PingFang-SC-Regular) 500 / 600 标题 中黑-简 Semibold (.PingFang-SC-Semibold) 700 / 900 粗体 中黑-简 Semibold ★ 重要：这批字体包的【文件名与内部字重是对调的】，引用时务必按实际字重： 苹方黑体-准-简.ttf → Regular (最细) 苹方黑体-中粗-简.ttf → Medium (中间) 苹方黑体-中黑-简.ttf → Semibold (较粗) 苹方黑体-细-简.ttf → Light (比 Regular 还细) 所以「中黑-简」比「中粗-简」更粗，不要按字面理解。 站内文件已按用途重命名：pf4-text.woff2 = 正文，pf4-title.woff2 = 标题。 策略：字体名声明为 "PingFang SC" —— · 苹果设备命中系统自带苹方，不下载字体文件 · 非苹果设备回退到内嵌文件，字形与苹方一致 */ @font-face {}@font-face {}/* ===== lj_name_gap: 卡片片名的上下间距放宽 ===== 覆盖范围：首页左侧海报网格、列表页、搜索页、详情页「猜你喜欢」等 所有使用 .fl-name / .ct-name 的卡片。 调整： 片名与海报之间 margin-top → 10px（移动端 8px） 片名行高 line-height → 1.5 行与行之间 row-gap → 22px（移动端 18px） 说明：.ct-name（列表页/猜你喜欢）此前也是类似间距，一并统一， 避免同一站内两种节奏。 */ /* ---------- 首页左侧海报（.fl-*） ---------- */ .fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name {
    margin-top: 10px !important;
    margin-bottom: 0 !important;
    line-height: 1.5 !important;
}.fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo, .fl-poster-grid {}/* ---------- 列表页 / 猜你喜欢（.ct-*） ---------- */ .ct-poster-grid .ct-name, .ct-poster-grid .ct-name a, .ct-name {
    margin-top: 10px !important;
    margin-bottom: 0 !important;
    line-height: 1.5 !important;
}.ct-poster-grid {}

/* ---------- 移动端：略收一档，但比原来宽松 ---------- */
@media screen and (max-width: 1024px) {.fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-name {}.fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {}
}

@media screen and (max-width: 768px) {.fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-name {}.fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {}
}

@media screen and (max-width: 480px) {.fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-name {}.fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {}
}/* ===== lj_hero_pad: 详情页影片信息卡的上下间距（对称） ===== 目标：<div class="dt-hero"> —— 详情页顶部那张「海报 + 片名 + 标签 + 导演主演 + 按钮」的信息卡。 调整：只为它单独设定上下内边距，左右保持原值不变， 并让上下的数值一一对称，卡片内留白均匀。 桌面 上下各 24px ≤1024px 上下各 19px ≤768px 上下各 16px ≤480px 上下各 14px 要再调，只改下面各断点里的两个数值（保持相等即可）。 */ .dt-hero {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
}

@media screen and (max-width: 1024px) {.dt-hero {
    padding-top: 19px !important;
    padding-bottom: 19px !important;
}
}

@media screen and (max-width: 768px) {.dt-hero {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
}
}

@media screen and (max-width: 480px) {.dt-hero {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
}
}/* ===== lj_label_as_btn: 「导演 / 主演 / 更新」与片名下的分类标签同款 ===== 参照同页片名下方那三个标签（国产剧 / 2014 / 大陆，.dt-tag）： 浅灰底 #f5f6f8 · 无边框 · 无阴影 · 字重 400 高 28px · 内边距 0 12px · 字号 13px · 圆角与 .dt-tag 一致 这样整张信息卡里，分类标签与字段标签是同一套视觉语言。 */ :root {
    --lj-label-h: 28px;
    --lj-label-px: 12px;
    --lj-label-fs: 13px;
    --lj-label-r: 7px;
}/* 行：垂直居中 */ .dt-hero .dt-meta-row, .dt-hero .dt-meta-list > .dt-meta-row {
    align-items: center !important;
    gap: 10px !important;
    min-height: 34px !important;
}/* 标签：与 .dt-tag 完全同款 */ .dt-hero .dt-meta-row .dt-meta-label, .dt-hero .dt-meta-label {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    height: var(--lj-label-h) !important;
    min-height: var(--lj-label-h) !important;
    padding: 0 var(--lj-label-px) !important;
    margin: 0 !important;
    border-radius: var(--lj-label-r) !important;
    border: 0 !important;
    background: #f5f6f8 !important;
    background-image: none !important;
    box-shadow: none !important;
    color: var(--c-text-2) !important;
    font-size: var(--lj-label-fs) !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    letter-spacing: normal !important;
    white-space: nowrap !important;
    text-align: center !important;
}.dt-hero .dt-meta-label::before, .dt-hero .dt-meta-label::after {
    display: none !important;
    content: none !important;
}.dt-hero .dt-meta-row .dt-meta-value {
    line-height: 1.5 !important;
}.dt-hero .dt-meta-list > .dt-meta-row + .dt-meta-row {
    margin-top: 8px !important;
}

/* ---------- 移动端 ---------- */
@media screen and (max-width: 1024px) {:root {
    --lj-label-h: 26px;
    --lj-label-px: 10px;
    --lj-label-fs: 12.5px;
}.dt-hero .dt-meta-row, .dt-hero .dt-meta-list > .dt-meta-row {
    gap: 9px !important;
    min-height: 32px !important;
}.dt-hero .dt-meta-list > .dt-meta-row + .dt-meta-row {
    margin-top: 7px !important;
}
}

@media screen and (max-width: 768px) {:root {
    --lj-label-h: 25px;
    --lj-label-px: 9px;
    --lj-label-fs: 12px;
}.dt-hero .dt-meta-row, .dt-hero .dt-meta-list > .dt-meta-row {
    gap: 8px !important;
    min-height: 30px !important;
}
}

@media screen and (max-width: 480px) {:root {
    --lj-label-h: 24px;
    --lj-label-px: 8px;
    --lj-label-fs: 11.5px;
}
}/* ===== lj_hero_colgap: 详情页信息卡的左右间距 ===== 目标：<div class="dt-hero"> —— 左侧海报列与右侧信息列之间的距离。 调整：只改 column-gap（列间距），不动行间距、内边距与列宽。 桌面 12px → 24px ≤1024px 12px → 20px ≤768px 10px → 16px ≤480px 8px → 12px 海报列宽（grid-template-columns）保持不变， 因此信息区会相应变窄一点点，但整体更舒展。 */ .dt-hero {
    column-gap: 24px !important;
}

@media screen and (max-width: 1024px) {.dt-hero {}
}

@media screen and (max-width: 768px) {.dt-hero {}
}

@media screen and (max-width: 480px) {.dt-hero {}
}/* ===== lj_channel_title_dim: 播放页「高清信号源」弱化 ===== 这是线路/信号源标签，属于辅助信息，不该与版块标题同权重。 已把它从全站标题统一块（lj_heading_all）中摘出，这里单独定义： 字号 13px · 字重 500 · 颜色 var(--c-text-2) 比集数按钮略强一点点，但明显弱于「×××在线观看」这类版块标题。 */ .channel-box-header .channel-header .title, .channel-header .title, .channel-header > .title {
    font-size: 13px !important;
    font-weight: 500 !important;
    color: var(--c-text-2) !important;
    line-height: 1.3 !important;
    letter-spacing: normal !important;
}

@media screen and (max-width: 768px) {.channel-box-header .channel-header .title, .channel-header .title, .channel-header > .title {
    font-size: 12.5px !important;
}
}

@media screen and (max-width: 480px) {.channel-box-header .channel-header .title, .channel-header .title, .channel-header > .title {
    font-size: 12px !important;
}
}/* ===== lj_sort_symmetry: 「正序 / 倒序」与「高清信号源」对称 ===== 左侧「● 高清信号源」：13px / 字重 500 / 颜色 var(--c-text-2) 右侧「正序 / 倒序」 ：同为 13px / 字重 500 / 未选中同色 选中态只用橙色区分，不再加粗 —— 两侧视觉重量保持一致。 控件形态（胶囊分段）保留，因为它需要表达「当前选中哪一个」。 */ :root {
    --lj-sort-fs: 13px;
    --lj-sort-h: 30px;
}.channel-sort-tabs {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    padding: 3px !important;
    border-radius: 999px !important;
    background: #f5f6f8 !important;
    border: 0 !important;
    flex: none !important;
}.channel-sort-btn, .channel-sort-tabs > button, .channel-box-header .channel-sort-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    height: var(--lj-sort-h) !important;
    min-height: var(--lj-sort-h) !important;
    padding: 0 14px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
    color: var(--c-text-2) !important;
    font-size: var(--lj-sort-fs) !important;
    font-weight: 500 !important;
    font-family: inherit !important;
    line-height: 1 !important;
    letter-spacing: normal !important;
    white-space: nowrap !important;
    cursor: pointer !important;
    box-shadow: none !important;
    appearance: none;
    -webkit-appearance: none;
    transition: color .2s var(--ease), background-color .2s var(--ease) !important;
}.channel-sort-btn svg, .channel-sort-tabs > button svg {
    width: 10px !important;
    height: 10px !important;
    flex: none !important;
    display: block !important;
    position: static !important;
    transform: none !important;
}.channel-sort-btn:hover, .channel-sort-tabs > button:hover {
    color: var(--c-primary) !important;
    background: rgba(255, 107, 53, .08) !important;
}.channel-sort-btn.active, .channel-sort-tabs > button.active {
    color: var(--c-primary) !important;
    background: #fff !important;
    font-weight: 500 !important;
    box-shadow: 0 1px 4px rgba(20, 30, 50, .10) !important;
}.channel-sort-btn:focus-visible, .channel-sort-tabs > button:focus-visible {
    outline: 2px solid var(--c-primary) !important;
    outline-offset: 2px !important;
}

@media screen and (max-width: 1024px) {:root {
    --lj-sort-fs: 12.5px;
    --lj-sort-h: 28px;
}.channel-sort-btn, .channel-sort-tabs > button, .channel-box-header .channel-sort-btn {
    padding: 0 12px !important;
}
}

@media screen and (max-width: 768px) {:root {
    --lj-sort-fs: 12.5px;
    --lj-sort-h: 27px;
}.channel-sort-btn, .channel-sort-tabs > button, .channel-box-header .channel-sort-btn {
    padding: 0 11px !important;
}
}

@media screen and (max-width: 480px) {:root {
    --lj-sort-fs: 12px;
    --lj-sort-h: 26px;
}.channel-sort-btn, .channel-sort-tabs > button, .channel-box-header .channel-sort-btn {
    padding: 0 10px !important;
}
}/* ===== lj_name_match: 首页与分类列表页的片名间距完全一致 ===== 覆盖对象： 首页 .fl-name + .fl-poster-grid--duo / .fl-poster-grid 列表页 .ct-name + .ct-poster-grid 三项数值两边完全相同：片名上方 10px / 行高 1.5 / 行间距 22px。 移动端同样两边同步，避免某一侧单独跑偏。 */ .fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-poster-grid .ct-name a, .ct-name {
    margin-top: 10px !important;
    margin-bottom: 0 !important;
    line-height: 1.5 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}.fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {}

@media screen and (max-width: 1024px) {.fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-name {}.fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {}
}

@media screen and (max-width: 768px) {.fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-name {}.fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {}
}

@media screen and (max-width: 480px) {.fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-name {}.fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {}
}/* ===== lj_dt_title_15: 详情页影片名字号并入全站标题体系 ===== 原为 17px（页面主标题），现改为与全站版块标题一致： 桌面 15px / ≤1024px 14px / ≤768px 14px / ≤480px 13px 字重、颜色沿用原值（影片名仍比版块标题略重），只统一字号。 复用 lj_heading_all 里的变量，改一处两边同步。 */ .dt-hero .dt-title, .dt-title, .dt-hero h1.dt-title {
    font-size: var(--lj-heading-size, 15px) !important;
    line-height: 1.3 !important;
}

@media screen and (max-width: 1024px) {.dt-hero .dt-title, .dt-title, .dt-hero h1.dt-title {}
}

@media screen and (max-width: 768px) {.dt-hero .dt-title, .dt-title, .dt-hero h1.dt-title {}
}

@media screen and (max-width: 480px) {.dt-hero .dt-title, .dt-title, .dt-hero h1.dt-title {}
}/* ===== lj_section_pad20: 全站栏目版块上下间距统一 20px ===== 覆盖对象（各页面的栏目容器）： 首页 .fl-duo-main（左内容区） / .fl-duo-side（右排行榜） 列表页 .fl-section、.ct-poster-section 详情页 .dt-section（猜你喜欢等栏目）、.dt-section-head 播放页 .dt-section（选集区）、.ct-card 搜索页 .fl-section 规则：把它们的上下内边距统一为 20px， 左右内边距维持各容器原有数值（避免卡片变形的观感变化）。 断点： 桌面 上下 20px ≤1024px 上下 20px ≤768px 上下 18px（小屏略收，避免留白占比过大） ≤480px 上下 16px 要再调，只改下面各断点里的 padding-top / padding-bottom 两个数值。 */ /* ---------- 桌面 ---------- */ .fl-duo-main, .fl-duo-side, .fl-section, .ct-poster-section, .ct-card, .dt-section, .dt-section-head {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
}/* 排行榜一侧（.fl-duo-side 内有 .fl-rank-head + 列表）同样处理 */ .fl-duo-side .fl-rank-head, .fl-duo-side .fl-rank-list {
    margin-top: 0 !important;
}

/* ---------- ≤1024px ---------- */
@media screen and (max-width: 1024px) {.fl-duo-main, .fl-duo-side, .fl-section, .ct-poster-section, .ct-card, .dt-section, .dt-section-head {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
}
}

/* ---------- ≤768px ---------- */
@media screen and (max-width: 768px) {.fl-duo-main, .fl-duo-side, .fl-section, .ct-poster-section, .ct-card, .dt-section, .dt-section-head {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
}
}

/* ---------- ≤480px ---------- */
@media screen and (max-width: 480px) {.fl-duo-main, .fl-duo-side, .fl-section, .ct-poster-section, .ct-card, .dt-section, .dt-section-head {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
}
}/* ===== lj_section_pad_lr20: 栏目容器左右内边距统一 20px ===== 承接 lj_section_pad20（已把上下统一为 20px），这里把左右也统一为 20px， 至此全站栏目容器的四边内边距均为 20px。 覆盖对象： 首页 .fl-duo-main（左内容区） / .fl-duo-side（右排行榜） 列表页 .fl-section、.ct-poster-section、.ct-card 详情页 .dt-section（猜你喜欢等栏目） 播放页 .dt-section（选集区） 断点： 桌面 四边 20px ≤1024px 四边 20px ≤768px 四边 18px ≤480px 四边 16px */ .fl-duo-main, .fl-duo-side, .fl-section, .ct-poster-section, .ct-card, .dt-section, .dt-section-head {
    padding-left: 20px !important;
    padding-right: 20px !important;
}

@media screen and (max-width: 1024px) {.fl-duo-main, .fl-duo-side, .fl-section, .ct-poster-section, .ct-card, .dt-section, .dt-section-head {
    padding-left: 20px !important;
    padding-right: 20px !important;
}
}

@media screen and (max-width: 768px) {.fl-duo-main, .fl-duo-side, .fl-section, .ct-poster-section, .ct-card, .dt-section, .dt-section-head {
    padding-left: 18px !important;
    padding-right: 18px !important;
}
}

@media screen and (max-width: 480px) {.fl-duo-main, .fl-duo-side, .fl-section, .ct-poster-section, .ct-card, .dt-section, .dt-section-head {
    padding-left: 16px !important;
    padding-right: 16px !important;
}
}

/* ===== lj_name_match_v2: 首页片名间距锁定为列表页的数值 =====
   问题：首页 .fl-name 被一条三段式规则
         .fl-duo .fl-poster-grid--duo .fl-name { margin-top: 7px !important }（特异性 0,3,0）压住，而上一版选择器最高只有 (0,2,0)， 导致首页 7px、列表页 10px，两边不一致。 修正：这里用【四段式】(0,4,0) 的选择器 + !important，确保胜出； 数值完全采用分类列表页的观感： 片名上方 10px / 行高 1.5 / 行间距 22px 移动端同样按列表页的节奏逐级递减。 */ /* ---------- 桌面：片名上方 + 行高 ---------- */ .fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name, .fl-duo-main .fl-poster-grid .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-name {
    margin-top: 10px !important;
    margin-bottom: 0 !important;
    line-height: 1.5 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}/* ---------- 桌面：行与行间距 ---------- */ .fl-duo-main .fl-poster-grid--duo, .fl-duo .fl-poster-grid--duo, .fl-duo-main .fl-poster-grid, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {
    row-gap: 22px !important;
}

/* ---------- ≤1024px ---------- */
@media screen and (max-width: 1024px) {.fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name, .fl-duo-main .fl-poster-grid .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-name {
    margin-top: 9px !important;
    line-height: 1.5 !important;
}.fl-duo-main .fl-poster-grid--duo, .fl-duo .fl-poster-grid--duo, .fl-duo-main .fl-poster-grid, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {
    row-gap: 20px !important;
}
}

/* ---------- ≤768px ---------- */
@media screen and (max-width: 768px) {.fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name, .fl-duo-main .fl-poster-grid .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-name {
    margin-top: 8px !important;
    line-height: 1.45 !important;
}.fl-duo-main .fl-poster-grid--duo, .fl-duo .fl-poster-grid--duo, .fl-duo-main .fl-poster-grid, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {
    row-gap: 18px !important;
}
}

/* ---------- ≤480px ---------- */
@media screen and (max-width: 480px) {.fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name, .fl-duo-main .fl-poster-grid .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-name {
    margin-top: 7px !important;
    line-height: 1.4 !important;
}.fl-duo-main .fl-poster-grid--duo, .fl-duo .fl-poster-grid--duo, .fl-duo-main .fl-poster-grid, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {
    row-gap: 16px !important;
}
}/* ===== lj_name_gap_ratio: 首页片名行间距按卡片宽度等比补偿 ===== 现象：首页与列表页的片段间距（margin-top 10px / line-height 1.5 / row-gap 22px）在 CSS 上完全相同，但视觉上首页偏挤。 原因：列数不同 —— 首页 4 列，卡片宽约 250px，22px 行间距 → 相对 8.8% 列表页 6 列，卡片宽约 180px，22px 行间距 → 相对 12.2% 同样的像素值，窄卡片上显得松，宽卡片上显得紧。 做法：给首页（4 列布局）单独放大行间距到 30px， 使相对间距与列表页接近（30/250 ≈ 12%，与列表页 12.2% 持平）。 片名的 margin-top 也同步微增（10 → 12px），保持与行间距的比例。 列表页（6 列）维持 22px / 10px 不变。 */ /* ---------- 首页：4 列布局，放大行间距 ---------- */ .fl-duo-main .fl-poster-grid--duo, .fl-duo .fl-poster-grid--duo {
    row-gap: 30px !important;
}.fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name {
    margin-top: 12px !important;
}

/* ---------- 首页在窄屏会切到 3 列，回到与列表页一致的节奏 ---------- */
@media screen and (max-width: 1024px) {.fl-duo-main .fl-poster-grid--duo, .fl-duo .fl-poster-grid--duo {}.fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name {}
}

@media screen and (max-width: 768px) {.fl-duo-main .fl-poster-grid--duo, .fl-duo .fl-poster-grid--duo {}.fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name {}
}

@media screen and (max-width: 480px) {.fl-duo-main .fl-poster-grid--duo, .fl-duo .fl-poster-grid--duo {}.fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name {}
}/* ===== lj_name_gap_balance: 片名上下间距重新配平 ===== 现状：海报 —12px→ 片名 —30px→ 下一行海报 上间距偏小、下间距偏大，重心偏低。 调整：海报 —16px→ 片名 —20px→ 下一行海报 把上间距加大、下间距收小，让片名处于两行海报之间的视觉中间。 说明：片名本身 line-height: 1.5，文字上下各留约 3px 的透明余量， 因此「视觉上间距」≈ 16+3 = 19px，「视觉下间距」≈ 3+20 = 23px， 两者接近，观感匀称。 覆盖：首页（.fl-*）与列表页（.ct-*）同步，保持两处一致。 */ /* ---------- 桌面 ---------- */ .fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-name {
    margin-top: 16px !important;
    margin-bottom: 0 !important;
}.fl-duo-main .fl-poster-grid--duo, .fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {
    row-gap: 20px !important;
}

/* ---------- ≤1024px ---------- */
@media screen and (max-width: 1024px) {.fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-name {
    margin-top: 14px !important;
}.fl-duo-main .fl-poster-grid--duo, .fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {
    row-gap: 18px !important;
}
}

/* ---------- ≤768px ---------- */
@media screen and (max-width: 768px) {.fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-name {
    margin-top: 12px !important;
}.fl-duo-main .fl-poster-grid--duo, .fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {
    row-gap: 16px !important;
}
}

/* ---------- ≤480px ---------- */
@media screen and (max-width: 480px) {.fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-name {
    margin-top: 10px !important;
}.fl-duo-main .fl-poster-grid--duo, .fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {
    row-gap: 14px !important;
}
}

/* ===== lj_grid_mobile_2col: 手机端海报网格一行 2 个 =====
   需求：手机端所有带海报的区域，一行只显示 2 个。
   覆盖对象（全站所有海报网格）：
     首页     .fl-poster-grid、.fl-poster-grid--duo
     列表页   .ct-poster-grid
     搜索页   .ct-poster-grid
     详情页   「猜你喜欢」.ct-poster-grid
     播放页   「猜你喜欢」.ct-poster-grid
   做法：≤768px 与 ≤480px 两个断点都强制 2 列，
         用 minmax(0, 1fr) 防止内容撑破；
         列间距适当放大（2 列时卡片更宽，太窄的缝隙会显得挤）。
   ★ 忽略原有那些 repeat(3, 1fr) / repeat(4, 1fr) 的规则，
     本块置于文件末尾且带 !important，确保生效。 */

@media screen and (max-width: 768px) {.fl-duo-main .fl-poster-grid--duo, .fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 12px !important;
}
}

@media screen and (max-width: 480px) {.fl-duo-main .fl-poster-grid--duo, .fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 10px !important;
}
}

/* 超窄屏（≤360px）也保持 2 列，只是缝隙更小 */
@media screen and (max-width: 360px) {.fl-duo-main .fl-poster-grid--duo, .fl-duo .fl-poster-grid--duo, .fl-poster-grid--duo, .fl-poster-grid, .ct-poster-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 8px !important;
}
}/* ===== lj_heading_size_14: 全站栏目标题统一 14px ===== 把全站标题的字号变量从 15px 下调到 14px。 由于首页栏目、排行榜 TAB、列表页/选集页标题、详情页/播放页标题、 详情页影片名都引用同一个变量，改这一处即可全站同步。 桌面 14px （原 15px） ≤1024px 13px （原 14px） ≤768px 13px （原 14px） ≤480px 12px （原 13px） 字重 600、颜色 #262b33 保持不变。 */ :root {
    --lj-heading-size: 14px;
    --lj-heading-size-sm: 13px;
    --lj-heading-size-xs: 12px;
}/* ===== lj_name_weight_400: 卡片片名减弱并统一 ===== 原因：片名原设 font-weight: 500，而内嵌苹方的 @font-face 映射是 400 → pf4-text.woff2 （Regular，细） 500 / 600 → pf4-title.woff2 （Semibold，明显粗） 所以 500 实际加载的是 Semibold 字体文件，观感偏重。 调整：① 字重 500 → 400，真正落到 Regular 字体上，笔画变细 ② 字号统一为 13px（列表页在 ≤768px 原本缩到 12px，与首页不一致） ③ 行高保持 1.5（由 lj_name_gap_balance 管理，不在此重复） 范围：首页 .fl-name、列表页/搜索页/猜你喜欢 .ct-name。 */ /* ---------- 桌面 ---------- */ .fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-poster-grid .ct-name a, .ct-name {
    font-size: 13px !important;
    font-weight: 400 !important;
}

/* ---------- ≤1024px ---------- */
@media screen and (max-width: 1024px) {.fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-poster-grid .ct-name a, .ct-name {
    font-size: 13px !important;
    font-weight: 400 !important;
}
}

/* ---------- ≤768px ---------- */
@media screen and (max-width: 768px) {.fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-poster-grid .ct-name a, .ct-name {
    font-size: 13px !important;
    font-weight: 400 !important;
}
}

/* ---------- ≤480px ---------- */
@media screen and (max-width: 480px) {.fl-duo-main .fl-poster-grid--duo .fl-name, .fl-duo .fl-poster-grid--duo .fl-name, .fl-poster-grid--duo .fl-name, .fl-poster-grid .fl-name, .fl-name, .ct-poster-grid .ct-name, .ct-poster-grid .ct-name a, .ct-name {
    font-size: 13px !important;
    font-weight: 400 !important;
}
}/* ===== lj_rank_name_unify: 排行榜文字与卡片片名统一 ===== 目标：首页右侧排行榜里的片名 .fl-rank-name（以及附属信息 .fl-rank-meta） 参照：卡片片名 .fl-name / .ct-name —— 13px / 字重 400 理由：排行榜与卡片片名属于同一层级的信息，字号字重统一后整页更整齐。 ★ 序号方块（.fl-rank-no）保持原样 —— 它是编号标记，不属于文字层级。 */ /* ---------- 桌面 ---------- */ .fl-duo-side .fl-rank-list .fl-rank-name, .fl-rank-list .fl-rank-name, .fl-rank-name, .fl-rank-link .fl-rank-name {
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
}.fl-rank-meta, .fl-rank-list .fl-rank-meta {
    font-size: 12px !important;
    font-weight: 400 !important;
}

/* ---------- ≤1024px ---------- */
@media screen and (max-width: 1024px) {.fl-duo-side .fl-rank-list .fl-rank-name, .fl-rank-list .fl-rank-name, .fl-rank-name, .fl-rank-link .fl-rank-name {
    font-size: 13px !important;
    font-weight: 400 !important;
}.fl-rank-meta, .fl-rank-list .fl-rank-meta {
    font-size: 12px !important;
}
}

/* ---------- ≤768px ---------- */
@media screen and (max-width: 768px) {.fl-duo-side .fl-rank-list .fl-rank-name, .fl-rank-list .fl-rank-name, .fl-rank-name, .fl-rank-link .fl-rank-name {
    font-size: 13px !important;
    font-weight: 400 !important;
}
}

/* ---------- ≤480px ---------- */
@media screen and (max-width: 480px) {.fl-duo-side .fl-rank-list .fl-rank-name, .fl-rank-list .fl-rank-name, .fl-rank-name, .fl-rank-link .fl-rank-name {
    font-size: 13px !important;
    font-weight: 400 !important;
}
}@font-face {}/* ===== lj_font_back_pingfang: 换回苹方 ===== 思源黑体（Noto Sans SC）试后观感偏细，不符合需求，改回苹方。 苹方的字重映射（此前已调好）： 400 准-简 Regular 正文、片名 500 / 600 中黑-简 Semibold 标题 700 / 900 中黑-简 Semibold 粗体 本块置于文件末尾，覆盖前面的 lj_font_switch（思源黑体）。 */ @font-face {}@font-face {}@font-face {}@font-face {}@font-face {}@font-face {}/* ===== lj_font_pingfang_final: 换回苹方 ===== 思源黑体试后仍不合适，改回苹方。 苹方字重映射（沿用此前你确认过的配置）： 400 准-简 Regular 正文、片名、导航 500 / 600 中黑-简 Semibold 栏目标题 700 / 900 中黑-简 Semibold 粗体 本块置于文件末尾，覆盖前面所有 @font-face（含思源黑体那几档）。 */ @font-face {}/* ===== lj_nav_title_bold: 导航与栏目标题加粗（苹方环境）===== 现状：导航与栏目标题的字重都是 600，对应苹方「中黑-简」(Semibold)， 已是该字体包中第二粗的档位。 做法：提到 700。 苹果设备的系统苹方有真正的 Bold 档，会直接命中； 内嵌字库没有单独 Bold 文件（700-900 仍映射到 Semibold）， 浏览器会在此基础上做一层合成加粗 —— 视觉上比纯 Semibold 更厚， 但笔画不会糊（因为基础字重已经是 Semibold）。 覆盖： 导航 .movie-header .h-main .h-nav li .title 栏目标题 .fl-title / .fl-rank-tab / .ct-section-title / .dt-section-title / .dt-title 卡片片名（.fl-name / .ct-name）保持 400 不变。 */ :root {
    --lj-heading-weight: 700;
}.movie-header .h-main .h-nav li .title, .movie-header .h-main .h-nav li.active .title, .h-nav li .title {
    font-weight: 700 !important;
}.fl-duo-main .fl-section-head .fl-title, .fl-section-head .fl-title, .fl-duo-side .fl-rank-tabs .fl-rank-tab, .ct-poster-section .ct-section-title, .ct-card .ct-section-title, section .ct-section-title, .dt-section .dt-section-title, .dt-section > .dt-section-title, section .dt-section-title, .dt-hero .dt-title, .dt-title {
    font-weight: 700 !important;
}

@media screen and (max-width: 1024px) {.movie-header .h-main .h-nav li .title, .h-nav li .title, .fl-duo-main .fl-section-head .fl-title, .fl-section-head .fl-title, .fl-duo-side .fl-rank-tabs .fl-rank-tab, .ct-poster-section .ct-section-title, .ct-card .ct-section-title, section .ct-section-title, .dt-section .dt-section-title, .dt-section > .dt-section-title, section .dt-section-title, .dt-hero .dt-title, .dt-title {
    font-weight: 700 !important;
}
}

@media screen and (max-width: 768px) {.movie-header .h-main .h-nav li .title, .h-nav li .title, .fl-duo-main .fl-section-head .fl-title, .fl-section-head .fl-title, .fl-duo-side .fl-rank-tabs .fl-rank-tab, .ct-poster-section .ct-section-title, .ct-card .ct-section-title, section .ct-section-title, .dt-section .dt-section-title, .dt-section > .dt-section-title, section .dt-section-title, .dt-hero .dt-title, .dt-title {
    font-weight: 700 !important;
}
}

/* ===== lj_title_anchor_bold: 标题内链接文字同步加粗 =====
   问题：部分标题里含 <a>（如播放页「<a>匆匆那年</a>剧情简介」），
         而 CSS 中有单独针对 .dt-section-title a { font-weight: 600 }的规则， <a> 有自己的字重就不会继承父级，导致同一行里 链接文字 600、普通文字 700，粗细不一致。 做法：把所有版块标题内部的 <a> 一并设为 700，与标题保持一致。 覆盖：.fl-title / .ct-section-title / .dt-section-title / .dt-title 以及首页栏目、排行榜等处的链接型标题。 */ .fl-title a, .fl-section-head .fl-title a, .fl-duo-main .fl-section-head .fl-title a, .ct-section-title a, .ct-poster-section .ct-section-title a, .ct-card .ct-section-title a, .dt-section-title a, .dt-section > .dt-section-title a, .dt-title a, .dt-hero .dt-title a, .fl-rank-tab a, .fl-title span a, .dt-section-title span a {
    font-weight: 700 !important;
    color: inherit !important;
}/* 悬停时保持加粗，只变色 */ .dt-section-title a:hover, .ct-section-title a:hover, .fl-title a:hover, .dt-title a:hover {
    font-weight: 700 !important;
}

@media screen and (max-width: 1024px) {.fl-title a, .fl-section-head .fl-title a, .fl-duo-main .fl-section-head .fl-title a, .ct-section-title a, .ct-poster-section .ct-section-title a, .ct-card .ct-section-title a, .dt-section-title a, .dt-section > .dt-section-title a, .dt-title a, .dt-hero .dt-title a, .fl-title span a, .dt-section-title span a {
    font-weight: 700 !important;
}
}

@media screen and (max-width: 768px) {.fl-title a, .fl-section-head .fl-title a, .fl-duo-main .fl-section-head .fl-title a, .ct-section-title a, .ct-poster-section .ct-section-title a, .ct-card .ct-section-title a, .dt-section-title a, .dt-section > .dt-section-title a, .dt-title a, .dt-hero .dt-title a, .fl-title span a, .dt-section-title span a {
    font-weight: 700 !important;
}
}/* ===== lj_dt_title_large: 详情页影片名加大 ===== 背景：影片名此前被并入全站标题统一字号（14px）， 但它其实是页面主标题，应与版块标题区分开、更大一些。 做法：脱离 --lj-heading-size 变量，单独设定字号： 桌面 19px ≤1024px 18px ≤768px 17px ≤480px 16px 字重保持 700、颜色保持标题色，行高略放宽避免挤。 范围：只作用于详情页/播放页的 .dt-title（<h1 class="dt-title">）。 */ .dt-hero .dt-title, .dt-hero h1.dt-title, .dt-title {
    font-size: 19px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
    letter-spacing: -.01em !important;
}

@media screen and (max-width: 1024px) {.dt-hero .dt-title, .dt-hero h1.dt-title, .dt-title {}
}

@media screen and (max-width: 768px) {.dt-hero .dt-title, .dt-hero h1.dt-title, .dt-title {}
}

@media screen and (max-width: 480px) {.dt-hero .dt-title, .dt-hero h1.dt-title, .dt-title {}
}/* ===== lj_mobile_font_keep: 移动端不再压缩文字字号 ===== 需求：手机端高度还原 PC 端的文字字号，不做缩小。 做法： ① 把标题字号变量在所有断点统一为桌面值 --lj-heading-size-sm / -xs 从 13px / 12px 改为 14px ② 详情页影片名在各断点统一为 19px ③ 导航文字统一为桌面值 ④ 其余被缩小的标题类文字一并还原 保留缩小的：仅有非文字类的尺寸（内边距、行距、图标、按钮高度）， 这些不影响文字观感，缩一点反而更适合小屏。 ★ 注意：字号不缩后，标题在 320~360px 的窄屏可能略显拥挤， 因此同时把标题的字距略收紧一点、允许换行，避免溢出。 */ :root {
    --lj-heading-size: 14px;
    --lj-heading-size-sm: 14px;
    /* 原 13px */ --lj-heading-size-xs: 14px;
}

/* ---------- 详情页影片名：所有断点统一 19px ---------- */
@media screen and (max-width: 1024px) {.dt-hero .dt-title, .dt-hero h1.dt-title, .dt-title {
    line-height: 1.3 !important;
}
}
@media screen and (max-width: 768px) {.dt-hero .dt-title, .dt-hero h1.dt-title, .dt-title {
    line-height: 1.3 !important;
}
}
@media screen and (max-width: 480px) {.dt-hero .dt-title, .dt-hero h1.dt-title, .dt-title {
    line-height: 1.3 !important;
}
}
@media screen and (max-width: 360px) {.dt-hero .dt-title, .dt-hero h1.dt-title, .dt-title {}
}

/* ---------- 导航文字：统一为桌面值 ---------- */
@media screen and (max-width: 1024px) {.movie-header .h-main .h-nav li .title, .h-nav li .title {
    font-size: 15px !important;
}
}
@media screen and (max-width: 768px) {.movie-header .h-main .h-nav li .title, .h-nav li .title {
    font-size: 15px !important;
}
}
@media screen and (max-width: 480px) {.movie-header .h-main .h-nav li .title, .h-nav li .title {
    font-size: 15px !important;
}
}

/* ---------- 卡片片名：统一 13px（原本手机端列表页会降到 12px）---------- */
@media screen and (max-width: 1024px) {.fl-name, .ct-name, .fl-poster-grid .fl-name, .ct-poster-grid .ct-name {
    font-size: 13px !important;
}
}
@media screen and (max-width: 768px) {.fl-name, .ct-name, .fl-poster-grid .fl-name, .ct-poster-grid .ct-name {
    font-size: 13px !important;
}
}
@media screen and (max-width: 480px) {.fl-name, .ct-name, .fl-poster-grid .fl-name, .ct-poster-grid .ct-name {
    font-size: 13px !important;
}
}

/* ---------- 高清信号源：还原为 13px ---------- */
@media screen and (max-width: 1024px) {.channel-box-header .channel-header .title, .channel-header .title {
    font-size: 13px !important;
}
}
@media screen and (max-width: 768px) {.channel-box-header .channel-header .title, .channel-header .title {
    font-size: 13px !important;
}
}
@media screen and (max-width: 480px) {.channel-box-header .channel-header .title, .channel-header .title {
    font-size: 13px !important;
}
}

/* ---------- 正序/倒序：还原为 13px ---------- */
@media screen and (max-width: 1024px) {.channel-sort-btn, .channel-sort-tabs > button {
    font-size: 13px !important;
}
}
@media screen and (max-width: 768px) {.channel-sort-btn, .channel-sort-tabs > button {
    font-size: 13px !important;
}
}
@media screen and (max-width: 480px) {.channel-sort-btn, .channel-sort-tabs > button {
    font-size: 13px !important;
}
}

/* ---------- 标题在窄屏允许换行、字距略收，避免溢出 ---------- */
@media screen and (max-width: 768px) {.fl-title, .ct-section-title, .dt-section-title, .fl-rank-tab, .dt-title {
    letter-spacing: -.01em !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}
}/* ===== lj_dt_title_18: 详情页影片名放小一号 ===== 19px → 18px（桌面与移动端一致，不做断点压缩）。 ≤360px 极窄屏仍为 17px，避免长片名溢出。 */ .dt-hero .dt-title, .dt-hero h1.dt-title, .dt-title {
    font-size: 18px !important;
}

@media screen and (max-width: 1024px) {.dt-hero .dt-title, .dt-hero h1.dt-title, .dt-title {
    font-size: 18px !important;
}
}

@media screen and (max-width: 768px) {.dt-hero .dt-title, .dt-hero h1.dt-title, .dt-title {
    font-size: 18px !important;
}
}

@media screen and (max-width: 480px) {.dt-hero .dt-title, .dt-hero h1.dt-title, .dt-title {
    font-size: 18px !important;
}
}

@media screen and (max-width: 360px) {.dt-hero .dt-title, .dt-hero h1.dt-title, .dt-title {
    font-size: 17px !important;
}
}/* ===== lj_hero_mobile_fix: 详情页信息区移动端错位修复 ===== 原因：.dt-hero 用 grid-template-areas: "poster info" / "actions actions"， 但模板里的三个子元素是： .dt-poster ← 有 grid-area: poster .dt-meta-list ← 没有 grid-area（模板里不存在 .dt-info） .dt-actions ← 有 grid-area: actions 信息区缺少显式定位，只能靠浏览器自动放置，窄屏下容易落到错误格子。 修复： ① 给 .dt-meta-list 显式指定 grid-area: info，与网格模板对应 ② 海报与信息区都顶部对齐，避免高度差造成的视觉错位 ③ 窄屏收紧横向间距，保证信息区有足够宽度 ④ 按钮区独占整行 */ .dt-hero .dt-meta-list, .dt-hero > .dt-meta-list {
    grid-area: info !important;
    align-self: start !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
}.dt-hero .dt-poster, .dt-hero > .dt-poster {
    grid-area: poster !important;
    align-self: start !important;
}.dt-hero .dt-actions, .dt-hero > .dt-actions {
    grid-area: actions !important;
    align-self: start !important;
    min-width: 0 !important;
}.dt-hero {
    align-items: start !important;
}.dt-hero .dt-meta-row, .dt-hero .dt-meta-value, .dt-hero .dt-tags, .dt-hero .dt-title {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
}

@media screen and (max-width: 768px) {.dt-hero {
    grid-template-columns: 116px minmax(0, 1fr) !important;
    column-gap: 14px !important;
    row-gap: 14px !important;
    align-items: start !important;
}.dt-hero .dt-poster, .dt-hero > .dt-poster {
    grid-area: poster !important;
}.dt-hero .dt-meta-list, .dt-hero > .dt-meta-list {
    grid-area: info !important;
}.dt-hero .dt-actions, .dt-hero > .dt-actions {
    grid-area: actions !important;
    grid-column: 1 / -1 !important;
}
}

@media screen and (max-width: 480px) {.dt-hero {}.dt-hero .dt-actions, .dt-hero > .dt-actions {
    grid-column: 1 / -1 !important;
}
}

@media screen and (max-width: 360px) {.dt-hero {}
}/* ===== lj_actor_ellipsis: 主演名单单行省略 ===== 问题：主演名单过长（5 个名字 + 等），在移动端会换行成两三行， 把信息区撑高、与海报高度不匹配，看起来错位。 做法：主演字段强制单行显示，超出部分用省略号截断（…）。 演员名本身仍是可点击链接，只是视觉上不换行。 范围：详情页/播放页的 .dt-actor 及其容器 .dt-meta-row--actor。 */ .dt-hero .dt-meta-row--actor, .dt-hero .dt-meta-row--actor .dt-meta-value, .dt-hero .dt-meta-value.dt-actor, .dt-hero .dt-actor, .dt-actor {
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.5 !important;
}/* 演员链接：保持行内、不换行、不撑破 */ .dt-hero .dt-actor a, .dt-hero .dt-meta-value.dt-actor a, .dt-actor a {
    display: inline !important;
    white-space: nowrap !important;
}/* 演员之间用空格分隔时也保持单行 */ .dt-hero .dt-meta-row--actor .dt-meta-value {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}/* 导演字段同样处理（一般较短，一并防溢出） */ .dt-hero .dt-meta-row:nth-child(1) .dt-meta-value {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/* ---------- 各断点保持一致（移动端不放开换行）---------- */
@media screen and (max-width: 1024px) {.dt-hero .dt-meta-row--actor, .dt-hero .dt-meta-row--actor .dt-meta-value, .dt-hero .dt-meta-value.dt-actor, .dt-hero .dt-actor, .dt-actor {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
}

@media screen and (max-width: 768px) {.dt-hero .dt-meta-row--actor, .dt-hero .dt-meta-row--actor .dt-meta-value, .dt-hero .dt-meta-value.dt-actor, .dt-hero .dt-actor, .dt-actor {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
}

@media screen and (max-width: 480px) {.dt-hero .dt-meta-row--actor, .dt-hero .dt-meta-row--actor .dt-meta-value, .dt-hero .dt-meta-value.dt-actor, .dt-hero .dt-actor, .dt-actor {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
}

/* ===== lj_hero_flex: 详情页信息卡移动端改用 Flex 布局 =====
   问题：.dt-hero 用 Grid + grid-template-areas 定位，
         但模板里的信息区类名是 .dt-meta-list，
         而 CSS 里网格区域名写的是 "info"（对应并不存在的 .dt-info），
         导致信息区没有落到预期的第二列，窄屏下被挤到海报旁边。

   修复：窄屏（≤1024px）直接弃用 Grid，改为 Flex 两栏布局 ——
         左：海报（固定宽）
         右：信息区（自适应，允许收缩）
         下：按钮区（独占整行）
         Flex 不依赖 grid-area 命名，不会出现区域错配。

   同时给信息区加 min-width: 0，
   这是 flex 子项允许收缩的关键（否则长文本会撑破容器）。 */

@media screen and (max-width: 1024px) {.dt-hero {
    gap: 14px !important;
}.dt-hero .dt-poster, .dt-hero > .dt-poster {}.dt-hero .dt-meta-list, .dt-hero > .dt-meta-list {}.dt-hero .dt-actions, .dt-hero > .dt-actions {}
}

@media screen and (max-width: 480px) {.dt-hero {
    gap: 12px !important;
}.dt-hero .dt-poster, .dt-hero > .dt-poster {
    flex: 0 0 100px !important;
}
}

@media screen and (max-width: 360px) {.dt-hero .dt-poster, .dt-hero > .dt-poster {
    flex: 0 0 88px !important;
}
}

/* ===== lj_hero_grid_fix2: 详情页信息卡移动端布局（最终版）=====
   前一版改用 Flex 后出现换行（海报在上、信息区在下），
   原因是信息区内容的隐含最小宽度（内部还有 grid 布局）撑破了容器，
   flex-wrap 便把信息区挤到了下一行。

   本版改回 Grid，并对三个子元素【全部显式指定 grid-area】——
   之前错位的根源正是 .dt-meta-list 没有 grid-area，
   而模板里并不存在 CSS 所写的 .dt-info。
   现在：
     .dt-poster     → poster   （第 1 列）
     .dt-meta-list  → info     （第 2 列）
     .dt-actions    → actions  （跨两列，第 2 行）
   三层都用 !important 锁死，且不使用 flex-wrap，不会换行。 */

@media screen and (max-width: 1024px) {.dt-hero {
    display: grid !important;
    grid-template-areas: "poster info" "actions actions" !important;
    row-gap: 14px !important;
    align-items: start !important;
    flex-wrap: nowrap !important;
}.dt-hero .dt-poster, .dt-hero > .dt-poster {
    grid-area: poster !important;
    grid-column: auto !important;
    grid-row: auto !important;
    align-self: start !important;
}.dt-hero .dt-meta-list, .dt-hero > .dt-meta-list {
    grid-area: info !important;
    grid-column: auto !important;
    grid-row: auto !important;
    align-self: start !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    flex: none !important;
}.dt-hero .dt-actions, .dt-hero > .dt-actions {
    grid-area: actions !important;
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
    align-self: start !important;
    min-width: 0 !important;
    width: 100% !important;
    flex: none !important;
}
}

@media screen and (max-width: 480px) {.dt-hero {
    row-gap: 12px !important;
}.dt-hero .dt-poster, .dt-hero > .dt-poster {}
}

@media screen and (max-width: 360px) {.dt-hero {}.dt-hero .dt-poster, .dt-hero > .dt-poster {}
}

/* ===== lj_hero_poster_big: 移动端海报放大 =====
   116px 的海报在手机上偏小，信息区相对偏宽，视觉重心不平衡。
   放大后的尺寸：
     ≤1024px   116px → 140px
     ≤480px    100px → 128px
     ≤360px     88px → 110px
   信息区保持 minmax(0, 1fr)，会自动让出宽度，
   长文本（主演等）已由 lj_actor_ellipsis 做单行省略，不会撑破。 */

@media screen and (max-width: 1024px) {.dt-hero {}.dt-hero .dt-poster, .dt-hero > .dt-poster {}
}

@media screen and (max-width: 480px) {.dt-hero {}.dt-hero .dt-poster, .dt-hero > .dt-poster {}
}

@media screen and (max-width: 360px) {.dt-hero {}.dt-hero .dt-poster, .dt-hero > .dt-poster {}
}/* ===== lj_hero_final: 海报放大 + 高度左右对齐 ===== 调整： ① 海报尺寸继续放大 ≤1024px 140px → 160px ≤480px 128px → 148px ≤360px 110px → 128px ② 信息区高度与海报列对齐 —— 信息区 align-self: stretch 撑满该行高度（行高由海报决定）， 内部改为纵向 flex + space-between，让「影片名 / 标签 / 导演 / 主演 / 更新」各字段均匀分布，填满海报高度， 视觉上左右两侧上下边沿齐平。 ③ 海报保持 4:5 比例，不随 stretch 变形。 */ /* ---------- 高度对齐（所有断点生效）---------- */ .dt-hero .dt-meta-list, .dt-hero > .dt-meta-list {
    align-self: stretch !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    min-height: 0 !important;
}/* 海报列：保持自身高度，不变形 */ .dt-hero .dt-poster, .dt-hero > .dt-poster {
    align-self: start !important;
}.dt-hero .dt-poster img, .dt-hero > .dt-poster img {
    aspect-ratio: 4 / 5 !important;
    object-fit: cover !important;
    height: auto !important;
}/* 信息区内各字段不被拉伸 */ .dt-hero .dt-meta-list > .dt-meta-row, .dt-hero .dt-meta-list > .dt-tags, .dt-hero .dt-meta-list > .dt-title {
    flex: 0 0 auto !important;
}

/* ---------- 海报尺寸放大 ---------- */
@media screen and (max-width: 1024px) {.dt-hero {
    grid-template-columns: 160px minmax(0, 1fr) !important;
    column-gap: 16px !important;
}.dt-hero .dt-poster, .dt-hero > .dt-poster {
    width: 160px !important;
    max-width: 160px !important;
    flex: none !important;
}
}

@media screen and (max-width: 480px) {.dt-hero {
    grid-template-columns: 148px minmax(0, 1fr) !important;
    column-gap: 14px !important;
}.dt-hero .dt-poster, .dt-hero > .dt-poster {
    width: 148px !important;
    max-width: 148px !important;
}
}

@media screen and (max-width: 360px) {.dt-hero {
    grid-template-columns: 128px minmax(0, 1fr) !important;
    column-gap: 12px !important;
}.dt-hero .dt-poster, .dt-hero > .dt-poster {
    width: 128px !important;
    max-width: 128px !important;
}
}

/* ===== lj_actor_pc_free: PC 端不限制主演宽度 =====
   之前 lj_actor_ellipsis 对全断点生效，PC 端也被强制单行省略，
   演员名字被截断。现在改为：
     · PC 端（>1024px）    不限制宽度 —— 允许自然换行、完整显示
     · 移动端（≤1024px）   仍保持单行省略，避免撑破窄屏布局

   同时解除导演字段在 PC 端的省略（导演名通常较短，无需截断）。 */

@media screen and (min-width: 1025px) {.dt-hero .dt-meta-row--actor, .dt-hero .dt-meta-row--actor .dt-meta-value, .dt-hero .dt-meta-value.dt-actor, .dt-hero .dt-actor, .dt-actor {
    display: block !important;
    min-width: 0 !important;
    max-width: none !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
}.dt-hero .dt-actor a, .dt-hero .dt-meta-value.dt-actor a, .dt-actor a {
    display: inline !important;
    white-space: normal !important;
}/* 导演字段同样放开 */ .dt-hero .dt-meta-row:nth-child(1) .dt-meta-value {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    max-width: none !important;
}
}/* ===== lj_watched_ep: 标注「上次看过」的那一集 ===== 由 /static/js/lj-history.js 在页面加载后给对应的集数链接加 .lj-watched 类。 样式沿用当前正在播放那一集的橙色实心按钮： 橙色渐变底 + 白字 + 加重阴影 区别：当前播放集是实心橙（.active）， 看过的那一集同样实心橙，但加一圈浅橙外环以示区分， 方便用户一眼分辨「正在看」与「上次看到」。 */ .channel-set > li > a.lj-watched, .channel-set > li.lj-watched-li > a, .channel-set a.lj-watched {
    color: #fff !important;
    border-color: transparent !important;
    background: linear-gradient(135deg, var(--c-primary-2), var(--c-primary)) !important;
    font-weight: 600 !important;
    box-shadow: 0 3px 10px rgba(255, 107, 53, .28), 0 0 0 2px rgba(255, 107, 53, .22) !important;
}/* 悬停时保持橙色，只加深一点阴影 */ .channel-set > li > a.lj-watched:hover, .channel-set > li.lj-watched-li > a:hover {
    color: #fff !important;
    background: linear-gradient(135deg, var(--c-primary-2), var(--c-primary)) !important;
    box-shadow: 0 4px 14px rgba(255, 107, 53, .34), 0 0 0 2px rgba(255, 107, 53, .30) !important;
}/* 当前播放集优先级最高：实心橙 + 无外环 */ .channel-set > li.active > a, .channel-set > li > a.active {
    box-shadow: 0 3px 10px rgba(255, 107, 53, .28) !important;
}/* ===== lj_new_badge: 「最新集」角标加固与增强 ===== 问题：角标用 position: absolute 定位，但父级 <a> 未设 position: relative， 在没有定位上下文时角标会相对更外层元素计算，容易跑位或被裁剪。 修复： ① 给 .channel-set li > a 补上 position: relative 与 overflow: visible ② 角标加大到 19px、字号 10px，颜色加深，加一层白色描边提高对比 ③ 显式抬高层级，避免被相邻集数按钮遮住 ④ 当前播放集（active）上的角标加白环，避免橙底叠橙看不清 */ .channel-set > li > a, .channel-set li > a {
    position: relative !important;
    overflow: visible !important;
}.channel-set li.is-new > a::after, .channel-set li.is-new > a:link::after, .channel-set li.is-new > a:visited::after {
    content: "新" !important;
    display: block !important;
    position: absolute !important;
    top: -1px !important;
    right: -1px !important;
    width: 19px !important;
    height: 19px !important;
    line-height: 19px !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    font-family: inherit !important;
    color: #fff !important;
    text-align: center !important;
    letter-spacing: 0 !important;
    border-radius: 0 8px 0 10px !important;
    background: linear-gradient(135deg, #ff7a45 0%, #ff3b30 100%) !important;
    box-shadow: 0 1px 4px rgba(255, 59, 48, .38), 0 0 0 1.5px #fff !important;
    pointer-events: none !important;
    z-index: 3 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}/* 正在播放的那一集：角标白环加粗，与橙底区分 */ .channel-set li.is-new.active > a::after {
    box-shadow: 0 1px 4px rgba(255, 59, 48, .38), 0 0 0 2px #fff !important;
}/* 悬停时角标保持存在 */ .channel-set li.is-new > a:hover::after {
    opacity: 1 !important;
    visibility: visible !important;
}

@media screen and (max-width: 768px) {.channel-set li.is-new > a::after {
    width: 18px !important;
    height: 18px !important;
    line-height: 18px !important;
    font-size: 10px !important;
}
}

@media screen and (max-width: 359px) {.channel-set li.is-new > a::after {
    width: 16px !important;
    height: 16px !important;
    line-height: 16px !important;
    font-size: 9px !important;
}
}/* ===== lj_score_unify: 全站海报分数样式统一 ===== 基准：详情页海报的分数徽标 .dt-score-badge 统一项（首页 .fl-score / 列表页与猜你喜欢 .ct-score 全部对齐）： · 背景 rgba(0,0,0,.6) → rgba(0,0,0,.68) 更实的黑，压住海报杂色 · 模糊 6px → 8px · 边框 无 → 1px solid rgba(255,180,0,.25) 金色细边，与分数色呼应 · 圆角 4px → 8px 8px 8px 3px 一脚收窄，与详情页同款 · 字重 600 → 700 · 字距 无 → .2px · 内边距 2px 6px → 3px 8px · 最小宽 无 → 36px 两位数与一位数等宽，不跳动 · 文字居中 text-align: center 保留项：位置。详情页分数在左上角（该处无分类标签）， 首页/列表页左上角被分类标签占用，分数仍在右上角。 */ /* ---------- 首页海报 ---------- */ .fl-poster-grid--duo .fl-score, .fl-poster-grid .fl-score, .fl-score {
    position: absolute !important;
    z-index: 2 !important;
    min-width: 36px !important;
    text-align: center !important;
    padding: 3px 8px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: .2px !important;
    line-height: 1.35 !important;
    color: #ffb400 !important;
    background: rgba(0, 0, 0, .68) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    border: 1px solid rgba(255, 180, 0, .25) !important;
    border-radius: 8px 8px 8px 3px !important;
    font-variant-numeric: tabular-nums !important;
    box-shadow: none !important;
}/* ---------- 列表页 / 搜索页 / 猜你喜欢 ---------- */ .ct-poster-grid .ct-score, .ct-score {
    position: absolute !important;
    z-index: 2 !important;
    min-width: 36px !important;
    text-align: center !important;
    padding: 3px 8px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: .2px !important;
    line-height: 1.35 !important;
    color: #ffb400 !important;
    background: rgba(0, 0, 0, .68) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    border: 1px solid rgba(255, 180, 0, .25) !important;
    border-radius: 8px 8px 8px 3px !important;
    font-variant-numeric: tabular-nums !important;
    box-shadow: none !important;
}

/* ---------- ≤768px：与详情页同步缩小 ---------- */
@media screen and (max-width: 768px) {.fl-poster-grid--duo .fl-score, .fl-poster-grid .fl-score, .fl-score, .ct-poster-grid .ct-score, .ct-score {
    font-size: 11px !important;
    padding: 2px 6px !important;
    min-width: 32px !important;
    font-weight: 700 !important;
}
}

@media screen and (max-width: 480px) {.fl-poster-grid--duo .fl-score, .fl-poster-grid .fl-score, .fl-score, .ct-poster-grid .ct-score, .ct-score {
    font-size: 11px !important;
    padding: 2px 5px !important;
    min-width: 30px !important;
}
}/* ===== lj_rate_refine: 详情页评分按钮视觉优化 ===== 结构：<button class="dt-rate"><b class="dt-score">6.6</b> <i class="dt-rate-sep"></i><span class="dt-rate-num">27人评</span></button> 原问题：数字与文字层级不清、竖线过细过长、内边距不均，整体显得松散。 优化思路： ① 分数是主角 —— 放大到 16px、字重 800、收紧字距， 并加轻微橙色投影，让它在三个按钮中最先被看到 ② 分隔线收短到 11px、颜色调浅，退为背景元素 ③ 人数文字降到 11px 中性灰，与分数形成主次 ④ 按钮高度与相邻的「备用网址 / 复制网址」对齐（40px）， 白底 + 浅灰边 + 8px 圆角，三个按钮视觉成组 ⑤ 悬停时边框泛橙、分数加深，明确可点击 ⑥ 保留原有的 ::before/::after 光晕装饰不动 */ .dt-rate {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    height: 40px !important;
    padding: 0 14px !important;
    background: #fff !important;
    border: 1px solid #e6e8ec !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease !important;
    -webkit-tap-highlight-color: transparent !important;
}.dt-rate .dt-score, .dt-rate > b.dt-score {
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: -.02em !important;
    color: var(--c-primary) !important;
    font-variant-numeric: tabular-nums !important;
    text-shadow: 0 1px 6px rgba(255, 107, 53, .16) !important;
}.dt-rate .dt-rate-sep, .dt-rate > i.dt-rate-sep {
    display: inline-block !important;
    width: 1px !important;
    height: 11px !important;
    margin: 0 !important;
    background: #e2e5ea !important;
    border: 0 !important;
    flex: 0 0 auto !important;
}.dt-rate .dt-rate-num, .dt-rate > span.dt-rate-num {
    font-size: 11px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    color: var(--c-text-3, #7a828e) !important;
    white-space: nowrap !important;
    letter-spacing: 0 !important;
}.dt-rate:hover {
    border-color: rgba(255, 107, 53, .42) !important;
    background: #fffdfc !important;
    box-shadow: 0 2px 10px rgba(255, 107, 53, .12) !important;
}.dt-rate:active {
    transform: translateY(1px) !important;
}

/* ---------- ≤768px：与相邻按钮等高等宽，三个按钮一排 ---------- */
@media screen and (max-width: 768px) {.dt-rate {
    height: 38px !important;
    padding: 0 12px !important;
    gap: 8px !important;
    width: 100% !important;
    justify-content: center !important;
}.dt-rate .dt-score {
    font-size: 15px !important;
}.dt-rate .dt-rate-num {
    font-size: 11px !important;
}
}

@media screen and (max-width: 480px) {.dt-rate {
    height: 36px !important;
    padding: 0 10px !important;
    gap: 7px !important;
}.dt-rate .dt-score {
    font-size: 15px !important;
}
}/* ===== lj_ep_btn_strong: 集数按钮增强 ===== 原问题：三个「弱」叠加 —— ① 数字用次要文字色 var(--c-text-2)（灰） ② 背景 rgba(255,255,255,.88) 半透明，按钮发虚、压不住海报 ③ 边框过浅，卡片轮廓不清楚 优化： · 数字 改用主文字色 var(--c-text)，字重 700，字号 14px（桌面） · 背景 纯白 #fff · 边框 #e3e7ee，比原来实一档 · 阴影 极轻的一层，让按钮从页面浮起来 · 悬停 边框泛橙 + 文字变橙 + 轻微上浮（1px） · 按下 回弹 1px，给出触感 保留：尺寸与网格布局不变；active（正在播放）与 is-new（最新集） 以及 history-played（看过的集）各自的橙色样式不变。 */ /* ---------- 基础态 ---------- */ .channel-set li a, .pl-content .channel-set li a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--c-text, #111318) !important;
    background: #fff !important;
    border: 1px solid #e3e7ee !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    letter-spacing: .01em !important;
    border-radius: 8px !important;
    box-shadow: 0 1px 2px rgba(17, 19, 24, .04) !important;
    transition: color .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease !important;
    -webkit-tap-highlight-color: transparent !important;
}/* ---------- 悬停：边框泛橙、文字变橙、轻微上浮 ---------- */ .channel-set li a:hover, .pl-content .channel-set li a:hover {
    color: var(--c-primary) !important;
    border-color: rgba(255, 107, 53, .55) !important;
    background: #fffaf7 !important;
    box-shadow: 0 3px 10px rgba(255, 107, 53, .13) !important;
    transform: translateY(-1px) !important;
}.channel-set li a:active, .pl-content .channel-set li a:active {
    transform: translateY(1px) !important;
    box-shadow: 0 1px 2px rgba(17, 19, 24, .06) !important;
}/* ---------- 正在播放：实心橙，最高优先 ---------- */ .channel-set li.active > a, .channel-set li.active > a:hover {
    color: #fff !important;
    background: linear-gradient(135deg, var(--c-primary-2), var(--c-primary)) !important;
    border-color: transparent !important;
    font-weight: 700 !important;
    box-shadow: 0 3px 10px rgba(255, 107, 53, .28) !important;
    transform: none !important;
}

/* ---------- 响应式：只收尺寸，不收字号观感 ---------- */
@media screen and (max-width: 768px) {.channel-set li a, .pl-content .channel-set li a {
    font-size: 14px !important;
    border-radius: 8px !important;
}
}

@media screen and (max-width: 480px) {.channel-set li a, .pl-content .channel-set li a {
    font-size: 14px !important;
    border-radius: 7px !important;
}
}

@media screen and (max-width: 359px) {.channel-set li a, .pl-content .channel-set li a {
    font-size: 13px !important;
}
}/* ===== lj_watched_deprecate: 废弃自定义 lj-watched，统一用 history-played ===== 上一版曾用 lj-history.js 给 <a> 加 .lj-watched 类并自绘橙色 + 外环， 与站点原有的 .history-played（实心橙渐变，无外环）并存， 导致详情页与播放页的「看过的集」外观不一致。 现在统一样式来源： · 类名 统一用 <li>.history-played（原机制） · 样式 统一用 .channel-set li.history-played > a 本块把 lj-watched 的全部自定义效果清空， 即使旧缓存页面残留该类名，也不会再产生额外外观。 */ .channel-set > li > a.lj-watched, .channel-set > li.lj-watched-li > a, .channel-set a.lj-watched, .channel-set > li > a.lj-watched:hover, .channel-set > li.lj-watched-li > a:hover {
    box-shadow: none !important;
    background: inherit !important;
    border-color: inherit !important;
    color: inherit !important;
    font-weight: inherit !important;
}/* 让「看过的集」在各页面完全走同一条规则（原有的实心橙渐变） */ .channel-set li.history-played > a, .pl-content .channel-set li.history-played > a {
    background: linear-gradient(135deg, var(--c-primary-2) 0%, var(--c-primary) 100%) !important;
    border-color: transparent !important;
    color: #fff !important;
    font-weight: 600 !important;
    box-shadow: 0 3px 12px -3px rgba(255, 107, 53, .42) !important;
    transform: none !important;
}.channel-set li.history-played > a:hover, .pl-content .channel-set li.history-played > a:hover {
    background: linear-gradient(135deg, var(--c-primary) 0%, #e8501f 100%) !important;
    border-color: transparent !important;
    color: #fff !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 6px 16px -4px rgba(255, 107, 53, .52) !important;
}

/* 移动端取消上浮，避免误触抖动 */
@media screen and (max-width: 480px) {.channel-set li.history-played > a:hover, .pl-content .channel-set li.history-played > a:hover {
    transform: none !important;
}
}/* 「看」字徽标：与「新」角标同款，但配色区分（深橙底） */ .history-badge {
    position: absolute !important;
    top: -1px !important;
    left: -1px !important;
    min-width: 18px !important;
    height: 18px !important;
    line-height: 18px !important;
    padding: 0 4px !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    font-family: inherit !important;
    color: #fff !important;
    text-align: center !important;
    border-radius: 8px 0 10px 0 !important;
    background: linear-gradient(135deg, #ff9a3d 0%, #ff6b35 100%) !important;
    box-shadow: 0 1px 4px rgba(255, 107, 53, .38), 0 0 0 1.5px #fff !important;
    pointer-events: none !important;
    z-index: 3 !important;
}/* ===== lj_pingfang_final: 内嵌苹方字体（最终版）=====
   字体：苹方 PingFang SC（简体），子集约 7500 字符
   字重方案（2026-10-06 定型）：
     400        准-简   Regular   (.PingFang-SC-Regular)   正文、片名
     500 / 600  中黑-简 Semibold  (.PingFang-SC-Semibold)  导航、栏目标题
     700 / 900  中黑-简 Semibold                            粗体
   ★ 注意：这批字体包的【文件名与内部字重是对调的】——
     苹方黑体-准-简.ttf   → Regular（最细）
     苹方黑体-中粗-简.ttf → Medium（中间）
     苹方黑体-中黑-简.ttf → Semibold（较粗）
     苹方黑体-细-简.ttf   → Light（比 Regular 还细）
     所以「中黑-简」比「中粗-简」更粗，不要按字面理解。
   站内文件名已按用途命名：
     pf4-text.woff2  = 正文（Regular）
     pf4-title.woff2 = 标题（Semibold）
   策略：字体名声明为 "PingFang SC" ——
     · 苹果设备命中系统自带苹方，不下载字体文件
     · 非苹果设备回退到内嵌文件，字形与苹方一致 */

/* LJ-SYSFONT-2026-10-18 disabled: self-hosted webfont removed, system stack is used instead
@font-face {
    font-family: "PingFang SC";
    src: url("/static/font/pingfang/pf4-text.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
} */

/* LJ-SYSFONT-2026-10-18 disabled: self-hosted webfont removed, system stack is used instead
@font-face {
    font-family: "PingFang SC";
    src: url("/static/font/pingfang/pf4-title.woff2") format("woff2");
    font-weight: 500 600;
    font-style: normal;
    font-display: swap;
} */

/* LJ-SYSFONT-2026-10-18 disabled: self-hosted webfont removed, system stack is used instead
@font-face {
    font-family: "PingFang SC";
    src: url("/static/font/pingfang/pf4-title.woff2") format("woff2");
    font-weight: 700 900;
    font-style: normal;
    font-display: swap;
} */

/* ===== lj_name_size_14: 海报片名加大一号 =====
   13px → 14px（桌面与移动端一致，不做断点压缩）。
   范围：首页 .fl-name、列表页/搜索页/猜你喜欢 .ct-name。
   字重保持 400（Regular 字体），行高维持 1.5，
   与 lj_name_gap_balance 设的间距配合不变。 */

.fl-duo-main .fl-poster-grid--duo .fl-name,
.fl-duo .fl-poster-grid--duo .fl-name,
.fl-poster-grid--duo .fl-name,
.fl-poster-grid .fl-name,
.fl-name,
.ct-poster-grid .ct-name,
.ct-poster-grid .ct-name a,
.ct-name {
    font-size: 14px !important;
}

@media screen and (max-width: 1024px) {
    .fl-duo-main .fl-poster-grid--duo .fl-name,
    .fl-duo .fl-poster-grid--duo .fl-name,
    .fl-poster-grid--duo .fl-name,
    .fl-poster-grid .fl-name,
    .fl-name,
    .ct-poster-grid .ct-name,
    .ct-poster-grid .ct-name a,
    .ct-name {
        font-size: 14px !important;
    }
}

@media screen and (max-width: 768px) {
    .fl-duo-main .fl-poster-grid--duo .fl-name,
    .fl-duo .fl-poster-grid--duo .fl-name,
    .fl-poster-grid--duo .fl-name,
    .fl-poster-grid .fl-name,
    .fl-name,
    .ct-poster-grid .ct-name,
    .ct-poster-grid .ct-name a,
    .ct-name {
        font-size: 14px !important;
    }
}

@media screen and (max-width: 480px) {
    .fl-duo-main .fl-poster-grid--duo .fl-name,
    .fl-duo .fl-poster-grid--duo .fl-name,
    .fl-poster-grid--duo .fl-name,
    .fl-poster-grid .fl-name,
    .fl-name,
    .ct-poster-grid .ct-name,
    .ct-poster-grid .ct-name a,
    .ct-name {
        font-size: 14px !important;
    }
}

/* ===== lj_rank_name_14: 排行榜片名同步 14px =====
   与 lj_name_size_14（海报片名 14px）保持一致。
   范围：首页右侧排行榜的 .fl-rank-name 及其链接。
   字重仍为 400（Regular），行高 1.5 不变。 */

.fl-duo-side .fl-rank-list .fl-rank-name,
.fl-rank-list .fl-rank-name,
.fl-rank-name,
.fl-rank-link .fl-rank-name,
.fl-rank-name a,
.fl-rank-list .fl-rank-name a {
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
}

@media screen and (max-width: 1024px) {
    .fl-duo-side .fl-rank-list .fl-rank-name,
    .fl-rank-list .fl-rank-name,
    .fl-rank-name,
    .fl-rank-link .fl-rank-name,
    .fl-rank-name a,
    .fl-rank-list .fl-rank-name a {
        font-size: 14px !important;
    }
}

@media screen and (max-width: 768px) {
    .fl-duo-side .fl-rank-list .fl-rank-name,
    .fl-rank-list .fl-rank-name,
    .fl-rank-name,
    .fl-rank-link .fl-rank-name,
    .fl-rank-name a,
    .fl-rank-list .fl-rank-name a {
        font-size: 14px !important;
    }
}

@media screen and (max-width: 480px) {
    .fl-duo-side .fl-rank-list .fl-rank-name,
    .fl-rank-list .fl-rank-name,
    .fl-rank-name,
    .fl-rank-link .fl-rank-name,
    .fl-rank-name a,
    .fl-rank-list .fl-rank-name a {
        font-size: 14px !important;
    }
}

/* ===== lj_ct_filter_14: 列表页筛选标签统一 14px =====
   结构：<div class="ct-filter">
           <span class="ct-filter-label">分类</span>
           <div class="ct-filter-opts"><a>全部</a><a>国产剧</a>...</div>
         </div>
   原本：标签 12px、选项 12px（被后文规则从 14px 压到 12px）
   现在：两者统一 14px，与海报片名、排行榜片名、栏目标题一致。
   同时保持原有的选中态（橙色实心）与悬停态不变。 */

/* ---------- 标签文字（分类 / 排序）---------- */
.ct-filter .ct-filter-label,
.ct-filter-label {
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
}

/* ---------- 选项（全部 / 国产剧 / 最新 / 最热 …）---------- */
.ct-filter .ct-filter-opts a,
.ct-filter-opts a,
.ct-filter-opts > a {
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
}

/* 选中态保持原来的强调 */
.ct-filter-opts a.active,
.ct-filter .ct-filter-opts a.active {
    font-weight: 600 !important;
}

/* ---------- 各断点一致（移动端不压缩）---------- */
@media screen and (max-width: 1024px) {
    .ct-filter .ct-filter-label,
    .ct-filter-label,
    .ct-filter .ct-filter-opts a,
    .ct-filter-opts a {
        font-size: 14px !important;
    }
}

@media screen and (max-width: 768px) {
    .ct-filter .ct-filter-label,
    .ct-filter-label,
    .ct-filter .ct-filter-opts a,
    .ct-filter-opts a {
        font-size: 14px !important;
    }
}

@media screen and (max-width: 480px) {
    .ct-filter .ct-filter-label,
    .ct-filter-label,
    .ct-filter .ct-filter-opts a,
    .ct-filter-opts a {
        font-size: 14px !important;
    }
}

@media screen and (max-width: 359px) {
    .ct-filter .ct-filter-label,
    .ct-filter-label,
    .ct-filter .ct-filter-opts a,
    .ct-filter-opts a {
        font-size: 13px !important;
    }
}

/* ===== lj_dt_info_unify: 详情页信息区统一字号与颜色 =====
   范围（截图里的四行）：
     [国产剧] [2016]         → .dt-tag
     导演 林玉芬              → .dt-meta-label + .dt-meta-value
     主演 杨洋 毛晓彤 白宇     → .dt-meta-label + .dt-actor
     更新 2026-10-06          → .dt-meta-label + .dt-meta-value

   统一项：
     · 字号  一律 14px（原标签 13px、值 14px、演员链接 13px 不一致）
     · 颜色  一律 var(--c-text) #111318（原标签偏灰 #3d4450、值偏黑）
     · 字重  标签 500、值 400，保留层级但同色
     · 行高  1.5

   保持不动：标签胶囊的浅灰底与圆角（那是形态，不是文字样式）。 */

/* ---------- 标签胶囊里的文字 ---------- */
.dt-hero .dt-tags .dt-tag,
.dt-tags .dt-tag,
.dt-tag {
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    color: var(--c-text, #111318) !important;
}

/* ---------- 字段标签（导演 / 主演 / 更新）---------- */
.dt-hero .dt-meta-list .dt-meta-label,
.dt-meta-list .dt-meta-label,
.dt-meta-label {
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    color: var(--c-text, #111318) !important;
}

/* ---------- 字段值（林玉芬 / 2026-10-06）---------- */
.dt-hero .dt-meta-list .dt-meta-value,
.dt-meta-list .dt-meta-value,
.dt-meta-value {
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    color: var(--c-text, #111318) !important;
}

/* ---------- 演员链接 ---------- */
.dt-hero .dt-actor a,
.dt-actor a,
.dt-meta-value.dt-actor,
.dt-actor {
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    color: var(--c-text, #111318) !important;
}

/* 演员链接悬停时给一点呼应（不影响静态观感） */
.dt-hero .dt-actor a:hover {
    color: var(--c-primary, #ff6b35) !important;
}

/* ---------- 各断点一致（移动端不压缩）---------- */
@media screen and (max-width: 1024px) {
    .dt-tag,
    .dt-meta-label,
    .dt-meta-value,
    .dt-actor,
    .dt-actor a {
        font-size: 14px !important;
    }
}

@media screen and (max-width: 768px) {
    .dt-tag,
    .dt-meta-label,
    .dt-meta-value,
    .dt-actor,
    .dt-actor a {
        font-size: 14px !important;
    }
}

@media screen and (max-width: 480px) {
    .dt-tag,
    .dt-meta-label,
    .dt-meta-value,
    .dt-actor,
    .dt-actor a {
        font-size: 14px !important;
    }
}

/* ===== lj_dt_info_nobold: 详情页信息区取消加粗 =====
   上一版把标签与字段名设为 500（中黑），观感偏重。
   本版全部回落 400（Regular），与字段值同重，
   整块信息区的文字粗细完全一致。
   字号 14px、颜色 #111318 保持不变。 */

.dt-hero .dt-tags .dt-tag,
.dt-tags .dt-tag,
.dt-tag,
.dt-hero .dt-meta-list .dt-meta-label,
.dt-meta-list .dt-meta-label,
.dt-meta-label,
.dt-hero .dt-meta-list .dt-meta-value,
.dt-meta-list .dt-meta-value,
.dt-meta-value,
.dt-hero .dt-actor a,
.dt-actor a,
.dt-meta-value.dt-actor,
.dt-actor {
    font-weight: 400 !important;
}

/* 标签胶囊内的文字也一样（避免个别规则单独加粗） */
.dt-hero .dt-tags a.dt-tag,
.dt-tags a.dt-tag,
a.dt-tag,
a.dt-tag.dt-tag-primary {
    font-weight: 400 !important;
}

/* 悬停时也不加粗，只变色 */
.dt-hero .dt-actor a:hover,
.dt-hero .dt-tags a.dt-tag:hover {
    font-weight: 400 !important;
}

/* ---------- 各断点一致 ---------- */
@media screen and (max-width: 1024px) {
    .dt-tag, .dt-meta-label, .dt-meta-value, .dt-actor, .dt-actor a, a.dt-tag {
        font-weight: 400 !important;
    }
}
@media screen and (max-width: 768px) {
    .dt-tag, .dt-meta-label, .dt-meta-value, .dt-actor, .dt-actor a, a.dt-tag {
        font-weight: 400 !important;
    }
}
@media screen and (max-width: 480px) {
    .dt-tag, .dt-meta-label, .dt-meta-value, .dt-actor, .dt-actor a, a.dt-tag {
        font-weight: 400 !important;
    }
}

/* ===== lj_dt_btn_nobold: 详情页按钮取消加粗 =====
   范围：详情页操作区的三个按钮 ——
     <a class="dt-btn dt-btn-ghost">备用网址</a>
     <button class="dt-btn dt-btn-ghost dt-btn-copy">复制网址</button>
     <button class="dt-rate">评分</button>
   原本按钮文字为 600/700 字重，观感偏重。
   现在统一回落 400，与信息区文字一致。
   按钮的高度、边框、圆角、配色与悬停态全部保持不变。 */

.dt-hero .dt-actions .dt-btn,
.dt-actions .dt-btn,
.dt-btn,
a.dt-btn,
button.dt-btn,
.dt-btn.dt-btn-ghost,
.dt-btn.dt-btn-primary,
.dt-btn-copy {
    font-weight: 400 !important;
}

/* 悬停时也不加粗 */
.dt-actions .dt-btn:hover,
.dt-btn:hover,
.dt-btn-copy:hover {
    font-weight: 400 !important;
}

/* 评分按钮里的分数仍保留强调（那是数值，不是标签文字） */
.dt-hero .dt-rate .dt-score,
.dt-rate .dt-score {
    font-weight: 700 !important;
}

@media screen and (max-width: 1024px) {
    .dt-btn, a.dt-btn, button.dt-btn, .dt-btn.dt-btn-ghost, .dt-btn.dt-btn-primary, .dt-btn-copy {
        font-weight: 400 !important;
    }
}
@media screen and (max-width: 768px) {
    .dt-btn, a.dt-btn, button.dt-btn, .dt-btn.dt-btn-ghost, .dt-btn.dt-btn-primary, .dt-btn-copy {
        font-weight: 400 !important;
    }
}
@media screen and (max-width: 480px) {
    .dt-btn, a.dt-btn, button.dt-btn, .dt-btn.dt-btn-ghost, .dt-btn.dt-btn-primary, .dt-btn-copy {
        font-weight: 400 !important;
    }
}

/* ===== lj_channel_title_fix: 「高清信号源」圆点错位修复 + 取消加粗 =====
   问题一（错位）：
     .channel-header .title::before  → 8px 渐变圆点
     .channel-header .title::after   → 8px 实心圆点（带 will-change，本意是脉冲光圈）
     两个同尺寸圆点叠在一起、位置略有差异，看上去像重影/错位。
   修复：隐藏 ::after 的实体圆点 —— 只留 ::before 一枚干净的点。
        若将来要恢复脉冲效果，把 display 改回 block 并确保尺寸大于 ::before 即可。

   问题二（字重）：
     .channel-header .title 原为 500，观感偏重 → 回落 400。

   保持不变：文字字号 13px、颜色 var(--c-text-2)、圆点渐变配色。 */

/* ---------- ① 去掉重复的第二个圆点 ---------- */
.channel-header .title::after,
.channel-box-header .channel-header .title::after {
    display: none !important;
    content: none !important;
    background: none !important;
    box-shadow: none !important;
}

/* ---------- ② 单一圆点重新定位，与文字垂直居中 ---------- */
.channel-header .title::before,
.channel-box-header .channel-header .title::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    left: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 8px !important;
    height: 8px !important;
    border-radius: 50% !important;
    margin: 0 !important;
    background: linear-gradient(135deg, var(--c-primary-2), var(--c-primary)) !important;
    box-shadow: none !important;
    pointer-events: none !important;
}

/* 文字左内边距与圆点对齐 */
.channel-header .title,
.channel-box-header .channel-header .title {
    padding-left: 16px !important;
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
}

/* ---------- ③ 取消加粗 ---------- */
.channel-header .title,
.channel-box-header .channel-header .title {
    font-weight: 400 !important;
}

/* ---------- ④ 各断点一致 ---------- */
@media screen and (max-width: 1024px) {
    .channel-header .title,
    .channel-box-header .channel-header .title {
        font-weight: 400 !important;
        padding-left: 16px !important;
    }
    .channel-header .title::after { display: none !important; content: none !important; }
}
@media screen and (max-width: 768px) {
    .channel-header .title,
    .channel-box-header .channel-header .title {
        font-weight: 400 !important;
        padding-left: 15px !important;
    }
    .channel-header .title::after { display: none !important; content: none !important; }
    .channel-header .title::before { width: 7px !important; height: 7px !important; }
}
@media screen and (max-width: 480px) {
    .channel-header .title,
    .channel-box-header .channel-header .title {
        font-weight: 400 !important;
        padding-left: 15px !important;
    }
    .channel-header .title::after { display: none !important; content: none !important; }
    .channel-header .title::before { width: 7px !important; height: 7px !important; }
}

/* ===== lj_sort_minimal: 正序/倒序 切换极简化 =====
   原样式层次过多：
     灰色胶囊容器（#f5f6f8）+ 圆角 999px
     + 选中项白色胶囊 + 双层阴影 + 圆角
     + 三角图标
     共四层视觉元素叠在一起，观感偏重。

   现在只保留两层：
     · 文字本身（未选中灰、选中橙）
     · 一枚小三角指示方向
   去掉灰色容器底与白色胶囊底，让控件安静下来，
   与「高清信号源」在同一行的视觉重量匹配。 */

/* ---------- 容器：去掉灰底与内边距 ---------- */
.channel-sort-tabs,
.channel-box-header .channel-sort-tabs {
    display: inline-flex !important;
    align-items: center !important;
    gap: 18px !important;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* ---------- 按钮：去掉所有底色与阴影 ---------- */
.channel-sort-btn,
.channel-sort-tabs > button {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    height: auto !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    color: var(--c-text-3, #7a828e) !important;
    cursor: pointer !important;
    transition: color .18s ease !important;
    -webkit-tap-highlight-color: transparent !important;
}

/* ---------- 选中态：只换颜色 ---------- */
.channel-sort-btn.active,
.channel-sort-tabs > button.active {
    color: var(--c-primary, #ff6b35) !important;
    background: none !important;
    box-shadow: none !important;
    font-weight: 500 !important;
}

/* ---------- 悬停：轻微加深 ---------- */
.channel-sort-btn:hover,
.channel-sort-tabs > button:hover {
    color: var(--c-primary, #ff6b35) !important;
    background: none !important;
    box-shadow: none !important;
    transform: none !important;
}

/* ---------- 三角图标：缩小并跟随文字颜色 ---------- */
.channel-sort-btn svg,
.channel-sort-tabs > button svg {
    width: 8px !important;
    height: 8px !important;
    flex: 0 0 auto !important;
    opacity: .85 !important;
}

/* 去掉可能存在的伪元素装饰 */
.channel-sort-btn::before,
.channel-sort-btn::after,
.channel-sort-tabs::before,
.channel-sort-tabs::after {
    content: none !important;
    display: none !important;
}

/* ---------- 各断点 ---------- */
@media screen and (max-width: 768px) {
    .channel-sort-tabs { gap: 14px !important; }
    .channel-sort-btn { font-size: 13px !important; }
    .channel-sort-btn svg { width: 8px !important; height: 8px !important; }
}
@media screen and (max-width: 480px) {
    .channel-sort-tabs { gap: 12px !important; }
    .channel-sort-btn { font-size: 13px !important; }
}

/* ===== lj_sort_tune: 正序/倒序 间距与字重微调 =====
   ① 字重：选中项原为 500，仍显厚重 → 一律 400
   ② 间距：
        · 三角与文字的间距  4px → 5px
        · 两个选项之间      18px → 20px
   ③ 顺带确保三角与文字垂直居中（inline-flex + align-items: center 已有，这里再显式声明）
   ④ 圆点脉冲与「高清信号源」的视觉重量保持匹配 */

/* ---------- 容器 ---------- */
.channel-sort-tabs,
.channel-box-header .channel-sort-tabs {
    display: inline-flex !important;
    align-items: center !important;
    gap: 20px !important;          /* ★ 18 → 20 */
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* ---------- 按钮：字重一律 400 ---------- */
.channel-sort-btn,
.channel-sort-tabs > button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;           /* ★ 4 → 5（三角与文字） */
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 400 !important;   /* ★ 保持不变 */
    line-height: 1 !important;
    color: var(--c-text-3, #7a828e) !important;
    cursor: pointer !important;
    transition: color .18s ease !important;
    vertical-align: middle !important;
}

/* ---------- 选中态：只换颜色，不加粗 ---------- */
.channel-sort-btn.active,
.channel-sort-tabs > button.active {
    color: var(--c-primary, #ff6b35) !important;
    background: none !important;
    box-shadow: none !important;
    font-weight: 400 !important;   /* ★ 500 → 400 */
}

/* ---------- 悬停 ---------- */
.channel-sort-btn:hover,
.channel-sort-tabs > button:hover {
    color: var(--c-primary, #ff6b35) !important;
    font-weight: 400 !important;
    background: none !important;
    box-shadow: none !important;
    transform: none !important;
}

/* ---------- 三角：与文字同高、垂直居中 ---------- */
.channel-sort-btn svg,
.channel-sort-tabs > button svg {
    width: 8px !important;
    height: 8px !important;
    flex: 0 0 auto !important;
    display: block !important;
    opacity: .8 !important;
    position: relative !important;
    top: 0 !important;
    transform: none !important;
}

/* ---------- 各断点 ---------- */
@media screen and (max-width: 768px) {
    .channel-sort-tabs { gap: 16px !important; }
    .channel-sort-btn { font-size: 13px !important; gap: 5px !important; font-weight: 400 !important; }
    .channel-sort-btn.active { font-weight: 400 !important; }
}
@media screen and (max-width: 480px) {
    .channel-sort-tabs { gap: 14px !important; }
    .channel-sort-btn { font-size: 13px !important; gap: 4px !important; font-weight: 400 !important; }
    .channel-sort-btn.active { font-weight: 400 !important; }
}

/* ===== lj_hide_player_version: 隐藏信息面板里的播放器版本项 =====
   ArtPlayer 的统计面板（右键弹出）第一项显示 "Player version: 4.6.2"，
   是第三方播放器的版本信息。JS 已按文本删除，这里再用 CSS 兜底：
   面板的第一项与第二项之间存在固定结构关系，若 JS 未及时执行，
   CSS 会先把首项藏起来，避免闪现。
   ★ 其余五项（视频地址 / 音量 / 时间 / 时长 / 分辨率）全部保留。 */

.art-video-player .art-info .art-info-panel .art-info-item:first-child {
    display: none !important;
}

/* ===== lj_restore_1006_player: 恢复 2026-10-06 的播放器布局 CSS =====
   背景：控制条的可见性由「播放器脚本 + CSS」配合实现。
         脚本已回到 10-06 版本，但配套的 CSS 被删，导致控制条被
         .pl-video-box 的 overflow:hidden 裁掉而看不到。
   处理：从 10-06 的备份中原样恢复这些块。
   ★ 块内容逐字复制，未作任何修改。 */

/* ===== lj_player_ratio_fix: 只改容器比例，不动播放器内部 ===== 上一次改动的问题：除了改容器比例，还强制 .MacPlayer / iframe / video 绝对定位并铺满 100%，把播放器自己的控制条（进度、音量、弹幕输入）盖住了。 这一次只做一件事：把后文那条把容器拉高的规则改回 16:9 —— aspect-ratio: auto → 16 / 9 height: calc(100vh - 96px) → auto max-height: calc(100vh - 96px) → none 播放器内部的一切（MacPlayer 的定位、控制条、弹幕层）完全不碰， 交给播放器脚本按容器尺寸自行布局。 */ .pl-video-box {
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    max-height: none !important;
}

@media screen and (max-width: 1024px) {.pl-video-box {}
}

@media screen and (max-width: 768px) {.pl-video-box {}
}

@media screen and (max-width: 480px) {.pl-video-box {}
}

/* ===== lj_player_ratio_soft: 容器高度交给 JS 决定 ===== 配合 /static/js/lj-player-ratio.js： · 先给一个 16:9 的默认比例（JS 未跑或加载失败时也不难看） · JS 读到视频真实宽高后会覆盖成与片源一致的比例 这里不强写 height，避免与 JS 的内联样式互相打架； 仅清掉那条把容器拉到 100vh-96px 的旧规则。 */ .pl-video-box {
    aspect-ratio: 16 / 9;
    height: auto;
    max-height: none;
    padding-bottom: 0;
}

@media screen and (max-width: 1024px) {.pl-video-box {}
}
@media screen and (max-width: 768px) {.pl-video-box {}
}
@media screen and (max-width: 480px) {.pl-video-box {}
}

/* ===== lj_ratio_neutral: 停用此前所有追加式的播放器比例覆盖 ===== 比例已直接改写进原始规则 .pl-video-box（见文件前部）， 这里把之前追加的几层覆盖全部中和掉，只保留一条最终值， 避免多层 !important 互相竞争、结果不确定。 保留 21:9 作为桌面默认；移动端竖屏下 21:9 过扁，改用 16:9。 */ .pl-video-box {
    aspect-ratio: 21 / 9 !important;
    height: auto !important;
    max-height: none !important;
}

@media screen and (max-width: 1024px) {.pl-video-box {}
}

@media screen and (max-width: 768px) {.pl-video-box {}
}

@media screen and (max-width: 480px) {.pl-video-box {}
}/* 控制条与字幕：给容器底部留出一条不参与画面裁切的缓冲带， 让播放器控制条浮在缓冲带上，减少对字幕的遮挡。 仅作用于容器，不改播放器内部结构。 */ .pl-video-box {
    padding-bottom: 0 !important;
    overflow: visible !important;
}.pl-video {
    overflow: visible !important;
}

/* ===== lj_ratio_16_9_final: 播放器画面改为 16:9 ===== 历程：容器原为 aspect-ratio: auto + height: calc(100vh - 96px)， 在宽屏上比例约 2.34:1，画面又扁又小。 中途试过 21:9，但它与 2.34:1 几乎相同，看不出变化。 定稿：16:9（1.78:1）—— 比原来高约 30%，画面明显更饱满， 也是绝大多数剧集片源的标准比例，黑边最少。 */ .pl-video-box {
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    max-height: none !important;
    padding-bottom: 0 !important;
}

@media screen and (max-width: 1024px) {.pl-video-box {
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    max-height: none !important;
}
}
@media screen and (max-width: 768px) {.pl-video-box {
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    max-height: none !important;
}
}
@media screen and (max-width: 480px) {.pl-video-box {
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    max-height: none !important;
}
}

/* ===== lj_player_video_up: 画面往上提，给控制层让位 ===== 问题：ArtPlayer 的控制层（.art-bottom，高 120px）是【覆盖】在画面底部的， 视频铺满整个容器 → 字幕正好落在控制层下方，被挡住。 上一轮的错误做法：把控制层压薄到 84px → 里面的按钮和弹幕框放不下，显示不全。 本轮做法： ① 控制层恢复原高度（120px / 小屏 100px），保证完整显示 ② 播放器主体（.art-video-player）底部留出与控制层等高的内边距， 使视频画面区上移、变矮，控制层落在留白区里 ③ 视频元素显式定位到顶部，高度扣掉控制层高度 → 画面完整可见 ④ 弹幕与字幕层随之收进画面区，不再与控制层重叠 这样：画面在上、控制层在下，两者不重叠，字幕全程可见。 */ /* 播放器主体：底部留出控制层的高度 */ .pl-video-box .art-video-player, .pl-video-box .MacPlayer .art-video-player {
    padding-bottom: 120px !important;
    box-sizing: border-box !important;
}/* 画面区：贴顶，高度扣掉控制层 */ .pl-video-box .art-video-player > .art-video, .pl-video-box .art-video-player > .art-layers, .pl-video-box .art-video-player > .art-loading, .pl-video-box .art-video-player > .art-mask {
    top: 0 !important;
    bottom: auto !important;
    height: calc(100% - 120px) !important;
}/* 画面内的 video 元素同样扣掉控制层高度 */ .pl-video-box .art-video-player > .art-video > video, .pl-video-box .art-video-player video {
    height: calc(100% - 120px) !important;
    object-fit: contain !important;
    top: 0 !important;
}/* 控制层：固定在容器底部（它本来就在 bottom: 0，这里显式声明避免被上面的规则影响） */ .pl-video-box .art-video-player > .art-bottom {
    height: 120px !important;
    bottom: 0 !important;
    top: auto !important;
}/* 弹幕与字幕层跟随画面区，不越界到控制层 */ .pl-video-box .art-video-player > .art-layers {
    overflow: hidden !important;
}

/* 小屏：控制层 100px，画面相应扣减 */
@media screen and (max-width: 768px) {.pl-video-box .art-video-player, .pl-video-box .MacPlayer .art-video-player {
    padding-bottom: 100px !important;
}.pl-video-box .art-video-player > .art-video, .pl-video-box .art-video-player > .art-layers, .pl-video-box .art-video-player > .art-loading, .pl-video-box .art-video-player > .art-mask {}.pl-video-box .art-video-player > .art-video > video, .pl-video-box .art-video-player video {
    height: calc(100% - 100px) !important;
}.pl-video-box .art-video-player > .art-bottom {}
}

/* ===== lj_player_box_final: 画面区 16:9 + 控制条独立区 ===== 症结：容器总高固定，减去控制条高度后，画面区比例变成 2.13~2.37:1， 而片源是 16:9（1.78:1）→ 视频在画面区内居中，左右各留黑边。 解法：把「画面区」与「控制条区」拆成两块，各自独立计算高度 —— ① .pl-video-box 用 aspect-ratio: 16/9 定义【内容盒】高度 ② box-sizing: content-box 让 padding-bottom 额外叠加， padding-bottom = 控制条高度（120px / 小屏 100px） ③ 于是：内容盒 = 16:9 画面区，padding 区 = 控制条区 ④ ArtPlayer 主体默认 height:100% 正好等于内容盒（16:9）→ 视频铺满无黑边 ⑤ 控制条 .art-bottom 绝对定位在 padding 区底部 → 不遮挡画面 结果：画面区严格 16:9、片源铺满、控制条在画面之外的黑色区域里， 字幕全程不被遮挡。 */ .pl-video-box {
    aspect-ratio: 16 / 9 !important;
    box-sizing: content-box !important;
    /* ★ 关键：padding 不占用比例高度 */ padding-bottom: 120px !important;
    /* ★ 控制条区高度 */ height: auto !important;
    max-height: none !important;
    background: #000 !important;
    /* 控制条区也是黑的，整体连贯 */ overflow: hidden !important;
}/* 播放器主体占满内容盒（16:9 画面区） */ .pl-video-box .art-video-player, .pl-video-box .MacPlayer, .pl-video-box .MacPlayer .art-video-player {
    padding-bottom: 0 !important;
    box-sizing: border-box !important;
    height: 100% !important;
    top: 0 !important;
    bottom: auto !important;
}/* 画面内的各层铺满内容盒 */ .pl-video-box .art-video-player > .art-video, .pl-video-box .art-video-player > .art-layers, .pl-video-box .art-video-player > .art-loading, .pl-video-box .art-video-player > .art-mask {
    top: 0 !important;
    bottom: auto !important;
    height: 100% !important;
}.pl-video-box .art-video-player video {}/* 控制条：绝对定位在 padding 区（画面之外） */ .pl-video-box .art-video-player > .art-bottom {
    height: 120px !important;
    bottom: -120px !important;
    /* ★ 移到内容盒下方 = padding 区 */ top: auto !important;
}/* 弹幕输入框跟随控制条，一并移出画面 */ .pl-video-box .art-layer-danmuku-emitter {
    bottom: -60px !important;
}/* 画面层不越界到控制条区 */ .pl-video-box .art-video-player > .art-layers {
    overflow: hidden !important;
}

/* ---------- 小屏：控制条区 100px ---------- */
@media screen and (max-width: 768px) {.pl-video-box {}.pl-video-box .art-video-player > .art-bottom {}.pl-video-box .art-layer-danmuku-emitter {}
}

@media screen and (max-width: 480px) {.pl-video-box {}.pl-video-box .art-video-player > .art-bottom {}
}

/* ===== lj_player_box_fix3: 控制条回到容器内可见 ===== 上一版把控制条移到内容盒下方（bottom: -120px）， 但父级有 overflow: hidden，越界的部分被裁掉 → 工具栏看不见。 本版改为「外层铺满、内部划分」： ① .pl-video-box 内容盒 = 16:9 画面区，padding-bottom = 控制条区 ② .art-video-player 用绝对定位铺满【整个容器】（含 padding 区） —— top/left/right/bottom 全 0，高度 = 容器总高 ③ 画面类元素（.art-video / .art-layers / video 等） 高度 = calc(100% - 控制条高) → 只占上半部，即 16:9 画面区 ④ 控制条 .art-bottom 定位在容器底部（bottom: 0）， 落在 padding 区里 —— 完全在容器内，不会被裁切 结果：画面 16:9 铺满无黑边 + 控制条完整可见 + 两者不重叠。 */ /* 外层：内容盒 16:9 + 底部控制条区 */ .pl-video-box {
    aspect-ratio: 16 / 9 !important;
    box-sizing: content-box !important;
    padding-bottom: 120px !important;
    height: auto !important;
    max-height: none !important;
    background: #000 !important;
    position: relative !important;
    overflow: hidden !important;
}/* 播放器主体：铺满整个容器（含 padding 区） */ .pl-video-box .art-video-player, .pl-video-box .MacPlayer, .pl-video-box .MacPlayer .art-video-player {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}/* 画面元素：只占上半部（= 16:9 画面区） */ .pl-video-box .art-video-player > .art-video, .pl-video-box .art-video-player > .art-layers, .pl-video-box .art-video-player > .art-loading, .pl-video-box .art-video-player > .art-mask, .pl-video-box .art-video-player > .art-poster {
    top: 0 !important;
    bottom: auto !important;
    height: calc(100% - 120px) !important;
    overflow: hidden !important;
}.pl-video-box .art-video-player video {}/* 控制条：容器底部（padding 区内），完整可见 */ .pl-video-box .art-video-player > .art-bottom {
    height: 120px !important;
    bottom: 0 !important;
    top: auto !important;
    z-index: 20 !important;
    overflow: visible !important;
}/* 弹幕输入框：跟随控制条，落在控制条区上方 */ .pl-video-box .art-layer-danmuku-emitter {
    bottom: 110px !important;
    z-index: 19 !important;
}

/* ---------- 小屏：控制条区 100px ---------- */
@media screen and (max-width: 768px) {.pl-video-box {}.pl-video-box .art-video-player > .art-video, .pl-video-box .art-video-player > .art-layers, .pl-video-box .art-video-player > .art-loading, .pl-video-box .art-video-player > .art-mask, .pl-video-box .art-video-player > .art-poster {}.pl-video-box .art-video-player video {}.pl-video-box .art-video-player > .art-bottom {}.pl-video-box .art-layer-danmuku-emitter {}
}

@media screen and (max-width: 480px) {.pl-video-box {}.pl-video-box .art-video-player > .art-bottom {}.pl-video-box .art-layer-danmuku-emitter {}
}

/* ===== lj_player_pad_narrow: 缩小底部控制条区留白 ===== 上一版留白 120px，画面下方的黑色区域偏空。 本版把控制条区收窄到 100px（小屏 88px）， 同时等比微调播放器内部 —— .art-bottom 120 → 100 （小屏 100 → 88） .art-controls 56 → 50 （小屏 45 → 42） .art-control 48px 不变 （避免上次按钮残缺） .art-icon 44px 不变 弹幕输入框 bottom 60 → 52 （小屏保持 92 由内部媒体查询控制） 容器：内容盒仍是 16:9 画面区，padding-bottom 改为 100px / 88px， 画面比例不变，只是控制条区变窄。 */ .pl-video-box {
    aspect-ratio: 16 / 9 !important;
    box-sizing: content-box !important;
    padding-bottom: 100px !important;
    /* ★ 原 120px */ height: auto !important;
    max-height: none !important;
    background: #000 !important;
    position: relative !important;
    overflow: hidden !important;
}/* 画面元素：扣掉新的控制条高度 */ .pl-video-box .art-video-player > .art-video, .pl-video-box .art-video-player > .art-layers, .pl-video-box .art-video-player > .art-loading, .pl-video-box .art-video-player > .art-mask, .pl-video-box .art-video-player > .art-poster {
    top: 0 !important;
    bottom: auto !important;
    height: calc(100% - 100px) !important;
    overflow: hidden !important;
}.pl-video-box .art-video-player video {}/* 控制条：容器底部，高度 100px */ .pl-video-box .art-video-player > .art-bottom {
    height: 100px !important;
    bottom: 0 !important;
    top: auto !important;
    z-index: 20 !important;
    overflow: visible !important;
}/* 弹幕输入框 */ .pl-video-box .art-layer-danmuku-emitter {}

/* ---------- ≤768px：控制条区 88px ---------- */
@media screen and (max-width: 768px) {.pl-video-box {}.pl-video-box .art-video-player > .art-video, .pl-video-box .art-video-player > .art-layers, .pl-video-box .art-video-player > .art-loading, .pl-video-box .art-video-player > .art-mask, .pl-video-box .art-video-player > .art-poster {}.pl-video-box .art-video-player video {}.pl-video-box .art-video-player > .art-bottom {}.pl-video-box .art-layer-danmuku-emitter {}
}

@media screen and (max-width: 480px) {.pl-video-box {}.pl-video-box .art-video-player > .art-bottom {}.pl-video-box .art-layer-danmuku-emitter {}
}

/* ===== lj_player_pad_80: 底部控制条区压到 80px ===== 历程：120 → 100 → 80px 站点原先把 ArtPlayer 的控制层从默认约 70px 撑到 120px， 这里回到接近默认的紧凑尺寸： .art-bottom 100 → 80 （小屏 88 → 72） .art-controls 50 → 46 （小屏 42 → 40） .art-control 48 → 40 （小屏 36 → 34，触控区仍达标） .art-icon 44 → 34 （小屏 36 → 30） 弹幕输入框 52 → 42 （小屏 80 → 62） 画面区仍是严格 16:9（aspect-ratio 决定），只是底部黑色区更窄。 */ .pl-video-box {
    aspect-ratio: 16 / 9 !important;
    box-sizing: content-box !important;
    padding-bottom: 80px !important;
    /* ★ 原 100px */ height: auto !important;
    max-height: none !important;
    background: #000 !important;
    position: relative !important;
    overflow: hidden !important;
}.pl-video-box .art-video-player > .art-video, .pl-video-box .art-video-player > .art-layers, .pl-video-box .art-video-player > .art-loading, .pl-video-box .art-video-player > .art-mask, .pl-video-box .art-video-player > .art-poster {}.pl-video-box .art-video-player video {}.pl-video-box .art-video-player > .art-bottom {
    height: 80px !important;
    bottom: 0 !important;
    top: auto !important;
    z-index: 20 !important;
    overflow: visible !important;
    padding-top: 0 !important;
}.pl-video-box .art-layer-danmuku-emitter {}

/* ---------- ≤768px：控制条区 72px ---------- */
@media screen and (max-width: 768px) {.pl-video-box {}.pl-video-box .art-video-player > .art-video, .pl-video-box .art-video-player > .art-layers, .pl-video-box .art-video-player > .art-loading, .pl-video-box .art-video-player > .art-mask, .pl-video-box .art-video-player > .art-poster {}.pl-video-box .art-video-player video {}.pl-video-box .art-video-player > .art-bottom {}.pl-video-box .art-layer-danmuku-emitter {}
}

@media screen and (max-width: 480px) {.pl-video-box {}.pl-video-box .art-video-player > .art-bottom {}.pl-video-box .art-layer-danmuku-emitter {}
}

/* ===== lj_player_top_pad: 只降低工具栏上边距 ===== 要求：工具栏上方的空白（进度条与播放器画面之间）再小一些， 但按钮与图标的尺寸不动 —— 避免上次那种错位。 做法（只碰高度与上内边距，不碰按钮尺寸）： ① 控制条区总高 80 → 70px —— 按钮行占 50px，剩下 20px 给进度条（原来 30px）， 上方空白自然减少 10px ② 进度条上方内边距 6 → 2px，让它更贴画面下沿 ③ 容器底部留白同步 80 → 70px，画面区比例仍是严格 16:9 ④ 按钮 40px、图标 34px、svg 24px —— 全部保持原样 小屏同样处理：控制条 72 → 64px。 */ .pl-video-box .art-video-player > .art-bottom {
    height: 70px !important;
    /* ★ 80 → 70 */ padding: 0 12px 4px !important;
    /* ★ 上内边距归零 */ bottom: 0 !important;
    top: auto !important;
    z-index: 20 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
}/* 进度条：贴到控制条顶部 */ .pl-video-box .art-video-player .art-progress, .pl-video-box .art-video-player .art-bottom .art-progress {
    margin: 0 !important;
    padding: 2px 0 0 !important;
    /* ★ 6 → 2 */ top: 0 !important;
}/* 按钮行：尺寸不变，位置贴底 */ .pl-video-box .art-video-player > .art-bottom > .art-controls {
    margin: 0 !important;
    height: 50px !important;
    /* ★ 保持原值 */ align-items: center !important;
}/* 容器底部留白同步 70px */ .pl-video-box {
    aspect-ratio: 16 / 9 !important;
    box-sizing: content-box !important;
    padding-bottom: 70px !important;
    height: auto !important;
    max-height: none !important;
    background: #000 !important;
    position: relative !important;
    overflow: hidden !important;
}.pl-video-box .art-video-player > .art-video, .pl-video-box .art-video-player > .art-layers, .pl-video-box .art-video-player > .art-loading, .pl-video-box .art-video-player > .art-mask, .pl-video-box .art-video-player > .art-poster {
    top: 0 !important;
    bottom: auto !important;
    height: calc(100% - 70px) !important;
    overflow: hidden !important;
}.pl-video-box .art-video-player video {}/* 弹幕输入框：随控制条上移 */ .pl-video-box .art-layer-danmuku-emitter {
    bottom: 50px !important;
    z-index: 19 !important;
}

/* ---------- ≤768px：控制条 72 → 64px ---------- */
@media screen and (max-width: 768px) {.pl-video-box {}.pl-video-box .art-video-player > .art-bottom {
    padding: 0 10px 3px !important;
}.pl-video-box .art-video-player > .art-bottom > .art-controls {
    height: 42px !important;
}.pl-video-box .art-video-player > .art-video, .pl-video-box .art-video-player > .art-layers, .pl-video-box .art-video-player > .art-loading, .pl-video-box .art-video-player > .art-mask, .pl-video-box .art-video-player > .art-poster, .pl-video-box .art-video-player video {}.pl-video-box .art-layer-danmuku-emitter {}
}

@media screen and (max-width: 480px) {.pl-video-box {}.pl-video-box .art-video-player > .art-bottom {}.pl-video-box .art-layer-danmuku-emitter {
    bottom: 44px !important;
}
}

/* ===== lj_player_pad_both: 画面上下留白对称 ===== 要求：播放器上方的黑边加大，与下方控制条区的黑边对齐。 做法： ① 容器内容盒仍为 16:9（画面区）， box-sizing: content-box 让内边距额外叠加 —— 顶部 padding-top = 70px （新增，与底部对齐） 底部 padding-bottom = 70px （控制条区，原已有） ② 播放器主体仍绝对定位铺满整个容器（含上下留白区） ③ 画面类元素上移到 padding-top 之后，高度扣掉「上留白 + 下留白」： top: 70px height: calc(100% - 140px) ④ 控制条仍在容器底部 70px 区内 结果：画面垂直居中，上下各 70px 黑色留白，视觉对称。 画面本身仍是 16:9，不会被拉伸。 */ .pl-video-box {
    aspect-ratio: 16 / 9 !important;
    box-sizing: content-box !important;
    padding-top: 70px !important;
    /* ★ 新增：顶部留白 */ padding-bottom: 70px !important;
    /* 控制条区 */ height: auto !important;
    max-height: none !important;
    background: #000 !important;
    position: relative !important;
    overflow: hidden !important;
}/* 播放器主体：铺满整个容器（含上下留白） */ .pl-video-box .art-video-player, .pl-video-box .MacPlayer, .pl-video-box .MacPlayer .art-video-player {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}/* 画面层：上移 70px，高度扣掉上下各 70px */ .pl-video-box .art-video-player > .art-video, .pl-video-box .art-video-player > .art-layers, .pl-video-box .art-video-player > .art-loading, .pl-video-box .art-video-player > .art-mask, .pl-video-box .art-video-player > .art-poster {
    top: 70px !important;
    bottom: auto !important;
    height: calc(100% - 140px) !important;
    overflow: hidden !important;
}.pl-video-box .art-video-player video {}/* 控制条：容器底部 70px 区 */ .pl-video-box .art-video-player > .art-bottom {
    height: 70px !important;
    bottom: 0 !important;
    top: auto !important;
    z-index: 20 !important;
    overflow: visible !important;
}/* 弹幕输入框 */ .pl-video-box .art-layer-danmuku-emitter {
    bottom: 50px !important;
    z-index: 19 !important;
}

/* ---------- ≤768px：上下各 64px ---------- */
@media screen and (max-width: 768px) {.pl-video-box {}.pl-video-box .art-video-player > .art-video, .pl-video-box .art-video-player > .art-layers, .pl-video-box .art-video-player > .art-loading, .pl-video-box .art-video-player > .art-mask, .pl-video-box .art-video-player > .art-poster {}.pl-video-box .art-video-player video {}.pl-video-box .art-video-player > .art-bottom {}.pl-video-box .art-layer-danmuku-emitter {}
}

@media screen and (max-width: 480px) {.pl-video-box {}.pl-video-box .art-video-player > .art-bottom {}
}

/* ===== lj_player_pad_less: 顶部黑边降到 35px ===== 上一版上下各 70px，整体偏高。 本版把【顶部黑边 70 → 35px】，底部控制条区维持 70px 不动 —— 因为底部那 70px 是控制条的实际需要： 进度条区 约 20px + 按钮行 50px（按钮 40px + 上下留白） 再压就会让按钮放不下（此前压到 84px 时出现的「显示不全」就是这样）。 调整后： · 容器高度减少 35px · 画面区仍是严格 16:9，垂直位置略偏上但在容器内居中 · 上下黑边比例约 1:2，视觉重心落在画面上，不再「上下都是大片黑」 小屏：顶部 64 → 32px。 */ .pl-video-box {
    aspect-ratio: 16 / 9 !important;
    box-sizing: content-box !important;
    padding-top: 35px !important;
    /* ★ 70 → 35 */ padding-bottom: 70px !important;
    /* 控制条区，保持不变 */ height: auto !important;
    max-height: none !important;
    background: #000 !important;
    position: relative !important;
    overflow: hidden !important;
}/* 画面层：上移 35px，高度扣掉「35 + 70 = 105px」 */ .pl-video-box .art-video-player > .art-video, .pl-video-box .art-video-player > .art-layers, .pl-video-box .art-video-player > .art-loading, .pl-video-box .art-video-player > .art-mask, .pl-video-box .art-video-player > .art-poster {
    top: 35px !important;
    bottom: auto !important;
    height: calc(100% - 105px) !important;
    overflow: hidden !important;
}.pl-video-box .art-video-player video {
    top: 35px !important;
    height: calc(100% - 105px) !important;
    object-fit: contain !important;
}/* 控制条：容器底部 70px */ .pl-video-box .art-video-player > .art-bottom {
    height: 70px !important;
    bottom: 0 !important;
    top: auto !important;
    z-index: 20 !important;
    overflow: visible !important;
}.pl-video-box .art-layer-danmuku-emitter {
    bottom: 50px !important;
    z-index: 19 !important;
}

/* ---------- ≤768px：顶部 32px ---------- */
@media screen and (max-width: 768px) {.pl-video-box {
    padding-top: 32px !important;
    padding-bottom: 64px !important;
}.pl-video-box .art-video-player > .art-video, .pl-video-box .art-video-player > .art-layers, .pl-video-box .art-video-player > .art-loading, .pl-video-box .art-video-player > .art-mask, .pl-video-box .art-video-player > .art-poster {
    top: 32px !important;
    height: calc(100% - 96px) !important;
}.pl-video-box .art-video-player video {
    top: 32px !important;
    height: calc(100% - 96px) !important;
}.pl-video-box .art-video-player > .art-bottom {
    height: 64px !important;
    bottom: 0 !important;
}.pl-video-box .art-layer-danmuku-emitter {
    bottom: 44px !important;
}
}

@media screen and (max-width: 480px) {.pl-video-box {
    padding-top: 32px !important;
    padding-bottom: 64px !important;
}.pl-video-box .art-video-player > .art-bottom {
    height: 64px !important;
    bottom: 0 !important;
}
}

/* ===== lj_foot_balance: 页脚上下间距调匀 =====
   问题：页脚结构为
             <p class="tips">提示文字</p>
             <nav class="link">友情链接（视觉隐藏，1px）</nav>
         .tips 带有 margin-bottom: 8px，本是为下方链接留的间距；
         但链接被无障碍隐藏后那 8px 成了纯空白，于是
             上方 = padding-top 10px
             下方 = tips 的 8px + padding-bottom 10px = 18px
         上下相差 8px，看起来「错位」。

   处理：① 去掉 .tips 的下外边距（下方已无可见内容）
         ② 页脚上下内边距统一为 16px
   范围：仅页脚，不影响其它区域。 */

.movie-foot {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
}

.movie-foot .tips {
    margin: 0 auto !important;      /* ★ 原为 0 auto 8px */
}

/* 隐藏的链接层不占位（保持原样，明确声明避免继承意外） */
.movie-foot .link {
    margin: 0 !important;
}

/* ---------- 各断点保持对称 ---------- */
@media screen and (max-width: 1024px) {
    .movie-foot {
        padding-top: 16px !important;
        padding-bottom: 16px !important;
    }
}

@media screen and (max-width: 768px) {
    .movie-foot {
        padding-top: 14px !important;
        padding-bottom: 14px !important;
    }
    .movie-foot .tips {
        margin: 0 auto !important;
    }
}

@media screen and (max-width: 480px) {
    .movie-foot {
        padding-top: 12px !important;
        padding-bottom: 12px !important;
    }
    .movie-foot .tips {
        margin: 0 auto !important;
    }
}

/* ===== lj_name_gap_tight: 收紧海报与片名的间距 =====
   现状：多个历史块都把片名的 margin-top 设为 10px，
         叠加海报容器自身的下留白后，视觉间距偏大（截图中红框区域）。
   处理：片名上外边距 10px → 5px，并清掉可能叠加的其它间距来源，
         让「海报 → 片名」成为一个紧凑的整体。
   范围：首页 / 分类列表 / 搜索 / 排行榜等所有海报卡片，桌面与移动端一致。
   ★ 只动片名的上下间距，不改字号、颜色、海报尺寸。 */

/* ---------- 片名：统一收紧 ---------- */
.fl-name,
.ct-name,
.fl-duo-main .fl-name,
.fl-poster-grid--duo .fl-name,
.fl-poster-grid .fl-name,
.ct-poster-grid .ct-name {
    margin-top: 5px !important;      /* ★ 原 10px */
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1.45 !important;
}

/* ---------- 海报容器：清掉可能的下留白 ---------- */
.fl-cover,
.ct-cover,
.fl-poster,
.ct-poster {
    margin-bottom: 0 !important;
}

/* ---------- 列表项：去掉下内边距的额外叠加 ---------- */
.fl-item,
.ct-item,
.fl-poster-grid > li,
.ct-poster-grid > li {
    padding-bottom: 0 !important;
}

/* ---------- 列表项的上下间距交给网格自身控制 ---------- */
.fl-poster-grid,
.ct-poster-grid {
    row-gap: 16px !important;
}

/* ---------- 各断点 ---------- */
@media screen and (max-width: 1024px) {
    .fl-name, .ct-name {
        margin-top: 5px !important;
    }
    .fl-poster-grid, .ct-poster-grid {
        row-gap: 15px !important;
    }
}

@media screen and (max-width: 768px) {
    .fl-name, .ct-name {
        margin-top: 4px !important;
    }
    .fl-poster-grid, .ct-poster-grid {
        row-gap: 14px !important;
    }
}

@media screen and (max-width: 480px) {
    .fl-name, .ct-name {
        margin-top: 4px !important;
    }
    .fl-poster-grid, .ct-poster-grid {
        row-gap: 12px !important;
    }
}
/* ===== lj_title_top_unify: 左右栏目"标题距顶部"统一（2026-10-13）=====
   问题：左侧「最新电视剧」与右侧「周排行」距卡片顶部的距离不一致 ——
     左侧 .fl-section-head 是 28px 行盒 + 内部 h2 垂直居中（文字顶 ≈20+4.6 = 24.6px）
     右侧 .fl-rank-head 内 .fl-rank-tabs 是 align-items:flex-end + 标签 padding-bottom:8px
        （文字顶 ≈20px，被底对齐+下留白往上顶）
   做法：把两侧标题组件的自身 margin/padding 归零，间距只由容器的 padding-top 决定，
        这样两侧文字顶部严格同高。
   数值：桌面 20px / ≤1024 20px / ≤768 18px / ≤480 16px（与 lj_section_pad20 的断点一致）
   要整体调，只改下面各段里的 padding-top 一个数值即可。
   ------------------------------------------------------------------ */
.fl-duo-main, .fl-duo-side {
    padding-top: 20px !important;
}
/* 左侧：标题头与标题不贡献额外顶部间距 */
.fl-duo-main .fl-section-head,
.fl-duo-main .fl-section-head .fl-title {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
/* 左侧标题行盒：去掉固定的 28px，改由内容高度决定，避免垂直居中造成偏移 */
.fl-duo-main .fl-section-head {
    height: auto !important;
    min-height: 28px;
}
/* 右侧：标题头不留上间距；标签条贴顶，下划线留白由标签自身 padding-bottom 承担 */
.fl-duo-side .fl-rank-head,
.fl-duo-side .fl-rank-tabs {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.fl-duo-side .fl-rank-head {
    height: auto !important;
    min-height: 28px;
}
/* 右侧标签：顶对齐，文字不再被底对齐上顶；下划线仍保留 8px 空间 */
.fl-duo-side .fl-rank-tabs {
    align-items: flex-start !important;
}
.fl-duo-side .fl-rank-tabs .fl-rank-tab {
    padding-top: 0 !important;
    line-height: 1.25 !important;
}
@media screen and (max-width: 1024px) {
    .fl-duo-main, .fl-duo-side { padding-top: 20px !important; }
}
@media screen and (max-width: 768px) {
    .fl-duo-main, .fl-duo-side { padding-top: 18px !important; }
}
@media screen and (max-width: 480px) {
    .fl-duo-main, .fl-duo-side { padding-top: 16px !important; }
}
/* ===== lj_watched_distinct: LJ-WATCHED-DISTINCT separate "watched" from "now playing" (2026-10-30) =====
   Problem: .history-played (watched episodes) and .active (now playing) both render
   as a solid orange gradient, so after auto-next playback two identical orange
   buttons appear and the watched style looks "duplicated".
   Fix: watched = light orange background + orange border/text; active stays solid. */
.channel-set li.history-played:not(.active) > a,
.pl-content .channel-set li.history-played:not(.active) > a {
  background: #fff8f5 !important;
  border: 1px solid rgba(255, 107, 53, .38) !important;
  color: var(--c-primary, #ff6b35) !important;
  font-weight: 600 !important;
  box-shadow: none !important;
  transform: none !important;
}
.channel-set li.history-played:not(.active) > a:hover,
.pl-content .channel-set li.history-played:not(.active) > a:hover {
  background: #fff2ea !important;
  border-color: rgba(255, 107, 53, .6) !important;
  color: var(--c-primary, #ff6b35) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 3px 10px rgba(255, 107, 53, .13) !important;
}
.channel-set li.history-played.active > a,
.pl-content .channel-set li.history-played.active > a {
  background: linear-gradient(135deg, var(--c-primary-2, #ff9a3d) 0%, var(--c-primary, #ff6b35) 100%) !important;
  border-color: transparent !important;
  color: #fff !important;
}
@media screen and (max-width: 480px) {
  .channel-set li.history-played:not(.active) > a:hover,
  .pl-content .channel-set li.history-played:not(.active) > a:hover {
    transform: none !important;
  }
}