@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

/* Bootstrap 5 + SAP Fiori Morning Horizon */
:root {
  /* Base / texto / fondos */
  --bs-body-bg: #ededed;        /* Home / App background base */
  --bs-body-color: #131E29;     /* Text and Titles */
  --bs-border-color: #758CA4;   /* Borders and derived controls */

  /* Colores de tema */
  --bs-primary:   #0e479b;  /* Primary 2 (Brand/Highlight) */
  --bs-secondary: #556B82;  /* Subtitles and Labels (gris acento) */
  --bs-success:   #256F3A;  /* Positive (semantic) */
  --bs-info:      #0070F2;  /* Information (semantic) – coincide con primario */
  --bs-warning:   #E76500;  /* Critical (semantic) */
  --bs-danger:    #AA0808;  /* Negative (semantic) */
  --bs-light:     #F5F6F7;  /* Home / App background */
  --bs-dark:      #131E29;  /* Text and Titles */

  /* Opcional: enlaces y focus ring */
  --bs-link-color:        var(--bs-primary);
  --bs-link-hover-color:  #0057D2; /* Accent 6, un tono más oscuro */
  --bs-focus-ring-color:  rgba(0,112,242,.25);

  /* Botones (opcional, mejora contraste sobre fondos claros) */
  --bs-btn-bg:            var(--bs-primary);
  --bs-btn-border-color:  var(--bs-primary);
  --bs-btn-hover-bg:      #0057D2; /* Accent 6 */
  --bs-btn-hover-border-color: #0057D2;
}

/* Bordes/tablas un poco más definidos (opcional) */
.table, .card, .list-group, .form-control {
  --bs-border-color: #D9D9D9; /* Header/Container borders */
}


body,span,small,h1,h2,h3,h4,h5,h6,p,div,li {
 font-family: "Roboto", sans-serif;
}

.nav-item{
    font-size: 14px;
}

.secondary{
    background-color:#f5f6f7;
}

.active{
    font-weight: 800 !important;
}
/* Base: mobile (≤ 575px) */

/* ≥ 576px (sm) */
@media (min-width: 576px) {
  /* estilos para phones grandes */
}

/* ≥ 768px (md) */
@media (min-width: 768px) {
  /* tablets */
}

/* ≥ 992px (lg) */
@media (min-width: 992px) {
  /* laptops */
  /* Mantienes la altura fija */
.navbar { 
  height: 90px;
 }
}

/* ≥ 1200px (xl) */
@media (min-width: 1200px) {
  /* desktops anchos */
  /* Mantienes la altura fija */
.navbar { 
  height: 90px;
 }
}

/* ≥ 1400px (xxl) */
@media (min-width: 1400px) {
  /* pantallas muy grandes */
  /* Mantienes la altura fija */
.navbar { 
  height: 90px;
 }
}




/* Estira los ítems para que midan lo mismo que el navbar */
.navbar .navbar-nav { align-items: stretch; }
.navbar .nav-link {
  position: relative;
  display: flex;
  align-items: center;
  height: 90px;                 /* clave: el link ocupa todo el alto */
  padding-left: .75rem;
  padding-right: .75rem;
}

/* Subrayado pegado al borde inferior del navbar */
.navbar .nav-link.active::after,
.navbar .nav-link.show::after {
  content:"";
  position:absolute;
  left:.5rem; right:.5rem;
  height:3px;
  background: var(--bs-primary);
  bottom: 0;                    /* tocando el borde */
  /* Si tu navbar tiene border-bottom y quieres superponerlo:
     bottom: -1px; */
}

.card{
    border-radius: 1rem;
    border:none;
    margin-top:20px;  
    transform: translateY(-1px); 
}



.card-title{
     font-size:16px;
    /* color:#676565; */
}

.card-header:first-child {
    border-radius: 1rem !important;
}

.card-header{
    background-color: #fff;
    border-bottom:1px solid #f9f9f9;
    padding-top:15px;
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
}

.card-header {
  display: flex;
  align-items: center; /* centra vertical */
}
.card-header .card-title {
  margin: 0; /* quita el margin-bottom por defecto del título */
}

.card-footer{
  border-top:none;
}

.breadcrumb-item,.breadcrumb-item a{
    font-size:12px
}

.bg-primary{
    background-color: var(--bs-primary) !important;
}

.logo{
    max-width:150px;
}

/*ANIMACIONES*/
/* Activa en contenedores .dropdown con clase .dropdown-animate */
.dropdown-animate .dropdown-menu {
  /* Siempre en flujo para poder animar (es absolute, no ocupa layout) */
  display: block;
  opacity: 0;
  transform: translateY(8px) scale(0.98);
  visibility: hidden;
  transition:
    opacity 180ms ease,
    transform 180ms ease,
    visibility 0s linear 180ms; /* oculta al final */
  transform-origin: top center;
}

/* Abierto: aparece y se alinea */
.dropdown-animate .dropdown-menu.show {
  opacity: 1;
  transform: translateY(0) scale(1);
  visibility: visible;
  transition:
    opacity 180ms ease,
    transform 180ms ease,
    visibility 0s; /* visible de inmediato */
}

/* Cierre suave: aplicamos .closing por JS durante 180ms */
.dropdown-animate .dropdown-menu.closing {
  opacity: 0;
  transform: translateY(8px) scale(0.98);
  visibility: visible; /* visible mientras anima */
  transition:
    opacity 180ms ease,
    transform 180ms ease;
}

/* Labels más marcados */
.form-label,
label {
    font-size:14px;
  font-weight: 700;            /* grueso */
}

/* Campos sin radios y con borde un poco más grueso por defecto
   (así evitamos que "salte" el layout al enfocar) */
.form-control,
.form-select,
.input-group .form-control {
  border-radius: 0 !important; /* sin radios */
  border-width: 2px;           /* base consistente */
  transition: border-color .15s ease, box-shadow .15s ease;
}

/* Estado de foco / presionado (click sostenido) */
.form-control:focus,
.form-control:active,
.form-select:focus,
.form-select:active,
textarea.form-control:focus,
textarea.form-control:active {
  border-color: var(--bs-primary);                /* color primario */
  box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .25); /* halo suave */
  outline: 0;                                     /* sin outline extra */
}

/* Opcional: desactiva el glow en invalid si prefieres mantener el de Bootstrap */
.form-control.is-invalid:focus,
.form-select.is-invalid:focus {
  box-shadow: none;
}

/* Opcional: inputs readonly/disabled mantienen la estética sin el glow */
.form-control:disabled,
.form-select:disabled,
.form-control[readonly] {
  background-color: var(--bs-secondary-bg, #f8f9fa);
  opacity: 1;
}


/* Aplica a tus textareas (Bootstrap o no) */
textarea,
textarea.form-control {
  field-sizing: content;   /* auto-altura por contenido */
  resize: none;            /* el usuario no arrastra manualmente (opcional) */
  overflow: hidden;        /* evita scrollbar mientras crece */
  min-height: 3lh;         /* alto mínimo ~3 líneas */
  max-height: 40vh;        /* límite razonable */
}

/* Si quieres aislarlo a navegadores compatibles */
@supports (field-sizing: content) {
  textarea,
  textarea.form-control { field-sizing: content; }
}

/* Altura del navbar para sticky; si cambias la tuya, ajusta esta var */
:root { --navbar-h: 80px; }

/* Wrapper */
.layout-sidebar .sidebar {
  background: #fff;
  border-right: 1px solid var(--bs-border-color);
  /* En desktop: fijo y que ocupe toda la altura vista menos navbar */
  position: sticky;
  top: var(--navbar-h);
  height: calc(100vh - var(--navbar-h));
  padding: .5rem 0;
}

/* Header pequeño */
.sidebar-header { border-bottom: 1px solid var(--bs-border-color); }

/* Nav principal */
.sidebar-nav .nav-group + .nav-group { border-top: 1px solid rgba(0,0,0,.04); }
.sidebar-nav .nav-link {
  padding: .875rem 1rem;
  font-weight: 600;
  color: var(--bs-body-color);
  background: transparent;
  border: 0;
  text-align: left;
}
.sidebar-nav .nav-link:hover { background: rgba(0,0,0,.03); }

/* Chevron de apertura */
.sidebar-nav .chevron { transition: transform .18s ease; }
.sidebar-nav .nav-link[aria-expanded="true"] .chevron { transform: rotate(90deg); }

/* Subitems */
.sidebar-nav .collapse { padding: 0 .5rem .5rem .5rem; }
.sidebar-nav .sub-link {
  display: block;
  padding: .5rem 1.5rem;
  color: var(--bs-body-color);
  text-decoration: none;
  border-radius: .5rem;
}
.sidebar-nav .sub-link:hover { background: rgba(0,0,0,.04); }
.sidebar-nav .sub-link.active {
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), .08);
  font-weight: 600;
}

/* Footer del sidebar */
.sidebar-footer { background: #fff; }

/* En móvil, el offcanvas ocupa pantalla completa por defecto; sin padding lateral extra */
@media (max-width: 991.98px) {
  .layout-sidebar .sidebar { height: auto; position: static; border-right: 0; }
}

.content{
  padding: none !important;
}

.dropdown-animate .dropdown-menu.show {
    border-radius: initial !important;
    border: none;
    box-shadow: 0px 10px 30px 0px rgba(34, 54, 73, .25); 
    padding:20px 20px 20px 20px;
}

.btn{
  font-weight: 700;
  padding-left: 30px;
  padding-right: 30px;
}

.celestial-shadow{
  box-shadow: 0 0 2px rgba(91, 115, 139, 0.16), 0 32px 64px rgba(91, 115, 139, 0.16);
}

.badge{
  padding-left: 30px;
  padding-right: 30px;
}