:root {
  --primary: #0992C8;
  --primary-light: #0BB2F4;
  --secondary: #63CEF8;
  --accent: #8FDBFA;
  --accent-light: #BBE9FC;
  --gray: #DADCDC;
  --light: #F2F2F3;
}

/* Reset and base styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
  line-height: 1.6;
  color: #333;
  background-color: var(--light);
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
  color: var(--primary);
  margin-bottom: 1rem;
  font-weight: 600;
}

/* Buttons */
.btn {
  display: inline-block;
  padding: 0.5rem 1.5rem;
  border-radius: 6px;
  border: none;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s ease;
}

.btn-primary {
  background-color: var(--primary);
  color: white;
}

.btn-primary:hover {
  background-color: var(--primary-light);
}

.btn-secondary {
  background-color: var(--secondary);
  color: white;
}

.btn-secondary:hover {
  background-color: var(--accent);
}

/* Forms */
.form-group {
  margin-bottom: 1.5rem;
}

.form-control {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--gray);
  border-radius: 6px;
  transition: border-color 0.3s ease;
}

.form-control:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(9, 146, 200, 0.1);
}

/* Tables */
.table {
  width: 100%;
  border-collapse: collapse;
  margin: 1rem 0;
  background: white;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.table th {
  background-color: var(--primary);
  color: white;
  font-weight: 500;
  text-align: left;
  padding: 1rem;
}

.table td {
  padding: 1rem;
  border-bottom: 1px solid var(--gray);
}

.table tr:hover {
  background-color: var(--light);
}

/* Cards */
.card {
  background: white;
  border-radius: 8px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Navigation */
.navbar {
  background-color: white;
  padding: 1rem 2rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.navbar-brand {
  color: var(--primary);
  font-size: 1.5rem;
  font-weight: 600;
  text-decoration: none;
}

.nav-link {
  color: #333;
  text-decoration: none;
  padding: 0.5rem 1rem;
  transition: color 0.3s ease;
}

.nav-link:hover {
  color: var(--primary);
}

/* Grid System */
.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1rem;
}

.row {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -1rem;
}

.col {
  flex: 1;
  padding: 0 1rem;
}

/* Responsive Design */
@media (max-width: 768px) {
  .col {
    flex: 0 0 100%;
    max-width: 100%;
  }
  
  .table {
    display: block;
    overflow-x: auto;
  }
  
  .navbar {
    padding: 1rem;
  }
}

/* Utilities */
.mt-3 { margin-top: 1rem; }
.mb-3 { margin-bottom: 1rem; }
.p-3 { padding: 1rem; }
.text-center { text-align: center; }
.text-primary { color: var(--primary); }
.bg-light { background-color: var(--light); }
.bg-primary { background-color: var(--primary); color: white; }
.bg-secondary { background-color: var(--secondary); color: white; }

/* Alert Messages */
.alert {
  padding: 1rem;
  border-radius: 6px;
  margin-bottom: 1rem;
}

.alert-success {
  /* Ajuste: tono verde más claro y contraste mejor */
  background-color: #eafaf1; /* fondo verde muy claro */
  color: #1e7e34; /* texto verde oscuro legible */
  border: 1px solid #28a745; /* borde verde vibrante */
}

.alert-error {
  background-color: #ffe5e5;
  color: #d00;
  border: 1px solid #ffcccc;
}