input[disabled] {
  cursor: not-allowed !important;
}

#result {
	width: 200px;
	height: 150px;
	position:relative; /* or fixed or absolute */
}

#inferior{
	position:fixed;  /*El div será ubicado con relación a la pantalla*/
	left:0px; /*A la derecha deje un espacio de 0px*/
	right:0px; /*A la izquierda deje un espacio de 0px*/
	bottom:-50px; /*Abajo deje un espacio de 0px*/
	height:120; /*alto del div*/
	width:220px; /*ancho del div*/
	z-index:999;
	filter:alpha(opacity=90); opacity:0.9;
}

#inferiormenu{
	position:absolute;  /*El div será ubicado con relación a la pantalla*/
	height:80px; /*alto del div*/
}

#result img{
	width: 100%;
}

#img-user{
	width: 200px;
	height: 200px;
	margin-bottom: 10px;
}

#video{
	display: block;
	width:200px;
	height:200px;
	margin: 0px;
	padding: 0px;

}
video{
	padding:0 !important;
}


.img-perfil{
	border-radius: 50%;
	width: 200px;
	height: 200px;
	border:1px solid black;
}

.hidden{
	display: none;
}

.video-mask{
	position: relative;
	display: block;
	width: 200px;
	height: 200px;
	overflow: hidden;
	margin: 0 auto;
}

#canvas{
	display: block;
	width:200px;
	height:200px;
}

.fileinput-button input {
	position: absolute;
	top: 0;
	right: 0;
	margin: 0;
	opacity: 0;
	-ms-filter: 'alpha(opacity=0)';
	font-size: 200px !important;
	direction: ltr;
	cursor: pointer;
}

.fileinput-button {
	position: relative;
	overflow: hidden;
	display: inline-block;
}

.list-group {
	padding-left: 0;
	padding-bottom: 0 !important;
	padding-top: 15px;
	margin:0 !important;
}

.line{
	line-height: initial !important;
}

.black-text{
	color: #000 !important;
}

.white-text{
	color: #fff !important;
}

.icon-green{
	color: #479e47;
}
.icon-yellow{
	color: #ec9821;
}
.icon-red{
	color: #c3322e;
}
.icon-blue{
	color: #275d8d;
}

.panel-heading a:after{
	font-family: 'FontAwesome';
	content: "\f077";
}
.panel-heading a.collapsed:after{
	font-family: 'FontAwesome';
	content: "\f078";
}
.modal-usertype{
	color: #999;
}
.modal-img{
	height:120px !important;
}
.cont-flex{
	display: flex;
	flex-direction: column;
}
.type-user{
	display: flex;
	justify-content: center;
	flex-direction: column;
}
.container-user{
	display: flex;
	justify-content: center;
	padding: 10px;
}
.img-radius{
	border-radius: 50%;
	margin: 0 auto;
	border: 4px solid;
	border: 2px solid #355493 !important;
}
.non-color{
	border-bottom: 1px solid #CCC;
	margin: 0;
	min-height: 2px !important;
}

.back-white{
	background: white !important;
}
.non-back{
	background: initial !important;
}

.non-border{
	border:0px !important;
}

.color-bottom{
	border-bottom-color: #ddd !important;
}

.fix-boton{
	padding: 0 !important;
	text-align: center !important;
}
.plus-btn{
	display: flex;
	width: 100%;
	justify-content: flex-end;
	position: absolute;
	top: 0px;
	margin: 15px 0px 15px 0px;
	padding-right: 20px;
}
.col-war{
	color: #f0ad4e;
}

.col-info{
	color: #57afd4;
}

.col-success{
	color: #5cb85c;
}

.back-primary{
	background-color: #265a88;
}

.cont-send{
	display: flex;
	justify-content: space-between;
	height: 50px;
	align-items: center;
	padding: 7px;
	border: 1px solid #d8d6d6;
}

.non-pad{
	padding: 0 !important;
}

.non-mar{
	margin: 0 !important;
}

.non-pad-l{
	padding-left: 0!important;
}

.non-pad-r{
	padding-right: 0 !important;
}

.cont-demo:nth-child(odd){
	background: #f4f4f4;
}

.font-bold{
	font-weight: bold;
}

.font{
	font-size: 16px !important;
	font-family:Lato !important;
}

.font-icon{
	font-size: 1.2em !important;
}

.font-4{
	font-size: 14px !important;
	font-family:Lato !important;
}

.font-x{
	font-size: 12px;
	font-family:Lato;
}

.tarea{
	width: 100%;
	border: 1px solid #ccc;
	border-radius: 4px;
}


.blue-menu{
	background: #5170ad !important;
	background: -moz-radial-gradient(center, ellipse cover, #5170ad 0%, #355493 100%) !important;
	background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #5170ad), color-stop(100%, #355493)) !important;
	background: -webkit-radial-gradient(center, ellipse cover, #5170ad 0%, #355493 100%) !important;
	background: -o-radial-gradient(center, ellipse cover, #5170ad 0%, #355493 100%) !important;
	background: -ms-radial-gradient(center, ellipse cover, #5170ad 0%, #355493 100%) !important;
	background: radial-gradient(ellipse at center, #5170ad 0%, #355493 100%) !important;
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5170ad', endColorstr='#355493',GradientType=1 ) !important;
	color:#fff !important;
	border-bottom: 1px solid #2c4c8c;
}

.blue-menu:hover{
	background: #112e66 !important;
	text-decoration: none !important;
}

.bg-grey{
	background: #c7c7c7;
	font-size: 16px;
	font-family: Lato;
}

.center-flex{
	display: flex;
	justify-content: center;
}


.flex-space{
	display: flex !important;
	justify-content: space-between;
}

.pad{
	padding: 10px;
}

.pad-15{
	padding: 15px;
}

button:focus {outline:0;}
button{outline:0 !important;}

.icon-arch {
	display: flex;
}

.fix-a{
	color: #333333 !important;
	text-decoration: none;
}

.demo{
	padding: 0px 14px;
}

.icon-arch:hover{
	background: #ddd;
}

.icon-arch a{
	display: flex;
	color: #000;
	padding: 10px;
	width: 100%;
	justify-content: space-between;
	align-items: center;
}

.icon-text{
	font-family: Lato;
	font-size: 16px;
	padding: 10px;
}

.grey{
	background: #f4f4f4;
}


.img-brand{
	display: none !important;
}

.custom-btn{
	font-size: 18px !important;
	font-family: Lato;
	width: 100%;
	padding: 10px !important;
	font-weight: 700 !important;
	margin: 15px 0px;
	margin-bottom: 15px !important;
}


.prin{
	display: flex;
	justify-content: center;
}

.prin-img{
	margin-left: 23px;
}

.prin-title{
	width: 205px;
	margin-left: 20px;
}

.icon-mar{
	margin-right: 7px;
	margin-top: 2px;
}

.special{
	position: relative;
	justify-content: center;
	margin: 0 auto;
	margin-top: 8px;
	display: flex;
	width: 56%;
}


#calendar {
	max-width: 900px;
	margin: 0 auto;
}

.ver-btn{
	display: flex;
	justify-content: center;
	padding: 10px 0px;
}

.ver-wig{
	width: 80%;
}

.mar-r{
	margin-right: 10px !important;
}

.mar-l{
	margin-left: 10px !important;
}

.m-right{
	padding-right: 10px;
}

.m-left{
	padding-left: 10px;
}

.m-top{
	margin-top: 13px;
}

.mar-t{
	margin-top: 20px;
}

.noti-title{
	display: flex;
	justify-content: center;
	font-family: lato;
	font-size: 20px;
	font-weight: 500;
	color: #000;
	padding: 5px 0px;
}

.noti-ver{
	display: flex;
	width: 100%;
	justify-content: center;
	margin: 15px 0px;
	font-size: 18px !important;
	font-family: lato;
}

.noti-type{
	font-size: 14px;
	width: 80%;
	padding: 8px;
	display: flex;
	justify-content: center;
	margin: 0 auto;
	font-family: Lato;
	border-radius: 8px;
	font-weight: normal;
	color: white;
}

.fix-flex{
	display: flex;
	justify-content: center;
}

.fix-bot{
	align-items: center;
	font-size: 14px !important;

}

.noti-container{
	width: 100%;
	height: auto;
	display: flex;
	flex-direction: column;
	padding-top: 12px;
}


.noti-user{
	font-size: 14px;
	border-radius: 8px;
	color: #fff;
	font-size: 14px;
	text-align: center;
	background: #aaa;
	width: 100%;
	padding: 3px;
	font-family: lato;
}

.img-redonly{
	border-radius: 50%;
	width: 50px !important;
	height: 50px;
	border: 2px solid #355493;
}


.main-container{
	margin: 10px 0;
	padding: 0;
	width: 100%;
	height: auto;
	position: relative;
}

.main-title{
	width: 100%;
	height: auto;
	min-height: 60px;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: 15px;
}

.main-title h2{
	margin: 0px !important;
	font-family: "Lato", sans-serif;
	color: #FFF;
	font-size: 20px;
	font-weight: 300;
	line-height: 60px;
}


.main-body{
	margin: 0px;
	border: 1px solid #CCC;
	border-top: none;
	font-family: "Lato",sans-serif;
	padding: 10px;
}



.blue{
	background-color: #57afd4;
}

.bluet{
	background-color: #0077A9;
}

.oranget{
	background-color: #e98b1c;
}

.bluem{
	background-color: #1594CA;
}


#loader{
	margin-top: 1px;
	width: 100%;
	height: 100%;
	position: fixed;
	background: rgba(255,255,255,0.5) url(../img/loader.gif) no-repeat 40% 40%;
	z-index: 9999;
}

body{
	font-family: 'Lato', sans-serif !important;
}

.menu {
	padding: 0;
	margin: 0;
	border: 0; 
	width:100%;
	background: #5170ad;
	background: -moz-radial-gradient(center, ellipse cover, #5170ad 0%, #355493 100%);
	background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #5170ad), color-stop(100%, #355493));
	background: -webkit-radial-gradient(center, ellipse cover, #5170ad 0%, #355493 100%);
	background: -o-radial-gradient(center, ellipse cover, #5170ad 0%, #355493 100%);
	background: -ms-radial-gradient(center, ellipse cover, #5170ad 0%, #355493 100%);
	background: radial-gradient(ellipse at center, #5170ad 0%, #355493 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5170ad', endColorstr='#355493',GradientType=1 );
}

.menu ul, li {
	list-style: none;
	margin: 0;
	padding: 0; 
}

.menu ul {
	position: relative;
	z-index: 597;
	float: left;
}

.menu ul li {
		float: left;
		min-height: 1px;
		line-height: 1em;
		vertical-align: middle;
		width:100%;
}

.menu ul li.hover,
.menu ul li:hover {
	position: relative;
	z-index: 599;
	cursor: default; 
}

.menu ul ul {
	visibility: hidden;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 598;
	width: 100%;
}

.menu ul ul li {
	float: none; 
}

.menu ul li:hover > ul {
	visibility: visible; 
}

.menu ul ul {
	top: 0;
	left: 100%;
}

.menu ul li {
	float: none; 
}

.menu span, .menu a {
		display: inline-block;
		font-size:16px;
		text-decoration: none; 
		font-weight:100!important;
		font-family:"Lato",sans-serif;
}

.menu:after, .menu ul:after {
		content: '';
		display: block;
		clear: both; 
}

.menu ul, .menu li {
		width: 100%; 
}
.menu li {
		background: transparent;
		border-bottom:1px solid #2c4c8c;
}
.menu li:hover {
		background: #112e66;
		text-decoration: none; 
}
.menu a {
		color: #fff;
		line-height: 160%;
		padding: 10px 6px 10px 10px;
		width: 100%; 
}
.menu a:hover{
	text-decoration: none;
	color: #fff;
}
.menu a i.fa-chevron-right{
	float:right;
	color:#fff;
	margin-top:5px;
}
.menu a i.icon{
	font-size:16px;
	margin-right:10px;
}
.menu a:hover i{
}

.menu ul ul li {
		background: #789ee7; 
}
.menu ul ul li:hover {
		background: #2c4c8c; 
}
.menu ul ul li:hover a {
		color: #fff; 
}
.menu ul ul li ul li {
		background: #a2c1f4; 
}
.menu ul ul li ul li:hover {
		background: #c8dbfb;
}
.menu .has-sub {
		position: relative; 
}

@media (max-width: 1300px) {
	.special{
		width: 100% !important;
	}

	.img-spl{
		display: flex;
		justify-content: center;
		width: 100%;
	}

}

@media (max-width: 767px) {
	.img-brand{
		display: initial !important;
		width: 150px;
		margin-left: 10px;
	}
	.imag{
		display: none !important;
	}
	.navbar-nav {
			margin: 0px !important;
			display: inline-block !important;
	}
}

@media (max-width: 900px) {
	.collapse{
		padding: 0 !important;
	} 
	.navbar-collapse{
		padding:  0!important;
	}
	.imag{
		width: 120px !important;
		padding: 11px 18px 0 0 !important;
		margin-right: 0px !important;
		width: 90px !important;
		height: 40px !important;
	}

}

.logo{
	margin: 0;
	padding: 10px 0 15px 0;
	width: 100%;
	background-color: #fff;
	border-right: 1px solid #ccc;
}

.icons{
	margin-top: 5px;
	text-align: center;
	font-size: 20px;

}

.user-data{
		margin: 0;
		padding: 15px 0;
		width: 100%;
		height: auto;
		background-color: #fff;
		border-right: 1px solid #ccc;
		border-top: 1px solid #ccc;
		text-align: center;
}

.user-title{
	text-align: center;
	font-family: "Lato", sans-serif;
	color: #355493;
	font-size: 20px;
	margin-top: 0px;
	margin-left: 0px;
	display: block;
}

.user-sub{
	margin: 0;
	text-align: center;
	font-family: "Lato", sans-serif;
	color: #999;
}


.user-data-img{
	margin: 0;
	display: inline;
	border-radius: 50%;
	border: 2px solid #355493;
	width: 40px;
	height: 40px;
}

.imgalum{
	border-radius:10px;
	border: 1px solid #D5D8DC;
}

.marg{
	margin-right:30px;
}

.mar-bott{
	margin-bottom: 15px;
}

.mar-l{
	margin-left: 15px;
}

.mt{
	margin-top: 60px;
	margin-right: 0px !important;
}

.pad-lr{
	padding-right: 13px !important;
	padding-left: 8px !important;
}

.mar-top{
	margin-top:10px;
}

.mar-x{
	margin: 0px 40px 15px 40px;
}

.pad-x{
	padding:5px 0px 3px 7px !important;
}

.mar-left{
	margin: 0px 10px;
}

.icons-user{
	display: flex!important;
	justify-content: center;

	margin-top: 5px;
	text-align: center;
	font-size: 20px;
}

.icons-user a{
	color: #000;
	margin: 0 10px;
}

.btn-full{
	width: 100%;
}

aside{
	position: fixed;
	height: 100%;
	background: #2a3e50;
	left: 0;
}

.pad-t-b{
	padding: 10px 0px 15px 0px; 
}


.nav-tabs{
	position: block;
	border-color: transparent !important;
}


.nav-tabs li {
	width: 100%;
	font-size: 15px;
	font-weight: bold;
	border-bottom: 2px solid #ffffff;
}

.nav-tabs li a{
	margin-right: 0 !important;
	border-radius: 0!important;
	color: #ffffff;
}

.nav-tabs li a:hover{
	color: #151313;
}

.navbar-left{
	background: transparent;
	width: 250px;
	height: 100%;
}
.imag{
	width: 187px;
	height: 60px;
	padding: 0px .5em;
}

.b-right{
	border-right: 1px solid #ccc;
	height: auto;
	padding: 12px 0px;
}

.b-bottom{
	border-bottom: 1px solid #ccc;
}

/* Barra de navegación superior — look más limpio y con más aire (2026-08-26) */
nav.navbar-default.b-bottom {
	border-bottom: none !important;
	box-shadow: 0 2px 10px rgba(0, 42, 72, .10);
	background: var(--educ-white) !important;
	min-height: 38px;
	padding: 4px 0;
}

nav.navbar-default .btn-group:has(.dropdown-toggle),
nav.navbar-default .btn-group.academico,
nav.navbar-default .btn-group.b-right,
nav.navbar-default .btn-group:not(:has(.dropdown-toggle)) {
	margin-top: 1px;
	margin-bottom: 1px;
}

.b-left{
	border-left: 1px solid #ccc;
	height: auto;
	padding: 12px 0px;
}



/* Switch
	 ========================================================================== */
.switch,
.switch * {
	-webkit-user-select: none;
	-moz-user-select: none;
	-khtml-user-select: none;
	-ms-user-select: none;
}

.switch label {
	cursor: pointer;
}

.switch label input[type=checkbox] {
	opacity: 0;
	width: 0;
	height: 0;
}

.switch label input[type=checkbox]:checked + .lever {
	background-color: #5bc0de;
}

.switch label input[type=checkbox]:checked + .lever:after {
	background-color: #5bc0de;
	left: 24px;
}

.switch label .lever {
	content: "";
	display: inline-block;
	position: relative;
	width: 40px;
	height: 15px;
	background-color: #818181;
	border-radius: 15px;
	margin-right: 10px;
	transition: background 0.3s ease;
	vertical-align: middle;
	margin: 0 16px;
}

.switch label .lever:after {
	content: "";
	position: absolute;
	display: inline-block;
	width: 21px;
	height: 21px;
	background-color: #F1F1F1;
	border-radius: 21px;
	box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4);
	left: -5px;
	top: -3px;
	transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease;
}

input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after,
input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after {
	box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1);
}

input[type=checkbox]:not(:disabled) ~ .lever:active:after,
input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after {
	box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08);
}

.switch input[type=checkbox][disabled] + .lever {
	cursor: default;
}

.switch label input[type=checkbox][disabled] + .lever:after,
.switch label input[type=checkbox][disabled]:checked + .lever:after {
	background-color: #BDBDBD;
}

span.red {
	background: red;
	 border-radius: 0.8em;
	-moz-border-radius: 0.8em;
	-webkit-border-radius: 0.8em;
	color: #ffffff;
	display: inline-block;
	line-height: 1.3em;
	margin-right: 5px;
	text-align: center;
	width: 1.3em;
	font-family: 'Lato', sans-serif !important;

}
span.green {
	background: #5EA226;
	border-radius: 0.8em;
	-moz-border-radius: 0.8em;
	-webkit-border-radius: 0.8em;
	color: #ffffff;
	display: inline-block;
	font-weight: bold;
	line-height: 1.3em;
	margin-right: 5px;
	text-align: center;
	width: 1.3em;
	font-family: 'Lato', sans-serif !important;
}
span.yellow {
	background: #F7FE2E;
	border-radius: 0.8em;
	-moz-border-radius: 0.8em;
	-webkit-border-radius: 0.8em;
	color: #000000;
	display: inline-block;
	font-weight: bold;
	line-height: 1.3em;
	margin-right: 5px;
	text-align: center;
	width: 1.3em;
	font-family: 'Lato', sans-serif !important;
}

span.orange {
	background: #efa945;
	border-radius: 0.8em;
	-moz-border-radius: 0.8em;
	-webkit-border-radius: 0.8em;
	color: #ffffff;
	display: inline-block;
	font-weight: bold;
	line-height: 1.3em;
	margin-right: 5px;
	text-align: center;
	width: 1.3em;
	font-family: 'Lato', sans-serif !important;
}

span.blue {
	background: #5170ad;
	border-radius: 0.8em;
	-moz-border-radius: 0.8em;
	-webkit-border-radius: 0.8em;
	color: #ffffff;
	display: inline-block;
	font-weight: bold;
	line-height: 1.3em;
	margin-right: 5px;
	text-align: center;
	width: 1.3em;
	font-family: 'Lato', sans-serif !important;
}

span.grey {
	background: #e6e6e6;
	border-radius: 0.8em;
	-moz-border-radius: 0.8em;
	-webkit-border-radius: 0.8em;
	color: #000000;
	display: inline-block;
	font-weight: bold;
	line-height: 1.3em;
	margin-right: 5px;
	text-align: center;
	width: 1.3em;
	font-family: 'Lato', sans-serif !important;
}

span.blue2 {
	background: #37b1d5;
	border-radius: 0.8em;
	-moz-border-radius: 0.8em;
	-webkit-border-radius: 0.8em;
	color: #ffffff;
	display: inline-block;
	font-weight: bold;
	line-height: 1.3em;
	margin-right: 5px;
	text-align: center;
	width: 1.3em;
	font-family: 'Lato', sans-serif !important;
}

span.rosa {
	background: #9F81F7;
	border-radius: 0.8em;
	-moz-border-radius: 0.8em;
	-webkit-border-radius: 0.8em;
	color: #ffffff;
	display: inline-block;
	font-weight: bold;
	line-height: 1.3em;
	margin-right: 5px;
	text-align: center;
	width: 1.3em;
	font-family: 'Lato', sans-serif !important;
}
.spinner input {
  text-align: left;
}
.input-group-btn-vertical {
  position: relative;
  white-space: nowrap;
  width: 1%;
  vertical-align: middle;
  display: table-cell;
}
.input-group-btn-vertical > .btn {
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
  padding: 8px;
  margin-left: -1px;
  position: relative;
  border-radius: 0;
}
.input-group-btn-vertical > .btn:first-child {
  border-top-right-radius: 4px;
}
.input-group-btn-vertical > .btn:last-child {
  margin-top: -2px;
  border-bottom-right-radius: 4px;
}
.input-group-btn-vertical i{
  position: absolute;
  top: 0;
  left: 4px;
}
.cuarecaautom {
	border: 1px solid #ddd;
	font-size: 11px;
}
.princuarecaautom {
	margin-top: 2px;
}

/* ---------------------- */
.scroll-menusup{
	height: auto; 
	max-height: 650px;
	overflow-x: hidden;
}

.scroll-descargas{
	height: auto;
	max-height: 410px;
	overflow-x: hidden;
}


/* ==================================================================================================
   EDUCAPP — Rediseño "Avisos" + Modales genéricos (2026-08-26)
   Paleta oficial: primaria #209EC3 / #0AB8EC / #A8CF45 / #A5E601, secundaria #002A48 / #FFFFFF.
   Reglas ADITIVAS al final del archivo — nada de lo anterior se modificó.
   Los bloques de modal usan ".modal ..." para no afectar botones/tablas/alertas fuera de un modal.
   ================================================================================================== */

:root {
	--educ-navy: #002A48;
	--educ-blue: #209EC3;
	--educ-blue-light: #0AB8EC;
	--educ-green: #A8CF45;
	--educ-lime: #A5E601;
	--educ-white: #FFFFFF;
	--educ-ink: #12303f;
	--educ-muted: #6b8494;
	--educ-border: #dbe8ee;
}

/* ---------------------------------------------------------------------------------------------
   TARJETAS DE AVISOS (.noti-container, usadas en el carrusel de "Avisos" de todos los paneles)
   --------------------------------------------------------------------------------------------- */

.noti-container {
	background: var(--educ-white);
	border: 1px solid var(--educ-border);
	border-radius: 12px;
	box-shadow: 0 4px 16px rgba(0, 42, 72, 0.08);
	padding: 18px 14px 16px;
	margin: 6px 8px 14px;
	transition: transform .15s ease, box-shadow .15s ease;
}

.noti-container:hover {
	box-shadow: 0 8px 22px rgba(0, 42, 72, 0.16);
	transform: translateY(-2px);
}

.img-redonly {
	border-radius: 50%;
	width: 54px !important;
	height: 54px;
	border: 3px solid var(--educ-blue);
	box-shadow: 0 0 0 3px rgba(32, 158, 195, 0.15);
}

.noti-user {
	border-radius: 20px;
	color: var(--educ-white);
	background: var(--educ-navy);
	font-weight: 600;
	letter-spacing: .2px;
}

.noti-title {
	color: var(--educ-ink);
	font-weight: 600;
}

/* barra de severidad del aviso: mantiene semántica de color (rojo=urgente, ámbar=medio),
   pero usa el verde de la paleta nueva para "Bajo" */
.noti-type {
	border-radius: 20px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
	font-weight: 600;
	letter-spacing: .2px;
}

.noti-type.label-success {
	background: var(--educ-green) !important;
	color: var(--educ-navy) !important;
}

.noti-type.label-warning {
	background: #e8a93a !important;
	color: var(--educ-navy) !important;
}

.noti-type.label-danger {
	background: #d64550 !important;
	color: var(--educ-white) !important;
}

/* botón "Ver Aviso" */
.ver-btn .btn-primary {
	background: var(--educ-blue);
	border-color: var(--educ-blue);
	border-radius: 22px;
	font-weight: 600;
	box-shadow: 0 3px 10px rgba(32, 158, 195, 0.3);
	transition: background-color .15s ease, box-shadow .15s ease, transform .1s ease;
}

.ver-btn .btn-primary:hover {
	background: var(--educ-blue-light);
	border-color: var(--educ-blue-light);
	box-shadow: 0 5px 14px rgba(10, 184, 236, 0.4);
}

.ver-btn .btn-primary:active {
	background: var(--educ-navy);
	border-color: var(--educ-navy);
	transform: translateY(1px);
}

/* ---------------------------------------------------------------------------------------------
   MODALES GENÉRICOS (Bootstrap 3 .modal-*) — aplica a TODOS los modales de la app.
   Todo delimitado bajo ".modal" para no afectar botones/tablas/alertas fuera de un diálogo.
   --------------------------------------------------------------------------------------------- */

.modal-content {
	border: none;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 14px 44px rgba(0, 42, 72, 0.32);
}

.modal-header {
	background: var(--educ-navy);
	border-bottom: none;
	padding: 16px 22px;
}

.modal-header .modal-title,
.modal-header h3,
.modal-header h4 {
	color: var(--educ-white);
	font-weight: 700;
}

.modal-header .close {
	color: var(--educ-white);
	opacity: 0.85;
	text-shadow: none;
}

.modal-header .close:hover,
.modal-header .close:focus {
	color: var(--educ-white);
	opacity: 1;
}

.modal-body {
	background: var(--educ-white);
	padding: 22px;
}

.modal-footer {
	background: #f7fbfd;
	border-top: 1px solid var(--educ-border);
}

/* alertas de severidad dentro de modales (mismo criterio semántico que .noti-type) */
.modal .alert {
	border: none;
	border-radius: 10px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.10);
	font-weight: 600;
}

.modal .alert-success {
	background: var(--educ-green);
	color: var(--educ-navy);
}

.modal .alert-warning {
	background: #f4c363;
	color: var(--educ-navy);
}

.modal .alert-danger {
	background: #f0b3b8;
	color: #7a1c22;
}

.modal .alert-info {
	background: rgba(32, 158, 195, 0.15);
	color: var(--educ-navy);
}

/* tablas dentro de modales */
.modal .table > thead > tr.info > th,
.modal .table > thead > tr > th.info {
	background: var(--educ-navy);
	color: var(--educ-white);
	border-color: var(--educ-navy);
}

.modal .table > thead > tr.success > th {
	background: var(--educ-green);
	color: var(--educ-navy);
	border-color: var(--educ-green);
}

.modal .table > thead > tr.warning > th {
	background: #f4c363;
	color: var(--educ-navy);
}

.modal .table,
.modal .table > tbody > tr > td,
.modal .table > tbody > tr > th {
	border-color: var(--educ-border);
}

.modal .table-striped > tbody > tr:nth-of-type(odd) {
	background-color: #f7fbfd;
}

/* botones dentro de modales */
.modal .btn {
	border-radius: 20px;
	font-weight: 600;
	transition: background-color .15s ease, box-shadow .15s ease, transform .1s ease;
}

.modal .btn-primary {
	background: var(--educ-blue);
	border-color: var(--educ-blue);
}

.modal .btn-primary:hover {
	background: var(--educ-blue-light);
	border-color: var(--educ-blue-light);
}

.modal .btn-default {
	background: var(--educ-white);
	border-color: var(--educ-border);
	color: var(--educ-navy);
}

.modal .btn-default:hover {
	background: #eef6f9;
	border-color: var(--educ-blue);
	color: var(--educ-navy);
}

.modal .btn:active {
	transform: translateY(1px);
}

/* avatar/foto dentro de modales (.modal-img, ya usada por varios modales de aviso/perfil) */
.modal .modal-img {
	border-radius: 50%;
	border: 3px solid var(--educ-blue);
	box-shadow: 0 0 0 3px rgba(32, 158, 195, 0.15);
}


/* ==================================================================================================
   EDUCAPP — Encabezados de sección "tipo plataforma educativa" (2026-08-26, hecho GLOBAL a pedido
   del usuario: "esa modificación aplica para todas las [secciones] del sistema, debe ser global")
   Aplica a TODO .main-container > .main-title (+.main-body) de la app, no solo Calendario/Avisos.
   Se conserva el color propio de cada variante (.blue/.bluet/.oranget/.bluem/.back-primary) como
   degradado desde el navy de marca, para no perder el código de color por módulo ya existente.
   .back-white se deja intacto a propósito (header blanco es un caso especial, no se toca).
   ================================================================================================== */

.main-container {
	border-radius: 14px;
	box-shadow: 0 8px 26px rgba(0, 42, 72, 0.12);
	margin: 18px 0 26px;
}

.main-title.blue,
.main-title.bluet,
.main-title.oranget,
.main-title.bluem,
.main-title.back-primary {
	border-radius: 14px 14px 0 0;
	min-height: 42px;
}

.main-title.blue { background: var(--educ-blue-light) !important; }
.main-title.bluet { background: linear-gradient(120deg, var(--educ-navy) 0%, #0077A9 100%) !important; }
.main-title.oranget { background: linear-gradient(120deg, var(--educ-navy) 0%, #e98b1c 100%) !important; }
.main-title.bluem { background: linear-gradient(120deg, var(--educ-navy) 0%, #1594CA 100%) !important; }
.main-title.back-primary { background: linear-gradient(120deg, var(--educ-navy) 0%, #265a88 100%) !important; }

.main-title h2 {
	font-weight: 700;
	letter-spacing: .4px;
	text-transform: uppercase;
	font-size: 14px;
	line-height: normal;
}

.main-body {
	border: none;
	border-radius: 0 0 14px 14px;
	background: #f2f8fb;
	padding: 20px;
}

@media (max-width: 767px) {
	.main-title h2 {
		font-size: 15px;
	}

	.main-body {
		padding: 12px;
	}
}

/* Detalle extra (ícono) solo donde se puede identificar el contenido con certeza:
   Calendario de Eventos y Avisos. El resto de las secciones no lleva ícono (no hay forma
   genérica de saber qué ícono correspondería a cada módulo sin tocar PHP), pero sí llevan
   ya el degradado/tarjeta/tipografía de arriba por ser reglas globales. */
.main-container:has(#calendar) > .main-title.blue::before,
.main-container:has(#notificaciones) > .main-title.blue::before {
	font-family: 'FontAwesome';
	margin-right: 12px;
	font-size: 0.95em;
	color: var(--educ-lime);
}

.main-container:has(#calendar) > .main-title.blue::before {
	content: "\f133"; /* fa-calendar */
}

.main-container:has(#notificaciones) > .main-title.blue::before {
	content: "\f0a1"; /* fa-bullhorn */
}


/* ==================================================================================================
   EDUCAPP — Botones de submenú por módulo (.list-group-item.blue-menu), GLOBAL (2026-08-26)
   Se usa en ~172 archivos como el listado de acciones lateral de cada módulo (Usuarios, Caja,
   Recursos Humanos, etc.). Rediseño discreto: mismo look de lista, colores de la paleta nueva,
   sin exagerar (sin píldoras/gradientes fuertes, solo color plano + hover + detalle sutil).
   ================================================================================================== */

.list-group {
	padding-top: 0 !important;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 4px 14px rgba(0, 42, 72, 0.10);
}

.blue-menu {
	background: var(--educ-navy) !important;
	border: none !important;
	border-left: 4px solid var(--educ-blue) !important;
	border-bottom: 1px solid rgba(255, 255, 255, .16) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
	color: var(--educ-white) !important;
	font-weight: 100;
	letter-spacing: .2px;
	text-align: left;
	transition: background-color .15s ease, border-left-color .15s ease, padding-left .15s ease;
}

.blue-menu:last-child {
	border-bottom: none !important;
}

.blue-menu:hover {
	background: var(--educ-blue) !important;
	border-left-color: var(--educ-lime) !important;
	text-decoration: none !important;
	padding-left: 20px;
}

.blue-menu i {
	width: 18px;
	text-align: center;
	color: var(--educ-blue-light);
}

.blue-menu:hover i {
	color: var(--educ-white);
}


/* ==================================================================================================
   EDUCAPP — Tablas: barra de exportar CSV + encabezados ordenables (2026-08-26), GLOBAL.
   El comportamiento lo inyecta dist/js/utils.js sobre cualquier <table class="table">; aquí solo
   va el estilo del botón/indicador, coherente con la paleta ya usada en el resto del rediseño.
   ================================================================================================== */

.educ-table-toolbar {
	display: flex;
	justify-content: flex-end;
	margin: 0 0 8px;
}

.educ-export-csv {
	background: var(--educ-blue) !important;
	color: var(--educ-white) !important;
	border: none !important;
	border-radius: 6px;
	padding: 5px 12px;
	font-weight: 600;
	font-size: 12.5px;
	transition: background-color .15s ease;
}

.educ-export-csv:hover {
	background: var(--educ-blue-light) !important;
}

.educ-export-csv i {
	margin-right: 5px;
}

th.educ-sortable {
	cursor: pointer;
	user-select: none;
	transition: background-color .15s ease;
}

th.educ-sortable:hover {
	background-color: rgba(32, 158, 195, 0.14);
}

.educ-sort-ind {
	color: var(--educ-blue);
	font-size: 11px;
	margin-left: 4px;
}

th.educ-sort-asc,
th.educ-sort-desc {
	background-color: rgba(32, 158, 195, 0.18) !important;
}


/* ==================================================================================================
   EDUCAPP — Botones y etiquetas (badges) de Bootstrap, GLOBAL (2026-08-26)
   Aplana el tema "glossy" de bootstrap-theme.css (degradados/bisel) y aplica la paleta oficial
   a .btn-primary/default/success/info/warning/danger y a .label-*. Se conserva la semántica de
   color (éxito=verde, alerta=ámbar, peligro=rojo) igual que en avisos/modales.
   ================================================================================================== */

.btn {
	background-image: none !important;
	text-shadow: none !important;
	box-shadow: none !important;
	border-radius: 6px;
	font-weight: 600;
	transition: background-color .15s ease, border-color .15s ease, transform .1s ease;
}

.btn:active {
	transform: translateY(1px);
}

.btn[disabled],
.btn.disabled {
	opacity: .55 !important;
	transform: none !important;
}

.btn-primary {
	background-color: var(--educ-blue) !important;
	border-color: var(--educ-blue) !important;
	color: var(--educ-white) !important;
}

.btn-primary:hover,
.btn-primary:focus {
	background-color: var(--educ-blue-light) !important;
	border-color: var(--educ-blue-light) !important;
}

.btn-primary:active,
.btn-primary.active {
	background-color: var(--educ-navy) !important;
	border-color: var(--educ-navy) !important;
}

.btn-default {
	background-color: var(--educ-white) !important;
	border-color: var(--educ-border) !important;
	color: var(--educ-navy) !important;
}

.btn-default:hover,
.btn-default:focus {
	background-color: #eef6f9 !important;
	border-color: var(--educ-blue) !important;
	color: var(--educ-navy) !important;
}

.btn-success {
	background-color: #4a9464 !important;
	border-color: #4a9464 !important;
	color: var(--educ-white) !important;
}

.btn-success:hover,
.btn-success:focus {
	background-color: #3d7d54 !important;
	border-color: #3d7d54 !important;
	color: var(--educ-white) !important;
}

.btn-info {
	background-color: #2f7fa8 !important;
	border-color: #2f7fa8 !important;
	color: var(--educ-white) !important;
}

.btn-info:hover,
.btn-info:focus {
	background-color: #276a8c !important;
	border-color: #276a8c !important;
}

.btn-warning {
	background-color: #e8a93a !important;
	border-color: #e8a93a !important;
	color: var(--educ-navy) !important;
}

.btn-warning:hover,
.btn-warning:focus {
	background-color: #f4c363 !important;
	border-color: #f4c363 !important;
}

.btn-danger {
	background-color: #d64550 !important;
	border-color: #d64550 !important;
	color: var(--educ-white) !important;
}

.btn-danger:hover,
.btn-danger:focus {
	background-color: #c53744 !important;
	border-color: #c53744 !important;
}

/* ---- Etiquetas / badges de estado (.label-*) ---- */
.label {
	border-radius: 12px;
	font-weight: 600;
	padding: 3px 9px;
}

.label-default {
	background-color: #8aa0ac !important;
}

.label-primary {
	background-color: var(--educ-blue) !important;
}

.label-success {
	background-color: var(--educ-green) !important;
	color: var(--educ-navy) !important;
}

.label-info {
	background-color: var(--educ-blue-light) !important;
}

.label-warning {
	background-color: #e8a93a !important;
	color: var(--educ-navy) !important;
}

.label-danger {
	background-color: #d64550 !important;
}


/* ==================================================================================================
   EDUCAPP — Refinamiento de botones "más profesional" (2026-08-26, ronda 3 — corregido)
   La ronda 2 le agregó sombra/profundidad a TODOS los .btn de la app, incluyendo botones que no
   tenían nada que ver (ícono circular de ayuda, inicio, salir), rompiéndoles el look. Se revirtió
   ese alcance global: ahora SOLO se ve afectado el botón en cuestión — los grupos de ícono+flecha
   de despliegue (calendario/mensajes/eventos/avisos y similares), identificados porque son los
   únicos .btn-group que contienen un .dropdown-toggle. Los botones sueltos (ayuda, inicio, salir,
   actualizaciones) no tienen .dropdown-toggle adentro, así que no los toca esta regla.
   ================================================================================================== */

.btn-group:has(.dropdown-toggle) {
	display: inline-flex !important;
	border-radius: 6px;
}

.btn-group:has(.dropdown-toggle) > .btn {
	border-radius: 0 !important;
	box-shadow: none !important;
	transition: background-color .15s ease;
}

.btn-group:has(.dropdown-toggle) > .btn:first-child {
	border-top-left-radius: 6px !important;
	border-bottom-left-radius: 6px !important;
}

.btn-group:has(.dropdown-toggle) > .btn:last-child {
	border-top-right-radius: 6px !important;
	border-bottom-right-radius: 6px !important;
}

/* separador sutil entre el botón principal y su flecha de dropdown */
.btn-group:has(.dropdown-toggle) > .btn.dropdown-toggle {
	border-left: 1px solid rgba(0, 0, 0, .16) !important;
	padding-left: 10px;
	padding-right: 10px;
}

.btn-group:has(.dropdown-toggle) > .btn + .btn {
	margin-left: 0 !important;
}


/* ==================================================================================================
   EDUCAPP — Sidebar: logo del plantel + tarjeta de perfil del usuario (2026-08-26)
   ================================================================================================== */

.logo {
	border-right: none;
	padding: 16px 10px;
	box-shadow: 0 1px 0 rgba(0, 42, 72, .08);
}

.user-data {
	border-right: none;
	border-top: none;
	padding: 18px 10px 14px;
	box-shadow: 0 1px 0 rgba(0, 42, 72, .08);
}

.user-data-img {
	width: 52px;
	height: 52px;
	border: 3px solid var(--educ-blue);
	box-shadow: 0 0 0 3px rgba(32, 158, 195, .15);
}

.user-title {
	color: var(--educ-navy);
	font-weight: 700;
	letter-spacing: .3px;
	font-size: 16px;
	margin-top: 10px;
	text-transform: uppercase;
}

.user-sub {
	color: var(--educ-muted);
	font-size: 12.5px;
	margin-top: 2px;
}

.icons-user a i.btn {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	font-size: 13px !important;
	padding: 0 !important;
}