/* CIDES ERP design tokens and product-specific components, built with Tailwind. */
:root {
    --cides-accent: #e83300;
    --cides-primary: #c82900;
    --cides-primary-dark: #a72200;
    --cides-primary-soft: #fff3ef;
    --cides-navy: #112337;
    --cides-success: #247a58;
    --cides-warning: #a86100;
    --cides-bg: #f5f7fa;
    --cides-text: #243247;
    --cides-muted: #66758a;
    --cides-border: #dce3eb;
    --cides-shadow: 0 12px 36px rgba(17, 35, 55, 0.08);
    --cides-radius: 0.75rem;
}

html {
    scroll-behavior: smooth;
}

body {
    color: var(--cides-text);
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
        "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

a {
    color: #a72200;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.15em;
}

a:hover {
    color: var(--cides-primary-dark);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid rgba(232, 51, 0, 0.32) !important;
    outline-offset: 2px;
    box-shadow: none !important;
}

.app-main {
    background: var(--cides-bg);
}

.app-page-header {
    padding: 1.25rem 1rem 0.65rem;
}

.app-page-header h1 {
    color: var(--cides-navy);
    font-size: clamp(1.55rem, 2.4vw, 2.1rem);
    font-weight: 700;
    letter-spacing: -0.025em;
}

.app-page-header .ui-breadcrumb {
    background: transparent;
    margin-bottom: 0.35rem;
    padding: 0;
}

@media (min-width: 768px) {
    .app-page-header .ui-breadcrumb {
        float: none !important;
        justify-content: flex-end;
        margin-left: auto;
        text-align: right;
        width: 100%;
    }

    /* A lone breadcrumb column spans the row and shares the content edge. */
    .app-page-header
        .ui-grid
        > [class*="ui-span-"]:only-child:has(> .ui-breadcrumb) {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

.app-header {
    border-bottom: 1px solid var(--cides-border);
    box-shadow: 0 2px 14px rgba(17, 35, 55, 0.05);
}

.app-header .ui-nav-link {
    align-items: center;
    display: inline-flex;
    min-height: 44px;
}

.account-trigger {
    gap: 0.55rem;
}

.account-trigger .account-icon {
    font-size: 1rem;
}

.account-trigger .account-chevron {
    color: var(--cides-muted);
    font-size: 0.65rem;
    margin-left: 0.1rem;
}

.app-navbar .app-navbar-items .ui-nav-link {
    color: #34445a;
}

.text-slate-500,
.ui-breadcrumb-item.active {
    color: #59697d !important;
}

.app-sidebar {
    background: var(--cides-navy) !important;
}

.app-brand {
    align-items: center;
    background: #101e33;
    border-bottom-color: rgba(255, 255, 255, 0.1) !important;
    display: flex;
    justify-content: flex-start;
    min-height: 58px;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

.brand-logo {
    display: block;
    -o-object-fit: contain;
       object-fit: contain;
}

.brand-logo-full {
    height: auto;
    width: 9rem;
}

.brand-logo-compact {
    display: none;
    height: 2.25rem;
    width: 2.25rem;
}

.app-sidebar-close {
    align-items: center;
    background: rgba(255, 255, 255, 0.08);
    border: 0;
    border-radius: 0.5rem;
    color: #fff;
    display: flex;
    height: 40px;
    justify-content: center;
    position: absolute;
    right: 0.65rem;
    top: 0.75rem;
    width: 40px;
}

.app-sidebar-close:hover,
.app-sidebar-close:focus {
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
}

.app-user-panel {
    align-items: center;
    border-bottom-color: rgba(255, 255, 255, 0.12) !important;
    min-height: 72px;
}

.app-user-panel .app-user-info {
    line-height: 1.25;
    min-width: 0;
}

.app-user-panel .app-user-avatar img,
.profile-user-img {
    -o-object-fit: cover;
       object-fit: cover;
}

.app-user-panel .app-user-info a {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-sidebar-nav .app-nav-heading {
    color: #aab8ca;
    font-size: 0.69rem;
    font-weight: 700;
    letter-spacing: 0.11em;
    padding: 1.15rem 1rem 0.45rem;
    text-transform: uppercase;
}

.app-sidebar-nav .ui-nav-link {
    border-radius: 0.5rem;
    margin: 0.12rem 0.45rem;
    min-height: 44px;
    padding: 0.62rem 0.75rem;
    width: calc(100% - 0.9rem);
}

.sidebar-dark-primary .app-sidebar-nav > .ui-nav-item > .ui-nav-link.active,
.sidebar-dark-primary .app-sidebar-nav > .ui-nav-item > .ui-nav-link:hover {
    background: var(--cides-primary);
    color: #fff;
}

.app-footer {
    background: #fff;
    border-top: 1px solid var(--cides-border);
    color: var(--cides-muted);
    font-size: 0.85rem;
    min-height: 54px;
}

.ui-panel {
    border: 1px solid var(--cides-border);
    border-radius: var(--cides-radius);
    box-shadow: var(--cides-shadow);
    margin-bottom: 1.25rem;
    overflow: hidden;
}

.ui-panel-header {
    background: #fff;
    border-bottom: 1px solid var(--cides-border);
    padding: 0.95rem 1.15rem;
}

.ui-panel-title {
    color: var(--cides-navy);
    font-size: 1.05rem;
    font-weight: 700;
}

.ui-panel-primary:not(.ui-panel-outline) > .ui-panel-header,
.ui-panel-success:not(.ui-panel-outline) > .ui-panel-header {
    background: var(--cides-navy);
}

.ui-panel.ui-panel-primary.ui-panel-outline,
.ui-panel.ui-panel-success.ui-panel-outline {
    border-top-color: var(--cides-primary);
}

.ui-button {
    align-items: center;
    border-radius: 0.5rem;
    display: inline-flex;
    font-weight: 600;
    gap: 0.4rem;
    justify-content: center;
    min-height: 44px;
    padding: 0.55rem 0.9rem;
}

.ui-button-sm {
    min-height: 44px;
    min-width: 44px;
    padding: 0.42rem 0.72rem;
}

.ui-button-primary,
.bg-cides-500,
.small-box.bg-primary {
    background-color: var(--cides-primary) !important;
    border-color: var(--cides-primary) !important;
    color: #fff !important;
}

.ui-button-primary:hover,
.ui-button-primary:focus {
    background-color: var(--cides-primary-dark) !important;
    border-color: var(--cides-primary-dark) !important;
}

.ui-button:disabled,
.ui-button.disabled {
    background-color: #59697d !important;
    border-color: #59697d !important;
    color: #fff !important;
    opacity: 1 !important;
}

.ui-button-outline-primary {
    border-color: var(--cides-primary);
    color: var(--cides-primary);
}

.ui-button-outline-primary:hover,
.ui-button-outline-primary:focus {
    background: var(--cides-primary-soft);
    border-color: var(--cides-primary);
    color: var(--cides-primary-dark);
}

.ui-button-success,
.bg-emerald-700,
.small-box.bg-success {
    background-color: var(--cides-success) !important;
    border-color: var(--cides-success) !important;
}

.ui-button-info {
    background-color: #0e6674;
    border-color: #0e6674;
    color: #fff;
}

.ui-button-info:hover,
.ui-button-info:focus {
    background-color: #094f5b;
    border-color: #094f5b;
    color: #fff;
}

.ui-alert-info {
    background-color: #dceff3;
    border-color: #acd4dc;
    color: #244d56;
}

.ui-button-link {
    color: #a72200;
}

.ui-button-outline-danger {
    background: #fff;
    border-color: #b42332;
    color: #9b1c2d;
}

.ui-button-outline-danger:hover,
.ui-button-outline-danger:focus {
    background: #fff1f2;
    border-color: #9b1c2d;
    color: #7f1725;
}

.ui-button-outline-success {
    background: #fff;
    border-color: #247a58;
    color: #166240;
}

.ui-button-outline-success:hover,
.ui-button-outline-success:focus {
    background: #edf9f3;
    border-color: #166240;
    color: #104c32;
}

.ui-button-outline-info {
    background: #fff;
    border-color: #0e6674;
    color: #0e5a66;
}

.ui-button-outline-info:hover,
.ui-button-outline-info:focus {
    background: #edf8fa;
    border-color: #094f5b;
    color: #094f5b;
}

.ui-button-icon {
    flex: 0 0 44px;
    height: 44px;
    min-height: 44px;
    min-width: 44px;
    padding: 0;
    width: 44px;
}

.ui-button-add {
    background: #fff;
    border-color: var(--cides-primary);
    color: var(--cides-primary-dark);
}

.ui-button-add:hover,
.ui-button-add:focus {
    background: var(--cides-primary-soft);
    border-color: var(--cides-primary-dark);
    color: var(--cides-primary-dark);
}

.ui-input,
.ui-file-label,
.ts-control {
    border-color: #bdc8d5;
    border-radius: 0.5rem;
    min-height: 44px;
}

.ui-input:focus,
.ts-wrapper.focus .ts-control {
    border-color: var(--cides-primary);
    box-shadow: 0 0 0 0.2rem rgba(232, 51, 0, 0.14);
}

label {
    color: #34445a;
    font-weight: 600;
    margin-bottom: 0.35rem;
}

.ui-required {
    color: var(--cides-primary);
    font-weight: 700;
    margin-left: 0.2rem;
}

.required-hint {
    color: var(--cides-muted);
    font-size: 0.83rem;
}

.ui-error {
    color: #a10f20;
    font-weight: 600;
}

.form-section {
    border-bottom: 1px solid var(--cides-border);
    margin-bottom: 1.35rem;
    padding: 0.25rem 0 1.25rem;
    scroll-margin-top: 5.5rem;
}

.form-section-title {
    align-items: center;
    color: var(--cides-navy);
    display: flex;
    font-size: 1.08rem;
    font-weight: 700;
    gap: 0.55rem;
    margin-bottom: 0.95rem;
}

.form-section-title::before {
    background: var(--cides-primary);
    border-radius: 999px;
    content: "";
    display: inline-block;
    height: 1.15rem;
    width: 4px;
}

.form-section-description {
    color: var(--cides-muted);
    font-size: 0.88rem;
    margin: -0.55rem 0 1rem 0.55rem;
}

.ui-choice-panel {
    background: #f8fafc;
    border: 1px solid var(--cides-border);
    border-radius: 0.55rem;
    padding: 0.55rem 0.75rem;
}

.ui-choice-panel .ui-choice-input {
    margin: 0;
    position: static;
}

.form-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: space-between;
}

.form-actions-primary {
    margin-left: auto;
}

.upload-panel {
    align-items: center;
    background: #f8fafc;
    border: 1px solid var(--cides-border);
    border-radius: 0.65rem;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(150px, 0.7fr) minmax(260px, 1.3fr);
    margin-bottom: 1rem;
    padding: 1rem;
}

.upload-preview {
    align-items: center;
    background: #fff;
    border: 1px dashed #b8c4d1;
    border-radius: 0.6rem;
    color: var(--cides-muted);
    display: flex;
    justify-content: center;
    min-height: 120px;
    overflow: hidden;
    padding: 0.75rem;
    text-align: center;
}

.upload-preview img {
    max-height: 180px;
    -o-object-fit: contain;
       object-fit: contain;
}

.profile-photo-preview {
    aspect-ratio: 1;
    border-radius: 50%;
    height: 170px;
    -o-object-fit: cover;
       object-fit: cover;
    width: 170px;
}

.sticky-form-actions {
    background: rgba(255, 255, 255, 0.96);
    border-top: 1px solid var(--cides-border);
    bottom: 0;
    box-shadow: 0 -8px 24px rgba(17, 35, 55, 0.08);
    margin: 1.5rem -1.25rem -1.25rem;
    padding: 0.85rem 1.25rem;
    position: sticky;
    z-index: 20;
}

.sticky-form-actions.form-actions {
    justify-content: space-between;
}

.saving-overlay {
    align-items: center;
    background: rgba(17, 35, 55, 0.62);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 1rem;
    position: fixed;
    z-index: 3000;
}

.saving-overlay-card {
    align-items: center;
    background: #fff;
    border-radius: var(--cides-radius);
    box-shadow: 0 24px 70px rgba(17, 35, 55, 0.28);
    color: var(--cides-navy);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 360px;
    padding: 2rem;
    text-align: center;
    width: 100%;
}

.saving-overlay-card strong {
    font-size: 1.2rem;
}

.saving-overlay-card span {
    color: var(--cides-muted);
    font-size: 0.92rem;
}

.saving-overlay-icon {
    color: var(--cides-primary);
    font-size: 2rem;
    margin-bottom: 0.25rem;
}

body.is-saving {
    overflow: hidden;
}

.form-steps {
    background: #f8fafc;
    border: 1px solid var(--cides-border);
    border-radius: 0.65rem;
    display: flex;
    gap: 0.35rem;
    margin-bottom: 1rem;
    overflow-x: auto;
    padding: 0.55rem;
}

.form-steps a {
    align-items: center;
    border-radius: 0.45rem;
    color: #4d5d72;
    display: inline-flex;
    flex: 1 0 auto;
    font-size: 0.84rem;
    font-weight: 650;
    gap: 0.4rem;
    min-height: 42px;
    padding: 0.4rem 0.6rem;
}

.form-steps a:hover,
.form-steps a:focus {
    background: var(--cides-primary-soft);
    color: var(--cides-primary-dark);
    text-decoration: none;
}

.form-steps span {
    align-items: center;
    background: var(--cides-primary);
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-size: 0.72rem;
    height: 24px;
    justify-content: center;
    width: 24px;
}

.form-step-nav {
    background: #f8fafc;
    border: 1px solid var(--cides-border);
    border-radius: 0.65rem;
    counter-reset: form-step;
    display: flex;
    gap: 0.35rem;
    margin-bottom: 1rem;
    overflow-x: auto;
    padding: 0.55rem;
}

.form-step-nav a {
    align-items: center;
    border-radius: 0.45rem;
    color: #4d5d72;
    counter-increment: form-step;
    display: inline-flex;
    flex: 1 0 auto;
    font-size: 0.84rem;
    font-weight: 650;
    gap: 0.4rem;
    min-height: 42px;
    padding: 0.4rem 0.6rem;
}

.form-step-nav a::before {
    align-items: center;
    background: var(--cides-primary);
    border-radius: 50%;
    color: #fff;
    content: counter(form-step);
    display: inline-flex;
    flex: 0 0 24px;
    font-size: 0.72rem;
    height: 24px;
    justify-content: center;
}

.form-step-nav a:hover,
.form-step-nav a:focus {
    background: var(--cides-primary-soft);
    color: var(--cides-primary-dark);
    text-decoration: none;
}

.form-section-collapsible {
    padding: 0;
}

.form-section-collapsible > summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: 0.65rem;
    list-style: none;
    margin: 0;
    min-height: 56px;
    padding: 0.9rem 1rem;
}

.form-section-collapsible > summary::before {
    background: var(--cides-primary);
    border-radius: 999px;
    content: "";
    display: inline-block;
    height: 1.15rem;
    width: 4px;
}

.form-section-collapsible > summary::-webkit-details-marker {
    display: none;
}

.form-section-collapsible > summary::after {
    color: var(--cides-primary);
    content: "\f078";
    font-family: "Font Awesome 5 Free";
    font-size: 0.85rem;
    font-weight: 900;
    margin-left: auto;
    transition: transform 0.2s ease;
}

.form-section-collapsible[open] > summary::after {
    transform: rotate(180deg);
}

.form-section-collapsible > :not(summary) {
    margin-left: 1rem;
    margin-right: 1rem;
}

.form-section-collapsible > :last-child {
    margin-bottom: 1rem;
}

.form-section-count {
    align-items: center;
    background: var(--cides-primary-soft);
    border-radius: 999px;
    color: var(--cides-primary-dark);
    display: inline-flex;
    font-size: 0.76rem;
    justify-content: center;
    min-height: 26px;
    min-width: 26px;
    padding: 0 0.45rem;
}

.page-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    justify-content: flex-end;
}

.ui-table {
    color: var(--cides-text);
}

.ui-table thead th {
    background: #edf1f6;
    border-bottom: 1px solid #cbd5e1;
    color: #3a4a60;
    font-size: 0.76rem;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

.ui-table td,
.ui-table th {
    padding: 0.75rem;
    vertical-align: middle;
}

.dataTables_wrapper .dataTables_filter input,
.dt-container .dt-search input,
.dataTables_wrapper .dataTables_length select,
.dt-container .dt-length select {
    border: 1px solid #bdc8d5;
    border-radius: 0.5rem;
    min-height: 44px;
}

.dataTables_wrapper .dataTables_filter {
    max-width: 100%;
}

.dataTables_wrapper .dataTables_filter input {
    margin-left: 0.5rem;
    max-width: calc(100vw - 8rem);
    min-width: min(28rem, calc(100vw - 8rem));
}

.dataTables_wrapper .dataTables_paginate .paginate_button,
.dt-container .dt-paging .dt-paging-button {
    min-height: 44px;
    min-width: 44px;
}

.table-toolbar {
    align-items: end;
    background: #f8fafc;
    border: 1px solid var(--cides-border);
    border-radius: 0.65rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
    padding: 0.85rem;
}

.status-badge {
    border-radius: 99px;
    display: inline-block;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 0.28rem 0.6rem;
}

.status-badge.is-success {
    background: #e0f4ea;
    color: #155c3f;
}

.status-badge.is-muted {
    background: #e8edf3;
    color: #4e5e72;
}

.status-badge.is-warning {
    background: #fff0d3;
    color: #805000;
}

.list-detail-card {
    background: #f8fafc;
    border: 1px solid var(--cides-border);
    border-left: 4px solid var(--cides-primary);
    border-radius: 0.7rem;
    color: var(--cides-text);
    margin: 0.25rem 0;
    overflow: hidden;
}

.list-detail-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 1rem;
}

.list-detail-grid section {
    background: #fff;
    border: 1px solid #e4e9ef;
    border-radius: 0.6rem;
    min-width: 0;
    padding: 0.85rem;
}

.list-detail-grid h3 {
    color: var(--cides-navy);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.055em;
    margin: 0 0 0.7rem;
    text-transform: uppercase;
}

.list-detail-grid dl {
    display: grid;
    font-size: 0.84rem;
    gap: 0.42rem 0.75rem;
    grid-template-columns: minmax(90px, 0.7fr) minmax(0, 1.3fr);
    margin: 0;
}

.list-detail-grid dt {
    color: var(--cides-muted);
    font-weight: 650;
    min-width: 0;
    overflow-wrap: anywhere;
}

.list-detail-grid dd {
    margin: 0;
    overflow-wrap: anywhere;
}

.detail-chip-list,
.detail-status-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.detail-group-label {
    color: var(--cides-muted);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin: 0 0 0.3rem;
    text-transform: uppercase;
}

.detail-chip {
    background: #eef2f7;
    border: 1px solid #d8e0e9;
    border-radius: 99px;
    color: #415166;
    display: inline-flex;
    font-size: 0.76rem;
    font-weight: 650;
    line-height: 1.25;
    max-width: 100%;
    overflow-wrap: anywhere;
    padding: 0.3rem 0.55rem;
    white-space: normal;
}

.detail-chip.is-primary {
    background: var(--cides-primary-soft);
    border-color: #e5abb2;
    color: var(--cides-primary-dark);
}

.list-detail-summary {
    border-top: 1px solid var(--cides-border);
    font-size: 0.84rem;
    line-height: 1.55;
    max-height: 8rem;
    overflow: auto;
    padding: 0.75rem 1rem;
    white-space: pre-wrap;
}

.list-detail-audit {
    background: #eef2f7;
    border-top: 1px solid var(--cides-border);
    color: var(--cides-muted);
    font-size: 0.76rem;
    padding: 0.55rem 1rem;
}

.list-detail-audit i {
    margin-right: 0.35rem;
}

.empty-state {
    align-items: center;
    color: var(--cides-muted);
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 190px;
    padding: 2rem;
    text-align: center;
}

.empty-state i {
    color: #aab6c5;
    font-size: 2.4rem;
    margin-bottom: 0.85rem;
}

.empty-state h3 {
    color: var(--cides-navy);
    font-size: 1.1rem;
    font-weight: 700;
}

.metric-card {
    background: #fff;
    border: 1px solid var(--cides-border);
    border-radius: var(--cides-radius);
    box-shadow: var(--cides-shadow);
    display: block;
    height: calc(100% - 1rem);
    margin-bottom: 1rem;
    padding: 1.15rem;
    position: relative;
}

.metric-card .metric-label {
    color: var(--cides-muted);
    display: block;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

.metric-card .metric-value {
    color: var(--cides-navy);
    display: block;
    font-size: 2rem;
    font-weight: 750;
    line-height: 1.2;
    margin-top: 0.3rem;
}

.metric-card .metric-icon {
    color: rgba(232, 51, 0, 0.18);
    font-size: 2rem;
    position: absolute;
    right: 1rem;
    top: 1rem;
}

.quick-action {
    align-items: center;
    border: 1px solid var(--cides-border);
    border-radius: 0.65rem;
    color: var(--cides-text);
    display: flex;
    gap: 0.8rem;
    min-height: 64px;
    padding: 0.85rem;
}

.quick-action:hover {
    background: var(--cides-primary-soft);
    border-color: #e5abb2;
    color: var(--cides-primary-dark);
    text-decoration: none;
}

.quick-action i {
    color: var(--cides-primary);
    font-size: 1.25rem;
    text-align: center;
    width: 1.8rem;
}

.cursosadmin-search {
    margin-bottom: 1rem;
    position: relative;
}

.cursosadmin-search > i {
    color: var(--cides-muted);
    left: 1rem;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.cursosadmin-search .ui-input {
    font-size: 1rem;
    min-height: 50px;
    padding-left: 2.7rem;
}

.cursosadmin-section .ui-panel-title i {
    color: var(--cides-primary);
}

.cursosadmin-section .ui-panel-header {
    display: block;
}

.cursosadmin-option {
    align-items: center;
    background: #fff;
    border: 1px solid var(--cides-border);
    border-radius: 0.7rem;
    color: var(--cides-text);
    display: flex;
    gap: 0.85rem;
    min-height: 104px;
    padding: 0.9rem;
    position: relative;
    transition: border-color 120ms ease, box-shadow 120ms ease, transform 120ms ease;
}

.cursosadmin-option:hover,
.cursosadmin-option:focus {
    border-color: #e0a1aa;
    box-shadow: 0 8px 18px rgba(31, 41, 55, 0.09);
    color: var(--cides-primary-dark);
    text-decoration: none;
    transform: translateY(-1px);
}

.cursosadmin-option-icon {
    align-items: center;
    background: var(--cides-primary-soft);
    border-radius: 0.65rem;
    color: var(--cides-primary);
    display: inline-flex;
    flex: 0 0 42px;
    font-size: 1.15rem;
    height: 42px;
    justify-content: center;
}

.cursosadmin-option strong,
.cursosadmin-option small {
    display: block;
}

.cursosadmin-option small {
    color: var(--cides-muted);
    line-height: 1.35;
    margin-top: 0.2rem;
    padding-right: 1.15rem;
}

.cursosadmin-option-arrow {
    color: #a4afbd;
    position: absolute;
    right: 0.8rem;
}

.cursosadmin-workspace {
    min-height: calc(100vh - 210px);
    overflow: hidden;
    position: relative;
}

.cursosadmin-frame {
    border: 0;
    display: block;
    height: calc(100vh - 230px);
    min-height: 680px;
    width: 100%;
}

.cursosadmin-frame-status {
    align-items: center;
    background: #fff;
    display: flex;
    gap: 0.7rem;
    inset: 0;
    justify-content: center;
    min-height: 260px;
    position: absolute;
    z-index: 1;
}

.profile-description {
    line-height: 1.65;
    overflow-wrap: anywhere;
}

.profile-description > :last-child {
    margin-bottom: 0;
}

.relator-signature-preview {
    display: block;
    height: auto;
    margin-inline: auto;
    max-height: 64px;
    max-width: 180px;
    -o-object-fit: contain;
       object-fit: contain;
    width: auto;
}

.profile-data-list {
    display: grid;
    gap: 0.8rem;
    margin: 0;
}

.profile-data-list div {
    border-bottom: 1px solid var(--cides-border);
    padding-bottom: 0.75rem;
}

.profile-data-list div:last-child {
    border-bottom: 0;
}

.profile-data-list dt {
    color: var(--cides-muted);
    font-size: 0.82rem;
    margin-bottom: 0.2rem;
}

.profile-data-list dd {
    color: var(--cides-text);
    margin: 0;
    overflow-wrap: anywhere;
}

.auth-page {
    background:
        radial-gradient(circle at 15% 10%, rgba(232, 51, 0, 0.12), transparent 34rem),
        linear-gradient(145deg, #f8fafc 0%, #edf2f7 100%);
    min-height: 100vh;
    padding: 1.25rem;
}

.auth-shell {
    display: grid;
    grid-template-columns: minmax(260px, 0.8fr) minmax(320px, 1fr);
    margin: auto;
    max-width: 920px;
    width: 100%;
}

.auth-brand {
    background: linear-gradient(150deg, #111, var(--cides-navy));
    border-radius: 1rem 0 0 1rem;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 560px;
    overflow: hidden;
    padding: 2.25rem;
    position: relative;
}

.auth-brand::after {
    background: rgba(232, 51, 0, 0.88);
    border-radius: 50%;
    bottom: -7rem;
    content: "";
    height: 17rem;
    position: absolute;
    right: -6rem;
    width: 17rem;
}

.auth-brand img {
    filter: brightness(0) invert(1);
    height: auto;
    max-width: 190px;
}

.auth-brand h2 {
    font-size: 1.8rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    margin-top: auto;
    position: relative;
    z-index: 1;
}

.auth-brand p {
    color: #d4deeb;
    position: relative;
    z-index: 1;
}

.auth-panel {
    background: #fff;
    border-radius: 0 1rem 1rem 0;
    box-shadow: 0 20px 60px rgba(17, 35, 55, 0.15);
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 560px;
    padding: clamp(1.5rem, 5vw, 3.25rem);
}

.auth-panel h1 {
    color: var(--cides-navy);
    font-size: 1.8rem;
    font-weight: 750;
    letter-spacing: -0.025em;
}

.auth-panel .auth-intro {
    color: var(--cides-muted);
    margin-bottom: 1.5rem;
}

.auth-links {
    display: flex;
    flex-wrap: wrap;
    font-size: 0.92rem;
    gap: 0.5rem 1rem;
    justify-content: space-between;
    margin-top: 1.25rem;
}

.password-control {
    position: relative;
}

.password-control .ui-input {
    padding-right: 3.25rem;
}

.password-toggle {
    background: transparent;
    border: 0;
    color: #55657a;
    min-height: 44px;
    min-width: 44px;
    position: absolute;
    right: 0;
    top: 0;
}

.password-requirements {
    color: var(--cides-muted);
    font-size: 0.82rem;
    margin-top: 0.35rem;
}

trix-toolbar .trix-button {
    min-height: 44px;
    min-width: 44px;
}

trix-toolbar .trix-button-row {
    scrollbar-width: thin;
}

.skip-link {
    background: #fff;
    border-radius: 0 0 0.4rem 0.4rem;
    left: 0.75rem;
    padding: 0.65rem 0.85rem;
    position: fixed;
    top: -5rem;
    z-index: 2000;
}

.skip-link:focus {
    top: 0;
}

/* Disable select arrow for read-only selects. */
select.ui-readonly {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

select.ui-input.fake-select {
    background-color: inherit;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.ui-choice-input[readonly] {
    pointer-events: none;
}

.ui-choice-input[readonly] ~ .ui-choice-label {
    cursor: default;
    pointer-events: none;
}

textarea.ui-readonly {
    resize: none;
}

/*
 * Instance status controls used to share one six-column flex row. At tablet
 * and narrow desktop widths this squeezed the selects until their labels and
 * selected values wrapped independently. Keep four predictable fields per
 * desktop row, two per tablet row and one per phone row.
 */
.instance-status-grid > *,
.instance-flags-row > * {
    max-width: none !important;
    min-width: 0;
    width: auto !important;
}

.instance-status-grid,
.instance-flags-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 768px) {
    .instance-status-grid,
    .instance-flags-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1200px) {
    .instance-status-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.instance-status-grid select,
.instance-status-grid .ui-input,
.instance-status-grid .ui-readonly {
    max-width: 100%;
    width: 100%;
}

.instance-flags-row .ui-field {
    margin-bottom: 0.75rem;
}

/* Keep a collapsed panel visible while the CIDES controller animates it. */
.ui-collapse.collapse {
    visibility: visible;
}

.htmx-indicator {
    display: none;
}

.htmx-request .htmx-indicator {
    display: inline;
}

.htmx-request.htmx-indicator {
    display: inline;
}

table.dataTable td.dt-control {
    text-align: center;
    cursor: pointer;
    min-height: 44px;
    min-width: 44px;
}

body table.dataTable tbody td.dt-control:before {
    align-items: center;
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 700;
    height: 20px;
    justify-content: center;
    margin: 0;
    position: static;
    transform: none;
    vertical-align: middle;
    width: 20px;
    color: var(--cides-navy);
    border: 1px solid #b8c4d1;
    border-radius: 999px;
    box-shadow: none;
    box-sizing: border-box;
    text-align: center;
    text-indent: 0 !important;
    font-family: inherit;
    line-height: 1;
    content: "+";
    background-color: #eef2f6;
}

body table.dataTable tbody tr.dt-hasChild td.dt-control:before {
    align-items: center;
    display: inline-flex;
    height: 20px;
    justify-content: center;
    margin: 0;
    color: var(--cides-primary-dark);
    border: 1px solid #efb5a6;
    border-radius: 999px;
    box-shadow: none;
    box-sizing: border-box;
    text-align: center;
    text-indent: 0 !important;
    font-family: inherit;
    line-height: 1;
    content: "-";
    background-color: var(--cides-primary-soft);
}

/* Make tomselect disabled state look like readonly state */
.readonly .disabled .ts-control {
    background-color: inherit;
    opacity: 1;
}

/* Make disabled TomSelect appear like enabled state */
.ts-wrapper.disabled .ts-control {
    background-color: inherit !important;
    opacity: 1 !important;
    cursor: default;
}

.ts-wrapper.disabled .ts-control input {
    background-color: inherit !important;
}

.ts-wrapper.disabled {
    opacity: 1 !important;
}

/* Accessible contrast for shared controls and DataTables. */
.ui-button-outline-secondary {
    border-color: #647285;
    color: #465568;
}

.ui-button-outline-secondary:hover,
.ui-button-outline-secondary:focus {
    background-color: #eef2f6;
    border-color: #465568;
    color: #243247;
}

.table-actions {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    gap: 0.35rem;
    justify-content: flex-end;
    min-width: -moz-max-content;
    min-width: max-content;
    white-space: nowrap;
}

.table-actions .ui-button {
    flex: 0 0 44px;
    height: 44px;
    min-height: 44px;
    min-width: 44px;
    padding: 0;
    width: 44px;
}

.table-actions .ui-button-danger {
    background-color: #fff;
    border-color: #b42318;
    color: #b42318;
}

.table-actions .ui-button-danger:hover,
.table-actions .ui-button-danger:focus {
    background-color: #fff1f0;
    border-color: #8f1d15;
    color: #8f1d15;
}

table.dataTable th:last-child,
table.dataTable td:last-child {
    vertical-align: middle;
}

@media (min-width: 1024px) {
    .app-sidebar-close {
        display: none;
    }

    .app-sidebar {
        transition-duration: 200ms;
        transition-property: transform, width;
    }

    body.sidebar-collapsed .app-sidebar {
        width: 4.75rem;
    }

    body.sidebar-collapsed .app-header {
        left: 4.75rem;
    }

    body.sidebar-collapsed .app-main,
    body.sidebar-collapsed .app-footer {
        margin-left: 4.75rem;
    }

    body.sidebar-collapsed .app-brand {
        justify-content: center;
        padding-left: 0;
        padding-right: 0;
    }

    body.sidebar-collapsed .brand-logo-full {
        display: none;
    }

    body.sidebar-collapsed .brand-logo-compact {
        display: block;
    }

    body.sidebar-collapsed .app-user-panel {
        justify-content: center;
    }

    body.sidebar-collapsed .app-user-panel .app-user-info,
    body.sidebar-collapsed .app-sidebar-nav .ui-nav-link p,
    body.sidebar-collapsed .app-sidebar-nav .app-nav-heading {
        display: none;
    }

    body.sidebar-collapsed .app-sidebar-nav .app-nav-heading + .ui-nav-item {
        margin-top: 0.75rem;
    }

    body.sidebar-collapsed .app-sidebar-nav .ui-nav-link {
        justify-content: center;
        margin: 0.15rem auto;
        padding-left: 0;
        padding-right: 0;
        width: 44px;
    }
}

@media (max-width: 767.98px) {
    .list-detail-grid {
        grid-template-columns: 1fr;
    }

    .list-detail-grid dl {
        grid-template-columns: 1fr;
    }

    .list-detail-grid dt {
        margin-top: 0.3rem;
    }

    .cursosadmin-frame {
        min-height: 780px;
    }

    .table-actions .ui-button {
        flex-basis: 44px;
        height: 44px;
        min-height: 44px;
        min-width: 44px;
        width: 44px;
    }
}

.ui-page-link,
.dt-container .dt-paging-button {
    color: #a72200 !important;
}

.ui-page-item.disabled .ui-page-link,
.dt-container .dt-paging-button.disabled {
    color: #59697d !important;
}

.ui-page-item.active .ui-page-link,
.dt-container .dt-paging-button.current {
    background-color: var(--cides-primary) !important;
    border-color: var(--cides-primary) !important;
    color: #fff !important;
}

.ui-table .text-emerald-700 {
    color: #166240 !important;
}

.ui-table .text-amber-800 {
    color: #765000 !important;
}

.ui-table .text-red-700 {
    color: #9b1c2d !important;
}

code {
    background: #f8e8ec;
    border-radius: 0.25rem;
    color: #8a1730;
    padding: 0.1rem 0.25rem;
}

pre code {
    background: transparent;
    color: inherit;
    padding: 0;
}

@media (max-width: 767.98px) {
    .dashboard-instance-id {
        display: none;
    }

    .dashboard-view-label {
        display: none;
    }

    .dashboard-upcoming-table {
        table-layout: fixed;
    }

    .dashboard-upcoming-table th:nth-child(2),
    .dashboard-upcoming-table td:nth-child(2) {
        width: 52%;
    }

    .dashboard-upcoming-table th:nth-child(3),
    .dashboard-upcoming-table td:nth-child(3) {
        width: 29%;
    }

    .dashboard-upcoming-table th:last-child,
    .dashboard-upcoming-table td:last-child {
        width: 19%;
    }

    .dashboard-upcoming-table th,
    .dashboard-upcoming-table td {
        overflow-wrap: anywhere;
        padding-left: 0.6rem;
        padding-right: 0.6rem;
    }

    .auth-page {
        padding: 0;
    }

    .auth-shell {
        display: block;
        min-height: 100vh;
    }

    .auth-brand {
        border-radius: 0;
        min-height: 150px;
        padding: 1.4rem;
    }

    .auth-brand img {
        max-width: 145px;
    }

    .auth-brand h2 {
        font-size: 1.25rem;
        margin: 1.25rem 0 0;
    }

    .auth-brand p {
        display: none;
    }

    .auth-panel {
        border-radius: 0;
        box-shadow: none;
        min-height: calc(100vh - 150px);
        padding: 1.5rem;
    }

    .app-page-header {
        padding-top: 1rem;
    }

    .app-page-header .ui-breadcrumb {
        float: none !important;
        font-size: 0.8rem;
        justify-content: flex-start;
        margin-left: 0;
        margin-right: 0;
        margin-top: 0.4rem;
        text-align: left;
        width: 100%;
    }

    .app-page-header .ui-grid[class~="items-center"] > [class*="ui-span-"] {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .app-page-header [class~="inline-flex"][class~="justify-end"],
    .page-actions {
        justify-content: flex-start !important;
        margin-top: 0.6rem;
    }

    .app-page-header [class~="inline-flex"][class~="justify-end"] {
        flex-wrap: wrap;
        gap: 0.45rem;
    }

    .app-page-header [class~="inline-flex"][class~="justify-end"] .ui-button {
        margin-left: 0 !important;
    }

    .ui-grid > .ui-col,
    .ui-grid > [class*="ui-span-"]:not(.ui-col-auto),
    form .ui-grid > .ui-col:not(.ui-col-auto),
    form .ui-grid > [class*="ui-span-"]:not(.ui-col-auto) {
        flex: 0 0 100%;
        max-width: 100%;
        margin-bottom: 0.75rem;
    }

    .ui-grid > .ui-span-1,
    .ui-grid > .ui-span-2 {
        flex: 0 0 auto;
        max-width: 100%;
    }

    .ui-panel-body {
        padding: 1rem;
    }

    .sticky-form-actions {
        align-items: stretch;
        flex-direction: column-reverse;
        margin: 1rem -1rem -1rem;
        padding: 0.75rem 1rem;
    }

    .sticky-form-actions .ui-button {
        width: 100%;
    }

    .form-actions-primary {
        margin-left: 0;
    }

    .upload-panel {
        grid-template-columns: 1fr;
    }

    .table-toolbar > * {
        flex: 1 1 100%;
    }

    .dt-container .dt-layout-row {
        display: block;
    }

    .dt-container .dt-search input {
        margin-left: 0;
        width: 100% !important;
    }

    .dt-container .dt-search {
        align-items: stretch;
        display: flex;
        flex-direction: column;
        text-align: left;
    }

    .dt-container .dt-paging {
        overflow-x: auto;
        padding-bottom: 0.25rem;
        white-space: nowrap;
    }

    .profile-actions .ui-button {
        flex: 1 1 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* Observability workspace. Kept in the source stylesheet so CSS builds retain it. */
.observability-json {
    background: #101828;
    border-radius: 0.5rem;
    color: #e4e7ec;
    font-size: 0.78rem;
    max-height: 70vh;
    overflow: auto;
    padding: 1rem;
    white-space: pre-wrap;
    word-break: break-word;
}

.observability-page,
.observability-page .ui-panel,
.observability-page .ui-grid > * {
    min-width: 0;
}

.observability-page {
    max-width: 100%;
    overflow-x: hidden;
}

.observability-toolbar {
    align-items: center;
    background: #fff;
    border: 1px solid var(--cides-border);
    border-radius: var(--cides-radius);
    box-shadow: 0 6px 20px rgba(17, 35, 55, 0.05);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 1rem;
    padding: 0.85rem 1rem;
}

.observability-toolbar-copy {
    align-items: center;
    display: flex;
    gap: 0.8rem;
    min-width: 0;
}

.observability-toolbar-copy > i {
    align-items: center;
    background: var(--cides-primary-soft);
    border-radius: 50%;
    color: var(--cides-primary);
    display: inline-flex;
    flex: 0 0 42px;
    font-size: 1.05rem;
    height: 42px;
    justify-content: center;
}

.observability-toolbar-copy strong,
.observability-toolbar-copy span {
    display: block;
}

.observability-toolbar-copy strong {
    color: var(--cides-navy);
}

.observability-toolbar-copy span {
    color: var(--cides-muted);
    font-size: 0.82rem;
    margin-top: 0.1rem;
}

.observability-period {
    align-items: flex-end;
    display: flex;
    flex: 0 0 auto;
    gap: 0.55rem;
}

.observability-period > label {
    color: var(--cides-muted);
    font-size: 0.76rem;
    font-weight: 700;
    margin: 0 0 0.45rem;
    text-transform: uppercase;
}

.observability-period-controls {
    align-items: center;
    display: flex;
    gap: 0.45rem;
}

.observability-period select {
    min-width: 7rem;
}

.observability-card-heading {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
}

.observability-card-heading .ui-panel-title {
    float: none;
}

.observability-card-heading > a {
    flex: 0 0 auto;
    font-size: 0.86rem;
    font-weight: 650;
}

.observability-table-scroll {
    max-width: 100%;
    min-width: 0;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
}

.observability-table-scroll > table {
    min-width: 720px;
}

.observability-table-scroll.observability-event-table > table {
    min-width: 900px;
}

.observability-table-scroll.observability-compact-table > table {
    min-width: 480px;
}

.observability-event-cards {
    display: none;
}

.observability-filter-actions {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
}

.observability-pagination {
    align-items: center;
    background: #fff;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: space-between;
    padding: 0.85rem 1rem;
}

.observability-pagination-summary {
    align-items: baseline;
    color: var(--cides-muted);
    display: inline-flex;
    font-size: 0.86rem;
    gap: 0.3rem;
}

.observability-pagination-summary strong {
    color: var(--cides-text);
    font-weight: 750;
}

.observability-pagination-nav {
    max-width: 100%;
    overflow-x: auto;
    padding: 0.1rem;
    scrollbar-width: thin;
}

.observability-page-list {
    align-items: center;
    display: flex;
    gap: 0.3rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.observability-page-button {
    align-items: center;
    background: #fff;
    border: 1px solid #d5dee9;
    border-radius: 0.5rem;
    color: #33465d;
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 700;
    height: 34px;
    justify-content: center;
    min-width: 34px;
    padding: 0.35rem 0.55rem;
    transition: background-color 0.15s ease, border-color 0.15s ease,
        color 0.15s ease, transform 0.15s ease;
}

.observability-page-button:hover,
.observability-page-button:focus {
    background: #fff4ef;
    border-color: var(--cides-primary);
    color: var(--cides-primary-dark);
    text-decoration: none;
    transform: translateY(-1px);
}

.observability-page-button.is-current {
    background: var(--cides-primary);
    border-color: var(--cides-primary);
    color: #fff;
    pointer-events: none;
}

.observability-page-button.is-direction {
    color: var(--cides-primary-dark);
}

.observability-page-button.is-disabled {
    background: #f4f7fa;
    border-color: #e4e9ef;
    color: #9ba8b6;
}

.observability-page-button.is-gap {
    background: transparent;
    border-color: transparent;
    color: var(--cides-muted);
    min-width: 22px;
    padding-left: 0;
    padding-right: 0;
}

.observability-break,
.observability-break code {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.observability-context-list dt,
.observability-context-list dd {
    min-width: 0;
}

.observability-context-list dd {
    overflow-wrap: anywhere;
}

@media (max-width: 767.98px) {
    .observability-toolbar {
        align-items: stretch;
        flex-direction: column;
        padding: 0.8rem;
    }

    .observability-period {
        align-items: stretch;
        display: block;
        width: 100%;
    }

    .observability-period > label {
        display: block;
        margin-bottom: 0.35rem;
    }

    .observability-period-controls {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .observability-period select {
        min-width: 0;
        width: 100%;
    }

    .observability-card-heading {
        align-items: flex-start;
    }

    .observability-filter-actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .observability-filter-actions .ui-button {
        width: 100%;
    }

    .observability-pagination {
        align-items: center;
        flex-direction: column;
        padding: 0.75rem;
    }

    .observability-pagination-nav {
        width: 100%;
    }

    .observability-page-list {
        justify-content: center;
    }

    .observability-page-button {
        height: 32px;
        min-width: 32px;
        padding-left: 0.4rem;
        padding-right: 0.4rem;
    }

    .observability-event-table {
        display: none;
    }

    .observability-event-cards {
        display: grid;
        gap: 0.75rem;
        padding: 0.75rem;
    }

    .observability-event-card {
        background: #fff;
        border: 1px solid var(--cides-border);
        border-radius: 0.65rem;
        box-shadow: 0 3px 12px rgba(17, 35, 55, 0.05);
        min-width: 0;
        padding: 0.85rem;
    }

    .observability-event-card-header {
        align-items: flex-start;
        display: flex;
        gap: 0.6rem;
        justify-content: space-between;
    }

    .observability-event-card-header strong,
    .observability-event-card-header span:not(.status-badge) {
        display: block;
    }

    .observability-event-card-header span:not(.status-badge) {
        color: var(--cides-muted);
        font-size: 0.82rem;
        margin-top: 0.15rem;
    }

    .observability-event-card-details {
        display: grid;
        gap: 0.65rem 0.9rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin: 0.9rem 0;
    }

    .observability-event-card-details > div {
        min-width: 0;
    }

    .observability-event-card-details dt {
        color: var(--cides-muted);
        font-size: 0.7rem;
        letter-spacing: 0.04em;
        text-transform: uppercase;
    }

    .observability-event-card-details dd {
        color: var(--cides-text);
        font-size: 0.82rem;
        margin: 0.15rem 0 0;
        overflow-wrap: anywhere;
    }

    .observability-event-card-details small {
        color: var(--cides-muted);
        display: block;
    }

    .observability-event-card-actions {
        display: grid;
        gap: 0.5rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .observability-event-card-actions .ui-button:only-child {
        grid-column: 1 / -1;
    }

    .observability-context-list dt {
        color: var(--cides-muted);
        font-size: 0.7rem;
        letter-spacing: 0.04em;
        margin-top: 0.2rem;
        text-transform: uppercase;
    }

    .observability-context-list dd {
        margin-bottom: 0.65rem;
    }

    .observability-context-list dd:last-child {
        margin-bottom: 0;
    }

    .observability-page .empty-state {
        min-height: 150px;
        padding: 1.25rem;
    }
}

*, ::before, ::after {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x:  ;
    --tw-pan-y:  ;
    --tw-pinch-zoom:  ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position:  ;
    --tw-gradient-via-position:  ;
    --tw-gradient-to-position:  ;
    --tw-ordinal:  ;
    --tw-slashed-zero:  ;
    --tw-numeric-figure:  ;
    --tw-numeric-spacing:  ;
    --tw-numeric-fraction:  ;
    --tw-ring-inset:  ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur:  ;
    --tw-brightness:  ;
    --tw-contrast:  ;
    --tw-grayscale:  ;
    --tw-hue-rotate:  ;
    --tw-invert:  ;
    --tw-saturate:  ;
    --tw-sepia:  ;
    --tw-drop-shadow:  ;
    --tw-backdrop-blur:  ;
    --tw-backdrop-brightness:  ;
    --tw-backdrop-contrast:  ;
    --tw-backdrop-grayscale:  ;
    --tw-backdrop-hue-rotate:  ;
    --tw-backdrop-invert:  ;
    --tw-backdrop-opacity:  ;
    --tw-backdrop-saturate:  ;
    --tw-backdrop-sepia:  ;
    --tw-contain-size:  ;
    --tw-contain-layout:  ;
    --tw-contain-paint:  ;
    --tw-contain-style:  ;
}

::backdrop {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x:  ;
    --tw-pan-y:  ;
    --tw-pinch-zoom:  ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position:  ;
    --tw-gradient-via-position:  ;
    --tw-gradient-to-position:  ;
    --tw-ordinal:  ;
    --tw-slashed-zero:  ;
    --tw-numeric-figure:  ;
    --tw-numeric-spacing:  ;
    --tw-numeric-fraction:  ;
    --tw-ring-inset:  ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur:  ;
    --tw-brightness:  ;
    --tw-contrast:  ;
    --tw-grayscale:  ;
    --tw-hue-rotate:  ;
    --tw-invert:  ;
    --tw-saturate:  ;
    --tw-sepia:  ;
    --tw-drop-shadow:  ;
    --tw-backdrop-blur:  ;
    --tw-backdrop-brightness:  ;
    --tw-backdrop-contrast:  ;
    --tw-backdrop-grayscale:  ;
    --tw-backdrop-hue-rotate:  ;
    --tw-backdrop-invert:  ;
    --tw-backdrop-opacity:  ;
    --tw-backdrop-saturate:  ;
    --tw-backdrop-sepia:  ;
    --tw-contain-size:  ;
    --tw-contain-layout:  ;
    --tw-contain-paint:  ;
    --tw-contain-style:  ;
}

/* ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com *//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
  *,
  ::before,
  ::after {
    border-color: #dfe5eb;
  }

  body {
    margin: 0px;
    --tw-bg-opacity: 1;
    background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(30 41 59 / var(--tw-text-opacity, 1));
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    line-height: 1.25;
}

  button,
  [type="button"],
  [type="reset"],
  [type="submit"] {
    cursor: pointer;
}

  button,
  input,
  optgroup,
  select,
  textarea,
  .dt-container,
  .select2-container,
  .ts-wrapper,
  trix-editor {
    font-family: inherit;
  }

  button:disabled,
  input:disabled,
  select:disabled,
  textarea:disabled {
    cursor: not-allowed;
    opacity: 0.7;
}
.\!container {
    width: 100% !important;
}
.container {
    width: 100%;
}
@media (min-width: 640px) {
    .\!container {
        max-width: 640px !important;
    }
    .container {
        max-width: 640px;
    }
}
@media (min-width: 768px) {
    .\!container {
        max-width: 768px !important;
    }
    .container {
        max-width: 768px;
    }
}
@media (min-width: 1024px) {
    .\!container {
        max-width: 1024px !important;
    }
    .container {
        max-width: 1024px;
    }
}
@media (min-width: 1280px) {
    .\!container {
        max-width: 1280px !important;
    }
    .container {
        max-width: 1280px;
    }
}
@media (min-width: 1536px) {
    .\!container {
        max-width: 1536px !important;
    }
    .container {
        max-width: 1536px;
    }
}
  .sence-code {
    font-weight: 600;
}

  .sence-code.is-valid,
  .sence-validity.is-valid {
    --tw-text-opacity: 1;
    color: rgb(4 120 87 / var(--tw-text-opacity, 1));
}

  .ui-table .sence-code.is-valid,
  .ui-table .sence-validity.is-valid {
    color: #166240;
}

  .sence-code.is-expiring,
  .sence-validity.is-expiring {
    --tw-text-opacity: 1;
    color: rgb(180 83 9 / var(--tw-text-opacity, 1));
}

  .sence-code.is-expired,
  .sence-validity.is-expired {
    --tw-text-opacity: 1;
    color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}

  .ui-table .sence-code.is-expired,
  .ui-table .sence-validity.is-expired {
    color: #9b1c2d;
}

  .sence-search-field {
    min-width: 18rem;
    flex-grow: 1;
}
  /* Layout */
  .app-shell {
    min-height: 100vh;
    --tw-bg-opacity: 1;
    background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}

  .app-header {
    position: fixed;
    left: 0px;
    right: 0px;
    top: 0px;
    z-index: 40;
    display: flex;
    height: 4rem;
    align-items: center;
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 200ms;
}

  @media (min-width: 1024px) {
    .app-header {
        left: 16rem;
    }
}

  .app-sidebar {
    position: fixed;
    top: 0px;
    bottom: 0px;
    left: 0px;
    z-index: 50;
    display: flex;
    width: 16rem;
    --tw-translate-x: -100%;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    flex-direction: column;
    overflow-y: auto;
    --tw-bg-opacity: 1;
    background-color: rgb(17 35 55 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
    --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
    --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 200ms;
}

  @media (min-width: 1024px) {
    .app-sidebar {
        --tw-translate-x: 0px;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    }
}

  body.sidebar-open .app-sidebar {
    --tw-translate-x: 0px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

  .app-main {
    min-height: 100vh;
    padding-top: 4rem;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 200ms;
}

  @media (min-width: 1024px) {
    .app-main {
        margin-left: 16rem;
    }
}

  .app-footer {
    display: flex;
    min-height: 3.5rem;
    align-items: center;
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding-left: 1rem;
    padding-right: 1rem;
}

  @media (min-width: 1024px) {
    .app-footer {
        margin-left: 16rem;
    }
}

  .app-sidebar-overlay {
    position: fixed;
    inset: 0px;
    z-index: 40;
    display: none;
    background-color: rgb(2 6 23 / 0.5);
    --tw-backdrop-blur: blur(4px);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

  @media (min-width: 1024px) {
    .app-sidebar-overlay {
        display: none;
    }
}

  body.sidebar-open .app-sidebar-overlay {
    display: block;
}

  .app-brand {
    display: flex;
    height: 4rem;
    flex-shrink: 0;
    align-items: center;
    gap: 0.75rem;
    border-bottom-width: 1px;
    border-color: rgb(255 255 255 / 0.1);
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
    text-decoration-line: none;
}

  .app-sidebar-body {
    flex: 1 1 0%;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    padding-bottom: 1.25rem;
}

  .app-user-panel {
    margin-bottom: 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    border-bottom-width: 1px;
    border-color: rgb(255 255 255 / 0.1);
    padding-top: 1rem;
    padding-bottom: 1rem;
}

  .app-user-panel .app-user-avatar img {
    height: 2.5rem;
    width: 2.5rem;
    border-radius: 9999px;
    border-width: 2px;
    border-color: rgb(255 255 255 / 0.2);
    -o-object-fit: cover;
       object-fit: cover;
}

  .app-user-panel .app-user-info {
    min-width: 0px;
    flex: 1 1 0%;
}

  .app-user-panel .app-user-info a {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 600;
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
    text-decoration-line: none;
}

  .app-page-content {
    padding-left: 1rem;
    padding-right: 1rem;
    padding-bottom: 1.5rem;
}

  .app-page-header {
    padding-left: 1rem;
    padding-right: 1rem;
    padding-bottom: 0.75rem;
    padding-top: 1.5rem;
}

  .app-container {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 1600px;
}

  /* Navbar and navigation */
  .app-navbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

  .app-navbar-items {
    margin: 0px;
    display: flex;
    list-style-type: none;
    align-items: center;
    padding: 0px;
}

  .app-navbar-items.ml-auto {
    margin-left: auto;
  }

  .ui-nav {
    margin: 0px;
    list-style-type: none;
    padding: 0px;
}

  .ui-nav-item {
    position: relative;
}

  .app-header .ui-nav-link {
    display: inline-flex;
    min-height: 2.75rem;
    min-width: 2.75rem;
    align-items: center;
    border-radius: 0.5rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 600;
    --tw-text-opacity: 1;
    color: rgb(71 85 105 / var(--tw-text-opacity, 1));
    text-decoration-line: none;
}

  .app-header .ui-nav-link:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(34 34 34 / var(--tw-text-opacity, 1));
}

  .system-switch-trigger {
    gap: 0.5rem;
}

  .system-switch-chevron {
    font-size: 0.65rem;
    --tw-text-opacity: 1;
    color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}

  .system-switch-menu {
    left: 0px;
    right: auto;
    min-width: 15rem;
}

  .system-switch-heading {
    display: block;
    padding-left: 1rem;
    padding-right: 1rem;
    padding-bottom: 0.25rem;
    padding-top: 0.5rem;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.025em;
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
    color: #59697d;
}

  .system-switch-menu .ui-dropdown-item.active {
    --tw-bg-opacity: 1;
    background-color: rgb(255 243 239 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(137 32 6 / var(--tw-text-opacity, 1));
}

  .system-switch-menu .ui-dropdown-item.\!active {
    --tw-bg-opacity: 1;
    background-color: rgb(255 243 239 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(137 32 6 / var(--tw-text-opacity, 1));
}

  .navbar-global-search {
    margin-left: 0.5rem;
    display: none;
    align-items: center;
}

  @media (min-width: 1024px) {
    .navbar-global-search {
        display: flex;
    }
}

  .navbar-global-search-control {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    border-radius: 0.375rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
    color: #59697d;
    width: min(28rem, 34vw);
}

  .navbar-global-search-control:focus-within {
    --tw-border-opacity: 1;
    border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
    --tw-ring-opacity: 1;
    --tw-ring-color: rgb(219 234 254 / var(--tw-ring-opacity, 1));
}

  .navbar-global-search-control input {
    min-width: 0px;
    flex: 1 1 0%;
    border-width: 0px;
    background-color: transparent;
    padding: 0px;
    font-size: 0.875rem;
    line-height: 1.25rem;
    --tw-text-opacity: 1;
    color: rgb(30 41 59 / var(--tw-text-opacity, 1));
    outline: 2px solid transparent;
    outline-offset: 2px;
}

  .note-notifications-trigger {
    position: relative;
    justify-content: center;
}

  .note-notifications-badge {
    position: absolute;
    right: 0.125rem;
    top: 0.125rem;
    display: inline-flex;
    min-height: 1.15rem;
    min-width: 1.15rem;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    border-width: 2px;
    --tw-border-opacity: 1;
    border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
    padding-left: 0.25rem;
    padding-right: 0.25rem;
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 1;
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

  .note-notifications-menu {
    right: 0px;
    width: min(25rem,calc(100vw - 1rem));
    overflow: visible;
    padding: 0px;
}

  .note-notifications-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    border-bottom-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

  .note-notifications-header strong {
    display: block;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 700;
    --tw-text-opacity: 1;
    color: rgb(17 35 55 / var(--tw-text-opacity, 1));
}

  .note-notifications-header span {
    margin-top: 0.125rem;
    display: block;
    font-size: 0.75rem;
    line-height: 1rem;
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
    color: #59697d;
}

  .note-notifications-read-all {
    flex-shrink: 0;
    border-radius: 0.375rem;
    border-width: 0px;
    background-color: transparent;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 600;
    --tw-text-opacity: 1;
    color: rgb(167 34 0 / var(--tw-text-opacity, 1));
}

  .note-notifications-read-all:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(255 243 239 / var(--tw-bg-opacity, 1));
}

  .note-notifications-list {
    max-height: min(30rem,70vh);
    overflow-y: auto;
}

  .note-notification-item {
    position: relative;
    display: flex;
    gap: 0.75rem;
    border-bottom-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(241 245 249 / var(--tw-border-opacity, 1));
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    text-align: left;
    text-decoration-line: none;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

  .note-notification-item:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}

  .note-notification-item.is-unread {
    background-color: rgb(255 243 239 / 0.7);
}

  .note-notification-item.is-unread:hover {
    background-color: rgb(255 228 218 / 0.7);
}

  .note-notification-icon {
    margin-top: 0.125rem;
    display: inline-flex;
    height: 2.25rem;
    width: 2.25rem;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    --tw-bg-opacity: 1;
    background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}

  .note-notification-item.is-unread .note-notification-icon {
    --tw-bg-opacity: 1;
    background-color: rgb(255 228 218 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(167 34 0 / var(--tw-text-opacity, 1));
}

  .note-notification-content {
    min-width: 0px;
    flex: 1 1 0%;
}

  .note-notification-title,
  .note-notification-message,
  .note-notification-meta {
    display: block;
}

  .note-notification-title {
    padding-right: 0.75rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 700;
    --tw-text-opacity: 1;
    color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}

  .note-notification-message {
    margin-top: 0.25rem;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: 0.75rem;
    line-height: 1rem;
    line-height: 1.625;
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}

  .note-notification-meta {
    margin-top: 0.375rem;
    font-size: 0.68rem;
    line-height: 1.625;
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
    color: #59697d;
}

  .note-notification-unread {
    position: absolute;
    right: 0.75rem;
    top: 1rem;
    height: 0.5rem;
    width: 0.5rem;
    border-radius: 9999px;
    --tw-bg-opacity: 1;
    background-color: rgb(200 41 0 / var(--tw-bg-opacity, 1));
}

  .note-notifications-status {
    display: flex;
    min-height: 7rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    text-align: center;
    font-size: 0.75rem;
    line-height: 1rem;
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
    color: #59697d;
}

  .note-notifications-status i {
    margin-bottom: 0.25rem;
    font-size: 1.125rem;
    line-height: 1.75rem;
}

  .note-notifications-status strong {
    font-size: 0.875rem;
    line-height: 1.25rem;
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}

  .note-notifications-status.is-error {
    min-height: 4rem;
    --tw-bg-opacity: 1;
    background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}

  .ui-table .note-notifications-status.is-error {
    color: #9b1c2d;
}

  .note-notification-toast {
    position: fixed;
    right: 1rem;
    top: 5rem;
    z-index: 1100;
    display: flex;
    max-width: calc(100vw - 2rem);
    align-items: center;
    gap: 0.75rem;
    border-radius: 0.75rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(255 197 179 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    text-align: left;
    --tw-text-opacity: 1;
    color: rgb(30 41 59 / var(--tw-text-opacity, 1));
    --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
    --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

  .note-notification-toast > i {
    font-size: 1.25rem;
    line-height: 1.75rem;
    --tw-text-opacity: 1;
    color: rgb(200 41 0 / var(--tw-text-opacity, 1));
}

  .note-notification-toast strong,
  .note-notification-toast small {
    display: block;
}

  .note-notification-toast strong {
    font-size: 0.875rem;
    line-height: 1.25rem;
}

  .note-notification-toast small {
    margin-top: 0.125rem;
    font-size: 0.75rem;
    line-height: 1rem;
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
    color: #59697d;
}

  .app-sidebar-nav > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}

  .app-sidebar-nav .ui-nav-link {
    display: flex;
    min-height: 2.75rem;
    width: 100%;
    align-items: center;
    gap: 0.75rem;
    border-radius: 0.5rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    --tw-text-opacity: 1;
    color: rgb(226 232 240 / var(--tw-text-opacity, 1));
    text-decoration-line: none;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

  .app-sidebar-nav .ui-nav-link:hover {
    background-color: rgb(255 255 255 / 0.1);
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

  .app-sidebar-nav .ui-nav-link.active {
    --tw-bg-opacity: 1;
    background-color: rgb(200 41 0 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
    --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
    --tw-shadow-color: rgb(113 31 11 / 0.2);
    --tw-shadow: var(--tw-shadow-colored);
}

  .app-sidebar-nav .ui-nav-link.\!active {
    --tw-bg-opacity: 1;
    background-color: rgb(200 41 0 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
    --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
    --tw-shadow-color: rgb(113 31 11 / 0.2);
    --tw-shadow: var(--tw-shadow-colored);
}

  .app-sidebar-nav .ui-nav-link p {
    margin: 0px;
}

  .app-nav-icon {
    width: 1.25rem;
    flex-shrink: 0;
    text-align: center;
}

  .app-nav-heading {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    padding-bottom: 0.25rem;
    padding-top: 1.25rem;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    --tw-text-opacity: 1;
    color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}

  /* Responsive grid for server-rendered forms and index pages. */
  .ui-grid {
    margin-left: -0.5rem;
    margin-right: -0.5rem;
    display: flex;
    flex-wrap: wrap;
}

  .ui-grid > * {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

  [class*="ui-span-sm-"],
  [class*="ui-span-md-"],
  [class*="ui-span-lg-"],
  [class*="ui-span-xl-"] {
    width: 100%;
}

  .ui-col {
    min-width: 0px;
    flex: 1 1 0%;
}

  .ui-col-auto {
    width: auto;
    flex: none;
}

  .ui-span-1 { width: 8.333333%; }
  .ui-span-3 { width: 25%; }
  .ui-span-5 { width: 41.666667%; }
  .ui-span-6 { width: 50%; }
  .ui-span-7 { width: 58.333333%; }
  .ui-span-8 { width: 66.666667%; }
  .ui-span-12 { width: 100%; }

  @media (min-width: 640px) {
    .ui-span-sm-2 { width: 16.666667%; }
    .ui-span-sm-3 { width: 25%; }
    .ui-span-sm-4 { width: 33.333333%; }
    .ui-span-sm-5 { width: 41.666667%; }
    .ui-span-sm-6 { width: 50%; }
    .ui-span-sm-7 { width: 58.333333%; }
    .ui-span-sm-8 { width: 66.666667%; }
    .ui-span-sm-9 { width: 75%; }
    .ui-span-sm-10 { width: 83.333333%; }
    .ui-span-sm-12 { width: 100%; }
  }

  @media (min-width: 768px) {
    .ui-span-md-2 { width: 16.666667%; }
    .ui-span-md-3 { width: 25%; }
    .ui-span-md-4 { width: 33.333333%; }
    .ui-span-md-5 { width: 41.666667%; }
    .ui-span-md-6 { width: 50%; }
    .ui-span-md-7 { width: 58.333333%; }
    .ui-span-md-8 { width: 66.666667%; }
    .ui-span-md-9 { width: 75%; }
    .ui-span-md-10 { width: 83.333333%; }
    .ui-span-md-12 { width: 100%; }
  }

  @media (min-width: 1024px) {
    .ui-span-lg-2 { width: 16.666667%; }
    .ui-span-lg-3 { width: 25%; }
    .ui-span-lg-4 { width: 33.333333%; }
    .ui-span-lg-5 { width: 41.666667%; }
    .ui-span-lg-6 { width: 50%; }
    .ui-span-lg-7 { width: 58.333333%; }
    .ui-span-lg-8 { width: 66.666667%; }
    .ui-span-lg-9 { width: 75%; }
    .ui-span-lg-10 { width: 83.333333%; }
    .ui-span-lg-12 { width: 100%; }
  }

  @media (min-width: 1280px) {
    .ui-span-xl-1 { width: 8.333333%; }
    .ui-span-xl-2 { width: 16.666667%; }
    .ui-span-xl-3 { width: 25%; }
    .ui-span-xl-4 { width: 33.333333%; }
    .ui-span-xl-5 { width: 41.666667%; }
    .ui-span-xl-6 { width: 50%; }
    .ui-span-xl-7 { width: 58.333333%; }
    .ui-span-xl-8 { width: 66.666667%; }
    .ui-span-xl-9 { width: 75%; }
    .ui-span-xl-10 { width: 83.333333%; }
    .ui-span-xl-12 { width: 100%; }
  }

  /* Cards */
  .ui-panel {
    margin-bottom: 1.25rem;
    overflow: hidden;
    border-radius: 0.875rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    --tw-shadow: 0 12px 36px rgba(17, 35, 55, 0.08);
    --tw-shadow-colored: 0 12px 36px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

  .ui-panel-header {
    display: flex;
    min-height: 3.5rem;
    align-items: center;
    border-bottom-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

  .ui-panel-body {
    padding: 1.25rem;
}

  .ui-panel-footer {
    border-top-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

  .ui-panel-title {
    margin: 0px;
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: 700;
    --tw-text-opacity: 1;
    color: rgb(17 35 55 / var(--tw-text-opacity, 1));
}

  .ui-panel-outline {
    border-top-width: 2px;
    --tw-border-opacity: 1;
    border-top-color: rgb(232 51 0 / var(--tw-border-opacity, 1));
}

  /* Buttons */
  .ui-button {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    border-radius: 0.5rem;
    border-width: 1px;
    border-color: transparent;
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 700;
    text-decoration-line: none;
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}
  .ui-button:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
    --tw-ring-color: rgb(232 51 0 / 0.2);
}
  .ui-button:disabled {
    pointer-events: none;
    opacity: 0.6;
}

  .ui-button-sm {
    min-height: 2.75rem;
    min-width: 2.75rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
    font-size: 0.75rem;
    line-height: 1rem;
}

  .ui-button-lg,
  .ui-input-lg {
    min-height: 3rem;
    padding-left: 1rem;
    padding-right: 1rem;
    font-size: 1rem;
    line-height: 1.5rem;
}

  .ui-button-primary {
    --tw-border-opacity: 1;
    border-color: rgb(200 41 0 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(200 41 0 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

  .ui-button-primary:hover {
    --tw-border-opacity: 1;
    border-color: rgb(167 34 0 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(167 34 0 / var(--tw-bg-opacity, 1));
}

  .ui-button-secondary {
    --tw-border-opacity: 1;
    border-color: rgb(71 85 105 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(71 85 105 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

  .ui-button-secondary:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(51 65 85 / var(--tw-bg-opacity, 1));
}

  .ui-button-success {
    --tw-border-opacity: 1;
    border-color: rgb(4 120 87 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(4 120 87 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
    background-color: var(--cides-success);
    border-color: var(--cides-success);
}

  .ui-button-success:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(6 95 70 / var(--tw-bg-opacity, 1));
}

  .ui-button-danger {
    --tw-border-opacity: 1;
    border-color: rgb(185 28 28 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

  .ui-button-danger:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(153 27 27 / var(--tw-bg-opacity, 1));
}

  .ui-button-warning {
    --tw-border-opacity: 1;
    border-color: rgb(245 158 11 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(2 6 23 / var(--tw-text-opacity, 1));
}

  .ui-button-warning:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(217 119 6 / var(--tw-bg-opacity, 1));
}

  .ui-button-info {
    --tw-border-opacity: 1;
    border-color: rgb(21 94 117 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(21 94 117 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

  .ui-button-info:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(22 78 99 / var(--tw-bg-opacity, 1));
}

  .ui-button-link {
    border-color: transparent;
    background-color: transparent;
    --tw-text-opacity: 1;
    color: rgb(167 34 0 / var(--tw-text-opacity, 1));
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

  .ui-button-link:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(255 243 239 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(137 32 6 / var(--tw-text-opacity, 1));
}

  .ui-button-outline-primary {
    --tw-border-opacity: 1;
    border-color: rgb(232 51 0 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(167 34 0 / var(--tw-text-opacity, 1));
}

  .ui-button-outline-primary:hover {
    --tw-border-opacity: 1;
    border-color: rgb(200 41 0 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 243 239 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(137 32 6 / var(--tw-text-opacity, 1));
}

  .ui-button-outline-secondary {
    --tw-border-opacity: 1;
    border-color: rgb(100 116 139 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}

  .ui-button-outline-secondary:hover {
    --tw-border-opacity: 1;
    border-color: rgb(71 85 105 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}

  .ui-button-outline-danger {
    --tw-border-opacity: 1;
    border-color: rgb(220 38 38 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}

  .ui-table .ui-button-outline-danger {
    color: #9b1c2d;
}

  .ui-button-outline-danger:hover {
    --tw-border-opacity: 1;
    border-color: rgb(185 28 28 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(153 27 27 / var(--tw-text-opacity, 1));
}

  .ui-button-outline-success {
    --tw-border-opacity: 1;
    border-color: rgb(4 120 87 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(6 95 70 / var(--tw-text-opacity, 1));
}

  .ui-button-outline-success:hover {
    --tw-border-opacity: 1;
    border-color: rgb(6 95 70 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(6 78 59 / var(--tw-text-opacity, 1));
}

  .ui-button-outline-info {
    --tw-border-opacity: 1;
    border-color: rgb(14 116 144 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(21 94 117 / var(--tw-text-opacity, 1));
}

  .ui-button-outline-info:hover {
    --tw-border-opacity: 1;
    border-color: rgb(21 94 117 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(236 254 255 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(22 78 99 / var(--tw-text-opacity, 1));
}

  /* Forms */
  .ui-field,
  .form-outline {
    margin-bottom: 1rem;
}

  .ui-input {
    display: block;
    min-height: 2.75rem;
    width: 100%;
    border-radius: 0.5rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    --tw-text-opacity: 1;
    color: rgb(30 41 59 / var(--tw-text-opacity, 1));
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
    outline: 2px solid transparent;
    outline-offset: 2px;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

  .ui-input::-moz-placeholder {
    --tw-text-opacity: 1;
    color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}

  .ui-input::placeholder {
    --tw-text-opacity: 1;
    color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}

  .ui-input:focus {
    --tw-border-opacity: 1;
    border-color: rgb(232 51 0 / var(--tw-border-opacity, 1));
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
    --tw-ring-color: rgb(232 51 0 / 0.1);
}

  textarea.ui-input {
    min-height: 6rem;
}

  .campo-titulo-field .ui-field {
    margin-bottom: 0px;
}

  .campo-personalizado-card {
    border-radius: 0.75rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding: 1rem;
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

  .campo-personalizado-heading {
    width: 100%;
}

  .campo-contenido-trix {
    min-height: 12rem;
    resize: vertical;
    overflow: auto;
  }

  .campo-editor-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

  body.campo-editor-expanded {
    overflow: hidden;
  }

  .campo-contenido-editor.is-expanded {
    position: fixed;
    inset: 1rem;
    z-index: 80;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 0.75rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding: 1rem;
    --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
    --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

  .campo-contenido-editor.is-expanded trix-toolbar {
    flex-shrink: 0;
}

  .campo-contenido-editor.is-expanded .campo-contenido-trix,
  .campo-contenido-editor.is-expanded .campo-html-source:not(.hidden) {
    min-height: 0px;
    flex: 1 1 0%;
    resize: none;
}

  .campo-contenido-editor.is-expanded .campo-editor-actions {
    flex-shrink: 0;
}

  .ui-readonly {
    display: block;
    min-height: 2.75rem;
    width: 100%;
    border-radius: 0.5rem;
    border-width: 1px;
    border-color: transparent;
    --tw-bg-opacity: 1;
    background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}

  .ui-help {
    margin-top: 0.25rem;
    font-size: 0.75rem;
    line-height: 1rem;
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
    color: #59697d;
}

  .ui-choice {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    gap: 0.5rem;
}

  .ui-choice-input {
    height: 1rem;
    width: 1rem;
    border-radius: 0.25rem;
    --tw-border-opacity: 1;
    border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(232 51 0 / var(--tw-text-opacity, 1));
}

  .ui-choice-input:focus {
    --tw-ring-opacity: 1;
    --tw-ring-color: rgb(232 51 0 / var(--tw-ring-opacity, 1));
}

  input[type="radio"].ui-choice-input {
    border-radius: 9999px;
}

  .ui-choice-label {
    margin-bottom: 0px;
    cursor: pointer;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}

  .ui-file {
    position: relative;
    display: block;
    min-height: 2.75rem;
    width: 100%;
}

  .ui-file-native {
    position: absolute;
    inset: 0px;
    z-index: 10;
    height: 100%;
    width: 100%;
    cursor: pointer;
    opacity: 0;
}

  .ui-file-label {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    border-radius: 0.5rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding-left: 0.75rem;
    padding-right: 6rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    --tw-text-opacity: 1;
    color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}

  .ui-file-label::after {
    content: attr(data-browse);
    position: absolute;
    bottom: 0px;
    right: 0px;
    top: 0px;
    display: flex;
    align-items: center;
    border-top-right-radius: 0.5rem;
    border-bottom-right-radius: 0.5rem;
    border-left-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    font-weight: 600;
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
  }

  .ui-error {
    margin-top: 0.25rem;
    display: none;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 600;
    --tw-text-opacity: 1;
    color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}

  .ui-table .ui-error {
    color: #9b1c2d;
}

  .ui-error-visible {
    display: block;
}

  .is-invalid {
    --tw-border-opacity: 1;
    border-color: rgb(220 38 38 / var(--tw-border-opacity, 1));
}

  .is-invalid:focus {
    --tw-border-opacity: 1;
    border-color: rgb(220 38 38 / var(--tw-border-opacity, 1));
    --tw-ring-color: rgb(239 68 68 / 0.1);
}

  /* Tables */
  .ui-table-scroll {
    width: 100%;
    overflow-x: auto;
}

  .ui-table {
    width: 100%;
    border-collapse: collapse;
    text-align: left;
    font-size: 0.875rem;
    line-height: 1.25rem;
}

  .ui-table th,
  .ui-table td {
    border-bottom-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    vertical-align: middle;
}

  .ui-table-striped tbody tr:nth-child(even) {
    --tw-bg-opacity: 1;
    background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}

  .ui-table-hover tbody tr:hover {
    background-color: rgb(255 243 239 / 0.5);
}

  /* Feedback and utility components */
  .ui-alert {
    margin-bottom: 1rem;
    border-radius: 0.75rem;
    border-width: 1px;
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
}

  .ui-alert-dismissible {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

  .app-navbar-items.ui-alert-dismissible .ui-close {
    margin-left: auto;
  }

  .ui-alert-dismissible .ui-close {
    margin-top: -0.5rem;
    margin-bottom: -0.5rem;
    margin-right: -0.5rem;
    margin-left: auto;
    flex-shrink: 0;
}

  .ui-alert-success {
    --tw-border-opacity: 1;
    border-color: rgb(167 243 208 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(6 78 59 / var(--tw-text-opacity, 1));
}

  .ui-alert-danger {
    --tw-border-opacity: 1;
    border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(127 29 29 / var(--tw-text-opacity, 1));
}

  .ui-alert-warning {
    --tw-border-opacity: 1;
    border-color: rgb(253 230 138 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(69 26 3 / var(--tw-text-opacity, 1));
}

  .ui-alert-info {
    --tw-border-opacity: 1;
    border-color: rgb(165 243 252 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(236 254 255 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(8 51 68 / var(--tw-text-opacity, 1));
}

  .ui-badge {
    display: inline-flex;
    border-radius: 9999px;
    padding-left: 0.625rem;
    padding-right: 0.625rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 700;
}

  .ui-badge-primary {
    --tw-bg-opacity: 1;
    background-color: rgb(255 228 218 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(137 32 6 / var(--tw-text-opacity, 1));
}
  .ui-badge-secondary {
    --tw-bg-opacity: 1;
    background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
  .ui-badge-success {
    --tw-bg-opacity: 1;
    background-color: rgb(209 250 229 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(6 95 70 / var(--tw-text-opacity, 1));
}
  .ui-badge-danger {
    --tw-bg-opacity: 1;
    background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(153 27 27 / var(--tw-text-opacity, 1));
}
  .ui-badge-warning {
    --tw-bg-opacity: 1;
    background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(120 53 15 / var(--tw-text-opacity, 1));
}
  .ui-badge-info {
    --tw-bg-opacity: 1;
    background-color: rgb(207 250 254 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(22 78 99 / var(--tw-text-opacity, 1));
}

  .ui-breadcrumb {
    margin: 0px;
    display: flex;
    list-style-type: none;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    background-color: transparent;
    padding: 0px;
    font-size: 0.875rem;
    line-height: 1.25rem;
}

  .ui-breadcrumb-item {
    color: #526277;
  }

  .ui-breadcrumb-item + .ui-breadcrumb-item::before {
    content: "/";
    margin-right: 0.5rem;
    --tw-text-opacity: 1;
    color: rgb(148 163 184 / var(--tw-text-opacity, 1));
  }

  .ui-breadcrumb-item a {
    font-weight: 500;
    --tw-text-opacity: 1;
    color: rgb(167 34 0 / var(--tw-text-opacity, 1));
    text-decoration-line: none;
}

  .ui-breadcrumb-item a:hover {
    text-decoration-line: underline;
}

  .ui-list {
    margin: 0px;
    list-style-type: none;
}

  .ui-list > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-y-reverse: 0;
    border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
    border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
    --tw-divide-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-divide-opacity, 1));
}

  .ui-list {
    padding: 0px;
}

  .ui-list-item {
    display: block;
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
    text-decoration-line: none;
}

  .ui-list-action:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(167 34 0 / var(--tw-text-opacity, 1));
}

  /* Native lightweight interactive components (handled by ui.js). */
  .ui-dropdown-menu {
    position: absolute;
    right: 0px;
    z-index: 50;
    margin-top: 0.5rem;
    display: none;
    min-width: 13rem;
    overflow: hidden;
    border-radius: 0.75rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

  .ui-dropdown-menu.show {
    display: block;
}

  .ui-dropdown-item {
    display: flex;
    min-height: 2.75rem;
    width: 100%;
    align-items: center;
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    text-align: left;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
    text-decoration-line: none;
}

  .ui-dropdown-item:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(167 34 0 / var(--tw-text-opacity, 1));
}

  .ui-dropdown-divider {
    margin-top: 0.25rem;
    margin-bottom: 0.25rem;
    border-top-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
}

  .ui-collapse {
    display: none;
}

  .ui-collapse.show {
    display: block;
}

  .ui-modal {
    position: fixed;
    inset: 0px;
    z-index: 1050;
    display: none;
    align-items: center;
    justify-content: center;
    overflow-y: auto;
    background-color: rgb(2 6 23 / 0.55);
    padding: 1rem;
    --tw-backdrop-blur: blur(4px);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

  .ui-modal.show {
    display: flex;
}

  .ui-modal-dialog {
    margin-top: auto;
    margin-bottom: auto;
    width: 100%;
    max-width: 32rem;
}

  .ui-modal-content {
    overflow: hidden;
    border-radius: 1rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
    --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

  .ui-modal-header,
  .ui-modal-footer {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
}

  .ui-modal-header {
    border-bottom-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
}

  .ui-modal-footer {
    justify-content: flex-end;
    border-top-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
}

  .ui-modal-title {
    margin: 0px;
    flex: 1 1 0%;
    font-size: 1.125rem;
    line-height: 1.75rem;
    font-weight: 700;
    --tw-text-opacity: 1;
    color: rgb(17 35 55 / var(--tw-text-opacity, 1));
}

  .ui-modal-body {
    padding: 1.25rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}

  .ui-close {
    display: inline-flex;
    height: 2.75rem;
    width: 2.75rem;
    align-items: center;
    justify-content: center;
    border-radius: 0.5rem;
    border-width: 0px;
    background-color: transparent;
    font-size: 1.5rem;
    line-height: 2rem;
    line-height: 1;
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
    color: #59697d;
}

  .ui-close:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}

  /* DataTables without the Bootstrap presentation adapter. */

  .dt-container .dt-search,
  .dt-container .dt-length {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    --tw-text-opacity: 1;
    color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}

  .app-navbar-items.dt-container .dt-search {
    margin-left: auto;
  }

  .dt-container .dt-search {
    margin-left: auto;
    width: 100%;
    justify-content: flex-end;
}

  @media (min-width: 768px) {
    .dt-container .dt-search {
        width: auto;
    }
}

  .dt-container .dt-search label {
    flex-shrink: 0;
    white-space: nowrap;
}

  .dt-container .dt-search input.dt-input {
    margin-left: 0px;
    width: 100%;
    min-width: 0px;
}

  @media (min-width: 640px) {
    .dt-container .dt-search input.dt-input {
        min-width: 20rem;
    }
}

  @media (min-width: 768px) {
    .dt-container .dt-search input.dt-input {
        width: 28rem;
    }
}

  .dt-container .dt-paging-button.current {
    --tw-border-opacity: 1;
    border-color: rgb(232 51 0 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(232 51 0 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
    background-color: var(--cides-primary);
    border-color: var(--cides-primary);
    color: #fff;
}

  .dt-container .dt-paging-button.disabled {
    cursor: not-allowed;
    opacity: 0.5;
}

  .table-actions {
    display: flex;
    min-width: -moz-max-content;
    min-width: max-content;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.375rem;
    white-space: nowrap;
}

  .table-actions .ui-button {
    height: 2.75rem;
    min-height: 2.75rem;
    width: 2.75rem;
    min-width: 2.75rem;
    flex: none;
    padding: 0px;
}

  .table-actions .ui-button i {
    font-size: 0.875rem;
    line-height: 1.25rem;
}

  /* CursosAdmin nativo. */
  .cursosadmin-sidebar .app-nav-heading {
    margin-top: 0.75rem;
    white-space: normal;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    --tw-text-opacity: 1;
    color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}

  .cursosadmin-sidebar .ui-nav-link {
    min-height: 2.5rem;
}

  .cursosadmin-sidebar .ui-nav-link p {
    white-space: normal;
    font-size: 0.875rem;
    line-height: 1.25rem;
    line-height: 1.25;
}

  .native-filter-form label,
  .native-save-form label {
    margin-bottom: 0.25rem;
    display: block;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 600;
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}

  .native-data-table {
    font-size: 0.875rem;
    line-height: 1.25rem;
}

  .native-data-table th {
    white-space: nowrap;
    --tw-bg-opacity: 1;
    background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
    font-size: 0.75rem;
    line-height: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.025em;
    --tw-text-opacity: 1;
    color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}

  .native-data-table td {
    max-width: 24rem;
    vertical-align: middle;
}

  .native-cell-text {
    display: block;
    max-width: 24rem;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

  .native-compact-column {
    width: 1px;
    white-space: nowrap;
}

  .native-actions-column {
    width: 1px;
    white-space: nowrap;
}

  .native-detail-list dt {
    border-bottom-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(241 245 249 / var(--tw-border-opacity, 1));
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 600;
    --tw-text-opacity: 1;
    color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}

  .native-detail-list dd {
    overflow-wrap: break-word;
    border-bottom-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(241 245 249 / var(--tw-border-opacity, 1));
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    --tw-text-opacity: 1;
    color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}

  .native-tabs-card {
    position: sticky;
    top: 4rem;
    z-index: 20;
}

  .native-tabs {
    gap: 0.25rem;
    overflow-x: auto;
}

  .native-tabs .ui-nav-link {
    flex: none;
    white-space: nowrap;
}

  .native-metric-text {
    font-size: 1.25rem;
    line-height: 1.75rem;
}

  .native-assistant-option {
    height: 100%;
    border-radius: 0.75rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
    padding: 0.75rem;
}

  .native-inline-form td {
    --tw-bg-opacity: 1;
    background-color: rgb(255 243 239 / var(--tw-bg-opacity, 1));
    padding: 1rem;
}

  tr.native-inline-form.collapse.show {
    display: table-row !important;
  }

  .native-alternatives {
    margin: 0px;
}

  .native-alternatives > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}

  .native-alternatives {
    padding-left: 1.5rem;
}

  .native-multiselect {
    min-height: 11rem;
}

  .audit-filter-card .ui-panel-body {
    padding-bottom: 0.5rem;
}

  .audit-event-cards {
    display: none;
    gap: 0.75rem;
    padding: 1rem;
}

  .audit-event-card {
    border-radius: 0.75rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding: 1rem;
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

  .audit-event-card dl {
    margin-bottom: 0.75rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

  .audit-event-card dt,
  .audit-detail-grid dt {
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.025em;
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
    color: #59697d;
}

  .audit-event-card dd,
  .audit-detail-grid dd {
    margin-bottom: 0px;
    margin-top: 0.25rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    --tw-text-opacity: 1;
    color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}

  .audit-detail-grid {
    display: grid;
    gap: 1rem;
}

  @media (min-width: 640px) {
    .audit-detail-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

  @media (min-width: 1280px) {
    .audit-detail-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

  .audit-value {
    max-width: 36rem;
    white-space: pre-wrap;
    overflow-wrap: break-word;
    font-size: 0.875rem;
    line-height: 1.25rem;
}

  .audit-toggle-row > input {
    margin-right: 0.5rem;
    height: 1rem;
    width: 1rem;
    vertical-align: middle;
}

  @media (max-width: 1023px) {
    .audit-table-desktop {
      display: none;
    }

    .audit-event-cards {
      display: grid;
    }
  }

  /* Technical assistant */
  .technical-assistant-layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 1rem;
    align-items: stretch;
  }

  .technical-attachment-field {
    margin-top: 0.75rem;
    border-radius: 0.5rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
    padding: 0.75rem;
}

  .technical-attachment-field > label {
    margin-bottom: 0.25rem;
    display: block;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 600;
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}

  .technical-attachment-field > small {
    margin-top: 0.25rem;
    display: block;
    font-size: 0.75rem;
    line-height: 1rem;
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
    color: #59697d;
}

  .technical-message-attachments {
    margin-top: 0.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

  .technical-message-attachments a,
  .technical-message-attachments span {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    border-radius: 0.375rem;
    --tw-bg-opacity: 1;
    background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    font-size: 0.75rem;
    line-height: 1rem;
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}

  .billing-row-form {
    min-width: 760px;
}

  .billing-checks {
    display: flex;
    flex-wrap: wrap;
    -moz-column-gap: 1rem;
         column-gap: 1rem;
    row-gap: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
}

  .billing-checks label {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    white-space: nowrap;
}

  .technical-history,
  .technical-chat {
    margin-bottom: 0px;
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    min-height: 640px;
}

  .technical-history {
    display: flex;
    flex-direction: column;
}

  .technical-usage {
    margin: 0.5rem;
    margin-bottom: 0px;
    border-radius: 0.75rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
    padding: 0.75rem;
}

  .technical-usage-heading,
  .technical-usage-window {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

  .technical-usage-heading {
    font-size: 0.875rem;
    line-height: 1.25rem;
    --tw-text-opacity: 1;
    color: rgb(17 35 55 / var(--tw-text-opacity, 1));
}

  .technical-usage-heading i {
    --tw-text-opacity: 1;
    color: rgb(200 41 0 / var(--tw-text-opacity, 1));
}

  .technical-usage > p,
  .technical-usage-state,
  .technical-usage-reset {
    font-size: 0.75rem;
    line-height: 1rem;
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
    color: #59697d;
}

  .technical-usage > p {
    margin-bottom: 0px;
    margin-top: 0.25rem;
}

  .technical-usage-state {
    margin-top: 0.75rem;
    font-weight: 600;
}

  .technical-usage-list {
    margin-top: 0.75rem;
    display: grid;
    gap: 0.75rem;
}

  .technical-usage-item {
    min-width: 0px;
}

  .technical-usage-window {
    font-size: 0.75rem;
    line-height: 1rem;
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}

  .technical-usage-window span {
    white-space: nowrap;
    font-weight: 600;
}

  .technical-usage-track {
    margin-top: 0.5rem;
    height: 0.5rem;
    overflow: hidden;
    border-radius: 9999px;
    --tw-bg-opacity: 1;
    background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
}

  .technical-usage-fill {
    height: 100%;
    border-radius: 9999px;
    --tw-bg-opacity: 1;
    background-color: rgb(5 150 105 / var(--tw-bg-opacity, 1));
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

  .technical-usage-fill.technical-usage-warning {
    --tw-bg-opacity: 1;
    background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
}

  .technical-usage-fill.technical-usage-critical {
    --tw-bg-opacity: 1;
    background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
}

  .technical-usage-reset {
    margin-top: 0.25rem;
    display: block;
}

  .technical-history-list {
    display: flex;
    flex: 1 1 0%;
    flex-direction: column;
    overflow-y: auto;
    padding: 0.5rem;
    max-height: 690px;
}

  .technical-history-item {
    margin-bottom: 0.25rem;
    display: flex;
    flex-direction: column;
    border-radius: 0.5rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    --tw-text-opacity: 1;
    color: rgb(30 41 59 / var(--tw-text-opacity, 1));
    text-decoration-line: none;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

  .technical-history-item:hover,
  .technical-history-item.active {
    --tw-bg-opacity: 1;
    background-color: rgb(255 243 239 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(17 35 55 / var(--tw-text-opacity, 1));
}


  .technical-history-item.\!active {
    --tw-bg-opacity: 1;
    background-color: rgb(255 243 239 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(17 35 55 / var(--tw-text-opacity, 1));
}

  .technical-history-item-archived {
    border-width: 1px;
    border-style: dashed;
    --tw-border-opacity: 1;
    border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}

  .technical-history-status {
    font-weight: 600;
    --tw-text-opacity: 1;
    color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}

  .technical-history-item strong {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: 0.875rem;
    line-height: 1.25rem;
}

  .technical-history-item span,
  .technical-history-empty {
    margin-top: 0.25rem;
    font-size: 0.75rem;
    line-height: 1rem;
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
    color: #59697d;
}

  .technical-history-empty {
    padding: 1rem;
    text-align: center;
}

  .technical-chat {
    display: flex;
    min-width: 0px;
    flex-direction: column;
}

  .technical-conversation-actions {
    display: flex;
    flex-shrink: 0;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}

  .technical-readonly-badge {
    margin-top: 0.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    border-radius: 9999px;
    --tw-bg-opacity: 1;
    background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1));
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 600;
    --tw-text-opacity: 1;
    color: rgb(4 120 87 / var(--tw-text-opacity, 1));
}

  .ui-table .technical-readonly-badge {
    color: #166240;
}

  .technical-messages {
    display: flex;
    flex: 1 1 0%;
    flex-direction: column;
    gap: 1rem;
    overflow-y: auto;
    background-color: rgb(248 250 252 / 0.7);
    padding: 1rem;
    min-height: 380px;
    max-height: 620px;
}

  .technical-message {
    display: flex;
    max-width: 56rem;
    gap: 0.75rem;
}

  .technical-message-icon {
    display: flex;
    height: 2.25rem;
    width: 2.25rem;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    --tw-bg-opacity: 1;
    background-color: rgb(17 35 55 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

  .technical-message-user .technical-message-icon {
    --tw-bg-opacity: 1;
    background-color: rgb(200 41 0 / var(--tw-bg-opacity, 1));
}

  .technical-message-error .technical-message-icon {
    --tw-bg-opacity: 1;
    background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1));
}

  .technical-message-body {
    min-width: 0px;
    border-radius: 0.75rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding: 1rem;
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

  .technical-message-user .technical-message-body {
    --tw-border-opacity: 1;
    border-color: rgb(255 197 179 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 243 239 / var(--tw-bg-opacity, 1));
}

  .technical-message-meta {
    margin-bottom: 0.5rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.025em;
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
    color: #59697d;
}

  .technical-message-content {
    white-space: pre-wrap;
    overflow-wrap: break-word;
    font-size: 0.875rem;
    line-height: 1.25rem;
    line-height: 1.625;
    --tw-text-opacity: 1;
    color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}

  .technical-evidence {
    margin-top: 1rem;
    border-top-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    padding-top: 0.75rem;
    font-size: 0.75rem;
    line-height: 1rem;
}

  .technical-evidence-list {
    margin-top: 0.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

  .technical-evidence-item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border-radius: 0.5rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
    text-decoration-line: none;
}

  .technical-evidence-item:hover {
    --tw-border-opacity: 1;
    border-color: rgb(255 155 126 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 243 239 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(17 35 55 / var(--tw-text-opacity, 1));
}

  .technical-welcome {
    margin: auto;
    max-width: 42rem;
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
    text-align: center;
    --tw-text-opacity: 1;
    color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}

  .technical-welcome > i {
    margin-bottom: 1rem;
    font-size: 2.25rem;
    line-height: 2.5rem;
    --tw-text-opacity: 1;
    color: rgb(200 41 0 / var(--tw-text-opacity, 1));
}

  .technical-welcome h3 {
    margin-bottom: 0.5rem;
    font-size: 1.25rem;
    line-height: 1.75rem;
    font-weight: 700;
    --tw-text-opacity: 1;
    color: rgb(17 35 55 / var(--tw-text-opacity, 1));
}

  .technical-examples {
    margin-top: 1.25rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
}

  .technical-examples button {
    border-radius: 0.5rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}

  .technical-examples button:hover {
    --tw-border-opacity: 1;
    border-color: rgb(249 101 61 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 243 239 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(17 35 55 / var(--tw-text-opacity, 1));
}

  .technical-query-state {
    border-top-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 600;
    --tw-text-opacity: 1;
    color: rgb(17 35 55 / var(--tw-text-opacity, 1));
}

  .technical-query-error {
    margin: 1rem;
    margin-bottom: 0px;
}

  .technical-composer {
    border-top-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding: 1rem;
}

  .technical-composer textarea {
    width: 100%;
    resize: vertical;
}

  .technical-composer-footer {
    margin-top: 0.75rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.75rem;
    line-height: 1rem;
}

  .technical-context-panel {
    margin-top: 1rem;
}

  .technical-context-grid {
    display: grid;
    gap: 1rem;
}

  @media (min-width: 768px) {
    .technical-context-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

  .technical-context-grid > div {
    display: grid;
    grid-template-columns: auto 1fr;
    -moz-column-gap: 0.75rem;
         column-gap: 0.75rem;
    border-radius: 0.75rem;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
    padding: 1rem;
}

  .technical-context-grid i {
    grid-row: span 2 / span 2;
    font-size: 1.25rem;
    line-height: 1.75rem;
    --tw-text-opacity: 1;
    color: rgb(200 41 0 / var(--tw-text-opacity, 1));
}

  .technical-context-grid strong {
    --tw-text-opacity: 1;
    color: rgb(17 35 55 / var(--tw-text-opacity, 1));
}

  .technical-context-grid span {
    margin-top: 0.25rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
    color: #59697d;
}

  .technical-source {
    max-height: 75vh;
    overflow: auto;
    --tw-bg-opacity: 1;
    background-color: rgb(2 6 23 / var(--tw-bg-opacity, 1));
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.875rem;
    line-height: 1.25rem;
    --tw-text-opacity: 1;
    color: rgb(241 245 249 / var(--tw-text-opacity, 1));
}

  .technical-source-line {
    display: grid;
    grid-template-columns: 5rem minmax(max-content, 1fr);
    min-width: -moz-max-content;
    min-width: max-content;
  }

  .technical-source-line > span {
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    border-right-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(51 65 85 / var(--tw-border-opacity, 1));
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    text-align: right;
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
    color: #59697d;
}

  .technical-source-line > code {
    white-space: pre;
    padding-left: 1rem;
    padding-right: 1rem;
    --tw-text-opacity: 1;
    color: rgb(241 245 249 / var(--tw-text-opacity, 1));
}

  @media (max-width: 767px) {
    .technical-assistant-layout {
      grid-template-columns: minmax(0, 1fr);
    }

    .technical-history,
    .technical-chat {
      min-height: auto;
    }

    .technical-history-list {
      max-height: 240px;
    }

    .technical-messages {
      min-height: 420px;
      max-height: none;
    }
  }
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}
.\!visible {
    visibility: visible !important;
}
.visible {
    visibility: visible;
}
.collapse {
    visibility: collapse;
}
.static {
    position: static;
}
.fixed {
    position: fixed;
}
.absolute {
    position: absolute;
}
.relative {
    position: relative;
}
.m-0 {
    margin: 0px;
}
.mx-2 {
    margin-left: 0.5rem;
    margin-right: 0.5rem;
}
.mx-auto {
    margin-left: auto;
    margin-right: auto;
}
.my-8 {
    margin-top: 2rem;
    margin-bottom: 2rem;
}
.my-auto {
    margin-top: auto;
    margin-bottom: auto;
}
.mb-0 {
    margin-bottom: 0px;
}
.mb-1 {
    margin-bottom: 0.25rem;
}
.mb-2 {
    margin-bottom: 0.5rem;
}
.mb-3 {
    margin-bottom: 0.75rem;
}
.mb-4 {
    margin-bottom: 1rem;
}
.mb-5 {
    margin-bottom: 1.25rem;
}
.mb-6 {
    margin-bottom: 1.5rem;
}
.mb-8 {
    margin-bottom: 2rem;
}
.ml-1 {
    margin-left: 0.25rem;
}
.ml-2 {
    margin-left: 0.5rem;
}
.ml-auto {
    margin-left: auto;
}
.mr-1 {
    margin-right: 0.25rem;
}
.mr-2 {
    margin-right: 0.5rem;
}
.mr-3 {
    margin-right: 0.75rem;
}
.mr-4 {
    margin-right: 1rem;
}
.mt-0 {
    margin-top: 0px;
}
.mt-1 {
    margin-top: 0.25rem;
}
.mt-2 {
    margin-top: 0.5rem;
}
.mt-3 {
    margin-top: 0.75rem;
}
.mt-4 {
    margin-top: 1rem;
}
.block {
    display: block;
}
.inline-block {
    display: inline-block;
}
.inline {
    display: inline;
}
.flex {
    display: flex;
}
.inline-flex {
    display: inline-flex;
}
.table {
    display: table;
}
.grid {
    display: grid;
}
.contents {
    display: contents;
}
.hidden {
    display: none;
}
.h-2 {
    height: 0.5rem;
}
.h-auto {
    height: auto;
}
.h-full {
    height: 100%;
}
.min-h-40 {
    min-height: 10rem;
}
.min-h-80 {
    min-height: 20rem;
}
.min-h-\[520px\] {
    min-height: 520px;
}
.min-h-screen {
    min-height: 100vh;
}
.w-32 {
    width: 8rem;
}
.w-48 {
    width: 12rem;
}
.w-full {
    width: 100%;
}
.min-w-0 {
    min-width: 0px;
}
.min-w-full {
    min-width: 100%;
}
.max-w-2xl {
    max-width: 42rem;
}
.max-w-3xl {
    max-width: 48rem;
}
.max-w-4xl {
    max-width: 56rem;
}
.max-w-5xl {
    max-width: 64rem;
}
.max-w-lg {
    max-width: 32rem;
}
.max-w-md {
    max-width: 28rem;
}
.max-w-xl {
    max-width: 36rem;
}
.flex-1 {
    flex: 1 1 0%;
}
.shrink {
    flex-shrink: 1;
}
.shrink-0 {
    flex-shrink: 0;
}
.grow {
    flex-grow: 1;
}
.transform {
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.cursor-pointer {
    cursor: pointer;
}
.resize {
    resize: both;
}
.flex-col {
    flex-direction: column;
}
.flex-wrap {
    flex-wrap: wrap;
}
.flex-nowrap {
    flex-wrap: nowrap;
}
.items-start {
    align-items: flex-start;
}
.items-end {
    align-items: flex-end;
}
.items-center {
    align-items: center;
}
.justify-start {
    justify-content: flex-start;
}
.justify-end {
    justify-content: flex-end;
}
.justify-center {
    justify-content: center;
}
.justify-between {
    justify-content: space-between;
}
.gap-1 {
    gap: 0.25rem;
}
.gap-2 {
    gap: 0.5rem;
}
.gap-3 {
    gap: 0.75rem;
}
.gap-4 {
    gap: 1rem;
}
.self-end {
    align-self: flex-end;
}
.overflow-x-auto {
    overflow-x: auto;
}
.truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.whitespace-normal {
    white-space: normal;
}
.whitespace-nowrap {
    white-space: nowrap;
}
.whitespace-pre-wrap {
    white-space: pre-wrap;
}
.break-words {
    overflow-wrap: break-word;
}
.rounded {
    border-radius: 0.25rem;
}
.rounded-2xl {
    border-radius: 1rem;
}
.rounded-full {
    border-radius: 9999px;
}
.rounded-lg {
    border-radius: 0.5rem;
}
.rounded-none {
    border-radius: 0px;
}
.border {
    border-width: 1px;
}
.border-0 {
    border-width: 0px;
}
.border-b {
    border-bottom-width: 1px;
}
.border-l-0 {
    border-left-width: 0px;
}
.border-r-0 {
    border-right-width: 0px;
}
.border-t {
    border-top-width: 1px;
}
.border-amber-500 {
    --tw-border-opacity: 1;
    border-color: rgb(245 158 11 / var(--tw-border-opacity, 1));
}
.border-blue-200 {
    --tw-border-opacity: 1;
    border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));
}
.border-red-600 {
    --tw-border-opacity: 1;
    border-color: rgb(220 38 38 / var(--tw-border-opacity, 1));
}
.border-slate-200 {
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
}
.bg-blue-600 {
    --tw-bg-opacity: 1;
    background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}
.bg-cides-ink {
    --tw-bg-opacity: 1;
    background-color: rgb(34 34 34 / var(--tw-bg-opacity, 1));
}
.bg-emerald-700 {
    --tw-bg-opacity: 1;
    background-color: rgb(4 120 87 / var(--tw-bg-opacity, 1));
}
.bg-slate-100 {
    --tw-bg-opacity: 1;
    background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
}
.bg-slate-200 {
    --tw-bg-opacity: 1;
    background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
}
.bg-slate-900 {
    --tw-bg-opacity: 1;
    background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1));
}
.bg-white {
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.p-0 {
    padding: 0px;
}
.p-1 {
    padding: 0.25rem;
}
.p-2 {
    padding: 0.5rem;
}
.p-3 {
    padding: 0.75rem;
}
.p-4 {
    padding: 1rem;
}
.p-8 {
    padding: 2rem;
}
.py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}
.py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}
.py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
}
.py-5 {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
}
.pb-3 {
    padding-bottom: 0.75rem;
}
.pb-4 {
    padding-bottom: 1rem;
}
.pl-3 {
    padding-left: 0.75rem;
}
.pl-4 {
    padding-left: 1rem;
}
.pl-5 {
    padding-left: 1.25rem;
}
.pt-3 {
    padding-top: 0.75rem;
}
.text-left {
    text-align: left;
}
.text-center {
    text-align: center;
}
.text-right {
    text-align: right;
}
.font-mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
.text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
}
.text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
}
.text-6xl {
    font-size: 3.75rem;
    line-height: 1;
}
.text-base {
    font-size: 1rem;
    line-height: 1.5rem;
}
.text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
}
.text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
}
.text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
}
.font-black {
    font-weight: 900;
}
.font-bold {
    font-weight: 700;
}
.font-normal {
    font-weight: 400;
}
.font-semibold {
    font-weight: 600;
}
.uppercase {
    text-transform: uppercase;
}
.lowercase {
    text-transform: lowercase;
}
.italic {
    font-style: italic;
}
.ordinal {
    --tw-ordinal: ordinal;
    font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.text-amber-700 {
    --tw-text-opacity: 1;
    color: rgb(180 83 9 / var(--tw-text-opacity, 1));
}
.text-amber-800 {
    --tw-text-opacity: 1;
    color: rgb(146 64 14 / var(--tw-text-opacity, 1));
}
.text-blue-600 {
    --tw-text-opacity: 1;
    color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}
.text-cides-500 {
    --tw-text-opacity: 1;
    color: rgb(232 51 0 / var(--tw-text-opacity, 1));
}
.text-cides-navy {
    --tw-text-opacity: 1;
    color: rgb(17 35 55 / var(--tw-text-opacity, 1));
}
.text-emerald-700 {
    --tw-text-opacity: 1;
    color: rgb(4 120 87 / var(--tw-text-opacity, 1));
}
.text-red-700 {
    --tw-text-opacity: 1;
    color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}
.text-slate-100 {
    --tw-text-opacity: 1;
    color: rgb(241 245 249 / var(--tw-text-opacity, 1));
}
.text-slate-400 {
    --tw-text-opacity: 1;
    color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.text-slate-500 {
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}
.text-slate-600 {
    --tw-text-opacity: 1;
    color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}
.text-slate-700 {
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}
.text-slate-800 {
    --tw-text-opacity: 1;
    color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
.text-slate-900 {
    --tw-text-opacity: 1;
    color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}
.underline {
    text-decoration-line: underline;
}
.shadow {
    --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-panel {
    --tw-shadow: 0 12px 36px rgba(17, 35, 55, 0.08);
    --tw-shadow-colored: 0 12px 36px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.outline {
    outline-style: solid;
}
.blur {
    --tw-blur: blur(8px);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.filter {
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.transition {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}
@media (min-width: 640px) {

  .sm\:ml-auto.app-navbar-items {
    margin-left: auto;
  }
}
@media (min-width: 1024px) {

  .lg\:ml-auto.app-navbar-items {
    margin-left: auto;
  }
}
@media (min-width: 640px) {
    .sm\:mb-0 {
        margin-bottom: 0px;
    }
    .sm\:ml-auto {
        margin-left: auto;
    }
    .sm\:block {
        display: block;
    }
    .sm\:inline {
        display: inline;
    }
    .sm\:hidden {
        display: none;
    }
}
@media (min-width: 768px) {
    .md\:mb-0 {
        margin-bottom: 0px;
    }
    .md\:mt-0 {
        margin-top: 0px;
    }
    .md\:block {
        display: block;
    }
    .md\:inline {
        display: inline;
    }
    .md\:flex {
        display: flex;
    }
    .md\:hidden {
        display: none;
    }
}
@media (min-width: 1024px) {
    .lg\:ml-auto {
        margin-left: auto;
    }
}
