/*
 * RUTAS DEL PERÚ A115.0
 * Sistema visual transversal para portal, autenticación y paneles privados.
 * Se carga después de los estilos de cada módulo para unificar componentes
 * sin modificar la lógica, las rutas ni las variables administrables de marca.
 */

:root {
    --rdp-ui-primary: var(--tp-primary, #087651);
    --rdp-ui-secondary: var(--tp-secondary, #0f766e);
    --rdp-ui-accent: var(--tp-accent, #d5a12e);
    --rdp-ui-dark: var(--tp-dark, #13231d);
    --rdp-ui-text: var(--tp-text, #17231e);
    --rdp-ui-muted: var(--tp-muted, #68766f);
    --rdp-ui-bg: var(--tp-bg, #f5f8f6);
    --rdp-ui-surface: var(--tp-surface, #ffffff);
    --rdp-ui-line: #dde7e1;
    --rdp-ui-line-soft: #edf2ef;
    --rdp-ui-success: var(--tp-success, #16845d);
    --rdp-ui-info: var(--tp-info, #2678c9);
    --rdp-ui-warning: var(--tp-warning, #e59a1b);
    --rdp-ui-danger: var(--tp-danger, #dc425a);
    --rdp-ui-radius-xs: 8px;
    --rdp-ui-radius-sm: 11px;
    --rdp-ui-radius: 15px;
    --rdp-ui-radius-lg: 20px;
    --rdp-ui-shadow-xs: 0 3px 12px rgba(19, 45, 35, .045);
    --rdp-ui-shadow: 0 12px 32px rgba(19, 45, 35, .07);
    --rdp-ui-shadow-lg: 0 24px 60px rgba(19, 45, 35, .12);
    --rdp-ui-transition: 180ms ease;
}

html {
    scroll-padding-top: 90px;
}

body.rdp-system-vA115 {
    color: var(--rdp-ui-text);
    font-family: "Open Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.rdp-system-vA115 *,
.rdp-system-vA115 *::before,
.rdp-system-vA115 *::after {
    box-sizing: border-box;
}

.rdp-system-vA115 h1,
.rdp-system-vA115 h2,
.rdp-system-vA115 h3,
.rdp-system-vA115 h4,
.rdp-system-vA115 h5,
.rdp-system-vA115 h6,
.rdp-system-vA115 .btn,
.rdp-system-vA115 .nav-link,
.rdp-system-vA115 .navbar-brand {
    font-family: "Montserrat", system-ui, sans-serif;
}

.rdp-system-vA115 img {
    max-width: 100%;
}

.rdp-system-vA115 a,
.rdp-system-vA115 button,
.rdp-system-vA115 input,
.rdp-system-vA115 select,
.rdp-system-vA115 textarea {
    -webkit-tap-highlight-color: transparent;
}

.rdp-system-vA115 :focus-visible {
    outline: 3px solid color-mix(in srgb, var(--rdp-ui-primary) 38%, transparent);
    outline-offset: 3px;
}

.rdp-system-vA115 :focus:not(:focus-visible) {
    outline: 0;
}

.rdp-skip-link-vA115 {
    position: fixed;
    z-index: 2147483000;
    top: 12px;
    left: 12px;
    transform: translateY(-150%);
    padding: 11px 16px;
    border-radius: var(--rdp-ui-radius-sm);
    color: #fff;
    background: var(--rdp-ui-dark);
    box-shadow: var(--rdp-ui-shadow-lg);
    font-weight: 800;
    text-decoration: none;
    transition: transform var(--rdp-ui-transition);
}

.rdp-skip-link-vA115:focus {
    transform: translateY(0);
}

/* Barra de carga de navegación. */
.rdp-route-progress-vA115 {
    position: fixed;
    z-index: 2147482999;
    top: 0;
    left: 0;
    width: 0;
    height: 3px;
    opacity: 0;
    pointer-events: none;
    background: linear-gradient(90deg, var(--rdp-ui-primary), var(--rdp-ui-accent));
    box-shadow: 0 0 16px color-mix(in srgb, var(--rdp-ui-primary) 45%, transparent);
    transition: width 260ms ease, opacity 180ms ease;
}

.rdp-route-progress-vA115.is-active {
    width: 72%;
    opacity: 1;
}

.rdp-route-progress-vA115.is-complete {
    width: 100%;
    opacity: 0;
    transition: width 130ms ease, opacity 300ms ease 130ms;
}

/* Botones y acciones. */
.rdp-system-vA115 .btn {
    min-height: 42px;
    padding: .62rem 1rem;
    border-radius: var(--rdp-ui-radius-sm);
    border-width: 1px;
    font-size: .83rem;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -.01em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    transition: transform var(--rdp-ui-transition), box-shadow var(--rdp-ui-transition), background-color var(--rdp-ui-transition), border-color var(--rdp-ui-transition), color var(--rdp-ui-transition);
}

.rdp-system-vA115 .btn:hover {
    transform: translateY(-1px);
}

.rdp-system-vA115 .btn:active {
    transform: translateY(0);
}

.rdp-system-vA115 .btn-sm,
.rdp-system-vA115 .btn-group-sm > .btn {
    min-height: 34px;
    padding: .42rem .72rem;
    border-radius: 9px;
    font-size: .75rem;
}

.rdp-system-vA115 .btn-lg,
.rdp-system-vA115 .btn-group-lg > .btn {
    min-height: 49px;
    padding: .78rem 1.3rem;
    border-radius: 13px;
}

.rdp-system-vA115 .btn-primary,
.rdp-system-vA115 .btn-success,
.rdp-system-vA115 .btn-admin-primary {
    border-color: var(--rdp-ui-primary);
    color: var(--tp-button-text, #fff);
    background: var(--rdp-ui-primary);
    box-shadow: 0 8px 18px color-mix(in srgb, var(--rdp-ui-primary) 20%, transparent);
}

.rdp-system-vA115 .btn-primary:hover,
.rdp-system-vA115 .btn-success:hover,
.rdp-system-vA115 .btn-admin-primary:hover {
    border-color: color-mix(in srgb, var(--rdp-ui-primary) 82%, #000);
    color: var(--tp-button-text, #fff);
    background: color-mix(in srgb, var(--rdp-ui-primary) 88%, #000);
    box-shadow: 0 11px 24px color-mix(in srgb, var(--rdp-ui-primary) 28%, transparent);
}

.rdp-system-vA115 .btn-outline-primary,
.rdp-system-vA115 .btn-outline-success {
    border-color: color-mix(in srgb, var(--rdp-ui-primary) 58%, #cdd8d2);
    color: var(--rdp-ui-primary);
    background: #fff;
}

.rdp-system-vA115 .btn-outline-primary:hover,
.rdp-system-vA115 .btn-outline-success:hover {
    border-color: var(--rdp-ui-primary);
    color: #fff;
    background: var(--rdp-ui-primary);
}

.rdp-system-vA115 .btn-light,
.rdp-system-vA115 .btn-secondary,
.rdp-system-vA115 .btn-admin-soft {
    border-color: var(--rdp-ui-line);
    color: #435149;
    background: #fff;
    box-shadow: var(--rdp-ui-shadow-xs);
}

.rdp-system-vA115 .btn-light:hover,
.rdp-system-vA115 .btn-secondary:hover,
.rdp-system-vA115 .btn-admin-soft:hover {
    border-color: #c8d7cf;
    color: var(--rdp-ui-primary);
    background: #f6faf8;
}

.rdp-system-vA115 button:disabled,
.rdp-system-vA115 .btn.disabled,
.rdp-system-vA115 .btn:disabled {
    transform: none;
    box-shadow: none;
    cursor: not-allowed;
    opacity: .62;
}

/* Tarjetas y superficies. */
.rdp-system-vA115 .card {
    border-color: var(--rdp-ui-line-soft);
    border-radius: var(--rdp-ui-radius);
    background: var(--rdp-ui-surface);
    box-shadow: var(--rdp-ui-shadow-xs);
}

.rdp-system-vA115 .card-header,
.rdp-system-vA115 .card-footer {
    border-color: var(--rdp-ui-line-soft);
    background: transparent;
}

.rdp-system-vA115 .card-header:first-child {
    border-radius: var(--rdp-ui-radius) var(--rdp-ui-radius) 0 0;
}

.rdp-system-vA115 .rdp-interactive-card-vA115 {
    transition: transform var(--rdp-ui-transition), box-shadow var(--rdp-ui-transition), border-color var(--rdp-ui-transition);
}

.rdp-system-vA115 .rdp-interactive-card-vA115:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--rdp-ui-primary) 20%, var(--rdp-ui-line));
    box-shadow: var(--rdp-ui-shadow);
}

.rdp-system-vA115 .list-group {
    border-radius: var(--rdp-ui-radius);
    overflow: hidden;
}

.rdp-system-vA115 .list-group-item {
    border-color: var(--rdp-ui-line-soft);
    padding: .9rem 1rem;
}

.rdp-system-vA115 .list-group-item-action:hover {
    background: #f5faf7;
}

/* Formularios consistentes. */
.rdp-system-vA115 .form-label {
    margin-bottom: .42rem;
    color: #334139;
    font-size: .79rem;
    font-weight: 800;
}

.rdp-system-vA115 .form-control,
.rdp-system-vA115 .form-select,
.rdp-system-vA115 .input-group-text {
    min-height: 44px;
    border-color: #d8e2dc;
    border-radius: var(--rdp-ui-radius-sm);
    color: var(--rdp-ui-text);
    background-color: #fff;
    font-size: .88rem;
    transition: border-color var(--rdp-ui-transition), box-shadow var(--rdp-ui-transition), background-color var(--rdp-ui-transition);
}

.rdp-system-vA115 textarea.form-control {
    min-height: 112px;
    resize: vertical;
}

.rdp-system-vA115 .form-control:hover,
.rdp-system-vA115 .form-select:hover {
    border-color: #bdcec5;
}

.rdp-system-vA115 .form-control:focus,
.rdp-system-vA115 .form-select:focus {
    border-color: color-mix(in srgb, var(--rdp-ui-primary) 68%, #fff);
    box-shadow: 0 0 0 .22rem color-mix(in srgb, var(--rdp-ui-primary) 12%, transparent);
}

.rdp-system-vA115 .form-control::placeholder {
    color: #98a39d;
}

.rdp-system-vA115 .form-control:disabled,
.rdp-system-vA115 .form-select:disabled,
.rdp-system-vA115 .form-control[readonly] {
    color: #69766f;
    background: #f1f5f3;
}

.rdp-system-vA115 .form-check-input {
    border-color: #b9cac1;
}

.rdp-system-vA115 .form-check-input:checked {
    border-color: var(--rdp-ui-primary);
    background-color: var(--rdp-ui-primary);
}

.rdp-system-vA115 .form-check-input:focus {
    border-color: var(--rdp-ui-primary);
    box-shadow: 0 0 0 .22rem color-mix(in srgb, var(--rdp-ui-primary) 12%, transparent);
}

.rdp-system-vA115 .form-text {
    color: var(--rdp-ui-muted);
    font-size: .74rem;
}

.rdp-system-vA115 .rdp-form-enhanced-vA115 {
    position: relative;
}

.rdp-system-vA115 .rdp-required-vA115::after {
    content: " *";
    color: var(--rdp-ui-danger);
}

.rdp-file-feedback-vA115 {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-top: .45rem;
    color: var(--rdp-ui-primary);
    font-size: .73rem;
    font-weight: 700;
}

.rdp-file-feedback-vA115 i {
    font-size: .9rem;
}

/* Tablas y listados. */
.rdp-system-vA115 .table-responsive {
    border-radius: var(--rdp-ui-radius-sm);
    scrollbar-color: #b9c9c0 transparent;
    scrollbar-width: thin;
}

.rdp-system-vA115 .table {
    --bs-table-bg: transparent;
    --bs-table-hover-bg: #f5faf7;
    margin-bottom: 0;
    color: #334139;
    font-size: .82rem;
}

.rdp-system-vA115 .table > :not(caption) > * > * {
    padding: .82rem .78rem;
    border-bottom-color: var(--rdp-ui-line-soft);
    vertical-align: middle;
}

.rdp-system-vA115 .table thead th {
    color: #66736c;
    background: #f7faf8;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
    white-space: nowrap;
}

.rdp-system-vA115 .table tbody tr:last-child > * {
    border-bottom-width: 0;
}

.rdp-system-vA115 .table tbody tr {
    transition: background-color var(--rdp-ui-transition);
}

.rdp-system-vA115 .dataTables_wrapper .dataTables_length,
.rdp-system-vA115 .dataTables_wrapper .dataTables_filter {
    margin-bottom: .8rem;
    color: var(--rdp-ui-muted);
    font-size: .76rem;
}

.rdp-system-vA115 .dataTables_wrapper .dataTables_filter input,
.rdp-system-vA115 .dataTables_wrapper .dataTables_length select {
    min-height: 38px;
    border: 1px solid var(--rdp-ui-line);
    border-radius: 9px;
    background: #fff;
}

.rdp-system-vA115 .dataTables_wrapper .dataTables_info,
.rdp-system-vA115 .dataTables_wrapper .dataTables_paginate {
    margin-top: .8rem;
    color: var(--rdp-ui-muted);
    font-size: .75rem;
}

/* Estados, alertas y mensajes. */
.rdp-system-vA115 .badge {
    padding: .42rem .62rem;
    border-radius: 999px;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .01em;
}

.rdp-system-vA115 .alert {
    position: relative;
    border: 1px solid transparent;
    border-radius: var(--rdp-ui-radius);
    padding: .9rem 1rem;
    box-shadow: var(--rdp-ui-shadow-xs);
    font-size: .84rem;
}

.rdp-system-vA115 .alert-success {
    border-color: #cce8da;
    color: #176344;
    background: #ecf8f2;
}

.rdp-system-vA115 .alert-danger {
    border-color: #f2d0d7;
    color: #9c2841;
    background: #fff1f4;
}

.rdp-system-vA115 .alert-warning {
    border-color: #f1dfb8;
    color: #805615;
    background: #fff8e9;
}

.rdp-system-vA115 .alert-info {
    border-color: #cce1ef;
    color: #245e84;
    background: #eff8fd;
}

.rdp-system-vA115 .rdp-flash-vA115 {
    padding-right: 3.2rem;
    overflow: hidden;
}

.rdp-flash-close-vA115 {
    position: absolute;
    top: 50%;
    right: .65rem;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    color: currentColor;
    background: transparent;
    transform: translateY(-50%);
    opacity: .72;
}

.rdp-flash-close-vA115:hover {
    background: rgba(255, 255, 255, .62);
    opacity: 1;
}

.rdp-flash-timer-vA115 {
    position: absolute;
    inset: auto 0 0 0;
    height: 3px;
    background: currentColor;
    opacity: .2;
    transform-origin: left;
    animation: rdp-flash-timer-vA115 7s linear forwards;
}

@keyframes rdp-flash-timer-vA115 {
    to { transform: scaleX(0); }
}

.rdp-system-vA115 .rdp-empty-state-vA115,
.rdp-system-vA115 .text-center.text-muted.py-5 {
    padding: clamp(2rem, 5vw, 4rem) 1.2rem !important;
    border: 1px dashed #cbd9d1;
    border-radius: var(--rdp-ui-radius);
    color: var(--rdp-ui-muted) !important;
    background: linear-gradient(145deg, #fbfdfc, #f3f8f5);
}

.rdp-system-vA115 .rdp-empty-state-vA115 > i,
.rdp-system-vA115 .text-center.text-muted.py-5 > i {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    margin: 0 auto .8rem;
    border-radius: 17px;
    color: var(--rdp-ui-primary);
    background: color-mix(in srgb, var(--rdp-ui-primary) 10%, #fff);
}

/* Navegación secundaria, pestañas y migas. */
.rdp-system-vA115 .breadcrumb {
    margin-bottom: .9rem;
    color: var(--rdp-ui-muted);
    font-size: .75rem;
}

.rdp-system-vA115 .breadcrumb-item + .breadcrumb-item::before {
    color: #a4afa9;
}

.rdp-system-vA115 .nav-tabs {
    gap: .3rem;
    border-bottom-color: var(--rdp-ui-line);
}

.rdp-system-vA115 .nav-tabs .nav-link {
    border: 0;
    border-bottom: 3px solid transparent;
    border-radius: 0;
    color: var(--rdp-ui-muted);
    font-size: .78rem;
    font-weight: 800;
}

.rdp-system-vA115 .nav-tabs .nav-link:hover,
.rdp-system-vA115 .nav-tabs .nav-link.active {
    border-bottom-color: var(--rdp-ui-primary);
    color: var(--rdp-ui-primary);
    background: transparent;
}

.rdp-system-vA115 .pagination {
    gap: .3rem;
}

.rdp-system-vA115 .page-link {
    min-width: 38px;
    min-height: 38px;
    border-color: var(--rdp-ui-line);
    border-radius: 9px !important;
    color: #4d5b54;
    display: grid;
    place-items: center;
    font-size: .78rem;
    font-weight: 700;
}

.rdp-system-vA115 .page-item.active .page-link {
    border-color: var(--rdp-ui-primary);
    color: #fff;
    background: var(--rdp-ui-primary);
}

/* Dropdowns y modales. */
.rdp-system-vA115 .dropdown-menu {
    padding: .5rem;
    border-color: var(--rdp-ui-line);
    border-radius: var(--rdp-ui-radius);
    box-shadow: var(--rdp-ui-shadow-lg);
}

.rdp-system-vA115 .dropdown-item {
    min-height: 39px;
    padding: .58rem .7rem;
    border-radius: 9px;
    display: flex;
    align-items: center;
    gap: .55rem;
    font-size: .79rem;
}

.rdp-system-vA115 .dropdown-item:hover,
.rdp-system-vA115 .dropdown-item:focus {
    color: var(--rdp-ui-primary);
    background: #eff7f3;
}

.rdp-system-vA115 .modal-content {
    overflow: hidden;
    border: 0;
    border-radius: var(--rdp-ui-radius-lg);
    box-shadow: var(--rdp-ui-shadow-lg);
}

.rdp-system-vA115 .modal-header,
.rdp-system-vA115 .modal-footer {
    padding: 1rem 1.2rem;
    border-color: var(--rdp-ui-line-soft);
}

.rdp-system-vA115 .modal-body {
    padding: 1.2rem;
}

.rdp-system-vA115 .offcanvas {
    border: 0;
    box-shadow: var(--rdp-ui-shadow-lg);
}

/* Mejoras del portal público. */
.public-site.rdp-system-vA115 {
    background: var(--rdp-ui-bg);
}

.public-site.rdp-system-vA115 .public-main-nav {
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    box-shadow: 0 8px 28px rgba(7, 24, 17, .12);
    backdrop-filter: blur(16px);
}

.public-site.rdp-system-vA115 .public-main-menu .nav-link {
    position: relative;
    border-radius: 9px;
    transition: color var(--rdp-ui-transition), background-color var(--rdp-ui-transition);
}

.public-site.rdp-system-vA115 .public-main-menu .nav-link:not(.dropdown-toggle)::after {
    content: "";
    position: absolute;
    right: .7rem;
    bottom: .22rem;
    left: .7rem;
    height: 2px;
    border-radius: 999px;
    background: var(--tp-nav-active, var(--rdp-ui-accent));
    transform: scaleX(0);
    transition: transform var(--rdp-ui-transition);
}

.public-site.rdp-system-vA115 .public-main-menu .nav-link:not(.dropdown-toggle).active::after,
.public-site.rdp-system-vA115 .public-main-menu .nav-link:not(.dropdown-toggle):hover::after {
    transform: scaleX(1);
}

.public-site.rdp-system-vA115 .public-nav-search-field .form-control {
    border-radius: 12px 0 0 12px;
}

.public-site.rdp-system-vA115 .public-nav-search > .btn {
    border-radius: 0 12px 12px 0;
}

.public-site.rdp-system-vA115 main > section:not([class*="hero"]),
.public-site.rdp-system-vA115 main > .container {
    scroll-margin-top: 90px;
}

.public-site.rdp-system-vA115 .place-card,
.public-site.rdp-system-vA115 .business-card,
.public-site.rdp-system-vA115 .event-card,
.public-site.rdp-system-vA115 .route-card,
.public-site.rdp-system-vA115 .product-card,
.public-site.rdp-system-vA115 article.card {
    border: 1px solid var(--rdp-ui-line-soft) !important;
    border-radius: var(--rdp-ui-radius) !important;
    box-shadow: var(--rdp-ui-shadow-xs);
    transition: transform var(--rdp-ui-transition), box-shadow var(--rdp-ui-transition), border-color var(--rdp-ui-transition);
}

.public-site.rdp-system-vA115 .place-card:hover,
.public-site.rdp-system-vA115 .business-card:hover,
.public-site.rdp-system-vA115 .event-card:hover,
.public-site.rdp-system-vA115 .route-card:hover,
.public-site.rdp-system-vA115 .product-card:hover,
.public-site.rdp-system-vA115 article.card:hover {
    transform: translateY(-4px);
    border-color: color-mix(in srgb, var(--rdp-ui-primary) 18%, var(--rdp-ui-line)) !important;
    box-shadow: var(--rdp-ui-shadow);
}

.rdp-back-top-vA115 {
    position: fixed;
    z-index: 1030;
    right: 22px;
    bottom: 22px;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 13px;
    color: #fff;
    background: var(--rdp-ui-primary);
    box-shadow: 0 12px 28px color-mix(in srgb, var(--rdp-ui-primary) 28%, transparent);
    display: grid;
    place-items: center;
    transform: translateY(18px);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--rdp-ui-transition), transform var(--rdp-ui-transition);
}

.rdp-back-top-vA115.is-visible {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}

/* Capa transversal para las páginas internas de los cuatro paneles. */
.rdp-panel-area-vA115 .rdp-page-heading-auto-vA115 {
    margin-bottom: 1.25rem !important;
    padding: 0;
}

.rdp-panel-area-vA115 .rdp-page-heading-auto-vA115 h1,
.rdp-panel-area-vA115 .rdp-page-heading-auto-vA115 h2 {
    margin-bottom: .3rem;
    color: var(--rdp-ui-text);
    font-size: clamp(1.35rem, 2.3vw, 1.85rem);
    font-weight: 900;
    letter-spacing: -.035em;
}

.rdp-panel-area-vA115 .rdp-page-heading-auto-vA115 p {
    max-width: 760px;
    color: var(--rdp-ui-muted) !important;
    font-size: .84rem;
}

.rdp-panel-area-vA115 .rdp-content-card-vA115 {
    border-color: var(--rdp-ui-line-soft) !important;
    border-radius: var(--rdp-ui-radius) !important;
    box-shadow: var(--rdp-ui-shadow-xs) !important;
}

.rdp-panel-area-vA115 .rdp-content-card-vA115 > .card-body {
    padding: clamp(1rem, 2vw, 1.35rem) !important;
}

.rdp-panel-area-vA115 .rdp-content-card-vA115 > .card-header {
    padding: 1rem 1.2rem;
}

.rdp-panel-area-vA115 .rdp-panel-table-vA115 {
    border: 1px solid var(--rdp-ui-line-soft);
    border-radius: var(--rdp-ui-radius-sm);
    background: #fff;
}

.rdp-panel-area-vA115 .rdp-panel-table-vA115::after {
    content: "";
    position: sticky;
    right: 0;
    display: block;
    width: 1px;
    height: 1px;
}

.rdp-panel-area-vA115 .admin-form-footer,
.rdp-panel-area-vA115 .rdp-sticky-actions-vA115 {
    position: sticky;
    z-index: 20;
    bottom: 12px;
    border: 1px solid var(--rdp-ui-line);
    border-radius: var(--rdp-ui-radius);
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 14px 34px rgba(19, 45, 35, .12);
    backdrop-filter: blur(14px);
}

.rdp-unsaved-vA115 {
    position: fixed;
    z-index: 1065;
    right: 18px;
    bottom: 18px;
    max-width: min(330px, calc(100vw - 36px));
    padding: .72rem .9rem;
    border: 1px solid #ead8ac;
    border-radius: 12px;
    color: #73531c;
    background: #fff8e7;
    box-shadow: var(--rdp-ui-shadow);
    display: flex;
    align-items: center;
    gap: .55rem;
    font-size: .75rem;
    font-weight: 800;
    transform: translateY(14px);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--rdp-ui-transition), transform var(--rdp-ui-transition);
}

.rdp-unsaved-vA115.is-visible {
    transform: translateY(0);
    opacity: 1;
}

.rdp-panel-area-vA115 .rdp-unsaved-vA115 {
    bottom: 22px;
}

.traveler-shell-vA111.rdp-system-vA115 .rdp-unsaved-vA115,
.institution-shell-vA112.rdp-system-vA115 .rdp-unsaved-vA115,
.business-shell-vA113.rdp-system-vA115 .rdp-unsaved-vA115,
.admin-body-vA114.rdp-system-vA115 .rdp-unsaved-vA115 {
    bottom: 22px;
}

/* Autenticación unificada. */
.auth-body.rdp-system-vA115,
body.bg-dark.rdp-system-vA115 {
    min-height: 100vh;
    background:
        radial-gradient(circle at 12% 15%, color-mix(in srgb, var(--rdp-ui-primary) 25%, transparent), transparent 28%),
        radial-gradient(circle at 88% 80%, color-mix(in srgb, var(--rdp-ui-accent) 18%, transparent), transparent 26%),
        var(--rdp-ui-dark) !important;
}

.auth-body.rdp-system-vA115 .card,
body.bg-dark.rdp-system-vA115 .card {
    border: 1px solid rgba(255, 255, 255, .65) !important;
    box-shadow: 0 26px 70px rgba(0, 0, 0, .2) !important;
}

/* Skeleton disponible para cargas progresivas. */
.rdp-skeleton-vA115 {
    overflow: hidden;
    border-radius: 8px;
    color: transparent !important;
    background: #e8efeb;
    position: relative;
}

.rdp-skeleton-vA115::after {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .7), transparent);
    animation: rdp-skeleton-vA115 1.35s infinite;
}

@keyframes rdp-skeleton-vA115 {
    100% { transform: translateX(100%); }
}

@media (max-width: 991.98px) {
    .rdp-system-vA115 .btn {
        min-height: 44px;
    }

    .public-site.rdp-system-vA115 .public-main-menu .nav-link:not(.dropdown-toggle)::after {
        right: auto;
        left: 0;
        width: 34px;
    }

    .public-site.rdp-system-vA115 .public-nav-search-field .form-control,
    .public-site.rdp-system-vA115 .public-nav-search > .btn {
        border-radius: var(--rdp-ui-radius-sm);
    }

    .rdp-panel-area-vA115 .rdp-page-heading-auto-vA115 {
        align-items: flex-start !important;
    }
}

@media (max-width: 767.98px) {
    .rdp-system-vA115 .container,
    .rdp-system-vA115 .container-fluid {
        --bs-gutter-x: 1.35rem;
    }

    .rdp-system-vA115 .card-body {
        padding: 1rem;
    }

    .rdp-system-vA115 .modal-dialog {
        margin: .65rem;
    }

    .rdp-system-vA115 .modal-content {
        border-radius: 16px;
    }

    .rdp-system-vA115 .table > :not(caption) > * > * {
        padding: .72rem .64rem;
    }

    .rdp-panel-area-vA115 .rdp-page-heading-auto-vA115 > .btn,
    .rdp-panel-area-vA115 .rdp-page-heading-auto-vA115 > a.btn {
        width: 100%;
    }

    .rdp-panel-area-vA115 .admin-form-footer,
    .rdp-panel-area-vA115 .rdp-sticky-actions-vA115 {
        bottom: 76px;
        padding: .7rem !important;
    }

    .rdp-unsaved-vA115,
    .rdp-panel-area-vA115 .rdp-unsaved-vA115,
    .traveler-shell-vA111.rdp-system-vA115 .rdp-unsaved-vA115,
    .institution-shell-vA112.rdp-system-vA115 .rdp-unsaved-vA115,
    .business-shell-vA113.rdp-system-vA115 .rdp-unsaved-vA115,
    .admin-body-vA114.rdp-system-vA115 .rdp-unsaved-vA115 {
        right: 12px;
        bottom: 82px;
        left: 12px;
        max-width: none;
        justify-content: center;
    }

    .rdp-back-top-vA115 {
        right: 14px;
        bottom: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .rdp-system-vA115 *,
    .rdp-system-vA115 *::before,
    .rdp-system-vA115 *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

@media print {
    .rdp-route-progress-vA115,
    .rdp-skip-link-vA115,
    .rdp-back-top-vA115,
    .rdp-unsaved-vA115,
    .traveler-topbar-vA111,
    .traveler-sidebar-vA111,
    .traveler-mobile-nav-vA111,
    .institution-topbar-vA112,
    .institution-sidebar-vA112,
    .institution-mobile-nav-vA112,
    .business-topbar-vA113,
    .business-sidebar-vA113,
    .business-mobile-nav-vA113,
    .admin-sidebar-vA114,
    .admin-topbar-vA114,
    .admin-mobile-nav-vA114,
    .public-main-nav,
    .public-footer,
    .btn {
        display: none !important;
    }

    .rdp-system-vA115,
    .traveler-main-vA111,
    .institution-main-vA112,
    .business-main-vA113,
    .admin-main-vA114 {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #000 !important;
        background: #fff !important;
    }

    .rdp-system-vA115 .card,
    .rdp-system-vA115 .admin-card {
        break-inside: avoid;
        box-shadow: none !important;
    }
}
