:root {
    --enn-primary-950: #2b064d;
    --enn-primary-800: #4c1f79;
    --enn-primary-700: #63249d;
    --enn-primary-600: #7d34c2;
    --enn-primary-soft: #f0e8ff;
    --enn-success: #00a85a;
    --enn-success-dark: #008e4c;
    --enn-success-soft: #e5faef;
    --enn-danger: #d84b4b;
    --enn-danger-soft: #fdeaea;
    --enn-warning: #bf7100;
    --enn-warning-soft: #fff2d8;
    --enn-info: #347dcc;
    --enn-info-soft: #e8f2ff;
    --enn-text: #2f2040;
    --enn-text-body: #51465f;
    --enn-text-muted: #6d6282;
    --enn-surface: #ffffff;
    --enn-surface-soft: #fbfaff;
    --enn-page: #f7f6fb;
    --enn-border: #e8e3ef;
    --enn-border-strong: #d8c8e8;
    --enn-radius-sm: 6px;
    --enn-radius-md: 8px;
    --enn-radius-lg: 10px;
    --enn-shadow-page: 0 12px 28px rgba(43, 6, 77, .06);
    --enn-shadow-sm: 0 8px 20px rgba(43, 6, 77, .06);
    --enn-shadow-md: 0 14px 30px rgba(43, 6, 77, .11);
    --enn-shadow-overlay: 0 20px 46px rgba(36, 0, 67, .16);
    --enn-focus: 0 0 0 3px rgba(125, 52, 194, .14);
    --enn-space-1: .25rem;
    --enn-space-2: .5rem;
    --enn-space-3: .875rem;
    --enn-space-4: 1rem;
    --enn-space-5: 1.375rem;
    --enn-space-6: 1.75rem;
}

.enn-page {
    color: var(--enn-text);
}

.enn-page :where(h1, h2, h3, h4, h5, h6) {
    letter-spacing: 0;
}

.enn-page :where(.form-label, label, legend) {
    color: var(--enn-primary-950);
    font-size: .8rem;
    font-weight: 800;
}

.enn-page :where(.form-control, .form-select, .b-input, textarea) {
    border-color: var(--enn-border-strong);
    border-radius: var(--enn-radius-sm);
    color: var(--enn-text-body);
    min-height: 40px;
}

.enn-page :where(.form-control, .form-select, .b-input, textarea):focus {
    border-color: var(--enn-primary-600);
    box-shadow: var(--enn-focus);
}

.enn-page :where(.form-control, .form-select, .b-input, textarea):disabled {
    background: var(--enn-surface-soft);
    color: var(--enn-text-muted);
}

.enn-page .btn {
    align-items: center;
    border-radius: var(--enn-radius-sm);
    display: inline-flex;
    font-weight: 800;
    gap: .4rem;
    justify-content: center;
    letter-spacing: 0;
    min-height: 40px;
    padding: .55rem .9rem;
    transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease, color 150ms ease;
}

.enn-page .btn:focus-visible,
.enn-page :where(button, a, input, select, textarea):focus-visible {
    box-shadow: var(--enn-focus);
    outline: 0;
}

.enn-page .btn-primary {
    background: var(--enn-primary-600) !important;
    border-color: var(--enn-primary-600) !important;
    color: #fff !important;
}

.enn-page .btn-primary:hover:not(:disabled) {
    background: var(--enn-primary-700) !important;
    border-color: var(--enn-primary-700) !important;
}

.enn-page .btn-secondary,
.enn-page .btn-success {
    background: var(--enn-success) !important;
    border-color: var(--enn-success) !important;
    color: #fff !important;
}

.enn-page .btn-secondary:hover:not(:disabled),
.enn-page .btn-success:hover:not(:disabled) {
    background: var(--enn-success-dark) !important;
    border-color: var(--enn-success-dark) !important;
}

.enn-page .btn-light {
    background: var(--enn-primary-soft);
    border-color: var(--enn-border-strong);
    color: var(--enn-primary-600);
}

.enn-page .btn-danger {
    background: var(--enn-danger);
    border-color: var(--enn-danger);
    color: #fff;
}

.enn-page .btn:disabled,
.enn-page .btn.disabled {
    cursor: not-allowed;
    opacity: .62;
}

.enn-page :where(.b-datagrid, .table-responsive) {
    border: 0;
    min-width: 0;
}

.enn-page .b-datagrid .table {
    margin-bottom: 0;
}

.enn-page .b-datagrid thead th {
    background: var(--enn-surface-soft);
    border-color: #eee8f3;
    color: var(--enn-primary-700);
    font-size: .72rem;
    font-weight: 900;
    padding: .875rem .7rem;
    text-transform: uppercase;
    vertical-align: middle;
}

.enn-page .b-datagrid tbody td {
    border-color: #f0ebf4;
    color: var(--enn-text-body);
    font-size: .86rem;
    padding: .8rem .7rem;
    vertical-align: middle;
}

.enn-page .b-datagrid tbody tr {
    transition: background-color 120ms ease;
}

.enn-page .b-datagrid tbody tr:hover {
    background: var(--enn-surface-soft);
}

.enn-page :where(.b-datagrid-pager, .pagination) {
    color: var(--enn-text-muted);
}

.enn-page .pagination .page-link {
    border-color: var(--enn-border);
    color: var(--enn-primary-600);
    min-height: 36px;
    min-width: 36px;
}

.enn-page .pagination .page-item.active .page-link {
    background: var(--enn-primary-600);
    border-color: var(--enn-primary-600);
    color: #fff;
}

.modal-content {
    border: 1px solid var(--enn-border);
    border-radius: var(--enn-radius-lg);
    box-shadow: var(--enn-shadow-overlay);
    overflow: hidden;
}

.modal-header {
    align-items: center;
    background: var(--enn-surface-soft);
    border-bottom: 1px solid var(--enn-border);
    min-height: 64px;
    padding: var(--enn-space-4) var(--enn-space-5);
}

.modal-title {
    color: var(--enn-primary-950);
    font-size: 1.1rem;
    font-weight: 900;
    letter-spacing: 0;
}

.modal-body {
    color: var(--enn-text-body);
    padding: var(--enn-space-5);
}

.modal-footer {
    background: var(--enn-surface-soft);
    border-top: 1px solid var(--enn-border);
    gap: var(--enn-space-2);
    padding: var(--enn-space-3) var(--enn-space-5);
}

.enn-dialog-title {
    color: var(--enn-primary-950);
    text-align: center;
}

.enn-dialog-title :where(h1, h2, h3, h4, h5, h6) {
    color: inherit !important;
    font-size: 1.1rem;
    font-weight: 900;
    line-height: 1.45;
    margin: 0;
}

.enn-dialog-actions {
    display: flex;
    gap: .65rem;
    justify-content: center;
    margin-top: 1.25rem;
}

.enn-dialog-actions-wide > * {
    max-width: 250px;
    width: 100%;
}

.enn-dialog-option {
    align-items: center;
    color: var(--enn-text-muted);
    display: flex;
    gap: .45rem;
    justify-content: flex-start;
    margin-top: .75rem;
}

.enn-dialog-section-title {
    color: var(--enn-primary-950);
    font-size: 1rem !important;
}

@media (max-width: 540px) {
    .enn-dialog-actions {
        flex-direction: column-reverse;
    }

    .enn-dialog-actions > * {
        width: 100% !important;
    }
}

.enn-page :where(.badge, .b-badge) {
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: 0;
    padding: .32rem .7rem;
}

.enn-page :where(.alert, .b-alert) {
    border-radius: var(--enn-radius-md);
}

.enn-page .oi {
    font-family: "Font Awesome 6 Free";
    font-style: normal;
    font-weight: 900;
    line-height: 1;
}

.enn-page .oi::before { position: static; }
.enn-page .oi-x::before { content: "\f00d"; }
.enn-page .oi-bullhorn::before { content: "\f0a1"; }
.enn-page .oi-pencil::before { content: "\f303"; }
.enn-page .oi-thumb-up::before { content: "\f164"; }
.enn-page .oi-thumb-down::before { content: "\f165"; }
.enn-page .oi-map-marker::before { content: "\f3c5"; }
.enn-page .oi-trash::before { content: "\f1f8"; }
.enn-page .oi-check::before { content: "\f00c"; }
.enn-page .oi-clipboard::before { content: "\f328"; }
.enn-page .oi-document::before { content: "\f15c"; }
.enn-page .oi-chevron-right::before { content: "\f054"; }
.enn-page .oi-chevron-left::before { content: "\f053"; }
.enn-page .oi-credit-card::before { content: "\f09d"; }
.enn-page .oi-bar-chart::before { content: "\f080"; }
.enn-page .oi-calculator::before { content: "\f1ec"; }
.enn-page .oi-clock::before { content: "\f017"; }
.enn-page .oi-warning::before { content: "\f071"; }
.enn-page .oi-plus::before { content: "\2b"; }
.enn-page .oi-spreadsheet::before { content: "\f1c3"; }
.enn-page .oi-microphone::before { content: "\f130"; }
.enn-page .oi-data-transfer-download::before { content: "\f019"; }

@media (max-width: 900px) {
    .enn-page .btn {
        min-height: 42px;
    }

    .modal-dialog {
        margin: var(--enn-space-3);
    }

    .modal-header,
    .modal-body,
    .modal-footer {
        padding-inline: var(--enn-space-4);
    }
}
