﻿/*Necesario para aplicar EstiloBoton a botón Dx*/
.estilo-boton {
    padding: 0.25rem;
}

/*Otros*/
.accionar-sin-validar {
    display: block;
    width: 100%;
    text-align: right;
    padding: 10px;
}

button.accordion-button[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
}

.editor-code-user {
    height: 180px;
    border: 1px solid var(--phoenix-gray-200);
    border-radius: 3px;
    padding: 5px;
}

.editor-subirfichero-user {
    min-height: 40px;
    border: 1px solid var(--phoenix-gray-200);
    border-radius: 3px;
    padding: 5px;
}

.note-editor.note-airframe, .note-editor.note-frame {
    border: 1px solid var(--phoenix-gray-200);
}

.dx-htmleditor-toolbar-wrapper .row {
    --phoenix-gutter-x: 0; /* O el valor que desees para este contexto */
    margin: 0;
}

/*tagbox*/
html:not([data-bs-theme="dark"]) .dx-tag-content {
    background-color: var(--phoenix-info-bg-subtle);
}
.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-list-item-selected {
    background-color: var(--phoenix-info-bg-subtle);
}
/*Json editor*/
/*Tree*/
div.jsoneditor-tree {
    background: var(--phoenix-body-bg);
}

div.jsoneditor-field {
    color: var(--phoenix-body-color);
}

div.jsoneditor-value {
    color: var(--phoenix-body-color);
}

/*    div.jsoneditor-value.jsoneditor-string {
        color: var(--phoenix-success-600);
    }*/

/*Json editor*/
/*Code*/
.jsoneditor-menu {
    background-color: var(--phoenix-primary);
}

.ace-jsoneditor .ace_marker-layer .ace_active-line {
    background: var(--phoenix-body-bg);
}

.jsoneditor-statusbar {
    background: var(--phoenix-soft);
    color: var(--phoenix-body-color);
    border-top: var(--phoenix-body-color);
}

.ace-jsoneditor .ace_gutter {
    background: var(--phoenix-soft);
    color: var(--phoenix-body-color);
}

.ace-jsoneditor.ace_editor {
    line-height: 1.3;
    background-color: var(--phoenix-body-bg);
}

/*.ace-jsoneditor .ace_print-margin {
    width: 1px;
    background:
}*/
.ace-jsoneditor .ace_scroller {
    background-color: var(--phoenix-body-bg);
}

/*.ace-jsoneditor .ace_text-layer {
    color: gray
}*/
.ace-jsoneditor .ace_variable {
    color: var(--phoenix-body-color);
}

.ace-jsoneditor .ace_cursor {
    border-left: 2px solid var(--phoenix-black);
}

/*.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {
    border-left: 0px;
    border-bottom: 1px solid #000000
}*/
.ace-jsoneditor .ace_marker-layer .ace_selection {
    background: var(--phoenix-gray-200);
}

/*.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {
    box-shadow: 0 0 3px 0px #FFFFFF;
    border-radius: 2px
}

.ace-jsoneditor .ace_marker-layer .ace_step {
    background: rgb(255, 255, 0)
}

.ace-jsoneditor .ace_marker-layer .ace_bracket {
    margin: -1px 0 0 -1px;
    border: 1px solid #BFBFBF
}

.ace-jsoneditor .ace_marker-layer .ace_active-line {
    background: #FFFBD1
}*/
.ace_highlight-marker {
    background-color: var(--phoenix-link-color);
}

/*.ace-jsoneditor .ace_gutter-active-line {
    background-color: var(--phoenix-navbar-vertical-link-hover-bg);
}*/
/*.ace-jsoneditor .ace_marker-layer .ace_selected-word {
    border: 1px solid lightgray
}

.ace-jsoneditor .ace_invisible {
    color: #BFBFBF
}

.ace-jsoneditor .ace_keyword,
.ace-jsoneditor .ace_meta,
.ace-jsoneditor .ace_support.ace_constant.ace_property-value {
    color: #AF956F
}

.ace-jsoneditor .ace_keyword.ace_operator {
    color: #484848
}

.ace-jsoneditor .ace_keyword.ace_other.ace_unit {
    color: #96DC5F
}

.ace-jsoneditor .ace_constant.ace_language {
    color: darkorange
}

.ace-jsoneditor .ace_constant.ace_numeric {
    color: red
}

.ace-jsoneditor .ace_constant.ace_character.ace_entity {
    color: #BF78CC
}

.ace-jsoneditor .ace_invalid {
    color: #FFFFFF;
    background-color: #FF002A;
}

.ace-jsoneditor .ace_fold {
    background-color: #AF956F;
    border-color: #000000
}

.ace-jsoneditor .ace_storage,
.ace-jsoneditor .ace_support.ace_class,
.ace-jsoneditor .ace_support.ace_function,
.ace-jsoneditor .ace_support.ace_other,
.ace-jsoneditor .ace_support.ace_type {
    color: #C52727
}

.ace-jsoneditor .ace_string {
    color: green
}

.ace-jsoneditor .ace_comment {
    color: #BCC8BA
}

.ace-jsoneditor .ace_entity.ace_name.ace_tag,
.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {
    color: #606060
}

.ace-jsoneditor .ace_markup.ace_underline {
    text-decoration: underline
}

.ace-jsoneditor .ace_indent-guide {
    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y
}*/
/*# sourceMappingURL=user.css.map */


/*--------dx.rosetta.css---------*/
.dx-toast-stack {
    z-index: 999999 !important;
}

.dx-button-has-text .dx-button-content, .dx-button-has-text .dx-button-content .dx-button-text {
    white-space: normal;
}
/*master-detail*/
.dx-datagrid-rowsview .dx-master-detail-row > .dx-master-detail-cell {
    padding: 10px;
}

td.nivel-1[role="columnheader"]:not([aria-label="Columna undefined"]) {
    background-color: var(--phoenix-primary-100);
}

td.nivel-2[role="columnheader"]:not([aria-label="Columna undefined"]) {
    background-color: var(--phoenix-primary-200);
    color: white;
}

.vh-75 {
    height: 75vh !important;
}

/* =====================================================================
   Configuración del evento (pestaña 893 del panel de gestión)
   Listas de ajustes, plegables de carrera y tarifa, y periodos de precio.
   La usan las plantillas 10839, 10840, 10847 y 10848 de RosettaDPTK.
   Solo lo que Phoenix no trae; el resto son sus utilidades.
   Mismo contenido que _dpk-configuracion.scss, en CSS plano.
   ===================================================================== */

/* Rótulo pequeño encima de un título («Evento», «Carrera», «Tarifa») */
.dpk-rotulo {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--phoenix-quaternary-color);
}

/* Envoltorio que no pinta caja (para mostrar u ocultar un grupo con data-setInnerHTMLOnValue) */
.dpk-contents {
  display: contents;
}

/* Cifras y fechas alineadas en columna */
.dpk-num {
  font-variant-numeric: tabular-nums;
}

/* Lista de ajustes: una fila por ajuste (icono, etiqueta, valor y ›) que abre su formulario.
   En escritorio se reparte en columnas; en móvil queda una sola. */
.dpk-ajustes {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
  overflow: hidden;
}

.dpk-ajuste {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 3.25rem;
  padding: .5rem 1rem;
  margin: 0 -1px -1px 0;
  border-right: 1px solid var(--phoenix-border-color);
  border-bottom: 1px solid var(--phoenix-border-color);
  color: inherit;
  text-decoration: none;
}

.dpk-ajuste:hover {
  background-color: var(--phoenix-body-highlight-bg);
  color: inherit;
  text-decoration: none;
}

.dpk-ajuste-icono {
  flex: 0 0 1.25rem;
  text-align: center;
  color: var(--phoenix-tertiary-color);
}

.dpk-ajuste-texto {
  flex: 1 1 auto;
  min-width: 0;
  line-height: 1.2;
}

/* Plegables (<details>) de carrera y tarifa */
.dpk-plegable > summary {
  list-style: none;
  cursor: pointer;
}

.dpk-plegable > summary::-webkit-details-marker {
  display: none;
}

.dpk-plegable .dpk-chevron {
  transition: transform .15s ease;
}

.dpk-plegable[open] > summary .dpk-chevron {
  transform: rotate(90deg);
}

/* Periodos de precio. La fila lleva la clase dpk-vigente-True o dpk-vigente-False (EsVigente del SP). */
.dpk-periodos {
  max-width: 46rem;
}

.dpk-periodos tr.dpk-vigente-True > td {
  background-color: rgba(var(--phoenix-primary-rgb), .06);
}

.dpk-punto {
  display: none;
  width: .5rem;
  height: .5rem;
  border-radius: 50%;
  background-color: var(--phoenix-primary);
  box-shadow: 0 0 0 .2rem rgba(var(--phoenix-primary-rgb), .2);
  vertical-align: middle;
}

.dpk-vigente-True .dpk-punto {
  display: inline-block;
}

/* =====================================================================
   Formularios en popup del panel de gestión: estilo común
   Se aplica a todo formulario (form#frmNNNN) que se abre dentro de un popup de DevExtreme.
   Solo presentación: no cambia campos, orden ni comportamiento.
   ===================================================================== */

/* Pestañas: subrayado en vez de cápsulas; en móvil, una sola línea que se desliza */
.dx-popup-wrapper form[id^="frm"] .nav-pills {
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: .25rem;
  margin-bottom: .75rem;
  border-bottom: 1px solid var(--phoenix-border-color);
  scrollbar-width: none;
}

.dx-popup-wrapper form[id^="frm"] .nav-pills .nav-link {
  white-space: nowrap;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: none;
  padding: .5rem .75rem;
  font-size: .85rem;
  font-weight: 600;
  color: var(--phoenix-tertiary-color);
}

.dx-popup-wrapper form[id^="frm"] .nav-pills .nav-link:hover {
  color: var(--phoenix-primary);
  text-decoration: none;
}

.dx-popup-wrapper form[id^="frm"] .nav-pills .nav-link.active {
  color: var(--phoenix-primary);
  border-bottom-color: var(--phoenix-primary);
  background: none;
}

/* Etiquetas de los campos */
.dx-popup-wrapper form[id^="frm"] .dx-field-item-label {
  font-size: .75rem;
  font-weight: 600;
  color: var(--phoenix-tertiary-color);
}

/* Ayudas: un recuadro gris claro, definido pero sin pesar más que los campos */
.dx-popup-wrapper form[id^="frm"] .alert-subtle-info {
  background: var(--phoenix-body-highlight-bg);
  border: 0;
  border-radius: .5rem;
  padding: .5rem .75rem !important;
  font-size: .8rem;
  line-height: 1.35;
  color: var(--phoenix-tertiary-color);
}

.dx-popup-wrapper form[id^="frm"] .alert-subtle-info strong {
  color: var(--phoenix-emphasis-color, inherit);
  font-weight: 600;
}

/* Banda del nivel («Está modificando nivel EVENTO»): un rótulo discreto */
.dx-popup-wrapper form[id^="frm"] .alert-subtle-warning.dpk-nivel {
  background: none;
  border: 0;
  padding: .5rem 0 0 !important;
  font-size: .75rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--phoenix-quaternary-color);
}

.dx-popup-wrapper form[id^="frm"] .alert-subtle-warning.dpk-nivel strong {
  font-weight: 700;
}

/* Botón de guardar: con texto, no solo el disquete */
.dx-popup-wrapper form[id^="frm"] .dx-button[aria-label="fa fa-save"] .dx-button-content::after {
  content: "Guardar";
  margin-left: .5rem;
  font-weight: 600;
}

/* Pestaña Inscritos: fila compacta de cada inscrito */
.dpk-inscrito .badge {
  text-transform: none;
  letter-spacing: 0;
}

/* Código del inscrito (ReferenciaTPV, código de promoción): destacado y en letra monoespaciada */
.dpk-codigo {
  font-family: var(--bs-font-monospace, monospace);
  font-size: .8rem;
  font-weight: 700;
  padding: .3em .55em;
}

/* =====================================================================
   Pestañas del evento (y cualquier formulario del panel): estilo común
   Solo presentación: no cambia campos, orden ni comportamiento.
   ===================================================================== */

/* Título de la pestaña («Promociones: …», «Comunicaciones: …») */
form[id^="frm"] h3.text-primary {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--phoenix-emphasis-color) !important;
}

/* Títulos de bloque («Mis borradores», «Liquidaciones», «Listado general de inscritos»): rótulo, como los de las fichas */
form[id^="frm"] h4.mb-2 {
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--phoenix-tertiary-color);
  margin-top: .25rem;
  margin-bottom: .5rem !important;
}

/* Etiquetas de los campos */
form[id^="frm"] .dx-field-item-label {
  font-size: .75rem;
  font-weight: 600;
  color: var(--phoenix-tertiary-color);
}

/* Ayudas: un recuadro gris claro, definido pero sin pesar más que los campos */
form[id^="frm"] .alert-subtle-info {
  background: var(--phoenix-body-highlight-bg);
  border: 0;
  border-radius: .5rem;
  padding: .5rem .75rem !important;
  font-size: .8rem;
  line-height: 1.35;
  color: var(--phoenix-tertiary-color);
}

form[id^="frm"] .alert-subtle-info strong {
  color: var(--phoenix-emphasis-color, inherit);
  font-weight: 600;
}

/* Tarjetas con raya de color a la izquierda: borde fino uniforme, sin raya ni sombra (los fondos de color se quedan) */
form[id^="frm"] .border-start.border-3 {
  border: 1px solid var(--phoenix-border-color) !important;
  box-shadow: none !important;
  border-radius: .5rem;
}


/* Botones de DevExtreme rellenos (tipo default = azul, danger = rojo) con el aspecto de btn-phoenix-primary / btn-phoenix-danger.
   Colores con las variables de Phoenix, así que en modo oscuro se adaptan solos. No cambia el ancho de los botones. */
.dx-button.dx-button-mode-contained.dx-button-default,
.dx-button.dx-button-mode-contained.dx-button-danger {
  background-color: var(--phoenix-gray-50);
  border: 1px solid var(--phoenix-gray-200);
  border-radius: .375rem;
  box-shadow: none;
}

.dx-button.dx-button-mode-contained.dx-button-default,
.dx-button.dx-button-mode-contained.dx-button-default .dx-icon {
  color: var(--phoenix-primary);
}

.dx-button.dx-button-mode-contained.dx-button-danger,
.dx-button.dx-button-mode-contained.dx-button-danger .dx-icon {
  color: var(--phoenix-danger);
}

.dx-button.dx-button-mode-contained.dx-button-default .dx-button-text,
.dx-button.dx-button-mode-contained.dx-button-danger .dx-button-text {
  font-weight: 700;
  font-size: .8rem;
}

.dx-button.dx-button-mode-contained.dx-button-default.dx-state-hover,
.dx-button.dx-button-mode-contained.dx-button-default.dx-state-focused,
.dx-button.dx-button-mode-contained.dx-button-default.dx-state-active,
.dx-button.dx-button-mode-contained.dx-button-danger.dx-state-hover,
.dx-button.dx-button-mode-contained.dx-button-danger.dx-state-focused,
.dx-button.dx-button-mode-contained.dx-button-danger.dx-state-active {
  background-color: var(--phoenix-gray-200);
  border-color: var(--phoenix-gray-200);
}

.dx-button.dx-button-mode-contained.dx-button-default.dx-state-hover,
.dx-button.dx-button-mode-contained.dx-button-default.dx-state-hover .dx-icon {
  color: var(--phoenix-primary-dark);
}

.dx-button.dx-button-mode-contained.dx-button-danger.dx-state-hover,
.dx-button.dx-button-mode-contained.dx-button-danger.dx-state-hover .dx-icon {
  color: var(--phoenix-danger-dark);
}


/* Letra pequeña: dentro de los formularios del panel nada baja de 12 px */
form[id^="frm"] .fs-10 {
  font-size: .75rem !important;
}

form[id^="frm"] .fs-9 {
  font-size: .875rem !important;
}

/* Botones de DevExtreme verdes (success) y con contorno: el mismo estilo suave que los azules */
.dx-button.dx-button-mode-contained.dx-button-success,
.dx-button.dx-button-mode-outlined.dx-button-default {
  background-color: var(--phoenix-gray-50);
  border: 1px solid var(--phoenix-gray-200);
  border-radius: .375rem;
  box-shadow: none;
}

.dx-button.dx-button-mode-contained.dx-button-success,
.dx-button.dx-button-mode-contained.dx-button-success .dx-icon {
  color: var(--phoenix-success);
}

.dx-button.dx-button-mode-outlined.dx-button-default,
.dx-button.dx-button-mode-outlined.dx-button-default .dx-icon {
  color: var(--phoenix-primary);
}

.dx-button.dx-button-mode-contained.dx-button-success .dx-button-text,
.dx-button.dx-button-mode-outlined.dx-button-default .dx-button-text {
  font-weight: 700;
  font-size: .8rem;
}

.dx-button.dx-button-mode-contained.dx-button-success.dx-state-hover,
.dx-button.dx-button-mode-contained.dx-button-success.dx-state-focused,
.dx-button.dx-button-mode-contained.dx-button-success.dx-state-active,
.dx-button.dx-button-mode-outlined.dx-button-default.dx-state-hover,
.dx-button.dx-button-mode-outlined.dx-button-default.dx-state-focused,
.dx-button.dx-button-mode-outlined.dx-button-default.dx-state-active {
  background-color: var(--phoenix-gray-200);
  border-color: var(--phoenix-gray-200);
}


/* Home del evento: «Plazas libres» (FMax 891). Barra con <progress>, sin estilos en línea */
.dpk-progreso {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  width: 100%;
  height: .5rem;
  border: 0;
  border-radius: 1rem;
  background: var(--phoenix-gray-200);
  overflow: hidden;
}

.dpk-progreso::-webkit-progress-bar {
  background: var(--phoenix-gray-200);
  border-radius: 1rem;
}

.dpk-progreso::-webkit-progress-value {
  background: var(--phoenix-primary);
  border-radius: 1rem;
}

.dpk-progreso::-moz-progress-bar {
  background: var(--phoenix-primary);
  border-radius: 1rem;
}

.dpk-plazas-pocas .dpk-progreso::-webkit-progress-value {
  background: var(--phoenix-warning);
}

.dpk-plazas-pocas .dpk-progreso::-moz-progress-bar {
  background: var(--phoenix-warning);
}

.dpk-plazas-completo .dpk-progreso::-webkit-progress-value {
  background: var(--phoenix-danger);
}

.dpk-plazas-completo .dpk-progreso::-moz-progress-bar {
  background: var(--phoenix-danger);
}

.dpk-plazas-Evento .dpk-plazas-libres {
  font-size: 1.25rem;
}

.dpk-plazas-Evento .dpk-plazas-nombre,
.dpk-plazas-Carrera .dpk-plazas-nombre {
  font-weight: 600;
}

.dpk-plazas-Tarifa {
  padding-left: 1rem !important;
}

.dpk-plazas-Tarifa .dpk-progreso {
  height: .3rem;
}

/* Cerrado: solo la fila del evento. Sin fila de evento (evento sin límite), todo a la vista */
.dpk-plazas-caja:not(.dpk-abierta) .dpk-plazas:not(.dpk-plazas-Evento) {
  display: none;
}

.dpk-plazas-caja:not(:has(.dpk-plazas-Evento)) .dpk-plazas {
  display: block !important;
}


/* Menú de pestañas del evento: la activa subrayada, como en los popups, en vez del círculo */
form[id^="frm"] ul.nav-pills[data-agrupado] {
  gap: .25rem;
  margin-bottom: .75rem;
  border-bottom: 1px solid var(--phoenix-border-color);
}

form[id^="frm"] ul.nav-pills[data-agrupado] .nav-link {
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: none;
  font-weight: 600;
  color: var(--phoenix-tertiary-color);
}

form[id^="frm"] ul.nav-pills[data-agrupado] .nav-link:hover {
  color: var(--phoenix-primary);
  text-decoration: none;
}

form[id^="frm"] ul.nav-pills[data-agrupado] .nav-link.active,
form[id^="frm"] ul.nav-pills[data-agrupado] .nav-link.active:hover {
  color: var(--phoenix-primary);
  border-bottom-color: var(--phoenix-primary);
  background: none;
}


/* Huecos de espera de los cargadores (antes style="height:Npx" en cada plantilla) */
.dpk-espera-100 {
  height: 100px;
}

.dpk-espera-150 {
  height: 150px;
}

.dpk-espera-300 {
  height: 300px;
}

/* Avisos en los popups: recuadro naranja suave. Solo las bandas «Está modificando nivel…» (dpk-nivel) van como rótulo */
.dx-popup-wrapper form[id^="frm"] .alert-subtle-warning:not(.dpk-nivel) {
  background: var(--phoenix-warning-bg-subtle);
  border: 0;
  border-radius: .5rem;
  padding: .5rem .75rem !important;
  font-size: .8rem;
  line-height: 1.35;
  color: var(--phoenix-warning-text-emphasis);
}

/* Ayudas de los campos (TagTextoExplicativo): en gris, no en azul de enlace */
form[id^="frm"] p.fs-9.mb-0.text-info {
  font-size: .75rem !important;
  color: var(--phoenix-tertiary-color) !important;
}
