/* ===== REUSABLE COMPONENT CLASSES =====
 * Semantic utility classes shared across active sections.
 */

/* --- Tags --- */
.tag {
  font-size: 9px;
  border: 1px solid var(--outline-variant-color);
  padding: 4px 8px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--outline-color);
}

.tag--highlight {
  border-color: rgb(var(--accent) / 0.6);
  color: var(--accent-hex);
}

.tag--disabled {
  border-color: rgb(var(--accent) / 0.15);
  color: rgb(var(--accent) / 0.25);
}

/* --- Metric Labels --- */
.metric-label {
  font-size: 9px;
  letter-spacing: 0.15rem;
  color: var(--accent-40);
  text-transform: uppercase;
}

/* --- Progress Bar --- */
.progress-bar {
  height: 4px;
  width: 100%;
  background: var(--bg-elevated);
  overflow: hidden;
}

.progress-bar__fill {
  height: 100%;
  background: var(--accent-hex);
  box-shadow: 0 0 8px var(--accent-hex);
}

/* --- Terminal Readout --- */
.terminal {
  background: var(--shadow-dark);
  padding: 12px;
  border: 1px solid var(--accent-10);
  font-family: monospace;
  font-size: 10px;
}

.terminal__line {
  display: flex;
  gap: 8px;
}

.terminal__status {
  color: var(--accent-40);
}

.terminal__status--active {
  color: var(--accent-hex);
}

.terminal__text {
  color: var(--on-surface-variant);
}

.terminal__text--active {
  color: var(--accent-hex);
}

.terminal__footer {
  border-top: 1px solid var(--accent-10);
  margin-top: 8px;
  padding-top: 4px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.terminal__cursor {
  width: 4px;
  height: 12px;
  background: var(--accent-hex);
  animation: pulse-dot 2s ease-in-out infinite;
}

.terminal__footer-text {
  color: rgb(var(--accent) / 0.5);
  font-style: italic;
  letter-spacing: 0.1em;
}

/* --- Sparkline Container --- */
.sparkline {
  height: 48px;
  width: 100%;
  background: rgb(var(--accent) / 0.05);
  border-left: 1px solid var(--accent-20);
  position: relative;
  overflow: hidden;
}

.sparkline__svg {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 32px;
  stroke: var(--accent-hex);
  stroke-width: 1;
  fill: none;
  opacity: 0.6;
}

.sparkline__label {
  position: absolute;
  right: 8px;
  top: 8px;
  font-size: 10px;
  color: var(--accent-hex);
}
