/* ==========================================================================
   YOYAKU Label Light Theme
   Activated by adding .label-light on <body>. Drives off CSS variables defined
   in dashboard.css and overrides hard-coded values where needed.
   ========================================================================== */

/* ANTI-FOUC (no black flash between page navigations) -----------------------
   theme-toggle.js sets html[data-yy-theme-pending="light|dark"] synchronously
   in <head> BEFORE body parses. These rules paint the right page bg before
   the body class is attached on DOMContentLoaded. The data-attr is removed
   in onReady() once body.label-light takes over.
   ------------------------------------------------------------------------ */
/* Ben directive 2026-05-08: light mode "beaucoup plus clair" — bumped main bg
   from #f7f7f5 (cream off-white) to #fafafa (true near-white) for max clarity.
   Cards stay #ffffff so the cream/white contrast still distinguishes surfaces. */
html[data-yy-theme-pending="light"] {
    background: #fafafa;
}
html[data-yy-theme-pending="light"] body {
    background: #fafafa !important;
    color: #1e1e1e;
}

body.label-light {
    /* Core palette overrides */
    --bg-dark: #fafafa;
    --bg-sidebar: #ffffff;
    --bg-card: #ffffff;
    --bg-card-hover: #f1f2f0;
    --bg-input: #ffffff;
    --text-primary: #1e1e1e;
    --text-secondary: #55595f;
    --text-muted: #7c8288;
    --text-label: #4d5358;
    /* Ben directive 2026-05-08 (supersedes Phase H sky-blue):
       'je veux pas écrire YOYAKU en bleu' + 'Light bouton en blanc, Dark en gris'.
       Reset accent ramp to neutral black/grey for max clarity in light mode.
       --accent + --accent-hover drive primary text/borders.
       --accent-subtle / --accent-glow are translucent black tints for hover/focus.
       --accent-light / --accent-light-hover are pale greys for backgrounds. */
    --accent: #111111;
    --accent-hover: #2d2d2d;
    --accent-subtle: rgba(17, 17, 17, 0.07);
    --accent-glow: rgba(17, 17, 17, 0.14);
    --accent-light: #e5e7eb;
    --accent-light-hover: #d1d5db;
    --border: #d8d8d4;
    --border-hover: #b8bab6;
    --success: #16a34a;
    --error: #dc2626;
    background: var(--bg-dark);
    color: var(--text-primary);
}

/* Backgrounds & containers ------------------------------------------------- */
body.label-light,
body.label-light .app-container,
body.label-light .main-content,
body.label-light main.main-content,
body.label-light .submit-container,
body.label-light .page-container,
body.label-light .preview-layout {
    background: #fafafa !important;
    color: var(--text-primary);
}

/* Sidebar ------------------------------------------------------------------ */
body.label-light .sidebar {
    background: #ffffff !important;
    border-right: 1px solid #dededa;
    box-shadow: 1px 0 0 rgba(0, 0, 0, 0.02);
}

body.label-light .sidebar-header h1,
body.label-light .nav-section-title,
body.label-light .nav-group-title,
body.label-light h1,
body.label-light h2,
body.label-light h3,
body.label-light h4 {
    color: #151515;
}

body.label-light .sidebar .version,
body.label-light .nav-group-title {
    color: #8a8e92 !important;
}

body.label-light .nav-item {
    color: #5f6368;
}

body.label-light .nav-item:hover {
    background: #f2f2ef;
    color: #181818;
}

body.label-light .nav-item.active {
    /* Phase I 2026-05-08 — use --accent (sky blue pastel) not --accent-hover (darker).
       Ben wants the bleu pastel visible on active state, not a darker derivative. */
    background: var(--accent-subtle) !important;
    color: var(--accent) !important;
    font-weight: 600;
}

body.label-light .nav-icon svg {
    stroke: currentColor;
}

body.label-light .sidebar-footer {
    border-top: 1px solid #ececea;
}

body.label-light .user-section,
body.label-light .user-name-sidebar {
    color: #1e1e1e;
}

body.label-light .role-badge {
    background: #f0f0ed;
    color: #44484d;
    border: 1px solid #dededa;
}

body.label-light .logout-btn-sidebar {
    color: #5f6368;
    border: 1px solid #d8d8d4;
    background: #ffffff;
}

body.label-light .logout-btn-sidebar:hover {
    color: #181818;
    background: #f2f2ef;
}

/* Cards / sections / inputs ----------------------------------------------- */
body.label-light .user-bar,
body.label-light .draft-area,
body.label-light .form-section,
body.label-light .ai-parser-zone .parser-dropzone,
body.label-light .instructions-box,
body.label-light .tracklist-card,
body.label-light .info-item,
body.label-light .admin-actions-block,
body.label-light .pipeline-step,
body.label-light .progress-steps,
body.label-light .card,
body.label-light .stat-card,
body.label-light .panel,
body.label-light .data-card,
body.label-light .table-wrapper,
body.label-light .modal,
body.label-light .modal-content {
    background: #ffffff !important;
    border-color: #d8d8d4 !important;
    box-shadow: none !important;
    color: var(--text-primary);
}

body.label-light input,
body.label-light textarea,
body.label-light select,
body.label-light .input-compact,
body.label-light .date-input,
body.label-light .price-input,
body.label-light .edit-input,
body.label-light .edit-textarea,
body.label-light .edit-select {
    background: #ffffff !important;
    color: #181818 !important;
    border-color: #cfcfca !important;
}

body.label-light input:focus,
body.label-light textarea:focus,
body.label-light select:focus,
body.label-light .input-compact:focus {
    border-color: var(--accent) !important;
    box-shadow: 0 0 0 2px var(--accent-glow) !important;
    outline: none;
}

body.label-light input::placeholder,
body.label-light textarea::placeholder {
    color: #8b9094;
}

/* Tables ------------------------------------------------------------------- */
body.label-light table {
    background: #ffffff;
    color: var(--text-primary);
}

body.label-light th,
body.label-light thead th {
    background: #f1f2f0 !important;
    color: #1f2328 !important;
    border-bottom-color: #d8d8d4 !important;
}

body.label-light td {
    border-bottom-color: #ececea !important;
    color: var(--text-primary);
}

body.label-light tr:hover td {
    background: #fafafa !important;
}

/* Image upload slots ------------------------------------------------------- */
body.label-light .image-slot,
body.label-light .image-slot-placeholder,
body.label-light .drop-zone,
body.label-light .mp3-dropzone,
body.label-light .image-dropzone {
    background: #fbfbfa;
    border-color: #c9c9c3;
    color: #5f6368;
}

body.label-light .image-slot:hover,
body.label-light .drop-zone:hover,
body.label-light .mp3-dropzone:hover,
body.label-light .image-dropzone:hover {
    background: var(--accent-subtle);
    border-color: var(--accent);
}

body.label-light .image-slot-label {
    background: rgba(255, 255, 255, 0.92);
    color: #2d2d2d;
    border-top: 1px solid #e0e0dc;
}

body.label-light .image-slot.is-vinyl-group {
    border-color: #b9b9b3;
}

body.label-light .vinyl-divider {
    color: #6c7278;
    border-top-color: #dededa;
}

body.label-light .vinyl-divider span {
    background: #f7f7f5;
}

/* Tags & badges ------------------------------------------------------------ */
body.label-light .badge-optional,
body.label-light .badge-opt,
body.label-light .badge-rec {
    background: #f0f0ed;
    border-color: #d6d6d1;
    color: #6a6f75;
}

body.label-light .tag,
body.label-light .artist-tag,
body.label-light .meta-pill.sku,
body.label-light .ledger-badge.warn {
    background: var(--accent-subtle);
    color: var(--accent-hover);
    border: 1px solid var(--accent-light);
}

/* Tracklist + product info ------------------------------------------------ */
body.label-light .tracklist-with-audio .track-row,
body.label-light .track-row,
body.label-light .audio-track-card {
    border-color: #e2e2de !important;
    background: #ffffff;
}

body.label-light .track-name,
body.label-light .product-artist,
body.label-light .product-title,
body.label-light .description,
body.label-light .field-value,
body.label-light .stat-value,
body.label-light p,
body.label-light label,
body.label-light .label,
body.label-light span {
    color: var(--text-primary);
}

body.label-light .text-muted,
body.label-light .meta,
body.label-light small {
    color: var(--text-muted) !important;
}

body.label-light .main-image,
body.label-light .thumbnail {
    background: #eeeeea;
}

/* Buttons ------------------------------------------------------------------ */
body.label-light .convert-black-btn,
body.label-light .btn-hold,
body.label-light .btn-outline,
body.label-light .btn-secondary,
body.label-light .edit-cancel {
    background: #ffffff;
    border-color: #cfcfca;
    color: #44484d;
}

body.label-light .btn-primary,
body.label-light .btn-create,
body.label-light .btn.primary {
    background: var(--accent);
    color: #ffffff;
    border: 1px solid var(--accent);
}

body.label-light .btn-primary:hover,
body.label-light .btn-create:hover {
    background: var(--accent-hover);
    border-color: var(--accent-hover);
}

/* Pipeline & status -------------------------------------------------------- */
body.label-light .pipeline-step.active {
    background: #f4f1ff !important;
    border-color: #cbbcff !important;
}

body.label-light .pipeline-step.disabled {
    background: #f0f0ed !important;
    border-color: #dededa !important;
}

body.label-light .publish-block-reason {
    color: #b91c1c;
}

body.label-light .autocomplete-dropdown,
body.label-light .modal-content {
    background: #ffffff;
    border-color: #d8d8d4;
    color: #1f2328;
}

body.label-light .autocomplete-item:hover,
body.label-light .copy-history-item:hover {
    background: #f4f1ff;
}

body.label-light .loading-state,
body.label-light .error-message {
    color: #5f6368;
}

/* Floating feedback widget — make it readable in light mode --------------- */
body.label-light .yy-feedback-modal {
    background: #ffffff !important;
    border: 1px solid #d8d8d4 !important;
    color: #181818 !important;
}

body.label-light .yy-feedback-modal h3 {
    color: #151515;
}

body.label-light .yy-feedback-modal p.hint,
body.label-light .yy-feedback-file,
body.label-light .yy-feedback-file input {
    color: #5f6368 !important;
}

body.label-light .yy-feedback-modal textarea {
    background: #ffffff !important;
    border: 1px solid #cfcfca !important;
    color: #181818 !important;
}

body.label-light .yy-feedback-cancel {
    color: #5f6368 !important;
    border: 1px solid #d8d8d4 !important;
}

body.label-light .yy-feedback-cancel:hover {
    color: #181818 !important;
    border-color: #b8bab6 !important;
}

/* ==========================================================================
   THEME TOGGLE COMPONENT
   Visible Light/Dark pill — placed in sidebar header by theme-toggle.js.
   Works in both themes (selectors are NOT scoped to .label-light).
   ========================================================================== */

.yy-theme-toggle-wrap {
    margin-top: 12px;
    display: flex;
    justify-content: stretch;
}

.yy-theme-toggle {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 3px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--border, #2a2a2a);
    border-radius: 999px;
    width: 100%;
    font-family: var(--font-mono, 'IBM Plex Mono', monospace);
}

.yy-theme-btn {
    flex: 1 1 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 6px 10px;
    background: transparent;
    border: none;
    border-radius: 999px;
    color: var(--text-muted, #8a8a8a);
    font-family: inherit;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, transform 0.1s ease;
    line-height: 1;
}

.yy-theme-btn svg {
    flex-shrink: 0;
}

.yy-theme-btn:hover {
    color: var(--text-primary, #f0f0f0);
}

/* Ben directive 2026-05-08: pill 'Dark' active state in dark mode → grey,
   not blue. Pill 'Light' active state in light mode is overridden below in
   the body.label-light block to white. */
.yy-theme-btn[aria-pressed="true"] {
    background: #3a3a3a;
    color: #f0f0f0;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.30);
}

.yy-theme-btn[aria-pressed="true"]:hover {
    background: #4a4a4a;
    color: #ffffff;
}

/* Light theme: visible pill on white sidebar */
body.label-light .yy-theme-toggle {
    background: #f1f2f0;
    border-color: #d8d8d4;
}

body.label-light .yy-theme-btn {
    color: #5f6368;
}

body.label-light .yy-theme-btn:hover {
    color: #181818;
}

body.label-light .yy-theme-btn[aria-pressed="true"] {
    /* Ben directive 2026-05-08: Light pill active → WHITE (was #0ea5e9 sky blue
       — 'trop bleu'). Plain white background + black text + subtle border so
       the active pill reads as a distinct surface against the grey track. */
    background: #ffffff;
    color: #111111;
    border: 1px solid #d8d8d4;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

body.label-light .yy-theme-btn[aria-pressed="true"]:hover {
    background: #fafafa;
    color: #000000;
}

/* Floating fallback (pages without sidebar — e.g. login) */
.yy-theme-toggle-floating {
    position: fixed;
    top: 16px;
    right: 16px;
    z-index: 9990;
    width: auto;
    margin: 0;
}

.yy-theme-toggle-floating .yy-theme-toggle {
    width: auto;
    background: rgba(0, 0, 0, 0.35);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

body.label-light .yy-theme-toggle-floating .yy-theme-toggle {
    background: rgba(255, 255, 255, 0.92);
    border-color: #d8d8d4;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

@media (max-width: 640px) {
    .yy-theme-btn span {
        display: none;
    }
    .yy-theme-btn {
        padding: 7px 9px;
    }
}

/* ==========================================================================
   THEME TOGGLE PLACEMENT — sit cleanly in sidebar header (2026-05-06)
   - Force the toggle wrap onto its own row inside the .sidebar-header flex
     so it lands right under the YOYAKU logo, never colliding with page
     titles in the main content column.
   ========================================================================== */

.sidebar-header {
    flex-wrap: wrap;
}

.yy-theme-toggle-wrap {
    flex: 0 0 100%;
    margin-top: 14px;
    margin-bottom: 4px;
}

/* ==========================================================================
   HERO BRAND — index.html dashboard header logo
   Replaces the legacy inline `color: white` so light mode renders dark text.
   ========================================================================== */

.hero-brand { text-align: center; }

.hero-brand-line {
    font-family: 'DIN', 'Familjen Grotesk', sans-serif;
    font-weight: 700;
    font-size: 2.5rem;
    letter-spacing: 0.3em;
    line-height: 1;
    color: var(--text-primary, #ffffff);
}

.hero-brand-line--secondary {
    font-size: 2.2rem;
    margin-top: -0.1rem;
}

body.label-light .hero-brand-line {
    color: var(--text-primary);
}

/* ==========================================================================
   PAGE-LEVEL INLINE-STYLE OVERRIDES — light mode (2026-05-06)
   Several admin pages embed dark `<style>` blocks at the top of the file
   (ledger.html, admin-payouts.html, production-dashboard.html, etc.) using
   hardcoded #0f0f1a / #161626 / #0c0c17 / #2a2a3e / rgba(0,0,0,X). Selectors
   below outrank them via the body.label-light prefix.
   ========================================================================== */

/* Body / page chrome shared by inline blocks ------------------------------- */
body.label-light {
    background: #fafafa !important;
}

/* ledger.html ------------------------------------------------------------- */
body.label-light .ledger-health-card {
    background: #ffffff !important;
    border: 1px solid #d8d8d4 !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}

body.label-light .ledger-health-title {
    color: #55595f !important;
}

body.label-light .ledger-kpi {
    background: #fafafa !important;
    border: 1px solid #e3e3df !important;
}

body.label-light .ledger-kpi:hover {
    background: #f1f2f0 !important;
    border-color: var(--accent) !important;
}

body.label-light .ledger-kpi[data-disabled="1"]:hover {
    background: #fafafa !important;
    border-color: #e3e3df !important;
}

body.label-light .ledger-kpi .kpi-label {
    color: #55595f !important;
}

body.label-light .ledger-kpi .kpi-value {
    color: var(--text-primary);
}

body.label-light .ledger-kpi.match  .kpi-value { color: #16a34a; }
body.label-light .ledger-kpi.mismatch .kpi-value { color: #dc2626; }
body.label-light .ledger-kpi.warn   .kpi-value { color: #b45309; }

body.label-light .ledger-kpi .kpi-sub {
    color: #7c8288 !important;
}

/* admin-payouts.html ------------------------------------------------------ */
body.label-light .payouts-toolbar {
    background: #ffffff !important;
    border: 1px solid #d8d8d4 !important;
}

body.label-light .payouts-toolbar label {
    color: #55595f !important;
}

body.label-light .payouts-toolbar input,
body.label-light .payouts-toolbar select {
    background: #fafafa !important;
    color: var(--text-primary) !important;
    border: 1px solid #d8d8d4 !important;
}

body.label-light .payouts-toolbar input:focus,
body.label-light .payouts-toolbar select:focus {
    border-color: var(--accent) !important;
    background: #ffffff !important;
}

body.label-light .payouts-toolbar button {
    background: #f1f2f0 !important;
    color: var(--text-primary) !important;
    border: 1px solid #d8d8d4 !important;
}

body.label-light .payouts-toolbar button:hover {
    background: #e3e3df !important;
    border-color: var(--accent) !important;
}

body.label-light .payouts-toolbar button.btn-csv {
    background: var(--accent-subtle) !important;
    border-color: var(--accent-glow) !important;
    color: var(--accent-hover) !important;
}

body.label-light .payouts-toolbar button.btn-csv:hover {
    background: var(--accent-glow) !important;
}

body.label-light .payouts-summary .pill {
    background: #ffffff !important;
    border: 1px solid #d8d8d4 !important;
    color: #55595f;
}

body.label-light .payouts-summary .pill strong {
    color: var(--text-primary) !important;
}

body.label-light .payouts-summary .pill span {
    color: #7c8288 !important;
}

body.label-light .payouts-table-wrap {
    background: #ffffff !important;
    border: 1px solid #d8d8d4 !important;
}

body.label-light table.payouts-table thead th {
    background: #f1f2f0 !important;
    color: #55595f !important;
    border-bottom: 1px solid #d8d8d4 !important;
}

body.label-light table.payouts-table tbody td {
    color: var(--text-primary) !important;
    border-bottom: 1px solid #ececea !important;
}

/* production-dashboard.html ----------------------------------------------- */
body.label-light .stat-card {
    background: #ffffff !important;
    border: 1px solid #d8d8d4 !important;
}

body.label-light .stat-card .stat-label {
    color: #55595f !important;
}

body.label-light .stat-card .stat-value {
    color: var(--text-primary) !important;
}

body.label-light .view-toggle {
    background: transparent !important;
    border: 1px solid #d8d8d4 !important;
    color: #55595f !important;
}

body.label-light .view-toggle.active {
    background: #f1f2f0 !important;
    color: var(--text-primary) !important;
    border-color: #b8bab6 !important;
}

body.label-light .search-input,
body.label-light .filters-row input,
body.label-light .filters-row select {
    background: #ffffff !important;
    border: 1px solid #d8d8d4 !important;
    color: var(--text-primary) !important;
}

body.label-light .search-input:focus,
body.label-light .filters-row input:focus,
body.label-light .filters-row select:focus {
    border-color: var(--accent) !important;
}

body.label-light .search-input::placeholder {
    color: #7c8288 !important;
}

/* objects-tracker (production-dashboard "Production Tracker" card) -------- */
body.label-light .objects-tracker {
    --otr-s2: #f7f7f5;
    --otr-bd: #d8d8d4;
    --otr-bd2: #b8bab6;
    --otr-t:  var(--text-primary);
    --otr-td: #55595f;
    --otr-g:  #16a34a;
    background: #ffffff !important;
    border: 1px solid #d8d8d4 !important;
    color: var(--text-primary);
}

body.label-light .objects-tracker .otr-hdr {
    border-bottom-color: #d8d8d4 !important;
}

body.label-light .objects-tracker .otr-fs-btn {
    border-color: #d8d8d4 !important;
    color: #55595f !important;
}

body.label-light .objects-tracker .otr-fs-btn:hover {
    background: #f1f2f0 !important;
    color: var(--text-primary) !important;
    border-color: #b8bab6 !important;
}

body.label-light .objects-tracker .detail-wrap {
    background: linear-gradient(180deg, #ffffff 0%, #f7f7f5 100%) !important;
}

body.label-light .otr-filter-pop {
    background: #ffffff !important;
    border: 1px solid #d8d8d4 !important;
    color: var(--text-primary) !important;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12) !important;
}

/* admin-statements.css rgba(0,0,0,X) overrides ---------------------------- */
body.label-light .stmt-toolbar,
body.label-light .stmt-summary-row,
body.label-light .stmt-table-wrap,
body.label-light .stmt-modal-overlay,
body.label-light .stmt-detail-section {
    background: #ffffff !important;
    border-color: #d8d8d4 !important;
}

body.label-light .stmt-modal-overlay {
    background: rgba(0, 0, 0, 0.45) !important;
}

body.label-light .stmt-card {
    background: #ffffff !important;
    border: 1px solid #d8d8d4 !important;
}

/* mastering / supplier / label-requests / reconciliation / global-expenses /
   artist-dashboard share the same generic patterns (.toolbar, .table-wrap,
   .filter-row, .filter-input, .filter-select, .filter-button) — catch-all: */
body.label-light .filter-row,
body.label-light .toolbar,
body.label-light .page-toolbar,
body.label-light .data-table-wrap {
    background: #ffffff !important;
    border-color: #d8d8d4 !important;
}

body.label-light .filter-row input,
body.label-light .filter-row select,
body.label-light .filter-row textarea,
body.label-light .toolbar input,
body.label-light .toolbar select,
body.label-light .page-toolbar input,
body.label-light .page-toolbar select {
    background: #fafafa !important;
    color: var(--text-primary) !important;
    border: 1px solid #d8d8d4 !important;
}

body.label-light .filter-row input:focus,
body.label-light .filter-row select:focus,
body.label-light .toolbar input:focus,
body.label-light .toolbar select:focus,
body.label-light .page-toolbar input:focus,
body.label-light .page-toolbar select:focus {
    border-color: var(--accent) !important;
    background: #ffffff !important;
}

/* Generic dark-table override (tables built from inline styles) ------------ */
body.label-light table thead th,
body.label-light table.dark-table thead th {
    background: #f1f2f0 !important;
    color: #55595f !important;
    border-bottom: 1px solid #d8d8d4 !important;
}

body.label-light table tbody td {
    color: var(--text-primary);
}

body.label-light table tbody tr:hover {
    background: #fafafa !important;
}

/* ==========================================================================
   ADMIN-STATEMENTS VARIABLE REBIND (2026-05-06)
   admin-statements.css declares its own --stmt-* namespace at :root with all
   dark values. Rebinding inside body.label-light propagates light colours to
   every consumer (.accordion-container empty-state surround, .stmt-card,
   .stmt-table, badges, etc.) without touching admin-statements.css itself.
   ========================================================================== */
body.label-light {
    --stmt-bg-page: #f7f7f5;
    --stmt-bg-card: #ffffff;
    --stmt-bg-row: rgba(0, 0, 0, 0.015);
    --stmt-bg-row-hover: var(--accent-subtle);
    --stmt-bg-expanded: var(--accent-subtle);
    --stmt-bg-lines: #f1f2f0;
    --stmt-bg-header: rgba(59, 130, 246, 0.06);

    --stmt-border: #d8d8d4;
    --stmt-border-accent: var(--accent);
    --stmt-border-left: var(--accent);

    --stmt-text-primary: var(--text-primary);
    --stmt-text-secondary: #55595f;
    --stmt-text-muted: #7c8288;

    --stmt-color-revenue: #16a34a;
    --stmt-color-expense: #dc2626;
    --stmt-color-positive: #16a34a;
    --stmt-color-negative: #dc2626;

    --stmt-accent: var(--accent);
    --stmt-accent-hover: var(--accent-hover);
    --stmt-accent-blue: #3b82f6;
}

body.label-light .accordion-container {
    background: #ffffff !important;
    border: 1px solid #d8d8d4 !important;
    color: var(--text-primary);
}

body.label-light .empty-state {
    color: #55595f;
}

body.label-light .empty-state h3 {
    color: var(--text-primary);
}

body.label-light .empty-state svg {
    color: #b8bab6;
}

/* ==========================================================================
   STATUS BADGES + ALERTS (legacy pages: supplier-dashboard, artist-dashboard,
   label-requests). Pre-2026-05-06 these used dark green/red/violet bg with
   bright text — invisible on cream in light mode. Soft pastels here.
   ========================================================================== */

body.label-light .badge-validated,
body.label-light .badge-approved,
body.label-light .badge-paid {
    background: rgba(22, 163, 74, 0.10) !important;
    color: #15803d !important;
    border: 1px solid rgba(22, 163, 74, 0.35) !important;
}

body.label-light .badge-pending,
body.label-light .badge-draft {
    background: rgba(245, 158, 11, 0.10) !important;
    color: #b45309 !important;
    border: 1px solid rgba(245, 158, 11, 0.35) !important;
}

body.label-light .badge-rejected,
body.label-light .badge-error {
    background: rgba(220, 38, 38, 0.10) !important;
    color: #b91c1c !important;
    border: 1px solid rgba(220, 38, 38, 0.35) !important;
}

body.label-light .badge-sent,
body.label-light .badge-info {
    background: var(--accent-subtle) !important;
    color: var(--accent-hover) !important;
    border: 1px solid var(--accent-glow) !important;
}

body.label-light .alert-success {
    background: rgba(22, 163, 74, 0.08) !important;
    color: #15803d !important;
    border: 1px solid rgba(22, 163, 74, 0.30) !important;
}

body.label-light .alert-info {
    background: var(--accent-subtle) !important;
    color: var(--accent-hover) !important;
    border: 1px solid var(--accent-glow) !important;
}

body.label-light .alert-error,
body.label-light .alert-danger {
    background: rgba(220, 38, 38, 0.08) !important;
    color: #b91c1c !important;
    border: 1px solid rgba(220, 38, 38, 0.30) !important;
}

body.label-light .info-box {
    background: var(--accent-subtle) !important;
    color: var(--accent-hover) !important;
    border: 1px solid var(--accent-glow) !important;
}

/* Reconciliation gateway tags (kept tinted but lifted to readable on light) */
body.label-light .gateway-viva   { background: rgba(8, 145, 178, 0.10) !important; color: #0e7490 !important; }
body.label-light .gateway-paypal { background: rgba(0, 112, 186, 0.10) !important; color: #1d4ed8 !important; }
body.label-light .gateway-revolut { background: rgba(13, 148, 136, 0.10) !important; color: #0f766e !important; }

body.label-light .state-verified {
    background: rgba(16, 185, 129, 0.12) !important;
    color: #047857 !important;
}

body.label-light .actions .verify-btn {
    background: rgba(16, 185, 129, 0.08) !important;
    color: #047857 !important;
    border-color: rgba(16, 185, 129, 0.30) !important;
}

/* Dark header rows (events-header, table-head, dist-table-head used
   rgba(0,0,0,0.3) which renders almost black on cream) */
body.label-light .events-header,
body.label-light .table-head,
body.label-light .dist-table-head {
    background: #f1f2f0 !important;
    border-bottom: 1px solid #d8d8d4 !important;
    color: #55595f !important;
}

/* Generic form inputs that used --bg-secondary (#1a1a2e) ----------------- */
body.label-light .form-input,
body.label-light .form-select,
body.label-light .form-textarea,
body.label-light .dist-override-input {
    background: #ffffff !important;
    color: var(--text-primary) !important;
    border: 1px solid #d8d8d4 !important;
}

body.label-light .form-input:focus,
body.label-light .form-select:focus,
body.label-light .form-textarea:focus,
body.label-light .dist-override-input:focus {
    border-color: var(--accent) !important;
    outline: none;
}

/* Mastering / supplier badges/cards backstop ----------------------------- */
body.label-light .modal-backdrop {
    background: rgba(0, 0, 0, 0.45) !important; /* keep semi-opaque for modal contrast */
}

body.label-light .modal,
body.label-light .modal-content,
body.label-light .modal-body {
    background: #ffffff !important;
    color: var(--text-primary) !important;
    border: 1px solid #d8d8d4 !important;
}

/* btn-primary (global-expenses uses peachy color #c4956a black text — fine
   in dark, illegible on cream → swap to violet primary in light) */
body.label-light .btn-primary {
    background: var(--accent) !important;
    color: #ffffff !important;
    border: 1px solid transparent !important;
}

body.label-light .btn-primary:hover {
    background: var(--accent-hover) !important;
}

/* ==========================================================================
   2026-05-08 — Phase 1+2: shell harmony + Video Generator light pass-through.
   Anchor: feat/label-shell-harmony-and-self-service-video.
   Audit source: _work/css-audit-2026-05-08.md.
   Strategy: every hardcoded violet-500/600 / red / blue / green that lacked
   a light variant gets one here. Dark rules in video-generator.css are
   untouched. Cross-page --color-* tokens (used by /onboarding wizard,
   /login, /supplier-*, /artist-*) are mapped on body.label-light so var()
   resolution at body+descendants level wins.
   ========================================================================== */

/* Cross-page --color-* token mapping (light) ------------------------------ */
body.label-light {
    --color-bg: #f7f7f5;
    --color-surface: #ffffff;
    --color-surface2: #fafafa;
    --color-border: #d8d8d4;
    --color-text: #1e1e1e;
    --color-text-muted: #6b7280;
    --color-primary: var(--accent-hover);
    --color-primary-hover: #6d28d9;
    --color-success: #16a34a;
    --color-error: #dc2626;
    --color-warning: #ca8a04;
    /* label-onboarding.html standalone tokens */
    --bg: #f7f7f5;
    --bg-card: #ffffff;
    --bg-input: #ffffff;
    --text: #1a1a1a;
    --text-2: #3a3a3a;
    --text-3: #5e5e5e;
    --border-2: #b8b8b4;
}

/* Sidebar brand area — Ben directive 2026-05-08: YOYAKU must be BLACK,
   not blue (Phase H sky-blue --accent shouldn't drive the wordmark). Sidebar
   background stays plain white for max clarity in light mode. */
body.label-light .sidebar-header,
body.label-light .sidebar-brand,
body.label-light .sidebar > .sidebar-header {
    background: #ffffff !important;
    border-bottom: 1px solid #ececea !important;
}
body.label-light .sidebar-header h1,
body.label-light .sidebar-brand h1 {
    color: #111111 !important;
    font-weight: 700;
    letter-spacing: 0.06em;
}
body.label-light .sidebar-brand-mark { color: #111111 !important; font-weight: 700; }
body.label-light .sidebar-brand-sub  { color: #55595f !important; font-weight: 500; opacity: 0.85; letter-spacing: 0.18em; text-transform: uppercase; }
/* Sidebar 'Labels' / 'ADMIN' version pill — neutral grey, not blue accent */
body.label-light .sidebar-header .version,
body.label-light .sidebar-brand .version {
    color: #6b7280 !important;
    background: #f4f4f1 !important;
    border: 1px solid #e0e0dc !important;
}

/* Theme toggle — align with violet palette in light (was sky #0ea5e9) ----- */
body.label-light .theme-toggle .toggle-pill[aria-pressed="true"],
body.label-light .theme-toggle [data-active="true"] {
    background: var(--accent) !important;
    color: #ffffff !important;
}
body.label-light .theme-toggle .toggle-pill[aria-pressed="false"] {
    color: #6b7280;
}

/* Hover bug fix — every nav-* hover variant uses dark palette in
   sidebar-dynamic.css; in light, override to soft violet-50/100. ---------- */
body.label-light .nav-item.nav-release:hover,
body.label-light .nav-item.nav-packs:hover,
body.label-light .nav-item.nav-video:hover,
body.label-light .nav-item.nav-statements:hover,
body.label-light .nav-item.nav-docs:hover,
body.label-light .nav-item.nav-manufacturing:hover {
    background: #f5f3ff !important;
    color: var(--accent-hover) !important;
}
body.label-light .nav-item.nav-release.active,
body.label-light .nav-item.nav-packs.active,
body.label-light .nav-item.nav-video.active,
body.label-light .nav-item.nav-statements.active,
body.label-light .nav-item.nav-docs.active,
body.label-light .nav-item.nav-manufacturing.active {
    background: #ede9fe !important;
    color: #4c1d95 !important;
    font-weight: 600;
}
body.label-light .view-mode-toggle:hover,
body.label-light .view-mode-toggle.label-mode:hover {
    background: #f5f3ff !important;
    color: var(--accent-hover) !important;
}
body.label-light .logout-btn-sidebar:hover,
body.label-light .logout-btn:hover {
    background: #fef2f2 !important;
    color: #dc2626 !important;
}
body.label-light .nav-item:focus-visible,
body.label-light .nav-item:focus {
    outline: 2px solid #c4b5fd;
    outline-offset: 2px;
}

/* Card / button hover invariants in light --------------------------------- */
body.label-light .card:hover {
    border-color: #c4b5fd !important;
    box-shadow: 0 4px 16px rgba(124, 58, 237, 0.08);
}
body.label-light .action-card:hover,
body.label-light .workflow-card:hover {
    background: #fafafa !important;
    border-color: #c4b5fd !important;
}
body.label-light .quick-action-btn:hover {
    background: #f5f3ff !important;
    border-color: #c4b5fd !important;
    color: var(--accent-hover) !important;
}
body.label-light .quick-action-btn.primary:hover,
body.label-light .quick-action-btn.youtube:hover {
    background: var(--accent-hover) !important;
    color: #ffffff !important;
}
body.label-light a:hover { color: #6d28d9; }

/* ==========================================================================
   Video Generator (frontend/video-generator.html + video-generator.css)
   light pass-through — every aggressive violet/red/green/blue gets a soft
   pale variant; text-on-violet stays readable everywhere.
   ========================================================================== */

/* Format cards INSTAGRAM 4:5 / YOUTUBE 16:9 (top of page) */
body.label-light .format-card,
body.label-light .format-option,
body.label-light .format-card.instagram,
body.label-light .format-card.youtube {
    background: linear-gradient(135deg, #faf5ff 0%, #f3e8ff 100%) !important;
    color: var(--accent-hover) !important;
    border: 1px solid #e9d5ff !important;
}
body.label-light .format-card.instagram.active,
body.label-light .format-card.youtube.active,
body.label-light .format-card.selected {
    background: linear-gradient(135deg, #c4b5fd 0%, #a78bfa 100%) !important;
    color: #ffffff !important;
    border-color: var(--accent) !important;
}

/* Format buttons (active = current selected format) */
body.label-light .format-btn {
    background: #ffffff !important;
    color: #6b7280 !important;
    border: 1px solid #e5e7eb !important;
}
body.label-light .format-btn:hover {
    background: #f5f3ff !important;
    color: var(--accent-hover) !important;
    border-color: #c4b5fd !important;
}
body.label-light .format-btn.active {
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%) !important;
    color: #ffffff !important;
    border-color: transparent !important;
}

/* Step circles 1/2/3 ------------------------------------------------------ */
body.label-light .step,
body.label-light .step-circle {
    background: #f3f4f6 !important;
    color: #6b7280 !important;
    border: 2px solid #d8d8d4 !important;
}
body.label-light .step.active,
body.label-light .step-circle.active {
    background: #1e1b4b !important;
    color: #ffffff !important;
    border-color: #1e1b4b !important;
}
body.label-light .step.completed,
body.label-light .step-circle.completed {
    background: #16a34a !important;
    color: #ffffff !important;
    border-color: #16a34a !important;
}

/* Track cards (A1/A2/B with face badges) ---------------------------------- */
body.label-light .track-row,
body.label-light .track-card,
body.label-light .track-item {
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    color: #1e1e1e !important;
}
body.label-light .track-row.face-a,
body.label-light .track-card.face-a {
    border-left: 4px solid #16a34a !important;
    background: #f0fdf4 !important;
}
body.label-light .track-row.face-b,
body.label-light .track-card.face-b {
    border-left: 4px solid #2563eb !important;
    background: #eff6ff !important;
}
body.label-light .face-badge-a {
    background: #16a34a !important;
    color: #ffffff !important;
}
body.label-light .face-badge-b {
    background: #2563eb !important;
    color: #ffffff !important;
}

/* Status badges in video generator (PREVIEW, MATCHED, ADMIN ONLY, etc.) --- */
body.label-light .badge-info {
    background: #dbeafe !important;
    color: #1e40af !important;
}
body.label-light .badge-warning {
    background: #fef3c7 !important;
    color: #92400e !important;
}
body.label-light .badge-danger {
    background: #fee2e2 !important;
    color: #991b1b !important;
}
body.label-light .badge-preview,
body.label-light .preview-badge {
    background: #fed7aa !important;
    color: #9a3412 !important;
}
body.label-light .badge-matched,
body.label-light .matched-badge {
    background: #dcfce7 !important;
    color: #166534 !important;
}

/* SKU autocomplete dropdown ----------------------------------------------- */
body.label-light .sku-autocomplete-list,
body.label-light .sku-suggestions,
body.label-light .autocomplete-dropdown {
    background: #ffffff !important;
    border: 1px solid #d8d8d4 !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08) !important;
}
body.label-light .sku-autocomplete-item,
body.label-light .sku-suggestion,
body.label-light .autocomplete-item {
    background: #ffffff !important;
    color: #1e1e1e !important;
    border-bottom: 1px solid #f3f4f6 !important;
}
body.label-light .sku-autocomplete-item:hover,
body.label-light .sku-suggestion:hover,
body.label-light .autocomplete-item:hover,
body.label-light .sku-autocomplete-item.active {
    background: #f5f3ff !important;
    color: var(--accent-hover) !important;
}
body.label-light .sku-autocomplete-item .sku-code,
body.label-light .sku-suggestion .sku-code {
    color: var(--accent-hover) !important;
    font-weight: 600;
}

/* SINGLE VINYL pill / format indicator ------------------------------------ */
body.label-light .single-vinyl-pill,
body.label-light .vinyl-format-pill {
    background: linear-gradient(135deg, #ede9fe 0%, #ddd6fe 100%) !important;
    color: var(--accent-hover) !important;
    border: 1px solid #c4b5fd !important;
}

/* Generation Progress dashboard (bottom fixed panel) ---------------------- */
body.label-light .progress-dashboard,
body.label-light .generation-progress-panel,
body.label-light .global-progress-panel,
body.label-light .video-progress-panel {
    background: #ffffff !important;
    border-top: 1px solid #d8d8d4 !important;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.06) !important;
    color: #1e1e1e !important;
}
body.label-light .progress-bar,
body.label-light .progress-track {
    background: #ede9fe !important;
}
body.label-light .progress-fill,
body.label-light .progress-bar-fill {
    background: linear-gradient(90deg, #a78bfa 0%, #c4b5fd 50%, #34d399 100%) !important;
}

/* Job status badges in progress panel ------------------------------------- */
body.label-light .job-status.success,
body.label-light .status-success {
    background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%) !important;
    color: #065f46 !important;
    border: 1px solid #6ee7b7;
}
body.label-light .job-status.warning,
body.label-light .status-warning {
    background: #fef3c7 !important;
    color: #92400e !important;
    border: 1px solid #fde68a;
}
body.label-light .job-status.error,
body.label-light .status-error {
    background: #fee2e2 !important;
    color: #991b1b !important;
    border: 1px solid #fca5a5;
}
body.label-light .job-status.progress,
body.label-light .status-progress {
    background: linear-gradient(135deg, #ede9fe 0%, #ddd6fe 100%) !important;
    color: var(--accent-hover) !important;
    border: 1px solid #c4b5fd;
}

/* Drop zones ------------------------------------------------------------- */
body.label-light .drop-zone {
    background: #fafafa !important;
    border: 2px dashed #d8d8d4 !important;
    color: #6b7280 !important;
}
body.label-light .drop-zone:hover,
body.label-light .drop-zone.dragover {
    background: #f5f3ff !important;
    border-color: var(--accent) !important;
    color: var(--accent-hover) !important;
}

/* Image selection face A/B selected highlight ---------------------------- */
body.label-light .image-tile.face-a-selected {
    box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.4) !important;
    border-color: #16a34a !important;
}
body.label-light .image-tile.face-b-selected {
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.4) !important;
    border-color: #2563eb !important;
}

/* Preview modal --------------------------------------------------------- */
body.label-light .preview-modal-backdrop {
    background: rgba(0, 0, 0, 0.55) !important;
}
body.label-light .preview-modal,
body.label-light .preview-modal-content {
    background: #ffffff !important;
    color: #1e1e1e !important;
    border: 1px solid #d8d8d4 !important;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.15) !important;
}

/* "ADMIN ONLY" / "CONTABO-HQ" / "MY CATALOG" pills ----------------------- */
body.label-light .info-pill,
body.label-light .admin-only-pill,
body.label-light .contabo-pill,
body.label-light .my-catalog-pill {
    background: #f5f3ff !important;
    color: var(--accent-hover) !important;
    border: 1px solid #c4b5fd !important;
}

/* Audio source label / footer ------------------------------------------- */
body.label-light .audio-source-label,
body.label-light .audio-source-info,
body.label-light .video-generator-footer,
body.label-light .vg-footer {
    color: #6b7280 !important;
}
body.label-light .video-generator-footer,
body.label-light .vg-footer {
    border-top: 1px solid #e5e7eb !important;
}

/* Anti-invisible-text safety net for text-on-violet contexts ------------ */
body.label-light .text-on-violet,
body.label-light .on-violet { color: #1e1b4b !important; }

/* Onboarding wizard standalone topbar (added Phase 1.1) ----------------- */
body.label-light .onboarding-topbar {
    background: linear-gradient(180deg, #faf9ff 0%, #f3f0ff 100%) !important;
    border-bottom: 1px solid #e6dffd;
    color: var(--accent-hover);
}
body.label-light .onboarding-topbar .brand-mark { color: var(--accent-hover); font-weight: 700; letter-spacing: 0.18em; }
body.label-light .onboarding-topbar .brand-sub  { color: var(--accent-hover); font-weight: 500; letter-spacing: 0.24em; opacity: 0.85; }

/* End Phase 1+2 additions ============================================== */

/* ==========================================================================
   2026-05-08 v3 — Objects Tracker light-mode rebind (production-dashboard).
   Source dark tokens are declared at .objects-tracker scope in
   frontend/css/objects-tracker.css. We rebind them under body.label-light
   to neutral cream/white surface so cells, headers, stripes, sticky cols
   all read well in light mode without rewriting the whole component.
   ========================================================================== */
body.label-light .objects-tracker {
    --otr-bg:  #ffffff;
    --otr-s1:  #fafafa;
    --otr-s2:  #f1f2f0;
    --otr-s3:  #e9ecf2;
    --otr-bd:  #e3e4df;
    --otr-bd2: #cdd0d6;
    --otr-t:   #1a1d27;
    --otr-td:  #5b6075;
    --otr-td2: #7c8288;
}

/* Sticky CAT/SO columns stripe — must contrast vs row bg in light */
body.label-light .objects-tracker tbody td.col-cat,
body.label-light .objects-tracker tbody td.col-so {
    background: #ffffff !important;
}
body.label-light .objects-tracker tbody tr.row:nth-child(4n+1) td.col-cat,
body.label-light .objects-tracker tbody tr.row:nth-child(4n+1) td.col-so {
    background: #fafafa !important;
}
body.label-light .objects-tracker tbody tr.row:hover td.col-cat,
body.label-light .objects-tracker tbody tr.row:hover td.col-so,
body.label-light .objects-tracker tbody tr.row.expanded td.col-cat,
body.label-light .objects-tracker tbody tr.row.expanded td.col-so {
    background: #e9ecf2 !important;
}
body.label-light .objects-tracker thead th.col-cat,
body.label-light .objects-tracker thead th.col-so {
    background: #f1f2f0 !important;
}

/* Filter popup (rendered outside .objects-tracker, body-attached) */
body.label-light .otr-filter-pop {
    background: #ffffff !important;
    border: 1px solid #e3e4df !important;
    color: #1a1d27 !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10);
}
body.label-light .otr-filter-pop .fp-h { color: #5b6075; border-bottom: 1px solid #e3e4df; }
body.label-light .otr-filter-pop label:hover { background: #f1f2f0; }
body.label-light .otr-filter-pop .fp-actions { border-top: 1px solid #e3e4df; }
body.label-light .otr-filter-pop .fp-actions button {
    background: #f1f2f0;
    color: #1a1d27;
}
body.label-light .otr-filter-pop .fp-actions button:hover { background: #e3e4df; }

/* End Objects Tracker light rebind ==================================== */


/* ==========================================================================
   LABELS CRM (crm-labels.html / labels-crm.css) light rebind
   labels-crm.css declares its OWN :root with dark values (--bg-primary,
   --bg-darker, --bg-hover, --border-color, --color-*-bg). label-light's
   body.label-light block never overrode those, so the header bar
   (.labels-header → var(--bg-primary)) and the LANG/ASSIGNEE/DEAL badges
   stayed dark navy in light mode. Override the variables here + a few
   hard-coded badge colours that don't use variables.
   ========================================================================== */
body.label-light {
    /* labels-crm.css :root surfaces */
    --bg-primary: #ffffff;
    --bg-darker: #f1f2f0;
    --bg-hover: #f1f2f0;
    --border-color: #e3e4df;
    --border-hover: #d1d3cd;
    --border-light: #d1d3cd;
    --text-dim: #9ca3af;
    --text-soft: #6b7280;
    --accent-primary: #111111;
    /* status / deal / wp-status / category / line-type badge tints
       (bg = pale tint, *-light = darker readable text on that tint) */
    --color-success-bg: #dcfce7;  --color-success-light: #15803d;
    --color-error-bg:   #fee2e2;  --color-error-light:   #b91c1c;
    --color-warning-bg: #fef9c3;  --color-warning-light: #a16207;
    --color-info-bg:    #dbeafe;  --color-info-light:    #1d4ed8;
    --color-purple-bg:  #ede9fe;  --accent-secondary:    #7c3aed;
    --color-teal-bg:    #ccfbf1;  --color-teal:          #0d9488;
}

/* Header / toolbar bar — render as a white card on the #fafafa page */
body.label-light .labels-header {
    background: #ffffff;
    border: 1px solid #e3e4df;
}
body.label-light .labels-table-container,
body.label-light .labels-table {
    background: #ffffff;
}

/* Search box + filter dropdown inside the header */
body.label-light .search-box input,
body.label-light .filter-select {
    background: #ffffff;
    border: 1px solid #d8d8d4;
    color: #1e1e1e;
}
body.label-light .search-box input::placeholder { color: #9ca3af; }
body.label-light .search-box input:focus,
body.label-light .filter-select:focus { border-color: #111111; }

/* Discogs "D" chip next to label names */
body.label-light .discogs-badge { background: #e3e4df; color: #4d5358; }

/* Language badges — hard-coded dark navy → pale tints */
body.label-light .langue-badge.English  { background: #dbeafe; color: #1d4ed8; }
body.label-light .langue-badge.French   { background: #ede9fe; color: #6d28d9; }
body.label-light .langue-badge.German   { background: #fef3c7; color: #a16207; }
body.label-light .langue-badge.Spanish  { background: #fee2e2; color: #b91c1c; }
body.label-light .langue-badge.Italian  { background: #dcfce7; color: #15803d; }
body.label-light .langue-badge.Japanese { background: #fce7f3; color: #be185d; }

/* Assignee badges — hard-coded dark navy → pale tints */
body.label-light .assignee-badge.Ben    { background: #dbeafe; color: #1d4ed8; }
body.label-light .assignee-badge.Seb    { background: #dcfce7; color: #15803d; }
body.label-light .assignee-badge.Leo    { background: #ede9fe; color: #6d28d9; }
body.label-light .assignee-badge.Nizar  { background: #fef3c7; color: #a16207; }
body.label-light .assignee-badge.Didier { background: #fce7f3; color: #be185d; }
body.label-light .assignee-badge.Luo    { background: #cffafe; color: #0e7490; }

/* Deal / category / line-cat badges that hard-code a dark colour */
body.label-light .deal-badge.consignment       { background: #fce7f3; color: #be185d; }
body.label-light .category-badge.other          { background: #e3e4df; color: #4d5358; }
body.label-light .line-cat-badge.wholesale_sales { background: #dcfce7; color: #15803d; }

/* End Labels CRM light rebind ======================================== */

/* ==========================================================================
   TABLE-CELL TEXT — invisible-in-light fixes (2026-05-13)
   Various admin tables hardcode `color: #fff` on table cell text inside
   their inline <style> blocks. Without a body.label-light override, those
   cells become invisible (white text on white background) in light mode.
   ========================================================================== */

body.label-light .release-title,
body.label-light .label-name,
body.label-light .quantity-cell,
body.label-light .format-qty,
body.label-light .template-title {
    color: var(--text-primary) !important;
}
