* {
    box-sizing: border-box;
}

:root {
    --bg-main: radial-gradient(circle at 0% 0%, #d9e8ff 0%, #f2f7ff 38%, #f8fbff 100%);
    --bg-panel: #ffffff;
    --bg-sidebar: linear-gradient(180deg, #0f1d3a 0%, #1c2f57 55%, #233f70 100%);
    --sidebar-width: 252px;
    --sidebar-width-mobile: 252px;
    --text-main: #1f2a44;
    --text-muted: #6b7a9a;
    --accent: #1f6fe5;
    --accent-soft: #eaf2ff;
    --line: #d9e3f2;
    --shadow: 0 14px 36px rgba(17, 33, 70, 0.12);
}

body {
    font-family: "Trebuchet MS", "Segoe UI", Tahoma, sans-serif;
    margin: 0;
    background: var(--bg-main);
    color: var(--text-main);
    max-width: 100%;
    overflow-x: hidden;
}

body:not(.auth-ready) > .app-layout {
    visibility: hidden;
    opacity: 0;
}

body.auth-ready > .app-layout {
    visibility: visible;
    opacity: 1;
    transition: opacity 0.12s ease;
}

.app-layout {
    display: flex;
    min-height: 100vh;
}

.sidebar {
    width: var(--sidebar-width);
    flex: 0 0 var(--sidebar-width);
    background: var(--bg-sidebar);
    color: #fff;
    padding: 20px 12px 16px;
    box-shadow: 4px 0 24px rgba(13, 20, 40, 0.24);
    position: static !important;
    top: auto !important;
    min-height: 100vh;
    overflow-y: visible;
    transition: width 0.24s ease, flex-basis 0.24s ease, padding 0.24s ease, opacity 0.2s ease, transform 0.24s ease, box-shadow 0.24s ease;
}

body.sidebar-collapsed .sidebar {
    width: 0;
    flex-basis: 0;
    padding-left: 0;
    padding-right: 0;
    overflow: hidden;
    opacity: 0;
    box-shadow: none;
}

body.sidebar-collapsed .sidebar > * {
    opacity: 0;
    pointer-events: none;
}

.sidebar-brand {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0.4px;
}

.sidebar-subtitle {
    margin: 6px 0 0;
    color: rgba(255, 255, 255, 0.74);
    font-size: 12px;
}

.sidebar-user {
    margin-top: 16px;
    margin-bottom: 16px;
    padding: 12px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.08);
}

.sidebar-user-name {
    font-size: 14px;
    font-weight: 700;
}

.sidebar-user-role {
    font-size: 12px;
    opacity: 0.76;
    margin-top: 4px;
}

.sidebar-group {
    margin-bottom: 14px;
}

.sidebar-group-title {
    width: 100%;
    appearance: none;
    border: 0;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 0;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    margin: 0 0 8px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: rgba(255, 255, 255, 0.72);
}

.sidebar-group-title:hover {
    color: #ffffff;
}

.sidebar-group-caret {
    font-size: 11px;
    transition: transform 0.18s ease;
}

.sidebar-group-title[aria-expanded="false"] .sidebar-group-caret {
    transform: rotate(-90deg);
}

.sidebar-group-links {
    display: grid;
    gap: 6px;
}

.sidebar-group-links.is-collapsed {
    display: none;
}

.sidebar-link {
    text-decoration: none;
    color: #e9f0ff;
    padding: 9px 10px;
    border-radius: 8px;
    font-size: 14px;
    border: 1px solid transparent;
    transition: all 0.2s ease;
}

.sidebar-link:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.24);
}

.sidebar-link.is-active {
    background: rgba(40, 136, 255, 0.32);
    border-color: rgba(138, 198, 255, 0.65);
    font-weight: 700;
}

.sidebar-link.is-disabled {
    opacity: 0.68;
}

.app-main {
    flex: 1;
    min-width: 0;
    overflow-x: hidden;
}

.topbar {
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(8px);
    padding: 12px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--line);
    position: static !important;
    top: auto !important;
    z-index: auto !important;
}

.topbar-title {
    margin: 0;
    font-size: 20px;
}

.sidebar-toggle {
    width: 42px;
    min-width: 42px;
    height: 42px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    margin-right: 12px;
    background: #edf4ff;
    color: transparent;
    border-color: #c4d8f5;
    position: relative;
    overflow: hidden;
}

.sidebar-toggle .hamburger-box {
    position: relative;
    width: 18px;
    height: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.sidebar-toggle .hamburger-line,
.sidebar-toggle .hamburger-line::before,
.sidebar-toggle .hamburger-line::after {
    position: absolute;
    width: 18px;
    height: 2px;
    border-radius: 3px;
    background: #264979;
    transition: transform 0.2s ease, opacity 0.2s ease;
    content: "";
}

.sidebar-toggle .hamburger-line::before {
    transform: translateY(-6px);
}

.sidebar-toggle .hamburger-line::after {
    transform: translateY(6px);
}

body.sidebar-open .sidebar-toggle .hamburger-line {
    background: transparent;
}

body.sidebar-open .sidebar-toggle .hamburger-line::before {
    transform: translateY(0) rotate(45deg);
}

body.sidebar-open .sidebar-toggle .hamburger-line::after {
    transform: translateY(0) rotate(-45deg);
}

body.sidebar-collapsed .sidebar-toggle .hamburger-line {
    background: #264979;
}

body.sidebar-collapsed .sidebar-toggle .hamburger-line::before {
    transform: translateY(-6px);
}

body.sidebar-collapsed .sidebar-toggle .hamburger-line::after {
    transform: translateY(6px);
}

.topbar-left {
    display: flex;
    align-items: center;
}

.user-menu {
    position: relative;
}

.user-menu-toggle {
    width: auto;
    min-width: 220px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: #ffffff;
    border: 1px solid #cfdbef;
    color: #1f355d;
    padding: 6px 10px;
}

.user-avatar {
    width: 32px;
    height: 32px;
    border-radius: 999px;
    overflow: hidden;
    background: #d9e9ff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.user-avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.user-avatar-initials {
    font-size: 12px;
    font-weight: 700;
    color: #20467a;
}

.user-menu-name {
    flex: 1;
    text-align: left;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.user-menu-caret {
    font-size: 12px;
    color: #4d658f;
}

.user-menu-dropdown {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    width: 220px;
    background: #fff;
    border: 1px solid #d4e0f3;
    border-radius: 10px;
    box-shadow: 0 12px 28px rgba(11, 22, 43, 0.16);
    display: none;
    z-index: 200;
}

.user-menu.is-open .user-menu-dropdown {
    display: block;
}

.user-menu-dropdown ul {
    margin: 0;
    padding: 8px;
    list-style: none;
}

.user-menu-dropdown li a {
    display: block;
    text-decoration: none;
    color: #1f355d;
    padding: 8px 10px;
    border-radius: 8px;
    font-size: 13px;
}

.user-menu-dropdown li a:hover {
    background: #edf3ff;
}

.container {
    max-width: 1480px;
    margin: 18px auto;
    padding: 0 16px;
    display: grid;
    gap: 14px;
}

body.sidebar-collapsed .container {
    max-width: 1720px;
}

.page-actas-monitor .container,
.page-computo-monitor .container {
    width: 100%;
    max-width: 1720px;
    box-sizing: border-box;
}

.page-actas-monitor .container > .card,
.page-computo-monitor .container > .card,
.page-actas-monitor .table-wrap,
.page-computo-monitor .table-wrap,
.page-actas-monitor #actas-monitor-grid_wrapper,
.page-computo-monitor #computo-grid_wrapper {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.page-actas-monitor .container > .card,
.page-computo-monitor .container > .card {
    overflow: hidden;
}

.page-actas-monitor .table-wrap,
.page-computo-monitor .table-wrap {
    overflow-x: auto;
    overflow-y: visible;
    padding-bottom: 8px;
    scrollbar-width: thin;
    scrollbar-color: #8da6ca #edf3fc;
}

.page-actas-monitor .table-wrap::-webkit-scrollbar,
.page-computo-monitor .table-wrap::-webkit-scrollbar {
    height: 10px;
}

.page-actas-monitor .table-wrap::-webkit-scrollbar-track,
.page-computo-monitor .table-wrap::-webkit-scrollbar-track {
    border-radius: 999px;
    background: #edf3fc;
}

.page-actas-monitor .table-wrap::-webkit-scrollbar-thumb,
.page-computo-monitor .table-wrap::-webkit-scrollbar-thumb {
    border: 2px solid #edf3fc;
    border-radius: 999px;
    background: #8da6ca;
}

.page-actas-monitor #actas-monitor-grid,
.page-computo-monitor #computo-grid {
    width: 100% !important;
    max-width: 100%;
    font-size: 11px;
}

.page-actas-monitor #actas-monitor-grid.dataTable thead th,
.page-computo-monitor #computo-grid.dataTable thead th {
    padding: 7px 15px 7px 5px !important;
    font-size: 10px;
    line-height: 1.15;
    letter-spacing: 0.01em;
    white-space: normal;
    vertical-align: middle;
}

.page-actas-monitor #actas-monitor-grid.dataTable tbody td,
.page-computo-monitor #computo-grid.dataTable tbody td {
    padding: 6px 5px !important;
    line-height: 1.15;
    white-space: nowrap;
    vertical-align: middle;
}

.page-actas-monitor #actas-monitor-grid .datatable-desktop-only,
.page-computo-monitor #computo-grid .datatable-desktop-only {
    display: inline-block;
    max-width: 190px;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}

.page-actas-monitor #actas-monitor-grid .monitor-recinto-column,
.page-computo-monitor #computo-grid .monitor-recinto-column {
    width: 300px !important;
    min-width: 260px;
    max-width: 340px;
    white-space: normal !important;
}

.page-actas-monitor #actas-monitor-grid .monitor-recinto-column .datatable-desktop-only,
.page-computo-monitor #computo-grid .monitor-recinto-column .datatable-desktop-only {
    display: block;
    max-width: none;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
}

.page-actas-monitor #actas-monitor-grid .monitor-location-cell,
.page-computo-monitor #computo-grid .monitor-location-cell {
    min-width: 0;
}

.page-actas-monitor #actas-monitor-grid .monitor-territory-line,
.page-computo-monitor #computo-grid .monitor-territory-line {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 8px;
    margin-bottom: 3px;
    color: #52709c;
    font-size: 9px;
    line-height: 1.2;
    text-transform: uppercase;
    white-space: normal;
}

.page-actas-monitor #actas-monitor-grid .monitor-recinto-name,
.page-computo-monitor #computo-grid .monitor-recinto-name {
    display: block;
    color: #17365f;
    font-weight: 700;
    line-height: 1.28;
    text-overflow: clip;
    white-space: normal;
    overflow-wrap: anywhere;
}

.page-actas-monitor #actas-monitor-grid .actas-digitado-por-column {
    width: 138px !important;
    min-width: 120px;
    max-width: 150px;
    white-space: normal !important;
}

.page-actas-monitor #actas-monitor-grid .actas-digitado-por-column .actas-assignment-cell {
    min-width: 0;
    max-width: 138px;
}

.page-actas-monitor #actas-monitor-grid .actas-digitado-por-column .actas-assignment-cell strong {
    font-size: 10px;
    line-height: 1.2;
}

.page-actas-monitor #actas-monitor-grid .computo-junta-pill,
.page-computo-monitor #computo-grid .computo-junta-pill {
    min-width: 0;
    padding: 5px 8px;
    font-size: 10px;
}

.page-actas-monitor #actas-monitor-grid .monitor-junta-column,
.page-computo-monitor #computo-grid .monitor-junta-column {
    box-sizing: border-box;
    min-width: 116px;
    width: 116px;
}

.page-actas-monitor #actas-monitor-grid .monitor-digitacion-column,
.page-computo-monitor #computo-grid .monitor-digitacion-column {
    box-sizing: border-box;
    min-width: 82px;
}

.page-actas-monitor #actas-monitor-grid .monitor-acta-escaneada-column {
    box-sizing: border-box;
    width: 180px !important;
    min-width: 176px;
}

.page-actas-monitor #actas-monitor-grid .monitor-acta-original-column {
    box-sizing: border-box;
    width: 148px !important;
    min-width: 140px;
    white-space: normal !important;
}

.page-actas-monitor #actas-monitor-grid .acta-junta-status,
.page-computo-monitor #computo-grid .acta-junta-status {
    width: 100%;
    min-width: 0;
}

.page-actas-monitor #actas-monitor-grid .computo-junta-pill,
.page-computo-monitor #computo-grid .computo-junta-pill {
    box-sizing: border-box;
    max-width: 100%;
}

.page-actas-monitor #actas-monitor-grid .status-badge,
.page-computo-monitor #computo-grid .status-badge {
    min-width: 66px;
    padding: 4px 7px;
    font-size: 10px;
    letter-spacing: 0;
}

.page-actas-monitor #actas-monitor-grid .actas-table-action,
.page-computo-monitor #computo-grid .actas-table-action {
    min-width: 58px;
    padding: 6px 7px;
    border-radius: 8px;
    font-size: 10px;
}

.page-actas-monitor #actas-monitor-grid .actas-table-actions,
.page-computo-monitor #computo-grid .actas-table-actions {
    gap: 4px;
}

.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions {
    flex-wrap: nowrap;
    justify-content: center;
}

.page-actas-monitor #actas-monitor-grid .actas-table-icon-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    min-width: 38px;
    height: 34px;
    padding: 0;
    font-size: 14px;
}

.page-actas-monitor #actas-monitor-grid .actas-assignment-cell,
.page-computo-monitor #computo-grid .actas-assignment-cell {
    display: flex;
    min-width: 170px;
    max-width: 230px;
    flex-direction: column;
    gap: 3px;
    white-space: normal;
}

.page-actas-monitor #actas-monitor-grid .actas-assignment-cell strong,
.page-computo-monitor #computo-grid .actas-assignment-cell strong {
    color: #17365f;
    font-size: 11px;
    line-height: 1.25;
}

.page-actas-monitor #actas-monitor-grid .actas-assignment-cell small,
.page-computo-monitor #computo-grid .actas-assignment-cell small {
    color: #60789e;
    font-size: 9px;
    line-height: 1.2;
}

.page-actas-monitor .dt-export-toolbar,
.page-computo-monitor .dt-export-toolbar {
    grid-template-columns: minmax(130px, auto) minmax(0, 1fr) minmax(190px, auto);
    min-width: 0;
}

.page-actas-monitor .dt-export-toolbar > *,
.page-computo-monitor .dt-export-toolbar > * {
    min-width: 0;
}

.page-actas-monitor .dt-export-search,
.page-computo-monitor .dt-export-search {
    max-width: 100%;
}

.page-actas-monitor .dt-export-search input,
.page-computo-monitor .dt-export-search input {
    max-width: min(240px, 100%);
}

.page-actas-monitor .dt-export-toolbar .dataTables_length label,
.page-actas-monitor .dt-export-toolbar .dataTables_filter label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    white-space: nowrap;
}

.page-actas-monitor .dt-export-toolbar .dataTables_length select {
    width: 76px;
    min-width: 76px;
}

.page-actas-monitor .dt-export-toolbar .dataTables_filter input {
    width: min(240px, 32vw);
    min-width: 0;
    margin: 0;
}

.page-asignaciones #assignment-form,
.page-asignaciones .form-section,
.page-asignaciones .container > .card,
.page-asignaciones .table-wrap,
.page-asignaciones .dataTables_wrapper,
.page-asignaciones .assignment-juntas-panel,
.page-asignaciones .assignment-juntas-grid,
.page-asignaciones .assignment-juntas-column {
    min-width: 0;
}

.page-asignaciones .container > .card {
    max-width: 100%;
}

.page-asignaciones .table-wrap,
.page-asignaciones .dataTables_wrapper {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

.page-asignaciones .dataTables_scroll,
.page-asignaciones .dataTables_scrollHead,
.page-asignaciones .dataTables_scrollBody {
    width: 100% !important;
    overflow-x: hidden !important;
}

.dt-export-toolbar {
    display: grid;
    grid-template-columns: minmax(140px, auto) 1fr minmax(220px, auto);
    align-items: end;
    gap: 12px;
    margin: 0 0 14px;
}

.dt-export-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}

.monitor-export-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin: 12px 0;
}

.dt-export-search {
    justify-self: end;
}

.dt-export-toolbar .dataTables_length,
.dt-export-toolbar .dataTables_filter {
    margin: 0;
}

.dt-export-toolbar .dataTables_filter input,
.dt-export-toolbar .dataTables_length select {
    border: 1px solid #cfe0fb;
    border-radius: 10px;
    color: var(--ink);
    font-weight: 700;
    padding: 8px 10px;
}

button.dt-export-btn,
div.dt-button.dt-export-btn {
    border: 1px solid #bcd5ff !important;
    border-radius: 999px !important;
    background: #f7fbff !important;
    color: #0f4fbf !important;
    box-shadow: 0 8px 18px rgba(41, 109, 216, 0.12) !important;
    font-weight: 800 !important;
    padding: 8px 14px !important;
}

button.dt-export-btn:hover,
div.dt-button.dt-export-btn:hover {
    border-color: #2f7df6 !important;
    background: #eaf3ff !important;
    color: #0d43a0 !important;
}

button.dt-export-btn.is-excel,
div.dt-button.dt-export-btn.is-excel {
    color: #137333 !important;
    border-color: #b9e4c7 !important;
}

button.dt-export-btn.is-pdf,
div.dt-button.dt-export-btn.is-pdf {
    color: #b42318 !important;
    border-color: #ffd0cc !important;
}

.dt-export-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 12px;
}

@media (max-width: 760px) {
    .maintenance-hero,
    .maintenance-warning-grid {
        grid-template-columns: 1fr;
    }

    .maintenance-preserve-card {
        min-height: auto;
    }

    .dt-export-toolbar {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .dt-export-buttons,
    .dt-export-search {
        justify-content: flex-start;
        justify-self: stretch;
    }

    .dt-export-toolbar .dataTables_filter input {
        width: 100%;
        box-sizing: border-box;
    }

    .page-actas-monitor .dt-export-toolbar .dataTables_filter input {
        width: 100%;
    }

    .dt-export-footer {
        align-items: flex-start;
        flex-direction: column;
    }
}

.page-asignaciones .row-3 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: end;
}

.page-asignaciones .assignment-field-user,
.page-asignaciones .assignment-field-recinto,
.page-asignaciones .assignment-field-total {
    min-width: 0;
}

.page-asignaciones .row-3 > div {
    grid-column: span 4;
}

.page-asignaciones .row-3 > .assignment-field-user {
    grid-column: span 4;
}

.page-asignaciones .row-3 > .assignment-field-recinto {
    grid-column: span 5;
}

.page-asignaciones .row-3 > .assignment-field-total {
    grid-column: span 3;
}

.page-asignaciones .row-3 > .row-span-full {
    grid-column: 1 / -1;
}

.page-asignaciones .assignment-juntas-grid {
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    align-items: start;
}

.assignment-workload-card {
    overflow: hidden;
}

.assignment-workload-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}

.assignment-workload-heading h3 {
    margin: 4px 0 6px;
}

.assignment-workload-heading .form-intro {
    margin: 0;
}

.assignment-workload-eyebrow {
    color: #2563a9;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.assignment-workload-updated {
    flex: 0 0 auto;
    border: 1px solid #cfe0fb;
    border-radius: 999px;
    background: #f4f8ff;
    color: #55739d;
    font-size: 12px;
    font-weight: 700;
    padding: 7px 11px;
}

.assignment-workload-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 18px;
}

.assignment-workload-stat {
    display: grid;
    gap: 5px;
    min-width: 0;
    padding: 14px 16px;
    border: 1px solid #d5e3f7;
    border-radius: 14px;
    background: #f8fbff;
}

.assignment-workload-stat span {
    color: #5d7598;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

.assignment-workload-stat strong {
    color: #143966;
    font-size: clamp(23px, 2.3vw, 31px);
    line-height: 1;
}

.assignment-workload-stat small {
    overflow: hidden;
    color: #5b7395;
    font-size: 12px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.assignment-workload-stat.is-assigned {
    border-color: #b8ddc8;
    background: #f1fbf5;
}

.assignment-workload-stat.is-boards {
    border-color: #bcd5ff;
    background: #eef5ff;
}

.assignment-workload-stat.is-maximum {
    border-color: #f2d19a;
    background: #fff8eb;
}

.assignment-workload-table-wrap {
    padding-top: 2px;
}

.assignment-workload-total {
    display: inline-grid;
    min-width: 42px;
    place-items: center;
    padding: 5px 9px;
    border-radius: 999px;
    background: #e8f1ff;
    color: #1459b6;
    font-size: 15px;
}

.assignment-coverage-card {
    overflow: hidden;
}

.assignment-coverage-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

.assignment-coverage-section-head h2,
.assignment-coverage-section-head h3 {
    margin: 4px 0 6px;
}

.assignment-coverage-section-head p {
    margin: 0;
}

.assignment-coverage-filter {
    display: grid;
    flex: 0 0 min(290px, 100%);
    gap: 6px;
    color: #49688f;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.assignment-coverage-filter select {
    min-height: 42px;
    border-color: #bcd2f1;
    background: #fff;
    color: #17365f;
    font-weight: 700;
}

.assignment-coverage-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

.assignment-coverage-summary > span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 11px;
    border: 1px solid #cfe0f7;
    border-radius: 999px;
    background: #f5f9ff;
    color: #537099;
    font-size: 12px;
    font-weight: 700;
}

.assignment-coverage-summary > span strong {
    color: #17365f;
    font-size: 14px;
}

.assignment-coverage-summary > span.is-complete {
    border-color: #b9e0c8;
    background: #effaf3;
    color: #257546;
}

.assignment-coverage-summary > span.is-missing {
    border-color: #f0c4c4;
    background: #fff5f5;
    color: #a23636;
}

.assignment-coverage-table-wrap table.dataTable tbody td {
    vertical-align: middle;
}

.assignment-coverage-recinto {
    display: block;
    min-width: 230px;
    max-width: 330px;
    color: #17365f;
    font-weight: 700;
    line-height: 1.25;
    white-space: normal;
}

.assignment-coverage-address {
    display: block;
    min-width: 190px;
    max-width: 300px;
    line-height: 1.25;
    white-space: normal;
}

.coverage-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 92px;
    padding: 5px 9px;
    border: 1px solid #b9e0c8;
    border-radius: 999px;
    background: #effaf3;
    color: #257546;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.15;
    text-align: center;
    white-space: normal;
}

.coverage-status-badge.is-missing {
    border-color: #f0baba;
    background: #fff1f1;
    color: #a52e2e;
}

.coverage-status-badge.is-partial {
    border-color: #efd18e;
    background: #fff8e8;
    color: #8b5a00;
}

.card {
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    border: 1px solid #dce6f7;
    border-radius: 14px;
    box-shadow: var(--shadow);
    padding: 18px;
    margin-bottom: 0;
}

.app-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: none;
}

.app-modal.is-open {
    display: block;
}

.app-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(9, 18, 36, 0.56);
}

.app-modal-dialog {
    position: relative;
    width: min(1100px, calc(100vw - 24px));
    max-height: calc(100vh - 24px);
    margin: 12px auto;
    background: #fff;
    border-radius: 14px;
    border: 1px solid #d8e4f7;
    box-shadow: 0 24px 44px rgba(8, 17, 35, 0.28);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.app-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    position: sticky;
    top: 0;
    z-index: 5;
    border-bottom: 1px solid #e2ebfa;
    padding: 10px 14px;
    background: #f7faff;
}

.app-modal-header h3 {
    flex: 1;
    min-width: 0;
    margin: 0;
    font-size: 18px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-modal-close {
    flex: 0 0 auto;
    width: 36px;
    min-width: 36px;
    height: 36px;
    border-radius: 10px;
    padding: 0;
    background: #fff;
    color: #2c4f84;
    border: 1px solid #c8daf6;
}

.app-modal-body {
    padding: 12px 14px;
    overflow-y: auto;
}

body.modal-open {
    overflow: hidden;
}

.swal2-container {
    z-index: 20000 !important;
}

.swal2-popup {
    z-index: 20001 !important;
}

label {
    display: block;
    font-size: 13px;
    margin-bottom: 6px;
    color: #304468;
    font-weight: 700;
}

input,
select,
textarea,
button {
    width: 100%;
    border: 1px solid #cfdbef;
    border-radius: 8px;
    padding: 9px 10px;
    font-size: 14px;
    background: #fff;
    color: var(--text-main);
}

.select2-container {
    width: 100% !important;
}

select.select2-hidden-accessible {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.select2-container .select2-selection--single {
    height: 42px !important;
    border: 1px solid #cfdbef !important;
    border-radius: 8px !important;
    background: #fff !important;
    position: relative !important;
    text-align: left !important;
}

.select2-container .select2-selection--multiple {
    min-height: 42px !important;
    border: 1px solid #cfdbef !important;
    border-radius: 8px !important;
    background: #fff !important;
    padding: 4px 36px 4px 8px !important;
}

.select2-container .select2-selection--multiple .select2-selection__rendered {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    padding: 0 !important;
    margin: 0 !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
    margin: 0 !important;
    padding: 4px 8px !important;
    border: 1px solid #bfd8ff !important;
    background: #eaf3ff !important;
    color: #255ca9 !important;
    border-radius: 999px !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: #255ca9 !important;
    margin-right: 6px !important;
}

.select2-container--default.select2-container--focus .select2-selection--multiple {
    border-color: #8ab2f2 !important;
    box-shadow: 0 0 0 3px rgba(86, 138, 224, 0.18) !important;
}

.select2-container .select2-selection--single .select2-selection__rendered {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 34px !important;
    bottom: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    line-height: 1.2 !important;
    color: var(--text-main) !important;
    padding: 0 0 0 12px !important;
    text-align: left !important;
    margin: 0 !important;
}

.select2-container .select2-selection--single .select2-selection__arrow {
    height: 40px !important;
    right: 8px !important;
}

.select2-container--default.select2-container--disabled .select2-selection--single {
    background: #f5f8fd !important;
    opacity: 0.85;
}

.select2-container--default.select2-container--focus .select2-selection--single {
    border-color: #8ab2f2 !important;
    box-shadow: 0 0 0 3px rgba(86, 138, 224, 0.18) !important;
}

.select2-dropdown {
    border: 1px solid #cfdbef !important;
    border-radius: 8px !important;
    overflow: hidden;
}

.select2-search--dropdown .select2-search__field {
    border: 1px solid #d3def0 !important;
    border-radius: 8px !important;
}

.select2-results__option {
    font-size: 13px;
}

.select2-container .select2-selection--single.is-invalid,
.select2-container--default.select2-container .select2-selection--single.is-invalid {
    border-color: #de4f4f !important;
    background: #fff4f4 !important;
    box-shadow: 0 0 0 3px rgba(222, 79, 79, 0.16) !important;
}

input:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: #8ab2f2;
    box-shadow: 0 0 0 3px rgba(86, 138, 224, 0.18);
}

.is-invalid {
    border-color: #de4f4f !important;
    background: #fff4f4 !important;
    box-shadow: 0 0 0 3px rgba(222, 79, 79, 0.16) !important;
}

.row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.row-3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.row > div,
.row-3 > div {
    min-width: 0;
}

.actas-selector-grid {
    grid-template-columns: minmax(520px, 2.4fr) minmax(190px, 0.8fr) minmax(190px, 0.8fr);
    align-items: end;
}

.actas-progress-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.actas-progress-line {
    width: 100%;
    height: 8px;
    margin-top: 10px;
    border-radius: 999px;
    background: #dfe9fb;
    overflow: hidden;
}

.actas-progress-line span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #1f6fe5, #56a7ff);
    transition: width 0.25s ease;
}

.actas-filter-accordion {
    margin-top: 16px;
}

#actas-monitor-grid tbody tr:hover {
    background: #f4f8ff;
}

.actas-table-action {
    min-width: 82px;
    padding: 8px 10px;
    border-radius: 10px;
    font-size: 13px;
    white-space: nowrap;
}

.actas-table-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

button {
    cursor: pointer;
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
    font-weight: 600;
}

button.secondary {
    background: #fff;
    color: var(--accent);
}

button.secondary.actas-table-action.is-view {
    background: linear-gradient(180deg, #ecfdf5 0%, #d8f8e9 100%);
    border-color: #77d9ae;
    color: #047857;
}

button.secondary.actas-table-action.is-view:hover {
    background: linear-gradient(180deg, #d8f8e9 0%, #bff1dc 100%);
    border-color: #34c08c;
}

button.secondary.actas-table-action.is-upload {
    background: linear-gradient(180deg, #fff1f2 0%, #ffe4e6 100%);
    border-color: #f59aa4;
    color: #be123c;
}

button.secondary.actas-table-action.is-upload:hover {
    background: linear-gradient(180deg, #ffe4e6 0%, #fecdd3 100%);
    border-color: #f43f5e;
}

button.secondary.actas-table-action.is-replace {
    background: linear-gradient(180deg, #fff7ed 0%, #ffedd5 100%);
    border-color: #fdba74;
    color: #c2410c;
}

button.secondary.actas-table-action.is-replace:hover {
    background: linear-gradient(180deg, #ffedd5 0%, #fed7aa 100%);
    border-color: #fb923c;
}

button.secondary.actas-table-action.is-delete {
    background: linear-gradient(180deg, #fff1f2 0%, #ffe4e6 100%);
    border-color: #fda4af;
    color: #b42318;
}

button.secondary.actas-table-action.is-delete:hover {
    background: linear-gradient(180deg, #ffe4e6 0%, #fecdd3 100%);
    border-color: #f43f5e;
}

button.secondary.actas-table-action.is-validate {
    background: linear-gradient(180deg, #effcf5 0%, #dcfce7 100%);
    border-color: #86efac;
    color: #166534;
}

button.secondary.actas-table-action.is-validate:hover {
    background: linear-gradient(180deg, #dcfce7 0%, #bbf7d0 100%);
    border-color: #4ade80;
}

button.secondary.actas-table-action.is-reopen {
    background: linear-gradient(180deg, #fff7ed 0%, #ffedd5 100%);
    border-color: #fdba74;
    color: #c2410c;
}

button.secondary.actas-table-action.is-reopen:hover {
    background: linear-gradient(180deg, #ffedd5 0%, #fed7aa 100%);
    border-color: #fb923c;
}

button.secondary.actas-table-action.is-reset {
    background: linear-gradient(180deg, #fff1f2 0%, #ffe4e6 100%);
    border-color: #fda4af;
    color: #be123c;
}

button.secondary.actas-table-action.is-reset:hover {
    background: linear-gradient(180deg, #ffe4e6 0%, #fecdd3 100%);
    border-color: #fb7185;
}

.actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.maintenance-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 300px);
    align-items: center;
    gap: 16px;
}

.maintenance-hero h2 {
    margin: 4px 0 8px;
    font-size: clamp(24px, 3vw, 34px);
    color: #09295a;
}

.maintenance-preserve-card {
    min-height: 120px;
    border: 1px solid #b9e4c7;
    border-radius: 16px;
    background: linear-gradient(135deg, #ecfdf5 0%, #f7fffb 100%);
    color: #05603a;
    display: grid;
    align-content: center;
    gap: 6px;
    padding: 18px;
    box-shadow: 0 12px 28px rgba(5, 96, 58, 0.1);
}

.maintenance-preserve-card i {
    font-size: 28px;
}

.maintenance-danger-card {
    border-color: #fecaca;
    background: linear-gradient(180deg, #fff 0%, #fff8f8 100%);
}

.maintenance-warning-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 14px 0;
}

.maintenance-warning-grid article {
    border: 1px solid #d9e6fb;
    border-radius: 14px;
    background: #ffffff;
    padding: 12px;
    display: grid;
    gap: 6px;
}

.maintenance-warning-grid article:nth-child(-n + 2) {
    border-color: #fecaca;
    background: #fff7f7;
}

.maintenance-warning-grid strong {
    color: #102a56;
}

.maintenance-warning-grid span {
    color: #4b6289;
    line-height: 1.35;
}

.maintenance-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.maintenance-section-heading.compact {
    margin-bottom: 10px;
}

.maintenance-section-heading h3 {
    margin: 3px 0 0;
    color: #102a56;
}

.maintenance-owner-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 12px;
    border: 1px solid #b9e4c7;
    border-radius: 999px;
    background: #effcf4;
    color: #087443;
    font-size: 12px;
    font-weight: 800;
}

.maintenance-workbench {
    display: grid;
    gap: 18px;
}

.maintenance-profile-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.maintenance-profile-card {
    position: relative;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 20px;
    align-items: start;
    gap: 12px;
    min-height: 138px;
    padding: 16px;
    border: 1px solid #d6e3f7;
    border-radius: 15px;
    background: #fff;
    color: #102a56;
    text-align: left;
    box-shadow: 0 7px 18px rgba(20, 57, 102, 0.06);
    cursor: pointer;
}

.maintenance-profile-card:hover {
    border-color: #8eb9fa;
    transform: translateY(-1px);
}

.maintenance-profile-card.is-selected {
    border-color: #2b73df;
    background: linear-gradient(145deg, #eef5ff 0%, #fff 78%);
    box-shadow: 0 0 0 2px rgba(43, 115, 223, 0.12), 0 10px 24px rgba(20, 83, 176, 0.11);
}

.maintenance-profile-card.is-critical {
    border-color: #fecaca;
}

.maintenance-profile-card.is-critical.is-selected {
    border-color: #ef4444;
    background: linear-gradient(145deg, #fff1f2 0%, #fff 78%);
    box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.1);
}

.maintenance-profile-icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 12px;
    background: #eaf2ff;
    color: #1764d6;
    font-size: 18px;
}

.maintenance-profile-card.is-critical .maintenance-profile-icon {
    background: #fff0f0;
    color: #d92d20;
}

.maintenance-profile-copy {
    display: grid;
    gap: 7px;
}

.maintenance-profile-copy strong {
    font-size: 15px;
}

.maintenance-profile-copy small {
    color: #587096;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.42;
}

.maintenance-profile-check {
    color: #2b73df;
    opacity: 0;
}

.maintenance-profile-card.is-selected .maintenance-profile-check {
    opacity: 1;
}

.maintenance-scope-panel {
    padding: 16px;
    border: 1px solid #d7e5f9;
    border-radius: 15px;
    background: #f8fbff;
}

.maintenance-filter-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.maintenance-filter-grid label {
    display: grid;
    gap: 7px;
    color: #294d80;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.maintenance-filter-grid label[hidden] {
    display: none;
}

.maintenance-filter-grid select {
    min-width: 0;
    height: 44px;
    border: 1px solid #c9daf4;
    border-radius: 11px;
    background: #fff;
    color: #18345f;
    padding: 0 12px;
    font-size: 13px;
    font-weight: 650;
}

.maintenance-filter-grid small {
    color: #6b7f9e;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.35;
    text-transform: none;
}

.maintenance-scope-note {
    margin-top: 12px;
    padding: 10px 12px;
    border-left: 3px solid #3b82f6;
    border-radius: 0 9px 9px 0;
    background: #eef5ff;
    color: #405f8b;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.45;
}

.maintenance-preview-actions {
    display: flex;
    justify-content: flex-end;
}

.maintenance-preview {
    padding: 18px;
    border: 1px solid #f2c0c0;
    border-radius: 16px;
    background: linear-gradient(180deg, #fffafa 0%, #fff 100%);
}

.maintenance-preview[hidden] {
    display: none;
}

.maintenance-preview-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

.maintenance-preview-head h3 {
    margin: 3px 0 5px;
    color: #102a56;
}

.maintenance-preview-head p {
    max-width: 780px;
    margin: 0;
    color: #5a7091;
    font-size: 13px;
    line-height: 1.45;
}

.maintenance-preview-total {
    display: grid;
    flex: 0 0 auto;
    min-width: 155px;
    gap: 3px;
    padding: 12px 15px;
    border-radius: 12px;
    background: #fff0f0;
    color: #b42318;
    text-align: right;
}

.maintenance-preview-total span {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.maintenance-preview-total strong {
    font-size: 27px;
}

.maintenance-impact-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
}

.maintenance-impact-item {
    display: grid;
    gap: 5px;
    padding: 11px 12px;
    border: 1px solid #e0e8f4;
    border-radius: 11px;
    background: #fff;
}

.maintenance-impact-item span {
    color: #617797;
    font-size: 11px;
    font-weight: 700;
}

.maintenance-impact-item strong {
    color: #7890af;
    font-size: 20px;
}

.maintenance-impact-item.has-data {
    border-color: #f4c1c1;
    background: #fff7f7;
}

.maintenance-impact-item.has-data strong {
    color: #c52b22;
}

.maintenance-final-warning {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 14px 0;
    padding: 11px 13px;
    border: 1px solid #f6d69b;
    border-radius: 11px;
    background: #fff9ec;
    color: #855300;
    font-size: 12px;
    font-weight: 700;
}

.maintenance-confirm-copy {
    display: grid;
    gap: 6px;
    text-align: left;
}

.maintenance-confirm-copy p {
    margin: 0 0 8px;
}

.maintenance-confirm-copy label {
    color: #334f78;
    font-size: 13px;
    font-weight: 700;
}

.maintenance-confirm-copy .swal2-input {
    width: 100%;
    height: 44px;
    margin: 0 0 8px;
    box-sizing: border-box;
}

@media (max-width: 980px) {
    .maintenance-profile-grid,
    .maintenance-impact-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .maintenance-profile-grid,
    .maintenance-filter-grid,
    .maintenance-impact-grid {
        grid-template-columns: 1fr;
    }

    .maintenance-section-heading,
    .maintenance-preview-head {
        align-items: stretch;
        flex-direction: column;
    }

    .maintenance-preview-total {
        text-align: left;
    }
}

.maintenance-simulation-card {
    display: grid;
    gap: 16px;
}

.maintenance-simulation-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.maintenance-simulation-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 12px;
}

.maintenance-sim-stat {
    border: 1px solid #d8e1ef;
    border-radius: 14px;
    background: linear-gradient(180deg, #f8fbff 0%, #eef4fb 100%);
    padding: 14px;
    display: grid;
    gap: 6px;
}

.maintenance-sim-stat span,
.maintenance-sim-stat small {
    color: #5d7398;
}

.maintenance-sim-stat span {
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 12px;
    font-weight: 700;
}

.maintenance-sim-stat strong {
    color: #0f2f5a;
    font-size: 28px;
    line-height: 1.1;
}

.maintenance-sim-progressbar {
    width: 100%;
    height: 14px;
    border-radius: 999px;
    background: #e4eefc;
    overflow: hidden;
}

.maintenance-sim-progressbar > div {
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #2f6fdf 0%, #6aa7ff 100%);
    transition: width 0.35s ease;
}

.maintenance-sim-log {
    display: grid;
    gap: 10px;
}

.maintenance-sim-log.empty {
    border: 1px dashed #cbdcf6;
    border-radius: 14px;
    padding: 14px;
    color: #6a80a5;
    background: #f8fbff;
}

.maintenance-sim-log-item {
    border: 1px solid #d8e1ef;
    border-radius: 14px;
    padding: 12px 14px;
    display: grid;
    gap: 4px;
    background: #fff;
}

.maintenance-sim-log-item strong {
    color: #163f6d;
}

.maintenance-sim-log-item span,
.maintenance-sim-log-item em {
    color: #5d7398;
}

.maintenance-sim-log-item em {
    font-style: normal;
    font-weight: 700;
}

.maintenance-sim-log-item.status-created {
    border-color: #b8e0c6;
    background: #f2fff7;
}

.maintenance-sim-log-item.status-skipped {
    border-color: #d8e1ef;
    background: #f8fbff;
}

.maintenance-sim-log-item.status-error {
    border-color: #f6c7c7;
    background: #fff5f5;
}

button.danger-action {
    background: linear-gradient(180deg, #ef4444 0%, #d92d20 100%);
    border-color: #d92d20;
    color: #fff;
    box-shadow: 0 12px 22px rgba(217, 45, 32, 0.18);
}

button.danger-action:hover {
    background: linear-gradient(180deg, #f04438 0%, #b42318 100%);
    border-color: #b42318;
}

.card-toolbar {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.card-toolbar-group {
    display: flex;
    align-items: end;
    gap: 8px;
    flex-wrap: wrap;
}

.authority-thumb,
.votos-candidato-thumb,
.graficos-candidato-photo {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid #cfe0f8;
    background: linear-gradient(180deg, #f7fbff 0%, #edf5ff 100%);
    color: #1f5eb8;
    font-size: 12px;
    font-weight: 800;
    flex: 0 0 auto;
}

.votos-candidato-thumb {
    width: 44px;
    height: 44px;
    border-radius: 14px;
}

.authority-thumb img,
.votos-candidato-thumb img,
.graficos-candidato-photo img,
.graficos-visual-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.authority-thumb.is-empty,
.votos-candidato-thumb.is-empty,
.graficos-candidato-photo.is-empty {
    border-style: dashed;
}

.card-toolbar-group label {
    margin-bottom: 0;
}

.card-toolbar-group select {
    width: auto;
    min-width: 150px;
}

.card-toolbar-group-end {
    margin-left: auto;
}

.recintos-jrv-report-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.9fr);
    gap: 24px;
    align-items: center;
}

.recintos-jrv-report-copy h3 {
    margin-bottom: 8px;
}

.recintos-jrv-report-copy .form-intro {
    margin-bottom: 0;
}

.recintos-jrv-report-actions {
    display: grid;
    gap: 12px;
}

.recintos-jrv-report-option {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid #cfe0f7;
    border-radius: 14px;
    background: #f7fbff;
    cursor: pointer;
}

.recintos-jrv-report-option:hover {
    border-color: #86b7f5;
    background: #f1f7ff;
}

.recintos-jrv-report-option input {
    width: 19px;
    height: 19px;
    margin: 2px 0 0;
    accent-color: #1769d2;
    flex: 0 0 auto;
}

.recintos-jrv-report-option span {
    display: grid;
    gap: 4px;
    color: #18345f;
}

.recintos-jrv-report-option small {
    color: #5b7094;
    line-height: 1.4;
}

@media (max-width: 900px) {
    .recintos-jrv-report-card {
        grid-template-columns: 1fr;
    }
}

.table-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.icon-action-btn {
    position: relative;
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
    border-radius: 10px;
    border: 1px solid transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

.icon-action-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(21, 43, 87, 0.2);
}

.icon-action-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(40, 117, 230, 0.28);
}

.icon-action-btn:disabled {
    cursor: not-allowed;
    opacity: 0.46;
    transform: none;
    box-shadow: none;
}

.icon-action-btn.btn-edit {
    background: #eaf3ff;
    border-color: #bfd8ff;
    color: #255ca9;
}

.icon-action-btn.btn-view {
    background: #f0f7ff;
    border-color: #b9d7ff;
    color: #1766c2;
}

.icon-action-btn.btn-reset {
    background: #fff3e4;
    border-color: #ffd4a2;
    color: #a66412;
}

.icon-action-btn.btn-force {
    background: #efe9ff;
    border-color: #d5c3ff;
    color: #5b3da6;
}

.icon-action-btn.btn-status {
    background: #e8f8ee;
    border-color: #c1ebd0;
    color: #1f7c47;
}

.icon-action-btn[data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: calc(100% + 9px);
    left: 50%;
    transform: translateX(-50%);
    background: #10213f;
    color: #fff;
    padding: 6px 8px;
    border-radius: 7px;
    font-size: 11px;
    line-height: 1.2;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 300;
    box-shadow: 0 8px 20px rgba(10, 20, 41, 0.25);
    transition: opacity 0.14s ease;
}

.icon-action-btn[data-tooltip]:hover::after {
    opacity: 1;
    visibility: visible;
}

.icon-action-btn[data-tooltip]:focus-visible::after {
    opacity: 1;
    visibility: visible;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

button:disabled {
    cursor: not-allowed;
    opacity: 0.62;
}

table {
    width: 100%;
    border-collapse: collapse;
}

.table-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 10px;
}

.table-wrap table {
    min-width: 100%;
}

#recintos-grid {
    width: 100% !important;
}

#recintos-grid_wrapper {
    width: 100%;
}

#recintos-grid_wrapper .dataTables_scroll,
#recintos-grid_wrapper .dataTables_scrollHead,
#recintos-grid_wrapper .dataTables_scrollBody {
    width: 100% !important;
}

#recintos-grid th,
#recintos-grid td {
    vertical-align: top;
    word-break: normal;
}

#recintos-grid thead th {
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

#recintos-grid tbody td {
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
}

#recintos-grid_wrapper table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
#recintos-grid_wrapper table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control {
    padding-left: 28px;
}

#recintos-grid_wrapper table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control::before,
#recintos-grid_wrapper table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control::before {
    top: 50%;
    left: 8px;
    transform: translateY(-50%);
    line-height: 14px;
    border: 1px solid #9ebcf0;
    background-color: #eef5ff;
    color: #29579a;
    box-shadow: none;
}

#recintos-grid_wrapper ul.dtr-details {
    width: 100%;
}

#recintos-grid_wrapper ul.dtr-details li {
    display: flex;
    gap: 8px;
    align-items: flex-start;
}

#recintos-grid_wrapper ul.dtr-details .dtr-title {
    min-width: 130px;
    white-space: normal;
}

#recintos-grid_wrapper ul.dtr-details .dtr-data {
    flex: 1;
    white-space: normal;
}

#recintos-grid td:last-child,
#recintos-grid th:last-child {
    white-space: nowrap;
    width: 118px;
}

#recintos-grid .table-actions {
    justify-content: center;
}

.recinto-summary-modal .app-modal-dialog {
    width: min(1540px, calc(100vw - 20px));
    max-height: calc(100vh - 20px);
}

.recinto-summary-content {
    display: grid;
    gap: 14px;
}

.recinto-summary-header {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    padding: 16px;
    border: 1px solid #d6e5fb;
    border-radius: 18px;
    background: linear-gradient(135deg, #f7fbff 0%, #eef6ff 100%);
}

.recinto-summary-header h2 {
    margin: 2px 0 6px;
    color: #07285a;
    font-size: clamp(20px, 2.2vw, 28px);
}

.recinto-summary-header p {
    margin: 0;
    color: #46649a;
}

.section-eyebrow {
    display: inline-flex;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 12px;
    font-weight: 800;
    color: #4c6da4;
}

.recinto-summary-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.outline-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 150px;
    border: 1px solid #1f6fe5;
    color: #135fc9;
    background: #fff;
    border-radius: 12px;
    font-weight: 800;
    padding: 10px 14px;
}

.recinto-summary-grid,
.recinto-summary-meta-grid,
.recinto-dignidad-progress-grid {
    display: grid;
    gap: 12px;
}

.recinto-summary-grid {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.recinto-summary-card,
.recinto-summary-meta-grid article,
.recinto-dignidad-progress {
    border: 1px solid #d5e5fb;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 14px 28px rgba(14, 50, 102, 0.07);
}

.recinto-summary-card {
    padding: 13px;
    min-height: 96px;
}

.recinto-summary-card span,
.recinto-summary-meta-grid span {
    display: block;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #4d6fa9;
    font-size: 12px;
    font-weight: 800;
}

.recinto-summary-card strong {
    display: block;
    margin-top: 8px;
    color: #06295d;
    font-size: 24px;
}

.recinto-summary-card small,
.recinto-summary-meta-grid small {
    display: block;
    margin-top: 4px;
    color: #47679e;
}

.recinto-summary-card.is-blue { background: #edf5ff; border-color: #add0ff; }
.recinto-summary-card.is-amber { background: #fff8ec; border-color: #ffdba7; }
.recinto-summary-card.is-purple { background: #f4efff; border-color: #d6c5ff; }
.recinto-summary-card.is-green { background: #effaf3; border-color: #bcebc9; }
.recinto-summary-card.is-red { background: #fff0f0; border-color: #ffc0c0; }

.recinto-summary-meta-grid {
    grid-template-columns: repeat(3, minmax(180px, 1fr));
}

.recinto-summary-meta-grid article {
    padding: 14px;
}

.recinto-summary-meta-grid strong {
    display: block;
    margin-top: 6px;
    color: #082b60;
}

.recinto-summary-section {
    border: 1px solid #d8e6fa;
    border-radius: 18px;
    padding: 14px;
    background: #fbfdff;
}

.section-title-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-end;
    margin-bottom: 12px;
}

.section-title-row h3 {
    margin: 2px 0 0;
}

.recinto-summary-filter {
    display: grid;
    grid-template-columns: auto minmax(220px, 320px);
    align-items: center;
    gap: 5px 10px;
    min-width: min(100%, 430px);
}

.recinto-summary-filter label {
    color: #385987;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.recinto-summary-filter select {
    min-height: 40px;
    margin: 0;
    border: 1px solid #bcd2f2;
    border-radius: 11px;
    background: #fff;
    color: #0a315f;
    font-weight: 700;
}

.recinto-summary-filter small {
    grid-column: 1 / -1;
    color: #60789c;
    text-align: right;
}

.recinto-dignidad-progress-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.recinto-dignidad-progress {
    padding: 12px;
}

.recinto-dignidad-progress div:first-child {
    display: flex;
    justify-content: space-between;
    gap: 10px;
}

.recinto-dignidad-progress strong {
    color: #082b60;
}

.recinto-dignidad-progress span {
    color: #4f6b9e;
    font-size: 12px;
    white-space: nowrap;
}

.recinto-progress-bar {
    height: 8px;
    margin: 10px 0 6px;
    border-radius: 999px;
    background: #dce9fb;
    overflow: hidden;
}

.recinto-progress-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #1f6fe5, #56a7ff);
}

.recinto-dignidad-progress b {
    color: #125cc2;
    font-size: 18px;
}

.recinto-summary-table-wrap {
    max-height: min(54vh, 560px);
    overflow: auto;
    border: 1px solid #dbe8fa;
    border-radius: 14px;
    background: #fff;
}

.recinto-summary-table {
    width: 100%;
    min-width: 1540px;
    border-collapse: collapse;
}

.recinto-summary-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    text-align: left;
    padding: 11px 12px;
    background: #eef5ff;
    color: #21416f;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 12px;
}

.recinto-summary-table td {
    vertical-align: top;
    padding: 10px 12px;
    border-top: 1px solid #e3edf9;
    color: #17335f;
}

.recinto-summary-table td small,
.recinto-summary-table td span {
    display: block;
}

.recinto-summary-junta {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 999px;
    margin-bottom: 5px;
}

.recinto-summary-junta.is-female {
    color: #b81772;
    background: #ffe4f2;
    border: 1px solid #ffadd4;
}

.recinto-summary-junta.is-male {
    color: #145fc3;
    background: #e3f0ff;
    border: 1px solid #9fc7ff;
}

.recinto-summary-user {
    display: grid;
    gap: 2px;
}

.recinto-summary-votes {
    display: grid;
    gap: 4px;
    min-width: 110px;
}

.recinto-summary-votes span {
    display: flex !important;
    justify-content: space-between;
    gap: 8px;
}

.summary-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-width: 62px;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    border: 1px solid #d7e4f6;
    background: #f5f8fd;
    color: #415c86;
}

.summary-badge.is-green { background: #e8f8ee; border-color: #bce9c9; color: #08733f; }
.summary-badge.is-red { background: #fff0f0; border-color: #ffb8b8; color: #b42323; }
.summary-badge.is-blue { background: #eaf3ff; border-color: #add0ff; color: #125cc2; }
.summary-badge.is-pink { background: #ffe7f4; border-color: #ffb5d9; color: #ab1669; }
.summary-badge.is-purple { background: #f2edff; border-color: #d6c5ff; color: #633cb4; }
.summary-badge.is-neutral { background: #f5f8fd; border-color: #d7e4f6; color: #415c86; }

.text-center {
    text-align: center;
}

@media (max-width: 900px) {
    .recinto-summary-header,
    .section-title-row {
        flex-direction: column;
        align-items: stretch;
    }

    .recinto-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .recinto-summary-meta-grid {
        grid-template-columns: 1fr;
    }

    .recinto-summary-modal .app-modal-body {
        padding: 10px;
    }

    .recinto-summary-filter {
        grid-template-columns: 1fr;
        min-width: 0;
    }

    .recinto-summary-filter small {
        grid-column: auto;
        text-align: left;
    }
}

@media (max-width: 560px) {
    .recinto-summary-grid {
        grid-template-columns: 1fr;
    }

    .recinto-summary-card {
        min-height: auto;
    }

    .recinto-summary-header h2 {
        font-size: 20px;
    }
}

.status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 92px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.status-badge.is-active {
    background: #e8f8ee;
    color: #1f7c47;
    border: 1px solid #c1ebd0;
}

.status-badge.is-inactive {
    background: #fff1f1;
    color: #a33434;
    border: 1px solid #efc2c2;
}

.status-badge.is-validated {
    background: #ecfdf5;
    color: #0f7a45;
    border: 1px solid #b7e8cd;
}

th,
td {
    text-align: left;
    border-bottom: 1px solid #ecf1f8;
    padding: 9px 6px;
    font-size: 13px;
}

.login-wrap {
    min-height: 100vh;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 18% 16%, rgba(140, 202, 255, 0.22) 0%, rgba(140, 202, 255, 0) 40%),
        radial-gradient(circle at 86% 82%, rgba(67, 136, 245, 0.26) 0%, rgba(67, 136, 245, 0) 44%),
        linear-gradient(132deg, #0d2245 0%, #163466 48%, #1a4c90 100%);
    padding: 16px;
}

.login-card {
    width: min(420px, 92vw);
    background: #fff;
    border-radius: 14px;
    padding: 24px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
}

.login-card-enhanced {
    border: 1px solid rgba(196, 217, 248, 0.8);
    box-shadow: 0 20px 40px rgba(6, 17, 36, 0.34);
    border-radius: 18px;
}

.login-header {
    text-align: center;
    margin-bottom: 14px;
}

.login-brand-mark {
    width: 56px;
    height: 56px;
    margin: 0 auto 10px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: linear-gradient(150deg, #0f5cc9, #2d89ff);
    color: #fff;
    font-size: 22px;
    box-shadow: 0 12px 24px rgba(36, 96, 182, 0.35);
}

.login-system-logo {
    display: block;
    max-width: 160px;
    max-height: 78px;
    object-fit: contain;
    margin: 0 auto 12px;
}

.js-system-logo.is-brand-loading {
    visibility: hidden;
}

.js-system-logo.is-brand-ready {
    visibility: visible;
}

.login-system-logo-main {
    max-width: 220px;
    max-height: 180px;
    margin-bottom: 14px;
}

.login-header h2 {
    margin: 0;
    color: #1f3256;
}

.login-header p {
    margin: 8px 0 0;
    color: #5f7395;
    font-size: 13px;
}

.login-form-grid {
    display: grid;
    gap: 8px;
}

.input-with-icon {
    position: relative;
}

.input-with-icon .input-icon {
    position: absolute;
    top: 50%;
    left: 10px;
    transform: translateY(-50%);
    color: #5f7cad;
    font-size: 14px;
    pointer-events: none;
}

.input-with-icon input {
    padding-left: 34px;
}

.login-submit-btn {
    margin-top: 12px;
    height: 44px;
    border-radius: 10px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    font-size: 15px;
}

.login-msg {
    margin-top: 12px;
    min-height: 20px;
    text-align: center;
}

.dashboard-brand-head {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}

.dashboard-brand-head-centered {
    justify-content: center;
    text-align: center;
    flex-direction: column;
    padding: 18px 0 8px;
}

.dashboard-system-logo {
    max-width: 180px;
    max-height: 92px;
    object-fit: contain;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #ffffff;
}

.dashboard-system-logo-main {
    max-width: min(420px, 92%);
    max-height: 360px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.system-config-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.system-logo-preview {
    width: min(260px, 100%);
    min-height: 120px;
    border: 1px dashed #b9cff0;
    border-radius: 20px;
    background: #f8fbff;
    display: grid;
    place-items: center;
    padding: 18px;
    color: #5a6f92;
    font-weight: 700;
    text-align: center;
}

.system-logo-preview img {
    max-width: 100%;
    max-height: 110px;
    object-fit: contain;
}

.muted {
    color: var(--text-muted);
    font-size: 13px;
}

.module-option {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #d4e0f2;
    border-radius: 10px;
    background: #f8fbff;
    padding: 8px 10px;
}

.module-option span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.module-option.inherited {
    background: #edf4ff;
    border-color: #bfd4fb;
}

.module-option-badge {
    margin-left: auto;
    font-size: 11px;
    font-weight: 700;
    border-radius: 999px;
    padding: 2px 8px;
    background: #d9e8ff;
    color: #254c86;
}

.module-option-badge.extra {
    background: #edf1f7;
    color: #4f5f79;
}

.module-groups-container {
    display: grid;
    gap: 12px;
}

.module-group-card {
    border: 1px solid #d4e0f2;
    border-radius: 12px;
    padding: 10px;
    background: #fff;
}

.module-group-title {
    margin: 0 0 8px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #3b5480;
}

.module-group-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.profile-perm-list {
    display: grid;
    gap: 8px;
}

.profile-perm-item {
    border: 1px solid #d4e0f2;
    border-radius: 10px;
    background: #f8fbff;
    padding: 10px;
}

.profile-perm-item.is-inactive {
    opacity: 0.8;
    background: #f3f5f9;
}

.profile-perm-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.profile-perm-toggle {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.profile-perm-name {
    font-weight: 700;
    color: #284571;
}

.profile-perm-code {
    color: #607495;
    font-size: 11px;
}

.profile-perm-actions {
    margin-top: 8px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.profile-perm-action {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    border-radius: 8px;
    border: 1px solid #d6e2f5;
    background: #fff;
    font-size: 12px;
    font-weight: 600;
    color: #37527d;
}

.sidebar-backdrop {
    display: none;
}

.form-intro {
    margin-top: 0;
    margin-bottom: 10px;
    font-size: 13px;
    color: #4f6285;
}

.required-field::after {
    content: " *";
    color: #d23636;
    font-weight: 700;
}

.required-mark {
    color: #d23636;
    font-weight: 700;
}

.form-section {
    margin-bottom: 14px;
    border: 1px solid #dce8fb;
    border-radius: 12px;
    padding: 12px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.form-section-title {
    margin: 0 0 10px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #3f5680;
}

.field-help {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    color: #6c7f9e;
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: anywhere;
}

.js-uppercase {
    text-transform: uppercase;
}

.row-span-full {
    grid-column: 1 / -1;
}

.assignment-juntas-panel {
    border: 1px solid #cfdbef;
    border-radius: 14px;
    background: linear-gradient(180deg, #fbfdff 0%, #f4f8ff 100%);
    padding: 12px;
    overflow: hidden;
}

.assignment-juntas-panel.is-invalid {
    border-color: #de4f4f !important;
    background: #fff8f8 !important;
    box-shadow: 0 0 0 3px rgba(222, 79, 79, 0.12) !important;
}

.assignment-juntas-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.assignment-juntas-column {
    min-width: 0;
    border: 1px solid #dbe6f7;
    border-radius: 14px;
    background: #ffffff;
    overflow: hidden;
}

.assignment-juntas-column.is-femenina {
    border-color: #efb5d2;
    background: linear-gradient(180deg, #fff8fb 0%, #fff2f8 100%);
}

.assignment-juntas-column.is-masculina {
    border-color: #b7d1f8;
    background: linear-gradient(180deg, #f8fbff 0%, #eff6ff 100%);
}

.assignment-juntas-column-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px 8px;
}

.assignment-juntas-column-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #1b365f;
}

.assignment-juntas-column.is-femenina .assignment-juntas-column-title {
    color: #b23372;
}

.assignment-juntas-column.is-masculina .assignment-juntas-column-title {
    color: #255fbc;
}

.assignment-juntas-column-total {
    min-width: 38px;
    height: 32px;
    padding: 0 10px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 800;
    background: #eef4ff;
    color: #1f5aa9;
}

.assignment-juntas-column.is-femenina .assignment-juntas-column-total {
    background: #ffe2ef;
    color: #b23372;
}

.assignment-juntas-column.is-masculina .assignment-juntas-column-total {
    background: #deecff;
    color: #255fbc;
}

.assignment-juntas-column-actions {
    display: flex;
    gap: 8px;
    padding: 0 14px 10px;
    flex-wrap: wrap;
}

.assignment-link-btn {
    border: 0;
    background: transparent;
    color: #2b68c6;
    font-size: 12px;
    font-weight: 700;
    padding: 0;
    min-width: auto;
}

.assignment-link-btn:hover {
    color: #184d9d;
    text-decoration: underline;
}

.assignment-juntas-list {
    display: grid;
    gap: 8px;
    max-height: 320px;
    overflow-y: auto;
    padding: 0 14px 14px;
}

.assignment-junta-chip {
    display: block;
    cursor: pointer;
    position: relative;
}

.assignment-junta-chip input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    pointer-events: none;
    margin: 0;
}

.assignment-junta-chip-box {
    display: block;
    border: 1px solid #d8e4f7;
    border-radius: 12px;
    background: #ffffff;
    padding: 10px 12px;
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease, background 0.16s ease;
}

.assignment-junta-chip.is-occupied .assignment-junta-chip-box {
    border-width: 2px;
}

.assignment-junta-chip.is-femenina .assignment-junta-chip-box {
    border-color: #efb5d2;
    background: #fff7fb;
}

.assignment-junta-chip.is-masculina .assignment-junta-chip-box {
    border-color: #b7d1f8;
    background: #f7fbff;
}

.assignment-junta-chip.is-occupied.is-femenina .assignment-junta-chip-box {
    border-color: #d9659d;
    background: linear-gradient(180deg, #fff6fb 0%, #ffeef7 100%);
}

.assignment-junta-chip.is-occupied.is-masculina .assignment-junta-chip-box {
    border-color: #4b88e6;
    background: linear-gradient(180deg, #f6fbff 0%, #eaf3ff 100%);
}

.assignment-junta-chip:hover .assignment-junta-chip-box {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(18, 38, 76, 0.08);
}

.assignment-junta-chip input:checked + .assignment-junta-chip-box {
    border-color: #2d72da;
    box-shadow: 0 0 0 3px rgba(45, 114, 218, 0.16);
    background: linear-gradient(180deg, #f3f8ff 0%, #eaf2ff 100%);
}

.assignment-junta-chip.is-femenina input:checked + .assignment-junta-chip-box {
    border-color: #c9478b;
    box-shadow: 0 0 0 3px rgba(201, 71, 139, 0.16);
    background: linear-gradient(180deg, #ffe7f2 0%, #ffd6e9 100%);
}

.assignment-junta-chip.is-masculina input:checked + .assignment-junta-chip-box {
    border-color: #2d72da;
    box-shadow: 0 0 0 3px rgba(45, 114, 218, 0.16);
    background: linear-gradient(180deg, #ebf4ff 0%, #dbeaff 100%);
}

.assignment-junta-chip-title {
    display: block;
    font-size: 13px;
    font-weight: 800;
    color: #16345b;
}

.assignment-junta-chip-meta {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    color: #6780a3;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.assignment-junta-owner {
    display: block;
    margin-top: 6px;
    font-size: 11px;
    font-weight: 700;
    color: #8a4a0d;
    line-height: 1.35;
}

.assignment-junta-chip.is-own-assignment .assignment-junta-owner {
    color: #2458a6;
}

.assignment-junta-badge {
    display: inline-flex;
    align-items: center;
    margin-top: 6px;
    padding: 4px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.assignment-junta-badge.is-own {
    background: #eef4ff;
    color: #2b63ba;
    border: 1px solid #c8dcfb;
}

.assignment-junta-badge.is-shared {
    background: #fff3e6;
    color: #b36512;
    border: 1px solid #f2d1a7;
}

.assignment-juntas-empty {
    border: 1px dashed #d5e2f5;
    border-radius: 12px;
    background: #f8fbff;
    color: #647c9e;
    padding: 14px;
    text-align: center;
    font-size: 13px;
}

.is-hidden {
    display: none !important;
}

.form-status {
    margin-top: 6px;
    border-radius: 10px;
    padding: 8px 10px;
    font-size: 12px;
    border: 1px solid #d5e3f8;
    background: #f4f8ff;
    color: #365784;
}

.form-status.error {
    border-color: #efc3c3;
    background: #fff5f5;
    color: #9e2f2f;
}

.form-status.ok {
    border-color: #bfe4cb;
    background: #edf9f1;
    color: #1b6e3a;
}

.form-status.warning {
    border-color: #e5c36b;
    background: #fff8e6;
    color: #6b4a00;
}

#users-grid_wrapper {
    margin-top: 8px;
}

#users-grid,
#modules-grid,
#profiles-grid,
#patients-grid,
#authorities-parties-grid,
#authorities-dignities-grid,
#authorities-candidates-grid {
    width: 100% !important;
    min-width: 0 !important;
}

#users-grid thead th:first-child,
#modules-grid thead th:first-child,
#profiles-grid thead th:first-child,
#patients-grid thead th:first-child,
#authorities-parties-grid thead th:first-child,
#authorities-dignities-grid thead th:first-child,
#authorities-candidates-grid thead th:first-child {
    width: 32px;
}

#users-grid td.dt-control,
#modules-grid td.dt-control,
#profiles-grid td.dt-control,
#patients-grid td.dt-control,
#authorities-parties-grid td.dt-control,
#authorities-dignities-grid td.dt-control,
#authorities-candidates-grid td.dt-control {
    text-align: center;
    vertical-align: middle;
    cursor: pointer;
}

#modules-grid_wrapper {
    margin-top: 8px;
}

#profiles-grid_wrapper {
    margin-top: 8px;
}

#patients-grid_wrapper {
    margin-top: 8px;
}

#authorities-parties-grid_wrapper,
#authorities-dignities-grid_wrapper,
#authorities-candidates-grid_wrapper {
    margin-top: 12px;
}

#users-grid_wrapper .dataTables_filter label,
#users-grid_wrapper .dataTables_length label,
#modules-grid_wrapper .dataTables_filter label,
#modules-grid_wrapper .dataTables_length label,
#profiles-grid_wrapper .dataTables_filter label,
#profiles-grid_wrapper .dataTables_length label,
#patients-grid_wrapper .dataTables_filter label,
#patients-grid_wrapper .dataTables_length label,
#authorities-parties-grid_wrapper .dataTables_filter label,
#authorities-parties-grid_wrapper .dataTables_length label,
#authorities-dignities-grid_wrapper .dataTables_filter label,
#authorities-dignities-grid_wrapper .dataTables_length label,
#authorities-candidates-grid_wrapper .dataTables_filter label,
#authorities-candidates-grid_wrapper .dataTables_length label {
    font-size: 13px;
    color: #3a5075;
}

#users-grid_wrapper .dataTables_info,
#users-grid_wrapper .dataTables_paginate,
#modules-grid_wrapper .dataTables_info,
#modules-grid_wrapper .dataTables_paginate,
#profiles-grid_wrapper .dataTables_info,
#profiles-grid_wrapper .dataTables_paginate,
#patients-grid_wrapper .dataTables_info,
#patients-grid_wrapper .dataTables_paginate,
#authorities-parties-grid_wrapper .dataTables_info,
#authorities-parties-grid_wrapper .dataTables_paginate,
#authorities-dignities-grid_wrapper .dataTables_info,
#authorities-dignities-grid_wrapper .dataTables_paginate,
#authorities-candidates-grid_wrapper .dataTables_info,
#authorities-candidates-grid_wrapper .dataTables_paginate {
    font-size: 12px;
    color: #4a6188 !important;
}

#users-grid.dataTable thead th,
#modules-grid.dataTable thead th,
#profiles-grid.dataTable thead th,
#patients-grid.dataTable thead th,
#authorities-parties-grid.dataTable thead th,
#authorities-dignities-grid.dataTable thead th,
#authorities-candidates-grid.dataTable thead th {
    background: #eef4ff;
    color: #294674;
}

#users-grid_wrapper .dataTables_filter input,
#users-grid_wrapper .dataTables_length select,
#modules-grid_wrapper .dataTables_filter input,
#modules-grid_wrapper .dataTables_length select,
#profiles-grid_wrapper .dataTables_filter input,
#profiles-grid_wrapper .dataTables_length select,
#patients-grid_wrapper .dataTables_filter input,
#patients-grid_wrapper .dataTables_length select,
#authorities-parties-grid_wrapper .dataTables_filter input,
#authorities-parties-grid_wrapper .dataTables_length select,
#authorities-dignities-grid_wrapper .dataTables_filter input,
#authorities-dignities-grid_wrapper .dataTables_length select,
#authorities-candidates-grid_wrapper .dataTables_filter input,
#authorities-candidates-grid_wrapper .dataTables_length select {
    width: auto;
    min-width: 88px;
}

#users-grid_wrapper ul.dtr-details,
#modules-grid_wrapper ul.dtr-details,
#profiles-grid_wrapper ul.dtr-details,
#patients-grid_wrapper ul.dtr-details,
#authorities-parties-grid_wrapper ul.dtr-details,
#authorities-dignities-grid_wrapper ul.dtr-details,
#authorities-candidates-grid_wrapper ul.dtr-details {
    width: 100%;
    margin: 0;
    padding: 0;
}

#users-grid_wrapper ul.dtr-details li,
#modules-grid_wrapper ul.dtr-details li,
#profiles-grid_wrapper ul.dtr-details li,
#patients-grid_wrapper ul.dtr-details li,
#authorities-parties-grid_wrapper ul.dtr-details li,
#authorities-dignities-grid_wrapper ul.dtr-details li,
#authorities-candidates-grid_wrapper ul.dtr-details li {
    border-bottom: 1px dashed #d9e4f5;
    padding: 7px 0;
}

#users-grid_wrapper ul.dtr-details li:last-child,
#modules-grid_wrapper ul.dtr-details li:last-child,
#profiles-grid_wrapper ul.dtr-details li:last-child,
#patients-grid_wrapper ul.dtr-details li:last-child,
#authorities-parties-grid_wrapper ul.dtr-details li:last-child,
#authorities-dignities-grid_wrapper ul.dtr-details li:last-child,
#authorities-candidates-grid_wrapper ul.dtr-details li:last-child {
    border-bottom: 0;
}

#users-grid_wrapper ul.dtr-details .dtr-title,
#modules-grid_wrapper ul.dtr-details .dtr-title,
#profiles-grid_wrapper ul.dtr-details .dtr-title,
#patients-grid_wrapper ul.dtr-details .dtr-title,
#authorities-parties-grid_wrapper ul.dtr-details .dtr-title,
#authorities-dignities-grid_wrapper ul.dtr-details .dtr-title,
#authorities-candidates-grid_wrapper ul.dtr-details .dtr-title {
    color: #2f4f7f;
    font-weight: 700;
    min-width: 108px;
}

#users-grid_wrapper ul.dtr-details .dtr-data,
#modules-grid_wrapper ul.dtr-details .dtr-data,
#profiles-grid_wrapper ul.dtr-details .dtr-data,
#patients-grid_wrapper ul.dtr-details .dtr-data,
#recintos-grid_wrapper ul.dtr-details .dtr-data {
    color: #203456;
    word-break: break-word;
}

#authorities-parties-grid_wrapper ul.dtr-details .dtr-data,
#authorities-dignities-grid_wrapper ul.dtr-details .dtr-data,
#authorities-candidates-grid_wrapper ul.dtr-details .dtr-data {
    color: #203456;
    word-break: break-word;
}

#users-grid_wrapper ul.dtr-details .dtr-data .table-actions,
#modules-grid_wrapper ul.dtr-details .dtr-data .table-actions,
#profiles-grid_wrapper ul.dtr-details .dtr-data .table-actions,
#patients-grid_wrapper ul.dtr-details .dtr-data .table-actions,
#recintos-grid_wrapper ul.dtr-details .dtr-data .table-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 4px;
}

#authorities-parties-grid_wrapper ul.dtr-details .dtr-data .table-actions,
#authorities-dignities-grid_wrapper ul.dtr-details .dtr-data .table-actions,
#authorities-candidates-grid_wrapper ul.dtr-details .dtr-data .table-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 4px;
}

#users-grid_wrapper ul.dtr-details .dtr-data .icon-action-btn,
#modules-grid_wrapper ul.dtr-details .dtr-data .icon-action-btn,
#profiles-grid_wrapper ul.dtr-details .dtr-data .icon-action-btn,
#patients-grid_wrapper ul.dtr-details .dtr-data .icon-action-btn,
#recintos-grid_wrapper ul.dtr-details .dtr-data .icon-action-btn {
    width: 38px;
    min-width: 38px;
    height: 38px;
}

#authorities-parties-grid_wrapper ul.dtr-details .dtr-data .icon-action-btn,
#authorities-dignities-grid_wrapper ul.dtr-details .dtr-data .icon-action-btn,
#authorities-candidates-grid_wrapper ul.dtr-details .dtr-data .icon-action-btn {
    width: 38px;
    min-width: 38px;
    height: 38px;
}

.authorities-table-wrap .status-badge {
    min-width: 84px;
}

#btn-view-candidate-members {
    width: auto;
    white-space: nowrap;
}

#btn-view-candidate-members[hidden] {
    display: none;
}

.candidate-members-overview-content {
    display: grid;
    gap: 14px;
}

.candidate-members-overview-parish {
    display: grid;
    gap: 10px;
    padding: 12px;
    border: 1px solid #bcd5fa;
    border-radius: 16px;
    background: #f5f9ff;
}

.candidate-members-overview-parish-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #17365f;
}

.candidate-members-overview-parish-head small,
.candidate-members-overview-parish-head span {
    display: block;
    color: #57749d;
}

.candidate-members-overview-parish-head h4 {
    margin: 2px 0;
}

.candidate-members-overview-parish-head strong {
    white-space: nowrap;
}

.candidate-members-overview-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}

.candidate-members-overview-actions button {
    width: auto;
    min-width: 82px;
    padding: 7px 9px;
    white-space: nowrap;
}

.candidate-members-overview-actions button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

@media (max-width: 680px) {
    .candidate-members-overview-modal .app-modal-header {
        flex-wrap: wrap;
    }

    .candidate-members-overview-modal .app-modal-header h3 {
        flex-basis: calc(100% - 48px);
    }

    .candidate-members-overview-actions {
        order: 3;
        width: 100%;
    }
}

.candidate-members-overview-card {
    border: 1px solid #d4e2f7;
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
}

.candidate-members-overview-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 14px;
    background: #f4f8ff;
}

.candidate-members-overview-card-head h4 {
    margin: 3px 0 0;
    color: #17365f;
}

.candidate-members-overview-card-head small {
    color: #57749d;
}

.candidate-members-overview-list {
    flex: 0 0 auto;
    padding: 5px 9px;
    border: 1px solid #bed6fa;
    border-radius: 999px;
    color: #1558b1;
    background: #eaf3ff;
    font-weight: 700;
}

.candidate-members-overview-card .table-wrap {
    margin: 0;
    overflow-x: auto;
}

.candidate-members-overview-card table {
    width: 100%;
}

.candidate-members-overview-person {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 180px;
}

.candidate-members-overview-person small {
    display: block;
    color: #60789e;
}

.votos-hero-card {
    padding: 0;
    overflow: hidden;
}

.votos-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.9fr);
    gap: 0;
}

.votos-hero-main {
    padding: 20px;
    background:
        radial-gradient(circle at top left, rgba(48, 121, 230, 0.14), transparent 34%),
        linear-gradient(180deg, #ffffff 0%, #f9fbff 100%);
}

.votos-hero-header {
    display: block;
}

.votos-hero-copy {
    display: flex;
    flex-direction: column;
    max-width: 760px;
}

.votos-hero-side {
    padding: 20px;
    background: linear-gradient(180deg, #eef5ff 0%, #e5efff 100%);
    border-left: 1px solid #d7e4fa;
}

.votos-section-eyebrow {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #4a6692;
}

.votos-hero-title {
    margin: 6px 0 10px;
    font-size: 28px;
    color: #173257;
}

.votos-select-card {
    border: 1px solid #d8e4f8;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.88);
    padding: 10px 12px;
    box-shadow: 0 10px 24px rgba(22, 46, 88, 0.07);
    margin-top: 12px;
    width: min(100%, 700px);
}

.votos-lookup-card {
    display: grid;
    gap: 10px;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.votos-lookup-card.is-zone-mode,
.votos-lookup-card.is-recinto-mode {
    border-color: #78a7e4;
    box-shadow: inset 0 4px 0 #1d63b7, 0 12px 28px rgba(22, 67, 125, 0.11);
}

.votos-lookup-topbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    align-items: center;
    gap: 12px;
    padding-bottom: 9px;
    border-bottom: 1px solid #dce8f8;
}

.votos-lookup-topbar > div {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.votos-lookup-topbar strong {
    color: #17365f;
    font-size: 13px;
}

.votos-lookup-topbar small {
    color: #61799b;
    font-size: 11px;
    line-height: 1.3;
}

button.secondary.votos-reset-filters {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: auto;
    min-width: 132px;
    max-width: 170px;
    min-height: 38px;
    padding: 8px 13px;
    border-color: #a9c6f2;
    background: #f4f8ff;
    color: #1d61b5;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

button.secondary.votos-reset-filters:hover {
    border-color: #2d73cd;
    background: #eaf3ff;
}

.votos-lookup-mode {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    padding: 4px;
    border-radius: 11px;
    background: #edf4ff;
}

.votos-lookup-mode button {
    min-height: 38px;
    border: 1px solid transparent;
    border-radius: 9px;
    background: transparent;
    color: #45648f;
    font-size: 12px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    cursor: pointer;
}

.votos-lookup-mode button.is-active {
    border-color: #0d4f9e;
    background: linear-gradient(180deg, #256fc8 0%, #1555a7 100%);
    color: #ffffff;
    box-shadow: 0 7px 16px rgba(15, 76, 153, 0.28);
}

.votos-lookup-panel {
    min-width: 0;
}

.votos-acta-lookup-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    align-items: stretch;
}

.votos-acta-lookup-grid > div {
    min-width: 0;
}

.votos-acta-lookup-grid label {
    display: block;
    margin-bottom: 6px;
    font-size: 12px;
    font-weight: 700;
    color: #36577f;
}

.votos-acta-lookup-grid .select2-container .select2-selection--single {
    height: 48px !important;
    min-height: 48px !important;
}

.votos-acta-lookup-grid .select2-container .select2-selection--single .select2-selection__rendered {
    position: absolute !important;
    inset: 0 36px 0 0 !important;
    display: flex !important;
    align-items: center !important;
    width: auto !important;
    min-height: 0 !important;
    padding: 0 12px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.2 !important;
    text-align: left !important;
}

.votos-acta-lookup-grid .select2-container .select2-selection--single .select2-selection__arrow {
    top: 3px !important;
    height: 42px !important;
    transform: none;
}

.votos-lookup-junta-option {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
    padding: 7px 9px;
    border: 1px solid #d7e2f2;
    border-left-width: 4px;
    border-radius: 9px;
    background: #f8faff;
    color: #15345f;
}

.votos-lookup-junta-option.is-femenina {
    border-color: #efafd0;
    border-left-color: #d8448b;
    background: #fff4fa;
}

.votos-lookup-junta-option.is-masculina {
    border-color: #a9cef5;
    border-left-color: #2f78c7;
    background: #f1f7ff;
}

.votos-lookup-junta-option.is-registered-row {
    border-color: #78c99b;
    border-left-color: #169653;
    background: linear-gradient(90deg, #ddf7e8 0%, #f3fcf7 100%);
    box-shadow: inset 0 0 0 1px rgba(22, 150, 83, 0.08);
}

.votos-lookup-junta-option.is-validated-row {
    border-color: #32ad6b;
    border-left-color: #087a3c;
    background: linear-gradient(90deg, #c9f1da 0%, #ebfaf2 100%);
    box-shadow: inset 0 0 0 1px rgba(8, 122, 60, 0.16), 0 3px 9px rgba(8, 122, 60, 0.10);
}

.votos-lookup-junta-title {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.votos-lookup-junta-status-icon {
    flex: 0 0 auto;
    color: #9b6a12;
    font-size: 18px;
}

.votos-lookup-junta-option.is-registered-row .votos-lookup-junta-status-icon,
.votos-lookup-junta-option.is-validated-row .votos-lookup-junta-status-icon {
    color: #087a3c;
}

.votos-lookup-junta-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.votos-lookup-junta-badge {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 2px 7px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 800;
    line-height: 1.1;
    white-space: nowrap;
}

.votos-lookup-junta-badge i {
    margin-right: 4px;
    font-size: 10px;
}

.votos-lookup-junta-badge.is-sex.is-femenina {
    border-color: #eba5c8;
    background: #ffe0ef;
    color: #a82565;
}

.votos-lookup-junta-badge.is-sex.is-masculina {
    border-color: #9bc5ef;
    background: #dceeff;
    color: #1d5f9f;
}

.votos-lookup-junta-badge.is-registered {
    border-color: #9edbb9;
    background: #e7f8ee;
    color: #167343;
}

.votos-lookup-junta-badge.is-pending {
    border-color: #ecd18a;
    background: #fff7d9;
    color: #8a5a08;
}

.votos-lookup-junta-badge.is-observation {
    border-color: #efb37f;
    background: #fff0e2;
    color: #a14b09;
}

.votos-lookup-junta-badge.is-validated {
    border-color: #8ccfd0;
    background: #e4f8f7;
    color: #0b6d70;
}

.votos-lookup-junta-badge.is-unvalidated {
    border-color: #c8d1df;
    background: #eef2f7;
    color: #58677b;
}

.select2-results__option .votos-lookup-junta-option {
    width: 100%;
}

.select2-results__option--highlighted .votos-lookup-junta-option {
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.72);
}

#votos_busqueda_junta_id + .select2-container .select2-selection--single .select2-selection__rendered {
    padding: 0 10px !important;
}

.votos-lookup-junta-selection {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    min-width: 0;
    overflow: hidden;
}

.votos-lookup-junta-selection.is-registered-row,
.votos-lookup-junta-selection.is-validated-row {
    margin: 3px 0;
    padding: 4px 7px 4px 4px;
    border: 1px solid #82cfa3;
    border-radius: 8px;
    background: #e8f9ef;
}

.votos-lookup-junta-selection.is-validated-row {
    border-color: #32ad6b;
    background: #d8f5e5;
}

.votos-lookup-junta-selection-icon {
    flex: 0 0 auto;
    color: #98701f;
    font-size: 17px;
}

.votos-lookup-junta-selection.is-registered-row .votos-lookup-junta-selection-icon,
.votos-lookup-junta-selection.is-validated-row .votos-lookup-junta-selection-icon {
    color: #087a3c;
}

.votos-lookup-junta-selection strong {
    flex: 0 0 auto;
    color: #173257;
    font-size: 12px;
    line-height: 1;
}

.votos-lookup-junta-selection .votos-lookup-junta-badge {
    flex: 0 0 auto;
}

.votos-lookup-junta-marker {
    width: 5px;
    height: 26px;
    flex: 0 0 5px;
    border-radius: 999px;
    background: #8d9bae;
}

.votos-lookup-junta-marker.is-femenina {
    background: #d8448b;
}

.votos-lookup-junta-marker.is-masculina {
    background: #2f78c7;
}

.votos-acta-lookup-status {
    display: block;
    min-height: 18px;
    padding: 7px 9px;
    border: 1px solid #cfdef5;
    border-radius: 9px;
    background: #f5f9ff;
    color: #557097;
    font-size: 12px;
    line-height: 1.35;
}

.votos-acta-lookup-status.is-error {
    border-color: #f1b7ba;
    background: #fff2f2;
    color: #a43035;
}

.votos-acta-lookup-status.is-success {
    border-color: #a9dfc3;
    background: #eefbf4;
    color: #147344;
}

@media (max-width: 760px) {
    .votos-lookup-topbar {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    button.secondary.votos-reset-filters {
        max-width: none;
        width: 100%;
    }

    .votos-lookup-mode,
    .votos-acta-lookup-grid {
        grid-template-columns: 1fr;
    }

    .votos-lookup-junta-selection .votos-lookup-junta-badge.is-unvalidated,
    .votos-lookup-junta-selection .votos-lookup-junta-badge.is-validated {
        display: none;
    }
}

.votos-data-value {
    font-size: 16px;
    font-weight: 700;
    color: #173257;
    line-height: 1.25;
}

.votos-data-help {
    margin-top: 4px;
    font-size: 12px;
    color: #5e7396;
    overflow-wrap: anywhere;
}

.votos-quick-nav {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 14px;
}

.votos-quick-nav button {
    width: auto;
    min-width: 170px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.votos-keyboard-hint {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 999px;
    background: #edf4ff;
    border: 1px solid #d2e2fb;
    color: #39557f;
    font-size: 12px;
    font-weight: 600;
}

.votos-recinto-board {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.votos-board-item {
    border: 1px solid #d9e5f7;
    border-radius: 14px;
    background: #ffffff;
    padding: 12px;
    min-width: 0;
}

.votos-board-item-wide {
    grid-column: span 3;
}

.votos-board-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #58729d;
}

.votos-board-value {
    display: block;
    margin-top: 6px;
    font-size: 17px;
    color: #172f53;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.votos-board-help {
    display: block;
    margin-top: 6px;
    color: #61789c;
    font-size: 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.votos-board-item-coordinador .votos-board-value {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
    line-height: 1.3;
}

.votos-stat-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.votos-stat-card {
    border-radius: 14px;
    border: 1px solid rgba(120, 157, 223, 0.32);
    background: rgba(255, 255, 255, 0.9);
    padding: 10px;
    min-height: 68px;
}

.votos-stat-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #5a739c;
}

.votos-stat-value {
    display: block;
    margin-top: 6px;
    font-size: 20px;
    line-height: 1;
    color: #143055;
}



.votos-stat-action-slot {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-width: 0;
    padding: 10px;
}

.votos-stat-card-alert {
    min-width: 0;
    background: linear-gradient(180deg, #fff4f4 0%, #ffeded 100%);
    border-color: #f0c6c6;
}

.votos-stat-card-alert .votos-stat-value {
    color: #b22d2d;
}

.votos-progress-card {
    margin-top: 10px;
    border-radius: 14px;
    border: 1px solid rgba(120, 157, 223, 0.32);
    background: rgba(255, 255, 255, 0.92);
    padding: 12px;
}

.votos-progress-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
    color: #3f5c87;
    font-size: 13px;
    font-weight: 700;
}

.votos-progress-track {
    width: 100%;
    height: 12px;
    border-radius: 999px;
    overflow: hidden;
    background: #dce8fb;
}

.votos-progress-fill {
    width: 0;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #2877ea 0%, #5ea0ff 100%);
    transition: width 0.25s ease;
}

.votos-dignidades-avance {
    margin-top: 12px;
    display: grid;
    gap: 8px;
}

.votos-dignidad-progress-item {
    padding: 8px 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.86);
    border: 1px solid #d8e4f7;
}

.votos-dignidad-progress-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
    font-size: 12px;
    color: #38557e;
}

.votos-dignidad-progress-head span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 700;
}

.votos-dignidad-progress-head strong {
    flex-shrink: 0;
    color: #173257;
}

.votos-dignidad-progress-track {
    width: 100%;
    height: 8px;
    border-radius: 999px;
    overflow: hidden;
    background: #dce8fb;
}

.votos-dignidad-progress-fill {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #1d6fe4 0%, #7bb0ff 100%);
}

.votos-workspace {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    align-items: start;
}

.votos-juntas-tabs {
    min-height: 0;
}

.votos-juntas-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    min-height: 0;
}

.votos-juntas-column {
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.votos-juntas-column-head {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid #d8e4f7;
    background: #f7fbff;
    color: #18345a;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.votos-juntas-column-head strong {
    font-size: 16px;
    line-height: 1;
}

.votos-juntas-column-head.is-femenina {
    background: linear-gradient(180deg, #ffeaf5 0%, #ffdced 100%);
    border-color: #e5a0c3;
    color: #a82f6c;
}

.votos-juntas-column-head.is-masculina {
    background: linear-gradient(180deg, #eaf4ff 0%, #d8eaff 100%);
    border-color: #95bff6;
    color: #235fbf;
}

.votos-juntas-column-body {
    display: grid;
    gap: 10px;
    max-height: min(62vh, 700px);
    overflow-y: auto;
    align-content: start;
    padding-right: 4px;
}

.votos-junta-tab {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 4px;
    text-align: left;
    border: 1px solid #d8e4f7;
    border-radius: 14px;
    background: #ffffff;
    color: #1f2a44;
    padding: 10px 12px;
    box-shadow: 0 10px 22px rgba(18, 38, 76, 0.05);
    transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

.votos-junta-tab:hover {
    transform: translateY(-1px);
    border-color: #9fc0f4;
    box-shadow: 0 14px 26px rgba(18, 38, 76, 0.08);
}

.votos-junta-tab.is-selected {
    border-color: #4b8df0;
    background: linear-gradient(180deg, #f3f8ff 0%, #eaf2ff 100%);
    box-shadow: 0 16px 30px rgba(31, 111, 229, 0.16);
}

.votos-junta-tab.is-saved {
    border-color: #bfe4cb;
}

.votos-junta-tab.is-femenina {
    background: linear-gradient(180deg, #ffe8f4 0%, #ffd7eb 100%);
    border-color: #de7fad;
}

.votos-junta-tab.is-femenina.is-selected {
    background: linear-gradient(180deg, #ffcae2 0%, #ffb8d7 100%);
    border-color: #c9478b;
    box-shadow: 0 16px 30px rgba(201, 71, 139, 0.22);
}

.votos-junta-tab.is-masculina {
    background: linear-gradient(180deg, #e5f1ff 0%, #d4e7ff 100%);
    border-color: #6ea5f4;
}

.votos-junta-tab.is-masculina.is-selected {
    background: linear-gradient(180deg, #c8deff 0%, #b2d2ff 100%);
    border-color: #2e74da;
    box-shadow: 0 16px 30px rgba(46, 116, 218, 0.22);
}

.votos-junta-tab-title {
    font-size: 13px;
    font-weight: 700;
    color: #18345a;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.votos-junta-tab.is-femenina .votos-junta-tab-title i {
    color: #b62f76;
}

.votos-junta-tab.is-masculina .votos-junta-tab-title i {
    color: #1f67d4;
}

.votos-junta-tab-meta {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #60789e;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.votos-junta-tab-meta.is-ok {
    color: #1f8a4d;
}

.votos-junta-tab-meta.is-alert {
    color: #c56900;
}

.votos-junta-tab-meta.is-pending {
    color: #60789e;
}

.votos-junta-tab-meta.is-verification {
    margin-top: -2px;
}

.votos-empty-state {
    border: 1px dashed #cedcf4;
    border-radius: 14px;
    padding: 18px 14px;
    background: #f8fbff;
    color: #5a7298;
    text-align: center;
    font-size: 13px;
}

.votos-digitacion-card {
    padding-bottom: 14px;
}

.votos-main-layout {
    display: grid;
    grid-template-columns: minmax(360px, 420px) minmax(0, 1fr);
    gap: 10px;
    align-items: start;
}

.votos-juntas-sidebar {
    border: 1px solid #d8e4f7;
    border-radius: 16px;
    background: linear-gradient(180deg, #fcfeff 0%, #f4f9ff 100%);
    padding: 10px;
    box-shadow: 0 14px 28px rgba(18, 38, 76, 0.05);
    position: static;
    top: auto;
    max-height: none;
    overflow: hidden;
}

.votos-juntas-sidebar .card-toolbar {
    margin-bottom: 10px;
}

.votos-form-tabs-panel.is-zone-lookup-locked::before,
.votos-juntas-sidebar.is-zone-lookup-locked::before {
    content: "\1F512  Selección bloqueada: usa los filtros superiores";
    display: block;
    margin-bottom: 8px;
    padding: 7px 9px;
    border: 1px solid #183e6c;
    border-radius: 9px;
    background: linear-gradient(180deg, #335b89 0%, #244a77 100%);
    color: #ffffff;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.25;
    text-align: center;
}

.votos-form-tabs-panel.is-zone-lookup-locked,
.votos-juntas-sidebar.is-zone-lookup-locked {
    border-color: #aebdce;
    background: linear-gradient(180deg, #e9edf2 0%, #dfe5ec 100%);
    box-shadow: inset 0 0 0 1px rgba(64, 83, 106, 0.08);
}

.votos-form-tabs-panel.is-zone-lookup-locked h3,
.votos-juntas-sidebar.is-zone-lookup-locked h3 {
    color: #596a7e;
}

.votos-form-tabs-panel.is-zone-lookup-locked .votos-dignidad-tabs,
.votos-juntas-sidebar.is-zone-lookup-locked .votos-juntas-tabs {
    pointer-events: none;
    user-select: none;
    opacity: 0.38;
    filter: grayscale(0.72) saturate(0.45);
}

.votos-form-tabs-panel.is-zone-lookup-locked .votos-dignidad-tab,
.votos-juntas-sidebar.is-zone-lookup-locked .votos-junta-tab {
    cursor: not-allowed;
    box-shadow: none;
}

.votos-main-content {
    min-width: 0;
}

.votos-dignidad-tabs-head {
    display: block;
    margin-bottom: 6px;
}

.votos-dignidad-tabs-copy {
    display: block;
}

.votos-dignidad-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-content: flex-start;
    margin-bottom: 0;
}

.votos-dignidad-tab {
    width: auto;
    min-width: 150px;
    max-width: 100%;
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    padding: 8px 10px;
    border-radius: 12px;
    border: 1px solid #d5e2f6;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    color: #1f2a44;
    box-shadow: 0 8px 16px rgba(18, 38, 76, 0.04);
    transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
    cursor: pointer;
}

.votos-dignidad-tab:hover {
    transform: translateY(-1px);
    border-color: #9fc0f4;
}

.votos-dignidad-tab.is-selected {
    border-color: #4b8df0;
    background: linear-gradient(180deg, #eef5ff 0%, #e2eeff 100%);
    box-shadow: 0 12px 22px rgba(31, 111, 229, 0.10);
}

.votos-dignidad-tab-title {
    font-size: 12px;
    font-weight: 700;
    color: #18345a;
}

.votos-dignidad-tab-meta {
    font-size: 10px;
    color: #60789e;
    font-weight: 600;
}

.votos-dignidad-tab-progress {
    width: 100%;
    height: 6px;
    border-radius: 999px;
    overflow: hidden;
    background: #dce8fb;
    margin-top: 2px;
}

.votos-dignidad-tab-progress-fill {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #1f6fe5 0%, #79adff 100%);
    box-shadow: 0 0 12px rgba(31, 111, 229, 0.24);
}

.votos-dignidad-tab-percent {
    font-size: 15px;
    font-weight: 700;
    color: #1c5eb8;
}

.votos-form-tabs-panel .votos-dignidad-tabs-copy h3 {
    margin: 0 0 8px;
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #4f6d99;
}

.votos-dignidad-selector-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    align-content: start;
}

.votos-dignidad-selector {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    width: 100%;
    min-width: 0;
    padding: 8px 10px;
    border-radius: 12px;
    border: 1px solid #d5e2f6;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    color: #1f2a44;
    box-shadow: 0 8px 16px rgba(18, 38, 76, 0.04);
    transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
    text-align: left;
    cursor: pointer;
}

.votos-dignidad-selector:hover {
    transform: translateY(-1px);
    border-color: #9fc0f4;
}

.votos-dignidad-selector.is-selected {
    border-color: #4b8df0;
    background: linear-gradient(180deg, #eef5ff 0%, #e2eeff 100%);
    box-shadow: 0 12px 22px rgba(31, 111, 229, 0.10);
}

.votos-dignidad-selector-title {
    font-size: 12px;
    font-weight: 700;
    color: #18345a;
}

.votos-dignidad-selector-meta {
    font-size: 10px;
    font-weight: 600;
    color: #60789e;
}

.votos-dignidad-selector-progress {
    width: 100%;
    height: 6px;
    border-radius: 999px;
    overflow: hidden;
    background: #dce8fb;
    margin-top: 2px;
}

.votos-dignidad-selector-progress-fill {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #1f6fe5 0%, #79adff 100%);
    box-shadow: 0 0 12px rgba(31, 111, 229, 0.24);
}

.votos-dignidad-selector-percent {
    font-size: 15px;
    font-weight: 700;
    color: #1c5eb8;
}


.votos-dignidad-junta-box {
    border: 1px solid #d6e3f6;
    border-radius: 14px;
    background:
        radial-gradient(circle at top left, rgba(86, 143, 235, 0.12), transparent 42%),
        linear-gradient(180deg, #ffffff 0%, #f6faff 100%);
    padding: 12px 14px;
    box-shadow: 0 12px 24px rgba(19, 39, 78, 0.06);
}

.votos-dignidad-junta-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #58719a;
}

.votos-dignidad-junta-value {
    display: block;
    margin-top: 6px;
    font-size: 20px;
    color: #16345a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.votos-dignidad-junta-help {
    display: block;
    margin-top: 6px;
    color: #60789e;
    font-size: 12px;
    line-height: 1.35;
}

.votos-form-head {
    display: grid;
    grid-template-columns: minmax(360px, 1.18fr) minmax(300px, 0.92fr) minmax(320px, 0.98fr);
    grid-template-areas:
        "tabs note acta"
        "tabs stats stats";
    gap: 10px;
    margin-bottom: 10px;
    align-items: start;
}

.votos-dignidad-selector-panel {
    min-width: 0;
    display: none;
}

.votos-form-tabs-panel {
    grid-area: tabs;
    border: 1px solid #d8e4f7;
    border-radius: 12px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    padding: 8px 10px 6px;
    min-height: 100%;
}

.votos-form-head-top {
    grid-area: stats;
    display: grid;
    grid-template-columns: repeat(4, minmax(180px, 1fr));
    gap: 10px;
    align-items: start;
}

.votos-digitado-por-box {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: auto minmax(180px, max-content) 1fr;
    gap: 10px;
    align-items: center;
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid #b9d6c4;
    border-radius: 12px;
    background: linear-gradient(90deg, #f2fbf5 0%, #ffffff 100%);
}

.votos-digitado-por-box strong {
    color: #17643a;
}

.votos-digitado-por-box small {
    color: #55708f;
}

.votos-digitado-por-box.is-empty {
    border-color: #d8e4f7;
    background: #f8fbff;
}

.votos-digitado-por-box.is-empty strong {
    color: #60789e;
}

.votos-form-note {
    grid-area: note;
}

.votos-acta-upload-box-compact {
    grid-area: acta;
}

.votos-form-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.votos-mini-stat {
    border: 1px solid #d8e4f7;
    border-radius: 12px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    padding: 8px 10px;
}

.votos-mini-stat span {
    display: block;
    color: #5d7497;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.votos-mini-stat strong {
    display: block;
    margin-top: 4px;
    font-size: 17px;
    color: #173357;
}

.votos-mini-stat-help {
    display: block;
    margin-top: 4px;
    color: #60789e;
    font-size: 11px;
    line-height: 1.35;
}

.votos-mini-stat-accent {
    background: linear-gradient(180deg, #edf5ff 0%, #dfeeff 100%);
    border-color: #c8dcfb;
}

.votos-mini-stat-theme.is-femenina,
.votos-junta-inline-box.is-femenina,
.votos-dignidad-inline-box.is-femenina {
    border-color: #f0a9cd;
    background: linear-gradient(180deg, #fff8fc 0%, #ffeef7 100%);
}

.votos-mini-stat-theme.is-femenina strong,
.votos-junta-inline-box.is-femenina .votos-junta-inline-value,
.votos-dignidad-inline-box.is-femenina .votos-junta-inline-value {
    color: #c42e78;
}

.votos-mini-stat-theme.is-masculina,
.votos-junta-inline-box.is-masculina,
.votos-dignidad-inline-box.is-masculina {
    border-color: #99bef6;
    background: linear-gradient(180deg, #f7fbff 0%, #eaf3ff 100%);
}

.votos-mini-stat-theme.is-masculina strong,
.votos-junta-inline-box.is-masculina .votos-junta-inline-value,
.votos-dignidad-inline-box.is-masculina .votos-junta-inline-value {
    color: #1d5fc9;
}

.votos-junta-inline-box {
    border: 1px solid #d8e4f7;
    border-radius: 12px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    padding: 8px 10px;
    min-width: 0;
}

.votos-junta-inline-label {
    display: block;
    color: #5d7497;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.votos-junta-inline-value {
    display: block;
    margin-top: 4px;
    font-size: 17px;
    color: #173357;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.votos-junta-inline-help {
    display: block;
    margin-top: 4px;
    color: #60789e;
    font-size: 11px;
    line-height: 1.35;
}

.votos-form-note textarea {
    height: 64px;
    min-height: 64px;
    max-height: 64px;
    resize: none;
}

.votos-form-note {
    border: 1px solid #d8e4f7;
    border-radius: 12px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    padding: 8px 10px;
}

.votos-acta-upload-box {
    border: 1px solid #d8e4f7;
    border-radius: 12px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    padding: 8px 10px;
    min-width: 0;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    align-self: stretch;
}

.votos-acta-upload-box-compact {
    min-height: 0;
    max-height: 136px;
}

.votos-validacion-panel {
    margin: 0 0 10px;
    border: 1px solid #d8e4f7;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    padding: 10px 12px;
    display: grid;
    grid-template-columns: minmax(220px, 0.82fr) minmax(0, 1.4fr) auto;
    gap: 10px;
    align-items: center;
}

.votos-validacion-copy {
    min-width: 0;
}

.votos-validacion-title {
    display: block;
    margin-top: 4px;
    color: #173357;
    font-size: 15px;
    line-height: 1.35;
}

.votos-validacion-resumen {
    min-width: 0;
}

.votos-validacion-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
}

.votos-reset-pending-badge {
    gap: 6px;
    background: #fff4d8;
    color: #805300;
    border: 1px solid #e9c66a;
}

.votos-validacion-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.votos-validacion-stat {
    border: 1px solid #dbe6f7;
    border-radius: 12px;
    background: #fff;
    padding: 8px 10px;
    min-width: 0;
}

.votos-validacion-stat span {
    display: block;
    color: #5d7497;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.votos-validacion-stat strong {
    display: block;
    margin-top: 4px;
    color: #173357;
    font-size: 16px;
}

.votos-validacion-stat small {
    display: block;
    margin-top: 4px;
    color: #60789e;
    font-size: 11px;
    line-height: 1.35;
}

.votos-validacion-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 220px;
}

.votos-validacion-actions button {
    width: 100%;
}

.votos-validacion-modal .app-modal-dialog {
    width: min(1440px, calc(100vw - 40px));
    max-width: none;
}

.votos-validacion-modal-content {
    display: grid;
    gap: 12px;
}

.votos-validacion-modal-wrap {
    display: grid;
    gap: 12px;
}

.votos-validacion-banner {
    position: sticky;
    top: 0;
    z-index: 4;
    margin-bottom: 2px;
}

.votos-validacion-modal-stats {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.votos-validacion-top-field {
    min-width: 0;
    display: grid;
    gap: 8px;
    padding: 12px 14px;
    border: 1px solid #dbe6f7;
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.votos-validacion-top-field span {
    color: #60789e;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.votos-validacion-top-field.is-editable input {
    height: 40px;
    padding: 0 12px;
    border: 1px solid #cdddff;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
    color: #173357;
    font-size: 18px;
    font-weight: 800;
    text-align: center;
}

.votos-validacion-top-field.is-editable input:focus {
    border-color: #8fb3ff;
    box-shadow: 0 0 0 3px rgba(45, 109, 223, 0.12);
    outline: none;
}

.votos-validacion-top-field.is-static strong {
    min-height: 40px;
    display: flex;
    align-items: center;
    color: #173357;
    font-size: 20px;
    font-weight: 800;
}

.votos-validacion-primary {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(380px, 1.15fr);
    gap: 12px;
    align-items: start;
}

.votos-validacion-digitado {
    border: 1px solid #dbe6f7;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    padding: 10px;
    display: grid;
    gap: 10px;
    min-width: 0;
}

.votos-validacion-section-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
}

.votos-validacion-section-head strong {
    display: block;
    color: #173357;
    font-size: 15px;
}

.votos-validacion-section-head button {
    width: auto;
    min-width: 200px;
}

.votos-validacion-section-head small {
    display: block;
    margin-top: 4px;
    color: #60789e;
    font-size: 11px;
    line-height: 1.4;
}

.votos-validacion-section-head.is-subhead {
    margin-top: 2px;
}

.votos-validacion-warning-list {
    display: grid;
    gap: 6px;
}

.votos-validacion-candidatos-grid {
    display: grid;
    gap: 8px;
}

.votos-validacion-candidato-card {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) 110px;
    gap: 10px;
    align-items: center;
    padding: 8px;
    border: 1px solid #dde8f9;
    border-radius: 14px;
    background: #ffffff;
}

.votos-validacion-candidato-media {
    display: flex;
    align-items: center;
    justify-content: center;
}

.votos-validacion-candidato-media .votos-candidato-thumb {
    width: 42px;
    height: 42px;
}

.votos-validacion-candidato-info {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.votos-validacion-candidato-line {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    min-width: 0;
}

.votos-validacion-candidato-line strong {
    min-width: 0;
    color: #173357;
    font-size: 12.5px;
    line-height: 1.25;
    text-transform: uppercase;
}

.votos-validacion-candidato-info .votos-candidato-meta,
.votos-validacion-candidato-info .votos-party-strip {
    margin-top: 0;
}

.votos-validacion-candidato-input input {
    height: 40px;
    text-align: center;
    font-size: 18px;
    font-weight: 800;
    border-radius: 12px;
    background: #f8fbff;
}

.votos-validacion-inline-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px;
    border: 1px solid #dbe6f7;
    border-radius: 14px;
    background: linear-gradient(180deg, #f9fbff 0%, #f2f7ff 100%);
}

.votos-validacion-inline-note {
    min-width: 0;
}

.votos-validacion-inline-note strong {
    display: block;
    color: #173357;
    font-size: 14px;
}

.votos-validacion-inline-note small {
    display: block;
    margin-top: 4px;
    color: #60789e;
    font-size: 11px;
    line-height: 1.4;
}

.js-votos-validacion-confirmar-inline {
    width: auto;
    min-width: 220px;
    justify-self: end;
}

.js-votos-validacion-confirmar-inline.is-disabled {
    opacity: 0.72;
}

.votos-validacion-docs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.votos-validacion-doc {
    border: 1px solid #dbe6f7;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    padding: 10px;
    min-width: 0;
    display: grid;
    gap: 10px;
}

.votos-validacion-doc-switcher {
    align-content: start;
}

.votos-validacion-doc-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

.votos-validacion-doc-head > div {
    min-width: 0;
}

.votos-validacion-doc-head strong {
    display: block;
    color: #173357;
    font-size: 15px;
}

.votos-validacion-doc-head small {
    display: block;
    margin-top: 4px;
    color: #60789e;
    font-size: 11px;
    line-height: 1.4;
}

.votos-validacion-doc-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.js-votos-validacion-doc-tab {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 12px;
    border: 1px solid #cdddff;
    border-radius: 12px;
    background: #f8fbff;
    color: #173357;
    text-align: left;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.js-votos-validacion-doc-tab span {
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
}

.js-votos-validacion-doc-tab small {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

.js-votos-validacion-doc-tab small.is-loaded {
    color: #1d8f53;
}

.js-votos-validacion-doc-tab small.is-empty {
    color: #b95043;
}

.js-votos-validacion-doc-tab.is-active {
    border-color: #2d6ddf;
    background: linear-gradient(180deg, #ffffff 0%, #edf4ff 100%);
    box-shadow: 0 0 0 3px rgba(45, 109, 223, 0.12);
}

.votos-validacion-doc.is-cne-primary iframe,
.votos-validacion-doc.is-cne-primary img {
    min-height: 620px;
    height: 620px;
}

.votos-validacion-doc iframe,
.votos-validacion-doc img {
    width: 100%;
    min-height: 520px;
    height: 520px;
    border: 1px solid #dbe6f7;
    border-radius: 12px;
    background: #fff;
    object-fit: contain;
}

.votos-acta-upload-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.votos-acta-upload-label {
    display: block;
    margin-bottom: 4px;
}

.votos-acta-upload-help {
    display: block;
    color: #60779a;
    font-size: 11px;
    line-height: 1.35;
    min-height: 18px;
}

.votos-actas-listado {
    display: grid;
    gap: 8px;
    max-height: 76px;
    overflow-y: auto;
    align-content: start;
}

.votos-acta-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    border: 1px solid #dbe6f7;
    border-radius: 12px;
    background: #ffffff;
    padding: 8px 10px;
}

.votos-acta-item.is-principal {
    border-color: #9cc0f7;
    background: linear-gradient(180deg, #f4f9ff 0%, #eaf3ff 100%);
}

.votos-acta-item-title {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    color: #18345b;
    font-size: 12px;
    font-weight: 700;
}

.votos-acta-item-title span:not(.votos-acta-type-badge):not(.votos-acta-main-badge) {
    min-width: 0;
    flex: 1 1 220px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.votos-acta-item-meta {
    margin-top: 4px;
    color: #667f9f;
    font-size: 10px;
    line-height: 1.35;
}

.votos-acta-item-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.votos-acta-type-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    border: 1px solid #d3e0f4;
    background: #f6faff;
    color: #295ea9;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.votos-acta-main-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    border: 1px solid #cfe5d8;
    background: #edf9f1;
    color: #1f7c47;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.votos-acta-modal .app-modal-dialog {
    position: fixed;
    top: 24px;
    left: 24px;
    width: min(1100px, calc(100vw - 48px));
    height: min(820px, calc(100vh - 48px));
    max-height: none;
    margin: 0;
    resize: both;
    overflow: hidden;
}

.votos-acta-modal {
    pointer-events: none;
}

.votos-acta-modal .app-modal-backdrop {
    display: none;
}

.votos-acta-modal .app-modal-dialog {
    pointer-events: auto;
}

.votos-incidencias-trigger {
    width: 100% !important;
    max-width: 180px;
    min-width: 0;
    box-sizing: border-box;
    padding: 9px 12px;
    font-size: 12px;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
}

.status-badge.is-neutral {
    background: #eef4ff;
    color: #355b95;
    border-color: #cddcf3;
}

.votos-incidencias-modal-body {
    display: grid;
    gap: 10px;
}

.votos-incidencia-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    border: 1px solid #dbe6f7;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f9fbff 100%);
    padding: 12px;
}

.votos-incidencia-main {
    min-width: 0;
}

.votos-incidencia-title {
    font-size: 14px;
    font-weight: 700;
    color: #17365e;
}

.votos-incidencia-meta {
    margin-top: 4px;
    color: #61789d;
    font-size: 12px;
}

.votos-incidencia-alerts {
    margin-top: 8px;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.votos-incidencia-actions {
    display: inline-flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.actas-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}

.actas-summary-card {
    border: 1px solid #d8e4f7;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
    padding: 12px;
}

.actas-summary-card-alert {
    border-color: #f3c4c4;
    background: linear-gradient(180deg, #fff7f7 0%, #ffeded 100%);
}

.actas-summary-card-alert strong {
    color: #b52b2b;
}

.actas-summary-card small {
    display: block;
    margin-top: 7px;
    color: #5b749a;
    font-size: 12px;
    font-weight: 700;
}

.actas-summary-label {
    display: block;
    color: #5d7497;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.actas-summary-card strong {
    display: block;
    margin-top: 8px;
    color: #16355d;
    font-size: 20px;
}

.actas-board-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.actas-panel {
    border: 1px solid #d8e4f7;
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    padding: 14px;
}

.computo-filter-accordion {
    margin: 14px 0 18px;
    border: 1px solid #d7e6ff;
    border-radius: 18px;
    background:
        radial-gradient(circle at top left, rgba(47, 125, 246, 0.1), transparent 32%),
        linear-gradient(180deg, #f9fcff 0%, #eef6ff 100%);
    box-shadow: 0 12px 30px rgba(35, 75, 140, 0.08);
    overflow: visible;
}

.computo-filter-toggle {
    width: 100%;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 0;
    border-radius: 18px;
    background: transparent;
    color: #18345f;
    text-align: left;
}

.computo-filter-toggle:hover {
    background: rgba(255, 255, 255, 0.56);
}

.computo-filter-toggle-icon {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #bcd6ff;
    border-radius: 13px;
    background: #ffffff;
    color: #1f6fe5;
    box-shadow: 0 8px 18px rgba(31, 111, 229, 0.1);
}

.computo-filter-toggle-copy {
    min-width: 0;
}

.computo-filter-toggle-copy strong {
    display: block;
    font-size: 15px;
    color: #173257;
}

.computo-filter-toggle-copy small {
    display: block;
    margin-top: 3px;
    color: #54709b;
    font-size: 12px;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.computo-filter-toggle-meta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 102px;
    padding: 7px 10px;
    border: 1px solid #d0ddf2;
    border-radius: 999px;
    background: #ffffff;
    color: #506a94;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.computo-filter-toggle-meta.is-active {
    border-color: #8fbcff;
    background: #eaf3ff;
    color: #1558c5;
}

.computo-filter-toggle-arrow {
    color: #45659a;
    transition: transform 0.2s ease;
}

.computo-filter-accordion.is-open .computo-filter-toggle-arrow {
    transform: rotate(180deg);
}

.computo-filter-body {
    display: none;
    padding: 0 14px 14px;
}

.computo-filter-accordion.is-open .computo-filter-body {
    display: block;
}

.computo-filter-panel {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 10px;
    padding: 14px;
    border: 1px solid #dce9fb;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.78);
}

.computo-filter-panel .form-group {
    min-width: 0;
    margin: 0;
    grid-column: span 3;
}

.computo-filter-panel .computo-filter-field-wide {
    grid-column: span 6;
}

.computo-filter-panel label {
    margin-bottom: 5px;
    color: #45659a;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.computo-filter-panel select {
    min-height: 42px;
    border-color: #bfd6fb;
    border-radius: 12px;
    background: #ffffff;
    color: #173257;
    font-weight: 700;
}

.computo-filter-panel .select2-container--default .select2-selection--multiple {
    min-height: 40px !important;
    border-color: #bfd6fb !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    padding: 4px 30px 4px 7px !important;
}

.computo-filter-panel .select2-container--default .select2-selection--multiple .select2-selection__rendered {
    gap: 4px !important;
}

.computo-filter-panel .select2-container--default .select2-selection--multiple .select2-selection__choice {
    max-width: 100%;
    margin: 0 !important;
    padding: 3px 7px !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 11px;
    font-weight: 800;
}

.computo-filter-panel .select2-container--default .select2-search--inline .select2-search__field {
    min-width: 90px;
    margin-top: 1px;
    color: #173257;
    font-size: 12px;
    font-weight: 700;
}

.computo-filter-actions {
    display: flex;
    align-items: end;
    grid-column: span 3;
}

.computo-filter-actions button {
    min-height: 40px;
    border-radius: 12px;
}

@media (max-width: 1100px) {
    .computo-filter-panel .form-group,
    .computo-filter-actions {
        grid-column: span 6;
    }

    .computo-filter-panel .computo-filter-field-wide {
        grid-column: span 12;
    }
}

@media (max-width: 720px) {
    .system-config-hero,
    .dashboard-brand-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .system-logo-preview {
        width: 100%;
    }

    .computo-filter-toggle {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .computo-filter-toggle-meta {
        grid-column: 2 / -1;
        justify-self: start;
        min-width: 0;
    }

    .computo-filter-panel .form-group,
    .computo-filter-actions,
    .computo-filter-panel .computo-filter-field-wide {
        grid-column: 1 / -1;
    }

    .computo-filter-toggle-copy small {
        white-space: normal;
    }
}

.computo-junta-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 10px;
    border: 1px solid #cfe0fb;
    border-radius: 999px;
    background: #eef5ff;
    color: #0f4fbf;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.computo-junta-pill.is-femenina {
    border-color: #f5a3c7;
    background: #fff0f7;
    color: #b61d6a;
}

.computo-junta-pill.is-masculina {
    border-color: #8dbfff;
    background: #eef6ff;
    color: #1357c8;
}

.computo-grid {
    display: grid;
    gap: 12px;
}

.computo-table-main,
.computo-table-location {
    min-width: 0;
}

.computo-row-title {
    font-size: 14px;
    font-weight: 700;
    color: #17365e;
}

.computo-row-headline {
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
}

.computo-row-junta {
    font-size: 22px;
    line-height: 1.1;
    font-weight: 800;
    color: #17365e;
    letter-spacing: 0.01em;
}

.computo-row-junta.is-femenina {
    color: #c42e78;
}

.computo-row-junta.is-masculina {
    color: #1d5fc9;
}

.computo-table-location,
.computo-row-meta {
    color: #61789d;
    font-size: 12px;
    line-height: 1.45;
}

.computo-row-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.computo-row-side {
    text-align: right;
}

.computo-row-state {
    font-size: 14px;
    font-weight: 700;
    color: #20487f;
}

.computo-row-help {
    margin-top: 4px;
    color: #667f9f;
    font-size: 12px;
}

#computo-grid.dataTable thead th {
    white-space: nowrap;
    color: #20375f;
    font-size: 12px;
    letter-spacing: 0.03em;
}

#computo-grid td,
#computo-grid th {
    vertical-align: middle;
}

#computo-grid td {
    color: #243755;
    font-size: 12px;
}

#computo-grid_wrapper .dt-export-toolbar {
    margin-top: 2px;
}

#computo-grid_wrapper .dataTables_filter label,
#computo-grid_wrapper .dataTables_length label {
    font-size: 13px;
    color: #3a5075;
}

#computo-grid_wrapper .dataTables_info,
#computo-grid_wrapper .dataTables_paginate {
    font-size: 12px;
    color: #4a6188 !important;
}

#computo-grid_wrapper .dataTables_filter input,
#computo-grid_wrapper .dataTables_length select {
    width: auto;
    min-width: 88px;
}

#computo-grid_wrapper table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
#computo-grid_wrapper table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control {
    padding-left: 28px;
}

#computo-grid_wrapper table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control::before,
#computo-grid_wrapper table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control::before {
    top: 18px;
    left: 8px;
    line-height: 14px;
    border: 1px solid #9ebcf0;
    background-color: #eef5ff;
    color: #2d5ea8;
}

#computo-grid_wrapper ul.dtr-details {
    width: 100%;
}

#computo-grid_wrapper ul.dtr-details li {
    display: flex;
    gap: 8px;
    align-items: flex-start;
}

#computo-grid_wrapper ul.dtr-details .dtr-title {
    min-width: 120px;
    white-space: normal;
}

#computo-grid_wrapper ul.dtr-details .dtr-data {
    flex: 1;
    white-space: normal;
    color: #203456;
}

#actas-monitor-grid_wrapper table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
#actas-monitor-grid_wrapper table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control {
    padding-left: 28px;
}

#actas-monitor-grid_wrapper table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control::before,
#actas-monitor-grid_wrapper table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control::before {
    top: 18px;
    left: 8px;
    line-height: 14px;
    border: 1px solid #9ebcf0;
    background-color: #eef5ff;
    color: #2d5ea8;
}

#actas-monitor-grid_wrapper ul.dtr-details {
    width: 100%;
}

#actas-monitor-grid_wrapper ul.dtr-details li {
    display: flex;
    gap: 8px;
    align-items: flex-start;
}

#actas-monitor-grid_wrapper ul.dtr-details .dtr-title {
    min-width: 120px;
    white-space: normal;
}

#actas-monitor-grid_wrapper ul.dtr-details .dtr-data {
    flex: 1;
    white-space: normal;
    color: #203456;
}

.datatable-mobile-summary {
    display: none;
}

.datatable-mobile-summary-main {
    font-size: 13px;
    font-weight: 800;
    color: #173257;
    line-height: 1.3;
}

.datatable-mobile-summary-meta {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-top: 5px;
    font-size: 11px;
    color: #56709b;
    line-height: 1.35;
}

.datatable-desktop-only {
    display: inline;
}

.graficos-head-card {
    background:
        radial-gradient(circle at top left, rgba(50, 122, 229, 0.12), transparent 28%),
        linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.graficos-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.graficos-head h2 {
    margin: 6px 0 8px;
    color: #173257;
}

.graficos-cutoff {
    min-width: 240px;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid #d7e4f8;
    background: rgba(255, 255, 255, 0.88);
}

.graficos-cutoff span,
.graficos-summary-label,
.graficos-panel-label,
.graficos-side-card span {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #5b749a;
}

.graficos-cutoff strong {
    display: block;
    margin-top: 6px;
    font-size: 15px;
    color: #173257;
}

.graficos-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.graficos-filter-accordion {
    margin: 0 0 8px;
    border: 1px solid #cfe0fa;
    border-top: 0;
    border-radius: 0 0 16px 16px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(237, 246, 255, 0.94));
    box-shadow: 0 10px 24px rgba(18, 38, 76, 0.10);
    overflow: hidden;
    position: sticky;
    top: 0;
    z-index: 45;
    align-self: start;
    backdrop-filter: blur(12px);
}

.graficos-filter-toggle {
    width: 100%;
    min-height: 58px;
    display: grid;
    grid-template-columns: auto minmax(170px, 0.65fr) minmax(280px, 1.25fr) auto auto auto auto;
    gap: 10px;
    align-items: center;
    padding: 7px 12px;
    border: 0;
    background: transparent;
    color: #14315a;
    text-align: left;
}

.graficos-filter-toggle-icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: #e7f0ff;
    color: #1f62c8;
    border: 1px solid #c9dcff;
}

.graficos-filter-toggle-copy strong,
.graficos-filter-toggle-copy small {
    display: block;
}

.graficos-filter-toggle-copy {
    min-width: 0;
}

.graficos-filter-toggle-copy strong {
    font-size: 15px;
    font-weight: 800;
}

.graficos-filter-toggle-copy small {
    margin-top: 1px;
    display: -webkit-box;
    overflow: hidden;
    color: #35577f;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.3;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.graficos-filter-toggle-meta {
    padding: 7px 11px;
    border-radius: 999px;
    background: #eef4ff;
    border: 1px solid #cfdef8;
    color: #46658f;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.graficos-filter-toggle-meta.is-active {
    background: #e8f7ef;
    border-color: #aadfbd;
    color: #167341;
}

.graficos-filter-refresh-compact,
.graficos-filter-clear-compact {
    min-width: 96px;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 7px 12px;
    border-radius: 10px;
    white-space: nowrap;
}

.graficos-filter-refresh-compact:disabled {
    cursor: wait;
    opacity: 0.78;
}

.graficos-filter-toggle-control {
    width: 36px;
    min-width: 36px;
    height: 36px;
    display: inline-grid;
    place-items: center;
    padding: 0;
    border: 1px solid #c9dcf8;
    border-radius: 10px;
    background: #f4f8ff;
    color: #173f75;
    cursor: pointer;
}

.graficos-filter-toggle-control:hover,
.graficos-filter-toggle-control:focus-visible {
    border-color: #7faef0;
    background: #e8f2ff;
}

.graficos-filter-toggle-arrow {
    transition: transform 0.18s ease;
}

.graficos-filter-accordion.is-open .graficos-filter-toggle-arrow {
    transform: rotate(180deg);
}

.graficos-filter-body {
    display: none;
    max-height: calc(100vh - 70px);
    padding: 0 10px 10px;
    overflow-y: auto;
}

.graficos-filter-accordion.is-open .graficos-filter-body {
    display: block;
}

.graficos-filter-bar {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 8px;
    padding: 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(207, 224, 250, 0.88);
}

.graficos-filter-field {
    grid-column: span 3;
    min-width: 0;
}

.graficos-filter-field-wide {
    grid-column: span 6;
}

.graficos-filter-field-primary {
    grid-column: auto;
    min-width: 0;
    padding: 0;
}

.graficos-filter-toggle .graficos-filter-field-primary label {
    margin-bottom: 5px;
    color: #173f75;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.01em;
    text-transform: none;
}

.graficos-filter-field-primary .select2-container--default .select2-selection--single {
    min-height: 36px;
    border-color: #9fc3f4;
    border-radius: 10px;
    background: #ffffff;
}

.graficos-filter-field-primary .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 34px;
    color: #173257;
    font-weight: 800;
}

.graficos-filter-field-primary .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 34px;
}

.graficos-filter-field label {
    display: block;
    margin-bottom: 6px;
    color: #21466f;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.01em;
    text-transform: none;
}

.graficos-filter-field select {
    width: 100%;
    min-height: 42px;
    padding: 9px 12px;
    border-radius: 12px;
    border: 1px solid #cfe0fa;
    background: #ffffff;
    color: #173257;
    font-weight: 600;
    box-shadow: inset 0 1px 2px rgba(19, 39, 78, 0.03);
}

.graficos-filter-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    align-items: end;
    grid-column: span 3;
}

.graficos-filter-actions button {
    width: 100%;
    min-height: 46px;
}

#graficos_btn_pdf {
    border-color: #f2c3c3;
    color: #b42318;
    background: linear-gradient(180deg, #fff9f9 0%, #fff1f1 100%);
}

#graficos_btn_pdf:hover,
#graficos_btn_pdf:focus-visible {
    border-color: #df8d8d;
    box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.08);
}

.graficos-filter-bar .select2-container {
    width: 100% !important;
}

.graficos-filter-bar .select2-container--default .select2-selection--multiple {
    min-height: 46px;
    border: 1px solid #cfe0fa;
    border-radius: 14px;
    background: #fff;
    box-shadow: inset 0 1px 2px rgba(19, 39, 78, 0.03);
    padding: 4px 8px;
}

.graficos-filter-bar .select2-container--default.select2-container--focus .select2-selection--multiple {
    border-color: #2f7df0;
    box-shadow: 0 0 0 3px rgba(47, 125, 240, 0.12);
}

.graficos-filter-bar .select2-container--default .select2-selection--multiple .select2-selection__choice {
    margin-top: 5px;
    border: 1px solid #bcd6ff;
    border-radius: 999px;
    background: #eaf3ff;
    color: #17427d;
    font-size: 12px;
    font-weight: 700;
    max-width: 100%;
}

.graficos-filter-bar .select2-container--default .select2-selection--multiple .select2-selection__choice__display {
    max-width: 145px;
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: bottom;
    white-space: nowrap;
}

.graficos-filter-bar .select2-container--default .select2-search--inline .select2-search__field {
    min-height: 28px;
    margin-top: 5px;
    font-size: 14px;
    color: #173257;
}

.graficos-summary-card {
    border: 1px solid #d7e4f8;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.92);
    padding: 14px 15px;
    box-shadow: 0 10px 22px rgba(18, 38, 76, 0.05);
}

.graficos-summary-card strong {
    display: block;
    margin-top: 6px;
    font-size: 30px;
    line-height: 1;
    color: #173257;
}

.graficos-summary-card small {
    display: block;
    margin-top: 8px;
    color: #5377a8;
    font-size: 12px;
    font-weight: 700;
}

.graficos-summary-card-accent {
    background: linear-gradient(180deg, #eef5ff 0%, #deebff 100%);
    border-color: #bfd5fb;
}

.graficos-summary-card-alert {
    background: linear-gradient(180deg, #fff6f6 0%, #ffeded 100%);
    border-color: #f4c8c8;
}

.graficos-summary-card-alert strong {
    color: #c0392b;
}

.graficos-main-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
    gap: 14px;
    margin-top: 14px;
    align-items: start;
}

.graficos-operativo-grid {
    display: grid;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.graficos-donut-card {
    display: flex;
    flex-direction: column;
    gap: 14px;
    align-items: stretch;
}

.graficos-donut-hero {
    display: flex;
    justify-content: center;
    align-items: center;
}

.graficos-territorial-card {
    align-self: start;
}

.graficos-territorial-selection {
    margin-bottom: 14px;
    padding: 14px 16px;
    border: 1px solid #a9c9fa;
    border-radius: 14px;
    background: #eef5ff;
}

.graficos-territorial-selection-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    color: #173257;
    font-weight: 700;
}

.graficos-territorial-selection-head strong {
    color: #1f6fe5;
    font-size: 20px;
}

.graficos-territorial-selection p {
    margin: 7px 0 0;
    color: #415d83;
    font-size: 13px;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.graficos-territorial-selection small {
    display: block;
    margin-top: 7px;
    color: #415d83;
}

.graficos-territorial-breakdown-title {
    color: #415d83;
    font-size: 12px;
    font-weight: 700;
}

.graficos-risk-card {
    margin-top: 14px;
}

.graficos-risk-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, 520px);
    align-items: start;
    gap: 16px;
}

.graficos-risk-title {
    min-width: 0;
}

.graficos-risk-title h3 {
    margin-bottom: 6px;
}

.graficos-risk-title p {
    max-width: 680px;
}

.graficos-risk-controls {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 150px;
    gap: 10px;
    align-items: end;
    padding: 10px;
    border: 1px solid #d7e4f8;
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.graficos-risk-pdf-btn {
    align-self: flex-end;
    min-height: 38px;
    padding: 8px 14px;
    white-space: nowrap;
}

.graficos-risk-quick-filter {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    min-width: 0;
}

.graficos-risk-quick-filter span {
    color: #4f6f9f;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.graficos-risk-quick-filter .select2-container--default .select2-selection--single {
    min-height: 40px;
    border: 1px solid #bcd4f6;
    border-radius: 12px;
    background: #ffffff;
    display: flex;
    align-items: center;
}

.graficos-risk-quick-filter .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #173257;
    font-size: 13px;
    font-weight: 800;
    line-height: 38px;
    padding-left: 12px;
    padding-right: 30px;
}

.graficos-risk-quick-filter .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 38px;
    right: 6px;
}

.graficos-risk-scope-filter .select2-container--default .select2-selection--single {
    background: #eaf3ff;
    border-color: #8dbbff;
}

.graficos-risk-scope-filter .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #064fc3;
    text-align: center;
}

.graficos-risk-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
}

.graficos-risk-kpi {
    padding: 13px 14px;
    border: 1px solid #d7e4f8;
    border-radius: 15px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    min-width: 0;
}

.graficos-risk-kpi span {
    display: block;
    color: #5f78a0;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.graficos-risk-kpi strong {
    display: block;
    margin-top: 8px;
    color: #173257;
    font-size: 24px;
    line-height: 1.1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.graficos-risk-kpi-alert {
    background: linear-gradient(180deg, #fff7ed 0%, #fff1f2 100%);
    border-color: #fecaca;
}

.graficos-risk-kpi-alert strong {
    color: #b91c1c;
}

.graficos-risk-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr);
    gap: 14px;
    margin-top: 14px;
    align-items: start;
}

.graficos-risk-headline {
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid #fed7aa;
    background: #fff7ed;
    color: #9a3412;
    font-weight: 800;
    margin-bottom: 12px;
}

.graficos-risk-bars {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-height: 720px;
    overflow-y: auto;
    padding-right: 3px;
}

.graficos-risk-bar-row {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px;
    align-items: stretch;
    border-radius: 14px;
    cursor: pointer;
    outline: none;
}

.graficos-risk-bar-row:hover .graficos-risk-bar-body,
.graficos-risk-bar-row:focus-visible .graficos-risk-bar-body {
    border-color: #86b5f5;
    box-shadow: 0 0 0 3px rgba(31, 111, 229, 0.10);
}

.graficos-risk-bar-row.is-selected .graficos-risk-bar-body {
    border-color: #2f7df0;
    background: #eef6ff;
    box-shadow: inset 4px 0 0 #2f7df0, 0 8px 18px rgba(31, 111, 229, 0.10);
}

.graficos-risk-bar-row.is-selected .graficos-risk-bar-rank {
    border-color: #76a9ee;
    background: #e8f2ff;
    color: #145bb8;
}

.graficos-risk-bar-rank {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: #fff1f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
    font-size: 18px;
    font-weight: 900;
}

.graficos-risk-bar-body {
    padding: 12px 14px;
    border: 1px solid #d7e4f8;
    border-radius: 14px;
    background: #ffffff;
    min-width: 0;
}

.graficos-risk-bar-top,
.graficos-risk-bar-foot,
.graficos-risk-detail-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.graficos-risk-bar-top strong {
    display: block;
    color: #173257;
    font-size: 14px;
}

.graficos-risk-bar-top span,
.graficos-risk-bar-foot span,
.graficos-risk-detail-head span {
    color: #627a9f;
    font-size: 12px;
}

.graficos-risk-bar-value {
    text-align: right;
}

.graficos-risk-bar-value strong {
    color: #b91c1c;
    font-size: 18px;
}

.graficos-risk-track {
    width: 100%;
    height: 12px;
    overflow: hidden;
    border-radius: 999px;
    background: #fee2e2;
    margin-top: 10px;
}

.graficos-risk-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #f97316 0%, #dc2626 100%);
}

.graficos-risk-bar-foot {
    margin-top: 9px;
}

.graficos-risk-detail {
    padding: 14px;
    border-radius: 16px;
    border: 1px solid #d7e4f8;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.graficos-risk-detail-head {
    margin-bottom: 12px;
}

.graficos-risk-detail-head strong {
    color: #173257;
}

.graficos-risk-table {
    overflow-x: auto;
}

.graficos-risk-table table {
    width: 100%;
    border-collapse: collapse;
    min-width: 1060px;
}

.graficos-risk-table th {
    background: #eff4fb;
    color: #4d6690;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 11px;
    text-align: left;
    padding: 10px 12px;
}

.graficos-risk-table td {
    border-bottom: 1px solid #e3ecf8;
    color: #173257;
    padding: 10px 12px;
    vertical-align: top;
    font-size: 12px;
}

.graficos-risk-table td strong,
.graficos-risk-table td span {
    display: block;
}

.graficos-risk-table td span {
    color: #60789e;
    margin-top: 3px;
}

.graficos-risk-table .text-right {
    text-align: right;
}

.graficos-risk-findings {
    min-width: 230px;
}

.graficos-risk-findings-count {
    display: inline-flex !important;
    width: fit-content;
    margin: 0 0 6px !important;
    padding: 3px 8px;
    border: 1px solid #f4b7b7;
    border-radius: 999px;
    background: #fff1f1;
    color: #b42318 !important;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}

.graficos-risk-findings ul {
    display: grid;
    gap: 5px;
    margin: 0;
    padding-left: 18px;
}

.graficos-risk-findings li {
    color: #294363;
    line-height: 1.35;
}

.graficos-donut {
    --graficos-progress: 0%;
    width: 190px;
    height: 190px;
    border-radius: 50%;
    background: conic-gradient(#1f6fe5 var(--graficos-progress), #dfe9fb 0);
    position: relative;
    box-shadow: inset 0 0 0 1px rgba(31, 111, 229, 0.08);
}

.graficos-donut::after {
    content: "";
    position: absolute;
    inset: 18px;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(15, 33, 68, 0.08);
}

.graficos-donut-inner {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.graficos-donut-inner strong {
    font-size: 32px;
    line-height: 1;
    color: #173257;
}

.graficos-donut-inner span {
    margin-top: 6px;
    color: #5b749a;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.graficos-donut-legend {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.graficos-donut-legend div {
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid #d8e4f8;
    background: #f9fbff;
    text-align: center;
}

.graficos-donut-legend strong {
    display: block;
    font-size: 18px;
    color: #173257;
}

.graficos-donut-legend span {
    display: block;
    margin-top: 4px;
    color: #60789e;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.graficos-donut-legend small {
    display: block;
    margin-top: 3px;
    color: #1f6fe5;
    font-size: 12px;
    letter-spacing: 0;
    font-weight: 800;
}

.graficos-inconsistencia-chart {
    width: 100%;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid #d7e4f8;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.graficos-inconsistencia-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.graficos-inconsistencia-head strong {
    color: #173257;
    font-size: 13px;
}

.graficos-inconsistencia-head span {
    color: #627a9f;
    font-size: 11px;
}

.graficos-inconsistencia-bar {
    display: flex;
    width: 100%;
    height: 12px;
    border-radius: 999px;
    overflow: hidden;
    background: #dde8fb;
    margin-top: 12px;
}

.graficos-inconsistencia-bar span {
    display: block;
    height: 100%;
}

.graficos-inconsistencia-bar .is-ok {
    background: linear-gradient(90deg, #1f6fe5 0%, #5b9bf2 100%);
}

.graficos-inconsistencia-bar .is-alert {
    background: linear-gradient(90deg, #ef4444 0%, #dc2626 100%);
}

.graficos-inconsistencia-legend {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}

.graficos-inconsistencia-legend div {
    padding: 10px 12px;
    border-radius: 12px;
    background: #f9fbff;
    border: 1px solid #d8e4f8;
    text-align: center;
}

.graficos-inconsistencia-legend strong {
    display: block;
    color: #173257;
    font-size: 17px;
}

.graficos-inconsistencia-legend span {
    display: block;
    margin-top: 4px;
    color: #60789e;
    font-size: 11px;
    font-weight: 700;
}

.graficos-acta-error-chart {
    width: 100%;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid #d7e4f8;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.graficos-acta-error-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.graficos-acta-error-head strong {
    color: #173257;
    font-size: 13px;
}

.graficos-acta-error-head span {
    color: #627a9f;
    font-size: 11px;
}

.graficos-acta-error-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 12px;
}

.graficos-acta-error-row {
    padding: 10px 12px;
    border-radius: 12px;
    background: #f9fbff;
    border: 1px solid #d8e4f8;
}

.graficos-acta-error-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.graficos-acta-error-top span {
    color: #173257;
    font-size: 12px;
    font-weight: 700;
}

.graficos-acta-error-top strong {
    color: #173257;
    font-size: 12px;
}

.graficos-acta-error-track {
    width: 100%;
    height: 10px;
    border-radius: 999px;
    overflow: hidden;
    background: #dde8fb;
    margin-top: 10px;
}

.graficos-acta-error-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
}

.graficos-state-list,
.graficos-territorial-list,
.graficos-candidatos-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.graficos-state-row,
.graficos-territorial-row,
.graficos-candidato-row,
.graficos-side-card {
    border: 1px solid #d7e4f8;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    padding: 12px 14px;
}

.graficos-state-top,
.graficos-territorial-top,
.graficos-candidato-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.graficos-state-top span,
.graficos-territorial-top span {
    color: #627a9f;
    font-size: 12px;
}

.graficos-state-top strong,
.graficos-territorial-meta strong {
    color: #173257;
    font-size: 14px;
}

.graficos-state-track {
    width: 100%;
    height: 8px;
    border-radius: 999px;
    overflow: hidden;
    background: #dde8fb;
    margin-top: 10px;
}

.graficos-state-progress {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 8px;
    padding-top: 7px;
    border-top: 1px solid #e6eef9;
    color: #5f78a0;
    font-size: 11px;
}

.graficos-state-progress span {
    font-weight: 700;
}

.graficos-state-progress strong {
    color: #1c4f91;
    font-size: 11px;
    text-align: right;
}

.graficos-state-track-compact {
    margin-top: 8px;
    height: 6px;
}

.graficos-state-fill,
.graficos-candidato-fill {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #1f6fe5 0%, #7db0ff 100%);
}

.graficos-territorial-meta {
    text-align: right;
}

.graficos-territorial-meta span,
.graficos-territorial-foot {
    color: #627a9f;
    font-size: 12px;
}

.graficos-resultados-card {
    margin-top: 14px;
}

.graficos-insights-card {
    margin-top: 14px;
}

.graficos-insights-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 14px;
}

.graficos-insight-card {
    border: 1px solid #d7e4f8;
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    padding: 14px;
}

.graficos-insight-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.graficos-insight-head strong {
    color: #173257;
    font-size: 15px;
}

.graficos-insight-head span {
    color: #627a9f;
    font-size: 12px;
    text-align: right;
}

.graficos-state-track-thick {
    height: 10px;
}

.graficos-sexo-chart {
    display: grid;
    gap: 12px;
}

.graficos-sexo-row {
    padding: 12px;
    border-radius: 14px;
    border: 1px solid #d7e4f8;
    background: #fff;
}

.graficos-sexo-row.is-f {
    background: linear-gradient(180deg, rgba(255, 240, 246, 0.82) 0%, rgba(255, 249, 252, 1) 100%);
    border-color: #f5bfd8;
}

.graficos-sexo-row.is-m {
    background: linear-gradient(180deg, rgba(237, 245, 255, 0.92) 0%, rgba(249, 252, 255, 1) 100%);
    border-color: #c3dafc;
}

.graficos-sexo-row-top {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 10px;
}

.graficos-sexo-row-top strong {
    display: block;
    color: #173257;
    font-size: 14px;
}

.graficos-sexo-row-top span {
    display: block;
    margin-top: 4px;
    color: #627a9f;
    font-size: 12px;
}

.graficos-sexo-row-total {
    color: #173257;
    font-size: 20px;
    font-weight: 800;
    line-height: 1;
}

.graficos-sexo-fill.is-f {
    background: linear-gradient(90deg, #ec4899 0%, #f472b6 100%);
}

.graficos-sexo-fill.is-m {
    background: linear-gradient(90deg, #1f6fe5 0%, #7db0ff 100%);
}

.graficos-sexo-row-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin-top: 10px;
    color: #5d7497;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.graficos-composicion-chart {
    display: grid;
    gap: 14px;
}

.graficos-composicion-bar {
    height: 20px;
    display: flex;
    overflow: hidden;
    border-radius: 999px;
    background: #e5edf9;
    box-shadow: inset 0 1px 2px rgba(18, 38, 76, 0.08);
}

.graficos-composicion-bar span {
    display: block;
    height: 100%;
}

.graficos-composicion-grid {
    display: grid;
    gap: 10px;
}

.graficos-composicion-item {
    display: grid;
    grid-template-columns: 12px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
}

.graficos-composicion-dot {
    width: 12px;
    height: 12px;
    margin-top: 4px;
    border-radius: 50%;
}

.graficos-composicion-item strong {
    display: block;
    color: #173257;
    font-size: 13px;
}

.graficos-composicion-item small {
    display: block;
    margin-top: 3px;
    color: #627a9f;
    font-size: 12px;
}

.graficos-podio-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    align-items: end;
    min-height: 250px;
}

.graficos-podio-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
}

.graficos-podio-col.rank-1 {
    order: 2;
}

.graficos-podio-col.rank-2 {
    order: 1;
}

.graficos-podio-col.rank-3 {
    order: 3;
}

.graficos-podio-avatar .graficos-candidato-photo,
.graficos-podio-avatar .graficos-candidato-photo.is-empty {
    width: 56px;
    height: 56px;
    margin: 0 auto;
}

.graficos-podio-pillar {
    width: 100%;
    min-height: 90px;
    padding: 12px 10px;
    border-radius: 18px 18px 10px 10px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    background: linear-gradient(180deg, #deebff 0%, #b9d4fb 100%);
    border: 1px solid #c7daf8;
    box-shadow: 0 14px 24px rgba(31, 111, 229, 0.10);
}

.graficos-podio-col.rank-1 .graficos-podio-pillar {
    background: linear-gradient(180deg, #b8d4fb 0%, #7fb0f0 100%);
    border-color: #8cb8f0;
}

.graficos-podio-pillar strong {
    display: block;
    color: #173257;
    font-size: 22px;
    line-height: 1;
}

.graficos-podio-pillar span {
    display: block;
    margin-top: 6px;
    color: #456892;
    font-size: 12px;
    font-weight: 700;
}

.graficos-podio-name {
    color: #173257;
    font-size: 13px;
    font-weight: 800;
}

.graficos-podio-lista {
    color: #627a9f;
    font-size: 12px;
}

.graficos-summary-modal {
    text-align: left;
}

.graficos-summary-modal pre {
    margin: 0;
    white-space: pre-wrap;
    font: 600 13px/1.6 "Segoe UI", sans-serif;
    color: #173257;
}

.graficos-geo-card {
    margin-top: 14px;
}

.graficos-geo-toolbar {
    align-items: stretch;
    gap: 18px;
}

.graficos-geo-toolbar-main {
    flex: 1 1 420px;
    min-width: 280px;
}

.graficos-geo-toolbar-main h3 {
    margin: 0 0 8px;
}

.graficos-geo-toolbar-main p {
    margin: 0;
    max-width: 760px;
}

.graficos-geo-controls-panel {
    flex: 0 1 520px;
    min-width: 320px;
    display: grid;
    gap: 12px;
    justify-items: stretch;
    padding: 14px 16px;
    border: 1px solid #d7e4f8;
    border-radius: 18px;
    background:
        radial-gradient(circle at top left, rgba(59, 123, 221, 0.08), transparent 35%),
        linear-gradient(180deg, #fbfdff 0%, #f4f8ff 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.graficos-geo-controls {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 12px;
}

.graficos-geo-control-group {
    display: grid;
    gap: 6px;
}

.graficos-geo-control-label {
    color: #5f7699;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.graficos-map-expand-btn {
    min-height: 38px;
    border-radius: 999px;
    padding: 0 16px;
    font-weight: 700;
    white-space: nowrap;
    justify-self: end;
    min-width: 190px;
}

.graficos-map-expand-btn.is-active {
    background: linear-gradient(180deg, #1f6fe5 0%, #195cc0 100%);
    color: #ffffff;
    border-color: #1f6fe5;
}

.graficos-geo-switch {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px;
    border-radius: 999px;
    border: 1px solid #d4e2f7;
    background: #f8fbff;
}

.graficos-geo-toggle {
    min-height: 38px;
    padding: 0 16px;
    border-radius: 999px;
    border: 1px solid transparent;
    background: transparent;
    color: #5f7699;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
}

.graficos-geo-toggle.is-active {
    border-color: #b9d2fb;
    background: linear-gradient(180deg, #eef5ff 0%, #deebff 100%);
    color: #17427d;
    box-shadow: 0 10px 18px rgba(31, 111, 229, 0.10);
}

.graficos-geo-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) 360px;
    gap: 16px;
    margin-top: 14px;
}

.graficos-geo-map-shell {
    border: 1px solid #d7e4f8;
    border-radius: 18px;
    overflow: hidden;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
}

.graficos-geo-map-status {
    padding: 12px 14px;
    border-bottom: 1px solid #dde8fb;
    color: #5f7699;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: rgba(245, 249, 255, 0.95);
}

.graficos-geo-map {
    width: 100%;
    height: 520px;
    background: #edf4ff;
}

.graficos-geo-side {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.graficos-geo-side-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.graficos-geo-side-card,
.graficos-geo-highlight,
.graficos-geo-legend {
    border: 1px solid #d7e4f8;
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    padding: 14px;
}

.graficos-geo-side-card span {
    display: block;
    color: #5d7497;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.graficos-geo-side-card strong {
    display: block;
    margin-top: 8px;
    font-size: 22px;
    line-height: 1.1;
    color: #173257;
}

.graficos-geo-highlight h4 {
    margin: 8px 0 6px;
    color: #173257;
    font-size: 22px;
}

.graficos-geo-legend {
    min-height: 180px;
}

.graficos-manabi-board {
    margin-top: 16px;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) 360px;
    gap: 16px;
}

.graficos-manabi-highcharts-card,
.graficos-manabi-map-panel,
.graficos-manabi-side-card {
    border: 1px solid #d7e4f8;
    border-radius: 18px;
    background:
        radial-gradient(circle at top left, rgba(59, 123, 221, 0.08), transparent 30%),
        linear-gradient(180deg, #ffffff 0%, #f9fbff 100%);
    padding: 14px;
}

.graficos-manabi-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}

.graficos-map-head-actions {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 12px;
}

.graficos-manabi-head h4 {
    margin: 6px 0 0;
    color: #173257;
    font-size: 20px;
}

.graficos-manabi-head p {
    max-width: 360px;
    margin: 0;
    text-align: right;
}

.graficos-manabi-map-stage {
    min-height: 520px;
    height: 520px;
}

.graficos-territorial-shell {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 12px;
    height: 100%;
    min-height: 0;
}

.graficos-territorial-axis {
    display: grid;
    align-content: stretch;
    gap: 0;
    padding: 18px 0 70px;
}

.graficos-territorial-axis span {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    color: #1f4e8f;
    font-size: 12px;
    font-weight: 700;
}

.graficos-territorial-stage {
    position: relative;
    min-height: 0;
    border: 1px solid #dce7f8;
    border-radius: 20px;
    background: linear-gradient(180deg, #fdfefe 0%, #f4f8ff 100%);
    overflow: hidden;
    padding: 18px 18px 14px;
}

.graficos-territorial-gridlines {
    position: absolute;
    inset: 18px 18px 88px;
    display: grid;
    align-content: stretch;
    pointer-events: none;
}

.graficos-territorial-gridlines span {
    border-top: 1px dashed rgba(70, 125, 198, 0.22);
}

.graficos-territorial-gridlines span:last-child {
    border-top-style: solid;
    border-top-color: rgba(70, 125, 198, 0.28);
}

.graficos-territorial-scroll {
    position: relative;
    z-index: 1;
    height: 100%;
    min-height: 0;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(168px, 1fr);
    align-items: end;
    gap: 16px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 10px 4px 4px;
}

.graficos-territorial-col {
    min-width: 0;
    display: grid;
    justify-items: center;
    align-content: end;
    gap: 8px;
}

.graficos-territorial-avatar-wrap {
    min-height: 58px;
    display: grid;
    align-items: end;
}

.graficos-territorial-avatar-wrap .graficos-visual-avatar {
    width: 56px;
    height: 56px;
    box-shadow: 0 8px 20px rgba(21, 46, 90, 0.14);
}

.graficos-territorial-bar-wrap {
    width: 100%;
    min-height: 260px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.graficos-territorial-bar {
    width: min(100%, 132px);
    min-height: 72px;
    border-radius: 22px 22px 14px 14px;
    background: linear-gradient(180deg, #5a9bf2 0%, #2d6eb6 100%);
    box-shadow: 0 18px 28px rgba(33, 78, 138, 0.18);
}

.graficos-territorial-bar.is-soft {
    background: linear-gradient(180deg, #b8d9fb 0%, #7eb3e4 100%);
}

.graficos-territorial-votes {
    color: #173e78;
    font-size: 14px;
    font-weight: 800;
}

.graficos-territorial-name {
    color: #173257;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
    word-break: break-word;
}

.graficos-territorial-leader {
    color: #1f4e8f;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.3;
    text-align: center;
    word-break: break-word;
}

.graficos-territorial-bar-meta {
    color: #627a9f;
    font-size: 10px;
    line-height: 1.35;
    text-align: center;
    word-break: break-word;
}

.graficos-manabi-highcharts-card {
    margin-top: 16px;
}

.graficos-manabi-highcharts-stage {
    min-height: 520px;
    height: 520px;
}

.graficos-geochart-shell {
    display: grid;
    grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
    gap: 18px;
    height: 100%;
}

.graficos-geochart-summary {
    display: grid;
    gap: 14px;
}

.graficos-geochart-focus-card,
.graficos-geochart-ranking-card {
    background: linear-gradient(180deg, #f9fbff 0%, #eff5ff 100%);
    border: 1px solid #d6e4fb;
    border-radius: 22px;
    padding: 16px 18px;
    box-shadow: 0 14px 28px rgba(25, 56, 102, 0.08);
}

.graficos-geochart-focus-card h5 {
    margin: 6px 0 8px;
    color: #173257;
    font-size: 28px;
    line-height: 1.05;
}

.graficos-geochart-focus-card > strong {
    display: block;
    color: #1f5eb8;
    font-size: 16px;
    font-weight: 900;
    line-height: 1.25;
}

.graficos-geochart-focus-card > p {
    margin: 8px 0 0;
    color: #627a9f;
    font-size: 13px;
    line-height: 1.45;
}

.graficos-geochart-focus-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 16px;
}

.graficos-geochart-focus-metrics div {
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid #dce8fb;
    padding: 10px 12px;
}

.graficos-geochart-focus-metrics span {
    display: block;
    color: #627a9f;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.graficos-geochart-focus-metrics strong {
    display: block;
    margin-top: 4px;
    color: #173257;
    font-size: 18px;
    font-weight: 900;
}

.graficos-geochart-ranking-list {
    display: grid;
    gap: 10px;
    margin-top: 8px;
}

.graficos-geochart-rank-row {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid #dce8fb;
    padding: 10px 12px;
}

.graficos-geochart-rank-index {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #dce9fd;
    color: #1f5eb8;
    font-size: 14px;
    font-weight: 900;
}

.graficos-geochart-rank-copy {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.graficos-geochart-rank-copy strong {
    color: #173257;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.2;
}

.graficos-geochart-rank-copy span {
    color: #627a9f;
    font-size: 11px;
    line-height: 1.35;
}

.graficos-geochart-rank-metrics {
    display: grid;
    justify-items: end;
    gap: 2px;
}

.graficos-geochart-rank-metrics strong {
    color: #173257;
    font-size: 14px;
    font-weight: 900;
}

.graficos-geochart-rank-metrics span {
    color: #1f5eb8;
    font-size: 11px;
    font-weight: 800;
}

.graficos-geochart-map-wrap {
    border-radius: 24px;
    background: linear-gradient(180deg, #f8fbff 0%, #edf4ff 100%);
    border: 1px solid #d6e4fb;
    padding: 14px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.graficos-geochart-map {
    width: 100%;
    height: 100%;
    min-height: 490px;
    border-radius: 18px;
    overflow: hidden;
}

.graficos-map-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(9, 18, 36, 0.62);
    z-index: 1280;
    display: none;
}

.graficos-map-backdrop.is-open {
    display: block;
}

.graficos-geo-map-shell.is-map-fullscreen,
.graficos-manabi-map-panel.is-map-fullscreen,
.graficos-manabi-highcharts-card.is-map-fullscreen {
    position: fixed;
    inset: 14px;
    z-index: 1290;
    margin: 0;
    border-radius: 20px;
    box-shadow: 0 28px 60px rgba(8, 17, 35, 0.36);
    overflow: hidden;
}

.graficos-geo-map-shell.is-map-fullscreen {
    padding: 0;
    display: flex;
    flex-direction: column;
}

.graficos-geo-map-shell.is-map-fullscreen .graficos-geo-map {
    height: calc(100vh - 150px);
    min-height: calc(100vh - 150px);
}

.graficos-manabi-map-panel.is-map-fullscreen,
.graficos-manabi-highcharts-card.is-map-fullscreen {
    display: flex;
    flex-direction: column;
}

.graficos-manabi-map-panel.is-map-fullscreen .graficos-manabi-map-stage,
.graficos-manabi-highcharts-card.is-map-fullscreen .graficos-manabi-highcharts-stage {
    height: calc(100vh - 170px);
    min-height: calc(100vh - 170px);
}

.graficos-manabi-map-panel.is-map-fullscreen .graficos-manabi-map-shell,
.graficos-manabi-map-panel.is-map-fullscreen .graficos-manabi-focus-map {
    min-height: calc(100vh - 190px);
    height: calc(100vh - 190px);
}

.graficos-manabi-map-shell {
    position: relative;
    width: 100%;
    min-height: 500px;
    border: 1px solid #dce7f8;
    border-radius: 18px;
    overflow: hidden;
    background: linear-gradient(180deg, #f4f8ff 0%, #eef5ff 100%);
}

.graficos-manabi-map-image {
    display: block;
    width: 100%;
    height: auto;
}

.graficos-manabi-map-overlay {
    position: absolute;
    inset: 0;
}

.graficos-manabi-marker {
    position: absolute;
    transform: translate(-50%, -100%);
    width: 122px;
    display: grid;
    justify-items: center;
    gap: 4px;
}

.graficos-manabi-marker .graficos-visual-avatar {
    width: 44px;
    height: 44px;
}

.graficos-manabi-marker-bar {
    width: 26px;
    min-height: 36px;
    border-radius: 14px 14px 8px 8px;
    background: linear-gradient(180deg, #a9cdf2 0%, var(--marker-color) 100%);
    box-shadow: 0 14px 24px rgba(18, 38, 76, 0.16);
}

.graficos-manabi-marker-bar.is-soft {
    opacity: 0.82;
}

.graficos-manabi-marker-label {
    max-width: 118px;
    padding: 4px 10px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.94);
    color: #173257;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.15;
    text-align: center;
    box-shadow: 0 8px 18px rgba(18, 38, 76, 0.12);
    white-space: normal;
    word-break: break-word;
    text-wrap: balance;
}

.graficos-manabi-marker-votes {
    color: #1f5eb8;
    font-size: 10px;
    font-weight: 800;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.88);
}

.graficos-manabi-map-note {
    margin-top: 10px;
    color: #627a9f;
    font-size: 11px;
    line-height: 1.4;
}

.graficos-manabi-focus-map {
    width: 100%;
    height: 470px;
    border: 1px solid #dce7f8;
    border-radius: 18px;
    overflow: hidden;
    background: #edf4ff;
}

.graficos-manabi-ranking {
    display: grid;
    gap: 10px;
    margin-top: 10px;
}

.graficos-manabi-ranking-row {
    display: grid;
    grid-template-columns: 34px 42px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    padding: 10px;
    border: 1px solid #dde7f8;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.graficos-manabi-ranking-rank {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 12px;
    background: linear-gradient(180deg, #eef5ff 0%, #dfeeff 100%);
    color: #1c5eb8;
    font-size: 14px;
    font-weight: 800;
}

.graficos-manabi-ranking-copy {
    min-width: 0;
}

.graficos-manabi-ranking-copy strong,
.graficos-manabi-ranking-copy span,
.graficos-manabi-ranking-copy small {
    display: block;
}

.graficos-manabi-ranking-copy strong {
    color: #173257;
    font-size: 13px;
}

.graficos-manabi-ranking-copy span {
    margin-top: 3px;
    color: #446894;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
}

.graficos-manabi-ranking-copy small {
    margin-top: 4px;
    color: #627a9f;
    font-size: 10px;
    line-height: 1.35;
}

.graficos-hc-tooltip {
    display: grid;
    gap: 4px;
    min-width: 220px;
}

.graficos-hc-tooltip strong {
    color: #173257;
    font-size: 14px;
}

.graficos-hc-tooltip span {
    color: #1f5eb8;
    font-size: 12px;
    font-weight: 700;
}

.graficos-hc-tooltip small {
    color: #627a9f;
    font-size: 11px;
    line-height: 1.4;
}

.graficos-hc-province-label {
    display: grid;
    gap: 3px;
    padding: 6px 8px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 10px 18px rgba(17, 37, 71, 0.12);
    text-align: center;
    min-width: 88px;
}

.graficos-hc-province-label strong {
    color: #173257;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.15;
}

.graficos-hc-province-label span {
    color: #1f5eb8;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}

.graficos-focus-marker-wrap {
    background: transparent;
    border: none;
}

.graficos-focus-marker {
    width: 122px;
    display: grid;
    justify-items: center;
    gap: 4px;
}

.graficos-focus-marker .graficos-visual-avatar {
    width: 42px;
    height: 42px;
}

.graficos-focus-marker-bar {
    width: 24px;
    min-height: 36px;
    border-radius: 14px 14px 8px 8px;
    background: linear-gradient(180deg, #a9cdf2 0%, var(--focus-marker-color) 100%);
    box-shadow: 0 14px 24px rgba(18, 38, 76, 0.18);
}

.graficos-focus-marker-bar.is-soft {
    opacity: 0.84;
}

.graficos-focus-marker-label {
    max-width: 118px;
    padding: 4px 10px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.98);
    color: #173257;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.15;
    text-align: center;
    box-shadow: 0 8px 18px rgba(18, 38, 76, 0.14);
    white-space: normal;
    word-break: break-word;
    text-wrap: balance;
}

.graficos-focus-marker-votes {
    color: #1f5eb8;
    font-size: 10px;
    font-weight: 800;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.88);
}

.graficos-geo-legend-title {
    margin-bottom: 12px;
    color: #173257;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.graficos-geo-legend-row {
    display: grid;
    grid-template-columns: 14px 34px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
}

.graficos-geo-legend-row + .graficos-geo-legend-row {
    margin-top: 10px;
}

.graficos-geo-legend-swatch {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    box-shadow: 0 0 0 2px rgba(255,255,255,0.9), 0 0 0 1px rgba(17, 24, 39, 0.08);
}

.graficos-geo-legend-avatar {
    width: 34px;
    height: 34px;
}

.graficos-geo-legend-avatar .graficos-candidato-photo {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    box-shadow: 0 10px 22px rgba(17, 24, 39, 0.12);
}

.graficos-geo-legend-row strong {
    display: block;
    color: #173257;
    font-size: 13px;
}

.graficos-geo-legend-row span {
    color: #627a9f;
    font-size: 12px;
}

.graficos-geo-heat-scale {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
}

.graficos-geo-heat-scale span {
    color: #627a9f;
    font-size: 12px;
    font-weight: 700;
}

.graficos-geo-heat-bar {
    height: 12px;
    border-radius: 999px;
    background: linear-gradient(90deg, #38bdf8 0%, #22c55e 25%, #f59e0b 65%, #ea580c 82%, #b91c1c 100%);
}

.graficos-geo-popup-title {
    color: #173257;
    font-size: 14px;
    font-weight: 800;
}

.graficos-geo-popup-subtitle {
    margin-top: 4px;
    color: #627a9f;
    font-size: 12px;
}

.graficos-geo-popup-grid {
    display: grid;
    grid-template-columns: auto auto;
    gap: 6px 10px;
    margin-top: 10px;
    font-size: 12px;
}

.graficos-geo-popup-grid span {
    color: #627a9f;
}

.graficos-geo-popup-grid strong {
    color: #173257;
    text-align: right;
}

.graficos-geo-popup-winner {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #e1ebfb;
}

.graficos-geo-popup-winner span {
    display: block;
    color: #5d7497;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.graficos-geo-popup-winner strong {
    display: block;
    margin-top: 4px;
    color: #173257;
    font-size: 14px;
}

.graficos-geo-popup-winner small {
    display: block;
    margin-top: 4px;
    color: #627a9f;
    font-size: 12px;
}

.graficos-geo-popup-candidate {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    margin-top: 6px;
}

.graficos-geo-popup-avatar .graficos-candidato-photo {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    box-shadow: 0 12px 24px rgba(17, 24, 39, 0.16);
}

.graficos-geo-popup-candidate-copy {
    min-width: 0;
}

.graficos-geo-popup-candidate-copy strong {
    margin-top: 0;
}

.graficos-geo-popup-candidate-copy em {
    display: block;
    margin-top: 5px;
    color: #1f6fe5;
    font-size: 11px;
    font-style: normal;
    line-height: 1.35;
}

.graficos-geo-marker-wrap {
    background: transparent;
    border: none;
}

.graficos-geo-marker-stack {
    width: max(var(--geo-marker-size), 118px);
    display: grid;
    justify-items: center;
    align-items: end;
    gap: 4px;
}

.graficos-geo-marker {
    position: relative;
    width: var(--geo-marker-size);
    height: var(--geo-marker-size);
    border-radius: 50%;
    box-shadow: 0 16px 28px rgba(17, 24, 39, 0.22);
    z-index: 2;
}

.graficos-geo-marker::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: var(--geo-marker-color);
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.96);
}

.graficos-geo-marker-media {
    position: absolute;
    inset: 4px;
    border-radius: 50%;
    background: linear-gradient(180deg, #ffffff 0%, #f4f8ff 100%);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    z-index: 1;
    overflow: hidden;
}

.graficos-geo-marker-media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.graficos-geo-marker-media.is-party-logo {
    background-size: contain;
    background-color: #ffffff;
}

.graficos-geo-marker-media.is-party-logo img {
    object-fit: contain;
}

.graficos-geo-marker-fallback {
    position: absolute;
    inset: 4px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #ffffff;
    color: #173257;
    font-weight: 800;
    font-size: 11px;
    z-index: 1;
}

.graficos-geo-marker-badge {
    position: absolute;
    right: -4px;
    bottom: -4px;
    z-index: 2;
    min-width: 28px;
    padding: 2px 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid rgba(31, 111, 229, 0.2);
    color: #173257;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    box-shadow: 0 8px 18px rgba(17, 24, 39, 0.14);
}

.graficos-geo-marker-bar {
    width: clamp(12px, calc(var(--geo-marker-size) * 0.34), 18px);
    height: var(--geo-marker-bar-height);
    border-radius: 12px 12px 8px 8px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.4) 0%, var(--geo-marker-color) 22%, color-mix(in srgb, var(--geo-marker-color) 72%, #ffffff 28%) 100%);
    box-shadow: 0 14px 24px rgba(17, 24, 39, 0.18);
    opacity: 0.96;
}

.graficos-geo-marker-label {
    max-width: 96px;
    padding: 3px 8px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.97);
    color: #173257;
    font-size: 8px;
    font-weight: 800;
    line-height: 1.08;
    text-align: center;
    box-shadow: 0 8px 18px rgba(17, 24, 39, 0.14);
    white-space: normal;
    word-break: break-word;
    text-wrap: balance;
}

.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
    box-shadow: 0 18px 36px rgba(17, 24, 39, 0.16);
}

.graficos-visual-card {
    margin-top: 16px;
    padding: 14px;
    border: 1px solid #d8e4f8;
    border-radius: 18px;
    background:
        radial-gradient(circle at top left, rgba(59, 123, 221, 0.08), transparent 34%),
        linear-gradient(180deg, #ffffff 0%, #f9fbff 100%);
}

.graficos-visual-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.graficos-visual-filter {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 999px;
    border: 1px solid #d0def7;
    background: #ffffff;
    color: #173257;
    font-weight: 700;
    box-shadow: 0 8px 16px rgba(18, 38, 76, 0.05);
    cursor: default;
}

.graficos-visual-copy {
    margin-left: auto;
    text-align: right;
}

.graficos-visual-copy strong {
    display: block;
    color: #173257;
    font-size: 15px;
}

.graficos-visual-copy span {
    display: block;
    margin-top: 4px;
    color: #60789e;
    font-size: 12px;
}

.graficos-visual-shell {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 10px;
    min-height: 360px;
}

.graficos-visual-axis {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
    padding: 44px 0 56px;
    color: #173257;
    font-size: 12px;
}

.graficos-visual-bars {
    position: relative;
    min-height: 360px;
}

.graficos-visual-gridlines {
    position: absolute;
    inset: 20px 0 70px 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    pointer-events: none;
}

.graficos-visual-gridlines span {
    display: block;
    border-top: 1px dashed #cfdcf5;
}

.graficos-visual-bars-scroll {
    position: relative;
    z-index: 1;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(130px, 1fr);
    gap: 18px;
    align-items: end;
    min-height: 360px;
    padding: 14px 4px 0;
    overflow-x: auto;
}

.graficos-visual-bar-col {
    position: relative;
    display: grid;
    grid-template-rows: 48px minmax(220px, 1fr) auto auto auto;
    gap: 8px;
    align-items: end;
    min-height: 346px;
}

.graficos-visual-avatar {
    width: 48px;
    height: 48px;
    margin: 0 auto;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 800;
    color: #173257;
    background: #e9f1ff;
    border: 3px solid #ffffff;
    box-shadow: 0 10px 18px rgba(18, 38, 76, 0.10);
    overflow: hidden;
    position: relative;
}

.graficos-visual-avatar.is-strong {
    border-color: color-mix(in srgb, var(--candidate-color, #2b6db0) 58%, #ffffff);
    background: linear-gradient(180deg, color-mix(in srgb, var(--candidate-color, #2b6db0) 82%, #ffffff) 0%, var(--candidate-color, #2b6db0) 100%);
    color: #ffffff;
}

.graficos-visual-avatar.is-soft {
    border-color: color-mix(in srgb, var(--candidate-color, #2b6db0) 25%, #ffffff);
    background: color-mix(in srgb, var(--candidate-color, #2b6db0) 16%, #ffffff);
    color: #173257;
}

.graficos-visual-avatar > img,
.graficos-visual-avatar-fallback {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    display: block;
    background: #ffffff;
}

.graficos-visual-avatar > img {
    object-position: center center;
}

.graficos-visual-avatar > img.is-party-logo {
    object-fit: contain;
    padding: 4px;
    background: #ffffff;
}

.graficos-visual-avatar > img.is-candidate-photo {
    object-fit: cover;
}

.graficos-visual-avatar-fallback {
    display: grid;
    place-items: center;
}

.graficos-visual-avatar-badge {
    position: absolute;
    right: -2px;
    bottom: -2px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    padding: 2px;
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid rgba(31, 111, 229, 0.16);
    box-shadow: 0 8px 16px rgba(18, 38, 76, 0.18);
}

.graficos-visual-avatar-badge img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: contain;
    background: #ffffff;
    display: block;
}

.graficos-visual-bar-wrap {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 220px;
    display: flex;
    align-items: flex-end;
}

.graficos-visual-bar {
    position: relative;
    width: 100%;
    height: 0;
    min-height: 16px;
    border-radius: 18px 18px 10px 10px;
    border: 1px solid color-mix(in srgb, var(--candidate-color, #2b6db0) 72%, #17385f);
    background: linear-gradient(180deg, color-mix(in srgb, var(--candidate-color, #2b6db0) 72%, #ffffff) 0%, var(--candidate-color, #2b6db0) 100%);
    box-shadow: 0 12px 24px color-mix(in srgb, var(--candidate-color, #2b6db0) 20%, transparent);
}

.graficos-visual-bar.is-strong {
    outline: 4px solid color-mix(in srgb, var(--candidate-color, #2b6db0) 28%, #ffffff);
    outline-offset: 2px;
}

.graficos-visual-bar.is-soft {
    opacity: 0.9;
}

.graficos-visual-trophy {
    position: absolute;
    top: -30px;
    left: 50%;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: 2px solid #ffffff;
    border-radius: 50%;
    color: #ffffff;
    background: #d88900;
    box-shadow: 0 7px 14px rgba(124, 76, 0, 0.28);
    transform: translateX(-50%);
}

.graficos-visual-bar-col.is-leader .graficos-visual-votes,
.graficos-visual-bar-col.is-leader .graficos-visual-percent {
    color: var(--candidate-color, #2b6db0);
}

.graficos-visual-votes {
    text-align: center;
    font-size: 16px;
    font-weight: 800;
    color: #173257;
}

.graficos-visual-percent {
    text-align: center;
    font-size: 13px;
    font-weight: 800;
    color: #1f5eb8;
    margin-top: -2px;
}

.graficos-visual-lista {
    text-align: center;
    font-size: 11px;
    font-weight: 700;
    color: #1f5eb8;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.graficos-visual-name {
    text-align: center;
    font-size: 11px;
    line-height: 1.3;
    color: #577095;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 28px;
}

.graficos-dignidad-body {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.7fr);
    gap: 14px;
    margin-top: 14px;
}

.graficos-dignidad-panel,
.graficos-dignidad-side {
    min-width: 0;
}

.graficos-dignidad-header h3 {
    margin: 6px 0 4px;
    color: #173257;
    font-size: 28px;
}

.graficos-candidato-row {
    display: grid;
    grid-template-columns: 52px 42px minmax(0, 1fr);
    gap: 12px;
    align-items: stretch;
    border-left: 5px solid var(--candidate-color, #2b6db0);
}

.graficos-candidato-row.is-leader {
    border-color: var(--candidate-color, #2b6db0);
    background: linear-gradient(180deg, color-mix(in srgb, var(--candidate-color, #2b6db0) 8%, #ffffff) 0%, #ffffff 100%);
    box-shadow: 0 10px 24px color-mix(in srgb, var(--candidate-color, #2b6db0) 14%, transparent);
}

.graficos-candidato-rank {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 700;
    color: var(--candidate-color, #1c5eb8);
    border-radius: 12px;
    background: color-mix(in srgb, var(--candidate-color, #1c5eb8) 12%, #ffffff);
}

.graficos-candidato-name {
    font-size: 18px;
    font-weight: 700;
    color: #173257;
}

.graficos-candidato-party {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 6px;
    color: #5d769d;
    font-size: 13px;
}

.graficos-lista-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    border-radius: 999px;
    background: #edf4ff;
    border: 1px solid #c9ddfb;
    color: #1f5eb8;
    font-weight: 700;
    font-size: 11px;
}

.graficos-candidato-totals {
    text-align: right;
}

.graficos-candidato-totals strong {
    display: block;
    font-size: 24px;
    color: #173257;
}

.graficos-candidato-totals span {
    display: block;
    color: #5d769d;
    font-size: 12px;
    font-weight: 700;
}

.graficos-candidato-bar {
    width: 100%;
    height: 10px;
    border-radius: 999px;
    overflow: hidden;
    background: #dde8fb;
    margin-top: 12px;
}

.graficos-candidato-fill {
    position: relative;
    background: linear-gradient(90deg, var(--candidate-color, #2b6db0) 0%, color-mix(in srgb, var(--candidate-color, #2b6db0) 58%, #ffffff) 100%);
    box-shadow: 0 4px 10px color-mix(in srgb, var(--candidate-color, #2b6db0) 22%, transparent);
}

.graficos-candidato-row.is-leader .graficos-candidato-bar {
    overflow: visible;
}

.graficos-horizontal-trophy {
    position: absolute;
    z-index: 2;
    top: 50%;
    right: -12px;
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border: 2px solid #ffffff;
    border-radius: 50%;
    color: #ffffff;
    background: #d88900;
    box-shadow: 0 5px 11px rgba(124, 76, 0, 0.25);
    transform: translateY(-50%);
}

.graficos-result-leader-chip {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin: 0 0 5px auto !important;
    padding: 4px 8px;
    border: 1px solid #e6b856;
    border-radius: 999px;
    color: #805100 !important;
    background: #fff6d8;
    font-size: 10px !important;
    font-weight: 900;
    text-transform: uppercase;
}

.graficos-side-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.graficos-side-card strong {
    display: block;
    margin-top: 6px;
    font-size: 24px;
    color: #173257;
}

.graficos-side-card-alert {
    background: linear-gradient(180deg, #fff6f6 0%, #ffeded 100%);
    border-color: #f4c8c8;
}

.graficos-side-card-alert strong {
    color: #c0392b;
}

.graficos-empty {
    padding: 18px;
    border: 1px dashed #d1def6;
    border-radius: 14px;
    background: #f9fbff;
    color: #61799d;
    text-align: center;
}

.votos-acta-modal-header {
    cursor: move;
    user-select: none;
    flex: 0 0 auto;
    z-index: 20;
    box-shadow: 0 8px 16px rgba(16, 40, 82, 0.08);
}

.votos-acta-modal-body {
    height: 100%;
    overflow: hidden;
}

.votos-acta-modal-content {
    width: 100%;
    height: calc(100% - 4px);
    border-radius: 10px;
    overflow: hidden;
    background: #eff4fb;
    display: flex;
    align-items: center;
    justify-content: center;
}

.votos-acta-modal-content iframe,
.votos-acta-modal-content img {
    width: 100%;
    height: 100%;
    border: 0;
    background: #fff;
}

.votos-acta-modal-content img {
    object-fit: contain;
}

.digitacion-viewer-panel {
    width: 100%;
    height: 100%;
    overflow: auto;
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    background: linear-gradient(180deg, #f8fbff 0%, #eef4fb 100%);
}

.digitacion-viewer-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}

.digitacion-viewer-card,
.digitacion-viewer-mini,
.digitacion-viewer-observacion,
.digitacion-viewer-table-wrap {
    background: #ffffff;
    border: 1px solid #d8e5f6;
    border-radius: 16px;
    box-shadow: 0 16px 35px rgba(35, 65, 120, 0.08);
}

.digitacion-viewer-card {
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.digitacion-viewer-label {
    display: inline-block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #5d77a2;
}

.digitacion-viewer-card strong {
    font-size: 24px;
    line-height: 1.05;
    color: #17365f;
}

.digitacion-viewer-card small {
    color: #60789e;
    font-size: 13px;
}

.digitacion-viewer-resumen {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
}

.digitacion-viewer-mini {
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.digitacion-viewer-mini span {
    font-size: 12px;
    font-weight: 700;
    color: #60789e;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.digitacion-viewer-mini strong {
    font-size: 22px;
    color: #15355d;
}

.digitacion-viewer-table-wrap {
    padding: 12px;
}

.digitacion-viewer-table {
    width: 100%;
    border-collapse: collapse;
}

.digitacion-viewer-table th,
.digitacion-viewer-table td {
    padding: 10px 12px;
    border-bottom: 1px solid #e7eef8;
    text-align: left;
}

.digitacion-viewer-table th {
    font-size: 12px;
    color: #4f6992;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    background: #f5f9ff;
}

.digitacion-viewer-table td {
    font-size: 14px;
    color: #1e3d67;
}

.digitacion-viewer-table td.is-number {
    text-align: right;
    font-weight: 800;
}

.digitacion-viewer-observacion {
    padding: 14px 16px;
}

.digitacion-viewer-observacion p {
    margin: 8px 0 0;
    color: #345171;
    line-height: 1.55;
}

.monitor-history-column {
    text-align: center !important;
    white-space: nowrap;
}

.computo-history-button {
    width: 38px;
    height: 38px;
    min-width: 38px;
    padding: 0;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #1f6fe5;
    border-color: #9dc0f5;
    background: #f4f8ff;
}

.computo-history-button:hover {
    color: #ffffff;
    border-color: #1f6fe5;
    background: #1f6fe5;
}

.computo-history-empty {
    color: #93a4bc;
    font-weight: 700;
}

.digitacion-history-panel {
    gap: 14px;
}

.digitacion-history-context {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border: 1px solid #cfe0f6;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(35, 65, 120, 0.07);
}

.digitacion-history-context > div {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.digitacion-history-context strong {
    color: #17365f;
    font-size: 18px;
    line-height: 1.25;
}

.digitacion-history-context small {
    color: #60789e;
}

.digitacion-history-count {
    flex: 0 0 auto;
    padding: 7px 11px;
    border-radius: 999px;
    color: #174c91;
    background: #eaf2ff;
    font-size: 12px;
    font-weight: 800;
}

.digitacion-history-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.digitacion-history-entry {
    padding: 16px;
    border: 1px solid #d8e5f6;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 14px 32px rgba(35, 65, 120, 0.07);
}

.digitacion-history-entry.is-current {
    border-color: #88b5f4;
    box-shadow: 0 16px 36px rgba(31, 111, 229, 0.12);
}

.digitacion-history-entry-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.digitacion-history-entry-head > div {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.digitacion-history-entry-head > div > strong {
    color: #17365f;
    font-size: 16px;
}

.digitacion-history-entry-head small,
.digitacion-history-entry-head time {
    color: #60789e;
    font-size: 12px;
}

.digitacion-history-entry-head time {
    flex: 0 0 auto;
    font-weight: 700;
}

.digitacion-history-version-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 3px;
}

.digitacion-history-version {
    color: #1f6fe5;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.digitacion-history-summary {
    display: grid;
    grid-template-columns: repeat(6, minmax(90px, 1fr));
    gap: 9px;
    margin-top: 14px;
}

.digitacion-history-summary > div {
    min-width: 0;
    padding: 9px 10px;
    border: 1px solid #e0eaf8;
    border-radius: 12px;
    background: #f8fbff;
}

.digitacion-history-summary span,
.digitacion-history-summary strong {
    display: block;
}

.digitacion-history-summary span {
    color: #60789e;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.digitacion-history-summary strong {
    margin-top: 4px;
    color: #17365f;
    font-size: 17px;
}

.digitacion-history-summary .digitacion-history-control {
    font-size: 12px;
}

.digitacion-history-summary .digitacion-history-control.has-alert {
    color: #b42318;
}

.digitacion-history-details {
    margin-top: 14px;
    border-top: 1px solid #e2ebf7;
}

.digitacion-history-details summary {
    padding: 12px 2px 0;
    cursor: pointer;
    color: #1f6fe5;
    font-size: 13px;
    font-weight: 800;
}

.digitacion-history-details .digitacion-viewer-table-wrap {
    margin-top: 10px;
    padding: 0;
    overflow-x: auto;
    border-radius: 12px;
    box-shadow: none;
}

.digitacion-history-observation {
    margin-top: 12px;
    padding: 11px 12px;
    border-radius: 12px;
    background: #fffaf0;
    border: 1px solid #f3dfb3;
}

.digitacion-history-observation p {
    margin: 5px 0 0;
    color: #5f4a24;
    line-height: 1.45;
}

@media (max-width: 760px) {
    .digitacion-history-context,
    .digitacion-history-entry-head {
        align-items: stretch;
        flex-direction: column;
    }

    .digitacion-history-count {
        align-self: flex-start;
    }

    .digitacion-history-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.votos-dignidades-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.votos-dignidad-card {
    border: 1px solid #d6e3f6;
    border-radius: 16px;
    padding: 10px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    box-shadow: 0 14px 30px rgba(18, 38, 76, 0.06);
}

.votos-dignidad-card.is-active-dignidad.is-femenina {
    border-color: #f0a9cd;
    background: linear-gradient(180deg, #fff8fc 0%, #fff1f8 100%);
    box-shadow: 0 18px 32px rgba(196, 46, 120, 0.12);
}

.votos-dignidad-card.is-active-dignidad.is-masculina {
    border-color: #99bef6;
    background: linear-gradient(180deg, #f9fbff 0%, #edf4ff 100%);
    box-shadow: 0 18px 32px rgba(29, 95, 201, 0.12);
}

.votos-dignidad-card.has-inconsistencies {
    border-color: #e7b4b4;
    box-shadow: 0 16px 32px rgba(176, 58, 58, 0.12);
}

.votos-dignidad-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.votos-dignidad-title {
    margin: 0;
    font-size: 15px;
    color: #173257;
}

.votos-dignidad-subtitle {
    margin: 4px 0 0;
    color: #60789d;
    font-size: 11px;
}

.votos-dignidad-context {
    margin-top: 6px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid #d9e5f7;
    background: rgba(255, 255, 255, 0.88);
    color: #3f5f8c;
    font-size: 11px;
    font-weight: 700;
}

.votos-dignidad-context.is-femenina {
    border-color: #f0a9cd;
    color: #c42e78;
    background: rgba(255, 244, 250, 0.92);
}

.votos-dignidad-context.is-masculina {
    border-color: #99bef6;
    color: #1d5fc9;
    background: rgba(241, 247, 255, 0.94);
}

.votos-dignidad-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 240px;
    gap: 10px;
    align-items: start;
}

.votos-candidato-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
    gap: 7px;
}

.votos-candidato-row {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 92px;
    gap: 9px;
    align-items: center;
    min-height: 72px;
    padding: 7px;
    border: 1px solid #e0e8f6;
    border-radius: 13px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.votos-candidato-info {
    min-width: 0;
}

.votos-candidato-line {
    display: flex;
    align-items: flex-start;
    flex-wrap: nowrap;
    gap: 7px;
    min-width: 0;
}

.votos-candidato-line strong {
    min-width: 0;
    font-size: 12.5px;
    color: #18345b;
    line-height: 1.22;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-transform: uppercase;
}

.votos-lista-chip {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 3px 7px;
    border-radius: 999px;
    background: #ebf4ff;
    color: #215ea8;
    font-size: 10.5px;
    font-weight: 700;
    border: 1px solid #cde0fb;
}

.votos-candidato-meta {
    margin-top: 5px;
    color: #61789d;
    font-size: 11px;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: clip;
}

.votos-party-strip {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    min-width: 0;
    max-height: 48px;
    overflow: hidden;
}

.votos-party-chip {
    min-width: 0;
    max-width: 92px;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 6px 2px 2px;
    border-radius: 999px;
    border: 1px solid #d2e3fb;
    background: #f4f8ff;
    color: #245d9f;
    font-size: 10px;
    font-weight: 700;
}

.votos-party-chip img,
.votos-party-chip > span {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    flex: 0 0 auto;
    object-fit: contain;
    background: #ffffff;
    border: 1px solid #dbe8fa;
}

.votos-party-chip > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 8px;
}

.votos-party-chip small {
    min-width: 0;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 9.5px;
    line-height: 1;
}

.votos-party-more {
    flex: 0 0 auto;
    padding: 2px 6px;
    border-radius: 999px;
    background: #e8f0fb;
    color: #42638f;
    font-size: 10px;
    font-weight: 800;
}

.votos-candidato-input-wrap input {
    min-width: 0;
    height: 40px;
    font-size: 18px;
    text-align: center;
    font-weight: 700;
    border-radius: 12px;
    border-color: #bcd4f6;
    background: #f8fbff;
}

.votos-acta-box {
    border: 1px solid #d9e5f8;
    border-radius: 14px;
    background: linear-gradient(180deg, #f8fbff 0%, #f2f7ff 100%);
    padding: 12px;
}

.votos-acta-title {
    margin: 0 0 10px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #466287;
}

.votos-acta-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 92px;
    gap: 8px 10px;
    align-items: center;
}

.votos-acta-grid label {
    margin: 0;
    font-size: 12px;
}

.votos-acta-grid input {
    height: 36px;
    padding: 6px 8px;
    text-align: center;
    font-size: 16px;
    font-weight: 700;
}

.votos-acta-readonly {
    min-height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #cdddff;
    border-radius: 10px;
    background: #ffffff;
    color: #193b69;
    font-size: 15px;
    font-weight: 700;
}

.votos-acta-calculated-label {
    display: grid;
    gap: 2px;
}

.votos-acta-calculated-label small {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #53739e;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1;
    text-transform: uppercase;
}

.votos-calculated-value {
    min-height: 36px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 3px 4px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: #185da8;
    cursor: default;
    font-size: 21px;
    font-weight: 800;
    line-height: 1;
    text-align: right;
    user-select: text;
}

.votos-calculated-value.is-total {
    color: #087a4b;
}

.votos-acta-errors {
    margin-top: 10px;
    display: grid;
    gap: 6px;
}

.votos-acta-error-item {
    padding: 8px 10px;
    border-radius: 10px;
    background: #fff1f1;
    border: 1px solid #efc2c2;
    color: #a33434;
    font-size: 11px;
    line-height: 1.35;
}

.votos-candidato-input-wrap input:focus {
    background: #ffffff;
}

.votos-candidato-input-wrap input.is-locked,
.votos-acta-grid input.is-locked {
    background: #edf3fc;
    color: #6482ab;
    cursor: not-allowed;
}

.votos-action-bar {
    margin-top: 16px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    position: static;
    bottom: auto;
    padding-top: 12px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.72) 0%, #ffffff 35%);
}

.votos-action-buttons {
    justify-content: flex-end;
}

.votos-action-buttons button {
    width: auto;
    min-width: 220px;
}

/* Mantiene Votos dentro del ancho visible al cambiar de junta o dignidad. */
.page-votos .container,
.page-votos .votos-workspace,
.page-votos .votos-digitacion-card,
.page-votos #votos-form,
.page-votos .votos-form-head,
.page-votos .votos-form-head-top,
.page-votos .votos-main-layout,
.page-votos .votos-main-content,
.page-votos .votos-dignidades-grid,
.page-votos .votos-dignidad-card,
.page-votos .votos-dignidad-body,
.page-votos .votos-candidato-list,
.page-votos .votos-action-bar {
    min-width: 0;
    max-width: 100%;
}

.page-votos #votos-form,
.page-votos .votos-workspace,
.page-votos .votos-main-layout,
.page-votos .votos-main-content,
.page-votos .votos-action-bar {
    width: 100%;
}

@media (max-width: 980px) {
    .sidebar {
        position: fixed !important;
        top: 0 !important;
        left: calc(-1 * var(--sidebar-width-mobile) - 16px);
        width: var(--sidebar-width-mobile);
        flex-basis: var(--sidebar-width-mobile);
        height: 100dvh;
        min-height: 100dvh;
        z-index: 150;
        transition: left 0.25s ease;
        opacity: 1;
        overflow-y: auto;
        box-shadow: 4px 0 24px rgba(13, 20, 40, 0.24);
    }

    body.sidebar-open .sidebar {
        left: 0;
    }

    body.sidebar-collapsed .sidebar {
        width: var(--sidebar-width-mobile);
        flex-basis: var(--sidebar-width-mobile);
        padding: 20px 12px 16px;
        opacity: 1;
        overflow-y: auto;
        box-shadow: 4px 0 24px rgba(13, 20, 40, 0.24);
    }

    body.sidebar-collapsed .sidebar > * {
        opacity: 1;
        pointer-events: auto;
    }

    .sidebar-toggle {
        z-index: 220;
    }

    .user-menu-toggle {
        min-width: 0;
        max-width: min(250px, 56vw);
    }

    .topbar {
        z-index: 210;
        gap: 8px;
    }

    .sidebar-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(10, 22, 44, 0.38);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.22s ease;
        z-index: 140;
    }

    body.sidebar-open .sidebar-backdrop {
        opacity: 1;
        pointer-events: auto;
    }

    body.sidebar-open {
        overflow: hidden;
    }

    .row-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .page-asignaciones .row-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .page-asignaciones .row-3 > div {
        grid-column: auto;
    }

    .page-asignaciones .row-3 > .assignment-field-user,
    .page-asignaciones .row-3 > .assignment-field-total {
        grid-column: auto;
    }

    .page-asignaciones .row-3 > .assignment-field-recinto,
    .page-asignaciones .row-3 > .row-span-full {
        grid-column: 1 / -1;
    }

    .page-asignaciones .assignment-juntas-grid {
        grid-template-columns: 1fr;
    }

    .page-asignaciones .assignment-juntas-list {
        max-height: 260px;
    }

    .actas-selector-grid {
        grid-template-columns: minmax(0, 1.6fr) minmax(180px, 0.7fr);
    }

    .actas-progress-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .actas-selector-grid > div:first-child {
        grid-column: 1 / -1;
    }

    .module-group-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .profile-perm-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .votos-hero-grid,
    .votos-hero-header,
    .votos-workspace,
    .votos-form-head,
    .votos-form-head-top,
    .votos-dignidad-tabs-head,
    .graficos-main-grid,
    .graficos-insights-grid,
    .graficos-dignidad-body,
    .graficos-operativo-grid {
        grid-template-columns: 1fr;
    }

    .graficos-risk-layout {
        grid-template-columns: 1fr;
    }

    .graficos-risk-toolbar,
    .graficos-risk-controls {
        grid-template-columns: 1fr;
    }

    .votos-form-head {
        grid-template-areas:
            "tabs"
            "note"
            "acta"
            "stats";
    }

    .votos-validacion-panel,
    .votos-validacion-grid,
    .votos-validacion-primary,
    .votos-validacion-docs,
    .votos-validacion-modal-stats {
        grid-template-columns: 1fr;
    }

    .votos-validacion-candidato-card {
        grid-template-columns: 42px minmax(0, 1fr) 92px;
    }

    .votos-validacion-inline-actions {
        grid-template-columns: 1fr;
    }

    .js-votos-validacion-confirmar-inline {
        width: 100%;
        min-width: 0;
        justify-self: stretch;
    }

    .votos-validacion-actions {
        min-width: 0;
    }

    .votos-validacion-modal .app-modal-dialog {
        width: min(100vw - 18px, 1440px);
    }

    .votos-validacion-doc iframe,
    .votos-validacion-doc img {
        min-height: 360px;
        height: 360px;
    }

    .votos-validacion-doc.is-cne-primary iframe,
    .votos-validacion-doc.is-cne-primary img {
        min-height: 400px;
        height: 400px;
    }

    .votos-hero-side {
        border-left: 0;
        border-top: 1px solid #d7e4fa;
    }

    .votos-dignidades-grid {
        grid-template-columns: 1fr;
    }

    .graficos-summary-grid,
    .graficos-side-grid,
    .graficos-geo-side-grid,
    .graficos-risk-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .graficos-geo-layout {
        grid-template-columns: 1fr;
    }

    .graficos-manabi-board {
        grid-template-columns: 1fr;
    }

    .graficos-manabi-highcharts-stage {
        min-height: 440px;
        height: 440px;
    }

    .graficos-geochart-shell {
        grid-template-columns: 1fr;
    }

    .graficos-geochart-map {
        min-height: 420px;
    }

    .graficos-geo-controls {
        justify-content: flex-start;
    }

    .graficos-geo-controls-panel {
        min-width: 0;
    }

    .graficos-map-expand-btn {
        justify-self: start;
    }

    .graficos-manabi-head {
        flex-direction: column;
    }

    .graficos-manabi-head p {
        max-width: none;
        text-align: left;
    }

    .graficos-geo-map {
        height: 460px;
    }

    .graficos-podio-grid {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .graficos-filter-field,
    .graficos-filter-actions {
        grid-column: span 6;
    }

    .graficos-filter-actions {
        grid-template-columns: 1fr;
    }

    .graficos-filter-field-wide {
        grid-column: 1 / -1;
    }

    .graficos-manabi-map-stage {
        min-height: 440px;
    }

    .graficos-territorial-shell {
        grid-template-columns: 1fr;
    }

    .graficos-territorial-axis {
        display: none;
    }

    .graficos-territorial-stage {
        padding-left: 14px;
        padding-right: 14px;
    }

    .graficos-territorial-gridlines {
        inset: 18px 14px 100px;
    }

    .graficos-territorial-scroll {
        grid-auto-columns: minmax(148px, 1fr);
        gap: 12px;
    }

    .graficos-territorial-bar-wrap {
        min-height: 220px;
    }

    .graficos-territorial-name {
        font-size: 13px;
    }

    .graficos-manabi-map-shell {
        min-height: 420px;
    }

    .graficos-head {
        flex-direction: column;
    }

    .graficos-cutoff {
        width: 100%;
        text-align: left;
    }

    .graficos-visual-head {
        flex-direction: column;
        align-items: flex-start;
    }

    .graficos-visual-copy {
        margin-left: 0;
        text-align: left;
    }

    .graficos-visual-shell {
        grid-template-columns: 70px minmax(0, 1fr);
    }

    .votos-dignidad-body {
        grid-template-columns: 1fr;
    }

    .votos-main-layout {
        grid-template-columns: 1fr;
    }

    .votos-juntas-sidebar {
        position: static;
        max-height: none;
        overflow: visible;
    }

    .votos-juntas-columns {
        grid-template-columns: 1fr;
    }

    .votos-juntas-column-body {
        max-height: 300px;
    }

    .actas-board-grid,
    .computo-row-side {
        text-align: left;
    }
}

@media (max-width: 800px) {
    .row,
    .row-3 {
        grid-template-columns: 1fr;
    }

    .page-asignaciones .row-3 {
        grid-template-columns: 1fr;
    }

    .page-asignaciones .row-3 > .assignment-field-recinto {
        grid-column: auto;
    }

    .page-asignaciones .row-3 > .assignment-field-user,
    .page-asignaciones .row-3 > .assignment-field-total,
    .page-asignaciones .row-3 > div,
    .page-asignaciones .row-3 > .row-span-full {
        grid-column: auto;
    }

    .page-asignaciones .assignment-juntas-panel {
        padding: 10px;
    }

    .page-asignaciones .assignment-juntas-column-head {
        padding: 10px 10px 6px;
    }

    .page-asignaciones .assignment-juntas-column-actions {
        padding: 0 10px 8px;
    }

    .page-asignaciones .assignment-juntas-list {
        max-height: 220px;
        padding: 0 10px 10px;
    }

    .page-asignaciones #btn-save-assignment {
        width: 100%;
    }

    .assignment-workload-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .assignment-workload-updated {
        align-self: flex-start;
    }

    .assignment-workload-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .assignment-coverage-section-head {
        align-items: stretch;
        flex-direction: column;
    }

    .assignment-coverage-filter {
        flex-basis: auto;
        width: 100%;
    }

    .datatable-mobile-summary {
        display: block;
    }

    .datatable-desktop-only {
        display: none;
    }

    #computo-grid_wrapper ul.dtr-details li,
    #actas-monitor-grid_wrapper ul.dtr-details li {
        display: grid;
        grid-template-columns: 92px minmax(0, 1fr);
        gap: 6px;
    }

    #computo-grid_wrapper ul.dtr-details .dtr-title,
    #actas-monitor-grid_wrapper ul.dtr-details .dtr-title {
        min-width: 0;
        font-size: 11px;
    }

    #computo-grid_wrapper ul.dtr-details .dtr-data,
    #actas-monitor-grid_wrapper ul.dtr-details .dtr-data {
        font-size: 12px;
    }

    .module-group-grid {
        grid-template-columns: 1fr;
    }

    .assignment-juntas-grid {
        grid-template-columns: 1fr;
    }

    .profile-perm-main {
        flex-direction: column;
        align-items: flex-start;
    }

    .profile-perm-actions {
        grid-template-columns: 1fr;
    }

    .votos-hero-header,
    .votos-recinto-board,
    .votos-form-meta,
    .votos-stat-grid,
    .actas-progress-grid,
    .graficos-summary-grid,
    .graficos-geo-side-grid {
        grid-template-columns: 1fr;
    }

    .graficos-geo-controls-panel {
        padding: 12px;
    }

    .graficos-geo-control-group {
        width: 100%;
    }

    .graficos-geo-switch {
        width: 100%;
        justify-content: space-between;
    }

    .graficos-geo-toggle {
        flex: 1 1 0;
        padding-inline: 12px;
    }

    .graficos-filter-toggle {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .graficos-filter-toggle-icon {
        grid-column: 1;
        grid-row: 1;
    }

    .graficos-filter-toggle-copy {
        grid-column: 2 / 4;
        grid-row: 1;
    }

    .graficos-filter-toggle-control {
        grid-column: 4;
        grid-row: 1;
        justify-self: end;
    }

    .graficos-filter-toggle .graficos-filter-field-primary {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .graficos-filter-refresh-compact {
        grid-column: 1 / 3;
        grid-row: 3;
        width: 100%;
    }

    .graficos-filter-clear-compact {
        grid-column: 3 / 5;
        grid-row: 3;
        width: 100%;
        min-width: 86px;
    }

    .graficos-filter-toggle-meta {
        display: none;
    }

    .graficos-filter-field,
    .graficos-filter-field-wide,
    .graficos-filter-actions {
        grid-column: 1 / -1;
    }

    .graficos-geochart-focus-metrics {
        grid-template-columns: 1fr;
    }

    .graficos-filter-actions {
        grid-template-columns: 1fr;
    }

    .graficos-donut-legend,
    .graficos-geo-side-grid {
        grid-template-columns: 1fr;
    }

    .votos-board-item-wide {
        grid-column: auto;
    }

    .votos-action-bar {
        grid-template-columns: 1fr;
    }

    .votos-action-buttons {
        justify-content: stretch;
    }

    .graficos-geo-map {
        height: 380px;
    }

    .votos-dignidad-tab {
        min-width: calc(50% - 6px);
    }

    .graficos-visual-bars-scroll {
        grid-auto-columns: minmax(120px, 1fr);
    }

    .graficos-geo-side-grid {
        grid-template-columns: 1fr 1fr;
    }

    .graficos-geo-map {
        height: 380px;
    }

    .graficos-visual-bars-scroll {
        grid-auto-columns: minmax(120px, 1fr);
    }

    .graficos-manabi-marker {
        width: 78px;
    }

    .graficos-manabi-marker .graficos-visual-avatar {
        width: 38px;
        height: 38px;
    }

    .votos-acta-grid {
        grid-template-columns: minmax(0, 1fr) 82px;
    }

    .votos-validacion-candidato-card {
        grid-template-columns: 40px minmax(0, 1fr);
    }

    .votos-validacion-candidato-input {
        grid-column: 1 / -1;
    }

    .topbar {
        flex-wrap: wrap;
        align-items: flex-start;
    }

    .topbar-left {
        width: 100%;
        min-width: 0;
    }

    .topbar-title {
        font-size: 18px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .js-topbar-user-menu {
        width: 100%;
    }

    .user-menu {
        width: 100%;
    }

    .user-menu-toggle {
        width: 100%;
        max-width: 100%;
    }

    .user-menu-dropdown {
        width: 100%;
    }

    .form-section {
        padding: 10px;
    }

    .card-toolbar {
        align-items: stretch;
    }

    .card-toolbar-group,
    .card-toolbar-group-end {
        width: 100%;
        margin-left: 0;
    }

    .card-toolbar-group select,
    .card-toolbar-group button {
        width: 100%;
    }

    #users-grid {
        min-width: 0 !important;
    }

    #users-grid_wrapper .dataTables_length,
    #users-grid_wrapper .dataTables_filter,
    #modules-grid_wrapper .dataTables_length,
    #modules-grid_wrapper .dataTables_filter,
    #profiles-grid_wrapper .dataTables_length,
    #profiles-grid_wrapper .dataTables_filter,
    #patients-grid_wrapper .dataTables_length,
    #patients-grid_wrapper .dataTables_filter,
    #recintos-grid_wrapper .dataTables_length,
    #recintos-grid_wrapper .dataTables_filter,
#authorities-parties-grid_wrapper .dataTables_length,
#authorities-parties-grid_wrapper .dataTables_filter,
    #authorities-dignities-grid_wrapper .dataTables_length,
    #authorities-dignities-grid_wrapper .dataTables_filter,
    #authorities-candidates-grid_wrapper .dataTables_length,
    #authorities-candidates-grid_wrapper .dataTables_filter {
        float: none;
        text-align: left;
        margin-bottom: 8px;
    }

    #users-grid_wrapper .dataTables_filter input,
    #modules-grid_wrapper .dataTables_filter input,
    #profiles-grid_wrapper .dataTables_filter input,
    #patients-grid_wrapper .dataTables_filter input,
    #recintos-grid_wrapper .dataTables_filter input,
#authorities-parties-grid_wrapper .dataTables_filter input,
    #authorities-dignities-grid_wrapper .dataTables_filter input,
    #authorities-candidates-grid_wrapper .dataTables_filter input {
        width: 100%;
        max-width: 260px;
    }
}

@media (max-width: 640px) {
    .container {
        margin: 12px auto;
        padding: 0 10px;
    }

    .card {
        padding: 12px;
    }

    .actions {
        flex-direction: column;
        gap: 8px;
    }

    .actions button {
        width: 100%;
    }

    .page-asignaciones .form-section {
        padding: 10px;
    }

    .page-asignaciones .assignment-juntas-column-title {
        font-size: 12px;
    }

    .page-asignaciones .assignment-junta-chip-box {
        padding: 10px 12px;
    }

    .page-asignaciones .assignment-junta-chip-title {
        font-size: 12px;
    }

    .votos-hero-main,
    .votos-hero-side {
        padding: 14px;
    }

    .votos-hero-title {
        font-size: 24px;
    }

    .graficos-side-grid {
        grid-template-columns: 1fr;
    }

    .graficos-risk-bar-top,
    .graficos-risk-bar-foot,
    .graficos-risk-detail-head {
        align-items: stretch;
        flex-direction: column;
    }

    .graficos-risk-summary {
        grid-template-columns: 1fr;
    }

    .graficos-risk-bar-row {
        grid-template-columns: 34px minmax(0, 1fr);
    }

    .graficos-risk-bar-value {
        text-align: left;
    }

    .graficos-candidato-row {
        grid-template-columns: 1fr;
    }

    .graficos-candidato-rank {
        min-height: 50px;
    }

    .graficos-visual-shell {
        grid-template-columns: 1fr;
    }

    .graficos-visual-axis {
        display: none;
    }

    .votos-quick-nav button,
    .votos-action-buttons button {
        min-width: 0;
        width: 100%;
    }

    .votos-candidato-row {
        grid-template-columns: 44px minmax(0, 1fr);
    }

    .page-votos .votos-candidato-list {
        grid-template-columns: minmax(0, 1fr);
    }

    .page-votos .votos-digitado-por-box {
        grid-template-columns: minmax(0, 1fr);
        gap: 4px;
    }

    .page-votos .votos-digitado-por-box > * {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .page-votos .votos-acta-upload-head > div:first-child {
        min-width: 0;
    }

    .page-votos .votos-acta-upload-help {
        overflow-wrap: anywhere;
    }

    .votos-candidato-input-wrap {
        grid-column: 1 / -1;
    }

    .votos-dignidad-tab {
        width: 100%;
        min-width: 0;
    }

    .votos-acta-grid {
        grid-template-columns: minmax(0, 1fr) 88px;
    }

    .votos-candidato-input-wrap input {
        height: 48px;
        font-size: 20px;
    }

    .table-actions {
        justify-content: flex-start;
        width: 100%;
    }

    .table-wrap {
        overflow-x: hidden;
    }

    .page-actas-monitor .table-wrap,
    .page-computo-monitor .table-wrap {
        overflow-x: auto;
    }

    .icon-action-btn {
        width: 38px;
        min-width: 38px;
        height: 38px;
        font-size: 15px;
    }

    .icon-action-btn[data-tooltip]::after {
        display: none;
    }

    input,
    select,
    textarea {
        font-size: 16px;
        max-width: 100%;
    }

    .form-section,
    .card,
    form {
        overflow: hidden;
    }

    .login-card {
        width: min(100%, 420px);
        padding: 18px;
    }

    .login-header h2 {
        font-size: 24px;
    }

    .login-header p {
        font-size: 12px;
    }

    .app-modal-dialog {
        width: calc(100vw - 10px);
        max-height: calc(100vh - 10px);
        margin: 5px auto;
        border-radius: 10px;
    }

    .app-modal-header {
        padding: 8px 10px;
    }

    .app-modal-body {
        padding: 10px;
    }
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
}

.stat-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px;
    border: 1px solid #d8e1ef;
    border-radius: 14px;
    background: linear-gradient(180deg, #f7fbff 0%, #eef4fb 100%);
}

.stat-icon {
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: #163f6d;
    color: #fff;
    font-size: 18px;
}

.stat-content {
    min-width: 0;
}

/* Adjudicacion de concejalias por metodo D'Hondt. */
.graficos-dhondt-panel {
    margin: 18px 0;
    padding: 18px;
    border: 1px solid #c9dcf5;
    border-radius: 22px;
    background: linear-gradient(145deg, #f8fbff 0%, #eef5ff 58%, #f7fbf5 100%);
    box-shadow: 0 16px 34px rgba(28, 71, 128, 0.1);
}

.graficos-dhondt-panel[hidden] {
    display: none;
}

.graficos-dhondt-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid #d7e5f7;
}

.graficos-dhondt-hero h3 {
    margin: 4px 0 5px;
    color: #123d73;
    font-size: clamp(20px, 2.2vw, 28px);
}

.graficos-dhondt-hero p {
    max-width: 850px;
    margin: 0;
}

.graficos-dhondt-counter {
    min-width: 170px;
    padding: 14px 18px;
    border-radius: 18px;
    color: #fff;
    text-align: center;
    background: linear-gradient(135deg, #123f79, #2474c8);
    box-shadow: 0 12px 24px rgba(25, 83, 151, 0.22);
}

.graficos-dhondt-counter strong {
    display: block;
    font-size: 34px;
    line-height: 1;
}

.graficos-dhondt-counter span {
    display: block;
    margin-top: 5px;
    font-size: 12px;
}

.graficos-dhondt-lists {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
    gap: 14px;
    margin-top: 16px;
}

.graficos-dhondt-list {
    overflow: hidden;
    border: 1px solid #d9e4f2;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.9);
    opacity: 0.78;
}

.graficos-dhondt-list.has-seats {
    border-color: #86b7ec;
    opacity: 1;
    box-shadow: 0 10px 22px rgba(33, 93, 156, 0.11);
}

.graficos-dhondt-list header {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 15px;
}

.graficos-dhondt-list h4 {
    margin: 8px 0 2px;
    color: #163e70;
    font-size: 16px;
}

.graficos-dhondt-list p {
    margin: 0;
    color: #607697;
    font-size: 12px;
}

.graficos-dhondt-seat-total {
    flex: 0 0 auto;
    min-width: 72px;
    text-align: center;
}

.graficos-dhondt-seat-total strong,
.graficos-dhondt-seat-total span {
    display: block;
}

.graficos-dhondt-seat-total strong {
    color: #167047;
    font-size: 30px;
    line-height: 1;
}

.graficos-dhondt-seat-total span {
    margin-top: 4px;
    color: #59708e;
    font-size: 11px;
    text-transform: uppercase;
}

.graficos-dhondt-list-votes {
    display: flex;
    justify-content: space-between;
    padding: 9px 15px;
    color: #294d79;
    background: #edf5ff;
    font-size: 13px;
}

.graficos-dhondt-winners {
    display: grid;
    gap: 8px;
    padding: 12px;
}

.graficos-dhondt-winner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 9px;
    border: 1px solid #dce9f8;
    border-radius: 13px;
    background: #fff;
}

.graficos-dhondt-winner strong,
.graficos-dhondt-winner span {
    display: block;
}

.graficos-dhondt-winner span {
    margin-top: 3px;
    color: #657a98;
    font-size: 11px;
}

.graficos-dhondt-details {
    margin-top: 15px;
    border-top: 1px solid #d7e5f7;
    padding-top: 12px;
}

.graficos-dhondt-details summary {
    cursor: pointer;
    color: #1e568f;
    font-weight: 800;
}

.graficos-dhondt-quotients {
    display: grid;
    gap: 14px;
    margin-top: 12px;
}

.graficos-dhondt-matrix-block {
    min-width: 0;
    padding: 12px;
    border: 1px solid #dce7f5;
    border-radius: 12px;
    background: #fff;
}

.graficos-dhondt-matrix-block h4 {
    margin: 0 0 5px;
    color: #173e70;
    font-size: 15px;
}

.graficos-dhondt-matrix-block p {
    margin: 0 0 10px;
    color: #607697;
    font-size: 12px;
}

.graficos-dhondt-awarded-key {
    color: #167047;
    font-weight: 800;
}

.graficos-dhondt-matrix-scroll {
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid #dce7f5;
    border-radius: 10px;
}

.graficos-dhondt-matrix {
    width: 100%;
    min-width: max-content;
    border-collapse: separate;
    border-spacing: 0;
    font-variant-numeric: tabular-nums;
}

.graficos-dhondt-matrix th,
.graficos-dhondt-matrix td {
    min-width: 84px;
    padding: 9px 11px;
    border-bottom: 1px solid #e3ebf6;
    border-right: 1px solid #e3ebf6;
    color: #173e70;
    font-size: 12px;
    text-align: right;
    white-space: nowrap;
}

.graficos-dhondt-matrix tr:last-child th,
.graficos-dhondt-matrix tr:last-child td {
    border-bottom: 0;
}

.graficos-dhondt-matrix th:last-child,
.graficos-dhondt-matrix td:last-child {
    border-right: 0;
}

.graficos-dhondt-matrix thead th {
    background: #eaf3ff;
    color: #1e568f;
    font-weight: 800;
}

.graficos-dhondt-matrix th:first-child {
    position: sticky;
    left: 0;
    z-index: 1;
    min-width: 110px;
    background: #f8fbff;
    text-align: left;
}

.graficos-dhondt-matrix thead th:first-child {
    z-index: 2;
    background: #eaf3ff;
}

.graficos-dhondt-matrix .graficos-dhondt-votes {
    background: #f8fbff;
    font-weight: 800;
}

.graficos-dhondt-matrix td.is-awarded {
    background: #e8f8ee;
    color: #146b40;
}

.graficos-dhondt-matrix td strong,
.graficos-dhondt-matrix td small {
    display: block;
}

.graficos-dhondt-matrix td small {
    margin-top: 2px;
    font-size: 10px;
    font-weight: 800;
}

@media (max-width: 700px) {
    .graficos-dhondt-panel {
        padding: 12px;
        border-radius: 16px;
    }

    .graficos-dhondt-hero {
        align-items: stretch;
        flex-direction: column;
    }

    .graficos-dhondt-counter {
        min-width: 0;
    }

    .graficos-dhondt-lists {
        grid-template-columns: 1fr;
    }

    .graficos-dhondt-matrix-block {
        padding: 8px;
    }
}

/* Piloto de captura segura con escaner local (Digitalizacion). */
.actas-capture-choice-target {
    display: grid;
    gap: 4px;
    margin: 8px 0 14px;
    padding: 12px;
    border: 1px solid #c9dcf7;
    border-radius: 12px;
    background: #f4f8ff;
    color: #17385f;
    text-align: left;
}

.actas-capture-choice-target span {
    color: #587197;
    font-size: 13px;
}

.actas-scan-modal .app-modal-dialog {
    width: calc(100vw - 16px);
    height: calc(100vh - 16px);
    height: calc(100dvh - 16px);
    max-height: none;
    margin: 8px auto;
    border-radius: 12px;
}

.actas-scan-modal .app-modal-header > div:first-child {
    min-width: 0;
}

.actas-scan-modal .app-modal-header {
    min-height: 54px;
    padding: 7px 12px;
}

.actas-scan-modal .app-modal-header h3 {
    font-size: 17px;
}

.actas-scan-target {
    display: block;
    max-width: 980px;
    margin-top: 3px;
    overflow: hidden;
    color: #60799e;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.actas-scan-modal-body {
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
    flex-direction: column;
    gap: 8px;
    padding: 8px 10px;
    overflow: hidden;
}

.actas-scan-toolbar,
.actas-scan-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.actas-scan-toolbar {
    flex: 0 0 auto;
    padding: 7px 9px;
    border: 1px solid #d8e5f7;
    border-radius: 10px;
    background: #f8fbff;
}

.actas-scan-toolbar-actions,
.actas-scan-page-actions,
.actas-scan-footer > div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.actas-scan-toolbar-actions {
    justify-content: flex-end;
}

.actas-scan-toolbar-actions button,
.actas-scan-page-actions button,
.actas-scan-footer button,
.actas-scan-preview-toolbar button {
    width: auto;
}

.actas-scan-toolbar-actions button {
    min-width: 0;
    min-height: 36px;
    padding: 7px 12px;
    border-radius: 9px;
    font-size: 13px;
    white-space: nowrap;
}

.actas-scan-assignment-mode {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
    padding: 7px 10px;
    border: 1px solid #d8e5f7;
    border-radius: 10px;
    background: #f8fbff;
    color: #284b78;
    font-size: 12px;
    font-weight: 800;
}

.actas-scan-assignment-mode.is-hidden { display: none; }

.actas-scan-assignment-hint {
    flex-basis: 100%;
    font-size: 12px;
    font-weight: 400;
}

.actas-scan-mode-buttons {
    display: inline-flex;
    gap: 4px;
    padding: 3px;
    border-radius: 9px;
    background: #e8f0fc;
}

.actas-scan-mode-buttons button {
    width: auto;
    min-height: 30px;
    padding: 5px 11px;
    border: 1px solid transparent;
    border-radius: 7px;
    background: transparent;
    color: #45648f;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.actas-scan-mode-buttons button.is-active {
    border-color: #1458ad;
    background: #206ac5;
    color: #fff;
}

.actas-scan-duplex-option {
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
    gap: 1px 7px;
    min-height: 36px;
    padding: 5px 10px;
    border: 1px solid #b8cbe7;
    border-radius: 9px;
    background: #ffffff;
    color: #173f73;
    cursor: pointer;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.15;
    white-space: nowrap;
}

.actas-scan-duplex-option input {
    grid-row: 1 / span 2;
    width: 17px;
    height: 17px;
    margin: 0;
    accent-color: #1769d2;
}

.actas-scan-duplex-option small {
    color: #6780a4;
    font-size: 10px;
    font-weight: 700;
}

.actas-scan-duplex-option.is-enabled {
    border-color: #5594e8;
    background: #eaf3ff;
    box-shadow: inset 0 0 0 1px rgba(23, 105, 210, 0.12);
}

.actas-scan-duplex-option:has(input:disabled) {
    cursor: not-allowed;
    opacity: 0.58;
}

#btn-actas-scan-all {
    background: #165fbd;
    border-color: #165fbd;
}

.actas-scan-bridge-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 220px;
    color: #526c91;
    font-size: 12px;
    font-weight: 700;
}

.actas-scan-bridge-status.is-ready { color: #167043; }
.actas-scan-bridge-status.is-error { color: #b4232e; }
.actas-scan-bridge-status.is-pending { color: #745b16; }

.actas-scan-pages {
    display: grid;
    grid-auto-rows: max-content;
    flex: 1 1 auto;
    min-height: 0;
    gap: 8px;
    overflow-y: auto;
    padding: 1px 5px 1px 1px;
    align-content: start;
    scrollbar-gutter: stable;
}

.actas-scan-empty {
    display: grid;
    min-height: 220px;
    place-items: center;
    align-content: center;
    gap: 10px;
    padding: 24px;
    border: 2px dashed #c7d9f4;
    border-radius: 14px;
    background: #f9fbff;
    color: #60799e;
    text-align: center;
}

.actas-scan-empty i {
    color: #2d74d6;
    font-size: 40px;
}

.actas-scan-empty strong {
    color: #17385f;
    font-size: 18px;
}

.actas-scan-page-card {
    display: grid;
    grid-template-columns: 26px minmax(150px, 210px) minmax(0, 1fr);
    grid-auto-rows: max-content;
    align-items: start;
    gap: 9px;
    min-height: 190px;
    padding: 9px;
    border: 1px solid #d3e2f7;
    border-radius: 11px;
    background: #fff;
    box-shadow: 0 5px 16px rgba(21, 62, 112, 0.07);
}

.actas-scan-page-number {
    color: #2a5f9f;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
}

.actas-scan-preview {
    position: relative;
    display: grid;
    width: 100%;
    min-height: 166px;
    height: 176px;
    place-items: center;
    overflow: hidden;
    padding: 0;
    border: 1px solid #d8e4f5;
    border-radius: 10px;
    background: #edf3fb;
    box-shadow: none;
}

.actas-scan-preview img {
    display: block;
    width: 100%;
    max-height: 176px;
    object-fit: contain;
    transition: transform 180ms ease;
}

.actas-scan-preview .actas-scan-pdf-placeholder {
    position: static;
    display: grid;
    gap: 8px;
    place-items: center;
    padding: 18px;
    background: transparent;
    color: #c52222;
    font-size: 13px;
}

.actas-scan-preview .actas-scan-pdf-placeholder i {
    font-size: 48px;
}

.actas-scan-preview > span {
    position: absolute;
    right: 8px;
    bottom: 8px;
    padding: 5px 8px;
    border-radius: 999px;
    background: rgba(13, 47, 88, 0.88);
    color: #ffffff;
    font-size: 11px;
    font-weight: 800;
}

.actas-scan-page-data {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 8px;
}

.actas-scan-file-meta,
.actas-scan-fixed-assignment {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
    gap: 3px;
}

.actas-scan-file-meta strong {
    overflow: hidden;
    color: #183a65;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.actas-scan-file-meta span,
.actas-scan-fixed-assignment span {
    color: #6c82a2;
    font-size: 12px;
}

.actas-scan-file-meta span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.actas-scan-file-meta .actas-scan-pdf-position {
    width: fit-content;
    max-width: 100%;
    padding: 4px 8px;
    border: 1px solid #b9d2f8;
    border-radius: 8px;
    background: #edf5ff;
    color: #174b8c;
    font-weight: 800;
    white-space: normal;
}

.actas-scan-fixed-assignment {
    padding: 8px 10px;
    border: 1px solid #cce1ff;
    border-radius: 10px;
    background: #f2f7ff;
    color: #153c6d;
}

.actas-scan-assignment-grid {
    display: grid;
    grid-template-columns: minmax(210px, 1.5fr) minmax(170px, 1fr) minmax(160px, 0.8fr);
    gap: 8px;
}

.actas-scan-assignment-grid label {
    display: grid;
    gap: 5px;
    color: #526c91;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.actas-scan-assignment-grid select {
    width: 100%;
    min-width: 0;
    height: 36px;
    border: 1px solid #c9d9ef;
    border-radius: 9px;
    background: #fff;
    color: #17385f;
    font-size: 12px;
    text-transform: none;
}

.actas-scan-assignment-grid.is-zone-mode {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.actas-scan-assignment-note {
    margin: 0;
    color: #526c91;
    font-size: 11px;
}

.actas-scan-assignment-note.is-warning { color: #a15318; }

.actas-scan-page-actions {
    margin-top: 2px;
    min-width: 0;
    padding-bottom: 2px;
}

.actas-scan-page-actions button {
    min-width: 36px;
    min-height: 34px;
    padding: 6px 10px;
    font-size: 12px;
}

.actas-scan-page-actions .danger {
    border: 1px solid #efb7bc;
    background: #fff4f5;
    color: #ad2632;
}

.actas-scan-modal .link-button {
    width: fit-content;
    max-width: 100%;
    padding: 2px 0;
    border: 0;
    background: transparent;
    color: #246ac5;
    box-shadow: none;
    font-size: 12px;
    text-align: left;
    white-space: normal;
}

.actas-scan-footer {
    flex: 0 0 auto;
    min-height: 54px;
    padding: 7px 12px;
    border-top: 1px solid #e1eaf7;
    background: #f8fbff;
}

.actas-scan-footer button {
    min-width: 112px;
    min-height: 38px;
    padding: 7px 14px;
}

.actas-scan-preview-modal {
    z-index: 1500;
}

.actas-scan-preview-modal .app-modal-dialog {
    width: calc(100vw - 12px);
    height: calc(100vh - 12px);
    height: calc(100dvh - 12px);
    max-height: none;
    margin: 6px auto;
    border-radius: 12px;
}

.actas-scan-preview-modal .app-modal-header {
    min-height: 52px;
    padding: 7px 12px;
}

.actas-scan-preview-toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    flex: 0 0 auto;
    gap: 6px;
    padding: 6px 10px;
    border-bottom: 1px solid #dce7f6;
    background: #f8fbff;
}

.actas-scan-preview-toolbar button {
    min-width: 0;
    min-height: 34px;
    padding: 6px 10px;
    border-radius: 8px;
    font-size: 13px;
    white-space: nowrap;
}

.actas-scan-preview-toolbar .actas-preview-icon-button {
    width: 36px;
    min-width: 36px;
    padding: 6px;
}

#actas_scan_preview_zoom {
    min-width: 52px;
    color: #17385f;
    font-weight: 800;
    text-align: center;
}

#actas_scan_preview_rotation {
    margin-left: auto;
}

.actas-scan-preview-stage {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: grid;
    padding: 22px;
    place-items: center;
    background-color: #526177;
    background-image:
        linear-gradient(45deg, rgba(255, 255, 255, 0.08) 25%, transparent 25%),
        linear-gradient(-45deg, rgba(255, 255, 255, 0.08) 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, rgba(255, 255, 255, 0.08) 75%),
        linear-gradient(-45deg, transparent 75%, rgba(255, 255, 255, 0.08) 75%);
    background-position: 0 0, 0 10px, 10px -10px, -10px 0;
    background-size: 20px 20px;
    text-align: center;
    cursor: grab;
    touch-action: none;
}

.actas-scan-preview-stage.is-dragging,
.actas-scan-preview-stage.is-dragging img {
    cursor: grabbing;
}

.actas-scan-preview-stage.is-pdf {
    overflow: auto;
    cursor: default;
    touch-action: auto;
}

.actas-scan-preview-stage img {
    position: absolute;
    left: 50%;
    top: 50%;
    display: block;
    max-width: calc(100% - 32px);
    max-height: calc(100% - 32px);
    width: auto;
    height: auto;
    object-fit: contain;
    border: 1px solid rgba(255, 255, 255, 0.55);
    background: #ffffff;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.32);
    transform-origin: center center;
    cursor: grab;
    user-select: none;
    -webkit-user-drag: none;
}

.actas-scan-preview-hint {
    color: #526c91;
    font-size: 12px;
    white-space: nowrap;
}

.actas-scan-preview-stage iframe {
    width: min(1180px, calc(100vw - 70px));
    height: calc(100vh - 155px);
    height: calc(100dvh - 155px);
    border: 1px solid rgba(255, 255, 255, 0.55);
    background: #ffffff;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.32);
}

@media (max-width: 900px) {
    .actas-scan-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .actas-scan-toolbar-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .actas-scan-page-card {
        grid-template-columns: 1fr;
    }

    .actas-scan-page-number {
        writing-mode: initial;
        transform: none;
    }

    .actas-scan-assignment-grid,
    .actas-scan-assignment-grid.is-zone-mode {
        grid-template-columns: 1fr;
    }

    .actas-scan-preview-stage {
        padding: 14px;
    }

    #actas_scan_preview_rotation {
        margin-left: 0;
    }
}

@media (max-width: 640px) {
    .actas-scan-modal .app-modal-dialog,
    .actas-scan-preview-modal .app-modal-dialog {
        width: calc(100vw - 6px);
        height: calc(100dvh - 6px);
        margin: 3px auto;
        border-radius: 8px;
    }

    .actas-scan-toolbar-actions button {
        flex: 1 1 calc(50% - 8px);
    }

    .actas-scan-footer {
        align-items: center;
        flex-direction: row;
    }

    .actas-scan-footer > div {
        flex-wrap: nowrap;
    }

    .actas-scan-footer button {
        min-width: 0;
    }

    .actas-scan-preview-toolbar {
        overflow-x: auto;
        flex-wrap: nowrap;
    }

    #actas_scan_preview_rotation {
        display: none;
    }
}

.stat-value {
    font-size: 24px;
    font-weight: 700;
    color: #17304d;
    line-height: 1.1;
}

.stat-label {
    margin-top: 4px;
    color: #50637a;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.stat-updated {
    grid-column: 1 / -1;
    margin: 0;
}

/* Acta viewer: scroll and hand-pan for large scanned pages. */
.votos-acta-modal-content {
    overflow: auto;
    align-items: flex-start;
    justify-content: flex-start;
    cursor: default;
}
.votos-acta-modal-content img {
    width: auto;
    height: auto;
    min-width: 100%;
    max-width: none;
    max-height: none;
    object-fit: contain;
    display: block;
    cursor: grab;
    user-select: none;
}
.votos-acta-modal-content img.is-panning {
    cursor: grabbing;
}

/* Compact acta actions with native tooltip and accessible labels. */
.votos-acta-upload-head .table-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}
.votos-acta-upload-head .acta-upload-icon-button {
    width: 38px;
    height: 34px;
    min-width: 38px;
    padding: 0;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    line-height: 1;
}
.votos-acta-upload-head .acta-upload-icon-button.is-replace {
    color: #1f66d1;
    border-color: #9dc5ff;
    background: #eff6ff;
}
.votos-acta-upload-head .acta-upload-icon-button.is-add {
    color: #15804b;
    border-color: #9bdfbd;
    background: #effbf4;
}
.votos-acta-upload-head .acta-upload-icon-button.is-delete {
    color: #b42318;
    border-color: #f2aaa5;
    background: #fff1f0;
}
.votos-acta-upload-head .acta-upload-icon-button.is-delete:hover:not(:disabled) {
    color: #8f1d14;
    border-color: #e47c74;
    background: #ffe4e1;
}
.votos-acta-upload-head .acta-upload-icon-button:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(31, 102, 209, .16);
}

/* Ranking final con lectura compacta tipo resultados oficiales. */
.graficos-dignidad-body {
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.72fr);
    align-items: start;
}

.graficos-dignidad-header {
    padding: 2px 2px 10px;
}

.graficos-cne-ranking-row {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 14px;
    min-height: 104px;
    padding: 14px 16px;
}

.graficos-cne-ranking-row.is-parish-board {
    grid-template-columns: minmax(0, 1fr);
}

.graficos-candidato-main {
    min-width: 0;
}

.graficos-candidato-head {
    align-items: flex-start;
}

.graficos-candidato-identity {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.graficos-candidato-copy {
    min-width: 0;
}

.graficos-cne-result-media {
    position: relative;
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
    border: 1px solid #cfe0f8;
    border-radius: 13px;
    background: #f4f8ff;
}

.graficos-cne-result-media > img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    border-radius: 12px;
}

.graficos-cne-result-media.is-empty {
    color: #1f5eb8;
    font-size: 13px;
    font-weight: 800;
}

.graficos-cne-candidate-badge {
    position: absolute;
    right: -7px;
    bottom: -7px;
    width: 24px;
    height: 24px;
    padding: 2px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 3px 8px rgba(23, 50, 87, 0.18);
}

.graficos-cne-candidate-badge img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.graficos-candidato-name {
    font-size: 19px;
    line-height: 1.2;
}

.graficos-candidato-party {
    align-items: center;
    margin-top: 7px;
    font-size: 13px;
}

.graficos-candidato-totals {
    min-width: 118px;
    padding-left: 10px;
}

.graficos-candidato-totals strong {
    font-size: 25px;
    line-height: 1.05;
}

.graficos-candidato-totals span {
    margin-top: 4px;
    font-size: 13px;
}

.graficos-candidato-bar {
    height: 9px;
    margin-top: 14px;
}

.graficos-side-card {
    min-height: 88px;
    padding: 14px 16px;
}

.graficos-side-card > span {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.graficos-side-card strong {
    font-size: 25px;
}

@media (max-width: 760px) {
    .graficos-cne-ranking-row {
        grid-template-columns: 48px minmax(0, 1fr);
        gap: 10px;
        padding: 12px;
    }

    .graficos-candidato-head {
        flex-direction: column;
        gap: 8px;
    }

    .graficos-candidato-totals {
        display: flex;
        align-items: baseline;
        gap: 8px;
        padding-left: 0;
    }

    .graficos-candidato-totals span {
        margin-top: 0;
    }

    .graficos-candidato-name {
        font-size: 16px;
    }
}


.graficos-cne-summary {
    display: grid;
    grid-template-columns: minmax(190px, 0.82fr) minmax(300px, 1.35fr) minmax(190px, 0.82fr);
    gap: 12px;
    margin-top: 14px;
}

.graficos-cne-summary-panel {
    min-width: 0;
    padding: 12px 14px;
    border: 1px solid #cddcf2;
    border-radius: 4px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(27, 61, 110, 0.05);
}

.graficos-cne-summary-panel h4 {
    margin: 0 0 8px;
    padding: 6px 8px;
    background: #173257;
    color: #fff;
    font-size: 11px;
    text-align: center;
    letter-spacing: 0.06em;
}

.graficos-cne-summary-table {
    display: grid;
    gap: 4px;
}

.graficos-cne-summary-table > div,
.graficos-cne-acta-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 58px;
    align-items: center;
    gap: 8px;
    min-height: 28px;
    padding: 4px 7px;
    border-bottom: 1px solid #e5edf8;
    color: #5b7091;
    font-size: 11px;
}

.graficos-cne-summary-table > div[hidden] {
    display: none;
}

.graficos-cne-summary-table > div.is-no-percent {
    grid-template-columns: minmax(0, 1fr) auto;
}

.graficos-cne-summary-table strong,
.graficos-cne-acta-row strong {
    color: #173257;
    font-size: 12px;
    font-weight: 800;
    text-align: right;
}

.graficos-cne-acta-row {
    grid-template-columns: minmax(0, 1fr) auto 58px;
}

.graficos-cne-summary-table em,
.graficos-cne-acta-row em {
    color: #6e83a1;
    font-size: 10px;
    font-style: normal;
    text-align: right;
}

.graficos-cne-acta-row.is-warning {
    background: #fff3d9;
}

.graficos-cne-acta-row.is-total {
    background: #f7a928;
    border-bottom-color: #f7a928;
}

.graficos-cne-acta-row.is-total span,
.graficos-cne-acta-row.is-total strong,
.graficos-cne-acta-row.is-total em {
    color: #fff;
}

@media (max-width: 900px) {
    .graficos-cne-summary {
        grid-template-columns: 1fr;
    }
}


.votos-stat-meta {
    display: block;
    margin-top: 5px;
    font-size: 10px;
    font-weight: 700;
    color: #5d76a1;
    line-height: 1.15;
}
.system-operation-control-card {
    border: 1px solid #cfe0ff;
    background: linear-gradient(135deg, #ffffff 0%, #f4f8ff 100%);
}
.system-operation-control-head {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    margin-bottom: 16px;
}
.operation-switch {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border: 1px solid #bcd6ff;
    border-radius: 999px;
    color: #0f3970;
    font-weight: 800;
    white-space: nowrap;
    background: #eef6ff;
}
.operation-rules-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(220px, 1fr));
    gap: 12px;
    margin: 12px 0;
}
.operation-rule-card {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid #c9dcff;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 12px 26px rgba(18, 67, 128, 0.07);
    transition: border-color .18s ease, opacity .18s ease, background .18s ease;
}
.operation-rule-card.is-disabled {
    border-color: #d8e2f2;
    background: #f7f9fd;
    opacity: .78;
}
.operation-rule-main {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}
.operation-rule-title {
    color: #061f49;
    font-size: .96rem;
    font-weight: 900;
    line-height: 1.15;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.operation-rule-subtitle {
    color: #4e6a9f;
    font-size: .82rem;
    margin-top: 3px;
}
.operation-rule-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 9px;
    border: 1px solid #c7dcff;
    border-radius: 999px;
    color: #0f3970;
    font-size: .78rem;
    font-weight: 900;
    white-space: nowrap;
    background: #eef6ff;
}
.operation-rule-toggle input {
    margin: 0;
}
.operation-rule-body {
    display: grid;
    gap: 8px;
}
.operation-date-field {
    display: grid;
    gap: 5px;
    color: #173b72;
    font-weight: 800;
}
.operation-date-field input {
    min-height: 40px;
}
.operation-actions-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    color: #173b72;
    font-weight: 800;
}
.operation-actions-row label {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 7px 9px;
    border: 1px solid #d5e4ff;
    border-radius: 12px;
    background: #f8fbff;
    line-height: 1.15;
}
.operation-actions-row input {
    margin: 0;
}
.operation-rule-card.is-disabled .operation-rule-body {
    filter: grayscale(.2);
}
@media (max-width: 980px) {
    .system-operation-control-head {
        flex-direction: column;
    }
    .operation-rules-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 620px) {
    .operation-actions-row {
        grid-template-columns: 1fr;
    }
}

/* Resultados de juntas parroquiales: cada parroquia es una circunscripción. */
.graficos-parish-board-grid,
.graficos-parish-territorial-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
    gap: 16px;
    width: 100%;
    padding: 4px;
}

.graficos-parish-board-card,
.graficos-parish-territorial-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid #d2e0f5;
    border-radius: 16px;
    background: linear-gradient(145deg, #ffffff 0%, #f7faff 100%);
    box-shadow: 0 10px 26px rgba(22, 58, 105, 0.08);
}

.graficos-parish-board-card > header,
.graficos-parish-territorial-card > header {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 16px;
}

.graficos-parish-board-card header span,
.graficos-parish-territorial-card header span {
    color: #52709f;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.graficos-parish-board-card h4,
.graficos-parish-territorial-card h4 {
    margin: 4px 0 0;
    color: #0c2e5c;
    font-size: 1rem;
}

.graficos-parish-board-progress,
.graficos-parish-territorial-card > header > div:last-child {
    display: grid;
    flex: 0 0 auto;
    text-align: right;
}

.graficos-parish-board-progress strong,
.graficos-parish-territorial-card > header > div:last-child strong {
    color: #1467c9;
    font-size: 1.05rem;
}

.graficos-parish-board-progress small,
.graficos-parish-territorial-card > header > div:last-child small {
    color: #6680a8;
    font-size: 0.72rem;
}

.graficos-parish-board-columns {
    position: relative;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(72px, 1fr);
    gap: 14px;
    align-items: end;
    min-height: 255px;
    padding: 8px 6px 0;
    overflow-x: auto;
    background: repeating-linear-gradient(
        to bottom,
        transparent 0,
        transparent 44px,
        rgba(190, 208, 234, 0.34) 45px,
        transparent 46px
    );
}

.graficos-parish-board-column {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-rows: 38px 148px auto 30px;
    gap: 6px;
    align-items: end;
    min-width: 72px;
    text-align: center;
}

.graficos-parish-board-column-value {
    display: grid;
    align-self: end;
    color: #234b7d;
    line-height: 1.05;
}

.graficos-parish-board-column-value strong {
    font-size: 0.86rem;
}

.graficos-parish-board-column-value small {
    margin-top: 3px;
    color: #637da4;
    font-size: 0.68rem;
    font-weight: 800;
}

.graficos-parish-board-column-track {
    display: flex;
    align-items: flex-end;
    width: min(68px, 78%);
    height: 148px;
    margin: 0 auto;
}

.graficos-parish-board-column-track > span {
    position: relative;
    display: block;
    width: 100%;
    min-height: 10px;
    border: 1px solid color-mix(in srgb, var(--candidate-color, #2b6db0) 72%, #17385f);
    border-radius: 12px 12px 5px 5px;
    background: linear-gradient(180deg, color-mix(in srgb, var(--candidate-color, #2b6db0) 70%, #ffffff), var(--candidate-color, #2b6db0));
    box-shadow: 0 8px 16px color-mix(in srgb, var(--candidate-color, #2b6db0) 18%, transparent);
}

.graficos-parish-board-column.is-winner .graficos-parish-board-column-track > span {
    outline: 3px solid color-mix(in srgb, var(--candidate-color, #2b6db0) 25%, #ffffff);
    outline-offset: 2px;
}

.graficos-parish-board-column-track i {
    position: absolute;
    top: 8px;
    left: 50%;
    display: grid;
    place-items: center;
    width: 25px;
    height: 25px;
    border: 2px solid #ffffff;
    border-radius: 50%;
    color: #ffffff;
    background: #d88900;
    box-shadow: 0 6px 12px rgba(124, 76, 0, 0.25);
    transform: translateX(-50%);
}

.graficos-parish-board-column-list {
    color: #173b68;
    font-size: 0.76rem;
}

.graficos-parish-board-column-name {
    display: -webkit-box;
    align-self: start;
    overflow: hidden;
    color: #637da4;
    font-size: 0.66rem;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.graficos-parish-board-column.is-winner .graficos-parish-board-column-value,
.graficos-parish-board-column.is-winner .graficos-parish-board-column-list {
    color: #087147;
}

.graficos-parish-board-card footer {
    margin-top: 15px;
    padding-top: 12px;
    border-top: 1px solid #e2eaf6;
    color: #0b6f45;
    font-size: 0.78rem;
    font-weight: 800;
}

.graficos-parish-board-groups,
.graficos-parish-territorial-tables {
    display: grid;
    gap: 16px;
}

.graficos-parish-board-group,
.graficos-parish-territorial-table {
    overflow: hidden;
    border: 1px solid #d7e3f4;
    border-radius: 14px;
    background: #ffffff;
}

.graficos-parish-board-group > h4,
.graficos-parish-territorial-table > h4 {
    margin: 0;
    padding: 11px 14px;
    background: #173b68;
    color: #ffffff;
    font-size: 0.86rem;
}

.graficos-parish-board-result {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 11px 14px;
    border-top: 1px solid #e5edf8;
}

.graficos-parish-board-result.is-winner {
    background: #effaf5;
}

.graficos-parish-board-result i {
    color: #d88900;
}

.graficos-parish-board-result > div {
    display: grid;
}

.graficos-parish-board-result > div:last-child {
    text-align: right;
}

.graficos-parish-board-result small {
    color: #617ba3;
}

.graficos-parish-territorial-row {
    display: grid;
    grid-template-columns: minmax(120px, 0.9fr) minmax(120px, 1.7fr) auto;
    gap: 12px;
    align-items: center;
    padding: 9px 0;
    border-top: 1px solid #e8eef7;
}

.graficos-parish-territorial-row > div:first-child,
.graficos-parish-territorial-row > div:last-child {
    display: grid;
}

.graficos-parish-territorial-row > div:last-child {
    min-width: 74px;
    text-align: right;
}

.graficos-parish-territorial-row small {
    overflow: hidden;
    color: #6680a8;
    font-size: 0.7rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.graficos-parish-territorial-row i,
.graficos-parish-territorial-table i {
    margin-left: 4px;
    color: #d88900;
}

.graficos-parish-territorial-track {
    height: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: #e7eef9;
}

.graficos-parish-territorial-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #2f79df, #43a0eb);
}

.graficos-parish-territorial-row.is-winner .graficos-parish-territorial-track span {
    background: linear-gradient(90deg, #15945d, #35c687);
}

.graficos-parish-board-note {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    color: #43658f;
    font-size: 0.78rem;
    font-weight: 700;
}

.graficos-parish-territorial-table {
    overflow-x: auto;
}

.graficos-parish-territorial-table table {
    width: 100%;
    border-collapse: collapse;
}

.graficos-parish-territorial-table th,
.graficos-parish-territorial-table td {
    padding: 9px 12px;
    border-top: 1px solid #e4ebf5;
    color: #284a77;
    font-size: 0.76rem;
    text-align: right;
}

.graficos-parish-territorial-table th:nth-child(-n+3),
.graficos-parish-territorial-table td:nth-child(-n+3) {
    text-align: left;
}

.graficos-parish-territorial-table tr.is-winner td {
    background: #eef9f4;
    color: #087147;
    font-weight: 800;
}

.graficos-parish-seat-card {
    grid-column: 1 / -1;
}

.graficos-parish-seat-lists {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    gap: 14px;
}

.graficos-parish-seat-list {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px 16px;
    min-height: 118px;
    padding: 18px 16px 16px;
    border: 1px solid #dce7f5;
    border-radius: 11px;
    background: #f8fbff;
}

.graficos-parish-seat-list.is-winner {
    border-color: #9cd8bd;
    background: linear-gradient(145deg, #f1fbf6, #f8fbff);
    box-shadow: 0 8px 18px rgba(14, 126, 78, 0.08);
}

.graficos-parish-seat-order {
    position: absolute;
    top: -9px;
    left: 14px;
    padding: 2px 8px;
    border: 1px solid #cfddf1;
    border-radius: 999px;
    color: #52709a;
    background: #ffffff;
    font-size: 0.64rem;
    font-weight: 800;
}

.graficos-parish-seat-list > div:first-of-type > strong i,
.graficos-parish-seat-members i {
    margin-left: 4px;
    color: #d88900;
}

.graficos-parish-seat-list > div:first-child,
.graficos-parish-seat-members {
    display: grid;
}

.graficos-parish-seat-list > b {
    color: #1467c9;
}

.graficos-parish-seat-members {
    grid-column: 1 / -1;
    gap: 7px;
    color: #52709a;
    font-size: 0.72rem;
    line-height: 1.45;
}

.graficos-parish-seat-member {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    padding: 5px 7px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.76);
}

.graficos-parish-seat-member > b {
    color: #355d8f;
    font-size: 0.64rem;
    white-space: nowrap;
}

.graficos-parish-seat-member > span {
    min-width: 0;
    color: #274e7f;
    font-weight: 700;
}

.graficos-parish-seat-member em {
    display: inline-flex;
    margin-left: 7px;
    padding: 1px 6px;
    border-radius: 999px;
    color: #087147;
    background: #e6f7ef;
    font-size: 0.6rem;
    font-style: normal;
    font-weight: 800;
}

@media (max-width: 700px) {
    .graficos-parish-board-grid,
    .graficos-parish-territorial-grid {
        grid-template-columns: 1fr;
    }

    .graficos-parish-board-columns {
        min-width: 300px;
    }

    .graficos-parish-seat-lists {
        grid-template-columns: 1fr;
    }

    .graficos-parish-territorial-row {
        grid-template-columns: minmax(100px, 1fr) minmax(90px, 1.4fr) auto;
    }
}

/* Validacion final independiente del Acta CNE Web. */
.validacion-cne-page { display: grid; gap: 12px; }
.validacion-cne-hero { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 20px; background: linear-gradient(120deg, #fff 0%, #f5f9ff 68%, #e8f2ff 100%); }
.validacion-cne-hero .eyebrow { font-size: .7rem; }
.validacion-cne-hero h2 { margin: 2px 0; font-size: clamp(1.35rem, 2vw, 1.8rem); line-height: 1.1; }
.validacion-cne-hero p { margin: 0; color: #49678f; font-size: .9rem; }
.validacion-cne-hero-badge { display: flex; align-items: center; gap: 8px; padding: 9px 13px; border: 1px solid #b8d2fb; border-radius: 999px; color: #1258bb; background: #fff; font-size: .86rem; font-weight: 800; white-space: nowrap; }
.validacion-cne-hero-badge i { font-size: 1rem; }
.validacion-cne-hero-progress { width: min(850px, 65%); display: grid; gap: 7px; padding: 10px 12px; border: 1px solid #c5d9f7; border-radius: 14px; background: rgba(255,255,255,.9); }
.validacion-cne-progress-empty { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; color: #53729c; font-size: .8rem; }
.validacion-cne-progress-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #183c6b; font-size: .74rem; font-weight: 800; text-transform: uppercase; }
.validacion-cne-progress-title strong { color: #0962ce; font-size: 1rem; }
.validacion-cne-progress-track { height: 7px; overflow: hidden; border-radius: 999px; background: #dce8f8; }
.validacion-cne-progress-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #1973e8, #38a1ff); transition: width .25s ease; }
.validacion-cne-progress-counts { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; color: #58749a; font-size: .68rem; }
.validacion-cne-progress-counts b { color: #163a68; }
.validacion-cne-progress-counts span { padding-left: 8px; border-left: 1px solid #d5e2f4; }
.validacion-cne-progress-counts .is-conforme { color: #087c3d; }
.validacion-cne-progress-counts .is-no-conforme { color: #b4232e; }
.validacion-cne-progress-dignities { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 1px; }
.validacion-cne-progress-dignity { flex: 1 1 205px; min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 6px; padding: 5px 8px; border: 1px solid #d6e4f6; border-radius: 9px; color: #46668f; background: #f8fbff; font-size: .7rem; }
.validacion-cne-progress-dignity span { min-width: 0; font-weight: 800; }
.validacion-cne-progress-dignity strong { color: #153b6c; }
.validacion-cne-progress-dignity small { color: #0b64ca; font-weight: 900; }
.validacion-cne-selector-card { padding: 13px 20px; }
.validacion-cne-selectors { display: grid; grid-template-columns: minmax(320px, 1.55fr) minmax(220px, .8fr) minmax(220px, .8fr); gap: 12px; align-items: end; }
.validacion-cne-selector-card .form-group { margin-bottom: 0; }
.validacion-cne-selector-card label { margin-bottom: 5px; font-size: .78rem; }
.validacion-cne-selector-card select,
.validacion-cne-selector-card .select2-container .select2-selection--single { min-height: 42px; }
.validacion-cne-selector-card .form-status { margin-top: 9px; padding: 7px 11px; font-size: .78rem; }
.validacion-cne-junta-option { width: 100%; min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; box-sizing: border-box; padding: 5px 8px; border: 1px solid transparent; border-radius: 9px; line-height: 1.2; }
.validacion-cne-junta-option-label { min-width: 0; white-space: normal; font-weight: 800; }
.validacion-cne-junta-option-statuses { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 3px 5px; }
.validacion-cne-junta-option-state { max-width: 100%; padding: 3px 7px; border-radius: 999px; font-size: .67rem; font-weight: 900; white-space: normal; }
.validacion-cne-junta-option.is-validada { border-color: #a6dfbd; color: #087c3d; background: #effbf4; }
.validacion-cne-junta-option.is-validada .validacion-cne-junta-option-state { color: #087c3d; background: #d9f4e4; }
.validacion-cne-junta-option.is-digitada-pendiente { border-color: #b8d2fb; color: #245789; background: #f0f6ff; }
.validacion-cne-junta-option.is-digitada-pendiente .validacion-cne-junta-option-state { color: #245789; background: #dfeeff; }
.validacion-cne-junta-option.is-sin-validar { border-color: #efb1b7; color: #9f2430; background: #fff1f2; }
.validacion-cne-junta-option.is-sin-validar .validacion-cne-junta-option-state { color: #b4232e; background: #ffe0e3; }
.validacion-cne-junta-option .validacion-cne-junta-option-state.is-cne-pendiente { color: #895600; background: #fff0ca; }
.validacion-cne-junta-option .validacion-cne-junta-option-state.is-cne-conforme { color: #087c3d; background: #d9f4e4; }
.validacion-cne-junta-option .validacion-cne-junta-option-state.is-cne-no-conforme { color: #a72332; background: #ffe0e3; }
#validacion_cne_junta option[data-digitacion-validada="1"] { color: #087c3d; background: #effbf4; }
#validacion_cne_junta option[data-digitacion-validada="0"] { color: #b4232e; background: #fff1f2; }
#validacion_cne_junta option[data-digitacion-registrada="1"][data-digitacion-validada="0"] { color: #245789; background: #f0f6ff; }
#validacion_cne_junta + .select2-container .select2-selection--single { height: 84px !important; }
#validacion_cne_junta + .select2-container .select2-selection__arrow { height: 82px !important; }
.validacion-cne-selector-card .select2-selection__rendered .validacion-cne-junta-option { padding: 3px 5px; border: 0; background: transparent; }
.select2-results__option--highlighted .validacion-cne-junta-option { box-shadow: inset 0 0 0 1px currentColor; }
.validacion-cne-junta-legend { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 7px 14px; margin-top: 8px; color: #5c7290; font-size: .7rem; font-weight: 800; }
.validacion-cne-junta-legend span { display: inline-flex; align-items: center; gap: 6px; }
.validacion-cne-junta-legend i { width: 9px; height: 9px; border-radius: 50%; }
.validacion-cne-junta-legend .is-validada { color: #087c3d; }
.validacion-cne-junta-legend .is-validada i { background: #28a965; box-shadow: 0 0 0 3px #d9f4e4; }
.validacion-cne-junta-legend .is-digitada-pendiente { color: #245789; }
.validacion-cne-junta-legend .is-digitada-pendiente i { background: #4786db; box-shadow: 0 0 0 3px #dfeeff; }
.validacion-cne-junta-legend .is-sin-validar { color: #b4232e; }
.validacion-cne-junta-legend .is-sin-validar i { background: #d64b59; box-shadow: 0 0 0 3px #ffe0e3; }
.validacion-cne-junta-legend .is-cne-pendiente { color: #895600; }
.validacion-cne-junta-legend .is-cne-pendiente i { background: #e1a822; box-shadow: 0 0 0 3px #fff0ca; }
.validacion-cne-junta-legend .is-cne-conforme { color: #087c3d; }
.validacion-cne-junta-legend .is-cne-conforme i { background: #28a965; box-shadow: 0 0 0 3px #d9f4e4; }
.validacion-cne-junta-legend .is-cne-no-conforme { color: #a72332; }
.validacion-cne-junta-legend .is-cne-no-conforme i { background: #d64b59; box-shadow: 0 0 0 3px #ffe0e3; }
.validacion-cne-workspace { padding: 14px; }
.validacion-cne-workflow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin: 0 0 8px; }
.validacion-cne-workflow-step { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 10px 12px; border: 1px solid #d7e3f4; border-radius: 12px; color: #667b97; background: #f6f9fd; }
.validacion-cne-workflow-number { flex: 0 0 27px; width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; color: #607896; background: #e6edf7; font-weight: 900; }
.validacion-cne-workflow-step strong,.validacion-cne-workflow-step small { display: block; line-height: 1.25; }
.validacion-cne-workflow-step strong { font-size: .78rem; }
.validacion-cne-workflow-step small { margin-top: 2px; font-size: .69rem; }
.validacion-cne-workflow-step.is-current { border-color: #6da8f4; color: #1457a9; background: #edf5ff; box-shadow: inset 0 0 0 1px #b6d5ff; }
.validacion-cne-workflow-step.is-current .validacion-cne-workflow-number { color: #fff; background: #216cce; }
.validacion-cne-workflow-step.is-complete { border-color: #a6dfbd; color: #087c3d; background: #effbf4; }
.validacion-cne-workflow-step.is-complete .validacion-cne-workflow-number { color: #fff; background: #16834f; }
.validacion-cne-workflow-hint { margin: 0 0 12px; color: #315985; font-size: .79rem; font-weight: 700; }
.validacion-cne-summary { display: grid; grid-template-columns: 1.35fr .75fr .65fr .8fr .75fr; gap: 8px; margin-bottom: 10px; }
.validacion-cne-summary > div { min-width: 0; padding: 9px 12px; border: 1px solid #d4e2f7; border-radius: 12px; background: #f8fbff; }
.validacion-cne-summary span { display: block; margin-bottom: 2px; color: #52709a; font-size: .66rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.validacion-cne-summary strong { display: block; overflow: hidden; color: #102f59; text-overflow: ellipsis; white-space: nowrap; }
.validacion-cne-summary .is-conforme { border-color: #a6dfbd; background: #effbf4; }
.validacion-cne-summary .is-conforme strong { color: #087c3d; }
.validacion-cne-summary .is-digitacion-validada { border-color: #a6dfbd; background: #effbf4; }
.validacion-cne-summary .is-digitacion-validada strong { color: #087c3d; }
.validacion-cne-summary .is-digitacion-pendiente { border-color: #efb1b7; background: #fff1f2; }
.validacion-cne-summary .is-digitacion-pendiente strong { color: #b4232e; }
.validacion-cne-columns { display: grid; grid-template-columns: minmax(420px, .92fr) minmax(480px, 1.08fr); gap: 16px; }
.validacion-cne-results, .validacion-cne-documents { min-width: 0; border: 1px solid #d7e3f4; border-radius: 18px; background: #fff; overflow: hidden; }
.validacion-cne-results { padding: 14px; }
.validacion-cne-candidates { display: grid; gap: 8px; max-height: 610px; overflow: auto; padding-right: 3px; }
.validacion-cne-candidate { display: grid; grid-template-columns: 48px minmax(0, 1fr) 90px; align-items: center; gap: 11px; padding: 10px; border: 1px solid #dce7f6; border-radius: 14px; background: #fbfdff; }
.validacion-cne-candidate-media { width: 46px; height: 46px; display: grid; place-items: center; overflow: hidden; border: 1px solid #c5d9f7; border-radius: 13px; color: #135cbf; background: #edf5ff; font-weight: 900; }
.validacion-cne-candidate-media img { width: 100%; height: 100%; object-fit: cover; }
.validacion-cne-candidate strong, .validacion-cne-candidate small { display: block; margin-top: 4px; }
.validacion-cne-candidate small { color: #55729a; }
.validacion-cne-candidate > b { padding: 10px; border: 1px solid #bcd4f8; border-radius: 12px; text-align: center; font-size: 1.2rem; background: #f4f9ff; }
.validacion-cne-acta-values { display: grid; grid-template-columns: repeat(5, 1fr); gap: 7px; margin-top: 4px; }
.validacion-cne-acta-values span { padding: 9px; border-radius: 10px; color: #52709a; background: #edf4ff; text-align: center; font-size: .76rem; }
.validacion-cne-acta-values b { display: block; margin-top: 3px; color: #12345f; font-size: 1rem; }
.validacion-cne-doc-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px; border-bottom: 1px solid #d7e3f4; background: linear-gradient(135deg, #f8fbff, #edf5ff); }
.validacion-cne-tabs { display: grid; grid-template-columns: repeat(3, minmax(175px, 1fr)); gap: 8px; min-width: 0; }
.validacion-cne-tabs button { min-width: 0; min-height: 58px; display: grid; grid-template-columns: 28px minmax(0, 1fr) 16px; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid #c8daf5; border-radius: 13px; color: #274e80; background: rgba(255,255,255,.94); text-align: left; box-shadow: 0 5px 14px rgba(24,74,133,.06); }
.validacion-cne-tabs button > i:first-child { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; color: #1f67c8; background: #e8f2ff; }
.validacion-cne-tabs button.is-active { border-color: #2474ea; color: #0c56bc; background: #fff; box-shadow: inset 0 0 0 1px #2474ea, 0 7px 18px rgba(36,116,234,.13); }
.validacion-cne-tabs button span, .validacion-cne-tabs button small { display: block; min-width: 0; }
.validacion-cne-tabs button b { display: block; white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.12; }
.validacion-cne-tabs button small { margin-top: 3px; font-size: .68rem; font-weight: 700; }
.validacion-cne-tabs .is-loaded { color: #078345; }
.validacion-cne-tabs .is-empty { color: #a94a4a; }
.validacion-cne-doc-actions { display: flex; align-items: center; gap: 7px; }
.validacion-cne-doc-actions button { width: 42px; min-width: 42px; height: 42px; min-height: 42px; padding: 0; display: grid; place-items: center; white-space: nowrap; }
.validacion-cne-viewer { height: 610px; padding: 10px; background: #e9f0f9; }
.validacion-cne-viewer iframe, .validacion-cne-viewer img { width: 100%; height: 100%; border: 0; border-radius: 12px; background: #fff; object-fit: contain; }
.validacion-cne-footer { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(300px, 1.35fr) auto; gap: 14px; align-items: end; margin-top: 15px; padding: 14px; border: 1px solid #c9dbf4; border-radius: 16px; background: #f5f9ff; }
.validacion-cne-footer p { margin: 5px 0 0; color: #58749a; }
.validacion-cne-observation { margin: 0; }
.validacion-cne-no-recibida { display: flex; align-items: flex-start; gap: 9px; margin-top: 9px; padding: 9px 11px; border: 1px solid #f0b9be; border-radius: 11px; color: #8f2430; background: #fff5f6; cursor: pointer; }
.validacion-cne-no-recibida input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: #c93636; flex: 0 0 auto; }
.validacion-cne-no-recibida span, .validacion-cne-no-recibida small { display: block; }
.validacion-cne-no-recibida small { margin-top: 2px; color: #8b5c62; font-weight: 500; }
.validacion-cne-no-recibida[role="status"] { cursor: default; }
.validacion-cne-no-recibida[role="status"] > i { margin-top: 2px; }
.validacion-cne-no-recibida.is-received { border-color: #b7dec9; color: #166534; background: #f0fdf4; }
.validacion-cne-no-recibida.is-received small { color: #46745a; }
.acta-junta-status { display: grid; justify-items: start; gap: 5px; }
.acta-no-recibida-badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px; border: 1px solid #efb1b7; border-radius: 999px; color: #a52531; background: #fff1f2; font-size: .68rem; font-weight: 800; line-height: 1.15; white-space: normal; }
.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions {
    display: grid;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    justify-content: start;
    align-items: center;
    gap: 4px;
}
.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions.has-document {
    grid-template-columns: repeat(2, 34px);
    grid-template-rows: repeat(2, 32px);
}
.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions.has-document.has-receipt {
    grid-template-columns: repeat(3, 34px);
}
.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions.has-document > .actas-table-icon-action { width: 34px; min-width: 34px; height: 32px; }
.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions.has-document > .actas-table-icon-action:nth-child(1) { grid-column: 1; grid-row: 1; }
.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions.has-document > .actas-table-icon-action:nth-child(2) { grid-column: 2; grid-row: 1; }
.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions.has-document > .actas-table-icon-action:nth-child(3) { grid-column: 1; grid-row: 2; }
.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions.has-document > .actas-table-icon-action:nth-child(4) { grid-column: 2; grid-row: 2; }
.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions.has-document.has-receipt > .is-receipt { grid-column: 3; grid-row: 1 / span 2; }
.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions.is-empty {
    grid-template-columns: repeat(2, 38px);
}
.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions.is-empty > .actas-table-icon-action { width: 38px; min-width: 38px; }
.page-actas-monitor #actas-monitor-grid .actas-table-action.is-receipt { display: inline-flex; align-items: center; justify-content: center; width: 34px; min-width: 34px; height: 32px; box-sizing: border-box; padding: 0; border-color: #efb1b7; color: #a52531; background: #fff1f2; font-size: 14px; }
.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions.is-empty > .is-receipt { width: 38px; min-width: 38px; height: 34px; }
.page-actas-monitor #actas-monitor-grid .actas-table-action.is-receipt:hover:not(:disabled),
.page-actas-monitor #actas-monitor-grid .actas-table-action.is-receipt.is-marked { border-color: #dc7181; color: #8f2430; background: #ffe4e6; }
.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions > .is-receipt-status {
    grid-column: 1 / -1;
    justify-self: start;
    width: max-content;
    max-width: none;
    white-space: nowrap;
}
.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions.has-document > .is-receipt-status { grid-row: 3; }
.page-actas-monitor #actas-monitor-grid .actas-table-actions.is-icon-actions.is-empty > .is-receipt-status { grid-row: 2; }
.validacion-cne-decision-actions { display: flex; gap: 8px; align-items: center; }
.validacion-cne-decision-actions button { min-height: 48px; white-space: nowrap; }
.validacion-cne-decision-actions .danger-outline { color: #b4232e; border-color: #ef9ca4; background: #fff3f4; }
.validacion-cne-summary .is-no-conforme { border-color: #efb1b7; background: #fff1f2; }
.validacion-cne-summary .is-no-conforme strong { color: #b4232e; }
@media (max-width: 1080px) {
    .validacion-cne-selectors, .validacion-cne-columns { grid-template-columns: 1fr; }
    .validacion-cne-summary { grid-template-columns: repeat(2, 1fr); }
    .validacion-cne-viewer { height: 520px; }
}
@media (max-width: 680px) {
    .validacion-cne-hero { align-items: flex-start; flex-direction: column; }
    .validacion-cne-hero-badge { white-space: normal; }
    .validacion-cne-hero-progress { width: 100%; }
    .validacion-cne-progress-dignity { grid-template-columns: minmax(0, 1fr) auto auto; }
    .validacion-cne-summary { grid-template-columns: 1fr 1fr; }
    .validacion-cne-workflow { grid-template-columns: 1fr; }
    .validacion-cne-doc-head, .validacion-cne-footer { grid-template-columns: 1fr; align-items: stretch; }
    .validacion-cne-tabs { grid-template-columns: 1fr; }
    .validacion-cne-tabs button { padding: 8px; font-size: .78rem; }
    .validacion-cne-doc-actions { display: flex; justify-content: flex-end; }
    .validacion-cne-doc-actions button { width: 42px; white-space: nowrap; }
    .validacion-cne-viewer { height: 62vh; min-height: 380px; }
    .validacion-cne-candidate { grid-template-columns: 42px minmax(0, 1fr) 68px; }
    .validacion-cne-acta-values { grid-template-columns: repeat(3, 1fr); }
}

/* Detalle operativo de conformidad CNE Web. */
.graficos-cne-web-detail-card { margin-top: 14px; }

body.page-graficos:not(.page-analisis) .graficos-analysis-section {
    display: none !important;
}

body.page-analisis .graficos-main-grid,
body.page-analisis .graficos-geo-toolbar,
body.page-analisis .graficos-geo-layout,
body.page-analisis .graficos-manabi-board,
body.page-analisis .graficos-resultados-card,
body.page-analisis .graficos-results-only,
body.page-analisis #graficos_map_backdrop {
    display: none !important;
}

body.page-analisis .container {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

body.page-analisis .graficos-head-card { order: 0; }
body.page-analisis .graficos-cne-web-detail-card { order: 1; }
body.page-analisis .graficos-parish-analysis-card { order: 2; }
body.page-analisis .graficos-no-recibidas-card { order: 3; }
body.page-analisis .graficos-risk-card { order: 4; }
.graficos-parish-analysis-meta { align-self: center; padding: 7px 11px; border: 1px solid #cddcf0; border-radius: 999px; background: #f4f8fe; color: #315783; font-size: 12px; font-weight: 700; }
.graficos-parish-analysis-scroll { max-height: 540px; overflow: auto; border: 1px solid #d7e4f8; border-radius: 14px; }
.graficos-parish-analysis table { width: 100%; min-width: 1040px; border-collapse: collapse; }
.graficos-parish-analysis th { position: sticky; top: 0; z-index: 1; padding: 11px 12px; background: #edf4ff; color: #36577f; text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
.graficos-parish-analysis td { padding: 10px 12px; border-top: 1px solid #e3ebf7; color: #173257; font-size: 12px; vertical-align: top; }
.graficos-parish-analysis tbody tr:nth-child(even) { background: #f8fbff; }
.graficos-parish-analysis tbody tr.has-alert { border-left: 3px solid #e45454; }
.graficos-parish-analysis td strong, .graficos-parish-analysis td small { display: block; }
.graficos-parish-analysis td small { margin-top: 3px; color: #647b9d; font-size: 10px; }
.graficos-parish-analysis td.is-alert strong { color: #bb2f36; }
.graficos-no-recibidas-total { min-width: 58px; padding: 10px 14px; border: 1px solid #efb1b7; border-radius: 14px; color: #a52531; background: #fff1f2; text-align: center; font-size: 1.35rem; }
.graficos-no-recibidas-list { display: grid; gap: 8px; }
.graficos-no-recibida-item { display: grid; grid-template-columns: auto minmax(220px, 1fr) minmax(150px, .65fr); align-items: center; gap: 12px; padding: 11px 13px; border: 1px solid #efd0d3; border-radius: 13px; background: #fffafb; }
.graficos-no-recibida-item strong, .graficos-no-recibida-item small { display: block; }
.graficos-no-recibida-item small { margin-top: 3px; color: #6c7790; }
@media (max-width: 680px) { .graficos-no-recibida-item { grid-template-columns: 1fr; } }
.graficos-cne-web-detail-toolbar { align-items: center; gap: 18px; }
.graficos-cne-web-detail-toolbar h3 { margin: 4px 0; }
.graficos-cne-web-detail-tools { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; margin-left: auto; }
.graficos-cne-web-detail-summary,
.graficos-cne-web-detail-filters,
.graficos-cne-web-pagination,
.graficos-cne-web-pagination > div {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.graficos-cne-web-detail-summary span {
    padding: 8px 11px;
    border: 1px solid #cfe0f8;
    border-radius: 12px;
    background: #f7faff;
    color: #4b648a;
    font-size: 12px;
}
.graficos-cne-web-detail-summary span.is-warning { background: #fff8e8; border-color: #f5d898; }
.graficos-cne-web-detail-summary span.is-good { background: #edf9f2; border-color: #a6dfbd; color: #137a50; }
.graficos-cne-web-detail-summary span.is-danger { background: #fff0f0; border-color: #f3bcbc; color: #b42318; }
.graficos-cne-web-detail-actions { display: flex; align-items: center; gap: 7px; }
.graficos-conformidad-overview {
    display: grid;
    grid-template-columns: repeat(6, minmax(120px, 1fr));
    gap: 9px;
    margin: 14px 0 12px;
}
.graficos-conformidad-kpi {
    position: relative;
    overflow: hidden;
    min-height: 86px;
    padding: 12px 13px;
    border: 1px solid #cddcf0;
    border-radius: 14px;
    background: linear-gradient(145deg, #ffffff, #f6f9fe);
    box-shadow: 0 7px 18px rgba(31, 71, 126, .07);
}
.graficos-conformidad-kpi::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #2b6fdc;
}
.graficos-conformidad-kpi span,
.graficos-conformidad-kpi small { display: block; }
.graficos-conformidad-kpi span { color: #5e7393; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; }
.graficos-conformidad-kpi strong { display: block; margin-top: 7px; color: #173257; font-size: 1.35rem; line-height: 1; }
.graficos-conformidad-kpi small { margin-top: 5px; color: #7487a3; font-size: 11px; }
.graficos-conformidad-kpi.is-good::before { background: #18a568; }
.graficos-conformidad-kpi.is-good strong { color: #137a50; }
.graficos-conformidad-kpi.is-warning::before { background: #e49a18; }
.graficos-conformidad-kpi.is-warning strong { color: #a86508; }
.graficos-conformidad-kpi.is-danger::before { background: #dc3f3f; }
.graficos-conformidad-kpi.is-danger strong { color: #b52b2b; }
.graficos-conformidad-kpi.is-muted::before { background: #7587a3; }
@media (max-width: 1180px) { .graficos-conformidad-overview { grid-template-columns: repeat(3, minmax(140px, 1fr)); } }
@media (max-width: 680px) { .graficos-conformidad-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.graficos-cne-web-export { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 36px; padding: 7px 11px; border: 1px solid #c6d9f7; border-radius: 10px; background: #fff; color: #245789; font-weight: 800; cursor: pointer; }
.graficos-cne-web-export:hover { background: #f4f8ff; }
.graficos-cne-web-export.is-excel { border-color: #a6dfc1; color: #087f46; }
.graficos-cne-web-export.is-pdf { border-color: #f5c1c1; color: #c43232; }
.graficos-cne-web-detail-filters { margin: 12px 0; }
.graficos-cne-web-detail-filters .graficos-cne-web-filter {
    width: auto;
    flex: 0 0 auto;
    white-space: nowrap;
}
.graficos-cne-web-filter,
.graficos-cne-web-page {
    border: 1px solid #c6d9f7;
    border-radius: 999px;
    background: #fff;
    color: #315783;
    padding: 8px 13px;
    font-weight: 700;
    cursor: pointer;
}
.graficos-cne-web-filter.is-active { background: #1f6fe5; border-color: #1f6fe5; color: #fff; }
.graficos-cne-web-page:disabled { opacity: .45; cursor: default; }
.graficos-cne-web-table-wrap {
    overflow-x: auto;
    border: 1px solid #d7e4f8;
    border-radius: 14px;
}
.graficos-cne-web-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 1040px;
}
.graficos-cne-web-table th,
.graficos-cne-web-table td {
    padding: 11px 13px;
    border-bottom: 1px solid #e3ebf7;
    text-align: left;
    vertical-align: middle;
}
.graficos-cne-web-table th {
    background: #edf4ff;
    color: #36577f;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.graficos-cne-web-table tbody tr:last-child td { border-bottom: 0; }
.graficos-cne-recinto,
.graficos-cne-parish,
.graficos-cne-zone { display: flex; flex-direction: column; gap: 3px; }
.graficos-cne-recinto { min-width: 185px; }
.graficos-cne-parish { min-width: 125px; }
.graficos-cne-zone { min-width: 150px; }
.graficos-cne-recinto small,
.graficos-cne-parish small,
.graficos-cne-zone small { color: #687f9f; }
.graficos-cne-junta { white-space: nowrap; }
.graficos-cne-status {
    display: inline-flex;
    padding: 6px 10px;
    border-radius: 999px;
    background: #edf3fc;
    color: #496585;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}
.graficos-cne-status.is-warning { background: #fff3d7; color: #9a5b00; }
.graficos-cne-status.is-good { background: #e5f7ec; color: #137a50; }
.graficos-cne-status.is-danger { background: #ffe5e5; color: #b42318; }
.graficos-cne-status.is-missing { background: #eef2f8; color: #536b89; }
.graficos-cne-web-pagination {
    justify-content: space-between;
    margin-top: 12px;
    color: #61799b;
    font-size: 12px;
}
@media (max-width: 720px) {
    .graficos-cne-web-detail-toolbar { align-items: flex-start; }
    .graficos-cne-web-detail-tools { width: 100%; justify-content: flex-start; margin-left: 0; }
    .graficos-cne-web-detail-summary { width: 100%; }
    .graficos-cne-web-detail-filters .graficos-cne-web-filter {
        flex: 1 1 calc(50% - 8px);
        white-space: normal;
    }
    .graficos-cne-web-pagination { justify-content: center; }
}
/* Conciliacion voto a voto CNE Web. */
.validacion-cne-capture-head { align-items: center; gap: 12px; }
.validacion-cne-capture-actions { display: flex; align-items: center; gap: 8px; }
.validacion-cne-capture-actions button { min-height: 38px; padding: 8px 12px; }
.validacion-cne-candidate { grid-template-columns: 46px minmax(150px,1fr) 72px 92px 88px; gap: 8px; }
.validacion-cne-sealed { padding: 7px; border-radius: 10px; text-align: center; background: #edf4ff; }
.validacion-cne-sealed small,.validacion-cne-reading span { display: block; margin: 0 0 3px; color: #52709a; font-size: .63rem; font-weight: 800; text-transform: uppercase; }
.validacion-cne-sealed b { color: #12345f; font-size: 1.05rem; }
.validacion-cne-reading { margin: 0; }
.validacion-cne-reading input { width: 100%; height: 40px; padding: 5px 8px; border: 1px solid #9fc2f6; border-radius: 10px; color: #0d376d; background: #fff; text-align: center; font-size: 1rem; font-weight: 800; }
.validacion-cne-reading input:disabled { border-color: #d2ddec; background: #edf2f8; }
.validacion-cne-difference { min-width: 76px; padding: 7px 8px; border-radius: 999px; color: #667b97; background: #edf2f8; text-align: center; font-size: .7rem; font-weight: 800; }
.validacion-cne-difference.is-match,.validacion-cne-capture-actions .is-match { color: #087c3d; background: #e6f8ee; }
.validacion-cne-difference.is-different,.validacion-cne-capture-actions .is-different { color: #b4232e; background: #ffe9eb; }
.validacion-cne-acta-values { display: grid; grid-template-columns: 1fr; gap: 6px; padding-top: 8px; border-top: 1px solid #d7e3f4; }
.validacion-cne-acta-values h4 { margin: 0 0 3px; }
.validacion-cne-total-row { display: grid; grid-template-columns: minmax(100px,1fr) 72px 92px 88px; align-items: center; gap: 8px; padding: 7px 9px; border: 1px solid #dce7f6; border-radius: 12px; background: #fbfdff; }
.validacion-cne-documents { position: sticky; top: 82px; align-self: start; }
.validacion-cne-floating { position: fixed; z-index: 100000; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(8,28,55,.58); }
.validacion-cne-floating.is-hidden { display: none; }
.validacion-cne-floating-window { width: min(1180px,96vw); height: min(820px,92vh); min-width: 340px; min-height: 300px; resize: both; overflow: hidden; display: grid; grid-template-rows: auto 1fr; border: 1px solid #b9ceec; border-radius: 16px; background: #fff; box-shadow: 0 24px 70px rgba(5,26,54,.35); }
.validacion-cne-floating-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 9px 12px; border-bottom: 1px solid #d7e3f4; background: #f4f8fe; }
.validacion-cne-floating-head button { width: 38px; min-width: 38px; height: 38px; padding: 0; }
.validacion-cne-floating-body { min-height: 0; padding: 8px; overflow: auto; background: #e9f0f9; }
.validacion-cne-floating-body iframe,.validacion-cne-floating-body img { width: 100%; height: 100%; min-height: 500px; object-fit: contain; border: 0; background: #fff; }
@media (max-width: 760px) {
  .validacion-cne-capture-head,.validacion-cne-capture-actions { align-items: stretch; flex-direction: column; }
  .validacion-cne-candidate { grid-template-columns: 40px minmax(0,1fr) 64px 78px; }
  .validacion-cne-candidate .validacion-cne-difference { grid-column: 2 / -1; justify-self: stretch; }
  .validacion-cne-total-row { grid-template-columns: minmax(80px,1fr) 64px 78px; }
  .validacion-cne-total-row .validacion-cne-difference { grid-column: 1 / -1; }
  .validacion-cne-documents { position: static; }
}
/* Cuantificacion de diferencias entre valores sellados y Acta CNE Web. */
.validacion-cne-auto-differences { margin-top: 10px; border: 1px solid #f1c1c5; border-radius: 14px; background: #fff8f8; overflow: hidden; }
.validacion-cne-auto-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 13px; background: #ffe9eb; color: #8f1d27; }
.validacion-cne-auto-head div { display: flex; flex-direction: column; gap: 2px; }
.validacion-cne-auto-head small { font-size: .65rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.validacion-cne-auto-head strong,.validacion-cne-auto-head > b { font-size: .82rem; }
.validacion-cne-auto-differences ul { display: grid; gap: 6px; margin: 0; padding: 10px; list-style: none; }
.validacion-cne-auto-differences li { display: grid; grid-template-columns: 110px minmax(150px,1fr) auto; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid #f1d9dc; border-radius: 10px; background: #fff; }
.validacion-cne-auto-differences li span { color: #6d7f99; font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.validacion-cne-auto-differences li strong { color: #17385f; font-size: .76rem; }
.validacion-cne-auto-differences li b { font-size: .72rem; text-align: right; }
.validacion-cne-auto-differences .is-more,.graficos-cne-differences .is-more { color: #b42318; }
.validacion-cne-auto-differences .is-less,.graficos-cne-differences .is-less { color: #9a5b00; }
.validacion-cne-auto-ok { display: flex; align-items: center; gap: 10px; padding: 12px; color: #087c3d; background: #eaf8ef; }
.validacion-cne-auto-ok i { font-size: 1.25rem; }
.validacion-cne-auto-ok div { display: flex; flex-direction: column; }
.validacion-cne-auto-ok span,.validacion-cne-auto-pending { color: #647a98; font-size: .74rem; }
.validacion-cne-auto-pending { padding: 12px; background: #f7faff; }
.graficos-cne-web-table { min-width: 1300px; }
.graficos-cne-differences { display: grid; gap: 5px; min-width: 280px; }
.graficos-cne-differences > div { display: grid; grid-template-columns: 82px minmax(130px,1fr); gap: 2px 8px; padding: 7px 8px; border: 1px solid #f0d8db; border-radius: 9px; background: #fff8f8; }
.graficos-cne-differences span { color: #7488a4; font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.graficos-cne-differences strong { color: #17385f; font-size: .72rem; }
.graficos-cne-differences b { grid-column: 1 / -1; font-size: .68rem; }
.graficos-cne-observation { min-width: 180px; max-width: 280px; color: #526b8e; font-size: .72rem; line-height: 1.35; }
@media (max-width: 760px) {
    .validacion-cne-auto-head { align-items: flex-start; flex-direction: column; }
    .validacion-cne-auto-differences li { grid-template-columns: 1fr; }
    .validacion-cne-auto-differences li b { text-align: left; }
}
/* Documentos independientes: borrador interno y acta fisica original de la JRV. */
.votos-document-stack {
    grid-area: acta;
    display: grid;
    gap: 8px;
    min-width: 0;
}

.votos-document-stack .votos-acta-upload-box-compact {
    grid-area: auto;
    max-height: 132px;
}

.votos-cne-original-box {
    border-color: #efc56f;
    background: linear-gradient(180deg, #fffdf8 0%, #fff4da 100%);
    box-shadow: inset 4px 0 0 #dc7b16;
}

.votos-cne-original-box .votos-acta-upload-label,
.votos-cne-original-box .votos-acta-upload-head i {
    color: #9b4d05;
}

.votos-cne-original-box .acta-upload-icon-button.is-camera,
.votos-cne-original-box .acta-upload-icon-button.is-replace {
    color: #a33b15;
    border-color: #efac91;
    background: #fff1ea;
}

.votos-cne-original-box .acta-upload-icon-button.is-add {
    color: #9b6305;
    border-color: #e9c46a;
    background: #fff8df;
}

.votos-cne-original-actions { flex-wrap: wrap; justify-content: flex-end; }

.votos-acta-item.is-cne-original {
    border-color: #e8b558;
    background: linear-gradient(180deg, #fffdf7 0%, #fff0ce 100%);
}

.votos-acta-item.is-cne-original .votos-acta-main-badge {
    color: #8a4300;
    border-color: #edbe68;
    background: #fff3d3;
}

.votos-scanned-backup-inline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
    padding: 5px 7px;
    border: 1px solid #b9dfc8;
    border-radius: 8px;
    color: #206a3b;
    background: #f1fbf4;
    font-size: 11px;
    font-weight: 700;
}

.votos-scanned-backup-inline > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.votos-scanned-backup-inline > button {
    flex: 0 0 auto;
    width: auto;
    min-width: 62px;
    min-height: 26px;
    padding: 4px 8px;
    font-size: 11px;
    white-space: nowrap;
}

/* Comparativo territorial de resultados sin dependencia de coordenadas. */
body.page-graficos .container,
.graficos-resultados-card {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

body.page-graficos .container {
    margin-top: 0;
}

/* La regla global overflow-x:hidden convierte .app-main en un contenedor de
   desplazamiento que no se mueve y anula position:sticky. En esta pantalla el
   ancho ya está contenido en sus paneles, por lo que restauramos el overflow
   visible para que el filtro se adhiera al viewport al bajar. */
body.page-graficos .app-main {
    overflow: visible;
}

.graficos-resultados-card {
    overflow: visible;
}

.graficos-territorial-results {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    margin-top: 18px;
    padding: 18px;
    border: 1px solid #cfe0f8;
    border-radius: 20px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.graficos-territorial-head {
    min-width: 0;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.graficos-territorial-head h3 {
    margin: 5px 0 7px;
    color: #102f59;
}

.graficos-territorial-head p {
    max-width: 680px;
    margin: 0;
}

.graficos-territorial-controls {
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(150px, 1fr));
    gap: 10px;
    width: min(100%, 670px);
}

.graficos-territorial-controls label {
    display: grid;
    gap: 5px;
}

.graficos-territorial-controls label > span {
    color: #60799d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.graficos-territorial-controls select {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-height: 42px;
    padding: 0 34px 0 12px;
    border: 1px solid #c8daf4;
    border-radius: 12px;
    background: #ffffff;
    color: #17385f;
    font-weight: 700;
}

.graficos-territorial-summary {
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
    margin-top: 16px;
}

.graficos-territorial-summary > div {
    min-width: 0;
    padding: 12px 14px;
    border: 1px solid #d8e5f7;
    border-radius: 14px;
    background: #f8fbff;
}

.graficos-territorial-summary span,
.graficos-territorial-summary small {
    display: block;
    overflow: hidden;
    color: #647b9d;
    font-size: 11px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.graficos-territorial-summary span {
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.graficos-territorial-summary strong {
    display: block;
    margin: 5px 0 2px;
    overflow: hidden;
    color: #10315d;
    font-size: 21px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.graficos-territorial-legend {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    display: flex;
    gap: 8px;
    margin-top: 14px;
    padding-bottom: 4px;
    overflow-x: auto;
}

.graficos-territorial-legend-item {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 9px;
    min-width: 175px;
    max-width: 245px;
    padding: 9px 11px;
    border: 1px solid #d8e5f7;
    border-radius: 12px;
    background: #ffffff;
}

.graficos-territorial-swatch {
    display: inline-block;
    flex: 0 0 12px;
    width: 12px;
    height: 30px;
    border-radius: 999px;
    background: var(--candidate-color, #2b6db0);
}

.graficos-territorial-legend-item div,
.graficos-territorial-candidate-cell div {
    min-width: 0;
}

.graficos-territorial-legend-item strong,
.graficos-territorial-legend-item small,
.graficos-territorial-candidate-cell strong,
.graficos-territorial-candidate-cell small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.graficos-territorial-legend-item strong {
    color: #17385f;
    font-size: 12px;
}

.graficos-territorial-legend-item small {
    margin-top: 2px;
    color: #647b9d;
    font-size: 10px;
}

.graficos-territorial-chart-scroll {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    margin-top: 14px;
    padding: 14px;
    overflow-x: auto;
    border: 1px solid #d8e5f7;
    border-radius: 16px;
    background: #ffffff;
}

.graficos-territorial-chart {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-height: 430px;
}

.graficos-territorial-chart-shell {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    min-height: 410px;
}

.graficos-territorial-results .graficos-territorial-axis {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
    height: 310px;
    gap: 0;
    padding: 0 9px 0 0;
    color: #657b9b;
    font-size: 10px;
    font-weight: 700;
}

.graficos-territorial-plot {
    position: relative;
    min-width: 0;
}

.graficos-territorial-results .graficos-territorial-grid {
    position: absolute;
    z-index: 0;
    inset: 0 0 auto;
    display: flex;
    height: 310px;
    flex-direction: column;
    justify-content: space-between;
    pointer-events: none;
}

.graficos-territorial-results .graficos-territorial-grid span {
    width: 100%;
    border-top: 1px dashed #d9e5f5;
}

.graficos-territorial-groups {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: stretch;
    min-height: 410px;
}

.graficos-territorial-group {
    position: relative;
    flex: 0 0 auto;
    min-width: 0;
    padding: 0 10px;
}

.graficos-territorial-group:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 12px;
    right: 0;
    bottom: 8px;
    border-right: 1px dashed #aec5e4;
    pointer-events: none;
}

.graficos-territorial-bars {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: var(--territorial-bar-gap, 4px);
    box-sizing: border-box;
    height: 310px;
    padding-top: 22px;
    border-bottom: 2px solid #aebfda;
}

.graficos-territorial-bar-item {
    position: relative;
    flex: 0 0 var(--territorial-bar-width, 48px);
    width: var(--territorial-bar-width, 48px);
    height: 100%;
    text-align: center;
}

.graficos-territorial-bar-item > span {
    position: absolute;
    z-index: 2;
    bottom: calc(var(--bar-height, 0%) + 5px);
    left: 50%;
    color: #17385f;
    font-size: 11px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    white-space: nowrap;
    transform: translateX(-50%);
}

.graficos-territorial-bar-item > small {
    position: absolute;
    top: calc(100% + 6px);
    left: 50%;
    color: #60799d;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
    transform: translateX(-50%);
}

.graficos-territorial-results .graficos-territorial-bar {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: var(--bar-height, 0%);
    min-height: 0;
    border: 1px solid color-mix(in srgb, var(--candidate-color, #2b6db0) 72%, #17385f);
    border-radius: 6px 6px 1px 1px;
    background: linear-gradient(180deg, color-mix(in srgb, var(--candidate-color, #2b6db0) 78%, #ffffff) 0%, var(--candidate-color, #2b6db0) 100%);
    box-shadow: 0 6px 12px color-mix(in srgb, var(--candidate-color, #2b6db0) 20%, transparent);
}

.graficos-territorial-bar-item.no-votes .graficos-territorial-bar {
    display: none;
}

.graficos-territorial-results .graficos-territorial-bar-item.is-winner .graficos-territorial-bar {
    outline: 3px solid color-mix(in srgb, var(--candidate-color, #2b6db0) 30%, #ffffff);
    outline-offset: 2px;
}

.graficos-territorial-bar-item.is-winner > small::before {
    content: "★ ";
    color: #d88900;
}

.graficos-territorial-group-label {
    display: grid;
    justify-items: center;
    gap: 5px;
    padding-top: 30px;
    text-align: center;
}

.graficos-territorial-group-label strong {
    display: -webkit-box;
    overflow: hidden;
    color: #17385f;
    font-size: 12px;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.graficos-territorial-group-label small {
    color: #647b9d;
    font-size: 11px;
    font-weight: 700;
}

.graficos-territorial-winner-name {
    display: -webkit-box;
    max-width: 100%;
    overflow: hidden;
    color: #17385f;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.25;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.graficos-territorial-type {
    display: inline-flex;
    padding: 3px 7px;
    border: 1px solid #c9daf2;
    border-radius: 999px;
    background: #eef5ff;
    color: #28558f;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.graficos-territorial-type.is-rural {
    border-color: #b9dfc9;
    background: #edf9f1;
    color: #1d7442;
}

.graficos-territorial-type.is-mixta {
    border-color: #ebd39d;
    background: #fff8e5;
    color: #8a5a00;
}

.graficos-territorial-table-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 18px;
}

.graficos-territorial-table-head strong,
.graficos-territorial-table-head span {
    display: block;
}

.graficos-territorial-table-head strong {
    color: #17385f;
    font-size: 15px;
}

.graficos-territorial-table-head span {
    margin-top: 3px;
    color: #647b9d;
    font-size: 11px;
}

.graficos-territorial-table-wrap {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    margin-top: 9px;
    overflow: auto;
    border: 1px solid #d8e5f7;
    border-radius: 14px;
    background: #ffffff;
}

.graficos-territorial-table {
    width: max-content;
    min-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.graficos-territorial-table th,
.graficos-territorial-table td {
    min-width: 116px;
    padding: 9px 10px;
    border-right: 1px solid #dfe8f5;
    border-bottom: 1px solid #dfe8f5;
    color: #294363;
    font-size: 11px;
    text-align: center;
}

.graficos-territorial-table thead th {
    position: sticky;
    z-index: 2;
    top: 0;
    background: #17385f;
    color: #ffffff;
}

.graficos-territorial-table thead th:first-child,
.graficos-territorial-table tbody th {
    position: sticky;
    z-index: 3;
    left: 0;
    min-width: 240px;
}

.graficos-territorial-table thead th:first-child {
    background: #17385f;
}

.graficos-territorial-table thead th span,
.graficos-territorial-table thead th small {
    display: block;
}

.graficos-territorial-table thead th small {
    margin-top: 3px;
    color: #bfd3ee;
    font-size: 8px;
    text-transform: uppercase;
}

.graficos-territorial-candidate-cell {
    display: flex;
    align-items: center;
    gap: 9px;
    background: #f7faff;
    text-align: left !important;
}

.graficos-territorial-candidate-cell .graficos-territorial-swatch {
    height: 26px;
}

.graficos-territorial-candidate-cell strong {
    color: #17385f;
    font-size: 11px;
}

.graficos-territorial-candidate-cell small {
    max-width: 190px;
    margin-top: 2px;
    color: #647b9d;
    font-size: 9px;
}

.graficos-territorial-table td.is-winner {
    background: color-mix(in srgb, var(--candidate-color, #2b6db0) 12%, #ffffff);
    box-shadow: inset 0 -3px 0 var(--candidate-color, #2b6db0);
    color: #17385f;
    font-weight: 900;
}

.graficos-territorial-cell-value,
.graficos-territorial-cell-percent {
    display: block;
}

.graficos-territorial-cell-value {
    color: #17385f;
    font-size: 11px;
    font-weight: 800;
}

.graficos-territorial-cell-percent {
    margin-top: 2px;
    color: #667f9f;
    font-size: 9px;
    font-weight: 700;
}

.graficos-territorial-table td.is-winner .graficos-territorial-cell-percent {
    color: var(--candidate-color, #2b6db0);
}

.graficos-territorial-table td i {
    margin-left: 5px;
    color: #d88900;
}

@media (max-width: 1100px) {
    .graficos-territorial-head {
        flex-direction: column;
    }

    .graficos-territorial-controls {
        width: 100%;
    }
}

@media (max-width: 700px) {
    .graficos-territorial-results {
        padding: 13px;
    }

    .graficos-territorial-controls,
    .graficos-territorial-summary {
        grid-template-columns: 1fr;
    }

    .graficos-territorial-chart-scroll {
        padding: 10px;
    }
}

.graficos-detail-reports {
    margin-top: 18px;
    overflow: hidden;
    border: 1px solid #cbdcf2;
    background: linear-gradient(145deg, #ffffff 0%, #f5f9ff 100%);
}

.graficos-detail-reports-head {
    gap: 18px;
    align-items: center;
}

.graficos-detail-reports-head h3 {
    margin: 3px 0 4px;
    color: #123761;
}

.graficos-detail-reports-status {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    min-height: 38px;
    padding: 8px 13px;
    border: 1px solid #d7e3f3;
    border-radius: 999px;
    background: #f4f8fd;
    color: #607897;
    font-size: 12px;
    font-weight: 800;
}

.graficos-detail-reports-status.is-ready {
    border-color: #a9dfc7;
    background: #ecfaf3;
    color: #087a50;
}

.graficos-detail-reports-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 16px;
}

.graficos-detail-report-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    min-height: 126px;
    padding: 18px;
    border: 1px solid #d7e3f3;
    border-radius: 15px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(26, 63, 116, 0.07);
}

.graficos-detail-report-icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    border-radius: 14px;
    font-size: 22px;
}

.graficos-detail-report-icon.is-recinto {
    background: #e8f2ff;
    color: #1767c7;
}

.graficos-detail-report-icon.is-candidato {
    background: #fff3d9;
    color: #b86b00;
}

.graficos-detail-report-copy {
    display: grid;
    gap: 6px;
}

.graficos-detail-report-copy strong {
    color: #123761;
    font-size: 16px;
}

.graficos-detail-report-copy span {
    color: #607897;
    font-size: 12px;
    line-height: 1.45;
}

.graficos-detail-report-actions {
    display: grid;
    gap: 8px;
    min-width: 112px;
}

.graficos-report-export {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 8px 14px;
    border-radius: 10px;
    background: #ffffff;
    font-weight: 900;
    cursor: pointer;
}

.graficos-report-export.is-excel {
    border: 1px solid #8dd8b5;
    color: #087a50;
}

.graficos-report-export.is-pdf {
    border: 1px solid #f0abab;
    color: #bc2929;
}

.graficos-report-export:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 7px 16px rgba(26, 63, 116, 0.12);
}

.graficos-report-export:disabled {
    border-color: #d8e1ed;
    background: #f3f6fa;
    color: #9ba9ba;
    cursor: not-allowed;
    box-shadow: none;
}

@media (max-width: 980px) {
    .graficos-detail-reports-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .graficos-detail-reports-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .graficos-detail-report-card {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .graficos-detail-report-actions {
        grid-column: 1 / -1;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }
}
