/* Site-wide Roboto body + readable text hierarchy */

:root {
  --lab-subtle: #dde4ef;
  --lab-muted: #e8edf4;
  --lab-body: #f7f8f8;
  --lab-dim: #d8deea;
  --lab-section-label: rgba(255, 255, 255, 0.92);
  --home-subtle: #dde4ef;
  --home-muted: #e8edf4;
  --home-body: #f7f8f8;
  --home-dim: #d8deea;
  --text-muted: #d8deea;
}

body,
body.lab-page-body,
body.hub-page-body,
body.guides-body,
body.about-body {
  font-family: var(--pt-font-body, 'Roboto', sans-serif);
}

.custom-btn,
#credit-reminder-download-btn,
.custom-modal,
.custom-modal p,
.config-menu-item,
.config-dropdown-menu,
.pt-menu-item,
.ptks-binding,
.ptks-btn,
.modal-hint,
.modal-subcopy,
.emby-dashboard-hint,
.emby-dashboard-meta,
.emby-dashboard-empty,
.emby-list-hint,
.emby-empty,
.plex-dashboard-hint,
.plex-dashboard-meta,
.sonarr-list-hint,
.lab-seo-footer,
.lab-seo-footer__body p,
.po-eb-btn,
.po-eb-toggle-btn,
.po-eb-action-btn,
.po-eb-select,
.po-eb-text,
.po-eb-toggle-pill,
.action-button,
.pl-source-choice,
.pl-source-tvdb-order,
.pickr-app,
.pcr-type,
.whats-new-panel,
.changelog-modal,
.cfgm-box .cfg-modal-count,
.cfgm-box .cfgm-heading small,
.download-modal-hint,
.field-hint,
.sidebar-hint,
.thumb-field-hint,
.ct-inline-status {
  font-family: var(--pt-font-body, 'Roboto', sans-serif);
}

.custom-modal p,
.modal-hint,
.modal-subcopy,
.emby-dashboard-hint,
.emby-dashboard-meta,
.emby-dashboard-empty,
.emby-list-hint,
.emby-empty,
.plex-dashboard-hint,
.plex-dashboard-meta,
.sonarr-list-hint,
#credit-reminder-count,
.download-modal-hint,
.ct-inline-status,
.thumb-field-hint,
.lab-seo-footer,
.lab-seo-footer__body p,
.closing-panel__copy,
.announcement-banner__body,
.changelog-entry__date,
.guided-tour__step-body,
.pt-menu-hint,
.config-menu-item .pt-menu-sub {
  color: var(--lab-muted) !important;
}

.config-menu-item .pt-menu-hint,
.field-hint,
.sidebar-hint {
  color: var(--lab-subtle) !important;
}

.ct-row-label,
.ct-toggle-label {
  color: var(--lab-body);
}

body.thumb-lab-page-body .po-eb-unit .po-eb-label,
body.poster-lab-page-body .po-eb-unit .po-eb-label {
  color: var(--pt-accent-strong);
}

input::placeholder,
textarea::placeholder {
  color: #c4ccde;
  opacity: 1;
}

/* ── Shared chrome (header / footer / homepage) ─────────────────── */

.site-header .nav-link,
.site-header .nav-link > span,
.site-header .labs-switcher .labs-chevron,
.site-header .pt-site-auth-dropdown .pt-menu-item,
.ft-tagline,
.ft-links a,
.ft-meta,
.ov-secondary,
.ov-credits span,
.ov-index a,
.strip-hud,
.strip-status,
.f-row p,
.hero-scene-card p,
.hero-scene-card small {
  color: var(--home-muted);
}

.site-header .labs-menu-label,
.cinematic-site-header .labs-menu-label {
  color: var(--primary, #12cc5a);
}

.site-header .labs-menu small,
.cinematic-site-header .labs-menu small {
  color: var(--lab);
  text-transform: capitalize;
  letter-spacing: 0.02em;
  font-size: 0.64rem;
  font-weight: 500;
}

/* ── Guides / About ─────────────────────────────────────────────── */

body.guides-body,
body.about-body.guides-body {
  --ab-text-soft: #e8edf4;
  --ab-text-mute: #dde4ef;
}

body.guides-body .about-hero-mode-btn,
body.guides-body .about-section-head p:not(.about-kicker):not(.about-section-lead),
body.guides-body .about-guide-tagline,
body.guides-body .about-guide-adjacent-kicker,
body.guides-body .about-guide-adjacent-link,
body.guides-body .about-guide-switcher-btn,
body.guides-body .about-guide-toc-icon,
body.guides-body .about-guide-figure-caption,
body.guides-body .about-guide-shot-placeholder,
body.guides-body .about-guide-shot-placeholder code,
body.guides-body .agr-head,
body.guides-body .agr-count,
body.guides-body .about-guide-scene-meta,
body.guides-body .about-guide-doc-item-body,
body.guides-body .about-guide-doc-caption {
  color: var(--lab-muted) !important;
}

body.guides-body .about-hero-lead,
body.guides-body .about-section-lead,
body.guides-body .about-guide-doc-section-intro,
body.guides-body .about-guide-step-body,
body.guides-body .about-guide-step-side-note,
body.guides-body .about-guide-article--docs .about-guide-tips-list li,
body.guides-body .about-guide-toc-link {
  color: var(--lab-body) !important;
}

body.guides-body .about-guide-doc-bullets li,
body.guides-body .about-guide-step-bullets li,
body.guides-body .about-guide-path-arrow {
  color: var(--lab-subtle) !important;
}

/* ── Media Hub ──────────────────────────────────────────────────── */

body.hub-page-body {
  --home-subtle: #dde4ef;
  --home-muted: #e8edf4;
  --home-body: #f7f8f8;
  --home-dim: #d8deea;
}

body.hub-page-body :is(
  .hub-bulk-bar__tasks-label,
  .hub-filter-group__label,
  .hub-sort__label,
  .hub-type-bar__label,
  .hub-queue-bar__label,
  .hub-progress__label,
  .hub-panel__sub,
  .hub-overview-legend__sublabel,
  .hub-overview-legend__label,
  .hub-overview-mobile__sub,
  .hub-overview-mobile__label,
  .hub-detail-sheet__label,
  .hub-detail-hero__meta,
  .hub-detail-progress:not(.is-complete) .hub-detail-progress__label,
  .hub-detail-task__hint,
  .hub-detail-episode-strip__empty,
  .hub-modal__sub,
  .hub-settings-card__label,
  .hub-quality-rule-row__label,
  .hub-poster-preset-row__label,
  .hub-mark-list__label,
  .hub-mark-row__meta,
  .hub-list-row__meta,
  .hub-list-row__subline,
  .hub-list-chip__count,
  .hub-empty__body,
  .hub-sort-meta-btn,
  .sm-synopsis,
  .sm-adv__sum::after,
  .sm-cell__k,
  .hub-detail-mark.is-todo .hub-detail-mark__state,
  .hub-detail-tcards-card__chevron,
  .hub-detail-tcards-card.is-todo .hub-detail-tcards-card__status,
  .hub-detail-view-btn:not(.is-active),
  .hub-hero__desc,
  .hub-task__hint,
  .hub-card__meta,
  .hub-card__sub,
  .hub-card__count,
  .hub-pagination__meta,
  .hub-breadcrumb,
  .hub-queue-item__meta,
  .hub-filter-chip,
  .hub-toolbar__meta
) {
  color: var(--lab-muted) !important;
}

body.hub-page-body #hub-detail-modal :is(
  .hub-art-src__btn:not(.is-active),
  .hub-art-current__empty,
  .hub-detail-view-btn:not(.is-active)
) {
  color: var(--lab-muted) !important;
}

body.hub-page-body :is(
  .hub-list-chip__mark,
  .hub-list-chip__open
) {
  color: var(--lab-subtle) !important;
}

body.hub-page-body .hub-detail-mark--poster.is-done .hub-detail-mark__state,
body.hub-page-body .hub-detail-mark--thumb.is-done .hub-detail-mark__state,
body.hub-page-body .hub-detail-mark--cards.is-done .hub-detail-mark__state,
body.hub-page-body .hub-detail-mark--square.is-done .hub-detail-mark__state,
body.hub-page-body .hub-detail-tcards-card.is-done .hub-detail-tcards-card__status {
  color: var(--hub-done, #3ee58f) !important;
}

body.hub-page-body .hub-detail-mark--cards.is-partial .hub-detail-mark__state,
body.hub-page-body .hub-detail-tcards-card.is-partial .hub-detail-tcards-card__status {
  color: #d7a84a !important;
}

body.hub-page-body .hub-list-action.is-done .hub-list-action__state {
  color: #12cc5a !important;
}

body.hub-page-body .hub-overview-ring__sub {
  color: var(--hub-theme-accent, var(--ring-accent, #12cc5a)) !important;
}

body.hub-page-body .hub-detail-progress.is-complete .hub-detail-progress__label {
  color: var(--hub-theme-accent, var(--hub-done, #3ee58f)) !important;
}

/* ── Community Presets ────────────────────────────────────────── */

.ptcp-overlay :is(
  .ptcp-hero p,
  .ptcp-browse-lead,
  .ptcp-card-desc,
  .ptcp-card-creator,
  .ptcp-card-type,
  .ptcp-stat-txt,
  .ptcp-auth-banner-desc,
  .ptcp-auth-banner-line,
  .ptcp-detail-text,
  .ptcp-detail-type,
  .ptcp-empty,
  .ptcp-mode-btn:not(.active),
  .ptcp-sort-btn:not(.ptcp-sort-btn--active),
  .ptcp-tab:not(.active),
  .ptcp-info-text,
  .ptcp-publish-note,
  .ptcp-field-hint,
  .ptcp-dialog-sub,
  .ptcp-admin-note
) {
  color: var(--lab-muted) !important;
}

.ptcp-overlay :is(
  .ptcp-card-name,
  .ptcp-detail-title,
  .ptcp-import-stat b
) {
  color: var(--lab-body) !important;
}

/* ── Integration dashboards (Emby / Plex / Sonarr) ──────────────── */

:is(
  .emby-dashboard-fullscreen,
  .plex-dashboard-fullscreen,
  .cl-emby-dashboard-fullscreen,
  .cl-plex-dashboard-fullscreen,
  #sonarr-dashboard
) :is(
  .emby-subtitle,
  .emby-form-header .emby-connection-info,
  .emby-item-count,
  .emby-item-year-inline,
  .emby-list-header,
  .emby-list-year,
  .emby-list-id,
  .emby-list-muted,
  .emby-list-hint,
  .emby-season-label,
  .emby-sort-trigger-label,
  .emby-sort-dir,
  .emby-push-bar-info,
  .emby-seasons-progress,
  .emby-connected-label,
  .emby-connection-error-label,
  .emby-loading,
  .plex-subtitle,
  .plex-list-muted,
  .plex-list-hint,
  .sonarr-subtitle,
  .sonarr-connected-label,
  .sonarr-item-count,
  .sonarr-list-header,
  .sonarr-list-id,
  .sonarr-list-muted,
  .sonarr-list-hint,
  .sonarr-form-header p,
  .sonarr-connection-info
) {
  color: var(--lab-muted) !important;
}

:is(
  .emby-dashboard-fullscreen,
  .plex-dashboard-fullscreen,
  .cl-emby-dashboard-fullscreen,
  .cl-plex-dashboard-fullscreen,
  #sonarr-dashboard
) :is(
  .emby-list-artwork-top,
  .sonarr-list-progress-top
) {
  color: var(--lab-muted) !important;
}

:is(
  .emby-dashboard-fullscreen,
  .plex-dashboard-fullscreen,
  .cl-emby-dashboard-fullscreen,
  .cl-plex-dashboard-fullscreen,
  #sonarr-dashboard
) :is(
  .emby-list-artwork:not(.done):not(.partial) .emby-list-artwork-top strong,
  .sonarr-list-progress:not(.done):not(.partial) .sonarr-list-progress-top strong
) {
  color: var(--lab-body) !important;
}

:is(
  .emby-dashboard-fullscreen,
  .plex-dashboard-fullscreen,
  .cl-emby-dashboard-fullscreen,
  .cl-plex-dashboard-fullscreen,
  #sonarr-dashboard
) :is(
  .emby-filter-tab:not(.active),
  .emby-view-btn:not(.active),
  .emby-size-btn:not(.active),
  .sonarr-filter-tab:not(.active),
  .sonarr-view-btn:not(.active),
  .sonarr-size-btn:not(.active)
) {
  color: var(--lab-muted) !important;
}

:is(
  .emby-dashboard-fullscreen,
  .plex-dashboard-fullscreen,
  .cl-emby-dashboard-fullscreen,
  .cl-plex-dashboard-fullscreen,
  #sonarr-dashboard
) :is(
  .emby-list-name,
  .emby-item-name-text,
  .sonarr-list-name,
  .sonarr-item-name
) {
  color: var(--lab-body) !important;
}

/* ── Feedback page ─────────────────────────────────────────────── */

body:has(.fb-page) :is(
  .fb-page-header p,
  .fb-list-summary,
  .fb-process-step > span:last-child > span:last-child,
  .fb-card-desc,
  .fb-card-meta,
  .fb-auth-notice,
  .fb-admin-notice,
  .fb-modal-text,
  .fb-admin-comment-body,
  .fb-user-reply-body,
  .fb-filter-chip:not(.fb-active),
  .fb-mobile-sort-trigger,
  .fb-vote-btn:not(.fb-voted)
) {
  color: var(--lab-muted) !important;
}

body:has(.fb-page) :is(
  .fb-filter-chip.fb-active,
  .fb-mobile-sort-option.fb-active,
  .fb-status-option.fb-active
) {
  color: #07120b !important;
}

body:has(.fb-page) .fb-board-stat :is(strong, span) {
  color: #0a1210 !important;
}

body:has(.fb-page) :is(
  .fb-process-icon .material-symbols-rounded,
  .fb-primary-action .material-symbols-rounded,
  .fb-submit-btn .material-symbols-rounded
) {
  color: #07120b !important;
  -webkit-text-fill-color: currentColor !important;
}

body:has(.fb-page) :is(
  .fb-admin-comment-stamp,
  .fb-user-reply-stamp,
  .fb-char-count
) {
  color: var(--lab-subtle) !important;
}

/* ── Clerk account profile (custom pages + modal) ───────────────── */

.cl-userProfile-root :is(
  .pt-profile-page-subtitle,
  .pt-integration-connected__detail
),
#pt-auth-root :is(
  .cl-formFieldHintText,
  .cl-headerSubtitle,
  .cl-identityPreviewText,
  .cl-dividerText
) {
  color: var(--lab-muted) !important;
}
