/* ========== Pastel UI – global ========== */
:root{
  --p-bg:        #f8fbfd;
  --p-card:      #ffffff;
  --p-primary:   #a9d7e8;
  --p-primary-2: #8ec9db;
  --p-success:   #b8e0c7;
  --p-danger:    #f7c7c7;
  --p-accent:    #f8e3a8;
  --p-lilac:     #d7c3f1;
  --p-rose:      #f7d6e0;
  --p-mint:      #cfeee3;
  --p-sky:       #d6ecfa;
  --text-dark:   #233238;
  --text-soft:   #6b7b83;
  --shadow-soft: 0 6px 16px rgba(0,0,0,.07);
}

html, body{
  background: linear-gradient(180deg, var(--p-sky) 0%, var(--p-bg) 100%);
  color: var(--text-dark);
}

/* Navbar */
.navbar{
  background: linear-gradient(135deg, var(--p-primary), var(--p-mint)) !important;
  box-shadow: var(--shadow-soft);
}
.navbar .nav-link, .navbar .navbar-brand { color: #19353e !important; font-weight: 700; }
.navbar .dropdown-menu{ border: 0; border-radius: 12px; box-shadow: var(--shadow-soft); }

/* Cards */
.card{
  border: 0; border-radius: 18px; overflow: hidden; box-shadow: var(--shadow-soft);
  background: #fff;
}
.card-header{
  background: linear-gradient(135deg, var(--p-primary), var(--p-accent));
  border-bottom: 0;
}

/* Buttons */
.btn-pastel-primary{
  background: linear-gradient(135deg, var(--p-primary-2), var(--p-mint));
  border: 0; color: #13323b; font-weight: 700; border-radius: 12px;
  padding: .55rem .9rem; box-shadow: var(--shadow-soft);
  transition: transform .12s ease, filter .12s ease;
}
.btn-pastel-primary:hover{ filter: brightness(1.04); transform: translateY(-1px); }

.btn-pastel-danger{
  background: linear-gradient(135deg, var(--p-danger), #ffd6d6);
  border: 0; color: #6a2222; font-weight: 700; border-radius: 12px;
  padding: .55rem .9rem; box-shadow: var(--shadow-soft);
  transition: transform .12s ease, filter .12s ease;
}
.btn-pastel-danger:hover{ filter: brightness(1.02); transform: translateY(-1px); }

/* Forms */
.form-control{
  border-radius: 12px; border-color: var(--p-primary-2);
}
.form-control:focus{
  box-shadow: 0 0 0 .2rem rgba(137,196,213,.25);
  border-color: var(--p-primary-2);
}

/* Switch */
.custom-control-input:checked~.custom-control-label::before{
  border-color: var(--p-success);
  background-color: var(--p-success);
}
.custom-control-label::before{
  background-color: #eef7fb; border: 1px solid var(--p-primary-2);
}

/* Alerts */
.alert-info{
  background: var(--p-sky); color: #0e4960; border: 0; border-radius: 12px;
}
.alert-danger{
  background: var(--p-danger); color: #6a2222; border: 0; border-radius: 12px;
}

/* Modals */
.modal-content{ border: 0; border-radius: 16px; box-shadow: var(--shadow-soft); }
.modal-header{
  background: linear-gradient(135deg, var(--p-primary), var(--p-lilac));
  border-bottom: 0; color: #21343a;
}

/* DataTables – aspecto */
.table-pastel{
  background: #fff; border-radius: 12px; overflow: hidden;
}
.table-pastel thead th{
  background: linear-gradient(135deg, var(--p-primary), var(--p-accent));
  color: #21343a; border: 0 !important;
}
.table-pastel td, .table-pastel th{ border-color: rgba(0,0,0,.05) !important; }
.table-striped.table-pastel tbody tr:nth-of-type(odd){ background: #fcfeff; }
.table-hover.table-pastel tbody tr:hover{ background: #f9fdff; }

/* DataTables – paginación y buscador */
.dataTables_wrapper .dataTables_filter input{
  border-radius: 12px; border: 1px solid var(--p-primary-2); padding: .35rem .6rem;
}
.dataTables_wrapper .dataTables_paginate .paginate_button{
  border-radius: 10px !important; border: 0 !important; margin: 0 .1rem !important;
  background: var(--p-mint) !important; color: #13323b !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current{
  background: var(--p-lilac) !important; color: #2f2647 !important;
}

/* Utilidades */
.badge.pastel{ background: var(--p-rose); color: var(--text-dark); }
.shadow-soft{ box-shadow: var(--shadow-soft); }
.hover-lift{ transition: transform .12s ease, box-shadow .12s ease; }
.hover-lift:hover{ transform: translateY(-2px); box-shadow: var(--shadow-soft); }

/* Tablas móviles (reutilizable): aplicar clase .table-mobile */
@media (max-width: 575.98px){
  .table-mobile thead{ display:none; }
  .table-mobile, .table-mobile tbody, .table-mobile tr, .table-mobile td{ display:block; width:100%; }
  .table-mobile tr{
    margin-bottom:.9rem; background:#fff; border:1px solid rgba(0,0,0,.06);
    border-radius:12px; box-shadow: var(--shadow-soft); padding:.5rem .75rem;
  }
  .table-mobile td{
    border:none !important; position:relative; padding:.35rem 0;
  }
  .table-mobile td::before{
    content: attr(data-label); font-weight:700; color: var(--text-soft);
    display:block; font-size:.85rem; margin-bottom:.1rem;
  }
  .table-mobile input[type="number"], .table-mobile input[type="text"]{
    width:100%;
  }
}

/* Upload tile reutilizable */
.upload-tile{
  background: linear-gradient(180deg, #fff, #fcfeff);
  border: 2px dashed var(--p-primary);
  border-radius: 14px; padding: 1rem; text-align: center;
}
.upload-tile figure{
  width: 76px; height: 76px; margin: 0 auto 8px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--p-primary), var(--p-lilac));
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
}
.upload-tile figure svg{ width:36px; height:36px; fill:#fff; }
