/* 午夜极光：在基础布局和页面样式之后加载，只覆盖颜色与视觉状态 */
:root {
	--aurora-bg: #0B1026;
	--aurora-panel: #151E3C;
	--aurora-raised: #1D294B;
	--aurora-soft: #2A3860;
	--aurora-text: #F4F3FF;
	--aurora-muted: #BFC8E5;
	--aurora-border: #8493BC;
	--aurora-line: #3D4D79;
	--aurora-accent: #C4B5FD;
	--aurora-accent-text: #DED4FF;
	--aurora-hover: #D8CCFF;
	--aurora-pressed: #AC96F2;
	--aurora-on-accent: #16112F;
	--aurora-tint: #30264F;
	--aurora-player-accent: #C4B5FD;
	--aurora-error: #FFADBF;
	--tales-red: var(--aurora-accent);
	--tales-red-dark: var(--aurora-hover);
	--tales-text: var(--aurora-text);
	--tales-muted: var(--aurora-muted);
	--tales-line: var(--aurora-line);
	--tv-bg: var(--aurora-bg);
	--tv-ink: var(--aurora-text);
	--tv-muted: var(--aurora-muted);
	--tv-border: var(--aurora-line);
	--tv-purple: var(--aurora-accent);
	--tv-pink: var(--aurora-accent);
	color-scheme: dark;
}

/* 页面、导航与海报 */
:root body,
:root .tales-shell,
:root .tales-shell .tales-header,
:root .tales-shell .tales-legal-heading,
:root .tales-shell .tales-bottom-nav {
	background: var(--aurora-bg);
	color: var(--aurora-text);
}
:root .tales-shell .tales-logo,
:root .tales-shell .tales-header-actions,
:root .tales-shell .tales-content :is(h1, h2, h3),
:root .tales-shell .tales-poster-card h3 {
	color: var(--aurora-text);
}
:root .tales-shell .tales-header-search,
:root .tales-shell .tales-search-form,
:root .tales-shell .tales-mobile-catalog-search,
:root .tales-shell .tales-mobile-menu,
:root .tales-shell .tales-poster-frame,
:root .tales-shell .tv-detail-art {
	background: var(--aurora-raised);
	color: var(--aurora-muted);
}
:root .tales-shell :is(.tales-header-search, .tales-search-form, .tales-mobile-catalog-search) :is(input, button) {
	color: var(--aurora-text);
}
:root .tales-shell :is(.tales-header-search, .tales-search-form, .tales-mobile-catalog-search,
.tales-diamond-input, .tales-series-favorite) {
	box-shadow: inset 0 0 0 1px var(--aurora-border);
}
:root .tales-shell .tales-header-search:focus-within,
:root .tales-shell .tales-search-form:focus-within,
:root .tales-shell .tales-mobile-catalog-search:focus-within {
	box-shadow: 0 0 0 2px var(--aurora-accent);
}
:root .tales-shell .tales-mobile-nav,
:root .tales-shell .tales-account-panel,
:root .tales-shell .tales-download-panel {
	border-color: var(--aurora-line);
	background: var(--aurora-panel);
	color: var(--aurora-text);
	box-shadow: 0 12px 36px #0009;
}
:root .tales-shell .tales-mobile-nav a,
:root .tales-shell .tales-download-link,
:root .tales-shell .tales-header-actions .tales-download-link:hover {
	color: var(--aurora-text);
}
:root .tales-shell .tales-download-link:hover,
:root .tales-shell .tales-mobile-nav a:hover {
	background: var(--aurora-raised);
}
:root .tales-shell .tales-topic-strip a,
:root .tales-shell .tv-filter {
	border-color: var(--aurora-border);
	background: var(--aurora-soft);
	color: var(--aurora-text);
}
:root .tales-shell .tales-topic-strip a:is(.active, :hover),
:root .tales-shell .tv-filter.active {
	border-color: var(--aurora-accent);
	background: var(--aurora-accent);
	color: var(--aurora-on-accent);
}
:root .tales-shell .tales-mobile-topics a,
:root .tales-shell .tales-mobile-load-more,
:root .tales-shell .tales-poster-card p,
:root .tales-shell .tales-artwork-missing {
	color: var(--aurora-muted);
}
:root .tales-shell .tales-mobile-topics a.active,
:root .tales-shell .tales-bottom-nav a.active {
	color: var(--aurora-accent-text);
}
:root .tales-shell .tales-bottom-nav a.active {
	background: var(--aurora-tint);
}
:root .tales-shell .tales-footer {
	border-color: var(--aurora-line);
	background: var(--aurora-panel);
	color: var(--aurora-muted);
}
:root .tales-shell .tales-footer :is(h4, a),
:root .tales-shell .tales-footer-right {
	color: var(--aurora-text);
}

/* 通用卡片、表单和文档 */
:root .tales-shell :is(.tales-recovery-page, .tv-auth-card, .tv-plan-card, .tv-episode, .tv-progress-card, .tv-series-detail,
.tales-profile-card, .tales-profile-edit-card, .tales-profile-links, .tales-profile-purchase-panel,
.tales-profile-record, .tales-purchase-card, .tales-purchase-custom, .tales-policy-text, .tales-login-dialog) {
	border-color: var(--aurora-line);
	background: var(--aurora-panel);
	color: var(--aurora-text);
	box-shadow: none;
}
:root .tales-shell :is(.tv-detail-copy p, .tales-policy-text p, .tales-policy-text ul, .tv-plan-card p,
.tales-account-vip span, .tales-hero-copy p, .tales-profile-links small, .tales-purchase-terms,
.tales-purchase-terms a, .tv-terms, .tv-terms a, .tales-register-hint, .tales-register-login,
.tales-recovery-intro, .tales-recovery-login, .tales-diamond-placeholder, .tv-muted,
.tv-empty-page p, .tv-order-empty p, .tv-episode small, .tv-plan-card > strong small) {
	color: var(--aurora-muted);
}
:root .tales-shell .tv-input,
:root .tales-shell .tv-login-reference-card .tv-input,
:root .tales-shell .tales-recovery-field > input,
:root .tales-shell .tales-recovery-input,
:root .tales-shell .tales-diamond-input {
	border-color: var(--aurora-border);
	background: var(--aurora-raised);
	color: var(--aurora-text);
}
:root .tales-shell :is(input, textarea)::placeholder {
	color: var(--aurora-muted);
	opacity: 1;
}
:root .tales-shell .tv-input:focus,
:root .tales-shell .tales-recovery-field > input:focus,
:root .tales-shell .tales-recovery-input:focus-within {
	border-color: var(--aurora-accent);
	box-shadow: 0 0 0 3px #C4B5FD33;
}
:root .tales-shell :is(.tv-login-reference-card label:not(.tv-terms), .tv-auth-card label,
.tales-profile-edit label, .tv-login-close, .tales-recovery-input input, .tales-diamond-input input,
.tales-diamond-input output, .tales-diamond-custom > label, .tales-diamond-bag h3) {
	color: var(--aurora-text);
}
:root .tales-shell :is(.tv-button-ghost, .tales-mobile-load-more button, .tales-membership-heading button,
.tales-recharge-heading button, .tales-membership-activate, .tales-recovery-back, .tales-recovery-eye) {
	border-color: var(--aurora-border);
	background: var(--aurora-raised);
	color: var(--aurora-text);
}
:root .tales-shell :is(.tv-button-register, .tv-code-input button, .tales-comment-signin,
.tales-signin-notice, .tales-detail-tags a, .tales-profile-badges span, .tv-empty-icon, .tv-plan-popular) {
	background: var(--aurora-tint);
	color: var(--aurora-accent-text);
}
:root .tales-shell :is(.tv-auth-links, .tales-register-code button, .tales-recovery-code,
.tales-register-login > a, .tales-recovery-login > a, .tales-membership-price, .tales-membership-benefits i) {
	color: var(--aurora-accent-text);
}
:root .tales-shell :is(.tv-terms input, .tales-purchase-terms input) {
	border-color: var(--aurora-border);
	background: var(--aurora-raised);
	accent-color: var(--aurora-accent);
}
:root .tales-shell :is(.tv-terms input, .tales-purchase-terms input):checked {
	border-color: var(--aurora-accent);
	background: var(--aurora-accent);
	box-shadow: inset 0 0 0 4px var(--aurora-raised);
}
:root .tales-shell :is(.validation-message, .tales-register-message, .tales-recovery-message, .tales-diamond-validation) {
	color: var(--aurora-error);
}
:root .tales-shell .tv-input.invalid,
:root .tales-shell .tales-recovery-field > input.invalid,
:root .tales-shell .tales-recovery-input:has(input.invalid) {
	border-color: var(--aurora-error);
}
:root .tales-shell .tv-auth-feedback {
	border-color: #FFADBF;
	background: #40243F;
	color: var(--aurora-error);
}

:root .tales-shell .tales-recovery-field > label {
	color: var(--aurora-text);
}
:root .tales-shell .tales-player-select option:checked {
	background: var(--aurora-accent);
	color: var(--aurora-on-accent);
}
:root .tales-shell .tales-interaction-rail button.is-favorite {
	color: var(--aurora-accent-text);
}

/* 主题强调色实底必须使用深色文字，包括悬停与播放区域内的操作 */
:root .tales-shell :is(.tv-button-primary, .tales-play-button, .tales-hero-play, .tales-account-login,
.tales-account-vip button, .tales-profile-button, .tales-account-avatar, .tv-profile-avatar,
.tales-settings-save, .tales-diamond-buy, .tales-diamond-bonus, .tales-recovery-submit,
.tales-mobile-account-recharge, .tales-mobile-account-filter, .tales-mobile-vip-buy,
.tales-player-error button, .tales-comment-panel form button) {
	border-color: var(--aurora-accent);
	background: var(--aurora-accent);
	color: var(--aurora-on-accent);
	box-shadow: none;
}
:root .tales-shell .tales-profile-button {
	color: var(--aurora-on-accent) !important;
}
:root .tales-shell :is(.tv-button-primary, .tales-play-button, .tales-hero-play, .tales-account-login,
.tales-account-vip button, .tales-settings-save, .tales-diamond-buy, .tales-recovery-submit,
.tales-mobile-account-recharge, .tales-mobile-vip-buy, .tales-comment-panel form button):hover:enabled,
:root .tales-shell a:is(.tv-button-primary, .tales-play-button, .tales-hero-play):hover {
	background: var(--aurora-hover);
	color: var(--aurora-on-accent);
}
:root .tales-shell :is(.tv-button-primary, .tales-play-button, .tales-settings-save,
.tales-diamond-buy, .tales-recovery-submit, .tales-mobile-vip-buy):active:enabled {
	background: var(--aurora-pressed);
	color: var(--aurora-on-accent);
}

/* 账户与会员：深灰表面、主题强调色选中态 */
:root .tales-shell :is(.tales-profile-balance, .tales-profile-field, .tales-profile-field input,
.tales-profile-links a, .tales-mobile-account-vip strong) {
	color: var(--aurora-text);
}
:root .tales-shell :is(.tales-profile-field, .tales-profile-field input, .tales-avatar-upload) {
	border-color: var(--aurora-border);
	background: var(--aurora-raised);
	color: var(--aurora-text);
}
:root .tales-shell :is(.tales-profile-field button, .tales-profile-logout, .tales-membership-daily,
.tales-diamond-price, .tales-diamond-card, .tales-settings-list) {
	background: var(--aurora-soft);
	color: var(--aurora-text);
}
:root .tales-shell :is(.tales-profile-vip, .tales-membership-card, .tales-diamond-bag,
.tales-mobile-account-vip, .tales-recharge-panel, .tales-membership-panel) {
	border-color: var(--aurora-line);
	background: linear-gradient(135deg, var(--aurora-tint), var(--aurora-panel));
	color: var(--aurora-text);
}
:root .tales-shell .tales-profile-links a {
	border-color: var(--aurora-line);
}
:root .tales-shell .tales-profile-links a:hover {
	background: var(--aurora-tint);
	color: var(--aurora-accent-text);
}
:root .tales-shell :is(.tales-membership-benefits li, .tales-membership-daily,
.tales-mobile-account-identity p, .tales-mobile-account-download, .tales-mobile-account-vip small,
.tales-mobile-account-library .tales-poster-card p, .tales-settings-list small,
.tales-settings-list .fa-chevron-right, .tales-settings-message) {
	color: var(--aurora-muted);
}
:root .tales-shell :is(.tales-settings-page, .tales-legal-heading),
:root .tales-shell:has(.tales-settings-page),
:root .tales-shell:has(.tales-legal-heading),
:root .tales-shell:has(.tales-recovery-standalone) {
	background: var(--aurora-bg);
}
:root .tales-shell :is(.tales-settings-account, .tales-settings-password) {
	background: var(--aurora-panel);
}
:root .tales-shell .tales-settings-password-input {
	border-color: var(--aurora-border);
}
:root .tales-shell .tales-settings-nickname input:focus-visible {
	box-shadow: 0 1px var(--aurora-accent);
}
:root .tales-shell .tales-mobile-account-summary {
	background: radial-gradient(ellipse at 15% 5%, var(--aurora-tint), transparent 72%), var(--aurora-bg);
}
:root .tales-shell .tales-mobile-account-vip > i {
	color: var(--aurora-accent-text);
	filter: none;
}
:root .tales-shell .tales-mobile-account-vip > a {
	border-color: var(--aurora-border);
	background: var(--aurora-raised);
	color: var(--aurora-text);
}
:root .tales-shell .tales-mobile-account-tabs button {
	color: var(--aurora-muted);
}
:root .tales-shell .tales-mobile-account-tabs button[aria-selected="true"] {
	color: var(--aurora-accent-text);
}
:root .tales-shell .tales-mobile-account-tabs button[aria-selected="true"]::after {
	background: var(--aurora-accent);
}

/* 播放和剧集详情保留黑色视频舞台与白色叠加控件 */
:root .tales-shell .tales-artplayer .art-video-player {
	/* 覆盖播放器内联默认色，统一进度、拖动圆点和音量条的主题色 */
	--art-theme: var(--aurora-player-accent) !important;
}
:root .tales-shell .tales-series-page {
	--series-accent: var(--aurora-accent);
}
:root .tales-shell :is(.tales-series-info, .tales-series-hero, .tales-series-synopsis button,
.tales-series-page, .tales-comment-panel, .tales-comment-panel > footer) {
	border-color: var(--aurora-line);
	background: var(--aurora-panel);
	color: var(--aurora-text);
}
:root .tales-shell :is(.tales-series-count, .tales-series-synopsis, .tales-series-empty,
.tales-series-ranges button, .tales-comment p, .tales-comment time, .tales-comments-empty,
.tales-comment-panel header span, .tales-comment-panel footer small, .tales-watch-info > p,
.tales-watch-info > label) {
	color: var(--aurora-muted);
}
:root .tales-shell :is(.tales-series-tags a, .tales-series-tags > span, .tales-comment-avatar) {
	background: var(--aurora-tint);
	color: var(--aurora-accent-text);
}
:root .tales-shell :is(.tales-series-poster, .tales-series-episode-list a,
.tales-series-ranges button.is-active, .tales-load-comments, .tales-comments-empty > i,
.tales-comment-panel form, .tales-comment-panel header button, .tales-series-favorite) {
	border-color: var(--aurora-border);
	background: var(--aurora-soft);
	color: var(--aurora-text);
}
:root .tales-shell :is(.tales-series-episode-list a.is-active, .tales-series-episode-list i) {
	background: var(--aurora-accent);
	color: var(--aurora-on-accent);
}
:root .tales-shell .tales-series-ranges button.is-active,
:root .tales-shell .tales-interaction-rail button.is-liked,
:root .tales-shell .tales-quality-option[aria-checked="true"] {
	color: var(--aurora-accent-text);
}
:root .tales-shell .tales-quality-option[aria-checked="true"] {
	background: var(--aurora-tint);
}
:root .tales-shell .tales-comment-panel :is(h2, strong, textarea) {
	color: var(--aurora-text);
}
:root .tales-shell .tales-comment-notice {
	color: var(--aurora-error);
}
:root .tales-shell .tales-series-return,
:root .tales-shell .tales-series-mobile-actions.is-empty .tales-series-return {
	background: var(--aurora-accent);
	color: var(--aurora-on-accent);
}
:root .tales-shell .tales-series-mobile-actions {
	background: var(--aurora-panel);
}
:root .tales-shell .tales-series-synopsis:has(button):not(.is-expanded) button {
	background: linear-gradient(90deg, #151E3C00, var(--aurora-panel) 12%);
}
:root .tales-shell .tales-series-backdrop::after {
	background: linear-gradient(#151E3CB3, #151E3CD9 55%, #151E3CF5);
}
:root .tales-shell .tales-series-feedback {
	border-color: var(--aurora-border);
	background: #151E3CF5;
	color: var(--aurora-text);
}
:root .tales-shell :is(.tales-series-ranges, .tales-series-recommendations, .tales-comment-panel > header) {
	border-color: var(--aurora-line);
}
:root .tales-shell .tales-series-section-heading > span {
	color: var(--aurora-muted);
}
:root .tales-shell .tales-series-favorite[aria-pressed="true"] i {
	color: var(--aurora-accent-text);
}
:root .tales-shell .tales-diamond-card.selected {
	box-shadow: 0 0 0 2px var(--aurora-accent);
}
:root .tales-shell .tales-diamond-card:hover {
	box-shadow: 0 0 0 1px var(--aurora-accent), 0 3px 12px #0006;
}

/* 付款、结算、订单和独立头像弹层可位于布局容器之外 */
:root .tv-payment-dialog {
	--payment-background: var(--aurora-panel);
	--payment-text: var(--aurora-text);
	--payment-muted: var(--aurora-muted);
	--payment-border: var(--aurora-border);
	--payment-soft: var(--aurora-raised);
	--payment-summary: var(--aurora-tint);
	--payment-accent: var(--aurora-accent);
	--payment-accent-hover: var(--aurora-hover);
	--payment-feedback: #40243F;
	--payment-feedback-text: var(--aurora-error);
	--payment-success: #84E6C7;
	color-scheme: dark;
}
:root .tales-checkout-page {
	--checkout-bg: var(--aurora-panel);
	--checkout-soft: var(--aurora-raised);
	--checkout-text: var(--aurora-text);
	--checkout-muted: var(--aurora-muted);
	--checkout-border: var(--aurora-border);
	--checkout-accent: var(--aurora-accent);
	--checkout-tint: var(--aurora-tint);
	background: var(--aurora-bg);
}
:root .tales-diamond-confirm {
	--diamond-dialog-bg: var(--aurora-panel);
	--diamond-dialog-text: var(--aurora-text);
	--diamond-dialog-muted: var(--aurora-muted);
	--diamond-dialog-border: var(--aurora-border);
	--diamond-dialog-soft: var(--aurora-raised);
	--diamond-dialog-accent: var(--aurora-accent);
	--diamond-dialog-tint: var(--aurora-tint);
}
:root .tv-account-orders {
	--order-bg: var(--aurora-panel);
	--order-soft: var(--aurora-raised);
	--order-border: var(--aurora-border);
	--order-ink: var(--aurora-text);
	--order-muted: var(--aurora-muted);
	--order-accent: var(--aurora-accent);
	--order-tint: var(--aurora-tint);
}
:root .tv-payment-primary,
:root .tv-payment-primary:hover,
:root .tales-shell .tales-checkout-submit,
:root .tales-shell .tales-checkout-submit:hover,
:root .tales-diamond-confirm .swal2-actions .btn-danger,
:root .tv-orders-pagination button.is-current,
:root .tv-orders-notice > :is(a, button) {
	color: var(--aurora-on-accent);
}
:root .tv-payment-summary strong {
	color: var(--aurora-accent-text);
}
:root .tv-order-status.is-paid {
	background: #183B38;
	color: #84E6C7;
}
:root .tv-order-status.is-pending {
	background: #3B3140;
	color: #F3D59A;
}
:root .tv-order-status.is-failed {
	background: #40243F;
	color: #FFADBF;
}
:root .tv-order-status.is-refunded {
	background: #30264F;
	color: #DED4FF;
}
:root .tv-avatar-editor {
	background: var(--aurora-panel);
	color: var(--aurora-text);
}
:root .tv-avatar-editor :is(p, .tv-avatar-feedback) {
	color: var(--aurora-muted);
}
:root .tv-avatar-editor header button,
:root .tv-avatar-editor .tv-button-ghost {
	border-color: var(--aurora-border);
	background: var(--aurora-raised);
	color: var(--aurora-text);
}
:root .tv-avatar-editor .tv-button-primary {
	background: var(--aurora-accent);
	color: var(--aurora-on-accent);
}
:root .tv-avatar-editor .tv-avatar-error {
	color: var(--aurora-error);
}

@media (max-width: 768px) {
	:root .tales-shell[data-mobile-tab="membership"] {
		background: var(--aurora-bg);
	}
	:root .tales-shell[data-mobile-tab="membership"] .tales-profile-purchase-panel {
		background: transparent;
	}
	:root .tales-shell[data-mobile-tab="membership"] .tales-mobile-vip-header::after {
		background: linear-gradient(180deg, #000c, #000a 60%, #000f);
	}
	:root .tales-shell[data-mobile-tab="membership"] .tales-mobile-vip-header h3 {
		color: var(--aurora-accent-text);
	}
	:root .tales-shell[data-mobile-tab="membership"] .tales-mobile-vip-header li i {
		border-color: var(--aurora-accent);
		background: var(--aurora-accent);
		color: var(--aurora-on-accent);
		box-shadow: none;
	}
	:root .tales-shell[data-mobile-tab="membership"] :is(.tales-membership-card, .tales-diamond-card) {
		border-color: var(--aurora-border);
		background: var(--aurora-raised);
		color: var(--aurora-text);
	}
	:root .tales-shell[data-mobile-tab="membership"] .tales-membership-card:has(input:checked),
	:root .tales-shell[data-mobile-tab="membership"] .tales-diamond-card.selected {
		border-color: var(--aurora-accent);
		background: var(--aurora-tint);
		box-shadow: 0 0 0 1px var(--aurora-accent);
	}
	:root .tales-shell[data-mobile-tab="membership"] .tales-mobile-plan-choice {
		color: var(--aurora-text);
	}
	:root .tales-shell[data-mobile-tab="membership"] .tales-mobile-plan-choice input:checked {
		border-color: var(--aurora-accent);
		background: var(--aurora-accent);
		box-shadow: inset 0 0 0 2px var(--aurora-tint);
	}
	:root .tales-shell[data-mobile-tab="membership"] :is(.tales-mobile-plan-price small, .tales-diamond-price, .tales-diamond-input) {
		background: var(--aurora-soft);
		color: var(--aurora-text);
	}
	:root .tales-shell[data-mobile-tab="membership"] :is(.tales-diamond-bonus, .tales-mobile-vip-buy) {
		background: var(--aurora-accent);
		color: var(--aurora-on-accent);
	}
	:root .tales-shell[data-mobile-tab="membership"] .tales-mobile-vip-buy:hover:enabled {
		background: var(--aurora-hover);
	}
	:root .tales-shell[data-mobile-tab="membership"] .tales-purchase-terms {
		color: var(--aurora-muted);
	}
}

:root :is(.tales-shell, .tv-payment-dialog, .tv-avatar-editor, .tales-diamond-confirm) :focus-visible {
	outline-color: var(--aurora-accent);
}
:root .tales-shell :is(.tv-button-ghost, .tales-membership-activate, .tales-mobile-load-more button):hover:enabled {
	border-color: var(--aurora-accent);
	background: var(--aurora-tint);
	color: var(--aurora-accent-text);
}

:root .tales-shell :is(.tales-series-episode-list a, .tv-filter):hover {
	box-shadow: 0 0 0 1px var(--aurora-accent);
}
:root .tales-shell .tales-mobile-plan-choice input {
	border-color: var(--aurora-border);
}

:root .tales-shell :is(.tv-button-primary, .tales-diamond-buy, .tales-mobile-vip-buy,
.tales-membership-activate, .tales-settings-save, .tales-recovery-submit, .tales-checkout-submit):disabled,
:root .tv-payment-primary:disabled {
	border-color: var(--aurora-border);
	background: var(--aurora-soft);
	color: var(--aurora-muted);
	box-shadow: none;
}
:root .tales-shell .tales-checkout-submit:active:enabled,
:root .tv-payment-primary:active:enabled {
	background: var(--aurora-pressed);
	color: var(--aurora-on-accent);
}

/* 视频画面较亮时，控件区域仍需保留足够深的衬底 */
:root .tales-shell .tales-cinema .tales-artplayer .art-video-player .art-bottom {
	background: #000c;
	text-shadow: 0 1px 3px #000;
}
:root .tales-shell .tales-player-heading {
	background: linear-gradient(#000d, #0009);
}
:root .tales-shell .tales-interaction-rail button {
	border-radius: 24px;
	background: #000b;
}

/* 深色轨道避免缓冲层和主题强调色进度混淆，不受视频画面亮度影响 */
:root .tales-shell .tales-artplayer .art-video-player :is(.art-control-progress-inner, .art-volume-slider) {
	background: var(--aurora-raised);
}
:root .tales-shell .tales-artplayer .art-video-player :is(.art-progress-loaded, .art-progress-hover) {
	background: var(--aurora-soft);
}

/* 小号链接与选项文字使用浅主题强调色，实底主操作仍保留深色文字 */
:root .tv-payment-method-option:has(input:checked),
:root .tv-payment-history,
:root .tales-shell :is(.tales-checkout-episode, .tales-checkout-empty a),
:root .tales-shell :is(.tales-checkout-heading > a, .tales-checkout-return):hover,
:root .tv-orders-eyebrow,
:root .tv-orders-pagination button:hover:not(:disabled):not(.is-current),
:root .tv-orders-refresh:hover:not(:disabled) {
	color: var(--aurora-accent-text);
}
:root .tales-shell :is(.tv-button-primary, .tales-play-button, .tales-hero-play, .tales-account-login,
.tales-account-vip button, .tales-settings-save, .tales-diamond-buy, .tales-recovery-submit,
.tales-mobile-account-recharge, .tales-mobile-vip-buy, .tales-comment-panel form button):active:enabled,
:root .tales-shell a:is(.tv-button-primary, .tales-play-button, .tales-hero-play):active,
:root .tv-avatar-editor .tv-button-primary:active:enabled,
:root .tales-diamond-confirm .swal2-actions .btn-danger:active:enabled {
	background: var(--aurora-pressed);
	color: var(--aurora-on-accent);
}

/* 独立设计语言：形状、表面、文字与状态，不改变布局和入口 */
:root .tales-shell {
	--design-radius: 24px;
	--design-shadow: 0 16px 44px #03061566, inset 0 1px 0 #ffffff18;
	--design-heading: "Segoe UI", "Microsoft YaHei", sans-serif;
}
:root .tales-shell :is(.tales-section-title h2, .tales-series-info h1, .tales-membership-heading h1,
.tales-recharge-heading h1, .tales-policy-text h1, .tales-policy-text h2, .tv-login-reference-card h1) {
	font-family: var(--design-heading);
	letter-spacing: .015em;
}
:root .tales-shell :is(.tales-header, .tales-bottom-nav) {
	border-color: var(--aurora-line);
	box-shadow: 0 1px 0 var(--aurora-line);
}
:root .tales-shell :is(.tales-poster-frame, .tales-series-poster) {
	border-radius: var(--design-radius);
	box-shadow: var(--design-shadow);
}
:root .tales-shell :is(.tv-auth-card, .tv-login-reference-card, .tales-recovery-page, .tales-policy-text,
.tales-profile-card, .tales-profile-edit-card, .tales-profile-record, .tales-purchase-card,
.tales-membership-card, .tales-diamond-card, .tales-settings-list, .tales-settings-account, .tales-settings-password) {
	border-radius: var(--design-radius);
	border: 1px solid var(--aurora-line);
	box-shadow: var(--design-shadow);
}
:root .tales-shell :is(.tales-topic-strip a, .tv-filter, .tales-series-episode-list a,
.tales-header-search, .tales-search-form, .tales-mobile-catalog-search, .tv-input, .tales-recovery-input) {
	border-radius: var(--design-radius);
}
:root .tales-shell :is(.tv-button-primary, .tv-button-ghost, .tales-play-button, .tales-hero-play,
.tales-diamond-buy, .tales-mobile-vip-buy, .tales-settings-save, .tales-recovery-submit, .tales-checkout-submit),
:root :is(.tv-payment-primary, .tv-avatar-editor .tv-button-primary) {
	border-radius: 24px;
	font-weight: 700;
}
:root .tales-shell :is(.tales-bottom-nav a, .tales-mobile-nav a) {
	border-radius: var(--design-radius);
}
:root .tales-shell :is(.tales-bottom-nav a.active, .tales-mobile-nav a.active) {
	box-shadow: inset 0 3px 0 var(--aurora-accent);
}
:root :is(.tv-payment-dialog, .tv-avatar-editor, .tales-diamond-confirm) {
	border-radius: 24px;
	border: 1px solid var(--aurora-line);
	box-shadow: 0 16px 44px #03061566, inset 0 1px 0 #ffffff18;
}
:root .tv-account-orders .tv-order-card {
	border-radius: 24px;
	box-shadow: 0 16px 44px #03061566, inset 0 1px 0 #ffffff18;
}
/* 海报和视频叠加文字始终使用白字，避免浅色主题的正文色进入画面 */
:root .tales-shell .tales-hero-copy h1,
:root .tales-shell .tales-hero-v2 .tales-hero-copy h1 {
	color: #fff;
	font-family: "Segoe UI", "Microsoft YaHei", sans-serif;
}
:root .tales-shell .tales-hero-copy p,
:root .tales-shell .tales-hero-v2 .tales-hero-copy p {
	color: #e9e9ee;
}
:root .tales-shell .tales-player-heading,
:root .tales-shell .tales-player-heading :is(h1, h2, h3, p, span, a),
:root .tales-shell .tales-interaction-rail button:not(.is-liked):not(.is-favorite) {
	color: #fff;
}
:root .tales-shell .tales-artplayer .art-video-player :is(.art-control-progress-inner, .art-volume-slider) {
	background: #202838;
}
:root .tales-shell .tales-artplayer .art-video-player :is(.art-progress-loaded, .art-progress-hover) {
	background: #465065;
}
:root .tales-shell .tales-hero {
	--tales-hero-accent: var(--aurora-player-accent);
}
:root .tales-shell :is(.tales-interaction-rail button.is-liked, .tales-interaction-rail button.is-favorite) {
	color: var(--aurora-player-accent);
}
:root :is(.tales-shell, .tv-payment-dialog, .tv-avatar-editor, .tales-diamond-confirm) :focus-visible {
	outline: 2px solid var(--aurora-accent);
	outline-offset: 3px;
}
:root .tales-shell ::selection {
	background: var(--aurora-accent);
	color: var(--aurora-on-accent);
}

/* 午夜极光：有色背景、柔光面板和圆润轮廓 */
:root .tales-shell {
	background-image: radial-gradient(ellipse at 10% 0%, #42376755, transparent 48%), radial-gradient(ellipse at 95% 65%, #1d64752e, transparent 50%);
}
:root .tales-shell :is(.tales-header, .tales-bottom-nav) {
	background: #111a33f2;
	backdrop-filter: blur(18px);
}
:root .tales-shell :is(.tales-membership-card, .tales-profile-vip, .tales-diamond-bag) {
	background: linear-gradient(135deg, #30264f, #182f43);
	border-color: #8873b8;
}
:root .tales-shell :is(.tales-poster-card:hover .tales-poster-frame, .tales-diamond-card.selected) {
	box-shadow: 0 0 0 2px var(--aurora-accent), 0 8px 32px #9b7cee33;
}
:root .tales-shell .tales-hero {
	border-radius: 24px;
	box-shadow: 0 12px 50px #03061566;
}

/* 补齐独立登录卡片、滚动条与视频菜单的表面 */
:root .tales-shell :is(.tv-login-reference-card, .tales-login-dialog, .tales-policy-text) {
	background: var(--aurora-panel);
	color: var(--aurora-text);
}
:root .tales-shell {
	scrollbar-color: var(--aurora-border) var(--aurora-bg);
}
:root .tales-shell .tales-artplayer .art-video-player,
:root .tales-shell .tales-player-heading {
	color-scheme: dark;
}
:root .tales-shell :is(.tales-quality-option[aria-checked="true"], .tales-interaction-rail button.is-liked, .tales-interaction-rail button.is-favorite) {
	color: var(--aurora-player-accent);
}
:root .tales-shell .tales-quality-option[aria-checked="true"] {
	background: #202838;
}
:root .tales-shell .tales-cinema :focus-visible {
	outline-color: var(--aurora-player-accent);
}
