/**
 * Unicast — брендовые цвета (синий + белый/нейтральный) с поддержкой светлой и тёмной темы.
 */

[data-theme="light"] {
    --brand-blue: #2563eb;
    --brand-blue-d: #1e40af;
    --brand-blue-soft: #3b82f6;
    --brand-text: #1e40af;
    --brand-text-soft: #2563eb;
    --brand-text-muted: #64748b;
    --brand-text-on: #ffffff;
    --brand-pill-text: #1d4ed8;
    --brand-pill-active-text: #ffffff;
    --brand-flash-text: #1e293b;
    --brand-link: #2563eb;
    --brand-bg-soft: rgba(59, 130, 246, 0.1);
    --brand-bg-medium: rgba(59, 130, 246, 0.16);
    --brand-bg-strong: rgba(59, 130, 246, 0.22);
    --brand-border: rgba(59, 130, 246, 0.28);
    --brand-muted-bg: rgba(148, 163, 184, 0.12);
    --brand-muted-text: #64748b;
    --green: #2563eb;
    --red: #64748b;
    --orange: #3b82f6;
    --purple: #2563eb;
    --success: #2563eb;
    --warning: #3b82f6;
    --danger: #1e40af;
}

[data-theme="dark"] {
    --brand-blue: #3b82f6;
    --brand-blue-d: #1e40af;
    --brand-blue-soft: #60a5fa;
    --brand-text: #93c5fd;
    --brand-text-soft: #60a5fa;
    --brand-text-muted: #94a3b8;
    --brand-text-on: #ffffff;
    --brand-pill-text: #93c5fd;
    --brand-pill-active-text: #ffffff;
    --brand-flash-text: #e2e8f0;
    --brand-link: #60a5fa;
    --brand-bg-soft: rgba(59, 130, 246, 0.1);
    --brand-bg-medium: rgba(59, 130, 246, 0.16);
    --brand-bg-strong: rgba(59, 130, 246, 0.28);
    --brand-border: rgba(59, 130, 246, 0.28);
    --brand-muted-bg: rgba(148, 163, 184, 0.1);
    --brand-muted-text: #94a3b8;
    --green: #3b82f6;
    --red: #94a3b8;
    --orange: #60a5fa;
    --purple: #3b82f6;
    --success: #3b82f6;
    --warning: #60a5fa;
    --danger: #1e40af;
}

/* ── Кнопки ── */
.btn-flexible,
.btn-success,
.btn-warning,
.btn-danger {
    background: var(--brand-blue) !important;
    color: var(--brand-text-on) !important;
    border: 1px solid var(--brand-border);
}

.btn-flexible:hover,
.btn-success:hover,
.btn-warning:hover,
.btn-danger:hover {
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4) !important;
}

.btn-secondary {
    background: var(--brand-bg-soft);
    color: var(--text-heading);
    border: 1px solid var(--brand-border);
}

.btn-secondary:hover {
    background: var(--brand-bg-medium);
    border-color: rgba(59, 130, 246, 0.4);
}

[data-theme="light"] .btn-danger {
    background: var(--brand-blue) !important;
    color: #fff !important;
}

/* ── Статистика / иконки ── */
.stat-icon.green,
.stat-icon.purple,
.stat-icon.orange,
.stat-icon.blue {
    background: var(--brand-bg-soft) !important;
    color: var(--brand-blue) !important;
}

/* ── Устройства (legacy screen-card) ── */
.screen-status.paired,
.screen-status.unpaired {
    background: var(--brand-bg-soft) !important;
    color: var(--brand-text-soft) !important;
    border: 1px solid var(--brand-border);
}

.status-indicator.online,
.status-indicator.warning,
.status-indicator.offline {
    background: var(--brand-bg-soft) !important;
    color: var(--brand-pill-text) !important;
    border: 1px solid var(--brand-border) !important;
}

.status-indicator.online {
    color: var(--brand-pill-active-text) !important;
    background: var(--brand-bg-strong) !important;
    border-color: rgba(96, 165, 250, 0.45) !important;
}

[data-theme="light"] .status-indicator.online {
    color: var(--brand-text-on) !important;
    background: var(--brand-blue) !important;
}

.status-indicator.offline {
    background: var(--brand-muted-bg) !important;
    color: var(--brand-muted-text) !important;
    border-color: rgba(148, 163, 184, 0.25) !important;
}

/* ── Уведомления ── */
.notification.success,
.notification.error,
.notification.warning,
.notification.info {
    border-left-color: var(--brand-blue) !important;
}

/* ── Склейка плейлиста ── */
.playlist-merge-stat.merge-status-ready,
.playlist-merge-stat.merge-status-pending,
.playlist-merge-stat.merge-status-error {
    color: var(--brand-text-soft) !important;
}

.playlist-merge-banner.merge-status-ready,
.playlist-merge-banner.merge-status-pending,
.playlist-merge-banner.merge-status-error,
.playlist-merge-settings.merge-status-ready,
.playlist-merge-settings.merge-status-pending,
.playlist-merge-settings.merge-status-error {
    border-color: var(--brand-border) !important;
    background: var(--brand-bg-soft) !important;
}

.playlist-merge-settings.merge-status-ready .playlist-merge-status-badge,
.playlist-merge-settings.merge-status-pending .playlist-merge-status-badge,
.playlist-merge-settings.merge-status-error .playlist-merge-status-badge {
    background: var(--brand-bg-medium) !important;
    color: var(--brand-pill-text) !important;
    border-color: var(--brand-border) !important;
}

.playlist-merge-flash--error,
.playlist-merge-flash--ready,
.playlist-merge-flash--success {
    border-color: var(--brand-border) !important;
    background: var(--brand-bg-soft) !important;
    color: var(--brand-flash-text) !important;
}

.playlist-merge-progress-panel,
.screen-merge-status--ready {
    border-color: var(--brand-border) !important;
    background: var(--brand-bg-soft) !important;
}

.playlist-merge-progress-bar {
    background: var(--brand-blue) !important;
}

.playlist-merge-spinner {
    border-color: var(--brand-border) !important;
    border-top-color: var(--brand-blue) !important;
}

/* The playlist editor uses a plain status row; color belongs only to progress. */
#modal-playlist-media #playlist-merge-banner {
    border-color: var(--ui-border) !important;
    background: var(--ui-surface) !important;
}

#modal-playlist-media #playlist-merge-banner .playlist-merge-status-badge {
    border-color: transparent !important;
    background: transparent !important;
    color: var(--text-muted) !important;
}

#modal-playlist-media #playlist-merge-banner .playlist-merge-progress-panel {
    border-color: transparent !important;
    background: transparent !important;
}

#modal-playlist-media #playlist-merge-banner .playlist-merge-flash {
    border-color: transparent !important;
    background: transparent !important;
    color: var(--text-secondary) !important;
}

.playlist-merge-error-inline,
.merge-error-text { color: var(--brand-text-muted) !important; }

/* Filled dot = ready; outlined dot = still being assembled. No green/yellow status panels. */
.playlist-card-status.is-ready,
.playlist-card-status.is-pending {
    border-color: var(--brand-border) !important;
    background: var(--brand-bg-soft) !important;
}

.playlist-card-status.is-ready .playlist-card-status__dot {
    background: var(--brand-blue) !important;
    box-shadow: 0 0 0 4px var(--brand-bg-medium) !important;
}

.playlist-card-status.is-pending .playlist-card-status__dot {
    background: transparent !important;
    border: 2px solid var(--brand-blue-soft) !important;
    box-shadow: 0 0 0 4px var(--brand-bg-medium) !important;
}

#modal-playlist-media .playlist-photo-legacy-note {
    border-color: var(--brand-border) !important;
    background: var(--brand-bg-soft) !important;
    color: var(--brand-flash-text) !important;
}

#modal-playlist-media .playlist-media-save-hint.is-dirty {
    color: var(--brand-text-soft) !important;
}

/* ── Расписания ── */
.schedule-status.active,
.schedule-status.inactive {
    background: var(--brand-bg-soft) !important;
    color: var(--brand-pill-text) !important;
}

.schedule-status-badge.status-running {
    background: var(--brand-blue) !important;
    color: var(--brand-text-on) !important;
}

.schedule-item.schedule-running {
    box-shadow: 0 0 20px rgba(59, 130, 246, 0.2) !important;
}

.schedule-status-badge.status-scheduled,
.schedule-status-badge.status-completed,
.schedule-status-badge.status-pending {
    background: var(--brand-bg-medium) !important;
    color: var(--brand-pill-text) !important;
    border: 1px solid var(--brand-border) !important;
}

.schedule-status-badge.status-disabled {
    background: var(--brand-muted-bg) !important;
    color: var(--brand-muted-text) !important;
    border-color: rgba(148, 163, 184, 0.25) !important;
}

/* ── Баннер тарифа ── */
.plan-expiry-banner {
    background: var(--brand-bg-soft) !important;
    border-bottom-color: var(--brand-border) !important;
    color: var(--text-primary);
}

.plan-expiry-banner-link {
    color: var(--brand-link) !important;
}

/* ── Бейджи «Скоро» (основной контент) ── */
.module-coming-soon-banner__badge,
.module-soon-badge {
    background: var(--brand-blue) !important;
    color: var(--brand-text-on) !important;
}

.module-coming-soon-banner {
    border-color: var(--brand-border) !important;
    background: var(--brand-bg-soft) !important;
}

/* Сайдбар всегда тёмный — бейдж «Скоро» в навигации */
.nav-soon-badge {
    border-color: var(--brand-border) !important;
    background: var(--brand-bg-medium) !important;
    color: var(--brand-text) !important;
}

.nav-item.active .nav-soon-badge {
    border-color: rgba(255, 255, 255, 0.35) !important;
    background: rgba(255, 255, 255, 0.16) !important;
    color: #fff !important;
}

/* ── Главная ── */
.home-kpi-card--blue,
.home-kpi-card--green,
.home-kpi-card--cyan,
.home-kpi-card--purple,
.home-kpi-card--orange,
.home-action-card--blue,
.home-action-card--cyan,
.home-action-card--green,
.home-action-card--orange {
    color: var(--brand-blue) !important;
}

.home-kpi-trend {
    background: var(--brand-bg-soft) !important;
    color: var(--brand-text-soft) !important;
}

.home-health-tile.is-online,
.home-health-tile.is-neutral,
.home-health-tile.is-media,
.home-health-tile.is-waiting {
    color: var(--brand-blue) !important;
}

.home-health-value.is-online,
.home-health-value.is-waiting { color: var(--brand-blue) !important; }
.home-health-value.is-offline { color: var(--brand-text-muted) !important; }

.home-row-icon.is-online,
.home-row-icon.is-offline,
.home-row-icon.is-waiting,
.home-row-icon.is-media,
.home-row-icon.is-neutral,
.home-status-pill.is-online,
.home-status-pill.is-offline,
.home-status-pill.is-waiting,
.home-status-pill.is-neutral {
    background: var(--brand-bg-soft) !important;
    color: var(--brand-pill-text) !important;
    border: 1px solid var(--brand-border);
}

.home-status-pill.is-online,
.home-row-icon.is-online {
    background: var(--brand-bg-strong) !important;
    color: var(--brand-pill-active-text) !important;
}

[data-theme="light"] .home-status-pill.is-online,
[data-theme="light"] .home-row-icon.is-online {
    background: var(--brand-blue) !important;
    color: #fff !important;
}

.home-status-pill.is-offline,
.home-row-icon.is-offline {
    background: var(--brand-muted-bg) !important;
    color: var(--brand-muted-text) !important;
    border-color: rgba(148, 163, 184, 0.22) !important;
}

/* ── Медиа / ошибки ── */
.media-ffmpeg-banner {
    border-color: var(--brand-border) !important;
    background: var(--brand-bg-soft) !important;
    color: var(--brand-flash-text) !important;
}

.media-card--error {
    border-color: var(--brand-border) !important;
}

.upload-staging-row.is-done {
    border-color: var(--brand-border) !important;
}

.upload-staging-row.is-error {
    border-color: rgba(148, 163, 184, 0.35) !important;
    background: var(--brand-muted-bg) !important;
}

.validation-error { color: var(--brand-text-muted) !important; }
.toast-error { border-left-color: var(--brand-blue) !important; }

.status-success { color: var(--brand-text-soft) !important; }
.status-pending { color: var(--brand-pill-text) !important; }
.status-failed { color: var(--brand-text-muted) !important; }

/* ── AI Studio: progress, research and notices ── */
.ai-studio-credits-link,
.ai-product-success,
.ai-product-insight__avoid {
    color: var(--brand-text-soft) !important;
}

.ai-upos-progress,
.ai-upos-research.is-verified,
.ai-upos-research.is-unverified,
.ai-upos-chat__notice {
    border-color: var(--brand-border) !important;
    background: var(--brand-bg-soft) !important;
}

.ai-upos-progress__badge {
    background: var(--brand-bg-medium) !important;
    color: var(--brand-pill-text) !important;
}

.ai-upos-progress__bar i,
.ai-upos-research__icon,
.ai-upos-research.is-unverified .ai-upos-research__icon {
    background: var(--brand-blue) !important;
}

.ai-upos-progress > strong {
    color: var(--brand-text-soft) !important;
}

.badge-active,
.badge-suspended,
.badge-cancelled,
.badge-expired,
.badge-trial,
.badge-admin {
    background: var(--brand-bg-soft, rgba(59, 130, 246, 0.15)) !important;
}

.badge-active,
.badge-trial,
.badge-admin {
    color: var(--brand-text-soft, #60a5fa) !important;
}

.badge-suspended,
.badge-cancelled,
.badge-expired,
.badge-user {
    color: var(--brand-text-muted, #94a3b8) !important;
}

[data-theme="light"] .badge-active,
[data-theme="light"] .badge-trial,
[data-theme="light"] .badge-admin {
    color: #1d4ed8 !important;
}

[data-theme="light"] .badge-suspended,
[data-theme="light"] .badge-cancelled,
[data-theme="light"] .badge-expired,
[data-theme="light"] .badge-user {
    color: #64748b !important;
}

#page-users-billing .data-table td:last-child {
    min-width: 180px;
}

/* ── Flat UI: без градиентов (как лендинг / login) ── */
.nav-item.active,
.nav-sub-item.active {
    background: var(--brand-blue) !important;
}

.btn-primary,
.btn-success,
.btn-warning,
.btn-danger,
.btn-flexible,
[data-theme="light"] .btn-danger,
[data-theme="dark"] .btn-primary,
[data-theme="dark"] .btn-success,
[data-theme="dark"] .btn-warning,
[data-theme="dark"] .btn-danger {
    background: var(--brand-blue) !important;
}

.btn-primary:hover,
.btn-success:hover,
.btn-warning:hover,
.btn-danger:hover,
.btn-flexible:hover {
    background: var(--brand-blue-d) !important;
}

.progress-bar-fill,
.upload-progress-fill {
    background: var(--brand-blue) !important;
}

.balance-card {
    background: var(--brand-blue) !important;
}

.module-coming-soon-banner {
    background: var(--brand-bg-soft) !important;
    border-color: var(--brand-border) !important;
}

.module-soon-lock {
    background: var(--brand-bg-medium) !important;
}

.module-soon-overlay,
[data-theme="light"] .module-soon-overlay {
    background: rgba(15, 23, 42, 0.55) !important;
}

[data-theme="light"] .module-soon-overlay {
    background: rgba(241, 245, 249, 0.88) !important;
}

.home-hero,
[data-theme="dark"] .home-hero,
.home-panel-card--accent,
.audio-tv-preview,
.ad-studio-hero {
    background: var(--brand-bg-soft) !important;
}

[data-theme="dark"] body {
    background: var(--bg-primary) !important;
}

.sidebar,
[data-theme="dark"] .sidebar {
    background: #0b1220 !important;
}

.device-card__status-bar.is-offline,
.device-card__status-bar.is-online,
.device-card__status-bar.is-unstable,
.audio-tv-status-bar,
.ai-studio-template-thumb::after {
    background: var(--brand-blue) !important;
}

.device-card__screen-glow.is-online {
    background: rgba(59, 130, 246, 0.2) !important;
}

.device-card__icon-wrap,
.audio-tv-device-icon {
    background: var(--brand-bg-soft) !important;
}
