/* static/css/style.css */

/* 1. Import Google Font */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* 2. Variables de tema */
:root {
  /* Colores */
  --color-primary: #5c6ac4;
  --color-primary-hover: #4f5bc1;
  --color-secondary: #10b981;
  --color-secondary-hover: #0ea46b;
  --color-bg: #f4f6f9;
  --color-white: #ffffff;
  --color-dark: #1e293b;
  --color-light: #e2e8f0;

  /* Tipografía */
  --font-family-base: 'Inter', sans-serif;

  /* Espaciados */
  --spacing-xs: 0.25rem;
  --spacing-sm: 0.5rem;
  --spacing-md: 1rem;
  --spacing-lg: 1.5rem;

  /* Bordes & sombras */
  --border-radius: 0.75rem;
  --shadow-sm: 0 2px 4px rgba(0,0,0,0.05);
  --shadow-md: 0 4px 8px rgba(0,0,0,0.1);
}

/* 3. Reset y estilo base */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body {
  font-family: var(--font-family-base);
  background-color: var(--color-bg);
  color: var(--color-dark);
  line-height: 1.6;
}
a {
  text-decoration: none;
  color: inherit;
}

/* 4. Header y Navbar */
header {
  background: var(--color-white);
  box-shadow: var(--shadow-sm);
  padding: 0.5rem 0;
  margin-bottom: var(--spacing-lg);
}
header h1 {
  font-weight: 600;
}
nav {
  margin-top: var(--spacing-sm);
}
nav a {
  display: inline-block;
  margin-right: var(--spacing-md);
  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: var(--border-radius);
  transition: background-color .2s, transform .2s;
}
nav a:hover {
  background-color: var(--color-light);
  transform: translateY(-2px);
}

/* 5. Botones estilo .btn */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-primary);
  color: var(--color-white);
  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: var(--border-radius);
  box-shadow: var(--shadow-md);
  font-weight: 500;
  transition: background-color .2s, transform .2s, box-shadow .2s;
}
.btn:hover {
  background-color: var(--color-primary-hover);
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
}
.btn-secondary {
  background-color: var(--color-secondary);
}
.btn-secondary:hover {
  background-color: var(--color-secondary-hover);
}
.btn .fa {
  margin-right: var(--spacing-xs);
}

/* 6. Contenedor principal */
main {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--spacing-md) var(--spacing-lg);
}

/* 7. Estilos genéricos para tablas */
table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 0.5rem;
  margin-bottom: var(--spacing-lg);
}
thead th {
  background-color: var(--color-primary);
  color: var(--color-white);
  font-weight: 600;
  padding: var(--spacing-sm) var(--spacing-md);
  border: none;
}
tbody tr {
  background-color: var(--color-white);
  box-shadow: var(--shadow-sm);
  transition: transform .2s;
}
tbody tr:hover {
  transform: translateY(-2px);
}
td {
  padding: var(--spacing-sm) var(--spacing-md);
  border: none;
}

/* 8. Formularios */
input[type="text"],
input[type="date"],
select {
  width: 100%;
  padding: var(--spacing-sm) var(--spacing-md);
  border: 1px solid var(--color-light);
  border-radius: var(--border-radius);
  transition: border-color .2s, box-shadow .2s;
}
input:focus,
select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(92,106,196,0.2);
}

/* 9. Footer */
footer {
  background-color: var(--color-white);
  text-align: center;
  padding: var(--spacing-md) 0;
  box-shadow: var(--shadow-sm);
  margin-top: var(--spacing-lg);
}

/* 10. Tabla de Ingredientes específica */
.table-container {
  width: 100%;
  overflow-x: auto;
  margin-bottom: var(--spacing-lg);
}
#ingredient-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 0.5rem;
  table-layout: auto;
}
#ingredient-table th,
#ingredient-table td {
  padding: 0.75rem 1rem;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  border: none;
}
#ingredient-table thead th {
  position: sticky;
  top: 0;
  background-color: var(--color-primary);
  color: var(--color-white);
  font-weight: 600;
  z-index: 1;
}
#ingredient-table tbody tr:nth-child(even) {
  background-color: var(--color-light);
}
#ingredient-table tbody tr:hover {
  transform: translateY(-2px);
  background-color: var(--color-secondary);
  color: var(--color-white);
}
#ingredient-table th:first-child,
#ingredient-table td:first-child {
  min-width: 200px;
  text-align: left;
}
#ingredient-table input,
#ingredient-table select {
  width: 100%;
  box-sizing: border-box;
  padding: 0.4rem 0.6rem;
  border: 1px solid var(--color-light);
  border-radius: var(--border-radius);
}
#ingredient-table button {
  background-color: var(--color-secondary);
  color: var(--color-white);
  border: none;
  padding: 0.4rem 0.8rem;
  border-radius: var(--border-radius);
  box-shadow: var(--shadow-md);
  font-size: 1rem;
  transition: background-color .2s, transform .2s;
}
#ingredient-table button:hover {
  background-color: var(--color-secondary-hover);
  transform: translateY(-1px);
}

/* 11. Botón “Guardar cambios” */
.btn-save {
  display: inline-block;
  background-color: var(--color-secondary);
  color: var(--color-white);
  padding: 0.6rem 1.2rem;
  border: none;
  border-radius: var(--border-radius);
  box-shadow: var(--shadow-md);
  font-size: 1rem;
  margin-top: var(--spacing-md);
  transition: background-color .2s, transform .2s;
}
.btn-save:hover {
  background-color: var(--color-secondary-hover);
  transform: translateY(-2px);
}

/* 12. Botón “Agregar preparación” */
.btn-new-prep {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #ff7e5f, #feb47b);
  color: var(--color-white);
  padding: 0.4rem 0.8rem;
  margin: var(--spacing-sm) 0;
  border: none;
  border-radius: var(--border-radius);
  box-shadow: var(--shadow-md);
  font-size: 0.95rem;
  font-weight: 600;
  transition: background .2s, transform .2s, box-shadow .2s;
}
.btn-new-prep i {
  margin-right: 0.4rem;
}
.btn-new-prep:hover {
  transform: translateY(-1px);
  box-shadow: 0 5px 14px rgba(0,0,0,0.2);
}

/* 13. Botón “+” genérico verde (.btn-add) */
.btn-add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--color-secondary), #3ddc97);
  color: var(--color-white);
  padding: 0.4rem 0.8rem;
  border: none;
  border-radius: var(--border-radius);
  box-shadow: var(--shadow-md);
  font-size: 1rem;
  transition: background .2s, transform .2s, box-shadow .2s;
}
.btn-add i {
  margin-right: 0.4rem;
}
.btn-add:hover {
  background-color: var(--color-secondary-hover);
  background-image: none;
  transform: translateY(-1px);
  box-shadow: 0 5px 14px rgba(0,0,0,0.2);
}
.logo-header {
    max-width: 200px;
    height: auto;
    margin-bottom: 1rem;
  }

  /* Mensajes de Django */
.messages-container {
    margin-bottom: 1rem;
  }
  .alert {
    padding: 0.75rem 1rem;
    border-radius: var(--border-radius);
    margin-bottom: 0.5rem;
    font-weight: 500;
  }
  /* Éxito: verde claro */
  .alert-success {
    background-color: #d1fae5;
    color: #065f46;
    border: 1px solid #a7f3d0;
  }
  /* Error: rojo claro */
  .alert-error {
    background-color: #fee2e2;
    color: #991b1b;
    border: 1px solid #fecaca;
  }

  /* Mensaje de error de Django en rojo */
.alert.alert-error {
    background-color: #f8d7da;   /* rojo pálido de fondo */
    color: #721c24;              /* rojo oscuro de texto */
    border: 1px solid #f5c6cb;   /* borde ligeramente más oscuro */
    padding: 0.75rem 1rem;
    border-radius: var(--border-radius);
    margin-bottom: 0.5rem;
  }
  .alert.alert-danger {
    background-color: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
  }


  input[type="number"],
  .input-number-modern {
    width: 100%;
    max-width: 180px;
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: 1rem;
    font-weight: 500;
    border: 2px solid var(--color-light);
    border-radius: var(--border-radius);
    background-color: var(--color-white);
    color: var(--color-dark);
    text-align: center;
    transition: border-color .2s, box-shadow .2s;
    /* quitar flechitas nativas */
    -moz-appearance: textfield;
  }
  input[type="number"]::-webkit-inner-spin-button,
  input[type="number"]::-webkit-outer-spin-button,
  .input-number-modern::-webkit-inner-spin-button,
  .input-number-modern::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
  }
  input[type="number"]:focus,
  .input-number-modern:focus {
    outline: none;
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(16,185,129,0.2);
  }


  /* Botón “Volver” más sutil y con espacio */
.btn-back-link {
    display: inline-block;
    margin-top: var(--spacing-lg);    /* separa del botón principal */
    color: var(--color-primary);
    font-weight: 500;
    text-decoration: none;
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: var(--border-radius);
    transition: color .2s, background-color .2s;
  }
  .btn-back-link:hover {
    color: var(--color-primary-hover);
    background-color: rgba(92,106,196,0.1);
  }


  form select {
    margin-bottom: var(--spacing-md);
  }
  .input-number-modern {
    margin-top: var(--spacing-md);
    margin-bottom: var(--spacing-md);
  }

/* Botón ligero para descarga Excel */
.btn-excel {
    display: inline-flex;
    align-items: center;
    margin-left: var(--spacing-sm);
    text-decoration: none;
    color: var(--color-primary);
    font-weight: 500;
    transition: color .2s;
  }
  .btn-excel:hover {
    color: var(--color-primary-hover);
  }
  
  /* Icono de Excel */
  .excel-icon {
    width: 1.5rem;   /* aprox. 24px */
    height: auto;
    margin-right: var(--spacing-xs);
    vertical-align: middle;
  }

  .excel-icon {
    width: 1.25rem;
  }

  .login-container input[type="text"],
.login-container input[type="password"] {
  width: 100%;
  padding: var(--spacing-sm) var(--spacing-md);
  margin-bottom: var(--spacing-md);
  border: 2px solid var(--color-light);
  border-radius: var(--border-radius);
  background-color: var(--color-white);
  font-size: 1rem;
  transition: border-color .2s, box-shadow .2s;
}

.login-container input[type="text"]:focus,
.login-container input[type="password"]:focus {
  outline: none;
  border-color: var(--color-secondary);
  box-shadow: 0 0 0 3px rgba(16,185,129,0.2);
}

/* Ajuste del toggle de contraseña para no pisar el input */
.login-container .password-toggle {
  top: 50%;
  right: 1rem;
  transform: translateY(-50%);
}
.login-container .position-relative {
  position: relative;
}

/* estilo unificado para ambos inputs de login */
.login-input {
    width: 100%;
    padding: var(--spacing-sm) var(--spacing-md);
    margin-bottom: var(--spacing-md);
    border: 2px solid var(--color-light);
    border-radius: var(--border-radius);
    background-color: var(--color-white);
    font-size: 1rem;
    transition: border-color .2s, box-shadow .2s;
  }
  
  .login-input:focus {
    outline: none;
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(16,185,129,0.2);
  }

/* static/css/style.css */

/* static/css/style.css */

.btn-icon {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
  }
  
  .btn-icon .fa-xmark {
    color: #e74c3c;
    font-size: 1.25rem;
    transition: color 0.2s ease;
  }
  
  .btn-icon .fa-xmark:hover {
    color: #c0392b;
  }

  #header .branding h1 {
    background: url('/static/images/logocdi.jpg') no-repeat left center;
    background-size: 30px auto;
    padding-left: 40px;
    font-weight: bold;
    color: #fff;
}

  #add-group-btn {
    background-color: #28a745 !important;  /* Verde Bootstrap */
    color: white !important;
    padding: 4px 12px;
    border: none;
    border-radius: 4px;
  }

/* Ajustes de columna del botón + */
#ingredient-table th.col-button-add,
#ingredient-table td.col-button-add {
  width: 40px;
  min-width: 40px;
  max-width: 40px;
  padding: 0;
  text-align: center;
}

/* Botón circular + (uniforme y centrado) */
.btn-circle {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: var(--color-secondary);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  border: none;
  box-shadow: var(--shadow-md);
  transition: background-color 0.2s, transform 0.2s;
  margin: auto;
}

.btn-circle:hover {
  background-color: var(--color-secondary-hover);
  transform: translateY(-1px);
}

/* --- Columnas del botón y del ingrediente --- */
.col-button-add {
  width: 40px;
  min-width: 40px;
  max-width: 40px;
  text-align: center;
  padding: 0.3rem;
}
.col-ingrediente {
  min-width: 200px;
  max-width: 300px;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Animación de rotación en hover para botones "+" */
.btn-circle i {
  transition: transform 0.3s ease;
}

.btn-circle:hover i {
  transform: rotate(90deg);
}

/* Botón circular rojo para eliminar */
.btn-circle.btn-remove-row {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: #e74c3c;
  color: white;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  border: none;
  box-shadow: var(--shadow-md);
  transition: background-color 0.2s, transform 0.2s;
}

.btn-circle.btn-remove-row:hover {
  background-color: #c0392b;
  transform: scale(1.05) rotate(-10deg);
}

.btn-circle.btn-remove-row i {
  transition: transform 0.3s ease;
}

.btn-circle.btn-remove-row:hover i {
  transform: rotate(-90deg);
}

--------------------acordeon personalizado--------------------
.custom-accordion {
  margin-top: 1rem;
  border: 1px solid #ccc;
  border-radius: 5px;
  background: #f7f7f7;
  padding: 0;
  overflow: hidden;
}

.custom-accordion-toggle {
  background-color: #e6e6e6;
  color: #333;
  padding: 10px 15px;
  font-size: 16px;
  text-align: left;
  width: 100%;
  border: none;
  cursor: pointer;
  transition: background 0.3s ease;
}

.custom-accordion-toggle:hover {
  background-color: #ddd;
}

.custom-accordion-content {
  display: none;
  padding: 15px;
  background-color: #ffffff;
}

.custom-accordion-content.show {
  display: block;
}

---------------------------botón copied---------------------------
.copy-menu-form {
  display: flex;
  gap: 1rem;
  align-items: center;  /* centra verticalmente todos los hijos */
}

/* cada select dentro de su div en columna */
.copy-menu-form > div {
  display: flex;
  flex-direction: column;
}

/* evitar que el último div (contenedor del botón) se expanda */
.copy-menu-form > div:last-child {
  justify-content: center;
  flex: 0 0 auto;
}

/* selects y botón como inline-block, sin márgenes extra */
.copy-menu-form select,
.copy-menu-form button {
  display: inline-block;
  vertical-align: middle;
  margin: 0;
}

/* estilo del botón */
.copy-menu-form button {
  width: auto;
  background: linear-gradient(135deg, #28a745, #218838);
  border: none;
  color: white;
  font-weight: 600;
  padding: 10px 20px;
  font-size: 16px;
  border-radius: 6px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transition: all 0.2s ease-in-out;


  margin: 1rem auto 0;  
}

.copy-menu-form button:hover {
  background: linear-gradient(135deg, #218838, #1e7e34);
  transform: scale(1.03);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}

.pagination-container {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-top: 1rem;
  font-size: 0.9rem;
}

.pagination-info {
  color: #6c757d;
}

.pagination-list {
  list-style: none;
  display: flex;
  padding: 0;
  margin: 0;
}

.pagination-item {
  margin: 0 0.25rem;
}

.pagination-link, .pagination-item > span {
  display: block;
  padding: 0.3rem 0.6rem;
  text-decoration: none;
  border-radius: 0.25rem;
}

.pagination-link {
  color: #007bff;
}

.pagination-link:hover {
  background-color: #e9ecef;
}

.pagination-item.active .pagination-link,
.pagination-item.active > span {
  background-color: #007bff;
  color: #fff;
}

.pagination-item.disabled .pagination-link,
.pagination-item.disabled > span {
  color: #6c757d;
  cursor: default;
}

.switch {
  position: relative;
  display: inline-block;
  width: 50px;
  height: 24px;
  vertical-align: middle;
}

/* Oculta el checkbox original */
.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

/* Fondo del toggle */
.switch .slider {
  position: absolute;
  cursor: pointer;
  top: 0; left: 0; right: 0; bottom: 0;
  background-color: #ccc;
  transition: background-color 0.3s;
  border-radius: 24px;
}

/* El “thumb” redondo */
.switch .slider::before {
  content: "";
  position: absolute;
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  transition: transform 0.3s;
  border-radius: 50%;
}

/* Estado “checked” */
.switch input:checked + .slider {
  background-color: #4caf50;
}
.switch input:checked + .slider::before {
  transform: translateX(26px);
}

/* Focus ring opcional */
.switch input:focus + .slider {
  box-shadow: 0 0 2px #4caf50;
}

/* Etiqueta al lado */
.switch + label {
  margin-left: 8px;
  cursor: pointer;
  vertical-align: middle;
  font-weight: 500;
}

/* ===== Modern Duplicate Button ===== */
.btn-duplicate {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background: linear-gradient(135deg, #6c63ff 0%, #3f3dff 100%);
  color: #fff;
  font-size: 1rem;
  font-weight: 500;
  border: none;
  border-radius: 0.4rem;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  transition: background 0.3s ease, transform 0.1s ease;
}

.btn-duplicate i {
  font-size: 1.1rem;
}

/* Hover / Focus */
.btn-duplicate:hover,
.btn-duplicate:focus {
  background: linear-gradient(135deg, #7e77ff 0%, #5a57ff 100%);
  transform: translateY(-2px);
  outline: none;
}

/* Active */
.btn-duplicate:active {
  transform: translateY(0);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

/* Disabled */
.btn-duplicate:disabled {
  background: #ccc;
  color: #666;
  cursor: not-allowed;
  box-shadow: none;
}

/* ========== Centro y backdrop para el modal ========== */
dialog#duplicate-modal.modal {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 90%;
  width: 360px;
  padding: 1.5rem;
  border: none;
  border-radius: 0.5rem;
  background: #fff;
  box-shadow: 0 8px 16px rgba(0,0,0,0.25);
  z-index: 1000;
}

/* color semitransparente detrás del modal */
dialog#duplicate-modal.modal::backdrop {
  background-color: rgba(0,0,0,0.5);
}

/* pequeños ajustes internos */
dialog#duplicate-modal.modal h3 {
  margin-top: 0;
}
dialog#duplicate-modal.modal .modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 1rem;
}

/* ===== Estilo moderno para “Cancelar” ===== */
#cancel-duplicate {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1rem;
  font-size: 0.9rem;
  font-weight: 500;
  color: #666;
  background-color: transparent;
  border: 1px solid #ccc;
  border-radius: 0.375rem;
  cursor: pointer;
  transition: 
    background-color 0.2s ease, 
    border-color 0.2s ease, 
    color 0.2s ease,
    transform 0.1s ease;
}

#cancel-duplicate:hover {
  background-color: #f5f5f5;
  border-color: #bbb;
  color: #333;
}

#cancel-duplicate:active {
  transform: scale(0.97);
}

#cancel-duplicate:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(100, 150, 250, 0.4);
}


.table-responsive {
  width: 100vw !important;
  min-width: 1100px;
  max-width: 99vw;
  margin-left: 50%;
  transform: translateX(-50%);
  background: #fff;
  border-radius: 15px;
  overflow-x: auto;
  box-shadow: 0 6px 30px 0 rgba(70,130,180,0.10);
  padding: 8px 0 18px 0;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  position: relative;
}

/* -- Sombras para indicar más contenido a los lados -- */
.table-responsive::before,
.table-responsive::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 18px;
  pointer-events: none;
  z-index: 10;
  transition: opacity 0.23s;
  opacity: 0;
}
.table-responsive::before {
  left: 0;
  background: linear-gradient(to right, #fff 60%, rgba(87,95,214,0.13) 100%);
}
.table-responsive::after {
  right: 0;
  background: linear-gradient(to left, #fff 60%, rgba(87,95,214,0.13) 100%);
}
.table-responsive.scroll-left::before { opacity: 1; }
.table-responsive.scroll-right::after { opacity: 1; }

/* Scrollbar personalizado */
.table-responsive::-webkit-scrollbar {
  height: 10px;
  background: #f0f6fa;
  border-radius: 5px;
}
.table-responsive::-webkit-scrollbar-thumb {
  background: #c9daf9;
  border-radius: 5px;
}

/* Responsive para pantallas chicas */
@media (max-width: 900px) {
  .table-responsive {
    min-width: 320px;
    width: 100vw !important;
    max-width: 100vw;
    margin-left: 0;
    transform: none;
    border-radius: 8px;
    padding: 2px 0 8px 0;
  }
  .table th, .table td {
    font-size: 0.95em;
    padding: 8px 8px;
  }
}

/* Limite de ancho grande en desktop muy anchos */
@media (min-width: 1600px) {
  .table-responsive {
    max-width: 1400px;
  }
}

.table {
  border-radius: 10px;
  overflow: hidden;
  border-collapse: separate;
  border-spacing: 0;
  box-shadow: 0 1px 12px 0 rgba(90,140,200,0.04);
}

.table th, .table td {
  white-space: nowrap;
  padding: 10px 18px;
  text-align: center;
  font-size: 0.98em;
  border: none;
}

.table th {
  background: #575fd6;
  color: #fff;
  font-weight: 600;
}

.table tr:nth-child(even) {
  background: #f5f8fc;
}

.table tr:hover {
  background: #e8f0fa;
}

.table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
}


.section-toggle-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 0.8rem;
}

.section-toggle-icon {
  background: #fff;
  border: 2px solid var(--color-primary);
  color: var(--color-primary);
  border-radius: 50%;
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 
    background 0.2s, 
    box-shadow 0.18s, 
    border-color 0.18s, 
    transform 0.18s;
  cursor: pointer;
  font-size: 1.35rem;
  box-shadow: 0 2px 12px 0 rgba(92,106,196,0.08);
  outline: none;
}

.section-toggle-icon:focus,
.section-toggle-icon:hover {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary-hover);
  transform: scale(1.1) rotate(8deg);
  box-shadow: 0 4px 18px 0 rgba(92,106,196,0.16);
}

.icon-chevron {
  display: inline-block;
  font-size: 1.5rem;
  transition: transform 0.22s cubic-bezier(.5,1.5,.8,1);
  user-select: none;
}

.section-content[style*="display: none"] + .section-toggle-row .icon-chevron,
.section-toggle-icon.collapsed .icon-chevron {
  transform: rotate(-90deg);
}

/* Optional: Style title */
.section-title {
  font-size: 1.08rem;
  font-weight: 600;
  color: #2a3556;
  letter-spacing: 0.01em;
}

.d-flex.gap-2 > form,
.d-flex.gap-2 > a,
.d-flex.gap-2 > button {
  display: inline-block !important;
  margin-bottom: 0 !important;
  vertical-align: middle;
}

/* Elimina el margen superior del btn-danger si lo tuviera */
.btn-danger {
  margin-top: 0 !important;
}

.btn-modern-danger {
    background: linear-gradient(90deg, #ef4444 0%, #dc2626 100%);
    color: #fff;
    font-weight: 600;
    border: none;
    box-shadow: 0 2px 8px rgba(239,68,68,0.08);
    transition: 
        background 0.22s,
        box-shadow 0.22s,
        transform 0.12s,
        filter 0.14s;
    padding: 0.6rem 1.35rem;
    border-radius: var(--border-radius);
    font-size: 1rem;
    margin: 0;
    outline: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.btn-modern-danger:hover,
.btn-modern-danger:focus {
    background: linear-gradient(90deg, #dc2626 0%, #b91c1c 100%);
    filter: brightness(1.05) saturate(1.2);
    box-shadow: 0 4px 14px 0 rgba(220,38,38,0.12);
    transform: translateY(-2px) scale(1.03);
}

.btn-modern-danger:active {
    background: linear-gradient(90deg, #b91c1c 0%, #991b1b 100%);
    filter: brightness(0.98) saturate(1.05);
    transform: scale(0.98);
}

.btn-modern-danger i {
    font-size: 1.12rem;
    color: #fff;
}