
/* Drupal module div container */
/* dmd 04/26/24 Replaced class "_none" here to avoid side effects outside the module. */
body .block-ictv-d3-taxonomy-visualization { 
   border-style: solid;
   border-color: white;
   border-width: 0px !important;
}

/* The module's top-level container Element */
#d3_taxonomy_vis_container {
   /*border-style: solid;
   border-radius: 10px;
   border-width: 1px;
   border-color: #d3d3d3;*/
   height: 100%;
   overflow: hidden;
   width: 100%;
}

/* dmd 04/26/24 Experimenting with CSS variables */
#d3_taxonomy_vis_container {

   /* Colors */
   --border-focus-color: #80bdff;
   --text-control-border-color: #ccc;

   /* Font sizes */
   --default-font-size: 0.9rem;

   /* Padding */
   --button-padding: 4px 12px;
   --text-control-padding: 4px 6px;
}

/*---------------------------------------------------------------------------------------------------------------- 
  The header panel 
----------------------------------------------------------------------------------------------------------------*/
#d3_taxonomy_vis_container .header-panel {
   padding: 5px;
   align-items: center;
   display: flex;
   flex-flow: row nowrap;
   justify-content: flex-start;
   margin-left: 0.5rem;
   width: 100%;
}

#d3_taxonomy_vis_container .header-panel .label {
   margin-right: 0.25rem;
}

/* The MSL release control */
#d3_taxonomy_vis_container .header-panel .release-ctrl {
   border: 1px solid var(--text-control-border-color);
   border-radius: 4px;
   font-size: var(--default-font-size);
   max-width: 140px;
   padding: var(--text-control-padding); /*4px;*/
}
#d3_taxonomy_vis_container .header-panel .release-ctrl:focus {
   color: #495057;
   border-color: var(--border-focus-color);
   box-shadow: none;
   outline: 0;
}

#d3_taxonomy_vis_container .header-panel .font-size-panel {
   align-items: center;
   display: flex;
   flex-flow: row nowrap;
   justify-content: flex-start;
   margin-left: 1.3rem;
}
#d3_taxonomy_vis_container .font-size-panel.hide {
   display: none;
}
#d3_taxonomy_vis_container .font-size-panel.show {
   display: flex;
}


/*----------------------------------------------------------------------------------------------------------------
  Sliders
----------------------------------------------------------------------------------------------------------------*/
#d3_taxonomy_vis_container .slider {
   margin: 0 1.3rem 0 0;
   max-width: 80px;
}

/*  slider track */
#d3_taxonomy_vis_container .slider::-webkit-slider-runnable-track {
   background-color: #d3d3d3;
   height: 5px;
   border-style: solid;
   border-width: 1px;
   border-color: gray;
   border-radius: 10px;
}

#d3_taxonomy_vis_container .slider::-moz-range-track {
   background-color: #d3d3d3;
   border-style: solid;
   border-width: 1px;
   border-color: gray;
   border-radius: 10px;
   height: 5px;
}

/*  Slider circle */
#d3_taxonomy_vis_container .slider::-webkit-slider-thumb {
   -webkit-appearance: none;
   appearance: none;
   background-color: #0062cc;
   border: none;
   cursor: pointer;
   height: 12px;
   position: relative;
   top: -6px;
   width: 12px;
}

#d3_taxonomy_vis_container .slider::-moz-range-thumb {
   background-color: #0062cc;
   border: none;
   cursor: pointer;
   height: 14px;
   position: relative;
   top: -6px;
   width: 14px;
}


/*----------------------------------------------------------------------------------------------------------------
  The screenshot button and format list 
----------------------------------------------------------------------------------------------------------------*/
#d3_taxonomy_vis_container .screenshot-button {
   background-color: #0062cc;
   border-color: #005cbf;
   border-radius: 4px 0 0 4px;
   border: 1px solid transparent;
   color: #fff;
   cursor: pointer;
   display: inline-block;
   font-size: var(--default-font-size);
   padding: var(--button-padding);
   text-align: center;
   user-select: none;
   vertical-align: middle;
   white-space: nowrap;
   -webkit-user-select: none;
   -moz-user-select: none;
   -ms-user-select: none;
}
#d3_taxonomy_vis_container .screenshot-button i {
   margin-right: 0.1rem;
}
#d3_taxonomy_vis_container .selectFormat {
   border: 1px solid var(--text-control-border-color);
   border-radius: 0 4px 4px 0;
   font-size: var(--default-font-size);
   padding: 4px;
   width: 70px;
}
#d3_taxonomy_vis_container .selectFormat:focus {
   color: #495057;
   border-color: var(--border-focus-color);
   box-shadow: none;
   outline: 0;
}

/*----------------------------------------------------------------------------------------------------------------
  The search panel (searchPanel.js)
----------------------------------------------------------------------------------------------------------------*/
#d3_taxonomy_vis_container .header-panel .search-panel {
   justify-self: flex-end;
   margin-left: 1.3rem;
   position: relative;
   top: 16px;
}

/* The search text, search button, and clear button */
#d3_taxonomy_vis_container .search-panel .search-controls {
   align-content: flex-start;
   border-collapse: separate;
   display: flex;
   flex-flow: row nowrap;
   justify-content: flex-start;
   margin: 0;
}

#d3_taxonomy_vis_container .search-panel .search-controls .search-text {
   background-color: #fff;
   background-image: none;
   border: 1px solid var(--text-control-border-color);
   border-radius: 4px 0 0 4px;
   /*box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);*/
   color: #555;
   font-size: var(--default-font-size);
   margin: 0;
   padding: var(--text-control-padding);
   vertical-align: middle;
   width: 200px;
}
#d3_taxonomy_vis_container .search-panel .search-text:focus {
   color: #495057;
   border-color: var(--border-focus-color);
   box-shadow: none;
   outline: 0;
}

#d3_taxonomy_vis_container .search-panel i {
   margin-right: 5px;
}

#d3_taxonomy_vis_container .search-panel button {
   border: 1px solid transparent;
   cursor: pointer;
   display: inline-block;
   font-size: var(--default-font-size); 
   padding: var(--button-padding);
   text-align: center;
   user-select: none;
   vertical-align: middle;
   white-space: nowrap;
   -webkit-user-select: none;
   -moz-user-select: none;
   -ms-user-select: none;
}

#d3_taxonomy_vis_container .search-panel .search-button {
   background-color: #0062cc;
   border-collapse: separate;
   border-color: #005cbf;
   border-radius: 0;
   color: #fff;
}

#d3_taxonomy_vis_container .search-panel .clear-button {
   background-color: rgb(153, 153, 153);
   border-color: rgba(0, 0, 0, 0);
   border-bottom-left-radius: 0px;
   border-bottom-right-radius: 4px;
   border-top-left-radius: 0px;
   border-top-right-radius: 4px;
   box-sizing: border-box;
   color: rgb(255, 255, 255);
   margin-bottom: 0px;
   margin-left: -1px;
   margin-right: 0px;
   margin-top: 0px;
}

#d3_taxonomy_vis_container .search-panel .all-releases-row {
   align-items: center;
   display: flex;
   flex-flow: row nowrap;
   justify-content: flex-start;
   margin: 0.5rem 0 0 0;
}

#d3_taxonomy_vis_container .search-panel .all-releases-row .include-all-releases {
   height: 1.0rem;
   margin: 0 0.25rem 0 0;
   width: 1.0rem;
}

#d3_taxonomy_vis_container .search-panel .all-releases-row label {
   font-size: 0.9rem;
   font-weight: normal;
   margin-bottom: 0 !important;
}


/* Search results */
#d3_taxonomy_vis_container .search-results-panel {
   margin: 15px 0 15px 0;
}
#d3_taxonomy_vis_container .search-results-table {
   margin: 15px 0 0 0;
}

#d3_taxonomy_vis_container .search-results-table tr.header-row {
   background-color: #757575 !important;
}
#d3_taxonomy_vis_container .search-results-table tr.header-row th {
   background-color: #757575 !important;
   border-left-width: 0 !important;
   border-right-width: 0 !important;
   color: #fff !important;
   font-size: 0.9rem !important;
   text-align: left !important;
}


#d3_taxonomy_vis_container .search-results-table .result-alt-row {
   background-color: #fff;
}
#d3_taxonomy_vis_container .search-results-table .result-row {
   background-color: #eee;
}
#d3_taxonomy_vis_container .search-results-table tr:hover[data-id] {
   background-color: #ffc90e;
   cursor: pointer;
}

#d3_taxonomy_vis_container .search-results-table tr td.controls-column {
   align-items: center;
   display: flex;
   justify-content: space-around;
   padding: 4px;
}
#d3_taxonomy_vis_container .search-results-table .controls-column button {
   border: 1px solid rgba(0, 0, 0, .075);
   border-radius: 4px;
   box-sizing: border-box;
   cursor: pointer;
   display: inline-block;
   font-size: 0.75rem;
   font-weight: 400;
   line-height: 1.5;
   margin: 0;
   max-width: 60px;
   padding: 2px 10px;
   text-align: center;
   user-select: none;
   vertical-align: middle;
   white-space: nowrap;
   width: 60px;
   -webkit-user-select: none;
   -moz-user-select: none;
   -ms-user-select: none;
}
#d3_taxonomy_vis_container .search-results-table .controls-column button:hover {
   background-color: #0062cc;
   border-collapse: separate;
   border-color: #005cbf;
   color: #fff;


   /*color: #495057;*/
   border-color: var(--border-focus-color);
   box-shadow: none;
   outline: 0;
}

#d3_taxonomy_vis_container .search-results-table td {
   font-size: 0.9rem;
   padding: 7px;
}
#d3_taxonomy_vis_container .search-results-table .release-name {
   text-align: left;
   width: 70px;
}

#d3_taxonomy_vis_container .search-results-table .level-name {
   text-align: left;
   text-transform: capitalize;
   width: 56px;
}

#d3_taxonomy_vis_container .search-term-result {
   background-color: #ffc90e;
}


/*----------------------------------------------------------------------------------------------------------------
  The spinner icon and message 
----------------------------------------------------------------------------------------------------------------*/
#d3_taxonomy_vis_container .search-results-panel .spinner-icon {
   font-size: 1.5rem;
   margin-left: 0.5rem;
}

#d3_taxonomy_vis_container .search-results-panel .spinner-message {
   font-size: 1.0rem;
}


/*---------------------------------------------------------------------------------------------------------------- 
  The body panel 
----------------------------------------------------------------------------------------------------------------*/
#d3_taxonomy_vis_container .body-panel {
   align-items: flex-start;
   display: flex;
   flex: 1 0 auto;
   flex-flow: row nowrap;
   height: 83vh;
   justify-content: flex-start;
   margin-top: 1.2rem;
   width: 100%;
}

#d3_taxonomy_vis_container .taxonomy-panel {
   height: 100%;
   width: 82vw;
}

#d3_taxonomy_vis_container .node {
   cursor: pointer;
}

#d3_taxonomy_vis_container .node circle {
   display: flex;
   justify-content: center;
   align-items: center;
}

#d3_taxonomy_vis_container .node-text {
   font-weight: bold;
   font-style: italic;
   text-align: right;
}

#d3_taxonomy_vis_container .unassigned-text {
   color: #999;
   text-align: right;
}

#d3_taxonomy_vis_container text.legend-node-text {
   color: #999; /* dmd test 043024 */
   font-size: 1.5rem;
   font-style: normal;
   text-align: center;
   text-transform: capitalize;
   transform: rotate(-45deg);
   transform-origin: left left;
}


/*----------------------------------------------------------------------------------------------------------------
  The tippy tooltip 
----------------------------------------------------------------------------------------------------------------*/
.ictv-tax-viz-tooltip .rank-and-name {
   align-items: baseline;
   border-color: #ccc;
   border-style: solid;
   border-width: 0 0 1px 0;
   display: flex;
   flex-flow: row nowrap;
   font-size: 1.0rem;
   padding-bottom: 0.20rem;
   text-transform: capitalize;
}

.ictv-tax-viz-tooltip .history {
   margin-top: 0.5rem;
}

.ictv-tax-viz-tooltip .child-count {
   display: flex;
   flex-flow: row nowrap;
   margin-top: 0.25rem;
}

.tippy-box[data-theme~='ICTV-Tooltip'] {
   background-color: #eee;
   color: #000;
}

.tippy-box[data-theme~='ICTV-Tooltip'] .tippy-arrow {
   color: #eee;
}


/*----------------------------------------------------------------------------------------------------------------
  The species panel 
----------------------------------------------------------------------------------------------------------------*/
#d3_taxonomy_vis_container .species-panel {
   background-color: #efefef;
   height: 100%;
   overflow-y: auto;
   width: 17vw;
}

#d3_taxonomy_vis_container .species-panel .parent-rank {
   text-transform: capitalize;
}

#d3_taxonomy_vis_container .species-panel .parent-name {
   font-size: 1.0rem;
   font-weight: bold;
   text-align: center;
   margin-bottom: 1.0rem;
   margin-left: 0.5rem;
   margin-right: 0.5rem;
   word-break: normal;
}

#d3_taxonomy_vis_container .species-panel .parent-name:not(:empty) {
   border-bottom-style: solid;
}

#d3_taxonomy_vis_container .species-panel .species-list {
   align-items: flex-start;
   display: flex;
   font-size: .90rem;
   font-style: italic;
   flex-flow: column nowrap;
   justify-content: flex-start;
}

#d3_taxonomy_vis_container .species-panel .species-row {
   color: blue;
   margin-bottom: 0.5rem;
   margin-left: 0.5rem;
   margin-right: 0.5rem;
   word-break: normal;
}

#d3_taxonomy_vis_container .species-panel .species-row:hover {
   cursor: pointer;
   text-decoration: underline;
}



/*----------------------------------------------------------------------------------------------------------------
  Overriding DataTable CSS
----------------------------------------------------------------------------------------------------------------*/
/* The "Show ___ entries" row above the table */
#d3_taxonomy_vis_container .dataTables_length {
   margin-bottom: 1.0rem;
   margin-left: 0.75rem;
}
#d3_taxonomy_vis_container .dataTables_length label {
   align-items: center;
   font-weight: normal;
   display: flex !important;
   flex-flow: row nowrap !important;
   justify-content: flex-start;
}
#d3_taxonomy_vis_container .dataTables_length select {
   background-color: transparent;
   border: 1px solid #aaa;
   border-radius: 3px;
   font-size: var(--default-font-size);
   padding: 0 5px !important;
   margin: 0 0.25rem;
   min-width: 4rem;
   text-align: left;
}
#d3_taxonomy_vis_container .dataTables_info {
   margin-left: 0.75rem;
}

/* Table TH and TD */
#d3_taxonomy_vis_container table.dataTable thead th {
   font-size: var(--table-header-font-size);
}
#d3_taxonomy_vis_container table.dataTable.compact thead th,
#d3_taxonomy_vis_container table.dataTable.compact thead td {
   padding: 0.5rem 0.5rem 0.5rem 0.5rem !important;
}

#d3_taxonomy_vis_container table.dataTable.compact thead th {
   text-align: left !important;
}