:root {
        --nx-blue: #314A8E;
    --nx-yellow: #FFCF02;

            --nx-white:        #FFFFFF;
    --nx-grey-soft:    #F5F5FE;      --nx-grey-border:  #E5E5E5;      --nx-grey-muted:   #666666;      --nx-grey-strong:  #3A3A3A;      --nx-black:        #161616;
        --nx-primary-50:   #eef2fb;      --nx-primary-100:  #d8e0f3;      --nx-primary-200:  #b5c4e6;      --nx-primary-300:  #8da6d6;      --nx-primary-400:  #5e7bc0;      --nx-primary-500:  #314A8E;      --nx-primary-600:  #243970;      --nx-primary-700:  #1a2a55;      --nx-primary-800:  #142142;      --nx-primary-900:  #0e1730;
        --nx-accent-50:    #FFF9D8;      --nx-accent-100:   #FFEFA3;      --nx-accent-400:   #FFCF02;      --nx-accent-500:   #e6bb01;      --nx-accent-600:   #c9a300;      --nx-accent-700:   #6b5500;
        --nx-success-500:  #18753C;      --nx-success-50:   #E3FDEB;
    --nx-warning-500:  #B34000;
    --nx-warning-50:   #FFE9E5;
    --nx-danger-500:   #CE0500;
    --nx-danger-50:    #FFE9E9;
    --nx-info-500:     #0063CB;
    --nx-info-600:     #004C9B;      --nx-info-50:      #E8EDFF;

        --nx-surface:        var(--nx-white);
    --nx-surface-muted:  var(--nx-grey-soft);
    --nx-surface-sunken: #ECECF1;
    --nx-surface-inverse: var(--nx-primary-700);

        --nx-text:        var(--nx-black);
    --nx-text-muted:  var(--nx-grey-muted);
    --nx-text-subtle: #929292;
    --nx-text-on-primary: var(--nx-white);
    --nx-text-on-accent:  var(--nx-black);

        --nx-border:        var(--nx-grey-border);
    --nx-border-strong: #cccccc;
    --nx-border-focus:  var(--nx-primary-500);

            --nx-font-sans: 'Marianne', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
    --nx-font-display: 'Marianne', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --nx-font-quote: 'Spectral', Georgia, 'Times New Roman', serif;

        --nx-text-xs:   0.75rem;       --nx-text-sm:   0.875rem;      --nx-text-base: 1rem;          --nx-text-md:   1.125rem;      --nx-text-lg:   1.25rem;       --nx-text-xl:   1.5rem;        --nx-text-2xl:  2rem;          --nx-text-3xl:  2.5rem;        --nx-text-h1-mobile: 1.75rem;
    --nx-fw-light:    300;
    --nx-fw-normal:   400;
    --nx-fw-medium:   500;
    --nx-fw-semibold: 600;
    --nx-fw-bold:     700;

    --nx-leading-tight: 1.2;
    --nx-leading-snug:  1.4;
    --nx-leading-base:  1.5;       --nx-leading-loose: 1.6;

        --nx-space-0:  0;
    --nx-space-1:  0.25rem;      --nx-space-2:  0.5rem;       --nx-space-3:  0.75rem;      --nx-space-4:  1rem;         --nx-space-5:  1.25rem;      --nx-space-6:  1.5rem;       --nx-space-7:  1.75rem;      --nx-space-8:  2rem;         --nx-space-10: 2.5rem;       --nx-space-12: 3rem;         --nx-space-16: 4rem;         --nx-space-20: 5rem;         --nx-space-24: 6rem;
        --nx-radius-xs:   2px;
    --nx-radius-sm:   4px;
    --nx-radius-md:   6px;
    --nx-radius-lg:   8px;       --nx-radius-pill: 9999px;

        --nx-shadow-xs:  0 1px 2px rgba(15, 23, 42, 0.06);
    --nx-shadow-sm:  0 1px 2px rgba(15, 23, 42, 0.05), 0 4px 12px rgba(15, 23, 42, 0.06);
    --nx-shadow-md:  0 2px 4px rgba(15, 23, 42, 0.06), 0 8px 24px rgba(15, 23, 42, 0.10);
    --nx-shadow-lg:  0 4px 8px rgba(15, 23, 42, 0.08), 0 16px 40px rgba(15, 23, 42, 0.14);
    --nx-shadow-xl:  0 8px 16px rgba(15, 23, 42, 0.10), 0 24px 56px rgba(15, 23, 42, 0.18);
        --nx-shadow-hover: 0 8px 24px -8px rgba(49, 74, 142, 0.25), 0 4px 12px rgba(15, 23, 42, 0.08);
    --nx-shadow-hover-lg: 0 16px 40px -12px rgba(49, 74, 142, 0.30), 0 8px 16px rgba(15, 23, 42, 0.10);
        --nx-shadow-card: 0 1px 2px rgba(20, 33, 66, 0.05), 0 6px 18px -4px rgba(20, 33, 66, 0.12);
    --nx-shadow-card-hover: 0 4px 10px rgba(20, 33, 66, 0.08), 0 20px 44px -12px rgba(20, 33, 66, 0.22);

        --nx-ring-primary: 0 0 0 2px var(--nx-white), 0 0 0 4px var(--nx-primary-500);
    --nx-ring-danger:  0 0 0 2px var(--nx-white), 0 0 0 4px var(--nx-danger-500);

        --nx-trans-fast: 120ms ease;
    --nx-trans-base: 200ms ease;
    --nx-trans-slow: 320ms ease;

        --nx-container-sm: 640px;
    --nx-container-md: 960px;
    --nx-container-lg: 1200px;
    --nx-container-xl: 1280px;
    --nx-container-2xl: 1440px;

    --nx-navbar-height: 72px;
    --nx-navbar-height-mobile: 60px;

    --nx-z-dropdown: 1000;
    --nx-z-sticky:   1020;
    --nx-z-fixed:    1030;
    --nx-z-overlay:  1040;
    --nx-z-modal:    1050;
    --nx-z-toast:    1080;
    --nx-z-tooltip:  1090;
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --nx-trans-fast: 0ms;
        --nx-trans-base: 0ms;
        --nx-trans-slow: 0ms;
    }
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    font-family: var(--nx-font-sans);
    color: var(--nx-text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

::selection {
    background: var(--nx-primary-500);
    color: var(--nx-white);
}

html, body {
    max-width: 100%;
}

img, picture, svg, video, canvas, iframe, embed, object {
    max-width: 100%;
}
img, picture, svg, video, canvas { height: auto; }

body {
    overflow-wrap: break-word;
    word-wrap: break-word;
}

table { max-width: 100%; }

@media (max-width: 768px) {
    a.nx-btn,
    button.nx-btn,
    .nx-btn {
        min-height: 44px;
    }
}
