@import url(https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap);
:root { --color-white: #fff; --color-dark: #2c3e50; --color-dark-secondary: #34495e; --color-primary: #019cd7; --color-primary-light: #6aa3c9; --color-primary-dark: #027dc1; --color-secondary: #34495e; --color-accent: #f39c12; --color-success: #2ecc71; --color-warning: #f39c12; --color-danger: #e74c3c; --color-neutral-50: #f9fafb; --color-neutral-100: #f3f4f6; --color-neutral-200: #e5e7eb; --color-neutral-300: #d1d5db; --color-neutral-700: #374151; --color-neutral-800: #1f2937; --color-neutral-900: #111827; --form-field-border: var(--color-primary-light); --accent-color: var(--color-primary); --highlight: #f5f9fc; --row-hover: #e8f4fc; --row-select: #e1f0fb; --grid-border: #e2e8f0; --grid-header-bg: var(--color-dark-secondary); --fsize: .67rem; --font-family-base: 'Poppins','Open Sans',sans-serif; --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --line-height-tight: 1.2; --line-height-normal: 1.5; --letter-spacing-normal: 0; --letter-spacing-wide: .025em; --spacing-xs: .25rem; --spacing-sm: .5rem; --spacing-md: 1rem; --spacing-lg: 1.5rem; --spacing-xl: 2rem; --grid-shadow: 0 1px 3px rgba(0,0,0,.07); --shadow-sm: 0 1px 2px 0 rgba(0,0,0,.05); --shadow-md: 0 4px 6px -1px rgba(0,0,0,.1); --shadow-lg: 0 10px 15px -3px rgba(0,0,0,.1); --grid-radius: .25rem; --radius-sm: .25rem; --radius-md: .375rem; --radius-lg: .5rem; --radius-xl: .75rem; --radius-full: 9999px; --transition-fast: 150ms cubic-bezier(.4,0,.2,1); --transition-normal: 300ms cubic-bezier(.4,0,.2,1); --transition-slow: 500ms cubic-bezier(.4,0,.2,1); --transition-bounce: 300ms cubic-bezier(.34,1.56,.64,1) }

@keyframes fadeIn {
  from { opacity: 0 }
  to { opacity: 1 }
}

@keyframes slideInUp {
  from { transform: translateY(20px); opacity: 0 }
  to { transform: translateY(0); opacity: 1 }
}

@keyframes slideInLeft {
  from { transform: translateX(-20px); opacity: 0 }
  to { transform: translateX(0); opacity: 1 }
}

@keyframes slideInRight {
  from { transform: translateX(20px); opacity: 0 }
  to { transform: translateX(0); opacity: 1 }
}

@keyframes slideDown {
  from { transform: translateY(-20px); opacity: 0 }
  to { transform: translateY(0); opacity: 1 }
}

@keyframes tableHighlight {
  0% { background-color: rgba(1,156,215,.15) }
  100% { background-color: transparent }
}

@keyframes rippleEffect {
  0% { transform: scale(0); opacity: .6 }
  100% { transform: scale(2.5); opacity: 0 }
}

@keyframes successCheck {
  0% { transform: scale(0); opacity: 0 }
  50% { transform: scale(1.2); opacity: 1 }
  100% { transform: scale(1); opacity: 1 }
}

html { -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; box-sizing: border-box; font-size: 16px }
*, *:before, *:after { box-sizing: inherit }
body { display: flex; flex-flow: column wrap; justify-content: space-evenly; margin: 0; padding: 0; background-color: var(--color-neutral-50); color: var(--color-dark); font-family: var(--font-family-base); line-height: var(--line-height-normal); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale }
  body > * { font: var(--fsize) 'Poppins',Verdana,'Segoe UI' }
center { margin: 0 auto }
.c1 { color: var(--color-dark) }
.c3, .cs { color: var(--color-dark-secondary) }
.aj { text-align: justify }
.ac, .contenidofoots, .footer, .footerclientes, .perfil, .powerby { text-align: center }
.HeaderIzq, .al { text-align: left !important }
.HeaderDer, .ar { text-align: right !important }
.bandapie td {
    text-align: right
}
.bandapie td.numero {
    text-align: left !important;
}
.HeaderCenter { text-align: center !important }
img { display: block; max-width: 100%; height: auto; margin: 0 .5rem; border-radius: var(--radius-sm); transition: transform var(--transition-normal) }
  img:hover { transform: scale(1.02) }
.sidebar { font-size: calc(var(--fsize)*1.2); z-index: 8; border-radius: var(--radius-lg); height: 95vh; width: auto; position: fixed; left: 0; background: var(--color-dark-secondary); padding-top: 2rem; overflow-y: auto; margin-top: 0; animation: slideInLeft 1s; display: flex; flex-direction: column; box-shadow: var(--shadow-md); border: none; will-change: transform }
  .sidebar a { display: block; padding: .2rem 0 .2rem .5rem; color: var(--color-white) !important; text-decoration: none; border-radius: var(--radius-sm); margin: 0 .1rem }
  .sidebar i { margin: .13rem .13rem 0 auto; color: var(--color-white) !important }
  .sidebar .container-menu, .sidebar .container-submenu, body { display: flex }
.container-menu, .container-submenu { position: relative; transition: background-color var(--transition-normal) }
  .container-menu:before, .container-submenu:before { content: ''; position: absolute; height: 100%; left: -3px; width: 3px; background-color: transparent; transition: background-color var(--transition-normal) }
  .container-menu:hover:before, .container-submenu:hover:before { background-color: var(--accent-color) }
  .container-menu:hover i, .container-submenu:hover i { transform: translateY(3px) }
  .container-menu:hover, .enova, .sidebar .container-menu { font-weight: var(--font-weight-semibold) }
.sub-menu { margin-left: .3rem }
  .sub-menu a { padding: .25rem .5rem !important }
  .sub-menu:not(:empty) { border-left: 1px solid rgba(255,255,255,.15); margin-left: .4rem; padding-left: .2rem }
.header { background: linear-gradient(to right,var(--color-dark-secondary),var(--color-dark)); border-radius: 0 0 var(--radius-lg) var(--radius-lg); height: 2rem; position: fixed; width: 100vw; z-index: 10; box-shadow: var(--shadow-md); font-size: 14px; border: none; color: var(--color-white); display: flex; align-items: center; padding: 0 1.5rem }
  .header a { color: var(--color-white) !important; transition: opacity var(--transition-fast) }
    .header a:hover { opacity: .9 }
.logo, .principal2 { display: none }
.logo { background: url(img/logo.png) no-repeat; background-size: contain; height: 2.9rem; left: 7vw; position: relative; top: -1.2rem; width: 14.3rem; cursor: pointer }
.date_info, .enova, .menu_side, .user_info { position: absolute; top: 40%; transform: translateY(-50%) }
.menu_side { left: 0; font-size: calc(var(--fsize)*2); color: #ccc; border-radius: var(--radius-sm); transition: all var(--transition-normal); z-index: 1060; cursor: pointer }
  .menu_side:hover { color: var(--color-white); transform: translateY(-50%) scale(1.1) }
.enova { left: 4.5vw; font-size: calc(var(--fsize)*1.3); color: var(--color-accent); animation: fadeIn 1s }
.user_info { right: 16.1rem; font-size: calc(var(--fsize)*1); animation: fadeIn .8s }
.date_info { top: 1.6rem; left: 4.5vw; font-size: calc(var(--fsize)*.9); color: var(--color-success); animation: fadeIn .8s }
.buscador {
    position: absolute;
    top: 50%;
    left: 43%;
    transform: translate(-50%, -50%)
}
.enlaces { position: absolute; right: 1.2rem; top: 50%; transform: translateY(-50%); animation: fadeIn .8s; display: flex; gap: .1rem }
.tooltipo, .tooltipoAyuda { position: relative; display: inline-block }
  .tooltipo .tooltiptexto, .tooltipoAyuda .tooltipoAyudatexto { visibility: hidden; position: absolute; z-index: 100; opacity: 0; transition: opacity .3s,transform .3s,visibility 0s .3s; box-shadow: var(--shadow-md); font-weight: var(--font-weight-normal); pointer-events: none }
  .tooltipo .tooltiptexto { min-width: 5rem; background: var(--color-primary); color: var(--color-white); text-align: center; border-radius: var(--radius-md); padding: .5rem; top: 2rem; left: 1.3rem; transform: translateX(-50%) translateY(10px); font-size: .75rem }
  .tooltipoAyuda .tooltipoAyudatexto { width: 100%; max-width: 250px; min-width: 100px; background-color: rgba(0,0,0,.8); color: #fff; text-align: left; border-radius: var(--radius-md); padding: .75rem; font-size: 10px; top: 35px; left: calc(50% - 50%); transform: translateX(-50%) translateY(10px) }
  .tooltipo:hover .tooltiptexto, .tooltipoAyuda:hover .tooltipoAyudatexto { visibility: visible; opacity: 1; transition: opacity .3s,transform .3s }
  .tooltipo:hover .tooltiptexto { transform: translateX(-50%) translateY(0) }
  .tooltipoAyuda:hover .tooltipoAyudatexto { transform: translateX(-50%) translateY(0) }
.etarea { background: url(img/etarea.png) no-repeat; background-size: contain }
.eayuda { background: url(img/eayuda.png) no-repeat; background-size: contain }
.edirTel { background: url(img/etel.png) no-repeat; background-size: contain }
.esugerencias { background: url(img/esugerencias.png) no-repeat; background-size: contain }
.esalir { background: url(img/eclose.png) no-repeat; background-size: contain }
.form, .login { box-shadow: var(--shadow-md); border-radius: var(--radius-md) }
input, select, textarea { border: 0; padding: 0 .5rem; border-radius: var(--radius-sm); outline: 0; transition: all var(--transition-normal); box-shadow: var(--shadow-sm) }
.ReportViewer input {  padding: initial !important;  border: initial !important;  border-radius: initial !important;  outline: initial !important;}
  input:focus, select:focus, textarea:focus { border-color: var(--accent-color); box-shadow: 0 0 0 2px rgba(1,156,215,.2) }
[type=button], [type=password], [type=submit], [type=text], select { height: 2rem !important }
  [type=text]:focus, select:focus, textarea:focus { border-left: .15rem solid var(--color-primary) }
[type=button], [type=submit] { padding: 0; margin: 0; min-width: 2rem; cursor: pointer; background: var(--color-secondary); color: var(--color-white); font-weight: var(--font-weight-medium); transition: all var(--transition-normal); border-radius: var(--radius-sm); border: none; position: relative; overflow: hidden }
  [type=button]:hover, [type=submit]:hover { transform: translateY(-1px); box-shadow: var(--shadow-md) }
  [type=button]:after, [type=submit]:after { content: ''; position: absolute; top: 50%; left: 50%; width: 5px; height: 5px; background: rgba(255,255,255,.5); opacity: 0; border-radius: 100%; transform: scale(1,1) translate(-50%); transform-origin: 50% 50%; animation: rippleEffect .5s }
  [type=button]:focus, [type=submit]:focus { box-shadow: 0 0 0 3px rgba(1,156,215,.3); outline: none }
.form { max-width: 100%; clear: both; margin: .1rem 0 0; background: #f9fafb; min-height: contain; animation: fadeIn .5s; height: auto; padding: .1rem 0 }
  .form ul { vertical-align: top; height: auto; display: inline-block; padding: .3rem 0 0; min-width: auto; border-right: 1px dashed rgba(39,96,155,.3) }
  .form li { list-style: none; padding: .01rem 0; transition: background-color var(--transition-normal); border-radius: var(--radius-sm) }
    .form li:hover { background-color: rgba(1,156,215,.05) }
  .form label, .form span { display: inline-block; font-stretch: expanded; color: #27609b; vertical-align: top; width: 8rem; text-align: right; padding-right: .3rem }
    .filtros label:after, .form label:after { content: ":" }
  .form textarea { min-width: 15.5rem; height: 7.5rem; line-height: 1.5 }
  .form select { max-width: 56%; padding-right: 2rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%236aa3c9' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: calc(100% - .5rem) center; appearance: none }
  .field-border, .form [type=password], .form [type=text], .form select, .form textarea { border-bottom: .06rem solid var(--form-field-border) }
  .form [type=radio] { width: 1.3rem; position: relative }
  .form li input[type=checkbox]:disabled { float: left }
  .form .ulDescripcion { padding-left: 44% }
span[style*="color:Red;visibility:hidden"] { width: 0.5rem }
.float-fecha { margin: 0 .3rem; float: right !important }
.filtros { padding: .1rem 1rem; margin-bottom: .1rem; max-width: 100%; clear: both; display: inline-block; background: linear-gradient(90deg,rgba(236,240,241,.5) 0,rgba(252,252,252,.3) 30%); border-radius: 0 0 0 5px; border-left: 2px solid var(--color-secondary); animation: fadeIn .6s }
  .filtros label, .filtros span { display: inline-block; margin: .1rem; text-align: right; font-weight: var(--font-weight-medium) }
  .filtros [type=text], .filtros select { background: #e6ffe633; border-bottom: .06rem solid var(--color-success); margin: .1rem 0; transition: all var(--transition-normal) }
    .filtros [type=text]:focus, .filtros select:focus { background: #e6ffe6; border-bottom: .15rem solid var(--color-success) }
.boton, .botonD, .login [type=submit] { background-color: var(--color-secondary); color: var(--color-white); padding: .5rem 1rem; transition: all var(--transition-normal); display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-sm); border: none; font-weight: var(--font-weight-medium); cursor: pointer; position: relative; overflow: hidden; box-shadow: var(--shadow-sm) }
  .boton:hover, .login [type=submit]:hover { background: var(--color-primary-dark); transform: translateY(-1px); box-shadow: var(--shadow-md) }
.boton, .botonD { min-width: auto }
.botonD { background: #e6e6e6; color: #777; opacity: 1; cursor: not-allowed }
  .botonD:hover { transform: none; box-shadow: var(--shadow-sm) }
.botonAux { display: inline-block }
.grid, .gridPlana { margin: .1rem 0; border-radius: var(--grid-radius); box-shadow: var(--shadow-md); overflow: hidden; border: 1px solid var(--grid-border); animation: fadeIn .6s; background: var(--color-white) }
  .grid table, .gridPlana table { width: 100%; border-collapse: collapse }
  .grid caption { background-color: var(--highlight); padding: 0.2rem; text-align: left; font-weight: var(--font-weight-semibold); border-bottom: 1px solid var(--grid-border); caption-side: top; letter-spacing: var(--letter-spacing-wide); text-transform: uppercase; color: var(--color-primary-dark) }
  .grid th, .gridPlana th { padding: .2rem .3rem; background: var(--grid-header-bg); color: var(--color-white); font-weight: var(--font-weight-bold); text-align: left; border: none; vertical-align: middle; position: relative; letter-spacing: var(--letter-spacing-wide) }
  .grid td, .gridPlana td { padding: .2rem .3rem; border-bottom: 1px solid var(--grid-border); vertical-align: middle; transition: background-color var(--transition-normal) }
  .grid tr { transition: background-color var(--transition-normal) }
    .grid tr:hover > td { background-color: var(--row-hover) }
    .grid tr.selected > td { background-color: var(--row-select) }
    .grid tr.new-row { animation: tableHighlight 2s ease }
.grid-empty { padding: 3rem; text-align: center; color: #94a3b8; background-color: var(--color-neutral-50); border-radius: var(--radius-md); margin: 1rem }
.grid.compact td, .grid.compact th { padding: .5rem .75rem; font-size: .9em }
.grid th [type=checkbox], .grid th label { padding: .1rem .3rem 0 }
.gridPlana td, .gridPlana th { padding: 0; border: 0; border-bottom: .06rem solid #ccc; border-top: .06rem solid #ccc }
  .gridPlana th:first-child { border-radius: var(--radius-sm) 0 0 0 }
  .gridPlana th:last-child { border-radius: 0 var(--radius-sm) 0 0 }
.grid a:link, .grid caption, .tarea { font-weight: var(--font-weight-semibold) }
.grid center { width: .3rem }
.banda a:link, .grid th a:link { text-decoration: none; color: var(--color-white) }
.divContent { position: relative; width: 100%; padding: 0 .3rem 7rem .15rem; top: 1.8rem; animation: fadeIn .5s; max-width: 100vw }
  .divContent h1 { margin: 0; padding: .4rem .8rem; position: relative; background: linear-gradient(90deg,rgba(236,240,241,.5) 0,rgba(252,252,252,.3) 30%); color: var(--color-dark); border-left: .5rem solid var(--color-secondary); text-transform: uppercase; font-size: var(--font-weight-medium); font-weight: var(--font-weight-semibold); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; box-shadow: var(--shadow-sm) }
.grid-container { position: relative; width: 100% }
.grid-actions { position: absolute; top: 1rem; right: 1rem; display: flex; gap: .5rem; margin-bottom: .5rem; z-index: 5 }
  .grid-actions button { padding: .5rem 1rem; background: var(--color-white); border: 1px solid var(--grid-border); border-radius: var(--radius-sm); cursor: pointer; font-size: .9rem; transition: all var(--transition-normal); color: var(--color-primary-dark); font-weight: var(--font-weight-medium) }
    .grid-actions button:hover { background-color: var(--highlight); transform: translateY(-1px); box-shadow: var(--shadow-sm); color: var(--color-primary) }
.banda, .grid caption { text-transform: uppercase }
.bandapie { background: var(--color-dark-secondary) !important; color: var(--color-white); text-align: center; font-weight: var(--font-weight-medium) }
.grid tr.selectable { cursor: pointer }
  .grid tr.selectable:hover td { background-color: var(--row-hover) }
  .grid tr.selectable.selected td { background-color: var(--row-select) }
.grid .status-cell { display: flex; align-items: center; gap: .5rem }
.grid .cell-bold { font-weight: var(--font-weight-semibold); color: var(--color-primary-dark) }
.grid .cell-highlight { background-color: rgba(1,156,215,.07) }
.grid .cell-action-buttons { white-space: nowrap; display: flex; gap: .25rem }
.grid-header-sortable { cursor: pointer; user-select: none }
  .grid-header-sortable:after { content: ""; display: inline-block; margin-left: .25rem; width: 0; height: 0; vertical-align: middle }
  .grid-header-sortable.sort-asc:after { border-left: 4px solid transparent; border-right: 4px solid transparent; border-bottom: 5px solid var(--color-white) }
  .grid-header-sortable.sort-desc:after { border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid var(--color-white) }
.grid-pagination { display: flex; justify-content: center; align-items: center; padding: 1rem; border-top: 1px solid var(--grid-border); background-color: var(--highlight) }
  .grid-pagination a { margin: 0 .25rem; padding: .5rem; border-radius: var(--radius-sm); transition: all var(--transition-normal); color: var(--color-primary-dark); text-decoration: none; min-width: 2rem; text-align: center }
    .grid-pagination a:hover { background-color: rgba(1,156,215,.1); color: var(--color-primary) }
    .grid-pagination a.active { background-color: var(--accent-color); color: var(--color-white) }
  .grid-pagination .pages { margin: 0 .5rem }
.linbut a:link, .linbut a:visited, .menu_link a:hover, a:hover, a:link, a:visited { color: var(--color-primary); text-decoration: none; transition: color var(--transition-fast) }
.linbut a:active, a:active { text-decoration: none }
.MenuPrincipalclientes a:active, .MenuPrincipalclientes a:hover, .MenuPrincipalclientes a:link, .MenuPrincipalclientes a:visited { color: #1e1e2e; text-decoration: none }
.bottom_link a:active, .bottom_link a:link, .bottom_link a:visited, .linbut a:hover { color: var(--color-white); text-decoration: none }
.bottom_link a:hover { color: var(--color-white); text-decoration: underline }
.menu_link a:active, .menu_link a:link, .menu_link a:visited { color: #666; text-decoration: none }
.obl { background: #ebf5fb; border-left: .13rem solid var(--color-primary); transition: background-color var(--transition-normal); border-radius: 0 var(--radius-sm) var(--radius-sm) 0 }
  .obl:hover { background: #d6eaf8 }
.tarea { color: #27609b; position: relative }
  .tarea:before { content: " ✓"; color: var(--color-success); margin: 0 .5rem 0 0; display: inline-block; animation: successCheck .5s }
.subtarea { position: relative; color: rgba(36,59,85,.9); left: 1rem }
.subrubro { color: #069; position: relative; left: 1.4rem }
.rubro { color: #069 }
.modale { background: rgba(0,0,0,.5); animation: fadeIn .3s; backdrop-filter: blur(4px) }
.panel { background: var(--color-white); border-radius: var(--radius-lg); max-height: 80vh; width: auto; animation: fadeIn .5s; padding: .5rem; box-shadow: var(--shadow-lg) }
.panelBotones { background: var(--color-white); border-radius: var(--radius-lg); width: auto; animation: fadeIn .5s; padding: .5rem; box-shadow: var(--shadow-lg) }
.panel h1 { position: relative; left: -.19rem; margin-top: 0 }
.panel-nomodal .panel { max-height: none !important }
.powerby { left: 35%; border-radius: var(--radius-lg) var(--radius-lg) 0 0; z-index: 2; background: var(--color-dark-secondary); bottom: -.1rem; color: var(--color-white); position: fixed; width: auto; padding: .2rem 1.5rem; text-align: center; box-shadow: var(--shadow-md); font-size: .9em }
  .powerby a { color: var(--color-accent); transition: color var(--transition-normal); font-weight: var(--font-weight-medium) }
    .powerby a:hover { color: #f1c40f }
.login { background: var(--color-white); margin: 3rem auto; padding: 2.5rem; border-radius: var(--radius-lg); animation: fadeIn 1s; width: 90%; max-width: 50%; box-shadow: var(--shadow-lg) }
  .login [type=password], .login [type=submit], .login [type=text] { border: 0; height: 3rem; line-height: 1.5; width: 95%; margin: 0 0 .4rem; border-radius: var(--radius-md); padding: 0 1rem }
  .login span { color: var(--color-primary); font-weight: var(--font-weight-medium) }
  .login .logo { position: relative; top: 2px; height: 2rem; left: 100px }
.fl { float: left; padding: 0 .2rem 0 0 }
.fc { padding: .8rem 0 0 1rem; width: 100%; max-width: 100%; clear: both }
.fr { background: #f6f6f6; border-radius: var(--radius-md); float: right; padding: 1rem; margin-left: 1rem; box-shadow: var(--shadow-sm) }
.fc, .filtros, .form, .pnlboton, .pnlbotonAux { max-width: 100%; clear: both }
.perfil { background: var(--color-dark); border-radius: var(--radius-lg) var(--radius-lg) 0 0; float: left; margin: .6rem .6rem 0 0; width: 8.8rem; text-align: center; box-shadow: var(--shadow-md); overflow: hidden }
.perfilDatos { background: #f6f6f6; border-bottom: 1px solid #ccc; border-top: 1px solid #ccc; color: #666; height: 6.3rem; padding: 1rem; position: relative; top: .3rem }
.perfilFoto { border-radius: 50%; margin: .6rem auto; padding: .3rem; width: 6.3rem; height: 6.3rem; transition: transform var(--transition-normal); object-fit: cover; box-shadow: var(--shadow-md); border: 2px solid rgba(255,255,255,.8) }
  .perfilFoto:hover { transform: scale(1.05) }
.Foto { width: 8rem; height: 8rem; object-fit: cover; border-radius: var(--radius-md) }
.circulo { font-size: var(--fsize); background: #f6f6f6; border: 3px solid var(--color-primary); border-radius: 50%; margin: 0 .8rem; padding: 1.3rem; width: 5.6rem; height: 5.6rem; transition: all var(--transition-normal); display: flex; align-items: center; justify-content: center; text-align: center; box-shadow: var(--shadow-md) }
  .circulo:hover { transform: scale(1.05); box-shadow: 0 0 15px rgba(1,156,215,0.3) }
::-webkit-scrollbar { width: .5rem }
::-webkit-scrollbar-thumb { background: #666; border-radius: .3rem }
::-webkit-scrollbar-track { background: var(--color-neutral-100) }
.success-message, .error-message { padding: 1rem; border-radius: var(--radius-md); margin-bottom: 1rem; position: relative; animation: slideInUp .5s; font-weight: var(--font-weight-medium); display: flex; align-items: center; gap: .5rem }
.success-message { background-color: rgba(46,204,113,.1); border-left: 4px solid var(--color-success); color: #27ae60 }
  .success-message:before { content: '✓'; background-color: var(--color-success); color: #fff; border-radius: 50%; width: 1.5rem; height: 1.5rem; display: flex; align-items: center; justify-content: center; font-size: .75rem }
.error-message { background-color: rgba(231,76,60,.1); border-left: 4px solid var(--color-danger); color: #c0392b }
  .error-message:before { content: '!'; background-color: var(--color-danger); color: #fff; border-radius: 50%; width: 1.5rem; height: 1.5rem; display: flex; align-items: center; justify-content: center; font-size: .75rem }
.mensaje, .mesesAbiertos { position: fixed; bottom: 0 }
.mensaje {
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    background: #00000014;
    height: auto;
    min-height: 80px;
    width: 100%;
    right: 0;
    padding: .1rem;
    overflow: auto;
    animation: slideInRight 2s;
    box-shadow: var(--shadow-md)
}
.mesesAbiertos { z-index: 3; height: auto; min-height: 20px; width: 100%; left: 0; background: var(--color-dark-secondary); padding: .25rem .5rem; overflow-y: auto; box-shadow: 0 -2px 5px rgba(0,0,0,.1); color: var(--color-white); font-size: .8em }
.mensaje-label { font-size: calc(var(--fsize)*1.1); padding-left: 5%; position: absolute; top: 1rem; height: auto; min-height: 70px }
.mensaje-imagen { position: absolute; top: 10%; left: 1%; padding: 0 0 0 10px; float: left }
.status-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 5px }
  .status-dot.active { background-color: var(--color-success) }
  .status-dot.inactive { background-color: var(--color-danger) }
  .status-dot.pending { background-color: var(--color-warning) }
.notificacion-ayuda { position: absolute; top: 0; right: 60px; z-index: 1000; display: none; width: 450px; height: 70vh; transition: transform .4s; background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); overflow: hidden }
  .notificacion-ayuda.show { animation: slideInRight .4s }
#notificationContent { height: 60vh; padding: 1rem; overflow-y: auto }
.close-button { background-color: rgba(0,0,0,.5); border: none; border-radius: 50%; cursor: pointer; display: inline-block; padding: 0 8px; position: absolute; right: 10px; top: 10px; color: #fff; font-size: 18px; transition: all var(--transition-normal); width: 2rem; height: 2rem; display: flex; align-items: center; justify-content: center; line-height: 1 }
  .close-button:hover { background-color: rgba(0,0,0,.8); transform: rotate(90deg) }
.overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 19999;
    animation: fadeIn .3s;
    background-color: rgba(0,0,0,.5);
    backdrop-filter: blur(4px)
}
.center-spinner {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    z-index: 20001;
    padding: 20px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg)
}
.TreeView { width: 100%; padding: 0; margin: 0; font-size: var(--fsize) }
  .TreeView a { color: var(--color-primary-dark); transition: color var(--transition-normal) }
    .TreeView a:hover { color: var(--color-primary) }
  .TreeView .rtPlus, .TreeView .rtMinus, .TreeView .rtIn { cursor: pointer }
  .TreeView .rtHover .rtIn { background-color: #e8f5fd }
  .TreeView .rtSelected .rtIn { background-color: var(--color-primary-light); color: var(--color-white) }
  .TreeView, .TreeView .rtUL { width: 100% }
.splitterContainer { width: 100%; height: 100%; margin: 0; padding: 0 }
.splitter { cursor: col-resize; width: 5px; background-color: #ccc; height: 100%; z-index: 5; transition: background-color var(--transition-normal) }
  .splitter:hover { background-color: var(--color-primary) }
.splitterPane { overflow: auto; padding: 10px }
.contenedor-flex { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 20px; margin-top: 1rem }
.s-3 { flex: 1 1 calc(33.33% - 20px); max-width: calc(33.33% - 20px) }
.s-2, .s-2Fijo { flex: 1 1 calc(50% - 20px); max-width: calc(50% - 20px) }
.w4 { width: 2.5rem }
.w5 { width: 3.1rem }
.w6 { width: 3.6rem }
.w8, .we { width: 5rem }
.w9 { width: 5.6rem }
.w10 { width: 6.3rem }
.w12 { width: 11.3rem }
.w16 { width: 10rem }
.w20 { width: 12.5rem }
.w30 { width: 18.8rem }
.w35 { width: 21.9rem }
.w40 { width: 25rem }
.w42 { width: 41.25rem }
.w50 { width: 31.25rem }
.w55 { width: 34.38rem }
.w60 { width: 37.5rem }
.w65 { width: 40.6rem }
.w70 { width: 43.8rem }
.w90 { width: 56.25rem }
.w100 { width: 100% }
.h4 { height: 2.5rem }
.h5 { height: 3.1rem }
.h6 { height: 3.8rem }
.h8 { height: 5rem }
.h9 { height: 5.6rem }
.h10 { height: 6.3rem }
.h12 { height: 11.3rem }
.h20 { height: 12.5rem }
.h30 { height: 18.8rem }
.h40 { height: 25rem }
.h50 { height: 31.3rem }
.h100 { height: 100% }
.p1 { padding: 0 .6rem }
.p2 { padding: 0 1.3rem }
.p3 { padding: 0 1.9rem }
.p6 { padding: 0 3.8rem }
.pv1 { padding: .6rem 0 }
.pv2 { padding: 1.3rem 0 }
.pv3 { padding: 1.9rem 0 }
.pm1 { margin: .6rem }
.grida { animation: 1s ease-in-out slideDown }
.column, p { margin: .5rem 0 }
.about { background: #e7eef5; border: 1px solid #b4b9b4; padding: .5rem; width: 100%; max-width: 12.5rem; border-radius: var(--radius-sm) }
.actividadescliente { height: 2.3rem; right: 1.5rem; position: absolute; top: 2.375rem; width: 6.3rem }
.cajaTexto { color: #373737; height: 2.2rem; border-radius: var(--radius-sm); border: 1px solid var(--color-neutral-300); transition: all var(--transition-normal) }
  .cajaTexto:hover { border: 1px solid var(--color-primary-light) }
  .cajaTexto:focus { border: 1px solid var(--color-primary); box-shadow: 0 0 0 3px rgba(1,156,215,.2) }
.falta, .faltaN { background: #ffc; height: 2.2rem; border-left: 3px solid var(--color-warning) }
.flecha { background: url(img/flecha-roja2.png) center no-repeat; background-size: contain }
.listbox { border-bottom: .06rem solid var(--color-primary-light); width: 400px }
.listbox-boton { margin-top: 6rem }
.contenedorcentral, .contenidocentral, .contenidofoots { float: left; width: 92vw; clear: both }
.contenedorcentral { color: #717174; font-size: 1rem; margin: 0 auto; vertical-align: text-bottom; word-spacing: normal }
.contenedorfoots { clear: both; margin: 0 auto; vertical-align: middle; float: left }
.contenidocentral { position: absolute; top: 13.1rem }
.contenidofoots { position: absolute; top: 55.3rem }
.curved { border-radius: var(--radius-lg); border: 2px solid var(--color-primary); overflow: hidden }
.enlacescliente { float: right; height: 3.1rem; left: -.6rem; position: relative; top: .3rem; z-index: 1 }
.footer, .footerclientes, .logoL { position: absolute }
.footer { clear: both; height: 3.1rem; padding: 1.3rem; top: 200vw; z-index: -10 }
.footerclientes { height: 7.1rem; padding: .06rem; top: 43.8rem; width: 100vw; z-index: -2 }
.headerext { height: 7.1rem }
.linbut a:hover { border-radius: var(--radius-sm); background-color: rgba(1,156,215,.1); padding: 0 .5rem }
.logoL { background: url(img/logo.png) no-repeat; background-size: contain; height: 10.3rem; left: 1vw; top: .3rem; width: 28.3rem }
.logoclientes { background: url(img/logopr.png) no-repeat; background-size: contain; height: 4.3rem; left: .6rem; position: relative; top: .5rem; width: 14.3rem }
.menupcliente { height: .6rem; z-index: 50 }
.noticiassep { background: url(img/espacio_noticia.png); background-size: contain; height: 11.3rem; position: absolute; width: 2.5rem }
.pietabla { background: url(img/pieTabla.png) no-repeat; background-size: contain }
.salirclientes { background: url(img/closecp.png) no-repeat; background-size: contain; border: 0; height: 3.1rem; vertical-align: middle; width: 3.1rem }
.separador { border-bottom: 1px solid #c9c9c9; color: #1e1e2e; line-height: normal; margin-bottom: 1.3rem; padding-bottom: .5rem; width: 100%; max-width: 56.3rem }
.tipocliente { border-width: .13rem; margin: .3rem; padding: .3rem; vertical-align: middle }
.top-midclientes { background: url(img/top_midcp.png) no-repeat; background-size: contain; height: 11.3rem; left: 28.1rem; position: absolute; top: 0; width: 28.7rem }
.alert-card { display: flex; align-items: flex-start; background: linear-gradient(90deg, #fff0f0 0%, #ffffff 100%); border-left: 4px solid #e53935; border-radius: 12px; padding: 8px; max-width: 15%; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06); font-family: 'Segoe UI', sans-serif; margin-top: 5px; }

.alert-icon { font-size: 24px; color: #e53935; margin-right: 12px; margin-top: 4px; }

.alert-content h4 { margin: 0; font-size: 12px; color: #212121; font-weight: 600; }

.alert-content .alert-status { color: #e53935; }

.alert-content p { margin: 4px 0 0; font-size: 12px; color: #555; }

.alert-container { display: flex; flex-direction: row; gap: 12px; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 8px; }

.buscador.elementosOc input,
.buscador.elementosOc select {
    height: 1.7rem !important;
}

@media print {
  body, page { margin: 0; box-shadow: none; background: var(--color-white) }
  .grid, .gridPlana { box-shadow: none; border: 1px solid #000 }
    .grid th, .gridPlana th { color: #000; background: #f5f5f5; border-bottom: 1px solid #000 }
    .grid tr:nth-child(even) { background-color: #f9f9f9 }
}

page { display: block !important }
.botonGuardarPlantilla { position: absolute !important; left: 0 !important; bottom: 20vw !important }
page[size=A4] { width: 21cm; height: 29.7cm }
  page[size=A4][layout=landscape] { width: 29.7cm; height: 21cm }
.ajax__calendar, .ajax__tab_xp .ajax__tab_tab { height: auto !important }
  .ajax__calendar .ajax__calendar_container { z-index: 999999 !important }
.ajax__tab_xp .ajax__tab_container .ajax__tab_default { margin-right: 40px }
.icon-actividad { display: inline-block; padding: .2rem 0 }
  .icon-actividad svg, .icon-actividad svg path { fill: var(--color-primary-dark); transition: fill var(--transition-normal) }
  .icon-actividad:hover svg, .icon-actividad:hover svg path { fill: var(--color-primary) }
.calendar-actividades { position: absolute; top: 2px; right: 0; float: right }

@media only screen and (max-width:480px) {
  .login a, .sidebar { font-size: 20px }
  .filtros, [type=text], select { text-align: left }
  .float-fecha { justify-content: center; display: flex }
  .form [type=radio] { width: 100%; position: relative }
  .user_info, #MenuPrincipal ul, #cph_caActividadMensual, #menu ul li, #menu > ul, .buscador, .calendar-actividades, .date_info, .enova, .header .logo, .mesesAbiertos { display: none }
  :root { --fsize: 18px }
  body > * { font-size: var(--fsize) }
  .boton, .botonD { width: 92vw; display: inline-block; height: 3rem; margin: .2rem }
  .menu_side { left: .6rem; top: 1.7rem }
    .sidebar {
        height: auto;
        padding-top: 2.6rem
    }
    .sidebar a { padding: .1rem }
  .fc, .form ul { padding: 0 }
  .header { height: 2.5rem }
  .divContent { top: 2rem }
  .enlaces, .modale { top: 1rem }
  .filtros { width: 100%; margin: 0; padding: 0 .3rem 0 0 }
    .filtros label, .filtros span { margin: .1rem .6rem; display: inline-block }
    .filtros [type=text], .filtros select { width: 40%; display: inline-block }
  .login { max-width: 100%; height: 17rem }
    .login [type=password], .login [type=submit], .login [type=text] { width: 94%; margin: .1rem }
  .grid { margin-left: 0 !important; width: 99%; font-weight: 900 }
  .fr { float: left }
  [type=file] { width: 60% }
  [type=password], [type=text], select { height: 2.5rem }
  .form { margin: 0 .5rem 0 0; width: 99vw }
    .form ul { margin: 0; width: 98% }
    .filtros label, .filtros span, .form label, .form span { text-align: left; width: 35% }
    .form textarea { width: 94vw; font-size: 18px !important }
    .form [type=password], .form [type=text], .form [type=url], .form select { width: 56% }
    .fc [type=submit], .filtros [type=submit], .form [type=submit] { display: inline-block }
  .mensaje { position: fixed; left: 0; bottom: 0 }
  .panel { padding: 0 0 0 .2rem; left: .6rem !important; width: 95vw !important }
  .panelnomodal { max-height: none !important }
  .powerby { width: 100vw; margin: 0; font-size: calc(var(--fsize)*.65); bottom: 0; left: 0 }
  .modale { position: absolute }
  .form .w4 { width: 3rem }
  .form .w9 { width: 5rem }
  .form .w12, .w8 { width: 8rem }
  .w30 { width: 45% }
  .w40 { width: 55% }
  .form .w20 { width: 14rem }
  .tooltipo .tooltiptexto { min-width: 6rem; left: 1.4rem }
  .listbox { width: 95% !important }
  .opc { margin-bottom: 1.7rem }
  .panel .fc .boton, .panel .fc .botonD { width: 93vw }
  .filtros .w4 { width: 2rem }
  .filtros .w9 { width: 7rem }
    .s-2, .s-2Fijo, .s-3 { flex: 1 0 100%; min-width: 100%; margin-bottom: 10px; display: flex; justify-content: center; }
  .contenedor-flex { display: flex; justify-content: flex-start; align-items: flex-start; flex-direction: column }
  .form .we { width: 13.2rem }
  .circulo { font-size: 13px }
  .plus { width: 67px; height: 3rem }
  .dt-paging-button { height: 2.8rem }
  .form textarea.obl { width: 92vw }
  .tooltipoAyuda .tooltipoAyudatexto { top: -30px; left: calc(50% - 50px); transform: translateX(-50%) }
  .listbox-boton { margin-top: 0 }
  .form .w8 { width: 6.5rem }
  .filtros table tbody tr td input[type=radio] { margin-left: 3rem }
  .notificacion-ayuda { width: 350px }
  .mensaje { height: 100px; overflow: auto }
  .mensaje-label { height: 100px; padding-left: 10% }
  .form .ulDescripcion { padding-left: 0 }
}

@media only screen and (min-width:481px) and (max-width:768px) {
  .float-fecha { justify-content: center; display: flex }
  .form [type=radio] { width: 100%; position: relative }
  #MenuPrincipal ul, #menu ul li, #menu > ul, .buscador, .calendar-actividades, .date_info, .enova, .header .logo { display: none }
  .boton, .botonD, .fc [type=submit], .filtros [type=submit], .form [type=submit] { display: inline-block }
  :root { --fsize: 18px }
  body > * { font-size: var(--fsize) }
  .boton, .botonD { width: 91vw; height: 3rem; margin: .2rem }
  .user_info { left: 20vw; top: 1rem; font-size: calc(var(--fsize) * 0.6) }
  .menu_side { left: .3rem; top: 1.7rem }
    .sidebar {
        height: auto;
        font-size: 20px;
        padding-top: 2.6rem
    }
    .sidebar a { padding: .1rem }
  .fc, .form ul { padding: 0 }
  .header { height: 2.5rem }
  .divContent { top: 2rem }
  .enlaces { top: 1rem }
  .filtros { width: 100VW }
    .filtros label, .filtros span { text-align: left; margin: .1rem .6rem; width: 22%; display: inline-block }
    .filtros [type=text], .filtros select { width: 58% }
  .content { position: absolute; top: 20% }
  .mensaje, .mesesAbiertos { position: fixed; left: 0; bottom: 0 }
  .login { max-width: 100%; height: 17rem }
    .login [type=password], .login [type=submit], .login [type=text] { width: 94%; margin: .1rem }
    .login a { font-size: 17px }
  .grid { margin-left: 0 !important; width: 99%; font-weight: 900 }
  .fr { float: left }
  [type=text], select { text-align: left }
  [type=password], [type=text], select { height: 2.5rem }
  .form { margin: 0; width: 99vw }
    .form ul { margin: 0; width: 98% }
    .form label, .form span { text-align: left; width: 30% }
    .form [type=password], .form [type=text], .form [type=url], .form select { width: 56% }
    .form textarea { width: 95%; font-size: 18px !important }
  .fc [type=submit] { margin-left: .7rem }
  .form .w9, .w8 { width: 8rem }
  .mesesAbiertos { font-size: 9px }
  .panel { left: 1.2rem !important; width: 95vw !important }
  .powerby { width: 100vw; margin: 0; font-size: .7rem; bottom: 0; left: 0 }
  .filtros .w4, .form .w4 { width: 4rem }
  .panel .form .grid { width: 95% }
  .listbox { width: 99% !important }
  .panel .fc .boton, .panel .fc .botonD, .pnlboton .boton, .pnlboton .botonD { width: 93vw }
  .opc { margin-bottom: 1.7rem }
  .form .w12 { width: 18rem }
  .form .w8 { width: 10rem }
   .s-2, .s-2Fijo, .s-3 { flex: 1 0 100%; min-width: 100%; margin-bottom: 10px; display: flex; justify-content: center; }
  .sbotones { width: 95vw }
  .botonAux { margin-left: .5rem }
  .pnlbotonAux .boton, .pnlbotonAux .botonD { width: 91vw }
  .form .we { width: 23rem }
  .circulo { font-size: 13px }
  .plus { width: 67px; height: 3rem }
  .dt-paging-button { height: 2.8rem }
  .paging_simple_numbers { width: 30rem }
  .tooltipoAyuda .tooltipoAyudatexto { top: -15px; left: 0; transform: translate(-100%,-50%) }
  .listbox-boton { margin-top: 0 }
  .filtros table tbody tr td input[type=radio] { margin-left: 4rem }
  .filtros .w9 { width: 40% }
  .form .ulDescripcion { padding-left: 0 }
}

@media only screen and (min-width:769px) and (max-width:1024px) {
  .botonAux, .pnlboton { clear: both }
  .float-fecha { float: right !important }
  .user_info, #MenuPrincipal ul, #cph_caActividadMensual, #menu ul li, #menu > ul, .calendar-actividades, /*.date_info, .enova,*/ .header .logo { display: none }
  .buscador { left: 25vw }
  .W30 { width: 7% }
  .sidebar { height: auto; font-size: 18px }
  .form [type=password], .form [type=text], .form select { max-width: 8rem }
  .boton, .botonD, .pnlboton .boton, .pnlboton .botonD { min-width: 3.8rem }
  .login input { margin: .06rem auto; height: 1.7rem; font-size: .8rem }
  .panel .form .grid { width: 95% }
  .panel { margin: 0 !important; width: 95vw !important }
  .w16 { width: 8rem }
  .botonAux { max-width: 100% }
  .tooltipoAyuda .tooltipoAyudatexto { top: -30px; left: -270px; transform: translateX(0) }
  /*.s-2, .s-3 { flex: 1 0 100%; max-width: 100%; margin-bottom: 10px }*/
   .s-2, .s-3 { flex: 1 0 100%; min-width: 100%; margin-bottom: 10px; display: flex; justify-content: center; }
  .s-2Fijo { flex: 1 1 calc(50% - 20px); max-width: calc(50% - 20px) }
}

@media only screen and (min-width:1025px) {
  .float-fecha { float: right !important }
  .principal2 { display: none }
  .form [type=password], .form [type=text], .form select { max-width: inherit }
  .form textarea { max-width: 100%; min-height: 5rem }
  /*.boton, .botonD { min-width: 5rem }*/
  .mesesAbiertos { font-size: 9px; font-weight: 600; font-stretch: extra-expanded }
  .w8 { width: 5rem }
  .botonAux { max-width: 100%; clear: both }
}