/* RHAPSODY Documentation Extra Styles */

/* Brand colors */
:root {
  --rhapsody-primary: #1565c0;
  --rhapsody-secondary: #42a5f5;
  --rhapsody-accent: #ff9800;
  --rhapsody-success: #4caf50;
  --rhapsody-warning: #ff5722;
  --rhapsody-dark: #263238;
}

/* Custom header styling */
.md-header {
  background-color: var(--rhapsody-primary);
}

/* Code block enhancements */
.highlight pre {
  border-left: 3px solid var(--rhapsody-secondary);
}

/* Admonition custom styles */
.md-typeset .admonition.note {
  border-color: var(--rhapsody-secondary);
}

.md-typeset .admonition.tip {
  border-color: var(--rhapsody-success);
}

.md-typeset .admonition.warning {
  border-color: var(--rhapsody-warning);
}

/* Custom button styling */
.md-button--primary {
  background-color: var(--rhapsody-primary);
  border-color: var(--rhapsody-primary);
}

.md-button--primary:hover {
  background-color: var(--rhapsody-secondary);
  border-color: var(--rhapsody-secondary);
}

/* Grid cards for homepage */
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1rem;
  margin: 2rem 0;
}

.grid.cards > * {
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 8px;
  padding: 1.5rem;
  background: rgba(255, 255, 255, 0.05);
  transition: all 0.2s ease;
}

.grid.cards > *:hover {
  border-color: var(--rhapsody-secondary);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

/* NSF award badge */
.nsf-badge {
  background: linear-gradient(135deg, #1e3a8a, #3b82f6);
  color: white;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  display: inline-block;
  margin: 1rem 0;
  font-weight: bold;
}

/* Footer enhancements */
.md-footer-meta {
  background-color: var(--rhapsody-dark);
}

/* Navigation enhancements */
.md-nav__item--active > .md-nav__link {
  color: var(--rhapsody-primary);
}

/* Custom logo styling */
.md-header__button.md-logo {
  margin: 0.4rem;
}

/* Responsive adjustments */
@media screen and (max-width: 768px) {
  .grid {
    grid-template-columns: 1fr;
  }

  .grid.cards > * {
    padding: 1rem;
  }
}
