:root {
    --color-primary: #edb228;
    --color-primary-hover: #FF8E00;
    --color-navy: #0b1533;
    --color-accent-blue: #559ad4;
    --color-text-primary: #0f1c3c;
    --color-text-muted: #3a474d;
    --color-surface: #f7f9fa;
    --color-border: #dfe7eb;
    --color-error: #c0392b;
    --gradient-hero: linear-gradient(135deg, #0b1533, #003c9c, #1b79bf);
    --radius-card: 10px;
    --shadow-card: 0 4px 20px rgba(11, 21, 51, 0.10);
    --font-base: "Segoe UI", Roboto, system-ui, -apple-system, sans-serif;
}

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

html, body {
    margin: 0;
    padding: 0;
    font-family: var(--font-base);
    color: var(--color-text-primary);
    background: var(--color-surface);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, p, ul, figure {
    margin: 0;
}

a {
    color: inherit;
}

button {
    font-family: inherit;
}

/* Typography hierarchy */
h1 {
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.15;
    color: var(--color-text-primary);
}

h2 {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--color-text-primary);
    margin-bottom: 1.5rem;
}

h3 {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 0.4rem;
}

p {
    font-size: 1rem;
    line-height: 1.6;
    color: var(--color-text-muted);
}

label {
    display: block;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--color-text-primary);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 0.4rem;
}

/* Radzen button overrides — brand colors, one ghost variant for secondary actions */
.rz-button.rz-primary {
    background-color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    color: #220F34 !important;
    font-weight: 600;
    border-radius: 6px;
    box-shadow: none !important;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

    .rz-button.rz-primary:hover,
    .rz-button.rz-primary:focus {
        background-color: var(--color-primary-hover) !important;
        border-color: var(--color-primary-hover) !important;
        color: #fff !important;
    }

    .rz-button.rz-primary:disabled {
        background-color: #d7dce1 !important;
        border-color: #d7dce1 !important;
        color: #8a97a3 !important;
        box-shadow: none !important;
        cursor: not-allowed;
    }

.rz-button.rz-variant-text,
.rz-button.rz-variant-flat.rz-light,
.rz-button.rz-light {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
    color: var(--color-text-muted) !important;
    font-weight: 500;
}

    .rz-button.rz-variant-text:hover,
    .rz-button.rz-variant-flat.rz-light:hover,
    .rz-button.rz-light:hover {
        background: transparent !important;
        color: var(--color-text-primary) !important;
        text-decoration: underline;
    }

/* Radzen input focus — gold highlight, subtle border at rest */
.rz-textbox,
.rz-numeric input,
.rz-dropdown {
    border: 1px solid var(--color-border) !important;
    border-radius: 6px !important;
    box-shadow: none !important;
}

.rz-textbox:focus,
.rz-numeric input:focus,
.rz-dropdown.rz-state-focused,
.rz-dropdown:focus-within {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 3px rgba(237, 178, 40, 0.22) !important;
    outline: none !important;
}

.rz-radiobutton-list .rz-radiobutton-box {
    border-color: var(--color-border) !important;
}

.rz-radiobutton input:checked + .rz-radiobutton-box {
    border-color: var(--color-primary) !important;
}

    .rz-radiobutton input:checked + .rz-radiobutton-box .rz-radiobutton-icon {
        background-color: var(--color-primary) !important;
    }

/* Inline validation text below fields */
.validation-message {
    display: block;
    color: var(--color-error);
    font-size: 0.82rem;
    margin-top: 0.35rem;
    font-weight: 500;
}
