:root {
    --rpns-dx-surface: #fffdf8;
    --rpns-dx-surface-alt: #f6efe5;
    --rpns-dx-surface-muted: #f3f0ea;
    --rpns-dx-border: #c9bba7;
    --rpns-dx-border-strong: #9f2b26;
    --rpns-dx-accent: #9f2b26;
    --rpns-dx-accent-dark: #7f211d;
    --rpns-dx-accent-soft: rgba(159, 43, 38, 0.1);
    --rpns-dx-highlight: #ffcc00;
    --rpns-dx-highlight-soft: rgba(255, 204, 0, 0.22);
    --rpns-dx-text: #111111;
    --rpns-dx-text-muted: #5e4f43;
    --rpns-dx-success: #1f5a3f;
    --rpns-dx-danger: #8f1414;
    --rpns-dx-shadow: 0 12px 28px rgba(41, 24, 16, 0.12);
    --rpns-dx-shadow-soft: 0 6px 18px rgba(41, 24, 16, 0.08);

    --dx-texteditor-color-text: var(--rpns-dx-text);
    --dx-texteditor-color-label: var(--rpns-dx-text-muted);
}

body.rpns-body .dx-viewport,
body.rpns-body .dx-widget,
body.rpns-body .dx-overlay,
body.rpns-body .dx-overlay-wrapper,
body.rpns-body .dx-theme-generic-typography {
    color: var(--rpns-dx-text);
    font-family: var(--rpns-font-base);
}

body.rpns-body .dx-theme-generic-typography a,
body.rpns-body .dx-link {
    color: var(--rpns-dx-accent);
}

body.rpns-body .dx-link:hover {
    color: var(--rpns-dx-accent-dark);
}

body.rpns-body .dx-icon {
    color: inherit;
}

body.rpns-body .dx-widget,
body.rpns-body .dx-overlay-content,
body.rpns-body .dx-datagrid,
body.rpns-body .dx-treeview,
body.rpns-body .dx-list,
body.rpns-body .dx-popup-content,
body.rpns-body .dx-menu-base {
    border-color: var(--rpns-dx-border);
}

body.rpns-body .dx-field-item-label-text,
body.rpns-body .dx-field-item-label-content,
body.rpns-body .dx-form-group-caption,
body.rpns-body .dx-datagrid-text-content,
body.rpns-body .dx-list-group-header,
body.rpns-body .dx-tab-text,
body.rpns-body .dx-toolbar-label {
    font-family: var(--rpns-font-ui);
    letter-spacing: 0.03em;
}

body.rpns-body .dx-texteditor,
body.rpns-body .dx-dropdowneditor,
body.rpns-body .dx-searchbox,
body.rpns-body .dx-tagbox,
body.rpns-body .dx-datebox,
body.rpns-body .dx-numberbox,
body.rpns-body .dx-colorbox {
    background: var(--rpns-dx-surface);
    border: 1px solid var(--rpns-dx-border);
    border-radius: 14px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

body.rpns-body .dx-texteditor-input,
body.rpns-body .dx-placeholder,
body.rpns-body .dx-texteditor-input::placeholder {
    color: var(--rpns-dx-text);
}

body.rpns-body .dx-placeholder::before,
body.rpns-body .dx-texteditor .dx-placeholder {
    color: var(--rpns-dx-text-muted);
}

body.rpns-body .dx-editor-filled,
body.rpns-body .dx-editor-outlined {
    background: var(--rpns-dx-surface);
}

body.rpns-body .dx-state-hover.dx-texteditor,
body.rpns-body .dx-texteditor.dx-state-hover,
body.rpns-body .dx-dropdowneditor.dx-state-hover {
    border-color: #b98968;
    background: #fffaf1;
}

body.rpns-body .dx-state-focused.dx-texteditor,
body.rpns-body .dx-texteditor.dx-state-focused,
body.rpns-body .dx-dropdowneditor.dx-state-focused,
body.rpns-body .dx-editor-filled.dx-state-focused,
body.rpns-body .dx-editor-outlined.dx-state-focused {
    border-color: var(--rpns-dx-border-strong);
    box-shadow: 0 0 0 3px var(--rpns-dx-highlight-soft), 0 0 0 1px var(--rpns-dx-border-strong);
}

body.rpns-body .dx-dropdowneditor-button,
body.rpns-body .dx-texteditor-buttons-container {
    border-radius: 0 14px 14px 0;
}

body.rpns-body .dx-button,
body.rpns-body .dx-button-has-icon,
body.rpns-body .dx-calendar-navigator .dx-button,
body.rpns-body .dx-popup-done,
body.rpns-body .dx-popup-cancel {
    border-radius: 999px;
    font-family: var(--rpns-font-ui);
    font-weight: 600;
    letter-spacing: 0.04em;
}

body.rpns-body .dx-button-mode-contained,
body.rpns-body .dx-button-default,
body.rpns-body .dx-button-success,
body.rpns-body .dx-button-danger {
    border: 1px solid transparent;
    box-shadow: var(--rpns-dx-shadow-soft);
}

body.rpns-body .dx-button-mode-contained.dx-button-default,
body.rpns-body .dx-button-mode-contained.dx-button-normal,
body.rpns-body .dx-popup-done,
body.rpns-body .dx-fileuploader-button {
    background: linear-gradient(180deg, #b63a33 0%, var(--rpns-dx-accent) 100%);
    color: #ffffff;
}

body.rpns-body .dx-button-mode-contained.dx-button-default .dx-icon,
body.rpns-body .dx-button-mode-contained.dx-button-normal .dx-icon,
body.rpns-body .dx-popup-done .dx-icon,
body.rpns-body .dx-fileuploader-button .dx-icon {
    color: #ffffff;
}

body.rpns-body .dx-button-mode-contained.dx-button-success {
    background: linear-gradient(180deg, #2c714e 0%, var(--rpns-dx-success) 100%);
    color: #ffffff;
}

body.rpns-body .dx-button-mode-contained.dx-button-danger {
    background: linear-gradient(180deg, #b22828 0%, var(--rpns-dx-danger) 100%);
    color: #ffffff;
}

body.rpns-body .dx-button-mode-outlined,
body.rpns-body .dx-button-mode-text {
    border-color: rgba(159, 43, 38, 0.25);
    color: var(--rpns-dx-accent);
    background: rgba(255, 255, 255, 0.7);
}

body.rpns-body .dx-button.dx-state-hover,
body.rpns-body .dx-button.dx-state-focused {
    box-shadow: 0 0 0 3px var(--rpns-dx-highlight-soft), var(--rpns-dx-shadow-soft);
}

body.rpns-body .dx-button-mode-contained.dx-state-hover,
body.rpns-body .dx-button-mode-contained.dx-state-active {
    background: linear-gradient(180deg, #8f2d28 0%, var(--rpns-dx-accent-dark) 100%);
}

body.rpns-body .dx-checkbox-icon,
body.rpns-body .dx-radiobutton-icon,
body.rpns-body .dx-switch-handle,
body.rpns-body .dx-switch-container {
    border-color: var(--rpns-dx-border);
}

body.rpns-body .dx-checkbox-checked .dx-checkbox-icon,
body.rpns-body .dx-radiobutton-checked .dx-radiobutton-icon-dot,
body.rpns-body .dx-switch-on .dx-switch-handle {
    background-color: var(--rpns-dx-accent);
}

body.rpns-body .dx-checkbox-checked .dx-checkbox-icon,
body.rpns-body .dx-radiobutton-checked .dx-radiobutton-icon,
body.rpns-body .dx-switch-on .dx-switch-container {
    border-color: var(--rpns-dx-accent);
}

body.rpns-body .dx-tabpanel,
body.rpns-body .dx-tabs-wrapper,
body.rpns-body .dx-tabs,
body.rpns-body .dx-tabpanel-container {
    background: transparent;
}

body.rpns-body .dx-tab {
    min-height: 46px;
    padding-inline: 1rem;
    border-radius: 12px 12px 0 0;
    color: var(--rpns-dx-text-muted);
}

body.rpns-body .dx-tab.dx-state-hover {
    background: rgba(159, 43, 38, 0.06);
    color: var(--rpns-dx-accent);
}

body.rpns-body .dx-tab-selected,
body.rpns-body .dx-tab-selected.dx-state-focused {
    background: linear-gradient(180deg, rgba(159, 43, 38, 0.08) 0%, rgba(159, 43, 38, 0.14) 100%);
    color: var(--rpns-dx-accent);
}

body.rpns-body .dx-tabs-indicator {
    background-color: var(--rpns-dx-highlight);
    height: 3px;
    border-radius: 999px;
}

body.rpns-body .dx-popup-content,
body.rpns-body .dx-popup-normal,
body.rpns-body .dx-overlay-content,
body.rpns-body .dx-menu-base,
body.rpns-body .dx-context-menu .dx-submenu,
body.rpns-body .dx-dropdownlist-popup-wrapper .dx-overlay-content,
body.rpns-body .dx-lookup-popup-wrapper .dx-overlay-content {
    background: var(--rpns-dx-surface);
    border: 1px solid var(--rpns-dx-border);
    border-radius: 18px;
    box-shadow: var(--rpns-dx-shadow);
}

body.rpns-body .dx-popup-title,
body.rpns-body .dx-toolbar,
body.rpns-body .dx-datagrid-header-panel,
body.rpns-body .dx-datagrid-toolbar,
body.rpns-body .dx-menu-items-container {
    background: linear-gradient(180deg, #2f2723 0%, #171411 100%);
    color: #ffffff;
}

body.rpns-body .dx-toolbar .dx-button-mode-text,
body.rpns-body .dx-toolbar .dx-link,
body.rpns-body .dx-toolbar .dx-icon,
body.rpns-body .dx-popup-title .dx-icon,
body.rpns-body .dx-datagrid-header-panel .dx-link,
body.rpns-body .dx-datagrid-header-panel .dx-icon {
    color: #ffffff;
}

body.rpns-body .dx-list-item,
body.rpns-body .dx-menu-item,
body.rpns-body .dx-item-content,
body.rpns-body .dx-accordion-item,
body.rpns-body .dx-treeview-item {
    border-color: rgba(201, 187, 167, 0.6);
}

body.rpns-body .dx-list-item.dx-state-hover,
body.rpns-body .dx-menu-item.dx-state-hover,
body.rpns-body .dx-treeview-item.dx-state-hover,
body.rpns-body .dx-accordion-item-title.dx-state-hover {
    background: rgba(159, 43, 38, 0.06);
    color: var(--rpns-dx-accent);
}

body.rpns-body .dx-list-item.dx-list-item-selected,
body.rpns-body .dx-menu-item-selected,
body.rpns-body .dx-treeview-item.dx-state-selected,
body.rpns-body .dx-accordion-item-opened > .dx-accordion-item-title {
    background: linear-gradient(180deg, rgba(255, 204, 0, 0.14) 0%, rgba(159, 43, 38, 0.08) 100%);
    color: var(--rpns-dx-text);
}

body.rpns-body .dx-datagrid,
body.rpns-body .dx-treelist,
body.rpns-body .dx-cardview {
    background: var(--rpns-dx-surface);
    border: 1px solid var(--rpns-dx-border);
    border-radius: 18px;
    box-shadow: var(--rpns-dx-shadow-soft);
    overflow: hidden;
}

body.rpns-body .dx-datagrid-headers,
body.rpns-body .dx-treelist-headers,
body.rpns-body .dx-header-row {
    background: #f5eee4;
    color: var(--rpns-dx-text);
    border-bottom-color: var(--rpns-dx-border);
}

body.rpns-body .dx-header-row > td,
body.rpns-body .dx-datagrid-filter-row > td,
body.rpns-body .dx-datagrid-rowsview .dx-row > td,
body.rpns-body .dx-treelist-rowsview .dx-row > td {
    border-color: rgba(201, 187, 167, 0.58);
}

body.rpns-body .dx-datagrid-rowsview,
body.rpns-body .dx-treelist-rowsview,
body.rpns-body .dx-scrollable-content {
    background: var(--rpns-dx-surface);
}

body.rpns-body .dx-row.dx-data-row.dx-state-hover,
body.rpns-body .dx-row.dx-data-row.dx-selection,
body.rpns-body .dx-row-focused,
body.rpns-body .dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-inserted) > td,
body.rpns-body .dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-inserted) > td {
    background: linear-gradient(180deg, rgba(255, 204, 0, 0.12) 0%, rgba(159, 43, 38, 0.06) 100%);
    color: var(--rpns-dx-text);
}

body.rpns-body .dx-focused.dx-cell-focus-disabled,
body.rpns-body td.dx-focused,
body.rpns-body .dx-state-focused:not(.dx-button) {
    outline: 2px solid var(--rpns-dx-highlight);
    outline-offset: -2px;
}

body.rpns-body .dx-datagrid-filter-row .dx-editor-with-menu,
body.rpns-body .dx-datagrid-filter-row .dx-texteditor {
    background: #fffdfa;
}

body.rpns-body .dx-datagrid-summary-item,
body.rpns-body .dx-pager,
body.rpns-body .dx-page,
body.rpns-body .dx-page-size {
    color: var(--rpns-dx-text);
}

body.rpns-body .dx-page,
body.rpns-body .dx-page-size {
    border-radius: 999px;
}

body.rpns-body .dx-page.dx-selection,
body.rpns-body .dx-page-size.dx-selection {
    background: var(--rpns-dx-accent);
    color: #ffffff;
}

body.rpns-body .dx-loadpanel-content,
body.rpns-body .dx-loadpanel-pane {
    background: rgba(23, 20, 17, 0.94);
    color: #ffffff;
    border-radius: 18px;
    box-shadow: var(--rpns-dx-shadow);
}

body.rpns-body .dx-loadindicator-icon .dx-loadindicator-segment,
body.rpns-body .dx-loadindicator-content .dx-loadindicator-segment {
    background-color: var(--rpns-dx-highlight);
}

body.rpns-body .dx-invalid,
body.rpns-body .dx-texteditor.dx-invalid,
body.rpns-body .dx-dropdowneditor.dx-invalid {
    border-color: var(--rpns-dx-danger);
}

body.rpns-body .dx-invalid-message > .dx-overlay-content,
body.rpns-body .dx-overlay-wrapper .dx-invalid-message > .dx-overlay-content {
    background: #fff4f4;
    color: var(--rpns-dx-danger);
    border: 1px solid rgba(143, 20, 20, 0.2);
    border-radius: 12px;
    box-shadow: 0 10px 24px rgba(143, 20, 20, 0.12);
}

body.rpns-body .dx-state-disabled,
body.rpns-body .dx-widget:disabled,
body.rpns-body .dx-texteditor.dx-state-disabled {
    opacity: 0.65;
}

@media (max-width: 767.98px) {
    body.rpns-body .dx-popup-content,
    body.rpns-body .dx-overlay-content,
    body.rpns-body .dx-datagrid,
    body.rpns-body .dx-treelist,
    body.rpns-body .dx-cardview {
        border-radius: 14px;
    }

    body.rpns-body .dx-tab {
        min-height: 42px;
        padding-inline: 0.75rem;
    }
}
