/* ==========================================================================
   meshbook — DARK theme tokens
   --------------------------------------------------------------------------
   This is the default theme and the closest match to the Universal Hive
   aesthetic Chris picked as the inspiration reference: deep-black base,
   purple / cyan / green accents, subtle glow, glass surfaces.

   All other stylesheets reference these tokens (never raw hex values) so
   swapping themes is a one-line attribute change on <html>.
   ========================================================================== */

:root[data-theme="dark"] {
    /* ---- Fonts (shared across themes; retro.css overrides to monospace) ---- */
    --nv-font-sans:   'Inter', ui-sans-serif, system-ui, sans-serif;
    --nv-font-mono:   'JetBrains Mono', ui-monospace, monospace;

    /* ---- Surfaces (from furthest-back to closest-to-user) ---- */
    --nv-bg:               #050505;
    --nv-bg-image:         radial-gradient(
                               1200px 800px at 85% -20%,
                               rgba(180, 50, 255, 0.18),
                               transparent 60%
                           ),
                           radial-gradient(
                               1000px 600px at -10% 120%,
                               rgba(0, 212, 255, 0.12),
                               transparent 55%
                           );
    --nv-bg-elevated:      #0a0a0a;
    --nv-surface:          rgba(18, 18, 18, 0.80);      /* glass base */
    --nv-surface-solid:    #121212;                      /* when blur isn't wanted */
    --nv-surface-hover:    rgba(26, 26, 26, 0.90);
    --nv-surface-active:   rgba(34, 34, 34, 0.95);
    --nv-border:           rgba(255, 255, 255, 0.08);
    --nv-border-strong:    rgba(255, 255, 255, 0.18);

    /* ---- Text ---- */
    --nv-text:             #ffffff;
    --nv-text-secondary:   #a1a1aa;
    --nv-text-tertiary:    #71717a;
    --nv-text-muted:       #52525b;
    --nv-text-inverse:     #050505;

    /* ---- Accent palette ---- */
    --nv-accent:           #b432ff;                     /* purple */
    --nv-accent-hover:     #c85aff;
    --nv-accent-strong:    #8a1fd6;
    --nv-accent-2:         #00d4ff;                     /* cyan */
    --nv-accent-3:         #00ff64;                     /* green */
    --nv-accent-4:         #ffc107;                     /* amber */

    /* ---- Semantic colours ---- */
    --nv-success:          #00ff64;
    --nv-success-bg:       rgba(0, 255, 100, 0.18);
    --nv-warning:          #ffc107;
    --nv-warning-bg:       rgba(255, 193, 7, 0.18);
    --nv-danger:           #ff4757;
    --nv-danger-bg:        rgba(255, 71, 87, 0.18);
    --nv-info:             #00d4ff;
    --nv-info-bg:          rgba(0, 212, 255, 0.18);

    /* ---- Gradient for hero text / primary buttons ---- */
    --nv-gradient-accent:  linear-gradient(135deg, #b432ff 0%, #00d4ff 100%);

    /* ---- Glass / effects ---- */
    --nv-glass-blur:       24px;
    --nv-shadow-window:    0 25px 50px -12px rgba(0, 0, 0, 0.80),
                           0 0 1px rgba(255, 255, 255, 0.10);
    --nv-shadow-card:      0 10px 30px -10px rgba(0, 0, 0, 0.60),
                           0 0 1px rgba(255, 255, 255, 0.06);
    --nv-glow-accent:      0 0 24px rgba(180, 50, 255, 0.35),
                           0 0 48px rgba(180, 50, 255, 0.10);
    --nv-glow-accent-2:    0 0 24px rgba(0, 212, 255, 0.30);

    /* ---- Motion ---- */
    --nv-ease-spring:      cubic-bezier(0.16, 1, 0.3, 1);
    --nv-duration-fast:    0.12s;
    --nv-duration-medium:  0.22s;
    --nv-duration-slow:    0.45s;

    /* ---- Scrollbar colours ---- */
    --nv-scrollbar-thumb:       rgba(255, 255, 255, 0.12);
    --nv-scrollbar-thumb-hover: rgba(255, 255, 255, 0.22);

    /* ---- Selection ---- */
    --nv-selection-bg:     rgba(180, 50, 255, 0.35);
    --nv-selection-fg:     #ffffff;

    /* ---- Radii ---- */
    --nv-radius-sm:        0.375rem;
    --nv-radius-md:        0.5rem;
    --nv-radius-lg:        0.75rem;
    --nv-radius-xl:        1rem;
    --nv-radius-pill:      9999px;
}
