:root {
    --rz-primary: #ff5a12;
    --rz-primary-light: #ff7a00;
    --rz-primary-lighter: #ff9a45;
    --rz-primary-dark: #df3210;
    --rz-primary-darker: #b9280d;
    --rz-on-primary: #fff;
    --rz-secondary: #262626;
    --rz-on-secondary: #f5f5f5;
    --rz-success: #8fbd16;
    --rz-on-success: #071000;
    --rz-warning: #e9a83e;
    --rz-danger: #ff6245;
    --rz-info: #ff8b35;
    --rz-base-50: #070707;
    --rz-base-100: #0b0b0b;
    --rz-base-200: #111;
    --rz-base-300: #171717;
    --rz-base-400: #292929;
    --rz-base-500: #4a4a4a;
    --rz-base-600: #7f7f7f;
    --rz-base-700: #a8a8a8;
    --rz-base-800: #d2d2d2;
    --rz-base-900: #f5f5f5;
    --rz-base-background-color: #171717;
    --rz-text-color: #f5f5f5;
    --rz-text-secondary-color: #a8a8a8;
    --rz-body-background-color: #070707;
    --rz-panel-background-color: #111;
    --rz-border-color: rgba(255, 255, 255, .1);
    --rz-outline-color: rgba(255, 90, 18, .55);
    --rz-input-hover-background-color: #171717;
    --rz-input-focus-background-color: #171717;
    --rz-input-hover-shadow: inset 0 0 0 1px rgba(255, 122, 0, .35);
    --rz-input-focus-shadow: inset 0 0 0 1px #ff7a00;
    --rz-input-focus-border: 1px solid #ff7a00;
    --rz-input-focus-outline: none;
    --rz-border-radius: 14px;
    --rz-button-border-radius: 14px;
    --rz-input-border-radius: 10px;
    --rz-card-border-radius: 20px;
    --rz-dialog-border-radius: 20px;
    --rz-font-family: "DM Sans", sans-serif;
    --rz-header-background-color: rgba(8, 8, 8, .96);
    --rz-header-color: #f5f5f5;
    --rz-footer-background-color: #070707;
    --rz-footer-color: #a8a8a8;
    --rz-sidebar-background-color: #111;
    --rz-menu-background-color: transparent;
    --rz-menu-color: #b9b9b9;
    --rz-menu-hover-background-color: rgba(255, 122, 0, .08);
    --rz-menu-hover-color: #fff;
    --rz-menu-active-background-color: transparent;
    --rz-menu-active-color: #fff;
    --rz-grid-background-color: #111;
    --rz-grid-header-background-color: #171717;
    --rz-grid-header-color: #a8a8a8;
    --rz-grid-border: 1px solid rgba(255, 255, 255, .1);
}

.rz-layout {
    min-height: 100vh;
    background: var(--cream);
}

.rz-header {
    position: relative;
    z-index: 20;
    height: auto;
    padding: 0;
    box-shadow: none;
}

.rz-body {
    padding: 0;
    overflow: visible;
}

.rz-footer.site-footer {
    padding: 24px max(4vw, 30px);
}

.rz-button.rz-primary {
    background: linear-gradient(135deg, #ff3210, #ff7a00);
    border: 0;
    box-shadow: none;
}

.rz-button.rz-primary.rz-variant-text {
    background: transparent;
    color: #ff7a00;
}

.rz-button.rz-secondary,
.rz-button.rz-light {
    background: #171717;
    border: 1px solid var(--line);
    color: #f5f5f5;
}

.rz-button.rz-danger {
    background: transparent;
    border: 1px solid rgba(255, 122, 0, .45);
    color: #ff7a00;
}

.rz-button.rz-button-sm {
    min-height: 34px;
    padding: 6px 10px;
    border-radius: 9px;
    font-size: 12px;
}

.rz-button.modal-close {
    width: 34px;
    min-width: 34px;
    height: 34px;
    min-height: 34px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #242424;
    color: #fff;
}

.topnav .rz-menu {
    align-self: stretch;
    border: 0;
    background: transparent;
}

.topnav .rz-menu-list,
.topnav .rz-navigation-item,
.topnav .rz-navigation-item-wrapper {
    height: 100%;
}

.topnav .rz-navigation-item-link {
    padding: 0 18px;
    font-weight: 650;
}

.topnav .rz-navigation-item-active,
.topnav .rz-navigation-item-active .rz-navigation-item-wrapper,
.topnav .rz-navigation-item-wrapper-active,
.topnav .rz-navigation-item-wrapper-active .rz-navigation-item-link {
    background: transparent !important;
    box-shadow: none !important;
}

.topnav .rz-navigation-item-wrapper-active {
    border-bottom: 3px solid #ff7a00;
}

.topnav .rz-navigation-item-wrapper-active .rz-navigation-item-link {
    color: #fff;
}

.academy-profile-menu .rz-profile-menu {
    min-width: 0;
}

.rz-dialog,
.rz-card,
.rz-data-grid {
    border: 1px solid var(--line);
    box-shadow: 0 22px 70px rgba(0, 0, 0, .28);
}

.rz-dialog,
.rz-dialog-titlebar {
    background: #111;
    color: #f5f5f5;
}

.rz-dialog .rz-dialog-title,
.rz-dialog .rz-dialog-titlebar-close,
.rz-dialog .rz-dialog-titlebar-close .rzi {
    color: #f5f5f5;
}

.rz-data-grid small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
}

.rz-data-grid .rz-grid-table .rz-data-row > td {
    background: #111 !important;
    color: #f5f5f5;
}

.rz-data-grid .rz-grid-table .rz-data-row:hover > td {
    background: #171717 !important;
}

.rz-data-grid .rz-button + .rz-button {
    margin-left: 5px;
}

.companies-grid .rz-numeric {
    box-sizing: border-box;
    width: 110px;
    height: 42px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--paper);
    overflow: visible;
}

.companies-grid .rz-numeric .rz-numeric-input {
    color: var(--ink);
}

.companies-grid .rz-grid-table {
    width: 100%;
    table-layout: fixed;
}

.companies-grid .rz-grid-table :is(th, td):nth-child(1) { width: 23%; }
.companies-grid .rz-grid-table :is(th, td):nth-child(2) { width: 19%; }
.companies-grid .rz-grid-table :is(th, td):nth-child(3) { width: 12%; }
.companies-grid .rz-grid-table :is(th, td):nth-child(4) { width: 12%; }
.companies-grid .rz-grid-table :is(th, td):nth-child(5) { width: 34%; }

.companies-grid .company-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    min-width: 0;
}

.companies-grid .company-actions .rz-button {
    max-width: 100%;
}

.companies-grid .company-actions .rz-button + .rz-button {
    margin-left: 0;
}

.employees-grid .employee-enrollment {
    min-width: 220px;
}

.employees-grid .employee-course summary {
    display: flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}

.employees-grid .employee-course ul {
    margin: 4px 0 8px;
    padding-left: 18px;
}

.employees-grid .employee-course .rz-button {
    min-width: 28px;
    height: 28px;
}

.rz-dialog-mask {
    background-color: rgba(0, 0, 0, .76);
    backdrop-filter: blur(4px);
}
body:has(.rz-dialog) .app-shell { filter: blur(4px); }

.rz-inputtext,
.rz-dropdown,
.rz-spinner,
.rz-textarea {
    background: #171717;
    border-color: var(--line);
    color: #f5f5f5;
}

.academy-field {
    display: grid;
    gap: .4rem;
}

.academy-field > label {
    color: #c8c8c8;
    font-size: .875rem;
    font-weight: 600;
}

.academy-field--left { grid-template-columns: minmax(10rem, 35%) 1fr; align-items: center; }
.academy-field--left > label { text-align: right; }
.academy-field-helper { color: #a8a8a8; font-size: .8rem; }
.academy-field--left > .academy-field-helper { grid-column: 2; }

.rz-dialog-mask {
    background: rgba(0, 0, 0, .76) !important;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.rz-alert {
    --rz-alert-color: #f5f5f5;
    --rz-alert-title-color: #f5f5f5;
    --rz-alert-box-shadow: none;
    border: 1px solid var(--academy-alert-border, var(--line));
    border-radius: 8px;
}

.rz-alert.rz-info {
    --rz-alert-background-color: #29140b;
    --rz-alert-icon-color: #ff995a;
    --academy-alert-border: rgba(255, 122, 0, .65);
}

.rz-alert.rz-success {
    --rz-alert-background-color: #13200e;
    --rz-alert-icon-color: #b6df58;
    --academy-alert-border: rgba(143, 189, 22, .65);
}

.rz-alert.rz-warning {
    --rz-alert-background-color: #28200d;
    --rz-alert-icon-color: #f0bd61;
    --academy-alert-border: rgba(233, 168, 62, .65);
}

.rz-alert.rz-danger {
    --rz-alert-background-color: #29100f;
    --rz-alert-icon-color: #ff9a86;
    --academy-alert-border: rgba(255, 121, 95, .65);
}

.rz-progressbar {
    background: #292929;
    border-radius: 999px;
}

.rz-progressbar-value {
    background: #8fbd16;
}

.lesson-accordion.rz-accordion,
.step-accordion.rz-accordion {
    display: grid;
    gap: 10px;
    background: transparent;
}

.lesson-accordion > .rz-accordion-items > .rz-accordion-item,
.step-accordion > .rz-accordion-items > .rz-accordion-item {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #121212;
}

.lesson-accordion .rz-accordion-header,
.step-accordion .rz-accordion-header {
    background: #121212;
    color: #f5f5f5;
    font-weight: 800;
}

.lesson-accordion .rz-accordion-content,
.step-accordion .rz-accordion-content {
    padding: 0;
    border-top: 1px solid var(--line);
    background: #121212;
}

.quiz-radio-list {
    display: grid;
    gap: 7px;
}

.quiz-radio-list .rz-radio-btn {
    width: 100%;
    padding: 11px;
    border-radius: 7px;
    background: #171717;
}

@media (max-width: 900px) {
    .topnav {
        gap: 20px;
    }

    .section-title {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .section-title .admin-actions {
        width: 100%;
        flex-wrap: wrap;
    }

    .topnav .brand,
    .topnav .profile {
        position: relative;
        z-index: 52;
    }

    .topnav .rz-menu.navlinks {
        position: absolute;
        z-index: 51;
        inset: 0 0 auto;
        display: flex;
        width: 100%;
        min-height: 78px;
        padding: 0 18px 12px;
        flex-direction: column;
        align-items: stretch;
        background: transparent;
        pointer-events: none;
    }

    .topnav .rz-menu.navlinks.rz-menu-open {
        background: linear-gradient(to bottom, transparent 78px, #0a0a0a 78px);
        border-bottom: 1px solid var(--line);
        box-shadow: 0 18px 30px rgba(0, 0, 0, .45);
    }

    .topnav .rz-menu.navlinks .rz-menu-toggle {
        align-self: flex-start;
        display: inline-flex;
        margin: 18px 0 18px 152px;
        pointer-events: auto;
    }

    .topnav .rz-menu.navlinks > .rz-navigation-item {
        width: 100%;
        height: auto;
        border-top: 1px solid var(--line);
        pointer-events: auto;
    }

    .topnav .rz-menu.navlinks > .rz-navigation-item .rz-navigation-item-wrapper {
        height: auto;
    }

    .topnav .rz-menu.navlinks > .rz-navigation-item .rz-navigation-item-link {
        padding: 14px 8px;
    }

    .rz-data-grid .rz-button + .rz-button {
        margin-top: 5px;
        margin-left: 0;
    }
}
