/* Main Styles for Rhizome School LMS */
* {
  margin: 0;
  padding: 0%;
}
:root {
  --rhizome-green: #47885f;
  --rhizome-dark-green: #4a7449;
  --rhizome-light-green: #6b9a6a;
  --rhizome-gold: #b8860b;
  --rhizome-light-gold: #daa520;
  --rhizome-dark-gold: #996f00;
  --rhizome-white: #ffffff;
  --rhizome-light-gray: #f8f9fa;
  --rhizome-gray: #6c757d;

  /* Override Bootstrap primary colors with Rhizome colors */
  --bs-primary: var(--rhizome-green);
  --bs-primary-rgb: 91, 138, 90;
  --bs-secondary: var(--rhizome-gold);
  --bs-secondary-rgb: 184, 134, 11;
  --bs-success: var(--rhizome-green);
  --bs-success-rgb: 91, 138, 90;
}

body {
  background-color: var(--rhizome-light-gray);
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}

.main-container {
  min-height: calc(100vh - 200px);
}

/* Header & Navigation Styles */
.site-header,
.navbar,
.navbar-dark,
.navbar-expand-lg {
  background: var(--rhizome-green) !important;
  background-color: var(--rhizome-green) !important;
  box-shadow: 0 4px 20px rgba(91, 138, 90, 0.3);
  border-bottom: 3px solid var(--rhizome-gold);
}

.navbar-brand {
  font-weight: 700;
  font-size: 1.5rem;
  color: white !important;
  display: flex;
  align-items: center;
}

.navbar-brand:hover {
  color: var(--rhizome-light-gold) !important;
}

.navbar-brand img {
  margin-right: 10px;
  height: 40px !important;
  width: auto !important;
  max-width: 200px;
  border-radius: 5px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  object-fit: contain;
  background: white;
  padding: 2px;
  display: block;
}

/* Logo fallback styling */
.navbar-brand .logo-fallback {
  font-weight: 800;
  font-size: 1.2rem;
  color: white !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
  margin-right: 5px;
}

.navbar-brand .logo-text {
  display: flex;
  flex-direction: column;
  margin-left: 10px;
  line-height: 1.2;
}

.navbar-brand .logo-main {
  font-weight: 700;
  font-size: 1.2rem;
  color: white !important;
  letter-spacing: 1px;
}

.navbar-brand .logo-sub {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--rhizome-gold) !important;
  margin-top: -2px;
}

/* Enhanced logo styling */
.navbar-logo {
  transition: all 0.3s ease;
}

.navbar-logo:hover {
  transform: scale(1.05);
  filter: brightness(1.1);
}

.navbar-nav .nav-link {
  color: rgba(255, 255, 255, 0.95) !important;
  font-weight: 600;
  padding: 0.75rem 1rem !important;
  border-radius: 0.5rem;
  margin: 0 0.25rem;
}

.navbar-nav .nav-link:hover {
  color: var(--rhizome-light-gold) !important;
  background: rgba(255, 255, 255, 0.1);
}

.navbar-nav .nav-item.active .nav-link {
  color: var(--rhizome-gold) !important;
  font-weight: 700;
  background: rgba(184, 134, 11, 0.2);
}

.navbar-toggler {
  border: 2px solid var(--rhizome-gold);
  background: rgba(184, 134, 11, 0.2);
}

.navbar-toggler:focus {
  box-shadow: 0 0 0 0.2rem rgba(184, 134, 11, 0.5);
}

.navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23B8860B' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Footer Styles */
.site-footer {
  box-shadow: 0 -4px 20px rgba(91, 138, 90, 0.3);
  background: linear-gradient(
    135deg,
    var(--rhizome-green) 0%,
    var(--rhizome-dark-green) 50%,
    var(--rhizome-green) 100%
  ) !important;
  margin-top: auto;
  border-top: 3px solid var(--rhizome-gold);
  position: relative;
}

.site-footer::before {
  content: "";
  position: absolute;
  top: -3px;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--rhizome-light-gold),
    transparent
  );
}

.site-footer p {
  margin: 0;
  font-weight: 500;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

/* Notification Styles */
.notification-badge {
  background: linear-gradient(
    45deg,
    var(--rhizome-gold),
    var(--rhizome-light-gold)
  );
  color: white;
  border-radius: 50%;
  padding: 0.2em 0.4em;
  font-size: 0.75em;
  position: absolute;
  top: -5px;
  right: -5px;
  min-width: 20px;
  text-align: center;
  animation: pulse 2s infinite;
}

.notification-dropdown {
  width: 300px;
  max-height: 400px;
  overflow-y: auto;
}

.notification-item {
  border-left: 3px solid transparent;
  padding: 10px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.notification-item:hover {
  background-color: rgba(91, 138, 90, 0.1);
  border-left-color: var(--rhizome-green);
  transform: translateX(5px);
}

.notification-item.text-danger {
  border-left-color: #dc3545;
}

.notification-item.text-warning {
  border-left-color: #ffc107;
}

.notification-item.text-info {
  border-left-color: #17a2b8;
}

.notification-item h6 {
  margin-bottom: 5px;
  font-weight: bold;
}

.notification-item p {
  margin-bottom: 5px;
  font-size: 0.9rem;
}

.notification-item small {
  display: block;
  color: #6c757d;
}

@keyframes pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}

/* Dashboard Cards */
.dashboard-card {
  transition: transform 0.3s;
  margin-bottom: 20px;
}

.dashboard-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.dashboard-icon {
  font-size: 3rem;
  color: var(--rhizome-green);
  margin-bottom: 15px;
}

/* Auth Forms */
.auth-form {
  max-width: 500px;
  margin: 0 auto;
  padding: 20px;
  background: white;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  border-radius: 5px;
} /* Subject Cards - Enhanced Rhizome Design */
.subject-card {
  border: none;
  border-radius: 1rem;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  background: linear-gradient(145deg, white 0%, #f8fffe 50%, #f0f9f0 100%);
  border: 2px solid transparent;
  background-clip: padding-box;
  position: relative;
  overflow: hidden;
}

.subject-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
  background: linear-gradient(
    90deg,
    var(--rhizome-green) 0%,
    var(--rhizome-gold) 50%,
    var(--rhizome-light-green) 100%
  );
}

.subject-card:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow: 0 12px 35px rgba(91, 138, 90, 0.25);
  border-color: var(--rhizome-green);
}

.subject-card:hover::before {
  background: linear-gradient(
    90deg,
    var(--rhizome-gold) 0%,
    var(--rhizome-light-gold) 50%,
    var(--rhizome-green) 100%
  );
  animation: shimmer 2s ease-in-out infinite;
}

@keyframes shimmer {
  0%,
  100% {
    transform: translateX(-100%);
  }
  50% {
    transform: translateX(100%);
  }
}

.subject-card .card-body {
  padding: 2rem 1.5rem;
  position: relative;
  display: flex !important;
  flex-direction: column;
  align-items: center !important;
  justify-content: center;
  text-align: center !important;
  width: 100%;
}

.subject-card .card-title {
  color: var(--rhizome-dark-green);
  font-weight: 700;
  font-size: 1.4rem;
  margin-bottom: 1rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  text-shadow: 0 1px 2px rgba(91, 138, 90, 0.1);
  text-align: center !important;
  display: block;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.subject-card .card-text {
  color: var(--rhizome-gray);
  font-weight: 500;
  margin-bottom: 1.5rem;
  font-size: 1rem;
  text-align: center !important;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.subject-card .notes-count {
  background: linear-gradient(
    135deg,
    var(--rhizome-green),
    var(--rhizome-light-green)
  );
  color: white;
  padding: 0.5rem 1rem;
  border-radius: 25px;
  font-weight: 600;
  font-size: 0.9rem;
  box-shadow: 0 2px 8px rgba(91, 138, 90, 0.3);
  margin-bottom: 1rem;
  display: inline-block;
  text-align: center !important;
  margin-left: auto;
  margin-right: auto;
}

.subject-card .btn-primary {
  background: linear-gradient(
    135deg,
    var(--rhizome-green),
    var(--rhizome-dark-green)
  ) !important;
  border: none !important;
  border-radius: 25px;
  padding: 0.75rem 2rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(91, 138, 90, 0.3);
  min-width: 150px;
  display: inline-block;
  text-align: center !important;
  margin-left: auto;
  margin-right: auto;
}

.subject-card .btn-primary:hover {
  background: linear-gradient(
    135deg,
    var(--rhizome-gold),
    var(--rhizome-light-gold)
  ) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(184, 134, 11, 0.4);
}

.subject-card .btn-primary:active {
  transform: translateY(0);
  box-shadow: 0 2px 10px rgba(91, 138, 90, 0.2);
}

/* Subject section title */
.subject-section-title {
  color: var(--rhizome-dark-green);
  font-weight: 700;
  font-size: 2rem;
  margin-bottom: 2rem;
  text-align: center;
  position: relative;
  padding-bottom: 0.5rem;
}

.subject-section-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, var(--rhizome-green), var(--rhizome-gold));
  border-radius: 2px;
}
/* Profile Picture */
.profile-picture {
  border: 3px solid var(--rhizome-gold);
  box-shadow: 0 4px 15px rgba(184, 134, 11, 0.3);
}

/* Student Dashboard Styles */
.student-profile-section {
  background: white;
  border-radius: 0.75rem;
  padding: 2rem;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  border-left: 4px solid var(--rhizome-green);
  color: var(--rhizome-dark-green);
}

.student-profile-section h1 {
  color: var(--rhizome-dark-green);
  font-weight: 600;
}

.student-profile-section h4 {
  color: var(--rhizome-gray);
  font-weight: 400;
}

.student-profile-section .opacity-75 {
  opacity: 0.8 !important;
  color: var(--rhizome-gray) !important;
}

.student-profile-section i {
  color: var(--rhizome-green);
}

.student-stats {
  background: linear-gradient(
    135deg,
    var(--rhizome-green) 0%,
    var(--rhizome-dark-green) 100%
  );
  border-radius: 0.75rem;
  color: white;
  box-shadow: 0 4px 15px rgba(91, 138, 90, 0.3);
}

.student-stats h6 {
  color: white !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  padding-bottom: 0.5rem;
}

.student-stats .text-muted {
  color: rgba(255, 255, 255, 0.7) !important;
}

.student-stats .btn-primary {
  background: linear-gradient(
    135deg,
    var(--rhizome-gold),
    var(--rhizome-light-gold)
  ) !important;
  border-color: var(--rhizome-gold) !important;
  color: white !important;
}

.student-stats .btn-primary:hover {
  background: linear-gradient(
    135deg,
    var(--rhizome-light-gold),
    var(--rhizome-gold)
  ) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(184, 134, 11, 0.3) !important;
}

/* Recent Activities */
.recent-activities .list-group-item {
  border-left: 3px solid var(--rhizome-light-green);
  transition: all 0.3s ease;
}

.recent-activities .list-group-item:hover {
  border-left-color: var(--rhizome-gold);
  background-color: rgba(91, 138, 90, 0.05);
}

/* Notification Panel */
.notification-panel {
  background: linear-gradient(
    135deg,
    var(--rhizome-light-green) 0%,
    var(--rhizome-green) 100%
  );
  color: white;
  border-radius: 0.75rem;
  padding: 1.5rem;
  box-shadow: 0 4px 15px rgba(107, 154, 106, 0.3);
}

.notification-panel h5 {
  color: white !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  padding-bottom: 0.5rem;
  margin-bottom: 1rem;
}

.notification-panel .list-group-item {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: white;
}

.notification-panel .list-group-item:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: translateX(3px);
}

/* Admin Panel Styles */
.class-selector {
  background: linear-gradient(
    135deg,
    var(--rhizome-green) 0%,
    var(--rhizome-dark-green) 100%
  );
  color: white;
  padding: 15px;
  border-radius: 5px;
  margin-bottom: 20px;
}

.class-selector:hover {
  background-color: #218838;
}

.admin-panel-card {
  border-left: 4px solid var(--rhizome-green);
  border-radius: 0.5rem;
  transition: all 0.3s ease;
}

.admin-panel-card:hover {
  border-left-color: var(--rhizome-gold);
  transform: translateX(5px);
  box-shadow: 0 4px 15px rgba(91, 138, 90, 0.2);
}

/* Dashboard Card Styles */
.dashboard-card {
  border: none;
  border-radius: 0.75rem;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
  background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
  border-left: 4px solid var(--rhizome-green);
}

.dashboard-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 25px rgba(91, 138, 90, 0.2);
  border-left-color: var(--rhizome-gold);
}

/* Profile Picture Styles */
.profile-picture {
  border: 3px solid #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
}

.profile-picture:hover {
  transform: scale(1.05);
}

.profile-upload-form {
  background-color: #f8f9fa;
  padding: 15px;
  border-radius: 8px;
  border: 2px dashed #dee2e6;
  transition: border-color 0.3s ease;
}

.profile-upload-form:hover {
  border-color: var(--rhizome-green);
}

/* Notes List */
.notes-list {
  list-style: none;
  padding-left: 0;
}

.notes-list li {
  padding: 10px;
  margin-bottom: 5px;
  background-color: #fff;
  border-radius: 5px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.notes-list li:hover {
  background-color: #f8f9fa;
}

.notes-list .note-date {
  color: #6c757d;
  font-size: 0.85rem;
}

/* Priority Colors */
.priority-high {
  border-left: 4px solid #dc3545;
}

.priority-medium {
  border-left: 4px solid #ffc107;
}

.priority-low {
  border-left: 4px solid #17a2b8;
}

/* Footer */
.footer {
  margin-top: auto;
}

/* Session Promotion Styles */
.promotion-warning {
  border: 3px solid #dc3545;
  background: linear-gradient(135deg, #ff6b6b, #ff8e8e);
  color: white;
  animation: pulse-border 2s infinite;
}

@keyframes pulse-border {
  0% {
    box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.7);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(220, 53, 69, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(220, 53, 69, 0);
  }
}

.promotion-stats-card {
  background: linear-gradient(135deg, #4caf50, #45a049);
  color: white;
  transition: transform 0.3s ease;
}

.promotion-stats-card:hover {
  transform: translateY(-5px);
}

.student-card {
  transition: all 0.3s ease;
  border-left: 4px solid var(--rhizome-green);
}

.student-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.border-left-primary {
  border-left: 4px solid var(--rhizome-green) !important;
}

.promotion-history-table {
  background: rgba(248, 249, 250, 0.8);
}

/* Student Management Styles */
.student-status-badge {
  font-size: 0.85em;
  padding: 0.25em 0.6em;
  border-radius: 0.25rem;
}

.student-actions {
  white-space: nowrap;
}

.student-actions .btn {
  margin-right: 0.25rem;
  padding: 0.25rem 0.5rem;
}

.student-search-form .form-control {
  border-radius: 0.375rem;
}

.student-filters {
  background: linear-gradient(
    135deg,
    var(--rhizome-green) 0%,
    var(--rhizome-dark-green) 100%
  );
  border: none;
  color: white;
}

.student-table {
  background: white;
  border-radius: 0.5rem;
  overflow: hidden;
  box-shadow: 0 0.125rem 0.25rem rgba(91, 138, 90, 0.1);
}

.student-modal .modal-header {
  background: linear-gradient(
    135deg,
    var(--rhizome-green) 0%,
    var(--rhizome-dark-green) 100%
  );
  color: white;
  border-bottom: none;
}

.student-modal .modal-header .close {
  color: white;
  opacity: 0.8;
}

.student-modal .modal-header .close:hover {
  color: white;
  opacity: 1;
}

.add-student-btn {
  background: linear-gradient(
    135deg,
    var(--rhizome-green) 0%,
    var(--rhizome-light-green) 100%
  );
  border: none;
  box-shadow: 0 2px 4px rgba(91, 138, 90, 0.3);
  transition: all 0.3s ease;
}

.add-student-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(91, 138, 90, 0.4);
  background: linear-gradient(
    135deg,
    var(--rhizome-dark-green) 0%,
    var(--rhizome-green) 100%
  );
}

/* Quick Actions Styling */
.quick-actions-card {
  border: none;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

.quick-action-btn {
  transition: all 0.3s ease;
  border-width: 2px;
}

.quick-action-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

/* Enhanced Table Styling */
.enhanced-table {
  border: none;
  border-radius: 0.5rem;
  overflow: hidden;
}

.enhanced-table thead th {
  background: linear-gradient(
    135deg,
    var(--rhizome-green) 0%,
    var(--rhizome-dark-green) 100%
  );
  color: white;
  border: none;
  padding: 1rem 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.85rem;
  letter-spacing: 0.5px;
}

.enhanced-table tbody tr {
  transition: all 0.2s ease;
  border: none;
}

.enhanced-table tbody tr:hover {
  background-color: rgba(91, 138, 90, 0.05);
  transform: scale(1.01);
}

.enhanced-table tbody td {
  padding: 1rem 0.75rem;
  border: none;
  border-bottom: 1px solid #e9ecef;
  vertical-align: middle;
}

/* Status Badge Animations */
.status-badge-approved {
  background: linear-gradient(
    45deg,
    var(--rhizome-green),
    var(--rhizome-light-green)
  );
  animation: approved-glow 2s ease-in-out infinite alternate;
}

.status-badge-pending {
  background: linear-gradient(
    45deg,
    var(--rhizome-gold),
    var(--rhizome-light-gold)
  );
  animation: pending-pulse 1.5s ease-in-out infinite;
}

.status-badge-disabled {
  background: linear-gradient(45deg, #dc3545, #e83e8c);
}

@keyframes approved-glow {
  from {
    box-shadow: 0 0 5px rgba(91, 138, 90, 0.3);
  }
  to {
    box-shadow: 0 0 15px rgba(91, 138, 90, 0.6);
  }
}

@keyframes pending-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}

/* Modal Enhancements */
.modal-content {
  border: none;
  border-radius: 1rem;
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175);
}

.modal-backdrop {
  background-color: rgba(0, 0, 0, 0.6);
}

/* Table Enhancements */
.table {
  border-radius: 0.5rem;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.table thead th {
  background: linear-gradient(
    135deg,
    var(--rhizome-green),
    var(--rhizome-dark-green)
  ) !important;
  color: white !important;
  border: none;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.85rem;
  letter-spacing: 0.5px;
}

.table tbody tr {
  transition: all 0.2s ease;
}

.table tbody tr:hover {
  background-color: rgba(91, 138, 90, 0.05) !important;
  transform: scale(1.01);
}

.table tbody tr:nth-child(even) {
  background-color: rgba(91, 138, 90, 0.02);
}

/* Form Enhancements */
.form-group label {
  color: var(--rhizome-dark-green);
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.form-control {
  border: 2px solid rgba(91, 138, 90, 0.2);
  border-radius: 0.5rem;
  transition: all 0.3s ease;
}

.form-control:focus {
  border-color: var(--rhizome-green) !important;
  box-shadow: 0 0 0 0.2rem rgba(91, 138, 90, 0.25) !important;
  transform: translateY(-1px);
}

.form-control:hover {
  border-color: var(--rhizome-light-green);
}

/* Select Elements */
.form-control select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%235B8A5A' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
}

/* Card Enhancements */
.card {
  border: none;
  border-radius: 0.75rem;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
}

.card:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
  transform: translateY(-2px);
}

.card-header {
  background: linear-gradient(
    135deg,
    var(--rhizome-light-gray),
    white
  ) !important;
  border-bottom: 2px solid var(--rhizome-green);
  font-weight: 600;
  color: var(--rhizome-dark-green) !important;
}

/* Modal Enhancements */
.modal-header {
  background: linear-gradient(
    135deg,
    var(--rhizome-green),
    var(--rhizome-dark-green)
  );
  color: white;
  border-radius: 0.5rem 0.5rem 0 0;
}

.modal-header .modal-title {
  font-weight: 600;
}

.modal-header .close {
  color: white;
  opacity: 0.8;
}

.modal-header .close:hover {
  opacity: 1;
}

.modal-footer .btn:not(.btn-danger) {
  background: linear-gradient(
    135deg,
    var(--rhizome-green),
    var(--rhizome-dark-green)
  );
  border-color: var(--rhizome-green);
  color: white;
}

/* Pagination */
.pagination .page-item.active .page-link {
  background-color: var(--rhizome-green) !important;
  border-color: var(--rhizome-green) !important;
}

.pagination .page-link {
  color: var(--rhizome-green) !important;
  border-color: rgba(91, 138, 90, 0.3);
}

.pagination .page-link:hover {
  background-color: rgba(91, 138, 90, 0.1) !important;
  border-color: var(--rhizome-green) !important;
}

/* Dropdown Menus */
.dropdown-menu {
  border: none;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  border-radius: 0.5rem;
}

.dropdown-item:hover {
  background-color: rgba(91, 138, 90, 0.1) !important;
  color: var(--rhizome-dark-green) !important;
}

.dropdown-item.active,
.dropdown-item:active {
  background-color: var(--rhizome-green) !important;
}

/* Navigation Enhancements */
.navbar-nav .nav-link {
  color: rgba(255, 255, 255, 0.9) !important;
  font-weight: 500;
  transition: all 0.3s ease;
}

.navbar-nav .nav-link:hover {
  color: var(--rhizome-light-gold) !important;
  transform: translateY(-1px);
}

.navbar-nav .nav-item.active .nav-link {
  color: var(--rhizome-gold) !important;
  font-weight: 600;
}

/* Search Box */
.form-control[type="search"] {
  background: linear-gradient(135deg, white, var(--rhizome-light-gray));
  border: 2px solid rgba(91, 138, 90, 0.3);
}

.form-control[type="search"]:focus {
  background: white;
  border-color: var(--rhizome-green);
  box-shadow: 0 0 0 0.2rem rgba(91, 138, 90, 0.25);
}

/* File Upload */
.custom-file-input:focus ~ .custom-file-label {
  border-color: var(--rhizome-green);
  box-shadow: 0 0 0 0.2rem rgba(91, 138, 90, 0.25);
}

.custom-file-label {
  border: 2px solid rgba(91, 138, 90, 0.2);
  color: var(--rhizome-dark-green);
}

.custom-file-label::after {
  background: linear-gradient(
    135deg,
    var(--rhizome-green),
    var(--rhizome-dark-green)
  );
  color: white;
  border-left: 2px solid var(--rhizome-green);
}

/* Performance and Animation Improvements */
.btn {
  transition: all 0.2s ease-in-out;
}

.btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
}

.stats-card:hover {
  transform: scale(1.02);
}

/* Loading states */
.btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.loading {
  position: relative;
  pointer-events: none;
  opacity: 0.6;
}

.loading::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 20px;
  margin: -10px 0 0 -10px;
  border: 2px solid #f3f3f3;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* Print styles */
@media print {
  .btn,
  .navbar,
  .sidebar,
  .modal {
    display: none !important;
  }

  .main-container {
    margin: 0 !important;
    padding: 0 !important;
  }

  .card {
    border: 1px solid #ddd !important;
    box-shadow: none !important;
  }
}

/* Hero Section */
.rhizome-hero {
  background: linear-gradient(
    135deg,
    var(--rhizome-green) 0%,
    var(--rhizome-dark-green) 50%,
    var(--rhizome-light-green) 100%
  ) !important;
  border-radius: 0.5rem;
  box-shadow: 0 8px 25px rgba(91, 138, 90, 0.3);
}

.rhizome-hero .btn-light:hover {
  background-color: var(--rhizome-gold) !important;
  border-color: var(--rhizome-gold) !important;
  color: white !important;
}

.rhizome-hero .btn-outline-light:hover {
  background-color: var(--rhizome-light-gold) !important;
  border-color: var(--rhizome-light-gold) !important;
  color: var(--rhizome-dark-green) !important;
}

/* Enhanced text visibility for student dashboard */
.student-dashboard-welcome h1 {
  color: var(--rhizome-dark-green) !important;
  font-weight: 700;
  text-shadow: none;
}

.student-dashboard-welcome h4 {
  color: var(--rhizome-gray) !important;
  font-weight: 500;
  text-shadow: none;
}

/* Subject section improvements */
.subject-section h3 {
  color: var(--rhizome-dark-green);
  font-weight: 600;
  margin-bottom: 1.5rem;
}

/* Recent notes section */
.recent-notes h3 {
  color: var(--rhizome-dark-green);
  font-weight: 600;
}

.recent-notes .list-group-item {
  background: white;
  border: 1px solid rgba(91, 138, 90, 0.1);
  color: var(--rhizome-dark-green);
}

/* Subject Card Icons */
.subject-card .card-title::before {
  content: "";
  display: block;
  width: 3rem;
  height: 3rem;
  background: linear-gradient(
    135deg,
    var(--rhizome-green),
    var(--rhizome-light-green)
  );
  border-radius: 50%;
  margin: 0 auto 1rem auto;
  position: relative;
}

.subject-card .card-title[data-subject="Mathematics"]::before,
.subject-card .card-title[data-subject="Math"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 14c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z'/%3E%3C/svg%3E");
  background-size: 1.5rem;
  background-repeat: no-repeat;
  background-position: center;
}

.subject-card .card-title[data-subject="English"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11z'/%3E%3C/svg%3E");
  background-size: 1.5rem;
  background-repeat: no-repeat;
  background-position: center;
}

.subject-card .card-title[data-subject="Science"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M9 21c0 .5.4 1 1 1h4c.6 0 1-.5 1-1v-1H9v1zm3-19C8.1 2 5 5.1 5 9c0 2.4 1.2 4.5 3 5.7V17c0 .5.4 1 1 1h6c.6 0 1-.5 1-1v-2.3c1.8-1.3 3-3.4 3-5.7 0-3.9-3.1-7-7-7z'/%3E%3C/svg%3E");
  background-size: 1.5rem;
  background-repeat: no-repeat;
  background-position: center;
}

/* Default subject icon */
.subject-card .card-title::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z'/%3E%3C/svg%3E");
  background-size: 1.5rem;
  background-repeat: no-repeat;
  background-position: center;
}

/* Student Profile Page Styles */
.student-profile-card {
  border: none;
  border-radius: 1rem;
  box-shadow: 0 8px 30px rgba(91, 138, 90, 0.15);
  background: linear-gradient(145deg, white 0%, #f8fffe 100%);
  border-left: 5px solid var(--rhizome-green);
}

.student-profile-card .card-header {
  background: linear-gradient(
    135deg,
    var(--rhizome-green),
    var(--rhizome-dark-green)
  ) !important;
  border-radius: 1rem 1rem 0 0 !important;
  border-bottom: 3px solid var(--rhizome-gold);
  color: white !important;
  text-align: center;
  padding: 1.5rem;
}

.student-profile-card .card-header h4 {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  color: white !important;
}

.student-profile-card .card-body {
  padding: 2.5rem 2rem;
  text-align: center;
}

.profile-picture {
  border: 4px solid var(--rhizome-gold) !important;
  box-shadow: 0 8px 25px rgba(184, 134, 11, 0.3) !important;
  transition: all 0.3s ease;
  position: relative;
}

.profile-picture:hover {
  transform: scale(1.05);
  box-shadow: 0 12px 35px rgba(184, 134, 11, 0.5) !important;
}

.profile-picture::after {
  content: "";
  position: absolute;
  top: -4px;
  left: -4px;
  right: -4px;
  bottom: -4px;
  border-radius: 50%;
  background: linear-gradient(
    45deg,
    var(--rhizome-gold),
    var(--rhizome-light-gold)
  );
  z-index: -1;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.profile-picture:hover::after {
  opacity: 0.7;
}

.profile-upload-form {
  background: linear-gradient(135deg, var(--rhizome-light-gray), white);
  border-radius: 0.75rem;
  padding: 2rem 1.5rem;
  border: 2px solid rgba(91, 138, 90, 0.1);
  transition: all 0.3s ease;
  margin: 1rem 0 2rem 0;
}

.profile-upload-form:hover {
  border-color: var(--rhizome-green);
  background: white;
}

.profile-upload-form label {
  color: var(--rhizome-dark-green);
  font-weight: 600;
  font-size: 1.1rem;
}

.profile-upload-form .form-control-file {
  border: 2px dashed var(--rhizome-green);
  border-radius: 0.5rem;
  padding: 1rem;
  background: rgba(91, 138, 90, 0.05);
  transition: all 0.3s ease;
}

.profile-upload-form .form-control-file:hover {
  border-color: var(--rhizome-gold);
  background: rgba(184, 134, 11, 0.1);
}

.profile-upload-form .btn-primary {
  background: linear-gradient(
    135deg,
    var(--rhizome-green),
    var(--rhizome-dark-green)
  ) !important;
  border: none;
  border-radius: 25px;
  padding: 0.75rem 2rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  box-shadow: 0 4px 15px rgba(91, 138, 90, 0.3);
}

.profile-upload-form .btn-primary:hover {
  background: linear-gradient(
    135deg,
    var(--rhizome-gold),
    var(--rhizome-light-gold)
  ) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(184, 134, 11, 0.4);
}

/* Password Change Form */
.password-change-card {
  border: none;
  border-radius: 1rem;
  box-shadow: 0 8px 30px rgba(184, 134, 11, 0.15);
  background: linear-gradient(145deg, white 0%, #fffef8 100%);
  border-left: 5px solid var(--rhizome-gold);
}

.password-change-card .card-header {
  background: linear-gradient(
    135deg,
    var(--rhizome-gold),
    var(--rhizome-dark-gold)
  ) !important;
  border-radius: 1rem 1rem 0 0 !important;
  border-bottom: 3px solid var(--rhizome-green);
  color: white !important;
  text-align: center;
  padding: 1.5rem;
}

.password-change-card .card-header h4 {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  color: white !important;
}

.password-change-card .card-body {
  padding: 2.5rem 2rem;
}

.password-change-card .form-group label {
  color: var(--rhizome-dark-green);
  font-weight: 600;
}

.password-change-card .form-control {
  border: 2px solid rgba(184, 134, 11, 0.2);
  border-radius: 0.5rem;
  padding: 0.75rem;
}

.password-change-card .form-control:focus {
  border-color: var(--rhizome-gold) !important;
  box-shadow: 0 0 0 0.2rem rgba(184, 134, 11, 0.25) !important;
}

.password-change-card .btn-warning {
  background: linear-gradient(
    135deg,
    var(--rhizome-gold),
    var(--rhizome-light-gold)
  ) !important;
  border: none;
  border-radius: 25px;
  padding: 0.75rem 2rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  box-shadow: 0 4px 15px rgba(184, 134, 11, 0.3);
  color: white !important;
}

.password-change-card .btn-warning:hover {
  background: linear-gradient(
    135deg,
    var(--rhizome-dark-gold),
    var(--rhizome-gold)
  ) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(153, 111, 0, 0.4);
}

/* Enhanced Form Group Styling for Profile Page */
.student-profile-card .form-group,
.password-change-card .form-group {
  margin-bottom: 1.5rem;
}

.student-profile-card .form-group label,
.password-change-card .form-group label {
  font-weight: 600;
  color: var(--rhizome-dark-green);
  margin-bottom: 0.5rem;
  font-size: 1rem;
}

.student-profile-card .form-control-file,
.password-change-card .form-control {
  border: 2px solid rgba(91, 138, 90, 0.2);
  border-radius: 0.5rem;
  padding: 0.75rem 1rem;
  font-size: 1rem;
  transition: all 0.3s ease;
}

.student-profile-card .form-control-file:focus,
.password-change-card .form-control:focus {
  border-color: var(--rhizome-green) !important;
  box-shadow: 0 0 0 0.2rem rgba(91, 138, 90, 0.25) !important;
  outline: none;
}

.student-profile-card .btn,
.password-change-card .btn {
  border-radius: 25px;
  padding: 0.75rem 2rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}

.student-profile-card .btn:hover,
.password-change-card .btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}

/* List Group Styling in Profile */
.student-profile-card .list-group-item {
  border: none;
  background: rgba(91, 138, 90, 0.05);
  margin-bottom: 0.5rem;
  border-radius: 0.5rem;
  padding: 1rem 1.25rem;
  font-weight: 500;
}

.student-profile-card .list-group-item strong {
  color: var(--rhizome-dark-green);
}

/* Profile picture container improvements */
.student-profile-card .text-center {
  position: relative;
}

.student-profile-card .text-center h3 {
  color: var(--rhizome-dark-green);
  font-weight: 700;
  margin-bottom: 0.5rem;
}

.student-profile-card .text-center .text-muted {
  color: var(--rhizome-gray) !important;
  font-size: 1.1rem;
  font-weight: 500;
}

/* Enhanced Admin Dashboard with Mobile Support */
.admin-dashboard-header {
  background: linear-gradient(
    135deg,
    var(--rhizome-green) 0%,
    var(--rhizome-dark-green) 50%,
    var(--rhizome-gold) 100%
  );
  color: white;
  padding: 2rem;
  border-radius: 1rem;
  margin-bottom: 2rem;
  box-shadow: 0 8px 30px rgba(91, 138, 90, 0.3);
  position: relative;
  overflow: hidden;
}

.admin-dashboard-header::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, var(--rhizome-gold) 0%, transparent 70%);
  opacity: 0.3;
}

.admin-dashboard-header h1 {
  font-weight: 700;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  margin: 0;
}

.admin-dashboard-header .btn-warning {
  background: linear-gradient(
    135deg,
    var(--rhizome-gold),
    var(--rhizome-light-gold)
  ) !important;
  border: 2px solid white;
  color: white !important;
  font-weight: 600;
  box-shadow: 0 4px 15px rgba(184, 134, 11, 0.4);
}

.admin-dashboard-header .btn-warning:hover {
  background: linear-gradient(
    135deg,
    var(--rhizome-light-gold),
    var(--rhizome-gold)
  ) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(184, 134, 11, 0.6);
}

/* Mobile Admin Dashboard Header */
@media (max-width: 768px) {
  .admin-dashboard-header {
    padding: 1.5rem 1rem;
    margin-bottom: 1.5rem;
  }

  .admin-dashboard-header .d-flex {
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  .admin-dashboard-header h1 {
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
  }

  .admin-dashboard-header > .d-flex > div:last-child {
    width: 100%;
    margin-top: 1rem;
  }

  .admin-dashboard-header .btn {
    width: 100%;
    margin: 0.25rem 0 !important;
    display: block;
  }
}

@media (max-width: 576px) {
  .admin-dashboard-header {
    padding: 1rem 0.75rem;
  }

  .admin-dashboard-header h1 {
    font-size: 1.3rem;
  }

  .admin-dashboard-header p {
    font-size: 0.9rem;
  }

  .admin-dashboard-header .btn {
    padding: 0.75rem;
    font-size: 0.9rem;
  }
}

/* Stats cards with more gold accents */
.stats-card-warning {
  background: linear-gradient(
    135deg,
    var(--rhizome-gold),
    var(--rhizome-dark-gold)
  ) !important;
  position: relative;
}

.stats-card-warning::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 60px;
  height: 60px;
  background: radial-gradient(
    circle,
    var(--rhizome-light-gold) 0%,
    transparent 70%
  );
  opacity: 0.5;
}

.stats-card-primary {
  background: linear-gradient(
    135deg,
    var(--rhizome-green),
    var(--rhizome-dark-green)
  ) !important;
  border-top: 4px solid var(--rhizome-gold) !important;
}

.stats-card-success {
  background: linear-gradient(
    135deg,
    var(--rhizome-light-green),
    var(--rhizome-green)
  ) !important;
  border-top: 4px solid var(--rhizome-gold) !important;
}

.stats-card-info {
  background: linear-gradient(
    135deg,
    var(--rhizome-green),
    var(--rhizome-dark-green)
  ) !important;
  border-top: 4px solid var(--rhizome-gold) !important;
}

/* === DASHBOARD STATS CARDS TEXT VISIBILITY FIXES === */

/* Ensure stats cards have proper text contrast */
.stats-card {
  position: relative !important;
  overflow: hidden !important;
  border: none !important;
  border-radius: 1rem !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1) !important;
  transition: all 0.3s ease !important;
}

.stats-card.text-white,
.stats-card .text-white {
  color: white !important;
}

/* Primary card (Active Students) */
.stats-card-primary {
  background: linear-gradient(
    135deg,
    var(--rhizome-green) 0%,
    var(--rhizome-dark-green) 100%
  ) !important;
  border-top: 4px solid var(--rhizome-gold) !important;
}

.stats-card-primary .card-body {
  color: white !important;
  background: transparent !important;
}

.stats-card-primary .card-body h2,
.stats-card-primary .card-body p {
  color: white !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3) !important;
}

.stats-card-primary .card-footer {
  background: rgba(255, 255, 255, 0.1) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
  color: white !important;
}

.stats-card-primary .card-footer a {
  color: white !important;
  text-decoration: none !important;
  font-weight: 600 !important;
}

.stats-card-primary .card-footer a:hover {
  color: var(--rhizome-light-gold) !important;
  text-decoration: underline !important;
}

/* Warning card (Pending Approvals) */
.stats-card-warning {
  background: linear-gradient(
    135deg,
    var(--rhizome-gold) 0%,
    var(--rhizome-dark-gold) 100%
  ) !important;
  border-top: 4px solid var(--rhizome-green) !important;
}

.stats-card-warning .card-body {
  color: white !important;
  background: transparent !important;
}

.stats-card-warning .card-body h2,
.stats-card-warning .card-body p {
  color: white !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3) !important;
}

.stats-card-warning .card-footer {
  background: rgba(255, 255, 255, 0.1) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
  color: white !important;
}

.stats-card-warning .card-footer a {
  color: white !important;
  text-decoration: none !important;
  font-weight: 600 !important;
}

.stats-card-warning .card-footer a:hover {
  color: #e8f5e8 !important;
  text-decoration: underline !important;
}

/* Success card (Notes Uploaded) */
.stats-card-success {
  background: linear-gradient(
    135deg,
    var(--rhizome-light-green) 0%,
    var(--rhizome-green) 100%
  ) !important;
  border-top: 4px solid var(--rhizome-gold) !important;
}

.stats-card-success .card-body {
  color: white !important;
  background: transparent !important;
}

.stats-card-success .card-body h2,
.stats-card-success .card-body p {
  color: white !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3) !important;
}

.stats-card-success .card-footer {
  background: rgba(255, 255, 255, 0.1) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
  color: white !important;
}

.stats-card-success .card-footer a {
  color: white !important;
  text-decoration: none !important;
  font-weight: 600 !important;
}

.stats-card-success .card-footer a:hover {
  color: var(--rhizome-light-gold) !important;
  text-decoration: underline !important;
}

/* Info card (Notifications) */
.stats-card-info {
  background: linear-gradient(
    135deg,
    var(--rhizome-green) 0%,
    var(--rhizome-dark-green) 100%
  ) !important;
  border-top: 4px solid var(--rhizome-gold) !important;
}

.stats-card-info .card-body {
  color: white !important;
  background: transparent !important;
}

.stats-card-info .card-body h2,
.stats-card-info .card-body p {
  color: white !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3) !important;
}

.stats-card-info .card-footer {
  background: rgba(255, 255, 255, 0.1) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
  color: white !important;
}

.stats-card-info .card-footer a {
  color: white !important;
  text-decoration: none !important;
  font-weight: 600 !important;
}

.stats-card-info .card-footer a:hover {
  color: var(--rhizome-light-gold) !important;
  text-decoration: underline !important;
}

/* General stats card improvements */
.stats-card:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15) !important;
}

.stats-card .card-body {
  padding: 2rem 1.5rem !important;
  position: relative !important;
  z-index: 2 !important;
}

.stats-card .card-body h2 {
  font-size: 2.5rem !important;
  font-weight: 700 !important;
  margin-bottom: 0.5rem !important;
  line-height: 1 !important;
}

.stats-card .card-body p {
  font-size: 1rem !important;
  font-weight: 500 !important;
  margin-bottom: 0 !important;
  opacity: 0.95 !important;
}

.stats-card .card-footer {
  padding: 1rem 1.5rem !important;
  position: relative !important;
  z-index: 2 !important;
}

.stats-card .card-footer span {
  font-size: 1.2rem !important;
}

/* Mobile responsiveness for stats cards */
@media (max-width: 768px) {
  .stats-card .card-body {
    padding: 1.5rem 1rem !important;
  }

  .stats-card .card-body h2 {
    font-size: 2rem !important;
  }

  .stats-card .card-body p {
    font-size: 0.9rem !important;
  }

  .stats-card .card-footer {
    padding: 0.75rem 1rem !important;
    flex-direction: column !important;
    text-align: center !important;
  }

  .stats-card .card-footer a {
    margin-bottom: 0.5rem !important;
  }
}

/* === GENERAL TEXT VISIBILITY AND CONTRAST FIXES === */

/* Ensure all text is visible and has proper contrast */
body {
  color: #333 !important;
}

/* Card text visibility */
.card {
  background-color: white !important;
  color: #333 !important;
}

.card-body {
  color: #333 !important;
}

.card-title {
  color: var(--rhizome-dark-green) !important;
  font-weight: 600 !important;
}

.card-text {
  color: #555 !important;
}

/* Button text visibility */
.btn {
  text-decoration: none !important;
}

.btn-primary {
  background-color: var(--rhizome-green) !important;
  border-color: var(--rhizome-green) !important;
  color: white !important;
}

.btn-primary:hover {
  background-color: var(--rhizome-dark-green) !important;
  border-color: var(--rhizome-dark-green) !important;
  color: white !important;
}

.btn-secondary {
  background-color: #6c757d !important;
  border-color: #6c757d !important;
  color: white !important;
}

.btn-success {
  background-color: var(--rhizome-light-green) !important;
  border-color: var(--rhizome-light-green) !important;
  color: white !important;
}

.btn-warning {
  background-color: var(--rhizome-gold) !important;
  border-color: var(--rhizome-gold) !important;
  color: white !important;
}

.btn-danger {
  background-color: #dc3545 !important;
  border-color: #dc3545 !important;
  color: white !important;
}

.btn-info {
  background-color: #17a2b8 !important;
  border-color: #17a2b8 !important;
  color: white !important;
}

.btn-light {
  background-color: #f8f9fa !important;
  border-color: #f8f9fa !important;
  color: #333 !important;
}

.btn-dark {
  background-color: #343a40 !important;
  border-color: #343a40 !important;
  color: white !important;
}

/* Table text visibility */
.table {
  color: #333 !important;
  background-color: white !important;
}

.table th {
  color: white !important;
  background-color: var(--rhizome-green) !important;
}

.table td {
  color: #333 !important;
  background-color: white !important;
}

.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(0, 0, 0, 0.05) !important;
}

/* Form text visibility */
.form-control {
  color: #333 !important;
  background-color: white !important;
  border: 1px solid #ced4da !important;
}

.form-control:focus {
  color: #333 !important;
  background-color: white !important;
  border-color: var(--rhizome-green) !important;
}

select.form-control {
  color: #333 !important;
}

label {
  color: var(--rhizome-dark-green) !important;
  font-weight: 600 !important;
}

/* List group text visibility */
.list-group-item {
  color: #333 !important;
  background-color: white !important;
}

.list-group-item:hover {
  background-color: #f8f9fa !important;
}

/* Alert text visibility */
.alert {
  color: #333 !important;
}

.alert-success {
  color: #155724 !important;
  background-color: #d4edda !important;
  border-color: #c3e6cb !important;
}

.alert-danger {
  color: #721c24 !important;
  background-color: #f8d7da !important;
  border-color: #f5c6cb !important;
}

.alert-warning {
  color: #856404 !important;
  background-color: #fff3cd !important;
  border-color: #ffeaa7 !important;
}

.alert-info {
  color: #0c5460 !important;
  background-color: #d1ecf1 !important;
  border-color: #bee5eb !important;
}

/* Badge text visibility */
.badge {
  color: white !important;
}

.badge-primary {
  background-color: var(--rhizome-green) !important;
}

.badge-secondary {
  background-color: #6c757d !important;
}

.badge-success {
  background-color: var(--rhizome-light-green) !important;
}

.badge-warning {
  background-color: var(--rhizome-gold) !important;
}

.badge-danger {
  background-color: #dc3545 !important;
}

.badge-info {
  background-color: #17a2b8 !important;
}

/* Navigation text visibility */
.navbar-nav .nav-link {
  color: white !important;
}

.navbar-nav .nav-link:hover {
  color: var(--rhizome-light-gold) !important;
}

/* Breadcrumb text visibility */
.breadcrumb {
  background-color: transparent !important;
}

.breadcrumb-item {
  color: #6c757d !important;
}

.breadcrumb-item.active {
  color: var(--rhizome-dark-green) !important;
}

/* Dropdown text visibility */
.dropdown-menu {
  background-color: white !important;
  border: 1px solid #dee2e6 !important;
}

.dropdown-item {
  color: #333 !important;
}

.dropdown-item:hover,
.dropdown-item:focus {
  background-color: var(--rhizome-light-gray) !important;
  color: var(--rhizome-dark-green) !important;
}

/* Pagination text visibility */
.page-link {
  color: var(--rhizome-green) !important;
  background-color: white !important;
  border-color: #dee2e6 !important;
}

.page-link:hover {
  color: var(--rhizome-dark-green) !important;
  background-color: var(--rhizome-light-gray) !important;
  border-color: var(--rhizome-green) !important;
}

.page-item.active .page-link {
  background-color: var(--rhizome-green) !important;
  border-color: var(--rhizome-green) !important;
  color: white !important;
}

/* Modal text visibility */
.modal-content {
  background-color: white !important;
  color: #333 !important;
}

.modal-header {
  background-color: var(--rhizome-light-gray) !important;
  color: var(--rhizome-dark-green) !important;
  border-bottom: 1px solid #dee2e6 !important;
}

/* Homepage Button Container - Mobile Responsive */
.btn-container {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  align-items: center;
}

.btn-container .btn {
  min-width: 150px;
  flex: 0 1 auto;
}

/* Mobile styles for homepage buttons */
@media (max-width: 768px) {
  .btn-container {
    flex-direction: column !important;
    width: 100% !important;
    gap: 0.75rem !important;
  }

  .btn-container .btn {
    width: 100% !important;
    min-width: unset !important;
    max-width: 300px !important;
    margin: 0 !important;
    display: block !important;
    text-align: center !important;
    flex: none !important;
  }

  .rhizome-hero {
    padding: 2rem 1rem !important;
  }

  .rhizome-hero .display-4 {
    font-size: 2rem !important;
  }

  .rhizome-hero .lead {
    font-size: 1.1rem !important;
  }
}

@media (max-width: 576px) {
  .btn-container .btn {
    padding: 0.75rem 1rem !important;
    font-size: 1rem !important;
  }

  .rhizome-hero {
    padding: 1.5rem 0.75rem !important;
  }

  .rhizome-hero .display-4 {
    font-size: 1.75rem !important;
  }

  .rhizome-hero .lead {
    font-size: 1rem !important;
  }

/*-----------------
    12. Login
-----------------------*/

.login-body {
    display: table;
    height: 100vh;
    width: 100%;
}

.login-wrapper {
    display: table-cell;
    vertical-align: middle;
}

.loginbox {
    background: #fff;
    border-radius: 10px;
    padding: 30px;
    margin: 0 auto;
    max-width: 450px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

.loginbox .login-right {
    padding: 0;
}

.loginbox .login-right .login-header {
    margin-bottom: 30px;
    text-align: center;
}

.loginbox .login-right .login-header h3 {
    font-size: 22px;
    margin-bottom: 5px;
    font-weight: 600;
    color: #005DAB;
}

.loginbox .form-group {
    margin-bottom: 25px;
}

.loginbox .form-control {
    height: 45px;
    border-radius: 4px;
    border: 1px solid #ddd;
}

.loginbox .btn-primary {
    background: #005DAB;
    border-color: #005DAB;
    width: 100%;
    font-weight: 600;
    font-size: 16px;
    padding: 10px;
    border-radius: 4px;
}

.loginbox .btn-primary:hover {
    background: #18aefa;
    border-color: #18aefa;
}

.loginbox .forgot-link {
    display: block;
    text-align: right;
    margin-top: 10px;
    color: #005DAB;
    font-size: 14px;
}

.loginbox .forgot-link:hover {
    text-decoration: underline;
}


}
