/**
 * Uppy Dashboard theming — Phase 2.5.
 *
 * Uppy 4.8.0 uses hardcoded color values (no --uppy-* custom properties),
 * so this file overrides specific Uppy class rules per Freya theme.
 * Selector shape: [data-theme="X"] .uppy-Root .uppy-SomeClass { ... }
 *
 * Loaded AFTER Uppy's own uppy.min.css so cascade order favors our rules.
 * Six themes exist; Light uses minimal overrides (Uppy default is already
 * light and close enough); the five dark-ish themes each get ~15 targeted
 * overrides for the most visually-prominent Dashboard surfaces:
 *   - Panel background (.uppy-Dashboard-inner)
 *   - Drop zone + border (.uppy-Dashboard-AddFiles)
 *   - Drop zone title text (.uppy-Dashboard-AddFiles-title)
 *   - Browse link (.uppy-Dashboard-browse)
 *   - Primary button (.uppy-c-btn-primary)
 *   - Status bar container + progress bar fill (.uppy-StatusBar*)
 *   - Upload action button (.uppy-StatusBar-actionBtn--upload)
 *   - File list rows (.uppy-Dashboard-Item*)
 *
 * Theme context (authored by Freya's owner; intent known):
 *   - Light: neutral professional. Minimal overrides — just swap default
 *     Uppy blue #1269cf → Freya's accent.
 *   - Dark: neutral professional. Mirror Uppy's built-in dark palette
 *     using Freya variables for consistency with the rest of Freya's dark UI.
 *   - C128: retro terminal, green-on-dark. Errors need a shifted red so they
 *     read as "error" against the green-dominant palette rather than blending.
 *   - UR6000: MUTHR industrial amber. Because the base palette is red-adjacent,
 *     error red must differentiate via a distinctly brighter/pinker shade.
 *   - Haven3019: LOTR elven aesthetic, ethereal blue. Close to Uppy's own dark
 *     defaults but brighter/softer — variable mapping via Freya's accents works.
 *   - High Contrast: bespoke dyslexia-readability accommodation. Not strict
 *     WCAG AAA. Strong contrasts, avoid mid-tones. Error state relies on bold
 *     + icon weight (Uppy's built-in) in addition to color.
 */

/* ── Universal — font inheritance so Dashboard picks up Freya's body font ── */
.uppy-Root {
  font-family: inherit;
}

/* ══════════════════════════════════════════════════════════════════════════
 * LIGHT (:root)
 * Uppy default is light. Only override the accent (blue #1269cf → Freya's
 * --accent #4a6cf7) so progress bars + buttons match the rest of Freya's
 * Light UI. No background/text overrides needed.
 * ══════════════════════════════════════════════════════════════════════════ */

.uppy-Root .uppy-Dashboard-browse {
  color: var(--accent);
}
.uppy-Root .uppy-c-btn-primary {
  background-color: var(--accent);
}
.uppy-Root .uppy-c-btn-primary:not(:disabled):hover {
  background-color: var(--accent-hover);
}
.uppy-Root .uppy-StatusBar-progress {
  background-color: var(--accent);
}

/* ══════════════════════════════════════════════════════════════════════════
 * DARK — neutral professional. Mirror Uppy's built-in dark palette but use
 * Freya's exact values so Dashboard bg matches the surrounding modal bg.
 * ══════════════════════════════════════════════════════════════════════════ */

[data-theme="dark"] .uppy-Root {
  color: var(--text-primary);
}
[data-theme="dark"] .uppy-Root .uppy-Dashboard-inner {
  background-color: var(--panel-bg);
  border: 1px solid var(--border);
}
[data-theme="dark"] .uppy-Root .uppy-Dashboard-AddFiles {
  border: 1px dashed var(--border);
}
[data-theme="dark"] .uppy-Root .uppy-Dashboard-AddFiles:hover {
  border-color: var(--accent);
}
[data-theme="dark"] .uppy-Root .uppy-Dashboard-AddFiles-title,
[data-theme="dark"] .uppy-Root .uppy-Dashboard-Item-name,
[data-theme="dark"] .uppy-Root .uppy-Dashboard-Item-fileInfo {
  color: var(--text-primary);
}
[data-theme="dark"] .uppy-Root .uppy-Dashboard-browse {
  color: var(--accent);
}
[data-theme="dark"] .uppy-Root .uppy-c-btn-primary {
  background-color: var(--accent);
  color: var(--text-primary);
}
[data-theme="dark"] .uppy-Root .uppy-c-btn-primary:not(:disabled):hover {
  background-color: var(--accent-hover);
}
[data-theme="dark"] .uppy-Root .uppy-StatusBar {
  background-color: var(--bg-secondary);
  color: var(--text-primary);
}
[data-theme="dark"] .uppy-Root .uppy-StatusBar-progress {
  background-color: var(--accent);
}
[data-theme="dark"] .uppy-Root .uppy-StatusBar-actionBtn--upload {
  background-color: var(--accent);
  color: var(--text-primary);
}
[data-theme="dark"] .uppy-Root .uppy-StatusBar-actionBtn--upload:hover {
  background-color: var(--accent-hover);
}

/* ══════════════════════════════════════════════════════════════════════════
 * C128 — retro terminal green-on-dark. CRT-inspired monochrome green.
 * Error red is shifted toward pink-red (#ff5050) so it reads distinctly
 * against the green-dominant surround rather than blending into "not green."
 * ══════════════════════════════════════════════════════════════════════════ */

[data-theme="c128"] .uppy-Root {
  color: var(--text-primary);  /* #33ff33 */
}
[data-theme="c128"] .uppy-Root .uppy-Dashboard-inner {
  background-color: var(--panel-bg);  /* #0d120d */
  border: 1px solid var(--border);    /* #1a4a1a */
}
[data-theme="c128"] .uppy-Root .uppy-Dashboard-AddFiles {
  border: 1px dashed #1a8a1a;  /* brighter-than-border for dashed visibility */
}
[data-theme="c128"] .uppy-Root .uppy-Dashboard-AddFiles:hover {
  border-color: var(--accent);  /* #33ff33 */
}
[data-theme="c128"] .uppy-Root .uppy-Dashboard-AddFiles-title,
[data-theme="c128"] .uppy-Root .uppy-Dashboard-Item-name,
[data-theme="c128"] .uppy-Root .uppy-Dashboard-Item-fileInfo {
  color: var(--text-primary);  /* #33ff33 */
}
[data-theme="c128"] .uppy-Root .uppy-Dashboard-browse {
  color: var(--accent-hover);  /* #66ff66 — brighter green for link affordance */
  text-decoration: underline;
}
[data-theme="c128"] .uppy-Root .uppy-c-btn-primary {
  background-color: #0a140a;         /* dark bg with green border, matches btn-primary style */
  color: var(--accent);
  border: 1px solid var(--accent);
}
[data-theme="c128"] .uppy-Root .uppy-c-btn-primary:not(:disabled):hover {
  background-color: #122012;
  color: var(--accent-hover);
}
[data-theme="c128"] .uppy-Root .uppy-StatusBar {
  background-color: var(--bg-secondary);
  color: var(--text-primary);
}
[data-theme="c128"] .uppy-Root .uppy-StatusBar-progress {
  background-color: var(--accent);
}
/* Success + error progress-bar states override Uppy's green/red defaults */
[data-theme="c128"] .uppy-Root .uppy-StatusBar.is-complete .uppy-StatusBar-progress {
  background-color: var(--accent);
}
[data-theme="c128"] .uppy-Root .uppy-StatusBar.is-error .uppy-StatusBar-progress {
  background-color: #ff5050;  /* shifted red — stands out against green */
}
[data-theme="c128"] .uppy-Root .uppy-StatusBar-actionBtn--upload {
  background-color: #0a140a;
  color: var(--accent);
}
[data-theme="c128"] .uppy-Root .uppy-StatusBar-actionBtn--upload:hover {
  background-color: #122012;
}

/* ══════════════════════════════════════════════════════════════════════════
 * UR6000 — MUTHR amber industrial. The base palette is red-adjacent
 * (amber/orange), so Uppy's default error red (#e32437) clashes visually.
 * Error state uses a brighter pinkish red (#ff4a6e) that differentiates
 * from the amber baseline without looking "just a darker amber."
 * ══════════════════════════════════════════════════════════════════════════ */

[data-theme="ur6000"] .uppy-Root {
  color: var(--text-primary);  /* #ffb000 */
}
[data-theme="ur6000"] .uppy-Root .uppy-Dashboard-inner {
  background-color: var(--panel-bg);  /* #0f0c00 */
  border: 1px solid var(--border);    /* #3d2e00 */
}
[data-theme="ur6000"] .uppy-Root .uppy-Dashboard-AddFiles {
  border: 1px dashed #996600;  /* brighter dashed than solid border */
}
[data-theme="ur6000"] .uppy-Root .uppy-Dashboard-AddFiles:hover {
  border-color: var(--accent);  /* #ffb000 */
}
[data-theme="ur6000"] .uppy-Root .uppy-Dashboard-AddFiles-title,
[data-theme="ur6000"] .uppy-Root .uppy-Dashboard-Item-name,
[data-theme="ur6000"] .uppy-Root .uppy-Dashboard-Item-fileInfo {
  color: var(--text-primary);
}
[data-theme="ur6000"] .uppy-Root .uppy-Dashboard-browse {
  color: var(--accent-hover);  /* #ffcc44 */
  text-decoration: underline;
}
[data-theme="ur6000"] .uppy-Root .uppy-c-btn-primary {
  background-color: #0d0a00;
  color: var(--accent);
  border: 1px solid var(--accent);
}
[data-theme="ur6000"] .uppy-Root .uppy-c-btn-primary:not(:disabled):hover {
  background-color: #1a1400;
  color: var(--accent-hover);
}
[data-theme="ur6000"] .uppy-Root .uppy-StatusBar {
  background-color: var(--bg-secondary);
  color: var(--text-primary);
}
[data-theme="ur6000"] .uppy-Root .uppy-StatusBar-progress {
  background-color: var(--accent);
}
[data-theme="ur6000"] .uppy-Root .uppy-StatusBar.is-complete .uppy-StatusBar-progress {
  background-color: var(--accent);
}
[data-theme="ur6000"] .uppy-Root .uppy-StatusBar.is-error .uppy-StatusBar-progress {
  background-color: #ff4a6e;  /* pinkish-red — differentiates from amber baseline */
}
[data-theme="ur6000"] .uppy-Root .uppy-StatusBar-actionBtn--upload {
  background-color: #0d0a00;
  color: var(--accent);
}
[data-theme="ur6000"] .uppy-Root .uppy-StatusBar-actionBtn--upload:hover {
  background-color: #1a1400;
}

/* ══════════════════════════════════════════════════════════════════════════
 * HAVEN3019 — LOTR elven aesthetic (Year 3019 Third Age). Ethereal blue,
 * soft greys, similar to Uppy's own dark palette but with a muted-blue accent.
 * ══════════════════════════════════════════════════════════════════════════ */

[data-theme="haven3019"] .uppy-Root {
  color: var(--text-primary);  /* #c8d6e8 */
}
[data-theme="haven3019"] .uppy-Root .uppy-Dashboard-inner {
  background-color: var(--panel-bg);  /* #111820 */
  border: 1px solid var(--border);
}
[data-theme="haven3019"] .uppy-Root .uppy-Dashboard-AddFiles {
  border: 1px dashed var(--border);
}
[data-theme="haven3019"] .uppy-Root .uppy-Dashboard-AddFiles:hover {
  border-color: var(--accent);  /* #7eb8d4 */
}
[data-theme="haven3019"] .uppy-Root .uppy-Dashboard-AddFiles-title,
[data-theme="haven3019"] .uppy-Root .uppy-Dashboard-Item-name,
[data-theme="haven3019"] .uppy-Root .uppy-Dashboard-Item-fileInfo {
  color: var(--text-primary);
}
[data-theme="haven3019"] .uppy-Root .uppy-Dashboard-browse {
  color: var(--accent);
}
[data-theme="haven3019"] .uppy-Root .uppy-c-btn-primary {
  background-color: #0d1520;
  color: var(--accent);
  border: 1px solid var(--accent);
}
[data-theme="haven3019"] .uppy-Root .uppy-c-btn-primary:not(:disabled):hover {
  background-color: #1a2535;
  color: var(--accent-hover);
}
[data-theme="haven3019"] .uppy-Root .uppy-StatusBar {
  background-color: var(--bg-secondary);
  color: var(--text-primary);
}
[data-theme="haven3019"] .uppy-Root .uppy-StatusBar-progress {
  background-color: var(--accent);
}
[data-theme="haven3019"] .uppy-Root .uppy-StatusBar-actionBtn--upload {
  background-color: #0d1520;
  color: var(--accent);
}
[data-theme="haven3019"] .uppy-Root .uppy-StatusBar-actionBtn--upload:hover {
  background-color: #1a2535;
}

/* ══════════════════════════════════════════════════════════════════════════
 * HIGH CONTRAST — bespoke dyslexia-readability accommodation. Not strict
 * WCAG AAA. Strong contrasts, no mid-tones. Text is pure white or near-white
 * on pure-black bg. Interactive elements use the theme's yellow accent
 * (#ffff00) with bold visible borders. Error state uses a distinctly
 * brighter red (#ff8080) plus Uppy's built-in bold/icon treatment so errors
 * signal through multiple channels, not color alone.
 * ══════════════════════════════════════════════════════════════════════════ */

[data-theme="high-contrast"] .uppy-Root {
  color: #ffffff;
}
[data-theme="high-contrast"] .uppy-Root .uppy-Dashboard-inner {
  background-color: #000000;
  border: 2px solid #ffffff;  /* thicker border for visibility */
}
[data-theme="high-contrast"] .uppy-Root .uppy-Dashboard-AddFiles {
  border: 2px dashed #ffffff;  /* thicker dashed, pure white */
}
[data-theme="high-contrast"] .uppy-Root .uppy-Dashboard-AddFiles:hover {
  border-color: #ffff00;
  background-color: #141414;
}
[data-theme="high-contrast"] .uppy-Root .uppy-Dashboard-AddFiles-title,
[data-theme="high-contrast"] .uppy-Root .uppy-Dashboard-Item-name,
[data-theme="high-contrast"] .uppy-Root .uppy-Dashboard-Item-fileInfo {
  color: #ffffff;
  font-weight: 500;
}
[data-theme="high-contrast"] .uppy-Root .uppy-Dashboard-browse {
  color: #ffff00;
  text-decoration: underline;
  font-weight: 600;
}
[data-theme="high-contrast"] .uppy-Root .uppy-c-btn-primary {
  background-color: #ffff00;
  color: #000000;
  border: 2px solid #ffff00;
  font-weight: 600;
}
[data-theme="high-contrast"] .uppy-Root .uppy-c-btn-primary:not(:disabled):hover {
  background-color: #ffffff;
  color: #000000;
  border-color: #ffffff;
}
[data-theme="high-contrast"] .uppy-Root .uppy-StatusBar {
  background-color: #000000;
  color: #ffffff;
  border-top: 1px solid #ffffff;
}
[data-theme="high-contrast"] .uppy-Root .uppy-StatusBar-progress {
  background-color: #ffff00;  /* yellow progress on black — 19.6:1 contrast */
}
/* Error state: brighter red than Uppy's default #e32437. Bold weight
   + Uppy's built-in error icon reinforce the signal without relying on
   color alone (readability-for-dyslexia priority). */
[data-theme="high-contrast"] .uppy-Root .uppy-StatusBar.is-error .uppy-StatusBar-progress {
  background-color: #ff8080;
}
[data-theme="high-contrast"] .uppy-Root .uppy-Dashboard-Item-errorMessage {
  color: #ff8080;
  font-weight: 600;
}
[data-theme="high-contrast"] .uppy-Root .uppy-StatusBar-actionBtn--upload {
  background-color: #ffff00;
  color: #000000;
  font-weight: 600;
}
[data-theme="high-contrast"] .uppy-Root .uppy-StatusBar-actionBtn--upload:hover {
  background-color: #ffffff;
}
