/*
 * Tema Comunica
 *
 * Adapta o shell Bootstrap/Django existente à identidade visual do Liotto
 * Comunica preservando as permissões e a navegação do Portal.
 * O tema é opt-in por [data-theme-mode="comunica"] e permanece isolado dos
 * temas Claro, Azul e Escuro.
 */

[data-theme-mode="comunica"] {
    color-scheme: light;

    /* Tailwind usa sua pilha sans padrão no Comunica; não há webfont externa. */
    --comunica-font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
    --comunica-sidebar-width: 256px;

    --azul-escuro: #172554;
    --azul-medio: #2563eb;
    --azul-claro: #1d4ed8;
    --vermelho: #ef4444;
    --texto-claro: #0f172a;
    --texto-suave: #64748b;
    --texto-principal: #0f172a;
    --fundo-app: #f8fafc;
    --fundo-card: #ffffff;
    --fundo-sidebar: #172554;
    --borda: #e2e8f0;
    --fundo-input: #ffffff;
    --sombra-card: rgba(15, 23, 42, 0.06);
    --header-gradient: linear-gradient(135deg, #ffffff 0%, #eff6ff 100%);
    --tab-bg: #f1f5f9;
    --tab-text: #1e293b;
    --table-row-hover: rgba(37, 99, 235, 0.05);
    --table-row-border: #e2e8f0;
    --chart-bg: #ffffff;
    --chart-text: #0f172a;
    --chart-grid: #e2e8f0;
    --chart-mode: light;
    --comunica-control-border: #e2e8f0;
    --comunica-control-focus: #2563eb;
    --comunica-control-ring: #2563eb;
    --comunica-radius: 8px;
    --comunica-radius-sm: 6px;
    --comunica-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
}

[data-theme-mode="comunica"] body {
    background: var(--fundo-app);
    color: var(--texto-claro);
    font-family: var(--comunica-font-sans);
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
}

[data-theme-mode="comunica"] .sidebar,
[data-theme-mode="comunica"] .topbar,
[data-theme-mode="comunica"] .main-content,
[data-theme-mode="comunica"] button,
[data-theme-mode="comunica"] input,
[data-theme-mode="comunica"] select,
[data-theme-mode="comunica"] textarea,
[data-theme-mode="comunica"] table,
[data-theme-mode="comunica"] .select2-container {
    font-family: var(--comunica-font-sans);
}

/* Shell: sidebar azul fixa e conteúdo claro. */
[data-theme-mode="comunica"] .sidebar {
    width: var(--comunica-sidebar-width);
    padding: 16px 12px;
    background: linear-gradient(180deg, #172554 0%, #1e3a8a 100%);
    border-right: 0;
    box-shadow: 3px 0 16px rgba(15, 23, 42, 0.16);
    scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
}

[data-theme-mode="comunica"] .sidebar::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.2);
}

[data-theme-mode="comunica"] .sidebar::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.32);
}

[data-theme-mode="comunica"] .sidebar-brand {
    min-height: 64px;
    margin-bottom: 12px;
    padding: 10px 8px 14px;
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

[data-theme-mode="comunica"] .sidebar-logo {
    max-width: 86%;
    max-height: 40px;
}

[data-theme-mode="comunica"] .sidebar-nav a,
[data-theme-mode="comunica"] .sidebar-nav .sidebar-group-toggle {
    color: rgba(239, 246, 255, 0.88);
    border-radius: 8px;
    margin-bottom: 2px;
}

[data-theme-mode="comunica"] .sidebar-nav a:hover,
[data-theme-mode="comunica"] .sidebar-nav .sidebar-group-toggle:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    border-left-color: transparent;
}

[data-theme-mode="comunica"] .sidebar-nav a.active,
[data-theme-mode="comunica"] .sidebar-nav .sidebar-group.open > .sidebar-group-toggle,
[data-theme-mode="comunica"] .sidebar-nav .sidebar-group.active > .sidebar-group-toggle {
    background: rgba(255, 255, 255, 0.15);
    color: #ffffff;
    border-left: 0;
    font-weight: 700;
}

[data-theme-mode="comunica"] .sidebar-nav .sidebar-submenu a {
    color: rgba(219, 234, 254, 0.78);
}

[data-theme-mode="comunica"] .sidebar-nav .sidebar-submenu a:hover {
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
}

[data-theme-mode="comunica"] .sidebar-nav .sidebar-submenu a.active {
    background: rgba(255, 255, 255, 0.13);
    color: #ffffff;
    border-left: 0;
}

[data-theme-mode="comunica"] .sidebar-section-title {
    color: rgba(191, 219, 254, 0.72);
}

[data-theme-mode="comunica"] .sidebar-footer {
    border-top-color: rgba(255, 255, 255, 0.1);
    color: rgba(219, 234, 254, 0.75);
}

[data-theme-mode="comunica"] .sidebar-footer .dev-badge {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.1);
}

[data-theme-mode="comunica"] .sidebar-footer .dev-label {
    color: rgba(219, 234, 254, 0.62);
}

[data-theme-mode="comunica"] .sidebar-logout {
    color: #fecaca !important;
}

[data-theme-mode="comunica"] .main-content {
    margin-left: var(--comunica-sidebar-width);
}

/* Header e conteúdo. */
[data-theme-mode="comunica"] .topbar {
    min-height: 64px;
    padding: 0 24px;
    background: #ffffff;
    border-bottom-color: #e2e8f0;
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.05);
}

[data-theme-mode="comunica"] .topbar-breadcrumb li,
[data-theme-mode="comunica"] .topbar-breadcrumb li a,
[data-theme-mode="comunica"] .topbar-icon {
    color: #64748b;
}

[data-theme-mode="comunica"] .topbar-breadcrumb li a:hover,
[data-theme-mode="comunica"] .topbar-icon:hover {
    color: #2563eb;
}

[data-theme-mode="comunica"] .topbar-breadcrumb li.active,
[data-theme-mode="comunica"] .topbar-breadcrumb li:last-child {
    color: #0f172a;
}

[data-theme-mode="comunica"] .topbar-divider {
    background: #e2e8f0;
}

[data-theme-mode="comunica"] .topbar-menu-btn {
    border-color: #e2e8f0;
    color: #64748b;
}

[data-theme-mode="comunica"] .topbar-menu-btn:hover {
    background: #f1f5f9;
    color: #2563eb;
}

[data-theme-mode="comunica"] .topbar-client-form select,
[data-theme-mode="comunica"] .topbar-client-form .select2-selection--single {
    background: #ffffff;
    border-color: #e2e8f0;
    color: #0f172a;
}

[data-theme-mode="comunica"] .main-body {
    padding: 24px;
    background: #f8fafc;
}

[data-theme-mode="comunica"] .page-header {
    background: linear-gradient(135deg, #ffffff 0%, #eff6ff 100%);
    border-color: #dbeafe;
}

[data-theme-mode="comunica"] .page-header h1 {
    color: #1d4ed8;
}

/* Superfícies e formulários Bootstrap. */
[data-theme-mode="comunica"] .card,
[data-theme-mode="comunica"] .modal-content,
[data-theme-mode="comunica"] .dropdown-menu,
[data-theme-mode="comunica"] .popover {
    background-color: #ffffff;
    border-color: #e2e8f0;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
    color: #0f172a;
}

[data-theme-mode="comunica"] .card-header,
[data-theme-mode="comunica"] .card-footer,
[data-theme-mode="comunica"] .modal-header,
[data-theme-mode="comunica"] .modal-footer {
    background-color: #ffffff;
    border-color: #e2e8f0;
}

[data-theme-mode="comunica"] .form-control,
[data-theme-mode="comunica"] .form-select,
[data-theme-mode="comunica"] select.form-control,
[data-theme-mode="comunica"] textarea.form-control {
    background-color: #ffffff;
    border-color: #cbd5e1;
    color: #0f172a;
}

[data-theme-mode="comunica"] .form-control::placeholder {
    color: #64748b;
}

[data-theme-mode="comunica"] .form-control:focus,
[data-theme-mode="comunica"] .form-select:focus,
[data-theme-mode="comunica"] select.form-control:focus,
[data-theme-mode="comunica"] textarea.form-control:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 2px #2563eb;
    outline: none;
}

[data-theme-mode="comunica"] .btn-primary,
[data-theme-mode="comunica"] .liotto-btn-primary {
    background-color: #2563eb;
    border-color: #2563eb;
    color: #ffffff;
}

[data-theme-mode="comunica"] .btn-primary:hover,
[data-theme-mode="comunica"] .btn-primary:focus,
[data-theme-mode="comunica"] .liotto-btn-primary:hover {
    background-color: #1d4ed8;
    border-color: #1d4ed8;
    color: #ffffff;
}

[data-theme-mode="comunica"] .btn-outline-primary {
    color: #2563eb;
    border-color: #2563eb;
}

[data-theme-mode="comunica"] .btn-outline-primary:hover,
[data-theme-mode="comunica"] .btn-outline-primary:focus {
    background-color: #2563eb;
    border-color: #2563eb;
    color: #ffffff;
}

[data-theme-mode="comunica"] .btn-link,
[data-theme-mode="comunica"] a:not(.btn):not(.badge) {
    color: #2563eb;
}

[data-theme-mode="comunica"] .btn-link:hover,
[data-theme-mode="comunica"] a:not(.btn):not(.badge):hover {
    color: #1d4ed8;
}

/* Utilitários Bootstrap e estados semânticos. */
[data-theme-mode="comunica"] .bg-primary { background-color: #2563eb !important; }
[data-theme-mode="comunica"] .text-primary { color: #1d4ed8 !important; }
[data-theme-mode="comunica"] .border-primary { border-color: #2563eb !important; }
[data-theme-mode="comunica"] .bg-info { background-color: #dbeafe !important; color: #1e40af !important; }
[data-theme-mode="comunica"] .bg-success { background-color: #d1fae5 !important; color: #065f46 !important; }
[data-theme-mode="comunica"] .bg-warning { background-color: #fef3c7 !important; color: #92400e !important; }
[data-theme-mode="comunica"] .bg-danger { background-color: #fee2e2 !important; color: #991b1b !important; }
[data-theme-mode="comunica"] .text-muted { color: #64748b !important; }

[data-theme-mode="comunica"] .alert-primary,
[data-theme-mode="comunica"] .alert-info {
    background: #dbeafe;
    border-color: #bfdbfe;
    color: #1e3a8a;
}

[data-theme-mode="comunica"] .alert-success {
    background: #d1fae5;
    border-color: #a7f3d0;
    color: #065f46;
}

[data-theme-mode="comunica"] .alert-warning {
    background: #fef3c7;
    border-color: #fde68a;
    color: #92400e;
}

[data-theme-mode="comunica"] .alert-danger {
    background: #fee2e2;
    border-color: #fecaca;
    color: #991b1b;
}

/* Tabelas, DataTables e Select2. */
[data-theme-mode="comunica"] .table {
    color: #0f172a;
    border-color: #e2e8f0;
}

[data-theme-mode="comunica"] .table thead th,
[data-theme-mode="comunica"] .table .thead-light th {
    background-color: #f8fafc;
    border-color: #e2e8f0;
    color: #334155;
}

[data-theme-mode="comunica"] .table-hover tbody tr:hover,
[data-theme-mode="comunica"] .table-hover > tbody > tr:hover > * {
    background-color: #eff6ff;
}

[data-theme-mode="comunica"] .dataTables_wrapper .dataTables_length,
[data-theme-mode="comunica"] .dataTables_wrapper .dataTables_info,
[data-theme-mode="comunica"] .dataTables_wrapper .dataTables_filter,
[data-theme-mode="comunica"] .dataTables_wrapper .dataTables_filter label {
    color: #64748b;
}

[data-theme-mode="comunica"] .dataTables_wrapper .paginate_button.current,
[data-theme-mode="comunica"] .dataTables_wrapper .paginate_button.current:hover {
    background: #2563eb !important;
    border-color: #2563eb !important;
    color: #ffffff !important;
}

/* Select2: contrato visual dos campos do Comunica (h-9, text-sm, ring azul). */
[data-theme-mode="comunica"] .select2-container--default {
    color: #0f172a;
    font-size: 0.875rem;
}

[data-theme-mode="comunica"] .select2-container--default .select2-selection--single,
[data-theme-mode="comunica"] .select2-container--default .select2-selection--multiple {
    border: 1px solid var(--comunica-control-border) !important;
    border-radius: 6px !important;
    background-color: #ffffff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    color: #0f172a;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

/* Single. */
[data-theme-mode="comunica"] .select2-container--default .select2-selection--single {
    height: 36px !important;
    padding: 0;
}

[data-theme-mode="comunica"] .select2-container--default .select2-selection--single .select2-selection__rendered {
    height: 34px;
    padding: 0 38px 0 12px !important;
    color: #0f172a;
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 34px !important;
}

[data-theme-mode="comunica"] .select2-container--default .select2-selection--single .select2-selection__placeholder,
[data-theme-mode="comunica"] .select2-container--default .select2-selection--multiple .select2-selection__placeholder,
[data-theme-mode="comunica"] .select2-container--default .select2-search--inline .select2-search__field::placeholder {
    color: #94a3b8;
    opacity: 1;
}

[data-theme-mode="comunica"] .select2-container--default .select2-selection--single .select2-selection__arrow {
    top: 1px;
    right: 3px !important;
    width: 30px;
    height: 32px !important;
}

[data-theme-mode="comunica"] .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: #64748b transparent transparent transparent;
    border-width: 5px 4px 0;
}

[data-theme-mode="comunica"] .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
    border-color: transparent transparent #2563eb transparent;
    border-width: 0 4px 5px;
}

[data-theme-mode="comunica"] .select2-container--default .select2-selection--single .select2-selection__clear {
    position: absolute;
    top: 50%;
    right: 31px;
    z-index: 1;
    display: inline-flex;
    width: 22px;
    height: 22px;
    align-items: center;
    justify-content: center;
    margin: 0;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: #94a3b8;
    font-size: 1rem;
    line-height: 1;
    transform: translateY(-50%);
}

[data-theme-mode="comunica"] .select2-container--default .select2-selection--single .select2-selection__clear:hover,
[data-theme-mode="comunica"] .select2-container--default .select2-selection--single .select2-selection__clear:focus {
    background: #f1f5f9;
    color: #dc2626;
    outline: none;
}

/* Multiple: tags compactas e campo de busca inline sem mudar a seleção. */
[data-theme-mode="comunica"] .select2-container--default .select2-selection--multiple {
    min-height: 36px;
    padding: 4px 34px 4px 5px;
}

[data-theme-mode="comunica"] .select2-container--default .select2-selection--multiple .select2-selection__rendered {
    display: flex;
    width: 100%;
    min-height: 26px;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    margin: 0;
    padding: 0 !important;
    white-space: normal;
}

[data-theme-mode="comunica"] .select2-container--default .select2-selection--multiple .select2-selection__choice {
    display: inline-flex;
    min-height: 26px;
    align-items: center;
    gap: 0;
    margin: 0 !important;
    padding: 0 8px 0 0 !important;
    border: 1px solid #bfdbfe !important;
    border-radius: 5px;
    background-color: #eff6ff !important;
    color: #1e40af !important;
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.2;
}

[data-theme-mode="comunica"] .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    position: static;
    display: inline-flex;
    min-width: 25px;
    align-self: stretch;
    align-items: center;
    justify-content: center;
    margin: 0 7px 0 0;
    padding: 0 6px;
    border: 0;
    border-right: 1px solid #bfdbfe;
    border-radius: 4px 0 0 4px;
    background: transparent;
    color: #64748b;
    font-size: 1rem;
    line-height: 1;
}

[data-theme-mode="comunica"] .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover,
[data-theme-mode="comunica"] .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus {
    background: #dbeafe;
    color: #dc2626;
    outline: none;
}

[data-theme-mode="comunica"] .select2-container--default .select2-search--inline {
    min-width: 7rem;
    flex: 1 1 7rem;
    float: none;
}

[data-theme-mode="comunica"] .select2-container--default .select2-search--inline .select2-search__field {
    max-width: 100%;
    height: 26px;
    margin: 0 !important;
    padding: 0 5px;
    background: transparent;
    color: #0f172a;
    font-family: var(--comunica-font-sans);
    font-size: 0.875rem;
    line-height: 26px;
}

[data-theme-mode="comunica"] .select2-container--default .select2-selection--multiple .select2-selection__clear {
    position: absolute;
    top: 6px;
    right: 8px;
    margin: 0;
    color: #94a3b8;
}

/* Estados compartilhados. */
[data-theme-mode="comunica"] .select2-container--default.select2-container--focus .select2-selection--single,
[data-theme-mode="comunica"] .select2-container--default.select2-container--focus .select2-selection--multiple,
[data-theme-mode="comunica"] .select2-container--default.select2-container--open .select2-selection--single,
[data-theme-mode="comunica"] .select2-container--default.select2-container--open .select2-selection--multiple,
[data-theme-mode="comunica"] .select2-container:focus-within .select2-selection--single,
[data-theme-mode="comunica"] .select2-container:focus-within .select2-selection--multiple {
    border-color: var(--comunica-control-focus) !important;
    box-shadow: 0 0 0 2px var(--comunica-control-ring) !important;
    outline: none;
}

[data-theme-mode="comunica"] .select2-container--default.select2-container--disabled .select2-selection--single,
[data-theme-mode="comunica"] .select2-container--default.select2-container--disabled .select2-selection--multiple {
    border-color: #e2e8f0 !important;
    background: #f1f5f9;
    box-shadow: none !important;
    cursor: not-allowed;
    opacity: 0.72;
}

[data-theme-mode="comunica"] select.is-invalid + .select2-container .select2-selection--single,
[data-theme-mode="comunica"] select.is-invalid + .select2-container .select2-selection--multiple,
[data-theme-mode="comunica"] .was-validated select:invalid + .select2-container .select2-selection--single,
[data-theme-mode="comunica"] .was-validated select:invalid + .select2-container .select2-selection--multiple {
    border-color: #ef4444 !important;
    box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.12) !important;
}

/* Dropdown e pesquisa. */
[data-theme-mode="comunica"] .select2-container--default .select2-dropdown {
    overflow: hidden;
    border: 1px solid var(--comunica-control-border);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.14);
    color: #0f172a;
}

[data-theme-mode="comunica"] .select2-container--default .select2-dropdown--below,
[data-theme-mode="comunica"] .select2-container--default .select2-dropdown--above {
    border: 1px solid var(--comunica-control-border);
    border-radius: 8px;
}

[data-theme-mode="comunica"] .select2-container--default .select2-search--dropdown {
    padding: 8px;
    border-bottom: 1px solid #f1f5f9;
    background: #ffffff;
}

[data-theme-mode="comunica"] .select2-container--default .select2-search--dropdown .select2-search__field {
    height: 34px;
    padding: 0 10px;
    border: 1px solid var(--comunica-control-border);
    border-radius: 6px;
    background: #ffffff;
    color: #0f172a;
    font-family: var(--comunica-font-sans);
    font-size: 0.875rem;
    outline: none;
}

[data-theme-mode="comunica"] .select2-container--default .select2-search--dropdown .select2-search__field:focus {
    border-color: var(--comunica-control-focus);
    box-shadow: 0 0 0 2px var(--comunica-control-ring);
}

[data-theme-mode="comunica"] .select2-container--default .select2-results > .select2-results__options {
    max-height: 240px;
    padding: 4px;
}

[data-theme-mode="comunica"] .select2-container--default .select2-results__option,
[data-theme-mode="comunica"] .select2-container--default .select2-results__option--selectable {
    margin: 0;
    padding: 8px 10px;
    border-radius: 5px;
    background: #ffffff;
    color: #334155;
    font-size: 0.875rem;
    line-height: 1.35;
}

[data-theme-mode="comunica"] .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background-color: #eff6ff !important;
    color: #1d4ed8 !important;
}

[data-theme-mode="comunica"] .select2-container--default .select2-results__option--selected,
[data-theme-mode="comunica"] .select2-container--default .select2-results__option[aria-selected="true"]:not(.select2-results__option--highlighted) {
    background-color: #f1f5f9 !important;
    color: #0f172a !important;
    font-weight: 600;
}

[data-theme-mode="comunica"] .select2-container--default .select2-results__option--selected.select2-results__option--highlighted,
[data-theme-mode="comunica"] .select2-container--default .select2-results__option[aria-selected="true"].select2-results__option--highlighted {
    background-color: #dbeafe !important;
    color: #1e40af !important;
}

[data-theme-mode="comunica"] .select2-container--default .select2-results__option--disabled,
[data-theme-mode="comunica"] .select2-container--default .select2-results__option[aria-disabled="true"] {
    background: transparent;
    color: #94a3b8;
    cursor: not-allowed;
}

[data-theme-mode="comunica"] .select2-container--default .select2-results__group {
    padding: 8px 10px 5px;
    color: #64748b;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

[data-theme-mode="comunica"] .select2-container--default .select2-results__message,
[data-theme-mode="comunica"] .select2-container--default .loading-results {
    color: #64748b;
    font-size: 0.8125rem;
    text-align: center;
}

/* Menus de alerta e feedback preservam as cores semânticas do Comunica. */
[data-theme-mode="comunica"] .swal2-popup,
[data-theme-mode="comunica"] .toast,
[data-theme-mode="comunica"] #toast-container > div {
    border-radius: 8px;
}

[data-theme-mode="comunica"] .dropzone {
    background-color: #ffffff;
    border-color: #60a5fa;
}

/* Mobile do shell legado: usa o breakpoint lg do Comunica (1024px). */
@media (min-width: 1800px) {
    [data-theme-mode="comunica"] .sidebar { width: var(--comunica-sidebar-width); }
    [data-theme-mode="comunica"] .main-content { margin-left: var(--comunica-sidebar-width); }
}

@media (max-width: 1023px) {
    [data-theme-mode="comunica"] .sidebar {
        left: -208px;
        transition: left 0.3s ease;
    }

    [data-theme-mode="comunica"] .sidebar.open { left: 0; }
    [data-theme-mode="comunica"] .main-content { margin-left: 0; }
    [data-theme-mode="comunica"] .main-body { padding: 16px 12px; }
}

/* O seletor vive no footer da sidebar escura. */
[data-theme-mode="comunica"] .theme-toggle {
    border-color: rgba(255, 255, 255, 0.12);
    color: rgba(239, 246, 255, 0.82);
}

[data-theme-mode="comunica"] .theme-toggle:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

[data-theme-mode="comunica"] .theme-menu {
    background: #172554;
    border-color: rgba(255, 255, 255, 0.14);
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.3);
}

[data-theme-mode="comunica"] .theme-option {
    color: rgba(239, 246, 255, 0.82);
}

[data-theme-mode="comunica"] .theme-option:hover,
[data-theme-mode="comunica"] .theme-option:focus-visible,
[data-theme-mode="comunica"] .theme-option[aria-checked="true"] {
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

[data-theme-mode="comunica"] .theme-option-check { color: #93c5fd; }

.theme-swatch-comunica {
    background: linear-gradient(135deg, #172554 0%, #2563eb 100%);
    border-color: #93c5fd;
}

@media (prefers-reduced-motion: reduce) {
    [data-theme-mode="comunica"] .sidebar { transition: none; }
}

/*
 * Fidelidade ao shell do Comunica.
 * Este bloco fica ao final para neutralizar regras legadas mais específicas
 * sem alterar os demais temas do portal.
 */
[data-theme-mode="comunica"] .sidebar {
    padding: 0;
    overflow: hidden;
}

[data-theme-mode="comunica"] .comunica-sidebar-brand {
    min-height: 64px;
    margin: 0;
    padding: 0 20px;
    flex: 0 0 64px;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

[data-theme-mode="comunica"] .comunica-brand-icon {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 36px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
    font-size: 1rem;
}

[data-theme-mode="comunica"] .comunica-sidebar-icon {
    display: inline-block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: 0.9;
    vertical-align: middle;
}

[data-theme-mode="comunica"] .comunica-brand-icon .comunica-sidebar-icon,
[data-theme-mode="comunica"] .comunica-sidebar-close .comunica-sidebar-icon {
    width: 20px;
    height: 20px;
    flex-basis: 20px;
}

[data-theme-mode="comunica"] .sidebar-nav .toggle-arrow .comunica-sidebar-icon {
    display: block;
    width: 14px;
    height: 14px;
    flex-basis: 14px;
}

[data-theme-mode="comunica"] .comunica-footer-link .comunica-sidebar-icon {
    width: 14px;
    height: 14px;
    flex-basis: 14px;
}

[data-theme-mode="comunica"] .comunica-brand-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    line-height: 1.15;
}

[data-theme-mode="comunica"] .comunica-brand-copy strong {
    overflow: hidden;
    color: #ffffff;
    font-size: 0.875rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[data-theme-mode="comunica"] .comunica-brand-copy small {
    margin-top: 3px;
    overflow: hidden;
    color: rgba(219, 234, 254, 0.68);
    font-size: 0.625rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[data-theme-mode="comunica"] .comunica-sidebar-close {
    display: none;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: rgba(239, 246, 255, 0.85);
    cursor: pointer;
}

[data-theme-mode="comunica"] .comunica-sidebar-close:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

[data-theme-mode="comunica"] .sidebar-nav {
    flex: 1 1 auto;
    min-height: 0;
    padding: 12px;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
    scrollbar-width: thin;
}

[data-theme-mode="comunica"] .sidebar-nav::-webkit-scrollbar {
    width: 5px;
}

[data-theme-mode="comunica"] .sidebar-nav::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.2);
}

[data-theme-mode="comunica"] .sidebar .sidebar-nav a,
[data-theme-mode="comunica"] .sidebar .sidebar-nav .sidebar-group-toggle {
    min-height: 38px;
    margin-bottom: 2px;
    padding: 8px 10px;
    color: rgba(239, 246, 255, 0.86) !important;
    font-size: 0.875rem;
    font-weight: 500;
}

[data-theme-mode="comunica"] .sidebar .sidebar-nav > a,
[data-theme-mode="comunica"] .sidebar .sidebar-nav .sidebar-group-toggle > span:first-child {
    white-space: nowrap;
}

[data-theme-mode="comunica"] .sidebar .sidebar-nav .sidebar-group-toggle > span:first-child {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

[data-theme-mode="comunica"] .sidebar .sidebar-nav a:hover,
[data-theme-mode="comunica"] .sidebar .sidebar-nav a.active,
[data-theme-mode="comunica"] .sidebar .sidebar-nav .sidebar-group-toggle:hover,
[data-theme-mode="comunica"] .sidebar .sidebar-nav .sidebar-group.open > .sidebar-group-toggle,
[data-theme-mode="comunica"] .sidebar .sidebar-nav .sidebar-group.active > .sidebar-group-toggle {
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff !important;
}

[data-theme-mode="comunica"] .sidebar .sidebar-nav a.active,
[data-theme-mode="comunica"] .sidebar .sidebar-nav .sidebar-group.open > .sidebar-group-toggle,
[data-theme-mode="comunica"] .sidebar .sidebar-nav .sidebar-group.active > .sidebar-group-toggle {
    background: rgba(255, 255, 255, 0.16);
    border-left: 0;
}

[data-theme-mode="comunica"] .sidebar .sidebar-nav .sidebar-submenu a {
    min-height: 34px;
    margin-right: 0;
    margin-left: 8px;
    padding: 7px 8px 7px 28px;
    color: rgba(219, 234, 254, 0.75) !important;
    font-size: 0.8125rem;
}

[data-theme-mode="comunica"] .sidebar .sidebar-nav .sidebar-submenu a:hover,
[data-theme-mode="comunica"] .sidebar .sidebar-nav .sidebar-submenu a.active {
    color: #ffffff !important;
}

[data-theme-mode="comunica"] .sidebar-section-title {
    margin: 16px 0 6px;
    padding-left: 10px;
    color: rgba(191, 219, 254, 0.62);
    font-size: 0.64rem;
    font-weight: 700;
}

[data-theme-mode="comunica"] .comunica-sidebar-footer {
    flex: 0 0 auto;
    margin: 0;
    padding: 10px 12px 12px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

[data-theme-mode="comunica"] .sidebar .comunica-footer-link {
    display: flex;
    min-height: 36px;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 8px;
    color: rgba(239, 246, 255, 0.78) !important;
    font-size: 0.8125rem;
    font-weight: 500;
    text-decoration: none;
}

[data-theme-mode="comunica"] .sidebar .comunica-footer-link:hover,
[data-theme-mode="comunica"] .sidebar .comunica-footer-link.active {
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff !important;
}

[data-theme-mode="comunica"] .sidebar .comunica-footer-link.sidebar-logout {
    color: #fecaca !important;
}

[data-theme-mode="comunica"] .topbar {
    height: 64px;
    min-height: 64px;
    padding: 0 20px;
    gap: 12px;
    box-shadow: none;
}

[data-theme-mode="comunica"] .topbar-left {
    gap: 10px;
}

[data-theme-mode="comunica"] .comunica-role-badge {
    display: inline-flex;
    min-height: 26px;
    align-items: center;
    gap: 6px;
    padding: 4px 9px;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 0.75rem;
    font-weight: 700;
    white-space: nowrap;
}

[data-theme-mode="comunica"] .topbar-right {
    gap: 4px;
}

[data-theme-mode="comunica"] .topbar-client-form {
    max-width: 280px;
}

[data-theme-mode="comunica"] .comunica-user-summary {
    display: flex;
    min-width: 0;
    max-width: 190px;
    flex-direction: column;
    align-items: flex-end;
    margin-left: 6px;
    padding-left: 12px;
    border-left: 1px solid #e2e8f0;
    line-height: 1.2;
    text-decoration: none;
}

[data-theme-mode="comunica"] a.comunica-user-summary:hover,
[data-theme-mode="comunica"] a.comunica-user-summary:focus {
    text-decoration: none;
}

[data-theme-mode="comunica"] .topbar a.comunica-user-summary:hover strong,
[data-theme-mode="comunica"] .topbar a.comunica-user-summary:focus strong {
    color: #1d4ed8;
}

[data-theme-mode="comunica"] .comunica-user-summary strong,
[data-theme-mode="comunica"] .comunica-user-summary small {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[data-theme-mode="comunica"] .comunica-user-summary strong {
    color: #0f172a;
    font-size: 0.875rem;
    font-weight: 700;
}

[data-theme-mode="comunica"] .comunica-user-summary small {
    margin-top: 3px;
    color: #64748b;
    font-size: 0.6875rem;
}

[data-theme-mode="comunica"] .main-body {
    padding: 24px;
}

[data-theme-mode="comunica"] .main-body .content-wrap,
[data-theme-mode="comunica"] .main-body .main,
[data-theme-mode="comunica"] .main-body .container-fluid {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

[data-theme-mode="comunica"] .page-header {
    margin-bottom: 20px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

[data-theme-mode="comunica"] .page-header h1 {
    color: #0f172a;
    font-size: 1.35rem;
}

[data-theme-mode="comunica"] .card,
[data-theme-mode="comunica"] .modal-content,
[data-theme-mode="comunica"] .dropdown-menu,
[data-theme-mode="comunica"] .popover {
    box-shadow: none;
}

/* Dashboard: KPIs compactos em faixa, como no painel de referência. */
[data-theme-mode="comunica"] .dash2-a .kpi-band {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
    border-top: 1px solid #e2e8f0;
    border-bottom: 1px solid #e2e8f0;
    background: #ffffff;
}

[data-theme-mode="comunica"] .dash2-a .kpi-band-secondary {
    grid-template-columns: minmax(210px, 1fr) minmax(320px, 2fr);
    margin-top: 20px;
}

[data-theme-mode="comunica"] .dash2-a .kpi-card {
    min-height: 92px;
    margin: 0;
    padding: 14px 16px;
    gap: 10px;
    border: 0;
    border-right: 1px solid #e2e8f0;
    border-radius: 0;
    background: #ffffff;
    box-shadow: none;
    color: #0f172a;
    transform: none;
}

[data-theme-mode="comunica"] .dash2-a .kpi-card:last-child {
    border-right: 0;
}

[data-theme-mode="comunica"] .dash2-a .kpi-card:hover {
    background: #f8fafc;
    box-shadow: none;
    color: #0f172a;
    transform: none;
}

[data-theme-mode="comunica"] .dash2-a .kpi-icon {
    width: 36px;
    height: 36px;
    border-radius: 9px;
    font-size: 1rem;
}

[data-theme-mode="comunica"] .dash2-a .kpi-value {
    color: #0f172a;
    font-size: 1.5rem;
    font-weight: 700;
}

[data-theme-mode="comunica"] .dash2-a .kpi-value-sm {
    color: #0f172a;
    font-size: 1rem;
    font-weight: 700;
}

[data-theme-mode="comunica"] .dash2-a .kpi-label {
    color: #64748b;
    font-size: 0.68rem;
    letter-spacing: 0.045em;
}

[data-theme-mode="comunica"] .dash2-a .kpi-sub {
    color: #64748b;
    font-size: 0.68rem;
}

[data-theme-mode="comunica"] .dash2-a .kpi-progress {
    height: 6px;
    background: #e2e8f0;
}

[data-theme-mode="comunica"] .dash2-a .kpi-progress-bar {
    background: #2563eb;
}

/* Avisos seguem a mesma linguagem de superfície plana e borda discreta. */
[data-theme-mode="comunica"] .avisos-grid .alert-card {
    min-height: 86px;
    padding: 14px 16px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: none;
    transform: none;
}

[data-theme-mode="comunica"] .avisos-grid .alert-card:hover {
    border-color: #bfdbfe;
    background: #f8fafc;
    box-shadow: none;
    transform: none;
}

[data-theme-mode="comunica"] .avisos-grid .alert-card-icon {
    width: 38px;
    height: 38px;
    border-radius: 9px;
    font-size: 1rem;
}

[data-theme-mode="comunica"] .avisos-grid .alert-card-value {
    color: #0f172a;
    font-size: 1.35rem;
    font-weight: 700;
}

[data-theme-mode="comunica"] .avisos-grid .alert-card-text {
    color: #64748b;
    font-size: 0.75rem;
}

@media (min-width: 1800px) {
    [data-theme-mode="comunica"] .comunica-sidebar-brand {
        padding-right: 24px;
        padding-left: 24px;
    }

    [data-theme-mode="comunica"] .sidebar-nav {
        padding-right: 12px;
        padding-left: 12px;
    }
}

@media (max-width: 1199px) and (min-width: 768px) {
    [data-theme-mode="comunica"] .topbar .comunica-user-summary {
        display: none;
    }

    [data-theme-mode="comunica"] .dash2-a .kpi-band {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    [data-theme-mode="comunica"] .dash2-a .kpi-band-secondary {
        grid-template-columns: minmax(210px, 1fr) minmax(320px, 2fr);
    }
}

@media (max-width: 1023px) {
    [data-theme-mode="comunica"] .sidebar {
        left: 0;
        width: min(304px, 88vw);
        transform: translateX(-100%);
        transition: transform 0.3s ease;
    }

    [data-theme-mode="comunica"] .sidebar.open {
        left: 0;
        transform: translateX(0);
    }

    [data-theme-mode="comunica"] .main-content {
        margin-left: 0;
    }

    [data-theme-mode="comunica"] .topbar-menu-btn {
        display: flex;
    }

    [data-theme-mode="comunica"] .comunica-sidebar-close {
        display: inline-flex;
    }

    [data-theme-mode="comunica"] .overlay.active {
        z-index: 99;
    }
}

@media (max-width: 767px) {
    [data-theme-mode="comunica"] .topbar {
        height: 52px;
        min-height: 52px;
        padding: 6px 10px;
    }

    [data-theme-mode="comunica"] .topbar-client-form {
        max-width: none;
    }

    [data-theme-mode="comunica"] .topbar .comunica-user-summary {
        display: none;
    }

    [data-theme-mode="comunica"] .main-body {
        padding: 16px 12px;
    }

    [data-theme-mode="comunica"] .dash2-a .kpi-band,
    [data-theme-mode="comunica"] .dash2-a .kpi-band-secondary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    [data-theme-mode="comunica"] .dash2-a .kpi-card {
        min-height: 82px;
        padding: 12px;
    }

    [data-theme-mode="comunica"] .dash2-a .kpi-performance {
        grid-column: 1 / -1;
    }
}

@media (prefers-reduced-motion: reduce) {
    [data-theme-mode="comunica"] .sidebar {
        transition: none;
    }
}

/*
 * Componentes compartilhados do Portal.
 * A base Comunica agora atende todos os módulos; estas regras normalizam os
 * componentes Bootstrap e os widgets legados sem exigir alterações locais.
 */
[data-theme-mode="comunica"] .comunica-section {
    position: relative;
    min-width: 0;
    margin: 0 0 26px;
    padding: 0;
    overflow: visible;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #0f172a;
}

[data-theme-mode="comunica"] .comunica-section:last-child {
    margin-bottom: 0;
}

[data-theme-mode="comunica"] .comunica-section + .comunica-section {
    padding-top: 24px;
    border-top: 1px solid #e2e8f0 !important;
}

[data-theme-mode="comunica"] .comunica-section .comunica-section {
    margin-bottom: 18px;
}

[data-theme-mode="comunica"] .comunica-section-header {
    display: flow-root;
    min-height: 42px;
    margin: 0;
    padding: 0 0 14px;
    border: 0;
    border-bottom: 1px solid #e2e8f0;
    border-radius: 0;
    background: transparent !important;
    color: #0f172a;
}

[data-theme-mode="comunica"] .comunica-section-header > h3,
[data-theme-mode="comunica"] .comunica-section-header > h4,
[data-theme-mode="comunica"] .comunica-section-header > h5,
[data-theme-mode="comunica"] .comunica-section-header > h6 {
    display: inline-block;
    max-width: 100%;
    margin: 7px 0 0;
    color: #0f172a;
    font-size: 0.9375rem;
    font-weight: 650;
    letter-spacing: -0.01em;
    line-height: 1.35;
}

[data-theme-mode="comunica"] .comunica-section-header > hr {
    display: none;
}

[data-theme-mode="comunica"] .comunica-section-header > .row,
[data-theme-mode="comunica"] .comunica-section-header > form,
[data-theme-mode="comunica"] .comunica-section-header > .basic-form {
    clear: both;
    padding-top: 14px;
}

[data-theme-mode="comunica"] .comunica-section-content {
    position: relative;
    min-width: 0;
    padding: 16px 0 0;
    border: 0;
    background: transparent;
    color: #334155;
}

[data-theme-mode="comunica"] .comunica-section-content:first-child {
    padding-top: 0;
}

[data-theme-mode="comunica"] .comunica-section-header + .comunica-section-content {
    padding-top: 16px;
}

/*
 * Cabeçalho principal de página, equivalente ao PageHeader do Comunica.
 * A classe é reutilizável; o seletor estrutural mantém compatibilidade com
 * as telas já migradas que ainda usam somente comunica-section-header.
 */
[data-theme-mode="comunica"] .comunica-page-header,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child {
    min-height: 0;
    margin: -24px -24px 0;
    padding: 16px 24px;
    border-bottom: 1px solid #e2e8f0;
    background: #ffffff !important;
}

[data-theme-mode="comunica"] .comunica-page-header > h1,
[data-theme-mode="comunica"] .comunica-page-header > h2,
[data-theme-mode="comunica"] .comunica-page-header > h3,
[data-theme-mode="comunica"] .comunica-page-header > h4,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > h1,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > h2,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > h3,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > h4 {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    color: #0f172a;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.4;
    text-transform: none !important;
}

[data-theme-mode="comunica"] .comunica-page-header > h1:not(:has(> i:first-child))::before,
[data-theme-mode="comunica"] .comunica-page-header > h2:not(:has(> i:first-child))::before,
[data-theme-mode="comunica"] .comunica-page-header > h3:not(:has(> i:first-child))::before,
[data-theme-mode="comunica"] .comunica-page-header > h4:not(:has(> i:first-child))::before,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > h1:not(:has(> i:first-child))::before,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > h2:not(:has(> i:first-child))::before,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > h3:not(:has(> i:first-child))::before,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > h4:not(:has(> i:first-child))::before {
    content: "\f15c";
    flex: 0 0 auto;
    color: #2563eb;
    font-family: "Font Awesome 6 Free";
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 400;
}

[data-theme-mode="comunica"] .comunica-page-title-icon {
    flex: 0 0 auto;
    color: #2563eb;
    font-size: 1.25rem;
}

[data-theme-mode="comunica"] .comunica-page-header > .comunica-page-description,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > .comunica-page-description {
    max-width: min(760px, 100%);
    margin: 2px 0 0;
    color: #64748b;
    font-size: 0.875rem;
    line-height: 1.45;
}

[data-theme-mode="comunica"] .comunica-page-header > .btn.float-right,
[data-theme-mode="comunica"] .comunica-page-header > a.float-right,
[data-theme-mode="comunica"] .comunica-page-header > button.float-right,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > .btn.float-right,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > a.float-right,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > button.float-right {
    margin-top: 0 !important;
}

[data-theme-mode="comunica"] .comunica-page-header > hr:has(+ .row),
[data-theme-mode="comunica"] .comunica-page-header > hr:has(+ form),
[data-theme-mode="comunica"] .comunica-page-header > hr:has(+ .basic-form),
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > hr:has(+ .row),
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > hr:has(+ form),
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > hr:has(+ .basic-form) {
    display: block;
    width: calc(100% + 48px);
    margin: 16px -24px;
    border: 0;
    border-top: 1px solid #e2e8f0;
}

[data-theme-mode="comunica"] .comunica-page-header > hr + .row,
[data-theme-mode="comunica"] .comunica-page-header > hr + form,
[data-theme-mode="comunica"] .comunica-page-header > hr + .basic-form,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > hr + .row,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > hr + form,
[data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > hr + .basic-form {
    padding-top: 0;
}

[data-theme-mode="comunica"] .comunica-section-content .tabcontent-border {
    border: 0;
}

[data-theme-mode="comunica"] .comunica-section-content .tab-pane.p-20 {
    padding: 16px 0 !important;
}

[data-theme-mode="comunica"] .comunica-section.border-left-primary,
[data-theme-mode="comunica"] .comunica-section.border-left-info,
[data-theme-mode="comunica"] .comunica-section.border-left-success,
[data-theme-mode="comunica"] .comunica-section.border-left-warning,
[data-theme-mode="comunica"] .comunica-section.border-left-danger,
[data-theme-mode="comunica"] .comunica-section.border-left-secondary {
    padding-left: 14px;
}

[data-theme-mode="comunica"] .comunica-section.border-left-primary { border-left: 2px solid #2563eb !important; }
[data-theme-mode="comunica"] .comunica-section.border-left-info { border-left: 2px solid #0284c7 !important; }
[data-theme-mode="comunica"] .comunica-section.border-left-success { border-left: 2px solid #059669 !important; }
[data-theme-mode="comunica"] .comunica-section.border-left-warning { border-left: 2px solid #d97706 !important; }
[data-theme-mode="comunica"] .comunica-section.border-left-danger { border-left: 2px solid #dc2626 !important; }
[data-theme-mode="comunica"] .comunica-section.border-left-secondary { border-left: 2px solid #64748b !important; }

[data-theme-mode="comunica"] .comunica-section.primary-card,
[data-theme-mode="comunica"] .comunica-section.danger-card,
[data-theme-mode="comunica"] .comunica-section.warning-card,
[data-theme-mode="comunica"] .comunica-section.success-card {
    padding-left: 12px;
}

[data-theme-mode="comunica"] .comunica-section.primary-card { border-left: 2px solid #2563eb !important; }
[data-theme-mode="comunica"] .comunica-section.danger-card { border-left: 2px solid #dc2626 !important; }
[data-theme-mode="comunica"] .comunica-section.warning-card { border-left: 2px solid #d97706 !important; }
[data-theme-mode="comunica"] .comunica-section.success-card { border-left: 2px solid #059669 !important; }

[data-theme-mode="comunica"] .comunica-section > .primary-header,
[data-theme-mode="comunica"] .comunica-section > .danger-header,
[data-theme-mode="comunica"] .comunica-section > .warning-header,
[data-theme-mode="comunica"] .comunica-section > .success-header {
    min-height: 42px;
    padding: 8px 0 12px;
    border-bottom: 1px solid #e2e8f0;
    border-radius: 0;
    background: transparent !important;
    color: #0f172a;
    font-size: 0.875rem;
    font-weight: 650;
}

[data-theme-mode="comunica"] .comunica-section > .primary-header { color: #1d4ed8; }
[data-theme-mode="comunica"] .comunica-section > .danger-header { color: #b91c1c; }
[data-theme-mode="comunica"] .comunica-section > .warning-header { color: #92400e; }
[data-theme-mode="comunica"] .comunica-section > .success-header { color: #047857; }

[data-theme-mode="comunica"] .comunica-section > .primary-header .badge-count,
[data-theme-mode="comunica"] .comunica-section > .danger-header .badge-count,
[data-theme-mode="comunica"] .comunica-section > .warning-header .badge-count,
[data-theme-mode="comunica"] .comunica-section > .success-header .badge-count {
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-size: 0.6875rem;
}

[data-theme-mode="comunica"] .main-body h1,
[data-theme-mode="comunica"] .main-body h2,
[data-theme-mode="comunica"] .main-body h3,
[data-theme-mode="comunica"] .main-body h4,
[data-theme-mode="comunica"] .main-body h5,
[data-theme-mode="comunica"] .main-body h6 {
    color: #0f172a;
    letter-spacing: -0.012em;
}

[data-theme-mode="comunica"] .main-body .card {
    overflow: visible;
    border: 1px solid #e2e8f0;
    border-radius: var(--comunica-radius);
    background: #ffffff;
    box-shadow: var(--comunica-shadow-sm);
}

[data-theme-mode="comunica"] .main-body .card.redonda,
[data-theme-mode="comunica"] .main-body .card-header.redonda {
    border-radius: var(--comunica-radius);
}

[data-theme-mode="comunica"] .main-body div.card-title,
[data-theme-mode="comunica"] .main-body .card-header {
    min-height: 52px;
    margin: 0;
    padding: 14px 18px;
    border-bottom: 1px solid #e2e8f0;
    border-radius: var(--comunica-radius) var(--comunica-radius) 0 0;
    background: #ffffff;
}

[data-theme-mode="comunica"] .main-body div.card-title h3,
[data-theme-mode="comunica"] .main-body div.card-title h4,
[data-theme-mode="comunica"] .main-body div.card-title h5,
[data-theme-mode="comunica"] .main-body .card-header h3,
[data-theme-mode="comunica"] .main-body .card-header h4,
[data-theme-mode="comunica"] .main-body .card-header h5,
[data-theme-mode="comunica"] .modal-title {
    margin: 0;
    color: #0f172a;
    font-size: 0.9375rem;
    font-weight: 650;
    letter-spacing: -0.01em;
    line-height: 1.4;
}

[data-theme-mode="comunica"] .main-body h4.card-title,
[data-theme-mode="comunica"] .main-body h5.card-title {
    min-height: 0;
    margin-bottom: 12px;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 0.9375rem;
    font-weight: 650;
}

[data-theme-mode="comunica"] .main-body .card-body {
    padding: 18px;
}

[data-theme-mode="comunica"] .main-body .card-footer {
    padding: 12px 18px;
    border-top: 1px solid #e2e8f0;
    border-radius: 0 0 var(--comunica-radius) var(--comunica-radius);
    background: #f8fafc;
}

[data-theme-mode="comunica"] .form-group > label,
[data-theme-mode="comunica"] .form-check-label,
[data-theme-mode="comunica"] .col-form-label {
    margin-bottom: 6px;
    color: #334155;
    font-size: 0.75rem;
    font-weight: 600;
}

[data-theme-mode="comunica"] .form-control,
[data-theme-mode="comunica"] .form-select,
[data-theme-mode="comunica"] .input-default,
[data-theme-mode="comunica"] select.form-control {
    min-height: 36px;
    padding: 7px 12px;
    border: 1px solid var(--comunica-control-border);
    border-radius: var(--comunica-radius-sm);
    background-color: #ffffff;
    box-shadow: var(--comunica-shadow-sm);
    color: #0f172a;
    font-size: 0.875rem;
    line-height: 1.35;
}

[data-theme-mode="comunica"] input#myInput {
    padding-left: 36px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: 12px 50%;
    background-size: 16px 16px;
}

[data-theme-mode="comunica"] textarea.form-control {
    min-height: 86px;
}

[data-theme-mode="comunica"] .form-control-sm,
[data-theme-mode="comunica"] select.form-control-sm {
    min-height: 32px;
    padding: 5px 9px;
    font-size: 0.75rem;
}

[data-theme-mode="comunica"] .form-control:disabled,
[data-theme-mode="comunica"] .form-control[readonly],
[data-theme-mode="comunica"] .form-select:disabled,
[data-theme-mode="comunica"] .input-default:disabled {
    border-color: #e2e8f0;
    background: #f1f5f9;
    box-shadow: none;
    color: #64748b;
    opacity: 1;
}

[data-theme-mode="comunica"] .input-group-text,
[data-theme-mode="comunica"] .input-group-addon {
    border-color: #cbd5e1;
    background: #f8fafc;
    color: #64748b;
    font-size: 0.8125rem;
}

[data-theme-mode="comunica"] .custom-control-label::before,
[data-theme-mode="comunica"] .form-check-input {
    border-color: #cbd5e1;
}

[data-theme-mode="comunica"] .custom-control-input:checked ~ .custom-control-label::before,
[data-theme-mode="comunica"] .form-check-input:checked {
    border-color: #2563eb;
    background-color: #2563eb;
}

[data-theme-mode="comunica"] .btn {
    min-height: 36px;
    padding: 7px 12px;
    border-radius: var(--comunica-radius-sm);
    box-shadow: none;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.35;
}

[data-theme-mode="comunica"] .btn-sm,
[data-theme-mode="comunica"] .btn-group-sm > .btn {
    min-height: 30px;
    padding: 5px 9px;
    font-size: 0.75rem;
}

[data-theme-mode="comunica"] .btn-success { background: #059669; border-color: #059669; color: #ffffff; }
[data-theme-mode="comunica"] .btn-success:hover,
[data-theme-mode="comunica"] .btn-success:focus { background: #047857; border-color: #047857; color: #ffffff; }
[data-theme-mode="comunica"] .btn-danger { background: #dc2626; border-color: #dc2626; color: #ffffff; }
[data-theme-mode="comunica"] .btn-danger:hover,
[data-theme-mode="comunica"] .btn-danger:focus { background: #b91c1c; border-color: #b91c1c; color: #ffffff; }
[data-theme-mode="comunica"] .btn-warning { background: #d97706; border-color: #d97706; color: #ffffff; }
[data-theme-mode="comunica"] .btn-warning:hover,
[data-theme-mode="comunica"] .btn-warning:focus { background: #b45309; border-color: #b45309; color: #ffffff; }
[data-theme-mode="comunica"] .btn-info { background: #0284c7; border-color: #0284c7; color: #ffffff; }
[data-theme-mode="comunica"] .btn-info:hover,
[data-theme-mode="comunica"] .btn-info:focus { background: #0369a1; border-color: #0369a1; color: #ffffff; }
[data-theme-mode="comunica"] .btn-secondary { background: #475569; border-color: #475569; color: #ffffff; }

[data-theme-mode="comunica"] .bg-primary.text-white { background-color: #2563eb !important; }
[data-theme-mode="comunica"] .bg-success.text-white { background-color: #059669 !important; }
[data-theme-mode="comunica"] .bg-danger.text-white { background-color: #dc2626 !important; }
[data-theme-mode="comunica"] .bg-warning.text-white { background-color: #d97706 !important; }
[data-theme-mode="comunica"] .bg-info.text-white { background-color: #0284c7 !important; }

[data-theme-mode="comunica"] .badge {
    padding: 4px 7px;
    border-radius: 999px;
    font-size: 0.6875rem;
    font-weight: 650;
    line-height: 1.1;
}

[data-theme-mode="comunica"] .badge-primary { background: #dbeafe; color: #1d4ed8; }
[data-theme-mode="comunica"] .badge-success { background: #d1fae5; color: #047857; }
[data-theme-mode="comunica"] .badge-danger { background: #fee2e2; color: #b91c1c; }
[data-theme-mode="comunica"] .badge-warning { background: #fef3c7; color: #92400e; }
[data-theme-mode="comunica"] .badge-info { background: #e0f2fe; color: #0369a1; }
[data-theme-mode="comunica"] .badge-secondary,
[data-theme-mode="comunica"] .badge-light { background: #f1f5f9; color: #475569; }

[data-theme-mode="comunica"] .table-responsive {
    border-radius: var(--comunica-radius-sm);
    scrollbar-color: #cbd5e1 transparent;
}

[data-theme-mode="comunica"] .table-responsive > .table {
    margin-bottom: 0;
}

[data-theme-mode="comunica"] .table {
    width: 100%;
    background: #ffffff;
    color: #0f172a;
    font-size: 0.8125rem;
}

[data-theme-mode="comunica"] .table thead th,
[data-theme-mode="comunica"] .table .thead-light th,
[data-theme-mode="comunica"] .table .table-light th {
    padding: 9px 10px;
    border-color: #e2e8f0;
    background: #f8fafc;
    color: #64748b;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.055em;
    line-height: 1.25;
    text-transform: uppercase;
    vertical-align: middle;
}

[data-theme-mode="comunica"] .table tbody td,
[data-theme-mode="comunica"] .table tbody th,
[data-theme-mode="comunica"] .table tfoot td,
[data-theme-mode="comunica"] .table tfoot th {
    padding: 10px;
    border-color: #e2e8f0;
    color: #334155;
    vertical-align: middle;
}

[data-theme-mode="comunica"] .table-sm thead th { padding: 7px 9px; }
[data-theme-mode="comunica"] .table-sm tbody td,
[data-theme-mode="comunica"] .table-sm tbody th { padding: 8px 9px; }

[data-theme-mode="comunica"] .table-striped tbody tr:nth-of-type(odd),
[data-theme-mode="comunica"] .table-striped > tbody > tr:nth-of-type(odd) > * {
    background: #fbfdff;
    color: #334155;
}

[data-theme-mode="comunica"] .table-hover tbody tr:hover,
[data-theme-mode="comunica"] .table-hover > tbody > tr:hover > * {
    background: #eff6ff;
    color: #0f172a;
}

[data-theme-mode="comunica"] .table-bordered,
[data-theme-mode="comunica"] .table-bordered th,
[data-theme-mode="comunica"] .table-bordered td {
    border-color: #e2e8f0;
}

[data-theme-mode="comunica"] .dataTables_wrapper {
    color: #475569;
    font-size: 0.8125rem;
}

[data-theme-mode="comunica"] .dataTables_wrapper .dataTables_length select,
[data-theme-mode="comunica"] .dataTables_wrapper .dataTables_filter input {
    min-height: 32px;
    margin: 0 4px;
    padding: 5px 9px;
    border: 1px solid #cbd5e1;
    border-radius: var(--comunica-radius-sm);
    background: #ffffff;
    box-shadow: none;
    color: #0f172a;
}

[data-theme-mode="comunica"] .dataTables_wrapper .dataTables_paginate .paginate_button,
[data-theme-mode="comunica"] .pagination .page-link {
    min-width: 32px;
    min-height: 32px;
    margin-left: 3px;
    padding: 6px 9px;
    border: 1px solid #e2e8f0 !important;
    border-radius: var(--comunica-radius-sm) !important;
    background: #ffffff !important;
    box-shadow: none !important;
    color: #475569 !important;
    text-align: center;
}

[data-theme-mode="comunica"] .dataTables_wrapper .dataTables_paginate .paginate_button:hover,
[data-theme-mode="comunica"] .pagination .page-link:hover {
    border-color: #bfdbfe !important;
    background: #eff6ff !important;
    color: #1d4ed8 !important;
}

[data-theme-mode="comunica"] .dataTables_wrapper .dataTables_paginate .paginate_button.current,
[data-theme-mode="comunica"] .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover,
[data-theme-mode="comunica"] .pagination .page-item.active .page-link {
    border-color: #2563eb !important;
    background: #2563eb !important;
    color: #ffffff !important;
}

[data-theme-mode="comunica"] .nav-tabs {
    gap: 18px;
    border-bottom: 1px solid #e2e8f0;
}

[data-theme-mode="comunica"] .nav-tabs .nav-link {
    margin: 0 0 -1px;
    padding: 10px 2px;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    color: #64748b;
    font-size: 0.8125rem;
    font-weight: 600;
}

[data-theme-mode="comunica"] .nav-tabs .nav-link:hover,
[data-theme-mode="comunica"] .nav-tabs .nav-link:focus {
    border-bottom-color: #bfdbfe;
    color: #1d4ed8;
}

[data-theme-mode="comunica"] .nav-tabs .nav-link.active,
[data-theme-mode="comunica"] .nav-tabs .nav-item.show .nav-link {
    border-bottom-color: #2563eb;
    background: transparent;
    color: #1d4ed8;
}

[data-theme-mode="comunica"] .tab-content {
    color: #334155;
}

[data-theme-mode="comunica"] .list-group-item {
    border-color: #e2e8f0;
    background: #ffffff;
    color: #334155;
}

[data-theme-mode="comunica"] .list-group-item-action:hover,
[data-theme-mode="comunica"] .list-group-item-action:focus,
[data-theme-mode="comunica"] .list-group-item.active {
    border-color: #bfdbfe;
    background: #eff6ff;
    color: #1d4ed8;
}

[data-theme-mode="comunica"] .modal-content {
    overflow: hidden;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 20px 45px rgba(15, 23, 42, 0.16);
}

[data-theme-mode="comunica"] .modal-header,
[data-theme-mode="comunica"] .modal-footer {
    padding: 14px 18px;
    border-color: #e2e8f0;
    background: #ffffff;
}

[data-theme-mode="comunica"] .modal-body {
    padding: 18px;
    color: #334155;
}

[data-theme-mode="comunica"] .dropdown-item {
    padding: 8px 12px;
    border-radius: 5px;
    color: #334155;
    font-size: 0.8125rem;
}

[data-theme-mode="comunica"] .dropdown-item:hover,
[data-theme-mode="comunica"] .dropdown-item:focus,
[data-theme-mode="comunica"] .dropdown-item.active {
    background: #eff6ff;
    color: #1d4ed8;
}

[data-theme-mode="comunica"] .note,
[data-theme-mode="comunica"] .card.note-task {
    overflow: hidden;
    border: 1px solid #e2e8f0;
    border-left: 3px solid #94a3b8;
    border-radius: var(--comunica-radius-sm);
    background: #ffffff;
    box-shadow: none;
    color: #334155;
}

[data-theme-mode="comunica"] .note-primary,
[data-theme-mode="comunica"] .card.note-task-primary { border-left-color: #2563eb; background: #eff6ff; }
[data-theme-mode="comunica"] .note-success,
[data-theme-mode="comunica"] .card.note-task-success { border-left-color: #059669; background: #ecfdf5; }
[data-theme-mode="comunica"] .note-danger,
[data-theme-mode="comunica"] .card.note-task-danger { border-left-color: #dc2626; background: #fef2f2; }
[data-theme-mode="comunica"] .note-warning,
[data-theme-mode="comunica"] .card.note-task-warning { border-left-color: #d97706; background: #fffbeb; }
[data-theme-mode="comunica"] .note-info,
[data-theme-mode="comunica"] .card.note-task-info { border-left-color: #0284c7; background: #f0f9ff; }

[data-theme-mode="comunica"] .stat-widget-one {
    display: flex;
    min-height: 72px;
    align-items: center;
    gap: 12px;
}

[data-theme-mode="comunica"] .stat-widget-one .stat-icon {
    position: static;
    display: inline-flex;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    background: #eff6ff;
    color: #2563eb;
    font-size: 1rem;
}

[data-theme-mode="comunica"] .stat-widget-one .stat-content {
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 0;
}

[data-theme-mode="comunica"] .stat-widget-one .stat-text {
    color: #64748b;
    font-size: 0.6875rem;
    font-weight: 650;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

[data-theme-mode="comunica"] .stat-widget-one .stat-digit {
    margin-top: 3px;
    color: #0f172a;
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: -0.025em;
    line-height: 1.1;
}

[data-theme-mode="comunica"] .progress {
    overflow: hidden;
    border-radius: 999px;
    background: #e2e8f0;
    box-shadow: none;
}

[data-theme-mode="comunica"] .progress-bar { background: #2563eb; }

[data-theme-mode="comunica"] .ui-datepicker {
    padding: 8px;
    border: 1px solid #e2e8f0;
    border-radius: var(--comunica-radius);
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.14);
    color: #334155;
    font-family: var(--comunica-font-sans);
}

[data-theme-mode="comunica"] .ui-datepicker .ui-datepicker-header {
    border: 0;
    background: #f8fafc;
    color: #0f172a;
}

[data-theme-mode="comunica"] .ui-datepicker td a.ui-state-active {
    border-color: #2563eb;
    background: #2563eb;
    color: #ffffff;
}

@media (max-width: 767px) {
    [data-theme-mode="comunica"] .comunica-page-header,
    [data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child {
        margin: -16px -12px 0;
        padding: 14px 12px;
    }

    [data-theme-mode="comunica"] .comunica-page-header > hr:has(+ .row),
    [data-theme-mode="comunica"] .comunica-page-header > hr:has(+ form),
    [data-theme-mode="comunica"] .comunica-page-header > hr:has(+ .basic-form),
    [data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > hr:has(+ .row),
    [data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > hr:has(+ form),
    [data-theme-mode="comunica"] #content > .row > .col-lg-12 > .comunica-section:first-child > .comunica-section-header:first-child > hr:has(+ .basic-form) {
        width: calc(100% + 24px);
        margin-right: -12px;
        margin-left: -12px;
    }

    [data-theme-mode="comunica"] .comunica-section {
        margin-bottom: 20px;
    }

    [data-theme-mode="comunica"] .comunica-section + .comunica-section {
        padding-top: 20px;
    }

    [data-theme-mode="comunica"] .comunica-section-header > .btn.float-right,
    [data-theme-mode="comunica"] .comunica-section-header > a.float-right,
    [data-theme-mode="comunica"] .comunica-section-header > button.float-right {
        float: none !important;
        margin: 10px 6px 0 0 !important;
    }

    [data-theme-mode="comunica"] .comunica-section-header > .row,
    [data-theme-mode="comunica"] .comunica-section-header > form,
    [data-theme-mode="comunica"] .comunica-section-header > .basic-form {
        padding-top: 12px;
    }

    [data-theme-mode="comunica"] .main-body div.card-title,
    [data-theme-mode="comunica"] .main-body .card-header,
    [data-theme-mode="comunica"] .main-body .card-body,
    [data-theme-mode="comunica"] .main-body .card-footer {
        padding-right: 12px;
        padding-left: 12px;
    }

    [data-theme-mode="comunica"] .dataTables_wrapper .dataTables_length,
    [data-theme-mode="comunica"] .dataTables_wrapper .dataTables_filter,
    [data-theme-mode="comunica"] .dataTables_wrapper .dataTables_info,
    [data-theme-mode="comunica"] .dataTables_wrapper .dataTables_paginate {
        width: 100%;
        margin: 6px 0;
        text-align: left;
    }

    [data-theme-mode="comunica"] .dataTables_wrapper .dataTables_filter input {
        width: calc(100% - 68px);
    }

    [data-theme-mode="comunica"] .nav-tabs {
        gap: 12px;
        overflow-x: auto;
        flex-wrap: nowrap;
    }

    [data-theme-mode="comunica"] .nav-tabs .nav-link {
        white-space: nowrap;
    }
}
