/**********************************************************************
 *                           Default styles                           *
 **********************************************************************/
.root {
  --dialog-buttons-height: 40px;
}

* {
  font-family: sans-serif;
}

body {
  align-items: center;
  width: 99%;
}

p.description {
  margin: 0px 10px 0px 10px;
}

ul.examples {
  margin: 5px 0px 5px 0px;
}

h1.title, div.description_container {
  margin: 10px;
}

form {
  width: 100%;
}

/*******************
 *     Colors     *
 *******************/
:root {
  --primary: #008CFF;
  --primary-font: #FFFFFF;
  --primary-hover: #0066CC;
  --primary-active: #004499;
  --primary-disabled: #004F8F;
  --primary-disabled-font: #808080;
  --primary-light: #4086C0;
  --primary-light-font: #FFFFFF;
  --primary-light-hover: #3876A8;
  --primary-light-active: #2E608A;
  --primary-light-disabled: #004F8F;
  --primary-light-disabled-font: #808080;
  --secondary: #808080;
  --secondary-font: #FFFFFF;
  --secondary-hover: #666666;
  --secondary-active: #404040;
  --secondary-disabled: #C2C2C2;
  --secondary-disabled-font: #606060;
  --secondary-light: #E0E0E0;
  --secondary-light-font: #000000;
  --secondary-light-hover: #C9C9C9;
  --secondary-light-active: #A9A9A9;
  --secondary-light-disabled: #C2C2C2;
  --secondary-light-disabled-font: #606060;
  --fieldset-background: #F0F8FF;
  --fieldset-secondary-background: #FFFFFF;
  --shadow: #B0B0B0;
  --selected-background: #E0F1FF;
  --selected-font: #004680;
  --selected-font-hover: #008CFF;
  --selected-font-active: #002340;
  --unselected-background: #FFFFFF;
  --unselected-font: #000000;
  --unselected-font-hover: #666666;
  --unselected-font-active: #404040;
}

h1.title, div.description_container {
  background-color: var(--fieldset-background);
  border-radius: 10px;
  padding: 10px 10px 10px 10px;
  box-shadow: 0px 0px 10px 0px var(--shadow);
}
body, dialog {
  background-color: var(--fieldset-secondary-background);
}

/**********************************************************************
 *                             Containers                             *
 **********************************************************************/
div.fieldset_container, div.filter_fieldset{
  border-radius: 10px;
  margin: 10px 10px 10px 10px;
  padding: 10px 10px 10px 10px;
  background-color: var(--fieldset-background);
  box-shadow: 0px 0px 10px 0px var(--shadow);
}

div.filter_radios {
  height: 10px;
  overflow-y: scroll;
}

p.filter_legend { 
  font-weight: bold;
  font-size: 20px;
  padding: 5px;
  border-radius: 10px;
}

div#cite_message {
  background-color: var(--fieldset-secondary-background);
  /*box-shadow: 0px 0px 10px 0px var(--shadow);*/
  padding: 10px;
  margin: 10px 10px 10px 10px;
}

p, h1, h2, h3, h4, h5, h6, dialog {
  color: var(--unselected-font);
}

/**********************************************************************
 *                           Sequence input                           *
 **********************************************************************/
li.example {
  cursor: pointer;
  word-wrap: break-word;
  color: #000000;
  shadow: 0px 0px 10px 0px var(--shadow);
}

li.example:hover {
  color: var(--secondary);
}

li.example:active {
  color: var(--secondary-active);
}

textarea {
  margin: 5px 0px 5px 0px;
  width: calc(100% - 10px);
  word-wrap: break-word;
  border: 1px solid var(--secondary-light);
}

input[type="file"]::file-selector-button {
  background-color: var(--primary-light);
  color: var(--primary-light-font);
  padding: 5px;
  font-size: 16px;
  border-radius: 10px;
  border: none;
}

input[type="file"]::file-selector-button:hover {
  background-color: var(--primary-light-hover);
}

input[type="file"]::file-selector-button:active {
  background-color: var(--primary-light-active);
}

div#seq_input_label_error {
  display: flex;
  gap: 50px;
}

div#rnacentral_button_container {
  margin: 10px 0px 0px 0px;
  display: flex;
  align-items: center;
  gap: 5px;
}

div#rnacentral_sequence {
  display: flex;
  align-items: center;
  gap: 5px;
}

div#rnacentral_sequence_id {
  font-weight: bold;
}

/************
 *  Dialog  *
 ************/
dialog#rnacentral_dialog {
  border: 1px solid var(--secondary);
  flex-direction: column;
  padding: 10px;
  width: auto;
  height: auto;
}

div#rnacentral_dialog_content {
  flex-grow: 1;
  display: flex;
  gap: 10px;
  flex-direction: row;
}

div#dialog_filters_section {
  display: flex;
  flex-basis: 20%;
  flex-direction: column;
  gap: 5px;
}

div#dialog_filters {
  flex-grow: 1;
  display: grid;
  gap: 5px;
}

div#dialog_filters_buttons {
  display: flex;
  flex-direction: row;
  gap: 5px;
  align-items: center;
  justify-content: center;
}

h1#dialog_results_title {
  margin: 20px 0px 0px 0px;
}

p.filter_legend {
  margin: 0px;
}

div#dialog_maincontent {
  flex-basis: 80%;
  width: auto;
  height: 100vh - 50px;
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: 30px auto 30px;
}

div#dialog_search {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
}

input#dialog_search_input {
  font-size: 17px;
  border: 1px solid var(--secondary-light);
  border-radius: 10px;
  box-shadow: 0px 0px 10px 0px var(--shadow);
  margin: 0px 10px 0px 10px;
  padding: 5px;
  flex-grow: 1;
}

div#dialog_results{
  display: flex;
  flex-direction: column;
  gap: 5px;
}

h1#dialog_result_title {
  margin: 0px 0px 0px 0px;
  padding: 0px 0px 0px 0px;
}

small#dialog_results_count {
  margin: 0px 0px 10px 0px;
  font-weight: normal;
  font-size: 20px;
}

div#dialog_results_content {
  overflow-y: scroll;
  max-height: 100px;
}

div.dialog_result_not_selected {
  margin: 10px 10px 10px 10px;
  padding: 10px;
  background-color: var(--unselected-background);
  box-shadow: 0px 0px 5px 0px var(--shadow);
  display: flex;
  flex-direction: column;
  gap: 5px;
}
div.dialog_result_not_selected > p {
  color: var(--unselected-font);
}
.dialog_result_not_selected:hover {
  cursor: pointer;
}
div.dialog_result_not_selected:hover > p {
  color: var(--unselected-font-hover);
}
div.dialog_result_not_selected:active > p {
  color: var(--unselected-font-active);
}
.dialog_result_not_selected:active {
  cursor: pointer;
}

div.dialog_result_selected {
  margin: 10px 10px 10px 10px;
  padding: 10px;
  background-color: var(--selected-background);
  box-shadow: 0px 0px 5px 0px var(--shadow);
  display: flex;
  flex-direction: column;
  gap: 5px;
}
div.dialog_result_selected > p {
  color: var(--selected-font);
}
.dialog_result_selected:hover {
  cursor: pointer;
}
div.dialog_result_selected:hover > p {
  color: var(--selected-font-hover);
}
.dialog_result_selected:active {
  cursor: pointer;
}
div.dialog_result_selected:active > p {
  color: var(--selected-font-active);
}

p.result_description {
  font-size: 20px;
  margin: 0px;
}

p.result_id {
  font-size: 15px;
  font-style: italic;
  margin: 0px;
}

p.result_length {
  font-size: 15px;
  margin: 0px;
}

div#pagination_buttons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}

div#rnacentral_dialog_buttons_container {
  display: flex;
  gap: 10px;
  align-items: center;
}

div#rnacentral_dialog_buttons {
  height: var(--dialog_buttons_height);
  padding: 0px 10px 0px 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#ebi-search-acknowledgement {
  display: flex;
  align-items: center;
  gap: 5px;
}

#ebi-search-link, #cite_link {
  display: flex;
  align-items: center;
  gap: 8px;
}

.external_link {
  box-sizing: border-box;
  position: relative;
  display: block;
  width: 10px;
  height: 10px;
  padding: 2px;
  box-shadow: -2px 2px 0 0, -4px -4px 0 -2px, 4px 4px 0 -2px;
}
.external_link::after,
.external_link::before {
  content: "";
  display: block;
  box-sizing: border-box;
  position: absolute;
  right: -4px;
}
.external_link::before {
  background: currentColor;
  transform: rotate(-45deg);
  width: 12px;
  height: 2px;
  top: 1px;
}
.external_link::after {
  width: 8px;
  height: 8px;
  border-right: 2px solid;
  border-top: 2px solid;
  top: -4px;
}

/**********************************************************************
 *                              Methods                               *
 **********************************************************************/
#methods {
  display: grid;
  grid-template-columns: 30% auto;
  gap: 10px;
}

/**********************
 *  Methods selector  *
 **********************/
div#method_selector {
  width: auto;
}

div#available_methods {
  margin: 10px 0px 10px 0px;
  width: auto;
}

div.method_row {
  display: grid;
  grid-template-columns: auto 25px;
  align-items: center;
}

div.method_selected, div.method_unselected, div.editing_method {
  width: 100%;
  display: flex;
  align-items: center;
  margin: 5px 0px 5px 0px;
} 

p.selected_label { 
  color: black;
  margin: 0px 0px 0px 5px;
}

p.unselected_label { 
  color: var(--secondary);
  margin: 0px 0px 0px 5px;
}

p.editing_label { 
  color: var(--primary);
  margin: 0px 0px 0px 5px;
}

div#error-methods, div#error-sequence, div#error-file, div#dialog_nothing_selected_error {
  color: #FF3A20;
}

/*******************
 *  Method editor  *
 *******************/
div#method_editor {
  width: auto;
  height: auto;
  /*border: 1px solid var(--secondary);*/
  box-shadow: 0px 0px 10px 0px var(--shadow);
  background-color: var(--fieldset-secondary-background);
  padding: 10px;
  display: flex;
}

div#parameters_editor_div {
  margin: 0px 0px 0px 0px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

label#editor_label {
  margin: 0px 0px 0px 0px;
  font-size: 16px;
  font-weight: bold;
}

#method_editor_form { 
  margin: 5px 0px 5px 0px;
}

div#method_editor_buttons {
  margin: 0px 0px 0px 0px;
  display: flex;
  justify-content: right;
  gap: 10px;
}

/**********************************************************************
 *                               Submit                               *
 **********************************************************************/
#submit_button_container {
  display: flex;
  align-items: center;
}

#submit_message {
  margin: 10px 0px 10px 0px;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
}

/**********************************************************************
 *                              Buttons                               *
 **********************************************************************/
button {
  border-radius: 10px;
  border: none;
}

button.primary {
  color: var(--primary-font);
  background-color: var(--primary);
}
button.primary:hover {
  background-color: var(--primary-hover);
}
button.primary:active {
  background-color: var(--primary-active);
}
button.primary:disabled {
  background-color: var(--primary-disabled);
  color: var(--primary-disabled-font);
}

button.secondary {
  color: var(--secondary-font);
  background-color: var(--secondary);
}
button.secondary:hover {
  background-color: var(--secondary-hover);
}
button.secondary:active {
  background-color: var(--secondary-active);
}
button.secondary:disabled {
  background-color: var(--secondary-disabled);
  color: var(--secondary-disabled-font);
}

button.secondary_light {
  color: var(--secondary-light-font);
  background-color: var(--secondary-light);
}
button.secondary_light:hover {
  background-color: var(--secondary-light-hover);
}
button.secondary_light:active {
  background-color: var(--secondary-light-active);
}
button.secondary_light:disabled {
  background-color: var(--secondary-light-disabled);
  color: var(--secondary-light-disabled-font);
}

button.primary_light {
  color: var(--primary-light-font);
  background-color: var(--primary-light);
}
button.primary_light:hover {
  background-color: var(--primary-light-hover);
}
button.primary_light:active {
  background-color: var(--primary-light-active);
}
button.primary_light:disabled {
  background-color: var(--primary-light-disabled);
  color: var(--primary-light-disabled-font);
}

button.small {
  padding: 5px;
  font-size: 12px;
}

button.medium {
  padding: 5px;
  font-size: 16px;
}

button.large {
  width: 100%;
  padding: 10px;
  font-size: 32px;
  margin: 10px;
}


/****************
 *  Loader CSS  *
 ****************/
.loader_container {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.loader {
  border: 5px solid var(--secondary-light);
  border-top: 5px solid var(--primary);
  border-radius: 50%;
  width: 20px;
  height: 20px;
  animation: spin 2s linear infinite;
}
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/***************
 *  Bottom     *
 ***************/
div#bottom_message {
  margin: 10px 0px 10px 0px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}

