/* ========== Global Styles ========== */
body {
  margin: 0;
  padding: 0;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  background-color: #161f34;
  color: #e0e6f0;
  line-height: 1.6;
}

.DownloadButton {
	background-color:#5a6b8c;
	border-radius:14px;
	border:1px solid #5a6b8c;
	display:inline-block;
	cursor:pointer;
	color:#ffffff;
	font-family:Arial;
	font-size:1rem;
  font-weight:bold;
	padding:10px 20px;
	text-decoration:none;
	text-shadow:0px 1px 0px #5a6b8c;
}
.DownloadButton:hover {
	background-color:#618febd2;
}
.DownloadButton:active {
	position:relative;
	top:1px;
}

.ModalButton {
	background-color:#5a6b8c;
	border-radius:12px;
	border:1px solid #5a6b8c;
	display:inline-block;
	cursor:pointer;
	color:#ffffff;
	font-family:Arial;
	font-size:0.9rem;
  font-weight:bold;
  margin:10px;
	padding:5px 10px;
	text-decoration:none;
	text-shadow:0px 1px 0px #5a6b8c;
}
.ModalButton:hover {
	background-color:#618febd2;
}
.ModalButton:active {
	position:relative;
	top:1px;
}

.modal-content {
	background-color:#1f2c44;
	border-radius:12px;
	border:1px solid #1f2c44;
	display:inline-block;
	cursor:pointer;
	color:#ffffff;
	font-family:Arial;
	font-size:0.9rem;
  font-weight:bold;
  margin:10px;
	padding:5px 10px;
	text-decoration:none;
	text-shadow:0px 1px 0px #1f2c44;
}

.btn-close {
  filter: invert(1);
}

.modal-body .tab-content {
  background-color: #2a3f5f; 
}

.HrDiv {
  opacity: 1;
  size: 10;

}

/* Typography */
h1, .h1 {
  font-size: 2.5rem;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 0.5em;
}
h2, .h2 {
  font-size: 2rem;
  font-weight: 600;
  color: #f0f4fa;
  margin-bottom: 0.5em;
  border-top: 2px solid #c3dbff;
  border-bottom: 2px solid #c3dbff;
  padding: 3px;

}
h3, .h3 {
  font-size: 1.5rem;
  font-weight: 500;
  color: #d9e2f1;
  margin-bottom: 0.5em;
}
p, .dash-description {
  font-size: 1rem;
  color: #b0bac8;
}

/* Containers */
.dashboard {
  padding: 20px;
  background-color: #15233c;
}
.card {
  background-color: #1f2c44;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  padding: 15px;
  margin-bottom: 20px;
}

/* Buttons */
.dash-button {
  background-color: #3a77f2;
  color: #ffffff;
  border: none;
  padding: 10px 20px;
  border-radius: 6px;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.dash-button:hover,
.dash-button:focus {
  background-color: #5698ff;
  outline: none;
}
.dash-button:active {
  background-color: #2b5ecc;
}

/* RadioItems */
.dash-radio {
  color: #e0e6f0;
  margin: 10px 0;
}
.dash-radio input[type="radio"] + label {
  position: relative;
  padding-left: 30px;
  cursor: pointer;
  user-select: none;
}
.dash-radio input[type="radio"] {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}
.dash-radio input[type="radio"] + label:before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  width: 18px;
  height: 18px;
  border: 2px solid #4fc3f7;
  border-radius: 50%;
}
.dash-radio input[type="radio"]:checked + label:after {
  content: "";
  position: absolute;
  left: 5px;
  top: 7px;
  width: 8px;
  height: 8px;
  background-color: #4fc3f7;
  border-radius: 50%;
}

/* Sliders */
.dash-slider .rc-slider-rail {
  background-color: #2e3b53;
  height: 6px;
}
.dash-slider .rc-slider-track {
  background-color: #3a77f2;
  height: 6px;
}
.dash-slider .rc-slider-handle {
  border: 2px solid #4fc3f7;
  background-color: #1f2c44;
  width: 20px;
  height: 20px;
  margin-top: -7px;
  box-shadow: 0 0 5px rgba(0,0,0,0.5);
  transition: border-color 0.2s ease;
}
.dash-slider .rc-slider-handle:hover,
.dash-slider .rc-slider-handle:focus {
  border-color: #7dd1ff;
}

/* Dropdowns and Inputs */
.dash-dropdown, .dash-input {
  background-color: #1f2c44;
  color: #e0e6f0;
  border: 1px solid #2e3b53;
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 1rem;
}
.dash-dropdown:hover,
.dash-input:hover,
.dash-dropdown:focus,
.dash-input:focus {
  border-color: #4fc3f7;
  outline: none;
}

.Select-control, .Select-value-label,
.Select-menu-outer, .VirtualizedSelectOption,
.VirtualizedSelectFocusedOption {
  background-color: #1f2c44 !important;
  color: #e0e6f0 !important;
 }

/* Callouts & Alerts */
.alert {
  background-color: #3a2a2a;
  color: #ff6b6b;
  border-left: 4px solid #ff6b6b;
  padding: 10px 15px;
  border-radius: 4px;
  margin: 10px 0;
}

/* Tables */
.table-container {
  overflow-x: auto;
}
table {
  width: 100%;
  border-collapse: collapse;
  background-color: #1f2c44;
}
th, td {
  padding: 12px;
  text-align: left;
  border-bottom: 1px solid #2e3b53;
}
th {
  background-color: #15233c;
}

/* Links */
a {
  color: #4fc3f7;
  text-decoration: none;
  transition: color 0.2s;
}
a:hover {
  color: #7dd1ff;
}

/* Utility classes */
.text-center { text-align: center; }
.mt-1 { margin-top: 0.5rem; }
.mt-2 { margin-top: 1rem; }
.mb-1 { margin-bottom: 0.5rem; }
.mb-2 { margin-bottom: 1rem; }
.p-1 { padding: 0.5rem; }
.p-2 { padding: 1rem; }

.icon-button-dark {
    color: #ffffff;
    background-color: transparent;
    border: none;
    box-shadow: none;
}

/* Settings controls styling */

.header-bar {
    padding: 10px;
    text-align: center;
    background-color: #1f2c44;
    position: sticky;
    top: 0;
    z-index: 1000;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.control-row {
    width: 100%;
    gap: 20px;
}

.control-radio-btns {
    margin-right: 20px;
    min-width: 70px;
    text-align: left;
}

.vertical-radio .form-check {
    display: block;
    margin-bottom: 5px;
}

.vertical-radio input[type="radio"] {
    margin-right: 6px;
}

.divider {
    width: 1px;
    background-color: #5a6b8c;
    height: 40px;
    margin: 0 20px;
}

.slider-label {
    font-weight: bold;
    text-align: left;
    margin-right: 10px;
    white-space: nowrap;
}

.centered-container {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    gap: 20px;
}

.download-row {
    display: flex;
    flex-direction: row;
    align-items: center;  
    gap: 10px;            
}

.download-dropdown {
    padding-left: 10px;
    min-width: 300px;     
    flex-grow: 1;        
}

.flex-container {
    flex: 1;
}
/* Graph sizing */
.plot-500 { 
    height: 500px !important;
}

.plot-450 { 
    height: 450px !important;
}

.plot-600 { 
    height: 600px !important;
}

.plot-800 { 
    height: 800px !important;
}

.fullsize { 
    height: 100%;
    width: 100%;
}

/* tabs styles */
.dash-tab {
    background-color: #5a6b8c !important;
    border-radius:12px 12px 0px 0px;
	  border:1px solid #3a77f2;
    color: white !important;
    padding: 10px !important;
    font-weight: bold !important;
    border: none !important;
}

/* Style for selected tab */
.dash-tab--selected {
    background-color: #2a3f5f !important;
    border-radius:12px 12px 0px 0px;
	  border:1px solid #3a77f2;
    color: white !important;
    padding: 10px !important;
    font-weight: bold !important;
}