:root {
  --cnvs-col: #001f2c;
  --card-col: #112d3f;
  --bttn-col: #253b52;
  --hovr-col: #3b4a65;
  --inpt-col: #543641CA;
  --brdr-col: #001f2c96;
  --line-col: #600a8596;
  --plhr-col: #a0a8b8;
  --text-col: #d1e7ee;

  --text-b: color-mix(in srgb, #0000ff 70%, var(--text-col) 30%);
  --text-g: color-mix(in srgb, #00ff00 70%, var(--text-col) 30%);
  --text-r: color-mix(in srgb, #ff0000 70%, var(--text-col) 30%);
  --text-y: color-mix(in srgb, #fbbf24 70%, var(--text-col) 30%);
  --text-c: color-mix(in srgb, #22d3ee 70%, var(--text-col) 30%);
}

body {
  background: linear-gradient(to right top, #001f2c, #112d3f, #253b52, #3b4a65, #525878) fixed;
  min-height: 100vh;
  margin: 0;
  font-family: 'Inter', sans-serif;
}

.card {
  background-color: var(--card-col);
  color: var(--plhr-col);
  border: 1px solid var(--brdr-col);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.2),
              0 4px 6px -2px rgba(0, 0, 0, 0.1);
}
.card-label {
  color: var(--plhr-col);
  font-size: large;
  font-weight: 500;
  transition: color 0.5s ease;
}
.card:not(.hidden) .card-label {
  color: var(--text-col);
}

.button {
  background-color: var(--bttn-col);
  color: var(--plhr-col);
  border: none;
  border-radius: 0.5rem;
  cursor: pointer;
  transition: all 0.5s ease;
}
.button:hover {
  background-color: var(--hovr-col);
  color: var(--text-col);
}

.toggle {
  background-color: var(--bttn-col);
  color: var(--plhr-col);
  border: none;
  border-radius: 0.5rem;
  cursor: pointer;
  font-family: monospace;
  transition: all 0.5s ease;
}
.toggle:hover {
  background-color: var(--hovr-col);
  color: var(--text-col);
}
.toggle--mini {
  background-color: var(--line-col);
  transition: background-color 0.75s ease, color 0.3s ease;
}
.toggle--mini:hover {
  background-color: var(--plhr-col);
  color: var(--card-col);
}

.input {
    background-color: var(--inpt-col);
    color: var(--plhr-col);
    border: 2px solid var(--brdr-col);
    border-radius: 0.75rem;
    font-weight: 300;
}
.input.modified {
    color: var(--text-col) !important;
    font-weight: 500 !important;
}

.data-label {
  color: var(--plhr-col);
  font-weight: 400;
}
.data-label--mono {
  color: var(--plhr-col);
  font-family: monospace;
  text-transform: capitalize;
}

.data-value {
  color: var(--text-col);
  text-transform: capitalize;
}
.data-value--date {
  color: var(--plhr-col);
  font-family: monospace;
  font-weight: 400;
}
.data-value--currency {
  color: var(--text-col);
  font-family: monospace !important;
  font-variant-numeric: tabular-nums; 
}
.data-value--percentage {
  color: var(--text-col);
  font-family: monospace !important;
  font-variant-numeric: tabular-nums; 
}
.data-value--mono {
  color: var(--text-col);
  font-family: monospace;
  text-transform: capitalize;
}
.data-value--link {
  color: #00aaff;
  text-decoration: underline;
  cursor: pointer;
  text-transform: lowercase;
}

.hidden {
  display: none;
}

/* Progress bar styling */
progress {
    width: 100%;
    height: 20px;
    border-radius: 4px;
    border: none;
}
/* Webkit browsers (Chrome, Safari, Edge) */
progress::-webkit-progress-bar {
    background-color: var(--inpt-col);
    border-radius: 4px;
}
progress::-webkit-progress-value {
    background: linear-gradient(to right, #ef4444, #f59e0b, #10b981);
    border-radius: 4px;
    transition: width 0.3s ease;
}
/* Firefox */
progress::-moz-progress-bar {
    background: linear-gradient(to right, #ef4444, #f59e0b, #10b981);
    border-radius: 4px;
}
/* Fallback for other browsers */
progress {
    color: #10b981; /* Green color as fallback */
}

.spinner {
  border: 4px solid rgba(255, 255, 255, 0.1);
  border-top: 4px solid var(--cnvs-col);
  border-radius: 50%;
  width: 24px;
  height: 24px;
  animation: spin 1s linear infinite;
  display: inline-block;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}