/* SIPEDU Theme: Modern, accessible color system */
:root {
  --color-primary: #22c55e; /* green */
  --color-primary-600: #16a34a;
  --color-primary-700: #15803d;
  --color-accent: #0ea5a7;  /* teal */
  --color-secondary: #64748b; /* slate */
  --color-success: #22c55e;
  --color-danger: #ef4444;
  --color-warning: #f59e0b;
  --color-info: #0ea5e9;
  --color-text: #1f2937; /* gray-800 */
  --color-text-muted: #6b7280;
  --color-surface: #ffffff;
  --color-surface-muted: #f8fafc;
  --color-border: #e5e7eb;
}

/* Text & links */
body { color: var(--color-text); }
a { color: var(--color-accent); }
a:hover { color: #0b8191; }

/* Buttons */
.btn-primary {
  background-image: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-600) 100%);
  border-color: var(--color-primary-600);
  color: #fff;
}
.btn-primary:hover {
  background-image: linear-gradient(135deg, #2dd16f 0%, var(--color-primary) 100%);
  border-color: var(--color-primary);
}
.btn-primary:focus, .btn-primary:active {
  box-shadow: 0 0 0 .2rem rgba(34, 197, 94, .3) !important;
}

.btn-success { background-color: var(--color-success); border-color: var(--color-primary-600); }
.btn-success:hover { background-color: var(--color-primary-600); border-color: var(--color-primary-700); }

.btn-outline-secondary { color: var(--color-secondary); border-color: var(--color-secondary); }
.btn-outline-secondary:hover { color: #fff; background-color: var(--color-secondary); border-color: var(--color-secondary); }

/* Forms */
.form-control:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 .2rem rgba(34, 197, 94, .25);
}

/* Alerts (soft backgrounds) */
.alert-primary { background-color: rgba(14, 165, 233, .12); color: #0369a1; border-color: rgba(14,165,233,.28); }
.alert-success { background-color: rgba(34, 197, 94, .12); color: #14532d; border-color: rgba(34,197,94,.28); }
.alert-danger  { background-color: rgba(239, 68, 68, .12); color: #7f1d1d; border-color: rgba(239,68,68,.28); }
.alert-warning { background-color: rgba(245, 158, 11, .12); color: #78350f; border-color: rgba(245,158,11,.28); }
.alert-info    { background-color: rgba(14, 165, 233, .12); color: #075985; border-color: rgba(14,165,233,.28); }

/* Badges */
.badge-primary, .bg-primary { background-color: var(--color-primary) !important; }
.badge-success, .bg-success { background-color: var(--color-success) !important; }
.badge-info, .bg-info { background-color: var(--color-info) !important; }
.badge-danger, .bg-danger { background-color: var(--color-danger) !important; }
.badge-warning, .bg-warning { background-color: var(--color-warning) !important; color: #111; }
.badge-soft { background: #eefcf4; color: var(--color-primary-600); border: 1px solid #bfe8d3; }

/* Cards & headers */
.card-header { background-color: var(--color-surface); border-bottom: 1px solid var(--color-border); }

/* Tables: colorful, legible defaults for all tables */
.table thead th {
  background: linear-gradient(180deg, #f0fdf4 0%, #ecfdf5 100%);
  color: #14532d;
  border-bottom: 2px solid #bbf7d0;
  font-weight: 700;
}
.table td, .table th { vertical-align: middle; border-color: var(--color-border); }
.table { color: var(--color-text); }
/* Zebra stripes enabled by default for better readability */
.table tbody tr:nth-of-type(odd) { background-color: #fafafa; }
.table-striped tbody tr:nth-of-type(odd) { background-color: #f8fafc; }
.table-hover tbody tr:hover { background-color: #f0fdf4; }
.table-bordered { border-color: var(--color-border); }
.table-bordered td, .table-bordered th { border-color: var(--color-border); }

/* DataTables split head table should match header style */
.dataTables_scrollHead thead th {
  background: linear-gradient(180deg, #f0fdf4 0%, #ecfdf5 100%);
  color: #14532d;
  border-bottom: 2px solid #bbf7d0;
  font-weight: 700;
}

/* Sidebar: keep defaults (no global override of active state) */

/* DataTables controls */
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 6px 10px;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-600) 100%) !important;
  color: #fff !important;
  border-color: var(--color-primary-600) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  background: #ecfdf5 !important; color: #14532d !important;
}

/* Navbar and footer accents */
.main-header, .main-footer { border-color: var(--color-border); }

/* Custom components */
.logout-button { color: var(--color-primary-700); background-color: rgba(34, 197, 94, .10); }
.logout-button:hover { background-color: var(--color-primary-600); color: #fff; }
.user-info { background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-700) 100%) !important; }
/* Keep quick action area separated and visible */
.sidebar-quick { background: var(--color-surface); border-bottom: 1px solid var(--color-border); }

/* Sidebar: keep previous look; let inline CSS manage bottom space */
.menu-area { padding: 8px 10px; }
