/* ==========================================================================
   SBAP — Overrides del theme Boost de Moodle.
   Carga: $CFG->additionalhtmlhead (despues de Bootstrap/Boost, gana especificidad).
   Paleta heredada via custom properties — repintar el theme = cambiar :root.
   ========================================================================== */

:root {
  --sbap-navy:      #1A3D6C;
  --sbap-green:     #315242;
  --sbap-turquoise: #02A3BE;
  --sbap-turquoise-2: #018A9E;
  --sbap-lime:      #9AAE36;
  --sbap-lime-2:    #7d8f29;
  --sbap-sand:      #d9d3b5;
  --sbap-line:      #e5e7eb;
  --sbap-gray-50:   #f9fafb;
  --sbap-gray-100:  #f3f4f6;
  --sbap-gray-200:  #e5e7eb;
  --sbap-gray-500:  #6b7280;
  --sbap-gray-700:  #374151;
  --sbap-gray-900:  #111827;
  --sbap-radius:    14px;
  --sbap-radius-lg: 20px;
  --sbap-shadow:    0 6px 18px rgba(15,23,42,.06);
  --sbap-shadow-lg: 0 18px 40px rgba(15,23,42,.10);
}

/* --------------------------------------------------------------------------
   LOGIN (mantiene el rediseno anterior).
   -------------------------------------------------------------------------- */
#page-login-index {
  background: linear-gradient(135deg, var(--sbap-turquoise) 0%, var(--sbap-navy) 50%, var(--sbap-lime) 100%) !important;
  min-height: 100vh;
}
#page-login-index #page-wrapper { min-height: 100vh; display: flex; align-items: center; justify-content: center; }
#page-login-index #page { max-width: 520px; width: 100%; padding: 0 15px; }
#page-login-index .pt-5 { padding-top: 0 !important; }
#page-login-index .login-container {
  background: rgba(255,255,255,0.97);
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.3);
  padding: 40px 36px;
}
#page-login-index .login-wrapper { padding: 0; }
#page-login-index #region-main-box,
#page-login-index #region-main { padding: 0; }
#page-login-index .footer-content-debugging { display: none; }

/* --------------------------------------------------------------------------
   OCULTAR navbar y footer originales de Moodle en paginas internas.
   El header y footer reales vienen via $CFG->additionalhtmltopofbody/footer.
   -------------------------------------------------------------------------- */
body > nav.navbar.fixed-top,
body > nav.navbar.navbar-light,
body > nav.primary-navigation,
#nav-drawer.primary-navigation,
.fixed-top.navbar,
.fixed-top.navbar-light,
body > .navbar.fixed-top { display: none !important; }

footer#page-footer,
.footer-content-debugging,
.helplink,
.logininfo,
#page-footer .helplink,
#page-footer .logininfo,
.theme-switch-form { display: none !important; }

/* Sigue mostrando el header inyectado del portal */
header.sbap-topbar-internal { display: block !important; position: relative; z-index: 999; }
footer.sbap-footer-internal { display: block !important; }

/* Asegura espacio bajo el topbar fijo del portal */
body { padding-top: 0; }
body #page { margin-top: 0; padding-top: 24px; }

/* --------------------------------------------------------------------------
   GLOBAL.
   -------------------------------------------------------------------------- */
body, .pagelayout-mydashboard, .pagelayout-base {
  background: var(--sbap-gray-50);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  color: var(--sbap-gray-900);
}
a, .nav-link { color: var(--sbap-turquoise); }
a:hover, .nav-link:hover { color: var(--sbap-turquoise-2); }

.btn { border-radius: 10px; font-weight: 600; letter-spacing: .01em; padding: .55rem 1.1rem; }
.btn-primary {
  background-color: var(--sbap-turquoise) !important;
  border-color: var(--sbap-turquoise) !important;
  box-shadow: 0 4px 12px rgba(2,163,190,.25);
}
.btn-primary:hover { background-color: var(--sbap-turquoise-2) !important; border-color: var(--sbap-turquoise-2) !important; }
.btn-secondary {
  background-color: var(--sbap-navy) !important;
  border-color: var(--sbap-navy) !important;
}
.btn-secondary:hover { background-color: #122d52 !important; border-color: #122d52 !important; }
.btn-outline-primary {
  color: var(--sbap-turquoise) !important;
  border-color: var(--sbap-turquoise) !important;
}
.btn-outline-primary:hover {
  background-color: var(--sbap-turquoise) !important;
  color: #fff !important;
}
.btn-success {
  background-color: var(--sbap-lime) !important;
  border-color: var(--sbap-lime) !important;
  color: #fff !important;
}
.btn-success:hover { background-color: var(--sbap-lime-2) !important; border-color: var(--sbap-lime-2) !important; }

.card {
  border-radius: var(--sbap-radius);
  border: 1px solid var(--sbap-line);
  box-shadow: var(--sbap-shadow);
  background: #fff;
}
.card:hover { box-shadow: var(--sbap-shadow-lg); }
.card-header {
  background: linear-gradient(135deg, var(--sbap-navy) 0%, var(--sbap-turquoise) 100%);
  color: #fff !important;
  border-radius: var(--sbap-radius) var(--sbap-radius) 0 0 !important;
  border-bottom: none;
  padding: 16px 22px;
  font-weight: 700;
}
.card-header h2, .card-header h3, .card-header h4, .card-header h5 { color: #fff !important; margin: 0; }
.card-body { padding: 22px; }

/* Forms */
.form-control, .custom-select, input[type=text], input[type=email], input[type=password], input[type=search], textarea, select {
  border-radius: 10px;
  border: 1px solid var(--sbap-line);
  padding: .55rem .85rem;
  transition: .15s;
}
.form-control:focus, input:focus, select:focus, textarea:focus {
  border-color: var(--sbap-turquoise);
  box-shadow: 0 0 0 3px rgba(2,163,190,.15);
  outline: none;
}
label { font-weight: 600; color: var(--sbap-gray-700); }

/* --------------------------------------------------------------------------
   PAGE HEADER (titulos de pagina internos).
   -------------------------------------------------------------------------- */
#page-header {
  background: linear-gradient(135deg, var(--sbap-green) 0%, var(--sbap-turquoise) 60%, var(--sbap-navy) 100%);
  color: #fff;
  border-radius: var(--sbap-radius-lg);
  padding: 32px 36px;
  margin: 24px auto 28px;
  max-width: 1280px;
  position: relative;
  overflow: hidden;
}
#page-header::before {
  content: ""; position: absolute; inset: 0;
  background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0, rgba(255,255,255,.04) 2px, transparent 2px, transparent 8px);
  pointer-events: none;
}
#page-header > * { position: relative; }
#page-header h1, #page-header h2, .page-header-headings h1 {
  color: #fff !important;
  font-weight: 800;
  font-size: 36px;
  letter-spacing: -.015em;
  margin: 0;
}
#page-header .breadcrumb, #page-header nav[aria-label="breadcrumb"] {
  background: transparent;
  padding: 0;
  margin-bottom: 12px;
}
#page-header .breadcrumb a,
#page-header .breadcrumb-item,
#page-header .breadcrumb-item a {
  color: rgba(255,255,255,.85) !important;
  font-weight: 500;
  text-decoration: none;
}
#page-header .breadcrumb-item.active { color: #fff !important; }
#page-header .breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,.6); }

/* Content principal con max-width consistente con el portal */
#region-main {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 28px;
  background: transparent;
  border: none;
}
.path-my #region-main,
.pagelayout-mydashboard #region-main { padding: 0 28px 60px; }

/* --------------------------------------------------------------------------
   DASHBOARD /my/ — bloque myoverview.
   -------------------------------------------------------------------------- */
body.path-my #page-header,
body.pagelayout-mydashboard #page-header {
  background: linear-gradient(135deg, var(--sbap-green) 0%, var(--sbap-turquoise) 55%, var(--sbap-navy) 100%);
}

.block_myoverview {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin-bottom: 32px;
}
.block_myoverview .card-block,
.block_myoverview .myoverview {
  background: #fff;
  border-radius: var(--sbap-radius);
  border: 1px solid var(--sbap-line);
  padding: 22px;
  box-shadow: var(--sbap-shadow);
}
.block_myoverview h3, .block_myoverview h5 {
  font-weight: 800;
  color: var(--sbap-green);
  font-size: 22px;
  margin-bottom: 14px;
}
.block_myoverview .nav-tabs {
  border-bottom: 2px solid var(--sbap-gray-200);
  margin-bottom: 18px;
}
.block_myoverview .nav-tabs .nav-link {
  border: none;
  color: var(--sbap-gray-500);
  font-weight: 600;
  padding: 10px 18px;
}
.block_myoverview .nav-tabs .nav-link.active {
  color: var(--sbap-green);
  background: transparent;
  border-bottom: 2px solid var(--sbap-lime);
  margin-bottom: -2px;
}
.block_myoverview .nav-tabs .nav-link:hover { color: var(--sbap-navy); }

.block_myoverview .card-deck { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important; gap: 18px !important; }
.block_myoverview .dashboard-card,
.block_myoverview .card.dashboard-card {
  border-radius: var(--sbap-radius) !important;
  border: 1px solid var(--sbap-line) !important;
  border-top: 4px solid var(--sbap-lime) !important;
  overflow: hidden;
  transition: .25s;
  background: #fff;
  box-shadow: var(--sbap-shadow);
}
.block_myoverview .dashboard-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--sbap-shadow-lg);
  border-top-color: var(--sbap-turquoise) !important;
}
.block_myoverview .dashboard-card .courseimage,
.block_myoverview .dashboard-card .course-summaryimage {
  height: 140px;
  background: linear-gradient(135deg, var(--sbap-sand) 0%, var(--sbap-lime) 100%);
  border-radius: 0;
}
.block_myoverview .dashboard-card .card-body { padding: 18px 20px; }
.block_myoverview .dashboard-card .coursename a {
  font-weight: 700;
  color: var(--sbap-gray-900);
  font-size: 15px;
  text-decoration: none;
}
.block_myoverview .dashboard-card .coursename a:hover { color: var(--sbap-turquoise); }
.block_myoverview .dashboard-card .progress {
  height: 8px;
  background: rgba(154,174,54,.15);
  border-radius: 4px;
  overflow: hidden;
}
.block_myoverview .dashboard-card .progress-bar { background: var(--sbap-lime); }

/* Bloque "Timeline" (proximas actividades) */
.block_timeline {
  background: #fff !important;
  border-radius: var(--sbap-radius) !important;
  border: 1px solid var(--sbap-line) !important;
  padding: 22px !important;
  box-shadow: var(--sbap-shadow);
  margin-bottom: 24px;
}
.block_timeline h3 { color: var(--sbap-green); font-weight: 800; margin-bottom: 16px; }
.block_timeline .event {
  border-left: 3px solid var(--sbap-lime);
  padding: 12px 14px;
  background: var(--sbap-gray-50);
  border-radius: 0 8px 8px 0;
  margin-bottom: 10px;
}
.block_timeline .event-name a { color: var(--sbap-navy); font-weight: 700; }

/* Bloque "Recently accessed" */
.block_recentlyaccesseditems,
.block_recentlyaccessedcourses {
  background: #fff;
  border-radius: var(--sbap-radius);
  border: 1px solid var(--sbap-line);
  padding: 22px;
  box-shadow: var(--sbap-shadow);
  margin-bottom: 24px;
}

/* Bloques en general (sidebar) */
.block {
  border-radius: var(--sbap-radius);
  border: 1px solid var(--sbap-line);
  background: #fff;
  box-shadow: var(--sbap-shadow);
  padding: 18px;
  margin-bottom: 20px;
}
.block .block_action { color: var(--sbap-gray-500); }
.block h3, .block h4, .block h5 {
  color: var(--sbap-green);
  font-weight: 800;
  font-size: 16px;
  margin-bottom: 12px;
}

/* --------------------------------------------------------------------------
   PERFIL DE USUARIO (/user/profile.php).
   -------------------------------------------------------------------------- */
body.path-user-profile #region-main,
body[id^="page-user-profile"] #region-main {
  background: transparent;
}
body[id^="page-user-profile"] .userprofile {
  background: #fff;
  border-radius: var(--sbap-radius-lg);
  padding: 0;
  border: 1px solid var(--sbap-line);
  box-shadow: var(--sbap-shadow);
  overflow: hidden;
}
body[id^="page-user-profile"] .userprofile .page-context-header {
  background: linear-gradient(135deg, var(--sbap-navy) 0%, var(--sbap-turquoise) 100%);
  color: #fff;
  padding: 40px 36px 56px;
  position: relative;
}
body[id^="page-user-profile"] .userprofile .page-context-header h1,
body[id^="page-user-profile"] .userprofile .page-context-header .page-header-headings h1 {
  color: #fff !important;
  font-size: 30px;
  font-weight: 800;
}
body[id^="page-user-profile"] .userprofile .page-header-image,
body[id^="page-user-profile"] .userprofile .userpicture,
body[id^="page-user-profile"] .userprofile img.userpicture {
  border: 5px solid #fff;
  border-radius: 50%;
  width: 120px !important;
  height: 120px !important;
  box-shadow: 0 6px 24px rgba(0,0,0,.18);
  background: #fff;
  margin-right: 24px;
}
body[id^="page-user-profile"] .userprofile .profile_tree,
body[id^="page-user-profile"] .userprofile .profile-actions { padding: 32px 36px; }
body[id^="page-user-profile"] .userprofile .node_category {
  background: var(--sbap-gray-50);
  border-radius: 12px;
  padding: 18px 20px;
  margin-bottom: 16px;
  border-left: 4px solid var(--sbap-lime);
}
body[id^="page-user-profile"] .userprofile .node_category h3 {
  color: var(--sbap-green);
  font-weight: 800;
  font-size: 17px;
  margin-bottom: 10px;
}
body[id^="page-user-profile"] .userprofile dl { display: grid; grid-template-columns: 200px 1fr; gap: 8px 16px; margin: 0; }
body[id^="page-user-profile"] .userprofile dt { color: var(--sbap-gray-500); font-weight: 600; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; }
body[id^="page-user-profile"] .userprofile dd { color: var(--sbap-gray-900); margin: 0; }

/* --------------------------------------------------------------------------
   CURSO (/course/view.php) — vista alineada al prototipo SBAP p.8.
   -------------------------------------------------------------------------- */
body.path-course-view #page-header {
  background: linear-gradient(135deg, var(--sbap-navy) 0%, var(--sbap-green) 100%);
  padding: 40px 36px 48px;
}
body.path-course-view #page-header h1,
body.path-course-view .page-header-headings h1 {
  font-size: 42px;
  letter-spacing: -.02em;
}
body.path-course-view #page-header .summary,
body.path-course-view #page-header .course-summary {
  color: rgba(255,255,255,.92);
  font-size: 16px;
  margin-top: 12px;
  max-width: 720px;
}
body.path-course-view .course-content { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; align-items: start; }
@media (max-width: 992px) { body.path-course-view .course-content { grid-template-columns: 1fr; } }

body.path-course-view #block-region-side-pre,
body.path-course-view .block-region {
  position: sticky;
  top: 24px;
  align-self: start;
}
body.path-course-view #block-region-side-pre .block { background: #fff; padding: 22px; }
body.path-course-view #block-region-side-pre .block h3,
body.path-course-view #block-region-side-pre .block h5 {
  color: var(--sbap-green);
  border-bottom: 2px solid var(--sbap-gray-200);
  padding-bottom: 10px;
}
body.path-course-view .course-content .section {
  background: #fff;
  border-radius: var(--sbap-radius);
  border: 1px solid var(--sbap-line);
  box-shadow: var(--sbap-shadow);
  padding: 20px 24px;
  margin-bottom: 18px;
}
body.path-course-view .course-content .sectionname {
  color: var(--sbap-green);
  font-weight: 800;
  font-size: 19px;
  border-bottom: 2px solid var(--sbap-gray-200);
  padding-bottom: 12px;
  margin-bottom: 16px;
}
body.path-course-view .course-content .summarytext { color: var(--sbap-gray-700); margin-bottom: 16px; }
body.path-course-view .activity {
  border-radius: 10px;
  padding: 12px 16px;
  margin-bottom: 8px;
  transition: .15s;
  border-left: 3px solid transparent;
}
body.path-course-view .activity:hover {
  background: var(--sbap-gray-50);
  border-left-color: var(--sbap-turquoise);
}
body.path-course-view .activity .activityinstance a {
  color: var(--sbap-navy);
  font-weight: 600;
  text-decoration: none;
}
body.path-course-view .activity .activityinstance a:hover { color: var(--sbap-turquoise); }
body.path-course-view .activityiconcontainer {
  width: 36px; height: 36px;
  border-radius: 8px;
  background: var(--sbap-gray-100);
  display: grid; place-items: center;
  margin-right: 12px;
}
body.path-course-view .completioninfo .completionstatus { color: var(--sbap-lime-2); font-weight: 700; }

/* --------------------------------------------------------------------------
   FORM PAGE (settings, edicion).
   -------------------------------------------------------------------------- */
.mform fieldset,
form fieldset {
  background: #fff;
  border-radius: var(--sbap-radius);
  border: 1px solid var(--sbap-line);
  padding: 24px;
  margin-bottom: 18px;
  box-shadow: var(--sbap-shadow);
}
.mform legend, form legend {
  color: var(--sbap-green);
  font-weight: 800;
  font-size: 16px;
  padding: 0 8px;
}

/* --------------------------------------------------------------------------
   ALERTS / NOTIFICATIONS.
   -------------------------------------------------------------------------- */
.alert {
  border-radius: 12px;
  border: none;
  padding: 14px 18px;
  font-weight: 500;
}
.alert-success { background: rgba(154,174,54,.12); color: var(--sbap-lime-2); }
.alert-warning { background: rgba(217,160,30,.12); color: #8a610d; }
.alert-danger  { background: rgba(176,58,58,.12); color: #8a2727; }
.alert-info    { background: rgba(2,163,190,.10); color: var(--sbap-turquoise-2); }

/* --------------------------------------------------------------------------
   SECONDARY NAVIGATION (tabs internas).
   -------------------------------------------------------------------------- */
.secondary-navigation {
  background: #fff;
  border-radius: var(--sbap-radius);
  border: 1px solid var(--sbap-line);
  padding: 6px 10px;
  margin: 0 auto 24px;
  max-width: 1280px;
  box-shadow: var(--sbap-shadow);
}
.secondary-navigation .nav-link {
  color: var(--sbap-gray-700);
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 8px;
}
.secondary-navigation .nav-link:hover { color: var(--sbap-navy); background: var(--sbap-gray-100); }
.secondary-navigation .nav-link.active {
  color: #fff !important;
  background: var(--sbap-turquoise) !important;
}

/* --------------------------------------------------------------------------
   TABLES.
   -------------------------------------------------------------------------- */
table.generaltable {
  background: #fff;
  border-radius: var(--sbap-radius);
  overflow: hidden;
  border-collapse: separate;
  border-spacing: 0;
  box-shadow: var(--sbap-shadow);
  width: 100%;
}
table.generaltable thead th {
  background: var(--sbap-navy);
  color: #fff !important;
  border-bottom: none;
  padding: 14px 16px;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .04em;
  text-transform: uppercase;
}
table.generaltable tbody td {
  border-top: 1px solid var(--sbap-line);
  padding: 12px 16px;
}
table.generaltable tbody tr:hover { background: var(--sbap-gray-50); }

/* --------------------------------------------------------------------------
   RESPONSIVE adjustments.
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
  #page-header { padding: 24px 22px; border-radius: var(--sbap-radius); }
  #page-header h1, #page-header h2 { font-size: 26px; }
  #region-main { padding: 0 16px; }
  body[id^="page-user-profile"] .userprofile dl { grid-template-columns: 1fr; }
}

/* ==========================================================================
   ADMIN — body.path-admin, body.pagelayout-admin, #page-admin-search, etc.
   Mantiene 100% la estructura nativa de Moodle Boost; solo aplica paleta SBAP
   sobre los elementos que el theme genera.
   ========================================================================== */

body.path-admin,
body.pagelayout-admin { background: var(--sbap-gray-50); }

/* Hero del admin search y similares */
body.path-admin #page-header,
body.pagelayout-admin #page-header {
  background: linear-gradient(135deg, var(--sbap-navy) 0%, var(--sbap-green) 60%, var(--sbap-turquoise) 100%);
  padding: 36px 36px 30px;
  margin: 24px auto 24px;
  max-width: 1280px;
  border-radius: var(--sbap-radius-lg);
}
body.path-admin #page-header h1,
body.pagelayout-admin #page-header h1 {
  color: #fff !important;
  font-weight: 800;
  font-size: 32px;
  letter-spacing: -.015em;
  margin: 0;
}
body.path-admin #page-header .breadcrumb,
body.pagelayout-admin #page-header .breadcrumb {
  background: transparent; padding: 0; margin-bottom: 12px;
}
body.path-admin #page-header .breadcrumb a,
body.path-admin #page-header .breadcrumb-item,
body.path-admin #page-header .breadcrumb-item a {
  color: rgba(255,255,255,.85) !important;
}

/* Region principal en paginas admin: card-like wrapper */
body.path-admin #page-content,
body.pagelayout-admin #page-content { max-width: 1280px; margin: 0 auto; padding: 0 28px 60px; }

body.path-admin #region-main,
body.pagelayout-admin #region-main {
  background: #fff;
  border-radius: var(--sbap-radius-lg);
  border: 1px solid var(--sbap-line);
  box-shadow: var(--sbap-shadow);
  padding: 32px 36px;
}

/* Buscador admin (admin/search.php y simplesearchform) */
form.simplesearchform,
.adminsearchform {
  display: flex;
  gap: 12px;
  align-items: center;
  margin: 0 0 28px;
  padding: 0;
  background: transparent;
}
form.simplesearchform .form-control,
.adminsearchform input[type="text"] {
  height: 52px !important;
  border-radius: 12px !important;
  border: 1px solid var(--sbap-line) !important;
  padding: 0 18px !important;
  font-size: 15px;
  background: var(--sbap-gray-50) !important;
  transition: .15s;
  flex: 1;
  min-width: 260px;
}
form.simplesearchform .form-control:focus,
.adminsearchform input[type="text"]:focus {
  border-color: var(--sbap-turquoise) !important;
  background: #fff !important;
  box-shadow: 0 0 0 4px rgba(2,163,190,.12) !important;
}
form.simplesearchform .input-group-text,
form.simplesearchform .input-group { border: none; background: transparent; }
form.simplesearchform button[type="submit"],
.adminsearchform input[type="submit"] {
  background: var(--sbap-turquoise) !important;
  border: none !important;
  color: #fff !important;
  border-radius: 12px !important;
  height: 52px !important;
  padding: 0 24px !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: .02em;
  transition: .15s;
}
form.simplesearchform button[type="submit"]:hover,
.adminsearchform input[type="submit"]:hover {
  background: var(--sbap-turquoise-2) !important;
  transform: translateY(-1px);
}

/* Resultados / secciones del search (#linkcourses, #linkusers, etc.) */
body#page-admin-search #region-main h2,
body#page-admin-search #region-main h3,
body.path-admin h3.main {
  color: var(--sbap-green);
  font-weight: 800;
  font-size: 20px;
  padding: 14px 0 10px;
  margin: 28px 0 14px;
  border-bottom: 2px solid var(--sbap-gray-200);
  position: relative;
}
body#page-admin-search #region-main h2::before,
body#page-admin-search #region-main h3::before {
  content: "";
  position: absolute;
  left: 0; bottom: -2px;
  width: 60px; height: 2px;
  background: var(--sbap-lime);
}
body#page-admin-search #region-main > h3:first-of-type { margin-top: 0; }

/* Cada setting individual (fieldset/form-item del admin) */
.adminsettings,
.form-item,
.fitem,
.form-group {
  padding: 16px 20px;
  border-radius: 12px;
  border: 1px solid var(--sbap-gray-200);
  background: #fff;
  margin-bottom: 12px;
  transition: .15s;
}
.adminsettings:hover,
.form-item:hover,
.fitem:hover { border-color: var(--sbap-turquoise); box-shadow: 0 4px 14px rgba(2,163,190,.08); }

.form-item .form-label-addon,
.form-item label,
.fitem label {
  font-weight: 700 !important;
  color: var(--sbap-gray-900) !important;
  font-size: 14px;
}
.form-item .form-description,
.fitem .form-description,
.form-shortname,
.formsettingheading p,
.form-defaultinfo {
  color: var(--sbap-gray-500) !important;
  font-size: 12.5px;
  line-height: 1.55;
}

/* Botones "Save changes" y similares al final de paginas admin */
body.path-admin .form-buttons,
body.path-admin .submit,
body.path-admin .form-submit {
  padding: 22px 0 4px;
  margin-top: 28px;
  border-top: 1px solid var(--sbap-line);
}
body.path-admin .btn-primary,
body.path-admin input[type="submit"].btn-primary {
  background: var(--sbap-turquoise) !important;
  border-color: var(--sbap-turquoise) !important;
  box-shadow: 0 4px 12px rgba(2,163,190,.25);
}
body.path-admin .btn-primary:hover {
  background: var(--sbap-turquoise-2) !important;
  border-color: var(--sbap-turquoise-2) !important;
}

/* Sidebar drawer (nav-drawer) — Moodle admin tree */
nav.drawer,
.drawer,
nav[data-region="drawer"],
#nav-drawer {
  background: #fff !important;
  border-right: 1px solid var(--sbap-line) !important;
}
.list-group-item.list-group-item-action {
  border: none !important;
  padding: 8px 14px !important;
  font-size: 13.5px;
  color: var(--sbap-gray-700) !important;
  border-radius: 8px !important;
  margin: 2px 6px;
  transition: .12s;
}
.list-group-item.list-group-item-action:hover {
  background: var(--sbap-gray-100) !important;
  color: var(--sbap-navy) !important;
}
.list-group-item.list-group-item-action.active {
  background: var(--sbap-turquoise) !important;
  color: #fff !important;
}

/* Categorias del admin tree (links a settings) */
.adminstatsblock,
.adminbookmarks,
.adminblock {
  background: var(--sbap-gray-50);
  border-radius: 12px;
  padding: 14px 18px;
  margin-bottom: 14px;
  border-left: 4px solid var(--sbap-turquoise);
}

/* Notices y mensajes de admin */
body.path-admin .alert,
body.path-admin .singlebutton + p,
body.path-admin .notifysuccess,
body.path-admin .notifymessage {
  border-radius: 12px;
  padding: 14px 18px;
  border: none;
  margin-bottom: 16px;
}
body.path-admin .notifysuccess { background: rgba(154,174,54,.12); color: #65820f; }
body.path-admin .notifyproblem { background: rgba(176,58,58,.10); color: #8a2727; }

/* Tablas de admin */
body.path-admin table.generaltable thead th,
body.path-admin table.admintable thead th,
body.path-admin .admintable thead th {
  background: var(--sbap-navy) !important;
  color: #fff !important;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  border: none;
}
body.path-admin table tbody tr:hover {
  background: var(--sbap-gray-50);
}

/* Footer admin — info y links de admin */
body.path-admin .singlebutton {
  display: inline-flex;
  align-items: center;
  margin: 0 8px 8px 0;
}

/* Confirm panels (delete course, etc.) */
.confirmation-dialogue,
.confirmbutton {
  background: #fff;
  border-radius: var(--sbap-radius);
  border: 1px solid var(--sbap-line);
  box-shadow: var(--sbap-shadow-lg);
  padding: 24px;
}

@media (max-width: 768px) {
  body.path-admin #page-content,
  body.pagelayout-admin #page-content { padding: 0 16px 40px; }
  body.path-admin #region-main,
  body.pagelayout-admin #region-main { padding: 22px 18px; }
  form.simplesearchform { flex-direction: column; align-items: stretch; }
  form.simplesearchform .form-control,
  form.simplesearchform button[type="submit"] { width: 100%; }
}
