diff --git a/SERVER.txt b/SERVER.txt new file mode 100644 index 0000000..7af0d64 --- /dev/null +++ b/SERVER.txt @@ -0,0 +1,28 @@ +.\cdsalud\Scripts\activate +.\cdsalud\scripts\activate.ps1 + & s:/CDSALUD/cdsalud/Scripts/Activate.ps1 + +django-admin startproject project +python manage.py startapp app + +pip3 install django +pip3 install mysqlclient +pip3 install django-mysql +pip3 install django-crispy-forms + +pip3 install django-ckeditor +pip3 install Pillow +pip3 install django-tinymce +pip3 install xhtml2pdf +pip3 install django-model-utils +pip3 install openpyxl + + +python manage.py makemigrations +python manage.py migrate +python manage.py migrate auth + +python manage.py runserver 0.0.0.0:8000 + +mxsigco1_cdsalud +jU4sc%KUMj8& diff --git a/autenticacion/__init__.py b/autenticacion/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/autenticacion/__pycache__/__init__.cpython-310.pyc b/autenticacion/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..2c6198a Binary files /dev/null and b/autenticacion/__pycache__/__init__.cpython-310.pyc differ diff --git a/autenticacion/__pycache__/__init__.cpython-39.pyc b/autenticacion/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..e25662c Binary files /dev/null and b/autenticacion/__pycache__/__init__.cpython-39.pyc differ diff --git a/autenticacion/__pycache__/forms.cpython-310.pyc b/autenticacion/__pycache__/forms.cpython-310.pyc new file mode 100644 index 0000000..7ae9079 Binary files /dev/null and b/autenticacion/__pycache__/forms.cpython-310.pyc differ diff --git a/autenticacion/__pycache__/forms.cpython-39.pyc b/autenticacion/__pycache__/forms.cpython-39.pyc new file mode 100644 index 0000000..3e49181 Binary files /dev/null and b/autenticacion/__pycache__/forms.cpython-39.pyc differ diff --git a/autenticacion/__pycache__/views.cpython-310.pyc b/autenticacion/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000..d08972c Binary files /dev/null and b/autenticacion/__pycache__/views.cpython-310.pyc differ diff --git a/autenticacion/__pycache__/views.cpython-39.pyc b/autenticacion/__pycache__/views.cpython-39.pyc new file mode 100644 index 0000000..7161b72 Binary files /dev/null and b/autenticacion/__pycache__/views.cpython-39.pyc differ diff --git a/autenticacion/admin.py b/autenticacion/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/autenticacion/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/autenticacion/apps.py b/autenticacion/apps.py new file mode 100644 index 0000000..1135509 --- /dev/null +++ b/autenticacion/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class AutenticacionConfig(AppConfig): + name = 'autenticacion' diff --git a/autenticacion/forms.py b/autenticacion/forms.py new file mode 100644 index 0000000..f214e1e --- /dev/null +++ b/autenticacion/forms.py @@ -0,0 +1,16 @@ +from django import forms +from django.contrib.auth.models import User +from django.contrib.auth.forms import UserCreationForm + +class UserForm(UserCreationForm): + first_name = forms.CharField() + last_name = forms.CharField() + + + class Meta: + model = User + fields = ('first_name','last_name', 'username', 'password1' ,'password2' ) + + + + \ No newline at end of file diff --git a/autenticacion/migrations/__init__.py b/autenticacion/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/autenticacion/models.py b/autenticacion/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/autenticacion/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/autenticacion/tests.py b/autenticacion/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/autenticacion/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/autenticacion/views.py b/autenticacion/views.py new file mode 100644 index 0000000..450c335 --- /dev/null +++ b/autenticacion/views.py @@ -0,0 +1,76 @@ +from django.shortcuts import render, redirect, get_object_or_404 +from django.views.generic import View +from django.contrib.auth.forms import AuthenticationForm +from django.contrib.auth.models import User +from django.contrib import messages +from django.contrib.auth import login, logout, authenticate +from .forms import UserForm +from django.contrib.auth.decorators import login_required + + +def acceder(request): + if request.method == "POST": + form = AuthenticationForm(request, data=request.POST) + if form.is_valid(): + nombre_usuario = form.cleaned_data.get("username") + password = form.cleaned_data.get("password") + usuario = authenticate(username=nombre_usuario, password=password) + if usuario is not None: + login(request, usuario) + messages.success(request, F"Bienvenid@ de nuevo {nombre_usuario}") + return redirect("index") + else: + messages.error(request, "Los datos son incorrectos") + else: + messages.error(request, "Los datos son incorrectos") + + form = AuthenticationForm() + return render(request, "acceder.html", {"form": form}) + + +# Create your views here. +class VistaRegistro(View): + def get(self, request): + form = UserForm() + return render(request, "registro.html", {"form": form}) + + + def post(self, request): + form = UserForm(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + return redirect("usuarios") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + return render(request, "registro.html", {"form": form}) + + + +def salir(request): + logout(request) + messages.success(request, F"Tu sesion se ha cerrado correctamente") + return redirect("index") + + +def usuarios(request): + datos = User.objects.all() + return render(request, 'usuarios.html', {"datos": datos}) + + +@login_required(login_url='/acceder') +def userupdate(request, id): + instance= get_object_or_404(User, pk=id) + form = UserForm(request.POST or None, instance=instance) + context= {'form': form} + if form.is_valid(): + obj= form.save(commit= False) + obj.save() + messages.success(request, "El usuario fue actualizado") + return redirect("usuarios") + + else: + context= {'form': form, 'error': 'Error al actualizar'} + return render(request,'usuariosupdate.html' , context) diff --git a/bitacora/__init__.py b/bitacora/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/bitacora/__pycache__/__init__.cpython-310.pyc b/bitacora/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..a154452 Binary files /dev/null and b/bitacora/__pycache__/__init__.cpython-310.pyc differ diff --git a/bitacora/__pycache__/__init__.cpython-39.pyc b/bitacora/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..32d5969 Binary files /dev/null and b/bitacora/__pycache__/__init__.cpython-39.pyc differ diff --git a/bitacora/__pycache__/admin.cpython-310.pyc b/bitacora/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000..22db911 Binary files /dev/null and b/bitacora/__pycache__/admin.cpython-310.pyc differ diff --git a/bitacora/__pycache__/admin.cpython-39.pyc b/bitacora/__pycache__/admin.cpython-39.pyc new file mode 100644 index 0000000..47f073c Binary files /dev/null and b/bitacora/__pycache__/admin.cpython-39.pyc differ diff --git a/bitacora/__pycache__/apps.cpython-310.pyc b/bitacora/__pycache__/apps.cpython-310.pyc new file mode 100644 index 0000000..5c74092 Binary files /dev/null and b/bitacora/__pycache__/apps.cpython-310.pyc differ diff --git a/bitacora/__pycache__/apps.cpython-39.pyc b/bitacora/__pycache__/apps.cpython-39.pyc new file mode 100644 index 0000000..64ff2d5 Binary files /dev/null and b/bitacora/__pycache__/apps.cpython-39.pyc differ diff --git a/bitacora/__pycache__/forms.cpython-310.pyc b/bitacora/__pycache__/forms.cpython-310.pyc new file mode 100644 index 0000000..f8835dc Binary files /dev/null and b/bitacora/__pycache__/forms.cpython-310.pyc differ diff --git a/bitacora/__pycache__/forms.cpython-39.pyc b/bitacora/__pycache__/forms.cpython-39.pyc new file mode 100644 index 0000000..3c58aa3 Binary files /dev/null and b/bitacora/__pycache__/forms.cpython-39.pyc differ diff --git a/bitacora/__pycache__/models.cpython-310.pyc b/bitacora/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000..8440829 Binary files /dev/null and b/bitacora/__pycache__/models.cpython-310.pyc differ diff --git a/bitacora/__pycache__/models.cpython-39.pyc b/bitacora/__pycache__/models.cpython-39.pyc new file mode 100644 index 0000000..5083c7b Binary files /dev/null and b/bitacora/__pycache__/models.cpython-39.pyc differ diff --git a/bitacora/__pycache__/views.cpython-310.pyc b/bitacora/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000..1344b25 Binary files /dev/null and b/bitacora/__pycache__/views.cpython-310.pyc differ diff --git a/bitacora/__pycache__/views.cpython-39.pyc b/bitacora/__pycache__/views.cpython-39.pyc new file mode 100644 index 0000000..fe1f9d4 Binary files /dev/null and b/bitacora/__pycache__/views.cpython-39.pyc differ diff --git a/bitacora/admin.py b/bitacora/admin.py new file mode 100644 index 0000000..5a7429e --- /dev/null +++ b/bitacora/admin.py @@ -0,0 +1,5 @@ +from django.contrib import admin +from .models import bitreporte + +# Register your models here. +admin.site.register(bitreporte) \ No newline at end of file diff --git a/bitacora/apps.py b/bitacora/apps.py new file mode 100644 index 0000000..1d4921c --- /dev/null +++ b/bitacora/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class BitacoraConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'bitacora' diff --git a/bitacora/forms.py b/bitacora/forms.py new file mode 100644 index 0000000..6a9158b --- /dev/null +++ b/bitacora/forms.py @@ -0,0 +1,26 @@ +from django import forms +from .models import bitreporte + + +class FormBitReporte(forms.ModelForm): + def __init__(self, *args, **kwargs): + super(FormBitReporte, self).__init__(*args, **kwargs) + self.fields['n_year'].widget.attrs['readonly'] = True + self.fields['hora'].widget.attrs['readonly'] = True + + class Meta: + model = bitreporte + fields = ('n_reporte', 'n_year', 'area', 'reporte', 'quien_reporta', 'asignado', 'recibido_por', 'hora', 'pendiente', 'control_bit') + + +class FormBitReporteEnv(forms.ModelForm): + def __init__(self, *args, **kwargs): + super(FormBitReporteEnv, self).__init__(*args, **kwargs) + + class Meta: + model = bitreporte + fields = ('area', 'reporte', 'quien_reporta', 'asignado', 'recibido_por') + + + + diff --git a/bitacora/migrations/0001_initial.py b/bitacora/migrations/0001_initial.py new file mode 100644 index 0000000..7ba44c9 --- /dev/null +++ b/bitacora/migrations/0001_initial.py @@ -0,0 +1,38 @@ +# Generated by Django 3.2.7 on 2021-10-08 10:08 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('inventarioalmacen', '0008_alter_equipo_options'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='bitreporte', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('n_reporte', models.IntegerField(verbose_name='No. Reporte')), + ('fecha', models.DateField(auto_now_add=True, verbose_name='Fecha')), + ('reporte', models.CharField(max_length=250, verbose_name='Reporte')), + ('quien_reporta', models.CharField(max_length=250, verbose_name='Quien Reporta')), + ('realizado', models.CharField(max_length=250, unique=True, verbose_name='Realizado')), + ('pendiente', models.CharField(choices=[('Realizado', 'Realizado'), ('Pendiente', 'Pendiente')], default='Pendiente', max_length=20, verbose_name='Pendiente')), + ('area', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='inventarioalmacen.area', verbose_name='Area')), + ('asignado', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='Asignado', to=settings.AUTH_USER_MODEL, verbose_name='Asignado A')), + ('recibido_por', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='Recibio', to=settings.AUTH_USER_MODEL, verbose_name='Recibido Por')), + ], + options={ + 'verbose_name': 'Bitacora Reporte', + 'verbose_name_plural': 'Bitacora Reportes', + 'ordering': ['-id'], + }, + ), + ] diff --git a/bitacora/migrations/0002_auto_20211008_0528.py b/bitacora/migrations/0002_auto_20211008_0528.py new file mode 100644 index 0000000..d6c92d9 --- /dev/null +++ b/bitacora/migrations/0002_auto_20211008_0528.py @@ -0,0 +1,28 @@ +# Generated by Django 3.2.7 on 2021-10-08 10:28 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('bitacora', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='bitreporte', + name='hora', + field=models.CharField(default='05:28:00', max_length=50, verbose_name='05:28:00'), + ), + migrations.AddField( + model_name='bitreporte', + name='n_year', + field=models.CharField(default='21', max_length=4, verbose_name='21'), + ), + migrations.AlterField( + model_name='bitreporte', + name='realizado', + field=models.CharField(max_length=250, verbose_name='Realizado'), + ), + ] diff --git a/bitacora/migrations/0003_alter_bitreporte_hora.py b/bitacora/migrations/0003_alter_bitreporte_hora.py new file mode 100644 index 0000000..0ada2ed --- /dev/null +++ b/bitacora/migrations/0003_alter_bitreporte_hora.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.7 on 2021-10-10 07:03 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('bitacora', '0002_auto_20211008_0528'), + ] + + operations = [ + migrations.AlterField( + model_name='bitreporte', + name='hora', + field=models.CharField(default='02:03:31', max_length=50, verbose_name='02:03:31'), + ), + ] diff --git a/bitacora/migrations/0004_auto_20211010_0540.py b/bitacora/migrations/0004_auto_20211010_0540.py new file mode 100644 index 0000000..286bb4e --- /dev/null +++ b/bitacora/migrations/0004_auto_20211010_0540.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.7 on 2021-10-10 10:40 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('bitacora', '0003_alter_bitreporte_hora'), + ] + + operations = [ + migrations.AlterField( + model_name='bitreporte', + name='hora', + field=models.CharField(default='05:40:25', max_length=50, verbose_name='Hora'), + ), + migrations.AlterField( + model_name='bitreporte', + name='n_year', + field=models.CharField(max_length=4, verbose_name='Año'), + ), + ] diff --git a/bitacora/migrations/0005_alter_bitreporte_hora.py b/bitacora/migrations/0005_alter_bitreporte_hora.py new file mode 100644 index 0000000..f116f76 --- /dev/null +++ b/bitacora/migrations/0005_alter_bitreporte_hora.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.7 on 2021-10-10 21:51 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('bitacora', '0004_auto_20211010_0540'), + ] + + operations = [ + migrations.AlterField( + model_name='bitreporte', + name='hora', + field=models.CharField(max_length=50, verbose_name='Hora'), + ), + ] diff --git a/bitacora/migrations/0006_bitreporte_control_bit.py b/bitacora/migrations/0006_bitreporte_control_bit.py new file mode 100644 index 0000000..f40be67 --- /dev/null +++ b/bitacora/migrations/0006_bitreporte_control_bit.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.8 on 2021-11-04 04:33 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('bitacora', '0005_alter_bitreporte_hora'), + ] + + operations = [ + migrations.AddField( + model_name='bitreporte', + name='control_bit', + field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Control Bitacora'), + ), + ] diff --git a/bitacora/migrations/0007_auto_20211105_1526.py b/bitacora/migrations/0007_auto_20211105_1526.py new file mode 100644 index 0000000..78fe9cb --- /dev/null +++ b/bitacora/migrations/0007_auto_20211105_1526.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.7 on 2021-11-05 21:26 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('bitacora', '0006_bitreporte_control_bit'), + ] + + operations = [ + migrations.AlterField( + model_name='bitreporte', + name='pendiente', + field=models.CharField(blank=True, choices=[('Realizado', 'Realizado'), ('Pendiente', 'Pendiente')], default='Pendiente', max_length=20, null=True, verbose_name='Pendiente'), + ), + migrations.AlterField( + model_name='bitreporte', + name='realizado', + field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Realizado'), + ), + ] diff --git a/bitacora/migrations/0008_alter_bitreporte_control_bit.py b/bitacora/migrations/0008_alter_bitreporte_control_bit.py new file mode 100644 index 0000000..00de795 --- /dev/null +++ b/bitacora/migrations/0008_alter_bitreporte_control_bit.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.8 on 2021-11-08 08:29 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('bitacora', '0007_auto_20211105_1526'), + ] + + operations = [ + migrations.AlterField( + model_name='bitreporte', + name='control_bit', + field=models.CharField(blank=True, max_length=250, null=True, unique=True, verbose_name='Control Bitacora'), + ), + ] diff --git a/bitacora/migrations/0009_alter_bitreporte_pendiente.py b/bitacora/migrations/0009_alter_bitreporte_pendiente.py new file mode 100644 index 0000000..7d34330 --- /dev/null +++ b/bitacora/migrations/0009_alter_bitreporte_pendiente.py @@ -0,0 +1,18 @@ +# Generated by Django 4.0.2 on 2022-03-10 17:19 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('bitacora', '0008_alter_bitreporte_control_bit'), + ] + + operations = [ + migrations.AlterField( + model_name='bitreporte', + name='pendiente', + field=models.CharField(blank=True, choices=[('Bitacora', 'Bitacora'), ('Pendiente', 'Pendiente'), ('Realizado', 'Realizado')], default='Bitacora', max_length=20, null=True, verbose_name='Bitacora'), + ), + ] diff --git a/bitacora/migrations/__init__.py b/bitacora/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/bitacora/migrations/__pycache__/0001_initial.cpython-310.pyc b/bitacora/migrations/__pycache__/0001_initial.cpython-310.pyc new file mode 100644 index 0000000..6ac12ac Binary files /dev/null and b/bitacora/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/bitacora/migrations/__pycache__/0001_initial.cpython-39.pyc b/bitacora/migrations/__pycache__/0001_initial.cpython-39.pyc new file mode 100644 index 0000000..50506d1 Binary files /dev/null and b/bitacora/migrations/__pycache__/0001_initial.cpython-39.pyc differ diff --git a/bitacora/migrations/__pycache__/0002_auto_20211008_0528.cpython-310.pyc b/bitacora/migrations/__pycache__/0002_auto_20211008_0528.cpython-310.pyc new file mode 100644 index 0000000..3fbfe0f Binary files /dev/null and b/bitacora/migrations/__pycache__/0002_auto_20211008_0528.cpython-310.pyc differ diff --git a/bitacora/migrations/__pycache__/0002_auto_20211008_0528.cpython-39.pyc b/bitacora/migrations/__pycache__/0002_auto_20211008_0528.cpython-39.pyc new file mode 100644 index 0000000..c400f6f Binary files /dev/null and b/bitacora/migrations/__pycache__/0002_auto_20211008_0528.cpython-39.pyc differ diff --git a/bitacora/migrations/__pycache__/0003_alter_bitreporte_hora.cpython-310.pyc b/bitacora/migrations/__pycache__/0003_alter_bitreporte_hora.cpython-310.pyc new file mode 100644 index 0000000..98d8dea Binary files /dev/null and b/bitacora/migrations/__pycache__/0003_alter_bitreporte_hora.cpython-310.pyc differ diff --git a/bitacora/migrations/__pycache__/0003_alter_bitreporte_hora.cpython-39.pyc b/bitacora/migrations/__pycache__/0003_alter_bitreporte_hora.cpython-39.pyc new file mode 100644 index 0000000..62464b6 Binary files /dev/null and b/bitacora/migrations/__pycache__/0003_alter_bitreporte_hora.cpython-39.pyc differ diff --git a/bitacora/migrations/__pycache__/0004_auto_20211010_0540.cpython-310.pyc b/bitacora/migrations/__pycache__/0004_auto_20211010_0540.cpython-310.pyc new file mode 100644 index 0000000..d92e5a1 Binary files /dev/null and b/bitacora/migrations/__pycache__/0004_auto_20211010_0540.cpython-310.pyc differ diff --git a/bitacora/migrations/__pycache__/0004_auto_20211010_0540.cpython-39.pyc b/bitacora/migrations/__pycache__/0004_auto_20211010_0540.cpython-39.pyc new file mode 100644 index 0000000..05c12a8 Binary files /dev/null and b/bitacora/migrations/__pycache__/0004_auto_20211010_0540.cpython-39.pyc differ diff --git a/bitacora/migrations/__pycache__/0005_alter_bitreporte_hora.cpython-310.pyc b/bitacora/migrations/__pycache__/0005_alter_bitreporte_hora.cpython-310.pyc new file mode 100644 index 0000000..a74d2b8 Binary files /dev/null and b/bitacora/migrations/__pycache__/0005_alter_bitreporte_hora.cpython-310.pyc differ diff --git a/bitacora/migrations/__pycache__/0005_alter_bitreporte_hora.cpython-39.pyc b/bitacora/migrations/__pycache__/0005_alter_bitreporte_hora.cpython-39.pyc new file mode 100644 index 0000000..d915531 Binary files /dev/null and b/bitacora/migrations/__pycache__/0005_alter_bitreporte_hora.cpython-39.pyc differ diff --git a/bitacora/migrations/__pycache__/0006_bitreporte_control_bit.cpython-310.pyc b/bitacora/migrations/__pycache__/0006_bitreporte_control_bit.cpython-310.pyc new file mode 100644 index 0000000..06501e2 Binary files /dev/null and b/bitacora/migrations/__pycache__/0006_bitreporte_control_bit.cpython-310.pyc differ diff --git a/bitacora/migrations/__pycache__/0006_bitreporte_control_bit.cpython-39.pyc b/bitacora/migrations/__pycache__/0006_bitreporte_control_bit.cpython-39.pyc new file mode 100644 index 0000000..aded6a6 Binary files /dev/null and b/bitacora/migrations/__pycache__/0006_bitreporte_control_bit.cpython-39.pyc differ diff --git a/bitacora/migrations/__pycache__/0007_auto_20211105_1526.cpython-310.pyc b/bitacora/migrations/__pycache__/0007_auto_20211105_1526.cpython-310.pyc new file mode 100644 index 0000000..f28bc63 Binary files /dev/null and b/bitacora/migrations/__pycache__/0007_auto_20211105_1526.cpython-310.pyc differ diff --git a/bitacora/migrations/__pycache__/0007_auto_20211105_1526.cpython-39.pyc b/bitacora/migrations/__pycache__/0007_auto_20211105_1526.cpython-39.pyc new file mode 100644 index 0000000..6f493d5 Binary files /dev/null and b/bitacora/migrations/__pycache__/0007_auto_20211105_1526.cpython-39.pyc differ diff --git a/bitacora/migrations/__pycache__/0008_alter_bitreporte_control_bit.cpython-310.pyc b/bitacora/migrations/__pycache__/0008_alter_bitreporte_control_bit.cpython-310.pyc new file mode 100644 index 0000000..5e0e554 Binary files /dev/null and b/bitacora/migrations/__pycache__/0008_alter_bitreporte_control_bit.cpython-310.pyc differ diff --git a/bitacora/migrations/__pycache__/0008_alter_bitreporte_control_bit.cpython-39.pyc b/bitacora/migrations/__pycache__/0008_alter_bitreporte_control_bit.cpython-39.pyc new file mode 100644 index 0000000..bc1d400 Binary files /dev/null and b/bitacora/migrations/__pycache__/0008_alter_bitreporte_control_bit.cpython-39.pyc differ diff --git a/bitacora/migrations/__pycache__/0009_alter_bitreporte_pendiente.cpython-310.pyc b/bitacora/migrations/__pycache__/0009_alter_bitreporte_pendiente.cpython-310.pyc new file mode 100644 index 0000000..5a86f16 Binary files /dev/null and b/bitacora/migrations/__pycache__/0009_alter_bitreporte_pendiente.cpython-310.pyc differ diff --git a/bitacora/migrations/__pycache__/__init__.cpython-310.pyc b/bitacora/migrations/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..c6f9f56 Binary files /dev/null and b/bitacora/migrations/__pycache__/__init__.cpython-310.pyc differ diff --git a/bitacora/migrations/__pycache__/__init__.cpython-39.pyc b/bitacora/migrations/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..c094091 Binary files /dev/null and b/bitacora/migrations/__pycache__/__init__.cpython-39.pyc differ diff --git a/bitacora/models.py b/bitacora/models.py new file mode 100644 index 0000000..2eec4bd --- /dev/null +++ b/bitacora/models.py @@ -0,0 +1,36 @@ +from django.db import models +from django.contrib.auth.models import User +import os +from tinymce import models as tinymce_models +from model_utils import Choices +from inventarioalmacen.models import * +from datetime import datetime + + +# Create your models here. + +class bitreporte(models.Model): + STATUS = Choices('Bitacora', 'Pendiente', 'Realizado') + n_reporte = models.IntegerField(verbose_name='No. Reporte') + n_year = models.CharField(max_length=4, null=False, verbose_name='Año') + fecha = models.DateField(auto_now_add=True, verbose_name='Fecha') + area = models.ForeignKey(area, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Area') + reporte = models.CharField(max_length=250, null=False, verbose_name='Reporte') + quien_reporta = models.CharField(max_length=250, null=False, verbose_name='Quien Reporta') + asignado = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, related_name='Asignado', verbose_name='Asignado A') + recibido_por = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, related_name='Recibio', verbose_name='Recibido Por') + hora = models.CharField(max_length=50, null=False, verbose_name='Hora') + realizado = models.CharField(max_length=250, null=True, blank=True, verbose_name='Realizado') + pendiente = models.CharField(choices=STATUS, null=True, blank=True, default=STATUS.Bitacora, max_length=20, verbose_name='Bitacora') + control_bit = models.CharField(max_length=250, unique=True, null=True, blank=True, verbose_name='Control Bitacora') + + def __str__(self): + return str(self.n_reporte) + + class Meta: + verbose_name = 'Bitacora Reporte' + verbose_name_plural = 'Bitacora Reportes' + ordering = ['-id'] + + + diff --git a/bitacora/tests.py b/bitacora/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/bitacora/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/bitacora/views.py b/bitacora/views.py new file mode 100644 index 0000000..dfffbb7 --- /dev/null +++ b/bitacora/views.py @@ -0,0 +1,166 @@ +from django.shortcuts import render, redirect, get_object_or_404 +from django.contrib import messages +from django.contrib.auth.decorators import login_required +from django.contrib.auth.models import User +from .models import bitreporte +from .forms import FormBitReporte, FormBitReporteEnv +from inventarioalmacen.models import area +from datetime import datetime +import datetime +from servicios.models import serviciorealizado, accesorios +from openpyxl import Workbook +from django.http.response import HttpResponse + + +date = datetime.datetime.now() +year = date.strftime('%y') +h = date.strftime("%H:%M:%S") + +# Create your views here. +@login_required(login_url='/acceder') +def bitacora(request): + datos = bitreporte.objects.filter(pendiente='Bitacora') + servicios = serviciorealizado.objects.all() + usuarios = User.objects.all() + accesorio = accesorios.objects.all() + return render(request, "bitacora.html", {"datos": datos, "servicios": servicios, "usuarios": usuarios, "accesorio": accesorio}) + + +@login_required(login_url='/acceder') +def crear_bitacora(request): + if request.method == "POST": + form = FormBitReporte(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + titulo = form.cleaned_data.get("n_reporte") + messages.success(request, f"El reporte {titulo} se ha creado correctamente") + return redirect("bitacora") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + reporte = bitreporte.objects.latest('id') + date = datetime.datetime.now() + year = date.strftime('%y') + h = date.strftime("%H:%M:%S") + dato_rep = reporte.n_reporte + 1 + dato_year = reporte.n_year + if year != dato_year : + new_year = year + dato_rep = 1 + hora = h + form = FormBitReporteEnv() + return render(request, "crear_bitacora.html", {"form": form, "dato_rep":dato_rep, "new_year":new_year, "hora":hora}) + new_year = dato_year + hora = h + form = FormBitReporteEnv() + return render(request, "crear_bitacora.html", {"form": form, "dato_rep":dato_rep, "new_year":new_year, "hora":hora}) + + +@login_required(login_url='/acceder') +def ActualizarBitacora(request, id): + instance= get_object_or_404(bitreporte, pk=id) + form = FormBitReporte(request.POST or None, instance=instance) + context= {'form': form} + if form.is_valid(): + obj= form.save(commit= False) + obj.save() + messages.success(request, "La Bitacora fue actualizada") + return redirect("bitacora") + + else: + context= {'form': form, 'error': 'Error al actualizar'} + return render(request,'actualizar_bitacora.html' , context) + + + +@login_required(login_url='/acceder') +def ReporteExcelBitacora(request): + bitacoras = bitreporte.objects.all() + ibs = User.objects.all() + bitareas = area.objects.all() + datosservicio = serviciorealizado.objects.all() + datosaccesorios = accesorios.objects.all() + fecha = datetime.datetime.now() + fe = str(fecha) + wb = Workbook() + ws = wb.active + ws['B1'] = 'REPORTE DE SERVICIOS CONCLUIDOS' + + ws.merge_cells('B1:L1') + + ws['B2'] = datetime.datetime.now() + + ws.merge_cells('B2:D2') + + ws['B3'] = 'No. REPORTE' + ws['C3'] = 'FECHA' + ws['D3'] = 'AREA' + ws['E3'] = 'REPORTE' + ws['F3'] = 'QUIEN REPORTA' + ws['G3'] = 'ASIGNADO' + ws['H3'] = 'RECIBIO' + ws['I3'] = 'HORA' + ws['J3'] = 'SERVICIOS' + ws['K3'] = 'ACCESORIOS' + + + cont = 4 + + for bitacora in bitacoras: + for ib in ibs: + if bitacora.recibido_por_id == ib.id: + recibido = ib.username + for ib in ibs: + if bitacora.asignado_id == ib.id: + asignado = ib.username + + for bitarea in bitareas: + if bitacora.area_id == bitarea.id: + datoarea = bitarea.nombre + + count = 0 + serreali = "" + for datoservicio in datosservicio: + if bitacora.control_bit == datoservicio.control_bit: + count = count + 1 + realizado = str(count) + " - " + datoservicio.descripcion + serreali = serreali + " // " + realizado + if count == 0 : + serreali = "" + count = 0 + + count1 = 0 + seracce = "" + for datoaccesorios in datosaccesorios: + if bitacora.control_bit == datoaccesorios.control_bit: + count1 = count1 + 1 + acceso = str(count1) + " - " + datoaccesorios.n_parte + " | " + datoaccesorios.descripcion + seracce = seracce + " // " + acceso + if count1 == 0 : + seracce = "" + + ws.cell(row=cont, column=2).value = bitacora.control_bit + ws.cell(row=cont, column=3).value = bitacora.fecha + ws.cell(row=cont, column=4).value = datoarea + ws.cell(row=cont, column=5).value = bitacora.reporte + ws.cell(row=cont, column=6).value = bitacora.quien_reporta + ws.cell(row=cont, column=7).value = asignado + ws.cell(row=cont, column=8).value = recibido + ws.cell(row=cont, column=9).value = bitacora.hora + ws.cell(row=cont, column=10).value = serreali + ws.cell(row=cont, column=11).value = seracce + + cont += 1 + serreali = "" + seracce = "" + + + nombre_archivo = "ReporteServicioConcluidos "+fe+".xlsx" + response = HttpResponse(content_type="application/ms-excel") + content = "attachment; filename = {0}".format(nombre_archivo) + response['Content-Disposition'] = content + wb.save(response) + return response + diff --git a/inventario/__init__.py b/inventario/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/inventario/__pycache__/__init__.cpython-310.pyc b/inventario/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..bb7f91f Binary files /dev/null and b/inventario/__pycache__/__init__.cpython-310.pyc differ diff --git a/inventario/__pycache__/__init__.cpython-39.pyc b/inventario/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..dd903df Binary files /dev/null and b/inventario/__pycache__/__init__.cpython-39.pyc differ diff --git a/inventario/__pycache__/admin.cpython-310.pyc b/inventario/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000..fe04e82 Binary files /dev/null and b/inventario/__pycache__/admin.cpython-310.pyc differ diff --git a/inventario/__pycache__/admin.cpython-39.pyc b/inventario/__pycache__/admin.cpython-39.pyc new file mode 100644 index 0000000..c166099 Binary files /dev/null and b/inventario/__pycache__/admin.cpython-39.pyc differ diff --git a/inventario/__pycache__/apps.cpython-310.pyc b/inventario/__pycache__/apps.cpython-310.pyc new file mode 100644 index 0000000..10f9699 Binary files /dev/null and b/inventario/__pycache__/apps.cpython-310.pyc differ diff --git a/inventario/__pycache__/apps.cpython-39.pyc b/inventario/__pycache__/apps.cpython-39.pyc new file mode 100644 index 0000000..f25e2aa Binary files /dev/null and b/inventario/__pycache__/apps.cpython-39.pyc differ diff --git a/inventario/__pycache__/forms.cpython-310.pyc b/inventario/__pycache__/forms.cpython-310.pyc new file mode 100644 index 0000000..b25bd3e Binary files /dev/null and b/inventario/__pycache__/forms.cpython-310.pyc differ diff --git a/inventario/__pycache__/forms.cpython-39.pyc b/inventario/__pycache__/forms.cpython-39.pyc new file mode 100644 index 0000000..054efbb Binary files /dev/null and b/inventario/__pycache__/forms.cpython-39.pyc differ diff --git a/inventario/__pycache__/models.cpython-310.pyc b/inventario/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000..2137b4e Binary files /dev/null and b/inventario/__pycache__/models.cpython-310.pyc differ diff --git a/inventario/__pycache__/models.cpython-39.pyc b/inventario/__pycache__/models.cpython-39.pyc new file mode 100644 index 0000000..2420773 Binary files /dev/null and b/inventario/__pycache__/models.cpython-39.pyc differ diff --git a/inventario/__pycache__/views.cpython-310.pyc b/inventario/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000..2b3e38f Binary files /dev/null and b/inventario/__pycache__/views.cpython-310.pyc differ diff --git a/inventario/__pycache__/views.cpython-39.pyc b/inventario/__pycache__/views.cpython-39.pyc new file mode 100644 index 0000000..6db2e4e Binary files /dev/null and b/inventario/__pycache__/views.cpython-39.pyc differ diff --git a/inventario/admin.py b/inventario/admin.py new file mode 100644 index 0000000..5b1ba12 --- /dev/null +++ b/inventario/admin.py @@ -0,0 +1,6 @@ +from django.contrib import admin +from .models import invequipo + + +# Register your models here. +admin.site.register(invequipo) \ No newline at end of file diff --git a/inventario/apps.py b/inventario/apps.py new file mode 100644 index 0000000..0478bb5 --- /dev/null +++ b/inventario/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class InventarioConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'inventario' diff --git a/inventario/forms.py b/inventario/forms.py new file mode 100644 index 0000000..64a2d1c --- /dev/null +++ b/inventario/forms.py @@ -0,0 +1,9 @@ +from django import forms +from .models import invequipo + + +class Formularioinvequipo(forms.ModelForm): + class Meta: + model = invequipo + fields = ('n_control', 'estado_funcional', 'obsoleto', 'localizado', 'equipo', 'area', 'marca', 'modelo', 'n_serie', 'descripcion', 'n_act_fijo', 'accesorios', 'accesorios2', 'accesorios3', 'accesorios4', 'accesorios5', 'provedor', 'c_basico', 'fecha_inst', 'inventariado') + diff --git a/inventario/migrations/0001_initial.py b/inventario/migrations/0001_initial.py new file mode 100644 index 0000000..f66b56a --- /dev/null +++ b/inventario/migrations/0001_initial.py @@ -0,0 +1,44 @@ +# Generated by Django 3.2.7 on 2021-10-06 12:24 + +from django.db import migrations, models +import django.db.models.deletion +import tinymce.models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('inventarioalmacen', '0007_area'), + ] + + operations = [ + migrations.CreateModel( + name='invequipo', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('estado_funcional', models.CharField(choices=[('Funcionando', 'Funcionando'), ('No Funcionando', 'No Funcionando')], default='Funcionando', max_length=20, verbose_name='Estado Funcional')), + ('n_control', models.IntegerField(unique=True, verbose_name='No Control')), + ('descripcion', tinymce.models.HTMLField(verbose_name='Descripción')), + ('modelo', models.CharField(blank=True, max_length=250, null=True, verbose_name='Modelo')), + ('n_serie', models.CharField(max_length=250, unique=True, verbose_name='No Serie')), + ('accesorios', models.CharField(blank=True, max_length=250, null=True, verbose_name='Accesorios')), + ('obsoleto', models.CharField(blank=True, max_length=250, null=True, verbose_name='Obsoleto')), + ('inventariado', models.CharField(blank=True, max_length=250, null=True, verbose_name='Inventariado')), + ('n_act_fijo', models.CharField(blank=True, max_length=250, null=True, verbose_name='Numero Activo Fijo')), + ('provedor', models.CharField(blank=True, max_length=250, null=True, verbose_name='Provedor')), + ('c_basico', models.CharField(blank=True, max_length=250, null=True, verbose_name='Clave de cuadro basico')), + ('fecha_alta', models.DateField(auto_now_add=True, verbose_name='Fecha alta')), + ('fecha_actualizacion', models.DateField(auto_now=True, verbose_name='Fecha de Actualización')), + ('area', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='inventarioalmacen.area', verbose_name='Area')), + ('equipo', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='inventarioalmacen.equipo', verbose_name='Equipo')), + ('marca', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='inventarioalmacen.marca', verbose_name='Marca')), + ], + options={ + 'verbose_name': 'Equipo', + 'verbose_name_plural': 'Equipos', + 'ordering': ['n_control'], + }, + ), + ] diff --git a/inventario/migrations/0002_invequipo_accesorios2_invequipo_accesorios3_and_more.py b/inventario/migrations/0002_invequipo_accesorios2_invequipo_accesorios3_and_more.py new file mode 100644 index 0000000..b87c3a9 --- /dev/null +++ b/inventario/migrations/0002_invequipo_accesorios2_invequipo_accesorios3_and_more.py @@ -0,0 +1,53 @@ +# Generated by Django 4.0.2 on 2022-03-10 22:23 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventario', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='invequipo', + name='accesorios2', + field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Accesorios 2'), + ), + migrations.AddField( + model_name='invequipo', + name='accesorios3', + field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Accesorios 3'), + ), + migrations.AddField( + model_name='invequipo', + name='accesorios4', + field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Accesorios 4'), + ), + migrations.AddField( + model_name='invequipo', + name='accesorios5', + field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Accesorios 5'), + ), + migrations.AddField( + model_name='invequipo', + name='fecha_inst', + field=models.DateField(default='2022-12-31', verbose_name='Fecha Instalacion'), + ), + migrations.AddField( + model_name='invequipo', + name='localizado', + field=models.CharField(choices=[('SI', 'SI'), ('NO', 'NO')], default='SI', max_length=20, verbose_name='Localizado'), + ), + migrations.AlterField( + model_name='invequipo', + name='estado_funcional', + field=models.CharField(choices=[('Dañado', 'Dañado'), ('Marginal', 'Marginal'), ('Funcional', 'Funcional')], default='Funcional', max_length=20, verbose_name='Estatus'), + ), + migrations.AlterField( + model_name='invequipo', + name='obsoleto', + field=models.CharField(choices=[('SI', 'SI'), ('NO', 'NO')], default='NO', max_length=20, verbose_name='Obsoleto'), + ), + ] diff --git a/inventario/migrations/0003_alter_invequipo_accesorios_and_more.py b/inventario/migrations/0003_alter_invequipo_accesorios_and_more.py new file mode 100644 index 0000000..d85ff72 --- /dev/null +++ b/inventario/migrations/0003_alter_invequipo_accesorios_and_more.py @@ -0,0 +1,39 @@ +# Generated by Django 4.0.5 on 2022-07-09 07:18 + +from django.db import migrations +import tinymce.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventario', '0002_invequipo_accesorios2_invequipo_accesorios3_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='invequipo', + name='accesorios', + field=tinymce.models.HTMLField(blank=True, null=True, verbose_name='Accesorios'), + ), + migrations.AlterField( + model_name='invequipo', + name='accesorios2', + field=tinymce.models.HTMLField(blank=True, null=True, verbose_name='Accesorios 2'), + ), + migrations.AlterField( + model_name='invequipo', + name='accesorios3', + field=tinymce.models.HTMLField(blank=True, null=True, verbose_name='Accesorios 3'), + ), + migrations.AlterField( + model_name='invequipo', + name='accesorios4', + field=tinymce.models.HTMLField(blank=True, null=True, verbose_name='Accesorios 4'), + ), + migrations.AlterField( + model_name='invequipo', + name='accesorios5', + field=tinymce.models.HTMLField(blank=True, null=True, verbose_name='Accesorios 5'), + ), + ] diff --git a/inventario/migrations/0004_alter_invequipo_fecha_inst.py b/inventario/migrations/0004_alter_invequipo_fecha_inst.py new file mode 100644 index 0000000..6d187df --- /dev/null +++ b/inventario/migrations/0004_alter_invequipo_fecha_inst.py @@ -0,0 +1,18 @@ +# Generated by Django 4.0.5 on 2022-09-28 15:50 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventario', '0003_alter_invequipo_accesorios_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='invequipo', + name='fecha_inst', + field=models.DateField(blank=True, default='2022-12-31', null=True, verbose_name='Fecha Instalacion'), + ), + ] diff --git a/inventario/migrations/__init__.py b/inventario/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/inventario/migrations/__pycache__/0001_initial.cpython-310.pyc b/inventario/migrations/__pycache__/0001_initial.cpython-310.pyc new file mode 100644 index 0000000..c478628 Binary files /dev/null and b/inventario/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/inventario/migrations/__pycache__/0001_initial.cpython-39.pyc b/inventario/migrations/__pycache__/0001_initial.cpython-39.pyc new file mode 100644 index 0000000..25db1af Binary files /dev/null and b/inventario/migrations/__pycache__/0001_initial.cpython-39.pyc differ diff --git a/inventario/migrations/__pycache__/0002_invequipo_accesorios2_invequipo_accesorios3_and_more.cpython-310.pyc b/inventario/migrations/__pycache__/0002_invequipo_accesorios2_invequipo_accesorios3_and_more.cpython-310.pyc new file mode 100644 index 0000000..9f1858e Binary files /dev/null and b/inventario/migrations/__pycache__/0002_invequipo_accesorios2_invequipo_accesorios3_and_more.cpython-310.pyc differ diff --git a/inventario/migrations/__pycache__/0003_alter_invequipo_accesorios_and_more.cpython-310.pyc b/inventario/migrations/__pycache__/0003_alter_invequipo_accesorios_and_more.cpython-310.pyc new file mode 100644 index 0000000..8ac627c Binary files /dev/null and b/inventario/migrations/__pycache__/0003_alter_invequipo_accesorios_and_more.cpython-310.pyc differ diff --git a/inventario/migrations/__pycache__/0004_alter_invequipo_fecha_inst.cpython-310.pyc b/inventario/migrations/__pycache__/0004_alter_invequipo_fecha_inst.cpython-310.pyc new file mode 100644 index 0000000..8ce05c7 Binary files /dev/null and b/inventario/migrations/__pycache__/0004_alter_invequipo_fecha_inst.cpython-310.pyc differ diff --git a/inventario/migrations/__pycache__/__init__.cpython-310.pyc b/inventario/migrations/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..1835474 Binary files /dev/null and b/inventario/migrations/__pycache__/__init__.cpython-310.pyc differ diff --git a/inventario/migrations/__pycache__/__init__.cpython-39.pyc b/inventario/migrations/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..41928a4 Binary files /dev/null and b/inventario/migrations/__pycache__/__init__.cpython-39.pyc differ diff --git a/inventario/models.py b/inventario/models.py new file mode 100644 index 0000000..caff466 --- /dev/null +++ b/inventario/models.py @@ -0,0 +1,44 @@ +from django.db import models +from django.contrib.auth.models import User +import os +from tinymce import models as tinymce_models +from model_utils import Choices +from inventarioalmacen.models import * + + +# Create your models here. +class invequipo(models.Model): + STATUS1 = Choices('Dañado', 'Marginal', 'Funcional') + STATUS2 = Choices('SI', 'NO') + STATUS3 = Choices('SI', 'NO') + estado_funcional = models.CharField(choices=STATUS1, default=STATUS1.Funcional, max_length=20, verbose_name='Estatus') + n_control = models.IntegerField(unique=True, null=False, verbose_name='No Control') + equipo = models.ForeignKey(equipo, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Equipo') + area = models.ForeignKey(area, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Area') + descripcion = tinymce_models.HTMLField(null=False, verbose_name='Descripción') + marca = models.ForeignKey(marca, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Marca') + modelo = models.CharField(max_length=250, null=True, blank=True, verbose_name='Modelo') + n_serie = models.CharField(max_length=250, unique=True, null=False, verbose_name='No Serie') + accesorios = tinymce_models.HTMLField( null=True, blank=True, verbose_name='Accesorios') + obsoleto = models.CharField(choices=STATUS2, default=STATUS2.NO, max_length=20, verbose_name='Obsoleto') + inventariado = models.CharField(max_length=250, null=True, blank=True, verbose_name='Inventariado') + n_act_fijo = models.CharField(max_length=250, null=True, blank=True, verbose_name='Numero Activo Fijo') + provedor = models.CharField(max_length=250, null=True, blank=True, verbose_name='Provedor') + c_basico = models.CharField(max_length=250, null=True, blank=True, verbose_name='Clave de cuadro basico') + fecha_alta = models.DateField(auto_now_add=True, verbose_name='Fecha alta') + fecha_actualizacion = models.DateField(auto_now=True, verbose_name='Fecha de Actualización') + localizado = models.CharField(choices=STATUS3, default=STATUS3.SI, max_length=20, verbose_name='Localizado') + accesorios2 = tinymce_models.HTMLField(null=True, blank=True, verbose_name='Accesorios 2') + accesorios3 = tinymce_models.HTMLField(null=True, blank=True, verbose_name='Accesorios 3') + accesorios4 = tinymce_models.HTMLField(null=True, blank=True, verbose_name='Accesorios 4') + accesorios5 = tinymce_models.HTMLField(null=True, blank=True, verbose_name='Accesorios 5') + fecha_inst = models.DateField(default='2022-12-31', null=True, blank=True, verbose_name='Fecha Instalacion') + + def __str__(self): + return self.n_control + + class Meta: + verbose_name = 'Equipo' + verbose_name_plural = 'Equipos' + ordering = ['n_control'] + diff --git a/inventario/tests.py b/inventario/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/inventario/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/inventario/views.py b/inventario/views.py new file mode 100644 index 0000000..9fd7a14 --- /dev/null +++ b/inventario/views.py @@ -0,0 +1,58 @@ +from django.shortcuts import render, redirect, get_object_or_404 +from .forms import Formularioinvequipo +from django.contrib import messages +from django.contrib.auth.decorators import login_required +from django.http.response import HttpResponse +from .models import invequipo +from datetime import date + + + +# Create your views here. + +def inv_equipo(request): + datos = invequipo.objects.all() + return render(request, 'invequipo.html', {"datos": datos}) + +def ConsultaEquipo(request): + if request.method == "POST": + equipo = request.POST.get("n_control2") + datos = invequipo.objects.filter(id=equipo) + return render(request, 'invequipo.html', {"datos": datos}) + +@login_required(login_url='/acceder') +def crear_invequipo(request): + if request.method == "POST": + form = Formularioinvequipo(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + titulo = form.cleaned_data.get("n_control") + messages.success(request, f"El equipo {titulo} se ha creado correctamente") + return redirect("inv_equipo") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + form = Formularioinvequipo() + return render(request, "crear_invequipo.html", {"form": form}) + + +@login_required(login_url='/acceder') +def Actualizarinvequipo(request, equipo_id): + instance= get_object_or_404(invequipo, pk=equipo_id) + form = Formularioinvequipo(request.POST or None, instance=instance) + context= {'form': form} + if form.is_valid(): + obj= form.save(commit= False) + obj.save() + refex = form.cleaned_data.get("equipo_id") + dateact = date.today() + update = invequipo.objects.values('fecha_actualizacion').filter(id=refex).update(fecha_actualizacion=dateact) + messages.success(request, "El equipo fue actualizado") + return redirect("inv_equipo") + + else: + context= {'form': form, 'error': 'Error al actualizar'} + return render(request,'actualizar_equipo.html' , context) \ No newline at end of file diff --git a/inventarioalmacen/__init__.py b/inventarioalmacen/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/inventarioalmacen/__pycache__/__init__.cpython-310.pyc b/inventarioalmacen/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..889354d Binary files /dev/null and b/inventarioalmacen/__pycache__/__init__.cpython-310.pyc differ diff --git a/inventarioalmacen/__pycache__/__init__.cpython-39.pyc b/inventarioalmacen/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..6f19eff Binary files /dev/null and b/inventarioalmacen/__pycache__/__init__.cpython-39.pyc differ diff --git a/inventarioalmacen/__pycache__/admin.cpython-310.pyc b/inventarioalmacen/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000..5f0c5e8 Binary files /dev/null and b/inventarioalmacen/__pycache__/admin.cpython-310.pyc differ diff --git a/inventarioalmacen/__pycache__/admin.cpython-39.pyc b/inventarioalmacen/__pycache__/admin.cpython-39.pyc new file mode 100644 index 0000000..844b24d Binary files /dev/null and b/inventarioalmacen/__pycache__/admin.cpython-39.pyc differ diff --git a/inventarioalmacen/__pycache__/apps.cpython-310.pyc b/inventarioalmacen/__pycache__/apps.cpython-310.pyc new file mode 100644 index 0000000..5471595 Binary files /dev/null and b/inventarioalmacen/__pycache__/apps.cpython-310.pyc differ diff --git a/inventarioalmacen/__pycache__/apps.cpython-39.pyc b/inventarioalmacen/__pycache__/apps.cpython-39.pyc new file mode 100644 index 0000000..9c16854 Binary files /dev/null and b/inventarioalmacen/__pycache__/apps.cpython-39.pyc differ diff --git a/inventarioalmacen/__pycache__/forms.cpython-310.pyc b/inventarioalmacen/__pycache__/forms.cpython-310.pyc new file mode 100644 index 0000000..354f280 Binary files /dev/null and b/inventarioalmacen/__pycache__/forms.cpython-310.pyc differ diff --git a/inventarioalmacen/__pycache__/forms.cpython-39.pyc b/inventarioalmacen/__pycache__/forms.cpython-39.pyc new file mode 100644 index 0000000..60b9405 Binary files /dev/null and b/inventarioalmacen/__pycache__/forms.cpython-39.pyc differ diff --git a/inventarioalmacen/__pycache__/models.cpython-310.pyc b/inventarioalmacen/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000..651e603 Binary files /dev/null and b/inventarioalmacen/__pycache__/models.cpython-310.pyc differ diff --git a/inventarioalmacen/__pycache__/models.cpython-39.pyc b/inventarioalmacen/__pycache__/models.cpython-39.pyc new file mode 100644 index 0000000..4b0959c Binary files /dev/null and b/inventarioalmacen/__pycache__/models.cpython-39.pyc differ diff --git a/inventarioalmacen/__pycache__/views.cpython-310.pyc b/inventarioalmacen/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000..79f6d79 Binary files /dev/null and b/inventarioalmacen/__pycache__/views.cpython-310.pyc differ diff --git a/inventarioalmacen/__pycache__/views.cpython-39.pyc b/inventarioalmacen/__pycache__/views.cpython-39.pyc new file mode 100644 index 0000000..9e0ed15 Binary files /dev/null and b/inventarioalmacen/__pycache__/views.cpython-39.pyc differ diff --git a/inventarioalmacen/admin.py b/inventarioalmacen/admin.py new file mode 100644 index 0000000..2c9f7ec --- /dev/null +++ b/inventarioalmacen/admin.py @@ -0,0 +1,11 @@ +from django.contrib import admin +from .models import pieza, equipo, marca, ubicacion, area, rentrada, rsalida + +# Register your models here. +admin.site.register(pieza) +admin.site.register(equipo) +admin.site.register(marca) +admin.site.register(ubicacion) +admin.site.register(area) +admin.site.register(rentrada) +admin.site.register(rsalida) \ No newline at end of file diff --git a/inventarioalmacen/apps.py b/inventarioalmacen/apps.py new file mode 100644 index 0000000..966b25d --- /dev/null +++ b/inventarioalmacen/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class InventarioalmacenConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'inventarioalmacen' diff --git a/inventarioalmacen/forms.py b/inventarioalmacen/forms.py new file mode 100644 index 0000000..8d68768 --- /dev/null +++ b/inventarioalmacen/forms.py @@ -0,0 +1,44 @@ +from django import forms +from .models import pieza, equipo, marca, ubicacion, rentrada, rsalida, area + + +class Formulariopieza(forms.ModelForm): + class Meta: + model = pieza + fields = ('referencia', 'equipo', 'descripcion_etiqueta', 'descripcion_pieza', 'marca', 'estatus', 'ubicacion', 'cantidad') + + +class Formularioequipo(forms.ModelForm): + class Meta: + model = equipo + fields = ('nombre',) + + +class Formulariomarca(forms.ModelForm): + class Meta: + model = marca + fields = ('nombre',) + + +class Formularioarea(forms.ModelForm): + class Meta: + model = area + fields = ('nombre','ib',) + + +class Formularioubicacion(forms.ModelForm): + class Meta: + model = ubicacion + fields = ('nombre',) + + +class Formularioentrada(forms.ModelForm): + class Meta: + model = rentrada + fields = ('n_pedido', 'referencia', 'cantidad') + + +class Formulariosalida(forms.ModelForm): + class Meta: + model = rsalida + fields = ('referencia', 'cantidad') diff --git a/inventarioalmacen/migrations/0001_initial.py b/inventarioalmacen/migrations/0001_initial.py new file mode 100644 index 0000000..864c6e4 --- /dev/null +++ b/inventarioalmacen/migrations/0001_initial.py @@ -0,0 +1,78 @@ +# Generated by Django 3.2.7 on 2021-09-11 09:40 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import tinymce.models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='equipo', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nombre', models.CharField(max_length=200, unique=True, verbose_name='Nombre')), + ], + options={ + 'verbose_name': 'Equipo', + 'verbose_name_plural': 'Equipos', + 'ordering': ['nombre'], + }, + ), + migrations.CreateModel( + name='marca', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nombre', models.CharField(max_length=200, unique=True, verbose_name='Nombre')), + ], + options={ + 'verbose_name': 'Marca', + 'verbose_name_plural': 'Marcas', + 'ordering': ['nombre'], + }, + ), + migrations.CreateModel( + name='ubicacion', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nombre', models.CharField(max_length=200, unique=True, verbose_name='Nombre')), + ], + options={ + 'verbose_name': 'Ubicacion', + 'verbose_name_plural': 'Ubicacion', + 'ordering': ['nombre'], + }, + ), + migrations.CreateModel( + name='pieza', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('n_pedido', models.CharField(blank=True, max_length=200, null=True, verbose_name='No. Pedido')), + ('referencia', models.CharField(max_length=200, unique=True, verbose_name='Referencia')), + ('descripcion_etiqueta', models.CharField(max_length=250, verbose_name='Descripción de Etiqueta')), + ('descripcion_pieza', tinymce.models.HTMLField(verbose_name='Descripción de la Pieza')), + ('estatus', models.CharField(choices=[('Nuevo', 'Nuevo'), ('Usado', 'Usado')], default='Nuevo', max_length=20, verbose_name='Estatus')), + ('cantidad', models.IntegerField(verbose_name='Cantidad')), + ('fecha_alta', models.DateField(auto_now_add=True, verbose_name='Fecha alta')), + ('fecha_actualizacion', models.DateField(auto_now=True, verbose_name='Fecha de Actualización')), + ('Column1', models.CharField(blank=True, max_length=100, null=True, verbose_name='Column1')), + ('equipo', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='inventarioalmacen.equipo', verbose_name='Equipo')), + ('marca', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='inventarioalmacen.marca', verbose_name='Marca')), + ('ubicacion', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='inventarioalmacen.ubicacion', verbose_name='Ubicacion')), + ('usuario', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'verbose_name': 'pieza', + 'verbose_name_plural': 'piezas', + 'ordering': ['ubicacion'], + }, + ), + ] diff --git a/inventarioalmacen/migrations/0002_auto_20210912_0310.py b/inventarioalmacen/migrations/0002_auto_20210912_0310.py new file mode 100644 index 0000000..abfb5ff --- /dev/null +++ b/inventarioalmacen/migrations/0002_auto_20210912_0310.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.7 on 2021-09-12 08:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventarioalmacen', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='pieza', + name='Column1', + field=models.CharField(blank=True, default='', max_length=100, null=True, verbose_name='Column1'), + ), + migrations.AlterField( + model_name='pieza', + name='n_pedido', + field=models.CharField(blank=True, default='', max_length=200, null=True, verbose_name='No. Pedido'), + ), + ] diff --git a/inventarioalmacen/migrations/0003_auto_20210912_0315.py b/inventarioalmacen/migrations/0003_auto_20210912_0315.py new file mode 100644 index 0000000..1b9d362 --- /dev/null +++ b/inventarioalmacen/migrations/0003_auto_20210912_0315.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.7 on 2021-09-12 08:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventarioalmacen', '0002_auto_20210912_0310'), + ] + + operations = [ + migrations.AlterField( + model_name='pieza', + name='Column1', + field=models.CharField(blank=True, default=' ', max_length=100, null=True, verbose_name='Column1'), + ), + migrations.AlterField( + model_name='pieza', + name='n_pedido', + field=models.CharField(blank=True, default=' ', max_length=200, null=True, verbose_name='No. Pedido'), + ), + ] diff --git a/inventarioalmacen/migrations/0004_rentrada_rsalida.py b/inventarioalmacen/migrations/0004_rentrada_rsalida.py new file mode 100644 index 0000000..9f649c9 --- /dev/null +++ b/inventarioalmacen/migrations/0004_rentrada_rsalida.py @@ -0,0 +1,47 @@ +# Generated by Django 3.2.7 on 2021-09-13 07:51 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('inventarioalmacen', '0003_auto_20210912_0315'), + ] + + operations = [ + migrations.CreateModel( + name='rsalida', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('cantidad', models.IntegerField(verbose_name='Cantidad')), + ('fecha_alta', models.DateField(auto_now_add=True, verbose_name='Fecha alta')), + ('referencia', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='inventarioalmacen.pieza', verbose_name='Referencia')), + ('usuario', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'verbose_name': 'Salida', + 'verbose_name_plural': 'Salidas', + 'ordering': ['-id'], + }, + ), + migrations.CreateModel( + name='rentrada', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('n_pedido', models.CharField(blank=True, max_length=200, null=True, verbose_name='No. Pedido')), + ('cantidad', models.IntegerField(verbose_name='Cantidad')), + ('fecha_alta', models.DateField(auto_now_add=True, verbose_name='Fecha Entrada')), + ('referencia', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='inventarioalmacen.pieza', verbose_name='Referencia')), + ('usuario', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'verbose_name': 'Entrada', + 'verbose_name_plural': 'Entradas', + 'ordering': ['-id'], + }, + ), + ] diff --git a/inventarioalmacen/migrations/0005_rsalida_autor.py b/inventarioalmacen/migrations/0005_rsalida_autor.py new file mode 100644 index 0000000..6428de1 --- /dev/null +++ b/inventarioalmacen/migrations/0005_rsalida_autor.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.7 on 2021-09-13 11:39 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventarioalmacen', '0004_rentrada_rsalida'), + ] + + operations = [ + migrations.AddField( + model_name='rsalida', + name='autor', + field=models.CharField(blank=True, max_length=250, null=True), + ), + ] diff --git a/inventarioalmacen/migrations/0006_rentrada_autor.py b/inventarioalmacen/migrations/0006_rentrada_autor.py new file mode 100644 index 0000000..4ba29e9 --- /dev/null +++ b/inventarioalmacen/migrations/0006_rentrada_autor.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.7 on 2021-09-13 12:04 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventarioalmacen', '0005_rsalida_autor'), + ] + + operations = [ + migrations.AddField( + model_name='rentrada', + name='autor', + field=models.CharField(blank=True, max_length=250, null=True), + ), + ] diff --git a/inventarioalmacen/migrations/0007_area.py b/inventarioalmacen/migrations/0007_area.py new file mode 100644 index 0000000..ffb5a6a --- /dev/null +++ b/inventarioalmacen/migrations/0007_area.py @@ -0,0 +1,25 @@ +# Generated by Django 3.2.7 on 2021-10-06 12:24 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventarioalmacen', '0006_rentrada_autor'), + ] + + operations = [ + migrations.CreateModel( + name='area', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nombre', models.CharField(max_length=200, unique=True, verbose_name='Nombre')), + ], + options={ + 'verbose_name': 'Area', + 'verbose_name_plural': 'Areas', + 'ordering': ['nombre'], + }, + ), + ] diff --git a/inventarioalmacen/migrations/0008_alter_equipo_options.py b/inventarioalmacen/migrations/0008_alter_equipo_options.py new file mode 100644 index 0000000..7ef28d4 --- /dev/null +++ b/inventarioalmacen/migrations/0008_alter_equipo_options.py @@ -0,0 +1,17 @@ +# Generated by Django 3.2.7 on 2021-10-08 10:08 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventarioalmacen', '0007_area'), + ] + + operations = [ + migrations.AlterModelOptions( + name='equipo', + options={'ordering': ['nombre'], 'verbose_name': 'Tipo de Equipo', 'verbose_name_plural': 'Tipo de Equipos'}, + ), + ] diff --git a/inventarioalmacen/migrations/0009_area_ib.py b/inventarioalmacen/migrations/0009_area_ib.py new file mode 100644 index 0000000..b6d88f7 --- /dev/null +++ b/inventarioalmacen/migrations/0009_area_ib.py @@ -0,0 +1,21 @@ +# Generated by Django 3.2.7 on 2021-10-10 07:03 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('inventarioalmacen', '0008_alter_equipo_options'), + ] + + operations = [ + migrations.AddField( + model_name='area', + name='ib', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Asignado IB'), + ), + ] diff --git a/inventarioalmacen/migrations/0010_auto_20211020_0520.py b/inventarioalmacen/migrations/0010_auto_20211020_0520.py new file mode 100644 index 0000000..2e79623 --- /dev/null +++ b/inventarioalmacen/migrations/0010_auto_20211020_0520.py @@ -0,0 +1,21 @@ +# Generated by Django 3.2.8 on 2021-10-20 10:20 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventarioalmacen', '0009_area_ib'), + ] + + operations = [ + migrations.AlterModelOptions( + name='rentrada', + options={'ordering': ['referencia'], 'verbose_name': 'Entrada', 'verbose_name_plural': 'Entradas'}, + ), + migrations.AlterModelOptions( + name='rsalida', + options={'ordering': ['id'], 'verbose_name': 'Salida', 'verbose_name_plural': 'Salidas'}, + ), + ] diff --git a/inventarioalmacen/migrations/0011_alter_pieza_cantidad.py b/inventarioalmacen/migrations/0011_alter_pieza_cantidad.py new file mode 100644 index 0000000..7df61dd --- /dev/null +++ b/inventarioalmacen/migrations/0011_alter_pieza_cantidad.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.8 on 2021-10-25 15:28 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventarioalmacen', '0010_auto_20211020_0520'), + ] + + operations = [ + migrations.AlterField( + model_name='pieza', + name='cantidad', + field=models.IntegerField(blank=True, null=True, verbose_name='Cantidad'), + ), + ] diff --git a/inventarioalmacen/migrations/0012_alter_pieza_cantidad.py b/inventarioalmacen/migrations/0012_alter_pieza_cantidad.py new file mode 100644 index 0000000..320faf2 --- /dev/null +++ b/inventarioalmacen/migrations/0012_alter_pieza_cantidad.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.7 on 2021-10-25 19:17 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventarioalmacen', '0011_alter_pieza_cantidad'), + ] + + operations = [ + migrations.AlterField( + model_name='pieza', + name='cantidad', + field=models.IntegerField(blank=True, default=0, null=True, verbose_name='Cantidad'), + ), + ] diff --git a/inventarioalmacen/migrations/0013_auto_20211103_2233.py b/inventarioalmacen/migrations/0013_auto_20211103_2233.py new file mode 100644 index 0000000..2e546d8 --- /dev/null +++ b/inventarioalmacen/migrations/0013_auto_20211103_2233.py @@ -0,0 +1,21 @@ +# Generated by Django 3.2.8 on 2021-11-04 04:33 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventarioalmacen', '0012_alter_pieza_cantidad'), + ] + + operations = [ + migrations.AlterModelOptions( + name='rentrada', + options={'ordering': ['-id'], 'verbose_name': 'Entrada', 'verbose_name_plural': 'Entradas'}, + ), + migrations.AlterModelOptions( + name='rsalida', + options={'ordering': ['-id'], 'verbose_name': 'Salida', 'verbose_name_plural': 'Salidas'}, + ), + ] diff --git a/inventarioalmacen/migrations/0014_alter_area_nombre_alter_equipo_nombre_and_more.py b/inventarioalmacen/migrations/0014_alter_area_nombre_alter_equipo_nombre_and_more.py new file mode 100644 index 0000000..6488cc8 --- /dev/null +++ b/inventarioalmacen/migrations/0014_alter_area_nombre_alter_equipo_nombre_and_more.py @@ -0,0 +1,39 @@ +# Generated by Django 4.0.5 on 2022-07-09 07:18 + +from django.db import migrations, models +import tinymce.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventarioalmacen', '0013_auto_20211103_2233'), + ] + + operations = [ + migrations.AlterField( + model_name='area', + name='nombre', + field=models.CharField(max_length=250, unique=True, verbose_name='Nombre'), + ), + migrations.AlterField( + model_name='equipo', + name='nombre', + field=models.CharField(max_length=250, unique=True, verbose_name='Nombre'), + ), + migrations.AlterField( + model_name='marca', + name='nombre', + field=models.CharField(max_length=250, unique=True, verbose_name='Nombre'), + ), + migrations.AlterField( + model_name='pieza', + name='descripcion_etiqueta', + field=tinymce.models.HTMLField(null=True, verbose_name='Descripción de Etiqueta'), + ), + migrations.AlterField( + model_name='pieza', + name='descripcion_pieza', + field=tinymce.models.HTMLField(null=True, verbose_name='Descripción de la Pieza'), + ), + ] diff --git a/inventarioalmacen/migrations/__init__.py b/inventarioalmacen/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/inventarioalmacen/migrations/__pycache__/0001_initial.cpython-310.pyc b/inventarioalmacen/migrations/__pycache__/0001_initial.cpython-310.pyc new file mode 100644 index 0000000..b2113f9 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0001_initial.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/0001_initial.cpython-39.pyc new file mode 100644 index 0000000..f625559 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0001_initial.cpython-39.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0002_auto_20210908_0056.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/0002_auto_20210908_0056.cpython-39.pyc new file mode 100644 index 0000000..1aac88e Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0002_auto_20210908_0056.cpython-39.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0002_auto_20210912_0310.cpython-310.pyc b/inventarioalmacen/migrations/__pycache__/0002_auto_20210912_0310.cpython-310.pyc new file mode 100644 index 0000000..10ffcc3 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0002_auto_20210912_0310.cpython-310.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0002_auto_20210912_0310.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/0002_auto_20210912_0310.cpython-39.pyc new file mode 100644 index 0000000..9d933e5 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0002_auto_20210912_0310.cpython-39.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0003_alter_pieza_descripcion_etiqueta.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/0003_alter_pieza_descripcion_etiqueta.cpython-39.pyc new file mode 100644 index 0000000..1edee30 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0003_alter_pieza_descripcion_etiqueta.cpython-39.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0003_auto_20210912_0315.cpython-310.pyc b/inventarioalmacen/migrations/__pycache__/0003_auto_20210912_0315.cpython-310.pyc new file mode 100644 index 0000000..9fcf161 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0003_auto_20210912_0315.cpython-310.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0003_auto_20210912_0315.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/0003_auto_20210912_0315.cpython-39.pyc new file mode 100644 index 0000000..fbdd714 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0003_auto_20210912_0315.cpython-39.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0004_rentrada_rsalida.cpython-310.pyc b/inventarioalmacen/migrations/__pycache__/0004_rentrada_rsalida.cpython-310.pyc new file mode 100644 index 0000000..97b058e Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0004_rentrada_rsalida.cpython-310.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0004_rentrada_rsalida.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/0004_rentrada_rsalida.cpython-39.pyc new file mode 100644 index 0000000..71010a0 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0004_rentrada_rsalida.cpython-39.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0005_rsalida_autor.cpython-310.pyc b/inventarioalmacen/migrations/__pycache__/0005_rsalida_autor.cpython-310.pyc new file mode 100644 index 0000000..1fe4236 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0005_rsalida_autor.cpython-310.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0005_rsalida_autor.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/0005_rsalida_autor.cpython-39.pyc new file mode 100644 index 0000000..e604d00 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0005_rsalida_autor.cpython-39.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0006_rentrada_autor.cpython-310.pyc b/inventarioalmacen/migrations/__pycache__/0006_rentrada_autor.cpython-310.pyc new file mode 100644 index 0000000..7fb8326 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0006_rentrada_autor.cpython-310.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0006_rentrada_autor.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/0006_rentrada_autor.cpython-39.pyc new file mode 100644 index 0000000..c07d4e1 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0006_rentrada_autor.cpython-39.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0007_area.cpython-310.pyc b/inventarioalmacen/migrations/__pycache__/0007_area.cpython-310.pyc new file mode 100644 index 0000000..94856ef Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0007_area.cpython-310.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0007_area.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/0007_area.cpython-39.pyc new file mode 100644 index 0000000..0d0c9e1 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0007_area.cpython-39.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0008_alter_equipo_options.cpython-310.pyc b/inventarioalmacen/migrations/__pycache__/0008_alter_equipo_options.cpython-310.pyc new file mode 100644 index 0000000..18ef802 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0008_alter_equipo_options.cpython-310.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0008_alter_equipo_options.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/0008_alter_equipo_options.cpython-39.pyc new file mode 100644 index 0000000..5f8b8bd Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0008_alter_equipo_options.cpython-39.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0009_area_ib.cpython-310.pyc b/inventarioalmacen/migrations/__pycache__/0009_area_ib.cpython-310.pyc new file mode 100644 index 0000000..f5707fe Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0009_area_ib.cpython-310.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0009_area_ib.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/0009_area_ib.cpython-39.pyc new file mode 100644 index 0000000..6004704 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0009_area_ib.cpython-39.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0010_auto_20211020_0520.cpython-310.pyc b/inventarioalmacen/migrations/__pycache__/0010_auto_20211020_0520.cpython-310.pyc new file mode 100644 index 0000000..7eb8e12 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0010_auto_20211020_0520.cpython-310.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0010_auto_20211020_0520.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/0010_auto_20211020_0520.cpython-39.pyc new file mode 100644 index 0000000..10b230e Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0010_auto_20211020_0520.cpython-39.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0011_alter_pieza_cantidad.cpython-310.pyc b/inventarioalmacen/migrations/__pycache__/0011_alter_pieza_cantidad.cpython-310.pyc new file mode 100644 index 0000000..d128fca Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0011_alter_pieza_cantidad.cpython-310.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0011_alter_pieza_cantidad.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/0011_alter_pieza_cantidad.cpython-39.pyc new file mode 100644 index 0000000..2ee735b Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0011_alter_pieza_cantidad.cpython-39.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0012_alter_pieza_cantidad.cpython-310.pyc b/inventarioalmacen/migrations/__pycache__/0012_alter_pieza_cantidad.cpython-310.pyc new file mode 100644 index 0000000..b5a20cc Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0012_alter_pieza_cantidad.cpython-310.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0012_alter_pieza_cantidad.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/0012_alter_pieza_cantidad.cpython-39.pyc new file mode 100644 index 0000000..8391e91 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0012_alter_pieza_cantidad.cpython-39.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0013_auto_20211103_2233.cpython-310.pyc b/inventarioalmacen/migrations/__pycache__/0013_auto_20211103_2233.cpython-310.pyc new file mode 100644 index 0000000..abcf22b Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0013_auto_20211103_2233.cpython-310.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0013_auto_20211103_2233.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/0013_auto_20211103_2233.cpython-39.pyc new file mode 100644 index 0000000..4a7e364 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0013_auto_20211103_2233.cpython-39.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/0014_alter_area_nombre_alter_equipo_nombre_and_more.cpython-310.pyc b/inventarioalmacen/migrations/__pycache__/0014_alter_area_nombre_alter_equipo_nombre_and_more.cpython-310.pyc new file mode 100644 index 0000000..066ebe1 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/0014_alter_area_nombre_alter_equipo_nombre_and_more.cpython-310.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/__init__.cpython-310.pyc b/inventarioalmacen/migrations/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..af1415d Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/__init__.cpython-310.pyc differ diff --git a/inventarioalmacen/migrations/__pycache__/__init__.cpython-39.pyc b/inventarioalmacen/migrations/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..c8017d1 Binary files /dev/null and b/inventarioalmacen/migrations/__pycache__/__init__.cpython-39.pyc differ diff --git a/inventarioalmacen/models.py b/inventarioalmacen/models.py new file mode 100644 index 0000000..972c732 --- /dev/null +++ b/inventarioalmacen/models.py @@ -0,0 +1,118 @@ +from django.db import models +from django.contrib.auth.models import User +import os +from tinymce import models as tinymce_models +from model_utils import Choices + +# Create your models here. +class area(models.Model): + nombre = models.CharField(max_length=250, null=False, unique=True, verbose_name='Nombre') + ib = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, verbose_name='Asignado IB') + def __str__(self): + return self.nombre + + class Meta: + verbose_name = 'Area' + verbose_name_plural = 'Areas' + ordering = ['nombre'] + + +class equipo(models.Model): + nombre = models.CharField(max_length=250, null=False, unique=True, verbose_name='Nombre') + def __str__(self): + return self.nombre + + class Meta: + verbose_name = 'Tipo de Equipo' + verbose_name_plural = 'Tipo de Equipos' + ordering = ['nombre'] + + +class marca(models.Model): + nombre = models.CharField(max_length=250, null=False, unique=True, verbose_name='Nombre') + def __str__(self): + return self.nombre + + class Meta: + verbose_name = 'Marca' + verbose_name_plural = 'Marcas' + ordering = ['nombre'] + + +class ubicacion(models.Model): + nombre = models.CharField(max_length=200, null=False, unique=True, verbose_name='Nombre') + def __str__(self): + return self.nombre + + class Meta: + verbose_name = 'Ubicacion' + verbose_name_plural = 'Ubicacion' + ordering = ['nombre'] + + +class pieza(models.Model): + STATUS = Choices('Nuevo', 'Usado') + usuario = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True) + n_pedido = models.CharField(max_length=200, null=True, blank=True, verbose_name='No. Pedido', default=' ') + referencia = models.CharField(max_length=200, unique=True, null=False, verbose_name='Referencia') + equipo = models.ForeignKey(equipo, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Equipo') + descripcion_etiqueta = tinymce_models.HTMLField(null=True, verbose_name='Descripción de Etiqueta') + descripcion_pieza = tinymce_models.HTMLField(null=True, verbose_name='Descripción de la Pieza') + marca = models.ForeignKey(marca, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Marca') + estatus = models.CharField(choices=STATUS, default=STATUS.Nuevo, max_length=20, verbose_name='Estatus') + ubicacion = models.ForeignKey(ubicacion, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Ubicacion') + cantidad = models.IntegerField(null=True, blank=True, default=0, verbose_name='Cantidad') + fecha_alta = models.DateField(auto_now_add=True, verbose_name='Fecha alta') + fecha_actualizacion = models.DateField(auto_now=True, verbose_name='Fecha de Actualización') + Column1 = models.CharField(max_length=100, null=True, blank=True, verbose_name='Column1', default=' ') + + def delete(self, *args, **kwargs): + if os.path.isfile(self.imagen.path): + os.remove(self.imagen.path) + super(pieza, self).delete(*args, **kwargs) + + def __str__(self): + return self.referencia + + class Meta: + verbose_name = 'pieza' + verbose_name_plural = 'piezas' + ordering = ['ubicacion'] + + +class rentrada(models.Model): + usuario = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True) + autor = models.CharField(max_length=250, null=True, blank=True) + n_pedido = models.CharField(max_length=200, null=True, blank=True, verbose_name='No. Pedido') + referencia = models.ForeignKey(pieza, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Referencia') + cantidad = models.IntegerField(verbose_name='Cantidad') + fecha_alta = models.DateField(auto_now_add=True, verbose_name='Fecha Entrada') + + def __str__(self): + return self.referencia + + class Meta: + verbose_name = 'Entrada' + verbose_name_plural = 'Entradas' + ordering = ['-id'] + + +class rsalida(models.Model): + usuario = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True) + autor = models.CharField(max_length=250, null=True, blank=True) + referencia = models.ForeignKey(pieza, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Referencia') + cantidad = models.IntegerField(verbose_name='Cantidad') + fecha_alta = models.DateField(auto_now_add=True, verbose_name='Fecha alta') + + def delete(self, *args, **kwargs): + if os.path.isfile(self.imagen.path): + os.remove(self.imagen.path) + super(pieza, self).delete(*args, **kwargs) + + def __str__(self): + return self.referencia + + class Meta: + verbose_name = 'Salida' + verbose_name_plural = 'Salidas' + ordering = ['-id'] \ No newline at end of file diff --git a/inventarioalmacen/tests.py b/inventarioalmacen/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/inventarioalmacen/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/inventarioalmacen/views.py b/inventarioalmacen/views.py new file mode 100644 index 0000000..cfb2db7 --- /dev/null +++ b/inventarioalmacen/views.py @@ -0,0 +1,446 @@ +from django.shortcuts import render, redirect, get_object_or_404 +from .forms import Formulariopieza, Formularioequipo, Formulariomarca, Formularioubicacion, Formularioentrada, Formulariosalida, Formularioarea +from django.contrib import messages +from django.contrib.auth.decorators import login_required +from .models import pieza, rentrada, rsalida, equipo, marca, ubicacion +from openpyxl import Workbook +from django.http.response import HttpResponse +import datetime +from datetime import date + + +# Create your views here. +def invalmacen(request): + datos = pieza.objects.all() + return render(request, 'tables.html', {"datos": datos}) + + +@login_required(login_url='/acceder') +def crear_pieza(request): + if request.method == "POST": + form = Formulariopieza(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + titulo = form.cleaned_data.get("referencia") + messages.success(request, f"La referencia {titulo} se ha creado correctamente") + return redirect("invalmacen") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + datosequipo = equipo.objects.all() + datosmarca = marca.objects.all() + datosubicacion = ubicacion.objects.all() + form = Formulariopieza() + return render(request, "crear_pieza.html", {"form": form, "datosequipo": datosequipo, "datosmarca": datosmarca, "datosubicacion": datosubicacion}) + + +@login_required(login_url='/acceder') +def ActualizarPieza(request, pieza_id): + instance= get_object_or_404(pieza, pk=pieza_id) + form = Formulariopieza(request.POST or None, instance=instance) + context= {'form': form} + if form.is_valid(): + obj= form.save(commit= False) + obj.save() + messages.success(request, "La pieza fue actualizada") + return redirect("invalmacen") + + else: + context= {'form': form, 'error': 'Error al actualizar'} + return render(request,'actualizar_pieza.html' , context) + + +############################################ +@login_required(login_url='/acceder') +def crear_equipo(request): + if request.method == "POST": + form = Formularioequipo(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + titulo = form.cleaned_data.get("nombre") + messages.success(request, f"El equipo {titulo} se ha creado correctamente") + return redirect("crear_pieza") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + form = Formularioequipo() + return render(request, "crearequipo.html", {"form": form}) + + +@login_required(login_url='/acceder') +def crear_marca(request): + if request.method == "POST": + form = Formulariomarca(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + titulo = form.cleaned_data.get("nombre") + messages.success(request, f"La marca {titulo} se ha creado correctamente") + return redirect("crear_pieza") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + form = Formulariomarca() + return render(request, "crearmarca.html", {"form": form}) + + +@login_required(login_url='/acceder') +def crear_ubicacion(request): + if request.method == "POST": + form = Formularioubicacion(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + titulo = form.cleaned_data.get("nombre") + messages.success(request, f"La ubicacion {titulo} se ha creado correctamente") + return redirect("crear_pieza") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + form = Formularioubicacion() + return render(request, "crearubicacion.html", {"form": form}) + + +@login_required(login_url='/acceder') +def crear_area(request): + if request.method == "POST": + form = Formularioarea(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + titulo = form.cleaned_data.get("nombre") + messages.success(request, f"El area {titulo} se ha creado correctamente") + return redirect("crear_inventrada") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + form = Formularioarea() + return render(request, "crear_area.html", {"form": form}) + + +############################################################ +def invalmacenentrada(request): + datos = rentrada.objects.all() + return render(request, 'invrentrada.html', {"datos": datos}) + + +@login_required(login_url='/acceder') +def crear_inventrada(request, id): + if request.method == "POST": + form = Formularioentrada(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.autor = request.user + post.save() + titulo = form.cleaned_data.get("referencia") + refex = form.cleaned_data.get("referencia") + y = form.cleaned_data.get("cantidad") + x = pieza.objects.only('referencia').filter(referencia=refex)[0] + nuevo = x.cantidad + y + dateact = date.today() + update = pieza.objects.values('cantidad').filter(referencia=refex).update(cantidad=nuevo) + update = pieza.objects.values('fecha_actualizacion').filter(referencia=refex).update(fecha_actualizacion=dateact) + messages.success(request, f"La entrada con referencia {titulo} se ha creado correctamente") + return redirect("invalmacen") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + datos = pieza.objects.get(id=id) + return render(request, "crearinventrada.html", {"datos": datos}) + + + +def invalmacensalida(request): + datos = rsalida.objects.all() + return render(request, 'invrsalida.html', {"datos": datos}) + + +@login_required(login_url='/acceder') +def crear_invsalida(request, id): + if request.method == "POST": + form = Formulariosalida(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.autor = request.user + post.save() + titulo = form.cleaned_data.get("referencia") + refex = form.cleaned_data.get("referencia") + y = form.cleaned_data.get("cantidad") + x = pieza.objects.only('referencia').filter(referencia=refex)[0] + nuevo = x.cantidad - y + dateact = date.today() + update = pieza.objects.values('cantidad').filter(referencia=refex).update(cantidad=nuevo) + update = pieza.objects.values('fecha_actualizacion').filter(referencia=refex).update(fecha_actualizacion=dateact) + messages.success(request, f"La salida {titulo} se ha creado correctamente") + return redirect("invalmacen") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + datos = pieza.objects.get(referencia=id) + return render(request, "crearinvsalida.html", {"datos": datos}) + +##Busqueda#################################################################### + +@login_required(login_url='/acceder') +def buscar(request): + if request.method == "POST": + datospieza = request.POST['referencia'] + datosequipo = request.POST['equipo'] + datosmarca = request.POST['marca'] + datosubicacion = request.POST['ubicacion'] + datosbuscar = request.POST['buscar'] + if datospieza == "" and datosequipo == "Selecciona un Equipo" and datosmarca == "Selecciona una Marca" and datosubicacion == "Selecciona una Ubicacion" and datosbuscar == "" : + xdatospieza = pieza.objects.all() + xdatosequipo = equipo.objects.all() + xdatosmarca = marca.objects.all() + xdatosubicacion = ubicacion.objects.all() + datos = pieza.objects.all() + return render(request, "buscar.html", {"datos": datos, "datospieza": xdatospieza, "datosequipo": xdatosequipo, "datosmarca": xdatosmarca, "datosubicacion": xdatosubicacion}) + elif datospieza == "" and datosequipo == "Selecciona un Equipo" and datosmarca == "Selecciona una Marca" and datosubicacion == "Selecciona una Ubicacion" : + xdatospieza = pieza.objects.all() + xdatosequipo = equipo.objects.all() + xdatosmarca = marca.objects.all() + xdatosubicacion = ubicacion.objects.all() + datos = pieza.objects.filter(descripcion_pieza__icontains=datosbuscar) + return render(request, "buscar.html", {"datos": datos, "datospieza": xdatospieza, "datosequipo": xdatosequipo, "datosmarca": xdatosmarca, "datosubicacion": xdatosubicacion}) + elif datosequipo == "Selecciona un Equipo" and datosmarca == "Selecciona una Marca" and datosubicacion == "Selecciona una Ubicacion" and datosbuscar == "" : + xdatospieza = pieza.objects.all() + xdatosequipo = equipo.objects.all() + xdatosmarca = marca.objects.all() + xdatosubicacion = ubicacion.objects.all() + datos = pieza.objects.filter(referencia__icontains=datospieza) + return render(request, "buscar.html", {"datos": datos, "datospieza": xdatospieza, "datosequipo": xdatosequipo, "datosmarca": xdatosmarca, "datosubicacion": xdatosubicacion}) + elif datospieza == "" and datosmarca == "Selecciona una Marca" and datosubicacion == "Selecciona una Ubicacion" and datosbuscar == "" : + xdatospieza = pieza.objects.all() + xdatosequipo = equipo.objects.all() + xdatosmarca = marca.objects.all() + xdatosubicacion = ubicacion.objects.all() + datos = pieza.objects.filter(equipo_id=datosequipo) + return render(request, "buscar.html", {"datos": datos, "datospieza": xdatospieza, "datosequipo": xdatosequipo, "datosmarca": xdatosmarca, "datosubicacion": xdatosubicacion}) + elif datosequipo == "Selecciona un Equipo" and datospieza == "" and datosubicacion == "Selecciona una Ubicacion" and datosbuscar == "" : + xdatospieza = pieza.objects.all() + xdatosequipo = equipo.objects.all() + xdatosmarca = marca.objects.all() + xdatosubicacion = ubicacion.objects.all() + datos = pieza.objects.filter(marca_id=datosmarca) + return render(request, "buscar.html", {"datos": datos, "datospieza": xdatospieza, "datosequipo": xdatosequipo, "datosmarca": xdatosmarca, "datosubicacion": xdatosubicacion}) + elif datosequipo == "Selecciona un Equipo" and datosmarca == "Selecciona una Marca" and datospieza == "" and datosbuscar == "" : + xdatospieza = pieza.objects.all() + xdatosequipo = equipo.objects.all() + xdatosmarca = marca.objects.all() + xdatosubicacion = ubicacion.objects.all() + datos = pieza.objects.filter(ubicacion_id=datosubicacion) + return render(request, "buscar.html", {"datos": datos, "datospieza": xdatospieza, "datosequipo": xdatosequipo, "datosmarca": xdatosmarca, "datosubicacion": xdatosubicacion}) + elif datospieza == "" and datosubicacion == "Selecciona una Ubicacion" and datosbuscar == "" : + xdatospieza = pieza.objects.all() + xdatosequipo = equipo.objects.all() + xdatosmarca = marca.objects.all() + xdatosubicacion = ubicacion.objects.all() + datos = pieza.objects.filter(equipo_id=datosequipo).filter(marca_id=datosmarca) + return render(request, "buscar.html", {"datos": datos, "datospieza": xdatospieza, "datosequipo": xdatosequipo, "datosmarca": xdatosmarca, "datosubicacion": xdatosubicacion}) + elif datospieza == "" and datosmarca == "Selecciona una Marca" and datosbuscar == "" : + xdatospieza = pieza.objects.all() + xdatosequipo = equipo.objects.all() + xdatosmarca = marca.objects.all() + xdatosubicacion = ubicacion.objects.all() + datos = pieza.objects.filter(equipo_id=datosequipo).filter(ubicacion_id=datosubicacion) + return render(request, "buscar.html", {"datos": datos, "datospieza": xdatospieza, "datosequipo": xdatosequipo, "datosmarca": xdatosmarca, "datosubicacion": xdatosubicacion}) + elif datospieza == "" and datosequipo == "Selecciona un Equipo" and datosbuscar == "" : + xdatospieza = pieza.objects.all() + xdatosequipo = equipo.objects.all() + xdatosmarca = marca.objects.all() + xdatosubicacion = ubicacion.objects.all() + datos = pieza.objects.filter(marca_id=datosmarca).filter(ubicacion_id=datosubicacion) + return render(request, "buscar.html", {"datos": datos, "datospieza": xdatospieza, "datosequipo": xdatosequipo, "datosmarca": xdatosmarca, "datosubicacion": xdatosubicacion}) + + datospieza = pieza.objects.all() + datosequipo = equipo.objects.all() + datosmarca = marca.objects.all() + datosubicacion = ubicacion.objects.all() + return render(request, "buscar.html", {"datospieza": datospieza, "datosequipo": datosequipo, "datosmarca": datosmarca, "datosubicacion": datosubicacion}) + + +####### EXCEL ######################################################################### + +@login_required(login_url='/acceder') +def ReporteExcelInventario(request): + inventarios = pieza.objects.all() + datosequipo = equipo.objects.all() + datosmarca = marca.objects.all() + datosubicacion = ubicacion.objects.all() + fecha = datetime.datetime.now() + fe = str(fecha) + wb = Workbook() + ws = wb.active + ws['B1'] = 'REPORTE DE INVENTARIO' + + ws.merge_cells('B1:L1') + + ws['B2'] = datetime.datetime.now() + + ws.merge_cells('B2:D2') + + ws['B3'] = 'No. DE PEDIDO' + ws['C3'] = 'REFERENCIA' + ws['D3'] = 'EQUIPO' + ws['E3'] = 'DESCRIPCIÓN DE ETIQUETA' + ws['F3'] = 'DESCRIPCIÓN' + ws['G3'] = 'MARCA' + ws['H3'] = 'ESTATUS' + ws['I3'] = 'UBICACION' + ws['J3'] = 'CANTIDAD' + ws['K3'] = 'FECHA DE ACTUALIZACION' + ws['L3'] = 'COLUMN1' + + cont = 4 + + for inventario in inventarios: + for datoequipo in datosequipo: + if inventario.equipo_id == datoequipo.id: + excelequipo = datoequipo.nombre + for datomarca in datosmarca: + if inventario.marca_id == datomarca.id: + excelmarca = datomarca.nombre + for datoubicacion in datosubicacion: + if inventario.ubicacion_id == datoubicacion.id: + excelubicacion = datoubicacion.nombre + ws.cell(row=cont, column=2).value = inventario.n_pedido + ws.cell(row=cont, column=3).value = inventario.referencia + ws.cell(row=cont, column=4).value = excelequipo + ws.cell(row=cont, column=5).value = inventario.descripcion_etiqueta + ws.cell(row=cont, column=6).value = inventario.descripcion_pieza + ws.cell(row=cont, column=7).value = excelmarca + ws.cell(row=cont, column=8).value = inventario.estatus + ws.cell(row=cont, column=9).value = excelubicacion + ws.cell(row=cont, column=10).value = inventario.cantidad + ws.cell(row=cont, column=11).value = inventario.fecha_actualizacion + ws.cell(row=cont, column=12).value = inventario.Column1 + cont += 1 + + nombre_archivo = "ReporteInventario "+fe+".xlsx" + response = HttpResponse(content_type="application/ms-excel") + content = "attachment; filename = {0}".format(nombre_archivo) + response['Content-Disposition'] = content + wb.save(response) + return response + + +@login_required(login_url='/acceder') +def ReporteExcelInvEntrada(request): + inventarios = pieza.objects.all() + datosentrada = rentrada.objects.all() + fecha = datetime.datetime.now() + fe = str(fecha) + wb = Workbook() + ws = wb.active + ws['B1'] = 'REPORTE DE INVENTARIO ENTRADA' + + ws.merge_cells('B1:L1') + + ws['B2'] = datetime.datetime.now() + + ws.merge_cells('B2:D2') + + ws['B3'] = 'NO. PEDIDO o contrato' + ws['C3'] = 'REFERENCIA' + ws['D3'] = 'CANTIDAD' + ws['E3'] = 'FECHA ALTA' + + cont = 4 + + for datoentrada in datosentrada: + for inventario in inventarios: + if datoentrada.referencia_id == inventario.id: + excelreferencia = inventario.referencia + ws.cell(row=cont, column=2).value = datoentrada.n_pedido + ws.cell(row=cont, column=3).value = excelreferencia + ws.cell(row=cont, column=4).value = datoentrada.cantidad + ws.cell(row=cont, column=5).value = datoentrada.fecha_alta + cont += 1 + + nombre_archivo = "ReporteInventarioEntrada "+fe+".xlsx" + response = HttpResponse(content_type="application/ms-excel") + content = "attachment; filename = {0}".format(nombre_archivo) + response['Content-Disposition'] = content + wb.save(response) + return response + + +@login_required(login_url='/acceder') +def ReporteExcelInvSalida(request): + inventarios = pieza.objects.all() + datossalida = rsalida.objects.all() + datosequipo = equipo.objects.all() + datosmarca = marca.objects.all() + datosubicacion = ubicacion.objects.all() + fecha = datetime.datetime.now() + fe = str(fecha) + wb = Workbook() + ws = wb.active + ws['B1'] = 'REPORTE DE INVENTARIO SALIDA' + + ws.merge_cells('B1:L1') + + ws['B2'] = datetime.datetime.now() + + ws.merge_cells('B2:D2') + + ws['B3'] = 'QUIEN RETIRA' + ws['C3'] = 'REFERENCIA' + ws['D3'] = 'EQUIPO' + ws['E3'] = 'MARCA' + ws['F3'] = 'UBICACION' + ws['G3'] = 'CANTIDAD' + ws['H3'] = 'FECHA' + + cont = 4 + + for datosalida in datossalida: + for inventario in inventarios: + if datosalida.referencia_id == inventario.id: + excelreferencia = inventario.referencia + for datoequipo in datosequipo: + if inventario.equipo_id == datoequipo.id: + excelequipo = datoequipo.nombre + for datomarca in datosmarca: + if inventario.marca_id == datomarca.id: + excelmarca = datomarca.nombre + for datoubicacion in datosubicacion: + if inventario.ubicacion_id == datoubicacion.id: + excelubicacion = datoubicacion.nombre + ws.cell(row=cont, column=2).value = datosalida.autor + ws.cell(row=cont, column=3).value = excelreferencia + ws.cell(row=cont, column=4).value = excelequipo + ws.cell(row=cont, column=5).value = excelmarca + ws.cell(row=cont, column=6).value = excelubicacion + ws.cell(row=cont, column=7).value = datosalida.cantidad + ws.cell(row=cont, column=8).value = datosalida.fecha_alta + cont += 1 + + nombre_archivo = "ReporteInventarioSalida "+fe+".xlsx" + response = HttpResponse(content_type="application/ms-excel") + content = "attachment; filename = {0}".format(nombre_archivo) + response['Content-Disposition'] = content + wb.save(response) + return response + + + + + diff --git a/manage.py b/manage.py new file mode 100644 index 0000000..87c7769 --- /dev/null +++ b/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'siscdsalud.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/pendientes/__init__.py b/pendientes/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/pendientes/__pycache__/__init__.cpython-310.pyc b/pendientes/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..bde0cdd Binary files /dev/null and b/pendientes/__pycache__/__init__.cpython-310.pyc differ diff --git a/pendientes/__pycache__/__init__.cpython-39.pyc b/pendientes/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..143f0c5 Binary files /dev/null and b/pendientes/__pycache__/__init__.cpython-39.pyc differ diff --git a/pendientes/__pycache__/admin.cpython-310.pyc b/pendientes/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000..e9a38af Binary files /dev/null and b/pendientes/__pycache__/admin.cpython-310.pyc differ diff --git a/pendientes/__pycache__/admin.cpython-39.pyc b/pendientes/__pycache__/admin.cpython-39.pyc new file mode 100644 index 0000000..4f4b331 Binary files /dev/null and b/pendientes/__pycache__/admin.cpython-39.pyc differ diff --git a/pendientes/__pycache__/apps.cpython-310.pyc b/pendientes/__pycache__/apps.cpython-310.pyc new file mode 100644 index 0000000..5bd193c Binary files /dev/null and b/pendientes/__pycache__/apps.cpython-310.pyc differ diff --git a/pendientes/__pycache__/apps.cpython-39.pyc b/pendientes/__pycache__/apps.cpython-39.pyc new file mode 100644 index 0000000..866beb2 Binary files /dev/null and b/pendientes/__pycache__/apps.cpython-39.pyc differ diff --git a/pendientes/__pycache__/forms.cpython-310.pyc b/pendientes/__pycache__/forms.cpython-310.pyc new file mode 100644 index 0000000..416277b Binary files /dev/null and b/pendientes/__pycache__/forms.cpython-310.pyc differ diff --git a/pendientes/__pycache__/forms.cpython-39.pyc b/pendientes/__pycache__/forms.cpython-39.pyc new file mode 100644 index 0000000..0db3f6b Binary files /dev/null and b/pendientes/__pycache__/forms.cpython-39.pyc differ diff --git a/pendientes/__pycache__/models.cpython-310.pyc b/pendientes/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000..a8f9cc6 Binary files /dev/null and b/pendientes/__pycache__/models.cpython-310.pyc differ diff --git a/pendientes/__pycache__/models.cpython-39.pyc b/pendientes/__pycache__/models.cpython-39.pyc new file mode 100644 index 0000000..da20c07 Binary files /dev/null and b/pendientes/__pycache__/models.cpython-39.pyc differ diff --git a/pendientes/__pycache__/views.cpython-310.pyc b/pendientes/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000..7c4e6a5 Binary files /dev/null and b/pendientes/__pycache__/views.cpython-310.pyc differ diff --git a/pendientes/__pycache__/views.cpython-39.pyc b/pendientes/__pycache__/views.cpython-39.pyc new file mode 100644 index 0000000..c50abbe Binary files /dev/null and b/pendientes/__pycache__/views.cpython-39.pyc differ diff --git a/pendientes/admin.py b/pendientes/admin.py new file mode 100644 index 0000000..e762092 --- /dev/null +++ b/pendientes/admin.py @@ -0,0 +1,6 @@ +from django.contrib import admin +from .models import bitpendientes + + +# Register your models here. +admin.site.register(bitpendientes) \ No newline at end of file diff --git a/pendientes/apps.py b/pendientes/apps.py new file mode 100644 index 0000000..2bd99b5 --- /dev/null +++ b/pendientes/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class PendientesConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'pendientes' diff --git a/pendientes/forms.py b/pendientes/forms.py new file mode 100644 index 0000000..53ab88b --- /dev/null +++ b/pendientes/forms.py @@ -0,0 +1,17 @@ +from django import forms +from .models import bitpendientes + + + +class FormularioPendiente(forms.ModelForm): + class Meta: + model = bitpendientes + fields = ('n_reporte', 'fecha', 'reporta_ib', 'n_control', 'falla', 'contrato', 'reprovedor', 'refacciones') + + +class FormularioPendienteEnv(forms.ModelForm): + class Meta: + model = bitpendientes + fields = ('n_control', 'contrato', 'reprovedor', 'refacciones') + + diff --git a/pendientes/migrations/0001_initial.py b/pendientes/migrations/0001_initial.py new file mode 100644 index 0000000..54f9638 --- /dev/null +++ b/pendientes/migrations/0001_initial.py @@ -0,0 +1,38 @@ +# Generated by Django 3.2.8 on 2021-10-20 10:20 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import tinymce.models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='bitpendientes', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('n_reporte', models.CharField(max_length=50, verbose_name='NUM. DE REPORTE')), + ('fecha', models.DateField(verbose_name='FECHA')), + ('n_control', models.IntegerField(verbose_name='NO. DE CONTROL DEL EQUIPO')), + ('falla', models.CharField(blank=True, max_length=250, null=True, verbose_name='FALLA PRESENTADA')), + ('contrato', models.CharField(choices=[('SI', 'SI'), ('NO', 'NO')], default='SI', max_length=5, verbose_name='CON CONTRATO')), + ('reprovedor', models.CharField(blank=True, max_length=250, null=True, verbose_name='NO. DE REPORTE PROVEDOR')), + ('refacciones', tinymce.models.HTMLField(blank=True, null=True, verbose_name='REFACCIONES PARA EQUIPOS SIN CONTRATO')), + ('concluido', models.CharField(choices=[('SI', 'SI'), ('NO', 'NO')], default='NO', max_length=5, verbose_name='CONCLUIDO')), + ('reporta_ib', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='REPORTA IB')), + ], + options={ + 'verbose_name': 'Bitacora Pendientes', + 'verbose_name_plural': 'Bitacora Pendientes', + 'ordering': ['-id'], + }, + ), + ] diff --git a/pendientes/migrations/0002_alter_bitpendientes_concluido.py b/pendientes/migrations/0002_alter_bitpendientes_concluido.py new file mode 100644 index 0000000..27de30b --- /dev/null +++ b/pendientes/migrations/0002_alter_bitpendientes_concluido.py @@ -0,0 +1,18 @@ +# Generated by Django 4.0.2 on 2022-03-10 17:19 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pendientes', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='bitpendientes', + name='concluido', + field=models.CharField(choices=[('Bitacora', 'Bitacora'), ('Pendiente', 'Pendiente'), ('Realizado', 'Realizado')], default='Pendiente', max_length=20, verbose_name='Pendiente'), + ), + ] diff --git a/pendientes/migrations/__init__.py b/pendientes/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/pendientes/migrations/__pycache__/0001_initial.cpython-310.pyc b/pendientes/migrations/__pycache__/0001_initial.cpython-310.pyc new file mode 100644 index 0000000..41b1f87 Binary files /dev/null and b/pendientes/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/pendientes/migrations/__pycache__/0001_initial.cpython-39.pyc b/pendientes/migrations/__pycache__/0001_initial.cpython-39.pyc new file mode 100644 index 0000000..326d83c Binary files /dev/null and b/pendientes/migrations/__pycache__/0001_initial.cpython-39.pyc differ diff --git a/pendientes/migrations/__pycache__/0002_alter_bitpendientes_concluido.cpython-310.pyc b/pendientes/migrations/__pycache__/0002_alter_bitpendientes_concluido.cpython-310.pyc new file mode 100644 index 0000000..468c761 Binary files /dev/null and b/pendientes/migrations/__pycache__/0002_alter_bitpendientes_concluido.cpython-310.pyc differ diff --git a/pendientes/migrations/__pycache__/__init__.cpython-310.pyc b/pendientes/migrations/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..b4e3388 Binary files /dev/null and b/pendientes/migrations/__pycache__/__init__.cpython-310.pyc differ diff --git a/pendientes/migrations/__pycache__/__init__.cpython-39.pyc b/pendientes/migrations/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..4a28e22 Binary files /dev/null and b/pendientes/migrations/__pycache__/__init__.cpython-39.pyc differ diff --git a/pendientes/models.py b/pendientes/models.py new file mode 100644 index 0000000..619b498 --- /dev/null +++ b/pendientes/models.py @@ -0,0 +1,31 @@ +from django.db import models +from django.contrib.auth.models import User +from tinymce import models as tinymce_models +from model_utils import Choices + + +# Create your models here. + +class bitpendientes(models.Model): + STATUS = Choices('Bitacora', 'Pendiente', 'Realizado') + STATUS1 = Choices('SI', 'NO') + n_reporte = models.CharField(max_length=50, null=False, verbose_name='NUM. DE REPORTE') + fecha = models.DateField(verbose_name='FECHA') + reporta_ib = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, verbose_name='REPORTA IB') + n_control = models.IntegerField(null=False, blank=False, verbose_name='NO. DE CONTROL DEL EQUIPO') + falla = models.CharField(max_length=250, null=True, blank=True, verbose_name='FALLA PRESENTADA') + contrato = models.CharField(choices=STATUS1, default=STATUS1.SI, max_length=5, verbose_name='CON CONTRATO') + reprovedor = models.CharField(max_length=250, null=True, blank=True, verbose_name='NO. DE REPORTE PROVEDOR') + refacciones = tinymce_models.HTMLField(null=True, blank=True, verbose_name='REFACCIONES PARA EQUIPOS SIN CONTRATO') + concluido = models.CharField(choices=STATUS, default=STATUS.Pendiente, max_length=20, verbose_name='Pendiente') + + def __str__(self): + return self.n_reporte + + class Meta: + verbose_name = 'Bitacora Pendientes' + verbose_name_plural = 'Bitacora Pendientes' + ordering = ['-id'] + + + diff --git a/pendientes/tests.py b/pendientes/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/pendientes/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/pendientes/views.py b/pendientes/views.py new file mode 100644 index 0000000..9e6ad5b --- /dev/null +++ b/pendientes/views.py @@ -0,0 +1,148 @@ +from django.shortcuts import render, redirect, get_object_or_404 +from django.contrib import messages +from django.contrib.auth.decorators import login_required +from django.contrib.auth.models import User +from inventario.views import inv_equipo +from .models import bitpendientes +from .forms import FormularioPendiente, FormularioPendienteEnv +from servicios.models import serviciorealizado, accesorios +from inventario.models import invequipo +from bitacora.models import bitreporte +from django.http.response import HttpResponse +from datetime import datetime +import datetime +from openpyxl import Workbook + + +# Create your views here. + +def pendientes(request): + datos = bitpendientes.objects.filter(concluido='Pendiente') + equipo = invequipo.objects.all() + servicios = serviciorealizado.objects.all() + usuarios = User.objects.all() + accesorio = accesorios.objects.all() + return render(request, 'pendientes.html', {"datos": datos, "servicios": servicios, "equipo": equipo, "usuarios": usuarios, "accesorio": accesorio}) + + +@login_required(login_url='/acceder') +def crear_pendiente(request, cb): + if request.method == "POST": + form = FormularioPendiente(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + titulo = form.cleaned_data.get("n_reporte") + update = bitreporte.objects.values('pendiente').filter(control_bit=titulo).update(pendiente='Pendiente') + messages.success(request, f"La bitacora con el reporte {titulo} se ha creado correctamente") + return redirect("pendientes") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + ccontrolb = cb + dato = bitreporte.objects.filter(control_bit=ccontrolb) + falla = dato[0].reporte + reporta_ib_1 = dato[0].asignado + reporta_ib = dato[0].asignado.id + form = FormularioPendienteEnv() + return render(request, "crear_pendiente.html", {"form": form, "ccontrolb": ccontrolb, "falla": falla, "reporta_ib": reporta_ib, "reporta_ib_1": reporta_ib_1}) + + +@login_required(login_url='/acceder') +def ActualizarPendientes(request, id): + instance= get_object_or_404(bitpendientes, pk=id) + form = FormularioPendiente(request.POST or None, instance=instance) + context= {'form': form} + if form.is_valid(): + obj= form.save(commit= False) + obj.save() + messages.success(request, "La Bitacora de Pendientes fue actualizada") + return redirect("pendientes") + + else: + context= {'form': form, 'error': 'Error al actualizar'} + return render(request,'crear_pendiente2.html' , context) + + + +@login_required(login_url='/acceder') +def ReporteExcelPendietes(request): + datospendientes = bitpendientes.objects.all() + ibs = User.objects.all() + datosservicio = serviciorealizado.objects.all() + datosaccesorios = accesorios.objects.all() + fecha = datetime.datetime.now() + fe = str(fecha) + wb = Workbook() + ws = wb.active + ws['B1'] = 'REPORTE DE SERVICIOS CONCLUIDOS' + + ws.merge_cells('B1:L1') + + ws['B2'] = datetime.datetime.now() + + ws.merge_cells('B2:D2') + + ws['B3'] = 'No. REPORTE' + ws['C3'] = 'FECHA' + ws['D3'] = 'REPORTA IB' + ws['E3'] = 'No. CONTROL' + ws['F3'] = 'FALLA PRESENTADA' + ws['G3'] = 'CON CONTRATO' + ws['H3'] = 'PROVEEDOR' + ws['I3'] = 'REFACCIONES PENDENTES' + ws['J3'] = 'SERVICIOS' + ws['K3'] = 'ACCESORIOS' + + cont = 4 + for datopendientes in datospendientes: + for ib in ibs: + if datopendientes.reporta_ib_id == ib.id: + reporta = ib.username + + count = 0 + serreali = "" + for datoservicio in datosservicio: + if datopendientes.n_reporte == datoservicio.control_bit: + count = count + 1 + realizado = str(count) + " - " + datoservicio.descripcion + serreali = serreali + " // " + realizado + if count == 0 : + serreali = "" + count = 0 + + count1 = 0 + seracce = "" + for datoaccesorios in datosaccesorios: + if datopendientes.n_reporte == datoaccesorios.control_bit: + count1 = count1 + 1 + acceso = str(count1) + " - " + datoaccesorios.n_parte + " | " + datoaccesorios.descripcion + seracce = seracce + " // " + acceso + if count1 == 0 : + seracce = "" + + ws.cell(row=cont, column=2).value = datopendientes.n_reporte + ws.cell(row=cont, column=3).value = datopendientes.fecha + ws.cell(row=cont, column=4).value = reporta + ws.cell(row=cont, column=5).value = datopendientes.n_control + ws.cell(row=cont, column=6).value = datopendientes.falla + ws.cell(row=cont, column=7).value = datopendientes.contrato + ws.cell(row=cont, column=8).value = datopendientes.reprovedor + ws.cell(row=cont, column=9).value = datopendientes.refacciones + ws.cell(row=cont, column=10).value = serreali + ws.cell(row=cont, column=11).value = seracce + + cont += 1 + serreali = "" + seracce = "" + + + nombre_archivo = "ReporteServicioConcluidos "+fe+".xlsx" + response = HttpResponse(content_type="application/ms-excel") + content = "attachment; filename = {0}".format(nombre_archivo) + response['Content-Disposition'] = content + wb.save(response) + return response + diff --git a/principal/__init__.py b/principal/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/principal/__pycache__/__init__.cpython-310.pyc b/principal/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..2f40bc9 Binary files /dev/null and b/principal/__pycache__/__init__.cpython-310.pyc differ diff --git a/principal/__pycache__/__init__.cpython-39.pyc b/principal/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..049a5d5 Binary files /dev/null and b/principal/__pycache__/__init__.cpython-39.pyc differ diff --git a/principal/__pycache__/views.cpython-310.pyc b/principal/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000..81e3d00 Binary files /dev/null and b/principal/__pycache__/views.cpython-310.pyc differ diff --git a/principal/__pycache__/views.cpython-39.pyc b/principal/__pycache__/views.cpython-39.pyc new file mode 100644 index 0000000..959e489 Binary files /dev/null and b/principal/__pycache__/views.cpython-39.pyc differ diff --git a/principal/admin.py b/principal/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/principal/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/principal/apps.py b/principal/apps.py new file mode 100644 index 0000000..731d56c --- /dev/null +++ b/principal/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class PrincipalConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'principal' diff --git a/principal/migrations/__init__.py b/principal/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/principal/models.py b/principal/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/principal/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/principal/tests.py b/principal/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/principal/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/principal/views.py b/principal/views.py new file mode 100644 index 0000000..8530048 --- /dev/null +++ b/principal/views.py @@ -0,0 +1,7 @@ +from django.shortcuts import render +from django.contrib.auth.decorators import login_required + +# Create your views here. +@login_required(login_url='/acceder') +def inicio(request): + return render(request, 'index.html') \ No newline at end of file diff --git a/prueba.py b/prueba.py new file mode 100644 index 0000000..2acfb0c --- /dev/null +++ b/prueba.py @@ -0,0 +1,4 @@ +#! python3 +python3 manage.py runserver 0.0.0.0:8000 +print("nucleo by ant") +input() \ No newline at end of file diff --git a/reportes.bat b/reportes.bat new file mode 100644 index 0000000..48323e4 --- /dev/null +++ b/reportes.bat @@ -0,0 +1,4 @@ +timeout /t 10 /nobreak + +python manage.py runserver 0.0.0.0:8000 + diff --git a/servicios/__init__.py b/servicios/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/servicios/__pycache__/__init__.cpython-310.pyc b/servicios/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..f26d84b Binary files /dev/null and b/servicios/__pycache__/__init__.cpython-310.pyc differ diff --git a/servicios/__pycache__/__init__.cpython-39.pyc b/servicios/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..1ce4089 Binary files /dev/null and b/servicios/__pycache__/__init__.cpython-39.pyc differ diff --git a/servicios/__pycache__/admin.cpython-310.pyc b/servicios/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000..2bee0b2 Binary files /dev/null and b/servicios/__pycache__/admin.cpython-310.pyc differ diff --git a/servicios/__pycache__/admin.cpython-39.pyc b/servicios/__pycache__/admin.cpython-39.pyc new file mode 100644 index 0000000..3fb4eea Binary files /dev/null and b/servicios/__pycache__/admin.cpython-39.pyc differ diff --git a/servicios/__pycache__/apps.cpython-310.pyc b/servicios/__pycache__/apps.cpython-310.pyc new file mode 100644 index 0000000..5dcdf5d Binary files /dev/null and b/servicios/__pycache__/apps.cpython-310.pyc differ diff --git a/servicios/__pycache__/apps.cpython-39.pyc b/servicios/__pycache__/apps.cpython-39.pyc new file mode 100644 index 0000000..2ef5116 Binary files /dev/null and b/servicios/__pycache__/apps.cpython-39.pyc differ diff --git a/servicios/__pycache__/forms.cpython-310.pyc b/servicios/__pycache__/forms.cpython-310.pyc new file mode 100644 index 0000000..794afd0 Binary files /dev/null and b/servicios/__pycache__/forms.cpython-310.pyc differ diff --git a/servicios/__pycache__/forms.cpython-39.pyc b/servicios/__pycache__/forms.cpython-39.pyc new file mode 100644 index 0000000..a6682f0 Binary files /dev/null and b/servicios/__pycache__/forms.cpython-39.pyc differ diff --git a/servicios/__pycache__/models.cpython-310.pyc b/servicios/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000..8bfb842 Binary files /dev/null and b/servicios/__pycache__/models.cpython-310.pyc differ diff --git a/servicios/__pycache__/models.cpython-39.pyc b/servicios/__pycache__/models.cpython-39.pyc new file mode 100644 index 0000000..3ac1361 Binary files /dev/null and b/servicios/__pycache__/models.cpython-39.pyc differ diff --git a/servicios/__pycache__/views.cpython-310.pyc b/servicios/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000..3bba0d3 Binary files /dev/null and b/servicios/__pycache__/views.cpython-310.pyc differ diff --git a/servicios/__pycache__/views.cpython-39.pyc b/servicios/__pycache__/views.cpython-39.pyc new file mode 100644 index 0000000..2547e81 Binary files /dev/null and b/servicios/__pycache__/views.cpython-39.pyc differ diff --git a/servicios/admin.py b/servicios/admin.py new file mode 100644 index 0000000..0f4d7b6 --- /dev/null +++ b/servicios/admin.py @@ -0,0 +1,9 @@ +from django.contrib import admin +from .models import tiposervicio, falla, ordenservicio, serviciorealizado, accesorios + +# Register your models here. +admin.site.register(tiposervicio) +admin.site.register(falla) +admin.site.register(ordenservicio) +admin.site.register(serviciorealizado) +admin.site.register(accesorios) \ No newline at end of file diff --git a/servicios/apps.py b/servicios/apps.py new file mode 100644 index 0000000..7b5e369 --- /dev/null +++ b/servicios/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class ServiciosConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'servicios' diff --git a/servicios/forms.py b/servicios/forms.py new file mode 100644 index 0000000..2543300 --- /dev/null +++ b/servicios/forms.py @@ -0,0 +1,123 @@ +from django import forms +from .models import ordenservicio, serviciorealizado, accesorios, refacciones, preventivo + + + +class Formordenservicio(forms.ModelForm): + def __init__(self, *args, **kwargs): + super(Formordenservicio, self).__init__(*args, **kwargs) + self.fields['horas_ib1'].widget.attrs['require'] = True + self.fields['id_ib1'].widget.attrs['require'] = True + + class Meta: + model = ordenservicio + fields = ('folio', 'turno', 'reporta', 'ib1', 'ib2', 'orden_n_control', + 'n_reporte', 'tipo_servicio', 'origen_falla', 'falla_detectada', 'materiales', + 'articulos', 'equipos', 'patrones', 'herramienta', 'estatus', 'no_concluido', + 'externo_empresa', 'externo_orden', 'externo_servicio', 'horas_ib1', 'id_ib1', + 'horas_ib2', 'id_ib2') + + +class FormordenservicioEnv(forms.ModelForm): + class Meta: + model = ordenservicio + fields = ('reporta', 'ib1', 'ib2', 'n_reporte', 'origen_falla', 'tipo_servicio', + 'falla_detectada', 'materiales', 'articulos', 'equipos', 'patrones', 'herramienta', + 'estatus', 'no_concluido', 'externo_empresa', 'externo_orden', 'externo_servicio', + 'horas_ib1', 'id_ib1', 'horas_ib2', 'id_ib2', 'firma_ib1', 'firma_ib2') + + +class FormordenservicioEnvbit(forms.ModelForm): + class Meta: + model = ordenservicio + fields = ('reporta', 'ib1', 'ib2', 'origen_falla', 'tipo_servicio', 'falla_detectada', + 'materiales', 'articulos', 'equipos', 'patrones', 'herramienta', 'estatus', 'no_concluido', + 'externo_empresa', 'externo_orden', 'externo_servicio', 'horas_ib1', 'id_ib1', 'horas_ib2', + 'id_ib2', 'firma_ib1', 'firma_ib2') + + +class FormordenservicioEnvbit1(forms.ModelForm): + class Meta: + model = ordenservicio + fields = ('ib2',) + + +class FormordenservicioEnvbit2(forms.ModelForm): + class Meta: + model = ordenservicio + fields = ('origen_falla', 'tipo_servicio') + + +class FormordenservicioEnvbit3(forms.ModelForm): + class Meta: + model = ordenservicio + fields = ('materiales', 'articulos', 'equipos', 'patrones', 'herramienta') + + +class FormordenservicioEnvbit4(forms.ModelForm): + class Meta: + model = ordenservicio + fields = ('estatus', 'no_concluido') + + +class FormordenservicioEnvbit5(forms.ModelForm): + class Meta: + model = ordenservicio + fields = ('externo_empresa', 'externo_orden', 'externo_servicio') + + +class FormordenservicioEnvbit6(forms.ModelForm): + class Meta: + model = ordenservicio + fields = ('id_ib1', 'horas_ib1', 'id_ib2', 'horas_ib2') + + + + + +############################################################################# + +class Formserviciorealizado(forms.ModelForm): + class Meta: + model = serviciorealizado + fields = ('folio', 'ser_s_n_control', 'ib', 'descripcion', 'control_bit') + + +class FormserviciorealizadoEnv(forms.ModelForm): + class Meta: + model = serviciorealizado + fields = ('ib', 'descripcion') + + +class Formaccesorios(forms.ModelForm): + class Meta: + model = accesorios + fields = ('folio', 'ser_a_n_control', 'cantidad', 'n_parte', 'descripcion', 'control_bit') + + +class FormaccesoriosEnv(forms.ModelForm): + class Meta: + model = accesorios + fields = ('cantidad', 'n_parte', 'descripcion') + + +class Formrefacciones(forms.ModelForm): + class Meta: + model = refacciones + fields = ('referencia', 'n_reporte', 'cantidad') + + + +############################ PREVENTIVO ###################################### + + +class Formpreventivo(forms.ModelForm): + class Meta: + model = preventivo + fields = ('n_control', 'usuario', 'notas', 'fecha_start', 'fecha_end', 'estatus') + + +class FormpreventivoEnv(forms.ModelForm): + class Meta: + model = preventivo + fields = ('n_control', 'usuario', 'notas', 'estatus') \ No newline at end of file diff --git a/servicios/migrations/0001_initial.py b/servicios/migrations/0001_initial.py new file mode 100644 index 0000000..639d569 --- /dev/null +++ b/servicios/migrations/0001_initial.py @@ -0,0 +1,116 @@ +# Generated by Django 3.2.7 on 2021-10-11 22:30 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import tinymce.models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='accesorios', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('folio', models.IntegerField(verbose_name='Folio')), + ('ser_a_n_control', models.IntegerField(verbose_name='No Control')), + ('cantidad', models.IntegerField(verbose_name='Cantidad')), + ('n_parte', models.CharField(max_length=250, verbose_name='Número de Parte')), + ('descripcion', models.CharField(max_length=250, verbose_name='Descripción')), + ], + options={ + 'verbose_name': 'Accesorios de Ordenes', + 'verbose_name_plural': 'Accesorios de Ordenes', + 'ordering': ['-folio'], + }, + ), + migrations.CreateModel( + name='falla', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nombre', models.CharField(max_length=250, unique=True, verbose_name='Nombre')), + ('otra', models.CharField(max_length=250, verbose_name='Especificar solo si selecciona: otra')), + ], + options={ + 'verbose_name': 'Origen Falla', + 'verbose_name_plural': 'Origen Falla', + 'ordering': ['nombre'], + }, + ), + migrations.CreateModel( + name='tiposervicio', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nombre', models.CharField(max_length=250, unique=True, verbose_name='Nombre')), + ], + options={ + 'verbose_name': 'Tipo de Servicio', + 'verbose_name_plural': 'Tipos de Servicios', + 'ordering': ['nombre'], + }, + ), + migrations.CreateModel( + name='serviciorealizado', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('folio', models.IntegerField(verbose_name='Folio')), + ('ser_s_n_control', models.IntegerField(verbose_name='No Control')), + ('fecha', models.DateField(auto_now_add=True, verbose_name='Fecha')), + ('descripcion', tinymce.models.HTMLField(verbose_name='Descripción del Servicio')), + ('ib', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='IB')), + ], + options={ + 'verbose_name': 'Servicios de las ordenes', + 'verbose_name_plural': 'Servicios de las ordenes', + 'ordering': ['-folio'], + }, + ), + migrations.CreateModel( + name='ordenservicio', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('folio', models.IntegerField(unique=True, verbose_name='Folio')), + ('fecha', models.DateField(auto_now_add=True, verbose_name='Fecha')), + ('turno', models.CharField(max_length=50, verbose_name='Turno Hora')), + ('reporta', models.CharField(max_length=250, verbose_name='Reporta')), + ('orden_n_control', models.IntegerField(verbose_name='No Control')), + ('n_reporte', models.CharField(max_length=250, verbose_name='NUMERO DE REPORTE')), + ('falla_detectada', models.CharField(max_length=250, verbose_name='Falla Detectada')), + ('materiales', models.CharField(choices=[('SI', 'SI'), ('NO', 'NO')], default='NO', max_length=11, verbose_name='Materiales (electronico/Solvente/Adhesivo/Limpieza/Lubricantes/Surgistein)')), + ('articulos', models.CharField(choices=[('SI', 'SI'), ('NO', 'NO')], default='NO', max_length=11, verbose_name='Articulos de limpieza y protección (Gasas/Guantes de latex/cubrebocas ) ')), + ('equipos', models.CharField(choices=[('SI', 'SI'), ('NO', 'NO')], default='NO', max_length=11, verbose_name='Equipos de Medicion (Multimetro/Tacometro/Termometro/Manometro/Corriente de Fuga)')), + ('patrones', models.CharField(choices=[('SI', 'SI'), ('NO', 'NO')], default='NO', max_length=11, verbose_name='Patrones para validacion ( Probador de descargas/Simulador de ECG,RESP,SP02, GASTO CARDIACO/Marco de Pesas)')), + ('herramienta', models.CharField(choices=[('SI', 'SI'), ('NO', 'NO')], default='NO', max_length=11, verbose_name='Herramienta (General, Electrica, Neumatica)')), + ('estatus', models.CharField(choices=[('SI', 'SI'), ('NO', 'NO')], default='NO', max_length=11, verbose_name='Estatus CONCLUIDO?')), + ('no_concluido', tinymce.models.HTMLField(blank=True, null=True, verbose_name='Especificar si no es Concluido:')), + ('externo_empresa', models.CharField(blank=True, max_length=250, null=True, verbose_name='Nombre de la Empresa')), + ('externo_orden', models.CharField(blank=True, max_length=250, null=True, verbose_name='No. de la Orden de Servicio')), + ('externo_servicio', models.CharField(choices=[('Ninguno', 'Ninguno'), ('Contrato', 'Contrato'), ('Subrrogado', 'Subrrogado'), ('Evento', 'Evento')], default='Ninguno', max_length=13, verbose_name='Tipo de Servicio')), + ('horas_ib1', models.IntegerField(blank=True, null=True, verbose_name='Horas Ingeniero IB1')), + ('horas_ib2', models.IntegerField(blank=True, null=True, verbose_name='Horas Ingeniero IB2')), + ('firma_area', models.CharField(blank=True, max_length=250, null=True, verbose_name='Nombre del Personal que Acepta')), + ('val_serv', models.CharField(choices=[('Excelente', 'Excelente'), ('Regular', 'Regular'), ('Malo', 'Malo')], default='Excelente', max_length=13, verbose_name='Valoracion de Servicio')), + ('observ_area', models.CharField(blank=True, max_length=250, null=True, verbose_name='OBSERVACIONES DE PERSONAL DEL AREA.')), + ('firma_ib1', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='FIRMA IB1')), + ('firma_ib2', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='FIRMA IB2')), + ('ib1', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='IB1', to=settings.AUTH_USER_MODEL, verbose_name='Atiende IB1')), + ('ib2', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='IB2', to=settings.AUTH_USER_MODEL, verbose_name='Atiende IB2')), + ('id_ib1', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='ID IB1')), + ('id_ib2', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='ID IB2')), + ('origen_falla', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='servicios.falla', verbose_name='Origen de la Falla')), + ('tipo_servicio', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='servicios.tiposervicio', verbose_name='Tipo de Servicio')), + ], + options={ + 'verbose_name': 'Ordenes de Servicio', + 'verbose_name_plural': 'Ordenes de Servicios', + 'ordering': ['-folio'], + }, + ), + ] diff --git a/servicios/migrations/0002_alter_falla_otra.py b/servicios/migrations/0002_alter_falla_otra.py new file mode 100644 index 0000000..e3bda8d --- /dev/null +++ b/servicios/migrations/0002_alter_falla_otra.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.7 on 2021-10-11 22:32 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('servicios', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='falla', + name='otra', + field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Especificar solo si selecciona: otra'), + ), + ] diff --git a/servicios/migrations/0003_auto_20211011_1736.py b/servicios/migrations/0003_auto_20211011_1736.py new file mode 100644 index 0000000..242b332 --- /dev/null +++ b/servicios/migrations/0003_auto_20211011_1736.py @@ -0,0 +1,22 @@ +# Generated by Django 3.2.7 on 2021-10-11 22:36 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('servicios', '0002_alter_falla_otra'), + ] + + operations = [ + migrations.RemoveField( + model_name='falla', + name='otra', + ), + migrations.AddField( + model_name='ordenservicio', + name='origen_falla_otra', + field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Especificar solo si selecciona: otra'), + ), + ] diff --git a/servicios/migrations/0004_alter_ordenservicio_orden_n_control.py b/servicios/migrations/0004_alter_ordenservicio_orden_n_control.py new file mode 100644 index 0000000..450e2c0 --- /dev/null +++ b/servicios/migrations/0004_alter_ordenservicio_orden_n_control.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.8 on 2021-10-20 10:20 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('servicios', '0003_auto_20211011_1736'), + ] + + operations = [ + migrations.AlterField( + model_name='ordenservicio', + name='orden_n_control', + field=models.IntegerField(verbose_name='No Control del Equipo'), + ), + ] diff --git a/servicios/migrations/0005_auto_20211103_2306.py b/servicios/migrations/0005_auto_20211103_2306.py new file mode 100644 index 0000000..daa2fdb --- /dev/null +++ b/servicios/migrations/0005_auto_20211103_2306.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.8 on 2021-11-04 05:06 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('servicios', '0004_alter_ordenservicio_orden_n_control'), + ] + + operations = [ + migrations.AddField( + model_name='accesorios', + name='control_bit', + field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Control Bitacora'), + ), + migrations.AddField( + model_name='serviciorealizado', + name='control_bit', + field=models.CharField(blank=True, max_length=250, null=True, verbose_name='Control Bitacora'), + ), + ] diff --git a/servicios/migrations/0006_alter_serviciorealizado_folio.py b/servicios/migrations/0006_alter_serviciorealizado_folio.py new file mode 100644 index 0000000..54c7868 --- /dev/null +++ b/servicios/migrations/0006_alter_serviciorealizado_folio.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.8 on 2021-11-05 09:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('servicios', '0005_auto_20211103_2306'), + ] + + operations = [ + migrations.AlterField( + model_name='serviciorealizado', + name='folio', + field=models.IntegerField(blank=True, null=True, verbose_name='Folio'), + ), + ] diff --git a/servicios/migrations/0007_alter_serviciorealizado_options.py b/servicios/migrations/0007_alter_serviciorealizado_options.py new file mode 100644 index 0000000..e5b97c7 --- /dev/null +++ b/servicios/migrations/0007_alter_serviciorealizado_options.py @@ -0,0 +1,17 @@ +# Generated by Django 3.2.7 on 2021-11-05 21:26 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('servicios', '0006_alter_serviciorealizado_folio'), + ] + + operations = [ + migrations.AlterModelOptions( + name='serviciorealizado', + options={'ordering': ['-id'], 'verbose_name': 'Servicios de las ordenes', 'verbose_name_plural': 'Servicios de las ordenes'}, + ), + ] diff --git a/servicios/migrations/0008_alter_ordenservicio_val_serv.py b/servicios/migrations/0008_alter_ordenservicio_val_serv.py new file mode 100644 index 0000000..78eaf1f --- /dev/null +++ b/servicios/migrations/0008_alter_ordenservicio_val_serv.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.8 on 2021-11-08 07:47 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('servicios', '0007_alter_serviciorealizado_options'), + ] + + operations = [ + migrations.AlterField( + model_name='ordenservicio', + name='val_serv', + field=models.CharField(blank=True, choices=[('Excelente', 'Excelente'), ('Regular', 'Regular'), ('Malo', 'Malo')], default='Excelente', max_length=13, null=True, verbose_name='Valoracion de Servicio'), + ), + ] diff --git a/servicios/migrations/0009_alter_accesorios_options.py b/servicios/migrations/0009_alter_accesorios_options.py new file mode 100644 index 0000000..248a2b4 --- /dev/null +++ b/servicios/migrations/0009_alter_accesorios_options.py @@ -0,0 +1,17 @@ +# Generated by Django 3.2.8 on 2021-11-08 08:29 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('servicios', '0008_alter_ordenservicio_val_serv'), + ] + + operations = [ + migrations.AlterModelOptions( + name='accesorios', + options={'ordering': ['-id'], 'verbose_name': 'Accesorios de Ordenes', 'verbose_name_plural': 'Accesorios de Ordenes'}, + ), + ] diff --git a/servicios/migrations/0010_auto_20211108_0242.py b/servicios/migrations/0010_auto_20211108_0242.py new file mode 100644 index 0000000..df55811 --- /dev/null +++ b/servicios/migrations/0010_auto_20211108_0242.py @@ -0,0 +1,28 @@ +# Generated by Django 3.2.8 on 2021-11-08 08:42 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('servicios', '0009_alter_accesorios_options'), + ] + + operations = [ + migrations.AlterField( + model_name='accesorios', + name='folio', + field=models.IntegerField(blank=True, null=True, verbose_name='Folio'), + ), + migrations.AlterField( + model_name='accesorios', + name='ser_a_n_control', + field=models.IntegerField(blank=True, null=True, verbose_name='No Control'), + ), + migrations.AlterField( + model_name='serviciorealizado', + name='ser_s_n_control', + field=models.IntegerField(blank=True, null=True, verbose_name='No Control'), + ), + ] diff --git a/servicios/migrations/0011_accesorios_n_reporte_serviciorealizado_n_reporte.py b/servicios/migrations/0011_accesorios_n_reporte_serviciorealizado_n_reporte.py new file mode 100644 index 0000000..1e4360b --- /dev/null +++ b/servicios/migrations/0011_accesorios_n_reporte_serviciorealizado_n_reporte.py @@ -0,0 +1,23 @@ +# Generated by Django 4.0.2 on 2022-03-08 23:46 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('servicios', '0010_auto_20211108_0242'), + ] + + operations = [ + migrations.AddField( + model_name='accesorios', + name='n_reporte', + field=models.CharField(default='', max_length=250, verbose_name='NUMERO DE REPORTE'), + ), + migrations.AddField( + model_name='serviciorealizado', + name='n_reporte', + field=models.CharField(default='', max_length=250, verbose_name='NUMERO DE REPORTE'), + ), + ] diff --git a/servicios/migrations/0012_alter_accesorios_n_reporte_and_more.py b/servicios/migrations/0012_alter_accesorios_n_reporte_and_more.py new file mode 100644 index 0000000..baea7ee --- /dev/null +++ b/servicios/migrations/0012_alter_accesorios_n_reporte_and_more.py @@ -0,0 +1,80 @@ +# Generated by Django 4.0.2 on 2022-04-11 02:32 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('servicios', '0011_accesorios_n_reporte_serviciorealizado_n_reporte'), + ] + + operations = [ + migrations.AlterField( + model_name='accesorios', + name='n_reporte', + field=models.CharField(blank=True, default='', max_length=250, null=True, verbose_name='NUMERO DE REPORTE'), + ), + migrations.AlterField( + model_name='ordenservicio', + name='estatus', + field=models.CharField(choices=[('SI', 'SI'), ('NO', 'NO')], default='SI', max_length=11, verbose_name='Estatus CONCLUIDO?'), + ), + migrations.AlterField( + model_name='ordenservicio', + name='firma_ib1', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='FIRMA IB1'), + ), + migrations.AlterField( + model_name='ordenservicio', + name='horas_ib1', + field=models.IntegerField(default=0, verbose_name='Horas Ingeniero IB1'), + ), + migrations.AlterField( + model_name='ordenservicio', + name='id_ib1', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='ID IB1'), + ), + migrations.AlterField( + model_name='serviciorealizado', + name='n_reporte', + field=models.CharField(blank=True, default='', max_length=250, null=True, verbose_name='NUMERO DE REPORTE'), + ), + migrations.CreateModel( + name='refacciones', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('referencia', models.CharField(max_length=250, verbose_name='Referencia')), + ('n_reporte', models.CharField(blank=True, default='', max_length=250, null=True, verbose_name='No. de Reporte')), + ('cantidad', models.IntegerField(verbose_name='Cantidad')), + ('fecharegis', models.DateField(auto_now_add=True, null=True, verbose_name='Fecha')), + ('usuario', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='USUARIO')), + ], + options={ + 'verbose_name': 'refaccion', + 'verbose_name_plural': 'refacciones', + 'ordering': ['-id'], + }, + ), + migrations.CreateModel( + name='preventivo', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('n_control', models.IntegerField(verbose_name='No Control del Equipo')), + ('fecha_start', models.DateField(verbose_name='FECHA INICIO')), + ('fecha_end', models.DateField(verbose_name='FECHA TERMINO')), + ('notas', models.CharField(max_length=250, verbose_name='Notas')), + ('fecha_add', models.DateField(auto_now_add=True, null=True, verbose_name='Fecha de registro')), + ('estatus', models.CharField(choices=[('PENDIENTE', 'PENDIENTE'), ('REALIZADO', 'REALIZADO')], default='PENDIENTE', max_length=11, verbose_name='Estatus?')), + ('usuario', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Realizara')), + ], + options={ + 'verbose_name': 'Mantenimiento', + 'verbose_name_plural': 'Mantenimientos', + 'ordering': ['-id'], + }, + ), + ] diff --git a/servicios/migrations/__init__.py b/servicios/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/servicios/migrations/__pycache__/0001_initial.cpython-310.pyc b/servicios/migrations/__pycache__/0001_initial.cpython-310.pyc new file mode 100644 index 0000000..6a02ae6 Binary files /dev/null and b/servicios/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0001_initial.cpython-39.pyc b/servicios/migrations/__pycache__/0001_initial.cpython-39.pyc new file mode 100644 index 0000000..670082c Binary files /dev/null and b/servicios/migrations/__pycache__/0001_initial.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0002_alter_falla_otra.cpython-310.pyc b/servicios/migrations/__pycache__/0002_alter_falla_otra.cpython-310.pyc new file mode 100644 index 0000000..fe08659 Binary files /dev/null and b/servicios/migrations/__pycache__/0002_alter_falla_otra.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0002_alter_falla_otra.cpython-39.pyc b/servicios/migrations/__pycache__/0002_alter_falla_otra.cpython-39.pyc new file mode 100644 index 0000000..06a338d Binary files /dev/null and b/servicios/migrations/__pycache__/0002_alter_falla_otra.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0002_auto_20210908_0056.cpython-39.pyc b/servicios/migrations/__pycache__/0002_auto_20210908_0056.cpython-39.pyc new file mode 100644 index 0000000..1aac88e Binary files /dev/null and b/servicios/migrations/__pycache__/0002_auto_20210908_0056.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0002_auto_20210912_0310.cpython-39.pyc b/servicios/migrations/__pycache__/0002_auto_20210912_0310.cpython-39.pyc new file mode 100644 index 0000000..9d933e5 Binary files /dev/null and b/servicios/migrations/__pycache__/0002_auto_20210912_0310.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0002_auto_20211011_1617.cpython-39.pyc b/servicios/migrations/__pycache__/0002_auto_20211011_1617.cpython-39.pyc new file mode 100644 index 0000000..0a99414 Binary files /dev/null and b/servicios/migrations/__pycache__/0002_auto_20211011_1617.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0003_alter_pieza_descripcion_etiqueta.cpython-39.pyc b/servicios/migrations/__pycache__/0003_alter_pieza_descripcion_etiqueta.cpython-39.pyc new file mode 100644 index 0000000..1edee30 Binary files /dev/null and b/servicios/migrations/__pycache__/0003_alter_pieza_descripcion_etiqueta.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0003_auto_20210912_0315.cpython-39.pyc b/servicios/migrations/__pycache__/0003_auto_20210912_0315.cpython-39.pyc new file mode 100644 index 0000000..fbdd714 Binary files /dev/null and b/servicios/migrations/__pycache__/0003_auto_20210912_0315.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0003_auto_20211011_1626.cpython-39.pyc b/servicios/migrations/__pycache__/0003_auto_20211011_1626.cpython-39.pyc new file mode 100644 index 0000000..e116758 Binary files /dev/null and b/servicios/migrations/__pycache__/0003_auto_20211011_1626.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0003_auto_20211011_1736.cpython-310.pyc b/servicios/migrations/__pycache__/0003_auto_20211011_1736.cpython-310.pyc new file mode 100644 index 0000000..f1e5da6 Binary files /dev/null and b/servicios/migrations/__pycache__/0003_auto_20211011_1736.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0003_auto_20211011_1736.cpython-39.pyc b/servicios/migrations/__pycache__/0003_auto_20211011_1736.cpython-39.pyc new file mode 100644 index 0000000..53ec12f Binary files /dev/null and b/servicios/migrations/__pycache__/0003_auto_20211011_1736.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0004_alter_ordenservicio_orden_n_control.cpython-310.pyc b/servicios/migrations/__pycache__/0004_alter_ordenservicio_orden_n_control.cpython-310.pyc new file mode 100644 index 0000000..78e3f7f Binary files /dev/null and b/servicios/migrations/__pycache__/0004_alter_ordenservicio_orden_n_control.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0004_alter_ordenservicio_orden_n_control.cpython-39.pyc b/servicios/migrations/__pycache__/0004_alter_ordenservicio_orden_n_control.cpython-39.pyc new file mode 100644 index 0000000..96329ac Binary files /dev/null and b/servicios/migrations/__pycache__/0004_alter_ordenservicio_orden_n_control.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0004_rentrada_rsalida.cpython-39.pyc b/servicios/migrations/__pycache__/0004_rentrada_rsalida.cpython-39.pyc new file mode 100644 index 0000000..71010a0 Binary files /dev/null and b/servicios/migrations/__pycache__/0004_rentrada_rsalida.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0005_auto_20211103_2306.cpython-310.pyc b/servicios/migrations/__pycache__/0005_auto_20211103_2306.cpython-310.pyc new file mode 100644 index 0000000..b6d07d0 Binary files /dev/null and b/servicios/migrations/__pycache__/0005_auto_20211103_2306.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0005_auto_20211103_2306.cpython-39.pyc b/servicios/migrations/__pycache__/0005_auto_20211103_2306.cpython-39.pyc new file mode 100644 index 0000000..038ce99 Binary files /dev/null and b/servicios/migrations/__pycache__/0005_auto_20211103_2306.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0005_rsalida_autor.cpython-39.pyc b/servicios/migrations/__pycache__/0005_rsalida_autor.cpython-39.pyc new file mode 100644 index 0000000..e604d00 Binary files /dev/null and b/servicios/migrations/__pycache__/0005_rsalida_autor.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0006_alter_serviciorealizado_folio.cpython-310.pyc b/servicios/migrations/__pycache__/0006_alter_serviciorealizado_folio.cpython-310.pyc new file mode 100644 index 0000000..130ea24 Binary files /dev/null and b/servicios/migrations/__pycache__/0006_alter_serviciorealizado_folio.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0006_alter_serviciorealizado_folio.cpython-39.pyc b/servicios/migrations/__pycache__/0006_alter_serviciorealizado_folio.cpython-39.pyc new file mode 100644 index 0000000..4b1afcd Binary files /dev/null and b/servicios/migrations/__pycache__/0006_alter_serviciorealizado_folio.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0006_rentrada_autor.cpython-39.pyc b/servicios/migrations/__pycache__/0006_rentrada_autor.cpython-39.pyc new file mode 100644 index 0000000..c07d4e1 Binary files /dev/null and b/servicios/migrations/__pycache__/0006_rentrada_autor.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0007_alter_serviciorealizado_options.cpython-310.pyc b/servicios/migrations/__pycache__/0007_alter_serviciorealizado_options.cpython-310.pyc new file mode 100644 index 0000000..64da87c Binary files /dev/null and b/servicios/migrations/__pycache__/0007_alter_serviciorealizado_options.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0007_alter_serviciorealizado_options.cpython-39.pyc b/servicios/migrations/__pycache__/0007_alter_serviciorealizado_options.cpython-39.pyc new file mode 100644 index 0000000..8f892c7 Binary files /dev/null and b/servicios/migrations/__pycache__/0007_alter_serviciorealizado_options.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0007_area.cpython-39.pyc b/servicios/migrations/__pycache__/0007_area.cpython-39.pyc new file mode 100644 index 0000000..0d0c9e1 Binary files /dev/null and b/servicios/migrations/__pycache__/0007_area.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0008_alter_equipo_options.cpython-39.pyc b/servicios/migrations/__pycache__/0008_alter_equipo_options.cpython-39.pyc new file mode 100644 index 0000000..5f8b8bd Binary files /dev/null and b/servicios/migrations/__pycache__/0008_alter_equipo_options.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0008_alter_ordenservicio_val_serv.cpython-310.pyc b/servicios/migrations/__pycache__/0008_alter_ordenservicio_val_serv.cpython-310.pyc new file mode 100644 index 0000000..bec74e7 Binary files /dev/null and b/servicios/migrations/__pycache__/0008_alter_ordenservicio_val_serv.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0008_alter_ordenservicio_val_serv.cpython-39.pyc b/servicios/migrations/__pycache__/0008_alter_ordenservicio_val_serv.cpython-39.pyc new file mode 100644 index 0000000..902b02d Binary files /dev/null and b/servicios/migrations/__pycache__/0008_alter_ordenservicio_val_serv.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0009_alter_accesorios_options.cpython-310.pyc b/servicios/migrations/__pycache__/0009_alter_accesorios_options.cpython-310.pyc new file mode 100644 index 0000000..2193731 Binary files /dev/null and b/servicios/migrations/__pycache__/0009_alter_accesorios_options.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0009_alter_accesorios_options.cpython-39.pyc b/servicios/migrations/__pycache__/0009_alter_accesorios_options.cpython-39.pyc new file mode 100644 index 0000000..dba6f64 Binary files /dev/null and b/servicios/migrations/__pycache__/0009_alter_accesorios_options.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0009_area_ib.cpython-39.pyc b/servicios/migrations/__pycache__/0009_area_ib.cpython-39.pyc new file mode 100644 index 0000000..6004704 Binary files /dev/null and b/servicios/migrations/__pycache__/0009_area_ib.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0010_auto_20211108_0242.cpython-310.pyc b/servicios/migrations/__pycache__/0010_auto_20211108_0242.cpython-310.pyc new file mode 100644 index 0000000..095d5c5 Binary files /dev/null and b/servicios/migrations/__pycache__/0010_auto_20211108_0242.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0010_auto_20211108_0242.cpython-39.pyc b/servicios/migrations/__pycache__/0010_auto_20211108_0242.cpython-39.pyc new file mode 100644 index 0000000..e5b6784 Binary files /dev/null and b/servicios/migrations/__pycache__/0010_auto_20211108_0242.cpython-39.pyc differ diff --git a/servicios/migrations/__pycache__/0011_accesorios_n_reporte_serviciorealizado_n_reporte.cpython-310.pyc b/servicios/migrations/__pycache__/0011_accesorios_n_reporte_serviciorealizado_n_reporte.cpython-310.pyc new file mode 100644 index 0000000..f6479f1 Binary files /dev/null and b/servicios/migrations/__pycache__/0011_accesorios_n_reporte_serviciorealizado_n_reporte.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0012_alter_accesorios_n_reporte_and_more.cpython-310.pyc b/servicios/migrations/__pycache__/0012_alter_accesorios_n_reporte_and_more.cpython-310.pyc new file mode 100644 index 0000000..67b3a03 Binary files /dev/null and b/servicios/migrations/__pycache__/0012_alter_accesorios_n_reporte_and_more.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0013_alter_ordenservicio_estatus_and_more.cpython-310.pyc b/servicios/migrations/__pycache__/0013_alter_ordenservicio_estatus_and_more.cpython-310.pyc new file mode 100644 index 0000000..5487d24 Binary files /dev/null and b/servicios/migrations/__pycache__/0013_alter_ordenservicio_estatus_and_more.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0013_refacciones.cpython-310.pyc b/servicios/migrations/__pycache__/0013_refacciones.cpython-310.pyc new file mode 100644 index 0000000..714e421 Binary files /dev/null and b/servicios/migrations/__pycache__/0013_refacciones.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0014_alter_ordenservicio_estatus_and_more.cpython-310.pyc b/servicios/migrations/__pycache__/0014_alter_ordenservicio_estatus_and_more.cpython-310.pyc new file mode 100644 index 0000000..bba04df Binary files /dev/null and b/servicios/migrations/__pycache__/0014_alter_ordenservicio_estatus_and_more.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0014_alter_refacciones_usuario.cpython-310.pyc b/servicios/migrations/__pycache__/0014_alter_refacciones_usuario.cpython-310.pyc new file mode 100644 index 0000000..eee92c6 Binary files /dev/null and b/servicios/migrations/__pycache__/0014_alter_refacciones_usuario.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0014_preventivo_estatus.cpython-310.pyc b/servicios/migrations/__pycache__/0014_preventivo_estatus.cpython-310.pyc new file mode 100644 index 0000000..82b88d4 Binary files /dev/null and b/servicios/migrations/__pycache__/0014_preventivo_estatus.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0014_refacciones_fecha_refacciones_usuario.cpython-310.pyc b/servicios/migrations/__pycache__/0014_refacciones_fecha_refacciones_usuario.cpython-310.pyc new file mode 100644 index 0000000..63d894c Binary files /dev/null and b/servicios/migrations/__pycache__/0014_refacciones_fecha_refacciones_usuario.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0015_alter_ordenservicio_firma_ib1.cpython-310.pyc b/servicios/migrations/__pycache__/0015_alter_ordenservicio_firma_ib1.cpython-310.pyc new file mode 100644 index 0000000..e66876a Binary files /dev/null and b/servicios/migrations/__pycache__/0015_alter_ordenservicio_firma_ib1.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0015_alter_refacciones_usuario.cpython-310.pyc b/servicios/migrations/__pycache__/0015_alter_refacciones_usuario.cpython-310.pyc new file mode 100644 index 0000000..fe90fc6 Binary files /dev/null and b/servicios/migrations/__pycache__/0015_alter_refacciones_usuario.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0015_rename_fecha_refacciones_fecharegis.cpython-310.pyc b/servicios/migrations/__pycache__/0015_rename_fecha_refacciones_fecharegis.cpython-310.pyc new file mode 100644 index 0000000..37b412a Binary files /dev/null and b/servicios/migrations/__pycache__/0015_rename_fecha_refacciones_fecharegis.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/0016_preventivo.cpython-310.pyc b/servicios/migrations/__pycache__/0016_preventivo.cpython-310.pyc new file mode 100644 index 0000000..117b447 Binary files /dev/null and b/servicios/migrations/__pycache__/0016_preventivo.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/__init__.cpython-310.pyc b/servicios/migrations/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..47c10d7 Binary files /dev/null and b/servicios/migrations/__pycache__/__init__.cpython-310.pyc differ diff --git a/servicios/migrations/__pycache__/__init__.cpython-39.pyc b/servicios/migrations/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..c8017d1 Binary files /dev/null and b/servicios/migrations/__pycache__/__init__.cpython-39.pyc differ diff --git a/servicios/models.py b/servicios/models.py new file mode 100644 index 0000000..6ce9bce --- /dev/null +++ b/servicios/models.py @@ -0,0 +1,143 @@ +from django.db import models +from django.contrib.auth.models import User +import os +from tinymce import models as tinymce_models +from model_utils import Choices +from inventario.models import invequipo +from django.utils.timezone import now + + +# Create your models here. + +class tiposervicio(models.Model): + nombre = models.CharField(max_length=250, null=False, unique=True, verbose_name='Nombre') + def __str__(self): + return self.nombre + + class Meta: + verbose_name = 'Tipo de Servicio' + verbose_name_plural = 'Tipos de Servicios' + ordering = ['nombre'] + + +class falla(models.Model): + nombre = models.CharField(max_length=250, null=False, unique=True, verbose_name='Nombre') + def __str__(self): + return self.nombre + + class Meta: + verbose_name = 'Origen Falla' + verbose_name_plural = 'Origen Falla' + ordering = ['nombre'] + + +class ordenservicio(models.Model): + folio = models.IntegerField(unique=True, null=False, verbose_name='Folio') + fecha = models.DateField(auto_now_add=True, verbose_name='Fecha') + turno = models.CharField(max_length=50, null=False, verbose_name='Turno Hora') + reporta = models.CharField(max_length=250, null=False, verbose_name='Reporta') + ib1 = models.ForeignKey(User, on_delete=models.CASCADE, null=False, blank=False, related_name='IB1', verbose_name='Atiende IB1') + ib2 = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, related_name='IB2', verbose_name='Atiende IB2') + orden_n_control = models.IntegerField(null=False, blank=False, verbose_name='No Control del Equipo') + n_reporte = models.CharField(max_length=250, null=False, blank=False, verbose_name='NUMERO DE REPORTE') + tipo_servicio = models.ForeignKey(tiposervicio, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Tipo de Servicio') + origen_falla = models.ForeignKey(falla, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Origen de la Falla') + origen_falla_otra = models.CharField(max_length=250, null=True, blank=True, verbose_name='Especificar solo si selecciona: otra') + falla_detectada = models.CharField(max_length=250, null=False, verbose_name='Falla Detectada') + STATUS = Choices('SI', 'NO') + materiales = models.CharField(choices=STATUS, default=STATUS.NO, max_length=11, verbose_name='Materiales (electronico/Solvente/Adhesivo/Limpieza/Lubricantes/Surgistein)') + articulos = models.CharField(choices=STATUS, default=STATUS.NO, max_length=11, verbose_name='Articulos de limpieza y protección (Gasas/Guantes de latex/cubrebocas ) ') + equipos = models.CharField(choices=STATUS, default=STATUS.NO, max_length=11, verbose_name='Equipos de Medicion (Multimetro/Tacometro/Termometro/Manometro/Corriente de Fuga)') + patrones = models.CharField(choices=STATUS, default=STATUS.NO, max_length=11, verbose_name='Patrones para validacion ( Probador de descargas/Simulador de ECG,RESP,SP02, GASTO CARDIACO/Marco de Pesas)') + herramienta = models.CharField(choices=STATUS, default=STATUS.NO, max_length=11, verbose_name='Herramienta (General, Electrica, Neumatica)') + estatus = models.CharField(choices=STATUS, default=STATUS.SI, max_length=11, verbose_name='Estatus CONCLUIDO?') + no_concluido = tinymce_models.HTMLField(null=True, blank=True, verbose_name='Especificar si no es Concluido:') + externo_empresa = models.CharField(max_length=250, null=True, blank=True, verbose_name='Nombre de la Empresa') + externo_orden = models.CharField(max_length=250, null=True, blank=True, verbose_name='No. de la Orden de Servicio') + TIPOSERVICIO = Choices('Ninguno', 'Contrato', 'Subrrogado', 'Evento') + externo_servicio = models.CharField(choices=TIPOSERVICIO, default=TIPOSERVICIO.Ninguno, max_length=13, verbose_name='Tipo de Servicio') + horas_ib1 = models.IntegerField(null=False, blank=False, default=0, verbose_name='Horas Ingeniero IB1') + id_ib1 = models.ForeignKey(User, on_delete=models.CASCADE, null=False, blank=False, related_name='+', verbose_name='ID IB1') + horas_ib2 = models.IntegerField(null=True, blank=True, verbose_name='Horas Ingeniero IB2') + id_ib2 = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, related_name='+', verbose_name='ID IB2') + firma_ib1 = models.ForeignKey(User, on_delete=models.CASCADE, null=False, blank=False, related_name='+', verbose_name='FIRMA IB1') + firma_ib2 = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, related_name='+', verbose_name='FIRMA IB2') + firma_area = models.CharField(max_length=250, null=True, blank=True, verbose_name='Nombre del Personal que Acepta') + VALSERV = Choices('Excelente', 'Regular', 'Malo') + val_serv = models.CharField(choices=VALSERV, default=VALSERV.Excelente, max_length=13, null=True, blank=True, verbose_name='Valoracion de Servicio') + observ_area = models.CharField(max_length=250, null=True, blank=True, verbose_name='OBSERVACIONES DE PERSONAL DEL AREA.') + def __str__(self): + return str(self.folio) + + class Meta: + verbose_name = 'Ordenes de Servicio' + verbose_name_plural = 'Ordenes de Servicios' + ordering = ['-folio'] + + +class serviciorealizado(models.Model): + folio = models.IntegerField(null=True, blank=True, verbose_name='Folio') + ser_s_n_control = models.IntegerField(null=True, blank=True, verbose_name='No Control') + ib = models.ForeignKey(User, on_delete=models.CASCADE, null=False, blank=False, verbose_name='IB') + fecha = models.DateField(auto_now_add=True, verbose_name='Fecha') + descripcion = tinymce_models.HTMLField(null=False, verbose_name='Descripción del Servicio') + control_bit = models.CharField(max_length=250, null=True, blank=True, verbose_name='Control Bitacora') + n_reporte = models.CharField(max_length=250, null=True, blank=True, default='', verbose_name='NUMERO DE REPORTE') + def __str__(self): + return str(self.folio) + + class Meta: + verbose_name = 'Servicios de las ordenes' + verbose_name_plural = 'Servicios de las ordenes' + ordering = ['-id'] + + +class accesorios(models.Model): + folio = models.IntegerField(null=True, blank=True, verbose_name='Folio') + ser_a_n_control = models.IntegerField(null=True, blank=True, verbose_name='No Control') + cantidad = models.IntegerField(verbose_name='Cantidad') + n_parte = models.CharField(max_length=250, null=False, verbose_name='Número de Parte') + descripcion = models.CharField(max_length=250, null=False, verbose_name='Descripción') + control_bit = models.CharField(max_length=250, null=True, blank=True, verbose_name='Control Bitacora') + n_reporte = models.CharField(max_length=250, null=True, blank=True, default='', verbose_name='NUMERO DE REPORTE') + def __str__(self): + return str(self.folio) + + class Meta: + verbose_name = 'Accesorios de Ordenes' + verbose_name_plural = 'Accesorios de Ordenes' + ordering = ['-id'] + + +class refacciones(models.Model): + referencia = models.CharField(max_length=250, null=False, verbose_name='Referencia') + n_reporte = models.CharField(max_length=250, null=True, blank=True, default='', verbose_name='No. de Reporte') + cantidad = models.IntegerField(verbose_name='Cantidad') + fecharegis = models.DateField(auto_now_add=True, null=True, blank=True, verbose_name='Fecha') + usuario = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, related_name='+', verbose_name='USUARIO') + def __str__(self): + return str(self.n_reporte) + + class Meta: + verbose_name = 'refaccion' + verbose_name_plural = 'refacciones' + ordering = ['-id'] + + + +class preventivo(models.Model): + STATUS = Choices('PENDIENTE', 'REALIZADO') + n_control = models.IntegerField(null=False, blank=False, verbose_name='No Control del Equipo') + fecha_start = models.DateField(verbose_name='FECHA INICIO') + fecha_end = models.DateField(verbose_name='FECHA TERMINO') + usuario = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, related_name='+', verbose_name='Realizara') + notas = models.CharField(max_length=250, null=False, verbose_name='Notas') + fecha_add = models.DateField(auto_now_add=True, null=True, blank=True, verbose_name='Fecha de registro') + estatus = models.CharField(choices=STATUS, default=STATUS.PENDIENTE, max_length=11, verbose_name='Estatus?') + def __str__(self): + return str(self.n_control) + + class Meta: + verbose_name = 'Mantenimiento' + verbose_name_plural = 'Mantenimientos' + ordering = ['-id'] diff --git a/servicios/tests.py b/servicios/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/servicios/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/servicios/views.py b/servicios/views.py new file mode 100644 index 0000000..a896d63 --- /dev/null +++ b/servicios/views.py @@ -0,0 +1,597 @@ +import os +from django.conf import settings +from django.template import Context +from django.template.loader import get_template +from xhtml2pdf import pisa +from django.contrib.staticfiles import finders +from django.shortcuts import render, redirect, get_object_or_404 +from django.contrib import messages +from django.contrib.auth.decorators import login_required +from django.contrib.auth.models import User +from django.http.response import HttpResponse +from django.views import View +from django.views.generic import ListView +from datetime import datetime +from .models import ordenservicio, serviciorealizado, accesorios, tiposervicio, falla, refacciones, preventivo +from .forms import Formpreventivo, FormpreventivoEnv, Formordenservicio, FormordenservicioEnv, Formserviciorealizado, FormserviciorealizadoEnv, Formaccesorios, FormaccesoriosEnv, FormordenservicioEnvbit, FormordenservicioEnvbit1, FormordenservicioEnvbit2, FormordenservicioEnvbit3, FormordenservicioEnvbit4, FormordenservicioEnvbit5, FormordenservicioEnvbit6, Formrefacciones +from servicios.models import serviciorealizado, accesorios +from inventario.models import invequipo +from pendientes.models import bitpendientes +from bitacora.models import bitreporte +from inventarioalmacen.models import pieza +from openpyxl import Workbook +import datetime +from datetime import date + + + +# Create your views here. +def servicios(request): + datos = ordenservicio.objects.all() + equipo = invequipo.objects.all() + servicios = serviciorealizado.objects.all() + usuarios = User.objects.all() + accesorio = accesorios.objects.all() + return render(request, 'servicios.html', {"datos": datos, "servicios": servicios, "equipo": equipo, "usuarios": usuarios, "accesorio": accesorio}) + + +@login_required(login_url='/acceder') +def crear_ordservicio(request): + if request.method == "POST": + form = Formordenservicio(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + folio = form.cleaned_data.get("folio") + n_control = form.cleaned_data.get("orden_n_control") + messages.success(request, f"La servicio con el {folio} se ha creado o actualizado correctamente") + form = FormserviciorealizadoEnv() + return render(request, "crear_servrealizado.html", {"form": form, "folio": folio, "n_control": n_control}) + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + scan = ordenservicio.objects.latest('id') + date = datetime.datetime.now() + folio = scan.folio + 1 + hora = date.strftime("%H:%M:%S") + form = FormordenservicioEnv() + return render(request, "crear_servicio.html", {"form": form, "folio": folio, "hora": hora}) + + +@login_required(login_url='/acceder') +def crear_ordserviciobit(request, cb): + if request.method == "POST": + form = Formordenservicio(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + folio = form.cleaned_data.get("folio") + nreporte = form.cleaned_data.get("n_reporte") + update = bitreporte.objects.values('pendiente').filter(control_bit=nreporte).update(pendiente='Realizado') + update1 = bitpendientes.objects.values('concluido').filter(n_reporte=nreporte).update(concluido='Realizado') + messages.success(request, f"La servicio con el {folio} se ha creado o actualizado correctamente") + return redirect("servicios") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + scan = ordenservicio.objects.latest('id') + date = datetime.datetime.now() + folio = scan.folio + 1 + hora = date.strftime("%H:%M:%S") + controlb = cb + dato = bitreporte.objects.filter(control_bit=controlb) + falla = dato[0].reporte + reporta_ib = dato[0].asignado.id + quien_reporta = dato[0].quien_reporta + reporta_ib_1 = dato[0].asignado + if bitpendientes.objects.filter(n_reporte=cb).exists(): + datos = bitpendientes.objects.get(n_reporte=cb) + form1 = FormordenservicioEnvbit1() + form2 = FormordenservicioEnvbit2() + form3 = FormordenservicioEnvbit3() + form4 = FormordenservicioEnvbit4() + form5 = FormordenservicioEnvbit5() + form6 = FormordenservicioEnvbit6() + datosseg = serviciorealizado.objects.filter(control_bit=cb) + datosacc = accesorios.objects.filter(control_bit=cb) + return render(request, "crear_serviciobit.html", {"form1": form1, "form2": form2, "form3": form3, "form4": form4, "form5": form5, "form6": form6, "folio": folio, "hora": hora, "controlb": controlb, "datos": datos, "falla": falla, "reporta_ib": reporta_ib, "reporta_ib_1": reporta_ib_1, "quien_reporta": quien_reporta, "datosseg": datosseg, "datosacc": datosacc}) + else: + form1 = FormordenservicioEnvbit1() + form2 = FormordenservicioEnvbit2() + form3 = FormordenservicioEnvbit3() + form4 = FormordenservicioEnvbit4() + form5 = FormordenservicioEnvbit5() + form6 = FormordenservicioEnvbit6() + datosseg = serviciorealizado.objects.filter(control_bit=cb) + datosacc = accesorios.objects.filter(control_bit=cb) + return render(request, "crear_serviciobit.html", {"form1": form1, "form2": form2, "form3": form3, "form4": form4, "form5": form5, "form6": form6, "folio": folio, "hora": hora, "controlb": controlb, "falla": falla, "reporta_ib": reporta_ib, "reporta_ib_1": reporta_ib_1, "quien_reporta": quien_reporta, "datosseg": datosseg, "datosacc": datosacc}) + pass + +@login_required(login_url='/acceder') +def ActualizarOrden(request, id): + instance= get_object_or_404(ordenservicio, pk=id) + form = Formordenservicio(request.POST or None, instance=instance) + context= {'form': form} + if form.is_valid(): + obj= form.save(commit= False) + obj.save() + messages.success(request, "La Orden fue actualizada") + return redirect("servicios") + + else: + context= {'form': form, 'error': 'Error al actualizar'} + return render(request,'actualizar_orden.html' , context) + + + + +################################ servicios realizados ################################### + +@login_required(login_url='/acceder') +def crear_servrealizado(request): + if request.method == "POST": + form = Formserviciorealizado(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + folio = form.cleaned_data.get("folio") + control_bit = form.cleaned_data.get("control_bit") + n_control = form.cleaned_data.get("ser_s_n_control") + messages.success(request, f"El servicio con el reporte: {control_bit} se ha creado o actualizado correctamente") + form = FormaccesoriosEnv() + return render(request, "crear_servaccesorios.html", {"form": form, "folio": folio, "control": control_bit, "n_control": n_control}) + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + form = FormserviciorealizadoEnv() + datos = serviciorealizado.objects.all() + return render(request, "crear_servrealizado.html", {"form": form, "datos": datos}) + + + +@login_required(login_url='/acceder') +def crear_servrealizadopen(request, cb): + if request.method == "POST": + form = Formserviciorealizado(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + folio = form.cleaned_data.get("control_bit") + messages.success(request, f"El servicio con el reporte: {folio} se ha creado o actualizado correctamente") + return redirect("index") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + form = FormserviciorealizadoEnv() + controlcb = cb + datos = bitpendientes.objects.get(n_reporte=cb) + datosseg = serviciorealizado.objects.filter(control_bit=cb) + return render(request, "penseguimiento.html", {"form": form, "controlcb": controlcb, "datos": datos, "datosseg": datosseg}) + + +@login_required(login_url='/acceder') +def crear_servrealizadobit(request, cb): + if request.method == "POST": + form = Formserviciorealizado(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + reporte1 = form.cleaned_data.get("control_bit") + messages.success(request, f"El seguimiento con el reporte: {reporte1} se ha creado o actualizado correctamente") + return redirect("bitacora") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + form = FormserviciorealizadoEnv() + controlcb = cb + datos = bitreporte.objects.get(control_bit=cb) + datosseg = serviciorealizado.objects.filter(control_bit=cb) + return render(request, "bitseguimiento.html", {"form": form, "controlcb": controlcb, "datos": datos, "datosseg": datosseg}) + + + +@login_required(login_url='/acceder') +def crear_servrealizadocon(request, cb): + if request.method == "POST": + form = Formserviciorealizado(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + reporte1 = form.cleaned_data.get("control_bit") + messages.success(request, f"El seguimiento con el reporte: {reporte1} se ha creado o actualizado correctamente") + return redirect("bitacora") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + form = FormserviciorealizadoEnv() + controlcb = cb + datos = ordenservicio.objects.get(n_reporte=cb) + return render(request, "conseguimiento.html", {"form": form, "controlcb": controlcb, "datos": datos}) + + + +@login_required(login_url='/acceder') +def servrealizado(request, cb): + datos = serviciorealizado.objects.filter(control_bit=cb) + return render(request, "crear_servrealizado.html", {"datos": datos}) + + +@login_required(login_url='/acceder') +def verservrealizado(request, cb): + datos = serviciorealizado.objects.filter(control_bit=cb) + return render(request, "ver_seguimiento.html", {"datos": datos}) + +################################ accesorios ################################################### + + + +@login_required(login_url='/acceder') +def crear_accesorios(request): + if request.method == "POST": + form = Formaccesorios(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + control_bit = form.cleaned_data.get("control_bit") + messages.success(request, f"El accesorio con el reporte: {control_bit} se ha creado o actualizado correctamente") + return redirect("servicios") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + form = FormaccesoriosEnv() + datos = accesorios.objects.all() + return render(request, "crear_servaccesorios.html", {"form": form, "datos": datos}) + + +@login_required(login_url='/acceder') +def crear_accesoriospen(request, cb): + if request.method == "POST": + form = Formaccesorios(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + control_bit = form.cleaned_data.get("control_bit") + messages.success(request, f"El accesorio con el Reporte: {control_bit} se ha creado o actualizado correctamente") + return redirect("pendientes") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + form = FormaccesoriosEnv() + controlcb = cb + dat = bitpendientes.objects.get(n_reporte=cb) + return render(request, "crear_servaccesoriospen.html", {"form": form, "controlcb": controlcb, "dat": dat}) + +@login_required(login_url='/acceder') +def crear_accesoriosbit(request, cb): + if request.method == "POST": + form = Formaccesorios(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + control_bit = form.cleaned_data.get("control_bit") + messages.success(request, f"El accesorio con el Reporte: {control_bit} se ha creado o actualizado correctamente") + return redirect("pendientes") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + form = FormaccesoriosEnv() + controlcb = cb + dat = bitreporte.objects.get(control_bit=cb) + return render(request, "crear_servaccesoriospen.html", {"form": form, "controlcb": controlcb, "dat": dat}) + + + +@login_required(login_url='/acceder') +def servaccesorios(request, cb): + datos = accesorios.objects.filter(control_bit=cb) + return render(request, "crear_servaccesorios.html", {"datos": datos}) + +########################## refacciones ########################### + +@login_required(login_url='/acceder') +def crear_refaccionesbit(request, cr, cb): + if request.method == "POST": + form = Formrefacciones(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.usuario = request.user + post.save() + control_bit = form.cleaned_data.get("n_reporte") + refex = form.cleaned_data.get("referencia") + y = form.cleaned_data.get("cantidad") + x = pieza.objects.only('referencia').filter(referencia=refex)[0] + nuevo = x.cantidad - y + update = pieza.objects.values('cantidad').filter(referencia=refex).update(cantidad=nuevo) + messages.success(request, f"Se agrego la refaccion al Reporte: {control_bit} correctamente") + return redirect("bitacora") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + controlcb = cb + controlcr = cr + return render(request, "crear_refaccionesbit.html", {"controlcb": controlcb, "controlcr": controlcr}) + + +@login_required(login_url='/acceder') +def crear_refaccionespen(request, cr, cb): + if request.method == "POST": + form = Formrefacciones(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + control_bit = form.cleaned_data.get("n_reporte") + refex = form.cleaned_data.get("referencia") + y = form.cleaned_data.get("cantidad") + x = pieza.objects.only('referencia').filter(referencia=refex)[0] + nuevo = x.cantidad - y + update = pieza.objects.values('cantidad').filter(referencia=refex).update(cantidad=nuevo) + messages.success(request, f"Se agrego la refaccion al Reporte: {control_bit} correctamente") + return redirect("pendientes") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + controlcb = cb + controlcr = cr + return render(request, "crear_refaccionespen.html", {"controlcb": controlcb, "controlcr": controlcr}) + + +@login_required(login_url='/acceder') +def refaccionespre(request, cb): + controlcb = cb + datos = pieza.objects.all() + return render(request, "crear_refaccionespre.html", {"datos": datos, "controlcb": controlcb}) + + +@login_required(login_url='/acceder') +def refacciones1(request, cb): + controlcb = cb + datos = refacciones.objects.filter(n_reporte=controlcb) + return render(request, "refacciones.html", {"datos": datos}) + + +########################## PDF ################################### + +class pdf(View): + def link_callback(self, uri, rel): + result = finders.find(uri) + if result: + if not isinstance(result, (list, tuple)): + result = [result] + result = list(os.path.realpath(path) for path in result) + path=result[0] + else: + sUrl = settings.STATIC_URL # Typically /static/ + sRoot = settings.STATIC_ROOT # Typically /home/userX/project_static/ + mUrl = settings.MEDIA_URL # Typically /media/ + mRoot = settings.MEDIA_ROOT # Typically /home/userX/project_static/media/ + + if uri.startswith(mUrl): + path = os.path.join(mRoot, uri.replace(mUrl, "")) + elif uri.startswith(sUrl): + path = os.path.join(sRoot, uri.replace(sUrl, "")) + else: + return uri + + # make sure that file exists + if not os.path.isfile(path): + raise Exception( + 'media URI must start with %s or %s' % (sUrl, mUrl) + ) + return path + + + + def get(self, request, *args, **kwargs): + try: + dato = ordenservicio.objects.get(pk=self.kwargs['pk']) + equipo = invequipo.objects.get(n_control=dato.orden_n_control) + aces = accesorios.objects.filter(control_bit=dato.n_reporte) + serv = serviciorealizado.objects.filter(control_bit=dato.n_reporte) + t_serv = tiposervicio.objects.get(pk=dato.tipo_servicio_id) + t_falla = falla.objects.get(pk=dato.origen_falla_id) + firma1 = User.objects.get(pk=dato.ib1_id) + if dato.id_ib2_id is None : + template = get_template('pdf.html') + context = {'dato': dato, 'equipo': equipo, 'aces': aces, 'serv': serv , 't_serv': t_serv , 't_falla': t_falla, 'firma1': firma1 } + html = template.render(context) + response = HttpResponse(content_type='application/pdf') + pisa_status = pisa.CreatePDF( + html, dest=response, + link_callback=self.link_callback + ) + return response + + firma2 = User.objects.get(pk=dato.id_ib2_id) + template = get_template('pdf.html') + context = {'dato': dato, 'equipo': equipo, 'aces': aces, 'serv': serv , 't_serv': t_serv , 't_falla': t_falla, 'firma1': firma1, 'firma2': firma2 } + html = template.render(context) + response = HttpResponse(content_type='application/pdf') + pisa_status = pisa.CreatePDF( + html, dest=response, + link_callback=self.link_callback + ) + return response + except: + pass + return redirect("servicios") + + + +########################## PREVENTIVO ################################### + + + +class Calendario(ListView): + model = preventivo + template_name = 'preventivo1.html' + + def get_context_data(self, **kwargs): + context = super(Calendario, self).get_context_data(**kwargs) + listas = preventivo.objects.all() + context['listas'] = listas + return context + + +@login_required(login_url='/acceder') +def Preventivo(request): + datos = preventivo.objects.filter(estatus="PENDIENTE") + return render(request, 'preventivo.html', {"datos": datos}) + + +@login_required(login_url='/acceder') +def PreventivoAll(request): + datos = preventivo.objects.all() + return render(request, 'preventivoall.html', {"datos": datos}) + + +@login_required(login_url='/acceder') +def crear_preventivo(request): + if request.method == "POST": + form = Formpreventivo(request.POST) + if form.is_valid(): + post = form.save(commit=False) + post.save() + control_bit = form.cleaned_data.get("n_control") + messages.success(request, f"El servicio preventivo con numero de control: {control_bit} se ha creado correctamente") + return redirect("preventivo") + else: + for field, items in form.errors.items(): + for item in items: + messages.error(request, '{}: {}'.format(field, item)) + + form = FormpreventivoEnv() + return render(request, "crearpreventivo.html", {"form": form }) + + +@login_required(login_url='/acceder') +def ActualizarPreventivo(request, id): + instance= get_object_or_404(preventivo, pk=id) + form = Formpreventivo(request.POST or None, instance=instance) + context= {'form': form} + if form.is_valid(): + obj= form.save(commit= False) + obj.save() + messages.success(request, "El servicio preventivo fue actualizado") + return redirect("preventivo") + else: + context= {'form': form, 'error': 'Error al actualizar'} + return render(request,'actualizar_preventivo.html' , context) + + +################### EXCEL #################### +@login_required(login_url='/acceder') +def ReporteExcelServicios(request): + servicios = ordenservicio.objects.all() + ibs = User.objects.all() + datostiposervicio = tiposervicio.objects.all() + datosfalla = falla.objects.all() + datosservicio = serviciorealizado.objects.all() + datosaccesorios = accesorios.objects.all() + fecha = datetime.datetime.now() + fe = str(fecha) + wb = Workbook() + ws = wb.active + ws['B1'] = 'REPORTE DE SERVICIOS CONCLUIDOS' + + ws.merge_cells('B1:L1') + + ws['B2'] = datetime.datetime.now() + + ws.merge_cells('B2:D2') + + ws['B3'] = 'FOLIO' + ws['C3'] = 'FECHA' + ws['D3'] = 'REPORTA' + ws['E3'] = 'IB1' + ws['F3'] = 'IB2' + ws['G3'] = 'No. CONTROL' + ws['H3'] = 'No. REPORTE' + ws['I3'] = 'T. SERVICIO' + ws['J3'] = 'ORIGEN FALLA' + ws['K3'] = 'FALLA DETECTADA' + ws['L3'] = 'SERVICIOS' + ws['M3'] = 'ACCESORIOS' + + cont = 4 + + for servicio in servicios: + for ib in ibs: + if servicio.ib1_id == ib.id: + ibuser = ib.username + ibuser2 = "" + if servicio.ib2_id is not None : + for ib in ibs: + if servicio.ib2_id == ib.id: + ibuser2 = ib.username + for datotiposervicio in datostiposervicio: + if servicio.tipo_servicio_id == datotiposervicio.id: + tiposervicio1 = datotiposervicio.nombre + for datofalla in datosfalla: + if servicio.origen_falla_id == datofalla.id: + falla1 = datofalla.nombre + + count = 0 + serreali = "" + for datoservicio in datosservicio: + if servicio.n_reporte == datoservicio.control_bit: + count = count + 1 + realizado = str(count) + " - " + datoservicio.descripcion + serreali = serreali + " // " + realizado + if count == 0 : + serreali = "" + count = 0 + + count1 = 0 + seracce = "" + for datoaccesorios in datosaccesorios: + if servicio.n_reporte == datoaccesorios.control_bit: + count1 = count1 + 1 + acceso = str(count1) + " - " + datoaccesorios.n_parte + " | " + datoaccesorios.descripcion + seracce = seracce + " // " + acceso + if count1 == 0 : + seracce = "" + + ws.cell(row=cont, column=2).value = servicio.folio + ws.cell(row=cont, column=3).value = servicio.fecha + ws.cell(row=cont, column=4).value = servicio.reporta + ws.cell(row=cont, column=5).value = ibuser + ws.cell(row=cont, column=6).value = ibuser2 + ws.cell(row=cont, column=7).value = servicio.orden_n_control + ws.cell(row=cont, column=8).value = servicio.n_reporte + ws.cell(row=cont, column=9).value = tiposervicio1 + ws.cell(row=cont, column=10).value = falla1 + ws.cell(row=cont, column=11).value = servicio.falla_detectada + ws.cell(row=cont, column=12).value = serreali + ws.cell(row=cont, column=13).value = seracce + + cont += 1 + serreali = "" + seracce = "" + + nombre_archivo = "ReporteServicioConcluidos "+fe+".xlsx" + response = HttpResponse(content_type="application/ms-excel") + content = "attachment; filename = {0}".format(nombre_archivo) + response['Content-Disposition'] = content + wb.save(response) + return response + diff --git a/siscdsalud/__init__.py b/siscdsalud/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/siscdsalud/__pycache__/__init__.cpython-310.pyc b/siscdsalud/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..b43cf5b Binary files /dev/null and b/siscdsalud/__pycache__/__init__.cpython-310.pyc differ diff --git a/siscdsalud/__pycache__/__init__.cpython-39.pyc b/siscdsalud/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..b35e349 Binary files /dev/null and b/siscdsalud/__pycache__/__init__.cpython-39.pyc differ diff --git a/siscdsalud/__pycache__/settings.cpython-310.pyc b/siscdsalud/__pycache__/settings.cpython-310.pyc new file mode 100644 index 0000000..dd53750 Binary files /dev/null and b/siscdsalud/__pycache__/settings.cpython-310.pyc differ diff --git a/siscdsalud/__pycache__/settings.cpython-39.pyc b/siscdsalud/__pycache__/settings.cpython-39.pyc new file mode 100644 index 0000000..617f423 Binary files /dev/null and b/siscdsalud/__pycache__/settings.cpython-39.pyc differ diff --git a/siscdsalud/__pycache__/urls.cpython-310.pyc b/siscdsalud/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000..57ecd15 Binary files /dev/null and b/siscdsalud/__pycache__/urls.cpython-310.pyc differ diff --git a/siscdsalud/__pycache__/urls.cpython-39.pyc b/siscdsalud/__pycache__/urls.cpython-39.pyc new file mode 100644 index 0000000..d4d6741 Binary files /dev/null and b/siscdsalud/__pycache__/urls.cpython-39.pyc differ diff --git a/siscdsalud/__pycache__/wsgi.cpython-310.pyc b/siscdsalud/__pycache__/wsgi.cpython-310.pyc new file mode 100644 index 0000000..39d5734 Binary files /dev/null and b/siscdsalud/__pycache__/wsgi.cpython-310.pyc differ diff --git a/siscdsalud/__pycache__/wsgi.cpython-39.pyc b/siscdsalud/__pycache__/wsgi.cpython-39.pyc new file mode 100644 index 0000000..8e08fc4 Binary files /dev/null and b/siscdsalud/__pycache__/wsgi.cpython-39.pyc differ diff --git a/siscdsalud/asgi.py b/siscdsalud/asgi.py new file mode 100644 index 0000000..8fac2a9 --- /dev/null +++ b/siscdsalud/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for siscdsalud project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.2/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'siscdsalud.settings') + +application = get_asgi_application() diff --git a/siscdsalud/settings.py b/siscdsalud/settings.py new file mode 100644 index 0000000..09193a9 --- /dev/null +++ b/siscdsalud/settings.py @@ -0,0 +1,201 @@ +""" +Django settings for siscdsalud project. + +Generated by 'django-admin startproject' using Django 3.2.7. + +For more information on this file, see +https://docs.djangoproject.com/en/3.2/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/3.2/ref/settings/ +""" + +from django.contrib.messages import constants as message_constants +import os +from pathlib import Path +from dotenv import load_dotenv +# Load environment variables from .env file +load_dotenv() + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'django-insecure-srv$eb8b5#)$s_vcfghfghfghfgh4ekzu^b()-#4gorjg_!sxogg8)retex_4r' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = ['localhost', '127.0.0.1', '192.168.1.150', 'server.mxsig.com.mx'] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + + 'crispy_forms', + 'crispy_bootstrap4', + 'ckeditor', + 'tinymce', + 'xhtml2pdf', + + 'inventarioalmacen', + 'inventario', + 'pendientes', + 'bitacora', + 'servicios', + +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'siscdsalud.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': ['templates'], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'siscdsalud.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/3.2/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': os.getenv("DB_ENGINE", default=""), + 'NAME': os.getenv("DB_NAME", default=""), + 'USER': os.getenv("DB_USER", default=""), + 'PASSWORD': os.getenv("DB_PASSWORD", default=""), + 'HOST': os.getenv("DB_HOST", default=""), + 'PORT': os.getenv("DB_PORT", default=""), + } +} + +# Password validation +# https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/3.2/topics/i18n/ + +LANGUAGE_CODE = 'es-MX' + +TIME_ZONE = 'America/Mexico_City' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/3.2/howto/static-files/ + +STATIC_URL = 'static/' +MEDIA_URL = 'images/' + +STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') + +STATICFILES_DIRS = [ + os.path.join(BASE_DIR, 'static'), +] + +MEDIA_ROOT = os.path.join(BASE_DIR, 'static/images') + +# Default primary key field type +# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +CRISPY_TEMPLATE_PACK = 'bootstrap4' + + +MESSAGE_TAGS = { + message_constants.DEBUG: 'debug', + message_constants.INFO: 'info', + message_constants.SUCCESS: 'success', + message_constants.WARNING: 'warning', + message_constants.ERROR: 'danger', +} + +CKEDITOR_CONFIGS = { + 'default': { + 'toolbar': None, + } +} + +TINYMCE_DEFAULT_CONFIG = { + 'height': 360, + 'width': 1120, + 'cleanup_on_startup': True, + 'custom_undo_redo_levels': 20, + 'selector': 'textarea', + 'theme': 'silver', + 'plugins': ''' + textcolor save link image media preview codesample contextmenu + table code lists fullscreen insertdatetime nonbreaking + contextmenu directionality searchreplace wordcount visualblocks + visualchars code fullscreen autolink lists charmap print hr + anchor pagebreak + ''', + 'toolbar1': ''' + fullscreen preview bold italic underline | fontselect, + fontsizeselect | forecolor backcolor | alignleft alignright | + aligncenter alignjustify | indent outdent | bullist numlist table | + | link image media | codesample | + ''', + 'toolbar2': ''' + visualblocks visualchars | + charmap hr pagebreak nonbreaking anchor | code | + ''', + 'contextmenu': 'formats | link image', + 'menubar': True, + 'statusbar': True, + } \ No newline at end of file diff --git a/siscdsalud/urls.py b/siscdsalud/urls.py new file mode 100644 index 0000000..2378c77 --- /dev/null +++ b/siscdsalud/urls.py @@ -0,0 +1,97 @@ +from inventarioalmacen.views import invalmacen +from django.contrib import admin +from django.urls import path, include +from django.contrib.staticfiles.urls import staticfiles_urlpatterns +from django.conf import settings +from django.contrib.auth import views as auth_views +from django.conf.urls.static import static +from principal.views import inicio +from autenticacion.views import VistaRegistro, salir, acceder, usuarios, userupdate +from inventarioalmacen.views import invalmacen, crear_pieza, ActualizarPieza, crear_equipo, crear_marca, crear_ubicacion, crear_area, crear_inventrada, crear_invsalida, invalmacenentrada, invalmacensalida, buscar, ReporteExcelInventario, ReporteExcelInvEntrada, ReporteExcelInvSalida +from inventario.views import inv_equipo, crear_invequipo, Actualizarinvequipo, ConsultaEquipo +from bitacora.views import bitacora, crear_bitacora, ActualizarBitacora, ReporteExcelBitacora +from servicios.views import Preventivo, PreventivoAll, crear_preventivo, ActualizarPreventivo, servicios, crear_ordservicio, crear_ordserviciobit, crear_servrealizado, crear_servrealizadopen, crear_servrealizadobit, crear_servrealizadocon, verservrealizado, crear_accesorios, crear_accesoriospen , servrealizado, servaccesorios, crear_refaccionesbit, crear_refaccionespen, refacciones1, refaccionespre, ActualizarOrden, crear_accesoriosbit, ReporteExcelServicios, Calendario, pdf +from pendientes.views import pendientes, crear_pendiente, ActualizarPendientes, ReporteExcelPendietes + + +urlpatterns = [ + path('admin/', admin.site.urls), + path('tinymce/', include('tinymce.urls')), + path('', inicio, name='index'), + + path('acceder/', acceder, name='acceder'), + path('registro/', VistaRegistro.as_view(), name='registro'), + path('usuarios/', usuarios, name='usuarios'), + path('usuarios/actualizar/', userupdate, name='userupdate'), + path('salir/', salir, name='salir'), + + path('inventarioalmacen/', invalmacen, name='invalmacen'), + path('inventarioalmacen/buscar', buscar, name='buscar'), + path('inventarioalmacen/crear', crear_pieza, name='crear_pieza'), + path('inventarioalmacen/crear_equipo', crear_equipo, name='crear_equipo'), + path('inventarioalmacen/crear_marca', crear_marca, name='crear_marca'), + path('inventarioalmacen/crear_ubicacion', crear_ubicacion, name='crear_ubicacion'), + path('inventarioalmacen/crear_area', crear_area, name='crear_area'), + path('inventarioalmacen/entradas', invalmacenentrada, name='invalmacenentrada'), + path('inventarioalmacen/salidas', invalmacensalida, name='invalmacensalida'), + path('inventarioalmacen/crear_entrada/', crear_inventrada, name='crear_inventrada'), + path('inventarioalmacen/crear_salida/', crear_invsalida, name='crear_invsalida'), + path('inventarioalmacen/actualizar/', ActualizarPieza, name='actualizar'), + path('inventarioalmacen/inventario_excel', ReporteExcelInventario, name='inventario_excel'), + path('inventarioalmacen/inventario_entrada', ReporteExcelInvEntrada, name='inventario_entrada'), + path('inventarioalmacen/inventario_salida', ReporteExcelInvSalida, name='inventario_salida'), + + path('inventarioequipos/', inv_equipo, name='inv_equipo'), + path('inventarioequipos/crear', crear_invequipo, name='crear_invequipo'), + path('inventarioequipos/actualizar/', Actualizarinvequipo, name='Actualizarinvequipo'), + path('inventarioequipos/crear_equipo', crear_equipo, name='crear_equipo'), + path('inventarioequipos/crear_marca', crear_marca, name='crear_marca'), + path('inventarioequipos/crear_ubicacion', crear_ubicacion, name='crear_ubicacion'), + path('inventarioequipos/consulta', ConsultaEquipo, name='consultaequipo'), + + path('bitacora/', bitacora, name='bitacora'), + path('bitacora/crear', crear_bitacora, name='crear_bitacora'), + path('bitacora/actualizar/', ActualizarBitacora, name='actualizar_bitacora'), + path('bitacora/servrealizadob/crear/', crear_servrealizadobit, name='crear_servrealizadobit'), + path('bitacora/bitacora_excel', ReporteExcelBitacora, name='bitacora_excel'), + + path('servicios/', servicios, name='servicios'), + path('servicios/crear', crear_ordservicio, name='crear_ordservicio'), + path('servicios/crearbit/', crear_ordserviciobit, name='crear_ordserviciobit'), + path('servicios/actualizar/', ActualizarOrden, name='actualizar_orden'), + path('servicios/servrealizado', crear_servrealizado, name='crear_servrealizado'), + path('servicios/servrealizado/', servrealizado, name='servirealizado'), + path('servicios/verservrealizado/', verservrealizado, name='verservrealizado'), + path('servicios/servrealizadocon/', crear_servrealizadocon, name='crear_servrealizadocon'), + path('servicios/accesorios', crear_accesorios, name='crear_accesorios'), + path('servicios/accesorios/crear/', crear_accesoriospen, name='crear_accesoriospen'), + path('servicios/accesorios/crearbit/', crear_accesoriosbit, name='crear_accesoriosbit'), + path('servicios/accesorios/', servaccesorios, name='serviaccesorios'), + path('servicios/refacciones/crear//', crear_refaccionesbit, name='crear_refaccionesbit'), + path('servicios/refacciones/crear//', crear_refaccionespen, name='crear_refaccionespen'), + path('servicios/refacciones/', refacciones1, name='refacciones1'), + path('servicios/refaccionespre/', refaccionespre, name='refaccionespre'), + path('servicios/servicios_excel', ReporteExcelServicios, name='servicios_excel'), + + path('servicios/pdf/', pdf.as_view(), name='pdf'), + + path('pendientes/', pendientes, name='pendientes'), + path('pendientes/crear/', crear_pendiente, name='crear_pendiente'), + path('pendientes/actualizar/', ActualizarPendientes, name='actualizar_pendientes'), + path('pendientes/servrealizadop/crear/', crear_servrealizadopen, name='crear_servrealizadopen'), + path('pendientes/pendientes_excel', ReporteExcelPendietes, name='pendientes_excel'), + + path('preventivo/', Preventivo, name='preventivo'), + path('preventivos/', PreventivoAll, name='preventivoall'), + path('preventivo/crear', crear_preventivo, name='crearpreventivo'), + path('preventivo/actualizar/', ActualizarPreventivo, name='actualizarpreventivo'), + path('preventivo/calendario', Calendario.as_view(), name='calendario'), + + + +] + +urlpatterns += staticfiles_urlpatterns() + + +urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) \ No newline at end of file diff --git a/siscdsalud/wsgi.py b/siscdsalud/wsgi.py new file mode 100644 index 0000000..1d693ce --- /dev/null +++ b/siscdsalud/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for siscdsalud project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.2/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'siscdsalud.settings') + +application = get_wsgi_application() diff --git a/static/assets/css/datepicker.min.css b/static/assets/css/datepicker.min.css new file mode 100644 index 0000000..1368f4f --- /dev/null +++ b/static/assets/css/datepicker.min.css @@ -0,0 +1,9 @@ +/*! + * Datepicker v0.6.5 + * https://github.com/fengyuanchen/datepicker + * + * Copyright (c) 2014-2018 Chen Fengyuan + * Released under the MIT license + * + * Date: 2018-03-31T06:16:43.444Z + */.datepicker-container{background-color:#fff;direction:ltr;font-size:12px;left:0;line-height:30px;position:fixed;top:0;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:210px;z-index:-1;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.datepicker-container:after,.datepicker-container:before{border:5px solid transparent;content:" ";display:block;height:0;position:absolute;width:0}.datepicker-dropdown{border:1px solid #ccc;box-shadow:0 3px 6px #ccc;box-sizing:content-box;position:absolute;z-index:1}.datepicker-inline{position:static}.datepicker-top-left,.datepicker-top-right{border-top-color:#39f}.datepicker-top-left:after,.datepicker-top-left:before,.datepicker-top-right:after,.datepicker-top-right:before{border-top:0;left:10px;top:-5px}.datepicker-top-left:before,.datepicker-top-right:before{border-bottom-color:#39f}.datepicker-top-left:after,.datepicker-top-right:after{border-bottom-color:#fff;top:-4px}.datepicker-bottom-left,.datepicker-bottom-right{border-bottom-color:#39f}.datepicker-bottom-left:after,.datepicker-bottom-left:before,.datepicker-bottom-right:after,.datepicker-bottom-right:before{border-bottom:0;bottom:-5px;left:10px}.datepicker-bottom-left:before,.datepicker-bottom-right:before{border-top-color:#39f}.datepicker-bottom-left:after,.datepicker-bottom-right:after{border-top-color:#fff;bottom:-4px}.datepicker-bottom-right:after,.datepicker-bottom-right:before,.datepicker-top-right:after,.datepicker-top-right:before{left:auto;right:10px}.datepicker-panel>ul{margin:0;padding:0;width:102%}.datepicker-panel>ul:after,.datepicker-panel>ul:before{content:" ";display:table}.datepicker-panel>ul:after{clear:both}.datepicker-panel>ul>li{background-color:#fff;cursor:pointer;float:left;height:30px;list-style:none;margin:0;padding:0;text-align:center;width:30px}.datepicker-panel>ul>li:hover{background-color:#e5f2ff}.datepicker-panel>ul>li.muted,.datepicker-panel>ul>li.muted:hover{color:#999}.datepicker-panel>ul>li.highlighted{background-color:#e5f2ff}.datepicker-panel>ul>li.highlighted:hover{background-color:#cce5ff}.datepicker-panel>ul>li.picked,.datepicker-panel>ul>li.picked:hover{color:#39f}.datepicker-panel>ul>li.disabled,.datepicker-panel>ul>li.disabled:hover{background-color:#fff;color:#ccc;cursor:default}.datepicker-panel>ul>li.disabled.highlighted,.datepicker-panel>ul>li.disabled:hover.highlighted{background-color:#e5f2ff}.datepicker-panel>ul>li[data-view="month next"],.datepicker-panel>ul>li[data-view="month prev"],.datepicker-panel>ul>li[data-view="year next"],.datepicker-panel>ul>li[data-view="year prev"],.datepicker-panel>ul>li[data-view="years next"],.datepicker-panel>ul>li[data-view="years prev"],.datepicker-panel>ul>li[data-view=next]{font-size:18px}.datepicker-panel>ul>li[data-view="month current"],.datepicker-panel>ul>li[data-view="year current"],.datepicker-panel>ul>li[data-view="years current"]{width:150px}.datepicker-panel>ul[data-view=months]>li,.datepicker-panel>ul[data-view=years]>li{height:52.5px;line-height:52.5px;width:52.5px}.datepicker-panel>ul[data-view=week]>li,.datepicker-panel>ul[data-view=week]>li:hover{background-color:#fff;cursor:default}.datepicker-hide{display:none} \ No newline at end of file diff --git a/static/assets/css/material-dashboard-rtl.css b/static/assets/css/material-dashboard-rtl.css new file mode 100644 index 0000000..63fab85 --- /dev/null +++ b/static/assets/css/material-dashboard-rtl.css @@ -0,0 +1,1215 @@ +/*! + + ========================================================= + * Material Dashboard rtl - v1.1 + ========================================================= + * + * author: Alireza Esfahani + * https://github.com/aynzad + * http://gonjeshk.ir + * + */ +html[dir="rtl"] { + text-align: right; + direction: rtl; +} + +html[dir="rtl"] .nav { + padding-right: 0; +} + +html[dir="rtl"] th { + text-align: right; +} + +html[dir="rtl"] .alert-dismissible { + padding-right: 1.25rem; + padding-left: 4rem; +} + +html[dir="rtl"] .dropdown-menu { + right: 0; + text-align: right; +} + +html[dir="rtl"] .checkbox label { + padding-right: 1.25rem; + padding-left: inherit; +} + +html[dir="rtl"] .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-radius: 0 0.25rem 0.25rem 0; +} + +html[dir="rtl"] .btn-group > .btn:last-child:not(:first-child), +html[dir="rtl"] .btn-group > .dropdown-toggle:not(:first-child) { + border-radius: 0.25rem 0 0 0.25rem; +} + +html[dir="rtl"] .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-radius: 0.25rem 0 0 0.25rem; +} + +html[dir="rtl"] .custom-control-label::after, +html[dir="rtl"] .custom-control-label::before { + right: 0; + left: inherit; +} + +html[dir="rtl"] .custom-select { + padding: 0.375rem 0.75rem 0.375rem 1.75rem; + background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat left 0.75rem center; + background-size: 8px 10px; +} + +html[dir="rtl"] .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), +html[dir="rtl"] .input-group > .input-group-append:last-child > .input-group-text:not(:last-child), +html[dir="rtl"] .input-group > .input-group-append:not(:last-child) > .btn, +html[dir="rtl"] .input-group > .input-group-append:not(:last-child) > .input-group-text, +html[dir="rtl"] .input-group > .input-group-prepend > .btn, +html[dir="rtl"] .input-group > .input-group-prepend > .input-group-text { + border-radius: 0 0.25rem 0.25rem 0; +} + +html[dir="rtl"] .input-group > .input-group-append > .btn, +html[dir="rtl"] .input-group > .input-group-append > .input-group-text, +html[dir="rtl"] .input-group > .input-group-prepend:first-child > .btn:not(:first-child), +html[dir="rtl"] .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child), +html[dir="rtl"] .input-group > .input-group-prepend:not(:first-child) > .btn, +html[dir="rtl"] .input-group > .input-group-prepend:not(:first-child) > .input-group-text { + border-radius: 0.25rem 0 0 0.25rem; +} + +html[dir="rtl"] .input-group > .custom-select:not(:first-child), +html[dir="rtl"] .input-group > .form-control:not(:first-child) { + border-radius: 0.25rem 0 0 0.25rem; +} + +html[dir="rtl"] .input-group > .custom-select:not(:last-child), +html[dir="rtl"] .input-group > .form-control:not(:last-child) { + border-radius: 0 0.25rem 0.25rem 0; +} + +html[dir="rtl"] .input-group > .custom-select:not(:last-child):not(:first-child), +html[dir="rtl"] .input-group > .form-control:not(:last-child):not(:first-child) { + border-radius: 0; +} + +html[dir="rtl"] .custom-control { + padding-right: 1.5rem; + padding-left: inherit; + margin-right: inherit; + margin-left: 1rem; +} + +html[dir="rtl"] .custom-control-indicator { + right: 0; + left: inherit; +} + +html[dir="rtl"] .custom-file-label::after { + right: initial; + left: -1px; + border-radius: .25rem 0 0 .25rem; +} + +html[dir="rtl"] .radio input, +html[dir="rtl"] .radio-inline, +html[dir="rtl"] .checkbox input, +html[dir="rtl"] .checkbox-inline input { + margin-right: -1.25rem; + margin-left: inherit; +} + +html[dir="rtl"] .list-group { + padding-right: 0; + padding-left: 40px; +} + +html[dir="rtl"] .close { + float: left; +} + +html[dir="rtl"] .modal-header .close { + margin: -15px auto -15px -15px; +} + +html[dir="rtl"] .modal-footer > :not(:first-child) { + margin-right: .25rem; +} + +html[dir="rtl"] .alert-dismissible .close { + right: inherit; + left: 0; +} + +html[dir="rtl"] .dropdown-toggle::after { + margin-right: .255em; + margin-left: 0; +} + +html[dir="rtl"] .form-check-input { + margin-right: -1.25rem; + margin-left: inherit; +} + +html[dir="rtl"] .form-check-label { + padding-right: 1.25rem; + padding-left: inherit; +} + +html[dir="rtl"] .offset-1 { + margin-right: 8.33333%; + margin-left: 0; +} + +html[dir="rtl"] .offset-2 { + margin-right: 16.66667%; + margin-left: 0; +} + +html[dir="rtl"] .offset-3 { + margin-right: 25%; + margin-left: 0; +} + +html[dir="rtl"] .offset-4 { + margin-right: 33.33333%; + margin-left: 0; +} + +html[dir="rtl"] .offset-5 { + margin-right: 41.66667%; + margin-left: 0; +} + +html[dir="rtl"] .offset-6 { + margin-right: 50%; + margin-left: 0; +} + +html[dir="rtl"] .offset-7 { + margin-right: 58.33333%; + margin-left: 0; +} + +html[dir="rtl"] .offset-8 { + margin-right: 66.66667%; + margin-left: 0; +} + +html[dir="rtl"] .offset-9 { + margin-right: 75%; + margin-left: 0; +} + +html[dir="rtl"] .offset-10 { + margin-right: 83.33333%; + margin-left: 0; +} + +html[dir="rtl"] .offset-11 { + margin-right: 91.66667%; + margin-left: 0; +} + +@media (min-width: 576px) { + html[dir="rtl"] .offset-sm-0 { + margin-right: 0; + margin-left: 0; + } + html[dir="rtl"] .offset-sm-1 { + margin-right: 8.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-sm-2 { + margin-right: 16.66667%; + margin-left: 0; + } + html[dir="rtl"] .offset-sm-3 { + margin-right: 25%; + margin-left: 0; + } + html[dir="rtl"] .offset-sm-4 { + margin-right: 33.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-sm-5 { + margin-right: 41.66667%; + margin-left: 0; + } + html[dir="rtl"] .offset-sm-6 { + margin-right: 50%; + margin-left: 0; + } + html[dir="rtl"] .offset-sm-7 { + margin-right: 58.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-sm-8 { + margin-right: 66.66667%; + margin-left: 0; + } + html[dir="rtl"] .offset-sm-9 { + margin-right: 75%; + margin-left: 0; + } + html[dir="rtl"] .offset-sm-10 { + margin-right: 83.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-sm-11 { + margin-right: 91.66667%; + margin-left: 0; + } +} + +@media (min-width: 768px) { + html[dir="rtl"] .offset-md-0 { + margin-right: 0; + margin-left: 0; + } + html[dir="rtl"] .offset-md-1 { + margin-right: 8.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-md-2 { + margin-right: 16.66667%; + margin-left: 0; + } + html[dir="rtl"] .offset-md-3 { + margin-right: 25%; + margin-left: 0; + } + html[dir="rtl"] .offset-md-4 { + margin-right: 33.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-md-5 { + margin-right: 41.66667%; + margin-left: 0; + } + html[dir="rtl"] .offset-md-6 { + margin-right: 50%; + margin-left: 0; + } + html[dir="rtl"] .offset-md-7 { + margin-right: 58.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-md-8 { + margin-right: 66.66667%; + margin-left: 0; + } + html[dir="rtl"] .offset-md-9 { + margin-right: 75%; + margin-left: 0; + } + html[dir="rtl"] .offset-md-10 { + margin-right: 83.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-md-11 { + margin-right: 91.66667%; + margin-left: 0; + } +} + +@media (min-width: 992px) { + html[dir="rtl"] .offset-lg-0 { + margin-right: 0; + margin-left: 0; + } + html[dir="rtl"] .offset-lg-1 { + margin-right: 8.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-lg-2 { + margin-right: 16.66667%; + margin-left: 0; + } + html[dir="rtl"] .offset-lg-3 { + margin-right: 25%; + margin-left: 0; + } + html[dir="rtl"] .offset-lg-4 { + margin-right: 33.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-lg-5 { + margin-right: 41.66667%; + margin-left: 0; + } + html[dir="rtl"] .offset-lg-6 { + margin-right: 50%; + margin-left: 0; + } + html[dir="rtl"] .offset-lg-7 { + margin-right: 58.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-lg-8 { + margin-right: 66.66667%; + margin-left: 0; + } + html[dir="rtl"] .offset-lg-9 { + margin-right: 75%; + margin-left: 0; + } + html[dir="rtl"] .offset-lg-10 { + margin-right: 83.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-lg-11 { + margin-right: 91.66667%; + margin-left: 0; + } +} + +@media (min-width: 1200px) { + html[dir="rtl"] .offset-xl-0 { + margin-right: 0; + margin-left: 0; + } + html[dir="rtl"] .offset-xl-1 { + margin-right: 8.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-xl-2 { + margin-right: 16.66667%; + margin-left: 0; + } + html[dir="rtl"] .offset-xl-3 { + margin-right: 25%; + margin-left: 0; + } + html[dir="rtl"] .offset-xl-4 { + margin-right: 33.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-xl-5 { + margin-right: 41.66667%; + margin-left: 0; + } + html[dir="rtl"] .offset-xl-6 { + margin-right: 50%; + margin-left: 0; + } + html[dir="rtl"] .offset-xl-7 { + margin-right: 58.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-xl-8 { + margin-right: 66.66667%; + margin-left: 0; + } + html[dir="rtl"] .offset-xl-9 { + margin-right: 75%; + margin-left: 0; + } + html[dir="rtl"] .offset-xl-10 { + margin-right: 83.33333%; + margin-left: 0; + } + html[dir="rtl"] .offset-xl-11 { + margin-right: 91.66667%; + margin-left: 0; + } +} + +html[dir="rtl"] .mr-0, +html[dir="rtl"] .mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +html[dir="rtl"] .ml-0, +html[dir="rtl"] .mx-0 { + margin-left: 0 !important; + margin-right: 0 !important; +} + +html[dir="rtl"] .mr-1, +html[dir="rtl"] .mx-1 { + margin-right: 0 !important; + margin-left: 0.25rem !important; +} + +html[dir="rtl"] .ml-1, +html[dir="rtl"] .mx-1 { + margin-left: 0 !important; + margin-right: 0.25rem !important; +} + +html[dir="rtl"] .mr-2, +html[dir="rtl"] .mx-2 { + margin-right: 0 !important; + margin-left: 0.5rem !important; +} + +html[dir="rtl"] .ml-2, +html[dir="rtl"] .mx-2 { + margin-left: 0 !important; + margin-right: 0.5rem !important; +} + +html[dir="rtl"] .mr-3, +html[dir="rtl"] .mx-3 { + margin-right: 0 !important; + margin-left: 1rem !important; +} + +html[dir="rtl"] .ml-3, +html[dir="rtl"] .mx-3 { + margin-left: 0 !important; + margin-right: 1rem !important; +} + +html[dir="rtl"] .mr-4, +html[dir="rtl"] .mx-4 { + margin-right: 0 !important; + margin-left: 1.5rem !important; +} + +html[dir="rtl"] .ml-4, +html[dir="rtl"] .mx-4 { + margin-left: 0 !important; + margin-right: 1.5rem !important; +} + +html[dir="rtl"] .mr-5, +html[dir="rtl"] .mx-5 { + margin-right: 0 !important; + margin-left: 3rem !important; +} + +html[dir="rtl"] .ml-5, +html[dir="rtl"] .mx-5 { + margin-left: 0 !important; + margin-right: 3rem !important; +} + +html[dir="rtl"] .pr-0, +html[dir="rtl"] .px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +html[dir="rtl"] .pl-0, +html[dir="rtl"] .px-0 { + padding-left: 0 !important; + padding-right: 0 !important; +} + +html[dir="rtl"] .pr-1, +html[dir="rtl"] .px-1 { + padding-right: 0 !important; + padding-left: 0.25rem !important; +} + +html[dir="rtl"] .pl-1, +html[dir="rtl"] .px-1 { + padding-left: 0 !important; + padding-right: 0.25rem !important; +} + +html[dir="rtl"] .pr-2, +html[dir="rtl"] .px-2 { + padding-right: 0 !important; + padding-left: 0.5rem !important; +} + +html[dir="rtl"] .pl-2, +html[dir="rtl"] .px-2 { + padding-left: 0 !important; + padding-right: 0.5rem !important; +} + +html[dir="rtl"] .pr-3, +html[dir="rtl"] .px-3 { + padding-right: 0 !important; + padding-left: 1rem !important; +} + +html[dir="rtl"] .pl-3, +html[dir="rtl"] .px-3 { + padding-left: 0 !important; + padding-right: 1rem !important; +} + +html[dir="rtl"] .pr-4, +html[dir="rtl"] .px-4 { + padding-right: 0 !important; + padding-left: 1.5rem !important; +} + +html[dir="rtl"] .pl-4, +html[dir="rtl"] .px-4 { + padding-left: 0 !important; + padding-right: 1.5rem !important; +} + +html[dir="rtl"] .pr-5, +html[dir="rtl"] .px-5 { + padding-right: 0 !important; + padding-left: 3rem !important; +} + +html[dir="rtl"] .pl-5, +html[dir="rtl"] .px-5 { + padding-left: 0 !important; + padding-right: 3rem !important; +} + +html[dir="rtl"] .mr-auto, +html[dir="rtl"] .mx-auto { + margin-right: 0; + margin-left: auto; +} + +html[dir="rtl"] .ml-auto, +html[dir="rtl"] .mx-auto { + margin-right: auto; + margin-left: 0; +} + +@media (min-width: 576px) { + html[dir="rtl"] .mr-sm-0, + html[dir="rtl"] .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + html[dir="rtl"] .ml-sm-0, + html[dir="rtl"] .mx-sm-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + html[dir="rtl"] .mr-sm-1, + html[dir="rtl"] .mx-sm-1 { + margin-right: 0 !important; + margin-left: 0.25rem !important; + } + html[dir="rtl"] .ml-sm-1, + html[dir="rtl"] .mx-sm-1 { + margin-left: 0 !important; + margin-right: 0.25rem !important; + } + html[dir="rtl"] .mr-sm-2, + html[dir="rtl"] .mx-sm-2 { + margin-right: 0 !important; + margin-left: 0.5rem !important; + } + html[dir="rtl"] .ml-sm-2, + html[dir="rtl"] .mx-sm-2 { + margin-left: 0 !important; + margin-right: 0.5rem !important; + } + html[dir="rtl"] .mr-sm-3, + html[dir="rtl"] .mx-sm-3 { + margin-right: 0 !important; + margin-left: 1rem !important; + } + html[dir="rtl"] .ml-sm-3, + html[dir="rtl"] .mx-sm-3 { + margin-left: 0 !important; + margin-right: 1rem !important; + } + html[dir="rtl"] .mr-sm-4, + html[dir="rtl"] .mx-sm-4 { + margin-right: 0 !important; + margin-left: 1.5rem !important; + } + html[dir="rtl"] .ml-sm-4, + html[dir="rtl"] .mx-sm-4 { + margin-left: 0 !important; + margin-right: 1.5rem !important; + } + html[dir="rtl"] .mr-sm-5, + html[dir="rtl"] .mx-sm-5 { + margin-right: 0 !important; + margin-left: 3rem !important; + } + html[dir="rtl"] .ml-sm-5, + html[dir="rtl"] .mx-sm-5 { + margin-left: 0 !important; + margin-right: 3rem !important; + } + html[dir="rtl"] .pr-sm-0, + html[dir="rtl"] .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + html[dir="rtl"] .pl-sm-0, + html[dir="rtl"] .px-sm-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + html[dir="rtl"] .pr-sm-1, + html[dir="rtl"] .px-sm-1 { + padding-right: 0 !important; + padding-left: 0.25rem !important; + } + html[dir="rtl"] .pl-sm-1, + html[dir="rtl"] .px-sm-1 { + padding-left: 0 !important; + padding-right: 0.25rem !important; + } + html[dir="rtl"] .pr-sm-2, + html[dir="rtl"] .px-sm-2 { + padding-right: 0 !important; + padding-left: 0.5rem !important; + } + html[dir="rtl"] .pl-sm-2, + html[dir="rtl"] .px-sm-2 { + padding-left: 0 !important; + padding-right: 0.5rem !important; + } + html[dir="rtl"] .pr-sm-3, + html[dir="rtl"] .px-sm-3 { + padding-right: 0 !important; + padding-left: 1rem !important; + } + html[dir="rtl"] .pl-sm-3, + html[dir="rtl"] .px-sm-3 { + padding-left: 0 !important; + padding-right: 1rem !important; + } + html[dir="rtl"] .pr-sm-4, + html[dir="rtl"] .px-sm-4 { + padding-right: 0 !important; + padding-left: 1.5rem !important; + } + html[dir="rtl"] .pl-sm-4, + html[dir="rtl"] .px-sm-4 { + padding-left: 0 !important; + padding-right: 1.5rem !important; + } + html[dir="rtl"] .pr-sm-5, + html[dir="rtl"] .px-sm-5 { + padding-right: 0 !important; + padding-left: 3rem !important; + } + html[dir="rtl"] .pl-sm-5, + html[dir="rtl"] .px-sm-5 { + padding-left: 0 !important; + padding-right: 3rem !important; + } + html[dir="rtl"] .mr-sm-auto, + html[dir="rtl"] .mx-sm-auto { + margin-right: 0; + margin-left: auto; + } + html[dir="rtl"] .ml-sm-auto, + html[dir="rtl"] .mx-sm-auto { + margin-right: auto; + margin-left: 0; + } +} + +@media (min-width: 768px) { + html[dir="rtl"] .mr-md-0, + html[dir="rtl"] .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + html[dir="rtl"] .ml-md-0, + html[dir="rtl"] .mx-md-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + html[dir="rtl"] .mr-md-1, + html[dir="rtl"] .mx-md-1 { + margin-right: 0 !important; + margin-left: 0.25rem !important; + } + html[dir="rtl"] .ml-md-1, + html[dir="rtl"] .mx-md-1 { + margin-left: 0 !important; + margin-right: 0.25rem !important; + } + html[dir="rtl"] .mr-md-2, + html[dir="rtl"] .mx-md-2 { + margin-right: 0 !important; + margin-left: 0.5rem !important; + } + html[dir="rtl"] .ml-md-2, + html[dir="rtl"] .mx-md-2 { + margin-left: 0 !important; + margin-right: 0.5rem !important; + } + html[dir="rtl"] .mr-md-3, + html[dir="rtl"] .mx-md-3 { + margin-right: 0 !important; + margin-left: 1rem !important; + } + html[dir="rtl"] .ml-md-3, + html[dir="rtl"] .mx-md-3 { + margin-left: 0 !important; + margin-right: 1rem !important; + } + html[dir="rtl"] .mr-md-4, + html[dir="rtl"] .mx-md-4 { + margin-right: 0 !important; + margin-left: 1.5rem !important; + } + html[dir="rtl"] .ml-md-4, + html[dir="rtl"] .mx-md-4 { + margin-left: 0 !important; + margin-right: 1.5rem !important; + } + html[dir="rtl"] .mr-md-5, + html[dir="rtl"] .mx-md-5 { + margin-right: 0 !important; + margin-left: 3rem !important; + } + html[dir="rtl"] .ml-md-5, + html[dir="rtl"] .mx-md-5 { + margin-left: 0 !important; + margin-right: 3rem !important; + } + html[dir="rtl"] .pr-md-0, + html[dir="rtl"] .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + html[dir="rtl"] .pl-md-0, + html[dir="rtl"] .px-md-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + html[dir="rtl"] .pr-md-1, + html[dir="rtl"] .px-md-1 { + padding-right: 0 !important; + padding-left: 0.25rem !important; + } + html[dir="rtl"] .pl-md-1, + html[dir="rtl"] .px-md-1 { + padding-left: 0 !important; + padding-right: 0.25rem !important; + } + html[dir="rtl"] .pr-md-2, + html[dir="rtl"] .px-md-2 { + padding-right: 0 !important; + padding-left: 0.5rem !important; + } + html[dir="rtl"] .pl-md-2, + html[dir="rtl"] .px-md-2 { + padding-left: 0 !important; + padding-right: 0.5rem !important; + } + html[dir="rtl"] .pr-md-3, + html[dir="rtl"] .px-md-3 { + padding-right: 0 !important; + padding-left: 1rem !important; + } + html[dir="rtl"] .pl-md-3, + html[dir="rtl"] .px-md-3 { + padding-left: 0 !important; + padding-right: 1rem !important; + } + html[dir="rtl"] .pr-md-4, + html[dir="rtl"] .px-md-4 { + padding-right: 0 !important; + padding-left: 1.5rem !important; + } + html[dir="rtl"] .pl-md-4, + html[dir="rtl"] .px-md-4 { + padding-left: 0 !important; + padding-right: 1.5rem !important; + } + html[dir="rtl"] .pr-md-5, + html[dir="rtl"] .px-md-5 { + padding-right: 0 !important; + padding-left: 3rem !important; + } + html[dir="rtl"] .pl-md-5, + html[dir="rtl"] .px-md-5 { + padding-left: 0 !important; + padding-right: 3rem !important; + } + html[dir="rtl"] .mr-md-auto, + html[dir="rtl"] .mx-md-auto { + margin-right: 0; + margin-left: auto; + } + html[dir="rtl"] .ml-md-auto, + html[dir="rtl"] .mx-md-auto { + margin-right: auto; + margin-left: 0; + } +} + +@media (min-width: 992px) { + html[dir="rtl"] .mr-lg-0, + html[dir="rtl"] .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + html[dir="rtl"] .ml-lg-0, + html[dir="rtl"] .mx-lg-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + html[dir="rtl"] .mr-lg-1, + html[dir="rtl"] .mx-lg-1 { + margin-right: 0 !important; + margin-left: 0.25rem !important; + } + html[dir="rtl"] .ml-lg-1, + html[dir="rtl"] .mx-lg-1 { + margin-left: 0 !important; + margin-right: 0.25rem !important; + } + html[dir="rtl"] .mr-lg-2, + html[dir="rtl"] .mx-lg-2 { + margin-right: 0 !important; + margin-left: 0.5rem !important; + } + html[dir="rtl"] .ml-lg-2, + html[dir="rtl"] .mx-lg-2 { + margin-left: 0 !important; + margin-right: 0.5rem !important; + } + html[dir="rtl"] .mr-lg-3, + html[dir="rtl"] .mx-lg-3 { + margin-right: 0 !important; + margin-left: 1rem !important; + } + html[dir="rtl"] .ml-lg-3, + html[dir="rtl"] .mx-lg-3 { + margin-left: 0 !important; + margin-right: 1rem !important; + } + html[dir="rtl"] .mr-lg-4, + html[dir="rtl"] .mx-lg-4 { + margin-right: 0 !important; + margin-left: 1.5rem !important; + } + html[dir="rtl"] .ml-lg-4, + html[dir="rtl"] .mx-lg-4 { + margin-left: 0 !important; + margin-right: 1.5rem !important; + } + html[dir="rtl"] .mr-lg-5, + html[dir="rtl"] .mx-lg-5 { + margin-right: 0 !important; + margin-left: 3rem !important; + } + html[dir="rtl"] .ml-lg-5, + html[dir="rtl"] .mx-lg-5 { + margin-left: 0 !important; + margin-right: 3rem !important; + } + html[dir="rtl"] .pr-lg-0, + html[dir="rtl"] .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + html[dir="rtl"] .pl-lg-0, + html[dir="rtl"] .px-lg-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + html[dir="rtl"] .pr-lg-1, + html[dir="rtl"] .px-lg-1 { + padding-right: 0 !important; + padding-left: 0.25rem !important; + } + html[dir="rtl"] .pl-lg-1, + html[dir="rtl"] .px-lg-1 { + padding-left: 0 !important; + padding-right: 0.25rem !important; + } + html[dir="rtl"] .pr-lg-2, + html[dir="rtl"] .px-lg-2 { + padding-right: 0 !important; + padding-left: 0.5rem !important; + } + html[dir="rtl"] .pl-lg-2, + html[dir="rtl"] .px-lg-2 { + padding-left: 0 !important; + padding-right: 0.5rem !important; + } + html[dir="rtl"] .pr-lg-3, + html[dir="rtl"] .px-lg-3 { + padding-right: 0 !important; + padding-left: 1rem !important; + } + html[dir="rtl"] .pl-lg-3, + html[dir="rtl"] .px-lg-3 { + padding-left: 0 !important; + padding-right: 1rem !important; + } + html[dir="rtl"] .pr-lg-4, + html[dir="rtl"] .px-lg-4 { + padding-right: 0 !important; + padding-left: 1.5rem !important; + } + html[dir="rtl"] .pl-lg-4, + html[dir="rtl"] .px-lg-4 { + padding-left: 0 !important; + padding-right: 1.5rem !important; + } + html[dir="rtl"] .pr-lg-5, + html[dir="rtl"] .px-lg-5 { + padding-right: 0 !important; + padding-left: 3rem !important; + } + html[dir="rtl"] .pl-lg-5, + html[dir="rtl"] .px-lg-5 { + padding-left: 0 !important; + padding-right: 3rem !important; + } + html[dir="rtl"] .mr-lg-auto, + html[dir="rtl"] .mx-lg-auto { + margin-right: 0; + margin-left: auto; + } + html[dir="rtl"] .ml-lg-auto, + html[dir="rtl"] .mx-lg-auto { + margin-right: auto; + margin-left: 0; + } +} + +@media (min-width: 1200px) { + html[dir="rtl"] .mr-xl-0, + html[dir="rtl"] .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + html[dir="rtl"] .ml-xl-0, + html[dir="rtl"] .mx-xl-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + html[dir="rtl"] .mr-xl-1, + html[dir="rtl"] .mx-xl-1 { + margin-right: 0 !important; + margin-left: 0.25rem !important; + } + html[dir="rtl"] .ml-xl-1, + html[dir="rtl"] .mx-xl-1 { + margin-left: 0 !important; + margin-right: 0.25rem !important; + } + html[dir="rtl"] .mr-xl-2, + html[dir="rtl"] .mx-xl-2 { + margin-right: 0 !important; + margin-left: 0.5rem !important; + } + html[dir="rtl"] .ml-xl-2, + html[dir="rtl"] .mx-xl-2 { + margin-left: 0 !important; + margin-right: 0.5rem !important; + } + html[dir="rtl"] .mr-xl-3, + html[dir="rtl"] .mx-xl-3 { + margin-right: 0 !important; + margin-left: 1rem !important; + } + html[dir="rtl"] .ml-xl-3, + html[dir="rtl"] .mx-xl-3 { + margin-left: 0 !important; + margin-right: 1rem !important; + } + html[dir="rtl"] .mr-xl-4, + html[dir="rtl"] .mx-xl-4 { + margin-right: 0 !important; + margin-left: 1.5rem !important; + } + html[dir="rtl"] .ml-xl-4, + html[dir="rtl"] .mx-xl-4 { + margin-left: 0 !important; + margin-right: 1.5rem !important; + } + html[dir="rtl"] .mr-xl-5, + html[dir="rtl"] .mx-xl-5 { + margin-right: 0 !important; + margin-left: 3rem !important; + } + html[dir="rtl"] .ml-xl-5, + html[dir="rtl"] .mx-xl-5 { + margin-left: 0 !important; + margin-right: 3rem !important; + } + html[dir="rtl"] .pr-xl-0, + html[dir="rtl"] .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + html[dir="rtl"] .pl-xl-0, + html[dir="rtl"] .px-xl-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + html[dir="rtl"] .pr-xl-1, + html[dir="rtl"] .px-xl-1 { + padding-right: 0 !important; + padding-left: 0.25rem !important; + } + html[dir="rtl"] .pl-xl-1, + html[dir="rtl"] .px-xl-1 { + padding-left: 0 !important; + padding-right: 0.25rem !important; + } + html[dir="rtl"] .pr-xl-2, + html[dir="rtl"] .px-xl-2 { + padding-right: 0 !important; + padding-left: 0.5rem !important; + } + html[dir="rtl"] .pl-xl-2, + html[dir="rtl"] .px-xl-2 { + padding-left: 0 !important; + padding-right: 0.5rem !important; + } + html[dir="rtl"] .pr-xl-3, + html[dir="rtl"] .px-xl-3 { + padding-right: 0 !important; + padding-left: 1rem !important; + } + html[dir="rtl"] .pl-xl-3, + html[dir="rtl"] .px-xl-3 { + padding-left: 0 !important; + padding-right: 1rem !important; + } + html[dir="rtl"] .pr-xl-4, + html[dir="rtl"] .px-xl-4 { + padding-right: 0 !important; + padding-left: 1.5rem !important; + } + html[dir="rtl"] .pl-xl-4, + html[dir="rtl"] .px-xl-4 { + padding-left: 0 !important; + padding-right: 1.5rem !important; + } + html[dir="rtl"] .pr-xl-5, + html[dir="rtl"] .px-xl-5 { + padding-right: 0 !important; + padding-left: 3rem !important; + } + html[dir="rtl"] .pl-xl-5, + html[dir="rtl"] .px-xl-5 { + padding-left: 0 !important; + padding-right: 3rem !important; + } + html[dir="rtl"] .mr-xl-auto, + html[dir="rtl"] .mx-xl-auto { + margin-right: 0; + margin-left: auto; + } + html[dir="rtl"] .ml-xl-auto, + html[dir="rtl"] .mx-xl-auto { + margin-right: auto; + margin-left: 0; + } +} + +html[dir="rtl"] body { + text-align: right; +} + +html[dir="rtl"] .sidebar { + left: unset; + right: 0; +} + +html[dir="rtl"] .sidebar .nav i { + float: right; + margin-left: 15px; + margin-right: unset; +} + +html[dir="rtl"] .main-panel { + float: left; +} + +html[dir="rtl"] .card .card-header.card-header-tabs .nav-tabs-title { + float: right; + padding: 10px 0 10px 10px; +} + +html[dir="rtl"] .card.card-chart { + direction: ltr; +} + +html[dir="rtl"] .nav-tabs .nav-item .material-icons { + margin: -1px 0 0 5px; +} + +html[dir="rtl"] .form-check { + direction: ltr; +} + +html[dir="rtl"] .navbar .navbar-nav .dropdown-menu-right { + transform-origin: 0 0; +} + +html[dir="rtl"] .bmd-form-group [class^='bmd-label'].bmd-label-floating, +html[dir="rtl"] .bmd-form-group [class*=' bmd-label'].bmd-label-floating { + will-change: right, top, contents; +} + +html[dir="rtl"] .is-focused .bmd-label-floating, +html[dir="rtl"] .is-filled .bmd-label-floating { + right: 0; + left: unset; +} + +html[dir="rtl"] .alert.alert-with-icon { + padding-right: 66px; + padding-left: 15px; +} + +html[dir="rtl"] .alert.alert-with-icon i[data-notify="icon"] { + right: 15px; + left: unset; +} + +html[dir="rtl"] .alert button.close { + left: 10px !important; + right: unset !important; +} + +@media (min-width: 992px) { + html[dir="rtl"] .navbar-expand-lg .navbar-nav .dropdown-menu-right { + left: 0; + right: auto; + } +} + +html[dir="rtl"] .sidebar .sidebar-wrapper .navbar-form .input-group { + padding-right: 17px; + padding-left: unset; +} + +html[dir="rtl"] .sidebar, +html[dir="rtl"] .off-canvas-sidebar nav .navbar-collapse { + text-align: right; +} + +html[dir="rtl"] .card .card-body, html[dir="rtl"] .card .card-footer { + direction: rtl; +} + +@media (max-width: 991px) { + html[dir="rtl"] .navbar-form .btn { + left: -50px; + right: unset; + } +} + +@media (min-width: 992px) { + html[dir="rtl"] .navbar-expand-lg > .container, + html[dir="rtl"] .navbar-expand-lg > .container-fluid { + flex-wrap: nowrap; + } +} + +@media (max-width: 991px) { + html[dir="rtl"] [class*="navbar-expand-"] > .container, + html[dir="rtl"] [class*="navbar-expand-"] > .container-fluid { + flex-direction: row-reverse; + } +} +/*# sourceMappingURL=material-dashboard-rtl.css.map */ \ No newline at end of file diff --git a/static/assets/css/material-dashboard.css b/static/assets/css/material-dashboard.css new file mode 100644 index 0000000..83b9bb3 --- /dev/null +++ b/static/assets/css/material-dashboard.css @@ -0,0 +1,19760 @@ +/*! + + ========================================================= + * Material Dashboard - v2.1.0 + ========================================================= + + * Product Page: https://www.creative-tim.com/product/material-dashboard + * Copyright 2020 Creative Tim (http://www.creative-tim.com) + + ========================================================= + + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + */ +/* brand Colors */ +.card { + font-size: .875rem; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -ms-overflow-style: scrollbar; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +@-ms-viewport { + width: device-width; +} + +article, +aside, +dialog, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section { + display: block; +} + +body { + margin: 0; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: left; + background-color: #fafafa; +} + +[tabindex="-1"]:focus { + outline: 0 !important; +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 500; +} + +dd { + margin-bottom: .5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +dfn { + font-style: italic; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -.25em; +} + +sup { + top: -.5em; +} + +a { + color: #9c27b0; + text-decoration: none; + background-color: transparent; + -webkit-text-decoration-skip: objects; +} + +a:hover { + color: #0a6ebd; + text-decoration: underline; +} + +a:not([href]):not([tabindex]) { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([tabindex]):hover, +a:not([href]):not([tabindex]):focus { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([tabindex]):focus { + outline: 0; +} + +pre, +code, +kbd, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + -ms-overflow-style: scrollbar; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; + border-style: none; +} + +svg:not(:root) { + overflow: hidden; +} + +table { + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #6c757d; + text-align: left; + caption-side: bottom; +} + +th { + text-align: inherit; +} + +label { + display: inline-block; + margin-bottom: .5rem; +} + +button { + border-radius: 0; +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +button, +html [type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; +} + +input[type="radio"], +input[type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox; +} + +textarea { + overflow: auto; + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +summary { + display: list-item; + cursor: pointer; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} + +@media print { + + *, + *::before, + *::after { + text-shadow: none !important; + box-shadow: none !important; + } + + a:not(.btn) { + text-decoration: underline; + } + + abbr[title]::after { + content: " ("attr(title) ")"; + } + + pre { + white-space: pre-wrap !important; + } + + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + + thead { + display: table-header-group; + } + + tr, + img { + page-break-inside: avoid; + } + + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + + h2, + h3 { + page-break-after: avoid; + } + + @page { + size: a3; + } + + body { + min-width: 992px !important; + } + + .container { + min-width: 992px !important; + } + + .navbar { + display: none; + } + + .badge { + border: 1px solid #000; + } + + .table { + border-collapse: collapse !important; + } + + .table td, + .table th { + background-color: #fff !important; + } + + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -ms-overflow-style: scrollbar; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +@-ms-viewport { + width: device-width; +} + +article, +aside, +dialog, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section { + display: block; +} + +body { + margin: 0; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: left; + background-color: #fafafa; +} + +[tabindex="-1"]:focus { + outline: 0 !important; +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 500; +} + +dd { + margin-bottom: .5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +dfn { + font-style: italic; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -.25em; +} + +sup { + top: -.5em; +} + +a { + color: #9c27b0; + text-decoration: none; + background-color: transparent; + -webkit-text-decoration-skip: objects; +} + +a:hover { + color: #0a6ebd; + text-decoration: underline; +} + +a:not([href]):not([tabindex]) { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([tabindex]):hover, +a:not([href]):not([tabindex]):focus { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([tabindex]):focus { + outline: 0; +} + +pre, +code, +kbd, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + -ms-overflow-style: scrollbar; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; + border-style: none; +} + +svg:not(:root) { + overflow: hidden; +} + +table { + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #6c757d; + text-align: left; + caption-side: bottom; +} + +th { + text-align: inherit; +} + +label { + display: inline-block; + margin-bottom: .5rem; +} + +button { + border-radius: 0; +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +button, +html [type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; +} + +input[type="radio"], +input[type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox; +} + +textarea { + overflow: auto; + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +summary { + display: list-item; + cursor: pointer; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} + +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + margin-bottom: 0.5rem; + font-family: inherit; + font-weight: 400; + line-height: 1.2; + color: inherit; +} + +h1, +.h1 { + font-size: 2.5rem; +} + +h2, +.h2 { + font-size: 2rem; +} + +h3, +.h3 { + font-size: 1.75rem; +} + +h4, +.h4 { + font-size: 1.5rem; +} + +h5, +.h5 { + font-size: 1.25rem; +} + +h6, +.h6 { + font-size: 1rem; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-size: 7rem; + font-weight: 300; + line-height: 1.2; +} + +.display-2 { + font-size: 3.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-3 { + font-size: 2.8125rem; + font-weight: 300; + line-height: 1.2; +} + +.display-4 { + font-size: 2.125rem; + font-weight: 300; + line-height: 1.2; +} + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +small, +.small { + font-size: 80%; + font-weight: 400; +} + +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} + +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} + +.blockquote-footer { + display: block; + font-size: 80%; + color: #6c757d; +} + +.blockquote-footer::before { + content: "\2014 \00A0"; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #fafafa; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 90%; + color: #6c757d; +} + +code, +kbd, +pre, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +code { + font-size: 87.5%; + color: #e91e63; + word-break: break-word; +} + +a>code { + color: inherit; +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #ffffff; + background-color: #212529; + border-radius: 0.2rem; + box-shadow: inset 0 -0.1rem 0 rgba(0, 0, 0, 0.25); +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 500; + box-shadow: none; +} + +pre { + display: block; + font-size: 87.5%; + color: #212529; +} + +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1140px; + } +} + +.container-fluid { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +.row { + display: flex; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.no-gutters { + margin-right: 0; + margin-left: 0; +} + +.no-gutters>.col, +.no-gutters>[class*="col-"] { + padding-right: 0; + padding-left: 0; +} + +.col-1, +.col-2, +.col-3, +.col-4, +.col-5, +.col-6, +.col-7, +.col-8, +.col-9, +.col-10, +.col-11, +.col-12, +.col, +.col-auto, +.col-sm-1, +.col-sm-2, +.col-sm-3, +.col-sm-4, +.col-sm-5, +.col-sm-6, +.col-sm-7, +.col-sm-8, +.col-sm-9, +.col-sm-10, +.col-sm-11, +.col-sm-12, +.col-sm, +.col-sm-auto, +.col-md-1, +.col-md-2, +.col-md-3, +.col-md-4, +.col-md-5, +.col-md-6, +.col-md-7, +.col-md-8, +.col-md-9, +.col-md-10, +.col-md-11, +.col-md-12, +.col-md, +.col-md-auto, +.col-lg-1, +.col-lg-2, +.col-lg-3, +.col-lg-4, +.col-lg-5, +.col-lg-6, +.col-lg-7, +.col-lg-8, +.col-lg-9, +.col-lg-10, +.col-lg-11, +.col-lg-12, +.col-lg, +.col-lg-auto, +.col-xl-1, +.col-xl-2, +.col-xl-3, +.col-xl-4, +.col-xl-5, +.col-xl-6, +.col-xl-7, +.col-xl-8, +.col-xl-9, +.col-xl-10, +.col-xl-11, +.col-xl-12, +.col-xl, +.col-xl-auto { + position: relative; + width: 100%; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} + +.col { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; +} + +.col-auto { + flex: 0 0 auto; + width: auto; + max-width: none; +} + +.col-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; +} + +.col-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-3 { + flex: 0 0 25%; + max-width: 25%; +} + +.col-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.col-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; +} + +.col-6 { + flex: 0 0 50%; + max-width: 50%; +} + +.col-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; +} + +.col-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; +} + +.col-9 { + flex: 0 0 75%; + max-width: 75%; +} + +.col-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; +} + +.col-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; +} + +.col-12 { + flex: 0 0 100%; + max-width: 100%; +} + +.order-first { + order: -1; +} + +.order-last { + order: 13; +} + +.order-0 { + order: 0; +} + +.order-1 { + order: 1; +} + +.order-2 { + order: 2; +} + +.order-3 { + order: 3; +} + +.order-4 { + order: 4; +} + +.order-5 { + order: 5; +} + +.order-6 { + order: 6; +} + +.order-7 { + order: 7; +} + +.order-8 { + order: 8; +} + +.order-9 { + order: 9; +} + +.order-10 { + order: 10; +} + +.order-11 { + order: 11; +} + +.order-12 { + order: 12; +} + +.offset-1 { + margin-left: 8.333333%; +} + +.offset-2 { + margin-left: 16.666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.333333%; +} + +.offset-5 { + margin-left: 41.666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.333333%; +} + +.offset-8 { + margin-left: 66.666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.333333%; +} + +.offset-11 { + margin-left: 91.666667%; +} + +@media (min-width: 576px) { + .col-sm { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + + .col-sm-auto { + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-sm-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .col-sm-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .col-sm-3 { + flex: 0 0 25%; + max-width: 25%; + } + + .col-sm-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .col-sm-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .col-sm-6 { + flex: 0 0 50%; + max-width: 50%; + } + + .col-sm-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .col-sm-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .col-sm-9 { + flex: 0 0 75%; + max-width: 75%; + } + + .col-sm-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .col-sm-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .col-sm-12 { + flex: 0 0 100%; + max-width: 100%; + } + + .order-sm-first { + order: -1; + } + + .order-sm-last { + order: 13; + } + + .order-sm-0 { + order: 0; + } + + .order-sm-1 { + order: 1; + } + + .order-sm-2 { + order: 2; + } + + .order-sm-3 { + order: 3; + } + + .order-sm-4 { + order: 4; + } + + .order-sm-5 { + order: 5; + } + + .order-sm-6 { + order: 6; + } + + .order-sm-7 { + order: 7; + } + + .order-sm-8 { + order: 8; + } + + .order-sm-9 { + order: 9; + } + + .order-sm-10 { + order: 10; + } + + .order-sm-11 { + order: 11; + } + + .order-sm-12 { + order: 12; + } + + .offset-sm-0 { + margin-left: 0; + } + + .offset-sm-1 { + margin-left: 8.333333%; + } + + .offset-sm-2 { + margin-left: 16.666667%; + } + + .offset-sm-3 { + margin-left: 25%; + } + + .offset-sm-4 { + margin-left: 33.333333%; + } + + .offset-sm-5 { + margin-left: 41.666667%; + } + + .offset-sm-6 { + margin-left: 50%; + } + + .offset-sm-7 { + margin-left: 58.333333%; + } + + .offset-sm-8 { + margin-left: 66.666667%; + } + + .offset-sm-9 { + margin-left: 75%; + } + + .offset-sm-10 { + margin-left: 83.333333%; + } + + .offset-sm-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 768px) { + .col-md { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + + .col-md-auto { + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-md-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .col-md-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .col-md-3 { + flex: 0 0 25%; + max-width: 25%; + } + + .col-md-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .col-md-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .col-md-6 { + flex: 0 0 50%; + max-width: 50%; + } + + .col-md-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .col-md-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .col-md-9 { + flex: 0 0 75%; + max-width: 75%; + } + + .col-md-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .col-md-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .col-md-12 { + flex: 0 0 100%; + max-width: 100%; + } + + .order-md-first { + order: -1; + } + + .order-md-last { + order: 13; + } + + .order-md-0 { + order: 0; + } + + .order-md-1 { + order: 1; + } + + .order-md-2 { + order: 2; + } + + .order-md-3 { + order: 3; + } + + .order-md-4 { + order: 4; + } + + .order-md-5 { + order: 5; + } + + .order-md-6 { + order: 6; + } + + .order-md-7 { + order: 7; + } + + .order-md-8 { + order: 8; + } + + .order-md-9 { + order: 9; + } + + .order-md-10 { + order: 10; + } + + .order-md-11 { + order: 11; + } + + .order-md-12 { + order: 12; + } + + .offset-md-0 { + margin-left: 0; + } + + .offset-md-1 { + margin-left: 8.333333%; + } + + .offset-md-2 { + margin-left: 16.666667%; + } + + .offset-md-3 { + margin-left: 25%; + } + + .offset-md-4 { + margin-left: 33.333333%; + } + + .offset-md-5 { + margin-left: 41.666667%; + } + + .offset-md-6 { + margin-left: 50%; + } + + .offset-md-7 { + margin-left: 58.333333%; + } + + .offset-md-8 { + margin-left: 66.666667%; + } + + .offset-md-9 { + margin-left: 75%; + } + + .offset-md-10 { + margin-left: 83.333333%; + } + + .offset-md-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 992px) { + .col-lg { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + + .col-lg-auto { + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-lg-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .col-lg-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .col-lg-3 { + flex: 0 0 25%; + max-width: 25%; + } + + .col-lg-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .col-lg-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .col-lg-6 { + flex: 0 0 50%; + max-width: 50%; + } + + .col-lg-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .col-lg-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .col-lg-9 { + flex: 0 0 75%; + max-width: 75%; + } + + .col-lg-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .col-lg-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .col-lg-12 { + flex: 0 0 100%; + max-width: 100%; + } + + .order-lg-first { + order: -1; + } + + .order-lg-last { + order: 13; + } + + .order-lg-0 { + order: 0; + } + + .order-lg-1 { + order: 1; + } + + .order-lg-2 { + order: 2; + } + + .order-lg-3 { + order: 3; + } + + .order-lg-4 { + order: 4; + } + + .order-lg-5 { + order: 5; + } + + .order-lg-6 { + order: 6; + } + + .order-lg-7 { + order: 7; + } + + .order-lg-8 { + order: 8; + } + + .order-lg-9 { + order: 9; + } + + .order-lg-10 { + order: 10; + } + + .order-lg-11 { + order: 11; + } + + .order-lg-12 { + order: 12; + } + + .offset-lg-0 { + margin-left: 0; + } + + .offset-lg-1 { + margin-left: 8.333333%; + } + + .offset-lg-2 { + margin-left: 16.666667%; + } + + .offset-lg-3 { + margin-left: 25%; + } + + .offset-lg-4 { + margin-left: 33.333333%; + } + + .offset-lg-5 { + margin-left: 41.666667%; + } + + .offset-lg-6 { + margin-left: 50%; + } + + .offset-lg-7 { + margin-left: 58.333333%; + } + + .offset-lg-8 { + margin-left: 66.666667%; + } + + .offset-lg-9 { + margin-left: 75%; + } + + .offset-lg-10 { + margin-left: 83.333333%; + } + + .offset-lg-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 1200px) { + .col-xl { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + + .col-xl-auto { + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-xl-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .col-xl-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .col-xl-3 { + flex: 0 0 25%; + max-width: 25%; + } + + .col-xl-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .col-xl-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .col-xl-6 { + flex: 0 0 50%; + max-width: 50%; + } + + .col-xl-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .col-xl-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .col-xl-9 { + flex: 0 0 75%; + max-width: 75%; + } + + .col-xl-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .col-xl-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .col-xl-12 { + flex: 0 0 100%; + max-width: 100%; + } + + .order-xl-first { + order: -1; + } + + .order-xl-last { + order: 13; + } + + .order-xl-0 { + order: 0; + } + + .order-xl-1 { + order: 1; + } + + .order-xl-2 { + order: 2; + } + + .order-xl-3 { + order: 3; + } + + .order-xl-4 { + order: 4; + } + + .order-xl-5 { + order: 5; + } + + .order-xl-6 { + order: 6; + } + + .order-xl-7 { + order: 7; + } + + .order-xl-8 { + order: 8; + } + + .order-xl-9 { + order: 9; + } + + .order-xl-10 { + order: 10; + } + + .order-xl-11 { + order: 11; + } + + .order-xl-12 { + order: 12; + } + + .offset-xl-0 { + margin-left: 0; + } + + .offset-xl-1 { + margin-left: 8.333333%; + } + + .offset-xl-2 { + margin-left: 16.666667%; + } + + .offset-xl-3 { + margin-left: 25%; + } + + .offset-xl-4 { + margin-left: 33.333333%; + } + + .offset-xl-5 { + margin-left: 41.666667%; + } + + .offset-xl-6 { + margin-left: 50%; + } + + .offset-xl-7 { + margin-left: 58.333333%; + } + + .offset-xl-8 { + margin-left: 66.666667%; + } + + .offset-xl-9 { + margin-left: 75%; + } + + .offset-xl-10 { + margin-left: 83.333333%; + } + + .offset-xl-11 { + margin-left: 91.666667%; + } +} + +.table { + width: 100%; + max-width: 100%; + margin-bottom: 1rem; + background-color: transparent; +} + +.table th, +.table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid rgba(0, 0, 0, 0.06); +} + +.table thead th { + vertical-align: bottom; + border-bottom: 2px solid rgba(0, 0, 0, 0.06); +} + +.table tbody+tbody { + border-top: 2px solid rgba(0, 0, 0, 0.06); +} + +.table .table { + background-color: #fafafa; +} + +.table-sm th, +.table-sm td { + padding: 0.3rem; +} + +.table-bordered { + border: 1px solid rgba(0, 0, 0, 0.06); +} + +.table-bordered th, +.table-bordered td { + border: 1px solid rgba(0, 0, 0, 0.06); +} + +.table-bordered thead th, +.table-bordered thead td { + border-bottom-width: 2px; +} + +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); +} + +.table-hover tbody tr:hover { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-primary, +.table-primary>th, +.table-primary>td { + background-color: #c1e2fc; +} + +.table-hover .table-primary:hover { + background-color: #a9d7fb; +} + +.table-hover .table-primary:hover>td, +.table-hover .table-primary:hover>th { + background-color: #a9d7fb; +} + +.table-secondary, +.table-secondary>th, +.table-secondary>td { + background-color: #d6d8db; +} + +.table-hover .table-secondary:hover { + background-color: #c8cbcf; +} + +.table-hover .table-secondary:hover>td, +.table-hover .table-secondary:hover>th { + background-color: #c8cbcf; +} + +.table-success, +.table-success>th, +.table-success>td { + background-color: #cde9ce; +} + +.table-hover .table-success:hover { + background-color: #bbe1bd; +} + +.table-hover .table-success:hover>td, +.table-hover .table-success:hover>th { + background-color: #bbe1bd; +} + +.table-info, +.table-info>th, +.table-info>td { + background-color: #b8ecf3; +} + +.table-hover .table-info:hover { + background-color: #a2e6ef; +} + +.table-hover .table-info:hover>td, +.table-hover .table-info:hover>th { + background-color: #a2e6ef; +} + +.table-warning, +.table-warning>th, +.table-warning>td { + background-color: #fff9c8; +} + +.table-hover .table-warning:hover { + background-color: #fff6af; +} + +.table-hover .table-warning:hover>td, +.table-hover .table-warning:hover>th { + background-color: #fff6af; +} + +.table-danger, +.table-danger>th, +.table-danger>td { + background-color: #fccac7; +} + +.table-hover .table-danger:hover { + background-color: #fbb3af; +} + +.table-hover .table-danger:hover>td, +.table-hover .table-danger:hover>th { + background-color: #fbb3af; +} + +.table-light, +.table-light>th, +.table-light>td { + background-color: #fdfdfe; +} + +.table-hover .table-light:hover { + background-color: #ececf6; +} + +.table-hover .table-light:hover>td, +.table-hover .table-light:hover>th { + background-color: #ececf6; +} + +.table-dark, +.table-dark>th, +.table-dark>td { + background-color: #c6c8ca; +} + +.table-hover .table-dark:hover { + background-color: #b9bbbe; +} + +.table-hover .table-dark:hover>td, +.table-hover .table-dark:hover>th { + background-color: #b9bbbe; +} + +.table-active, +.table-active>th, +.table-active>td { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover>td, +.table-hover .table-active:hover>th { + background-color: rgba(0, 0, 0, 0.075); +} + +.table .thead-dark th { + color: #fafafa; + background-color: #212529; + border-color: #32383e; +} + +.table .thead-light th { + color: #495057; + background-color: #e9ecef; + border-color: rgba(0, 0, 0, 0.06); +} + +.table-dark { + color: #fafafa; + background-color: #212529; +} + +.table-dark th, +.table-dark td, +.table-dark thead th { + border-color: #32383e; +} + +.table-dark.table-bordered { + border: 0; +} + +.table-dark.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05); +} + +.table-dark.table-hover tbody tr:hover { + background-color: rgba(255, 255, 255, 0.075); +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + + .table-responsive-sm>.table-bordered { + border: 0; + } +} + +@media (max-width: 767.98px) { + .table-responsive-md { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + + .table-responsive-md>.table-bordered { + border: 0; + } +} + +@media (max-width: 991.98px) { + .table-responsive-lg { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + + .table-responsive-lg>.table-bordered { + border: 0; + } +} + +@media (max-width: 1199.98px) { + .table-responsive-xl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + + .table-responsive-xl>.table-bordered { + border: 0; + } +} + +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; +} + +.table-responsive>.table-bordered { + border: 0; +} + +.form-control { + display: block; + width: 100%; + padding: 0.4375rem 0; + font-size: 1rem; + line-height: 1.5; + color: #495057; + background-color: rgba(0, 0, 0, 0); + background-clip: padding-box; + border: 1px solid #d2d2d2; + border-radius: 0; + box-shadow: none; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} + +.form-control:focus { + color: #495057; + background-color: rgba(0, 0, 0, 0); + border-color: #9acffa; + outline: 0; + box-shadow: none, 0 0 0 0.2rem rgba(33, 150, 243, 0.25); +} + +.form-control::placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control:disabled, +.form-control[readonly] { + background-color: #e9ecef; + opacity: 1; +} + +select.form-control:not([size]):not([multiple]) { + height: calc(2.4375rem + 2px); +} + +select.form-control:focus::-ms-value { + color: #495057; + background-color: rgba(0, 0, 0, 0); +} + +.form-control-file, +.form-control-range { + display: block; + width: 100%; +} + +.col-form-label { + padding-top: calc(0.4375rem + 1px); + padding-bottom: calc(0.4375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5625rem + 1px); + padding-bottom: calc(0.5625rem + 1px); + font-size: 1.25rem; + line-height: 1.5; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; + line-height: 1.5; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding-top: 0.4375rem; + padding-bottom: 0.4375rem; + margin-bottom: 0; + line-height: 1.5; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} + +.form-control-plaintext.form-control-sm, +.input-group-sm>.form-control-plaintext.form-control, +.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text, +.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text, +.input-group-sm>.input-group-prepend>.form-control-plaintext.btn, +.input-group-sm>.input-group-append>.form-control-plaintext.btn, +.form-control-plaintext.form-control-lg, +.input-group-lg>.form-control-plaintext.form-control, +.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text, +.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text, +.input-group-lg>.input-group-prepend>.form-control-plaintext.btn, +.input-group-lg>.input-group-append>.form-control-plaintext.btn { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm, +.input-group-sm>.form-control, +.input-group-sm>.input-group-prepend>.input-group-text, +.input-group-sm>.input-group-append>.input-group-text, +.input-group-sm>.input-group-prepend>.btn, +.input-group-sm>.input-group-append>.btn { + padding: 0.25rem 0; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +select.form-control-sm:not([size]):not([multiple]), +.input-group-sm>select.form-control:not([size]):not([multiple]), +.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]), +.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]), +.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]), +.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]) { + height: calc(2.125rem + 2px); +} + +.form-control-lg, +.input-group-lg>.form-control, +.input-group-lg>.input-group-prepend>.input-group-text, +.input-group-lg>.input-group-append>.input-group-text, +.input-group-lg>.input-group-prepend>.btn, +.input-group-lg>.input-group-append>.btn { + padding: 0.5625rem 0; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +select.form-control-lg:not([size]):not([multiple]), +.input-group-lg>select.form-control:not([size]):not([multiple]), +.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]), +.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]), +.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]), +.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]) { + height: calc(4.125rem + 2px); +} + +.form-group { + margin-bottom: 1rem; +} + +.form-text { + display: block; + margin-top: 0.25rem; +} + +.form-row { + display: flex; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px; +} + +.form-row>.col, +.form-row>[class*="col-"] { + padding-right: 5px; + padding-left: 5px; +} + +.form-check { + position: relative; + display: block; + padding-left: 1.25rem; +} + +.form-check-input { + position: absolute; + margin-top: 0.3rem; + margin-left: -1.25rem; +} + +.form-check-input:disabled~.form-check-label { + color: #6c757d; +} + +.form-check-label { + margin-bottom: 0; +} + +.form-check-inline { + display: inline-flex; + align-items: center; + padding-left: 0; + margin-right: 0.75rem; +} + +.form-check-inline .form-check-input { + position: static; + margin-top: 0; + margin-right: 0.3125rem; + margin-left: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #4caf50; +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .5rem; + margin-top: .1rem; + font-size: .875rem; + line-height: 1; + color: #fff; + background-color: rgba(76, 175, 80, 0.8); + border-radius: .2rem; +} + +.was-validated .form-control:valid, +.form-control.is-valid, +.was-validated .custom-select:valid, +.custom-select.is-valid { + border-color: #4caf50; +} + +.was-validated .form-control:valid:focus, +.form-control.is-valid:focus, +.was-validated .custom-select:valid:focus, +.custom-select.is-valid:focus { + border-color: #4caf50; + box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.25); +} + +.was-validated .form-control:valid~.valid-feedback, +.was-validated .form-control:valid~.valid-tooltip, +.form-control.is-valid~.valid-feedback, +.form-control.is-valid~.valid-tooltip, +.was-validated .custom-select:valid~.valid-feedback, +.was-validated .custom-select:valid~.valid-tooltip, +.custom-select.is-valid~.valid-feedback, +.custom-select.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .form-check-input:valid~.form-check-label, +.form-check-input.is-valid~.form-check-label { + color: #4caf50; +} + +.was-validated .form-check-input:valid~.valid-feedback, +.was-validated .form-check-input:valid~.valid-tooltip, +.form-check-input.is-valid~.valid-feedback, +.form-check-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .custom-control-input:valid~.custom-control-label, +.custom-control-input.is-valid~.custom-control-label { + color: #4caf50; +} + +.was-validated .custom-control-input:valid~.custom-control-label::before, +.custom-control-input.is-valid~.custom-control-label::before { + background-color: #a3d7a5; +} + +.was-validated .custom-control-input:valid~.valid-feedback, +.was-validated .custom-control-input:valid~.valid-tooltip, +.custom-control-input.is-valid~.valid-feedback, +.custom-control-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .custom-control-input:valid:checked~.custom-control-label::before, +.custom-control-input.is-valid:checked~.custom-control-label::before { + background-color: #6ec071; +} + +.was-validated .custom-control-input:valid:focus~.custom-control-label::before, +.custom-control-input.is-valid:focus~.custom-control-label::before { + box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(76, 175, 80, 0.25); +} + +.was-validated .custom-file-input:valid~.custom-file-label, +.custom-file-input.is-valid~.custom-file-label { + border-color: #4caf50; +} + +.was-validated .custom-file-input:valid~.custom-file-label::before, +.custom-file-input.is-valid~.custom-file-label::before { + border-color: inherit; +} + +.was-validated .custom-file-input:valid~.valid-feedback, +.was-validated .custom-file-input:valid~.valid-tooltip, +.custom-file-input.is-valid~.valid-feedback, +.custom-file-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .custom-file-input:valid:focus~.custom-file-label, +.custom-file-input.is-valid:focus~.custom-file-label { + box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.25); +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #f44336; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .5rem; + margin-top: .1rem; + font-size: .875rem; + line-height: 1; + color: #fff; + background-color: rgba(244, 67, 54, 0.8); + border-radius: .2rem; +} + +.was-validated .form-control:invalid, +.form-control.is-invalid, +.was-validated .custom-select:invalid, +.custom-select.is-invalid { + border-color: #f44336; +} + +.was-validated .form-control:invalid:focus, +.form-control.is-invalid:focus, +.was-validated .custom-select:invalid:focus, +.custom-select.is-invalid:focus { + border-color: #f44336; + box-shadow: 0 0 0 0.2rem rgba(244, 67, 54, 0.25); +} + +.was-validated .form-control:invalid~.invalid-feedback, +.was-validated .form-control:invalid~.invalid-tooltip, +.form-control.is-invalid~.invalid-feedback, +.form-control.is-invalid~.invalid-tooltip, +.was-validated .custom-select:invalid~.invalid-feedback, +.was-validated .custom-select:invalid~.invalid-tooltip, +.custom-select.is-invalid~.invalid-feedback, +.custom-select.is-invalid~.invalid-tooltip { + display: block; +} + +.was-validated .form-check-input:invalid~.form-check-label, +.form-check-input.is-invalid~.form-check-label { + color: #f44336; +} + +.was-validated .form-check-input:invalid~.invalid-feedback, +.was-validated .form-check-input:invalid~.invalid-tooltip, +.form-check-input.is-invalid~.invalid-feedback, +.form-check-input.is-invalid~.invalid-tooltip { + display: block; +} + +.was-validated .custom-control-input:invalid~.custom-control-label, +.custom-control-input.is-invalid~.custom-control-label { + color: #f44336; +} + +.was-validated .custom-control-input:invalid~.custom-control-label::before, +.custom-control-input.is-invalid~.custom-control-label::before { + background-color: #fbb4af; +} + +.was-validated .custom-control-input:invalid~.invalid-feedback, +.was-validated .custom-control-input:invalid~.invalid-tooltip, +.custom-control-input.is-invalid~.invalid-feedback, +.custom-control-input.is-invalid~.invalid-tooltip { + display: block; +} + +.was-validated .custom-control-input:invalid:checked~.custom-control-label::before, +.custom-control-input.is-invalid:checked~.custom-control-label::before { + background-color: #f77066; +} + +.was-validated .custom-control-input:invalid:focus~.custom-control-label::before, +.custom-control-input.is-invalid:focus~.custom-control-label::before { + box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(244, 67, 54, 0.25); +} + +.was-validated .custom-file-input:invalid~.custom-file-label, +.custom-file-input.is-invalid~.custom-file-label { + border-color: #f44336; +} + +.was-validated .custom-file-input:invalid~.custom-file-label::before, +.custom-file-input.is-invalid~.custom-file-label::before { + border-color: inherit; +} + +.was-validated .custom-file-input:invalid~.invalid-feedback, +.was-validated .custom-file-input:invalid~.invalid-tooltip, +.custom-file-input.is-invalid~.invalid-feedback, +.custom-file-input.is-invalid~.invalid-tooltip { + display: block; +} + +.was-validated .custom-file-input:invalid:focus~.custom-file-label, +.custom-file-input.is-invalid:focus~.custom-file-label { + box-shadow: 0 0 0 0.2rem rgba(244, 67, 54, 0.25); +} + +.form-inline { + display: flex; + flex-flow: row wrap; + align-items: center; +} + +.form-inline .form-check { + width: 100%; +} + +@media (min-width: 576px) { + .form-inline label { + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 0; + } + + .form-inline .form-group { + display: flex; + flex: 0 0 auto; + flex-flow: row wrap; + align-items: center; + margin-bottom: 0; + } + + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + + .form-inline .form-control-plaintext { + display: inline-block; + } + + .form-inline .input-group { + width: auto; + } + + .form-inline .form-check { + display: flex; + align-items: center; + justify-content: center; + width: auto; + padding-left: 0; + } + + .form-inline .form-check-input { + position: relative; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; + } + + .form-inline .custom-control { + align-items: center; + justify-content: center; + } + + .form-inline .custom-control-label { + margin-bottom: 0; + } +} + +.btn { + display: inline-block; + font-weight: 400; + text-align: center; + white-space: nowrap; + vertical-align: middle; + user-select: none; + border: 1px solid transparent; + padding: 0.46875rem 1rem; + font-size: 1rem; + line-height: 1.5; + border-radius: 0.25rem; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +.btn:hover, +.btn:focus { + text-decoration: none; +} + +.btn:focus, +.btn.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(33, 150, 243, 0.25); +} + +.btn.disabled, +.btn:disabled { + opacity: 0.65; + box-shadow: none; +} + +.btn:not(:disabled):not(.disabled) { + cursor: pointer; +} + +.btn:not(:disabled):not(.disabled):active, +.btn:not(:disabled):not(.disabled).active { + background-image: none; + box-shadow: none; +} + +.btn:not(:disabled):not(.disabled):active:focus, +.btn:not(:disabled):not(.disabled).active:focus { + box-shadow: 0 0 0 0.2rem rgba(33, 150, 243, 0.25), none; +} + +a.btn.disabled, +fieldset:disabled a.btn { + pointer-events: none; +} + +.btn-primary { + color: #ffffff; + background-color: #2196f3; + border-color: #2196f3; + box-shadow: none; +} + +.btn-primary:hover { + color: #ffffff; + background-color: #0c83e2; + border-color: #0c7cd5; +} + +.btn-primary:focus, +.btn-primary.focus { + box-shadow: none, 0 0 0 0.2rem rgba(33, 150, 243, 0.5); +} + +.btn-primary.disabled, +.btn-primary:disabled { + color: #ffffff; + background-color: #2196f3; + border-color: #2196f3; +} + +.btn-primary:not(:disabled):not(.disabled):active, +.btn-primary:not(:disabled):not(.disabled).active, +.show>.btn-primary.dropdown-toggle { + color: #ffffff; + background-color: #0c7cd5; + border-color: #0b75c9; +} + +.btn-primary:not(:disabled):not(.disabled):active:focus, +.btn-primary:not(:disabled):not(.disabled).active:focus, +.show>.btn-primary.dropdown-toggle:focus { + box-shadow: none, 0 0 0 0.2rem rgba(33, 150, 243, 0.5); +} + +.btn-secondary { + color: #ffffff; + background-color: #6c757d; + border-color: #6c757d; + box-shadow: none; +} + +.btn-secondary:hover { + color: #ffffff; + background-color: #5a6268; + border-color: #545b62; +} + +.btn-secondary:focus, +.btn-secondary.focus { + box-shadow: none, 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-secondary.disabled, +.btn-secondary:disabled { + color: #ffffff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-secondary:not(:disabled):not(.disabled):active, +.btn-secondary:not(:disabled):not(.disabled).active, +.show>.btn-secondary.dropdown-toggle { + color: #ffffff; + background-color: #545b62; + border-color: #4e555b; +} + +.btn-secondary:not(:disabled):not(.disabled):active:focus, +.btn-secondary:not(:disabled):not(.disabled).active:focus, +.show>.btn-secondary.dropdown-toggle:focus { + box-shadow: none, 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-success { + color: #ffffff; + background-color: #4caf50; + border-color: #4caf50; + box-shadow: none; +} + +.btn-success:hover { + color: #ffffff; + background-color: #409444; + border-color: #3d8b40; +} + +.btn-success:focus, +.btn-success.focus { + box-shadow: none, 0 0 0 0.2rem rgba(76, 175, 80, 0.5); +} + +.btn-success.disabled, +.btn-success:disabled { + color: #ffffff; + background-color: #4caf50; + border-color: #4caf50; +} + +.btn-success:not(:disabled):not(.disabled):active, +.btn-success:not(:disabled):not(.disabled).active, +.show>.btn-success.dropdown-toggle { + color: #ffffff; + background-color: #3d8b40; + border-color: #39833c; +} + +.btn-success:not(:disabled):not(.disabled):active:focus, +.btn-success:not(:disabled):not(.disabled).active:focus, +.show>.btn-success.dropdown-toggle:focus { + box-shadow: none, 0 0 0 0.2rem rgba(76, 175, 80, 0.5); +} + +.btn-info { + color: #ffffff; + background-color: #00bcd4; + border-color: #00bcd4; + box-shadow: none; +} + +.btn-info:hover { + color: #ffffff; + background-color: #009aae; + border-color: #008fa1; +} + +.btn-info:focus, +.btn-info.focus { + box-shadow: none, 0 0 0 0.2rem rgba(0, 188, 212, 0.5); +} + +.btn-info.disabled, +.btn-info:disabled { + color: #ffffff; + background-color: #00bcd4; + border-color: #00bcd4; +} + +.btn-info:not(:disabled):not(.disabled):active, +.btn-info:not(:disabled):not(.disabled).active, +.show>.btn-info.dropdown-toggle { + color: #ffffff; + background-color: #008fa1; + border-color: #008394; +} + +.btn-info:not(:disabled):not(.disabled):active:focus, +.btn-info:not(:disabled):not(.disabled).active:focus, +.show>.btn-info.dropdown-toggle:focus { + box-shadow: none, 0 0 0 0.2rem rgba(0, 188, 212, 0.5); +} + +.btn-warning { + color: #212529; + background-color: #ffeb3b; + border-color: #ffeb3b; + box-shadow: none; +} + +.btn-warning:hover { + color: #212529; + background-color: #ffe715; + border-color: #ffe608; +} + +.btn-warning:focus, +.btn-warning.focus { + box-shadow: none, 0 0 0 0.2rem rgba(255, 235, 59, 0.5); +} + +.btn-warning.disabled, +.btn-warning:disabled { + color: #212529; + background-color: #ffeb3b; + border-color: #ffeb3b; +} + +.btn-warning:not(:disabled):not(.disabled):active, +.btn-warning:not(:disabled):not(.disabled).active, +.show>.btn-warning.dropdown-toggle { + color: #212529; + background-color: #ffe608; + border-color: #fae100; +} + +.btn-warning:not(:disabled):not(.disabled):active:focus, +.btn-warning:not(:disabled):not(.disabled).active:focus, +.show>.btn-warning.dropdown-toggle:focus { + box-shadow: none, 0 0 0 0.2rem rgba(255, 235, 59, 0.5); +} + +.btn-danger { + color: #ffffff; + background-color: #f44336; + border-color: #f44336; + box-shadow: none; +} + +.btn-danger:hover { + color: #ffffff; + background-color: #f22112; + border-color: #ea1c0d; +} + +.btn-danger:focus, +.btn-danger.focus { + box-shadow: none, 0 0 0 0.2rem rgba(244, 67, 54, 0.5); +} + +.btn-danger.disabled, +.btn-danger:disabled { + color: #ffffff; + background-color: #f44336; + border-color: #f44336; +} + +.btn-danger:not(:disabled):not(.disabled):active, +.btn-danger:not(:disabled):not(.disabled).active, +.show>.btn-danger.dropdown-toggle { + color: #ffffff; + background-color: #ea1c0d; + border-color: #de1b0c; +} + +.btn-danger:not(:disabled):not(.disabled):active:focus, +.btn-danger:not(:disabled):not(.disabled).active:focus, +.show>.btn-danger.dropdown-toggle:focus { + box-shadow: none, 0 0 0 0.2rem rgba(244, 67, 54, 0.5); +} + +.btn-light { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; + box-shadow: none; +} + +.btn-light:hover { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; +} + +.btn-light:focus, +.btn-light.focus { + box-shadow: none, 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-light.disabled, +.btn-light:disabled { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:not(:disabled):not(.disabled):active, +.btn-light:not(:disabled):not(.disabled).active, +.show>.btn-light.dropdown-toggle { + color: #212529; + background-color: #dae0e5; + border-color: #d3d9df; +} + +.btn-light:not(:disabled):not(.disabled):active:focus, +.btn-light:not(:disabled):not(.disabled).active:focus, +.show>.btn-light.dropdown-toggle:focus { + box-shadow: none, 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-dark { + color: #ffffff; + background-color: #343a40; + border-color: #343a40; + box-shadow: none; +} + +.btn-dark:hover { + color: #ffffff; + background-color: #23272b; + border-color: #1d2124; +} + +.btn-dark:focus, +.btn-dark.focus { + box-shadow: none, 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-dark.disabled, +.btn-dark:disabled { + color: #ffffff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:not(:disabled):not(.disabled):active, +.btn-dark:not(:disabled):not(.disabled).active, +.show>.btn-dark.dropdown-toggle { + color: #ffffff; + background-color: #1d2124; + border-color: #171a1d; +} + +.btn-dark:not(:disabled):not(.disabled):active:focus, +.btn-dark:not(:disabled):not(.disabled).active:focus, +.show>.btn-dark.dropdown-toggle:focus { + box-shadow: none, 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-outline-primary { + color: #2196f3; + background-color: transparent; + background-image: none; + border-color: #2196f3; +} + +.btn-outline-primary:hover { + color: #ffffff; + background-color: #2196f3; + border-color: #2196f3; +} + +.btn-outline-primary:focus, +.btn-outline-primary.focus { + box-shadow: 0 0 0 0.2rem rgba(33, 150, 243, 0.5); +} + +.btn-outline-primary.disabled, +.btn-outline-primary:disabled { + color: #2196f3; + background-color: transparent; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active, +.btn-outline-primary:not(:disabled):not(.disabled).active, +.show>.btn-outline-primary.dropdown-toggle { + color: #ffffff; + background-color: #2196f3; + border-color: #2196f3; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active:focus, +.btn-outline-primary:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(33, 150, 243, 0.5); +} + +.btn-outline-secondary { + color: #6c757d; + background-color: transparent; + background-image: none; + border-color: #6c757d; +} + +.btn-outline-secondary:hover { + color: #ffffff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:focus, +.btn-outline-secondary.focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-secondary.disabled, +.btn-outline-secondary:disabled { + color: #6c757d; + background-color: transparent; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active, +.btn-outline-secondary:not(:disabled):not(.disabled).active, +.show>.btn-outline-secondary.dropdown-toggle { + color: #ffffff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, +.btn-outline-secondary:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-success { + color: #4caf50; + background-color: transparent; + background-image: none; + border-color: #4caf50; +} + +.btn-outline-success:hover { + color: #ffffff; + background-color: #4caf50; + border-color: #4caf50; +} + +.btn-outline-success:focus, +.btn-outline-success.focus { + box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.5); +} + +.btn-outline-success.disabled, +.btn-outline-success:disabled { + color: #4caf50; + background-color: transparent; +} + +.btn-outline-success:not(:disabled):not(.disabled):active, +.btn-outline-success:not(:disabled):not(.disabled).active, +.show>.btn-outline-success.dropdown-toggle { + color: #ffffff; + background-color: #4caf50; + border-color: #4caf50; +} + +.btn-outline-success:not(:disabled):not(.disabled):active:focus, +.btn-outline-success:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.5); +} + +.btn-outline-info { + color: #00bcd4; + background-color: transparent; + background-image: none; + border-color: #00bcd4; +} + +.btn-outline-info:hover { + color: #ffffff; + background-color: #00bcd4; + border-color: #00bcd4; +} + +.btn-outline-info:focus, +.btn-outline-info.focus { + box-shadow: 0 0 0 0.2rem rgba(0, 188, 212, 0.5); +} + +.btn-outline-info.disabled, +.btn-outline-info:disabled { + color: #00bcd4; + background-color: transparent; +} + +.btn-outline-info:not(:disabled):not(.disabled):active, +.btn-outline-info:not(:disabled):not(.disabled).active, +.show>.btn-outline-info.dropdown-toggle { + color: #ffffff; + background-color: #00bcd4; + border-color: #00bcd4; +} + +.btn-outline-info:not(:disabled):not(.disabled):active:focus, +.btn-outline-info:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(0, 188, 212, 0.5); +} + +.btn-outline-warning { + color: #ffeb3b; + background-color: transparent; + background-image: none; + border-color: #ffeb3b; +} + +.btn-outline-warning:hover { + color: #212529; + background-color: #ffeb3b; + border-color: #ffeb3b; +} + +.btn-outline-warning:focus, +.btn-outline-warning.focus { + box-shadow: 0 0 0 0.2rem rgba(255, 235, 59, 0.5); +} + +.btn-outline-warning.disabled, +.btn-outline-warning:disabled { + color: #ffeb3b; + background-color: transparent; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active, +.btn-outline-warning:not(:disabled):not(.disabled).active, +.show>.btn-outline-warning.dropdown-toggle { + color: #212529; + background-color: #ffeb3b; + border-color: #ffeb3b; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active:focus, +.btn-outline-warning:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 235, 59, 0.5); +} + +.btn-outline-danger { + color: #f44336; + background-color: transparent; + background-image: none; + border-color: #f44336; +} + +.btn-outline-danger:hover { + color: #ffffff; + background-color: #f44336; + border-color: #f44336; +} + +.btn-outline-danger:focus, +.btn-outline-danger.focus { + box-shadow: 0 0 0 0.2rem rgba(244, 67, 54, 0.5); +} + +.btn-outline-danger.disabled, +.btn-outline-danger:disabled { + color: #f44336; + background-color: transparent; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active, +.btn-outline-danger:not(:disabled):not(.disabled).active, +.show>.btn-outline-danger.dropdown-toggle { + color: #ffffff; + background-color: #f44336; + border-color: #f44336; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active:focus, +.btn-outline-danger:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(244, 67, 54, 0.5); +} + +.btn-outline-light { + color: #f8f9fa; + background-color: transparent; + background-image: none; + border-color: #f8f9fa; +} + +.btn-outline-light:hover { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:focus, +.btn-outline-light.focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-light.disabled, +.btn-outline-light:disabled { + color: #f8f9fa; + background-color: transparent; +} + +.btn-outline-light:not(:disabled):not(.disabled):active, +.btn-outline-light:not(:disabled):not(.disabled).active, +.show>.btn-outline-light.dropdown-toggle { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:not(:disabled):not(.disabled):active:focus, +.btn-outline-light:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-dark { + color: #343a40; + background-color: transparent; + background-image: none; + border-color: #343a40; +} + +.btn-outline-dark:hover { + color: #ffffff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:focus, +.btn-outline-dark.focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-outline-dark.disabled, +.btn-outline-dark:disabled { + color: #343a40; + background-color: transparent; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active, +.btn-outline-dark:not(:disabled):not(.disabled).active, +.show>.btn-outline-dark.dropdown-toggle { + color: #ffffff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active:focus, +.btn-outline-dark:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-link { + font-weight: 400; + color: #9c27b0; + background-color: transparent; +} + +.btn-link:hover { + color: #0a6ebd; + text-decoration: underline; + background-color: transparent; + border-color: transparent; +} + +.btn-link:focus, +.btn-link.focus { + text-decoration: underline; + border-color: transparent; + box-shadow: none; +} + +.btn-link:disabled, +.btn-link.disabled { + color: #999999; +} + +.btn-lg, +.btn-group-lg>.btn { + padding: 1.125rem 2.25rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.btn-sm, +.btn-group-sm>.btn { + padding: 0.40625rem 1.25rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.1875rem; +} + +.btn-block { + display: block; + width: 100%; +} + +.btn-block+.btn-block { + margin-top: 0.5rem; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.fade { + opacity: 0; + transition: opacity 0.15s linear; +} + +.fade.show { + opacity: 1; +} + +.collapse { + display: none; +} + +.collapse.show { + display: block; +} + +tr.collapse.show { + display: table-row; +} + +tbody.collapse.show { + display: table-row-group; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} + +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #ffffff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.dropup .dropdown-menu { + margin-top: 0; + margin-bottom: 0.125rem; +} + +.dropup .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} + +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-menu { + margin-top: 0; + margin-left: 0.125rem; +} + +.dropright .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} + +.dropright .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-toggle::after { + vertical-align: 0; +} + +.dropleft .dropdown-menu { + margin-top: 0; + margin-right: 0.125rem; +} + +.dropleft .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} + +.dropleft .dropdown-toggle::after { + display: none; +} + +.dropleft .dropdown-toggle::before { + display: inline-block; + width: 0; + height: 0; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} + +.dropleft .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropleft .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #e9ecef; +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.625rem 1.25rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; +} + +.dropdown-item:hover, +.dropdown-item:focus { + color: #16181b; + text-decoration: none; + background-color: #f8f9fa; +} + +.dropdown-item.active, +.dropdown-item:active { + color: #ffffff; + text-decoration: none; + background-color: #2196f3; +} + +.dropdown-item.disabled, +.dropdown-item:disabled { + color: #6c757d; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: 0.5rem 1.25rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} + +.btn-group>.btn, +.btn-group-vertical>.btn { + position: relative; + flex: 0 1 auto; +} + +.btn-group>.btn:hover, +.btn-group-vertical>.btn:hover { + z-index: 1; +} + +.btn-group>.btn:focus, +.btn-group>.btn:active, +.btn-group>.btn.active, +.btn-group-vertical>.btn:focus, +.btn-group-vertical>.btn:active, +.btn-group-vertical>.btn.active { + z-index: 1; +} + +.btn-group .btn+.btn, +.btn-group .btn+.btn-group, +.btn-group .btn-group+.btn, +.btn-group .btn-group+.btn-group, +.btn-group-vertical .btn+.btn, +.btn-group-vertical .btn+.btn-group, +.btn-group-vertical .btn-group+.btn, +.btn-group-vertical .btn-group+.btn-group { + margin-left: -1px; +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.btn-toolbar .input-group { + width: auto; +} + +.btn-group>.btn:first-child { + margin-left: 0; +} + +.btn-group>.btn:not(:last-child):not(.dropdown-toggle), +.btn-group>.btn-group:not(:last-child)>.btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group>.btn:not(:first-child), +.btn-group>.btn-group:not(:first-child)>.btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.dropdown-toggle-split::after { + margin-left: 0; +} + +.btn-sm+.dropdown-toggle-split, +.btn-group-sm>.btn+.dropdown-toggle-split { + padding-right: 0.9375rem; + padding-left: 0.9375rem; +} + +.btn-lg+.dropdown-toggle-split, +.btn-group-lg>.btn+.dropdown-toggle-split { + padding-right: 1.6875rem; + padding-left: 1.6875rem; +} + +.btn-group.show .dropdown-toggle { + box-shadow: none; +} + +.btn-group.show .dropdown-toggle.btn-link { + box-shadow: none; +} + +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} + +.btn-group-vertical .btn, +.btn-group-vertical .btn-group { + width: 100%; +} + +.btn-group-vertical>.btn+.btn, +.btn-group-vertical>.btn+.btn-group, +.btn-group-vertical>.btn-group+.btn, +.btn-group-vertical>.btn-group+.btn-group { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical>.btn-group:not(:last-child)>.btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical>.btn:not(:first-child), +.btn-group-vertical>.btn-group:not(:first-child)>.btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.btn-group-toggle>.btn, +.btn-group-toggle>.btn-group>.btn { + margin-bottom: 0; +} + +.btn-group-toggle>.btn input[type="radio"], +.btn-group-toggle>.btn input[type="checkbox"], +.btn-group-toggle>.btn-group>.btn input[type="radio"], +.btn-group-toggle>.btn-group>.btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} + +.input-group>.form-control, +.input-group>.custom-select, +.input-group>.custom-file { + position: relative; + flex: 1 1 auto; + width: 1%; + margin-bottom: 0; +} + +.input-group>.form-control:focus, +.input-group>.custom-select:focus, +.input-group>.custom-file:focus { + z-index: 3; +} + +.input-group>.form-control+.form-control, +.input-group>.form-control+.custom-select, +.input-group>.form-control+.custom-file, +.input-group>.custom-select+.form-control, +.input-group>.custom-select+.custom-select, +.input-group>.custom-select+.custom-file, +.input-group>.custom-file+.form-control, +.input-group>.custom-file+.custom-select, +.input-group>.custom-file+.custom-file { + margin-left: -1px; +} + +.input-group>.form-control:not(:last-child), +.input-group>.custom-select:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group>.form-control:not(:first-child), +.input-group>.custom-select:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group>.custom-file { + display: flex; + align-items: center; +} + +.input-group>.custom-file:not(:last-child) .custom-file-label, +.input-group>.custom-file:not(:last-child) .custom-file-label::before { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group>.custom-file:not(:first-child) .custom-file-label, +.input-group>.custom-file:not(:first-child) .custom-file-label::before { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group-prepend, +.input-group-append { + display: flex; +} + +.input-group-prepend .btn, +.input-group-append .btn { + position: relative; + z-index: 2; +} + +.input-group-prepend .btn+.btn, +.input-group-prepend .btn+.input-group-text, +.input-group-prepend .input-group-text+.input-group-text, +.input-group-prepend .input-group-text+.btn, +.input-group-append .btn+.btn, +.input-group-append .btn+.input-group-text, +.input-group-append .input-group-text+.input-group-text, +.input-group-append .input-group-text+.btn { + margin-left: -1px; +} + +.input-group-prepend { + margin-right: -1px; +} + +.input-group-append { + margin-left: -1px; +} + +.input-group-text { + display: flex; + align-items: center; + padding: 0.4375rem 0; + margin-bottom: 0; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0; +} + +.input-group-text input[type="radio"], +.input-group-text input[type="checkbox"] { + margin-top: 0; +} + +.input-group>.input-group-prepend>.btn, +.input-group>.input-group-prepend>.input-group-text, +.input-group>.input-group-append:not(:last-child)>.btn, +.input-group>.input-group-append:not(:last-child)>.input-group-text, +.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle), +.input-group>.input-group-append:last-child>.input-group-text:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group>.input-group-append>.btn, +.input-group>.input-group-append>.input-group-text, +.input-group>.input-group-prepend:not(:first-child)>.btn, +.input-group>.input-group-prepend:not(:first-child)>.input-group-text, +.input-group>.input-group-prepend:first-child>.btn:not(:first-child), +.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-control { + position: relative; + display: block; + min-height: 1.5rem; + padding-left: 1.5rem; +} + +.custom-control-inline { + display: inline-flex; + margin-right: 1rem; +} + +.custom-control-input { + position: absolute; + z-index: -1; + opacity: 0; +} + +.custom-control-input:checked~.custom-control-label::before { + color: #ffffff; + background-color: #2196f3; + box-shadow: none; +} + +.custom-control-input:focus~.custom-control-label::before { + box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(33, 150, 243, 0.25); +} + +.custom-control-input:active~.custom-control-label::before { + color: #ffffff; + background-color: #cae6fc; + box-shadow: none; +} + +.custom-control-input:disabled~.custom-control-label { + color: #6c757d; +} + +.custom-control-input:disabled~.custom-control-label::before { + background-color: #e9ecef; +} + +.custom-control-label { + margin-bottom: 0; +} + +.custom-control-label::before { + position: absolute; + top: 0.25rem; + left: 0; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ""; + user-select: none; + background-color: #dee2e6; + box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1); +} + +.custom-control-label::after { + position: absolute; + top: 0.25rem; + left: 0; + display: block; + width: 1rem; + height: 1rem; + content: ""; + background-repeat: no-repeat; + background-position: center center; + background-size: 50% 50%; +} + +.custom-checkbox .custom-control-label::before { + border-radius: 0.25rem; +} + +.custom-checkbox .custom-control-input:checked~.custom-control-label::before { + background-color: #2196f3; +} + +.custom-checkbox .custom-control-input:checked~.custom-control-label::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffffff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"); +} + +.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before { + background-color: #2196f3; + box-shadow: none; +} + +.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23ffffff' d='M0 2h4'/%3E%3C/svg%3E"); +} + +.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before { + background-color: rgba(33, 150, 243, 0.5); +} + +.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before { + background-color: rgba(33, 150, 243, 0.5); +} + +.custom-radio .custom-control-label::before { + border-radius: 50%; +} + +.custom-radio .custom-control-input:checked~.custom-control-label::before { + background-color: #2196f3; +} + +.custom-radio .custom-control-input:checked~.custom-control-label::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffffff'/%3E%3C/svg%3E"); +} + +.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before { + background-color: rgba(33, 150, 243, 0.5); +} + +.custom-select { + display: inline-block; + width: 100%; + height: calc(2.4375rem + 2px); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: #ffffff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center; + background-size: 8px 10px; + border: 1px solid #d2d2d2; + border-radius: 0.25rem; + appearance: none; +} + +.custom-select:focus { + border-color: #9acffa; + outline: 0; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(154, 207, 250, 0.5); +} + +.custom-select:focus::-ms-value { + color: #495057; + background-color: rgba(0, 0, 0, 0); +} + +.custom-select[multiple], +.custom-select[size]:not([size="1"]) { + height: auto; + padding-right: 0.75rem; + background-image: none; +} + +.custom-select:disabled { + color: #6c757d; + background-color: #e9ecef; +} + +.custom-select::-ms-expand { + opacity: 0; +} + +.custom-select-sm { + height: calc(2.125rem + 2px); + padding-top: 0.375rem; + padding-bottom: 0.375rem; + font-size: 75%; +} + +.custom-select-lg { + height: calc(4.125rem + 2px); + padding-top: 0.375rem; + padding-bottom: 0.375rem; + font-size: 125%; +} + +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(2.4375rem + 2px); + margin-bottom: 0; +} + +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(2.4375rem + 2px); + margin: 0; + opacity: 0; +} + +.custom-file-input:focus~.custom-file-control { + border-color: #9acffa; + box-shadow: 0 0 0 0.2rem rgba(33, 150, 243, 0.25); +} + +.custom-file-input:focus~.custom-file-control::before { + border-color: #9acffa; +} + +.custom-file-input:lang(en)~.custom-file-label::after { + content: "Browse"; +} + +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(2.4375rem + 2px); + padding: 0.46875rem 1rem; + line-height: 1.3; + color: #495057; + background-color: transparent; + border: 0 solid #d2d2d2; + border-radius: 0; + box-shadow: none; +} + +.custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: calc(calc(2.4375rem + 2px) - 0 * 2); + padding: 0.46875rem 1rem; + line-height: 1.3; + color: #495057; + content: "Browse"; + background-color: transparent; + border-left: 0 solid #d2d2d2; + border-radius: 0 0 0 0; +} + +.nav { + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: 0.5rem 1rem; +} + +.nav-link:hover, +.nav-link:focus { + text-decoration: none; +} + +.nav-link.disabled { + color: #6c757d; +} + +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} + +.nav-tabs .nav-item { + margin-bottom: -1px; +} + +.nav-tabs .nav-link { + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.nav-tabs .nav-link:hover, +.nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; +} + +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} + +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fafafa; + border-color: #dee2e6 #dee2e6 #fafafa; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills .nav-link { + border-radius: 0.25rem; +} + +.nav-pills .nav-link.active, +.nav-pills .show>.nav-link { + color: #ffffff; + background-color: #2196f3; +} + +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} + +.tab-content>.tab-pane { + display: none; +} + +.tab-content>.active { + display: block; +} + +.navbar { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: 0.5rem 1rem; +} + +.navbar>.container, +.navbar>.container-fluid { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; +} + +.navbar-brand { + display: inline-block; + padding-top: 0.3125rem; + padding-bottom: 0.3125rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; + white-space: nowrap; +} + +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} + +.navbar-nav { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} + +.navbar-nav .dropdown-menu { + position: static; + float: none; +} + +.navbar-text { + display: inline-block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.navbar-toggler:hover, +.navbar-toggler:focus { + text-decoration: none; +} + +.navbar-toggler:not(:disabled):not(.disabled) { + cursor: pointer; +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: no-repeat center center; + background-size: 100% 100%; +} + +@media (max-width: 575.98px) { + + .navbar-expand-sm>.container, + .navbar-expand-sm>.container-fluid { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 576px) { + .navbar-expand-sm { + flex-flow: row nowrap; + justify-content: flex-start; + } + + .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + + .navbar-expand-sm .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + + .navbar-expand-sm>.container, + .navbar-expand-sm>.container-fluid { + flex-wrap: nowrap; + } + + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .navbar-expand-sm .navbar-toggler { + display: none; + } + + .navbar-expand-sm .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} + +@media (max-width: 767.98px) { + + .navbar-expand-md>.container, + .navbar-expand-md>.container-fluid { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 768px) { + .navbar-expand-md { + flex-flow: row nowrap; + justify-content: flex-start; + } + + .navbar-expand-md .navbar-nav { + flex-direction: row; + } + + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + + .navbar-expand-md .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + + .navbar-expand-md .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + + .navbar-expand-md>.container, + .navbar-expand-md>.container-fluid { + flex-wrap: nowrap; + } + + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .navbar-expand-md .navbar-toggler { + display: none; + } + + .navbar-expand-md .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} + +@media (max-width: 991.98px) { + + .navbar-expand-lg>.container, + .navbar-expand-lg>.container-fluid { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 992px) { + .navbar-expand-lg { + flex-flow: row nowrap; + justify-content: flex-start; + } + + .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + + .navbar-expand-lg .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + + .navbar-expand-lg>.container, + .navbar-expand-lg>.container-fluid { + flex-wrap: nowrap; + } + + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .navbar-expand-lg .navbar-toggler { + display: none; + } + + .navbar-expand-lg .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} + +@media (max-width: 1199.98px) { + + .navbar-expand-xl>.container, + .navbar-expand-xl>.container-fluid { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-flow: row nowrap; + justify-content: flex-start; + } + + .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + + .navbar-expand-xl .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + + .navbar-expand-xl>.container, + .navbar-expand-xl>.container-fluid { + flex-wrap: nowrap; + } + + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + + .navbar-expand-xl .navbar-toggler { + display: none; + } + + .navbar-expand-xl .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} + +.navbar-expand { + flex-flow: row nowrap; + justify-content: flex-start; +} + +.navbar-expand>.container, +.navbar-expand>.container-fluid { + padding-right: 0; + padding-left: 0; +} + +.navbar-expand .navbar-nav { + flex-direction: row; +} + +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} + +.navbar-expand .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; +} + +.navbar-expand .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; +} + +.navbar-expand>.container, +.navbar-expand>.container-fluid { + flex-wrap: nowrap; +} + +.navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} + +.navbar-expand .navbar-toggler { + display: none; +} + +.navbar-expand .dropup .dropdown-menu { + top: auto; + bottom: 100%; +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-brand:hover, +.navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.5); +} + +.navbar-light .navbar-nav .nav-link:hover, +.navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7); +} + +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} + +.navbar-light .navbar-nav .show>.nav-link, +.navbar-light .navbar-nav .active>.nav-link, +.navbar-light .navbar-nav .nav-link.show, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.5); + border-color: rgba(0, 0, 0, 0.1); +} + +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); +} + +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.5); +} + +.navbar-light .navbar-text a { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-text a:hover, +.navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-dark .navbar-brand { + color: #ffffff; +} + +.navbar-dark .navbar-brand:hover, +.navbar-dark .navbar-brand:focus { + color: #ffffff; +} + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5); +} + +.navbar-dark .navbar-nav .nav-link:hover, +.navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.75); +} + +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} + +.navbar-dark .navbar-nav .show>.nav-link, +.navbar-dark .navbar-nav .active>.nav-link, +.navbar-dark .navbar-nav .nav-link.show, +.navbar-dark .navbar-nav .nav-link.active { + color: #ffffff; +} + +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.5); + border-color: rgba(255, 255, 255, 0.1); +} + +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); +} + +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.5); +} + +.navbar-dark .navbar-text a { + color: #ffffff; +} + +.navbar-dark .navbar-text a:hover, +.navbar-dark .navbar-text a:focus { + color: #ffffff; +} + +.card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid #eeeeee; + border-radius: 0.25rem; +} + +.card>hr { + margin-right: 0; + margin-left: 0; +} + +.card>.list-group:first-child .list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.card>.list-group:last-child .list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.card-body { + flex: 1 1 auto; + padding: 1.25rem; +} + +.card-title { + margin-bottom: 0.75rem; +} + +.card-subtitle { + margin-top: -0.375rem; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link:hover { + text-decoration: none; +} + +.card-link+.card-link { + margin-left: 1.25rem; +} + +.card-header { + padding: 0.75rem 1.25rem; + margin-bottom: 0; + background-color: #fff; + border-bottom: 1px solid #eeeeee; +} + +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} + +.card-header+.list-group .list-group-item:first-child { + border-top: 0; +} + +.card-footer { + padding: 0.75rem 1.25rem; + background-color: #fff; + border-top: 1px solid #eeeeee; +} + +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} + +.card-header-tabs { + margin-right: -0.625rem; + margin-bottom: -0.75rem; + margin-left: -0.625rem; + border-bottom: 0; +} + +.card-header-pills { + margin-right: -0.625rem; + margin-left: -0.625rem; +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; +} + +.card-img { + width: 100%; + border-radius: calc(0.25rem - 1px); +} + +.card-img-top { + width: 100%; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card-img-bottom { + width: 100%; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card-deck { + display: flex; + flex-direction: column; +} + +.card-deck .card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-deck { + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px; + } + + .card-deck .card { + display: flex; + flex: 1 0 0%; + flex-direction: column; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px; + } +} + +.card-group { + display: flex; + flex-direction: column; +} + +.card-group>.card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-group { + flex-flow: row wrap; + } + + .card-group>.card { + flex: 1 0 0%; + margin-bottom: 0; + } + + .card-group>.card+.card { + margin-left: 0; + border-left: 0; + } + + .card-group>.card:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + .card-group>.card:first-child .card-img-top, + .card-group>.card:first-child .card-header { + border-top-right-radius: 0; + } + + .card-group>.card:first-child .card-img-bottom, + .card-group>.card:first-child .card-footer { + border-bottom-right-radius: 0; + } + + .card-group>.card:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + + .card-group>.card:last-child .card-img-top, + .card-group>.card:last-child .card-header { + border-top-left-radius: 0; + } + + .card-group>.card:last-child .card-img-bottom, + .card-group>.card:last-child .card-footer { + border-bottom-left-radius: 0; + } + + .card-group>.card:only-child { + border-radius: 0.25rem; + } + + .card-group>.card:only-child .card-img-top, + .card-group>.card:only-child .card-header { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; + } + + .card-group>.card:only-child .card-img-bottom, + .card-group>.card:only-child .card-footer { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + } + + .card-group>.card:not(:first-child):not(:last-child):not(:only-child) { + border-radius: 0; + } + + .card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top, + .card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom, + .card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header, + .card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer { + border-radius: 0; + } +} + +.card-columns .card { + margin-bottom: 0.75rem; +} + +@media (min-width: 576px) { + .card-columns { + column-count: 3; + column-gap: 1.25rem; + } + + .card-columns .card { + display: inline-block; + width: 100%; + } +} + +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.breadcrumb-item+.breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + padding-left: 0.5rem; + color: #6c757d; + content: "/"; +} + +.breadcrumb-item+.breadcrumb-item:hover::before { + text-decoration: underline; +} + +.breadcrumb-item+.breadcrumb-item:hover::before { + text-decoration: none; +} + +.breadcrumb-item.active { + color: #6c757d; +} + +.pagination { + display: flex; + padding-left: 0; + list-style: none; + border-radius: 0.25rem; +} + +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: 0; + line-height: 1.25; + color: #2196f3; + background-color: transparent; + border: 0 solid #dee2e6; +} + +.page-link:hover { + color: #0a6ebd; + text-decoration: none; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.page-link:focus { + z-index: 2; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(33, 150, 243, 0.25); +} + +.page-link:not(:disabled):not(.disabled) { + cursor: pointer; +} + +.page-item:first-child .page-link { + margin-left: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.page-item.active .page-link { + z-index: 1; + color: #ffffff; + background-color: #2196f3; + border-color: #2196f3; +} + +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + cursor: auto; + background-color: transparent; + border-color: #dee2e6; +} + +.pagination-lg .page-link { + padding: 0.75rem 0; + font-size: 1.25rem; + line-height: 1.5; +} + +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; +} + +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} + +.pagination-sm .page-link { + padding: 0.25rem 0; + font-size: 0.875rem; + line-height: 1.5; +} + +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; +} + +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #e9ecef; + border-radius: 0.3rem; +} + +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem; + } +} + +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0; +} + +.alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 500; +} + +.alert-dismissible { + padding-right: 4rem; +} + +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: 0.75rem 1.25rem; + color: inherit; +} + +.alert-primary { + color: #114e7e; + background-color: #d3eafd; + border-color: #c1e2fc; +} + +.alert-primary hr { + border-top-color: #a9d7fb; +} + +.alert-primary .alert-link { + color: #0b3251; +} + +.alert-secondary { + color: #383d41; + background-color: #e2e3e5; + border-color: #d6d8db; +} + +.alert-secondary hr { + border-top-color: #c8cbcf; +} + +.alert-secondary .alert-link { + color: #202326; +} + +.alert-success { + color: #285b2a; + background-color: #dbefdc; + border-color: #cde9ce; +} + +.alert-success hr { + border-top-color: #bbe1bd; +} + +.alert-success .alert-link { + color: #18381a; +} + +.alert-info { + color: #00626e; + background-color: #ccf2f6; + border-color: #b8ecf3; +} + +.alert-info hr { + border-top-color: #a2e6ef; +} + +.alert-info .alert-link { + color: #00353b; +} + +.alert-warning { + color: #857a1f; + background-color: #fffbd8; + border-color: #fff9c8; +} + +.alert-warning hr { + border-top-color: #fff6af; +} + +.alert-warning .alert-link { + color: #5c5415; +} + +.alert-danger { + color: #7f231c; + background-color: #fdd9d7; + border-color: #fccac7; +} + +.alert-danger hr { + border-top-color: #fbb3af; +} + +.alert-danger .alert-link { + color: #551713; +} + +.alert-light { + color: #818182; + background-color: #fefefe; + border-color: #fdfdfe; +} + +.alert-light hr { + border-top-color: #ececf6; +} + +.alert-light .alert-link { + color: #686868; +} + +.alert-dark { + color: #1b1e21; + background-color: #d6d8d9; + border-color: #c6c8ca; +} + +.alert-dark hr { + border-top-color: #b9bbbe; +} + +.alert-dark .alert-link { + color: #040505; +} + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + + to { + background-position: 0 0; + } +} + +.progress { + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 0.25rem; + box-shadow: inset 0 0.1rem 0.1rem rgba(0, 0, 0, 0.1); +} + +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + color: #ffffff; + text-align: center; + background-color: #2196f3; + transition: width 0.6s ease; +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; +} + +.progress-bar-animated { + animation: progress-bar-stripes 1s linear infinite; +} + +.media { + display: flex; + align-items: flex-start; +} + +.media-body { + flex: 1; +} + +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} + +.list-group-item-action:hover, +.list-group-item-action:focus { + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} + +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef; +} + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + margin-bottom: 0; + background-color: inherit; + border: 0 solid rgba(0, 0, 0, 0.125); +} + +.list-group-item:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.list-group-item:hover, +.list-group-item:focus { + z-index: 1; + text-decoration: none; +} + +.list-group-item.disabled, +.list-group-item:disabled { + color: #6c757d; + background-color: inherit; +} + +.list-group-item.active { + z-index: 2; + color: #ffffff; + background-color: #2196f3; + border-color: #2196f3; +} + +.list-group-flush .list-group-item { + border-right: 0; + border-left: 0; + border-radius: 0; +} + +.list-group-flush:first-child .list-group-item:first-child { + border-top: 0; +} + +.list-group-flush:last-child .list-group-item:last-child { + border-bottom: 0; +} + +.list-group-item-primary { + color: #114e7e; + background-color: #c1e2fc; +} + +.list-group-item-primary.list-group-item-action:hover, +.list-group-item-primary.list-group-item-action:focus { + color: #114e7e; + background-color: #a9d7fb; +} + +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #114e7e; + border-color: #114e7e; +} + +.list-group-item-secondary { + color: #383d41; + background-color: #d6d8db; +} + +.list-group-item-secondary.list-group-item-action:hover, +.list-group-item-secondary.list-group-item-action:focus { + color: #383d41; + background-color: #c8cbcf; +} + +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #383d41; + border-color: #383d41; +} + +.list-group-item-success { + color: #285b2a; + background-color: #cde9ce; +} + +.list-group-item-success.list-group-item-action:hover, +.list-group-item-success.list-group-item-action:focus { + color: #285b2a; + background-color: #bbe1bd; +} + +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #285b2a; + border-color: #285b2a; +} + +.list-group-item-info { + color: #00626e; + background-color: #b8ecf3; +} + +.list-group-item-info.list-group-item-action:hover, +.list-group-item-info.list-group-item-action:focus { + color: #00626e; + background-color: #a2e6ef; +} + +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #00626e; + border-color: #00626e; +} + +.list-group-item-warning { + color: #857a1f; + background-color: #fff9c8; +} + +.list-group-item-warning.list-group-item-action:hover, +.list-group-item-warning.list-group-item-action:focus { + color: #857a1f; + background-color: #fff6af; +} + +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #857a1f; + border-color: #857a1f; +} + +.list-group-item-danger { + color: #7f231c; + background-color: #fccac7; +} + +.list-group-item-danger.list-group-item-action:hover, +.list-group-item-danger.list-group-item-action:focus { + color: #7f231c; + background-color: #fbb3af; +} + +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #7f231c; + border-color: #7f231c; +} + +.list-group-item-light { + color: #818182; + background-color: #fdfdfe; +} + +.list-group-item-light.list-group-item-action:hover, +.list-group-item-light.list-group-item-action:focus { + color: #818182; + background-color: #ececf6; +} + +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #818182; + border-color: #818182; +} + +.list-group-item-dark { + color: #1b1e21; + background-color: #c6c8ca; +} + +.list-group-item-dark.list-group-item-action:hover, +.list-group-item-dark.list-group-item-action:focus { + color: #1b1e21; + background-color: #b9bbbe; +} + +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #1b1e21; + border-color: #1b1e21; +} + +.close { + float: right; + font-size: 1.5rem; + font-weight: 500; + line-height: 1; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: .5; +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + opacity: .75; +} + +.close:not(:disabled):not(.disabled) { + cursor: pointer; +} + +button.close { + padding: 0; + background-color: transparent; + border: 0; + -webkit-appearance: none; +} + +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 500; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; +} + +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.badge-pill { + padding-right: 0.6em; + padding-left: 0.6em; + border-radius: 10rem; +} + +.badge-primary { + color: #ffffff; + background-color: #2196f3; +} + +.badge-primary[href]:hover, +.badge-primary[href]:focus { + color: #ffffff; + text-decoration: none; + background-color: #0c7cd5; +} + +.badge-secondary { + color: #ffffff; + background-color: #6c757d; +} + +.badge-secondary[href]:hover, +.badge-secondary[href]:focus { + color: #ffffff; + text-decoration: none; + background-color: #545b62; +} + +.badge-success { + color: #ffffff; + background-color: #4caf50; +} + +.badge-success[href]:hover, +.badge-success[href]:focus { + color: #ffffff; + text-decoration: none; + background-color: #3d8b40; +} + +.badge-info { + color: #ffffff; + background-color: #00bcd4; +} + +.badge-info[href]:hover, +.badge-info[href]:focus { + color: #ffffff; + text-decoration: none; + background-color: #008fa1; +} + +.badge-warning { + color: #212529; + background-color: #ffeb3b; +} + +.badge-warning[href]:hover, +.badge-warning[href]:focus { + color: #212529; + text-decoration: none; + background-color: #ffe608; +} + +.badge-danger { + color: #ffffff; + background-color: #f44336; +} + +.badge-danger[href]:hover, +.badge-danger[href]:focus { + color: #ffffff; + text-decoration: none; + background-color: #ea1c0d; +} + +.badge-light { + color: #212529; + background-color: #f8f9fa; +} + +.badge-light[href]:hover, +.badge-light[href]:focus { + color: #212529; + text-decoration: none; + background-color: #dae0e5; +} + +.badge-dark { + color: #ffffff; + background-color: #343a40; +} + +.badge-dark[href]:hover, +.badge-dark[href]:focus { + color: #ffffff; + text-decoration: none; + background-color: #1d2124; +} + +.modal-open { + overflow: hidden; +} + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + outline: 0; +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} + +.modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -25%); +} + +.modal.show .modal-dialog { + transform: translate(0, 0); +} + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - (0.5rem * 2)); +} + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #ffffff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.5); + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop.show { + opacity: 0.26; +} + +.modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + padding: 1rem; + border-bottom: 1px solid #e9ecef; + border-top-left-radius: 0.3rem; + border-top-right-radius: 0.3rem; +} + +.modal-header .close { + padding: 1rem; + margin: -1rem -1rem -1rem auto; +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 1rem; +} + +.modal-footer { + display: flex; + align-items: center; + justify-content: flex-end; + padding: 1rem; + border-top: 1px solid #e9ecef; +} + +.modal-footer> :not(:first-child) { + margin-left: .25rem; +} + +.modal-footer> :not(:last-child) { + margin-right: .25rem; +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + + .modal-dialog-centered { + min-height: calc(100% - (1.75rem * 2)); + } + + .modal-content { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.5); + } + + .modal-sm { + max-width: 300px; + } +} + +@media (min-width: 992px) { + .modal-lg { + max-width: 800px; + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; +} + +.tooltip.show { + opacity: 0.9; +} + +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} + +.tooltip .arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, +.bs-tooltip-auto[x-placement^="top"] { + padding: 0.4rem 0; +} + +.bs-tooltip-top .arrow, +.bs-tooltip-auto[x-placement^="top"] .arrow { + bottom: 0; +} + +.bs-tooltip-top .arrow::before, +.bs-tooltip-auto[x-placement^="top"] .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: rgba(97, 97, 97, 0.9); +} + +.bs-tooltip-right, +.bs-tooltip-auto[x-placement^="right"] { + padding: 0 0.4rem; +} + +.bs-tooltip-right .arrow, +.bs-tooltip-auto[x-placement^="right"] .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-right .arrow::before, +.bs-tooltip-auto[x-placement^="right"] .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: rgba(97, 97, 97, 0.9); +} + +.bs-tooltip-bottom, +.bs-tooltip-auto[x-placement^="bottom"] { + padding: 0.4rem 0; +} + +.bs-tooltip-bottom .arrow, +.bs-tooltip-auto[x-placement^="bottom"] .arrow { + top: 0; +} + +.bs-tooltip-bottom .arrow::before, +.bs-tooltip-auto[x-placement^="bottom"] .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: rgba(97, 97, 97, 0.9); +} + +.bs-tooltip-left, +.bs-tooltip-auto[x-placement^="left"] { + padding: 0 0.4rem; +} + +.bs-tooltip-left .arrow, +.bs-tooltip-auto[x-placement^="left"] .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-left .arrow::before, +.bs-tooltip-auto[x-placement^="left"] .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: rgba(97, 97, 97, 0.9); +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #ffffff; + text-align: center; + background-color: rgba(97, 97, 97, 0.9); + border-radius: 0.25rem; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #ffffff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2); +} + +.popover .arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 0.3rem; +} + +.popover .arrow::before, +.popover .arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-popover-top, +.bs-popover-auto[x-placement^="top"] { + margin-bottom: 0.5rem; +} + +.bs-popover-top .arrow, +.bs-popover-auto[x-placement^="top"] .arrow { + bottom: calc((0.5rem + 1px) * -1); +} + +.bs-popover-top .arrow::before, +.bs-popover-auto[x-placement^="top"] .arrow::before, +.bs-popover-top .arrow::after, +.bs-popover-auto[x-placement^="top"] .arrow::after { + border-width: 0.5rem 0.5rem 0; +} + +.bs-popover-top .arrow::before, +.bs-popover-auto[x-placement^="top"] .arrow::before { + bottom: 0; + border-top-color: rgba(0, 0, 0, 0.25); +} + + +.bs-popover-top .arrow::after, +.bs-popover-auto[x-placement^="top"] .arrow::after { + bottom: 1px; + border-top-color: #ffffff; +} + +.bs-popover-right, +.bs-popover-auto[x-placement^="right"] { + margin-left: 0.5rem; +} + +.bs-popover-right .arrow, +.bs-popover-auto[x-placement^="right"] .arrow { + left: calc((0.5rem + 1px) * -1); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-right .arrow::before, +.bs-popover-auto[x-placement^="right"] .arrow::before, +.bs-popover-right .arrow::after, +.bs-popover-auto[x-placement^="right"] .arrow::after { + border-width: 0.5rem 0.5rem 0.5rem 0; +} + +.bs-popover-right .arrow::before, +.bs-popover-auto[x-placement^="right"] .arrow::before { + left: 0; + border-right-color: rgba(0, 0, 0, 0.25); +} + + +.bs-popover-right .arrow::after, +.bs-popover-auto[x-placement^="right"] .arrow::after { + left: 1px; + border-right-color: #ffffff; +} + +.bs-popover-bottom, +.bs-popover-auto[x-placement^="bottom"] { + margin-top: 0.5rem; +} + +.bs-popover-bottom .arrow, +.bs-popover-auto[x-placement^="bottom"] .arrow { + top: calc((0.5rem + 1px) * -1); +} + +.bs-popover-bottom .arrow::before, +.bs-popover-auto[x-placement^="bottom"] .arrow::before, +.bs-popover-bottom .arrow::after, +.bs-popover-auto[x-placement^="bottom"] .arrow::after { + border-width: 0 0.5rem 0.5rem 0.5rem; +} + +.bs-popover-bottom .arrow::before, +.bs-popover-auto[x-placement^="bottom"] .arrow::before { + top: 0; + border-bottom-color: rgba(0, 0, 0, 0.25); +} + + +.bs-popover-bottom .arrow::after, +.bs-popover-auto[x-placement^="bottom"] .arrow::after { + top: 1px; + border-bottom-color: #ffffff; +} + +.bs-popover-bottom .popover-header::before, +.bs-popover-auto[x-placement^="bottom"] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #f7f7f7; +} + +.bs-popover-left, +.bs-popover-auto[x-placement^="left"] { + margin-right: 0.5rem; +} + +.bs-popover-left .arrow, +.bs-popover-auto[x-placement^="left"] .arrow { + right: calc((0.5rem + 1px) * -1); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-left .arrow::before, +.bs-popover-auto[x-placement^="left"] .arrow::before, +.bs-popover-left .arrow::after, +.bs-popover-auto[x-placement^="left"] .arrow::after { + border-width: 0.5rem 0 0.5rem 0.5rem; +} + +.bs-popover-left .arrow::before, +.bs-popover-auto[x-placement^="left"] .arrow::before { + right: 0; + border-left-color: rgba(0, 0, 0, 0.25); +} + + +.bs-popover-left .arrow::after, +.bs-popover-auto[x-placement^="left"] .arrow::after { + right: 1px; + border-left-color: #ffffff; +} + +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + color: inherit; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.popover-header:empty { + display: none; +} + +.popover-body { + padding: 0.5rem 0.75rem; + color: #212529; +} + +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-item { + position: relative; + display: none; + align-items: center; + width: 100%; + transition: transform 0.6s ease; + backface-visibility: hidden; + perspective: 1000px; +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next, +.carousel-item-prev { + position: absolute; + top: 0; +} + +.carousel-item-next.carousel-item-left, +.carousel-item-prev.carousel-item-right { + transform: translateX(0); +} + +@supports (transform-style: preserve-3d) { + + .carousel-item-next.carousel-item-left, + .carousel-item-prev.carousel-item-right { + transform: translate3d(0, 0, 0); + } +} + +.carousel-item-next, +.active.carousel-item-right { + transform: translateX(100%); +} + +@supports (transform-style: preserve-3d) { + + .carousel-item-next, + .active.carousel-item-right { + transform: translate3d(100%, 0, 0); + } +} + +.carousel-item-prev, +.active.carousel-item-left { + transform: translateX(-100%); +} + +@supports (transform-style: preserve-3d) { + + .carousel-item-prev, + .active.carousel-item-left { + transform: translate3d(-100%, 0, 0); + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + color: #ffffff; + text-align: center; + opacity: 0.5; +} + +.carousel-control-prev:hover, +.carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #ffffff; + text-decoration: none; + outline: 0; + opacity: .9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: transparent no-repeat center center; + background-size: 100% 100%; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 10px; + left: 0; + z-index: 15; + display: flex; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} + +.carousel-indicators li { + position: relative; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + background-color: rgba(255, 255, 255, 0.5); +} + +.carousel-indicators li::before { + position: absolute; + top: -10px; + left: 0; + display: inline-block; + width: 100%; + height: 10px; + content: ""; +} + +.carousel-indicators li::after { + position: absolute; + bottom: -10px; + left: 0; + display: inline-block; + width: 100%; + height: 10px; + content: ""; +} + +.carousel-indicators .active { + background-color: #ffffff; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #ffffff; + text-align: center; +} + +.align-baseline { + vertical-align: baseline !important; +} + +.align-top { + vertical-align: top !important; +} + +.align-middle { + vertical-align: middle !important; +} + +.align-bottom { + vertical-align: bottom !important; +} + +.align-text-bottom { + vertical-align: text-bottom !important; +} + +.align-text-top { + vertical-align: text-top !important; +} + +.bg-primary { + background-color: #2196f3 !important; +} + +a.bg-primary:hover, +a.bg-primary:focus, +button.bg-primary:hover, +button.bg-primary:focus { + background-color: #0c7cd5 !important; +} + +.bg-secondary { + background-color: #6c757d !important; +} + +a.bg-secondary:hover, +a.bg-secondary:focus, +button.bg-secondary:hover, +button.bg-secondary:focus { + background-color: #545b62 !important; +} + +.bg-success { + background-color: #4caf50 !important; +} + +a.bg-success:hover, +a.bg-success:focus, +button.bg-success:hover, +button.bg-success:focus { + background-color: #3d8b40 !important; +} + +.bg-info { + background-color: #00bcd4 !important; +} + +a.bg-info:hover, +a.bg-info:focus, +button.bg-info:hover, +button.bg-info:focus { + background-color: #008fa1 !important; +} + +.bg-warning { + background-color: #ffeb3b !important; +} + +a.bg-warning:hover, +a.bg-warning:focus, +button.bg-warning:hover, +button.bg-warning:focus { + background-color: #ffe608 !important; +} + +.bg-danger { + background-color: #f44336 !important; +} + +a.bg-danger:hover, +a.bg-danger:focus, +button.bg-danger:hover, +button.bg-danger:focus { + background-color: #ea1c0d !important; +} + +.bg-light { + background-color: #f8f9fa !important; +} + +a.bg-light:hover, +a.bg-light:focus, +button.bg-light:hover, +button.bg-light:focus { + background-color: #dae0e5 !important; +} + +.bg-dark { + background-color: #343a40 !important; +} + +a.bg-dark:hover, +a.bg-dark:focus, +button.bg-dark:hover, +button.bg-dark:focus { + background-color: #1d2124 !important; +} + +.bg-white { + background-color: #ffffff !important; +} + +.bg-transparent { + background-color: transparent !important; +} + +.border { + border: 1px solid #dee2e6 !important; +} + +.border-top { + border-top: 1px solid #dee2e6 !important; +} + +.border-right { + border-right: 1px solid #dee2e6 !important; +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important; +} + +.border-left { + border-left: 1px solid #dee2e6 !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-right-0 { + border-right: 0 !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-left-0 { + border-left: 0 !important; +} + +.border-primary { + border-color: #2196f3 !important; +} + +.border-secondary { + border-color: #6c757d !important; +} + +.border-success { + border-color: #4caf50 !important; +} + +.border-info { + border-color: #00bcd4 !important; +} + +.border-warning { + border-color: #ffeb3b !important; +} + +.border-danger { + border-color: #f44336 !important; +} + +.border-light { + border-color: #f8f9fa !important; +} + +.border-dark { + border-color: #343a40 !important; +} + +.border-white { + border-color: #ffffff !important; +} + +.rounded { + border-radius: 0.25rem !important; +} + +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} + +.rounded-right { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; +} + +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-left { + border-top-left-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.d-none { + display: none !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline-flex { + display: inline-flex !important; +} + +@media (min-width: 576px) { + .d-sm-none { + display: none !important; + } + + .d-sm-inline { + display: inline !important; + } + + .d-sm-inline-block { + display: inline-block !important; + } + + .d-sm-block { + display: block !important; + } + + .d-sm-table { + display: table !important; + } + + .d-sm-table-row { + display: table-row !important; + } + + .d-sm-table-cell { + display: table-cell !important; + } + + .d-sm-flex { + display: flex !important; + } + + .d-sm-inline-flex { + display: inline-flex !important; + } +} + +@media (min-width: 768px) { + .d-md-none { + display: none !important; + } + + .d-md-inline { + display: inline !important; + } + + .d-md-inline-block { + display: inline-block !important; + } + + .d-md-block { + display: block !important; + } + + .d-md-table { + display: table !important; + } + + .d-md-table-row { + display: table-row !important; + } + + .d-md-table-cell { + display: table-cell !important; + } + + .d-md-flex { + display: flex !important; + } + + .d-md-inline-flex { + display: inline-flex !important; + } +} + +@media (min-width: 992px) { + .d-lg-none { + display: none !important; + } + + .d-lg-inline { + display: inline !important; + } + + .d-lg-inline-block { + display: inline-block !important; + } + + .d-lg-block { + display: block !important; + } + + .d-lg-table { + display: table !important; + } + + .d-lg-table-row { + display: table-row !important; + } + + .d-lg-table-cell { + display: table-cell !important; + } + + .d-lg-flex { + display: flex !important; + } + + .d-lg-inline-flex { + display: inline-flex !important; + } +} + +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } + + .d-xl-inline { + display: inline !important; + } + + .d-xl-inline-block { + display: inline-block !important; + } + + .d-xl-block { + display: block !important; + } + + .d-xl-table { + display: table !important; + } + + .d-xl-table-row { + display: table-row !important; + } + + .d-xl-table-cell { + display: table-cell !important; + } + + .d-xl-flex { + display: flex !important; + } + + .d-xl-inline-flex { + display: inline-flex !important; + } +} + +@media print { + .d-print-none { + display: none !important; + } + + .d-print-inline { + display: inline !important; + } + + .d-print-inline-block { + display: inline-block !important; + } + + .d-print-block { + display: block !important; + } + + .d-print-table { + display: table !important; + } + + .d-print-table-row { + display: table-row !important; + } + + .d-print-table-cell { + display: table-cell !important; + } + + .d-print-flex { + display: flex !important; + } + + .d-print-inline-flex { + display: inline-flex !important; + } +} + +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; +} + +.embed-responsive::before { + display: block; + content: ""; +} + +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} + +.embed-responsive-21by9::before { + padding-top: 42.857143%; +} + +.embed-responsive-16by9::before { + padding-top: 56.25%; +} + +.embed-responsive-4by3::before { + padding-top: 75%; +} + +.embed-responsive-1by1::before { + padding-top: 100%; +} + +.flex-row { + flex-direction: row !important; +} + +.flex-column { + flex-direction: column !important; +} + +.flex-row-reverse { + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + flex-direction: column-reverse !important; +} + +.flex-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.justify-content-start { + justify-content: flex-start !important; +} + +.justify-content-end { + justify-content: flex-end !important; +} + +.justify-content-center { + justify-content: center !important; +} + +.justify-content-between { + justify-content: space-between !important; +} + +.justify-content-around { + justify-content: space-around !important; +} + +.align-items-start { + align-items: flex-start !important; +} + +.align-items-end { + align-items: flex-end !important; +} + +.align-items-center { + align-items: center !important; +} + +.align-items-baseline { + align-items: baseline !important; +} + +.align-items-stretch { + align-items: stretch !important; +} + +.align-content-start { + align-content: flex-start !important; +} + +.align-content-end { + align-content: flex-end !important; +} + +.align-content-center { + align-content: center !important; +} + +.align-content-between { + align-content: space-between !important; +} + +.align-content-around { + align-content: space-around !important; +} + +.align-content-stretch { + align-content: stretch !important; +} + +.align-self-auto { + align-self: auto !important; +} + +.align-self-start { + align-self: flex-start !important; +} + +.align-self-end { + align-self: flex-end !important; +} + +.align-self-center { + align-self: center !important; +} + +.align-self-baseline { + align-self: baseline !important; +} + +.align-self-stretch { + align-self: stretch !important; +} + +@media (min-width: 576px) { + .flex-sm-row { + flex-direction: row !important; + } + + .flex-sm-column { + flex-direction: column !important; + } + + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-sm-wrap { + flex-wrap: wrap !important; + } + + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-sm-start { + justify-content: flex-start !important; + } + + .justify-content-sm-end { + justify-content: flex-end !important; + } + + .justify-content-sm-center { + justify-content: center !important; + } + + .justify-content-sm-between { + justify-content: space-between !important; + } + + .justify-content-sm-around { + justify-content: space-around !important; + } + + .align-items-sm-start { + align-items: flex-start !important; + } + + .align-items-sm-end { + align-items: flex-end !important; + } + + .align-items-sm-center { + align-items: center !important; + } + + .align-items-sm-baseline { + align-items: baseline !important; + } + + .align-items-sm-stretch { + align-items: stretch !important; + } + + .align-content-sm-start { + align-content: flex-start !important; + } + + .align-content-sm-end { + align-content: flex-end !important; + } + + .align-content-sm-center { + align-content: center !important; + } + + .align-content-sm-between { + align-content: space-between !important; + } + + .align-content-sm-around { + align-content: space-around !important; + } + + .align-content-sm-stretch { + align-content: stretch !important; + } + + .align-self-sm-auto { + align-self: auto !important; + } + + .align-self-sm-start { + align-self: flex-start !important; + } + + .align-self-sm-end { + align-self: flex-end !important; + } + + .align-self-sm-center { + align-self: center !important; + } + + .align-self-sm-baseline { + align-self: baseline !important; + } + + .align-self-sm-stretch { + align-self: stretch !important; + } +} + +@media (min-width: 768px) { + .flex-md-row { + flex-direction: row !important; + } + + .flex-md-column { + flex-direction: column !important; + } + + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-md-wrap { + flex-wrap: wrap !important; + } + + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-md-start { + justify-content: flex-start !important; + } + + .justify-content-md-end { + justify-content: flex-end !important; + } + + .justify-content-md-center { + justify-content: center !important; + } + + .justify-content-md-between { + justify-content: space-between !important; + } + + .justify-content-md-around { + justify-content: space-around !important; + } + + .align-items-md-start { + align-items: flex-start !important; + } + + .align-items-md-end { + align-items: flex-end !important; + } + + .align-items-md-center { + align-items: center !important; + } + + .align-items-md-baseline { + align-items: baseline !important; + } + + .align-items-md-stretch { + align-items: stretch !important; + } + + .align-content-md-start { + align-content: flex-start !important; + } + + .align-content-md-end { + align-content: flex-end !important; + } + + .align-content-md-center { + align-content: center !important; + } + + .align-content-md-between { + align-content: space-between !important; + } + + .align-content-md-around { + align-content: space-around !important; + } + + .align-content-md-stretch { + align-content: stretch !important; + } + + .align-self-md-auto { + align-self: auto !important; + } + + .align-self-md-start { + align-self: flex-start !important; + } + + .align-self-md-end { + align-self: flex-end !important; + } + + .align-self-md-center { + align-self: center !important; + } + + .align-self-md-baseline { + align-self: baseline !important; + } + + .align-self-md-stretch { + align-self: stretch !important; + } +} + +@media (min-width: 992px) { + .flex-lg-row { + flex-direction: row !important; + } + + .flex-lg-column { + flex-direction: column !important; + } + + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-lg-wrap { + flex-wrap: wrap !important; + } + + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-lg-start { + justify-content: flex-start !important; + } + + .justify-content-lg-end { + justify-content: flex-end !important; + } + + .justify-content-lg-center { + justify-content: center !important; + } + + .justify-content-lg-between { + justify-content: space-between !important; + } + + .justify-content-lg-around { + justify-content: space-around !important; + } + + .align-items-lg-start { + align-items: flex-start !important; + } + + .align-items-lg-end { + align-items: flex-end !important; + } + + .align-items-lg-center { + align-items: center !important; + } + + .align-items-lg-baseline { + align-items: baseline !important; + } + + .align-items-lg-stretch { + align-items: stretch !important; + } + + .align-content-lg-start { + align-content: flex-start !important; + } + + .align-content-lg-end { + align-content: flex-end !important; + } + + .align-content-lg-center { + align-content: center !important; + } + + .align-content-lg-between { + align-content: space-between !important; + } + + .align-content-lg-around { + align-content: space-around !important; + } + + .align-content-lg-stretch { + align-content: stretch !important; + } + + .align-self-lg-auto { + align-self: auto !important; + } + + .align-self-lg-start { + align-self: flex-start !important; + } + + .align-self-lg-end { + align-self: flex-end !important; + } + + .align-self-lg-center { + align-self: center !important; + } + + .align-self-lg-baseline { + align-self: baseline !important; + } + + .align-self-lg-stretch { + align-self: stretch !important; + } +} + +@media (min-width: 1200px) { + .flex-xl-row { + flex-direction: row !important; + } + + .flex-xl-column { + flex-direction: column !important; + } + + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-xl-wrap { + flex-wrap: wrap !important; + } + + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-xl-start { + justify-content: flex-start !important; + } + + .justify-content-xl-end { + justify-content: flex-end !important; + } + + .justify-content-xl-center { + justify-content: center !important; + } + + .justify-content-xl-between { + justify-content: space-between !important; + } + + .justify-content-xl-around { + justify-content: space-around !important; + } + + .align-items-xl-start { + align-items: flex-start !important; + } + + .align-items-xl-end { + align-items: flex-end !important; + } + + .align-items-xl-center { + align-items: center !important; + } + + .align-items-xl-baseline { + align-items: baseline !important; + } + + .align-items-xl-stretch { + align-items: stretch !important; + } + + .align-content-xl-start { + align-content: flex-start !important; + } + + .align-content-xl-end { + align-content: flex-end !important; + } + + .align-content-xl-center { + align-content: center !important; + } + + .align-content-xl-between { + align-content: space-between !important; + } + + .align-content-xl-around { + align-content: space-around !important; + } + + .align-content-xl-stretch { + align-content: stretch !important; + } + + .align-self-xl-auto { + align-self: auto !important; + } + + .align-self-xl-start { + align-self: flex-start !important; + } + + .align-self-xl-end { + align-self: flex-end !important; + } + + .align-self-xl-center { + align-self: center !important; + } + + .align-self-xl-baseline { + align-self: baseline !important; + } + + .align-self-xl-stretch { + align-self: stretch !important; + } +} + +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.float-none { + float: none !important; +} + +@media (min-width: 576px) { + .float-sm-left { + float: left !important; + } + + .float-sm-right { + float: right !important; + } + + .float-sm-none { + float: none !important; + } +} + +@media (min-width: 768px) { + .float-md-left { + float: left !important; + } + + .float-md-right { + float: right !important; + } + + .float-md-none { + float: none !important; + } +} + +@media (min-width: 992px) { + .float-lg-left { + float: left !important; + } + + .float-lg-right { + float: right !important; + } + + .float-lg-none { + float: none !important; + } +} + +@media (min-width: 1200px) { + .float-xl-left { + float: left !important; + } + + .float-xl-right { + float: right !important; + } + + .float-xl-none { + float: none !important; + } +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: sticky !important; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +@supports (position: sticky) { + .sticky-top { + position: sticky; + top: 0; + z-index: 1020; + } +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; +} + +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; + clip-path: none; +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.h-25 { + height: 25% !important; +} + +.h-50 { + height: 50% !important; +} + +.h-75 { + height: 75% !important; +} + +.h-100 { + height: 100% !important; +} + +.mw-100 { + max-width: 100% !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0, +.my-0 { + margin-top: 0 !important; +} + +.mr-0, +.mx-0 { + margin-right: 0 !important; +} + +.mb-0, +.my-0 { + margin-bottom: 0 !important; +} + +.ml-0, +.mx-0 { + margin-left: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1, +.my-1 { + margin-top: 0.25rem !important; +} + +.mr-1, +.mx-1 { + margin-right: 0.25rem !important; +} + +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1, +.mx-1 { + margin-left: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2, +.my-2 { + margin-top: 0.5rem !important; +} + +.mr-2, +.mx-2 { + margin-right: 0.5rem !important; +} + +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2, +.mx-2 { + margin-left: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.mt-3, +.my-3 { + margin-top: 1rem !important; +} + +.mr-3, +.mx-3 { + margin-right: 1rem !important; +} + +.mb-3, +.my-3 { + margin-bottom: 1rem !important; +} + +.ml-3, +.mx-3 { + margin-left: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.mt-4, +.my-4 { + margin-top: 1.5rem !important; +} + +.mr-4, +.mx-4 { + margin-right: 1.5rem !important; +} + +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important; +} + +.ml-4, +.mx-4 { + margin-left: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.mt-5, +.my-5 { + margin-top: 3rem !important; +} + +.mr-5, +.mx-5 { + margin-right: 3rem !important; +} + +.mb-5, +.my-5 { + margin-bottom: 3rem !important; +} + +.ml-5, +.mx-5 { + margin-left: 3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.pt-0, +.py-0 { + padding-top: 0 !important; +} + +.pr-0, +.px-0 { + padding-right: 0 !important; +} + +.pb-0, +.py-0 { + padding-bottom: 0 !important; +} + +.pl-0, +.px-0 { + padding-left: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1, +.py-1 { + padding-top: 0.25rem !important; +} + +.pr-1, +.px-1 { + padding-right: 0.25rem !important; +} + +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1, +.px-1 { + padding-left: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2, +.py-2 { + padding-top: 0.5rem !important; +} + +.pr-2, +.px-2 { + padding-right: 0.5rem !important; +} + +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2, +.px-2 { + padding-left: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.pt-3, +.py-3 { + padding-top: 1rem !important; +} + +.pr-3, +.px-3 { + padding-right: 1rem !important; +} + +.pb-3, +.py-3 { + padding-bottom: 1rem !important; +} + +.pl-3, +.px-3 { + padding-left: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.pt-4, +.py-4 { + padding-top: 1.5rem !important; +} + +.pr-4, +.px-4 { + padding-right: 1.5rem !important; +} + +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important; +} + +.pl-4, +.px-4 { + padding-left: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.pt-5, +.py-5 { + padding-top: 3rem !important; +} + +.pr-5, +.px-5 { + padding-right: 3rem !important; +} + +.pb-5, +.py-5 { + padding-bottom: 3rem !important; +} + +.pl-5, +.px-5 { + padding-left: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mt-auto, +.my-auto { + margin-top: auto !important; +} + +.mr-auto, +.mx-auto { + margin-right: auto !important; +} + +.mb-auto, +.my-auto { + margin-bottom: auto !important; +} + +.ml-auto, +.mx-auto { + margin-left: auto !important; +} + +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important; + } + + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important; + } + + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important; + } + + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important; + } + + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important; + } + + .m-sm-1 { + margin: 0.25rem !important; + } + + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important; + } + + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important; + } + + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important; + } + + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important; + } + + .m-sm-2 { + margin: 0.5rem !important; + } + + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important; + } + + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important; + } + + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important; + } + + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important; + } + + .m-sm-3 { + margin: 1rem !important; + } + + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important; + } + + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important; + } + + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important; + } + + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important; + } + + .m-sm-4 { + margin: 1.5rem !important; + } + + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important; + } + + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important; + } + + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important; + } + + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important; + } + + .m-sm-5 { + margin: 3rem !important; + } + + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important; + } + + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important; + } + + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important; + } + + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important; + } + + .p-sm-0 { + padding: 0 !important; + } + + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important; + } + + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important; + } + + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important; + } + + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important; + } + + .p-sm-1 { + padding: 0.25rem !important; + } + + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important; + } + + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important; + } + + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important; + } + + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important; + } + + .p-sm-2 { + padding: 0.5rem !important; + } + + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important; + } + + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important; + } + + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important; + } + + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important; + } + + .p-sm-3 { + padding: 1rem !important; + } + + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important; + } + + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important; + } + + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important; + } + + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important; + } + + .p-sm-4 { + padding: 1.5rem !important; + } + + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important; + } + + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important; + } + + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important; + } + + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important; + } + + .p-sm-5 { + padding: 3rem !important; + } + + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important; + } + + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important; + } + + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important; + } + + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important; + } + + .m-sm-auto { + margin: auto !important; + } + + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important; + } + + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important; + } + + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important; + } + + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important; + } +} + +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important; + } + + .mt-md-0, + .my-md-0 { + margin-top: 0 !important; + } + + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important; + } + + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important; + } + + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important; + } + + .m-md-1 { + margin: 0.25rem !important; + } + + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important; + } + + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important; + } + + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important; + } + + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important; + } + + .m-md-2 { + margin: 0.5rem !important; + } + + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important; + } + + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important; + } + + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important; + } + + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important; + } + + .m-md-3 { + margin: 1rem !important; + } + + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important; + } + + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important; + } + + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important; + } + + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important; + } + + .m-md-4 { + margin: 1.5rem !important; + } + + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important; + } + + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important; + } + + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important; + } + + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important; + } + + .m-md-5 { + margin: 3rem !important; + } + + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important; + } + + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important; + } + + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important; + } + + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important; + } + + .p-md-0 { + padding: 0 !important; + } + + .pt-md-0, + .py-md-0 { + padding-top: 0 !important; + } + + .pr-md-0, + .px-md-0 { + padding-right: 0 !important; + } + + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important; + } + + .pl-md-0, + .px-md-0 { + padding-left: 0 !important; + } + + .p-md-1 { + padding: 0.25rem !important; + } + + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important; + } + + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important; + } + + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important; + } + + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important; + } + + .p-md-2 { + padding: 0.5rem !important; + } + + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important; + } + + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important; + } + + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important; + } + + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important; + } + + .p-md-3 { + padding: 1rem !important; + } + + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important; + } + + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important; + } + + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important; + } + + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important; + } + + .p-md-4 { + padding: 1.5rem !important; + } + + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important; + } + + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important; + } + + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important; + } + + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important; + } + + .p-md-5 { + padding: 3rem !important; + } + + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important; + } + + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important; + } + + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important; + } + + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important; + } + + .m-md-auto { + margin: auto !important; + } + + .mt-md-auto, + .my-md-auto { + margin-top: auto !important; + } + + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important; + } + + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important; + } + + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important; + } +} + +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important; + } + + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important; + } + + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important; + } + + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important; + } + + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important; + } + + .m-lg-1 { + margin: 0.25rem !important; + } + + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important; + } + + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important; + } + + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important; + } + + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important; + } + + .m-lg-2 { + margin: 0.5rem !important; + } + + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important; + } + + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important; + } + + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important; + } + + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important; + } + + .m-lg-3 { + margin: 1rem !important; + } + + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important; + } + + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important; + } + + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important; + } + + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important; + } + + .m-lg-4 { + margin: 1.5rem !important; + } + + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important; + } + + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important; + } + + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important; + } + + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important; + } + + .m-lg-5 { + margin: 3rem !important; + } + + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important; + } + + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important; + } + + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important; + } + + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important; + } + + .p-lg-0 { + padding: 0 !important; + } + + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important; + } + + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important; + } + + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important; + } + + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important; + } + + .p-lg-1 { + padding: 0.25rem !important; + } + + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important; + } + + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important; + } + + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important; + } + + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important; + } + + .p-lg-2 { + padding: 0.5rem !important; + } + + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important; + } + + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important; + } + + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important; + } + + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important; + } + + .p-lg-3 { + padding: 1rem !important; + } + + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important; + } + + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important; + } + + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important; + } + + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important; + } + + .p-lg-4 { + padding: 1.5rem !important; + } + + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important; + } + + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important; + } + + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important; + } + + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important; + } + + .p-lg-5 { + padding: 3rem !important; + } + + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important; + } + + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important; + } + + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important; + } + + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important; + } + + .m-lg-auto { + margin: auto !important; + } + + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important; + } + + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important; + } + + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important; + } + + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important; + } +} + +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important; + } + + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important; + } + + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important; + } + + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important; + } + + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important; + } + + .m-xl-1 { + margin: 0.25rem !important; + } + + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important; + } + + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important; + } + + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important; + } + + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important; + } + + .m-xl-2 { + margin: 0.5rem !important; + } + + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important; + } + + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important; + } + + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important; + } + + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important; + } + + .m-xl-3 { + margin: 1rem !important; + } + + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important; + } + + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important; + } + + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important; + } + + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important; + } + + .m-xl-4 { + margin: 1.5rem !important; + } + + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important; + } + + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important; + } + + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important; + } + + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important; + } + + .m-xl-5 { + margin: 3rem !important; + } + + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important; + } + + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important; + } + + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important; + } + + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important; + } + + .p-xl-0 { + padding: 0 !important; + } + + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important; + } + + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important; + } + + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important; + } + + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important; + } + + .p-xl-1 { + padding: 0.25rem !important; + } + + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important; + } + + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important; + } + + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important; + } + + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important; + } + + .p-xl-2 { + padding: 0.5rem !important; + } + + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important; + } + + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important; + } + + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important; + } + + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important; + } + + .p-xl-3 { + padding: 1rem !important; + } + + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important; + } + + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important; + } + + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important; + } + + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important; + } + + .p-xl-4 { + padding: 1.5rem !important; + } + + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important; + } + + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important; + } + + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important; + } + + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important; + } + + .p-xl-5 { + padding: 3rem !important; + } + + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important; + } + + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important; + } + + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important; + } + + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important; + } + + .m-xl-auto { + margin: auto !important; + } + + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important; + } + + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important; + } + + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important; + } + + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important; + } +} + +.text-justify { + text-align: justify !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important; + } + + .text-sm-right { + text-align: right !important; + } + + .text-sm-center { + text-align: center !important; + } +} + +@media (min-width: 768px) { + .text-md-left { + text-align: left !important; + } + + .text-md-right { + text-align: right !important; + } + + .text-md-center { + text-align: center !important; + } +} + +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important; + } + + .text-lg-right { + text-align: right !important; + } + + .text-lg-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important; + } + + .text-xl-right { + text-align: right !important; + } + + .text-xl-center { + text-align: center !important; + } +} + +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.font-weight-light { + font-weight: 300 !important; +} + +.font-weight-normal { + font-weight: 400 !important; +} + +.font-weight-bold { + font-weight: 500 !important; +} + +.font-italic { + font-style: italic !important; +} + +.text-white { + color: #fff !important; +} + +.text-primary { + color: #2196f3 !important; +} + +a.text-primary:hover, +a.text-primary:focus { + color: #0c7cd5 !important; +} + +.text-secondary { + color: #6c757d !important; +} + +a.text-secondary:hover, +a.text-secondary:focus { + color: #545b62 !important; +} + +.text-success { + color: #4caf50 !important; +} + +a.text-success:hover, +a.text-success:focus { + color: #3d8b40 !important; +} + +.text-info { + color: #00bcd4 !important; +} + +a.text-info:hover, +a.text-info:focus { + color: #008fa1 !important; +} + +.text-warning { + color: #ffeb3b !important; +} + +a.text-warning:hover, +a.text-warning:focus { + color: #ffe608 !important; +} + +.text-danger { + color: #f44336 !important; +} + +a.text-danger:hover, +a.text-danger:focus { + color: #ea1c0d !important; +} + +.text-light { + color: #f8f9fa !important; +} + +a.text-light:hover, +a.text-light:focus { + color: #dae0e5 !important; +} + +.text-dark { + color: #343a40 !important; +} + +a.text-dark:hover, +a.text-dark:focus { + color: #1d2124 !important; +} + +.text-muted, +.bmd-help { + color: #6c757d !important; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +.btn { + position: relative; + padding: 12px 30px; + margin: 0.3125rem 1px; + font-size: .75rem; + font-weight: 400; + line-height: 1.428571; + text-decoration: none; + text-transform: uppercase; + letter-spacing: 0; + cursor: pointer; + background-color: transparent; + border: 0; + border-radius: 0.2rem; + outline: 0; + transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1); + will-change: box-shadow, transform; +} + +.btn:focus, +.btn.focus, +.btn:active:focus, +.btn:active.focus, +.btn.active:focus, +.btn.active.focus { + outline: 0; +} + +.btn.btn-primary { + color: #fff; + background-color: #28a745; + border-color: #28a745; + box-shadow: 0 2px 2px 0 rgba(35, 174, 179, 0.14), 0 3px 1px -2px rgba(35, 174, 179, 0.2), 0 1px 5px 0 rgba(35, 174, 179, 0.12); +} + +.btn.btn-primary:hover { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn.btn-primary:focus, +.btn.btn-primary.focus, +.btn.btn-primary:hover { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn.btn-primary:active, +.btn.btn-primary.active, +.open>.btn.btn-primary.dropdown-toggle, +.show>.btn.btn-primary.dropdown-toggle { + color: #fff; + background-color: #28a745; + border-color: #28a745; + box-shadow: 0 2px 2px 0 rgba(156, 39, 176, 0.14), 0 3px 1px -2px rgba(156, 39, 176, 0.2), 0 1px 5px 0 rgba(156, 39, 176, 0.12); +} + +.btn.btn-primary:active:hover, +.btn.btn-primary:active:focus, +.btn.btn-primary:active.focus, +.btn.btn-primary.active:hover, +.btn.btn-primary.active:focus, +.btn.btn-primary.active.focus, +.open>.btn.btn-primary.dropdown-toggle:hover, +.open>.btn.btn-primary.dropdown-toggle:focus, +.open>.btn.btn-primary.dropdown-toggle.focus, +.show>.btn.btn-primary.dropdown-toggle:hover, +.show>.btn.btn-primary.dropdown-toggle:focus, +.show>.btn.btn-primary.dropdown-toggle.focus { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.open>.btn.btn-primary.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #28a745; +} + +.open>.btn.btn-primary.dropdown-toggle.bmd-btn-icon:hover { + background-color: #28a745; +} + +.btn.btn-primary.disabled:focus, +.btn.btn-primary.disabled.focus, +.btn.btn-primary:disabled:focus, +.btn.btn-primary:disabled.focus { + background-color: #28a745; + border-color: #28a745; +} + +.btn.btn-primary.disabled:hover, +.btn.btn-primary:disabled:hover { + background-color: #28a745; + border-color: #28a745; +} + +.btn.btn-primary:focus, +.btn.btn-primary:active, +.btn.btn-primary:hover { + box-shadow: 0 14px 26px -12px rgba(156, 39, 176, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(156, 39, 176, 0.2); +} + +.btn.btn-primary.btn-link { + background-color: transparent; + color: #28a745; + box-shadow: none; +} + +.btn.btn-primary.btn-link:hover, +.btn.btn-primary.btn-link:focus, +.btn.btn-primary.btn-link:active { + background-color: transparent; + color: #28a745; +} + +.btn.btn-secondary { + color: #333333; + background-color: #fafafa; + border-color: #ccc; + box-shadow: 0 2px 2px 0 rgba(250, 250, 250, 0.14), 0 3px 1px -2px rgba(250, 250, 250, 0.2), 0 1px 5px 0 rgba(250, 250, 250, 0.12); +} + +.btn.btn-secondary:hover { + color: #333333; + background-color: #f2f2f2; + border-color: #adadad; +} + +.btn.btn-secondary:focus, +.btn.btn-secondary.focus, +.btn.btn-secondary:hover { + color: #333333; + background-color: #f2f2f2; + border-color: #adadad; +} + +.btn.btn-secondary:active, +.btn.btn-secondary.active, +.open>.btn.btn-secondary.dropdown-toggle, +.show>.btn.btn-secondary.dropdown-toggle { + color: #333333; + background-color: #f2f2f2; + border-color: #adadad; + box-shadow: 0 2px 2px 0 rgba(250, 250, 250, 0.14), 0 3px 1px -2px rgba(250, 250, 250, 0.2), 0 1px 5px 0 rgba(250, 250, 250, 0.12); +} + +.btn.btn-secondary:active:hover, +.btn.btn-secondary:active:focus, +.btn.btn-secondary:active.focus, +.btn.btn-secondary.active:hover, +.btn.btn-secondary.active:focus, +.btn.btn-secondary.active.focus, +.open>.btn.btn-secondary.dropdown-toggle:hover, +.open>.btn.btn-secondary.dropdown-toggle:focus, +.open>.btn.btn-secondary.dropdown-toggle.focus, +.show>.btn.btn-secondary.dropdown-toggle:hover, +.show>.btn.btn-secondary.dropdown-toggle:focus, +.show>.btn.btn-secondary.dropdown-toggle.focus { + color: #333333; + background-color: #f2f2f2; + border-color: #8c8c8c; +} + +.open>.btn.btn-secondary.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #fafafa; +} + +.open>.btn.btn-secondary.dropdown-toggle.bmd-btn-icon:hover { + background-color: #f2f2f2; +} + +.btn.btn-secondary.disabled:focus, +.btn.btn-secondary.disabled.focus, +.btn.btn-secondary:disabled:focus, +.btn.btn-secondary:disabled.focus { + background-color: #fafafa; + border-color: #ccc; +} + +.btn.btn-secondary.disabled:hover, +.btn.btn-secondary:disabled:hover { + background-color: #fafafa; + border-color: #ccc; +} + +.btn.btn-secondary:focus, +.btn.btn-secondary:active, +.btn.btn-secondary:hover { + box-shadow: 0 14px 26px -12px rgba(250, 250, 250, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(250, 250, 250, 0.2); +} + +.btn.btn-secondary.btn-link { + background-color: transparent; + color: #fafafa; + box-shadow: none; +} + +.btn.btn-secondary.btn-link:hover, +.btn.btn-secondary.btn-link:focus, +.btn.btn-secondary.btn-link:active { + background-color: transparent; + color: #fafafa; +} + +.btn.btn-info { + color: #fff; + background-color: #28a745; + border-color: #28a745; + box-shadow: 0 2px 2px 0 rgba(0, 188, 212, 0.14), 0 3px 1px -2px rgba(0, 188, 212, 0.2), 0 1px 5px 0 rgba(0, 188, 212, 0.12); +} + +.btn.btn-info:hover { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn.btn-info:focus, +.btn.btn-info.focus, +.btn.btn-info:hover { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn.btn-info:active, +.btn.btn-info.active, +.open>.btn.btn-info.dropdown-toggle, +.show>.btn.btn-info.dropdown-toggle { + color: #fff; + background-color: #28a745; + border-color: #28a745; + box-shadow: 0 2px 2px 0 rgba(0, 188, 212, 0.14), 0 3px 1px -2px rgba(0, 188, 212, 0.2), 0 1px 5px 0 rgba(0, 188, 212, 0.12); +} + +.btn.btn-info:active:hover, +.btn.btn-info:active:focus, +.btn.btn-info:active.focus, +.btn.btn-info.active:hover, +.btn.btn-info.active:focus, +.btn.btn-info.active.focus, +.open>.btn.btn-info.dropdown-toggle:hover, +.open>.btn.btn-info.dropdown-toggle:focus, +.open>.btn.btn-info.dropdown-toggle.focus, +.show>.btn.btn-info.dropdown-toggle:hover, +.show>.btn.btn-info.dropdown-toggle:focus, +.show>.btn.btn-info.dropdown-toggle.focus { + color: #fff; + background-color: #00aec5; + border-color: #004b55; +} + +.open>.btn.btn-info.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #00bcd4; +} + +.open>.btn.btn-info.dropdown-toggle.bmd-btn-icon:hover { + background-color: #00aec5; +} + +.btn.btn-info.disabled:focus, +.btn.btn-info.disabled.focus, +.btn.btn-info:disabled:focus, +.btn.btn-info:disabled.focus { + background-color: #00bcd4; + border-color: #00bcd4; +} + +.btn.btn-info.disabled:hover, +.btn.btn-info:disabled:hover { + background-color: #00bcd4; + border-color: #00bcd4; +} + +.btn.btn-info:focus, +.btn.btn-info:active, +.btn.btn-info:hover { + box-shadow: 0 14px 26px -12px rgba(0, 188, 212, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 188, 212, 0.2); +} + +.btn.btn-info.btn-link { + background-color: transparent; + color: #00bcd4; + box-shadow: none; +} + +.btn.btn-info.btn-link:hover, +.btn.btn-info.btn-link:focus, +.btn.btn-info.btn-link:active { + background-color: transparent; + color: #00bcd4; +} + +.btn.btn-success { + color: #fff; + background-color: #4caf50; + border-color: #4caf50; + box-shadow: 0 2px 2px 0 rgba(76, 175, 80, 0.14), 0 3px 1px -2px rgba(76, 175, 80, 0.2), 0 1px 5px 0 rgba(76, 175, 80, 0.12); +} + +.btn.btn-success:hover { + color: #fff; + background-color: #47a44b; + border-color: #39843c; +} + +.btn.btn-success:focus, +.btn.btn-success.focus, +.btn.btn-success:hover { + color: #fff; + background-color: #47a44b; + border-color: #39843c; +} + +.btn.btn-success:active, +.btn.btn-success.active, +.open>.btn.btn-success.dropdown-toggle, +.show>.btn.btn-success.dropdown-toggle { + color: #fff; + background-color: #47a44b; + border-color: #39843c; + box-shadow: 0 2px 2px 0 rgba(76, 175, 80, 0.14), 0 3px 1px -2px rgba(76, 175, 80, 0.2), 0 1px 5px 0 rgba(76, 175, 80, 0.12); +} + +.btn.btn-success:active:hover, +.btn.btn-success:active:focus, +.btn.btn-success:active.focus, +.btn.btn-success.active:hover, +.btn.btn-success.active:focus, +.btn.btn-success.active.focus, +.open>.btn.btn-success.dropdown-toggle:hover, +.open>.btn.btn-success.dropdown-toggle:focus, +.open>.btn.btn-success.dropdown-toggle.focus, +.show>.btn.btn-success.dropdown-toggle:hover, +.show>.btn.btn-success.dropdown-toggle:focus, +.show>.btn.btn-success.dropdown-toggle.focus { + color: #fff; + background-color: #47a44b; + border-color: #255627; +} + +.open>.btn.btn-success.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #4caf50; +} + +.open>.btn.btn-success.dropdown-toggle.bmd-btn-icon:hover { + background-color: #47a44b; +} + +.btn.btn-success.disabled:focus, +.btn.btn-success.disabled.focus, +.btn.btn-success:disabled:focus, +.btn.btn-success:disabled.focus { + background-color: #4caf50; + border-color: #4caf50; +} + +.btn.btn-success.disabled:hover, +.btn.btn-success:disabled:hover { + background-color: #4caf50; + border-color: #4caf50; +} + +.btn.btn-success:focus, +.btn.btn-success:active, +.btn.btn-success:hover { + box-shadow: 0 14px 26px -12px rgba(76, 175, 80, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(76, 175, 80, 0.2); +} + +.btn.btn-success.btn-link { + background-color: transparent; + color: #4caf50; + box-shadow: none; +} + +.btn.btn-success.btn-link:hover, +.btn.btn-success.btn-link:focus, +.btn.btn-success.btn-link:active { + background-color: transparent; + color: #4caf50; +} + +.btn.btn-warning { + color: #fff; + background-color: #ff9800; + border-color: #ff9800; + box-shadow: 0 2px 2px 0 rgba(255, 152, 0, 0.14), 0 3px 1px -2px rgba(255, 152, 0, 0.2), 0 1px 5px 0 rgba(255, 152, 0, 0.12); +} + +.btn.btn-warning:hover { + color: #fff; + background-color: #f08f00; + border-color: #c27400; +} + +.btn.btn-warning:focus, +.btn.btn-warning.focus, +.btn.btn-warning:hover { + color: #fff; + background-color: #f08f00; + border-color: #c27400; +} + +.btn.btn-warning:active, +.btn.btn-warning.active, +.open>.btn.btn-warning.dropdown-toggle, +.show>.btn.btn-warning.dropdown-toggle { + color: #fff; + background-color: #f08f00; + border-color: #c27400; + box-shadow: 0 2px 2px 0 rgba(255, 152, 0, 0.14), 0 3px 1px -2px rgba(255, 152, 0, 0.2), 0 1px 5px 0 rgba(255, 152, 0, 0.12); +} + +.btn.btn-warning:active:hover, +.btn.btn-warning:active:focus, +.btn.btn-warning:active.focus, +.btn.btn-warning.active:hover, +.btn.btn-warning.active:focus, +.btn.btn-warning.active.focus, +.open>.btn.btn-warning.dropdown-toggle:hover, +.open>.btn.btn-warning.dropdown-toggle:focus, +.open>.btn.btn-warning.dropdown-toggle.focus, +.show>.btn.btn-warning.dropdown-toggle:hover, +.show>.btn.btn-warning.dropdown-toggle:focus, +.show>.btn.btn-warning.dropdown-toggle.focus { + color: #fff; + background-color: #f08f00; + border-color: #804c00; +} + +.open>.btn.btn-warning.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #ff9800; +} + +.open>.btn.btn-warning.dropdown-toggle.bmd-btn-icon:hover { + background-color: #f08f00; +} + +.btn.btn-warning.disabled:focus, +.btn.btn-warning.disabled.focus, +.btn.btn-warning:disabled:focus, +.btn.btn-warning:disabled.focus { + background-color: #ff9800; + border-color: #ff9800; +} + +.btn.btn-warning.disabled:hover, +.btn.btn-warning:disabled:hover { + background-color: #ff9800; + border-color: #ff9800; +} + +.btn.btn-warning:focus, +.btn.btn-warning:active, +.btn.btn-warning:hover { + box-shadow: 0 14px 26px -12px rgba(255, 152, 0, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(255, 152, 0, 0.2); +} + +.btn.btn-warning.btn-link { + background-color: transparent; + color: #ff9800; + box-shadow: none; +} + +.btn.btn-warning.btn-link:hover, +.btn.btn-warning.btn-link:focus, +.btn.btn-warning.btn-link:active { + background-color: transparent; + color: #ff9800; +} + +.btn.btn-danger { + color: #fff; + background-color: #f44336; + border-color: #f44336; + box-shadow: 0 2px 2px 0 rgba(244, 67, 54, 0.14), 0 3px 1px -2px rgba(244, 67, 54, 0.2), 0 1px 5px 0 rgba(244, 67, 54, 0.12); +} + +.btn.btn-danger:hover { + color: #fff; + background-color: #f33527; + border-color: #e11b0c; +} + +.btn.btn-danger:focus, +.btn.btn-danger.focus, +.btn.btn-danger:hover { + color: #fff; + background-color: #f33527; + border-color: #e11b0c; +} + +.btn.btn-danger:active, +.btn.btn-danger.active, +.open>.btn.btn-danger.dropdown-toggle, +.show>.btn.btn-danger.dropdown-toggle { + color: #fff; + background-color: #f33527; + border-color: #e11b0c; + box-shadow: 0 2px 2px 0 rgba(244, 67, 54, 0.14), 0 3px 1px -2px rgba(244, 67, 54, 0.2), 0 1px 5px 0 rgba(244, 67, 54, 0.12); +} + +.btn.btn-danger:active:hover, +.btn.btn-danger:active:focus, +.btn.btn-danger:active.focus, +.btn.btn-danger.active:hover, +.btn.btn-danger.active:focus, +.btn.btn-danger.active.focus, +.open>.btn.btn-danger.dropdown-toggle:hover, +.open>.btn.btn-danger.dropdown-toggle:focus, +.open>.btn.btn-danger.dropdown-toggle.focus, +.show>.btn.btn-danger.dropdown-toggle:hover, +.show>.btn.btn-danger.dropdown-toggle:focus, +.show>.btn.btn-danger.dropdown-toggle.focus { + color: #fff; + background-color: #f33527; + border-color: #a21309; +} + +.open>.btn.btn-danger.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #f44336; +} + +.open>.btn.btn-danger.dropdown-toggle.bmd-btn-icon:hover { + background-color: #f33527; +} + +.btn.btn-danger.disabled:focus, +.btn.btn-danger.disabled.focus, +.btn.btn-danger:disabled:focus, +.btn.btn-danger:disabled.focus { + background-color: #f44336; + border-color: #f44336; +} + +.btn.btn-danger.disabled:hover, +.btn.btn-danger:disabled:hover { + background-color: #f44336; + border-color: #f44336; +} + +.btn.btn-danger:focus, +.btn.btn-danger:active, +.btn.btn-danger:hover { + box-shadow: 0 14px 26px -12px rgba(244, 67, 54, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(244, 67, 54, 0.2); +} + +.btn.btn-danger.btn-link { + background-color: transparent; + color: #f44336; + box-shadow: none; +} + +.btn.btn-danger.btn-link:hover, +.btn.btn-danger.btn-link:focus, +.btn.btn-danger.btn-link:active { + background-color: transparent; + color: #f44336; +} + +.btn.btn-rose { + color: #fff; + background-color: #e91e63; + border-color: #e91e63; + box-shadow: 0 2px 2px 0 rgba(233, 30, 99, 0.14), 0 3px 1px -2px rgba(233, 30, 99, 0.2), 0 1px 5px 0 rgba(233, 30, 99, 0.12); +} + +.btn.btn-rose:hover { + color: #fff; + background-color: #ea2c6d; + border-color: #b8124a; +} + +.btn.btn-rose:focus, +.btn.btn-rose.focus, +.btn.btn-rose:hover { + color: #fff; + background-color: #ea2c6d; + border-color: #b8124a; +} + +.btn.btn-rose:active, +.btn.btn-rose.active, +.open>.btn.btn-rose.dropdown-toggle, +.show>.btn.btn-rose.dropdown-toggle { + color: #fff; + background-color: #ea2c6d; + border-color: #b8124a; + box-shadow: 0 2px 2px 0 rgba(233, 30, 99, 0.14), 0 3px 1px -2px rgba(233, 30, 99, 0.2), 0 1px 5px 0 rgba(233, 30, 99, 0.12); +} + +.btn.btn-rose:active:hover, +.btn.btn-rose:active:focus, +.btn.btn-rose:active.focus, +.btn.btn-rose.active:hover, +.btn.btn-rose.active:focus, +.btn.btn-rose.active.focus, +.open>.btn.btn-rose.dropdown-toggle:hover, +.open>.btn.btn-rose.dropdown-toggle:focus, +.open>.btn.btn-rose.dropdown-toggle.focus, +.show>.btn.btn-rose.dropdown-toggle:hover, +.show>.btn.btn-rose.dropdown-toggle:focus, +.show>.btn.btn-rose.dropdown-toggle.focus { + color: #fff; + background-color: #ea2c6d; + border-color: #7b0c32; +} + +.open>.btn.btn-rose.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #e91e63; +} + +.open>.btn.btn-rose.dropdown-toggle.bmd-btn-icon:hover { + background-color: #ea2c6d; +} + +.btn.btn-rose.disabled:focus, +.btn.btn-rose.disabled.focus, +.btn.btn-rose:disabled:focus, +.btn.btn-rose:disabled.focus { + background-color: #e91e63; + border-color: #e91e63; +} + +.btn.btn-rose.disabled:hover, +.btn.btn-rose:disabled:hover { + background-color: #e91e63; + border-color: #e91e63; +} + +.btn.btn-rose:focus, +.btn.btn-rose:active, +.btn.btn-rose:hover { + box-shadow: 0 14px 26px -12px rgba(233, 30, 99, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(233, 30, 99, 0.2); +} + +.btn.btn-rose.btn-link { + background-color: transparent; + color: #e91e63; + box-shadow: none; +} + +.btn.btn-rose.btn-link:hover, +.btn.btn-rose.btn-link:focus, +.btn.btn-rose.btn-link:active { + background-color: transparent; + color: #e91e63; +} + +.btn, +.btn.btn-default { + color: #fff; + background-color: #999999; + border-color: #999999; + box-shadow: 0 2px 2px 0 rgba(153, 153, 153, 0.14), 0 3px 1px -2px rgba(153, 153, 153, 0.2), 0 1px 5px 0 rgba(153, 153, 153, 0.12); +} + +.btn:hover, +.btn.btn-default:hover { + color: #fff; + background-color: #919191; + border-color: #7a7a7a; +} + +.btn:focus, +.btn.focus, +.btn:hover, +.btn.btn-default:focus, +.btn.btn-default.focus, +.btn.btn-default:hover { + color: #fff; + background-color: #919191; + border-color: #7a7a7a; +} + +.btn:active, +.btn.active, +.open>.btn.dropdown-toggle, +.show>.btn.dropdown-toggle, +.btn.btn-default:active, +.btn.btn-default.active, +.open>.btn.btn-default.dropdown-toggle, +.show>.btn.btn-default.dropdown-toggle { + color: #fff; + background-color: #919191; + border-color: #7a7a7a; + box-shadow: 0 2px 2px 0 rgba(153, 153, 153, 0.14), 0 3px 1px -2px rgba(153, 153, 153, 0.2), 0 1px 5px 0 rgba(153, 153, 153, 0.12); +} + +.btn:active:hover, +.btn:active:focus, +.btn:active.focus, +.btn.active:hover, +.btn.active:focus, +.btn.active.focus, +.open>.btn.dropdown-toggle:hover, +.open>.btn.dropdown-toggle:focus, +.open>.btn.dropdown-toggle.focus, +.show>.btn.dropdown-toggle:hover, +.show>.btn.dropdown-toggle:focus, +.show>.btn.dropdown-toggle.focus, +.btn.btn-default:active:hover, +.btn.btn-default:active:focus, +.btn.btn-default:active.focus, +.btn.btn-default.active:hover, +.btn.btn-default.active:focus, +.btn.btn-default.active.focus, +.open>.btn.btn-default.dropdown-toggle:hover, +.open>.btn.btn-default.dropdown-toggle:focus, +.open>.btn.btn-default.dropdown-toggle.focus, +.show>.btn.btn-default.dropdown-toggle:hover, +.show>.btn.btn-default.dropdown-toggle:focus, +.show>.btn.btn-default.dropdown-toggle.focus { + color: #fff; + background-color: #919191; + border-color: #595959; +} + +.open>.btn.dropdown-toggle.bmd-btn-icon, +.open>.btn.btn-default.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #999999; +} + +.open>.btn.dropdown-toggle.bmd-btn-icon:hover, +.open>.btn.btn-default.dropdown-toggle.bmd-btn-icon:hover { + background-color: #919191; +} + +.btn.disabled:focus, +.btn.disabled.focus, +.btn:disabled:focus, +.btn:disabled.focus, +.btn.btn-default.disabled:focus, +.btn.btn-default.disabled.focus, +.btn.btn-default:disabled:focus, +.btn.btn-default:disabled.focus { + background-color: #999999; + border-color: #999999; +} + +.btn.disabled:hover, +.btn:disabled:hover, +.btn.btn-default.disabled:hover, +.btn.btn-default:disabled:hover { + background-color: #999999; + border-color: #999999; +} + +.btn:focus, +.btn:active, +.btn:hover, +.btn.btn-default:focus, +.btn.btn-default:active, +.btn.btn-default:hover { + box-shadow: 0 14px 26px -12px rgba(153, 153, 153, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(153, 153, 153, 0.2); +} + +.btn.btn-link, +.btn.btn-default.btn-link { + background-color: transparent; + color: #999999; + box-shadow: none; +} + +.btn.btn-link:hover, +.btn.btn-link:focus, +.btn.btn-link:active, +.btn.btn-default.btn-link:hover, +.btn.btn-default.btn-link:focus, +.btn.btn-default.btn-link:active { + background-color: transparent; + color: #999999; +} + +.btn.btn-white, +.btn.btn-white:focus, +.btn.btn-white:hover { + background-color: #fff; + color: #999999; +} + +.btn.btn-white.btn-link { + color: #fff; + background: transparent; + box-shadow: none; +} + +.btn.btn-link:hover, +.btn.btn-link:focus, +.btn.btn-link:active { + text-decoration: none !important; +} + +.btn.btn-raised.btn-link, +.btn-group-raised .btn.btn-link { + box-shadow: none; +} + +.btn.btn-raised.btn-link.active, +.btn-group-raised .btn.btn-link.active { + box-shadow: none; +} + +.btn.btn-raised.btn-link:hover, +.btn.btn-raised.btn-link:focus, +.btn.btn-raised.btn-link:active, +.btn-group-raised .btn.btn-link:hover, +.btn-group-raised .btn.btn-link:focus, +.btn-group-raised .btn.btn-link:active { + box-shadow: none; +} + +fieldset[disabled][disabled] .btn.btn-raised, +.btn.btn-raised.disabled, +.btn.btn-raised:disabled, +.btn.btn-raised[disabled], +fieldset[disabled][disabled] .btn-group-raised .btn, +.btn-group-raised .btn.disabled, +.btn-group-raised .btn:disabled, +.btn-group-raised .btn[disabled] { + box-shadow: none; +} + +.btn.btn-outline, +.btn.btn-outline-primary, +.btn.btn-outline-secondary, +.btn.btn-outline-info, +.btn.btn-outline-success, +.btn.btn-outline-warning, +.btn.btn-outline-danger { + border-color: currentColor; + border-style: solid; + border-width: 1px; +} + +.btn.btn-outline { + color: #333333; + background-color: transparent; + border-color: #333333; +} + +.btn.btn-outline:hover { + color: #333333; + background-color: rgba(153, 153, 153, 0.2); + border-color: #333333; +} + +.btn.btn-outline:focus, +.btn.btn-outline.focus, +.btn.btn-outline:hover { + color: #333333; + background-color: rgba(153, 153, 153, 0.2); + border-color: #333333; +} + +.btn.btn-outline:active, +.btn.btn-outline.active, +.open>.btn.btn-outline.dropdown-toggle, +.show>.btn.btn-outline.dropdown-toggle { + color: #333333; + background-color: rgba(153, 153, 153, 0.2); + border-color: #333333; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.btn.btn-outline:active:hover, +.btn.btn-outline:active:focus, +.btn.btn-outline:active.focus, +.btn.btn-outline.active:hover, +.btn.btn-outline.active:focus, +.btn.btn-outline.active.focus, +.open>.btn.btn-outline.dropdown-toggle:hover, +.open>.btn.btn-outline.dropdown-toggle:focus, +.open>.btn.btn-outline.dropdown-toggle.focus, +.show>.btn.btn-outline.dropdown-toggle:hover, +.show>.btn.btn-outline.dropdown-toggle:focus, +.show>.btn.btn-outline.dropdown-toggle.focus { + color: #333333; + background-color: rgba(153, 153, 153, 0.4); + border-color: #333333; +} + +.open>.btn.btn-outline.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: transparent; +} + +.open>.btn.btn-outline.dropdown-toggle.bmd-btn-icon:hover { + background-color: rgba(153, 153, 153, 0.2); +} + +.btn.btn-outline.disabled:focus, +.btn.btn-outline.disabled.focus, +.btn.btn-outline:disabled:focus, +.btn.btn-outline:disabled.focus { + background-color: transparent; + border-color: #333333; +} + +.btn.btn-outline.disabled:hover, +.btn.btn-outline:disabled:hover { + background-color: transparent; + border-color: #333333; +} + +.bg-inverse .btn.btn-outline { + color: #333333; + background-color: transparent; + border-color: #333333; +} + +.bg-inverse .btn.btn-outline:hover { + color: #333333; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline:focus, +.bg-inverse .btn.btn-outline.focus, +.bg-inverse .btn.btn-outline:hover { + color: #333333; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline:active, +.bg-inverse .btn.btn-outline.active, +.open>.bg-inverse .btn.btn-outline.dropdown-toggle, +.show>.bg-inverse .btn.btn-outline.dropdown-toggle { + color: #333333; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.bg-inverse .btn.btn-outline:active:hover, +.bg-inverse .btn.btn-outline:active:focus, +.bg-inverse .btn.btn-outline:active.focus, +.bg-inverse .btn.btn-outline.active:hover, +.bg-inverse .btn.btn-outline.active:focus, +.bg-inverse .btn.btn-outline.active.focus, +.open>.bg-inverse .btn.btn-outline.dropdown-toggle:hover, +.open>.bg-inverse .btn.btn-outline.dropdown-toggle:focus, +.open>.bg-inverse .btn.btn-outline.dropdown-toggle.focus, +.show>.bg-inverse .btn.btn-outline.dropdown-toggle:hover, +.show>.bg-inverse .btn.btn-outline.dropdown-toggle:focus, +.show>.bg-inverse .btn.btn-outline.dropdown-toggle.focus { + color: #333333; + background-color: rgba(204, 204, 204, 0.25); + border-color: rgba(204, 204, 204, 0.25); +} + +.open>.bg-inverse .btn.btn-outline.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: transparent; +} + +.open>.bg-inverse .btn.btn-outline.dropdown-toggle.bmd-btn-icon:hover { + background-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline.disabled:focus, +.bg-inverse .btn.btn-outline.disabled.focus, +.bg-inverse .btn.btn-outline:disabled:focus, +.bg-inverse .btn.btn-outline:disabled.focus { + background-color: transparent; + border-color: #333333; +} + +.bg-inverse .btn.btn-outline.disabled:hover, +.bg-inverse .btn.btn-outline:disabled:hover { + background-color: transparent; + border-color: #333333; +} + +.btn.btn-outline.btn-link { + background-color: transparent; +} + +.btn.btn-outline-primary { + color: #9c27b0; + background-color: transparent; + border-color: #9c27b0; +} + +.btn.btn-outline-primary:hover { + color: #9c27b0; + background-color: rgba(153, 153, 153, 0.2); + border-color: #9c27b0; +} + +.btn.btn-outline-primary:focus, +.btn.btn-outline-primary.focus, +.btn.btn-outline-primary:hover { + color: #9c27b0; + background-color: rgba(153, 153, 153, 0.2); + border-color: #9c27b0; +} + +.btn.btn-outline-primary:active, +.btn.btn-outline-primary.active, +.open>.btn.btn-outline-primary.dropdown-toggle, +.show>.btn.btn-outline-primary.dropdown-toggle { + color: #9c27b0; + background-color: rgba(153, 153, 153, 0.2); + border-color: #9c27b0; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.btn.btn-outline-primary:active:hover, +.btn.btn-outline-primary:active:focus, +.btn.btn-outline-primary:active.focus, +.btn.btn-outline-primary.active:hover, +.btn.btn-outline-primary.active:focus, +.btn.btn-outline-primary.active.focus, +.open>.btn.btn-outline-primary.dropdown-toggle:hover, +.open>.btn.btn-outline-primary.dropdown-toggle:focus, +.open>.btn.btn-outline-primary.dropdown-toggle.focus, +.show>.btn.btn-outline-primary.dropdown-toggle:hover, +.show>.btn.btn-outline-primary.dropdown-toggle:focus, +.show>.btn.btn-outline-primary.dropdown-toggle.focus { + color: #9c27b0; + background-color: rgba(153, 153, 153, 0.4); + border-color: #9c27b0; +} + +.open>.btn.btn-outline-primary.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: transparent; +} + +.open>.btn.btn-outline-primary.dropdown-toggle.bmd-btn-icon:hover { + background-color: rgba(153, 153, 153, 0.2); +} + +.btn.btn-outline-primary.disabled:focus, +.btn.btn-outline-primary.disabled.focus, +.btn.btn-outline-primary:disabled:focus, +.btn.btn-outline-primary:disabled.focus { + background-color: transparent; + border-color: #9c27b0; +} + +.btn.btn-outline-primary.disabled:hover, +.btn.btn-outline-primary:disabled:hover { + background-color: transparent; + border-color: #9c27b0; +} + +.bg-inverse .btn.btn-outline-primary { + color: #9c27b0; + background-color: transparent; + border-color: #9c27b0; +} + +.bg-inverse .btn.btn-outline-primary:hover { + color: #9c27b0; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-primary:focus, +.bg-inverse .btn.btn-outline-primary.focus, +.bg-inverse .btn.btn-outline-primary:hover { + color: #9c27b0; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-primary:active, +.bg-inverse .btn.btn-outline-primary.active, +.open>.bg-inverse .btn.btn-outline-primary.dropdown-toggle, +.show>.bg-inverse .btn.btn-outline-primary.dropdown-toggle { + color: #9c27b0; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.bg-inverse .btn.btn-outline-primary:active:hover, +.bg-inverse .btn.btn-outline-primary:active:focus, +.bg-inverse .btn.btn-outline-primary:active.focus, +.bg-inverse .btn.btn-outline-primary.active:hover, +.bg-inverse .btn.btn-outline-primary.active:focus, +.bg-inverse .btn.btn-outline-primary.active.focus, +.open>.bg-inverse .btn.btn-outline-primary.dropdown-toggle:hover, +.open>.bg-inverse .btn.btn-outline-primary.dropdown-toggle:focus, +.open>.bg-inverse .btn.btn-outline-primary.dropdown-toggle.focus, +.show>.bg-inverse .btn.btn-outline-primary.dropdown-toggle:hover, +.show>.bg-inverse .btn.btn-outline-primary.dropdown-toggle:focus, +.show>.bg-inverse .btn.btn-outline-primary.dropdown-toggle.focus { + color: #9c27b0; + background-color: rgba(204, 204, 204, 0.25); + border-color: rgba(204, 204, 204, 0.25); +} + +.open>.bg-inverse .btn.btn-outline-primary.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: transparent; +} + +.open>.bg-inverse .btn.btn-outline-primary.dropdown-toggle.bmd-btn-icon:hover { + background-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-primary.disabled:focus, +.bg-inverse .btn.btn-outline-primary.disabled.focus, +.bg-inverse .btn.btn-outline-primary:disabled:focus, +.bg-inverse .btn.btn-outline-primary:disabled.focus { + background-color: transparent; + border-color: #9c27b0; +} + +.bg-inverse .btn.btn-outline-primary.disabled:hover, +.bg-inverse .btn.btn-outline-primary:disabled:hover { + background-color: transparent; + border-color: #9c27b0; +} + +.btn.btn-outline-primary.btn-link { + background-color: transparent; +} + +.btn.btn-outline-secondary { + color: #333333; + background-color: transparent; + border-color: #333333; +} + +.btn.btn-outline-secondary:hover { + color: #333333; + background-color: rgba(153, 153, 153, 0.2); + border-color: #333333; +} + +.btn.btn-outline-secondary:focus, +.btn.btn-outline-secondary.focus, +.btn.btn-outline-secondary:hover { + color: #333333; + background-color: rgba(153, 153, 153, 0.2); + border-color: #333333; +} + +.btn.btn-outline-secondary:active, +.btn.btn-outline-secondary.active, +.open>.btn.btn-outline-secondary.dropdown-toggle, +.show>.btn.btn-outline-secondary.dropdown-toggle { + color: #333333; + background-color: rgba(153, 153, 153, 0.2); + border-color: #333333; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.btn.btn-outline-secondary:active:hover, +.btn.btn-outline-secondary:active:focus, +.btn.btn-outline-secondary:active.focus, +.btn.btn-outline-secondary.active:hover, +.btn.btn-outline-secondary.active:focus, +.btn.btn-outline-secondary.active.focus, +.open>.btn.btn-outline-secondary.dropdown-toggle:hover, +.open>.btn.btn-outline-secondary.dropdown-toggle:focus, +.open>.btn.btn-outline-secondary.dropdown-toggle.focus, +.show>.btn.btn-outline-secondary.dropdown-toggle:hover, +.show>.btn.btn-outline-secondary.dropdown-toggle:focus, +.show>.btn.btn-outline-secondary.dropdown-toggle.focus { + color: #333333; + background-color: rgba(153, 153, 153, 0.4); + border-color: #333333; +} + +.open>.btn.btn-outline-secondary.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: transparent; +} + +.open>.btn.btn-outline-secondary.dropdown-toggle.bmd-btn-icon:hover { + background-color: rgba(153, 153, 153, 0.2); +} + +.btn.btn-outline-secondary.disabled:focus, +.btn.btn-outline-secondary.disabled.focus, +.btn.btn-outline-secondary:disabled:focus, +.btn.btn-outline-secondary:disabled.focus { + background-color: transparent; + border-color: #333333; +} + +.btn.btn-outline-secondary.disabled:hover, +.btn.btn-outline-secondary:disabled:hover { + background-color: transparent; + border-color: #333333; +} + +.bg-inverse .btn.btn-outline-secondary { + color: #333333; + background-color: transparent; + border-color: #333333; +} + +.bg-inverse .btn.btn-outline-secondary:hover { + color: #333333; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-secondary:focus, +.bg-inverse .btn.btn-outline-secondary.focus, +.bg-inverse .btn.btn-outline-secondary:hover { + color: #333333; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-secondary:active, +.bg-inverse .btn.btn-outline-secondary.active, +.open>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle, +.show>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle { + color: #333333; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.bg-inverse .btn.btn-outline-secondary:active:hover, +.bg-inverse .btn.btn-outline-secondary:active:focus, +.bg-inverse .btn.btn-outline-secondary:active.focus, +.bg-inverse .btn.btn-outline-secondary.active:hover, +.bg-inverse .btn.btn-outline-secondary.active:focus, +.bg-inverse .btn.btn-outline-secondary.active.focus, +.open>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle:hover, +.open>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle:focus, +.open>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle.focus, +.show>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle:hover, +.show>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle:focus, +.show>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle.focus { + color: #333333; + background-color: rgba(204, 204, 204, 0.25); + border-color: rgba(204, 204, 204, 0.25); +} + +.open>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: transparent; +} + +.open>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle.bmd-btn-icon:hover { + background-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-secondary.disabled:focus, +.bg-inverse .btn.btn-outline-secondary.disabled.focus, +.bg-inverse .btn.btn-outline-secondary:disabled:focus, +.bg-inverse .btn.btn-outline-secondary:disabled.focus { + background-color: transparent; + border-color: #333333; +} + +.bg-inverse .btn.btn-outline-secondary.disabled:hover, +.bg-inverse .btn.btn-outline-secondary:disabled:hover { + background-color: transparent; + border-color: #333333; +} + +.btn.btn-outline-secondary.btn-link { + background-color: transparent; +} + +.btn.btn-outline-info { + color: #00bcd4; + background-color: transparent; + border-color: #00bcd4; +} + +.btn.btn-outline-info:hover { + color: #00bcd4; + background-color: rgba(153, 153, 153, 0.2); + border-color: #00bcd4; +} + +.btn.btn-outline-info:focus, +.btn.btn-outline-info.focus, +.btn.btn-outline-info:hover { + color: #00bcd4; + background-color: rgba(153, 153, 153, 0.2); + border-color: #00bcd4; +} + +.btn.btn-outline-info:active, +.btn.btn-outline-info.active, +.open>.btn.btn-outline-info.dropdown-toggle, +.show>.btn.btn-outline-info.dropdown-toggle { + color: #00bcd4; + background-color: rgba(153, 153, 153, 0.2); + border-color: #00bcd4; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.btn.btn-outline-info:active:hover, +.btn.btn-outline-info:active:focus, +.btn.btn-outline-info:active.focus, +.btn.btn-outline-info.active:hover, +.btn.btn-outline-info.active:focus, +.btn.btn-outline-info.active.focus, +.open>.btn.btn-outline-info.dropdown-toggle:hover, +.open>.btn.btn-outline-info.dropdown-toggle:focus, +.open>.btn.btn-outline-info.dropdown-toggle.focus, +.show>.btn.btn-outline-info.dropdown-toggle:hover, +.show>.btn.btn-outline-info.dropdown-toggle:focus, +.show>.btn.btn-outline-info.dropdown-toggle.focus { + color: #00bcd4; + background-color: rgba(153, 153, 153, 0.4); + border-color: #00bcd4; +} + +.open>.btn.btn-outline-info.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: transparent; +} + +.open>.btn.btn-outline-info.dropdown-toggle.bmd-btn-icon:hover { + background-color: rgba(153, 153, 153, 0.2); +} + +.btn.btn-outline-info.disabled:focus, +.btn.btn-outline-info.disabled.focus, +.btn.btn-outline-info:disabled:focus, +.btn.btn-outline-info:disabled.focus { + background-color: transparent; + border-color: #00bcd4; +} + +.btn.btn-outline-info.disabled:hover, +.btn.btn-outline-info:disabled:hover { + background-color: transparent; + border-color: #00bcd4; +} + +.bg-inverse .btn.btn-outline-info { + color: #00bcd4; + background-color: transparent; + border-color: #00bcd4; +} + +.bg-inverse .btn.btn-outline-info:hover { + color: #00bcd4; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-info:focus, +.bg-inverse .btn.btn-outline-info.focus, +.bg-inverse .btn.btn-outline-info:hover { + color: #00bcd4; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-info:active, +.bg-inverse .btn.btn-outline-info.active, +.open>.bg-inverse .btn.btn-outline-info.dropdown-toggle, +.show>.bg-inverse .btn.btn-outline-info.dropdown-toggle { + color: #00bcd4; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.bg-inverse .btn.btn-outline-info:active:hover, +.bg-inverse .btn.btn-outline-info:active:focus, +.bg-inverse .btn.btn-outline-info:active.focus, +.bg-inverse .btn.btn-outline-info.active:hover, +.bg-inverse .btn.btn-outline-info.active:focus, +.bg-inverse .btn.btn-outline-info.active.focus, +.open>.bg-inverse .btn.btn-outline-info.dropdown-toggle:hover, +.open>.bg-inverse .btn.btn-outline-info.dropdown-toggle:focus, +.open>.bg-inverse .btn.btn-outline-info.dropdown-toggle.focus, +.show>.bg-inverse .btn.btn-outline-info.dropdown-toggle:hover, +.show>.bg-inverse .btn.btn-outline-info.dropdown-toggle:focus, +.show>.bg-inverse .btn.btn-outline-info.dropdown-toggle.focus { + color: #00bcd4; + background-color: rgba(204, 204, 204, 0.25); + border-color: rgba(204, 204, 204, 0.25); +} + +.open>.bg-inverse .btn.btn-outline-info.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: transparent; +} + +.open>.bg-inverse .btn.btn-outline-info.dropdown-toggle.bmd-btn-icon:hover { + background-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-info.disabled:focus, +.bg-inverse .btn.btn-outline-info.disabled.focus, +.bg-inverse .btn.btn-outline-info:disabled:focus, +.bg-inverse .btn.btn-outline-info:disabled.focus { + background-color: transparent; + border-color: #00bcd4; +} + +.bg-inverse .btn.btn-outline-info.disabled:hover, +.bg-inverse .btn.btn-outline-info:disabled:hover { + background-color: transparent; + border-color: #00bcd4; +} + +.btn.btn-outline-info.btn-link { + background-color: transparent; +} + +.btn.btn-outline-success { + color: #4caf50; + background-color: transparent; + border-color: #4caf50; +} + +.btn.btn-outline-success:hover { + color: #4caf50; + background-color: rgba(153, 153, 153, 0.2); + border-color: #4caf50; +} + +.btn.btn-outline-success:focus, +.btn.btn-outline-success.focus, +.btn.btn-outline-success:hover { + color: #4caf50; + background-color: rgba(153, 153, 153, 0.2); + border-color: #4caf50; +} + +.btn.btn-outline-success:active, +.btn.btn-outline-success.active, +.open>.btn.btn-outline-success.dropdown-toggle, +.show>.btn.btn-outline-success.dropdown-toggle { + color: #4caf50; + background-color: rgba(153, 153, 153, 0.2); + border-color: #4caf50; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.btn.btn-outline-success:active:hover, +.btn.btn-outline-success:active:focus, +.btn.btn-outline-success:active.focus, +.btn.btn-outline-success.active:hover, +.btn.btn-outline-success.active:focus, +.btn.btn-outline-success.active.focus, +.open>.btn.btn-outline-success.dropdown-toggle:hover, +.open>.btn.btn-outline-success.dropdown-toggle:focus, +.open>.btn.btn-outline-success.dropdown-toggle.focus, +.show>.btn.btn-outline-success.dropdown-toggle:hover, +.show>.btn.btn-outline-success.dropdown-toggle:focus, +.show>.btn.btn-outline-success.dropdown-toggle.focus { + color: #4caf50; + background-color: rgba(153, 153, 153, 0.4); + border-color: #4caf50; +} + +.open>.btn.btn-outline-success.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: transparent; +} + +.open>.btn.btn-outline-success.dropdown-toggle.bmd-btn-icon:hover { + background-color: rgba(153, 153, 153, 0.2); +} + +.btn.btn-outline-success.disabled:focus, +.btn.btn-outline-success.disabled.focus, +.btn.btn-outline-success:disabled:focus, +.btn.btn-outline-success:disabled.focus { + background-color: transparent; + border-color: #4caf50; +} + +.btn.btn-outline-success.disabled:hover, +.btn.btn-outline-success:disabled:hover { + background-color: transparent; + border-color: #4caf50; +} + +.bg-inverse .btn.btn-outline-success { + color: #4caf50; + background-color: transparent; + border-color: #4caf50; +} + +.bg-inverse .btn.btn-outline-success:hover { + color: #4caf50; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-success:focus, +.bg-inverse .btn.btn-outline-success.focus, +.bg-inverse .btn.btn-outline-success:hover { + color: #4caf50; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-success:active, +.bg-inverse .btn.btn-outline-success.active, +.open>.bg-inverse .btn.btn-outline-success.dropdown-toggle, +.show>.bg-inverse .btn.btn-outline-success.dropdown-toggle { + color: #4caf50; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.bg-inverse .btn.btn-outline-success:active:hover, +.bg-inverse .btn.btn-outline-success:active:focus, +.bg-inverse .btn.btn-outline-success:active.focus, +.bg-inverse .btn.btn-outline-success.active:hover, +.bg-inverse .btn.btn-outline-success.active:focus, +.bg-inverse .btn.btn-outline-success.active.focus, +.open>.bg-inverse .btn.btn-outline-success.dropdown-toggle:hover, +.open>.bg-inverse .btn.btn-outline-success.dropdown-toggle:focus, +.open>.bg-inverse .btn.btn-outline-success.dropdown-toggle.focus, +.show>.bg-inverse .btn.btn-outline-success.dropdown-toggle:hover, +.show>.bg-inverse .btn.btn-outline-success.dropdown-toggle:focus, +.show>.bg-inverse .btn.btn-outline-success.dropdown-toggle.focus { + color: #4caf50; + background-color: rgba(204, 204, 204, 0.25); + border-color: rgba(204, 204, 204, 0.25); +} + +.open>.bg-inverse .btn.btn-outline-success.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: transparent; +} + +.open>.bg-inverse .btn.btn-outline-success.dropdown-toggle.bmd-btn-icon:hover { + background-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-success.disabled:focus, +.bg-inverse .btn.btn-outline-success.disabled.focus, +.bg-inverse .btn.btn-outline-success:disabled:focus, +.bg-inverse .btn.btn-outline-success:disabled.focus { + background-color: transparent; + border-color: #4caf50; +} + +.bg-inverse .btn.btn-outline-success.disabled:hover, +.bg-inverse .btn.btn-outline-success:disabled:hover { + background-color: transparent; + border-color: #4caf50; +} + +.btn.btn-outline-success.btn-link { + background-color: transparent; +} + +.btn.btn-outline-warning { + color: #ff9800; + background-color: transparent; + border-color: #ff9800; +} + +.btn.btn-outline-warning:hover { + color: #ff9800; + background-color: rgba(153, 153, 153, 0.2); + border-color: #ff9800; +} + +.btn.btn-outline-warning:focus, +.btn.btn-outline-warning.focus, +.btn.btn-outline-warning:hover { + color: #ff9800; + background-color: rgba(153, 153, 153, 0.2); + border-color: #ff9800; +} + +.btn.btn-outline-warning:active, +.btn.btn-outline-warning.active, +.open>.btn.btn-outline-warning.dropdown-toggle, +.show>.btn.btn-outline-warning.dropdown-toggle { + color: #ff9800; + background-color: rgba(153, 153, 153, 0.2); + border-color: #ff9800; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.btn.btn-outline-warning:active:hover, +.btn.btn-outline-warning:active:focus, +.btn.btn-outline-warning:active.focus, +.btn.btn-outline-warning.active:hover, +.btn.btn-outline-warning.active:focus, +.btn.btn-outline-warning.active.focus, +.open>.btn.btn-outline-warning.dropdown-toggle:hover, +.open>.btn.btn-outline-warning.dropdown-toggle:focus, +.open>.btn.btn-outline-warning.dropdown-toggle.focus, +.show>.btn.btn-outline-warning.dropdown-toggle:hover, +.show>.btn.btn-outline-warning.dropdown-toggle:focus, +.show>.btn.btn-outline-warning.dropdown-toggle.focus { + color: #ff9800; + background-color: rgba(153, 153, 153, 0.4); + border-color: #ff9800; +} + +.open>.btn.btn-outline-warning.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: transparent; +} + +.open>.btn.btn-outline-warning.dropdown-toggle.bmd-btn-icon:hover { + background-color: rgba(153, 153, 153, 0.2); +} + +.btn.btn-outline-warning.disabled:focus, +.btn.btn-outline-warning.disabled.focus, +.btn.btn-outline-warning:disabled:focus, +.btn.btn-outline-warning:disabled.focus { + background-color: transparent; + border-color: #ff9800; +} + +.btn.btn-outline-warning.disabled:hover, +.btn.btn-outline-warning:disabled:hover { + background-color: transparent; + border-color: #ff9800; +} + +.bg-inverse .btn.btn-outline-warning { + color: #ff9800; + background-color: transparent; + border-color: #ff9800; +} + +.bg-inverse .btn.btn-outline-warning:hover { + color: #ff9800; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-warning:focus, +.bg-inverse .btn.btn-outline-warning.focus, +.bg-inverse .btn.btn-outline-warning:hover { + color: #ff9800; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-warning:active, +.bg-inverse .btn.btn-outline-warning.active, +.open>.bg-inverse .btn.btn-outline-warning.dropdown-toggle, +.show>.bg-inverse .btn.btn-outline-warning.dropdown-toggle { + color: #ff9800; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.bg-inverse .btn.btn-outline-warning:active:hover, +.bg-inverse .btn.btn-outline-warning:active:focus, +.bg-inverse .btn.btn-outline-warning:active.focus, +.bg-inverse .btn.btn-outline-warning.active:hover, +.bg-inverse .btn.btn-outline-warning.active:focus, +.bg-inverse .btn.btn-outline-warning.active.focus, +.open>.bg-inverse .btn.btn-outline-warning.dropdown-toggle:hover, +.open>.bg-inverse .btn.btn-outline-warning.dropdown-toggle:focus, +.open>.bg-inverse .btn.btn-outline-warning.dropdown-toggle.focus, +.show>.bg-inverse .btn.btn-outline-warning.dropdown-toggle:hover, +.show>.bg-inverse .btn.btn-outline-warning.dropdown-toggle:focus, +.show>.bg-inverse .btn.btn-outline-warning.dropdown-toggle.focus { + color: #ff9800; + background-color: rgba(204, 204, 204, 0.25); + border-color: rgba(204, 204, 204, 0.25); +} + +.open>.bg-inverse .btn.btn-outline-warning.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: transparent; +} + +.open>.bg-inverse .btn.btn-outline-warning.dropdown-toggle.bmd-btn-icon:hover { + background-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-warning.disabled:focus, +.bg-inverse .btn.btn-outline-warning.disabled.focus, +.bg-inverse .btn.btn-outline-warning:disabled:focus, +.bg-inverse .btn.btn-outline-warning:disabled.focus { + background-color: transparent; + border-color: #ff9800; +} + +.bg-inverse .btn.btn-outline-warning.disabled:hover, +.bg-inverse .btn.btn-outline-warning:disabled:hover { + background-color: transparent; + border-color: #ff9800; +} + +.btn.btn-outline-warning.btn-link { + background-color: transparent; +} + +.btn.btn-outline-danger { + color: #f44336; + background-color: transparent; + border-color: #f44336; +} + +.btn.btn-outline-danger:hover { + color: #f44336; + background-color: rgba(153, 153, 153, 0.2); + border-color: #f44336; +} + +.btn.btn-outline-danger:focus, +.btn.btn-outline-danger.focus, +.btn.btn-outline-danger:hover { + color: #f44336; + background-color: rgba(153, 153, 153, 0.2); + border-color: #f44336; +} + +.btn.btn-outline-danger:active, +.btn.btn-outline-danger.active, +.open>.btn.btn-outline-danger.dropdown-toggle, +.show>.btn.btn-outline-danger.dropdown-toggle { + color: #f44336; + background-color: rgba(153, 153, 153, 0.2); + border-color: #f44336; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.btn.btn-outline-danger:active:hover, +.btn.btn-outline-danger:active:focus, +.btn.btn-outline-danger:active.focus, +.btn.btn-outline-danger.active:hover, +.btn.btn-outline-danger.active:focus, +.btn.btn-outline-danger.active.focus, +.open>.btn.btn-outline-danger.dropdown-toggle:hover, +.open>.btn.btn-outline-danger.dropdown-toggle:focus, +.open>.btn.btn-outline-danger.dropdown-toggle.focus, +.show>.btn.btn-outline-danger.dropdown-toggle:hover, +.show>.btn.btn-outline-danger.dropdown-toggle:focus, +.show>.btn.btn-outline-danger.dropdown-toggle.focus { + color: #f44336; + background-color: rgba(153, 153, 153, 0.4); + border-color: #f44336; +} + +.open>.btn.btn-outline-danger.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: transparent; +} + +.open>.btn.btn-outline-danger.dropdown-toggle.bmd-btn-icon:hover { + background-color: rgba(153, 153, 153, 0.2); +} + +.btn.btn-outline-danger.disabled:focus, +.btn.btn-outline-danger.disabled.focus, +.btn.btn-outline-danger:disabled:focus, +.btn.btn-outline-danger:disabled.focus { + background-color: transparent; + border-color: #f44336; +} + +.btn.btn-outline-danger.disabled:hover, +.btn.btn-outline-danger:disabled:hover { + background-color: transparent; + border-color: #f44336; +} + +.bg-inverse .btn.btn-outline-danger { + color: #f44336; + background-color: transparent; + border-color: #f44336; +} + +.bg-inverse .btn.btn-outline-danger:hover { + color: #f44336; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-danger:focus, +.bg-inverse .btn.btn-outline-danger.focus, +.bg-inverse .btn.btn-outline-danger:hover { + color: #f44336; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-danger:active, +.bg-inverse .btn.btn-outline-danger.active, +.open>.bg-inverse .btn.btn-outline-danger.dropdown-toggle, +.show>.bg-inverse .btn.btn-outline-danger.dropdown-toggle { + color: #f44336; + background-color: rgba(204, 204, 204, 0.15); + border-color: rgba(204, 204, 204, 0.15); + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.bg-inverse .btn.btn-outline-danger:active:hover, +.bg-inverse .btn.btn-outline-danger:active:focus, +.bg-inverse .btn.btn-outline-danger:active.focus, +.bg-inverse .btn.btn-outline-danger.active:hover, +.bg-inverse .btn.btn-outline-danger.active:focus, +.bg-inverse .btn.btn-outline-danger.active.focus, +.open>.bg-inverse .btn.btn-outline-danger.dropdown-toggle:hover, +.open>.bg-inverse .btn.btn-outline-danger.dropdown-toggle:focus, +.open>.bg-inverse .btn.btn-outline-danger.dropdown-toggle.focus, +.show>.bg-inverse .btn.btn-outline-danger.dropdown-toggle:hover, +.show>.bg-inverse .btn.btn-outline-danger.dropdown-toggle:focus, +.show>.bg-inverse .btn.btn-outline-danger.dropdown-toggle.focus { + color: #f44336; + background-color: rgba(204, 204, 204, 0.25); + border-color: rgba(204, 204, 204, 0.25); +} + +.open>.bg-inverse .btn.btn-outline-danger.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: transparent; +} + +.open>.bg-inverse .btn.btn-outline-danger.dropdown-toggle.bmd-btn-icon:hover { + background-color: rgba(204, 204, 204, 0.15); +} + +.bg-inverse .btn.btn-outline-danger.disabled:focus, +.bg-inverse .btn.btn-outline-danger.disabled.focus, +.bg-inverse .btn.btn-outline-danger:disabled:focus, +.bg-inverse .btn.btn-outline-danger:disabled.focus { + background-color: transparent; + border-color: #f44336; +} + +.bg-inverse .btn.btn-outline-danger.disabled:hover, +.bg-inverse .btn.btn-outline-danger:disabled:hover { + background-color: transparent; + border-color: #f44336; +} + +.btn.btn-outline-danger.btn-link { + background-color: transparent; +} + +.btn.btn-lg, +.btn-group-lg>.btn, +.btn-group-lg .btn { + padding: 1.125rem 2.25rem; + font-size: 0.875rem; + line-height: 1.333333; + border-radius: 0.2rem; +} + +.btn.btn-sm, +.btn-group-sm>.btn, +.btn-group-sm .btn { + padding: 0.40625rem 1.25rem; + font-size: 0.6875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.btn.btn-round { + border-radius: 30px; +} + +.btn.btn-fab, +.btn.btn-just-icon { + font-size: 24px; + height: 41px; + min-width: 41px; + width: 41px; + padding: 0; + overflow: hidden; + position: relative; + line-height: 41px; +} + +.btn.btn-fab.btn-round, +.btn.btn-just-icon.btn-round { + border-radius: 50%; +} + +.btn-group-sm .btn.btn-fab, +.btn.btn-fab.btn-sm, +.btn-group-sm>.btn.btn-fab, +.btn.btn-fab.btn-fab-mini, +.btn-group-sm .btn.btn-just-icon, +.btn.btn-just-icon.btn-sm, +.btn-group-sm>.btn.btn-just-icon, +.btn.btn-just-icon.btn-fab-mini { + height: 30px; + min-width: 30px; + width: 30px; +} + +.btn-group-sm .btn.btn-fab .material-icons, +.btn-group-sm .btn.btn-fab .fa, +.btn.btn-fab.btn-sm .material-icons, +.btn-group-sm>.btn.btn-fab .material-icons, +.btn.btn-fab.btn-sm .fa, +.btn-group-sm>.btn.btn-fab .fa, +.btn.btn-fab.btn-fab-mini .material-icons, +.btn.btn-fab.btn-fab-mini .fa, +.btn-group-sm .btn.btn-just-icon .material-icons, +.btn-group-sm .btn.btn-just-icon .fa, +.btn.btn-just-icon.btn-sm .material-icons, +.btn-group-sm>.btn.btn-just-icon .material-icons, +.btn.btn-just-icon.btn-sm .fa, +.btn-group-sm>.btn.btn-just-icon .fa, +.btn.btn-just-icon.btn-fab-mini .material-icons, +.btn.btn-just-icon.btn-fab-mini .fa { + font-size: 17px; + line-height: 29px; +} + +.btn-group-lg .btn.btn-fab, +.btn.btn-fab.btn-lg, +.btn-group-lg>.btn.btn-fab, +.btn-group-lg .btn.btn-just-icon, +.btn.btn-just-icon.btn-lg, +.btn-group-lg>.btn.btn-just-icon { + height: 57px; + min-width: 57px; + width: 57px; + line-height: 56px; +} + +.btn-group-lg .btn.btn-fab .material-icons, +.btn-group-lg .btn.btn-fab .fa, +.btn.btn-fab.btn-lg .material-icons, +.btn-group-lg>.btn.btn-fab .material-icons, +.btn.btn-fab.btn-lg .fa, +.btn-group-lg>.btn.btn-fab .fa, +.btn-group-lg .btn.btn-just-icon .material-icons, +.btn-group-lg .btn.btn-just-icon .fa, +.btn.btn-just-icon.btn-lg .material-icons, +.btn-group-lg>.btn.btn-just-icon .material-icons, +.btn.btn-just-icon.btn-lg .fa, +.btn-group-lg>.btn.btn-just-icon .fa { + font-size: 32px; + line-height: 56px; +} + +.btn.btn-fab .material-icons, +.btn.btn-fab .fa, +.btn.btn-just-icon .material-icons, +.btn.btn-just-icon .fa { + margin-top: 0; + position: absolute; + width: 100%; + transform: none; + left: 0; + top: 0; + height: 100%; + line-height: 41px; + font-size: 20px; +} + +.btn-just-icon.btn-lg, +.btn-group-lg>.btn-just-icon.btn { + font-size: 24px; + height: 41px; + min-width: 41px; + width: 41px; +} + +.input-group-btn>.btn { + border: 0; +} + +.btn .material-icons, +.btn:not(.btn-just-icon):not(.btn-fab) .fa { + position: relative; + display: inline-block; + top: 0; + margin-top: -1em; + margin-bottom: -1em; + font-size: 1.1rem; + vertical-align: middle; +} + +.bg-inverse fieldset[disabled][disabled] .btn, +.bg-inverse .btn.disabled, +.bg-inverse .btn:disabled, +.bg-inverse .btn[disabled], +.bg-inverse fieldset[disabled][disabled] .input-group-btn .btn, +.bg-inverse .input-group-btn .btn.disabled, +.bg-inverse .input-group-btn .btn:disabled, +.bg-inverse .input-group-btn .btn[disabled], +.bg-inverse fieldset[disabled][disabled] .btn-group, +.bg-inverse .btn-group.disabled, +.bg-inverse .btn-group:disabled, +.bg-inverse .btn-group[disabled], +.bg-inverse fieldset[disabled][disabled] .btn-group-vertical, +.bg-inverse .btn-group-vertical.disabled, +.bg-inverse .btn-group-vertical:disabled, +.bg-inverse .btn-group-vertical[disabled] { + color: rgba(255, 255, 255, 0.3); +} + +.btn-group, +.btn-group-vertical { + position: relative; + margin: 10px 1px; +} + +.btn-group .dropdown-menu, +.btn-group-vertical .dropdown-menu { + border-radius: 0 0 0.25rem 0.25rem; +} + +.btn-group.btn-group-raised, +.btn-group-vertical.btn-group-raised { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.btn-group .btn+.btn, +.btn-group .btn, +.btn-group .btn:active, +.btn-group .btn-group, +.btn-group-vertical .btn+.btn, +.btn-group-vertical .btn, +.btn-group-vertical .btn:active, +.btn-group-vertical .btn-group { + margin: 0; +} + +.btn-group>.btn-group, +.btn-group-vertical>.btn-group { + margin: 0; +} + +.form-check { + margin-bottom: .5rem; + padding-left: 0; +} + +.form-check .form-check-label { + cursor: pointer; + padding-left: 0; +} + +.form-group.is-focused .form-check .form-check-label { + color: rgba(0, 0, 0, 0.26); +} + +.form-group.is-focused .form-check .form-check-label:hover, +.form-group.is-focused .form-check .form-check-label:focus { + color: rgba(0, 0, 0, .54); +} + +fieldset[disabled] .form-group.is-focused .form-check .form-check-label { + color: rgba(0, 0, 0, 0.26); +} + +.form-check .form-check-input { + opacity: 0; + position: absolute; + margin: 0; + z-index: -1; + width: 0; + height: 0; + overflow: hidden; + left: 0; + pointer-events: none; +} + +.form-check .form-check-sign { + vertical-align: middle; + position: relative; + top: -2px; + float: left; + padding-right: 10px; + display: inline-block; +} + +.form-check .form-check-sign:before { + display: block; + position: absolute; + left: 0; + content: ""; + background-color: rgba(0, 0, 0, 0.84); + height: 20px; + width: 20px; + border-radius: 100%; + z-index: 1; + opacity: 0; + margin: 0; + top: 0; + -webkit-transform: scale3d(2.3, 2.3, 1); + -moz-transform: scale3d(2.3, 2.3, 1); + -o-transform: scale3d(2.3, 2.3, 1); + -ms-transform: scale3d(2.3, 2.3, 1); + transform: scale3d(2.3, 2.3, 1); +} + +.form-check .form-check-sign .check { + position: relative; + display: inline-block; + width: 20px; + height: 20px; + border: 1px solid rgba(0, 0, 0, .54); + overflow: hidden; + z-index: 1; + border-radius: 3px; +} + +.form-check .form-check-sign .check:before { + position: absolute; + content: ""; + transform: rotate(45deg); + display: block; + margin-top: -3px; + margin-left: 7px; + width: 0; + color: #fff; + height: 0; + box-shadow: 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0 inset; + animation: checkboxOff 0.3s forwards; +} + +.form-check .form-check-input:focus+.form-check-sign .check:after { + opacity: 0.2; +} + +.form-check .form-check-input:checked~.form-check-sign .check { + background: #9c27b0; +} + +.form-check .form-check-input:checked~.form-check-sign .check:before { + color: #FFFFFF; + box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px; + animation: checkboxOn 0.3s forwards; +} + +.form-check .form-check-input:checked~.form-check-sign:before { + animation: rippleOn 500ms; +} + +.form-check .form-check-input:checked~.form-check-sign .check:after { + animation: rippleOn 500ms forwards; +} + +.form-check .form-check-input:not(:checked)+.form-check-sign:before { + animation: rippleOff 500ms; +} + +.form-check .form-check-input:not(:checked)+.form-check-sign .check:after { + animation: rippleOff 500ms; +} + +.form-check .rtl .form-check .form-check-sign .check::before { + margin-right: 10px; +} + +fieldset[disabled] .form-check, +fieldset[disabled] .form-check .form-check-input, +.form-check .form-check-input[disabled]~.form-check-sign .check, +.form-check .form-check-input[disabled]+.circle { + opacity: 0.5; +} + +.form-check .form-check-input[disabled]~.form-check-sign .check { + border-color: #000000; + opacity: .26; +} + +.form-check .form-check-input[disabled]+.form-check-sign .check:after { + background-color: rgba(0, 0, 0, 0.87); + transform: rotate(-45deg); +} + +.form-check .form-check-input[disabled][checked]+.form-check-sign .check { + background-color: #000000; +} + +@keyframes checkboxOn { + 0% { + box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 15px 2px 0 11px; + } + + 50% { + box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px 2px 0 11px; + } + + 100% { + box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px; + } +} + +@keyframes rippleOn { + 0% { + opacity: 0; + } + + 50% { + opacity: 0.2; + } + + 100% { + opacity: 0; + } +} + +@keyframes rippleOff { + 0% { + opacity: 0; + } + + 50% { + opacity: 0.2; + } + + 100% { + opacity: 0; + } +} + +.form-check .form-check-label { + cursor: pointer; + padding-left: 25px; + position: relative; +} + +.form-group.is-focused .form-check .form-check-label { + color: rgba(0, 0, 0, 0.26); +} + +.form-group.is-focused .form-check .form-check-label:hover, +.form-group.is-focused .form-check .form-check-label:focus { + color: rgba(0, 0, 0, .54); +} + +fieldset[disabled] .form-group.is-focused .form-check .form-check-label { + color: rgba(0, 0, 0, 0.26); +} + +.form-check .form-check-label span { + display: block; + position: absolute; + left: -1px; + top: -1px; + transition-duration: 0.2s; +} + +.form-check .form-check-label .circle { + border: 1px solid rgba(0, 0, 0, .54); + height: 15px; + width: 15px; + border-radius: 100%; + top: 1px; +} + +.form-check .form-check-label .circle .check { + height: 15px; + width: 15px; + border-radius: 100%; + background-color: #9c27b0; + -webkit-transform: scale3d(0, 0, 0); + -moz-transform: scale3d(0, 0, 0); + -o-transform: scale3d(0, 0, 0); + -ms-transform: scale3d(0, 0, 0); + transform: scale3d(0, 0, 0); +} + +.form-check .form-check-input { + opacity: 0; + height: 0; + width: 0; + overflow: hidden; +} + +.form-check .form-check-input:checked~.check, +.form-check .form-check-input:checked~.circle { + opacity: 1; +} + +.form-check .form-check-input:checked~.check { + background-color: #9c27b0; +} + +.form-check .form-check-input:checked~.circle { + border-color: #9c27b0; +} + +.form-check .form-check-input:checked .check:before { + animation: checkboxOn .5s forwards; +} + +.form-check .form-check-input:checked~.circle .check { + -webkit-transform: scale3d(0.65, 0.65, 1); + -moz-transform: scale3d(0.65, 0.65, 1); + -o-transform: scale3d(0.65, 0.65, 1); + -ms-transform: scale3d(0.65, 0.65, 1); + transform: scale3d(0.65, 0.65, 1); +} + +.form-check .form-check-input[disabled]~.check, +.form-check .form-check-input[disabled]~.circle { + opacity: 0.26; +} + +.form-check .form-check-input[disabled]~.check { + background-color: #000000; +} + +.form-check .form-check-input[disabled]~.circle { + border-color: #000000; +} + +.form-check .form-check-input[disabled]+.circle .check { + background-color: #000000; +} + +.form-check .form-check-sign { + vertical-align: middle; + position: relative; + top: -2px; + float: left; + padding-right: 10px; + display: inline-block; +} + +.form-check .form-check-label .circle:before { + display: block; + position: absolute; + left: -1px; + content: ""; + background-color: rgba(0, 0, 0, 0.84); + height: 15px; + width: 15px; + border-radius: 100%; + z-index: 1; + opacity: 0; + margin: 0; + top: -1px; + -webkit-transform: scale3d(2.3, 2.3, 1); + -moz-transform: scale3d(2.3, 2.3, 1); + -o-transform: scale3d(2.3, 2.3, 1); + -ms-transform: scale3d(2.3, 2.3, 1); + transform: scale3d(2.3, 2.3, 1); +} + +.form-check .form-check-label .form-check-input:checked+.circle:before { + animation: rippleOn .5s; +} + +.form-check .form-check-label .form-check-input:checked+.circle .check:before { + color: #FFFFFF; + box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px; + animation: checkboxOn 0.3s forwards; +} + +.form-check+.form-check { + margin-top: 0; +} + +@keyframes checkboxOn { + 0% { + box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 15px 2px 0 11px; + } + + 50% { + box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px 2px 0 11px; + } + + 100% { + box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px; + } +} + +@keyframes rippleOn { + 0% { + opacity: 0; + } + + 50% { + opacity: 0.2; + } + + 100% { + opacity: 0; + } +} + +@keyframes rippleOff { + 0% { + opacity: 0; + } + + 50% { + opacity: 0.2; + } + + 100% { + opacity: 0; + } +} + +form { + margin-bottom: 1.125rem; +} + +.card form { + margin: 0; +} + +.navbar form { + margin-bottom: 0; +} + +.navbar form .bmd-form-group { + display: inline-block; + padding-top: 0; +} + +.navbar form .btn { + margin-bottom: 0; +} + +.form-control { + background: no-repeat center bottom, center calc(100% - 1px); + background-size: 0 100%, 100% 100%; + border: 0; + height: 36px; + transition: background 0s ease-out; + padding-left: 0; + padding-right: 0; + border-radius: 0; + font-size: 14px; +} + +.form-control:focus, +.bmd-form-group.is-focused .form-control { + background-size: 100% 100%, 100% 100%; + transition-duration: 0.3s; + box-shadow: none; +} + +.form-control::-moz-placeholder { + color: #AAAAAA; + font-weight: 400; + font-size: 14px; +} + +.form-control:-ms-input-placeholder { + color: #AAAAAA; + font-weight: 400; + font-size: 14px; +} + +.form-control::-webkit-input-placeholder { + color: #AAAAAA; + font-weight: 400; + font-size: 14px; +} + +.has-white .form-control::-moz-placeholder { + color: #fff; +} + +.has-white .form-control:-ms-input-placeholder { + color: #fff; +} + +.has-white .form-control::-webkit-input-placeholder { + color: #fff; +} + +.bmd-help { + position: absolute; + display: none; + font-size: .8rem; + font-weight: normal; +} + +.bmd-form-group.is-focused .bmd-help { + display: block; +} + +.bmd-help:nth-of-type(2) { + padding-top: 1rem; +} + +.bmd-help+.bmd-help { + position: relative; + margin-bottom: 0; +} + +.radio label, +.is-focused .radio label, +.radio-inline, +.is-focused .radio-inline, +.checkbox label, +.is-focused .checkbox label, +.checkbox-inline, +.is-focused .checkbox-inline, +.switch label, +.is-focused .switch label { + color: #999999; +} + +.radio label label:has(input[type=radio][disabled]), +.radio label label:has(input[type=radio][disabled]):hover, +.radio label label:has(input[type=radio][disabled]):focus, +.radio label label:has(input[type=checkbox][disabled]), +.radio label label:has(input[type=checkbox][disabled]):hover, +.radio label label:has(input[type=checkbox][disabled]):focus, +fieldset[disabled] .radio label, +fieldset[disabled] .radio label:hover, +fieldset[disabled] .radio label:focus, +.is-focused .radio label label:has(input[type=radio][disabled]), +.is-focused .radio label label:has(input[type=radio][disabled]):hover, +.is-focused .radio label label:has(input[type=radio][disabled]):focus, +.is-focused .radio label label:has(input[type=checkbox][disabled]), +.is-focused .radio label label:has(input[type=checkbox][disabled]):hover, +.is-focused .radio label label:has(input[type=checkbox][disabled]):focus, +fieldset[disabled] .is-focused .radio label, +fieldset[disabled] .is-focused .radio label:hover, +fieldset[disabled] .is-focused .radio label:focus, +.radio-inline label:has(input[type=radio][disabled]), +.radio-inline label:has(input[type=radio][disabled]):hover, +.radio-inline label:has(input[type=radio][disabled]):focus, +.radio-inline label:has(input[type=checkbox][disabled]), +.radio-inline label:has(input[type=checkbox][disabled]):hover, +.radio-inline label:has(input[type=checkbox][disabled]):focus, +fieldset[disabled] .radio-inline, +fieldset[disabled] .radio-inline:hover, +fieldset[disabled] .radio-inline:focus, +.is-focused .radio-inline label:has(input[type=radio][disabled]), +.is-focused .radio-inline label:has(input[type=radio][disabled]):hover, +.is-focused .radio-inline label:has(input[type=radio][disabled]):focus, +.is-focused .radio-inline label:has(input[type=checkbox][disabled]), +.is-focused .radio-inline label:has(input[type=checkbox][disabled]):hover, +.is-focused .radio-inline label:has(input[type=checkbox][disabled]):focus, +fieldset[disabled] .is-focused .radio-inline, +fieldset[disabled] .is-focused .radio-inline:hover, +fieldset[disabled] .is-focused .radio-inline:focus, +.checkbox label label:has(input[type=radio][disabled]), +.checkbox label label:has(input[type=radio][disabled]):hover, +.checkbox label label:has(input[type=radio][disabled]):focus, +.checkbox label label:has(input[type=checkbox][disabled]), +.checkbox label label:has(input[type=checkbox][disabled]):hover, +.checkbox label label:has(input[type=checkbox][disabled]):focus, +fieldset[disabled] .checkbox label, +fieldset[disabled] .checkbox label:hover, +fieldset[disabled] .checkbox label:focus, +.is-focused .checkbox label label:has(input[type=radio][disabled]), +.is-focused .checkbox label label:has(input[type=radio][disabled]):hover, +.is-focused .checkbox label label:has(input[type=radio][disabled]):focus, +.is-focused .checkbox label label:has(input[type=checkbox][disabled]), +.is-focused .checkbox label label:has(input[type=checkbox][disabled]):hover, +.is-focused .checkbox label label:has(input[type=checkbox][disabled]):focus, +fieldset[disabled] .is-focused .checkbox label, +fieldset[disabled] .is-focused .checkbox label:hover, +fieldset[disabled] .is-focused .checkbox label:focus, +.checkbox-inline label:has(input[type=radio][disabled]), +.checkbox-inline label:has(input[type=radio][disabled]):hover, +.checkbox-inline label:has(input[type=radio][disabled]):focus, +.checkbox-inline label:has(input[type=checkbox][disabled]), +.checkbox-inline label:has(input[type=checkbox][disabled]):hover, +.checkbox-inline label:has(input[type=checkbox][disabled]):focus, +fieldset[disabled] .checkbox-inline, +fieldset[disabled] .checkbox-inline:hover, +fieldset[disabled] .checkbox-inline:focus, +.is-focused .checkbox-inline label:has(input[type=radio][disabled]), +.is-focused .checkbox-inline label:has(input[type=radio][disabled]):hover, +.is-focused .checkbox-inline label:has(input[type=radio][disabled]):focus, +.is-focused .checkbox-inline label:has(input[type=checkbox][disabled]), +.is-focused .checkbox-inline label:has(input[type=checkbox][disabled]):hover, +.is-focused .checkbox-inline label:has(input[type=checkbox][disabled]):focus, +fieldset[disabled] .is-focused .checkbox-inline, +fieldset[disabled] .is-focused .checkbox-inline:hover, +fieldset[disabled] .is-focused .checkbox-inline:focus, +.switch label label:has(input[type=radio][disabled]), +.switch label label:has(input[type=radio][disabled]):hover, +.switch label label:has(input[type=radio][disabled]):focus, +.switch label label:has(input[type=checkbox][disabled]), +.switch label label:has(input[type=checkbox][disabled]):hover, +.switch label label:has(input[type=checkbox][disabled]):focus, +fieldset[disabled] .switch label, +fieldset[disabled] .switch label:hover, +fieldset[disabled] .switch label:focus, +.is-focused .switch label label:has(input[type=radio][disabled]), +.is-focused .switch label label:has(input[type=radio][disabled]):hover, +.is-focused .switch label label:has(input[type=radio][disabled]):focus, +.is-focused .switch label label:has(input[type=checkbox][disabled]), +.is-focused .switch label label:has(input[type=checkbox][disabled]):hover, +.is-focused .switch label label:has(input[type=checkbox][disabled]):focus, +fieldset[disabled] .is-focused .switch label, +fieldset[disabled] .is-focused .switch label:hover, +fieldset[disabled] .is-focused .switch label:focus { + color: #999999; +} + +[class^='bmd-label'], +[class*=' bmd-label'] { + color: #999999; +} + +.form-control, +.is-focused .form-control { + background-image: linear-gradient(to top, #9c27b0 2px, rgba(156, 39, 176, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +.form-control:invalid { + background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +.form-control:read-only { + background-image: linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +fieldset[disabled][disabled] .form-control, +.form-control.disabled, +.form-control:disabled, +.form-control[disabled] { + background-image: linear-gradient(to right, #d2d2d2 0%, #d2d2d2 30%, transparent 30%, transparent 100%); + background-repeat: repeat-x; + background-size: 3px 1px; +} + +.form-control.form-control-success, +.is-focused .form-control.form-control-success { + background-image: linear-gradient(to top, #9c27b0 2px, rgba(156, 39, 176, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg=="; +} + +.form-control.form-control-warning, +.is-focused .form-control.form-control-warning { + background-image: linear-gradient(to top, #9c27b0 2px, rgba(156, 39, 176, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+"; +} + +.form-control.form-control-danger, +.is-focused .form-control.form-control-danger { + background-image: linear-gradient(to top, #9c27b0 2px, rgba(156, 39, 176, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4="; +} + +.is-focused .valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #999999; +} + +.is-focused .valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .5rem; + margin-top: .1rem; + font-size: .875rem; + line-height: 1; + color: #fff; + background-color: rgba(153, 153, 153, 0.8); + border-radius: .2rem; +} + +.was-validated .is-focused .form-control:valid, +.is-focused .form-control.is-valid, +.was-validated .is-focused .custom-select:valid, +.is-focused .custom-select.is-valid { + border-color: #999999; +} + +.was-validated .is-focused .form-control:valid:focus, +.is-focused .form-control.is-valid:focus, +.was-validated .is-focused .custom-select:valid:focus, +.is-focused .custom-select.is-valid:focus { + border-color: #999999; + box-shadow: 0 0 0 0.2rem rgba(153, 153, 153, 0.25); +} + +.was-validated .is-focused .form-control:valid~.valid-feedback, +.was-validated .is-focused .form-control:valid~.valid-tooltip, +.is-focused .form-control.is-valid~.valid-feedback, +.is-focused .form-control.is-valid~.valid-tooltip, +.was-validated .is-focused .custom-select:valid~.valid-feedback, +.was-validated .is-focused .custom-select:valid~.valid-tooltip, +.is-focused .custom-select.is-valid~.valid-feedback, +.is-focused .custom-select.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .is-focused .form-check-input:valid~.form-check-label, +.is-focused .form-check-input.is-valid~.form-check-label { + color: #999999; +} + +.was-validated .is-focused .form-check-input:valid~.valid-feedback, +.was-validated .is-focused .form-check-input:valid~.valid-tooltip, +.is-focused .form-check-input.is-valid~.valid-feedback, +.is-focused .form-check-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .is-focused .custom-control-input:valid~.custom-control-label, +.is-focused .custom-control-input.is-valid~.custom-control-label { + color: #999999; +} + +.was-validated .is-focused .custom-control-input:valid~.custom-control-label::before, +.is-focused .custom-control-input.is-valid~.custom-control-label::before { + background-color: #d9d9d9; +} + +.was-validated .is-focused .custom-control-input:valid~.valid-feedback, +.was-validated .is-focused .custom-control-input:valid~.valid-tooltip, +.is-focused .custom-control-input.is-valid~.valid-feedback, +.is-focused .custom-control-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .is-focused .custom-control-input:valid:checked~.custom-control-label::before, +.is-focused .custom-control-input.is-valid:checked~.custom-control-label::before { + background-color: #b3b3b3; +} + +.was-validated .is-focused .custom-control-input:valid:focus~.custom-control-label::before, +.is-focused .custom-control-input.is-valid:focus~.custom-control-label::before { + box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(153, 153, 153, 0.25); +} + +.was-validated .is-focused .custom-file-input:valid~.custom-file-label, +.is-focused .custom-file-input.is-valid~.custom-file-label { + border-color: #999999; +} + +.was-validated .is-focused .custom-file-input:valid~.custom-file-label::before, +.is-focused .custom-file-input.is-valid~.custom-file-label::before { + border-color: inherit; +} + +.was-validated .is-focused .custom-file-input:valid~.valid-feedback, +.was-validated .is-focused .custom-file-input:valid~.valid-tooltip, +.is-focused .custom-file-input.is-valid~.valid-feedback, +.is-focused .custom-file-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .is-focused .custom-file-input:valid:focus~.custom-file-label, +.is-focused .custom-file-input.is-valid:focus~.custom-file-label { + box-shadow: 0 0 0 0.2rem rgba(153, 153, 153, 0.25); +} + +.is-focused [class^='bmd-label'], +.is-focused [class*=' bmd-label'] { + color: #9c27b0; +} + +.is-focused .bmd-label-placeholder { + color: #999999; +} + +.is-focused .form-control { + border-color: #d2d2d2; +} + +.is-focused .bmd-help { + color: #555555; +} + +.has-success [class^='bmd-label'], +.has-success [class*=' bmd-label'] { + color: #4caf50; +} + +.has-success .form-control, +.is-focused .has-success .form-control { + background-image: linear-gradient(to top, #4caf50 2px, rgba(76, 175, 80, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +.has-success .form-control:invalid { + background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +.has-success .form-control:read-only { + background-image: linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +fieldset[disabled][disabled] .has-success .form-control, +.has-success .form-control.disabled, +.has-success .form-control:disabled, +.has-success .form-control[disabled] { + background-image: linear-gradient(to right, #d2d2d2 0%, #d2d2d2 30%, transparent 30%, transparent 100%); + background-repeat: repeat-x; + background-size: 3px 1px; +} + +.has-success .form-control.form-control-success, +.is-focused .has-success .form-control.form-control-success { + background-image: linear-gradient(to top, #4caf50 2px, rgba(76, 175, 80, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg=="; +} + +.has-success .form-control.form-control-warning, +.is-focused .has-success .form-control.form-control-warning { + background-image: linear-gradient(to top, #4caf50 2px, rgba(76, 175, 80, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+"; +} + +.has-success .form-control.form-control-danger, +.is-focused .has-success .form-control.form-control-danger { + background-image: linear-gradient(to top, #4caf50 2px, rgba(76, 175, 80, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4="; +} + +.has-success .is-focused .valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #4caf50; +} + +.has-success .is-focused .valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .5rem; + margin-top: .1rem; + font-size: .875rem; + line-height: 1; + color: #fff; + background-color: rgba(76, 175, 80, 0.8); + border-radius: .2rem; +} + +.was-validated .has-success .is-focused .form-control:valid, +.has-success .is-focused .form-control.is-valid, +.was-validated .has-success .is-focused .custom-select:valid, +.has-success .is-focused .custom-select.is-valid { + border-color: #4caf50; +} + +.was-validated .has-success .is-focused .form-control:valid:focus, +.has-success .is-focused .form-control.is-valid:focus, +.was-validated .has-success .is-focused .custom-select:valid:focus, +.has-success .is-focused .custom-select.is-valid:focus { + border-color: #4caf50; + box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.25); +} + +.was-validated .has-success .is-focused .form-control:valid~.valid-feedback, +.was-validated .has-success .is-focused .form-control:valid~.valid-tooltip, +.has-success .is-focused .form-control.is-valid~.valid-feedback, +.has-success .is-focused .form-control.is-valid~.valid-tooltip, +.was-validated .has-success .is-focused .custom-select:valid~.valid-feedback, +.was-validated .has-success .is-focused .custom-select:valid~.valid-tooltip, +.has-success .is-focused .custom-select.is-valid~.valid-feedback, +.has-success .is-focused .custom-select.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-success .is-focused .form-check-input:valid~.form-check-label, +.has-success .is-focused .form-check-input.is-valid~.form-check-label { + color: #4caf50; +} + +.was-validated .has-success .is-focused .form-check-input:valid~.valid-feedback, +.was-validated .has-success .is-focused .form-check-input:valid~.valid-tooltip, +.has-success .is-focused .form-check-input.is-valid~.valid-feedback, +.has-success .is-focused .form-check-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-success .is-focused .custom-control-input:valid~.custom-control-label, +.has-success .is-focused .custom-control-input.is-valid~.custom-control-label { + color: #4caf50; +} + +.was-validated .has-success .is-focused .custom-control-input:valid~.custom-control-label::before, +.has-success .is-focused .custom-control-input.is-valid~.custom-control-label::before { + background-color: #a3d7a5; +} + +.was-validated .has-success .is-focused .custom-control-input:valid~.valid-feedback, +.was-validated .has-success .is-focused .custom-control-input:valid~.valid-tooltip, +.has-success .is-focused .custom-control-input.is-valid~.valid-feedback, +.has-success .is-focused .custom-control-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-success .is-focused .custom-control-input:valid:checked~.custom-control-label::before, +.has-success .is-focused .custom-control-input.is-valid:checked~.custom-control-label::before { + background-color: #6ec071; +} + +.was-validated .has-success .is-focused .custom-control-input:valid:focus~.custom-control-label::before, +.has-success .is-focused .custom-control-input.is-valid:focus~.custom-control-label::before { + box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(76, 175, 80, 0.25); +} + +.was-validated .has-success .is-focused .custom-file-input:valid~.custom-file-label, +.has-success .is-focused .custom-file-input.is-valid~.custom-file-label { + border-color: #4caf50; +} + +.was-validated .has-success .is-focused .custom-file-input:valid~.custom-file-label::before, +.has-success .is-focused .custom-file-input.is-valid~.custom-file-label::before { + border-color: inherit; +} + +.was-validated .has-success .is-focused .custom-file-input:valid~.valid-feedback, +.was-validated .has-success .is-focused .custom-file-input:valid~.valid-tooltip, +.has-success .is-focused .custom-file-input.is-valid~.valid-feedback, +.has-success .is-focused .custom-file-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-success .is-focused .custom-file-input:valid:focus~.custom-file-label, +.has-success .is-focused .custom-file-input.is-valid:focus~.custom-file-label { + box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.25); +} + +.has-success .is-focused [class^='bmd-label'], +.has-success .is-focused [class*=' bmd-label'] { + color: #4caf50; +} + +.has-success .is-focused .bmd-label-placeholder { + color: #4caf50; +} + +.has-success .is-focused .form-control { + border-color: #4caf50; +} + +.has-success .is-focused .bmd-help { + color: #555555; +} + +.has-info [class^='bmd-label'], +.has-info [class*=' bmd-label'] { + color: #00bcd4; +} + +.has-info .form-control, +.is-focused .has-info .form-control { + background-image: linear-gradient(to top, #00bcd4 2px, rgba(0, 188, 212, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +.has-info .form-control:invalid { + background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +.has-info .form-control:read-only { + background-image: linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +fieldset[disabled][disabled] .has-info .form-control, +.has-info .form-control.disabled, +.has-info .form-control:disabled, +.has-info .form-control[disabled] { + background-image: linear-gradient(to right, #d2d2d2 0%, #d2d2d2 30%, transparent 30%, transparent 100%); + background-repeat: repeat-x; + background-size: 3px 1px; +} + +.has-info .form-control.form-control-success, +.is-focused .has-info .form-control.form-control-success { + background-image: linear-gradient(to top, #00bcd4 2px, rgba(0, 188, 212, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg=="; +} + +.has-info .form-control.form-control-warning, +.is-focused .has-info .form-control.form-control-warning { + background-image: linear-gradient(to top, #00bcd4 2px, rgba(0, 188, 212, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+"; +} + +.has-info .form-control.form-control-danger, +.is-focused .has-info .form-control.form-control-danger { + background-image: linear-gradient(to top, #00bcd4 2px, rgba(0, 188, 212, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4="; +} + +.has-info .is-focused .valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #00bcd4; +} + +.has-info .is-focused .valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .5rem; + margin-top: .1rem; + font-size: .875rem; + line-height: 1; + color: #fff; + background-color: rgba(0, 188, 212, 0.8); + border-radius: .2rem; +} + +.was-validated .has-info .is-focused .form-control:valid, +.has-info .is-focused .form-control.is-valid, +.was-validated .has-info .is-focused .custom-select:valid, +.has-info .is-focused .custom-select.is-valid { + border-color: #00bcd4; +} + +.was-validated .has-info .is-focused .form-control:valid:focus, +.has-info .is-focused .form-control.is-valid:focus, +.was-validated .has-info .is-focused .custom-select:valid:focus, +.has-info .is-focused .custom-select.is-valid:focus { + border-color: #00bcd4; + box-shadow: 0 0 0 0.2rem rgba(0, 188, 212, 0.25); +} + +.was-validated .has-info .is-focused .form-control:valid~.valid-feedback, +.was-validated .has-info .is-focused .form-control:valid~.valid-tooltip, +.has-info .is-focused .form-control.is-valid~.valid-feedback, +.has-info .is-focused .form-control.is-valid~.valid-tooltip, +.was-validated .has-info .is-focused .custom-select:valid~.valid-feedback, +.was-validated .has-info .is-focused .custom-select:valid~.valid-tooltip, +.has-info .is-focused .custom-select.is-valid~.valid-feedback, +.has-info .is-focused .custom-select.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-info .is-focused .form-check-input:valid~.form-check-label, +.has-info .is-focused .form-check-input.is-valid~.form-check-label { + color: #00bcd4; +} + +.was-validated .has-info .is-focused .form-check-input:valid~.valid-feedback, +.was-validated .has-info .is-focused .form-check-input:valid~.valid-tooltip, +.has-info .is-focused .form-check-input.is-valid~.valid-feedback, +.has-info .is-focused .form-check-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-info .is-focused .custom-control-input:valid~.custom-control-label, +.has-info .is-focused .custom-control-input.is-valid~.custom-control-label { + color: #00bcd4; +} + +.was-validated .has-info .is-focused .custom-control-input:valid~.custom-control-label::before, +.has-info .is-focused .custom-control-input.is-valid~.custom-control-label::before { + background-color: #55ecff; +} + +.was-validated .has-info .is-focused .custom-control-input:valid~.valid-feedback, +.was-validated .has-info .is-focused .custom-control-input:valid~.valid-tooltip, +.has-info .is-focused .custom-control-input.is-valid~.valid-feedback, +.has-info .is-focused .custom-control-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-info .is-focused .custom-control-input:valid:checked~.custom-control-label::before, +.has-info .is-focused .custom-control-input.is-valid:checked~.custom-control-label::before { + background-color: #08e3ff; +} + +.was-validated .has-info .is-focused .custom-control-input:valid:focus~.custom-control-label::before, +.has-info .is-focused .custom-control-input.is-valid:focus~.custom-control-label::before { + box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(0, 188, 212, 0.25); +} + +.was-validated .has-info .is-focused .custom-file-input:valid~.custom-file-label, +.has-info .is-focused .custom-file-input.is-valid~.custom-file-label { + border-color: #00bcd4; +} + +.was-validated .has-info .is-focused .custom-file-input:valid~.custom-file-label::before, +.has-info .is-focused .custom-file-input.is-valid~.custom-file-label::before { + border-color: inherit; +} + +.was-validated .has-info .is-focused .custom-file-input:valid~.valid-feedback, +.was-validated .has-info .is-focused .custom-file-input:valid~.valid-tooltip, +.has-info .is-focused .custom-file-input.is-valid~.valid-feedback, +.has-info .is-focused .custom-file-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-info .is-focused .custom-file-input:valid:focus~.custom-file-label, +.has-info .is-focused .custom-file-input.is-valid:focus~.custom-file-label { + box-shadow: 0 0 0 0.2rem rgba(0, 188, 212, 0.25); +} + +.has-info .is-focused [class^='bmd-label'], +.has-info .is-focused [class*=' bmd-label'] { + color: #00bcd4; +} + +.has-info .is-focused .bmd-label-placeholder { + color: #00bcd4; +} + +.has-info .is-focused .form-control { + border-color: #00bcd4; +} + +.has-info .is-focused .bmd-help { + color: #555555; +} + +.has-white [class^='bmd-label'], +.has-white [class*=' bmd-label'] { + color: #fff; +} + +.has-white .form-control, +.is-focused .has-white .form-control { + background-image: linear-gradient(to top, #fff 2px, rgba(255, 255, 255, 0) 2px), linear-gradient(to top, #FFFFFF 1px, rgba(255, 255, 255, 0) 1px); +} + +.has-white .form-control:invalid { + background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #FFFFFF 1px, rgba(255, 255, 255, 0) 1px); +} + +.has-white .form-control:read-only { + background-image: linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), linear-gradient(to top, #FFFFFF 1px, rgba(255, 255, 255, 0) 1px); +} + +fieldset[disabled][disabled] .has-white .form-control, +.has-white .form-control.disabled, +.has-white .form-control:disabled, +.has-white .form-control[disabled] { + background-image: linear-gradient(to right, #FFFFFF 0%, #FFFFFF 30%, transparent 30%, transparent 100%); + background-repeat: repeat-x; + background-size: 3px 1px; +} + +.has-white .form-control.form-control-success, +.is-focused .has-white .form-control.form-control-success { + background-image: linear-gradient(to top, #fff 2px, rgba(255, 255, 255, 0) 2px), linear-gradient(to top, #FFFFFF 1px, rgba(255, 255, 255, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg=="; +} + +.has-white .form-control.form-control-warning, +.is-focused .has-white .form-control.form-control-warning { + background-image: linear-gradient(to top, #fff 2px, rgba(255, 255, 255, 0) 2px), linear-gradient(to top, #FFFFFF 1px, rgba(255, 255, 255, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+"; +} + +.has-white .form-control.form-control-danger, +.is-focused .has-white .form-control.form-control-danger { + background-image: linear-gradient(to top, #fff 2px, rgba(255, 255, 255, 0) 2px), linear-gradient(to top, #FFFFFF 1px, rgba(255, 255, 255, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4="; +} + +.has-white .is-focused .valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #fff; +} + +.has-white .is-focused .valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .5rem; + margin-top: .1rem; + font-size: .875rem; + line-height: 1; + color: #fff; + background-color: rgba(255, 255, 255, 0.8); + border-radius: .2rem; +} + +.was-validated .has-white .is-focused .form-control:valid, +.has-white .is-focused .form-control.is-valid, +.was-validated .has-white .is-focused .custom-select:valid, +.has-white .is-focused .custom-select.is-valid { + border-color: #fff; +} + +.was-validated .has-white .is-focused .form-control:valid:focus, +.has-white .is-focused .form-control.is-valid:focus, +.was-validated .has-white .is-focused .custom-select:valid:focus, +.has-white .is-focused .custom-select.is-valid:focus { + border-color: #fff; + box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.25); +} + +.was-validated .has-white .is-focused .form-control:valid~.valid-feedback, +.was-validated .has-white .is-focused .form-control:valid~.valid-tooltip, +.has-white .is-focused .form-control.is-valid~.valid-feedback, +.has-white .is-focused .form-control.is-valid~.valid-tooltip, +.was-validated .has-white .is-focused .custom-select:valid~.valid-feedback, +.was-validated .has-white .is-focused .custom-select:valid~.valid-tooltip, +.has-white .is-focused .custom-select.is-valid~.valid-feedback, +.has-white .is-focused .custom-select.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-white .is-focused .form-check-input:valid~.form-check-label, +.has-white .is-focused .form-check-input.is-valid~.form-check-label { + color: #fff; +} + +.was-validated .has-white .is-focused .form-check-input:valid~.valid-feedback, +.was-validated .has-white .is-focused .form-check-input:valid~.valid-tooltip, +.has-white .is-focused .form-check-input.is-valid~.valid-feedback, +.has-white .is-focused .form-check-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-white .is-focused .custom-control-input:valid~.custom-control-label, +.has-white .is-focused .custom-control-input.is-valid~.custom-control-label { + color: #fff; +} + +.was-validated .has-white .is-focused .custom-control-input:valid~.custom-control-label::before, +.has-white .is-focused .custom-control-input.is-valid~.custom-control-label::before { + background-color: white; +} + +.was-validated .has-white .is-focused .custom-control-input:valid~.valid-feedback, +.was-validated .has-white .is-focused .custom-control-input:valid~.valid-tooltip, +.has-white .is-focused .custom-control-input.is-valid~.valid-feedback, +.has-white .is-focused .custom-control-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-white .is-focused .custom-control-input:valid:checked~.custom-control-label::before, +.has-white .is-focused .custom-control-input.is-valid:checked~.custom-control-label::before { + background-color: white; +} + +.was-validated .has-white .is-focused .custom-control-input:valid:focus~.custom-control-label::before, +.has-white .is-focused .custom-control-input.is-valid:focus~.custom-control-label::before { + box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(255, 255, 255, 0.25); +} + +.was-validated .has-white .is-focused .custom-file-input:valid~.custom-file-label, +.has-white .is-focused .custom-file-input.is-valid~.custom-file-label { + border-color: #fff; +} + +.was-validated .has-white .is-focused .custom-file-input:valid~.custom-file-label::before, +.has-white .is-focused .custom-file-input.is-valid~.custom-file-label::before { + border-color: inherit; +} + +.was-validated .has-white .is-focused .custom-file-input:valid~.valid-feedback, +.was-validated .has-white .is-focused .custom-file-input:valid~.valid-tooltip, +.has-white .is-focused .custom-file-input.is-valid~.valid-feedback, +.has-white .is-focused .custom-file-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-white .is-focused .custom-file-input:valid:focus~.custom-file-label, +.has-white .is-focused .custom-file-input.is-valid:focus~.custom-file-label { + box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.25); +} + +.has-white .is-focused [class^='bmd-label'], +.has-white .is-focused [class*=' bmd-label'] { + color: #fff; +} + +.has-white .is-focused .bmd-label-placeholder { + color: #fff; +} + +.has-white .is-focused .form-control { + border-color: #fff; +} + +.has-white .is-focused .bmd-help { + color: #555555; +} + +.has-white .form-control:focus { + color: #fff; +} + +.has-warning [class^='bmd-label'], +.has-warning [class*=' bmd-label'] { + color: #ff9800; +} + +.has-warning .form-control, +.is-focused .has-warning .form-control { + background-image: linear-gradient(to top, #ff9800 2px, rgba(255, 152, 0, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +.has-warning .form-control:invalid { + background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +.has-warning .form-control:read-only { + background-image: linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +fieldset[disabled][disabled] .has-warning .form-control, +.has-warning .form-control.disabled, +.has-warning .form-control:disabled, +.has-warning .form-control[disabled] { + background-image: linear-gradient(to right, #d2d2d2 0%, #d2d2d2 30%, transparent 30%, transparent 100%); + background-repeat: repeat-x; + background-size: 3px 1px; +} + +.has-warning .form-control.form-control-success, +.is-focused .has-warning .form-control.form-control-success { + background-image: linear-gradient(to top, #ff9800 2px, rgba(255, 152, 0, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg=="; +} + +.has-warning .form-control.form-control-warning, +.is-focused .has-warning .form-control.form-control-warning { + background-image: linear-gradient(to top, #ff9800 2px, rgba(255, 152, 0, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+"; +} + +.has-warning .form-control.form-control-danger, +.is-focused .has-warning .form-control.form-control-danger { + background-image: linear-gradient(to top, #ff9800 2px, rgba(255, 152, 0, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4="; +} + +.has-warning .is-focused .valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #ff9800; +} + +.has-warning .is-focused .valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .5rem; + margin-top: .1rem; + font-size: .875rem; + line-height: 1; + color: #fff; + background-color: rgba(255, 152, 0, 0.8); + border-radius: .2rem; +} + +.was-validated .has-warning .is-focused .form-control:valid, +.has-warning .is-focused .form-control.is-valid, +.was-validated .has-warning .is-focused .custom-select:valid, +.has-warning .is-focused .custom-select.is-valid { + border-color: #ff9800; +} + +.was-validated .has-warning .is-focused .form-control:valid:focus, +.has-warning .is-focused .form-control.is-valid:focus, +.was-validated .has-warning .is-focused .custom-select:valid:focus, +.has-warning .is-focused .custom-select.is-valid:focus { + border-color: #ff9800; + box-shadow: 0 0 0 0.2rem rgba(255, 152, 0, 0.25); +} + +.was-validated .has-warning .is-focused .form-control:valid~.valid-feedback, +.was-validated .has-warning .is-focused .form-control:valid~.valid-tooltip, +.has-warning .is-focused .form-control.is-valid~.valid-feedback, +.has-warning .is-focused .form-control.is-valid~.valid-tooltip, +.was-validated .has-warning .is-focused .custom-select:valid~.valid-feedback, +.was-validated .has-warning .is-focused .custom-select:valid~.valid-tooltip, +.has-warning .is-focused .custom-select.is-valid~.valid-feedback, +.has-warning .is-focused .custom-select.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-warning .is-focused .form-check-input:valid~.form-check-label, +.has-warning .is-focused .form-check-input.is-valid~.form-check-label { + color: #ff9800; +} + +.was-validated .has-warning .is-focused .form-check-input:valid~.valid-feedback, +.was-validated .has-warning .is-focused .form-check-input:valid~.valid-tooltip, +.has-warning .is-focused .form-check-input.is-valid~.valid-feedback, +.has-warning .is-focused .form-check-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-warning .is-focused .custom-control-input:valid~.custom-control-label, +.has-warning .is-focused .custom-control-input.is-valid~.custom-control-label { + color: #ff9800; +} + +.was-validated .has-warning .is-focused .custom-control-input:valid~.custom-control-label::before, +.has-warning .is-focused .custom-control-input.is-valid~.custom-control-label::before { + background-color: #ffcc80; +} + +.was-validated .has-warning .is-focused .custom-control-input:valid~.valid-feedback, +.was-validated .has-warning .is-focused .custom-control-input:valid~.valid-tooltip, +.has-warning .is-focused .custom-control-input.is-valid~.valid-feedback, +.has-warning .is-focused .custom-control-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-warning .is-focused .custom-control-input:valid:checked~.custom-control-label::before, +.has-warning .is-focused .custom-control-input.is-valid:checked~.custom-control-label::before { + background-color: #ffad33; +} + +.was-validated .has-warning .is-focused .custom-control-input:valid:focus~.custom-control-label::before, +.has-warning .is-focused .custom-control-input.is-valid:focus~.custom-control-label::before { + box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(255, 152, 0, 0.25); +} + +.was-validated .has-warning .is-focused .custom-file-input:valid~.custom-file-label, +.has-warning .is-focused .custom-file-input.is-valid~.custom-file-label { + border-color: #ff9800; +} + +.was-validated .has-warning .is-focused .custom-file-input:valid~.custom-file-label::before, +.has-warning .is-focused .custom-file-input.is-valid~.custom-file-label::before { + border-color: inherit; +} + +.was-validated .has-warning .is-focused .custom-file-input:valid~.valid-feedback, +.was-validated .has-warning .is-focused .custom-file-input:valid~.valid-tooltip, +.has-warning .is-focused .custom-file-input.is-valid~.valid-feedback, +.has-warning .is-focused .custom-file-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-warning .is-focused .custom-file-input:valid:focus~.custom-file-label, +.has-warning .is-focused .custom-file-input.is-valid:focus~.custom-file-label { + box-shadow: 0 0 0 0.2rem rgba(255, 152, 0, 0.25); +} + +.has-warning .is-focused [class^='bmd-label'], +.has-warning .is-focused [class*=' bmd-label'] { + color: #ff9800; +} + +.has-warning .is-focused .bmd-label-placeholder { + color: #ff9800; +} + +.has-warning .is-focused .form-control { + border-color: #ff9800; +} + +.has-warning .is-focused .bmd-help { + color: #555555; +} + +.has-danger [class^='bmd-label'], +.has-danger [class*=' bmd-label'] { + color: #f44336; +} + +.has-danger .form-control, +.is-focused .has-danger .form-control { + background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +.has-danger .form-control:invalid { + background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +.has-danger .form-control:read-only { + background-image: linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +fieldset[disabled][disabled] .has-danger .form-control, +.has-danger .form-control.disabled, +.has-danger .form-control:disabled, +.has-danger .form-control[disabled] { + background-image: linear-gradient(to right, #d2d2d2 0%, #d2d2d2 30%, transparent 30%, transparent 100%); + background-repeat: repeat-x; + background-size: 3px 1px; +} + +.has-danger .form-control.form-control-success, +.is-focused .has-danger .form-control.form-control-success { + background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg=="; +} + +.has-danger .form-control.form-control-warning, +.is-focused .has-danger .form-control.form-control-warning { + background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+"; +} + +.has-danger .form-control.form-control-danger, +.is-focused .has-danger .form-control.form-control-danger { + background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4="; +} + +.has-danger .is-focused .valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #f44336; +} + +.has-danger .is-focused .valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .5rem; + margin-top: .1rem; + font-size: .875rem; + line-height: 1; + color: #fff; + background-color: rgba(244, 67, 54, 0.8); + border-radius: .2rem; +} + +.was-validated .has-danger .is-focused .form-control:valid, +.has-danger .is-focused .form-control.is-valid, +.was-validated .has-danger .is-focused .custom-select:valid, +.has-danger .is-focused .custom-select.is-valid { + border-color: #f44336; +} + +.was-validated .has-danger .is-focused .form-control:valid:focus, +.has-danger .is-focused .form-control.is-valid:focus, +.was-validated .has-danger .is-focused .custom-select:valid:focus, +.has-danger .is-focused .custom-select.is-valid:focus { + border-color: #f44336; + box-shadow: 0 0 0 0.2rem rgba(244, 67, 54, 0.25); +} + +.was-validated .has-danger .is-focused .form-control:valid~.valid-feedback, +.was-validated .has-danger .is-focused .form-control:valid~.valid-tooltip, +.has-danger .is-focused .form-control.is-valid~.valid-feedback, +.has-danger .is-focused .form-control.is-valid~.valid-tooltip, +.was-validated .has-danger .is-focused .custom-select:valid~.valid-feedback, +.was-validated .has-danger .is-focused .custom-select:valid~.valid-tooltip, +.has-danger .is-focused .custom-select.is-valid~.valid-feedback, +.has-danger .is-focused .custom-select.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-danger .is-focused .form-check-input:valid~.form-check-label, +.has-danger .is-focused .form-check-input.is-valid~.form-check-label { + color: #f44336; +} + +.was-validated .has-danger .is-focused .form-check-input:valid~.valid-feedback, +.was-validated .has-danger .is-focused .form-check-input:valid~.valid-tooltip, +.has-danger .is-focused .form-check-input.is-valid~.valid-feedback, +.has-danger .is-focused .form-check-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-danger .is-focused .custom-control-input:valid~.custom-control-label, +.has-danger .is-focused .custom-control-input.is-valid~.custom-control-label { + color: #f44336; +} + +.was-validated .has-danger .is-focused .custom-control-input:valid~.custom-control-label::before, +.has-danger .is-focused .custom-control-input.is-valid~.custom-control-label::before { + background-color: #fbb4af; +} + +.was-validated .has-danger .is-focused .custom-control-input:valid~.valid-feedback, +.was-validated .has-danger .is-focused .custom-control-input:valid~.valid-tooltip, +.has-danger .is-focused .custom-control-input.is-valid~.valid-feedback, +.has-danger .is-focused .custom-control-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-danger .is-focused .custom-control-input:valid:checked~.custom-control-label::before, +.has-danger .is-focused .custom-control-input.is-valid:checked~.custom-control-label::before { + background-color: #f77066; +} + +.was-validated .has-danger .is-focused .custom-control-input:valid:focus~.custom-control-label::before, +.has-danger .is-focused .custom-control-input.is-valid:focus~.custom-control-label::before { + box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(244, 67, 54, 0.25); +} + +.was-validated .has-danger .is-focused .custom-file-input:valid~.custom-file-label, +.has-danger .is-focused .custom-file-input.is-valid~.custom-file-label { + border-color: #f44336; +} + +.was-validated .has-danger .is-focused .custom-file-input:valid~.custom-file-label::before, +.has-danger .is-focused .custom-file-input.is-valid~.custom-file-label::before { + border-color: inherit; +} + +.was-validated .has-danger .is-focused .custom-file-input:valid~.valid-feedback, +.was-validated .has-danger .is-focused .custom-file-input:valid~.valid-tooltip, +.has-danger .is-focused .custom-file-input.is-valid~.valid-feedback, +.has-danger .is-focused .custom-file-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-danger .is-focused .custom-file-input:valid:focus~.custom-file-label, +.has-danger .is-focused .custom-file-input.is-valid:focus~.custom-file-label { + box-shadow: 0 0 0 0.2rem rgba(244, 67, 54, 0.25); +} + +.has-danger .is-focused [class^='bmd-label'], +.has-danger .is-focused [class*=' bmd-label'] { + color: #f44336; +} + +.has-danger .is-focused .bmd-label-placeholder { + color: #f44336; +} + +.has-danger .is-focused .form-control { + border-color: #f44336; +} + +.has-danger .is-focused .bmd-help { + color: #555555; +} + +.has-rose [class^='bmd-label'], +.has-rose [class*=' bmd-label'] { + color: #e91e63; +} + +.has-rose .form-control, +.is-focused .has-rose .form-control { + background-image: linear-gradient(to top, #e91e63 2px, rgba(233, 30, 99, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +.has-rose .form-control:invalid { + background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +.has-rose .form-control:read-only { + background-image: linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px); +} + +fieldset[disabled][disabled] .has-rose .form-control, +.has-rose .form-control.disabled, +.has-rose .form-control:disabled, +.has-rose .form-control[disabled] { + background-image: linear-gradient(to right, #d2d2d2 0%, #d2d2d2 30%, transparent 30%, transparent 100%); + background-repeat: repeat-x; + background-size: 3px 1px; +} + +.has-rose .form-control.form-control-success, +.is-focused .has-rose .form-control.form-control-success { + background-image: linear-gradient(to top, #e91e63 2px, rgba(233, 30, 99, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg=="; +} + +.has-rose .form-control.form-control-warning, +.is-focused .has-rose .form-control.form-control-warning { + background-image: linear-gradient(to top, #e91e63 2px, rgba(233, 30, 99, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+"; +} + +.has-rose .form-control.form-control-danger, +.is-focused .has-rose .form-control.form-control-danger { + background-image: linear-gradient(to top, #e91e63 2px, rgba(233, 30, 99, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4="; +} + +.has-rose .is-focused .valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #e91e63; +} + +.has-rose .is-focused .valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .5rem; + margin-top: .1rem; + font-size: .875rem; + line-height: 1; + color: #fff; + background-color: rgba(233, 30, 99, 0.8); + border-radius: .2rem; +} + +.was-validated .has-rose .is-focused .form-control:valid, +.has-rose .is-focused .form-control.is-valid, +.was-validated .has-rose .is-focused .custom-select:valid, +.has-rose .is-focused .custom-select.is-valid { + border-color: #e91e63; +} + +.was-validated .has-rose .is-focused .form-control:valid:focus, +.has-rose .is-focused .form-control.is-valid:focus, +.was-validated .has-rose .is-focused .custom-select:valid:focus, +.has-rose .is-focused .custom-select.is-valid:focus { + border-color: #e91e63; + box-shadow: 0 0 0 0.2rem rgba(233, 30, 99, 0.25); +} + +.was-validated .has-rose .is-focused .form-control:valid~.valid-feedback, +.was-validated .has-rose .is-focused .form-control:valid~.valid-tooltip, +.has-rose .is-focused .form-control.is-valid~.valid-feedback, +.has-rose .is-focused .form-control.is-valid~.valid-tooltip, +.was-validated .has-rose .is-focused .custom-select:valid~.valid-feedback, +.was-validated .has-rose .is-focused .custom-select:valid~.valid-tooltip, +.has-rose .is-focused .custom-select.is-valid~.valid-feedback, +.has-rose .is-focused .custom-select.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-rose .is-focused .form-check-input:valid~.form-check-label, +.has-rose .is-focused .form-check-input.is-valid~.form-check-label { + color: #e91e63; +} + +.was-validated .has-rose .is-focused .form-check-input:valid~.valid-feedback, +.was-validated .has-rose .is-focused .form-check-input:valid~.valid-tooltip, +.has-rose .is-focused .form-check-input.is-valid~.valid-feedback, +.has-rose .is-focused .form-check-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-rose .is-focused .custom-control-input:valid~.custom-control-label, +.has-rose .is-focused .custom-control-input.is-valid~.custom-control-label { + color: #e91e63; +} + +.was-validated .has-rose .is-focused .custom-control-input:valid~.custom-control-label::before, +.has-rose .is-focused .custom-control-input.is-valid~.custom-control-label::before { + background-color: #f492b4; +} + +.was-validated .has-rose .is-focused .custom-control-input:valid~.valid-feedback, +.was-validated .has-rose .is-focused .custom-control-input:valid~.valid-tooltip, +.has-rose .is-focused .custom-control-input.is-valid~.valid-feedback, +.has-rose .is-focused .custom-control-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-rose .is-focused .custom-control-input:valid:checked~.custom-control-label::before, +.has-rose .is-focused .custom-control-input.is-valid:checked~.custom-control-label::before { + background-color: #ee4c83; +} + +.was-validated .has-rose .is-focused .custom-control-input:valid:focus~.custom-control-label::before, +.has-rose .is-focused .custom-control-input.is-valid:focus~.custom-control-label::before { + box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(233, 30, 99, 0.25); +} + +.was-validated .has-rose .is-focused .custom-file-input:valid~.custom-file-label, +.has-rose .is-focused .custom-file-input.is-valid~.custom-file-label { + border-color: #e91e63; +} + +.was-validated .has-rose .is-focused .custom-file-input:valid~.custom-file-label::before, +.has-rose .is-focused .custom-file-input.is-valid~.custom-file-label::before { + border-color: inherit; +} + +.was-validated .has-rose .is-focused .custom-file-input:valid~.valid-feedback, +.was-validated .has-rose .is-focused .custom-file-input:valid~.valid-tooltip, +.has-rose .is-focused .custom-file-input.is-valid~.valid-feedback, +.has-rose .is-focused .custom-file-input.is-valid~.valid-tooltip { + display: block; +} + +.was-validated .has-rose .is-focused .custom-file-input:valid:focus~.custom-file-label, +.has-rose .is-focused .custom-file-input.is-valid:focus~.custom-file-label { + box-shadow: 0 0 0 0.2rem rgba(233, 30, 99, 0.25); +} + +.has-rose .is-focused [class^='bmd-label'], +.has-rose .is-focused [class*=' bmd-label'] { + color: #e91e63; +} + +.has-rose .is-focused .bmd-label-placeholder { + color: #e91e63; +} + +.has-rose .is-focused .form-control { + border-color: #e91e63; +} + +.has-rose .is-focused .bmd-help { + color: #555555; +} + +.bmd-form-group { + position: relative; +} + +.bmd-form-group:not(.has-success):not(.has-danger) [class^='bmd-label'].bmd-label-floating, +.bmd-form-group:not(.has-success):not(.has-danger) [class*=' bmd-label'].bmd-label-floating { + color: #AAAAAA; +} + +.bmd-form-group [class^='bmd-label'], +.bmd-form-group [class*=' bmd-label'] { + position: absolute; + pointer-events: none; + transition: 0.3s ease all; +} + +.bmd-form-group [class^='bmd-label'].bmd-label-floating, +.bmd-form-group [class*=' bmd-label'].bmd-label-floating { + will-change: left, top, contents; + margin: 0; + line-height: 1.4; + font-weight: 400; +} + +.bmd-form-group.is-filled .bmd-label-placeholder { + display: none; +} + +.bmd-form-group.bmd-collapse-inline { + display: flex; + align-items: center; + padding: 0; + min-height: 2.1em; +} + +.bmd-form-group.bmd-collapse-inline .collapse { + flex: 1; + display: none; +} + +.bmd-form-group.bmd-collapse-inline .collapse.show { + max-width: 1200px; +} + +.bmd-form-group.bmd-collapse-inline .collapsing, +.bmd-form-group.bmd-collapse-inline .width:not(.collapse), +.bmd-form-group.bmd-collapse-inline .collapse.show { + display: block; +} + +.bmd-form-group.bmd-collapse-inline .collapsing { + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); +} + +.bmd-form-group .form-control, +.bmd-form-group label, +.bmd-form-group input::placeholder { + line-height: 1.1; +} + +.bmd-form-group label { + color: #AAAAAA; +} + +.bmd-form-group .radio label, +.bmd-form-group label.radio-inline, +.bmd-form-group .checkbox label, +.bmd-form-group label.checkbox-inline, +.bmd-form-group .switch label { + line-height: 1.5; +} + +.bmd-form-group .checkbox label, +.bmd-form-group .radio label, +.bmd-form-group label { + font-size: 0.875rem; +} + +.bmd-form-group .bmd-label-floating, +.bmd-form-group .bmd-label-placeholder { + top: 0.6125rem; +} + +.bmd-form-group .is-focused .bmd-label-floating, +.bmd-form-group .is-filled .bmd-label-floating { + top: -1rem; + left: 0; + font-size: 0.6875rem; +} + +.bmd-form-group .bmd-label-static { + top: 0.35rem; + left: 0; + font-size: 0.875rem; +} + +.bmd-form-group .bmd-help { + margin-top: 0; + font-size: 0.75rem; +} + +.bmd-form-group .form-control.form-control-success, +.bmd-form-group .form-control.form-control-warning, +.bmd-form-group .form-control.form-control-danger { + background-size: 0 100%, 100% 100%, 0.9375rem 0.9375rem; +} + +.bmd-form-group .form-control.form-control-success, +.bmd-form-group .form-control.form-control-success:focus, +.bmd-form-group.is-focused .bmd-form-group .form-control.form-control-success, +.bmd-form-group .form-control.form-control-warning, +.bmd-form-group .form-control.form-control-warning:focus, +.bmd-form-group.is-focused .bmd-form-group .form-control.form-control-warning, +.bmd-form-group .form-control.form-control-danger, +.bmd-form-group .form-control.form-control-danger:focus, +.bmd-form-group.is-focused .bmd-form-group .form-control.form-control-danger { + padding-right: 0; + background-repeat: no-repeat, no-repeat; + background-position: center bottom, center calc(100% - 1px), center right 0.46875rem; +} + +.bmd-form-group .form-control.form-control-success:focus, +.bmd-form-group.is-focused .bmd-form-group .form-control.form-control-success, +.bmd-form-group .form-control.form-control-warning:focus, +.bmd-form-group.is-focused .bmd-form-group .form-control.form-control-warning, +.bmd-form-group .form-control.form-control-danger:focus, +.bmd-form-group.is-focused .bmd-form-group .form-control.form-control-danger { + background-size: 100% 100%, 100% 100%, 0.9375rem 0.9375rem; +} + +.bmd-form-group.bmd-form-group-sm .form-control, +.bmd-form-group.bmd-form-group-sm label, +.bmd-form-group.bmd-form-group-sm input::placeholder { + line-height: 1.1; +} + +.bmd-form-group.bmd-form-group-sm label { + color: #AAAAAA; +} + +.bmd-form-group.bmd-form-group-sm .radio label, +.bmd-form-group.bmd-form-group-sm label.radio-inline, +.bmd-form-group.bmd-form-group-sm .checkbox label, +.bmd-form-group.bmd-form-group-sm label.checkbox-inline, +.bmd-form-group.bmd-form-group-sm .switch label { + line-height: 1.5; +} + +.bmd-form-group.bmd-form-group-sm .checkbox label, +.bmd-form-group.bmd-form-group-sm .radio label, +.bmd-form-group.bmd-form-group-sm label { + font-size: 0.875rem; +} + +.bmd-form-group.bmd-form-group-sm .bmd-label-floating, +.bmd-form-group.bmd-form-group-sm .bmd-label-placeholder { + top: 0.175rem; +} + +.bmd-form-group.bmd-form-group-sm .is-focused .bmd-label-floating, +.bmd-form-group.bmd-form-group-sm .is-filled .bmd-label-floating { + top: -1.25rem; + left: 0; + font-size: 0.6875rem; +} + +.bmd-form-group.bmd-form-group-sm .bmd-label-static { + top: 0.1rem; + left: 0; + font-size: 0.875rem; +} + +.bmd-form-group.bmd-form-group-sm .bmd-help { + margin-top: 0; + font-size: 0.65625rem; +} + +.bmd-form-group.bmd-form-group-sm .form-control.form-control-success, +.bmd-form-group.bmd-form-group-sm .form-control.form-control-warning, +.bmd-form-group.bmd-form-group-sm .form-control.form-control-danger { + background-size: 0 100%, 100% 100%, 0.6875rem 0.6875rem; +} + +.bmd-form-group.bmd-form-group-sm .form-control.form-control-success, +.bmd-form-group.bmd-form-group-sm .form-control.form-control-success:focus, +.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-sm .form-control.form-control-success, +.bmd-form-group.bmd-form-group-sm .form-control.form-control-warning, +.bmd-form-group.bmd-form-group-sm .form-control.form-control-warning:focus, +.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-sm .form-control.form-control-warning, +.bmd-form-group.bmd-form-group-sm .form-control.form-control-danger, +.bmd-form-group.bmd-form-group-sm .form-control.form-control-danger:focus, +.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-sm .form-control.form-control-danger { + padding-right: 0; + background-repeat: no-repeat, no-repeat; + background-position: center bottom, center calc(100% - 1px), center right 0.34375rem; +} + +.bmd-form-group.bmd-form-group-sm .form-control.form-control-success:focus, +.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-sm .form-control.form-control-success, +.bmd-form-group.bmd-form-group-sm .form-control.form-control-warning:focus, +.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-sm .form-control.form-control-warning, +.bmd-form-group.bmd-form-group-sm .form-control.form-control-danger:focus, +.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-sm .form-control.form-control-danger { + background-size: 100% 100%, 100% 100%, 0.6875rem 0.6875rem; +} + +.bmd-form-group.bmd-form-group-lg .form-control, +.bmd-form-group.bmd-form-group-lg label, +.bmd-form-group.bmd-form-group-lg input::placeholder { + line-height: 1.1; +} + +.bmd-form-group.bmd-form-group-lg label { + color: #AAAAAA; +} + +.bmd-form-group.bmd-form-group-lg .radio label, +.bmd-form-group.bmd-form-group-lg label.radio-inline, +.bmd-form-group.bmd-form-group-lg .checkbox label, +.bmd-form-group.bmd-form-group-lg label.checkbox-inline, +.bmd-form-group.bmd-form-group-lg .switch label { + line-height: 1.5; +} + +.bmd-form-group.bmd-form-group-lg .checkbox label, +.bmd-form-group.bmd-form-group-lg .radio label, +.bmd-form-group.bmd-form-group-lg label { + font-size: 0.875rem; +} + +.bmd-form-group.bmd-form-group-lg .bmd-label-floating, +.bmd-form-group.bmd-form-group-lg .bmd-label-placeholder { + top: 0.7375rem; +} + +.bmd-form-group.bmd-form-group-lg .is-focused .bmd-label-floating, +.bmd-form-group.bmd-form-group-lg .is-filled .bmd-label-floating { + top: -1rem; + left: 0; + font-size: 0.6875rem; +} + +.bmd-form-group.bmd-form-group-lg .bmd-label-static { + top: 0.35rem; + left: 0; + font-size: 0.875rem; +} + +.bmd-form-group.bmd-form-group-lg .bmd-help { + margin-top: 0; + font-size: 0.9375rem; +} + +.bmd-form-group.bmd-form-group-lg .form-control.form-control-success, +.bmd-form-group.bmd-form-group-lg .form-control.form-control-warning, +.bmd-form-group.bmd-form-group-lg .form-control.form-control-danger { + background-size: 0 100%, 100% 100%, 1.1875rem 1.1875rem; +} + +.bmd-form-group.bmd-form-group-lg .form-control.form-control-success, +.bmd-form-group.bmd-form-group-lg .form-control.form-control-success:focus, +.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-lg .form-control.form-control-success, +.bmd-form-group.bmd-form-group-lg .form-control.form-control-warning, +.bmd-form-group.bmd-form-group-lg .form-control.form-control-warning:focus, +.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-lg .form-control.form-control-warning, +.bmd-form-group.bmd-form-group-lg .form-control.form-control-danger, +.bmd-form-group.bmd-form-group-lg .form-control.form-control-danger:focus, +.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-lg .form-control.form-control-danger { + padding-right: 0; + background-repeat: no-repeat, no-repeat; + background-position: center bottom, center calc(100% - 1px), center right 0.59375rem; +} + +.bmd-form-group.bmd-form-group-lg .form-control.form-control-success:focus, +.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-lg .form-control.form-control-success, +.bmd-form-group.bmd-form-group-lg .form-control.form-control-warning:focus, +.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-lg .form-control.form-control-warning, +.bmd-form-group.bmd-form-group-lg .form-control.form-control-danger:focus, +.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-lg .form-control.form-control-danger { + background-size: 100% 100%, 100% 100%, 1.1875rem 1.1875rem; +} + +.form-control, +label, +input::placeholder { + line-height: 1.1; +} + +label { + color: #AAAAAA; +} + +.radio label, +label.radio-inline, +.checkbox label, +label.checkbox-inline, +.switch label { + line-height: 1.5; +} + +.checkbox label, +.radio label, +label { + font-size: 0.875rem; +} + +.bmd-label-floating, +.bmd-label-placeholder { + top: 0.6125rem; +} + +.is-focused .bmd-label-floating, +.is-filled .bmd-label-floating { + top: -1rem; + left: 0; + font-size: 0.6875rem; +} + +.bmd-label-static { + top: 0.35rem; + left: 0; + font-size: 0.875rem; +} + +.bmd-help { + margin-top: 0; + font-size: 0.75rem; +} + +.form-control.form-control-success, +.form-control.form-control-warning, +.form-control.form-control-danger { + background-size: 0 100%, 100% 100%, 0.9375rem 0.9375rem; +} + +.form-control.form-control-success, +.form-control.form-control-success:focus, +.bmd-form-group.is-focused .form-control.form-control-success, +.form-control.form-control-warning, +.form-control.form-control-warning:focus, +.bmd-form-group.is-focused .form-control.form-control-warning, +.form-control.form-control-danger, +.form-control.form-control-danger:focus, +.bmd-form-group.is-focused .form-control.form-control-danger { + padding-right: 0; + background-repeat: no-repeat, no-repeat; + background-position: center bottom, center calc(100% - 1px), center right 0.46875rem; +} + +.form-control.form-control-success:focus, +.bmd-form-group.is-focused .form-control.form-control-success, +.form-control.form-control-warning:focus, +.bmd-form-group.is-focused .form-control.form-control-warning, +.form-control.form-control-danger:focus, +.bmd-form-group.is-focused .form-control.form-control-danger { + background-size: 100% 100%, 100% 100%, 0.9375rem 0.9375rem; +} + +select, +select.form-control { + -moz-appearance: none; + -webkit-appearance: none; +} + +@media (min-width: 576px) { + .form-inline .input-group { + display: inline-flex; + align-items: center; + } +} + +.form-control-feedback { + position: absolute; + top: 4px; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; + pointer-events: none; + opacity: 0; +} + +.has-success .form-control-feedback { + color: #4caf50; + opacity: 1; +} + +.has-danger .form-control-feedback { + color: #f44336; + opacity: 1; +} + +.form-group { + padding-bottom: 10px; + position: relative; + margin: 8px 0 0; +} + +.form-group .bmd-label-static { + top: -10px; +} + +textarea { + height: auto !important; + resize: none; + line-height: 1.428571 !important; +} + +.form-group input[type=file] { + opacity: 0; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + z-index: -1; +} + +.form-newsletter .input-group, +.form-newsletter .form-group { + float: left; + width: 78%; + margin-right: 2%; + margin-top: 9px; + padding-top: 5px; +} + +.form-newsletter .btn { + float: left; + width: 20%; + margin: 9px 0 0; +} + +.form-file-upload .input-group-btn:last-child>.btn-round { + border-radius: 30px; +} + +.form-file-upload .input-group-btn .btn { + margin: 0; +} + +.form-file-upload .input-group { + width: 100%; +} + +.input-group .input-group-btn { + padding: 0 12px; +} + +.form-control[disabled], +fieldset[disabled] .form-control, +.form-group .form-control[disabled], +fieldset[disabled] .form-group .form-control { + background-color: transparent; + cursor: not-allowed; + border-bottom: 1px dotted #d2d2d2; + background-repeat: no-repeat; +} + +.input-group .input-group-text { + display: flex; + justify-content: center; + align-items: center; + padding: 0 15px 0 15px; + background-color: transparent; + border-color: transparent; +} + +.img-thumbnail { + border-radius: 16px; +} + +.img-raised { + box-shadow: 0 5px 15px -8px rgba(0, 0, 0, 0.24), 0 8px 10px -5px rgba(0, 0, 0, 0.2); +} + +.rounded { + border-radius: 6px !important; +} + +.navbar { + border: 0; + border-radius: 3px; + padding: 0.625rem 0; + margin-bottom: 20px; + height: auto !important; + color: #555; + background-color: #fff !important; + box-shadow: 0 4px 18px 0px rgba(0, 0, 0, 0.12), 0 7px 10px -5px rgba(0, 0, 0, 0.15); +} + +.navbar .dropdown-item:hover, +.navbar .dropdown-item:focus { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(255, 255, 255, 0.4); + background-color: #fff; + color: #555; +} + +.navbar .navbar-toggler .navbar-toggler-icon { + background-color: #555; +} + +.navbar.fixed-top { + border-radius: 0; +} + +.navbar .navbar-nav .nav-item .nav-link { + position: relative; + color: inherit; + padding: 0.9375rem; + font-weight: 400; + font-size: 12px; + text-transform: uppercase; + border-radius: 3px; + line-height: 20px; +} + +.navbar .navbar-nav .nav-item .nav-link:not(.btn-just-icon) .fa { + position: relative; + top: 2px; + margin-top: -4px; + margin-right: 4px; +} + +.navbar .navbar-nav .nav-item .nav-link .material-icons, +.navbar .navbar-nav .nav-item .nav-link .fa { + font-size: 1.25rem; + max-width: 24px; + margin-top: -1.1em; +} + +.navbar .navbar-nav .nav-item .nav-link:not(.btn) .material-icons { + margin-top: -7px; + top: 3px; + position: relative; + margin-right: 3px; +} + +.navbar .navbar-nav .nav-item .nav-link.profile-photo { + padding: 0; + margin: 0 3px; +} + +.navbar .navbar-nav .nav-item .nav-link.profile-photo:after { + display: none; +} + +.navbar .navbar-nav .nav-item .nav-link.profile-photo .profile-photo-small { + height: 40px; + width: 40px; +} + +.navbar .navbar-nav .nav-item .nav-link.profile-photo .ripple-container { + border-radius: 50%; +} + +.navbar .navbar-nav .dropdown-menu-right { + transform-origin: 100% 0; +} + +.navbar .navbar-nav .nav-item.active .nav-link, +.navbar .navbar-nav .nav-item.active .nav-link:hover, +.navbar .navbar-nav .nav-item.active .nav-link:focus { + color: inherit; + background-color: rgba(255, 255, 255, 0.1); +} + +.navbar .btn, +.navbar .navbar-nav .nav-item .btn { + margin-top: 0; + margin-bottom: 0; +} + +.navbar .navbar-toggler { + cursor: pointer; + outline: 0; +} + +.navbar .navbar-toggler .navbar-toggler-icon { + width: 22px; + height: 2px; + vertical-align: middle; + outline: 0; + display: block; + border-radius: 1px; +} + +.navbar .navbar-toggler .navbar-toggler-icon+.navbar-toggler-icon { + margin-top: 4px; +} + +.navbar.navbar-absolute { + position: absolute; + width: 100%; + padding-top: 10px; + z-index: 1029; +} + +.navbar .navbar-wrapper { + display: inline-flex; + align-items: center; +} + +.navbar .navbar-brand { + position: relative; + color: inherit; + height: 50px; + font-size: 1.125rem; + line-height: 30px; + padding: 0.625rem 0; + font-weight: 300; + margin-left: 1rem; +} + +.navbar>.container { + flex: 1; +} + +.navbar.bg-primary { + color: #fff; + background-color: #9c27b0 !important; + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(156, 39, 176, 0.46); +} + +.navbar.bg-primary .dropdown-item:hover, +.navbar.bg-primary .dropdown-item:focus { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(156, 39, 176, 0.4); + background-color: #9c27b0; + color: #fff; +} + +.navbar.bg-primary .navbar-toggler .navbar-toggler-icon { + background-color: #fff; +} + +.navbar.bg-info { + color: #fff; + background-color: #00bcd4 !important; + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(0, 188, 212, 0.46); +} + +.navbar.bg-info .dropdown-item:hover, +.navbar.bg-info .dropdown-item:focus { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(0, 188, 212, 0.4); + background-color: #00bcd4; + color: #fff; +} + +.navbar.bg-info .navbar-toggler .navbar-toggler-icon { + background-color: #fff; +} + +.navbar.bg-warning { + color: #fff; + background-color: #ff9800 !important; + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(255, 152, 0, 0.46); +} + +.navbar.bg-warning .dropdown-item:hover, +.navbar.bg-warning .dropdown-item:focus { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(255, 152, 0, 0.4); + background-color: #ff9800; + color: #fff; +} + +.navbar.bg-warning .navbar-toggler .navbar-toggler-icon { + background-color: #fff; +} + +.navbar.bg-rose { + color: #fff; + background-color: #e91e63 !important; + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(233, 30, 99, 0.46); +} + +.navbar.bg-rose .dropdown-item:hover, +.navbar.bg-rose .dropdown-item:focus { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(233, 30, 99, 0.4); + background-color: #e91e63; + color: #fff; +} + +.navbar.bg-rose .navbar-toggler .navbar-toggler-icon { + background-color: #fff; +} + +.navbar.bg-danger { + color: #fff; + background-color: #f44336 !important; + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(244, 67, 54, 0.46); +} + +.navbar.bg-danger .dropdown-item:hover, +.navbar.bg-danger .dropdown-item:focus { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(244, 67, 54, 0.4); + background-color: #f44336; + color: #fff; +} + +.navbar.bg-danger .navbar-toggler .navbar-toggler-icon { + background-color: #fff; +} + +.navbar.bg-success { + color: #fff; + background-color: #4caf50 !important; + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(76, 175, 80, 0.46); +} + +.navbar.bg-success .dropdown-item:hover, +.navbar.bg-success .dropdown-item:focus { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(76, 175, 80, 0.4); + background-color: #4caf50; + color: #fff; +} + +.navbar.bg-success .navbar-toggler .navbar-toggler-icon { + background-color: #fff; +} + +.navbar.bg-dark { + color: #fff; + background-color: #212121 !important; + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(33, 33, 33, 0.46); +} + +.navbar.bg-dark .dropdown-item:hover, +.navbar.bg-dark .dropdown-item:focus { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(33, 33, 33, 0.4); + background-color: #212121; + color: #fff; +} + +.navbar.bg-dark .navbar-toggler .navbar-toggler-icon { + background-color: #fff; +} + +.navbar.navbar-transparent { + background-color: transparent !important; + box-shadow: none; +} + +.navbar .notification { + position: absolute; + top: 5px; + border: 1px solid #FFF; + right: 10px; + font-size: 9px; + background: #f44336; + color: #FFFFFF; + min-width: 20px; + padding: 0px 5px; + height: 20px; + border-radius: 10px; + text-align: center; + line-height: 19px; + vertical-align: middle; + display: block; +} + +.navbar .navbar-minimize { + padding: 3px 0 0 15px; +} + +.navbar .collapse .navbar-nav .nav-item .nav-link { + position: relative; + padding: 10px 15px; + font-weight: 400; + font-size: 12px; + text-transform: uppercase; + border-radius: 3px; + line-height: 20px; + margin-left: 5px; + color: inherit; +} + +.navbar .collapse .navbar-nav .nav-item .nav-link:not(.btn-just-icon) .fa { + position: relative; + top: 2px; + margin-top: -4px; + margin-right: 4px; +} + +.navbar .collapse .navbar-nav .nav-item .nav-link .material-icons, +.navbar .collapse .navbar-nav .nav-item .nav-link .fa { + font-size: 1.25rem; + max-width: 24px; + margin-top: -1.1em; +} + +.navbar .collapse .navbar-nav .nav-item .nav-link:not(.btn) .material-icons { + margin-top: -3px; + top: 0px; + position: relative; + margin-right: 3px; +} + +.navbar .collapse .navbar-nav .nav-item .nav-link .notification { + top: 0px; +} + +.off-canvas-sidebar .navbar .navbar-collapse .navbar-nav .nav-item .nav-link { + padding-top: 15px; + padding-bottom: 15px; + font-weight: 500; + font-size: 12px; + text-transform: uppercase; + border-radius: 3px; + color: #fff; + margin: 0 15px; +} + +.off-canvas-sidebar .navbar .navbar-collapse .navbar-nav .nav-item .nav-link:hover { + background: rgba(200, 200, 200, 0.2); +} + +.off-canvas-sidebar .navbar.navbar-transparent { + padding-top: 25px !important; +} + +.alert { + border: 0; + border-radius: 3px; + position: relative; + padding: 20px 15px; + line-height: 20px; +} + +.alert b { + font-weight: 500; + text-transform: uppercase; + font-size: 12px; +} + +.alert, +.alert.alert-default { + background-color: white; + color: #555555; +} + +.alert a, +.alert .alert-link, +.alert.alert-default a, +.alert.alert-default .alert-link { + color: #555555; +} + +.alert.alert-inverse { + background-color: #292929; + color: #fff; +} + +.alert.alert-inverse a, +.alert.alert-inverse .alert-link { + color: #fff; +} + +.alert.alert-primary { + background-color: #a72abd; + color: #ffffff; +} + +.alert.alert-primary a, +.alert.alert-primary .alert-link { + color: #ffffff; +} + +.alert.alert-success { + background-color: #55b559; + color: #ffffff; +} + +.alert.alert-success a, +.alert.alert-success .alert-link { + color: #ffffff; +} + +.alert.alert-info { + background-color: #00cae3; + color: #ffffff; +} + +.alert.alert-info a, +.alert.alert-info .alert-link { + color: #ffffff; +} + +.alert.alert-warning { + background-color: #ff9e0f; + color: #ffffff; +} + +.alert.alert-warning a, +.alert.alert-warning .alert-link { + color: #ffffff; +} + +.alert.alert-danger { + background-color: #f55145; + color: #ffffff; +} + +.alert.alert-danger a, +.alert.alert-danger .alert-link { + color: #ffffff; +} + +.alert.alert-rose { + background-color: #ea2c6d; + color: #ffffff; +} + +.alert.alert-rose a, +.alert.alert-rose .alert-link { + color: #ffffff; +} + +.alert-info, +.alert-danger, +.alert-warning, +.alert-success, +.alert-rose { + color: #ffffff; +} + +.alert-default a, +.alert-default .alert-link { + color: rgba(0, 0, 0, 0.87); +} + +.alert span { + display: block; + max-width: 89%; +} + +.alert.alert-danger { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(244, 67, 54, 0.4); +} + +.alert.alert-danger i { + color: #f44336; +} + +.alert.alert-warning { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(255, 152, 0, 0.4); +} + +.alert.alert-warning i { + color: #ff9800; +} + +.alert.alert-success { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(76, 175, 80, 0.4); +} + +.alert.alert-success i { + color: #4caf50; +} + +.alert.alert-info { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(0, 188, 212, 0.4); +} + +.alert.alert-info i { + color: #00bcd4; +} + +.alert.alert-primary { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(156, 39, 176, 0.4); +} + +.alert.alert-primary i { + color: #9c27b0; +} + +.alert.alert-rose { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(233, 30, 99, 0.4); +} + +.alert.alert-rose i { + color: #e91e63; +} + +.alert.alert-with-icon { + padding-left: 66px; +} + +.alert.alert-with-icon i[data-notify="icon"] { + font-size: 30px; + display: block; + left: 15px; + position: absolute; + top: 50%; + margin-top: -15px; + color: #fff; +} + +.alert .close { + line-height: .5; +} + +.alert .close i { + color: #fff; + font-size: 11px; +} + +.alert i[data-notify="icon"] { + display: none; +} + +.alert .alert-icon { + display: block; + float: left; + margin-right: 1.071rem; +} + +.alert .alert-icon i { + margin-top: -7px; + top: 5px; + position: relative; +} + +.alert [data-notify="dismiss"] { + margin-right: 5px; +} + +.places-buttons .btn { + margin-bottom: 30px; +} + +.page-header { + min-height: 100vh; + max-height: 1000px; + display: flex !important; + height: 100%; + padding: 0; + color: #fff; + position: relative; +} + +.page-header .page-header-image { + position: absolute; + background-size: cover; + background-position: center center; + width: 100%; + height: 100%; + z-index: -1; +} + +.page-header .content-center { + position: absolute; + top: 50%; + left: 50%; + z-index: 2; + -ms-transform: translate(-50%, -50%); + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + text-align: center; + color: #FFFFFF; + padding: 0 15px; + width: 100%; + max-width: 880px; +} + +.page-header footer { + position: absolute; + bottom: 0; + width: 100%; +} + +.page-header .container { + height: 100%; + z-index: 1; +} + +.page-header .category, +.page-header .description { + color: rgba(255, 255, 255, 0.8); +} + +.page-header.page-header-small { + min-height: 60vh; + max-height: 440px; +} + +.page-header.page-header-mini { + min-height: 40vh; + max-height: 340px; +} + +.page-header .title { + margin-bottom: 15px; +} + +.page-header .title+h4 { + margin-top: 10px; +} + +.page-header:after, +.page-header:before { + position: absolute; + z-index: 0; + width: 100%; + height: 100%; + display: block; + left: 0; + top: 0; + content: ""; +} + +.page-header:before { + background-color: rgba(0, 0, 0, 0.3); +} + +html * { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +body, +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4 { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-weight: 300; + line-height: 1.5em; +} + +h1, +.h1 { + font-size: 3.3125rem; + line-height: 1.15em; +} + +h2, +.h2 { + font-size: 2.25rem; +} + +h3, +.h3 { + font-size: 1.5625rem; + line-height: 1.4em; + margin: 20px 0 10px; +} + +h4, +.h4 { + font-size: 1.125rem; + line-height: 1.4em; + font-weight: 300; +} + +h5, +.h5 { + font-size: 1.0625rem; + line-height: 1.4em; + margin-bottom: 15px; +} + +h6, +.h6 { + font-size: 0.75rem; + text-transform: uppercase; + font-weight: 500; +} + +.title, +.title a, +.card-title, +.card-title a, +.info-title, +.info-title a, +.footer-brand, +.footer-brand a, +.footer-big h5, +.footer-big h5 a, +.footer-big h4, +.footer-big h4 a, +.media .media-heading, +.media .media-heading a { + color: #3C4858; + text-decoration: none; +} + +.card-blog .card-title { + font-weight: 700; +} + +h2.title { + margin-bottom: 2.142rem; +} + +.description, +.card-description, +.footer-big p { + color: #999999; +} + +.text-warning { + color: #ff9800 !important; +} + +.text-primary { + color: #9c27b0 !important; +} + +.text-danger { + color: #f44336 !important; +} + +.text-success { + color: #4caf50 !important; +} + +.text-info { + color: #00bcd4 !important; +} + +.text-rose { + color: #e91e63 !important; +} + +.text-gray { + color: #999999 !important; +} + +.nav-tabs { + border: 0; + border-radius: 3px; + padding: 0 15px; +} + +.nav-tabs .nav-item .nav-link { + position: relative; + color: #fff; + border: 0; + margin: 0; + border-radius: 3px; + line-height: 24px; + text-transform: uppercase; + font-size: 12px; + padding: 10px 15px; + background-color: transparent; + transition: 0.3s background-color 0s; +} + +.nav-tabs .nav-item .nav-link:hover { + border: 0; +} + +.nav-tabs .nav-item .nav-link, +.nav-tabs .nav-item .nav-link:hover, +.nav-tabs .nav-item .nav-link:focus { + border: 0 !important; + color: #fff !important; + font-weight: 500; +} + +.nav-tabs .nav-item.disabled .nav-link, +.nav-tabs .nav-item.disabled .nav-link:hover { + color: rgba(255, 255, 255, 0.5); +} + +.nav-tabs .nav-item .material-icons { + margin: -1px 5px 0 0; +} + +.nav-tabs .nav-item .nav-link.active { + background-color: rgba(255, 255, 255, 0.2); + transition: 0.3s background-color 0.2s; +} + +.nav-tabs .nav-link { + border-bottom: 0.214rem solid transparent; +} + +.nav-tabs .nav-link { + color: #555555; +} + +.nav-tabs .nav-link.active { + color: #333333; + border-color: #9c27b0; +} + +.nav-tabs .nav-link.active:hover, +.nav-tabs .nav-link.active:focus { + border-color: #9c27b0; +} + +.nav-tabs .nav-link.disabled { + color: #999999; +} + +.nav-tabs .nav-link.disabled, +.nav-tabs .nav-link.disabled:hover, +.nav-tabs .nav-link.disabled:focus { + color: #999999; +} + +.nav-tabs.header-primary .nav-link { + color: white; +} + +.nav-tabs.header-primary .nav-link.active { + color: #fff; + border-color: #fff; +} + +.nav-tabs.header-primary .nav-link.active:hover, +.nav-tabs.header-primary .nav-link.active:focus { + border-color: #fff; +} + +.nav-tabs.header-primary .nav-link.disabled { + color: rgba(255, 255, 255, 0.84); +} + +.nav-tabs.header-primary .nav-link.disabled, +.nav-tabs.header-primary .nav-link.disabled:hover, +.nav-tabs.header-primary .nav-link.disabled:focus { + color: rgba(255, 255, 255, 0.84); +} + +.nav-tabs.bg-inverse .nav-link { + color: white; +} + +.nav-tabs.bg-inverse .nav-link.active { + color: #fff; + border-color: #fff; +} + +.nav-tabs.bg-inverse .nav-link.active:hover, +.nav-tabs.bg-inverse .nav-link.active:focus { + border-color: #fff; +} + +.nav-tabs.bg-inverse .nav-link.disabled { + color: rgba(255, 255, 255, 0.84); +} + +.nav-tabs.bg-inverse .nav-link.disabled, +.nav-tabs.bg-inverse .nav-link.disabled:hover, +.nav-tabs.bg-inverse .nav-link.disabled:focus { + color: rgba(255, 255, 255, 0.84); +} + +.card-nav-tabs { + margin-top: 45px; +} + +.card-nav-tabs .card-header { + margin-top: -30px !important; +} + +.tab-content .tab-pane .td-actions { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.card .tab-content .form-check { + margin-top: 6px; +} + +.tooltip-arrow { + display: none; +} + +.tooltip.show { + opacity: 1; + -webkit-transform: translate3d(0, 0px, 0); + -moz-transform: translate3d(0, 0px, 0); + -o-transform: translate3d(0, 0px, 0); + -ms-transform: translate3d(0, 0px, 0); + transform: translate3d(0, 0px, 0); +} + +.tooltip { + opacity: 0; + transition: opacity, transform .2s ease; + -webkit-transform: translate3d(0, 5px, 0); + -moz-transform: translate3d(0, 5px, 0); + -o-transform: translate3d(0, 5px, 0); + -ms-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + font-size: 0.875rem; +} + +.tooltip.bs-tooltip-top .arrow::before, +.tooltip.bs-tooltip-auto[x-placement^="top"] .arrow::before, +.tooltip.bs-tooltip-auto[x-placement^="top"] .arrow::before { + border-top-color: #fff; +} + +.tooltip.bs-tooltip-right .arrow::before, +.tooltip.bs-tooltip-auto[x-placement^="right"] .arrow::before, +.tooltip.bs-tooltip-auto[x-placement^="right"] .arrow::before { + border-right-color: #fff; +} + +.tooltip.bs-tooltip-left .arrow::before, +.tooltip.bs-tooltip-auto[x-placement^="left"] .arrow::before, +.tooltip.bs-tooltip-auto[x-placement^="left"] .arrow::before { + border-left-color: #fff; +} + +.tooltip.bs-tooltip-bottom .arrow::before, +.tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow::before, +.tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow::before { + border-bottom-color: #fff; +} + +.tooltip-inner { + padding: 10px 15px; + min-width: 130px; +} + +.popover, +.tooltip-inner { + line-height: 1.5em; + background: #fff; + border: none; + border-radius: 3px; + box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2); + color: #555; +} + +.popover { + padding: 0; + box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2); +} + +.popover.left>.arrow, +.popover.right>.arrow, +.popover.top>.arrow, +.popover.bottom>.arrow { + border: none; +} + +.popover.bs-popover-top .arrow::before, +.popover.bs-popover-auto[x-placement^="top"] .arrow::before, +.popover.bs-popover-auto[x-placement^="top"] .arrow::before, +.popover.bs-popover-bottom .arrow::before, +.popover.bs-popover-auto[x-placement^="bottom"] .arrow::before, +.popover.bs-popover-auto[x-placement^="bottom"] .arrow::before, +.popover.bs-popover-right .arrow::before, +.popover.bs-popover-auto[x-placement^="right"] .arrow::before, +.popover.bs-popover-auto[x-placement^="right"] .arrow::before, +.popover.bs-popover-left .arrow::before, +.popover.bs-popover-auto[x-placement^="left"] .arrow::before, +.popover.bs-popover-auto[x-placement^="left"] .arrow::before { + border: 0; +} + +.popover-header { + background-color: #fff; + border: none; + padding: 15px 15px 5px; + font-size: 1.125rem; + margin: 0; + color: #555; +} + +.popover-body { + padding: 10px 15px 15px; + line-height: 1.4; + color: #555; +} + +.dropdown-menu { + display: none; + padding: 0.3125rem 0; + border: 0; + opacity: 0; + transform: scale(0); + transform-origin: 0 0; + will-change: transform, opacity; + transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); +} + +.dropdown-menu.showing { + animation-name: bmd-dropdown-animation; + animation-duration: 0.3s; + animation-fill-mode: forwards; + animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); +} + +.open>.dropdown-menu, +.dropdown-menu.show { + display: block; + opacity: 1; + transform: scale(1); +} + +.dropdown-menu.hiding { + display: block; + opacity: 0; + transform: scale(0); +} + +.dropdown-menu[x-placement="bottom-start"] { + transform-origin: 0 0; +} + +.dropdown-menu[x-placement="bottom-end"] { + transform-origin: 100% 0; +} + +.dropdown-menu[x-placement="top-start"] { + transform-origin: 0 100%; +} + +.dropdown-menu[x-placement="top-end"] { + transform-origin: 100% 100%; +} + +.dropdown-menu .disabled>a { + color: #777; +} + +.dropdown-menu .disabled>a:focus, +.dropdown-menu .disabled>a:hover { + text-decoration: none; + background-color: transparent; + background-image: none; + color: #777; +} + +.dropdown-menu.dropdown-with-icons .dropdown-item { + padding: 0.75rem 1.25rem 0.75rem 0.75rem; +} + +.dropdown-menu.dropdown-with-icons .dropdown-item .material-icons { + vertical-align: middle; + font-size: 24px; + position: relative; + margin-top: -4px; + top: 1px; + margin-right: 12px; + opacity: .5; +} + +.dropdown-menu .dropdown-item, +.dropdown-menu li>a { + position: relative; + width: auto; + display: flex; + flex-flow: nowrap; + align-items: center; + color: #333; + font-weight: normal; + text-decoration: none; + font-size: .8125rem; + border-radius: 0.125rem; + margin: 0 0.3125rem; + -webkit-transition: all 150ms linear; + -moz-transition: all 150ms linear; + -o-transition: all 150ms linear; + -ms-transition: all 150ms linear; + transition: all 150ms linear; + min-width: 7rem; + padding: 0.625rem 1.25rem; + overflow: hidden; + line-height: 1.428571; + text-overflow: ellipsis; + word-wrap: break-word; +} + +@media (min-width: 768px) { + + .dropdown-menu .dropdown-item, + .dropdown-menu li>a { + padding-right: 1.5rem; + padding-left: 1.5rem; + } +} + +.dropdown-menu .dropdown-item:hover, +.dropdown-menu .dropdown-item:focus, +.dropdown-menu a:hover, +.dropdown-menu a:focus, +.dropdown-menu a:active { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(156, 39, 176, 0.4); + background-color: #9c27b0; + color: #FFFFFF; +} + +a[data-toggle="collapse"][aria-expanded="true"] .caret, +a[aria-expanded="true"] .caret, +.dropdown.open .caret, +.dropup.open .caret, +.btn-group.bootstrap-select.open .caret { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} + +.dropdown-toggle.bmd-btn-icon::after, +.dropdown-toggle.bmd-btn-fab::after { + display: none; +} + +.dropdown-toggle.bmd-btn-icon~.dropdown-menu.dropdown-menu-top-left, +.dropdown-toggle.bmd-btn-icon~.dropdown-menu.dropdown-menu-top-right, +.dropdown-toggle.bmd-btn-fab~.dropdown-menu.dropdown-menu-top-left, +.dropdown-toggle.bmd-btn-fab~.dropdown-menu.dropdown-menu-top-right { + bottom: 2rem; +} + +.dropdown-toggle:after { + will-change: transform; + transition: transform 150ms linear; +} + +.dropdown-toggle.bmd-btn-fab-sm~.dropdown-menu.dropdown-menu-top-left, +.dropdown-toggle.bmd-btn-fab-sm~.dropdown-menu.dropdown-menu-top-right { + bottom: 2.5rem; +} + +.dropdown-toggle.bmd-btn-icon~.dropdown-menu { + margin: 0; +} + +.show>.dropdown-toggle:not(.dropdown-item):after { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} + +.dropdown-header { + font-size: 0.75rem; + padding-top: .625rem; + padding-bottom: .625rem; + text-transform: none; + color: #777; + line-height: 1.428571; + font-weight: inherit; +} + +@keyframes bmd-dropdown-animation { + from { + opacity: 0; + transform: scale(0); + } + + to { + opacity: 1; + transform: scale(1); + } +} + +.dropdown-menu.bootstrap-datetimepicker-widget { + opacity: 0; + transform: scale(0); + transition-duration: 0.3s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transform-origin: 0 0; + will-change: transform, opacity; + top: 0; +} + +.dropdown-menu.bootstrap-datetimepicker-widget.top { + transform-origin: 0 100%; +} + +.dropdown-menu.bootstrap-datetimepicker-widget.open { + opacity: 1; + transform: scale(1); + top: 0; +} + +.togglebutton { + vertical-align: middle; +} + +.togglebutton, +.togglebutton label, +.togglebutton input, +.togglebutton .toggle { + user-select: none; +} + +.togglebutton label { + cursor: pointer; + color: rgba(0, 0, 0, 0.26); +} + +.form-group.is-focused .togglebutton label { + color: rgba(0, 0, 0, 0.26); +} + +.form-group.is-focused .togglebutton label:hover, +.form-group.is-focused .togglebutton label:focus { + color: rgba(0, 0, 0, .54); +} + +fieldset[disabled] .form-group.is-focused .togglebutton label { + color: rgba(0, 0, 0, 0.26); +} + +.togglebutton label input[type=checkbox] { + opacity: 0; + width: 0; + height: 0; +} + +.togglebutton label .toggle { + text-align: left; + margin-left: 5px; +} + +.togglebutton label .toggle, +.togglebutton label input[type=checkbox][disabled]+.toggle { + content: ""; + display: inline-block; + width: 30px; + height: 15px; + background-color: rgba(80, 80, 80, 0.7); + border-radius: 15px; + margin-right: 15px; + transition: background 0.3s ease; + vertical-align: middle; +} + +.togglebutton label .toggle:after { + content: ""; + display: inline-block; + width: 20px; + height: 20px; + background-color: #FFFFFF; + border-radius: 20px; + position: relative; + box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4); + left: -5px; + top: -2.5px; + border: 1px solid rgba(0, 0, 0, .54); + transition: left 0.3s ease, background 0.3s ease, box-shadow 0.1s ease; +} + +.togglebutton label input[type=checkbox][disabled]+.toggle:after, +.togglebutton label input[type=checkbox][disabled]:checked+.toggle:after { + background-color: #BDBDBD; +} + +.togglebutton label input[type=checkbox]+.toggle:active:after, +.togglebutton label input[type=checkbox][disabled]+.toggle:active:after { + box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.1); +} + +.togglebutton label input[type=checkbox]:checked+.toggle:after { + left: 15px; +} + +.togglebutton label input[type=checkbox]:checked+.toggle { + background-color: rgba(156, 39, 176, 0.7); +} + +.togglebutton label input[type=checkbox]:checked+.toggle:after { + border-color: #9c27b0; +} + +.togglebutton label input[type=checkbox]:checked+.toggle:active:after { + box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(156, 39, 176, 0.1); +} + +.ripple { + position: relative; +} + +.ripple-container { + position: absolute; + top: 0; + left: 0; + z-index: 1; + width: 100%; + height: 100%; + overflow: hidden; + pointer-events: none; + border-radius: inherit; +} + +.ripple-container .ripple-decorator { + position: absolute; + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + pointer-events: none; + background-color: rgba(0, 0, 0, 0.05); + border-radius: 100%; + opacity: 0; + transform: scale(1); + transform-origin: 50%; +} + +.ripple-container .ripple-decorator.ripple-on { + opacity: 0.1; + transition: opacity 0.15s ease-in 0s, transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s; +} + +.ripple-container .ripple-decorator.ripple-out { + opacity: 0; + transition: opacity 0.1s linear 0s !important; +} + +.footer { + padding: 0.9375rem 0; + text-align: center; + display: -webkit-flex; + /* Safari */ + /* Safari 6.1+ */ + display: flex; +} + +.footer ul { + margin-bottom: 0; + padding: 0; + list-style: none; +} + +.footer ul li { + display: inline-block; +} + +.footer ul li a { + color: inherit; + padding: 0.9375rem; + font-weight: 500; + font-size: 12px; + text-transform: uppercase; + border-radius: 3px; + text-decoration: none; + position: relative; + display: block; +} + +.footer ul li a:hover { + text-decoration: none; +} + +.footer ul li .btn { + margin: 0; +} + +.footer ul.links-horizontal:first-child a { + padding-left: 0; +} + +.footer ul.links-horizontal:last-child a { + padding-right: 0; +} + +.footer ul.links-vertical li { + display: block; + margin-left: -5px; + margin-right: -5px; +} + +.footer ul.links-vertical li a { + padding: 5px; +} + +.footer .social-buttons a, +.footer .social-buttons .btn { + margin-top: 5px; + margin-bottom: 5px; +} + +.footer .footer-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; + margin-left: -15px; +} + +.footer .footer-brand:hover, +.footer .footer-brand:focus { + color: #3C4858; +} + +.footer .copyright { + padding: 15px 0; +} + +.footer .copyright .material-icons { + font-size: 18px; + position: relative; + top: 3px; +} + +.footer .pull-center { + display: inline-block; + float: none; +} + +.off-canvas-sidebar .footer { + position: absolute; + bottom: 0; + width: 100%; +} + +@media screen and (min-width: 768px) { + .footer .copyright { + padding-right: 15px; + } +} + +.wrapper { + position: relative; + top: 0; + height: 100vh; +} + +.sidebar { + position: fixed; + top: 0; + bottom: 0; + left: 0; + z-index: 2; + width: 170px; + background: #fff; + box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2); +} + +.sidebar .caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px dashed; + border-top: 4px solid\9; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} + +.sidebar[data-background-color="black"] { + background-color: #191919; +} + +.sidebar .sidebar-wrapper { + position: relative; + height: calc(100vh - 75px); + overflow: auto; + width: 170px; + z-index: 4; + padding-bottom: 30px; +} + +.sidebar .sidebar-wrapper .dropdown .dropdown-backdrop { + display: none !important; +} + +.sidebar .sidebar-wrapper .navbar-form { + border: none; + box-shadow: none; +} + +.sidebar .sidebar-wrapper .navbar-form .input-group { + font-size: 1.7em; + height: 36px; + width: 78%; + padding-left: 17px; +} + +.sidebar .sidebar-wrapper>.nav [data-toggle="collapse"]~div>ul>li>a span, +.sidebar .sidebar-wrapper .user .user-info [data-toggle="collapse"]~div>ul>li>a span { + display: inline-block; +} + +.sidebar .sidebar-wrapper>.nav [data-toggle="collapse"]~div>ul>li>a .sidebar-normal, +.sidebar .sidebar-wrapper .user .user-info [data-toggle="collapse"]~div>ul>li>a .sidebar-normal { + margin: 0; + position: relative; + transform: translateX(0px); + opacity: 1; + white-space: nowrap; + display: block; +} + +.sidebar .sidebar-wrapper>.nav [data-toggle="collapse"]~div>ul>li>a .sidebar-mini, +.sidebar .sidebar-wrapper .user .user-info [data-toggle="collapse"]~div>ul>li>a .sidebar-mini { + text-transform: uppercase; + width: 30px; + margin-right: 15px; + text-align: center; + letter-spacing: 1px; + position: relative; + float: left; + display: inherit; +} + +.sidebar .sidebar-wrapper>.nav [data-toggle="collapse"]~div>ul>li>a i, +.sidebar .sidebar-wrapper .user .user-info [data-toggle="collapse"]~div>ul>li>a i { + font-size: 17px; + line-height: 20px; + width: 26px; +} + +.sidebar .logo-tim { + border-radius: 50%; + border: 1px solid #333; + display: block; + height: 61px; + width: 61px; + float: left; + overflow: hidden; +} + +.sidebar .logo-tim img { + width: 60px; + height: 60px; +} + +.sidebar .nav { + margin-top: 20px; + display: block; +} + +.sidebar .nav .caret { + margin-top: 13px; + position: absolute; + right: 6px; +} + +.sidebar .nav li>a:hover, +.sidebar .nav li>a:focus { + background-color: transparent; + outline: none; +} + +.sidebar .nav li:first-child>a { + margin: 0 15px; +} + +.sidebar .nav li:hover>a, +.sidebar .nav li .dropdown-menu a:hover, +.sidebar .nav li .dropdown-menu a:focus, +.sidebar .nav li.active>[data-toggle="collapse"] { + background-color: rgba(200, 200, 200, 0.2); + color: #3C4858; + box-shadow: none; +} + +.sidebar .nav li.active>[data-toggle="collapse"] i { + color: #a9afbb; +} + +.sidebar .nav li.active>a, +.sidebar .nav li.active>a i { + color: #fff; +} + +.sidebar .nav li.separator { + margin: 15px 0; +} + +.sidebar .nav li.separator:after { + width: calc(100% - 30px); + content: ""; + position: absolute; + height: 1px; + left: 15px; + background-color: rgba(180, 180, 180, 0.3); +} + +.sidebar .nav li.separator+li { + margin-top: 31px; +} + +.sidebar .nav p { + margin: 0; + line-height: 30px; + font-size: 14px; + position: relative; + display: block; + height: auto; + white-space: nowrap; +} + +.sidebar .nav i { + font-size: 24px; + float: left; + margin-right: 15px; + line-height: 30px; + width: 30px; + text-align: center; + color: #a9afbb; +} + +.sidebar .nav li a, +.sidebar .nav li .dropdown-menu a { + margin: 10px 15px 0; + border-radius: 3px; + color: #3C4858; + padding-left: 10px; + padding-right: 10px; + text-transform: capitalize; + font-size: 13px; + padding: 10px 15px; +} + +.sidebar .sidebar-background { + position: absolute; + z-index: 1; + height: 100%; + width: 100%; + display: block; + top: 0; + left: 0; + background-size: cover; + background-position: center center; +} + +.sidebar .sidebar-background:after { + position: absolute; + z-index: 3; + width: 100%; + height: 100%; + content: ""; + display: block; + background: #FFFFFF; + opacity: .93; +} + +.sidebar .logo { + padding: 15px 0px; + margin: 0; + display: block; + position: relative; + z-index: 4; +} + +.sidebar .logo:after { + content: ''; + position: absolute; + bottom: 0; + right: 15px; + height: 1px; + width: calc(100% - 30px); + background-color: rgba(180, 180, 180, 0.3); +} + +.sidebar .logo p { + float: left; + font-size: 20px; + margin: 10px 10px; + color: #fff; + line-height: 20px; +} + +.sidebar .logo .simple-text { + text-transform: uppercase; + padding: 5px 0px; + display: inline-block; + font-size: 18px; + color: #3C4858; + white-space: nowrap; + font-weight: 400; + line-height: 30px; + overflow: hidden; + text-align: center; + display: block; +} + +.sidebar .logo-tim { + border-radius: 50%; + border: 1px solid #333; + display: block; + height: 61px; + width: 61px; + float: left; + overflow: hidden; +} + +.sidebar .logo-tim img { + width: 60px; + height: 60px; +} + +.sidebar[data-background-color="black"] .nav .nav-item .nav-link { + color: #fff; +} + +.sidebar[data-background-color="black"] .nav .nav-item i { + color: rgba(255, 255, 255, 0.8); +} + +.sidebar[data-background-color="black"] .nav .nav-item.active [data-toggle="collapse"], +.sidebar[data-background-color="black"] .nav .nav-item:hover [data-toggle="collapse"] { + color: #fff; +} + +.sidebar[data-background-color="black"] .nav .nav-item.active [data-toggle="collapse"] i, +.sidebar[data-background-color="black"] .nav .nav-item:hover [data-toggle="collapse"] i { + color: rgba(255, 255, 255, 0.8); +} + +.sidebar[data-background-color="black"] .user a { + color: #fff; +} + +.sidebar[data-background-color="black"] .simple-text { + color: #fff; +} + +.sidebar[data-background-color="black"] .sidebar-background:after { + background: #000; + opacity: .8; +} + +.sidebar[data-background-color="black"] .nav li .dropdown-menu .dropdown-item { + color: #fff; +} + +.sidebar[data-color="purple"] li.active>a { + background-color: #9c27b0; + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(156, 39, 176, 0.4); +} + +.sidebar[data-color="azure"] li.active>a { + background-color: #00bcd4; + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(0, 188, 212, 0.4); +} + +.sidebar[data-color="green"] li.active>a { + background-color: #4caf50; + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(76, 175, 80, 0.4); +} + +.sidebar[data-color="orange"] li.active>a { + background-color: #ff9800; + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(255, 152, 0, 0.4); +} + +.sidebar[data-color="danger"] li.active>a { + background-color: #f44336; + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(244, 67, 54, 0.4); +} + +.sidebar[data-color="rose"] li.active>a { + background-color: #e91e63; + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(233, 30, 99, 0.4); +} + +.sidebar[data-color="white"] li.active>a { + background-color: #fff; + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(255, 255, 255, 0.4); +} + +.sidebar[data-color="white"] .nav .nav-item.active>a:not([data-toggle="collapse"]) { + color: #3C4858; + opacity: 1; + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(60, 72, 88, 0.4); +} + +.sidebar[data-color="white"] .nav .nav-item.active>a:not([data-toggle="collapse"]) i { + color: rgba(60, 72, 88, 0.8); +} + +.sidebar[data-background-color="red"] .nav .nav-item .nav-link { + color: #fff; +} + +.sidebar[data-background-color="red"] .nav .nav-item i { + color: rgba(255, 255, 255, 0.8); +} + +.sidebar[data-background-color="red"] .nav .nav-item.active [data-toggle="collapse"], +.sidebar[data-background-color="red"] .nav .nav-item:hover [data-toggle="collapse"] { + color: #fff; +} + +.sidebar[data-background-color="red"] .nav .nav-item.active [data-toggle="collapse"] i, +.sidebar[data-background-color="red"] .nav .nav-item:hover [data-toggle="collapse"] i { + color: rgba(255, 255, 255, 0.8); +} + +.sidebar[data-background-color="red"] .user a { + color: #fff; +} + +.sidebar[data-background-color="red"] .simple-text { + color: #fff; +} + +.sidebar[data-background-color="red"] .sidebar-background:after { + background: #f44336; + opacity: .8; +} + +.sidebar[data-background-color="red"] .user:after, +.sidebar[data-background-color="red"] .logo:after, +.sidebar[data-background-color="red"] .nav li.separator:after { + background-color: rgba(255, 255, 255, 0.3); +} + +.sidebar[data-background-color="red"] .nav li:hover:not(.active)>a, +.sidebar[data-background-color="red"] .nav li.active>[data-toggle="collapse"] { + background-color: rgba(255, 255, 255, 0.1); +} + +.sidebar[data-image]:after, +.sidebar.has-image:after { + opacity: .77; +} + +.off-canvas-sidebar .navbar-collapse .nav>li>a, +.off-canvas-sidebar .navbar-collapse .nav>li>a:hover { + color: #fff; + margin: 0 15px; +} + +.off-canvas-sidebar .navbar-collapse .nav>li>a:focus, +.off-canvas-sidebar .navbar-collapse .nav>li>a:hover { + background: rgba(200, 200, 200, 0.2); +} + +.main-panel { + position: relative; + float: right; + width: calc(100% - 170px); + transition: 0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1); +} + +.main-panel>.content { + margin-top: 70px; + padding: 30px 15px; + min-height: calc(100vh - 123px); +} + +.main-panel>.footer { + border-top: 1px solid #e7e7e7; +} + +.main-panel>.navbar { + margin-bottom: 0; +} + +.main-panel .header { + margin-bottom: 30px; +} + +.main-panel .header .title { + margin-top: 10px; + margin-bottom: 10px; +} + +.perfect-scrollbar-on .sidebar, +.perfect-scrollbar-on .main-panel { + height: 100%; + max-height: 100%; +} + +.sidebar, +.main-panel, +.sidebar-wrapper { + -webkit-transition-property: top, bottom, width; + transition-property: top, bottom, width; + -webkit-transition-duration: .2s, .2s, .35s; + transition-duration: .2s, .2s, .35s; + -webkit-transition-timing-function: linear, linear, ease; + transition-timing-function: linear, linear, ease; + -webkit-overflow-scrolling: touch; +} + +.visible-on-sidebar-regular { + display: inline-block !important; +} + +.visible-on-sidebar-mini { + display: none !important; +} + +@media (min-width: 991px) { + .sidebar-mini .visible-on-sidebar-regular { + display: none !important; + } + + .sidebar-mini .visible-on-sidebar-mini { + display: inline-block !important; + } + + .sidebar-mini .sidebar, + .sidebar-mini .sidebar .sidebar-wrapper { + width: 80px; + } + + .sidebar-mini .main-panel { + width: calc(100% - 80px); + } + + .sidebar-mini .sidebar { + display: block; + font-weight: 200; + z-index: 9999; + } + + .sidebar-mini .sidebar .logo a.logo-normal { + opacity: 0; + -webkit-transform: translate3d(-25px, 0, 0); + -moz-transform: translate3d(-25px, 0, 0); + -o-transform: translate3d(-25px, 0, 0); + -ms-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + .sidebar-mini .sidebar .sidebar-wrapper>.nav [data-toggle="collapse"]~div>ul>li>a .sidebar-normal, + .sidebar-mini .sidebar .sidebar-wrapper .user .user-info [data-toggle="collapse"]~div>ul>li>a .sidebar-normal, + .sidebar-mini .sidebar .sidebar-wrapper .user .user-info>a>span, + .sidebar-mini .sidebar .sidebar-wrapper>.nav li>a p { + -webkit-transform: translate3d(-25px, 0, 0); + -moz-transform: translate3d(-25px, 0, 0); + -o-transform: translate3d(-25px, 0, 0); + -ms-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + opacity: 0; + } + + .sidebar-mini .sidebar:hover { + width: 260px; + } + + .sidebar-mini .sidebar:hover .logo a.logo-normal { + opacity: 1; + -webkit-transform: translate3d(0px, 0, 0); + -moz-transform: translate3d(0px, 0, 0); + -o-transform: translate3d(0px, 0, 0); + -ms-transform: translate3d(0px, 0, 0); + transform: translate3d(0px, 0, 0); + } + + .sidebar-mini .sidebar:hover .sidebar-wrapper { + width: 260px; + } + + .sidebar-mini .sidebar:hover .sidebar-wrapper>.nav li>a p, + .sidebar-mini .sidebar:hover .sidebar-wrapper>.nav [data-toggle="collapse"]~div>ul>li>a .sidebar-normal, + .sidebar-mini .sidebar:hover .sidebar-wrapper .user .user-info [data-toggle="collapse"]~div>ul>li>a .sidebar-normal, + .sidebar-mini .sidebar:hover .sidebar-wrapper .user .user-info>a>span { + -webkit-transform: translate3d(0px, 0, 0); + -moz-transform: translate3d(0px, 0, 0); + -o-transform: translate3d(0px, 0, 0); + -ms-transform: translate3d(0px, 0, 0); + transform: translate3d(0px, 0, 0); + opacity: 1; + } + + .sidebar .nav .nav-item.active-pro { + position: absolute; + width: 100%; + bottom: 13px; + left: 0; + } +} + +.fixed-plugin .dropdown .dropdown-menu { + border-radius: 10px; +} + +.fixed-plugin .dropdown .dropdown-menu li.adjustments-line { + border-bottom: 1px solid #ddd; +} + +.fixed-plugin .dropdown .dropdown-menu li { + padding: 5px 2px !important; +} + +.fixed-plugin .dropdown .dropdown-menu .adjustments-line .bootstrap-switch { + position: absolute; + right: 10px !important; +} + +.fixed-plugin .dropdown .dropdown-menu .adjustments-line label { + margin-bottom: .1rem !important; +} + +.fixed-plugin li>a, +.fixed-plugin .badge { + transition: all .34s; + -webkit-transition: all .34s; + -moz-transition: all .34s; +} + +.fixed-plugin { + position: fixed; + top: 115px; + right: 0; + width: 64px; + background: rgba(0, 0, 0, 0.3); + z-index: 3; + border-radius: 8px 0 0 8px; + text-align: center; +} + +.fixed-plugin .fa-cog { + color: #FFFFFF; + padding: 10px; + border-radius: 0 0 6px 6px; + width: auto; +} + +.fixed-plugin .dropdown-menu { + right: 80px; + left: auto; + width: 290px; + border-radius: 0.1875rem; + padding: 0 10px; +} + +.fixed-plugin .dropdown-menu:after, +.fixed-plugin .dropdown-menu:before { + right: 10px; + margin-left: auto; + left: auto; +} + +.fixed-plugin .fa-circle-thin { + color: #FFFFFF; +} + +.fixed-plugin .active .fa-circle-thin { + color: #00bbff; +} + +.fixed-plugin .dropdown-menu>.active>a, +.fixed-plugin .dropdown-menu>.active>a:hover, +.fixed-plugin .dropdown-menu>.active>a:focus { + color: #777777; + text-align: center; +} + +.fixed-plugin img { + border-radius: 0; + width: 100%; + height: 100px; + margin: 0 auto; +} + +.fixed-plugin .dropdown-menu li>a:hover, +.fixed-plugin .dropdown-menu li>a:focus { + box-shadow: none; +} + +.fixed-plugin .badge { + border: 3px solid #FFFFFF; + border-radius: 50%; + cursor: pointer; + display: inline-block; + height: 23px; + margin-right: 5px; + position: relative; + width: 23px; + padding: 8px; +} + +.fixed-plugin .badge.active, +.fixed-plugin .badge:hover { + border-color: #00bbff; +} + +.fixed-plugin .badge-black { + background-color: #000; +} + +.fixed-plugin .badge-azure { + background-color: #2CA8FF; +} + +.fixed-plugin .badge-green { + background-color: #18ce0f; +} + +.fixed-plugin .badge-orange { + background-color: #f96332; +} + +.fixed-plugin .badge-yellow { + background-color: #FFB236; +} + +.fixed-plugin .badge-danger { + background-color: #f44336; +} + +.fixed-plugin .badge-purple { + background-color: #9368E9; +} + +.fixed-plugin .badge-white { + background-color: rgba(200, 200, 200, 0.2); +} + +.fixed-plugin .badge-rose { + background-color: #e91e63; +} + +.fixed-plugin h5 { + font-size: 14px; + margin: 10px; +} + +.fixed-plugin .dropdown-menu li { + display: block; + padding: 18px 2px; + width: 25%; + float: left; +} + +.fixed-plugin li.adjustments-line, +.fixed-plugin li.header-title, +.fixed-plugin li.button-container { + width: 100%; + height: 50px; + min-height: inherit; +} + +.fixed-plugin li.button-container { + height: auto; +} + +.fixed-plugin li.button-container div { + margin-bottom: 5px; +} + +.fixed-plugin .btn { + position: relative; + padding: 12px 30px; + margin: 0.3125rem 1px; + font-size: .75rem; + border-radius: 0.2rem; + transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1); + will-change: box-shadow, transform; +} + +.fixed-plugin .btn.btn-primary { + color: #fff; + background-color: #9c27b0; + border-color: #9c27b0; + box-shadow: 0 2px 2px 0 rgba(156, 39, 176, 0.14), 0 3px 1px -2px rgba(156, 39, 176, 0.2), 0 1px 5px 0 rgba(156, 39, 176, 0.12); +} + +.fixed-plugin .btn.btn-primary:hover { + color: #fff; + background-color: #9124a3; + border-color: #701c7e; +} + +.fixed-plugin .btn.btn-primary:focus, +.fixed-plugin .btn.btn-primary.focus, +.fixed-plugin .btn.btn-primary:hover { + color: #fff; + background-color: #9124a3; + border-color: #701c7e; +} + +.fixed-plugin .btn.btn-primary:active, +.fixed-plugin .btn.btn-primary.active, +.open>.fixed-plugin .btn.btn-primary.dropdown-toggle, +.show>.fixed-plugin .btn.btn-primary.dropdown-toggle { + color: #fff; + background-color: #9124a3; + border-color: #701c7e; + box-shadow: 0 2px 2px 0 rgba(156, 39, 176, 0.14), 0 3px 1px -2px rgba(156, 39, 176, 0.2), 0 1px 5px 0 rgba(156, 39, 176, 0.12); +} + +.fixed-plugin .btn.btn-primary:active:hover, +.fixed-plugin .btn.btn-primary:active:focus, +.fixed-plugin .btn.btn-primary:active.focus, +.fixed-plugin .btn.btn-primary.active:hover, +.fixed-plugin .btn.btn-primary.active:focus, +.fixed-plugin .btn.btn-primary.active.focus, +.open>.fixed-plugin .btn.btn-primary.dropdown-toggle:hover, +.open>.fixed-plugin .btn.btn-primary.dropdown-toggle:focus, +.open>.fixed-plugin .btn.btn-primary.dropdown-toggle.focus, +.show>.fixed-plugin .btn.btn-primary.dropdown-toggle:hover, +.show>.fixed-plugin .btn.btn-primary.dropdown-toggle:focus, +.show>.fixed-plugin .btn.btn-primary.dropdown-toggle.focus { + color: #fff; + background-color: #9124a3; + border-color: #3f1048; +} + +.open>.fixed-plugin .btn.btn-primary.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #9c27b0; +} + +.open>.fixed-plugin .btn.btn-primary.dropdown-toggle.bmd-btn-icon:hover { + background-color: #9124a3; +} + +.fixed-plugin .btn.btn-primary.disabled:focus, +.fixed-plugin .btn.btn-primary.disabled.focus, +.fixed-plugin .btn.btn-primary:disabled:focus, +.fixed-plugin .btn.btn-primary:disabled.focus { + background-color: #9c27b0; + border-color: #9c27b0; +} + +.fixed-plugin .btn.btn-primary.disabled:hover, +.fixed-plugin .btn.btn-primary:disabled:hover { + background-color: #9c27b0; + border-color: #9c27b0; +} + +.fixed-plugin .btn.btn-primary:focus, +.fixed-plugin .btn.btn-primary:active, +.fixed-plugin .btn.btn-primary:hover { + box-shadow: 0 14px 26px -12px rgba(156, 39, 176, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(156, 39, 176, 0.2); +} + +.fixed-plugin .btn.btn-primary.btn-link { + background-color: transparent; + color: #9c27b0; + box-shadow: none; +} + +.fixed-plugin .btn.btn-primary.btn-link:hover, +.fixed-plugin .btn.btn-primary.btn-link:focus, +.fixed-plugin .btn.btn-primary.btn-link:active { + background-color: transparent; + color: #9c27b0; +} + +.fixed-plugin .btn.btn-secondary { + color: #333333; + background-color: #fafafa; + border-color: #ccc; + box-shadow: 0 2px 2px 0 rgba(250, 250, 250, 0.14), 0 3px 1px -2px rgba(250, 250, 250, 0.2), 0 1px 5px 0 rgba(250, 250, 250, 0.12); +} + +.fixed-plugin .btn.btn-secondary:hover { + color: #333333; + background-color: #f2f2f2; + border-color: #adadad; +} + +.fixed-plugin .btn.btn-secondary:focus, +.fixed-plugin .btn.btn-secondary.focus, +.fixed-plugin .btn.btn-secondary:hover { + color: #333333; + background-color: #f2f2f2; + border-color: #adadad; +} + +.fixed-plugin .btn.btn-secondary:active, +.fixed-plugin .btn.btn-secondary.active, +.open>.fixed-plugin .btn.btn-secondary.dropdown-toggle, +.show>.fixed-plugin .btn.btn-secondary.dropdown-toggle { + color: #333333; + background-color: #f2f2f2; + border-color: #adadad; + box-shadow: 0 2px 2px 0 rgba(250, 250, 250, 0.14), 0 3px 1px -2px rgba(250, 250, 250, 0.2), 0 1px 5px 0 rgba(250, 250, 250, 0.12); +} + +.fixed-plugin .btn.btn-secondary:active:hover, +.fixed-plugin .btn.btn-secondary:active:focus, +.fixed-plugin .btn.btn-secondary:active.focus, +.fixed-plugin .btn.btn-secondary.active:hover, +.fixed-plugin .btn.btn-secondary.active:focus, +.fixed-plugin .btn.btn-secondary.active.focus, +.open>.fixed-plugin .btn.btn-secondary.dropdown-toggle:hover, +.open>.fixed-plugin .btn.btn-secondary.dropdown-toggle:focus, +.open>.fixed-plugin .btn.btn-secondary.dropdown-toggle.focus, +.show>.fixed-plugin .btn.btn-secondary.dropdown-toggle:hover, +.show>.fixed-plugin .btn.btn-secondary.dropdown-toggle:focus, +.show>.fixed-plugin .btn.btn-secondary.dropdown-toggle.focus { + color: #333333; + background-color: #f2f2f2; + border-color: #8c8c8c; +} + +.open>.fixed-plugin .btn.btn-secondary.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #fafafa; +} + +.open>.fixed-plugin .btn.btn-secondary.dropdown-toggle.bmd-btn-icon:hover { + background-color: #f2f2f2; +} + +.fixed-plugin .btn.btn-secondary.disabled:focus, +.fixed-plugin .btn.btn-secondary.disabled.focus, +.fixed-plugin .btn.btn-secondary:disabled:focus, +.fixed-plugin .btn.btn-secondary:disabled.focus { + background-color: #fafafa; + border-color: #ccc; +} + +.fixed-plugin .btn.btn-secondary.disabled:hover, +.fixed-plugin .btn.btn-secondary:disabled:hover { + background-color: #fafafa; + border-color: #ccc; +} + +.fixed-plugin .btn.btn-secondary:focus, +.fixed-plugin .btn.btn-secondary:active, +.fixed-plugin .btn.btn-secondary:hover { + box-shadow: 0 14px 26px -12px rgba(250, 250, 250, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(250, 250, 250, 0.2); +} + +.fixed-plugin .btn.btn-secondary.btn-link { + background-color: transparent; + color: #fafafa; + box-shadow: none; +} + +.fixed-plugin .btn.btn-secondary.btn-link:hover, +.fixed-plugin .btn.btn-secondary.btn-link:focus, +.fixed-plugin .btn.btn-secondary.btn-link:active { + background-color: transparent; + color: #fafafa; +} + +.fixed-plugin .btn.btn-info { + color: #fff; + background-color: #00bcd4; + border-color: #00bcd4; + box-shadow: 0 2px 2px 0 rgba(0, 188, 212, 0.14), 0 3px 1px -2px rgba(0, 188, 212, 0.2), 0 1px 5px 0 rgba(0, 188, 212, 0.12); +} + +.fixed-plugin .btn.btn-info:hover { + color: #fff; + background-color: #00aec5; + border-color: #008697; +} + +.fixed-plugin .btn.btn-info:focus, +.fixed-plugin .btn.btn-info.focus, +.fixed-plugin .btn.btn-info:hover { + color: #fff; + background-color: #00aec5; + border-color: #008697; +} + +.fixed-plugin .btn.btn-info:active, +.fixed-plugin .btn.btn-info.active, +.open>.fixed-plugin .btn.btn-info.dropdown-toggle, +.show>.fixed-plugin .btn.btn-info.dropdown-toggle { + color: #fff; + background-color: #00aec5; + border-color: #008697; + box-shadow: 0 2px 2px 0 rgba(0, 188, 212, 0.14), 0 3px 1px -2px rgba(0, 188, 212, 0.2), 0 1px 5px 0 rgba(0, 188, 212, 0.12); +} + +.fixed-plugin .btn.btn-info:active:hover, +.fixed-plugin .btn.btn-info:active:focus, +.fixed-plugin .btn.btn-info:active.focus, +.fixed-plugin .btn.btn-info.active:hover, +.fixed-plugin .btn.btn-info.active:focus, +.fixed-plugin .btn.btn-info.active.focus, +.open>.fixed-plugin .btn.btn-info.dropdown-toggle:hover, +.open>.fixed-plugin .btn.btn-info.dropdown-toggle:focus, +.open>.fixed-plugin .btn.btn-info.dropdown-toggle.focus, +.show>.fixed-plugin .btn.btn-info.dropdown-toggle:hover, +.show>.fixed-plugin .btn.btn-info.dropdown-toggle:focus, +.show>.fixed-plugin .btn.btn-info.dropdown-toggle.focus { + color: #fff; + background-color: #00aec5; + border-color: #004b55; +} + +.open>.fixed-plugin .btn.btn-info.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #00bcd4; +} + +.open>.fixed-plugin .btn.btn-info.dropdown-toggle.bmd-btn-icon:hover { + background-color: #00aec5; +} + +.fixed-plugin .btn.btn-info.disabled:focus, +.fixed-plugin .btn.btn-info.disabled.focus, +.fixed-plugin .btn.btn-info:disabled:focus, +.fixed-plugin .btn.btn-info:disabled.focus { + background-color: #00bcd4; + border-color: #00bcd4; +} + +.fixed-plugin .btn.btn-info.disabled:hover, +.fixed-plugin .btn.btn-info:disabled:hover { + background-color: #00bcd4; + border-color: #00bcd4; +} + +.fixed-plugin .btn.btn-info:focus, +.fixed-plugin .btn.btn-info:active, +.fixed-plugin .btn.btn-info:hover { + box-shadow: 0 14px 26px -12px rgba(0, 188, 212, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 188, 212, 0.2); +} + +.fixed-plugin .btn.btn-info.btn-link { + background-color: transparent; + color: #00bcd4; + box-shadow: none; +} + +.fixed-plugin .btn.btn-info.btn-link:hover, +.fixed-plugin .btn.btn-info.btn-link:focus, +.fixed-plugin .btn.btn-info.btn-link:active { + background-color: transparent; + color: #00bcd4; +} + +.fixed-plugin .btn.btn-success { + color: #fff; + background-color: #4caf50; + border-color: #4caf50; + box-shadow: 0 2px 2px 0 rgba(76, 175, 80, 0.14), 0 3px 1px -2px rgba(76, 175, 80, 0.2), 0 1px 5px 0 rgba(76, 175, 80, 0.12); +} + +.fixed-plugin .btn.btn-success:hover { + color: #fff; + background-color: #47a44b; + border-color: #39843c; +} + +.fixed-plugin .btn.btn-success:focus, +.fixed-plugin .btn.btn-success.focus, +.fixed-plugin .btn.btn-success:hover { + color: #fff; + background-color: #47a44b; + border-color: #39843c; +} + +.fixed-plugin .btn.btn-success:active, +.fixed-plugin .btn.btn-success.active, +.open>.fixed-plugin .btn.btn-success.dropdown-toggle, +.show>.fixed-plugin .btn.btn-success.dropdown-toggle { + color: #fff; + background-color: #47a44b; + border-color: #39843c; + box-shadow: 0 2px 2px 0 rgba(76, 175, 80, 0.14), 0 3px 1px -2px rgba(76, 175, 80, 0.2), 0 1px 5px 0 rgba(76, 175, 80, 0.12); +} + +.fixed-plugin .btn.btn-success:active:hover, +.fixed-plugin .btn.btn-success:active:focus, +.fixed-plugin .btn.btn-success:active.focus, +.fixed-plugin .btn.btn-success.active:hover, +.fixed-plugin .btn.btn-success.active:focus, +.fixed-plugin .btn.btn-success.active.focus, +.open>.fixed-plugin .btn.btn-success.dropdown-toggle:hover, +.open>.fixed-plugin .btn.btn-success.dropdown-toggle:focus, +.open>.fixed-plugin .btn.btn-success.dropdown-toggle.focus, +.show>.fixed-plugin .btn.btn-success.dropdown-toggle:hover, +.show>.fixed-plugin .btn.btn-success.dropdown-toggle:focus, +.show>.fixed-plugin .btn.btn-success.dropdown-toggle.focus { + color: #fff; + background-color: #47a44b; + border-color: #255627; +} + +.open>.fixed-plugin .btn.btn-success.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #4caf50; +} + +.open>.fixed-plugin .btn.btn-success.dropdown-toggle.bmd-btn-icon:hover { + background-color: #47a44b; +} + +.fixed-plugin .btn.btn-success.disabled:focus, +.fixed-plugin .btn.btn-success.disabled.focus, +.fixed-plugin .btn.btn-success:disabled:focus, +.fixed-plugin .btn.btn-success:disabled.focus { + background-color: #4caf50; + border-color: #4caf50; +} + +.fixed-plugin .btn.btn-success.disabled:hover, +.fixed-plugin .btn.btn-success:disabled:hover { + background-color: #4caf50; + border-color: #4caf50; +} + +.fixed-plugin .btn.btn-success:focus, +.fixed-plugin .btn.btn-success:active, +.fixed-plugin .btn.btn-success:hover { + box-shadow: 0 14px 26px -12px rgba(76, 175, 80, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(76, 175, 80, 0.2); +} + +.fixed-plugin .btn.btn-success.btn-link { + background-color: transparent; + color: #4caf50; + box-shadow: none; +} + +.fixed-plugin .btn.btn-success.btn-link:hover, +.fixed-plugin .btn.btn-success.btn-link:focus, +.fixed-plugin .btn.btn-success.btn-link:active { + background-color: transparent; + color: #4caf50; +} + +.fixed-plugin .btn.btn-warning { + color: #fff; + background-color: #ff9800; + border-color: #ff9800; + box-shadow: 0 2px 2px 0 rgba(255, 152, 0, 0.14), 0 3px 1px -2px rgba(255, 152, 0, 0.2), 0 1px 5px 0 rgba(255, 152, 0, 0.12); +} + +.fixed-plugin .btn.btn-warning:hover { + color: #fff; + background-color: #f08f00; + border-color: #c27400; +} + +.fixed-plugin .btn.btn-warning:focus, +.fixed-plugin .btn.btn-warning.focus, +.fixed-plugin .btn.btn-warning:hover { + color: #fff; + background-color: #f08f00; + border-color: #c27400; +} + +.fixed-plugin .btn.btn-warning:active, +.fixed-plugin .btn.btn-warning.active, +.open>.fixed-plugin .btn.btn-warning.dropdown-toggle, +.show>.fixed-plugin .btn.btn-warning.dropdown-toggle { + color: #fff; + background-color: #f08f00; + border-color: #c27400; + box-shadow: 0 2px 2px 0 rgba(255, 152, 0, 0.14), 0 3px 1px -2px rgba(255, 152, 0, 0.2), 0 1px 5px 0 rgba(255, 152, 0, 0.12); +} + +.fixed-plugin .btn.btn-warning:active:hover, +.fixed-plugin .btn.btn-warning:active:focus, +.fixed-plugin .btn.btn-warning:active.focus, +.fixed-plugin .btn.btn-warning.active:hover, +.fixed-plugin .btn.btn-warning.active:focus, +.fixed-plugin .btn.btn-warning.active.focus, +.open>.fixed-plugin .btn.btn-warning.dropdown-toggle:hover, +.open>.fixed-plugin .btn.btn-warning.dropdown-toggle:focus, +.open>.fixed-plugin .btn.btn-warning.dropdown-toggle.focus, +.show>.fixed-plugin .btn.btn-warning.dropdown-toggle:hover, +.show>.fixed-plugin .btn.btn-warning.dropdown-toggle:focus, +.show>.fixed-plugin .btn.btn-warning.dropdown-toggle.focus { + color: #fff; + background-color: #f08f00; + border-color: #804c00; +} + +.open>.fixed-plugin .btn.btn-warning.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #ff9800; +} + +.open>.fixed-plugin .btn.btn-warning.dropdown-toggle.bmd-btn-icon:hover { + background-color: #f08f00; +} + +.fixed-plugin .btn.btn-warning.disabled:focus, +.fixed-plugin .btn.btn-warning.disabled.focus, +.fixed-plugin .btn.btn-warning:disabled:focus, +.fixed-plugin .btn.btn-warning:disabled.focus { + background-color: #ff9800; + border-color: #ff9800; +} + +.fixed-plugin .btn.btn-warning.disabled:hover, +.fixed-plugin .btn.btn-warning:disabled:hover { + background-color: #ff9800; + border-color: #ff9800; +} + +.fixed-plugin .btn.btn-warning:focus, +.fixed-plugin .btn.btn-warning:active, +.fixed-plugin .btn.btn-warning:hover { + box-shadow: 0 14px 26px -12px rgba(255, 152, 0, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(255, 152, 0, 0.2); +} + +.fixed-plugin .btn.btn-warning.btn-link { + background-color: transparent; + color: #ff9800; + box-shadow: none; +} + +.fixed-plugin .btn.btn-warning.btn-link:hover, +.fixed-plugin .btn.btn-warning.btn-link:focus, +.fixed-plugin .btn.btn-warning.btn-link:active { + background-color: transparent; + color: #ff9800; +} + +.fixed-plugin .btn.btn-danger { + color: #fff; + background-color: #f44336; + border-color: #f44336; + box-shadow: 0 2px 2px 0 rgba(244, 67, 54, 0.14), 0 3px 1px -2px rgba(244, 67, 54, 0.2), 0 1px 5px 0 rgba(244, 67, 54, 0.12); +} + +.fixed-plugin .btn.btn-danger:hover { + color: #fff; + background-color: #f33527; + border-color: #e11b0c; +} + +.fixed-plugin .btn.btn-danger:focus, +.fixed-plugin .btn.btn-danger.focus, +.fixed-plugin .btn.btn-danger:hover { + color: #fff; + background-color: #f33527; + border-color: #e11b0c; +} + +.fixed-plugin .btn.btn-danger:active, +.fixed-plugin .btn.btn-danger.active, +.open>.fixed-plugin .btn.btn-danger.dropdown-toggle, +.show>.fixed-plugin .btn.btn-danger.dropdown-toggle { + color: #fff; + background-color: #f33527; + border-color: #e11b0c; + box-shadow: 0 2px 2px 0 rgba(244, 67, 54, 0.14), 0 3px 1px -2px rgba(244, 67, 54, 0.2), 0 1px 5px 0 rgba(244, 67, 54, 0.12); +} + +.fixed-plugin .btn.btn-danger:active:hover, +.fixed-plugin .btn.btn-danger:active:focus, +.fixed-plugin .btn.btn-danger:active.focus, +.fixed-plugin .btn.btn-danger.active:hover, +.fixed-plugin .btn.btn-danger.active:focus, +.fixed-plugin .btn.btn-danger.active.focus, +.open>.fixed-plugin .btn.btn-danger.dropdown-toggle:hover, +.open>.fixed-plugin .btn.btn-danger.dropdown-toggle:focus, +.open>.fixed-plugin .btn.btn-danger.dropdown-toggle.focus, +.show>.fixed-plugin .btn.btn-danger.dropdown-toggle:hover, +.show>.fixed-plugin .btn.btn-danger.dropdown-toggle:focus, +.show>.fixed-plugin .btn.btn-danger.dropdown-toggle.focus { + color: #fff; + background-color: #f33527; + border-color: #a21309; +} + +.open>.fixed-plugin .btn.btn-danger.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #f44336; +} + +.open>.fixed-plugin .btn.btn-danger.dropdown-toggle.bmd-btn-icon:hover { + background-color: #f33527; +} + +.fixed-plugin .btn.btn-danger.disabled:focus, +.fixed-plugin .btn.btn-danger.disabled.focus, +.fixed-plugin .btn.btn-danger:disabled:focus, +.fixed-plugin .btn.btn-danger:disabled.focus { + background-color: #f44336; + border-color: #f44336; +} + +.fixed-plugin .btn.btn-danger.disabled:hover, +.fixed-plugin .btn.btn-danger:disabled:hover { + background-color: #f44336; + border-color: #f44336; +} + +.fixed-plugin .btn.btn-danger:focus, +.fixed-plugin .btn.btn-danger:active, +.fixed-plugin .btn.btn-danger:hover { + box-shadow: 0 14px 26px -12px rgba(244, 67, 54, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(244, 67, 54, 0.2); +} + +.fixed-plugin .btn.btn-danger.btn-link { + background-color: transparent; + color: #f44336; + box-shadow: none; +} + +.fixed-plugin .btn.btn-danger.btn-link:hover, +.fixed-plugin .btn.btn-danger.btn-link:focus, +.fixed-plugin .btn.btn-danger.btn-link:active { + background-color: transparent; + color: #f44336; +} + +.fixed-plugin .btn.btn-rose { + color: #fff; + background-color: #e91e63; + border-color: #e91e63; + box-shadow: 0 2px 2px 0 rgba(233, 30, 99, 0.14), 0 3px 1px -2px rgba(233, 30, 99, 0.2), 0 1px 5px 0 rgba(233, 30, 99, 0.12); +} + +.fixed-plugin .btn.btn-rose:hover { + color: #fff; + background-color: #ea2c6d; + border-color: #b8124a; +} + +.fixed-plugin .btn.btn-rose:focus, +.fixed-plugin .btn.btn-rose.focus, +.fixed-plugin .btn.btn-rose:hover { + color: #fff; + background-color: #ea2c6d; + border-color: #b8124a; +} + +.fixed-plugin .btn.btn-rose:active, +.fixed-plugin .btn.btn-rose.active, +.open>.fixed-plugin .btn.btn-rose.dropdown-toggle, +.show>.fixed-plugin .btn.btn-rose.dropdown-toggle { + color: #fff; + background-color: #ea2c6d; + border-color: #b8124a; + box-shadow: 0 2px 2px 0 rgba(233, 30, 99, 0.14), 0 3px 1px -2px rgba(233, 30, 99, 0.2), 0 1px 5px 0 rgba(233, 30, 99, 0.12); +} + +.fixed-plugin .btn.btn-rose:active:hover, +.fixed-plugin .btn.btn-rose:active:focus, +.fixed-plugin .btn.btn-rose:active.focus, +.fixed-plugin .btn.btn-rose.active:hover, +.fixed-plugin .btn.btn-rose.active:focus, +.fixed-plugin .btn.btn-rose.active.focus, +.open>.fixed-plugin .btn.btn-rose.dropdown-toggle:hover, +.open>.fixed-plugin .btn.btn-rose.dropdown-toggle:focus, +.open>.fixed-plugin .btn.btn-rose.dropdown-toggle.focus, +.show>.fixed-plugin .btn.btn-rose.dropdown-toggle:hover, +.show>.fixed-plugin .btn.btn-rose.dropdown-toggle:focus, +.show>.fixed-plugin .btn.btn-rose.dropdown-toggle.focus { + color: #fff; + background-color: #ea2c6d; + border-color: #7b0c32; +} + +.open>.fixed-plugin .btn.btn-rose.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #e91e63; +} + +.open>.fixed-plugin .btn.btn-rose.dropdown-toggle.bmd-btn-icon:hover { + background-color: #ea2c6d; +} + +.fixed-plugin .btn.btn-rose.disabled:focus, +.fixed-plugin .btn.btn-rose.disabled.focus, +.fixed-plugin .btn.btn-rose:disabled:focus, +.fixed-plugin .btn.btn-rose:disabled.focus { + background-color: #e91e63; + border-color: #e91e63; +} + +.fixed-plugin .btn.btn-rose.disabled:hover, +.fixed-plugin .btn.btn-rose:disabled:hover { + background-color: #e91e63; + border-color: #e91e63; +} + +.fixed-plugin .btn.btn-rose:focus, +.fixed-plugin .btn.btn-rose:active, +.fixed-plugin .btn.btn-rose:hover { + box-shadow: 0 14px 26px -12px rgba(233, 30, 99, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(233, 30, 99, 0.2); +} + +.fixed-plugin .btn.btn-rose.btn-link { + background-color: transparent; + color: #e91e63; + box-shadow: none; +} + +.fixed-plugin .btn.btn-rose.btn-link:hover, +.fixed-plugin .btn.btn-rose.btn-link:focus, +.fixed-plugin .btn.btn-rose.btn-link:active { + background-color: transparent; + color: #e91e63; +} + +.fixed-plugin .btn, +.fixed-plugin .btn.btn-default { + color: #fff; + background-color: #999999; + border-color: #999999; + box-shadow: 0 2px 2px 0 rgba(153, 153, 153, 0.14), 0 3px 1px -2px rgba(153, 153, 153, 0.2), 0 1px 5px 0 rgba(153, 153, 153, 0.12); +} + +.fixed-plugin .btn:hover, +.fixed-plugin .btn.btn-default:hover { + color: #fff; + background-color: #919191; + border-color: #7a7a7a; +} + +.fixed-plugin .btn:focus, +.fixed-plugin .btn.focus, +.fixed-plugin .btn:hover, +.fixed-plugin .btn.btn-default:focus, +.fixed-plugin .btn.btn-default.focus, +.fixed-plugin .btn.btn-default:hover { + color: #fff; + background-color: #919191; + border-color: #7a7a7a; +} + +.fixed-plugin .btn:active, +.fixed-plugin .btn.active, +.open>.fixed-plugin .btn.dropdown-toggle, +.show>.fixed-plugin .btn.dropdown-toggle, +.fixed-plugin .btn.btn-default:active, +.fixed-plugin .btn.btn-default.active, +.open>.fixed-plugin .btn.btn-default.dropdown-toggle, +.show>.fixed-plugin .btn.btn-default.dropdown-toggle { + color: #fff; + background-color: #919191; + border-color: #7a7a7a; + box-shadow: 0 2px 2px 0 rgba(153, 153, 153, 0.14), 0 3px 1px -2px rgba(153, 153, 153, 0.2), 0 1px 5px 0 rgba(153, 153, 153, 0.12); +} + +.fixed-plugin .btn:active:hover, +.fixed-plugin .btn:active:focus, +.fixed-plugin .btn:active.focus, +.fixed-plugin .btn.active:hover, +.fixed-plugin .btn.active:focus, +.fixed-plugin .btn.active.focus, +.open>.fixed-plugin .btn.dropdown-toggle:hover, +.open>.fixed-plugin .btn.dropdown-toggle:focus, +.open>.fixed-plugin .btn.dropdown-toggle.focus, +.show>.fixed-plugin .btn.dropdown-toggle:hover, +.show>.fixed-plugin .btn.dropdown-toggle:focus, +.show>.fixed-plugin .btn.dropdown-toggle.focus, +.fixed-plugin .btn.btn-default:active:hover, +.fixed-plugin .btn.btn-default:active:focus, +.fixed-plugin .btn.btn-default:active.focus, +.fixed-plugin .btn.btn-default.active:hover, +.fixed-plugin .btn.btn-default.active:focus, +.fixed-plugin .btn.btn-default.active.focus, +.open>.fixed-plugin .btn.btn-default.dropdown-toggle:hover, +.open>.fixed-plugin .btn.btn-default.dropdown-toggle:focus, +.open>.fixed-plugin .btn.btn-default.dropdown-toggle.focus, +.show>.fixed-plugin .btn.btn-default.dropdown-toggle:hover, +.show>.fixed-plugin .btn.btn-default.dropdown-toggle:focus, +.show>.fixed-plugin .btn.btn-default.dropdown-toggle.focus { + color: #fff; + background-color: #919191; + border-color: #595959; +} + +.open>.fixed-plugin .btn.dropdown-toggle.bmd-btn-icon, +.open>.fixed-plugin .btn.btn-default.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #999999; +} + +.open>.fixed-plugin .btn.dropdown-toggle.bmd-btn-icon:hover, +.open>.fixed-plugin .btn.btn-default.dropdown-toggle.bmd-btn-icon:hover { + background-color: #919191; +} + +.fixed-plugin .btn.disabled:focus, +.fixed-plugin .btn.disabled.focus, +.fixed-plugin .btn:disabled:focus, +.fixed-plugin .btn:disabled.focus, +.fixed-plugin .btn.btn-default.disabled:focus, +.fixed-plugin .btn.btn-default.disabled.focus, +.fixed-plugin .btn.btn-default:disabled:focus, +.fixed-plugin .btn.btn-default:disabled.focus { + background-color: #999999; + border-color: #999999; +} + +.fixed-plugin .btn.disabled:hover, +.fixed-plugin .btn:disabled:hover, +.fixed-plugin .btn.btn-default.disabled:hover, +.fixed-plugin .btn.btn-default:disabled:hover { + background-color: #999999; + border-color: #999999; +} + +.fixed-plugin .btn:focus, +.fixed-plugin .btn:active, +.fixed-plugin .btn:hover, +.fixed-plugin .btn.btn-default:focus, +.fixed-plugin .btn.btn-default:active, +.fixed-plugin .btn.btn-default:hover { + box-shadow: 0 14px 26px -12px rgba(153, 153, 153, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(153, 153, 153, 0.2); +} + +.fixed-plugin .btn.btn-link, +.fixed-plugin .btn.btn-default.btn-link { + background-color: transparent; + color: #999999; + box-shadow: none; +} + +.fixed-plugin .btn.btn-link:hover, +.fixed-plugin .btn.btn-link:focus, +.fixed-plugin .btn.btn-link:active, +.fixed-plugin .btn.btn-default.btn-link:hover, +.fixed-plugin .btn.btn-default.btn-link:focus, +.fixed-plugin .btn.btn-default.btn-link:active { + background-color: transparent; + color: #999999; +} + +.fixed-plugin .btn:focus, +.fixed-plugin .btn.focus, +.fixed-plugin .btn:active:focus, +.fixed-plugin .btn:active.focus, +.fixed-plugin .btn.active:focus, +.fixed-plugin .btn.active.focus { + outline: 0; +} + +.fixed-plugin .btn.btn-round { + border-radius: 30px; +} + +.fixed-plugin .button-container .btn:not(.btn-facebook):not(.btn-twitter) { + display: block; +} + +.fixed-plugin .button-container.github-star { + margin-left: 78px; +} + +.fixed-plugin #sharrreTitle { + text-align: center; + padding: 10px 0; + height: 50px; +} + +.fixed-plugin li.header-title { + height: 30px; + line-height: 25px; + font-size: 12px; + font-weight: 600; + text-transform: uppercase; + text-align: center; +} + +.fixed-plugin .adjustments-line p { + float: left; + display: inline-block; + margin-bottom: 0; + font-size: 1em; + color: #3C4858; + padding-top: 0px; +} + +.fixed-plugin .adjustments-line a .badge-colors { + position: relative; + top: -2px; +} + +.fixed-plugin .adjustments-line .togglebutton { + padding-right: 7px; +} + +.fixed-plugin .adjustments-line .togglebutton .toggle { + margin-right: 0; +} + +.fixed-plugin .dropdown-menu>li.adjustments-line>a { + padding-right: 0; + padding-left: 0; + /*border-bottom: 1px solid #ddd;*/ + border-radius: 0; + margin: 0; +} + +.fixed-plugin .dropdown-menu>li>a.img-holder { + font-size: 16px; + text-align: center; + border-radius: 10px; + background-color: #FFF; + border: 3px solid #FFF; + padding-left: 0; + padding-right: 0; + opacity: 1; + cursor: pointer; + display: block; + max-height: 100px; + overflow: hidden; + padding: 0; + min-width: 25%; +} + +.fixed-plugin .dropdown-menu>li>a.switch-trigger:hover, +.fixed-plugin .dropdown-menu>li>a.switch-trigger:focus { + background-color: transparent; +} + +.fixed-plugin .dropdown-menu>li:hover>a.img-holder, +.fixed-plugin .dropdown-menu>li:focus>a.img-holder { + border-color: rgba(0, 187, 255, 0.53); +} + +.fixed-plugin .dropdown-menu>.active>a.img-holder, +.fixed-plugin .dropdown-menu>.active>a.img-holder { + border-color: #00bbff; + background-color: #FFFFFF; +} + +.fixed-plugin .dropdown-menu>li>a img { + margin-top: auto; +} + +.fixed-plugin .btn-social { + width: 50%; + display: block; + width: 48%; + float: left; + font-weight: 600; +} + +.fixed-plugin .btn-social i { + margin-right: 5px; +} + +.fixed-plugin .btn-social:first-child { + margin-right: 2%; +} + +.fixed-plugin .adjustments-line a:hover, +.fixed-plugin .adjustments-line a:focus, +.fixed-plugin .adjustments-line a { + color: transparent; +} + +.fixed-plugin .dropdown .dropdown-menu { + top: -40px !important; + opacity: 0; + left: -303px !important; + transform-origin: 100% 0; +} + +.fixed-plugin .dropdown.show .dropdown-menu { + opacity: 1; + transform: scale(1); +} + +.fixed-plugin .dropdown-menu:before, +.fixed-plugin .dropdown-menu:after { + content: ""; + display: inline-block; + position: absolute; + top: 65px; + width: 16px; + transform: translateY(-50%); + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); +} + +.fixed-plugin .dropdown-menu:before { + border-bottom: 16px solid rgba(0, 0, 0, 0); + border-left: 16px solid rgba(0, 0, 0, 0.2); + border-top: 16px solid rgba(0, 0, 0, 0); + right: -16px; +} + +.fixed-plugin .dropdown-menu:after { + border-bottom: 16px solid rgba(0, 0, 0, 0); + border-left: 16px solid #fff; + border-top: 16px solid rgba(0, 0, 0, 0); + right: -15px; +} + +.wrapper-full-page~.fixed-plugin .dropdown.open .dropdown-menu { + -webkit-transform: translateY(-17%); + -moz-transform: translateY(-17%); + -o-transform: translateY(-17%); + -ms-transform: translateY(-17%); + transform: translateY(-17%); +} + +.wrapper-full-page~.fixed-plugin .dropdown .dropdown-menu { + -webkit-transform: translateY(-19%); + -moz-transform: translateY(-19%); + -o-transform: translateY(-19%); + -ms-transform: translateY(-19%); + transform: translateY(-19%); +} + +.table>thead>tr>th { + border-bottom-width: 1px; + font-size: 1.0625rem; + font-weight: 300; + + +} + +.table .form-check { + margin-top: 0; +} + +.table .form-check .form-check-sign { + top: -13px; + left: 0; + padding-right: 0; +} + +.table .radio, +.table .checkbox { + margin-top: 0; + margin-bottom: 0; + padding: 0; + width: 15px; +} + +.table .radio .icons, +.table .checkbox .icons { + position: relative; +} + +.table .flag img { + max-width: 18px; + margin-top: -2px; +} + +.table>thead>tr>th, +.table>tbody>tr>th, +.table>tfoot>tr>th, +.table>thead>tr>td, +.table>tbody>tr>td, +.table>tfoot>tr>td { + padding: 12px 8px; + vertical-align: middle; + border-color: #ddd; +} + +.table thead tr th { + font-size: 1.063rem; + + +} + +.table .th-description { + max-width: 150px; +} + +.table .td-price { + font-size: 26px; + font-weight: 300; + margin-top: 5px; + text-align: right; +} + +.table .td-total { + font-weight: 500; + font-size: 1.0625rem; + padding-top: 20px; + text-align: right; +} + +.table .td-actions .btn { + margin: 0px; + padding: 5px; +} + +.table>tbody>tr { + position: relative; +} + +.table-shopping>thead>tr>th { + font-size: 0.75rem; + text-transform: uppercase; +} + +.table-shopping>tbody>tr>td { + font-size: 14px; +} + +.table-shopping>tbody>tr>td b { + display: block; + margin-bottom: 5px; +} + +.table-shopping .td-name { + font-weight: 400; + font-size: 1.5em; + line-height: 1.42857143; +} + +.table-shopping .td-name small { + color: #999999; + font-size: 0.75em; + font-weight: 300; +} + +.table-shopping .td-number { + font-weight: 300; + font-size: 1.125rem; +} + +.table-shopping .td-name { + min-width: 200px; +} + +.table-shopping .td-number { + text-align: right; + min-width: 150px; +} + +.table-shopping .td-number small { + margin-right: 3px; +} + +.table-shopping .img-container { + width: 120px; + max-height: 160px; + overflow: hidden; + display: block; +} + +.table-shopping .img-container img { + width: 100%; +} + +.table-inverse { + color: rgba(255, 255, 255, 0.84); +} + +.table thead th { + font-size: 0.95rem; + font-weight: 500; + border-top-width: 0; + border-bottom-width: 1px; +} + +thead.thead-inverse th, +.table-inverse thead th { + color: rgba(255, 255, 255, 0.54); +} + +.table-inverse th, +.table-inverse td, +.table-inverse thead th { + border-color: rgba(255, 255, 255, 0.06); +} + +.table-striped>tbody>tr:nth-of-type(odd) { + background-color: #f9f9f9; +} + +.table.table-hover tbody tr:hover { + background-color: #f5f5f5; +} + +.dataTable>thead>tr>th, +.dataTable>tbody>tr>th, +.dataTable>tfoot>tr>th, +.dataTable>thead>tr>td, +.dataTable>tbody>tr>td, +.dataTable>tfoot>tr>td { + padding: 5px !important; +} + +body { + background-color: #eee; + color: #3C4858; + font-weight: 300; +} + +legend { + border-bottom: 0; +} + +.serif-font { + font-family: "Roboto Slab", "Times New Roman", serif; +} + +* { + -webkit-tap-highlight-color: rgba(255, 255, 255, 0); + -webkit-tap-highlight-color: transparent; +} + +*:focus { + outline: 0; +} + +a { + color: #9c27b0; +} + +a:hover, +a:focus { + color: #89229b; + text-decoration: none; +} + +a.text-info:hover, +a.text-info:focus { + color: #00a5bb; +} + +a .material-icons { + vertical-align: middle; +} + +.form-check, +label { + font-size: 14px; + line-height: 1.42857; + color: #AAAAAA; + font-weight: 400; +} + +/* Animations */ +.animation-transition-general, +.sidebar .sidebar-wrapper>.nav [data-toggle="collapse"]~div>ul>li>a span, +.sidebar .sidebar-wrapper .user .user-info [data-toggle="collapse"]~div>ul>li>a span, +.sidebar .nav p { + -webkit-transition: all 300ms linear; + -moz-transition: all 300ms linear; + -o-transition: all 300ms linear; + -ms-transition: all 300ms linear; + transition: all 300ms linear; +} + +.animation-transition-slow { + -webkit-transition: all 370ms linear; + -moz-transition: all 370ms linear; + -o-transition: all 370ms linear; + -ms-transition: all 370ms linear; + transition: all 370ms linear; +} + +.animation-transition-fast { + -webkit-transition: all 150ms ease 0s; + -moz-transition: all 150ms ease 0s; + -o-transition: all 150ms ease 0s; + -ms-transition: all 150ms ease 0s; + transition: all 150ms ease 0s; +} + +.caret, +.sidebar a { + -webkit-transition: all 150ms ease-in; + -moz-transition: all 150ms ease-in; + -o-transition: all 150ms ease-in; + -ms-transition: all 150ms ease-in; + transition: all 150ms ease-in; +} + +.offline-doc .navbar.navbar-transparent { + padding-top: 25px; + border-bottom: none; +} + +.offline-doc .navbar.navbar-transparent .navbar-minimize { + display: none; +} + +.offline-doc .navbar.navbar-transparent .navbar-brand, +.offline-doc .navbar.navbar-transparent .collapse .navbar-nav .nav-link { + color: #fff !important; +} + +.offline-doc .footer { + z-index: 3 !important; + position: absolute; + width: 100%; + background: transparent; + bottom: 0; + color: #fff; +} + +.offline-doc .page-header { + display: flex; + align-items: center; +} + +.offline-doc .page-header .content-center { + z-index: 3; +} + +.offline-doc .page-header .content-center .brand .title { + color: #fff; +} + +.offline-doc .page-header:after { + background-color: rgba(0, 0, 0, 0.5); + content: ""; + display: block; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + z-index: 2; +} + +.bd-docs .bd-toc-item .bd-sidenav a span { + float: right; + margin-top: 5px; + padding: 3px 7px; + font-size: 8px; + line-height: 9px; + background-color: #9c27b0; +} + +.bootstrap-datetimepicker-widget .timepicker .table-condesed .btn .ripple-container { + width: 40px; + height: 40px; + margin: -11px 3px; +} + +.off-canvas-sidebar .wrapper-full-page .page-header { + padding: 15vh 0 !important; +} + +html[dir="rtl"] .main-panel { + float: left; +} + +html[dir="rtl"] .sidebar, +html[dir="rtl"] .off-canvas-sidebar nav .navbar-collapse { + text-align: right; +} + +html[dir="rtl"] .sidebar { + left: unset; + right: 0; +} + +html[dir="rtl"] .sidebar .nav { + padding-right: 0; +} + +html[dir="rtl"] .sidebar .nav i { + float: right; + margin-left: 15px; + margin-right: unset; +} + +html[dir="rtl"] .card.card-chart { + direction: ltr; +} + +html[dir="rtl"] .card.card-chart .card-title, +html[dir="rtl"] .card.card-chart .card-category { + text-align: right; +} + +html[dir="rtl"] .card .card-body, +html[dir="rtl"] .card .card-footer { + direction: rtl; +} + +html[dir="rtl"] .form-check .form-check-sign .check:before { + margin-right: 10px; +} + +.btn.btn-facebook { + color: #ffffff; + background-color: #3b5998; + border-color: #3b5998; + box-shadow: 0 2px 2px 0 rgba(59, 89, 152, 0.14), 0 3px 1px -2px rgba(59, 89, 152, 0.2), 0 1px 5px 0 rgba(59, 89, 152, 0.12); +} + +.btn.btn-facebook:hover { + color: #ffffff; + background-color: #37538d; + border-color: #2a3f6c; +} + +.btn.btn-facebook:focus, +.btn.btn-facebook.focus, +.btn.btn-facebook:hover { + color: #ffffff; + background-color: #37538d; + border-color: #2a3f6c; +} + +.btn.btn-facebook:active, +.btn.btn-facebook.active, +.open>.btn.btn-facebook.dropdown-toggle, +.show>.btn.btn-facebook.dropdown-toggle { + color: #ffffff; + background-color: #37538d; + border-color: #2a3f6c; + box-shadow: 0 2px 2px 0 rgba(59, 89, 152, 0.14), 0 3px 1px -2px rgba(59, 89, 152, 0.2), 0 1px 5px 0 rgba(59, 89, 152, 0.12); +} + +.btn.btn-facebook:active:hover, +.btn.btn-facebook:active:focus, +.btn.btn-facebook:active.focus, +.btn.btn-facebook.active:hover, +.btn.btn-facebook.active:focus, +.btn.btn-facebook.active.focus, +.open>.btn.btn-facebook.dropdown-toggle:hover, +.open>.btn.btn-facebook.dropdown-toggle:focus, +.open>.btn.btn-facebook.dropdown-toggle.focus, +.show>.btn.btn-facebook.dropdown-toggle:hover, +.show>.btn.btn-facebook.dropdown-toggle:focus, +.show>.btn.btn-facebook.dropdown-toggle.focus { + color: #ffffff; + background-color: #37538d; + border-color: #17233c; +} + +.open>.btn.btn-facebook.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #3b5998; +} + +.open>.btn.btn-facebook.dropdown-toggle.bmd-btn-icon:hover { + background-color: #37538d; +} + +.btn.btn-facebook.disabled:focus, +.btn.btn-facebook.disabled.focus, +.btn.btn-facebook:disabled:focus, +.btn.btn-facebook:disabled.focus { + background-color: #3b5998; + border-color: #3b5998; +} + +.btn.btn-facebook.disabled:hover, +.btn.btn-facebook:disabled:hover { + background-color: #3b5998; + border-color: #3b5998; +} + +.btn.btn-facebook:focus, +.btn.btn-facebook:active, +.btn.btn-facebook:hover { + box-shadow: 0 14px 26px -12px rgba(59, 89, 152, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(59, 89, 152, 0.2); +} + +.btn.btn-facebook.btn-link { + background-color: transparent; + color: #3b5998; + box-shadow: none; +} + +.btn.btn-facebook.btn-link:hover, +.btn.btn-facebook.btn-link:focus, +.btn.btn-facebook.btn-link:active { + background-color: transparent; + color: #3b5998; +} + +.btn.btn-twitter { + color: #ffffff; + background-color: #55acee; + border-color: #55acee; + box-shadow: 0 2px 2px 0 rgba(85, 172, 238, 0.14), 0 3px 1px -2px rgba(85, 172, 238, 0.2), 0 1px 5px 0 rgba(85, 172, 238, 0.12); +} + +.btn.btn-twitter:hover { + color: #ffffff; + background-color: #47a5ed; + border-color: #1d91e8; +} + +.btn.btn-twitter:focus, +.btn.btn-twitter.focus, +.btn.btn-twitter:hover { + color: #ffffff; + background-color: #47a5ed; + border-color: #1d91e8; +} + +.btn.btn-twitter:active, +.btn.btn-twitter.active, +.open>.btn.btn-twitter.dropdown-toggle, +.show>.btn.btn-twitter.dropdown-toggle { + color: #ffffff; + background-color: #47a5ed; + border-color: #1d91e8; + box-shadow: 0 2px 2px 0 rgba(85, 172, 238, 0.14), 0 3px 1px -2px rgba(85, 172, 238, 0.2), 0 1px 5px 0 rgba(85, 172, 238, 0.12); +} + +.btn.btn-twitter:active:hover, +.btn.btn-twitter:active:focus, +.btn.btn-twitter:active.focus, +.btn.btn-twitter.active:hover, +.btn.btn-twitter.active:focus, +.btn.btn-twitter.active.focus, +.open>.btn.btn-twitter.dropdown-toggle:hover, +.open>.btn.btn-twitter.dropdown-toggle:focus, +.open>.btn.btn-twitter.dropdown-toggle.focus, +.show>.btn.btn-twitter.dropdown-toggle:hover, +.show>.btn.btn-twitter.dropdown-toggle:focus, +.show>.btn.btn-twitter.dropdown-toggle.focus { + color: #ffffff; + background-color: #47a5ed; + border-color: #126db2; +} + +.open>.btn.btn-twitter.dropdown-toggle.bmd-btn-icon { + color: inherit; + background-color: #55acee; +} + +.open>.btn.btn-twitter.dropdown-toggle.bmd-btn-icon:hover { + background-color: #47a5ed; +} + +.btn.btn-twitter.disabled:focus, +.btn.btn-twitter.disabled.focus, +.btn.btn-twitter:disabled:focus, +.btn.btn-twitter:disabled.focus { + background-color: #55acee; + border-color: #55acee; +} + +.btn.btn-twitter.disabled:hover, +.btn.btn-twitter:disabled:hover { + background-color: #55acee; + border-color: #55acee; +} + +.btn.btn-twitter:focus, +.btn.btn-twitter:active, +.btn.btn-twitter:hover { + box-shadow: 0 14px 26px -12px rgba(85, 172, 238, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(85, 172, 238, 0.2); +} + +.btn.btn-twitter.btn-link { + background-color: transparent; + color: #55acee; + box-shadow: none; +} + +.btn.btn-twitter.btn-link:hover, +.btn.btn-twitter.btn-link:focus, +.btn.btn-twitter.btn-link:active { + background-color: transparent; + color: #55acee; +} + +.card { + border: 0; + margin-bottom: 30px; + margin-top: 30px; + border-radius: 6px; + color: #333333; + background: #fff; + width: 100%; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.card .card-category:not([class*="text-"]) { + color: #999999; +} + +.card .card-category { + margin-top: 10px; +} + +.card .card-category .material-icons { + position: relative; + top: 8px; + line-height: 0; +} + +.card .form-check { + margin-top: 5px; +} + +.card .card-title { + margin-top: 0.625rem; +} + +.card .card-title:last-child { + margin-bottom: 0; +} + +.card.no-shadow .card-header-image, +.card.no-shadow .card-header-image img { + box-shadow: none !important; +} + +.card .card-body, +.card .card-footer { + padding: 0.9375rem 1.875rem; +} + +.card .card-body+.card-footer { + padding-top: 0rem; + border: 0; + border-radius: 6px; +} + +.card .card-footer { + display: flex; + align-items: center; + background-color: transparent; + border: 0; +} + +.card .card-footer .author, +.card .card-footer .stats { + display: inline-flex; +} + +.card .card-footer .stats { + color: #999999; +} + +.card .card-footer .stats .material-icons { + position: relative; + top: -10px; + margin-right: 3px; + margin-left: 3px; + font-size: 18px; +} + +.card.bmd-card-raised { + box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2); +} + +@media (min-width: 992px) { + .card.bmd-card-flat { + box-shadow: none; + } +} + +.card .card-header { + border-bottom: none; + background: transparent; +} + +.card .card-header .title { + color: #fff; +} + +.card .card-header .nav-tabs { + padding: 0; +} + +.card .card-header.card-header-image { + position: relative; + padding: 0; + z-index: 1; + margin-left: 15px; + margin-right: 15px; + margin-top: -30px; + border-radius: 6px; +} + +.card .card-header.card-header-image img { + width: 100%; + border-radius: 6px; + pointer-events: none; + box-shadow: 0 5px 15px -8px rgba(0, 0, 0, 0.24), 0 8px 10px -5px rgba(0, 0, 0, 0.2); +} + +.card .card-header.card-header-image .card-title { + position: absolute; + bottom: 15px; + left: 15px; + color: #fff; + font-size: 1.125rem; + text-shadow: 0 2px 5px rgba(33, 33, 33, 0.5); +} + +.card .card-header.card-header-image .colored-shadow { + transform: scale(0.94); + top: 12px; + filter: blur(12px); + position: absolute; + width: 100%; + height: 100%; + background-size: cover; + z-index: -1; + transition: opacity .45s; + opacity: 0; +} + +.card .card-header.card-header-image.no-shadow { + box-shadow: none; +} + +.card .card-header.card-header-image.no-shadow.shadow-normal { + box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2); +} + +.card .card-header.card-header-image.no-shadow .colored-shadow { + display: none !important; +} + +.card .card-header-primary .card-icon, +.card .card-header-primary .card-text, +.card .card-header-primary:not(.card-header-icon):not(.card-header-text), +.card.bg-primary, +.card.card-rotate.bg-primary .front, +.card.card-rotate.bg-primary .back { + background: linear-gradient(60deg, #23AEB3, #23AEB3); +} + +.card .card-header-info .card-icon, +.card .card-header-info .card-text, +.card .card-header-info:not(.card-header-icon):not(.card-header-text), +.card.bg-info, +.card.card-rotate.bg-info .front, +.card.card-rotate.bg-info .back { + background: linear-gradient(60deg, #26c6da, #00acc1); +} + +.card .card-header-success .card-icon, +.card .card-header-success .card-text, +.card .card-header-success:not(.card-header-icon):not(.card-header-text), +.card.bg-success, +.card.card-rotate.bg-success .front, +.card.card-rotate.bg-success .back { + background: linear-gradient(60deg, #2ba531, #43a047); +} + +.card .card-header-warning .card-icon, +.card .card-header-warning .card-text, +.card .card-header-warning:not(.card-header-icon):not(.card-header-text), +.card.bg-warning, +.card.card-rotate.bg-warning .front, +.card.card-rotate.bg-warning .back { + background: linear-gradient(60deg, #ffa726, #fb8c00); +} + +.card .card-header-danger .card-icon, +.card .card-header-danger .card-text, +.card .card-header-danger:not(.card-header-icon):not(.card-header-text), +.card.bg-danger, +.card.card-rotate.bg-danger .front, +.card.card-rotate.bg-danger .back { + background: linear-gradient(60deg, #ef5350, #e53935); +} + +.card .card-header-rose .card-icon, +.card .card-header-rose .card-text, +.card .card-header-rose:not(.card-header-icon):not(.card-header-text), +.card.bg-rose, +.card.card-rotate.bg-rose .front, +.card.card-rotate.bg-rose .back { + background: linear-gradient(60deg, #ec407a, #d81b60); +} + +.card .card-header-primary .card-icon, +.card .card-header-primary:not(.card-header-icon):not(.card-header-text), +.card .card-header-primary .card-text { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(156, 39, 176, 0.4); +} + +.card .card-header-danger .card-icon, +.card .card-header-danger:not(.card-header-icon):not(.card-header-text), +.card .card-header-danger .card-text { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(244, 67, 54, 0.4); +} + +.card .card-header-rose .card-icon, +.card .card-header-rose:not(.card-header-icon):not(.card-header-text), +.card .card-header-rose .card-text { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(233, 30, 99, 0.4); +} + +.card .card-header-warning .card-icon, +.card .card-header-warning:not(.card-header-icon):not(.card-header-text), +.card .card-header-warning .card-text { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(255, 152, 0, 0.4); +} + +.card .card-header-info .card-icon, +.card .card-header-info:not(.card-header-icon):not(.card-header-text), +.card .card-header-info .card-text { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(0, 188, 212, 0.4); +} + +.card .card-header-success .card-icon, +.card .card-header-success:not(.card-header-icon):not(.card-header-text), +.card .card-header-success .card-text { + box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(76, 175, 80, 0.4); +} + +.card [class*="card-header-"], +.card[class*="bg-"] { + color: #fff; +} + +.card [class*="card-header-"] .card-title a, +.card [class*="card-header-"] .card-title, +.card [class*="card-header-"] .icon i, +.card[class*="bg-"] .card-title a, +.card[class*="bg-"] .card-title, +.card[class*="bg-"] .icon i { + color: #fff; +} + +.card [class*="card-header-"] .icon i, +.card[class*="bg-"] .icon i { + border-color: rgba(255, 255, 255, 0.25); +} + +.card [class*="card-header-"] .author a, +.card [class*="card-header-"] .stats, +.card [class*="card-header-"] .card-category, +.card [class*="card-header-"] .card-description, +.card[class*="bg-"] .author a, +.card[class*="bg-"] .stats, +.card[class*="bg-"] .card-category, +.card[class*="bg-"] .card-description { + color: rgba(255, 255, 255, 0.8); +} + +.card [class*="card-header-"] .author a:hover, +.card [class*="card-header-"] .author a:focus, +.card [class*="card-header-"] .author a:active, +.card[class*="bg-"] .author a:hover, +.card[class*="bg-"] .author a:focus, +.card[class*="bg-"] .author a:active { + color: #fff; +} + +.card .author .avatar { + width: 30px; + height: 30px; + overflow: hidden; + border-radius: 50%; + margin-right: 5px; +} + +.card .author a { + color: #3C4858; + text-decoration: none; +} + +.card .author a .ripple-container { + display: none; +} + +.card .card-category-social .fa { + font-size: 24px; + position: relative; + margin-top: -4px; + top: 2px; + margin-right: 5px; +} + +.card .card-category-social .material-icons { + position: relative; + top: 5px; +} + +.card[class*="bg-"], +.card[class*="bg-"] .card-body { + border-radius: 6px; +} + +.card[class*="bg-"] h1 small, +.card[class*="bg-"] h2 small, +.card[class*="bg-"] h3 small, +.card[class*="bg-"] .card-body h1 small, +.card[class*="bg-"] .card-body h2 small, +.card[class*="bg-"] .card-body h3 small { + color: rgba(255, 255, 255, 0.8); +} + +.card .card-stats { + background: transparent; + display: flex; +} + +.card .card-stats .author, +.card .card-stats .stats { + display: inline-flex; +} + +.card { + box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14); +} + +.card .table tr:first-child td { + border-top: none; +} + +.card .card-title { + margin-top: 0; + margin-bottom: 3px; +} + +.card .card-body { + padding: 0.9375rem 20px; + position: relative; +} + +.card .card-body .form-group { + margin: 8px 0 0; +} + +.card .card-header { + z-index: 3 !important; +} + +.card .card-header .card-title { + margin-bottom: 3px; +} + +.card .card-header .card-category { + margin: 0; +} + +.card .card-header.card-header-text { + display: inline-block; +} + +.card .card-header.card-header-text:after { + content: ""; + display: table; +} + +.card .card-header.card-header-icon i, +.card .card-header.card-header-text i { + width: 33px; + height: 33px; + text-align: center; + line-height: 33px; +} + +.card .card-header.card-header-icon .card-title, +.card .card-header.card-header-text .card-title { + margin-top: 15px; + color: #3C4858; +} + +.card .card-header.card-header-icon h4, +.card .card-header.card-header-text h4 { + font-weight: 300; +} + +.card .card-header.card-header-tabs .nav-tabs { + background: transparent; + padding: 0; +} + +.card .card-header.card-header-tabs .nav-tabs-title { + float: left; + padding: 10px 10px 10px 0; + line-height: 24px; +} + +.card.card-plain .card-header.card-header-icon+.card-body .card-title, +.card.card-plain .card-header.card-header-icon+.card-body .card-category { + margin-top: -20px; +} + +.card .card-actions { + position: absolute; + z-index: 1; + top: -50px; + width: calc(100% - 30px); + left: 17px; + right: 17px; + text-align: center; +} + +.card .card-actions .card-header { + padding: 0; + min-height: 160px; +} + +.card .card-actions .btn { + padding-left: 12px; + padding-right: 12px; +} + +.card .card-actions .fix-broken-card { + position: absolute; + top: -65px; +} + +.card.card-chart .card-footer i:nth-child(1n+2) { + width: 18px; + text-align: center; +} + +.card.card-chart .card-category { + margin: 0; +} + +.card .card-body+.card-footer, +.card .card-footer { + padding: 0; + padding-top: 10px; + margin: 0 15px 10px; + border-radius: 0; + justify-content: space-between; + align-items: center; +} + +.card .card-body+.card-footer h6, +.card .card-footer h6 { + width: 100%; +} + +.card .card-body+.card-footer .stats, +.card .card-footer .stats { + color: #999999; + font-size: 12px; + line-height: 22px; +} + +.card .card-body+.card-footer .stats .card-category, +.card .card-footer .stats .card-category { + padding-top: 7px; + padding-bottom: 7px; + margin: 0; +} + +.card .card-body+.card-footer .stats .material-icons, +.card .card-footer .stats .material-icons { + position: relative; + top: 4px; + font-size: 16px; +} + +.card [class*="card-header-"] { + margin: 0px 15px 0; + padding: 0; + position: relative; +} + +.card [class*="card-header-"] .card-title+.card-category { + color: rgba(255, 255, 255, 0.8); +} + +.card [class*="card-header-"] .card-title+.card-category a { + color: #fff; +} + +.card [class*="card-header-"]:not(.card-header-icon):not(.card-header-text):not(.card-header-image) { + border-radius: 3px; + margin-top: -20px; + padding: 15px; +} + +.card [class*="card-header-"] .card-icon, +.card [class*="card-header-"] .card-text { + border-radius: 3px; + background-color: #999999; + padding: 15px; + margin-top: -20px; + margin-right: 15px; + float: left; +} + +.card [class*="card-header-"] .card-text { + float: none; + display: inline-block; + margin-right: 0; +} + +.card [class*="card-header-"] .card-text .card-title { + color: #fff; + margin-top: 0; +} + +.card [class*="card-header-"] .ct-chart .card-title { + color: #fff; +} + +.card [class*="card-header-"] .ct-chart .card-category { + margin-bottom: 0; + color: rgba(255, 255, 255, 0.62); +} + +.card [class*="card-header-"] .ct-chart .ct-label { + color: rgba(255, 255, 255, 0.7); +} + +.card [class*="card-header-"] .ct-chart .ct-grid { + stroke: rgba(255, 255, 255, 0.2); +} + +.card [class*="card-header-"] .ct-chart .ct-series-a .ct-point, +.card [class*="card-header-"] .ct-chart .ct-series-a .ct-line, +.card [class*="card-header-"] .ct-chart .ct-series-a .ct-bar, +.card [class*="card-header-"] .ct-chart .ct-series-a .ct-slice-donut { + stroke: rgba(255, 255, 255, 0.8); +} + +.card [class*="card-header-"] .ct-chart .ct-series-a .ct-slice-pie, +.card [class*="card-header-"] .ct-chart .ct-series-a .ct-area { + fill: rgba(255, 255, 255, 0.4); +} + +.card [class*="card-header-"] .ct-chart .ct-series-a .ct-bar { + stroke-width: 10px; +} + +.card [class*="card-header-"] .ct-chart .ct-point { + stroke-width: 10px; + stroke-linecap: round; +} + +.card [class*="card-header-"] .ct-chart .ct-line { + fill: none; + stroke-width: 4px; +} + +.card [data-header-animation="true"] { + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-transition: all 300ms cubic-bezier(0.34, 1.61, 0.7, 1); + -moz-transition: all 300ms cubic-bezier(0.34, 1.61, 0.7, 1); + -o-transition: all 300ms cubic-bezier(0.34, 1.61, 0.7, 1); + -ms-transition: all 300ms cubic-bezier(0.34, 1.61, 0.7, 1); + transition: all 300ms cubic-bezier(0.34, 1.61, 0.7, 1); +} + +.card:hover [data-header-animation="true"] { + -webkit-transform: translate3d(0, -50px, 0); + -moz-transform: translate3d(0, -50px, 0); + -o-transform: translate3d(0, -50px, 0); + -ms-transform: translate3d(0, -50px, 0); + transform: translate3d(0, -50px, 0); +} + +.card .map { + height: 280px; + border-radius: 6px; + margin-top: 15px; +} + +.card .map.map-big { + height: 420px; +} + +.card .card-body.table-full-width { + padding: 0; +} + +.card .card-plain .card-header-icon { + margin-right: 15px !important; +} + +.table-sales { + margin-top: 40px; +} + +.iframe-container { + width: 100%; +} + +.iframe-container iframe { + width: 100%; + height: 500px; + border: 0; + box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2); +} + +.card-wizard .nav.nav-pills .nav-item { + margin: 0; +} + +.card-wizard .nav.nav-pills .nav-item .nav-link { + padding: 6px 15px !important; +} + +.card-wizard .nav-pills:not(.flex-column) .nav-item+.nav-item:not(:first-child) { + margin-left: 0; +} + +.card-wizard .nav-item .nav-link.active, +.card-wizard .nav-item .nav-link:hover, +.card-wizard .nav-item .nav-link:focus { + background-color: inherit !important; + box-shadow: none !important; +} + +.card-wizard .input-group-text { + padding: 6px 15px 0px !important; +} + +.card-wizard .card-footer { + border-top: none !important; +} + +.card-chart .card-body+.card-footer, +.card-product .card-body+.card-footer { + border-top: 1px solid #eee; +} + +.card-product .price { + color: inherit; +} + +.card-collapse { + margin-bottom: 15px; +} + +.card-collapse .card .card-header a[aria-expanded="true"] { + color: #e91e63; +} + +.card-stats .card-header.card-header-icon, +.card-stats .card-header.card-header-text { + text-align: right; +} + +.card-stats .card-header .card-icon+.card-title, +.card-stats .card-header .card-icon+.card-category { + padding-top: 10px; +} + +.card-stats .card-header.card-header-icon .card-title, +.card-stats .card-header.card-header-text .card-title, +.card-stats .card-header.card-header-icon .card-category, +.card-stats .card-header.card-header-text .card-category { + margin: 0; +} + +.card-stats .card-header .card-category { + margin-bottom: 0; + margin-top: 0; +} + +.card-stats .card-header .card-category:not([class*="text-"]) { + color: #999999; + font-size: 14px; +} + +.card-stats .card-header+.card-footer { + border-top: 1px solid #eee; + margin-top: 20px; +} + +.card-stats .card-header.card-header-icon i { + font-size: 36px; + line-height: 56px; + width: 56px; + height: 56px; + text-align: center; +} + +.card-stats .card-body { + text-align: right; +} + +.card-profile { + margin-top: 30px; + text-align: center; +} + +.card-profile .card-avatar { + margin: -50px auto 0; + border-radius: 50%; + overflow: hidden; + padding: 0; + box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2); +} + +.card-profile .card-avatar+.card-body { + margin-top: 15px; +} + +.card-profile .card-avatar img { + width: 100%; + height: auto; +} + +.card-profile .card-body+.card-footer { + margin-top: -15px; +} + +.card-profile .card-footer .btn.btn-just-icon { + font-size: 20px; + padding: 12px 12px; + line-height: 1em; +} + +.card-profile.card-plain .card-avatar { + margin-top: 0; +} + +.card-profile .card-header:not([class*="card-header-"]) { + background: transparent; +} + +.card-profile .card-avatar { + max-width: 130px; + max-height: 130px; +} + +.card-plain { + background: transparent; + box-shadow: none; +} + +.card-plain .card-header:not(.card-avatar) { + margin-left: 0; + margin-right: 0; +} + +.card-plain .card-body { + padding-left: 5px; + padding-right: 5px; +} + +.card-plain .card-header-image { + margin: 0 !important; + border-radius: 6px; +} + +.card-plain .card-header-image img { + border-radius: 6px; +} + +.card-plain .card-footer { + padding-left: 5px; + padding-right: 5px; + background-color: transparent; +} + +/* +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT + +Copyright (c) 2015 Daniel Eden +*/ +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} + +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} + +.animated.bounceIn, +.animated.bounceOut { + -webkit-animation-duration: .75s; + animation-duration: .75s; +} + +.animated.flipOutX, +.animated.flipOutY { + -webkit-animation-duration: .75s; + animation-duration: .75s; +} + +@-webkit-keyframes shake { + + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +@keyframes shake { + + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +.shake { + -webkit-animation-name: shake; + animation-name: shake; +} + +@-webkit-keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +@-webkit-keyframes fadeOut { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + +@keyframes fadeOut { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +@-webkit-keyframes fadeOutDown { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes fadeOutDown { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +@-webkit-keyframes fadeOutUp { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes fadeOutUp { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +.ct-chart .ct-series-a .ct-point, +.ct-chart .ct-series-a .ct-line, +.ct-chart .ct-series-a .ct-bar, +.ct-chart .ct-series-a .ct-slice-donut, +.ct-chart .ct-series-a .ct-slice-pie, +.ct-chart .ct-series-a .ct-slice-donut-solid, +.ct-chart .ct-series-a .ct-area { + stroke: #00bcd4; +} + +.ct-chart .ct-series-b .ct-point, +.ct-chart .ct-series-b .ct-line, +.ct-chart .ct-series-b .ct-bar, +.ct-chart .ct-series-b .ct-slice-donut, +.ct-chart .ct-series-b .ct-slice-pie, +.ct-chart .ct-series-b .ct-slice-donut-solid, +.ct-chart .ct-series-b .ct-area { + stroke: #f44336; +} + +.ct-chart .ct-series-c .ct-point, +.ct-chart .ct-series-c .ct-line, +.ct-chart .ct-series-c .ct-bar, +.ct-chart .ct-series-c .ct-slice-donut, +.ct-chart .ct-series-c .ct-slice-pie, +.ct-chart .ct-series-c .ct-slice-donut-solid, +.ct-chart .ct-series-c .ct-area { + stroke: #ff9800; +} + +.ct-chart .ct-bar { + fill: none; + stroke-width: 10px; +} + +.ct-chart .ct-line { + fill: none; + stroke-width: 4px; +} + +.ct-chart .ct-point { + stroke-width: 10px; + stroke-linecap: round; +} + +.ct-chart .ct-grid { + stroke: rgba(0, 0, 0, 0.2); + stroke-width: 1px; + stroke-dasharray: 2px; +} + +.ct-chart .ct-label { + fill: rgba(0, 0, 0, 0.4); + color: rgba(0, 0, 0, 0.4); + display: -webkit-flex; + display: flex; +} + +.ct-chart .ct-label.ct-vertical.ct-start { + -webkit-box-align: flex-end; + -webkit-align-items: flex-end; + -ms-flex-align: flex-end; + align-items: flex-end; + -webkit-box-pack: flex-end; + -webkit-justify-content: flex-end; + -ms-flex-pack: flex-end; + justify-content: flex-end; + text-align: right; + text-anchor: end; +} + +.ct-chart .ct-series-a .ct-slice-pie, +.ct-chart .ct-series-a .ct-slice-donut-solid, +.ct-chart .ct-series-a .ct-area { + fill: #00bcd4; +} + +.ct-chart .ct-series-b .ct-slice-pie, +.ct-chart .ct-series-b .ct-slice-donut-solid, +.ct-chart .ct-series-b .ct-area { + fill: #f44336; +} + +.ct-chart .ct-series-c .ct-slice-pie, +.ct-chart .ct-series-c .ct-slice-donut-solid, +.ct-chart .ct-series-c .ct-area { + fill: #ff9800; +} + +/* perfect-scrollbar v0.6.13 */ +.ps-container { + -ms-touch-action: auto; + touch-action: auto; + overflow: hidden !important; + -ms-overflow-style: none; +} + +@supports (-ms-overflow-style: none) { + .ps-container { + overflow: auto !important; + } +} + +@media screen and (-ms-high-contrast: active), +(-ms-high-contrast: none) { + .ps-container { + overflow: auto !important; + } +} + +.ps-container.ps-active-x>.ps-scrollbar-x-rail, +.ps-container.ps-active-y>.ps-scrollbar-y-rail { + display: block; + background-color: transparent; +} + +.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail { + background-color: #eee; + opacity: 0.9; +} + +.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x { + background-color: #999; + height: 11px; +} + +.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail { + background-color: #eee; + opacity: 0.9; +} + +.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y { + background-color: #999; + width: 11px; +} + +.ps-container>.ps-scrollbar-x-rail { + display: none; + position: absolute; + /* please don't change 'position' */ + opacity: 0; + -webkit-transition: background-color .2s linear, opacity .2s linear; + -o-transition: background-color .2s linear, opacity .2s linear; + -moz-transition: background-color .2s linear, opacity .2s linear; + transition: background-color .2s linear, opacity .2s linear; + bottom: 0px; + /* there must be 'bottom' for ps-scrollbar-x-rail */ + height: 15px; +} + +.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x { + position: absolute; + /* please don't change 'position' */ + background-color: #aaa; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out; + transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out; + -o-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out; + -moz-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out; + transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out; + transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out; + bottom: 2px; + /* there must be 'bottom' for ps-scrollbar-x */ + height: 6px; +} + +.ps-container>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x, +.ps-container>.ps-scrollbar-x-rail:active>.ps-scrollbar-x { + height: 11px; +} + +.ps-container>.ps-scrollbar-y-rail { + display: none; + position: absolute; + /* please don't change 'position' */ + opacity: 0; + -webkit-transition: background-color .2s linear, opacity .2s linear; + -o-transition: background-color .2s linear, opacity .2s linear; + -moz-transition: background-color .2s linear, opacity .2s linear; + transition: background-color .2s linear, opacity .2s linear; + right: 0; + /* there must be 'right' for ps-scrollbar-y-rail */ + width: 15px; +} + +.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y { + position: absolute; + /* please don't change 'position' */ + background-color: #aaa; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out; + transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out; + -o-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out; + -moz-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out; + transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out; + transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out; + right: 2px; + /* there must be 'right' for ps-scrollbar-y */ + width: 6px; +} + +.ps-container>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y, +.ps-container>.ps-scrollbar-y-rail:active>.ps-scrollbar-y { + width: 11px; +} + +.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail { + background-color: #eee; + opacity: 0.9; +} + +.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x { + background-color: #999; + height: 11px; +} + +.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail { + background-color: #eee; + opacity: 0.9; +} + +.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y { + background-color: #999; + width: 11px; +} + +.ps-container:hover>.ps-scrollbar-x-rail, +.ps-container:hover>.ps-scrollbar-y-rail { + opacity: 0.6; +} + +.ps-container:hover>.ps-scrollbar-x-rail:hover { + background-color: #eee; + opacity: 0.9; +} + +.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x { + background-color: #999; +} + +.ps-container:hover>.ps-scrollbar-y-rail:hover { + background-color: #eee; + opacity: 0.9; +} + +.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y { + background-color: #999; +} + +@media all and (max-width: 991px) { + + [class*="navbar-expand-"]>.container, + [class*="navbar-expand-"]>.container-fluid { + padding-left: 15px; + padding-right: 15px; + } + + .navbar .navbar-collapse .navbar-nav>li.button-container { + padding: 15px; + } + + .bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) { + width: -webkit-fill-available !important; + } + + .bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) .dropdown-menu.show { + min-width: auto; + left: auto; + } + + .carousel .card .card-body { + max-width: 340px; + margin: 0 auto; + min-height: 400px; + } + + .navbar-collapse { + position: fixed; + display: block; + top: 0px; + height: 100vh; + width: 230px; + right: 0; + margin-right: 0 !important; + z-index: 1032; + visibility: visible; + background-color: #999; + overflow-y: visible; + border-top: none; + text-align: left; + padding-right: 0; + padding-left: 0; + max-height: none !important; + -webkit-transform: translate3d(230px, 0, 0); + -moz-transform: translate3d(230px, 0, 0); + -o-transform: translate3d(230px, 0, 0); + -ms-transform: translate3d(230px, 0, 0); + transform: translate3d(230px, 0, 0); + -webkit-transition: all 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1); + -moz-transition: all 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1); + -o-transition: all 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1); + -ms-transition: all 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1); + transition: all 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1); + } + + .navbar-collapse::after { + top: 0; + left: 0; + height: 100%; + width: 100%; + position: absolute; + background-color: #fff; + display: block; + content: ""; + z-index: 1; + } + + .navbar-collapse .dropdown-toggle:after { + position: absolute; + right: 16px; + margin-top: 8px; + } + + .navbar-collapse .navbar-nav { + position: relative; + z-index: 3; + } + + .navbar-collapse .navbar-nav .nav-item .nav-link { + color: #3C4858; + margin: 5px 15px; + } + + .navbar-collapse .navbar-nav .nav-item.button-container .nav-link { + margin: 15px; + } + + .navbar-collapse .navbar-nav .nav-item:after { + width: calc(100% - 30px); + content: ""; + display: block; + height: 1px; + margin-left: 15px; + } + + .navbar-collapse .navbar-nav .nav-item:last-child:after { + display: none; + } + + .nav-open .navbar-collapse { + -webkit-transform: translate3d(0px, 0, 0); + -moz-transform: translate3d(0px, 0, 0); + -o-transform: translate3d(0px, 0, 0); + -ms-transform: translate3d(0px, 0, 0); + transform: translate3d(0px, 0, 0); + } + + .nav-open .navbar-translate { + -webkit-transform: translate3d(-230px, 0, 0); + -moz-transform: translate3d(-230px, 0, 0); + -o-transform: translate3d(-230px, 0, 0); + -ms-transform: translate3d(-230px, 0, 0); + transform: translate3d(-230px, 0, 0); + } + + .navbar .navbar-translate { + width: 100%; + position: relative; + display: flex; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + -ms-flex-align: center; + align-items: center; + -webkit-transition: transform 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1); + -moz-transition: transform 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1); + -o-transition: transform 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1); + -ms-transition: transform 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1); + transition: transform 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1); + } + + .navbar .dropdown.show .dropdown-menu { + display: block; + } + + .navbar .dropdown .dropdown-menu { + display: none; + } + + .navbar .dropdown-menu .dropdown-item { + margin-left: 1.5rem; + margin-right: 1.5rem; + } + + .navbar .dropdown.show .dropdown-menu, + .navbar .dropdown .dropdown-menu { + background-color: transparent; + border: 0; + padding-bottom: 15px; + transition: none; + -webkit-box-shadow: none; + box-shadow: none; + transform: none !important; + width: auto; + margin-bottom: 15px; + padding-top: 0; + height: 300px; + animation: none; + opacity: 1; + overflow-y: scroll; + } + + .navbar.navbar-transparent .navbar-toggler .navbar-toggler-icon { + background-color: #fff; + } + + #bodyClick { + height: 100%; + width: 100%; + position: fixed; + opacity: 0; + top: 0; + left: auto; + right: 230px; + content: ""; + z-index: 1029; + overflow-x: hidden; + } + + #navbar .navbar-collapse, + #navigation .navbar-collapse { + display: none !important; + } + + .dropdown-menu.show .dropdown-item.open+.dropdown-menu.show { + right: 101% !important; + } + + .dropdown-menu.show .dropdown-item.open+.dropdown-menu.show .dropdown-item.open+.dropdown-menu, + .dropdown-menu.show .dropdown-item.open+.dropdown-menu.show .dropdown-item.open+.dropdown-menu.show { + left: -165px !important; + } +} + +@media all and (min-width: 991px) { + .navbar .navbar-nav { + align-items: center; + } + + .navbar .navbar-nav .button-container { + margin-left: 0.1875px; + } + + .sidebar .navbar-form { + display: none !important; + } +} + +@media screen and (max-width: 991px) { + .presentation-page .section-components .components-macbook { + max-width: 850px !important; + max-height: 480px !important; + margin-top: 12vh; + left: -12px; + } + + .presentation-page .section-components .coloured-card-img, + .presentation-page .section-components .table-img { + display: none; + } + + .presentation-page .section-components .social-img { + left: 47%; + top: 37%; + } + + .presentation-page .section-components .pin-btn-img { + top: 54%; + } + + .presentation-page .section-components .share-btn-img { + top: 12%; + } + + .presentation-page .section-components .coloured-card-btn-img { + top: -2%; + left: 65%; + } + + .presentation-page .section-content .area-img { + max-width: 130px; + max-height: 170px; + } + + .presentation-page .section-content .info-img { + max-width: 170px; + max-height: 120px; + } +} + +@media screen and (max-width: 767px) { + .presentation-page .section-components .components-macbook { + max-width: 350px !important; + max-height: 250px !important; + margin-top: 12vh; + left: -12px; + } + + .presentation-page .section-components .coloured-card-img, + .presentation-page .section-components .table-img { + display: none; + } + + .presentation-page .section-components .social-img { + left: -7%; + top: 37%; + } + + .presentation-page .section-components .pin-btn-img { + top: 54%; + } + + .presentation-page .section-components .share-btn-img { + top: 7%; + } + + .presentation-page .section-components .coloured-card-btn-img { + top: -2%; + } + + .login-page .container { + padding-top: 100px !important; + } + + .presentation-page #cd-vertical-nav, + .index-page #cd-vertical-nav, + .section-page #cd-vertical-nav { + display: none; + } + + .index-page .cd-section .tim-typo .tim-note { + width: 60px; + } +} + +@media screen and (max-width: 400px) { + .cd-vertical-nav { + display: none !important; + } +} + +/* Changes for small display */ +@media (max-width: 991px) { + .form-group textarea { + padding-top: 15px; + } + + .nav-open .menu-on-left .main-panel { + position: initial; + } + + html, + body { + overflow-x: hidden; + } + + .nav-open .menu-on-left .main-panel, + .nav-open .menu-on-left .wrapper-full-page, + .nav-open .menu-on-left .navbar-fixed>div { + -webkit-transform: translate3d(260px, 0, 0); + -moz-transform: translate3d(260px, 0, 0); + -o-transform: translate3d(260px, 0, 0); + -ms-transform: translate3d(260px, 0, 0); + transform: translate3d(260px, 0, 0); + } + + .menu-on-left .sidebar, + .menu-on-left .off-canvas-sidebar { + left: 0; + right: auto; + -webkit-transform: translate3d(-260px, 0, 0); + -moz-transform: translate3d(-260px, 0, 0); + -o-transform: translate3d(-260px, 0, 0); + -ms-transform: translate3d(-260px, 0, 0); + transform: translate3d(-260px, 0, 0); + } + + .menu-on-left .close-layer { + left: auto; + right: 0; + } + + .timeline:before { + left: 5%; + } + + .timeline>li>.timeline-badge { + left: 5%; + } + + .timeline>li>.timeline-panel { + float: right; + width: 86%; + } + + .timeline>li>.timeline-panel:before { + border-left-width: 0; + border-right-width: 15px; + left: -15px; + right: auto; + } + + .timeline>li>.timeline-panel:after { + border-left-width: 0; + border-right-width: 14px; + left: -14px; + right: auto; + } + + .nav-mobile-menu .dropdown .dropdown-menu { + display: none; + position: static !important; + background-color: transparent; + width: auto; + float: none; + box-shadow: none; + } + + .nav-mobile-menu .dropdown .dropdown-menu.showing { + animation: initial; + animation-duration: 0s; + } + + .nav-mobile-menu .dropdown .dropdown-menu.hiding { + transform: none; + opacity: 1; + } + + .nav-mobile-menu .dropdown.show .dropdown-menu { + display: block; + } + + .nav-mobile-menu li.active>a { + background-color: rgba(255, 255, 255, 0.1); + } + + .navbar-minimize { + display: none; + } + + .card .form-horizontal .label-on-left, + .card .form-horizontal .label-on-right { + padding-left: 15px; + padding-top: 8px; + } + + .card .form-horizontal .form-group { + margin-top: 0px; + } + + .card .form-horizontal .checkbox-radios { + padding-bottom: 15px; + } + + .card .form-horizontal .checkbox-radios .checkbox:first-child, + .card .form-horizontal .checkbox-radios .radio:first-child { + margin-top: 0; + } + + .card .form-horizontal .checkbox-inline { + margin-top: 0; + } + + .sidebar { + display: none; + box-shadow: none; + } + + .sidebar .sidebar-wrapper { + padding-bottom: 30px; + } + + .sidebar .nav-mobile-menu { + margin-top: 0; + } + + .sidebar .nav-mobile-menu .notification { + float: left; + line-height: 30px; + margin-right: 8px; + } + + .sidebar .nav-mobile-menu .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + + .main-panel { + width: 100%; + } + + .navbar-transparent { + padding-top: 15px; + background-color: rgba(0, 0, 0, 0.45); + } + + body { + position: relative; + } + + .nav-open .main-panel, + .nav-open .wrapper-full-page, + .nav-open .navbar .container .navbar-toggler, + .nav-open .navbar .container .navbar-wrapper, + .nav-open .navbar .container { + left: 0; + -webkit-transform: translate3d(-260px, 0, 0); + -moz-transform: translate3d(-260px, 0, 0); + -o-transform: translate3d(-260px, 0, 0); + -ms-transform: translate3d(-260px, 0, 0); + transform: translate3d(-260px, 0, 0); + } + + .nav-open .sidebar { + box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2); + } + + .nav-open .off-canvas-sidebar .navbar-collapse, + .nav-open .sidebar { + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + .wrapper-full-page, + .navbar .container .navbar-toggler, + .navbar .container .navbar-wrapper, + .navbar .container { + -webkit-transform: translate3d(0px, 0, 0); + -moz-transform: translate3d(0px, 0, 0); + -o-transform: translate3d(0px, 0, 0); + -ms-transform: translate3d(0px, 0, 0); + transform: translate3d(0px, 0, 0); + -webkit-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1); + -moz-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1); + -o-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1); + -ms-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1); + transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1); + left: 0; + } + + .off-canvas-sidebar .navbar .container { + transform: none; + } + + .main-panel, + .navbar-collapse { + -webkit-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1); + -moz-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1); + -o-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1); + -ms-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1); + transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1); + } + + .navbar .navbar-collapse.collapse, + .navbar .navbar-collapse.collapse.in, + .navbar .navbar-collapse.collapsing { + display: none !important; + } + + .off-canvas-sidebar .navbar .navbar-collapse.collapse, + .off-canvas-sidebar .navbar .navbar-collapse.collapse.in, + .off-canvas-sidebar .navbar .navbar-collapse.collapsing { + display: block !important; + } + + .navbar-nav>li { + float: none; + position: relative; + display: block; + } + + .off-canvas-sidebar nav .navbar-collapse { + margin: 0; + } + + .off-canvas-sidebar nav .navbar-collapse>ul { + margin-top: 19px; + } + + .sidebar, + .off-canvas-sidebar nav .navbar-collapse { + position: fixed; + display: block; + top: 0; + height: 100vh; + width: 260px; + right: 0; + left: auto; + z-index: 1032; + visibility: visible; + background-color: #9A9A9A; + overflow-y: visible; + border-top: none; + text-align: left; + padding-right: 0px; + padding-left: 0; + -webkit-transform: translate3d(260px, 0, 0); + -moz-transform: translate3d(260px, 0, 0); + -o-transform: translate3d(260px, 0, 0); + -ms-transform: translate3d(260px, 0, 0); + transform: translate3d(260px, 0, 0); + -webkit-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1); + -moz-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1); + -o-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1); + -ms-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1); + transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1); + } + + .sidebar>ul, + .off-canvas-sidebar nav .navbar-collapse>ul { + position: relative; + z-index: 4; + width: 100%; + } + + .sidebar::before, + .off-canvas-sidebar nav .navbar-collapse::before { + top: 0; + left: 0; + height: 100%; + width: 100%; + position: absolute; + background-color: #282828; + display: block; + content: ""; + z-index: 1; + } + + .sidebar .logo, + .off-canvas-sidebar nav .navbar-collapse .logo { + position: relative; + z-index: 4; + } + + .sidebar .navbar-form, + .off-canvas-sidebar nav .navbar-collapse .navbar-form { + margin: 10px 0px; + float: none !important; + padding-top: 1px; + padding-bottom: 1px; + position: relative; + } + + .sidebar .table-responsive, + .off-canvas-sidebar nav .navbar-collapse .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-x: scroll; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + -webkit-overflow-scrolling: touch; + } + + .form-group.form-search .form-control { + font-size: 1.7em; + height: 37px; + width: 78%; + } + + .navbar-form .btn { + position: absolute; + top: -5px; + right: -50px; + } + + .close-layer { + height: 100%; + width: 100%; + position: absolute; + opacity: 0; + top: 0; + left: auto; + background: rgba(0, 0, 0, 0.35); + content: ""; + z-index: 9999; + overflow-x: hidden; + -webkit-transition: all 370ms ease-in; + -moz-transition: all 370ms ease-in; + -o-transition: all 370ms ease-in; + -ms-transition: all 370ms ease-in; + transition: all 370ms ease-in; + } + + .close-layer.visible { + opacity: 1; + } + + .navbar-toggler .icon-bar { + display: block; + position: relative; + background: #555 !important; + width: 24px; + height: 2px; + border-radius: 1px; + margin: 0 auto; + } + + .navbar-header .navbar-toggler { + padding: 15px; + margin-top: 4px; + width: 40px; + height: 40px; + } + + .bar1, + .bar2, + .bar3 { + outline: 1px solid transparent; + } + + @keyframes topbar-x { + 0% { + top: 0px; + transform: rotate(0deg); + } + + 45% { + top: 6px; + transform: rotate(145deg); + } + + 75% { + transform: rotate(130deg); + } + + 100% { + transform: rotate(135deg); + } + } + + @-webkit-keyframes topbar-x { + 0% { + top: 0px; + -webkit-transform: rotate(0deg); + } + + 45% { + top: 6px; + -webkit-transform: rotate(145deg); + } + + 75% { + -webkit-transform: rotate(130deg); + } + + 100% { + -webkit-transform: rotate(135deg); + } + } + + @-moz-keyframes topbar-x { + 0% { + top: 0px; + -moz-transform: rotate(0deg); + } + + 45% { + top: 6px; + -moz-transform: rotate(145deg); + } + + 75% { + -moz-transform: rotate(130deg); + } + + 100% { + -moz-transform: rotate(135deg); + } + } + + @keyframes topbar-back { + 0% { + top: 6px; + transform: rotate(135deg); + } + + 45% { + transform: rotate(-10deg); + } + + 75% { + transform: rotate(5deg); + } + + 100% { + top: 0px; + transform: rotate(0); + } + } + + @-webkit-keyframes topbar-back { + 0% { + top: 6px; + -webkit-transform: rotate(135deg); + } + + 45% { + -webkit-transform: rotate(-10deg); + } + + 75% { + -webkit-transform: rotate(5deg); + } + + 100% { + top: 0px; + -webkit-transform: rotate(0); + } + } + + @-moz-keyframes topbar-back { + 0% { + top: 6px; + -moz-transform: rotate(135deg); + } + + 45% { + -moz-transform: rotate(-10deg); + } + + 75% { + -moz-transform: rotate(5deg); + } + + 100% { + top: 0px; + -moz-transform: rotate(0); + } + } + + @keyframes bottombar-x { + 0% { + bottom: 0px; + transform: rotate(0deg); + } + + 45% { + bottom: 6px; + transform: rotate(-145deg); + } + + 75% { + transform: rotate(-130deg); + } + + 100% { + transform: rotate(-135deg); + } + } + + @-webkit-keyframes bottombar-x { + 0% { + bottom: 0px; + -webkit-transform: rotate(0deg); + } + + 45% { + bottom: 6px; + -webkit-transform: rotate(-145deg); + } + + 75% { + -webkit-transform: rotate(-130deg); + } + + 100% { + -webkit-transform: rotate(-135deg); + } + } + + @-moz-keyframes bottombar-x { + 0% { + bottom: 0px; + -moz-transform: rotate(0deg); + } + + 45% { + bottom: 6px; + -moz-transform: rotate(-145deg); + } + + 75% { + -moz-transform: rotate(-130deg); + } + + 100% { + -moz-transform: rotate(-135deg); + } + } + + @keyframes bottombar-back { + 0% { + bottom: 6px; + transform: rotate(-135deg); + } + + 45% { + transform: rotate(10deg); + } + + 75% { + transform: rotate(-5deg); + } + + 100% { + bottom: 0px; + transform: rotate(0); + } + } + + @-webkit-keyframes bottombar-back { + 0% { + bottom: 6px; + -webkit-transform: rotate(-135deg); + } + + 45% { + -webkit-transform: rotate(10deg); + } + + 75% { + -webkit-transform: rotate(-5deg); + } + + 100% { + bottom: 0px; + -webkit-transform: rotate(0); + } + } + + @-moz-keyframes bottombar-back { + 0% { + bottom: 6px; + -moz-transform: rotate(-135deg); + } + + 45% { + -moz-transform: rotate(10deg); + } + + 75% { + -moz-transform: rotate(-5deg); + } + + 100% { + bottom: 0px; + -moz-transform: rotate(0); + } + } + + .navbar-toggler .icon-bar:nth-child(2) { + top: 0px; + -webkit-animation: topbar-back 500ms linear 0s; + -moz-animation: topbar-back 500ms linear 0s; + animation: topbar-back 500ms 0s; + -webkit-animation-fill-mode: forwards; + -moz-animation-fill-mode: forwards; + animation-fill-mode: forwards; + } + + .navbar-toggler .icon-bar:nth-child(3) { + opacity: 1; + } + + .navbar-toggler .icon-bar:nth-child(4) { + bottom: 0px; + -webkit-animation: bottombar-back 500ms linear 0s; + -moz-animation: bottombar-back 500ms linear 0s; + animation: bottombar-back 500ms 0s; + -webkit-animation-fill-mode: forwards; + -moz-animation-fill-mode: forwards; + animation-fill-mode: forwards; + } + + .navbar-toggler.toggled .icon-bar:nth-child(2) { + top: 6px; + -webkit-animation: topbar-x 500ms linear 0s; + -moz-animation: topbar-x 500ms linear 0s; + animation: topbar-x 500ms 0s; + -webkit-animation-fill-mode: forwards; + -moz-animation-fill-mode: forwards; + animation-fill-mode: forwards; + } + + .navbar-toggler.toggled .icon-bar:nth-child(3) { + opacity: 0; + } + + .navbar-toggler.toggled .icon-bar:nth-child(4) { + bottom: 6px; + -webkit-animation: bottombar-x 500ms linear 0s; + -moz-animation: bottombar-x 500ms linear 0s; + animation: bottombar-x 500ms 0s; + -webkit-animation-fill-mode: forwards; + -moz-animation-fill-mode: forwards; + animation-fill-mode: forwards; + } + + @-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } + } + + @-moz-keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } + } + + @keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } + } + + .dropdown-menu .divider { + background-color: rgba(229, 229, 229, 0.15); + } + + .navbar-nav { + margin: 1px 0; + } + + .navbar-nav .open .dropdown-menu>li>a { + padding: 15px 15px 5px 50px; + } + + .navbar-nav .open .dropdown-menu>li:first-child>a { + padding: 5px 15px 5px 50px; + } + + .navbar-nav .open .dropdown-menu>li:last-child>a { + padding: 15px 15px 25px 50px; + } + + [class*="navbar-"] .navbar-nav>li>a, + [class*="navbar-"] .navbar-nav>li>a:hover, + [class*="navbar-"] .navbar-nav>li>a:focus, + [class*="navbar-"] .navbar-nav .active>a, + [class*="navbar-"] .navbar-nav .active>a:hover, + [class*="navbar-"] .navbar-nav .active>a:focus, + [class*="navbar-"] .navbar-nav .open .dropdown-menu>li>a, + [class*="navbar-"] .navbar-nav .open .dropdown-menu>li>a:hover, + [class*="navbar-"] .navbar-nav .open .dropdown-menu>li>a:focus, + [class*="navbar-"] .navbar-nav .navbar-nav .open .dropdown-menu>li>a:active { + color: white; + } + + [class*="navbar-"] .navbar-nav>li>a, + [class*="navbar-"] .navbar-nav>li>a:hover, + [class*="navbar-"] .navbar-nav>li>a:focus, + [class*="navbar-"] .navbar-nav .open .dropdown-menu>li>a, + [class*="navbar-"] .navbar-nav .open .dropdown-menu>li>a:hover, + [class*="navbar-"] .navbar-nav .open .dropdown-menu>li>a:focus { + opacity: .7; + background: transparent; + } + + [class*="navbar-"] .navbar-nav.navbar-nav .open .dropdown-menu>li>a:active { + opacity: 1; + } + + [class*="navbar-"] .navbar-nav .dropdown>a:hover .caret { + border-bottom-color: #777; + border-top-color: #777; + } + + [class*="navbar-"] .navbar-nav .dropdown>a:active .caret { + border-bottom-color: white; + border-top-color: white; + } + + .dropdown-menu { + display: none; + } + + .navbar-fixed-top { + -webkit-backface-visibility: hidden; + } + + #bodyClick { + height: 100%; + width: 100%; + position: fixed; + opacity: 0; + top: 0; + left: auto; + right: 260px; + content: ""; + z-index: 9999; + overflow-x: hidden; + } + + .social-line .btn { + margin: 0 0 10px 0; + } + + .subscribe-line .form-control { + margin: 0 0 10px 0; + } + + .social-line.pull-right { + float: none; + } + + .footer:not(.footer-big) nav>ul li { + float: none; + } + + .social-area.pull-right { + float: none !important; + } + + .form-control+.form-control-feedback { + margin-top: -8px; + } + + .navbar-toggle:hover, + .navbar-toggle:focus { + background-color: transparent !important; + } + + .media-post .author { + width: 20%; + float: none !important; + display: block; + margin: 0 auto 10px; + } + + .media-post .media-body { + width: 100%; + } + + .navbar-collapse.collapse { + height: 100% !important; + } + + .navbar-collapse.collapse.in { + display: block; + } + + .navbar-header .collapse, + .navbar-toggle { + display: block !important; + } + + .navbar-header { + float: none; + } + + .navbar-collapse .nav p { + font-size: 1rem; + margin: 0; + } +} + +@media (min-width: 992px) { + .main-panel .navbar .navbar-collapse .navbar-nav .nav-item .nav-link p { + display: none; + } + + .nav-mobile-menu, + .sidebar .navbar-form { + display: none !important; + } +} + +/*# sourceMappingURL=dashboard-free.css.map */ \ No newline at end of file diff --git a/static/assets/css/material-dashboard.css.map b/static/assets/css/material-dashboard.css.map new file mode 100644 index 0000000..0f35558 --- /dev/null +++ b/static/assets/css/material-dashboard.css.map @@ -0,0 +1,322 @@ +{ + "version": 3, + "file": "dashboard-free.css", + "sources": [ + "../scss/dashboard-free.scss", + "../scss/partials/dashboard/core/_variables.scss", + "../scss/partials/dashboard/core/variables/_colors.scss", + "../scss/partials/dashboard/core/variables/_shadow.scss", + "../scss/partials/dashboard/core/variables/_bootstrap-material-design-base.scss", + "../scss/partials/dashboard/core/variables/_custom-forms.scss", + "../scss/partials/dashboard/core/variables/_spacing.scss", + "../scss/partials/dashboard/core/variables/_body.scss", + "../scss/partials/dashboard/core/variables/_brand.scss", + "../scss/partials/dashboard/core/variables/_buttons.scss", + "../scss/partials/dashboard/core/variables/_card.scss", + "../scss/partials/dashboard/core/variables/_code.scss", + "../scss/partials/dashboard/core/variables/_dropdown.scss", + "../scss/partials/dashboard/core/variables/_forms.scss", + "../scss/partials/dashboard/core/variables/_list-group.scss", + "../scss/partials/dashboard/core/variables/_nav.scss", + "../scss/partials/dashboard/core/variables/_pagination.scss", + "../scss/partials/dashboard/core/variables/_state.scss", + "../scss/partials/dashboard/core/variables/_tables.scss", + "../scss/partials/dashboard/core/variables/_tooltip.scss", + "../scss/partials/dashboard/core/variables/_type.scss", + "../scss/partials/dashboard/core/variables/_modals.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_functions.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_variables.scss", + "../scss/partials/dashboard/core/variables/_layout.scss", + "../scss/partials/dashboard/core/variables/_menu.scss", + "../scss/partials/dashboard/core/variables/_drawer.scss", + "../scss/partials/dashboard/core/variables/_snackbar.scss", + "../scss/partials/dashboard/core/variables/_bootstrap-material-design.scss", + "../scss/partials/dashboard/core/_mixins.scss", + "../scss/partials/dashboard/core/mixins/_utilities.scss", + "../scss/partials/dashboard/core/mixins/_breakpoints.scss", + "../scss/partials/dashboard/core/mixins/_animations.scss", + "../scss/partials/dashboard/core/mixins/_type.scss", + "../scss/partials/dashboard/core/mixins/_layout.scss", + "../scss/partials/dashboard/core/mixins/_drawer.scss", + "../scss/partials/dashboard/core/mixins/_forms.scss", + "../scss/partials/dashboard/core/mixins/_buttons.scss", + "../scss/partials/dashboard/core/mixins/_hover.scss", + "../scss/partials/dashboard/core/mixins/_navs.scss", + "../scss/partials/dashboard/core/mixins/_colored-shadows.scss", + "../scss/partials/dashboard/core/mixins/_navbar-colors.scss", + "../scss/partials/dashboard/core/mixins/_alert.scss", + "../scss/partials/dashboard/core/mixins/_sidebar-color.scss", + "../scss/partials/dashboard/core/mixins/_variables.scss", + "../scss/partials/dashboard/core/mixins/_vendor-prefixes.scss", + "../scss/partials/dashboard/core/_core-bootstrap.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_functions.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_variables.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_mixins.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_breakpoints.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_hover.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_image.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_badge.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_resize.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_screen-reader.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_size.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_reset-text.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_text-emphasis.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_text-hide.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_text-truncate.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_visibility.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_alert.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_buttons.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_caret.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_pagination.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_lists.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_list-group.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_nav-divider.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_forms.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_table-row.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_background-variant.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_border-radius.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_box-shadow.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_gradients.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_transition.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_clearfix.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_grid-framework.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_grid.scss", + "../scss/partials/dashboard/core/bootstrap/scss/mixins/_float.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_reboot.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_print.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_reboot.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_type.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_images.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_code.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_grid.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_tables.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_forms.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_buttons.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_transitions.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_dropdown.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_button-group.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_input-group.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_custom-forms.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_nav.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_navbar.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_card.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_breadcrumb.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_pagination.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_jumbotron.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_alert.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_progress.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_media.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_list-group.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_close.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_badge.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_modal.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_tooltip.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_popover.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_carousel.scss", + "../scss/partials/dashboard/core/bootstrap/scss/_utilities.scss", + "../scss/partials/dashboard/core/bootstrap/scss/utilities/_align.scss", + "../scss/partials/dashboard/core/bootstrap/scss/utilities/_background.scss", + "../scss/partials/dashboard/core/bootstrap/scss/utilities/_borders.scss", + "../scss/partials/dashboard/core/bootstrap/scss/utilities/_clearfix.scss", + "../scss/partials/dashboard/core/bootstrap/scss/utilities/_display.scss", + "../scss/partials/dashboard/core/bootstrap/scss/utilities/_embed.scss", + "../scss/partials/dashboard/core/bootstrap/scss/utilities/_flex.scss", + "../scss/partials/dashboard/core/bootstrap/scss/utilities/_float.scss", + "../scss/partials/dashboard/core/bootstrap/scss/utilities/_position.scss", + "../scss/partials/dashboard/core/bootstrap/scss/utilities/_screenreaders.scss", + "../scss/partials/dashboard/core/bootstrap/scss/utilities/_sizing.scss", + "../scss/partials/dashboard/core/bootstrap/scss/utilities/_spacing.scss", + "../scss/partials/dashboard/core/bootstrap/scss/utilities/_text.scss", + "../scss/partials/dashboard/core/bootstrap/scss/utilities/_visibility.scss", + "../scss/partials/dashboard/core/_buttons.scss", + "../scss/partials/dashboard/core/_checkboxes.scss", + "../scss/partials/dashboard/core/_radios.scss", + "../scss/partials/dashboard/core/_forms.scss", + "../scss/partials/dashboard/core/_input-group.scss", + "../scss/partials/dashboard/core/_images.scss", + "../scss/partials/dashboard/core/_navbar.scss", + "../scss/partials/dashboard/core/_alerts.scss", + "../scss/partials/dashboard/core/_headers.scss", + "../scss/partials/dashboard/core/_type.scss", + "../scss/partials/dashboard/core/_tabs.scss", + "../scss/partials/dashboard/core/_tooltip.scss", + "../scss/partials/dashboard/core/_popover.scss", + "../scss/partials/dashboard/core/_dropdown.scss", + "../scss/partials/dashboard/core/_togglebutton.scss", + "../scss/partials/dashboard/core/_ripples.scss", + "../scss/partials/dashboard/core/_footers.scss", + "../scss/partials/dashboard/core/_sidebar-and-main-panel.scss", + "../scss/partials/dashboard/core/_fixed-plugin.scss", + "../scss/partials/dashboard/core/_tables.scss", + "../scss/partials/dashboard/core/_misc.scss", + "../scss/partials/dashboard/core/_social-buttons.scss", + "../scss/partials/dashboard/core/_cards.scss", + "../scss/partials/dashboard/core/cards/_card-stats.scss", + "../scss/partials/dashboard/core/cards/_card-profile.scss", + "../scss/partials/dashboard/core/cards/_card-plain.scss", + "../scss/partials/dashboard/core/plugins/_animate.scss", + "../scss/partials/dashboard/core/plugins/_chartist.scss", + "../scss/partials/dashboard/core/plugins/_perfect-scrollbar.scss", + "../scss/partials/dashboard/core/_responsive.scss" + ], + "sourcesContent": [ + "/*!\n\n =========================================================\n * Material Dashboard - v2.1.0\n =========================================================\n\n * Product Page: https://www.creative-tim.com/product/material-dashboard\n * Copyright 2020 Creative Tim (http://www.creative-tim.com)\n\n =========================================================\n\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n */\n\n @import \"partials/dashboard/core/variables\";\n @import \"partials/dashboard/core/mixins\";\n @import \"partials/dashboard/core/core-bootstrap\";\n\n // Core Components\n @import \"partials/dashboard/core/buttons\";\n @import \"partials/dashboard/core/checkboxes\";\n @import \"partials/dashboard/core/radios\";\n @import \"partials/dashboard/core/forms\";\n @import \"partials/dashboard/core/input-group\";\n @import \"partials/dashboard/core/images\";\n @import \"partials/dashboard/core/navbar\";\n @import \"partials/dashboard/core/alerts\";\n @import \"partials/dashboard/core/headers\";\n @import \"partials/dashboard/core/type\";\n @import \"partials/dashboard/core/tabs\";\n @import \"partials/dashboard/core/tooltip\";\n @import \"partials/dashboard/core/popover\";\n @import \"partials/dashboard/core/dropdown\";\n @import \"partials/dashboard/core/togglebutton\";\n @import \"partials/dashboard/core/ripples\";\n @import \"partials/dashboard/core/footers\";\n @import \"partials/dashboard/core/sidebar-and-main-panel\";\n @import \"partials/dashboard/core/fixed-plugin\";\n @import \"partials/dashboard/core/tables\";\n @import \"partials/dashboard/core/misc\";\n @import \"partials/dashboard/core/social-buttons\";\n\n@import \"partials/dashboard/core/cards\";\n@import \"partials/dashboard/core/cards/card-stats\";\n@import \"partials/dashboard/core/cards/card-profile\";\n@import \"partials/dashboard/core/cards/card-plain\";\n\n //plugin scss\n @import \"partials/dashboard/core/plugins/animate\";\n @import \"partials/dashboard/core/plugins/chartist\";\n @import \"partials/dashboard/core/plugins/perfect-scrollbar\";\n\n @import \"partials/dashboard/core/responsive\";\n", + "@import \"variables/colors\";\n@import \"variables/shadow\";\n\n@import \"variables/bootstrap-material-design-base\";\n\n// Customized BS variables\n@import \"variables/custom-forms\";\n@import \"variables/spacing\";\n@import \"variables/body\";\n@import \"variables/brand\";\n@import \"variables/buttons\";\n@import \"variables/card\";\n@import \"variables/code\";\n@import \"variables/dropdown\";\n@import \"variables/forms\";\n@import \"variables/list-group\";\n@import \"variables/nav\";\n@import \"variables/pagination\";\n@import \"variables/state\";\n@import \"variables/tables\";\n@import \"variables/tooltip\";\n@import \"variables/type\";\n@import \"variables/modals\";\n\n// import their vars after customization for use below\n$enable-flex: true; // fully adopt flexbox layouts\n$enable-shadows: true; // enable shadows, set to false to turn off shadows\n\n// Core Bootstrap Variables\n@import \"./bootstrap/scss/functions\";\n@import \"./bootstrap/scss/variables\";\n\n@import \"variables/layout\";\n@import \"variables/menu\";\n@import \"variables/drawer\";\n@import \"variables/snackbar\";\n\n@import \"variables/bootstrap-material-design\";\n", + "$red-50: #ffebee !default;\n$red-100: #ffcdd2 !default;\n$red-200: #ef9a9a !default;\n$red-300: #e57373 !default;\n$red-400: #ef5350 !default;\n$red-500: #f44336 !default;\n$red-600: #e53935 !default;\n$red-700: #d32f2f !default;\n$red-800: #c62828 !default;\n$red-900: #b71c1c !default;\n$red-a100: #ff8a80 !default;\n$red-a200: #ff5252 !default;\n$red-a400: #ff1744 !default;\n$red-a700: #d50000 !default;\n$red: $red-500 !default;\n\n$pink-50: #fce4ec !default;\n$pink-100: #f8bbd0 !default;\n$pink-200: #f48fb1 !default;\n$pink-300: #f06292 !default;\n$pink-400: #ec407a !default;\n$pink-500: #e91e63 !default;\n$pink-600: #d81b60 !default;\n$pink-700: #c2185b !default;\n$pink-800: #ad1457 !default;\n$pink-900: #880e4f !default;\n$pink-a100: #ff80ab !default;\n$pink-a200: #ff4081 !default;\n$pink-a400: #f50057 !default;\n$pink-a700: #c51162 !default;\n$pink: $pink-500 !default;\n\n$purple-50: #f3e5f5 !default;\n$purple-100: #e1bee7 !default;\n$purple-200: #ce93d8 !default;\n$purple-300: #ba68c8 !default;\n$purple-400: #ab47bc !default;\n$purple-500: #9c27b0 !default;\n$purple-600: #8e24aa !default;\n$purple-700: #7b1fa2 !default;\n$purple-800: #6a1b9a !default;\n$purple-900: #4a148c !default;\n$purple-a100: #ea80fc !default;\n$purple-a200: #e040fb !default;\n$purple-a400: #d500f9 !default;\n$purple-a700: #a0f !default;\n$purple: $purple-500 !default;\n\n$deep-purple-50: #ede7f6 !default;\n$deep-purple-100: #d1c4e9 !default;\n$deep-purple-200: #b39ddb !default;\n$deep-purple-300: #9575cd !default;\n$deep-purple-400: #7e57c2 !default;\n$deep-purple-500: #673ab7 !default;\n$deep-purple-600: #5e35b1 !default;\n$deep-purple-700: #512da8 !default;\n$deep-purple-800: #4527a0 !default;\n$deep-purple-900: #311b92 !default;\n$deep-purple-a100: #b388ff !default;\n$deep-purple-a200: #7c4dff !default;\n$deep-purple-a400: #651fff !default;\n$deep-purple-a700: #6200ea !default;\n$deep-purple: $deep-purple-500 !default;\n\n$indigo-50: #e8eaf6 !default;\n$indigo-100: #c5cae9 !default;\n$indigo-200: #9fa8da !default;\n$indigo-300: #7986cb !default;\n$indigo-400: #5c6bc0 !default;\n$indigo-500: #3f51b5 !default;\n$indigo-600: #3949ab !default;\n$indigo-700: #303f9f !default;\n$indigo-800: #283593 !default;\n$indigo-900: #1a237e !default;\n$indigo-a100: #8c9eff !default;\n$indigo-a200: #536dfe !default;\n$indigo-a400: #3d5afe !default;\n$indigo-a700: #304ffe !default;\n$indigo: $indigo-500 !default;\n\n$blue-50: #e3f2fd !default;\n$blue-100: #bbdefb !default;\n$blue-200: #90caf9 !default;\n$blue-300: #64b5f6 !default;\n$blue-400: #42a5f5 !default;\n$blue-500: #2196f3 !default;\n$blue-600: #1e88e5 !default;\n$blue-700: #1976d2 !default;\n$blue-800: #1565c0 !default;\n$blue-900: #0d47a1 !default;\n$blue-a100: #82b1ff !default;\n$blue-a200: #448aff !default;\n$blue-a400: #2979ff !default;\n$blue-a700: #2962ff !default;\n$blue: $blue-500 !default;\n\n$light-blue-50: #e1f5fe !default;\n$light-blue-100: #b3e5fc !default;\n$light-blue-200: #81d4fa !default;\n$light-blue-300: #4fc3f7 !default;\n$light-blue-400: #29b6f6 !default;\n$light-blue-500: #03a9f4 !default;\n$light-blue-600: #039be5 !default;\n$light-blue-700: #0288d1 !default;\n$light-blue-800: #0277bd !default;\n$light-blue-900: #01579b !default;\n$light-blue-a100: #80d8ff !default;\n$light-blue-a200: #40c4ff !default;\n$light-blue-a400: #00b0ff !default;\n$light-blue-a700: #0091ea !default;\n$light-blue: $light-blue-500 !default;\n\n$cyan-50: #e0f7fa !default;\n$cyan-100: #b2ebf2 !default;\n$cyan-200: #80deea !default;\n$cyan-300: #4dd0e1 !default;\n$cyan-400: #26c6da !default;\n$cyan-500: #00bcd4 !default;\n$cyan-600: #00acc1 !default;\n$cyan-700: #0097a7 !default;\n$cyan-800: #00838f !default;\n$cyan-900: #006064 !default;\n$cyan-a100: #84ffff !default;\n$cyan-a200: #18ffff !default;\n$cyan-a400: #00e5ff !default;\n$cyan-a700: #00b8d4 !default;\n$cyan: $cyan-500 !default;\n\n$teal-50: #e0f2f1 !default;\n$teal-100: #b2dfdb !default;\n$teal-200: #80cbc4 !default;\n$teal-300: #4db6ac !default;\n$teal-400: #26a69a !default;\n$teal-500: #009688 !default;\n$teal-600: #00897b !default;\n$teal-700: #00796b !default;\n$teal-800: #00695c !default;\n$teal-900: #004d40 !default;\n$teal-a100: #a7ffeb !default;\n$teal-a200: #64ffda !default;\n$teal-a400: #1de9b6 !default;\n$teal-a700: #00bfa5 !default;\n$teal: $teal-500 !default;\n\n$green-50: #e8f5e9 !default;\n$green-100: #c8e6c9 !default;\n$green-200: #a5d6a7 !default;\n$green-300: #81c784 !default;\n$green-400: #66bb6a !default;\n$green-500: #4caf50 !default;\n$green-600: #43a047 !default;\n$green-700: #388e3c !default;\n$green-800: #2e7d32 !default;\n$green-900: #1b5e20 !default;\n$green-a100: #b9f6ca !default;\n$green-a200: #69f0ae !default;\n$green-a400: #00e676 !default;\n$green-a700: #00c853 !default;\n$green: $green-500 !default;\n\n$light-green-50: #f1f8e9 !default;\n$light-green-100: #dcedc8 !default;\n$light-green-200: #c5e1a5 !default;\n$light-green-300: #aed581 !default;\n$light-green-400: #9ccc65 !default;\n$light-green-500: #8bc34a !default;\n$light-green-600: #7cb342 !default;\n$light-green-700: #689f38 !default;\n$light-green-800: #558b2f !default;\n$light-green-900: #33691e !default;\n$light-green-a100: #ccff90 !default;\n$light-green-a200: #b2ff59 !default;\n$light-green-a400: #76ff03 !default;\n$light-green-a700: #64dd17 !default;\n$light-green: $light-green-500 !default;\n\n$lime-50: #f9fbe7 !default;\n$lime-100: #f0f4c3 !default;\n$lime-200: #e6ee9c !default;\n$lime-300: #dce775 !default;\n$lime-400: #d4e157 !default;\n$lime-500: #cddc39 !default;\n$lime-600: #c0ca33 !default;\n$lime-700: #afb42b !default;\n$lime-800: #9e9d24 !default;\n$lime-900: #827717 !default;\n$lime-a100: #f4ff81 !default;\n$lime-a200: #eeff41 !default;\n$lime-a400: #c6ff00 !default;\n$lime-a700: #aeea00 !default;\n$lime: $lime-500 !default;\n\n$yellow-50: #fffde7 !default;\n$yellow-100: #fff9c4 !default;\n$yellow-200: #fff59d !default;\n$yellow-300: #fff176 !default;\n$yellow-400: #ffee58 !default;\n$yellow-500: #ffeb3b !default;\n$yellow-600: #fdd835 !default;\n$yellow-700: #fbc02d !default;\n$yellow-800: #f9a825 !default;\n$yellow-900: #f57f17 !default;\n$yellow-a100: #ffff8d !default;\n$yellow-a200: #ff0 !default;\n$yellow-a400: #ffea00 !default;\n$yellow-a700: #ffd600 !default;\n$yellow: $yellow-500 !default;\n\n$amber-50: #fff8e1 !default;\n$amber-100: #ffecb3 !default;\n$amber-200: #ffe082 !default;\n$amber-300: #ffd54f !default;\n$amber-400: #ffca28 !default;\n$amber-500: #ffc107 !default;\n$amber-600: #ffb300 !default;\n$amber-700: #ffa000 !default;\n$amber-800: #ff8f00 !default;\n$amber-900: #ff6f00 !default;\n$amber-a100: #ffe57f !default;\n$amber-a200: #ffd740 !default;\n$amber-a400: #ffc400 !default;\n$amber-a700: #ffab00 !default;\n$amber: $amber-500 !default;\n\n$orange-50: #fff3e0 !default;\n$orange-100: #ffe0b2 !default;\n$orange-200: #ffcc80 !default;\n$orange-300: #ffb74d !default;\n$orange-400: #ffa726 !default;\n$orange-500: #ff9800 !default;\n$orange-600: #fb8c00 !default;\n$orange-700: #f57c00 !default;\n$orange-800: #ef6c00 !default;\n$orange-900: #e65100 !default;\n$orange-a100: #ffd180 !default;\n$orange-a200: #ffab40 !default;\n$orange-a400: #ff9100 !default;\n$orange-a700: #ff6d00 !default;\n$orange: $orange-500 !default;\n\n$deep-orange-50: #fbe9e7 !default;\n$deep-orange-100: #ffccbc !default;\n$deep-orange-200: #ffab91 !default;\n$deep-orange-300: #ff8a65 !default;\n$deep-orange-400: #ff7043 !default;\n$deep-orange-500: #ff5722 !default;\n$deep-orange-600: #f4511e !default;\n$deep-orange-700: #e64a19 !default;\n$deep-orange-800: #d84315 !default;\n$deep-orange-900: #bf360c !default;\n$deep-orange-a100: #ff9e80 !default;\n$deep-orange-a200: #ff6e40 !default;\n$deep-orange-a400: #ff3d00 !default;\n$deep-orange-a700: #dd2c00 !default;\n$deep-orange: $deep-orange-500 !default;\n\n$brown-50: #efebe9 !default;\n$brown-100: #d7ccc8 !default;\n$brown-200: #bcaaa4 !default;\n$brown-300: #a1887f !default;\n$brown-400: #8d6e63 !default;\n$brown-500: #795548 !default;\n$brown-600: #6d4c41 !default;\n$brown-700: #5d4037 !default;\n$brown-800: #4e342e !default;\n$brown-900: #3e2723 !default;\n$brown-a100: #d7ccc8 !default;\n$brown-a200: #bcaaa4 !default;\n$brown-a400: #8d6e63 !default;\n$brown-a700: #5d4037 !default;\n$brown: $brown-500 !default;\n\n$grey-50: #fafafa !default;\n$grey-100: #f5f5f5 !default;\n$grey-200: #eee !default;\n$grey-300: #e0e0e0 !default;\n$grey-400: #bdbdbd !default;\n$grey-500: #9e9e9e;\n$grey-600: #757575 !default;\n$grey-700: #616161 !default;\n$grey-800: #424242 !default;\n$grey-900: #212121 !default;\n$grey-a100: #f5f5f5 !default;\n$grey-a200: #eee !default;\n$grey-a400: #bdbdbd !default;\n$grey-a700: #616161 !default;\n$grey: $grey-500 !default;\n\n$blue-grey-50: #eceff1 !default;\n$blue-grey-100: #cfd8dc !default;\n$blue-grey-200: #b0bec5 !default;\n$blue-grey-300: #90a4ae !default;\n$blue-grey-400: #78909c !default;\n$blue-grey-500: #607d8b !default;\n$blue-grey-600: #546e7a !default;\n$blue-grey-700: #455a64 !default;\n$blue-grey-800: #37474f !default;\n$blue-grey-900: #263238 !default;\n$blue-grey-a100: #cfd8dc !default;\n$blue-grey-a200: #b0bec5 !default;\n$blue-grey-a400: #78909c !default;\n$blue-grey-a700: #455a64 !default;\n$blue-grey: $blue-grey-500 !default;\n\n$black: #000;\n$white: #fff;\n\n// New colors\n$gray-color: #999999 !default;\n$black-color: #3C4858 !default;\n\n$black: #000000; $rgb-black: \"0,0,0\" !default;\n$white: #ffffff; $rgb-white: \"255,255,255\" !default;\n\n//## Gray and brand colors for use across Bootstrap.\n\n$gray-base: #000 !default;\n$gray-darker: lighten($gray-base, 13.5%) !default; // #222\n$gray-dark: lighten($gray-base, 20%) !default; // #333\n$gray: lighten($gray-base, 33.5%) !default; // #555\n$gray-light: #999999 !default; // #999999\n$gray-lighter: lighten($gray-base, 93.5%) !default; // #eee\n", + "// Shadows (originally from mdl http://www.getmdl.io/)\n$bmd-shadow-umbra-opacity: 0.2 !default;\n$bmd-shadow-penumbra-opacity: 0.14 !default;\n$bmd-shadow-ambient-opacity: 0.12 !default;\n\n// Declare the following for reuse with both mixins and the bootstrap variables\n$bmd-shadow-focus: 0 0 8px rgba($black, .18), 0 8px 16px rgba($black, .36);\n\n$bmd-shadow-2dp: 0 2px 2px 0 rgba($black, $bmd-shadow-penumbra-opacity),\n 0 3px 1px -2px rgba($black, $bmd-shadow-umbra-opacity),\n 0 1px 5px 0 rgba($black, $bmd-shadow-ambient-opacity);\n\n$bmd-shadow-3dp: 0 3px 4px 0 rgba($black, $bmd-shadow-penumbra-opacity),\n 0 3px 3px -2px rgba($black, $bmd-shadow-umbra-opacity),\n 0 1px 8px 0 rgba($black, $bmd-shadow-ambient-opacity);\n\n$bmd-shadow-4dp: 0 4px 5px 0 rgba($black, $bmd-shadow-penumbra-opacity),\n 0 1px 10px 0 rgba($black, $bmd-shadow-ambient-opacity),\n 0 2px 4px -1px rgba($black, $bmd-shadow-umbra-opacity);\n\n$bmd-shadow-6dp: 0 6px 10px 0 rgba($black, $bmd-shadow-penumbra-opacity),\n 0 1px 18px 0 rgba($black, $bmd-shadow-ambient-opacity),\n 0 3px 5px -1px rgba($black, $bmd-shadow-umbra-opacity);\n\n$bmd-shadow-8dp: 0 8px 10px 1px rgba($black, $bmd-shadow-penumbra-opacity),\n 0 3px 14px 2px rgba($black, $bmd-shadow-ambient-opacity),\n 0 5px 5px -3px rgba($black, $bmd-shadow-umbra-opacity);\n\n$bmd-shadow-16dp: 0 16px 24px 2px rgba($black, $bmd-shadow-penumbra-opacity),\n 0 6px 30px 5px rgba($black, $bmd-shadow-ambient-opacity),\n 0 8px 10px -5px rgba($black, $bmd-shadow-umbra-opacity);\n\n$bmd-shadow-24dp: 0 9px 46px 8px rgba($black, $bmd-shadow-penumbra-opacity),\n 0 11px 15px -7px rgba($black, $bmd-shadow-ambient-opacity),\n 0 24px 38px 3px rgba($black, $bmd-shadow-umbra-opacity);\n", + "$gray-lighter: rgba($black, 0.12) !default;\n$gray-light: #999 !default;\n$gray-alpha: .54 !default;\n$gray: #555 !default; // spec color\n$gray-dark: rgba($black, 0.87) !default; // used for text color - others use grey-600 which is considerably lighter\n\n$bmd-font-weight-base: 400;\n\n// wondering if any of these could still be refactored out, but are definitely in use.\n$bmd-inverse: rgba($white, 1) !default;\n$bmd-inverse-light: rgba($white, 0.84) !default;\n$bmd-inverse-lighter: rgba($white, 0.54) !default;\n\n$bmd-label-color: $gray-color !default;\n$bmd-label-color-inner-focus: $gray !default; // e.g. radio label or text-muted not a control-label which is primary\n\n$border-radius-base: 3px !default;\n$border-radius-small: 2px !default;\n$border-radius-large: 6px !default;\n$border-radius-huge: 10px !default;\n$border-radius-label: 12px !default;\n$border-radius-extreme: 30px !default;\n\n// Typography elements\n$mdb-font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif !default;\n$mdb-text-color-light: $white !default;\n$mdb-text-color-light-hex: $white !default; // for contrast function in inverse\n$mdb-text-color-primary: unquote(\"rgba(#{$rgb-black}, 0.87)\") !default;\n$mdb-text-color-primary-hex: $black !default; // for contrast function in inverse\n$icon-color: rgba(0,0,0,0.5) !default;\n\n$mdb-label-color: unquote(\"rgba(#{$rgb-black}, 0.26)\") !default;\n$mdb-label-color-toggle-focus: unquote(\"rgba(#{$rgb-black}, .54)\") !default;\n", + "$custom-file-bg: transparent !default;\n$custom-file-border-width: 0 !default;\n$custom-file-box-shadow: none !default;\n$custom-file-border-radius: 0 !default;\n$custom-file-line-height: 1.3 !default;\n", + "// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n\n$spacer: 1rem !default; // $form-group-margin-bottom uses $spacer-y. Decided to try this globally and see how it works out.\n//$spacer-x: $spacer !default;\n//$spacer-y: $spacer !default;\n//$spacers: (\n// 0: (\n// x: 0,\n// y: 0\n// ),\n// 1: (\n// x: $spacer-x,\n// y: $spacer-y\n// ),\n// 2: (\n// x: ($spacer-x * 1.5),\n// y: ($spacer-y * 1.5)\n// ),\n// 3: (\n// x: ($spacer-x * 3),\n// y: ($spacer-y * 3)\n// )\n//) !default;\n", + "// Body\n//\n// Settings for the `` element.\n\n$body-bg: #fafafa !default;\n//$body-color: $gray-dark !default;\n", + "// Bootstrap brand color customization\n\n\n/* brand Colors */\n\n$brand-primary: $purple-500 !default;\n$brand-info: $cyan-500 !default;\n$brand-success: $green-500 !default;\n$brand-warning: $orange-500 !default;\n$brand-danger: $red-500 !default;\n$brand-rose: $pink-500 !default;\n$brand-inverse: $black-color !default;\n", + "// Buttons:\n$bmd-btn-font-size: .875rem !default; // 14px\n$bmd-btn-font-size-lg: 1.25rem !default;\n$bmd-btn-font-size-sm: .6875rem !default; // 11px\n$bmd-btn-margin-bottom: .3125rem !default; // 5px\n\n// default btn with no specific type designation\n$bmd-btn-color: $gray-dark !default;\n$bmd-btn-bg: transparent !default; //$body-bg !default; // #fff\n$bmd-btn-border: #ccc !default;\n\n$bmd-btn-focus-bg: rgba(#999, .20) !default; // spec: bg Hover: 20% #999999\n$bmd-btn-active-bg: rgba(#999, .40) !default; // spec: bg Pressed: 40% #999999\n$bmd-btn-disabled: rgba($black, .26) !default; // spec: light theme: Disabled text: 26% $black\n\n$bmd-inverse-btn-focus-bg: rgba(#ccc, .15) !default; // spec: dark bg Hover: 15% #CCCCCC\n$bmd-inverse-btn-active-bg: rgba(#ccc, .25) !default; // spec: dark Pressed: 25% #CCCCCC\n$bmd-inverse-btn-disabled: rgba($white, .30) !default; // spec: dark theme: Disabled text: 30% $white\n\n$bmd-btn-fab-size: 3.5rem !default; // 56px\n$bmd-btn-fab-size-sm: 2.5rem !default; // 40px\n$bmd-btn-fab-font-size: 1.5rem !default; // 24px\n\n// icons\n$bmd-btn-icon-size: 2rem !default; // 32px\n$bmd-btn-icon-size-sm: (.75 * $bmd-btn-icon-size) !default; // ~24px\n$bmd-btn-icon-font-size-sm: (.75 * $bmd-btn-fab-font-size) !default;\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background and border color.\n$input-btn-padding-x: 1rem !default; // 1rem\n$input-btn-padding-y: .46875rem !default; // .5rem achieve a 36dp height\n//$input-btn-line-height: 1 !default; //1.25\n$btn-font-weight: 400 !default; // normal\n$btn-box-shadow: none !default;\n$btn-active-box-shadow: none !default; // inset 0 3px 5px rgba(0,0,0,.125)\n\n//\n$btn-primary-color: #fff !default;\n$btn-primary-bg: $brand-primary !default;\n$btn-primary-border-color: $btn-primary-bg !default;\n//\n$btn-secondary-color: $gray-dark !default;\n$btn-secondary-bg: $body-bg !default; // #fff\n$btn-secondary-border-color: #ccc !default;\n//\n$btn-info-color: #fff !default;\n$btn-info-bg: $brand-info !default;\n$btn-info-border-color: $btn-info-bg !default;\n//\n$btn-success-color: #fff !default;\n$btn-success-bg: $brand-success !default;\n$btn-success-border-color: $btn-success-bg !default;\n//\n$btn-warning-color: #fff !default;\n$btn-warning-bg: $brand-warning !default;\n$btn-warning-border-color: $btn-warning-bg !default;\n//\n$btn-danger-color: #fff !default;\n$btn-danger-bg: $brand-danger !default;\n$btn-danger-border-color: $btn-danger-bg !default;\n\n$btn-rose-color: #fff !default;\n$btn-rose-bg: $brand-rose !default;\n$btn-rose-border-color: $btn-rose-bg !default;\n\n$btn-default-color: #fff !default;\n$btn-default-bg: $gray-color !default;\n$btn-default-border-color: $btn-default-bg !default;\n//\n$btn-link-disabled-color: $gray-light !default;\n//\n$input-btn-padding-x-sm: 1.25rem !default;\n$input-btn-padding-y-sm: .40625rem !default; // achieve a 32dp height was .25rem\n\n$input-btn-padding-y-lg: 1.125rem !default;\n$input-btn-padding-x-lg: 2.25rem !default;\n\n//\n//$input-btn-padding-x-lg: 1.5rem !default;\n//$input-btn-padding-y-lg: .75rem !default;\n//\n//// Allows for customizing button radius independently from global border radius\n//$btn-border-radius: $border-radius !default;\n//$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: .1875rem !default;\n$border-radius-extreme: 2rem !default;\n", + "// Cards\n//$card-spacer-x: 1.25rem !default;\n//$card-spacer-y: .75rem !default;\n//$card-border-width: 1px !default;\n//$card-border-radius: $border-radius !default;\n$card-border-color: $gray-lighter !default; // #e5e5e5\n//$card-border-radius-inner: $card-border-radius !default;\n$card-bg: #fff !default;\n$card-cap-bg: $card-bg !default; // #f5f5f5\n//\n//$card-link-hover-color: #fff !default;\n//\n//$card-deck-margin: .625rem !default;\n// Card\n$mdb-card-body-text: $mdb-text-color-primary !default;\n$mdb-card-body-background: #fff !default;\n$mdb-card-image-headline: #fff !default;\n\n$text-disabled: #a8a8a8 !default;\n$background-disabled: #eaeaea !default;\n", + "// Code\n\n$code-bg: $grey-200 !default; // #f7f7f9 !default;\n", + "// Dropdowns\n//\n// Dropdown menu container and contents.\n\n//$dropdown-bg: #fff !default;\n//$dropdown-border-color: rgba(0,0,0,.15) !default;\n//$dropdown-border-width: $border-width !default;\n//$dropdown-divider-bg: #e5e5e5 !default;\n$dropdown-box-shadow: $bmd-shadow-2dp !default; //0 6px 12px rgba(0,0,0,.175) !default;\n//\n//$dropdown-link-color: $gray-dark !default;\n//$dropdown-link-hover-color: darken($gray-dark, 5%) !default;\n//$dropdown-link-hover-bg: #f5f5f5 !default;\n//\n//$dropdown-link-active-color: $component-active-color !default;\n//$dropdown-link-active-bg: $component-active-bg !default;\n//\n//$dropdown-link-disabled-color: $gray-light !default;\n//\n//$dropdown-header-color: $gray-light !default;\n", + "// Forms\n\n//\n$input-bg: rgba($black, 0) !default; // #fff !default;\n$input-bg-disabled: rgba($black, 0) !default; // $gray-lighter !default;\n//\n//$input-color: $gray !default;\n$input-border-color: #d2d2d2 !default; // #ccc !default;\n$input-border-color-white: #FFFFFF !default;\n\n//$input-btn-border-width: $border-width !default; // For form controls and buttons\n$input-box-shadow: none !default; //inset 0 1px 1px rgba(0,0,0,.075) !default;\n//\n$input-border-radius: 0 !default; // $border-radius !default;\n$input-box-shadow-focus: none !default; // rgba(102,175,233,.6) !default;\n//\n$input-color-placeholder: $bmd-label-color !default; // #999 !default;\n\n$input-padding-x: 0 !default; // .75rem !default;\n$input-padding-y: .4375rem !default; // spec 8px // .375rem !default;\n\n$input-padding-x-sm: 0 !default; // .75rem !default;\n$input-padding-y-sm: .25rem !default; // spec 4px //.275rem !default;\n\n$input-padding-x-lg: 0 !default; // 1.25rem !default;\n$input-padding-y-lg: .5625rem !default; // no-spec 9px // .75rem !default;\n\n//\n$input-group-addon-bg: transparent !default; //$gray-lighter !default;\n$input-group-addon-border-color: transparent !default; //$input-border-color !default;\n//\n//$cursor-disabled: not-allowed !default;\n//\n//// Form validation icons\n$form-icon-success: \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg==\";\n$form-icon-warning: \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+\";\n$form-icon-danger: \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4=\";\n", + "// List group\n\n$list-group-bg: inherit !default; // #fff\n//$list-group-border-color: #ddd !default;\n$list-group-border-width: 0 !default; // $border-width\n$list-group-border-radius: 0 !default; // $border-radius\n//\n//$list-group-hover-bg: #f5f5f5 !default;\n//$list-group-active-color: $component-active-color !default;\n//$list-group-active-bg: $component-active-bg !default;\n//$list-group-active-border: $list-group-active-bg !default;\n//$list-group-active-text-color: lighten($list-group-active-bg, 40%) !default;\n//\n//$list-group-disabled-color: $gray-light !default;\n//$list-group-disabled-bg: $gray-lighter !default;\n//$list-group-disabled-text-color: $list-group-disabled-color !default;\n//\n//$list-group-link-color: #555 !default;\n//$list-group-link-hover-color: $list-group-link-color !default;\n//$list-group-link-heading-color: #333 !default;\n", + "// Navs https://www.google.com/design/spec/components/tabs.html#tabs-specs\n\n$nav-disabled-link-color: $gray-light !default;\n$nav-disabled-link-hover-color: $gray-light !default;\n\n$bmd-navbar-link-font-weight: $bmd-font-weight-base !default; //\n$bmd-navbar-link-font-size: .875rem !default; // 14\n$bmd-navbar-link-padding: .5321rem; // 7\n\n// tabs & pills\n$bmd-nav-tabs-pills-font-weight: 500 !default; //\n$bmd-nav-tabs-pills-font-size: .875rem !default; // 14\n$bmd-nav-tabs-pills-link-padding: 1.4286em .8575em !default; // spec // was .5em 1em // relative em based on 14\n\n// tabs only\n$bmd-nav-tabs-border-size: .214rem !default; // 3px\n\n$bmd-nav-tabs-color: $gray !default;\n$bmd-nav-tabs-active-color: $gray-dark !default;\n$bmd-nav-tabs-active-border-color: $brand-primary !default;\n$bmd-nav-tabs-disabled-link-color: $nav-disabled-link-color !default;\n$bmd-nav-tabs-disabled-link-color-hover: $nav-disabled-link-hover-color !default;\n\n$bmd-nav-tabs-primary-color: $bmd-inverse !default;\n$bmd-nav-tabs-primary-active-color: #fff !default;\n$bmd-nav-tabs-primary-active-border-color: #fff !default;\n$bmd-nav-tabs-primary-disabled-link-color: $bmd-inverse-light !default;\n$bmd-nav-tabs-primary-disabled-link-color-hover: $bmd-inverse-light !default;\n\n$bmd-nav-tabs-inverse-color: $bmd-inverse !default;\n$bmd-nav-tabs-inverse-active-color: #fff !default;\n$bmd-nav-tabs-inverse-active-border-color: #fff !default;\n$bmd-nav-tabs-inverse-disabled-link-color: $bmd-inverse-light !default;\n$bmd-nav-tabs-inverse-disabled-link-color-hover: $bmd-inverse-light !default;\n\n//$nav-item-margin: .2rem !default;\n\n//$bmd-nav-link-line-height: 1 !default; // makes it easier to line up with the spec\n//$nav-link-padding: .5em 1em !default; // changing this for tabs alters generic navbars, so do it elsewhere with higher specificity\n//$nav-link-hover-bg: $gray-lighter !default;\n\n//\n//$nav-tabs-border-color: #ddd !default;\n//\n//$nav-tabs-link-border-width: $border-width !default;\n//$nav-tabs-link-hover-border-color: $gray-lighter !default;\n//\n$nav-tabs-active-link-hover-bg: transparent !default; // $body-bg\n//$nav-tabs-active-link-hover-color: $gray !default;\n//$nav-tabs-active-link-hover-border-color: #ddd !default;\n//\n//$nav-tabs-justified-link-border-color: #ddd !default;\n//$nav-tabs-justified-active-link-border-color: $body-bg !default;\n//\n//$nav-pills-border-radius: $border-radius !default;\n//$nav-pills-active-link-hover-bg: $component-active-bg !default;\n//$nav-pills-active-link-hover-color: $component-active-color !default;\n", + "$pagination-border-width: 0;\n$pagination-bg: transparent;\n$pagination-disabled-bg: transparent;\n\n$pagination-padding-x-lg: 0;\n$pagination-padding-x-sm: 0;\n", + "// Form states and alerts\n//\n// Define colors for form feedback states and, by default, alerts.\n$state-success-text: $bmd-inverse !default;\n$state-success-bg: $brand-success !default;\n\n$state-info-text: $bmd-inverse !default;\n$state-info-bg: $brand-info !default;\n\n$state-warning-text: $bmd-inverse !default;\n$state-warning-bg: $brand-warning !default;\n\n$state-danger-text: $bmd-inverse !default;\n$state-danger-bg: $brand-danger !default;\n\n$state-rose-bg: $brand-rose !default;\n", + "$table-bg-accent: rgba(#000, .03);\n$table-border-color: rgba(#000, .06);\n$table-bg-hover: rgba(#000, .02); // Grey 100 (on white background)\n\n$bmd-table-header-font-size: .95rem;\n$bmd-table-border-color-inverse: rgba(#fff, .06);\n", + "$tooltip-bg: rgba($grey-700, .9);\n", + "// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// https://www.google.com/design/spec/style/typography.html#typography-styles\n// http://www.getmdl.io/styles/index.html\n\n$font-family-sans-serif: 'Roboto', 'Helvetica', 'Arial', sans-serif !default;\n$font-family-serif: 'Roboto Slab', 'Times New Roman', serif !default;\n//$font-family-monospace: Menlo, Monaco, Consolas, \"Courier New\", monospace !default;\n//$font-family-base: $font-family-sans-serif !default;\n\n// Pixel value used to responsively scale all typography. Applied to the `` element.\n//$font-size-root: 16px !default;\n//\n//$font-size-base: 1rem !default;\n//$font-size-lg: 1.25rem !default;\n//$font-size-sm: .875rem !default;\n//$font-size-xs: .75rem !default;\n//\n\n$font-size-h1: 3.3125rem;\n$font-size-h2: 2.25rem !default;\n$font-size-h3: 1.5625rem;\n$font-size-h4: 1.125rem !default;\n$font-size-h5: 1.0625rem !default;\n$font-size-h6: 0.75rem !default;\n$font-paragraph: 14px !default;\n$font-size-navbar: 16px !default;\n$font-size-small: 12px !default;\n\n\n//\n$display1-size: 7rem !default; // md display-4 112px was 6rem;\n$display2-size: 3.5rem !default; // md display-3 56px was 5.5rem\n$display3-size: 2.8125rem !default; // md display-2 45px was 4.5rem\n$display4-size: 2.125rem !default; // md display-1 34px was 3.5rem\n//\n//$display1-weight: 300 !default;\n//$display2-weight: 300 !default;\n//$display3-weight: 300 !default;\n//$display4-weight: 300 !default;\n//\n//$line-height-base: 1.5 !default;\n//\n$headings-margin-bottom: ($spacer / 2) !default;\n//$headings-font-family: inherit !default;\n$headings-font-weight: 400 !default; // was 500\n\n$font-weight-light: 300 !default;\n$font-weight-default: 400 !default;\n$font-weight-bold: 500 !default;\n$font-weight-extra-bold: 700 !default;\n\n$font-size-large: 1em !default;\n$font-size-large-navbar: 20px !default;\n\n//$headings-line-height: 1.1 !default;\n//$headings-color: inherit !default;\n//\n//$lead-font-size: 1.25rem !default;\n//$lead-font-weight: 300 !default;\n//\n//$text-muted: $gray-light !default;\n//\n//$abbr-border-color: $gray-light !default;\n//\n//$blockquote-small-color: $gray-light !default;\n//$blockquote-font-size: ($font-size-base * 1.25) !default;\n//$blockquote-border-color: $gray-lighter !default;\n//\n//$hr-border-color: rgba(0,0,0,.1) !default;\n//$hr-border-width: $border-width !default;\n//\n//$list-inline-padding: 5px !default;\n//\n//$dt-font-weight: bold !default;\n//\n//$nested-kbd-font-weight: bold !default;\n\n$padding-input-vertical: 11px !default;\n$padding-input-horizontal: 19px !default;\n\n$padding-btn-vertical: 11px !default;\n$padding-btn-horizontal: 22px !default;\n\n$padding-base-vertical: .5rem !default;\n$padding-base-horizontal: .7rem !default;\n\n$padding-round-horizontal: 23px !default;\n\n$padding-simple-vertical: 10px !default;\n$padding-simple-horizontal: 17px !default;\n\n$padding-large-vertical: 15px !default;\n$padding-large-horizontal: 48px !default;\n\n$padding-small-vertical: 5px !default;\n$padding-small-horizontal: 15px !default;\n\n$padding-label-vertical: 2px !default;\n$padding-label-horizontal: 12px !default;\n\n$margin-large-vertical: 30px !default;\n$margin-base-vertical: 15px !default;\n\n$margin-base-horizontal: 15px !default;\n", + "// Modals\n$modal-content-xs-box-shadow: $bmd-shadow-24dp !default;\n\n// Padding applied to the modal body\n//$modal-inner-padding: 15px !default;\n//\n//$modal-title-padding: 15px !default;\n//$modal-title-line-height: $line-height-base !default;\n//\n//$modal-content-bg: #fff !default;\n//$modal-content-border-color: rgba(0,0,0,.2) !default;\n//\n//$modal-backdrop-bg: #000 !default;\n$modal-backdrop-opacity: .26 !default; // .5\n//$modal-header-border-color: #e5e5e5 !default;\n//$modal-footer-border-color: $modal-header-border-color !default;\n//\n//$modal-lg: 900px !default;\n//$modal-md: 600px !default;\n//$modal-sm: 300px !default;\n\n$transition-ease-in: ease-in !default;\n$transition-ease-out: ease-out !default;\n$ultra-fast-transition-time: 60ms !default;\n$navbar-padding-a: 10px 15px;\n$padding-zero: 0px !default;\n$sidebar-width: calc(100% - 260px) !default;\n$sidebar-mini-width: calc(100% - 80px) !default;\n$topbar-back: topbar-back !default;\n$bottombar-back: bottombar-back !default;\n$topbar-x: topbar-x !default;\n$bottombar-x: bottombar-x !default;\n$margin-bottom: 0 0 10px 0 !default;\n$margin-base-vertical: 15px !default;\n", + "// Bootstrap functions\n//\n// Utility mixins and functions for evalutating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map) {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}.\";\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $yiq-text-dark;\n } @else {\n @return $yiq-text-light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, #000, #fff);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n", + "// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n\n//\n// Color system\n//\n\n// stylelint-disable\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge((\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n), $grays);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge((\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n), $colors);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge((\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n), $theme-colors);\n// stylelint-enable\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-print-styles: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// stylelint-disable\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge((\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n), $spacers);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge((\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%\n), $sizes);\n// stylelint-enable\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: ($font-size-base * 1.25) !default;\n$font-size-sm: ($font-size-base * .875) !default;\n\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: ($spacer / 2) !default;\n$headings-font-family: inherit !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: ($font-size-base * 1.25) !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-font-size: ($font-size-base * 1.25) !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-bg: transparent !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $gray-300 !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-bg: $gray-900 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($gray-900, 7.5%) !default;\n$table-dark-color: $body-bg !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg: ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-control-gutter: 1.5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $gray-300 !default;\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-control-indicator-disabled-bg: $gray-200 !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n\n$custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-select-padding-y: .375rem !default;\n$custom-select-padding-x: .75rem !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-line-height: $input-btn-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $white !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-select-border-width: $input-btn-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;\n\n$custom-select-font-size-sm: 75% !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-font-size-lg: 125% !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$custom-file-padding-y: $input-btn-padding-y !default;\n$custom-file-padding-x: $input-btn-padding-x !default;\n$custom-file-line-height: $input-btn-line-height !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-btn-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n// Navbar\n\n$navbar-padding-y: ($spacer / 2) !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: ($grid-gutter-width / 2) !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $gray-200 !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding: 1rem !default;\n\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: ($font-size-base * .75) !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n// List group\n\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: \"/\" !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$carousel-transition: transform .6s ease !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Printing\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n", + "// Layout variables - evidently nothing to see here...remove now?\n", + "$bmd-menu-line-height: 1 !default; // makes it easier to use sizes to match spec\n\n$bmd-menu-item-min-width: 7rem !default; // Minimum width on mobile = 2 * 56dp = 112dp\n$bmd-menu-item-max-width: 17.5rem !default; // Maximum width on mobile (in both portrait and landscape) = 5 * 56dp = 280dp\n$bmd-menu-item-min-height: 3rem !default; // 48px\n\n$bmd-menu-item-padding-right: 1rem !default;\n$bmd-menu-item-padding-bottom: .8rem !default;\n$bmd-menu-item-padding-left: 1rem !default;\n$bmd-menu-item-padding-top: .8rem !default;\n\n// md and up\n$bmd-menu-item-padding-right-md: 1.5rem !default;\n$bmd-menu-item-padding-left-md: 1.5rem !default;\n\n// Menu\n$bmd-menu-expand-duration: 0.3s !default;\n$bmd-menu-fade-duration: 0.2s !default;\n", + "// Drawer\n\n// Sizing\n$bmd-drawer-x-size: 240px !default;\n$bmd-drawer-y-size: 100px !default;\n", + "$bmd-snackbar-bg: #323232 !default;\n$bmd-snackbar-color: #fff !default;\n$bmd-snackbar-min-width: 280px !default;\n$bmd-snackbar-padding: .8rem 1.5rem !default;\n\n$bmd-snackbar-min-width-sm: 100% !default;\n", + "$bmd-label-color-focus: $brand-primary !default;\n$bmd-invalid-underline: $brand-danger !default;\n$bmd-readonly-underline: $input-border-color !default;\n\n//---\n// verified in use with refactoring to v4\n\n//---\n//-- unverified below here\n$bmd-brand-inverse: $indigo !default;\n// Typography elements FIXME: review to see if we actually need these\n$icon-color: rgba($black, 0.5) !default;\n\n// --------------------\n// inputs\n$mdb-input-placeholder-color: #AAAAAA !default;\n$mdb-input-underline-color: #D2D2D2 !default;\n\n$mdb-input-font-size-base: 14px !default;\n$mdb-input-font-size-large: ceil(($font-size-base * 1.25)) !default; // ~20px\n$mdb-input-font-size-small: ceil(($font-size-base * 0.75)) !default; // ~12px\n\n$bmd-bmd-label-static-size-ratio: 75 / 100 !default;\n$bmd-help-size-ratio: 75 / 100 !default;\n\n$bmd-form-control-bg-repeat-y: no-repeat !default;\n$bmd-form-control-bg-position: center bottom, center calc(100% - 1px) !default;\n$bmd-form-control-bg-size: 0 100%, 100% 100% !default;\n$bmd-form-control-bg-size-active: 100% 100%, 100% 100% !default;\n\n// expandable\n$input-text-button-size: 32px !default;\n\n// sizing\n$bmd-form-line-height: 1 !default; // set as 1x font-size so that padding is easier calculated to match the spec.\n$bmd-label-top-margin-base: 1rem !default;\n\n$bmd-form-line-height-lg: 1 !default; // set as 1x font-size so that padding is easier calculated to match the spec.\n$bmd-label-top-margin-lg: 1rem !default; // 16px\n\n$bmd-form-line-height-sm: 1 !default; // set as 1x font-size so that padding is easier calculated to match the spec.\n$bmd-label-top-margin-sm: .75rem !default; // 12px\n\n$text-disabled: #a8a8a8 !default;\n$background-disabled: #eaeaea !default;\n\n$margin-base: 1.071rem !default;\n\n\n// Checkboxes\n$bmd-checkbox-size: 1.25rem !default;\n$bmd-checkbox-animation-ripple: 500ms !default;\n$bmd-checkbox-animation-check: 0.3s !default;\n$bmd-checkbox-checked-color: $white !default;\n$bmd-checkbox-label-padding: .3125rem !default; // 5px\n$checkboxes-text-color: $mdb-input-placeholder-color !default;\n\n$bmd-checkbox-border-size: .0625rem !default;\n$bmd-checkbox-border-color: $bmd-label-color-inner-focus !default;\n$bmd-checkbox-border-color-disabled: $gray-lighter !default; //#bdbdbd !default;\n\n// Toggle\n$mdb-toggle-label-color: $mdb-label-color !default;\n\n// Variables for datetimepicker //\n$padding-default-vertical: 10px !default;\n$medium-pale-bg: #F1EAE0 !default;\n$pale-bg: #F9F7F3 !default;\n\n\n$font-color: #66615b !default;\n\n// $brand-default: #cecece !default;\n// $brand-primary: $purple !default;\n// $brand-success: $green !default;\n// $brand-danger: $red !default;\n// $brand-warning: $orange !default;\n// $brand-info: $cyan !default;\n// $brand-rose: $pink !default;\n\n$black-color: #3C4858 !default;\n\n// Dropdowns\n\n$dropdown-item-padding-y: .625rem;\n$dropdown-item-padding-x: 1.25rem;\n$dropdown-header-padding-y: 0.1875rem;\n$bmd-dropdown-margin-y: .3125rem !default;\n$bmd-dropdown-header-color: #777 !default;\n$bmd-dropdown-link-color: #333 !default;\n\n// Switches\n$bmd-switch-label-padding: .3125rem !default; // 5px\n$bmd-switch-width: 2.125rem !default; // 34px\n$bmd-switch-height: .875rem !default; // 14px\n$bmd-switch-handle-size: 1.25rem !default; // 20px (was 18px)\n\n$bmd-switch-handle-checked-bg: $brand-primary !default;\n$bmd-switch-handle-unchecked-bg: #f1f1f1 !default;\n$bmd-switch-handle-disabled-bg: #bdbdbd !default;\n$bmd-switch-unchecked-bg: $gray-lighter !default;\n$bmd-switch-checked-bg: desaturate(\n lighten($bmd-switch-handle-checked-bg, 28%),\n 32%\n); // kind of magic recipe\n$bmd-switch-disabled-bg: $gray-lighter !default;\n\n// Popovers and Popups\n$bmd-popover-background: rgba(101, 101, 101, 0.9) !default;\n$bmd-popover-color: #ececec !default;\n\n// Radio:\n$bmd-radio-border: .0625rem !default; // 1px\n$bmd-radio-size: 1rem !default;\n$bmd-radio-ripple-offset: 1em !default;\n$bmd-radio-label-padding: .3125rem !default; // 5px\n\n$bmd-radio-color-off: $bmd-label-color-inner-focus !default;\n$bmd-radio-color-on: $brand-primary !default;\n$bmd-radio-color-disabled: $gray-lighter; //\n$bmd-radio-color-disabled-inverse: rgba(\n $white,\n 0.30\n); // dark theme spec: Disabled: #FFFFFF, Opacity 30%\n\n$white-color: #fff !default;\n$navbar-color: #555 !default;\n$pills-color: $navbar-color !default;\n$black-color: #3C4858 !default;\n$link-color: $brand-primary;\n$white-transparent: rgba($white-color, .8);\n$transparent: transparent;\n\n//Popovers\n$popover-color: $navbar-color !default;\n\n//Tooltips\n$tooltip-font-size: 0.75rem !default;\n\n// Background colors\n$bg-primary: $brand-primary;\n$bg-danger: $brand-danger;\n$bg-warning: $brand-warning;\n$bg-info: $brand-info;\n$bg-rose: $brand-rose;\n$bg-success: $brand-success;\n$bg-dark: $grey-900;\n\n//Paddings\n$padding-general-y: 0.625rem !default;\n$padding-general-x: 0.9375rem !default;\n$padding-card-body-y: 0.9375rem !default;\n$padding-card-body-x: 1.875rem !default;\n\n// Buttons:\n$mdb-btn-font-size-base: 12px !default;\n$mdb-btn-font-size-lg: 14px !default;\n$mdb-btn-font-size-sm: 11px !default;\n$mdb-btn-font-size-xs: 10px !default;\n\n$mdb-btn-fab-size: 41px !default;\n$mdb-btn-fab-size-lg: 56px !default;\n$mdb-btn-fab-size-mini: 29px !default;\n$mdb-btn-fab-font-size: 24px !default;\n$mdb-btn-just-icon-font-size: 20px !default;\n\n$mdb-btn-icon-size: 32px !default;\n$mdb-btn-icon-size-mini: 17px !default;\n\n$bmd-line-height: 1.42857143 !default;\n$btn-lg-line-height: 1.3333333 !default;\n\n//Font-weight\n$font-weight-light: 300 !default;\n$font-weight-default: 400 !default;\n$font-weight-bold: 500 !default;\n$font-weight-extra-bold: 700 !default;\n$font-weight-ultra-bold: 900 !default;\n\n//Border-radius\n$border-radius-base: 3px !default;\n$border-radius-small: 2px !default;\n$border-radius-large: 6px !default;\n$border-radius-huge: 10px !default;\n$border-radius-label: 12px !default;\n$border-radius-extreme: 30px !default;\n\n// Animations\n$bmd-animation-curve-fast-out-slow-in: cubic-bezier(0.4, 0, 0.2, 1) !default;\n$bmd-animation-curve-linear-out-slow-in: cubic-bezier(0, 0, 0.2, 1) !default;\n$bmd-animation-curve-fast-out-linear-in: cubic-bezier(0.4, 0, 1, 1) !default;\n$bmd-animation-curve-default: $bmd-animation-curve-fast-out-slow-in !default;\n$bmd-animation-dropdown-caret: 150ms !default;\n$general-transition-time: 300ms !default;\n\n$slow-transition-time: 370ms !default;\n$fast-transition-time: 150ms !default;\n\n$transition-linear: linear !default;\n$transition-bezier: cubic-bezier(0.34, 1.61, 0.7, 1) !default;\n$transition-bezier-rotating-card: cubic-bezier(0.34, 1.45, 0.7, 1) !default;\n$transition-ease: ease 0s;\n\n//variables for social\n$social-facebook: \t\t\t#3b5998;\n$social-twitter: \t\t\t#55acee;\n$social-pinterest: \t\t\t#cc2127;\n$social-google: \t\t\t#dd4b39;\n$social-linkedin: \t\t\t#0976b4;\n$social-dribbble: \t\t\t#ea4c89;\n$social-github: \t\t\t#333333;\n$social-youtube: \t\t\t#e52d27;\n$social-instagram: \t\t #125688;\n$social-reddit: \t\t\t#ff4500;\n$social-tumblr: \t\t\t#35465c;\n$social-behance: \t\t\t#1769ff;\n\n\n// Variables for checkboxes\n\n$mdb-label-color: unquote(\"rgba(#{$rgb-black}, 0.26)\") !default;\n$mdb-label-color-toggle-focus: unquote(\"rgba(#{$rgb-black}, .54)\") !default;\n\n$mdb-checkbox-size: 20px !default;\n$mdb-checkbox-animation-ripple: 500ms !default;\n$mdb-checkbox-animation-check: 0.3s !default;\n$mdb-checkbox-checked-color: $brand-primary !default;\n\n$mdb-checkbox-label-color: $mdb-label-color !default;\n$mdb-checkbox-border-color: $mdb-label-color-toggle-focus !default;\n\n// Radio:\n$mdb-radio-label-color: $mdb-label-color !default;\n$mdb-radio-color-off: $mdb-label-color-toggle-focus !default;\n$mdb-radio-color-on: $brand-primary !default;\n", + "@import \"mixins/utilities\";\n@import \"mixins/breakpoints\";\n@import \"mixins/animations\";\n@import \"mixins/type\";\n@import \"mixins/layout\";\n@import \"mixins/drawer\";\n@import \"mixins/forms\";\n@import \"mixins/buttons\";\n@import \"mixins/hover\";\n@import \"mixins/navs\";\n@import \"mixins/colored-shadows\";\n@import \"mixins/navbar-colors\";\n@import \"mixins/alert\";\n@import \"mixins/sidebar-color\";\n@import \"mixins/variables\";\n@import \"mixins/vendor-prefixes\";\n", + "@function calc-top($line-height-base, $font-size, $component-height) {\n @return (($line-height-base * $font-size) - $component-height) / 2; // vertical center of line-height\n}\n\n// Emulate the less #contrast function\n// TODO: this may be useful for the inverse theme, but if not, remove (it is unused after the removal of fullpalette)\n// contrast-color and brightness borrowed from compass\n// Copyright (c) 2009-2014 Christopher M. Eppstein\n// Complies with license: https://github.com/Compass/compass/blob/stable/LICENSE.markdown\n@function contrast-color($color, $dark: $contrasted-dark-default, $light: $contrasted-light-default, $threshold: null) {\n @if $threshold {\n // Deprecated in Compass 0.13\n @warn \"The $threshold argment to contrast-color is no longer needed and will be removed in the next release.\";\n }\n\n @if $color == null {\n @return null;\n } @else {\n $color-brightness: brightness($color);\n $dark-text-brightness: brightness($dark);\n $light-text-brightness: brightness($light);\n @return if(abs($color-brightness - $light-text-brightness) > abs($color-brightness - $dark-text-brightness), $light, $dark);\n }\n}\n\n@function brightness($color) {\n @if type-of($color) == color {\n @return (red($color) * 0.299 + green($color) * 0.587 + blue($color) * 0.114) / 255 * 100%;\n } @else {\n @return unquote(\"brightness(#{$color})\");\n }\n}\n\n@mixin linear-gradient($color1, $color2){\n background: $color1; /* For browsers that do not support gradients */\n background: -webkit-linear-gradient(60deg, $color1 , $color2); /* For Safari 5.1 to 6.0 */\n background: -o-linear-gradient(60deg, $color1, $color2); /* For Opera 11.1 to 12.0 */\n background: -moz-linear-gradient(60deg, $color1, $color2); /* For Firefox 3.6 to 15 */\n background: linear-gradient(60deg, $color1 , $color2); /* Standard syntax */\n}\n\n@mixin radial-gradient($extern-color, $center-color){\n background: $extern-color;\n background: -moz-radial-gradient(center, ellipse cover, $center-color 0%, $extern-color 100%); /* FF3.6+ */\n background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,$center-color), color-stop(100%,$extern-color)); /* Chrome,Safari4+ */\n background: -webkit-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Chrome10+,Safari5.1+ */\n background: -o-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Opera 12+ */\n background: -ms-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* IE10+ */\n background: radial-gradient(ellipse at center, $center-color 0%,$extern-color 100%); /* W3C */\n background-size: 550% 450%;\n}\n@mixin badges-color($color){\n .tag{\n background-color: $color;\n color: $white-color;\n\n .tagsinput-remove-link{\n color: $white-color;\n }\n }\n // .tagsinput-add{\n // color: $color;\n // }\n}\n@mixin create-colored-badges(){\n\n &.primary-badge{\n @include badges-color($brand-primary);\n }\n &.info-badge {\n @include badges-color($brand-info);\n }\n &.success-badge{\n @include badges-color($brand-success);\n }\n &.warning-badge{\n @include badges-color($brand-warning);\n }\n &.danger-badge{\n @include badges-color($brand-danger);\n }\n &.rose-badge{\n @include badges-color($brand-rose);\n }\n}\n\n@mixin badge-color() {\n &.badge-primary{\n background-color: $brand-primary;\n }\n &.badge-info {\n background-color: $brand-info;\n }\n &.badge-success{\n background-color: $brand-success;\n }\n &.badge-warning{\n background-color: $brand-warning;\n }\n &.badge-danger{\n background-color: $brand-danger;\n }\n &.badge-rose{\n background-color: $brand-rose;\n }\n &.badge-default{\n background-color: $gray-light;\n }\n}\n", + "// case where behavior is responsive, or with a marker class\n@mixin media-breakpoint-down-or($breakpoint, $name) {\n #{unquote($name)} {\n @content;\n }\n\n @include media-breakpoint-down($breakpoint) {\n @content;\n }\n}\n\n// case where behavior is responsive, or with a marker class\n@mixin media-breakpoint-up-or($breakpoint, $name) {\n #{unquote($name)} {\n @content;\n }\n\n @include media-breakpoint-up($breakpoint) {\n @content;\n }\n}\n\n// Name of the previous breakpoint, or null\n//\n// >> breakpoint-next(sm)\n// xs\n// >> breakpoint-next(sm, (xs: 0, sm: 544px, md: 768px))\n// xs\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md))\n// xs\n@function breakpoint-previous($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n > 1, nth($breakpoint-names, $n - 1), null);\n}\n", + "// Animations (from mdl http://www.getmdl.io/)\n\n@mixin material-animation-fast-out-slow-in($duration:0.2s) {\n transition-duration: $duration;\n transition-timing-function: $bmd-animation-curve-fast-out-slow-in;\n}\n\n@mixin material-animation-linear-out-slow-in($duration:0.2s) {\n transition-duration: $duration;\n transition-timing-function: $bmd-animation-curve-linear-out-slow-in;\n}\n\n@mixin material-animation-fast-out-linear-in($duration:0.2s) {\n transition-duration: $duration;\n transition-timing-function: $bmd-animation-curve-fast-out-linear-in;\n}\n\n@mixin material-animation-default($duration:0.2s) {\n transition-duration: $duration;\n transition-timing-function: $bmd-animation-curve-default;\n}\n\n@mixin rotate-180() {\n -webkit-transform: rotate( 180deg );\n -moz-transform: rotate( 180deg );\n -o-transform: rotate( 180deg );\n -ms-transform: rotate(180deg);\n transform: rotate( 180deg );\n}\n\n@mixin transform-scale($value){\n -webkit-transform: scale($value);\n -moz-transform: scale($value);\n -o-transform: scale($value);\n -ms-transform: scale($value);\n transform: scale($value);\n}\n\n@mixin rotateY-180() {\n -webkit-transform: rotateY( 180deg );\n -moz-transform: rotateY( 180deg );\n -o-transform: rotateY( 180deg );\n -ms-transform: rotateY(180deg);\n transform: rotateY( 180deg );\n}\n\n@mixin transitions($time, $type){\n -webkit-transition: all $time $type;\n -moz-transition: all $time $type;\n -o-transition: all $time $type;\n -ms-transition: all $time $type;\n transition: all $time $type;\n}\n\n@mixin transitions-property($property, $time, $type){\n -webkit-transition: $property $time $type;\n -moz-transition: $property $time $type;\n -o-transition: $property $time $type;\n -ms-transition: $property $time $type;\n transition: $property $time $type;\n}\n\n@mixin transform-translate-x($value){\n -webkit-transform: translate3d($value, 0, 0);\n -moz-transform: translate3d($value, 0, 0);\n -o-transform: translate3d($value, 0, 0);\n -ms-transform: translate3d($value, 0, 0);\n transform: translate3d($value, 0, 0);\n}\n\n@mixin transform-translate-y($value){\n -webkit-transform: translate3d(0,$value, 0);\n -moz-transform: translate3d(0, $value, 0);\n -o-transform: translate3d(0, $value, 0);\n -ms-transform: translate3d(0, $value, 0);\n transform: translate3d(0, $value, 0);\n}\n\n@mixin perspective($value){\n -webkit-perspective: $value;\n -moz-perspective: $value;\n -o-perspective: $value;\n -ms-perspective: $value;\n perspective: $value;\n}\n\n@mixin transform-style($type){\n -webkit-transform-style: $type;\n -moz-transform-style: $type;\n -o-transform-style: $type;\n -ms-transform-style: $type;\n transform-style: $type;\n}\n\n@mixin backface-visibility($type){\n -webkit-backface-visibility: $type;\n -moz-backface-visibility: $type;\n -o-backface-visibility: $type;\n -ms-backface-visibility: $type;\n backface-visibility: $type;\n}\n\n@mixin transform-translate-y-dropdown($value){\n -webkit-transform: translate3d(0, $value, 0) !important;\n -moz-transform: translate3d(0, $value, 0) !important;\n -o-transform: translate3d(0, $value, 0) !important;\n -ms-transform: translate3d(0, $value, 0) !important;\n transform: translate3d(0, $value, 0) !important;\n}\n", + "@mixin headings() {\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n @content;\n }\n}\n\n// 14sp font\n%std-font {\n font-size: .875rem;\n}\n", + "// Generates the `.in` style for the generic backdrop used components such as the drawer in overlay mode\n@mixin bmd-layout-backdrop-in() {\n > .bmd-layout-backdrop {\n .in {\n visibility: visible;\n background-color: rgba(0, 0, 0, 0.5);\n }\n\n @supports (pointer-events: auto) {\n &.in {\n pointer-events: auto;\n opacity: 1;\n }\n }\n }\n}\n", + "// Mixins to allow creation of additional custom drawer sizes when using the defaults at the same time\n\n@mixin bmd-drawer-x-out($size) {\n @each $side, $abbrev in (left: l, right: r) {\n .bmd-drawer-f-#{$abbrev} {\n > .bmd-layout-drawer {\n // position\n top: 0;\n #{$side}: 0;\n\n width: $size;\n height: 100%;\n\n @if $side == left {\n transform: translateX(\n -$size - 10px\n ); // initial position of drawer (closed), way off screen\n } @else {\n transform: translateX(\n $size + 10px\n ); // initial position of drawer (closed), way off screen\n }\n }\n\n > .bmd-layout-header,\n > .bmd-layout-content {\n margin-#{$side}: 0;\n }\n }\n }\n}\n\n@mixin bmd-drawer-y-out($size) {\n @each $side, $abbrev in (top: t, bottom: b) {\n .bmd-drawer-f-#{$abbrev} {\n > .bmd-layout-drawer {\n // position\n #{$side}: 0;\n left: 0;\n\n width: 100%;\n height: $size;\n\n @if $side == top {\n transform: translateY(\n -$size - 10px\n ); // initial position of drawer (closed), way off screen\n } @else {\n transform: translateY(\n $size + 10px\n ); // initial position of drawer (closed), way off screen\n }\n }\n\n > .bmd-layout-content {\n margin-#{$side}: 0;\n }\n }\n }\n}\n\n@function bmd-drawer-breakpoint-name($breakpoint, $suffix: \"\") {\n // e.g. &, &-sm, &-md, &-lg\n $name: \"&-#{$breakpoint}#{$suffix}\";\n @if $breakpoint == xs {\n $name: \"&\";\n }\n @return $name;\n}\n\n@mixin bmd-drawer-x-in($size) {\n @each $side, $abbrev in (left: l, right: r) {\n .bmd-drawer-f-#{$abbrev} {\n // Push - drawer will push the header and content (default behavior)\n > .bmd-layout-header {\n width: calc(100% - #{$size});\n margin-#{$side}: $size;\n }\n\n > .bmd-layout-drawer {\n transform: translateX(0);\n }\n\n > .bmd-layout-content {\n margin-#{$side}: $size;\n }\n }\n }\n}\n\n@mixin bmd-drawer-y-in($size) {\n @each $side, $abbrev in (top: t, bottom: b) {\n .bmd-drawer-f-#{$abbrev} {\n // 1. Push - drawer will push the header or content\n > .bmd-layout-header {\n @if $side == top {\n // only add margin-top on a header when the drawer is at the top\n margin-#{$side}: $size;\n }\n }\n\n > .bmd-layout-drawer {\n transform: translateY(0);\n }\n\n > .bmd-layout-content {\n @if $side == bottom {\n // only add margin-bottom on content when the drawer is at the bottom\n margin-#{$side}: $size;\n }\n }\n }\n }\n}\n\n// breakpoint based open to a particular size\n@mixin bmd-drawer-x-in-up($size, $breakpoint) {\n // e.g. &, &-sm, &-md, &-lg\n $name: bmd-drawer-breakpoint-name($breakpoint, \"-up\");\n\n .bmd-drawer-in {\n #{unquote($name)} {\n // bmd-drawer-in, bmd-drawer-in-sm, bmd-drawer-in-md, bmd-drawer-in-lg\n\n @if $breakpoint == xs {\n // bmd-drawer-in marker class (non-responsive)\n @include bmd-drawer-x-in($size);\n } @else {\n // responsive class\n @include media-breakpoint-up($breakpoint) {\n // bmd-drawer-f-(left and right) styles\n @include bmd-drawer-x-in($size);\n }\n }\n }\n }\n}\n\n// breakpoint based open to a particular size\n@mixin bmd-drawer-y-in-up($size, $breakpoint) {\n // e.g. &, &-sm, &-md, &-lg\n $name: bmd-drawer-breakpoint-name($breakpoint, \"-up\");\n\n .bmd-drawer-in {\n #{unquote($name)} {\n // bmd-drawer-in, bmd-drawer-in-sm, bmd-drawer-in-md, bmd-drawer-in-lg\n\n @if $breakpoint == xs {\n // bmd-drawer-in marker class (non-responsive)\n @include bmd-drawer-y-in($size);\n } @else {\n // responsive class\n @include media-breakpoint-up($breakpoint) {\n // bmd-drawer-f-(left and right) styles\n @include bmd-drawer-y-in($size);\n }\n }\n }\n }\n}\n\n@mixin bmd-drawer-x-overlay() {\n @include bmd-layout-backdrop-in();\n\n @each $side, $abbrev in (left: l, right: r) {\n .bmd-drawer-f-#{$abbrev} {\n > .bmd-layout-header,\n > .bmd-layout-content {\n width: 100%;\n margin-#{$side}: 0;\n }\n }\n }\n}\n\n@mixin bmd-drawer-y-overlay() {\n @include bmd-layout-backdrop-in();\n\n @each $side, $abbrev in (top: t, bottom: b) {\n .bmd-drawer-f-#{$abbrev} {\n > .bmd-layout-header {\n @if $side == top {\n // only add margin-top on a header when the drawer is at the top\n margin-#{$side}: 0;\n }\n }\n\n > .bmd-layout-content {\n @if $side == bottom {\n // only add margin-bottom on content when the drawer is at the bottom\n margin-#{$side}: 0;\n }\n }\n }\n }\n}\n\n// Overlay - left/right responsive overlay classes and marker class\n@mixin bmd-drawer-x-overlay-down($breakpoint) {\n // e.g. &, &-sm, &-md, &-lg\n $name: bmd-drawer-breakpoint-name($breakpoint, \"-down\");\n\n .bmd-drawer-overlay {\n #{unquote($name)} {\n // bmd-drawer-overlay, bmd-drawer-overlay-sm, bmd-drawer-overlay-md, bmd-drawer-overlay-lg\n\n // x - left/right\n\n @if $breakpoint == xs {\n // overlay marker class (non-responsive)\n\n // Must double up on the .bmd-drawer-overlay class to increase specificity otherwise the\n // responsive bmd-drawer-in-* media queries above win (and overlay is ignored)\n &.bmd-drawer-overlay {\n @include bmd-drawer-x-overlay();\n }\n } @else {\n @include media-breakpoint-down($breakpoint) {\n // overlay responsive class\n @include bmd-drawer-x-overlay();\n }\n }\n }\n }\n}\n\n// Overlay - top/bottom responsive overlay classes and marker class\n@mixin bmd-drawer-y-overlay-down($breakpoint) {\n // e.g. &, &-sm, &-md, &-lg\n $name: bmd-drawer-breakpoint-name($breakpoint, \"-down\");\n\n .bmd-drawer-overlay {\n #{unquote($name)} {\n // bmd-drawer-overlay, bmd-drawer-overlay-sm, bmd-drawer-overlay-md, bmd-drawer-overlay-lg\n //// y - top/bottom\n\n @if $breakpoint == xs {\n // overlay marker class (non-responsive)\n\n // Must double up on the .bmd-drawer-overlay class to increase specificity otherwise the\n // responsive bmd-drawer-in-* media queries above win (and overlay is ignored)\n &.bmd-drawer-overlay {\n @include bmd-drawer-y-overlay();\n }\n } @else {\n @include media-breakpoint-down($breakpoint) {\n // overlay responsive class\n @include bmd-drawer-y-overlay();\n }\n }\n }\n }\n}\n", + "@mixin bmd-disabled() {\n fieldset[disabled][disabled] &,\n &.disabled,\n &:disabled,\n &[disabled] {\n @content;\n }\n}\n\n// Placeholder text\n@mixin material-placeholder() {\n &::-moz-placeholder {@content; } // Firefox\n &:-ms-input-placeholder {@content; } // Internet Explorer 10+\n &::-webkit-input-placeholder {@content; } // Safari and Chrome\n}\n\n@mixin bmd-selection-color() {\n .radio label,\n .radio-inline,\n .checkbox label,\n .checkbox-inline,\n .switch label {\n // override bootstrap focus and keep all the standard color (could be multiple radios in the form group)\n //color: $bmd-label-color;\n\n &,\n .is-focused & {\n // form-group focus could change multiple checkboxes/radios, disable that change by using the same color as non-form-group is-focused\n color: $bmd-label-color;\n\n // correct the above focus color for disabled items\n label:has(input[type=radio][disabled]),\n // css 4 which is unlikely to work for a while, but no other pure css way.\n label:has(input[type=checkbox][disabled]),\n // css 4\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus {\n color: $bmd-label-color;\n }\n }\n }\n }\n\n // Style for disabled inputs OLD, use color approach with opacity built in, see radios\n //fieldset[disabled] &,\n //fieldset[disabled] & input[type=checkbox],\n //input[type=checkbox][disabled]:not(:checked) ~ .checkbox-decorator .check::before,\n //input[type=checkbox][disabled]:not(:checked) ~ .checkbox-decorator .check,\n //input[type=checkbox][disabled] + .bmd-radio-outer-circle {\n // opacity: 0.5;\n //}\n}\n\n@mixin bmd-radio-color($color) {\n &::after {\n border-color: $color;\n }\n &::before {\n background-color: $color;\n }\n}\n\n\n@mixin bmd-form-color($label-color, $label-color-focus, $border-color, $line-color) {\n [class^='bmd-label'],\n [class*=' bmd-label'] {\n color: $label-color;\n }\n\n // override BS and keep the border-color normal/grey so that overlaid focus animation draws attention\n .form-control {\n // underline animation color on focus\n $underline-background-image: linear-gradient(\n to top,\n $label-color-focus 2px,\n fade-out($label-color-focus, 1) 2px\n ),\n linear-gradient(\n to top,\n $line-color 1px,\n fade-out($line-color, 1) 1px\n );\n $underline-background-image-invalid: linear-gradient(\n to top,\n $bmd-invalid-underline 2px,\n fade-out($bmd-invalid-underline, 1) 2px\n ),\n linear-gradient(\n to top,\n $line-color 1px,\n fade-out($line-color, 1) 1px\n );\n $underline-background-image-readonly: linear-gradient(\n to top,\n $bmd-readonly-underline 1px,\n fade-out($bmd-readonly-underline, 1) 1px\n ),\n linear-gradient(\n to top,\n $line-color 1px,\n fade-out($line-color, 1) 1px\n );\n $underline-background-image-disabled: linear-gradient(\n to right,\n $line-color 0%,\n $line-color 30%,\n transparent 30%,\n transparent 100%\n );\n\n // bg image is always there, we just need to reveal it\n &,\n .is-focused & {\n background-image: $underline-background-image;\n }\n\n &:invalid {\n background-image: $underline-background-image-invalid;\n }\n\n &:read-only {\n background-image: $underline-background-image-readonly;\n }\n\n @include bmd-disabled() {\n background-image: $underline-background-image-disabled;\n background-repeat: repeat-x;\n background-size: 3px 1px;\n }\n\n // allow underline focus image and validation images to coexist\n &.form-control-success {\n &,\n .is-focused & {\n background-image: $underline-background-image, $form-icon-success;\n }\n }\n &.form-control-warning {\n &,\n .is-focused & {\n background-image: $underline-background-image, $form-icon-warning;\n }\n }\n &.form-control-danger {\n &,\n .is-focused & {\n background-image: $underline-background-image, $form-icon-danger;\n }\n }\n }\n\n // may or may not be a form-group or bmd-form-group\n .is-focused {\n // on focus set borders and labels to the validation color\n\n // Use the BS provided mixin for the bulk of the color\n @include form-validation-state(\"valid\", $label-color);\n\n [class^='bmd-label'],\n [class*=' bmd-label'] {\n color: $label-color-focus;\n }\n\n .bmd-label-placeholder {\n color: $label-color; // keep the placeholder color\n }\n\n // Set the border and box shadow on specific inputs to match\n .form-control {\n border-color: $border-color;\n }\n\n // Set validation states also for addons\n //.input-group-addon {\n // border-color: $border-color;\n //}\n\n .bmd-help {\n color: $bmd-label-color-inner-focus;\n }\n }\n}\n\n// must be broken out for reuse - webkit selector breaks firefox\n@mixin bmd-label-static($label-top, $static-font-size) {\n top: $label-top;\n left: 0;\n // must repeat because the previous (more generic) selectors\n font-size: $static-font-size;\n}\n\n@mixin bmd-form-size-variant($font-size, $label-top-margin, $variant-padding-y, $variant-line-height, $form-group-context: null) {\n $variant-input-height: (\n ($font-size * $variant-line-height) + ($variant-padding-y * 2)\n );\n // $static-font-size: ($bmd-bmd-label-static-size-ratio * $font-size);\n $floating-font-size: 0.6875rem;\n $static-font-size: 0.875rem;\n $help-font-size: ($bmd-help-size-ratio * $font-size);\n\n $label-static-top: $label-top-margin;\n $label-placeholder-top: $label-top-margin + $static-font-size +\n $variant-padding-y;\n\n //@debug \"font-size: #{$font-size} static-font-size: #{$static-font-size} help-font-size: #{$help-font-size} form-group-context: #{$form-group-context} \";\n\n //Label height: 72dp\n //Padding above label text: 16dp\n //Padding between label and input text: 8dp\n //Padding below input text (including divider): 16dp\n //Padding below text divider: 8dp\n\n // @if $form-group-context {\n // // Create a space at the top of the bmd-form-group for the label.\n // // The label is absolutely positioned, so we use top padding to make space. This padding extends over the label down to the top of the input (padding).\n // padding-top: ($label-top-margin + $static-font-size);\n // // note: bottom-margin of this is determined by $spacer. @see _spacer.scss\n // //margin-bottom: (1.5 * $help-font-size);\n // }\n\n // TODO: remove this when known stable. https://github.com/FezVrasta/bootstrap-material-design/issues/849\n //@else {\n //\n // // for radios and checkboxes without a form-group, add some extra vertical spacing to pad down so that\n // // any help text above is not encroached upon, or so that it appears more evenly spaced vs form-groups\n // .radio,\n // label.radio-inline,\n // .checkbox,\n // label.checkbox-inline,\n // .switch {\n // padding-top: $spacer-y;\n // }\n //}\n\n // Set all line-heights preferably to 1 so that we can space out everything manually without additional added space\n // from the default line-height of 1.5\n .form-control,\n label,\n input::placeholder {\n line-height: $variant-line-height + 0.1;\n }\n\n label{\n color: $mdb-input-placeholder-color;\n }\n\n .radio label,\n label.radio-inline,\n .checkbox label,\n label.checkbox-inline,\n .switch label {\n line-height: $line-height-base; // keep the same line height for radios and checkboxes\n }\n\n // Note: this may be inside or outside a form-group, may be .bmd-form-group.bmd-form-group-sm or .bmd-form-group.bmd-form-group-lg\n // input::placeholder {\n // font-size: $font-size;\n // }\n\n // generic labels used anywhere in the form\n .checkbox label,\n .radio label,\n label {\n font-size: $font-size-sm;\n }\n\n // floating/placeholder default (no focus)\n .bmd-label-floating,\n .bmd-label-placeholder {\n //@debug \"top: #{$label-as-placeholder-top}\";\n top: $label-placeholder-top - 1.7; // place the floating label to look like a placeholder with input padding\n }\n\n // floating focused/filled will look like static\n .is-focused,\n .is-filled {\n .bmd-label-floating {\n @include bmd-label-static($label-static-top - 2, $floating-font-size);\n }\n }\n\n // static\n .bmd-label-static {\n @include bmd-label-static($label-static-top - 0.65, $static-font-size);\n }\n // #559 Fix for webkit/chrome autofill - rule must be separate because it breaks firefox otherwise #731\n //input:-webkit-autofill ~ .bmd-label-floating { FIXME: confirm that the autofill js generation of change event makes this unnecessary\n // @include bmd-label-static($label-top, $static-font-size, $static-line-height);\n //}\n\n .bmd-help {\n margin-top: 0; // allow the input margin to set-off the top of the help-block\n font-size: $help-font-size;\n }\n\n // validation icon placement\n .form-control {\n &.form-control-success,\n &.form-control-warning,\n &.form-control-danger {\n $icon-bg-size: ($variant-input-height * .5) ($variant-input-height * .5);\n background-size: $bmd-form-control-bg-size, $icon-bg-size;\n\n &,\n &:focus,\n .bmd-form-group.is-focused & {\n padding-right: ($input-padding-x * 3);\n background-repeat: $bmd-form-control-bg-repeat-y, no-repeat;\n background-position: $bmd-form-control-bg-position,\n center right ($variant-input-height * .25);\n }\n\n &:focus,\n .bmd-form-group.is-focused & {\n background-size: $bmd-form-control-bg-size-active, $icon-bg-size;\n }\n }\n }\n}\n\n@mixin mdb-label-color-toggle-focus(){\n // override bootstrap focus and keep all the standard color (could be multiple radios in the form group)\n .form-group.is-focused & {\n color: $mdb-label-color;\n\n // on focus just darken the specific labels, do not turn them to the brand-primary\n &:hover,\n &:focus {\n color: $mdb-label-color-toggle-focus;\n }\n\n // correct the above focus color for disabled items\n fieldset[disabled] & {\n color: $mdb-label-color;\n }\n }\n}\n\n@mixin animation($value){\n -webkit-animation: $value;\n -moz-animation: $value;\n -o-animation: $value;\n -ms-animation: $value;\n animation: $value;\n}\n\n@mixin transform-scale3d($value){\n -webkit-transform: scale3d($value);\n -moz-transform: scale3d($value);\n -o-transform: scale3d($value);\n -ms-transform: scale3d($value);\n transform: scale3d($value);\n}\n\n@mixin create-colored-tags(){\n &.tag-primary{\n @include tag-color($brand-primary);\n }\n &.tag-info {\n @include tag-color($brand-info);\n }\n &.tag-success{\n @include tag-color($brand-success);\n }\n &.tag-warning{\n @include tag-color($brand-warning);\n }\n &.tag-danger{\n @include tag-color($brand-danger);\n }\n &.tag-rose{\n @include tag-color($brand-rose);\n }\n}\n@mixin tag-color ($color){\n .tag{\n background-color: $color;\n color: $white-color;\n .tagsinput-remove-link{\n color: $white-color;\n }\n }\n .tagsinput-add{\n color: $color;\n }\n}\n\n\n// variations(unquote(\"\"), background-color, #FFF);\n@mixin variations($component, $selector-suffix, $mdb-param-1, $color-default) {\n // @include generic-variations($component, $selector-suffix, $color-default, \"variations-content\", $mdb-param-1);\n}\n", + "// from bs mixins/buttons button-variant\n@mixin bmd-button-variant($color, $background, $focus-background, $active-background, $border, $focus-border, $active-border) {\n color: $color;\n background-color: $background;\n border-color: $border;\n\n @include hover {\n color: $color;\n background-color: $focus-background;\n border-color: $focus-border;\n }\n\n &:focus,\n &.focus,\n &:hover{\n color: $color;\n background-color: $focus-background;\n border-color: $focus-border;\n }\n\n &:active,\n &.active,\n .open > &.dropdown-toggle,\n .show > &.dropdown-toggle {\n color: $color;\n background-color: $focus-background;\n border-color: $focus-border;\n @include shadow-2dp-color($background);\n\n &:hover,\n &:focus,\n &.focus {\n color: $color;\n background-color: $active-background;\n border-color: $active-border;\n }\n }\n\n // when it is an icon, kill the active bg on open dropdown, but stabilize on hover\n .open > &.dropdown-toggle.bmd-btn-icon {\n color: inherit;\n background-color: $background;\n\n // leave hover on with the lighter focus color\n &:hover {\n background-color: $focus-background;\n }\n }\n\n &.disabled,\n &:disabled {\n &:focus,\n &.focus {\n background-color: $background;\n border-color: $border;\n }\n @include hover {\n background-color: $background;\n border-color: $border;\n }\n }\n}\n\n@mixin bmd-flat-button-variant(\n $color,\n $border: $bmd-btn-border,\n $focus-border: $bmd-btn-focus-bg,\n $active-border: $bmd-btn-active-bg\n) {\n $background: $bmd-btn-bg;\n $focus-background: $bmd-btn-focus-bg;\n $active-background: $bmd-btn-active-bg;\n\n @include bmd-button-variant($color,\n $background,\n $focus-background,\n $active-background,\n $border,\n $focus-border,\n $active-border);\n\n // inverse color scheme\n .bg-inverse & {\n $focus-background: $bmd-inverse-btn-focus-bg;\n $focus-border: $bmd-inverse-btn-focus-bg;\n\n $active-background: $bmd-inverse-btn-active-bg;\n $active-border: $bmd-inverse-btn-active-bg;\n\n @include bmd-button-variant($color,\n $background,\n $focus-background,\n $active-background,\n $border,\n $focus-border,\n $active-border);\n }\n\n // reverse the above for links\n &.btn-link {\n background-color: transparent;\n }\n}\n\n@mixin bmd-flat-button-color() {\n @include bmd-flat-button-variant($bmd-btn-color);\n\n // flat bg with text color variations\n &.btn-primary {\n @include bmd-flat-button-variant($btn-primary-bg);\n }\n &.btn-secondary {\n @include bmd-flat-button-variant($btn-secondary-color);\n }\n &.btn-info {\n @include bmd-flat-button-variant($btn-info-bg);\n }\n &.btn-success {\n @include bmd-flat-button-variant($btn-success-bg);\n }\n &.btn-warning {\n @include bmd-flat-button-variant($btn-warning-bg);\n }\n &.btn-danger {\n @include bmd-flat-button-variant($btn-danger-bg);\n }\n}\n\n@mixin bmd-outline-button-color() {\n &.btn-outline,\n &.btn-outline-primary,\n &.btn-outline-secondary,\n &.btn-outline-info,\n &.btn-outline-success,\n &.btn-outline-warning,\n &.btn-outline-danger {\n border-color: currentColor;\n border-style: solid;\n border-width: 1px;\n }\n\n // flat bg with text and border color variations\n &.btn-outline {\n @include bmd-flat-button-variant($bmd-btn-color, $bmd-btn-color, $bmd-btn-color, $bmd-btn-color);\n }\n &.btn-outline-primary {\n @include bmd-flat-button-variant($btn-primary-bg, $btn-primary-bg, $btn-primary-bg, $btn-primary-bg);\n }\n &.btn-outline-secondary {\n @include bmd-flat-button-variant($btn-secondary-color, $btn-secondary-color, $btn-secondary-color, $btn-secondary-color);\n }\n &.btn-outline-info {\n @include bmd-flat-button-variant($btn-info-bg, $btn-info-bg, $btn-info-bg, $btn-info-bg);\n }\n &.btn-outline-success {\n @include bmd-flat-button-variant($btn-success-bg, $btn-success-bg, $btn-success-bg, $btn-success-bg);\n }\n &.btn-outline-warning {\n @include bmd-flat-button-variant($btn-warning-bg, $btn-warning-bg, $btn-warning-bg, $btn-warning-bg);\n }\n &.btn-outline-danger {\n @include bmd-flat-button-variant($btn-danger-bg, $btn-danger-bg, $btn-danger-bg, $btn-danger-bg);\n }\n}\n\n@mixin bmd-raised-button-variant($color, $background, $border) {\n // FIXME: SPEC - this should be the 600 color, how can we get that programmatically if at all? Or are we limited to the color palette only?\n $focus-background: contrast-color(\n $background,\n darken($background, 3%),\n lighten($background, 3%)\n );\n //$focus-background: darken($background, 10%); // default bootstrap\n $focus-border: darken($border, 12%);\n\n $active-background: $focus-background;\n //$active-background: darken($background, 17%);\n $active-border: darken($border, 25%);\n\n @include bmd-button-variant($color,\n $background,\n $focus-background,\n $active-background,\n $border,\n $focus-border,\n $active-border);\n\n @include shadow-2dp-color($background);\n\n &:focus,\n &:active,\n &:hover{\n // remove this line if you want black shadows\n @include button-shadow-color($background);\n }\n\n &.btn-link{\n background-color: transparent;\n color: $background;\n box-shadow: none;\n\n &:hover,\n &:focus,\n &:active{\n background-color: transparent;\n color: $background;\n }\n }\n\n}\n\n@mixin bmd-raised-button-color() {\n &.btn-primary {\n @include bmd-raised-button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border-color);\n }\n &.btn-secondary {\n @include bmd-raised-button-variant($btn-secondary-color, $btn-secondary-bg, $btn-secondary-border-color);\n }\n &.btn-info {\n @include bmd-raised-button-variant($btn-info-color, $btn-info-bg, $btn-info-border-color);\n }\n &.btn-success {\n @include bmd-raised-button-variant($btn-success-color, $btn-success-bg, $btn-success-border-color);\n }\n &.btn-warning {\n @include bmd-raised-button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border-color);\n }\n &.btn-danger {\n @include bmd-raised-button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border-color);\n }\n &.btn-rose {\n @include bmd-raised-button-variant($btn-rose-color, $btn-rose-bg, $btn-rose-border-color);\n }\n &,\n &.btn-default{\n @include bmd-raised-button-variant($btn-default-color, $btn-default-bg, $btn-default-border-color);\n }\n}\n\n@mixin bmd-social-buttons(){\n &.btn-facebook {\n @include bmd-raised-button-variant($white, $social-facebook, $social-facebook);\n }\n &.btn-twitter {\n @include bmd-raised-button-variant($white, $social-twitter, $social-twitter);\n }\n}\n\n@mixin undo-bs-tab-focus() {\n // clear out the tab-focus() from BS\n &,\n &:active,\n &.active {\n &:focus,\n &.focus {\n //@include tab-focus();\n outline: 0;\n }\n }\n}\n\n$opacity-gray-3: rgba(222,222,222, .3) !default;\n$opacity-gray-5: rgba(222,222,222, .5) !default;\n$opacity-gray-8: rgba(222,222,222, .8) !default;\n\n\n$opacity-5: rgba(255,255,255, .5) !default;\n$opacity-8: rgba(255,255,255, .8) !default;\n\n$datepicker-color-days: rgba(255,255,255, .8) !default;\n$datepicker-color-old-new-days: rgba(255,255,255, .4) !default;\n\n\n$opacity-1: rgba(255,255,255, .1) !default;\n$opacity-2: rgba(255,255,255, .2) !default;\n\n@mixin shadow-big-dash(){\n box-shadow: 0 10px 30px -12px rgba(0, 0, 0, $bmd-shadow-penumbra-opacity * 3),\n 0 4px 25px 0px rgba(0, 0, 0, $bmd-shadow-ambient-opacity),\n 0 8px 10px -5px rgba(0, 0, 0, $bmd-shadow-umbra-opacity);\n}\n\n@mixin shadow-big-navbar(){\n box-shadow: 0 10px 20px -12px rgba(0, 0, 0, $mdb-shadow-key-penumbra-opacity * 3),\n 0 3px 20px 0px rgba(0, 0, 0, $mdb-shadow-ambient-shadow-opacity),\n 0 8px 10px -5px rgba(0, 0, 0, $mdb-shadow-key-umbra-opacity);\n}\n\n@mixin shadow-big-color($color){\n // new box shadow optimized for Tablets and Phones\n box-shadow: 0 4px 20px 0px rgba(0, 0, 0, .14),\n 0 7px 10px -5px rgba($color, 0.4)\n}\n\n@mixin shadow-alert-color($color){\n box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14),\n 0 7px 10px -5px rgba($color, 0.4)\n}\n\n@mixin btn-styles($btn-color) {\n\n // remove this line if you want black shadows\n @include shadow-2dp-color($btn-color);\n\n &,\n &:hover,\n &:focus,\n &:active,\n &.active,\n &:active:focus,\n &:active:hover,\n &.active:focus,\n &.active:hover,\n .open > &.dropdown-toggle,\n .open > &.dropdown-toggle:focus,\n .open > &.dropdown-toggle:hover {\n background-color: $btn-color;\n color: $white-color;\n }\n\n &:focus,\n &:active,\n &:hover{\n // remove this line if you want black shadows\n @include button-shadow-color($btn-color);\n }\n\n &.disabled,\n &:disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n box-shadow: none;\n }\n }\n\n &.btn-simple{\n background-color: transparent;\n color: $btn-color;\n box-shadow: none;\n\n &:hover,\n &:focus,\n &:active{\n background-color: transparent;\n color: $btn-color;\n }\n }\n\n}\n", + "@mixin bmd-hover-focus-active {\n // add the .active to the whole mix of hover-focus-active\n &.active {\n @content;\n }\n @include hover-focus-active() {\n @content;\n }\n}\n\n@mixin transform-translate-y($value){\n -webkit-transform: translate3d(0,$value, 0);\n -moz-transform: translate3d(0, $value, 0);\n -o-transform: translate3d(0, $value, 0);\n -ms-transform: translate3d(0, $value, 0);\n transform: translate3d(0, $value, 0);\n}\n", + "@mixin bmd-tabs-color($color, $active-color, $active-border, $disabled-link-color, $disabled-link-hover-color) {\n .nav-link {\n color: $color;\n\n &.active {\n color: $active-color;\n border-color: $active-border;\n @include hover-focus {\n border-color: $active-border;\n }\n }\n\n // Disabled state lightens text and removes hover/tab effects\n &.disabled {\n color: $disabled-link-color;\n\n @include plain-hover-focus {\n color: $disabled-link-hover-color;\n }\n }\n }\n}\n\n@mixin set-wizard-color($color) {\n\n .moving-tab{\n background-color: $color;\n @include shadow-big-color($color);\n }\n\n .picture{\n &:hover{\n border-color: $color;\n }\n }\n\n .choice{\n &:hover,\n &.active{\n .icon{\n border-color: $color;\n color: $color;\n }\n }\n }\n\n\n .checkbox input[type=checkbox]:checked + .checkbox-material{\n .check{\n background-color: $color;\n }\n }\n\n .radio input[type=radio]:checked ~ .check {\n background-color: $color;\n }\n\n .radio input[type=radio]:checked ~ .circle {\n border-color: $color;\n }\n}\n", + "@mixin shadow-big(){\n box-shadow: 0 16px 38px -12px rgba(0, 0, 0, $bmd-shadow-penumbra-opacity * 4),\n 0 4px 25px 0px rgba(0, 0, 0, $bmd-shadow-ambient-opacity),\n 0 8px 10px -5px rgba(0, 0, 0, $bmd-shadow-umbra-opacity);\n}\n\n@mixin shadow-big-image(){\n // new box shadow optimized for Tables and Phones\n box-shadow: 0 5px 15px -8px rgba(0, 0, 0, $bmd-shadow-ambient-opacity * 2),\n 0 8px 10px -5px rgba(0, 0, 0, $bmd-shadow-umbra-opacity);\n}\n\n@mixin shadow-big-navbar(){\n box-shadow: 0 10px 20px -12px rgba(0, 0, 0, $bmd-shadow-penumbra-opacity * 3),\n 0 3px 20px 0px rgba(0, 0, 0, $bmd-shadow-ambient-opacity),\n 0 8px 10px -5px rgba(0, 0, 0, $bmd-shadow-umbra-opacity);\n}\n\n// @mixin shadow-big-color($color){\n// // new box shadow optimized for Tables and Phones\n// box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.2),\n// 0 13px 24px -11px rgba($color, 0.60);\n// }\n\n@mixin shadow-small-color($color){\n // new box shadow optimized for Tablets and Phones\n box-shadow: 0 4px 20px 0px rgba(0, 0, 0, .14),\n 0 7px 10px -5px rgba($color, 0.4)\n}\n\n@mixin shadow-navbar-color($color){\n // new box shadow optimized for Tablets and Phones\n\n @if($color == $white-color) {\n box-shadow: 0 4px 18px 0px rgba(0, 0, 0, .12),\n 0 7px 10px -5px rgba(0,0,0, 0.15);\n }@else{\n box-shadow: 0 4px 20px 0px rgba(0, 0, 0, .14),\n 0 7px 12px -5px rgba($color, 0.46);\n }\n}\n\n@mixin shadow-2dp(){\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, $bmd-shadow-penumbra-opacity),\n 0 3px 1px -2px rgba(0, 0, 0, $bmd-shadow-ambient-opacity),\n 0 1px 5px 0 rgba(0, 0, 0, $bmd-shadow-umbra-opacity);\n}\n\n@mixin shadow-4dp(){\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, $bmd-shadow-penumbra-opacity),\n 0 1px 10px 0 rgba(0, 0, 0, $bmd-shadow-ambient-opacity),\n 0 2px 4px -1px rgba(0, 0, 0, $bmd-shadow-umbra-opacity);\n}\n\n@mixin shadow-6dp(){\n box-shadow: 0 6px 10px 0 rgba(0, 0, 0, $bmd-shadow-penumbra-opacity),\n 0 1px 18px 0 rgba(0, 0, 0, $bmd-shadow-ambient-opacity),\n 0 3px 5px -1px rgba(0, 0, 0, $bmd-shadow-umbra-opacity);\n}\n\n@mixin shadow-8dp(){\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, $bmd-shadow-penumbra-opacity),\n 0 3px 14px 2px rgba(0, 0, 0, $bmd-shadow-ambient-opacity),\n 0 5px 5px -3px rgba(0, 0, 0, $bmd-shadow-umbra-opacity);\n}\n\n\n@mixin shadow-16dp(){\n box-shadow: 0 16px 24px 2px rgba(0, 0, 0, $bmd-shadow-penumbra-opacity),\n 0 6px 30px 5px rgba(0, 0, 0, $bmd-shadow-ambient-opacity),\n 0 8px 10px -5px rgba(0, 0, 0, $bmd-shadow-umbra-opacity);\n}\n\n@mixin shadow-2dp-color($color){\n box-shadow: 0 2px 2px 0 rgba($color, $bmd-shadow-penumbra-opacity),\n 0 3px 1px -2px rgba($color, $bmd-shadow-umbra-opacity),\n 0 1px 5px 0 rgba($color, $bmd-shadow-ambient-opacity);\n}\n\n@mixin shadow-4dp-color($color){\n box-shadow: 0 4px 5px 0 rgba($color, $bmd-shadow-penumbra-opacity),\n 0 1px 10px 0 rgba($color, $bmd-shadow-ambient-opacity),\n 0 2px 4px -1px rgba($color, $bmd-shadow-umbra-opacity);\n}\n\n@mixin shadow-8dp-color($color){\n box-shadow: 0 8px 10px 1px rgba($color, $bmd-shadow-penumbra-opacity),\n 0 3px 14px 2px rgba(0, 0, 0, $bmd-shadow-ambient-opacity),\n 0 5px 5px -3px rgba($color, $bmd-shadow-umbra-opacity);\n}\n\n@mixin shadow-16dp-color($color){\n box-shadow: 0 16px 24px 2px rgba($color, $bmd-shadow-penumbra-opacity),\n 0 6px 30px 5px rgba(0, 0, 0, $bmd-shadow-ambient-opacity),\n 0 8px 10px -5px rgba($color, $bmd-shadow-umbra-opacity);\n}\n\n@mixin button-shadow-color($color){\n box-shadow: 0 14px 26px -12px rgba($color, $bmd-shadow-penumbra-opacity * 3),\n 0 4px 23px 0px rgba(0,0,0, $bmd-shadow-ambient-opacity),\n 0 8px 10px -5px rgba($color, $bmd-shadow-umbra-opacity);\n}\n\n@mixin shadow-z-1(){\n box-shadow:\n 0 1px 6px 0 rgba(0, 0, 0, 0.12),\n 0 1px 6px 0 rgba(0, 0, 0, 0.12);\n}\n\n@mixin shadow-z-1-hover(){\n box-shadow:\n 0 5px 11px 0 rgba(0, 0, 0, 0.18),\n 0 4px 15px 0 rgba(0, 0, 0, 0.15);\n}\n\n@mixin shadow-z-2(){\n box-shadow:\n 0 8px 17px 0 rgba(0, 0, 0, 0.2),\n 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n}\n\n@mixin shadow-z-3(){\n box-shadow:\n 0 12px 15px 0 rgba(0, 0, 0, 0.24),\n 0 17px 50px 0 rgba(0, 0, 0, 0.19);\n}\n\n@mixin shadow-z-4(){\n box-shadow:\n 0 16px 28px 0 rgba(0, 0, 0, 0.22),\n 0 25px 55px 0 rgba(0, 0, 0, 0.21);\n}\n\n@mixin shadow-z-5(){\n box-shadow:\n 0 27px 24px 0 rgba(0, 0, 0, 0.2),\n 0 40px 77px 0 rgba(0, 0, 0, 0.22);\n}\n", + "@mixin navbar-colors($color, $link-color) {\n color: $link-color;\n background-color: $color !important;\n @include shadow-navbar-color($color);\n\n .dropdown-item:hover,\n .dropdown-item:focus{\n @include shadow-small-color($color);\n background-color: $color;\n color: $link-color;\n }\n\n .navbar-toggler{\n .navbar-toggler-icon{\n background-color: $link-color;\n }\n }\n}\n", + "// alert-variations(\"\", $brand-primary)\n@mixin alert-variations($component, $selector-suffix, $brand-default) {\n @include generic-variations($component, $selector-suffix, $brand-default, \"alert-variations-content\", null);\n}\n\n@mixin alert-variations-content($args){\n $variation-color: map-get($args, variation-color);\n $variation-color-text: map-get($args, variation-color-text);\n\n background-color: lighten($variation-color,3%);\n color: $variation-color-text;\n\n a, .alert-link {\n color: $variation-color-text;\n }\n}\n// interpolation of mixin-name is not allowed evidently, so we statically include based on the mixin-name given\n@mixin call-variations-content-mixin($args) {\n $mixin-name: map-get($args, mixin-name);\n @if $mixin-name == variations-content {\n @include variations-content($args);\n } @else if $mixin-name == background-variations-content {\n @include background-variations-content($args);\n } @else if $mixin-name == text-variations-content {\n @include text-variations-content($args);\n } @else if $mixin-name == button-variations-content {\n @include button-variations-content($args);\n } @else if $mixin-name == bg-color-variations-content {\n @include bg-color-variations-content($args);\n } @else if $mixin-name == bg-box-shadow-variations-content {\n @include bg-box-shadow-variations-content($args);\n } @else if $mixin-name == bg-img-variations-content {\n @include bg-img-variations-content($args);\n } @else if $mixin-name == navbar-variations-content {\n @include navbar-variations-content($args);\n }@else if $mixin-name == alert-variations-content {\n @include alert-variations-content($args);\n } @else {\n @error \"Unknown mixin: #{$mixin-name}\"\n }\n}\n\n//\n// To use this mixin you should pass a function as final parameter to define\n// the style. In that definition you can use the following variables to define it.\n//\n// $variation-color-name ---> \"red\", \"green\", \"indigo\" ...\n// $variation-color-full-name ---> \"red\", \"green-50\", \"indigo-400\" ...\n// $variation-color ---> #f44336, #e8f5e9, #5c6bc0 ...\n// $variation-color-text ---> rgba(255,255,255,0.84), rgba(0,0,0,0.84), rgba(255,255,255,0.84) ...\n//\n\n@mixin generic-variations($component, $selector-suffix, $color-default, $mixin-name, $mdb-param-1) {\n\n //setup map to pass parameters (instead of the incredibly long-error-prone list for each and every @include)\n $args: (\n //extra: $selector-suffix,\n //default: $color-default,\n mixin-name: $mixin-name,\n material-param-1: $mdb-param-1\n );\n\n // bootstrap styles\n &#{$selector-suffix},\n &#{$component}-default#{$selector-suffix} {\n\n $args-extra: map-merge($args, (\n variation-color: $white-color,\n variation-color-text: $gray\n ));\n @include call-variations-content-mixin($args-extra);\n }\n &#{$component}-inverse#{$selector-suffix} {\n $args-inverse: map-merge($args, (\n variation-color: #212121,\n variation-color-text: #fff\n ));\n @include call-variations-content-mixin($args-inverse);\n }\n &#{$component}-primary#{$selector-suffix} {\n $args-primary: map-merge($args, (\n variation-color: $brand-primary,\n variation-color-text: $mdb-text-color-light\n ));\n @include call-variations-content-mixin($args-primary);\n }\n &#{$component}-success#{$selector-suffix} {\n $args-success: map-merge($args, (\n variation-color: $brand-success,\n variation-color-text: $mdb-text-color-light\n ));\n @include call-variations-content-mixin($args-success);\n }\n &#{$component}-info#{$selector-suffix} {\n $args-info: map-merge($args, (\n variation-color: $brand-info,\n variation-color-text: $mdb-text-color-light\n ));\n @include call-variations-content-mixin($args-info);\n }\n &#{$component}-warning#{$selector-suffix} {\n $args-warning: map-merge($args, (\n variation-color: $brand-warning,\n variation-color-text: $mdb-text-color-light\n ));\n @include call-variations-content-mixin($args-warning);\n }\n &#{$component}-danger#{$selector-suffix} {\n $args-danger: map-merge($args, (\n variation-color: $brand-danger,\n variation-color-text: $mdb-text-color-light\n ));\n @include call-variations-content-mixin($args-danger);\n }\n\n &#{$component}-rose#{$selector-suffix} {\n $args-rose: map-merge($args, (\n variation-color: $brand-rose,\n variation-color-text: $mdb-text-color-light\n ));\n @include call-variations-content-mixin($args-rose);\n }\n\n}\n\n@mixin alert-icon-color($color) {\n i{\n color: $color;\n }\n}\n", + "@mixin sidebar-background-color($background-color, $font-color){\n .nav{\n .nav-item{\n .nav-link{\n color: $font-color;\n }\n i{\n color: rgba($font-color, .8);\n }\n\n &.active,\n &:hover{\n [data-toggle=\"collapse\"]{\n color: $font-color;\n i{\n color: rgba($font-color, .8);\n }\n }\n }\n }\n }\n .user{\n a{\n color: $font-color;\n }\n }\n .simple-text{\n color: $font-color;\n }\n .sidebar-background:after{\n background: $background-color;\n opacity: .8;\n }\n}\n\n@mixin sidebar-active-color($font-color){\n .nav{\n .nav-item{\n &.active > a:not([data-toggle=\"collapse\"]){\n color: $font-color;\n opacity: 1;\n @include shadow-big-color($font-color);\n\n i{\n color: rgba($font-color, .8);\n }\n }\n }\n }\n}\n\n@mixin set-background-color-button($color){\n\n li.active > a{\n background-color: $color;\n @include shadow-big-color($color);\n }\n}\n", + "//== Buttons\n//\n//## For each of Bootstrap's buttons, define text, background and border color.\n\n$opacity-gray-3: rgba(222,222,222, .3) !default;\n$opacity-gray-5: rgba(222,222,222, .5) !default;\n$opacity-gray-8: rgba(222,222,222, .8) !default;\n\n$opacity-5: rgba(255,255,255, .5) !default;\n$opacity-8: rgba(255,255,255, .8) !default;\n\n$opacity-1: rgba(255,255,255, .1) !default;\n$opacity-2: rgba(255,255,255, .2) !default;\n\n//== Components\n//\n\n$topbar-x: topbar-x !default;\n$topbar-back: topbar-back !default;\n$bottombar-x: bottombar-x !default;\n$bottombar-back: bottombar-back !default;\n\n// Sidebar variables\n$sidebar-width: calc(100% - 260px) !default;\n$sidebar-mini-width: calc(100% - 80px) !default;\n", + "// User select\n// For selecting text on the page\n\n@mixin user-select($select) {\n -webkit-user-select: $select;\n -moz-user-select: $select;\n -ms-user-select: $select; // IE10+\n user-select: $select;\n}\n\n@mixin box-shadow($shadow...) {\n -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1\n box-shadow: $shadow;\n}\n\n// Box sizing\n@mixin box-sizing($boxmodel) {\n -webkit-box-sizing: $boxmodel;\n -moz-box-sizing: $boxmodel;\n box-sizing: $boxmodel;\n}\n\n\n@mixin transition-all($time, $type){\n -webkit-transition: all $time $type;\n -moz-transition: all $time $type;\n -o-transition: all $time $type;\n -ms-transition: all $time $type;\n transition: all $time $type;\n}\n\n@mixin transform-scale($value){\n -webkit-transform: scale($value);\n -moz-transform: scale($value);\n -o-transform: scale($value);\n -ms-transform: scale($value);\n transform: scale($value);\n}\n\n@mixin transform-translate-x($value){\n -webkit-transform: translate3d($value, 0, 0);\n -moz-transform: translate3d($value, 0, 0);\n -o-transform: translate3d($value, 0, 0);\n -ms-transform: translate3d($value, 0, 0);\n transform: translate3d($value, 0, 0);\n}\n\n@mixin transform-translate-y($value){\n -webkit-transform: translate3d(0,$value,0);\n -moz-transform: translate3d(0,$value,0);\n -o-transform: translate3d(0,$value,0);\n -ms-transform: translate3d(0,$value,0);\n transform: translate3d(0,$value,0);\n}\n\n@mixin transform-origin($coordinates){\n -webkit-transform-origin: $coordinates;\n -moz-transform-origin: $coordinates;\n -o-transform-origin: $coordinates;\n -ms-transform-origin: $coordinates;\n transform-origin: $coordinates;\n}\n\n@mixin radial-gradient($extern-color, $center-color){\n background: $extern-color;\n background: -moz-radial-gradient(center, ellipse cover, $center-color 0%, $extern-color 100%); /* FF3.6+ */\n background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,$center-color), color-stop(100%,$extern-color)); /* Chrome,Safari4+ */\n background: -webkit-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Chrome10+,Safari5.1+ */\n background: -o-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Opera 12+ */\n background: -ms-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* IE10+ */\n background: radial-gradient(ellipse at center, $center-color 0%,$extern-color 100%); /* W3C */\n background-size: 550% 450%;\n}\n\n@mixin vertical-align {\n position: relative;\n top: 50%;\n -webkit-transform: translateY(-50%);\n -ms-transform: translateY(-50%);\n transform: translateY(-50%);\n}\n\n@mixin rotate-180(){\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n@mixin bar-animation($type){\n -webkit-animation: $type 500ms linear 0s;\n -moz-animation: $type 500ms linear 0s;\n animation: $type 500ms 0s;\n -webkit-animation-fill-mode: forwards;\n -moz-animation-fill-mode: forwards;\n animation-fill-mode: forwards;\n}\n\n@mixin topbar-x-rotation(){\n @keyframes topbar-x {\n 0% {top: 0px; transform: rotate(0deg); }\n 45% {top: 6px; transform: rotate(145deg); }\n 75% {transform: rotate(130deg); }\n 100% {transform: rotate(135deg); }\n }\n @-webkit-keyframes topbar-x {\n 0% {top: 0px; -webkit-transform: rotate(0deg); }\n 45% {top: 6px; -webkit-transform: rotate(145deg); }\n 75% {-webkit-transform: rotate(130deg); }\n 100% { -webkit-transform: rotate(135deg); }\n }\n @-moz-keyframes topbar-x {\n 0% {top: 0px; -moz-transform: rotate(0deg); }\n 45% {top: 6px; -moz-transform: rotate(145deg); }\n 75% {-moz-transform: rotate(130deg); }\n 100% { -moz-transform: rotate(135deg); }\n }\n}\n\n@mixin topbar-back-rotation(){\n @keyframes topbar-back {\n 0% { top: 6px; transform: rotate(135deg); }\n 45% { transform: rotate(-10deg); }\n 75% { transform: rotate(5deg); }\n 100% { top: 0px; transform: rotate(0); }\n }\n\n @-webkit-keyframes topbar-back {\n 0% { top: 6px; -webkit-transform: rotate(135deg); }\n 45% { -webkit-transform: rotate(-10deg); }\n 75% { -webkit-transform: rotate(5deg); }\n 100% { top: 0px; -webkit-transform: rotate(0); }\n }\n\n @-moz-keyframes topbar-back {\n 0% { top: 6px; -moz-transform: rotate(135deg); }\n 45% { -moz-transform: rotate(-10deg); }\n 75% { -moz-transform: rotate(5deg); }\n 100% { top: 0px; -moz-transform: rotate(0); }\n }\n}\n\n@mixin bottombar-x-rotation(){\n @keyframes bottombar-x {\n 0% {bottom: 0px; transform: rotate(0deg);}\n 45% {bottom: 6px; transform: rotate(-145deg);}\n 75% {transform: rotate(-130deg);}\n 100% {transform: rotate(-135deg);}\n }\n @-webkit-keyframes bottombar-x {\n 0% {bottom: 0px; -webkit-transform: rotate(0deg);}\n 45% {bottom: 6px; -webkit-transform: rotate(-145deg);}\n 75% {-webkit-transform: rotate(-130deg);}\n 100% {-webkit-transform: rotate(-135deg);}\n }\n @-moz-keyframes bottombar-x {\n 0% {bottom: 0px; -moz-transform: rotate(0deg);}\n 45% {bottom: 6px; -moz-transform: rotate(-145deg);}\n 75% {-moz-transform: rotate(-130deg);}\n 100% {-moz-transform: rotate(-135deg);}\n }\n}\n\n@mixin bottombar-back-rotation{\n @keyframes bottombar-back {\n 0% { bottom: 6px;transform: rotate(-135deg);}\n 45% { transform: rotate(10deg);}\n 75% { transform: rotate(-5deg);}\n 100% { bottom: 0px;transform: rotate(0);}\n }\n @-webkit-keyframes bottombar-back {\n 0% {bottom: 6px;-webkit-transform: rotate(-135deg);}\n 45% {-webkit-transform: rotate(10deg);}\n 75% {-webkit-transform: rotate(-5deg);}\n 100% {bottom: 0px;-webkit-transform: rotate(0);}\n }\n @-moz-keyframes bottombar-back {\n 0% {bottom: 6px;-moz-transform: rotate(-135deg);}\n 45% {-moz-transform: rotate(10deg);}\n 75% {-moz-transform: rotate(-5deg);}\n 100% {bottom: 0px;-moz-transform: rotate(0);}\n }\n\n}\n\n@mixin timeline-badge-color($color) {\n background-color: $color;\n @include shadow-big-color($color);\n}\n\n\n@mixin lock-page-input-color($color) {\n &.lock-page{\n .form-group{\n .form-control{\n background-image: linear-gradient($color, $color), linear-gradient($mdb-input-underline-color, $mdb-input-underline-color);\n }\n }\n\n }\n}\n", + "// FIXME: only necessary because there isn't an underscored file - see https://github.com/twbs/bootstrap/issues/18350\n//@import \"../bower_components/bootstrap/scss/\n//@import \"../../bootstrap/scss/\n\n// Core variables and mixins\n@import \"./bootstrap/scss/functions\";\n@import \"./bootstrap/scss/variables\";\n@import \"./bootstrap/scss/mixins\";\n\n// #853 start - https://github.com/twbs/bootstrap/pull/18976/files\n// hack\n@mixin pull-left {\n float: left !important;\n @if $enable-flex {\n margin-right: auto;\n }\n}\n@mixin pull-right {\n float: right !important;\n @if $enable-flex {\n margin-left: auto;\n }\n}\n// #853 end - https://github.com/twbs/bootstrap/pull/18976/files\n\n// Reset and dependencies\n@import \"./bootstrap/scss/reboot\";\n@import \"./bootstrap/scss/print\";\n\n// Core CSS\n@import \"./bootstrap/scss/reboot\";\n@import \"./bootstrap/scss/type\";\n@import \"./bootstrap/scss/images\";\n@import \"./bootstrap/scss/code\";\n@import \"./bootstrap/scss/grid\";\n@import \"./bootstrap/scss/tables\";\n@import \"./bootstrap/scss/forms\";\n@import \"./bootstrap/scss/buttons\";\n@import \"./bootstrap/scss/transitions\";\n\n// Components\n@import \"./bootstrap/scss/dropdown\";\n@import \"./bootstrap/scss/button-group\";\n@import \"./bootstrap/scss/input-group\";\n@import \"./bootstrap/scss/custom-forms\";\n@import \"./bootstrap/scss/nav\";\n@import \"./bootstrap/scss/navbar\";\n@import \"./bootstrap/scss/card\";\n@import \"./bootstrap/scss/breadcrumb\";\n@import \"./bootstrap/scss/pagination\";\n@import \"./bootstrap/scss/jumbotron\";\n@import \"./bootstrap/scss/alert\";\n@import \"./bootstrap/scss/progress\";\n@import \"./bootstrap/scss/media\";\n@import \"./bootstrap/scss/list-group\";\n@import \"./bootstrap/scss/close\";\n@import \"./bootstrap/scss/badge\";\n\n// Components w/ JavaScript\n@import \"./bootstrap/scss/modal\";\n@import \"./bootstrap/scss/tooltip\";\n@import \"./bootstrap/scss/popover\";\n@import \"./bootstrap/scss/carousel\";\n\n// Utility classes\n@import \"./bootstrap/scss/utilities\";\n", + "// Bootstrap functions\n//\n// Utility mixins and functions for evalutating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map) {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}.\";\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $yiq-text-dark;\n } @else {\n @return $yiq-text-light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, #000, #fff);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n", + "// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n\n//\n// Color system\n//\n\n// stylelint-disable\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge((\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n), $grays);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge((\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n), $colors);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge((\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n), $theme-colors);\n// stylelint-enable\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-print-styles: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// stylelint-disable\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge((\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n), $spacers);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge((\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%\n), $sizes);\n// stylelint-enable\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: ($font-size-base * 1.25) !default;\n$font-size-sm: ($font-size-base * .875) !default;\n\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: ($spacer / 2) !default;\n$headings-font-family: inherit !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: ($font-size-base * 1.25) !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-font-size: ($font-size-base * 1.25) !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-bg: transparent !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $gray-300 !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-bg: $gray-900 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($gray-900, 7.5%) !default;\n$table-dark-color: $body-bg !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg: ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-control-gutter: 1.5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $gray-300 !default;\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-control-indicator-disabled-bg: $gray-200 !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n\n$custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-select-padding-y: .375rem !default;\n$custom-select-padding-x: .75rem !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-line-height: $input-btn-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $white !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-select-border-width: $input-btn-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;\n\n$custom-select-font-size-sm: 75% !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-font-size-lg: 125% !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$custom-file-padding-y: $input-btn-padding-y !default;\n$custom-file-padding-x: $input-btn-padding-x !default;\n$custom-file-line-height: $input-btn-line-height !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-btn-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n// Navbar\n\n$navbar-padding-y: ($spacer / 2) !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: ($grid-gutter-width / 2) !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $gray-200 !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding: 1rem !default;\n\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: ($font-size-base * .75) !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n// List group\n\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: \"/\" !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$carousel-transition: transform .6s ease !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Printing\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n", + "// Toggles\n//\n// Used in conjunction with global variables to enable certain theme features.\n\n// Utilities\n@import \"mixins/breakpoints\";\n@import \"mixins/hover\";\n@import \"mixins/image\";\n@import \"mixins/badge\";\n@import \"mixins/resize\";\n@import \"mixins/screen-reader\";\n@import \"mixins/size\";\n@import \"mixins/reset-text\";\n@import \"mixins/text-emphasis\";\n@import \"mixins/text-hide\";\n@import \"mixins/text-truncate\";\n@import \"mixins/visibility\";\n\n// // Components\n@import \"mixins/alert\";\n@import \"mixins/buttons\";\n@import \"mixins/caret\";\n@import \"mixins/pagination\";\n@import \"mixins/lists\";\n@import \"mixins/list-group\";\n@import \"mixins/nav-divider\";\n@import \"mixins/forms\";\n@import \"mixins/table-row\";\n\n// // Skins\n@import \"mixins/background-variant\";\n@import \"mixins/border-radius\";\n@import \"mixins/box-shadow\";\n@import \"mixins/gradients\";\n@import \"mixins/transition\";\n\n// // Layout\n@import \"mixins/clearfix\";\n// @import \"mixins/navbar-align\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n@import \"mixins/float\";\n", + "// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n", + "// stylelint-disable indentation\n\n// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Origally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS—an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular psuedo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n", + "// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n// stylelint-disable indentation, media-query-list-comma-newline-after\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n}\n", + "@mixin badge-variant($bg) {\n color: color-yiq($bg);\n background-color: $bg;\n\n &[href] {\n @include hover-focus {\n color: color-yiq($bg);\n text-decoration: none;\n background-color: darken($bg, 10%);\n }\n }\n}\n", + "// Resize anything\n\n@mixin resizable($direction) {\n overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`\n resize: $direction; // Options: horizontal, vertical, both\n}\n", + "// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n clip-path: inset(50%);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n clip-path: none;\n }\n}\n", + "// Sizing shortcuts\n\n@mixin size($width, $height: $width) {\n width: $width;\n height: $height;\n}\n", + "@mixin reset-text {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start; // stylelint-disable-line declaration-block-no-duplicate-properties\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n", + "// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color) {\n #{$parent} {\n color: $color !important;\n }\n a#{$parent} {\n @include hover-focus {\n color: darken($color, 10%) !important;\n }\n }\n}\n", + "// CSS image replacement\n@mixin text-hide() {\n // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n", + "// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n", + "// stylelint-disable declaration-no-important\n\n// Visibility\n\n@mixin invisible($visibility) {\n visibility: $visibility !important;\n}\n", + "@mixin alert-variant($background, $border, $color) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n\n hr {\n border-top-color: darken($border, 5%);\n }\n\n .alert-link {\n color: darken($color, 10%);\n }\n}\n", + "// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n color: color-yiq($background);\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n @include hover {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n &:focus,\n &.focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n color: color-yiq($background);\n background-color: $background;\n border-color: $border;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n @if $enable-gradients {\n background-image: none; // Remove the gradient for the pressed/active state\n }\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);\n }\n }\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n color: $color;\n background-color: transparent;\n background-image: none;\n border-color: $color;\n\n &:hover {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n font-size: $font-size;\n line-height: $line-height;\n // Manually declare to provide an override to the browser default\n @if $enable-rounded {\n border-radius: $border-radius;\n } @else {\n border-radius: 0;\n }\n}\n", + "@mixin caret-down {\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-bottom: 0;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up {\n border-top: 0;\n border-right: $caret-width solid transparent;\n border-bottom: $caret-width solid;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right {\n border-top: $caret-width solid transparent;\n border-bottom: $caret-width solid transparent;\n border-left: $caret-width solid;\n}\n\n@mixin caret-left {\n border-top: $caret-width solid transparent;\n border-right: $caret-width solid;\n border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n @if $enable-caret {\n &::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: $caret-width * .85;\n vertical-align: $caret-width * .85;\n content: \"\";\n @if $direction == down {\n @include caret-down;\n } @else if $direction == up {\n @include caret-up;\n } @else if $direction == right {\n @include caret-right;\n }\n }\n\n @if $direction == left {\n &::after {\n display: none;\n }\n\n &::before {\n display: inline-block;\n width: 0;\n height: 0;\n margin-right: $caret-width * .85;\n vertical-align: $caret-width * .85;\n content: \"\";\n @include caret-left;\n }\n }\n\n &:empty::after {\n margin-left: 0;\n }\n }\n}\n", + "// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n .page-link {\n padding: $padding-y $padding-x;\n font-size: $font-size;\n line-height: $line-height;\n }\n\n .page-item {\n &:first-child {\n .page-link {\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n }\n}\n", + "// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n", + "// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n @include hover-focus {\n color: $color;\n background-color: darken($background, 5%);\n }\n\n &.active {\n color: #fff;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n", + "// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: #e5e5e5) {\n height: 0;\n margin: ($spacer / 2) 0;\n overflow: hidden;\n border-top: 1px solid $color;\n}\n", + "// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus() {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $input-focus-box-shadow;\n }\n }\n}\n\n\n@mixin form-validation-state($state, $color) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n font-size: $form-feedback-font-size;\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba($color, .8);\n border-radius: .2rem;\n }\n\n .form-control,\n .custom-select {\n .was-validated &:#{$state},\n &.is-#{$state} {\n border-color: $color;\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .form-check-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n background-color: lighten($color, 25%);\n }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:checked {\n ~ .custom-control-label::before {\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-file-label {\n border-color: $color;\n\n &::before { border-color: inherit; }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:focus {\n ~ .custom-file-label {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n", + "// Tables\n\n@mixin table-row-variant($state, $background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n", + "// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color) {\n #{$parent} {\n background-color: $color !important;\n }\n a#{$parent},\n button#{$parent} {\n @include hover-focus {\n background-color: darken($color, 10%) !important;\n }\n }\n}\n\n@mixin bg-gradient-variant($parent, $color) {\n #{$parent} {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n }\n}\n", + "// Single side border-radius\n\n@mixin border-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n", + "@mixin box-shadow($shadow...) {\n @if $enable-shadows {\n box-shadow: $shadow;\n }\n}\n", + "// Gradients\n\n@mixin gradient-bg($color) {\n @if $enable-gradients {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n } @else {\n background-color: $color;\n }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: #555, $outer-color: #333) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n", + "@mixin transition($transition...) {\n @if $enable-transitions {\n @if length($transition) == 0 {\n transition: $transition-base;\n } @else {\n transition: $transition;\n }\n }\n}\n", + "@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n", + "// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n min-height: 1px; // Prevent columns from collapsing when empty\n padding-right: ($gutter / 2);\n padding-left: ($gutter / 2);\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n", + "/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n width: 100%;\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row() {\n display: flex;\n flex-wrap: wrap;\n margin-right: ($grid-gutter-width / -2);\n margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n min-height: 1px; // Prevent collapsing\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n", + "// stylelint-disable declaration-no-important\n\n@mixin float-left {\n float: left !important;\n}\n@mixin float-right {\n float: right !important;\n}\n@mixin float-none {\n float: none !important;\n}\n", + "// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n// we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -ms-text-size-adjust: 100%; // 4\n -ms-overflow-style: scrollbar; // 5\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); // 6\n}\n\n// IE10+ doesn't honor `` in some cases.\n@at-root {\n @-ms-viewport {\n width: device-width;\n }\n}\n\n// stylelint-disable selector-list-comma-newline-after\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use the\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n font-size: $font-size-base;\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 1\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic; // Add the correct font style in Android 4.3-\n}\n\n// stylelint-disable font-weight-notation\nb,\nstrong {\n font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n// stylelint-enable font-weight-notation\n\nsmall {\n font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\n// stylelint-disable font-family-no-duplicate-names\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n// stylelint-enable font-family-no-duplicate-names\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so\n // we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n overflow: hidden; // Hide the overflow in IE\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $text-muted;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: .5rem;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `

`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n", + "// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// http://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n @media print {\n *,\n *::before,\n *::after {\n // Bootstrap specific; comment out `color` and `background`\n //color: #000 !important; // Black prints faster: http://www.sanbeiji.com/archives/953\n text-shadow: none !important;\n //background: transparent !important;\n box-shadow: none !important;\n }\n\n a {\n &:not(.btn) {\n text-decoration: underline;\n }\n }\n\n // Bootstrap specific; comment the following selector out\n //a[href]::after {\n // content: \" (\" attr(href) \")\";\n //}\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n // Bootstrap specific; comment the following selector out\n //\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n //\n\n //a[href^=\"#\"]::after,\n //a[href^=\"javascript:\"]::after {\n // content: \"\";\n //}\n\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: $border-width solid #999; // Bootstrap custom code; using `$border-width` instead of 1px\n page-break-inside: avoid;\n }\n\n //\n // Printing Tables:\n // http://css-discuss.incutio.com/wiki/Printing_Tables\n //\n\n thead {\n display: table-header-group;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Specify a size and min-width to make printing closer across browsers.\n // We don't set margin here because it breaks `size` in Chrome. We also\n // don't use `!important` on `size` as it breaks in Chrome.\n @page {\n size: $print-page-size;\n }\n body {\n min-width: $print-body-min-width !important;\n }\n .container {\n min-width: $print-body-min-width !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .badge {\n border: $border-width solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n }\n}\n", + "// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n// we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -ms-text-size-adjust: 100%; // 4\n -ms-overflow-style: scrollbar; // 5\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); // 6\n}\n\n// IE10+ doesn't honor `` in some cases.\n@at-root {\n @-ms-viewport {\n width: device-width;\n }\n}\n\n// stylelint-disable selector-list-comma-newline-after\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use the\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n font-size: $font-size-base;\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 1\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic; // Add the correct font style in Android 4.3-\n}\n\n// stylelint-disable font-weight-notation\nb,\nstrong {\n font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n// stylelint-enable font-weight-notation\n\nsmall {\n font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\n// stylelint-disable font-family-no-duplicate-names\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n// stylelint-enable font-family-no-duplicate-names\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so\n // we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n overflow: hidden; // Hide the overflow in IE\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $text-muted;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: .5rem;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `

`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n", + "// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { font-size: $h1-font-size; }\nh2, .h2 { font-size: $h2-font-size; }\nh3, .h3 { font-size: $h3-font-size; }\nh4, .h4 { font-size: $h4-font-size; }\nh5, .h5 { font-size: $h5-font-size; }\nh6, .h6 { font-size: $h6-font-size; }\n\n.lead {\n font-size: $lead-font-size;\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n font-size: $display1-size;\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n font-size: $display2-size;\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n font-size: $display3-size;\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n font-size: $display4-size;\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n font-size: $small-font-size;\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled;\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n font-size: $blockquote-font-size;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%; // back to default font-size\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014 \\00A0\"; // em dash, nbsp\n }\n}\n", + "// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all ``s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid;\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid;\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: ($spacer / 2);\n line-height: 1;\n}\n\n.figure-caption {\n font-size: $figure-caption-font-size;\n color: $figure-caption-color;\n}\n", + "// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: $font-family-monospace;\n}\n\n// Inline code\ncode {\n font-size: $code-font-size;\n color: $code-color;\n word-break: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n font-size: $kbd-font-size;\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n font-size: $code-font-size;\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n", + "// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n", + "//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: $spacer;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n\n .table {\n background-color: $body-bg;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: (2 * $table-border-width);\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover {\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, -9));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover {\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n", + "// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n padding: $input-padding-y $input-padding-x;\n font-size: $font-size-base;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on `s in CSS.\n @if $enable-rounded {\n // Manually use the if/else instead of the mixin to account for iOS override\n border-radius: $input-border-radius;\n } @else {\n // Otherwise undo the iOS default\n border-radius: 0;\n }\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on ` receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: calc(#{$input-padding-y} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});\n margin-bottom: 0; // Override the `