/* Design tokens for the UzEx Global Cabinet shell.
   Consumed by radzen-overrides.css, layout.css and app.css. */
:root {
    /* Navy (sidebar) */
    --uzex-navy-900: #0b1a30;
    --uzex-navy-800: #10233d;
    --uzex-navy-700: #1a3050;
    --uzex-navy-600: #253f66;

    /* Blue (accent) */
    --uzex-blue-700: #123a86;
    --uzex-blue-600: #1a56c4;
    --uzex-blue-500: #2f6fe0;
    --uzex-blue-100: #e6eefb;

    /* Neutral surfaces */
    --uzex-surface: #ffffff;
    --uzex-surface-alt: #f5f7fa;
    --uzex-border: #e2e6ee;

    /* Stronger border, for boundaries that must stay clearly readable as a
       distinct edge rather than a soft hint - panel/dialog/grid outlines,
       grid row separators, step boundaries. Deliberately close to
       --uzex-border in light mode (already good, must not get heavier);
       meaningfully lighter than --uzex-border in dark mode, where the
       default border was too close in luminance to the surface behind it
       for these specific structural uses (see dark override below). */
    --uzex-border-strong: #cbd3e0;

    /* Text */
    --uzex-text: #101828;
    --uzex-text-muted: #5b6577;
    --uzex-text-inverse: #eef2f9;
    --uzex-text-inverse-muted: #93a3bd;

    /* Elevation */
    --uzex-shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.06);
    --uzex-shadow-md: 0 8px 24px rgba(16, 24, 40, 0.12);

    /* Radius */
    --uzex-radius-sm: 6px;
    --uzex-radius-md: 10px;
    --uzex-radius-panel: 16px;
    --uzex-radius-control: 12px;
    --uzex-radius-button: 10px;
    --uzex-radius-nav: 10px;
    --uzex-radius-badge: 8px;
    --uzex-radius-full: 9999px;

    /* Data table (RadzenDataGrid) - one reusable standard consumed by
       radzen-overrides.css and applied automatically to every management
       grid (Roles, Users, and future News Categories/Media/News/Audit
       Logs). Every value below is composed from tokens already defined
       above, so it adapts to Humanistic Dark on its own - no separate
       dark block is needed here (see the data-theme block further down
       for why those base tokens themselves flip per theme). */
    --uzex-table-bg: var(--uzex-surface);
    --uzex-table-header-bg: var(--uzex-surface-alt);
    --uzex-table-header-text: var(--uzex-text-muted);
    --uzex-table-row-bg: var(--uzex-surface);
    --uzex-table-row-alt-bg: var(--uzex-surface-alt);
    --uzex-table-hover-bg: var(--uzex-blue-100);
    --uzex-table-selected-bg: var(--uzex-blue-100);
    --uzex-table-selected-text: var(--uzex-blue-700);
    --uzex-table-border: var(--uzex-border-strong);
    --uzex-table-radius: 12px;
    --uzex-table-cell-padding: 0.3125rem 0.75rem;
    --uzex-table-header-cell-padding: 0.5rem 0.75rem;
    --uzex-table-row-transition: background-color 0.15s ease;

    /* HTTP method badges (Audit Logs) - Swagger-style, method-specific
       colors. Values are deliberately not derived from --uzex-blue-*
       (those are already used for hover/selection elsewhere), so each
       method reads as a distinct color at a glance. */
    --uzex-method-get-bg: #e6f0fd;
    --uzex-method-get-text: #1a56c4;
    --uzex-method-post-bg: #e3f6ea;
    --uzex-method-post-text: #157347;
    --uzex-method-put-bg: #fdf1de;
    --uzex-method-put-text: #b3670c;
    --uzex-method-patch-bg: #f1e8fd;
    --uzex-method-patch-text: #7c3aed;
    --uzex-method-delete-bg: #fbe7e8;
    --uzex-method-delete-text: #c22b32;
    --uzex-method-other-bg: var(--uzex-surface-alt);
    --uzex-method-other-text: var(--uzex-text-muted);

    /* Spacing */
    --uzex-space-1: 0.25rem;
    --uzex-space-2: 0.5rem;
    --uzex-space-3: 0.75rem;
    --uzex-space-4: 1rem;
    --uzex-space-6: 1.5rem;
    --uzex-space-8: 2rem;

    /* Shell metrics */
    --uzex-sidebar-width: 270px;
    --uzex-sidebar-width-compact: 80px;
    --uzex-header-height: 60px;
    --uzex-mobile-breakpoint: 768px;
    --uzex-tablet-breakpoint: 1024px;

    /* Typography */
    --uzex-font-family: "Segoe UI", Roboto, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;

    /* Layering */
    --uzex-z-backdrop: 900;
}

/* Dark-mode overrides, applied via the data-theme attribute that
   Core/Startup/ClientPreferences sets on <html> before first paint and
   whenever RadzenAppearanceToggle switches theme (see App.razor). The
   navy sidebar tokens above are intentionally shared by both modes. */
:root[data-theme="dark"] {
    --uzex-surface: #151b26;
    --uzex-surface-alt: #10141c;
    --uzex-border: #29323f;
    --uzex-border-strong: #3d4b60;

    --uzex-text: #eef2f9;
    --uzex-text-muted: #97a2b5;

    --uzex-blue-700: #2a5cc7;
    --uzex-blue-600: #3b74e0;
    --uzex-blue-500: #5b8ff0;
    --uzex-blue-100: rgba(59, 116, 224, 0.18);

    --uzex-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.35);
    --uzex-shadow-md: 0 8px 24px rgba(0, 0, 0, 0.45);

    /* HTTP method badges - darker/desaturated surfaces with light text,
       kept distinct per method and readable against the dark panel bg. */
    --uzex-method-get-bg: rgba(59, 116, 224, 0.22);
    --uzex-method-get-text: #8bb4f7;
    --uzex-method-post-bg: rgba(34, 197, 118, 0.18);
    --uzex-method-post-text: #5fd996;
    --uzex-method-put-bg: rgba(230, 158, 27, 0.2);
    --uzex-method-put-text: #f0b955;
    --uzex-method-patch-bg: rgba(150, 92, 234, 0.22);
    --uzex-method-patch-text: #c1a2f7;
    --uzex-method-delete-bg: rgba(228, 71, 82, 0.2);
    --uzex-method-delete-text: #f38f96;
    --uzex-method-other-bg: var(--uzex-surface-alt);
    --uzex-method-other-text: var(--uzex-text-muted);
}
