From 10fe786380308e16d9c4413b0e4596aa55da5b3c Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Mon, 14 Sep 2020 15:15:29 -0700 Subject: [PATCH] Initial configuration of hugo and docsy --- .gitignore | 2 + .gitmodules | 3 + FAQ.md => OLD/FAQ.md | 100 +- .../best-practices}/security/README.md | 0 .../best-practices}/troubleshooting/README.md | 0 .../troubleshooting/common_issues.md | 0 .../best-practices}/troubleshooting/logs.md | 0 .../troubleshooting/profiling_debugging.md | 0 .../troubleshooting/tracing.md | 0 {howto => OLD/howto}/README.md | 0 .../howto}/authorization-with-oauth/README.md | 374 +- .../howto}/autoscale-with-keda/README.md | 0 .../howto}/components-scopes/README.md | 0 {howto => OLD/howto}/configure-k8s/README.md | 0 {howto => OLD/howto}/configure-mtls/README.md | 0 .../howto}/configure-redis/README.md | 0 {howto => OLD/howto}/consume-topic/README.md | 0 .../howto}/control-concurrency/README.md | 0 .../howto}/create-grpc-app/README.md | 0 .../howto}/create-stateful-service/README.md | 0 .../howto}/deploy-k8s-prod/README.md | 0 .../diagnose-with-tracing/azure-monitor.md | 376 +- .../localforwarder/appinsight-tracing.yaml | 0 .../localforwarder/dapr-localforwarder.yaml | 0 .../howto}/diagnose-with-tracing/zipkin.md | 0 .../README.md | 0 {howto => OLD/howto}/get-secrets/README.md | 0 .../howto}/intellij-debugging-daprd/README.md | 0 .../invoke-and-discover-services/README.md | 0 {howto => OLD/howto}/publish-topic/README.md | 0 .../howto}/pubsub-namespaces/README.md | 210 +- {howto => OLD/howto}/pubsub-scopes/README.md | 266 +- .../query-state-store/query-cosmosdb-store.md | 106 +- .../query-state-store/query-redis-store.md | 120 +- .../query-sqlserver-store.md | 118 +- .../howto}/run-with-docker/README.md | 0 .../howto}/self-hosted-no-docker/README.md | 0 .../README.md | 0 {howto => OLD/howto}/serialize/README.md | 290 +- .../azm-config-map.yaml | 0 .../fluentd-config-map.yaml | 0 .../fluentd-dapr-with-rbac.yaml | 0 .../img/grafana-add-datasources.png | Bin .../img/grafana-datasources.png | Bin .../grafana-prometheus-dapr-server-url.png | Bin .../img/grafana-uploadjson.png | Bin .../setup-monitoring-tools/img/kibana-1.png | Bin .../setup-monitoring-tools/img/kibana-2.png | Bin .../setup-monitoring-tools/img/kibana-3.png | Bin .../setup-monitoring-tools/img/kibana-4.png | Bin .../setup-monitoring-tools/img/kibana-5.png | Bin .../setup-monitoring-tools/img/kibana-6.png | Bin .../setup-monitoring-tools/img/kibana-7.png | Bin .../observe-metrics-with-grafana.md | 0 ...observe-metrics-with-prometheus-locally.md | 0 .../setup-azure-monitor.md | 0 .../setup-fluentd-es-kibana.md | 0 .../setup-prometheus-grafana.md | 0 .../setup-pub-sub-message-broker/README.md | 0 .../setup-azure-eventhubs.md | 0 .../setup-azure-servicebus.md | 0 .../setup-pub-sub-message-broker/setup-gcp.md | 0 .../setup-hazelcast.md | 0 .../setup-kafka.md | 0 .../setup-mqtt.md | 0 .../setup-nats.md | 0 .../setup-pulsar.md | 0 .../setup-rabbitmq.md | 0 .../setup-redis.md | 0 .../setup-snssqs.md | 0 .../howto}/setup-secret-store/README.md | 0 .../setup-secret-store/aws-secret-manager.md | 0 .../azure-keyvault-managed-identity.md | 0 .../setup-secret-store/azure-keyvault.md | 0 .../setup-secret-store/envvar-secret-store.md | 0 .../setup-secret-store/file-secret-store.md | 0 .../setup-secret-store/gcp-secret-manager.md | 0 .../setup-secret-store/hashicorp-vault.md | 0 .../howto}/setup-secret-store/kubernetes.md | 0 .../howto}/setup-state-store/README.md | 0 .../setup-state-store/setup-aerospike.md | 0 .../setup-azure-blobstorage.md | 0 .../setup-state-store/setup-azure-cosmosdb.md | 0 .../setup-azure-tablestorage.md | 0 .../setup-state-store/setup-cassandra.md | 0 .../setup-state-store/setup-cloudstate.md | 0 .../howto}/setup-state-store/setup-consul.md | 0 .../setup-state-store/setup-couchbase.md | 0 .../howto}/setup-state-store/setup-etcd.md | 0 .../setup-state-store/setup-firestore.md | 0 .../setup-state-store/setup-hazelcast.md | 0 .../setup-state-store/setup-memcached.md | 0 .../howto}/setup-state-store/setup-mongodb.md | 0 .../setup-state-store/setup-postgresql.md | 0 .../howto}/setup-state-store/setup-redis.md | 0 .../setup-state-store/setup-sqlserver.md | 0 .../setup-state-store/setup-zookeeper.md | 0 .../supported-state-stores.md | 0 .../stateful-replicated-service/README.md | 0 .../trigger-app-with-input-binding/README.md | 0 .../howto}/use-w3c-tracecontext/README.md | 0 .../howto}/vscode-debugging-daprd/README.md | 0 .../howto}/vscode-remote-containers/README.md | 0 {howto => OLD/howto}/windows-k8s/README.md | 0 {images => OLD/images}/actor_game_example.png | Bin {images => OLD/images}/actor_pattern.png | Bin {images => OLD/images}/actors_client.png | Bin .../images}/actors_communication.png | Bin {images => OLD/images}/actors_concurrency.png | Bin .../images}/actors_id_hashing_calling.png | Bin .../actors_placement_service_registration.png | Bin {images => OLD/images}/actors_server.png | Bin {images => OLD/images}/alloc.png | Bin {images => OLD/images}/azure-monitor.png | Bin {images => OLD/images}/building_blocks.png | Bin .../images}/concepts-building-blocks.png | Bin {images => OLD/images}/dynamic_range.png | Bin {images => OLD/images}/heap.png | Bin {images => OLD/images}/intellij_debug_app.png | Bin .../images}/intellij_debug_menu.png | Bin .../intellij_edit_run_configuration.png | Bin .../images}/intellij_start_dapr.png | Bin {images => OLD/images}/middleware.png | Bin .../images}/overview-sidecar-kubernetes.png | Bin {images => OLD/images}/overview-sidecar.png | Bin {images => OLD/images}/overview.png | Bin .../images}/overview_kubernetes.png | Bin .../images}/overview_standalone.png | Bin .../images}/programming_experience.png | Bin {images => OLD/images}/sample_trace.png | Bin .../images}/secrets_azure_aks_keyvault.png | Bin .../images}/secrets_cloud_stores.png | Bin .../images}/secrets_kubernetes_store.png | Bin .../security-mTLS-dapr-system-services.png | Bin .../security-mTLS-sentry-kubernetes.png | Bin .../security-mTLS-sentry-selfhosted.png | Bin {images => OLD/images}/service-invocation.png | Bin {images => OLD/images}/state_management.png | Bin {images => OLD/images}/threat_model.png | Bin {images => OLD/images}/tracing.png | Bin .../images}/vscode_remote_containers.png | Bin {images => OLD/images}/zipkin_ui.png | Bin {overview => OLD/overview}/README.md | 0 .../Dapr Presentation Deck.pptx | Bin .../2019IgniteCloudNativeApps.pdf | Bin .../2020ReadyCloudNativeApps.pdf | Bin .../presentations}/README.md | 0 {walkthroughs => OLD/walkthroughs}/daprrun.md | 0 concepts/README.md | 73 - concepts/architecture/README.md | 3 - concepts/architecture/building_blocks.md | 15 - contributing/howto-template.md | 82 - daprdocs/archetypes/default.md | 6 + daprdocs/assets/icons/logo.png | Bin 0 -> 5356 bytes daprdocs/assets/icons/logo.svg | 15 + daprdocs/assets/scss/_nav.scss | 102 + daprdocs/assets/scss/_variables_project.scss | 12 + daprdocs/config.toml | 11 + README.md => daprdocs/content/en/_index.md | 9 + daprdocs/content/en/docs/_index.md | 0 .../content/en/docs/building-blocks/_index.md | 25 + .../en/docs/building-blocks/actors/_index.md | 8 + .../actors/actors_background.md | 8 + .../docs/building-blocks/bindings/_index.md | 8 + .../observability/W3C-traces.md | 6 + .../building-blocks/observability/_index.md | 8 + .../building-blocks}/observability/health.md | 6 + .../building-blocks}/observability/logs.md | 6 + .../building-blocks}/observability/metrics.md | 6 + .../building-blocks}/observability/traces.md | 6 + .../en/docs/building-blocks/pubsub/_index.md | 6 + .../en/docs/building-blocks/secrets/_index.md | 6 + .../secrets/component-secrets.md | 6 + .../service-invocation/_index.md | 6 + .../state-management/_index.md | 6 + daprdocs/content/en/docs/concepts/_index.md | 5 + .../en/docs/concepts/components/_index.md | 31 + .../en/docs/concepts/configuration/_index.md | 286 +- .../en/docs/concepts/middleware/_index.md | 6 + .../en/docs/concepts/security/_index.md | 8 + .../security/audits/DAP-01-report.pdf | Bin .../content/en/docs/contributing/_index.md | 8 + .../content/en/docs/getting-started/_index.md | 8 + .../en/docs/getting-started/cluster/_index.md | 8 + .../getting-started}/cluster/setup-aks.md | 7 + .../cluster/setup-minikube.md | 7 + .../getting-started}/environment-setup.md | 8 + .../content/en/docs/hosting/_index.md | 6 + .../content/en/docs/reference/_index.md | 6 + .../content/en/docs/reference}/api/README.md | 0 .../en/docs/reference}/api/actors_api.md | 0 .../en/docs/reference}/api/bindings_api.md | 0 .../en/docs/reference}/api/error_codes.md | 0 .../en/docs/reference}/api/health_api.md | 0 .../en/docs/reference}/api/pubsub_api.md | 0 .../en/docs/reference}/api/secrets_api.md | 0 .../reference}/api/service_invocation_api.md | 0 .../en/docs/reference}/api/state_api.md | 0 .../en/docs/reference}/dashboard/README.md | 0 .../dashboard/grafana/actor-dashboard.json | 0 .../dashboard/grafana/sidecar-dashboard.json | 0 .../grafana/system-services-dashboard.json | 3074 ++-- .../dashboard/img/actor-dashboard.png | Bin .../dashboard/img/sidecar-dashboard.png | Bin .../img/system-service-dashboard.png | Bin .../docs/reference}/specs/bindings/README.md | 0 .../reference}/specs/bindings/blobstorage.md | 0 .../reference}/specs/bindings/cosmosdb.md | 0 .../en/docs/reference}/specs/bindings/cron.md | 0 .../reference}/specs/bindings/dynamodb.md | 0 .../reference}/specs/bindings/eventgrid.md | 0 .../reference}/specs/bindings/eventhubs.md | 0 .../reference}/specs/bindings/gcpbucket.md | 0 .../reference}/specs/bindings/gcppubsub.md | 0 .../en/docs/reference}/specs/bindings/http.md | 0 .../reference}/specs/bindings/influxdb.md | 0 .../docs/reference}/specs/bindings/kafka.md | 0 .../docs/reference}/specs/bindings/kinesis.md | 0 .../reference}/specs/bindings/kubernetes.md | 0 .../en/docs/reference}/specs/bindings/mqtt.md | 0 .../reference}/specs/bindings/rabbitmq.md | 0 .../docs/reference}/specs/bindings/redis.md | 0 .../en/docs/reference}/specs/bindings/s3.md | 0 .../reference}/specs/bindings/sendgrid.md | 0 .../specs/bindings/servicebusqueues.md | 0 .../docs/reference}/specs/bindings/signalr.md | 0 .../en/docs/reference}/specs/bindings/sns.md | 0 .../en/docs/reference}/specs/bindings/sqs.md | 0 .../specs/bindings/storagequeues.md | 0 .../docs/reference}/specs/bindings/twilio.md | 0 .../docs/reference}/specs/bindings/twitter.md | 0 daprdocs/layouts/partials/navbar.html | 33 + daprdocs/layouts/partials/section-index.html | 31 + daprdocs/layouts/partials/toc.html | 10 + ...s_9fadf33d895a46083cdd64396b57ef68.content | 13862 +++++++++++++++ ...scss_9fadf33d895a46083cdd64396b57ef68.json | 1 + ...s_9fadf33d895a46083cdd64396b57ef68.content | 13866 ++++++++++++++++ ...scss_9fadf33d895a46083cdd64396b57ef68.json | 1 + daprdocs/static/favicons/favicon.ico | Bin 0 -> 1150 bytes 239 files changed, 30852 insertions(+), 2830 deletions(-) create mode 100644 .gitmodules rename FAQ.md => OLD/FAQ.md (99%) rename {best-practices => OLD/best-practices}/security/README.md (100%) rename {best-practices => OLD/best-practices}/troubleshooting/README.md (100%) rename {best-practices => OLD/best-practices}/troubleshooting/common_issues.md (100%) rename {best-practices => OLD/best-practices}/troubleshooting/logs.md (100%) rename {best-practices => OLD/best-practices}/troubleshooting/profiling_debugging.md (100%) rename {best-practices => OLD/best-practices}/troubleshooting/tracing.md (100%) rename {howto => OLD/howto}/README.md (100%) rename {howto => OLD/howto}/authorization-with-oauth/README.md (97%) rename {howto => OLD/howto}/autoscale-with-keda/README.md (100%) rename {howto => OLD/howto}/components-scopes/README.md (100%) rename {howto => OLD/howto}/configure-k8s/README.md (100%) rename {howto => OLD/howto}/configure-mtls/README.md (100%) rename {howto => OLD/howto}/configure-redis/README.md (100%) rename {howto => OLD/howto}/consume-topic/README.md (100%) rename {howto => OLD/howto}/control-concurrency/README.md (100%) rename {howto => OLD/howto}/create-grpc-app/README.md (100%) rename {howto => OLD/howto}/create-stateful-service/README.md (100%) rename {howto => OLD/howto}/deploy-k8s-prod/README.md (100%) rename {howto => OLD/howto}/diagnose-with-tracing/azure-monitor.md (97%) rename {howto => OLD/howto}/diagnose-with-tracing/localforwarder/appinsight-tracing.yaml (100%) rename {howto => OLD/howto}/diagnose-with-tracing/localforwarder/dapr-localforwarder.yaml (100%) rename {howto => OLD/howto}/diagnose-with-tracing/zipkin.md (100%) rename {howto => OLD/howto}/enable-dapr-api-token-based-authentication/README.md (100%) rename {howto => OLD/howto}/get-secrets/README.md (100%) rename {howto => OLD/howto}/intellij-debugging-daprd/README.md (100%) rename {howto => OLD/howto}/invoke-and-discover-services/README.md (100%) rename {howto => OLD/howto}/publish-topic/README.md (100%) rename {howto => OLD/howto}/pubsub-namespaces/README.md (97%) rename {howto => OLD/howto}/pubsub-scopes/README.md (97%) rename {howto => OLD/howto}/query-state-store/query-cosmosdb-store.md (97%) rename {howto => OLD/howto}/query-state-store/query-redis-store.md (97%) rename {howto => OLD/howto}/query-state-store/query-sqlserver-store.md (97%) rename {howto => OLD/howto}/run-with-docker/README.md (100%) rename {howto => OLD/howto}/self-hosted-no-docker/README.md (100%) rename {howto => OLD/howto}/send-events-with-output-bindings/README.md (100%) rename {howto => OLD/howto}/serialize/README.md (96%) rename {howto => OLD/howto}/setup-monitoring-tools/azm-config-map.yaml (100%) rename {howto => OLD/howto}/setup-monitoring-tools/fluentd-config-map.yaml (100%) rename {howto => OLD/howto}/setup-monitoring-tools/fluentd-dapr-with-rbac.yaml (100%) rename {howto => OLD/howto}/setup-monitoring-tools/img/grafana-add-datasources.png (100%) rename {howto => OLD/howto}/setup-monitoring-tools/img/grafana-datasources.png (100%) rename {howto => OLD/howto}/setup-monitoring-tools/img/grafana-prometheus-dapr-server-url.png (100%) rename {howto => OLD/howto}/setup-monitoring-tools/img/grafana-uploadjson.png (100%) rename {howto => OLD/howto}/setup-monitoring-tools/img/kibana-1.png (100%) rename {howto => OLD/howto}/setup-monitoring-tools/img/kibana-2.png (100%) rename {howto => OLD/howto}/setup-monitoring-tools/img/kibana-3.png (100%) rename {howto => OLD/howto}/setup-monitoring-tools/img/kibana-4.png (100%) rename {howto => OLD/howto}/setup-monitoring-tools/img/kibana-5.png (100%) rename {howto => OLD/howto}/setup-monitoring-tools/img/kibana-6.png (100%) rename {howto => OLD/howto}/setup-monitoring-tools/img/kibana-7.png (100%) rename {howto => OLD/howto}/setup-monitoring-tools/observe-metrics-with-grafana.md (100%) rename {howto => OLD/howto}/setup-monitoring-tools/observe-metrics-with-prometheus-locally.md (100%) rename {howto => OLD/howto}/setup-monitoring-tools/setup-azure-monitor.md (100%) rename {howto => OLD/howto}/setup-monitoring-tools/setup-fluentd-es-kibana.md (100%) rename {howto => OLD/howto}/setup-monitoring-tools/setup-prometheus-grafana.md (100%) rename {howto => OLD/howto}/setup-pub-sub-message-broker/README.md (100%) rename {howto => OLD/howto}/setup-pub-sub-message-broker/setup-azure-eventhubs.md (100%) rename {howto => OLD/howto}/setup-pub-sub-message-broker/setup-azure-servicebus.md (100%) rename {howto => OLD/howto}/setup-pub-sub-message-broker/setup-gcp.md (100%) rename {howto => OLD/howto}/setup-pub-sub-message-broker/setup-hazelcast.md (100%) rename {howto => OLD/howto}/setup-pub-sub-message-broker/setup-kafka.md (100%) rename {howto => OLD/howto}/setup-pub-sub-message-broker/setup-mqtt.md (100%) rename {howto => OLD/howto}/setup-pub-sub-message-broker/setup-nats.md (100%) rename {howto => OLD/howto}/setup-pub-sub-message-broker/setup-pulsar.md (100%) rename {howto => OLD/howto}/setup-pub-sub-message-broker/setup-rabbitmq.md (100%) rename {howto => OLD/howto}/setup-pub-sub-message-broker/setup-redis.md (100%) rename {howto => OLD/howto}/setup-pub-sub-message-broker/setup-snssqs.md (100%) rename {howto => OLD/howto}/setup-secret-store/README.md (100%) rename {howto => OLD/howto}/setup-secret-store/aws-secret-manager.md (100%) rename {howto => OLD/howto}/setup-secret-store/azure-keyvault-managed-identity.md (100%) rename {howto => OLD/howto}/setup-secret-store/azure-keyvault.md (100%) rename {howto => OLD/howto}/setup-secret-store/envvar-secret-store.md (100%) rename {howto => OLD/howto}/setup-secret-store/file-secret-store.md (100%) rename {howto => OLD/howto}/setup-secret-store/gcp-secret-manager.md (100%) rename {howto => OLD/howto}/setup-secret-store/hashicorp-vault.md (100%) rename {howto => OLD/howto}/setup-secret-store/kubernetes.md (100%) rename {howto => OLD/howto}/setup-state-store/README.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-aerospike.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-azure-blobstorage.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-azure-cosmosdb.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-azure-tablestorage.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-cassandra.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-cloudstate.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-consul.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-couchbase.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-etcd.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-firestore.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-hazelcast.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-memcached.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-mongodb.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-postgresql.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-redis.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-sqlserver.md (100%) rename {howto => OLD/howto}/setup-state-store/setup-zookeeper.md (100%) rename {howto => OLD/howto}/setup-state-store/supported-state-stores.md (100%) rename {howto => OLD/howto}/stateful-replicated-service/README.md (100%) rename {howto => OLD/howto}/trigger-app-with-input-binding/README.md (100%) rename {howto => OLD/howto}/use-w3c-tracecontext/README.md (100%) rename {howto => OLD/howto}/vscode-debugging-daprd/README.md (100%) rename {howto => OLD/howto}/vscode-remote-containers/README.md (100%) rename {howto => OLD/howto}/windows-k8s/README.md (100%) rename {images => OLD/images}/actor_game_example.png (100%) rename {images => OLD/images}/actor_pattern.png (100%) rename {images => OLD/images}/actors_client.png (100%) rename {images => OLD/images}/actors_communication.png (100%) rename {images => OLD/images}/actors_concurrency.png (100%) rename {images => OLD/images}/actors_id_hashing_calling.png (100%) rename {images => OLD/images}/actors_placement_service_registration.png (100%) rename {images => OLD/images}/actors_server.png (100%) rename {images => OLD/images}/alloc.png (100%) rename {images => OLD/images}/azure-monitor.png (100%) rename {images => OLD/images}/building_blocks.png (100%) rename {images => OLD/images}/concepts-building-blocks.png (100%) rename {images => OLD/images}/dynamic_range.png (100%) rename {images => OLD/images}/heap.png (100%) rename {images => OLD/images}/intellij_debug_app.png (100%) rename {images => OLD/images}/intellij_debug_menu.png (100%) rename {images => OLD/images}/intellij_edit_run_configuration.png (100%) rename {images => OLD/images}/intellij_start_dapr.png (100%) rename {images => OLD/images}/middleware.png (100%) rename {images => OLD/images}/overview-sidecar-kubernetes.png (100%) rename {images => OLD/images}/overview-sidecar.png (100%) rename {images => OLD/images}/overview.png (100%) rename {images => OLD/images}/overview_kubernetes.png (100%) rename {images => OLD/images}/overview_standalone.png (100%) rename {images => OLD/images}/programming_experience.png (100%) rename {images => OLD/images}/sample_trace.png (100%) rename {images => OLD/images}/secrets_azure_aks_keyvault.png (100%) rename {images => OLD/images}/secrets_cloud_stores.png (100%) rename {images => OLD/images}/secrets_kubernetes_store.png (100%) rename {images => OLD/images}/security-mTLS-dapr-system-services.png (100%) rename {images => OLD/images}/security-mTLS-sentry-kubernetes.png (100%) rename {images => OLD/images}/security-mTLS-sentry-selfhosted.png (100%) rename {images => OLD/images}/service-invocation.png (100%) rename {images => OLD/images}/state_management.png (100%) rename {images => OLD/images}/threat_model.png (100%) rename {images => OLD/images}/tracing.png (100%) rename {images => OLD/images}/vscode_remote_containers.png (100%) rename {images => OLD/images}/zipkin_ui.png (100%) rename {overview => OLD/overview}/README.md (100%) rename {presentations => OLD/presentations}/Dapr Presentation Deck.pptx (100%) rename {presentations => OLD/presentations}/PastPresentations/2019IgniteCloudNativeApps.pdf (100%) rename {presentations => OLD/presentations}/PastPresentations/2020ReadyCloudNativeApps.pdf (100%) rename {presentations => OLD/presentations}/README.md (100%) rename {walkthroughs => OLD/walkthroughs}/daprrun.md (100%) delete mode 100644 concepts/README.md delete mode 100644 concepts/architecture/README.md delete mode 100644 concepts/architecture/building_blocks.md delete mode 100644 contributing/howto-template.md create mode 100644 daprdocs/archetypes/default.md create mode 100644 daprdocs/assets/icons/logo.png create mode 100644 daprdocs/assets/icons/logo.svg create mode 100644 daprdocs/assets/scss/_nav.scss create mode 100644 daprdocs/assets/scss/_variables_project.scss create mode 100644 daprdocs/config.toml rename README.md => daprdocs/content/en/_index.md (96%) create mode 100644 daprdocs/content/en/docs/_index.md create mode 100644 daprdocs/content/en/docs/building-blocks/_index.md rename concepts/actors/actors_features.md => daprdocs/content/en/docs/building-blocks/actors/_index.md (98%) rename concepts/actors/README.md => daprdocs/content/en/docs/building-blocks/actors/actors_background.md (98%) rename concepts/bindings/README.md => daprdocs/content/en/docs/building-blocks/bindings/_index.md (97%) rename {concepts => daprdocs/content/en/docs/building-blocks}/observability/W3C-traces.md (99%) rename concepts/observability/README.md => daprdocs/content/en/docs/building-blocks/observability/_index.md (96%) rename {concepts => daprdocs/content/en/docs/building-blocks}/observability/health.md (98%) rename {concepts => daprdocs/content/en/docs/building-blocks}/observability/logs.md (98%) rename {concepts => daprdocs/content/en/docs/building-blocks}/observability/metrics.md (94%) rename {concepts => daprdocs/content/en/docs/building-blocks}/observability/traces.md (98%) rename concepts/publish-subscribe-messaging/README.md => daprdocs/content/en/docs/building-blocks/pubsub/_index.md (96%) rename concepts/secrets/README.md => daprdocs/content/en/docs/building-blocks/secrets/_index.md (98%) rename {concepts => daprdocs/content/en/docs/building-blocks}/secrets/component-secrets.md (96%) rename concepts/service-invocation/README.md => daprdocs/content/en/docs/building-blocks/service-invocation/_index.md (96%) rename concepts/state-management/README.md => daprdocs/content/en/docs/building-blocks/state-management/_index.md (98%) create mode 100644 daprdocs/content/en/docs/concepts/_index.md create mode 100644 daprdocs/content/en/docs/concepts/components/_index.md rename concepts/configuration/README.md => daprdocs/content/en/docs/concepts/configuration/_index.md (97%) rename concepts/middleware/README.md => daprdocs/content/en/docs/concepts/middleware/_index.md (97%) rename concepts/security/README.md => daprdocs/content/en/docs/concepts/security/_index.md (98%) rename {concepts => daprdocs/content/en/docs/concepts}/security/audits/DAP-01-report.pdf (100%) rename contributing/README.md => daprdocs/content/en/docs/contributing/_index.md (96%) rename getting-started/README.md => daprdocs/content/en/docs/getting-started/_index.md (92%) create mode 100644 daprdocs/content/en/docs/getting-started/cluster/_index.md rename {getting-started => daprdocs/content/en/docs/getting-started}/cluster/setup-aks.md (91%) rename {getting-started => daprdocs/content/en/docs/getting-started}/cluster/setup-minikube.md (94%) rename {getting-started => daprdocs/content/en/docs/getting-started}/environment-setup.md (98%) rename concepts/hosting/README.md => daprdocs/content/en/docs/hosting/_index.md (97%) rename reference/README.md => daprdocs/content/en/docs/reference/_index.md (93%) rename {reference => daprdocs/content/en/docs/reference}/api/README.md (100%) rename {reference => daprdocs/content/en/docs/reference}/api/actors_api.md (100%) rename {reference => daprdocs/content/en/docs/reference}/api/bindings_api.md (100%) rename {reference => daprdocs/content/en/docs/reference}/api/error_codes.md (100%) rename {reference => daprdocs/content/en/docs/reference}/api/health_api.md (100%) rename {reference => daprdocs/content/en/docs/reference}/api/pubsub_api.md (100%) rename {reference => daprdocs/content/en/docs/reference}/api/secrets_api.md (100%) rename {reference => daprdocs/content/en/docs/reference}/api/service_invocation_api.md (100%) rename {reference => daprdocs/content/en/docs/reference}/api/state_api.md (100%) rename {reference => daprdocs/content/en/docs/reference}/dashboard/README.md (100%) rename {reference => daprdocs/content/en/docs/reference}/dashboard/grafana/actor-dashboard.json (100%) rename {reference => daprdocs/content/en/docs/reference}/dashboard/grafana/sidecar-dashboard.json (100%) rename {reference => daprdocs/content/en/docs/reference}/dashboard/grafana/system-services-dashboard.json (95%) rename {reference => daprdocs/content/en/docs/reference}/dashboard/img/actor-dashboard.png (100%) rename {reference => daprdocs/content/en/docs/reference}/dashboard/img/sidecar-dashboard.png (100%) rename {reference => daprdocs/content/en/docs/reference}/dashboard/img/system-service-dashboard.png (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/README.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/blobstorage.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/cosmosdb.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/cron.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/dynamodb.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/eventgrid.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/eventhubs.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/gcpbucket.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/gcppubsub.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/http.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/influxdb.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/kafka.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/kinesis.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/kubernetes.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/mqtt.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/rabbitmq.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/redis.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/s3.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/sendgrid.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/servicebusqueues.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/signalr.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/sns.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/sqs.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/storagequeues.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/twilio.md (100%) rename {reference => daprdocs/content/en/docs/reference}/specs/bindings/twitter.md (100%) create mode 100644 daprdocs/layouts/partials/navbar.html create mode 100644 daprdocs/layouts/partials/section-index.html create mode 100644 daprdocs/layouts/partials/toc.html create mode 100644 daprdocs/resources/_gen/assets/scss/dapr.io/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.content create mode 100644 daprdocs/resources/_gen/assets/scss/dapr.io/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.json create mode 100644 daprdocs/resources/_gen/assets/scss/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.content create mode 100644 daprdocs/resources/_gen/assets/scss/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.json create mode 100644 daprdocs/static/favicons/favicon.ico diff --git a/.gitignore b/.gitignore index f7991ec7f..91e2bbf9f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ # Visual Studio 2015/2017/2019 cache/options directory .vs/ +package-lock.json +node_modules/ \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..9d1226e9f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "daprdocs/themes/docsy"] + path = daprdocs/themes/docsy + url = https://github.com/google/docsy.git diff --git a/FAQ.md b/OLD/FAQ.md similarity index 99% rename from FAQ.md rename to OLD/FAQ.md index 6221200c2..e047476b6 100644 --- a/FAQ.md +++ b/OLD/FAQ.md @@ -1,50 +1,50 @@ -# FAQ - -- **[Networking and service meshes](#networking-and-service-meshes)** -- **[Actors](#actors)** -- **[Developer language SDKs and frameworks](#developer-language-sdks-and-frameworks)** - -## Networking and service meshes - -### Understanding how Dapr works with service meshes - -Dapr is a distributed application runtime. Unlike a service mesh which is focused on networking concerns, Dapr is focused on providing building blocks that make it easier for developers to build microservices. Dapr is developer-centric versus service meshes being infrastructure-centric. - -Dapr can be used alongside any service mesh such as Istio and Linkerd. A service mesh is a dedicated network infrastructure layer designed to connect services to one another and provide insightful telemetry. A service mesh doesn’t introduce new functionality to an application. - -That is where Dapr comes in. Dapr is a language agnostic programming model built on http and gRPC that provides distributed system building blocks via open APIs for asynchronous pub-sub, stateful services, service discovery and invocation, actors and distributed tracing. Dapr introduces new functionality to an app’s runtime. Both service meshes and Dapr run as side-car services to your application, one giving network features and the other distributed application capabilities. - -Watch this [video](https://www.youtube.com/watch?v=xxU68ewRmz8&feature=youtu.be&t=140) on how Dapr and service meshes work together. - -### Understanding how Dapr interoperates with the service mesh interface (SMI) - -SMI is an abstraction layer that provides a common API surface across different service mesh technology. Dapr can leverage any service mesh technology including SMI. - -### Differences between Dapr, Istio and Linkerd - -Read [How does Dapr work with service meshes?](https://github.com/dapr/dapr/wiki/FAQ#how-does-dapr-work-with-service-meshes) Istio is an open source service mesh implementation that focuses on Layer7 routing, traffic flow management and mTLS authentication between services. Istio uses a sidecar to intercept traffic going into and out of a container and enforces a set of network policies on them. - -Istio is not a programming model and does not focus on application level features such as state management, pub-sub, bindings etc. That is where Dapr comes in. - -## Actors - -### Relationship between Dapr, Orleans and Service Fabric Reliable Actors - -The actors in Dapr are based on the same virtual actor concept that [Orleans](https://www.microsoft.com/research/project/orleans-virtual-actors/) started, meaning that they are activated when called and deactivated after a period of time. If you are familiar with Orleans, Dapr C# actors will be familiar. Dapr C# actors are based on [Service Fabric Reliable Actors](https://docs.microsoft.com/azure/service-fabric/service-fabric-reliable-actors-introduction) (which also came from Orleans) and enable you to take Reliable Actors in Service Fabric and migrate them to other hosting platforms such as Kubernetes or other on-premise environments. -Also Dapr is about more than just actors. It provides you with a set of best practice building blocks to build into any microservices application. See [Dapr overview](https://github.com/dapr/docs/blob/master/overview.md) - -### Differences between Dapr from an actor framework - -Virtual actors capabilities are one of the building blocks that Dapr provides in its runtime. With Dapr because it is programming language agnostic with an http/gRPC API, the actors can be called from any language. This allows actors written in one language to invoke actors written in a different language. - -Creating a new actor follows a local call like `http://localhost:3500/v1.0/actors///…`, for example `http://localhost:3500/v1.0/actors/myactor/50/method/getData` to call the `getData` method on the newly created `myactor` with id `50`. - -The Dapr runtime SDKs have language specific actor frameworks. The .NET SDK for example has C# actors. The goal is for all the Dapr language SDKs to have an actor framework. - -## Developer language SDKs and frameworks - -### Does Dapr have any SDKs if I want to work with a particular programming language or framework? - -To make using Dapr more natural for different languages, it includes language specific SDKs for Go, Java, JavaScript, .NET and Python. These SDKs expose the functionality in the Dapr building blocks, such as saving state, publishing an event or creating an actor, through a typed, language API rather than calling the http/gRPC API. This enables you to write a combination of stateless and stateful functions and actors all in the language of their choice. And because these SDKs share the Dapr runtime, you get cross-language actor and functions support. - -Dapr can be integrated with any developer framework. For example, in the Dapr .NET SDK you can find ASP.NET Core integration, which brings stateful routing controllers that respond to pub/sub events from other services. +# FAQ + +- **[Networking and service meshes](#networking-and-service-meshes)** +- **[Actors](#actors)** +- **[Developer language SDKs and frameworks](#developer-language-sdks-and-frameworks)** + +## Networking and service meshes + +### Understanding how Dapr works with service meshes + +Dapr is a distributed application runtime. Unlike a service mesh which is focused on networking concerns, Dapr is focused on providing building blocks that make it easier for developers to build microservices. Dapr is developer-centric versus service meshes being infrastructure-centric. + +Dapr can be used alongside any service mesh such as Istio and Linkerd. A service mesh is a dedicated network infrastructure layer designed to connect services to one another and provide insightful telemetry. A service mesh doesn’t introduce new functionality to an application. + +That is where Dapr comes in. Dapr is a language agnostic programming model built on http and gRPC that provides distributed system building blocks via open APIs for asynchronous pub-sub, stateful services, service discovery and invocation, actors and distributed tracing. Dapr introduces new functionality to an app’s runtime. Both service meshes and Dapr run as side-car services to your application, one giving network features and the other distributed application capabilities. + +Watch this [video](https://www.youtube.com/watch?v=xxU68ewRmz8&feature=youtu.be&t=140) on how Dapr and service meshes work together. + +### Understanding how Dapr interoperates with the service mesh interface (SMI) + +SMI is an abstraction layer that provides a common API surface across different service mesh technology. Dapr can leverage any service mesh technology including SMI. + +### Differences between Dapr, Istio and Linkerd + +Read [How does Dapr work with service meshes?](https://github.com/dapr/dapr/wiki/FAQ#how-does-dapr-work-with-service-meshes) Istio is an open source service mesh implementation that focuses on Layer7 routing, traffic flow management and mTLS authentication between services. Istio uses a sidecar to intercept traffic going into and out of a container and enforces a set of network policies on them. + +Istio is not a programming model and does not focus on application level features such as state management, pub-sub, bindings etc. That is where Dapr comes in. + +## Actors + +### Relationship between Dapr, Orleans and Service Fabric Reliable Actors + +The actors in Dapr are based on the same virtual actor concept that [Orleans](https://www.microsoft.com/research/project/orleans-virtual-actors/) started, meaning that they are activated when called and deactivated after a period of time. If you are familiar with Orleans, Dapr C# actors will be familiar. Dapr C# actors are based on [Service Fabric Reliable Actors](https://docs.microsoft.com/azure/service-fabric/service-fabric-reliable-actors-introduction) (which also came from Orleans) and enable you to take Reliable Actors in Service Fabric and migrate them to other hosting platforms such as Kubernetes or other on-premise environments. +Also Dapr is about more than just actors. It provides you with a set of best practice building blocks to build into any microservices application. See [Dapr overview](https://github.com/dapr/docs/blob/master/overview.md) + +### Differences between Dapr from an actor framework + +Virtual actors capabilities are one of the building blocks that Dapr provides in its runtime. With Dapr because it is programming language agnostic with an http/gRPC API, the actors can be called from any language. This allows actors written in one language to invoke actors written in a different language. + +Creating a new actor follows a local call like `http://localhost:3500/v1.0/actors///…`, for example `http://localhost:3500/v1.0/actors/myactor/50/method/getData` to call the `getData` method on the newly created `myactor` with id `50`. + +The Dapr runtime SDKs have language specific actor frameworks. The .NET SDK for example has C# actors. The goal is for all the Dapr language SDKs to have an actor framework. + +## Developer language SDKs and frameworks + +### Does Dapr have any SDKs if I want to work with a particular programming language or framework? + +To make using Dapr more natural for different languages, it includes language specific SDKs for Go, Java, JavaScript, .NET and Python. These SDKs expose the functionality in the Dapr building blocks, such as saving state, publishing an event or creating an actor, through a typed, language API rather than calling the http/gRPC API. This enables you to write a combination of stateless and stateful functions and actors all in the language of their choice. And because these SDKs share the Dapr runtime, you get cross-language actor and functions support. + +Dapr can be integrated with any developer framework. For example, in the Dapr .NET SDK you can find ASP.NET Core integration, which brings stateful routing controllers that respond to pub/sub events from other services. diff --git a/best-practices/security/README.md b/OLD/best-practices/security/README.md similarity index 100% rename from best-practices/security/README.md rename to OLD/best-practices/security/README.md diff --git a/best-practices/troubleshooting/README.md b/OLD/best-practices/troubleshooting/README.md similarity index 100% rename from best-practices/troubleshooting/README.md rename to OLD/best-practices/troubleshooting/README.md diff --git a/best-practices/troubleshooting/common_issues.md b/OLD/best-practices/troubleshooting/common_issues.md similarity index 100% rename from best-practices/troubleshooting/common_issues.md rename to OLD/best-practices/troubleshooting/common_issues.md diff --git a/best-practices/troubleshooting/logs.md b/OLD/best-practices/troubleshooting/logs.md similarity index 100% rename from best-practices/troubleshooting/logs.md rename to OLD/best-practices/troubleshooting/logs.md diff --git a/best-practices/troubleshooting/profiling_debugging.md b/OLD/best-practices/troubleshooting/profiling_debugging.md similarity index 100% rename from best-practices/troubleshooting/profiling_debugging.md rename to OLD/best-practices/troubleshooting/profiling_debugging.md diff --git a/best-practices/troubleshooting/tracing.md b/OLD/best-practices/troubleshooting/tracing.md similarity index 100% rename from best-practices/troubleshooting/tracing.md rename to OLD/best-practices/troubleshooting/tracing.md diff --git a/howto/README.md b/OLD/howto/README.md similarity index 100% rename from howto/README.md rename to OLD/howto/README.md diff --git a/howto/authorization-with-oauth/README.md b/OLD/howto/authorization-with-oauth/README.md similarity index 97% rename from howto/authorization-with-oauth/README.md rename to OLD/howto/authorization-with-oauth/README.md index 0a006e120..ecad2e8c2 100644 --- a/howto/authorization-with-oauth/README.md +++ b/OLD/howto/authorization-with-oauth/README.md @@ -1,187 +1,187 @@ -# Configure API authorization with OAuth - -Dapr OAuth 2.0 [middleware](../../concepts/middleware/README.md) allows you to enable [OAuth](https://oauth.net/2/) -authorization on Dapr endpoints for your web APIs, -using the [Authorization Code Grant flow](https://tools.ietf.org/html/rfc6749#section-4.1). -As well as injecting authorization tokens into your APIs which can be used for authorization towards external APIs -called by your APIs, -using the [Client Credentials Grant flow](https://tools.ietf.org/html/rfc6749#section-4.4). -When the middleware is enabled, -any method invocation through Dapr needs to be authorized before getting passed to the user code. - -The main difference between the two flows is that the -`Authorization Code Grant flow` needs user interaction and authorizes a user, -the `Client Credentials Grant flow` doesn't need a user interaction and authorizes a service/application. - -## Register your application with a authorization server - -Different authorization servers provide different application registration experiences. Here are some samples: - -* [Azure AAD](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-protocols-oauth-code) -* [Facebook](https://developers.facebook.com/apps) -* [Fitbit](https://dev.fitbit.com/build/reference/web-api/oauth2/) -* [GitHub](https://developer.github.com/apps/building-oauth-apps/creating-an-oauth-app/) -* [Google APIs](https://console.developers.google.com/apis/credentials/consen) -* [Slack](https://api.slack.com/docs/oauth) -* [Twitter](http://apps.twitter.com/) - -To figure the Dapr OAuth middleware, you'll need to collect the following information: - -* Client ID (see [here](https://www.oauth.com/oauth2-servers/client-registration/client-id-secret/)) -* Client secret (see [here](https://www.oauth.com/oauth2-servers/client-registration/client-id-secret/)) -* Scopes (see [here](https://oauth.net/2/scope/)) -* Authorization URL -* Token URL - -Authorization/Token URLs of some of the popular authorization servers: - -|Server|Authorization URL|Token URL| -|--------|--------|--------| -|Azure AAD||| -|GitHub||| -|Google|| | -|Twitter||| - -## Define the middleware component definition - -### Define an Authorization Code Grant component - -An OAuth middleware (Authorization Code) is defined by a component: - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: oauth2 - namespace: default -spec: - type: middleware.http.oauth2 - metadata: - - name: clientId - value: "" - - name: clientSecret - value: "" - - name: scopes - value: "" - - name: authURL - value: "" - - name: tokenURL - value: "" - - name: redirectURL - value: "" - - name: authHeaderName - value: "
" -``` - -### Define a custom pipeline for an Authorization Code Grant - -To use the OAuth middleware (Authorization Code), you should create a [custom pipeline](../../concepts/middleware/README.md) -using [Dapr configuration](../../concepts/configuration/README.md), as shown in the following sample: - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Configuration -metadata: - name: pipeline - namespace: default -spec: - httpPipeline: - handlers: - - name: oauth2 - type: middleware.http.oauth2 -``` - -### Define a Client Credentials Grant component - -An OAuth (Client Credentials) middleware is defined by a component: - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: myComponent -spec: - type: middleware.http.oauth2clientcredentials - metadata: - - name: clientId - value: "" - - name: clientSecret - value: "" - - name: scopes - value: "" - - name: tokenURL - value: "" - - name: headerName - value: "
" - - name: endpointParamsQuery - value: "" - # authStyle: - # "0" means to auto-detect which authentication - # style the provider wants by trying both ways and caching - # the successful way for the future. - - # "1" sends the "client_id" and "client_secret" - # in the POST body as application/x-www-form-urlencoded parameters. - - # "2" sends the client_id and client_password - # using HTTP Basic Authorization. This is an optional style - # described in the OAuth2 RFC 6749 section 2.3.1. - - name: authStyle - value: "" -``` - -### Define a custom pipeline for a Client Credentials Grant - -To use the OAuth middleware (Client Credentials), you should create a [custom pipeline](../../concepts/middleware/README.md) -using [Dapr configuration](../../concepts/configuration/README.md), as shown in the following sample: - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Configuration -metadata: - name: pipeline - namespace: default -spec: - httpPipeline: - handlers: - - name: myComponent - type: middleware.http.oauth2clientcredentials -``` - -## Apply the configuration - -To apply the above configuration (regardless of grant type) -to your Dapr sidecar, add a ```dapr.io/config``` annotation to your pod spec: - -```yaml -apiVersion: apps/v1 -kind: Deployment -... -spec: - ... - template: - metadata: - ... - annotations: - dapr.io/enabled: "true" - ... - dapr.io/config: "pipeline" -... -``` - -## Accessing the access token - -### Authorization Code Grant - -Once everything is in place, whenever a client tries to invoke an API method through Dapr sidecar -(such as calling the *v1.0/invoke/* endpoint), -it will be redirected to the authorization's consent page if an access token is not found. -Otherwise, the access token is written to the **authHeaderName** header and made available to the app code. - -### Client Credentials Grant - -Once everything is in place, whenever a client tries to invoke an API method through Dapr sidecar -(such as calling the *v1.0/invoke/* endpoint), -it will retrieve a new access token if an existing valid one is not found. -The access token is written to the **headerName** header and made available to the app code. -In that way the app can forward the token in the authorization header in calls towards the external API requesting that token. +# Configure API authorization with OAuth + +Dapr OAuth 2.0 [middleware](../../concepts/middleware/README.md) allows you to enable [OAuth](https://oauth.net/2/) +authorization on Dapr endpoints for your web APIs, +using the [Authorization Code Grant flow](https://tools.ietf.org/html/rfc6749#section-4.1). +As well as injecting authorization tokens into your APIs which can be used for authorization towards external APIs +called by your APIs, +using the [Client Credentials Grant flow](https://tools.ietf.org/html/rfc6749#section-4.4). +When the middleware is enabled, +any method invocation through Dapr needs to be authorized before getting passed to the user code. + +The main difference between the two flows is that the +`Authorization Code Grant flow` needs user interaction and authorizes a user, +the `Client Credentials Grant flow` doesn't need a user interaction and authorizes a service/application. + +## Register your application with a authorization server + +Different authorization servers provide different application registration experiences. Here are some samples: + +* [Azure AAD](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-protocols-oauth-code) +* [Facebook](https://developers.facebook.com/apps) +* [Fitbit](https://dev.fitbit.com/build/reference/web-api/oauth2/) +* [GitHub](https://developer.github.com/apps/building-oauth-apps/creating-an-oauth-app/) +* [Google APIs](https://console.developers.google.com/apis/credentials/consen) +* [Slack](https://api.slack.com/docs/oauth) +* [Twitter](http://apps.twitter.com/) + +To figure the Dapr OAuth middleware, you'll need to collect the following information: + +* Client ID (see [here](https://www.oauth.com/oauth2-servers/client-registration/client-id-secret/)) +* Client secret (see [here](https://www.oauth.com/oauth2-servers/client-registration/client-id-secret/)) +* Scopes (see [here](https://oauth.net/2/scope/)) +* Authorization URL +* Token URL + +Authorization/Token URLs of some of the popular authorization servers: + +|Server|Authorization URL|Token URL| +|--------|--------|--------| +|Azure AAD||| +|GitHub||| +|Google|| | +|Twitter||| + +## Define the middleware component definition + +### Define an Authorization Code Grant component + +An OAuth middleware (Authorization Code) is defined by a component: + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: oauth2 + namespace: default +spec: + type: middleware.http.oauth2 + metadata: + - name: clientId + value: "" + - name: clientSecret + value: "" + - name: scopes + value: "" + - name: authURL + value: "" + - name: tokenURL + value: "" + - name: redirectURL + value: "" + - name: authHeaderName + value: "
" +``` + +### Define a custom pipeline for an Authorization Code Grant + +To use the OAuth middleware (Authorization Code), you should create a [custom pipeline](../../concepts/middleware/README.md) +using [Dapr configuration](../../concepts/configuration/README.md), as shown in the following sample: + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Configuration +metadata: + name: pipeline + namespace: default +spec: + httpPipeline: + handlers: + - name: oauth2 + type: middleware.http.oauth2 +``` + +### Define a Client Credentials Grant component + +An OAuth (Client Credentials) middleware is defined by a component: + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: myComponent +spec: + type: middleware.http.oauth2clientcredentials + metadata: + - name: clientId + value: "" + - name: clientSecret + value: "" + - name: scopes + value: "" + - name: tokenURL + value: "" + - name: headerName + value: "
" + - name: endpointParamsQuery + value: "" + # authStyle: + # "0" means to auto-detect which authentication + # style the provider wants by trying both ways and caching + # the successful way for the future. + + # "1" sends the "client_id" and "client_secret" + # in the POST body as application/x-www-form-urlencoded parameters. + + # "2" sends the client_id and client_password + # using HTTP Basic Authorization. This is an optional style + # described in the OAuth2 RFC 6749 section 2.3.1. + - name: authStyle + value: "" +``` + +### Define a custom pipeline for a Client Credentials Grant + +To use the OAuth middleware (Client Credentials), you should create a [custom pipeline](../../concepts/middleware/README.md) +using [Dapr configuration](../../concepts/configuration/README.md), as shown in the following sample: + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Configuration +metadata: + name: pipeline + namespace: default +spec: + httpPipeline: + handlers: + - name: myComponent + type: middleware.http.oauth2clientcredentials +``` + +## Apply the configuration + +To apply the above configuration (regardless of grant type) +to your Dapr sidecar, add a ```dapr.io/config``` annotation to your pod spec: + +```yaml +apiVersion: apps/v1 +kind: Deployment +... +spec: + ... + template: + metadata: + ... + annotations: + dapr.io/enabled: "true" + ... + dapr.io/config: "pipeline" +... +``` + +## Accessing the access token + +### Authorization Code Grant + +Once everything is in place, whenever a client tries to invoke an API method through Dapr sidecar +(such as calling the *v1.0/invoke/* endpoint), +it will be redirected to the authorization's consent page if an access token is not found. +Otherwise, the access token is written to the **authHeaderName** header and made available to the app code. + +### Client Credentials Grant + +Once everything is in place, whenever a client tries to invoke an API method through Dapr sidecar +(such as calling the *v1.0/invoke/* endpoint), +it will retrieve a new access token if an existing valid one is not found. +The access token is written to the **headerName** header and made available to the app code. +In that way the app can forward the token in the authorization header in calls towards the external API requesting that token. diff --git a/howto/autoscale-with-keda/README.md b/OLD/howto/autoscale-with-keda/README.md similarity index 100% rename from howto/autoscale-with-keda/README.md rename to OLD/howto/autoscale-with-keda/README.md diff --git a/howto/components-scopes/README.md b/OLD/howto/components-scopes/README.md similarity index 100% rename from howto/components-scopes/README.md rename to OLD/howto/components-scopes/README.md diff --git a/howto/configure-k8s/README.md b/OLD/howto/configure-k8s/README.md similarity index 100% rename from howto/configure-k8s/README.md rename to OLD/howto/configure-k8s/README.md diff --git a/howto/configure-mtls/README.md b/OLD/howto/configure-mtls/README.md similarity index 100% rename from howto/configure-mtls/README.md rename to OLD/howto/configure-mtls/README.md diff --git a/howto/configure-redis/README.md b/OLD/howto/configure-redis/README.md similarity index 100% rename from howto/configure-redis/README.md rename to OLD/howto/configure-redis/README.md diff --git a/howto/consume-topic/README.md b/OLD/howto/consume-topic/README.md similarity index 100% rename from howto/consume-topic/README.md rename to OLD/howto/consume-topic/README.md diff --git a/howto/control-concurrency/README.md b/OLD/howto/control-concurrency/README.md similarity index 100% rename from howto/control-concurrency/README.md rename to OLD/howto/control-concurrency/README.md diff --git a/howto/create-grpc-app/README.md b/OLD/howto/create-grpc-app/README.md similarity index 100% rename from howto/create-grpc-app/README.md rename to OLD/howto/create-grpc-app/README.md diff --git a/howto/create-stateful-service/README.md b/OLD/howto/create-stateful-service/README.md similarity index 100% rename from howto/create-stateful-service/README.md rename to OLD/howto/create-stateful-service/README.md diff --git a/howto/deploy-k8s-prod/README.md b/OLD/howto/deploy-k8s-prod/README.md similarity index 100% rename from howto/deploy-k8s-prod/README.md rename to OLD/howto/deploy-k8s-prod/README.md diff --git a/howto/diagnose-with-tracing/azure-monitor.md b/OLD/howto/diagnose-with-tracing/azure-monitor.md similarity index 97% rename from howto/diagnose-with-tracing/azure-monitor.md rename to OLD/howto/diagnose-with-tracing/azure-monitor.md index 3357a2e21..9422548a0 100644 --- a/howto/diagnose-with-tracing/azure-monitor.md +++ b/OLD/howto/diagnose-with-tracing/azure-monitor.md @@ -1,188 +1,188 @@ -# Set up Application Insights for distributed tracing - -Dapr integrates with Application Insights through OpenTelemetry's default exporter along with a dedicated agent known as the [Local Forwarder](https://docs.microsoft.com/en-us/azure/azure-monitor/app/opencensus-local-forwarder). - -> Note: The local forwarder is still under preview, but being deprecated. The Application Insights team recommends using [Opentelemetry collector](https://github.com/open-telemetry/opentelemetry-collector) (which is in alpha state) for the future so we're working on moving from local forwarder to [Opentelemetry collector](https://github.com/open-telemetry/opentelemetry-collector). - - - - [How to configure distributed tracing with Application insights](#How-to-configure-distributed-tracing-with-Application-insights) - - [Tracing configuration](#Tracing-configuration) - -## How to configure distributed tracing with Application insights - -The following steps show you how to configure Dapr to send distributed tracing data to Application insights. - -### Setup Application Insights - -1. First, you'll need an Azure account. Please see instructions [here](https://azure.microsoft.com/free/) to apply for a **free** Azure account. -2. Follow instructions [here](https://docs.microsoft.com/en-us/azure/azure-monitor/app/create-new-resource) to create a new Application Insights resource. -3. Get Application insights Intrumentation key from your application insights page -4. On the Application Insights side menu, go to `Configure -> API Access` -5. Click `Create API Key` -6. Select all checkboxes under `Choose what this API key will allow apps to do:` - - Read telemetry - - Write annotations - - Authenticate SDK control channel -7. Generate Key and get API key - -### Setup the Local Forwarder - -#### Self hosted environment -This is for running the local forwarder on your machine. - -1. Run the local fowarder - -```bash -docker run -e APPINSIGHTS_INSTRUMENTATIONKEY= -e APPINSIGHTS_LIVEMETRICSSTREAMAUTHENTICATIONAPIKEY= -d -p 55678:55678 daprio/dapr-localforwarder:latest -``` - -> Note: [dapr-localforwarder](https://github.com/dapr/ApplicationInsights-LocalForwarder) is the forked version of [ApplicationInsights Localforwarder](https://github.com/microsoft/ApplicationInsights-LocalForwarder/), that includes the minor changes for Dapr. We're working on migrating to [opentelemetry-sdk and opentelemetry collector](https://opentelemetry.io/). - -1. Create the following YAML files. Copy the native.yaml component file and tracing.yaml configuration file to the *components/* sub-folder under the same folder where you run your application. - -* native.yaml component - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: native - namespace: default -spec: - type: exporters.native - metadata: - - name: enabled - value: "true" - - name: agentEndpoint - value: "localhost:55678" -``` - -* tracing.yaml configuration - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Configuration -metadata: - name: tracing - namespace: default -spec: - tracing: - samplingRate: "1" -``` - -3. When running in the local self hosted mode, you need to launch Dapr with the `--config` parameter: - -```bash -dapr run --app-id mynode --app-port 3000 --config ./components/tracing.yaml node app.js -``` - -#### Kubernetes environment - -1. Download [dapr-localforwarder.yaml](./localforwarder/dapr-localforwarder.yaml) -2. Replace `` with your Instrumentation Key and `` with the generated key in the file - -```yaml - - name: APPINSIGHTS_INSTRUMENTATIONKEY - value: # Replace with your ikey - - name: APPINSIGHTS_LIVEMETRICSSTREAMAUTHENTICATIONAPIKEY - value: # Replace with your generated api key -``` - -3. Deploy dapr-localfowarder.yaml - -```bash -kubectl apply -f ./dapr-localforwarder.yaml -``` - -4. Create the following YAML files - -* native.yaml component - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: native - namespace: default -spec: - type: exporters.native - metadata: - - name: enabled - value: "true" - - name: agentEndpoint - value: "" -``` - -* tracing.yaml configuration - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Configuration -metadata: - name: tracing - namespace: default -spec: - tracing: - samplingRate: "1" -``` - -5. Use kubectl to apply the above CRD files: - -```bash -kubectl apply -f tracing.yaml -kubectl apply -f native.yaml -``` - -6. Deploy your app with tracing - -When running in Kubernetes mode, apply the configuration by adding a `dapr.io/config` annotation to the container that you want to participate in the distributed tracing, as shown in the following example: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - ... -spec: - ... - template: - metadata: - ... - annotations: - dapr.io/enabled: "true" - dapr.io/app-id: "calculator-front-end" - dapr.io/app-port: "8080" - dapr.io/config: "tracing" -``` - -That's it! There's no need include any SDKs or instrument your application code. Dapr automatically handles the distributed tracing for you. - -> **NOTE**: You can register multiple exporters at the same time, and the tracing logs are forwarded to all registered exporters. - -Deploy and run some applications. After a few minutes, you should see tracing logs appearing in your Application Insights resource. You can also use **Application Map** to examine the topology of your services, as shown below: - -![Application map](../../images/azure-monitor.png) - -> **NOTE**: Only operations going through Dapr API exposed by Dapr sidecar (e.g. service invocation or event publishing) will be displayed in Application Map topology. Direct service invocations (not going through the Dapr API) will not be shown. - -## Tracing configuration - -The `tracing` section under the `Configuration` spec contains the following properties: - -```yml -tracing: - samplingRate: "1" -``` - -The following table lists the different properties. - -Property | Type | Description ----- | ------- | ----------- -samplingRate | string | Set sampling rate for tracing to be enabled or disabled. - - -`samplingRate` is used to enable or disable the tracing. To disable the sampling rate , -set `samplingRate : "0"` in the configuration. The valid range of samplingRate is between 0 and 1 inclusive. The sampling rate determines whether a trace span should be sampled or not based on value. `samplingRate : "1"` will always sample the traces.By default, the sampling rate is 1 in 10,000 - -## References - -* [How-To: Use W3C Trace Context for distributed tracing](../../howto/use-w3c-tracecontext/README.md) +# Set up Application Insights for distributed tracing + +Dapr integrates with Application Insights through OpenTelemetry's default exporter along with a dedicated agent known as the [Local Forwarder](https://docs.microsoft.com/en-us/azure/azure-monitor/app/opencensus-local-forwarder). + +> Note: The local forwarder is still under preview, but being deprecated. The Application Insights team recommends using [Opentelemetry collector](https://github.com/open-telemetry/opentelemetry-collector) (which is in alpha state) for the future so we're working on moving from local forwarder to [Opentelemetry collector](https://github.com/open-telemetry/opentelemetry-collector). + + + - [How to configure distributed tracing with Application insights](#How-to-configure-distributed-tracing-with-Application-insights) + - [Tracing configuration](#Tracing-configuration) + +## How to configure distributed tracing with Application insights + +The following steps show you how to configure Dapr to send distributed tracing data to Application insights. + +### Setup Application Insights + +1. First, you'll need an Azure account. Please see instructions [here](https://azure.microsoft.com/free/) to apply for a **free** Azure account. +2. Follow instructions [here](https://docs.microsoft.com/en-us/azure/azure-monitor/app/create-new-resource) to create a new Application Insights resource. +3. Get Application insights Intrumentation key from your application insights page +4. On the Application Insights side menu, go to `Configure -> API Access` +5. Click `Create API Key` +6. Select all checkboxes under `Choose what this API key will allow apps to do:` + - Read telemetry + - Write annotations + - Authenticate SDK control channel +7. Generate Key and get API key + +### Setup the Local Forwarder + +#### Self hosted environment +This is for running the local forwarder on your machine. + +1. Run the local fowarder + +```bash +docker run -e APPINSIGHTS_INSTRUMENTATIONKEY= -e APPINSIGHTS_LIVEMETRICSSTREAMAUTHENTICATIONAPIKEY= -d -p 55678:55678 daprio/dapr-localforwarder:latest +``` + +> Note: [dapr-localforwarder](https://github.com/dapr/ApplicationInsights-LocalForwarder) is the forked version of [ApplicationInsights Localforwarder](https://github.com/microsoft/ApplicationInsights-LocalForwarder/), that includes the minor changes for Dapr. We're working on migrating to [opentelemetry-sdk and opentelemetry collector](https://opentelemetry.io/). + +1. Create the following YAML files. Copy the native.yaml component file and tracing.yaml configuration file to the *components/* sub-folder under the same folder where you run your application. + +* native.yaml component + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: native + namespace: default +spec: + type: exporters.native + metadata: + - name: enabled + value: "true" + - name: agentEndpoint + value: "localhost:55678" +``` + +* tracing.yaml configuration + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Configuration +metadata: + name: tracing + namespace: default +spec: + tracing: + samplingRate: "1" +``` + +3. When running in the local self hosted mode, you need to launch Dapr with the `--config` parameter: + +```bash +dapr run --app-id mynode --app-port 3000 --config ./components/tracing.yaml node app.js +``` + +#### Kubernetes environment + +1. Download [dapr-localforwarder.yaml](./localforwarder/dapr-localforwarder.yaml) +2. Replace `` with your Instrumentation Key and `` with the generated key in the file + +```yaml + - name: APPINSIGHTS_INSTRUMENTATIONKEY + value: # Replace with your ikey + - name: APPINSIGHTS_LIVEMETRICSSTREAMAUTHENTICATIONAPIKEY + value: # Replace with your generated api key +``` + +3. Deploy dapr-localfowarder.yaml + +```bash +kubectl apply -f ./dapr-localforwarder.yaml +``` + +4. Create the following YAML files + +* native.yaml component + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: native + namespace: default +spec: + type: exporters.native + metadata: + - name: enabled + value: "true" + - name: agentEndpoint + value: "" +``` + +* tracing.yaml configuration + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Configuration +metadata: + name: tracing + namespace: default +spec: + tracing: + samplingRate: "1" +``` + +5. Use kubectl to apply the above CRD files: + +```bash +kubectl apply -f tracing.yaml +kubectl apply -f native.yaml +``` + +6. Deploy your app with tracing + +When running in Kubernetes mode, apply the configuration by adding a `dapr.io/config` annotation to the container that you want to participate in the distributed tracing, as shown in the following example: + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + ... +spec: + ... + template: + metadata: + ... + annotations: + dapr.io/enabled: "true" + dapr.io/app-id: "calculator-front-end" + dapr.io/app-port: "8080" + dapr.io/config: "tracing" +``` + +That's it! There's no need include any SDKs or instrument your application code. Dapr automatically handles the distributed tracing for you. + +> **NOTE**: You can register multiple exporters at the same time, and the tracing logs are forwarded to all registered exporters. + +Deploy and run some applications. After a few minutes, you should see tracing logs appearing in your Application Insights resource. You can also use **Application Map** to examine the topology of your services, as shown below: + +![Application map](../../images/azure-monitor.png) + +> **NOTE**: Only operations going through Dapr API exposed by Dapr sidecar (e.g. service invocation or event publishing) will be displayed in Application Map topology. Direct service invocations (not going through the Dapr API) will not be shown. + +## Tracing configuration + +The `tracing` section under the `Configuration` spec contains the following properties: + +```yml +tracing: + samplingRate: "1" +``` + +The following table lists the different properties. + +Property | Type | Description +---- | ------- | ----------- +samplingRate | string | Set sampling rate for tracing to be enabled or disabled. + + +`samplingRate` is used to enable or disable the tracing. To disable the sampling rate , +set `samplingRate : "0"` in the configuration. The valid range of samplingRate is between 0 and 1 inclusive. The sampling rate determines whether a trace span should be sampled or not based on value. `samplingRate : "1"` will always sample the traces.By default, the sampling rate is 1 in 10,000 + +## References + +* [How-To: Use W3C Trace Context for distributed tracing](../../howto/use-w3c-tracecontext/README.md) diff --git a/howto/diagnose-with-tracing/localforwarder/appinsight-tracing.yaml b/OLD/howto/diagnose-with-tracing/localforwarder/appinsight-tracing.yaml similarity index 100% rename from howto/diagnose-with-tracing/localforwarder/appinsight-tracing.yaml rename to OLD/howto/diagnose-with-tracing/localforwarder/appinsight-tracing.yaml diff --git a/howto/diagnose-with-tracing/localforwarder/dapr-localforwarder.yaml b/OLD/howto/diagnose-with-tracing/localforwarder/dapr-localforwarder.yaml similarity index 100% rename from howto/diagnose-with-tracing/localforwarder/dapr-localforwarder.yaml rename to OLD/howto/diagnose-with-tracing/localforwarder/dapr-localforwarder.yaml diff --git a/howto/diagnose-with-tracing/zipkin.md b/OLD/howto/diagnose-with-tracing/zipkin.md similarity index 100% rename from howto/diagnose-with-tracing/zipkin.md rename to OLD/howto/diagnose-with-tracing/zipkin.md diff --git a/howto/enable-dapr-api-token-based-authentication/README.md b/OLD/howto/enable-dapr-api-token-based-authentication/README.md similarity index 100% rename from howto/enable-dapr-api-token-based-authentication/README.md rename to OLD/howto/enable-dapr-api-token-based-authentication/README.md diff --git a/howto/get-secrets/README.md b/OLD/howto/get-secrets/README.md similarity index 100% rename from howto/get-secrets/README.md rename to OLD/howto/get-secrets/README.md diff --git a/howto/intellij-debugging-daprd/README.md b/OLD/howto/intellij-debugging-daprd/README.md similarity index 100% rename from howto/intellij-debugging-daprd/README.md rename to OLD/howto/intellij-debugging-daprd/README.md diff --git a/howto/invoke-and-discover-services/README.md b/OLD/howto/invoke-and-discover-services/README.md similarity index 100% rename from howto/invoke-and-discover-services/README.md rename to OLD/howto/invoke-and-discover-services/README.md diff --git a/howto/publish-topic/README.md b/OLD/howto/publish-topic/README.md similarity index 100% rename from howto/publish-topic/README.md rename to OLD/howto/publish-topic/README.md diff --git a/howto/pubsub-namespaces/README.md b/OLD/howto/pubsub-namespaces/README.md similarity index 97% rename from howto/pubsub-namespaces/README.md rename to OLD/howto/pubsub-namespaces/README.md index 0adb07e15..9fa3b6229 100644 --- a/howto/pubsub-namespaces/README.md +++ b/OLD/howto/pubsub-namespaces/README.md @@ -1,106 +1,106 @@ -# Using PubSub across multiple namespaces - -In some scenarios, applications can be spread across namespaces and share a queue or topic via PubSub. In this case, the PubSub component must be provisioned on each namespace. - -In this example, we will use the [PubSub sample](https://github.com/dapr/quickstarts/tree/master/pub-sub). Redis installation and the subscribers will be in `namespace-a` while the publisher UI will be on `namespace-b`. This solution should also work if Redis was installed on another namespace or if we used a managed cloud service like Azure ServiceBus. - -The table below shows which resources are deployed to which namespaces: -| Resource | namespace-a | namespace-b | -|-|-|-| -| Redis master | X || -| Redis slave | X || -| Dapr's PubSub component | X | X | -| Node subscriber | X || -| Python subscriber | X || -| React UI publisher | | X| - -## Pre-requisites - -* [Dapr installed](https://github.com/dapr/docs/blob/master/getting-started/environment-setup.md.) on any namespace since Dapr works at the cluster level. -* Checkout and cd into directory for [PubSub sample](https://github.com/dapr/quickstarts/tree/master/pub-sub). - -## Setup `namespace-a` - -Create namespace and switch kubectl to use it. -``` -kubectl create namespace namespace-a -kubectl config set-context --current --namespace=namespace-a -``` - -Install Redis (master and slave) on `namespace-a`, following [these instructions](https://github.com/dapr/docs/blob/master/howto/setup-pub-sub-message-broker/setup-redis.md). - -Now, configure `deploy/redis.yaml`, paying attention to the hostname containing `namespace-a`. - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: pubsub - namespace: default -spec: - type: pubsub.redis - metadata: - - name: "redisHost" - value: "redis-master.namespace-a.svc:6379" - - name: "redisPassword" - value: "YOUR_PASSWORD" -``` - -Deploy resources to `namespace-a`: -``` -kubectl apply -f deploy/redis.yaml -kubectl apply -f deploy/node-subscriber.yaml -kubectl apply -f deploy/python-subscriber.yaml -``` - -## Setup `namespace-b` - -Create namespace and switch kubectl to use it. -``` -kubectl create namespace namespace-b -kubectl config set-context --current --namespace=namespace-b -``` - -Deploy resources to `namespace-b`, including the Redis component: -``` -kubectl apply -f deploy/redis.yaml -kubectl apply -f deploy/react-form.yaml -``` - -Now, find the IP address for react-form, open it on your browser and publish messages to each topic (A, B and C). -``` -kubectl get service -A -``` - -## Confirm subscribers received the messages. - -Switch back to `namespace-a`: -``` -kubectl config set-context --current --namespace=namespace-a -``` - -Find the POD names: -``` -kubectl get pod # Copy POD names and use in the next commands. -``` - -Display logs: -``` -kubectl logs node-subscriber-XYZ node-subscriber -kubectl logs python-subscriber-XYZ python-subscriber -``` - -The messages published on the browser should show in the corresponding subscriber's logs. The Node.js subscriber receives messages of type "A" and "B", while the Python subscriber receives messages of type "A" and "C". - -## Clean up - -``` -kubectl delete -f deploy/redis.yaml --namespace namespace-a -kubectl delete -f deploy/node-subscriber.yaml --namespace namespace-a -kubectl delete -f deploy/python-subscriber.yaml --namespace namespace-a -kubectl delete -f deploy/react-form.yaml --namespace namespace-b -kubectl delete -f deploy/redis.yaml --namespace namespace-b -kubectl config set-context --current --namespace=default -kubectl delete namespace namespace-a -kubectl delete namespace namespace-b +# Using PubSub across multiple namespaces + +In some scenarios, applications can be spread across namespaces and share a queue or topic via PubSub. In this case, the PubSub component must be provisioned on each namespace. + +In this example, we will use the [PubSub sample](https://github.com/dapr/quickstarts/tree/master/pub-sub). Redis installation and the subscribers will be in `namespace-a` while the publisher UI will be on `namespace-b`. This solution should also work if Redis was installed on another namespace or if we used a managed cloud service like Azure ServiceBus. + +The table below shows which resources are deployed to which namespaces: +| Resource | namespace-a | namespace-b | +|-|-|-| +| Redis master | X || +| Redis slave | X || +| Dapr's PubSub component | X | X | +| Node subscriber | X || +| Python subscriber | X || +| React UI publisher | | X| + +## Pre-requisites + +* [Dapr installed](https://github.com/dapr/docs/blob/master/getting-started/environment-setup.md.) on any namespace since Dapr works at the cluster level. +* Checkout and cd into directory for [PubSub sample](https://github.com/dapr/quickstarts/tree/master/pub-sub). + +## Setup `namespace-a` + +Create namespace and switch kubectl to use it. +``` +kubectl create namespace namespace-a +kubectl config set-context --current --namespace=namespace-a +``` + +Install Redis (master and slave) on `namespace-a`, following [these instructions](https://github.com/dapr/docs/blob/master/howto/setup-pub-sub-message-broker/setup-redis.md). + +Now, configure `deploy/redis.yaml`, paying attention to the hostname containing `namespace-a`. + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: pubsub + namespace: default +spec: + type: pubsub.redis + metadata: + - name: "redisHost" + value: "redis-master.namespace-a.svc:6379" + - name: "redisPassword" + value: "YOUR_PASSWORD" +``` + +Deploy resources to `namespace-a`: +``` +kubectl apply -f deploy/redis.yaml +kubectl apply -f deploy/node-subscriber.yaml +kubectl apply -f deploy/python-subscriber.yaml +``` + +## Setup `namespace-b` + +Create namespace and switch kubectl to use it. +``` +kubectl create namespace namespace-b +kubectl config set-context --current --namespace=namespace-b +``` + +Deploy resources to `namespace-b`, including the Redis component: +``` +kubectl apply -f deploy/redis.yaml +kubectl apply -f deploy/react-form.yaml +``` + +Now, find the IP address for react-form, open it on your browser and publish messages to each topic (A, B and C). +``` +kubectl get service -A +``` + +## Confirm subscribers received the messages. + +Switch back to `namespace-a`: +``` +kubectl config set-context --current --namespace=namespace-a +``` + +Find the POD names: +``` +kubectl get pod # Copy POD names and use in the next commands. +``` + +Display logs: +``` +kubectl logs node-subscriber-XYZ node-subscriber +kubectl logs python-subscriber-XYZ python-subscriber +``` + +The messages published on the browser should show in the corresponding subscriber's logs. The Node.js subscriber receives messages of type "A" and "B", while the Python subscriber receives messages of type "A" and "C". + +## Clean up + +``` +kubectl delete -f deploy/redis.yaml --namespace namespace-a +kubectl delete -f deploy/node-subscriber.yaml --namespace namespace-a +kubectl delete -f deploy/python-subscriber.yaml --namespace namespace-a +kubectl delete -f deploy/react-form.yaml --namespace namespace-b +kubectl delete -f deploy/redis.yaml --namespace namespace-b +kubectl config set-context --current --namespace=default +kubectl delete namespace namespace-a +kubectl delete namespace namespace-b ``` \ No newline at end of file diff --git a/howto/pubsub-scopes/README.md b/OLD/howto/pubsub-scopes/README.md similarity index 97% rename from howto/pubsub-scopes/README.md rename to OLD/howto/pubsub-scopes/README.md index fae554e5c..95b05a36c 100644 --- a/howto/pubsub-scopes/README.md +++ b/OLD/howto/pubsub-scopes/README.md @@ -1,133 +1,133 @@ -# Limit the Pub/Sub topics used or scope them to one or more applications - -[Namespaces or component scopes](../components-scopes/README.md) can be used to limit component access to particular applications. These application scopes added to a component limit only the applications with specific IDs to be able to use the component. - -In addition to this general component scope, the following can be limited for pub/sub components: -- the topics which can be used (published or subscribed) -- which applications are allowed to publish to specific topics -- which applications are allowed to subscribe to specific topics - -This is called pub/sub topic scoping. - -Watch this [video](https://www.youtube.com/watch?v=7VdWBBGcbHQ&feature=youtu.be&t=513) on how to use pub/sub topic scoping. - -To use this topic scoping, three metadata properties can be set for a pub/sub component: -- ```spec.metadata.publishingScopes```: the list of applications to topic scopes to allow publishing, separated by semicolons. If an app is not specified in ```publishingScopes```, its allowed to publish to all topics. -- ```spec.metadata.subscriptionScopes```: the list of applications to topic scopes to allow subscription, separated by semicolons. If an app is not specified in ```subscriptionScopes```, its allowed to subscribe to all topics. -- ```spec.metadata.allowedTopics```: a comma-separated list for allowed topics for all applications. ```publishingScopes``` or ```subscriptionScopes``` can be used in addition to add granular limitations. If ```allowedTopics``` is not set, all topics are valid and then ```subscriptionScopes``` and ```publishingScopes``` take place if present. - -These metadata properties can be used for all pub/sub components. The following examples use Redis as pub/sub component. - -## Scenario 1: Limit which application can publish or subscribe to topics - -This can be useful, if you have topics which contain sensitive information and only a subset of your applications are allowed to publish or subscribe to these. - -It can also be used for all topics to have always a "ground truth" for which applications are using which topics as publishers/subscribers. - -Here is an example of three applications and three topics: -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: pubsub - namespace: default -spec: - type: pubsub.redis - metadata: - - name: redisHost - value: "localhost:6379" - - name: redisPassword - value: "" - - name: publishingScopes - value: "app1=topic1;app2=topic2,topic3;app3=" - - name: subscriptionScopes - value: "app2=;app3=topic1" -``` - -The table below shows which application is allowed to publish into the topics: -| Publishing | app1 | app2 | app3 | -|------------|------|------|------| -| topic1 | X | | | -| topic2 | | X | | -| topic3 | | X | | - -The table below shows which application is allowed to subscribe to the topics: -| Subscription | app1 | app2 | app3 | -|--------------|------|------|------| -| topic1 | X | | X | -| topic2 | X | | | -| topic3 | X | | | - -> Note: If an application is not listed (e.g. app1 in subscriptionScopes), it is allowed to subscribe to all topics. Because ```allowedTopics``` (see below of examples) is not used and app1 does not have any subscription scopes, it can also use additional topics not listed above. - -## Scenario 2: Limit which topics can be used by all applications without granular limitations - -A topic is created if a Dapr application sends a message to it. In some scenarios this topic creation should be governed. For example; -- a bug in a Dapr application on generating the topic name can lead to an unlimited amount of topics created -- streamline the topics names and total count and prevent an unlimited growth of topics - -In these situations, ```allowedTopics``` can be used. - -Here is an example of three allowed topics: -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: pubsub - namespace: default -spec: - type: pubsub.redis - metadata: - - name: redisHost - value: "localhost:6379" - - name: redisPassword - value: "" - - name: allowedTopics - value: "topic1,topic2,topic3" -``` - -All applications can use these topics, but only those topics, no others are allowed. - -## Scenario 3: Combine both allowed topics allowed applications that can publish and subscribe - -Sometimes you want to combine both scopes, thus only having a fixed set of allowed topics and specify scoping to certain applications. - -Here is an example of three applications and two topics: -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: pubsub - namespace: default -spec: - type: pubsub.redis - metadata: - - name: redisHost - value: "localhost:6379" - - name: redisPassword - value: "" - - name: allowedTopics - value: "A,B" - - name: publishingScopes - value: "app1=A" - - name: subscriptionScopes - value: "app1=;app2=A" -``` - -> Note: The third application is not listed, because if an app is not specified inside the scopes, it is allowed to use all topics. - -The table below shows which application is allowed to publish into the topics: -| Publishing | app1 | app2 | app3 | -|------------|------|------|------| -| A | X | X | X | -| B | | X | X | - -The table below shows which application is allowed to subscribe to the topics: -| Subscription | app1 | app2 | app3 | -|--------------|------|------|------| -| A | | X | X | -| B | | | X | - -No other topics can be used, only A and B. - -Pub/sub scopes are per pub/sub. You may have pub/sub component named `pubsub` that has one set of scopes, and another `pubsub2` with a different set. The name is the `metadata.name` field in the yaml. +# Limit the Pub/Sub topics used or scope them to one or more applications + +[Namespaces or component scopes](../components-scopes/README.md) can be used to limit component access to particular applications. These application scopes added to a component limit only the applications with specific IDs to be able to use the component. + +In addition to this general component scope, the following can be limited for pub/sub components: +- the topics which can be used (published or subscribed) +- which applications are allowed to publish to specific topics +- which applications are allowed to subscribe to specific topics + +This is called pub/sub topic scoping. + +Watch this [video](https://www.youtube.com/watch?v=7VdWBBGcbHQ&feature=youtu.be&t=513) on how to use pub/sub topic scoping. + +To use this topic scoping, three metadata properties can be set for a pub/sub component: +- ```spec.metadata.publishingScopes```: the list of applications to topic scopes to allow publishing, separated by semicolons. If an app is not specified in ```publishingScopes```, its allowed to publish to all topics. +- ```spec.metadata.subscriptionScopes```: the list of applications to topic scopes to allow subscription, separated by semicolons. If an app is not specified in ```subscriptionScopes```, its allowed to subscribe to all topics. +- ```spec.metadata.allowedTopics```: a comma-separated list for allowed topics for all applications. ```publishingScopes``` or ```subscriptionScopes``` can be used in addition to add granular limitations. If ```allowedTopics``` is not set, all topics are valid and then ```subscriptionScopes``` and ```publishingScopes``` take place if present. + +These metadata properties can be used for all pub/sub components. The following examples use Redis as pub/sub component. + +## Scenario 1: Limit which application can publish or subscribe to topics + +This can be useful, if you have topics which contain sensitive information and only a subset of your applications are allowed to publish or subscribe to these. + +It can also be used for all topics to have always a "ground truth" for which applications are using which topics as publishers/subscribers. + +Here is an example of three applications and three topics: +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: pubsub + namespace: default +spec: + type: pubsub.redis + metadata: + - name: redisHost + value: "localhost:6379" + - name: redisPassword + value: "" + - name: publishingScopes + value: "app1=topic1;app2=topic2,topic3;app3=" + - name: subscriptionScopes + value: "app2=;app3=topic1" +``` + +The table below shows which application is allowed to publish into the topics: +| Publishing | app1 | app2 | app3 | +|------------|------|------|------| +| topic1 | X | | | +| topic2 | | X | | +| topic3 | | X | | + +The table below shows which application is allowed to subscribe to the topics: +| Subscription | app1 | app2 | app3 | +|--------------|------|------|------| +| topic1 | X | | X | +| topic2 | X | | | +| topic3 | X | | | + +> Note: If an application is not listed (e.g. app1 in subscriptionScopes), it is allowed to subscribe to all topics. Because ```allowedTopics``` (see below of examples) is not used and app1 does not have any subscription scopes, it can also use additional topics not listed above. + +## Scenario 2: Limit which topics can be used by all applications without granular limitations + +A topic is created if a Dapr application sends a message to it. In some scenarios this topic creation should be governed. For example; +- a bug in a Dapr application on generating the topic name can lead to an unlimited amount of topics created +- streamline the topics names and total count and prevent an unlimited growth of topics + +In these situations, ```allowedTopics``` can be used. + +Here is an example of three allowed topics: +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: pubsub + namespace: default +spec: + type: pubsub.redis + metadata: + - name: redisHost + value: "localhost:6379" + - name: redisPassword + value: "" + - name: allowedTopics + value: "topic1,topic2,topic3" +``` + +All applications can use these topics, but only those topics, no others are allowed. + +## Scenario 3: Combine both allowed topics allowed applications that can publish and subscribe + +Sometimes you want to combine both scopes, thus only having a fixed set of allowed topics and specify scoping to certain applications. + +Here is an example of three applications and two topics: +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: pubsub + namespace: default +spec: + type: pubsub.redis + metadata: + - name: redisHost + value: "localhost:6379" + - name: redisPassword + value: "" + - name: allowedTopics + value: "A,B" + - name: publishingScopes + value: "app1=A" + - name: subscriptionScopes + value: "app1=;app2=A" +``` + +> Note: The third application is not listed, because if an app is not specified inside the scopes, it is allowed to use all topics. + +The table below shows which application is allowed to publish into the topics: +| Publishing | app1 | app2 | app3 | +|------------|------|------|------| +| A | X | X | X | +| B | | X | X | + +The table below shows which application is allowed to subscribe to the topics: +| Subscription | app1 | app2 | app3 | +|--------------|------|------|------| +| A | | X | X | +| B | | | X | + +No other topics can be used, only A and B. + +Pub/sub scopes are per pub/sub. You may have pub/sub component named `pubsub` that has one set of scopes, and another `pubsub2` with a different set. The name is the `metadata.name` field in the yaml. diff --git a/howto/query-state-store/query-cosmosdb-store.md b/OLD/howto/query-state-store/query-cosmosdb-store.md similarity index 97% rename from howto/query-state-store/query-cosmosdb-store.md rename to OLD/howto/query-state-store/query-cosmosdb-store.md index ffce0f539..367a308cc 100644 --- a/howto/query-state-store/query-cosmosdb-store.md +++ b/OLD/howto/query-state-store/query-cosmosdb-store.md @@ -1,53 +1,53 @@ -# Query Azure Cosmos DB state store - -Dapr doesn't transform state values while saving and retrieving states. Dapr requires all state store implementations to abide by a certain key format scheme (see [Dapr state management spec](../../reference/api/state_api.md). You can directly interact with the underlying store to manipulate the state data, such querying states, creating aggregated views and making backups. - -> **NOTE:** Azure Cosmos DB is a multi-modal database that supports multiple APIs. The default Dapr Cosmos DB state store implementation uses the [Azure Cosmos DB SQL API](https://docs.microsoft.com/en-us/azure/cosmos-db/sql-query-getting-started). - -## 1. Connect to Azure Cosmos DB - -The easiest way to connect to your Cosmos DB instance is to use the Data Explorer on [Azure Management Portal](https://portal.azure.com). Alternatively, you can use [various SDKs and tools](https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-introduction). - -> **NOTE:** The following samples use Cosmos DB [SQL API](https://docs.microsoft.com/en-us/azure/cosmos-db/sql-query-getting-started). When you configure an Azure Cosmos DB for Dapr, you need to specify the exact database and collection to use. The follow samples assume you've already connected to the right database and a collection named "states". - -## 2. List keys by App ID - -To get all state keys associated with application "myapp", use the query: - -```sql -SELECT * FROM states WHERE CONTAINS(states.id, 'myapp||') -``` - -The above query returns all documents with id containing "myapp-", which is the prefix of the state keys. - -## 3. Get specific state data - -To get the state data by a key "balance" for the application "myapp", use the query: - -```sql -SELECT * FROM states WHERE states.id = 'myapp||balance' -``` - -Then, read the **value** field of the returned document. - -To get the state version/ETag, use the command: - -```sql -SELECT states._etag FROM states WHERE states.id = 'myapp||balance' -``` - -## 4. Read actor state - -To get all the state keys associated with an actor with the instance ID "leroy" of actor type "cat" belonging to the application with ID "mypets", use the command: - -```sql -SELECT * FROM states WHERE CONTAINS(states.id, 'mypets||cat||leroy||') -``` - -And to get a specific actor state such as "food", use the command: - -```sql -SELECT * FROM states WHERE states.id = 'mypets||cat||leroy||food' -``` - -> **WARNING:** You should not manually update or delete states in the store. All writes and delete operations should be done via the Dapr runtime. +# Query Azure Cosmos DB state store + +Dapr doesn't transform state values while saving and retrieving states. Dapr requires all state store implementations to abide by a certain key format scheme (see [Dapr state management spec](../../reference/api/state_api.md). You can directly interact with the underlying store to manipulate the state data, such querying states, creating aggregated views and making backups. + +> **NOTE:** Azure Cosmos DB is a multi-modal database that supports multiple APIs. The default Dapr Cosmos DB state store implementation uses the [Azure Cosmos DB SQL API](https://docs.microsoft.com/en-us/azure/cosmos-db/sql-query-getting-started). + +## 1. Connect to Azure Cosmos DB + +The easiest way to connect to your Cosmos DB instance is to use the Data Explorer on [Azure Management Portal](https://portal.azure.com). Alternatively, you can use [various SDKs and tools](https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-introduction). + +> **NOTE:** The following samples use Cosmos DB [SQL API](https://docs.microsoft.com/en-us/azure/cosmos-db/sql-query-getting-started). When you configure an Azure Cosmos DB for Dapr, you need to specify the exact database and collection to use. The follow samples assume you've already connected to the right database and a collection named "states". + +## 2. List keys by App ID + +To get all state keys associated with application "myapp", use the query: + +```sql +SELECT * FROM states WHERE CONTAINS(states.id, 'myapp||') +``` + +The above query returns all documents with id containing "myapp-", which is the prefix of the state keys. + +## 3. Get specific state data + +To get the state data by a key "balance" for the application "myapp", use the query: + +```sql +SELECT * FROM states WHERE states.id = 'myapp||balance' +``` + +Then, read the **value** field of the returned document. + +To get the state version/ETag, use the command: + +```sql +SELECT states._etag FROM states WHERE states.id = 'myapp||balance' +``` + +## 4. Read actor state + +To get all the state keys associated with an actor with the instance ID "leroy" of actor type "cat" belonging to the application with ID "mypets", use the command: + +```sql +SELECT * FROM states WHERE CONTAINS(states.id, 'mypets||cat||leroy||') +``` + +And to get a specific actor state such as "food", use the command: + +```sql +SELECT * FROM states WHERE states.id = 'mypets||cat||leroy||food' +``` + +> **WARNING:** You should not manually update or delete states in the store. All writes and delete operations should be done via the Dapr runtime. diff --git a/howto/query-state-store/query-redis-store.md b/OLD/howto/query-state-store/query-redis-store.md similarity index 97% rename from howto/query-state-store/query-redis-store.md rename to OLD/howto/query-state-store/query-redis-store.md index 86b8356af..ddb325778 100644 --- a/howto/query-state-store/query-redis-store.md +++ b/OLD/howto/query-state-store/query-redis-store.md @@ -1,60 +1,60 @@ -# Query Redis state store - -Dapr doesn't transform state values while saving and retrieving states. Dapr requires all state store implementations to abide by a certain key format scheme (see [Dapr state management spec](../../reference/api/state_api.md). You can directly interact with the underlying store to manipulate the state data, such querying states, creating aggregated views and making backups. - ->**NOTE:** The following examples uses Redis CLI against a Redis store using the default Dapr state store implementation. - -## 1. Connect to Redis - -You can use the official [redis-cli](https://redis.io/topics/rediscli) or any other Redis compatible tools to connect to the Redis state store to directly query Dapr states. If you are running Redis in a container, the easiest way to use redis-cli is to use a container: - -```bash -docker run --rm -it --link redis redis-cli -h -``` - -## 2. List keys by App ID - -To get all state keys associated with application "myapp", use the command: - -```bash -KEYS myapp* -``` - -The above command returns a list of existing keys, for example: - -```bash -1) "myapp||balance" -2) "myapp||amount" -``` - -## 3. Get specific state data - -Dapr saves state values as hash values. Each hash value contains a "data" field, which contains the state data and a "version" field, which contains an ever-incrementing version serving as the ETag. - -For example, to get the state data by a key "balance" for the application "myapp", use the command: - -```bash -HGET myapp||balance data -``` - -To get the state version/ETag, use the command: - -```bash -HGET myapp||balance version -``` - -## 4. Read actor state - -To get all the state keys associated with an actor with the instance ID "leroy" of actor type "cat" belonging to the application with ID "mypets", use the command: - -```bash -KEYS mypets||cat||leroy* -``` - -And to get a specific actor state such as "food", use the command: - -```bash -HGET mypets||cat||leroy||food value -``` - -> **WARNING:** You should not manually update or delete states in the store. All writes and delete operations should be done via the Dapr runtime. +# Query Redis state store + +Dapr doesn't transform state values while saving and retrieving states. Dapr requires all state store implementations to abide by a certain key format scheme (see [Dapr state management spec](../../reference/api/state_api.md). You can directly interact with the underlying store to manipulate the state data, such querying states, creating aggregated views and making backups. + +>**NOTE:** The following examples uses Redis CLI against a Redis store using the default Dapr state store implementation. + +## 1. Connect to Redis + +You can use the official [redis-cli](https://redis.io/topics/rediscli) or any other Redis compatible tools to connect to the Redis state store to directly query Dapr states. If you are running Redis in a container, the easiest way to use redis-cli is to use a container: + +```bash +docker run --rm -it --link redis redis-cli -h +``` + +## 2. List keys by App ID + +To get all state keys associated with application "myapp", use the command: + +```bash +KEYS myapp* +``` + +The above command returns a list of existing keys, for example: + +```bash +1) "myapp||balance" +2) "myapp||amount" +``` + +## 3. Get specific state data + +Dapr saves state values as hash values. Each hash value contains a "data" field, which contains the state data and a "version" field, which contains an ever-incrementing version serving as the ETag. + +For example, to get the state data by a key "balance" for the application "myapp", use the command: + +```bash +HGET myapp||balance data +``` + +To get the state version/ETag, use the command: + +```bash +HGET myapp||balance version +``` + +## 4. Read actor state + +To get all the state keys associated with an actor with the instance ID "leroy" of actor type "cat" belonging to the application with ID "mypets", use the command: + +```bash +KEYS mypets||cat||leroy* +``` + +And to get a specific actor state such as "food", use the command: + +```bash +HGET mypets||cat||leroy||food value +``` + +> **WARNING:** You should not manually update or delete states in the store. All writes and delete operations should be done via the Dapr runtime. diff --git a/howto/query-state-store/query-sqlserver-store.md b/OLD/howto/query-state-store/query-sqlserver-store.md similarity index 97% rename from howto/query-state-store/query-sqlserver-store.md rename to OLD/howto/query-state-store/query-sqlserver-store.md index 35a28191d..33cda5156 100644 --- a/howto/query-state-store/query-sqlserver-store.md +++ b/OLD/howto/query-state-store/query-sqlserver-store.md @@ -1,59 +1,59 @@ -# Query SQL Server state store - -Dapr doesn't transform state values while saving and retrieving states. Dapr requires all state store implementations to abide by a certain key format scheme (see [Dapr state management spec](../../reference/api/state_api.md). You can directly interact with the underlying store to manipulate the state data, such querying states, creating aggregated views and making backups. - -## 1. Connect to SQL Server - -The easiest way to connect to your SQL Server instance is to use the [Azure Data Studio](https://docs.microsoft.com/sql/azure-data-studio/download-azure-data-studio) (Windows, macOS, Linux) or [SQL Server Management Studio](https://docs.microsoft.com/sql/ssms/download-sql-server-management-studio-ssms) (Windows). - -> **NOTE:** The following samples use Azure SQL. When you configure an Azure SQL database for Dapr, you need to specify the exact table name to use. The follow samples assume you've already connected to the right database with a table named "states". - -## 2. List keys by App ID - -To get all state keys associated with application "myapp", use the query: - -```sql -SELECT * FROM states WHERE [Key] LIKE 'myapp-%' -``` - -The above query returns all rows with id containing "myapp-", which is the prefix of the state keys. - -## 3. Get specific state data - -To get the state data by a key "balance" for the application "myapp", use the query: - -```sql -SELECT * FROM states WHERE [Key] = 'myapp-balance' -``` - -Then, read the **Data** field of the returned row. - -To get the state version/ETag, use the command: - -```sql -SELECT [RowVersion] FROM states WHERE [Key] = 'myapp-balance' -``` - -## 4. Get filtered state data - -To get all state data where the value "color" in json data equals to "blue", use the query: - -```sql -SELECT * FROM states WHERE JSON_VALUE([Data], '$.color') = 'blue' -``` - -## 5. Read actor state - -To get all the state keys associated with an actor with the instance ID "leroy" of actor type "cat" belonging to the application with ID "mypets", use the command: - -```sql -SELECT * FROM states WHERE [Key] LIKE 'mypets-cat-leroy-%' -``` - -And to get a specific actor state such as "food", use the command: - -```sql -SELECT * FROM states WHERE [Key] = 'mypets-cat-leroy-food' -``` - -> **WARNING:** You should not manually update or delete states in the store. All writes and delete operations should be done via the Dapr runtime. +# Query SQL Server state store + +Dapr doesn't transform state values while saving and retrieving states. Dapr requires all state store implementations to abide by a certain key format scheme (see [Dapr state management spec](../../reference/api/state_api.md). You can directly interact with the underlying store to manipulate the state data, such querying states, creating aggregated views and making backups. + +## 1. Connect to SQL Server + +The easiest way to connect to your SQL Server instance is to use the [Azure Data Studio](https://docs.microsoft.com/sql/azure-data-studio/download-azure-data-studio) (Windows, macOS, Linux) or [SQL Server Management Studio](https://docs.microsoft.com/sql/ssms/download-sql-server-management-studio-ssms) (Windows). + +> **NOTE:** The following samples use Azure SQL. When you configure an Azure SQL database for Dapr, you need to specify the exact table name to use. The follow samples assume you've already connected to the right database with a table named "states". + +## 2. List keys by App ID + +To get all state keys associated with application "myapp", use the query: + +```sql +SELECT * FROM states WHERE [Key] LIKE 'myapp-%' +``` + +The above query returns all rows with id containing "myapp-", which is the prefix of the state keys. + +## 3. Get specific state data + +To get the state data by a key "balance" for the application "myapp", use the query: + +```sql +SELECT * FROM states WHERE [Key] = 'myapp-balance' +``` + +Then, read the **Data** field of the returned row. + +To get the state version/ETag, use the command: + +```sql +SELECT [RowVersion] FROM states WHERE [Key] = 'myapp-balance' +``` + +## 4. Get filtered state data + +To get all state data where the value "color" in json data equals to "blue", use the query: + +```sql +SELECT * FROM states WHERE JSON_VALUE([Data], '$.color') = 'blue' +``` + +## 5. Read actor state + +To get all the state keys associated with an actor with the instance ID "leroy" of actor type "cat" belonging to the application with ID "mypets", use the command: + +```sql +SELECT * FROM states WHERE [Key] LIKE 'mypets-cat-leroy-%' +``` + +And to get a specific actor state such as "food", use the command: + +```sql +SELECT * FROM states WHERE [Key] = 'mypets-cat-leroy-food' +``` + +> **WARNING:** You should not manually update or delete states in the store. All writes and delete operations should be done via the Dapr runtime. diff --git a/howto/run-with-docker/README.md b/OLD/howto/run-with-docker/README.md similarity index 100% rename from howto/run-with-docker/README.md rename to OLD/howto/run-with-docker/README.md diff --git a/howto/self-hosted-no-docker/README.md b/OLD/howto/self-hosted-no-docker/README.md similarity index 100% rename from howto/self-hosted-no-docker/README.md rename to OLD/howto/self-hosted-no-docker/README.md diff --git a/howto/send-events-with-output-bindings/README.md b/OLD/howto/send-events-with-output-bindings/README.md similarity index 100% rename from howto/send-events-with-output-bindings/README.md rename to OLD/howto/send-events-with-output-bindings/README.md diff --git a/howto/serialize/README.md b/OLD/howto/serialize/README.md similarity index 96% rename from howto/serialize/README.md rename to OLD/howto/serialize/README.md index 7fdc1f16d..4f6893729 100644 --- a/howto/serialize/README.md +++ b/OLD/howto/serialize/README.md @@ -1,146 +1,146 @@ -# Serialization in Dapr's SDKs - -An SDK for Dapr should provide serialization for two use cases. First, for API objects sent through request and response payloads. Second, for objects to be persisted. For both these use cases, a default serialization is provided. In the Java SDK, it is the [DefaultObjectSerializer](https://dapr.github.io/java-sdk/io/dapr/serializer/DefaultObjectSerializer.html) class, providing JSON serialization. - -## Service invocation - -```java - DaprClient client = (new DaprClientBuilder()).build(); - client.invokeService(Verb.POST, "myappid", "saySomething", "My Message", null).block(); -``` - -In the example above, the app will receive a `POST` request for the `saySomething` method with the request payload as `"My Message"` - quoted since the serializer will serialize the input String to JSON. - -```text -POST /saySomething HTTP/1.1 -Host: localhost -Content-Type: text/plain -Content-Length: 12 - -"My Message" -``` - -## State management - -```java - DaprClient client = (new DaprClientBuilder()).build(); - client.saveState("MyStateStore", "MyKey", "My Message").block(); -``` -In this example, `My Message` will be saved. It is not quoted because Dapr's API will internally parse the JSON request object before saving it. - -```JSON -[ - { - "key": "MyKey", - "value": "My Message" - } -] -``` - -## PubSub - -```java - DaprClient client = (new DaprClientBuilder()).build(); - client.publishEvent("TopicName", "My Message").block(); -``` - -The event is published and the content is serialized to `byte[]` and sent to Dapr sidecar. The subscriber will receive it as a [CloudEvent](https://github.com/cloudevents/spec). Cloud event defines `data` as String. Dapr SDK also provides a built-in deserializer for `CloudEvent` object. - -```java - @PostMapping(path = "/TopicName") - public void handleMessage(@RequestBody(required = false) byte[] body) { - // Dapr's event is compliant to CloudEvent. - CloudEvent event = CloudEvent.deserialize(body); - } -``` - -## Bindings - -In this case, the object is serialized to `byte[]` as well and the input binding receives the raw `byte[]` as-is and deserializes it to the expected object type. - -* Output binding: -```java - DaprClient client = (new DaprClientBuilder()).build(); - client.invokeBinding("sample", "My Message").block(); -``` - -* Input binding: -```java - @PostMapping(path = "/sample") - public void handleInputBinding(@RequestBody(required = false) byte[] body) { - String message = (new DefaultObjectSerializer()).deserialize(body, String.class); - System.out.println(message); - } -``` -It should print: -``` -My Message -``` - -## Actor Method invocation -Object serialization and deserialization for invocation of Actor's methods are same as for the service method invocation, the only difference is that the application does not need to deserialize the request or serialize the response since it is all done transparently by the SDK. - -For Actor's methods, the SDK only supports methods with zero or one parameter. - -* Invoking an Actor's method: -```java -public static void main() { - ActorProxyBuilder builder = new ActorProxyBuilder("DemoActor"); - String result = actor.invokeActorMethod("say", "My Message", String.class).block(); -} -``` - -* Implementing an Actor's method: -```java -public String say(String something) { - System.out.println(something); - return "OK"; -} -``` -It should print: -``` - My Message -``` - -## Actor's state management -Actors can also have state. In this case, the state manager will serialize and deserialize the objects using the state serializer and handle it transparently to the application. - -```java -public String actorMethod(String message) { - // Reads a state from key and deserializes it to String. - String previousMessage = super.getActorStateManager().get("lastmessage", String.class).block(); - - // Sets the new state for the key after serializing it. - super.getActorStateManager().set("lastmessage", message).block(); - return previousMessage; -} -``` - -## Default serializer - -The default serializer for Dapr is a JSON serializer with the following expectations: - -1. Use of basic [JSON data types](https://www.w3schools.com/js/js_json_datatypes.asp) for cross-language and cross-platform compatibility: string, number, array, boolean, null and another JSON object. Every complex property type in application's serializable objects (DateTime, for example), should be represented as one of the JSON's basic types. -2. Data persisted with the default serializer should be saved as JSON objects too, without extra quotes or encoding. The example below shows how a string and a JSON object would look like in a Redis store. -```bash -redis-cli MGET "ActorStateIT_StatefulActorService||StatefulActorTest||1581130928192||message -"This is a message to be saved and retrieved." -``` -```bash - redis-cli MGET "ActorStateIT_StatefulActorService||StatefulActorTest||1581130928192||mydata -{"value":"My data value."} -``` -3. Custom serializers must serialize object to `byte[]`. -4. Custom serializers must deserilize `byte[]` to object. -5. When user provides a custom serializer, it should be transferred or persisted as `byte[]`. When persisting, also encode as Base64 string. This is done natively by most JSON libraries. -```bash -redis-cli MGET "ActorStateIT_StatefulActorService||StatefulActorTest||1581130928192||message -"VGhpcyBpcyBhIG1lc3NhZ2UgdG8gYmUgc2F2ZWQgYW5kIHJldHJpZXZlZC4=" -``` -```bash - redis-cli MGET "ActorStateIT_StatefulActorService||StatefulActorTest||1581130928192||mydata -"eyJ2YWx1ZSI6Ik15IGRhdGEgdmFsdWUuIn0=" -``` -6. When serializing a object that is a `byte[]`, the serializer should just pass it through since `byte[]` shoould be already handled internally in the SDK. The same happens when deserializing to `byte[]`. - +# Serialization in Dapr's SDKs + +An SDK for Dapr should provide serialization for two use cases. First, for API objects sent through request and response payloads. Second, for objects to be persisted. For both these use cases, a default serialization is provided. In the Java SDK, it is the [DefaultObjectSerializer](https://dapr.github.io/java-sdk/io/dapr/serializer/DefaultObjectSerializer.html) class, providing JSON serialization. + +## Service invocation + +```java + DaprClient client = (new DaprClientBuilder()).build(); + client.invokeService(Verb.POST, "myappid", "saySomething", "My Message", null).block(); +``` + +In the example above, the app will receive a `POST` request for the `saySomething` method with the request payload as `"My Message"` - quoted since the serializer will serialize the input String to JSON. + +```text +POST /saySomething HTTP/1.1 +Host: localhost +Content-Type: text/plain +Content-Length: 12 + +"My Message" +``` + +## State management + +```java + DaprClient client = (new DaprClientBuilder()).build(); + client.saveState("MyStateStore", "MyKey", "My Message").block(); +``` +In this example, `My Message` will be saved. It is not quoted because Dapr's API will internally parse the JSON request object before saving it. + +```JSON +[ + { + "key": "MyKey", + "value": "My Message" + } +] +``` + +## PubSub + +```java + DaprClient client = (new DaprClientBuilder()).build(); + client.publishEvent("TopicName", "My Message").block(); +``` + +The event is published and the content is serialized to `byte[]` and sent to Dapr sidecar. The subscriber will receive it as a [CloudEvent](https://github.com/cloudevents/spec). Cloud event defines `data` as String. Dapr SDK also provides a built-in deserializer for `CloudEvent` object. + +```java + @PostMapping(path = "/TopicName") + public void handleMessage(@RequestBody(required = false) byte[] body) { + // Dapr's event is compliant to CloudEvent. + CloudEvent event = CloudEvent.deserialize(body); + } +``` + +## Bindings + +In this case, the object is serialized to `byte[]` as well and the input binding receives the raw `byte[]` as-is and deserializes it to the expected object type. + +* Output binding: +```java + DaprClient client = (new DaprClientBuilder()).build(); + client.invokeBinding("sample", "My Message").block(); +``` + +* Input binding: +```java + @PostMapping(path = "/sample") + public void handleInputBinding(@RequestBody(required = false) byte[] body) { + String message = (new DefaultObjectSerializer()).deserialize(body, String.class); + System.out.println(message); + } +``` +It should print: +``` +My Message +``` + +## Actor Method invocation +Object serialization and deserialization for invocation of Actor's methods are same as for the service method invocation, the only difference is that the application does not need to deserialize the request or serialize the response since it is all done transparently by the SDK. + +For Actor's methods, the SDK only supports methods with zero or one parameter. + +* Invoking an Actor's method: +```java +public static void main() { + ActorProxyBuilder builder = new ActorProxyBuilder("DemoActor"); + String result = actor.invokeActorMethod("say", "My Message", String.class).block(); +} +``` + +* Implementing an Actor's method: +```java +public String say(String something) { + System.out.println(something); + return "OK"; +} +``` +It should print: +``` + My Message +``` + +## Actor's state management +Actors can also have state. In this case, the state manager will serialize and deserialize the objects using the state serializer and handle it transparently to the application. + +```java +public String actorMethod(String message) { + // Reads a state from key and deserializes it to String. + String previousMessage = super.getActorStateManager().get("lastmessage", String.class).block(); + + // Sets the new state for the key after serializing it. + super.getActorStateManager().set("lastmessage", message).block(); + return previousMessage; +} +``` + +## Default serializer + +The default serializer for Dapr is a JSON serializer with the following expectations: + +1. Use of basic [JSON data types](https://www.w3schools.com/js/js_json_datatypes.asp) for cross-language and cross-platform compatibility: string, number, array, boolean, null and another JSON object. Every complex property type in application's serializable objects (DateTime, for example), should be represented as one of the JSON's basic types. +2. Data persisted with the default serializer should be saved as JSON objects too, without extra quotes or encoding. The example below shows how a string and a JSON object would look like in a Redis store. +```bash +redis-cli MGET "ActorStateIT_StatefulActorService||StatefulActorTest||1581130928192||message +"This is a message to be saved and retrieved." +``` +```bash + redis-cli MGET "ActorStateIT_StatefulActorService||StatefulActorTest||1581130928192||mydata +{"value":"My data value."} +``` +3. Custom serializers must serialize object to `byte[]`. +4. Custom serializers must deserilize `byte[]` to object. +5. When user provides a custom serializer, it should be transferred or persisted as `byte[]`. When persisting, also encode as Base64 string. This is done natively by most JSON libraries. +```bash +redis-cli MGET "ActorStateIT_StatefulActorService||StatefulActorTest||1581130928192||message +"VGhpcyBpcyBhIG1lc3NhZ2UgdG8gYmUgc2F2ZWQgYW5kIHJldHJpZXZlZC4=" +``` +```bash + redis-cli MGET "ActorStateIT_StatefulActorService||StatefulActorTest||1581130928192||mydata +"eyJ2YWx1ZSI6Ik15IGRhdGEgdmFsdWUuIn0=" +``` +6. When serializing a object that is a `byte[]`, the serializer should just pass it through since `byte[]` shoould be already handled internally in the SDK. The same happens when deserializing to `byte[]`. + *As of now, the [Java SDK](https://github.com/dapr/java-sdk/) is the only Dapr SDK that implements this specification. In the near future, other SDKs will also implement the same.* \ No newline at end of file diff --git a/howto/setup-monitoring-tools/azm-config-map.yaml b/OLD/howto/setup-monitoring-tools/azm-config-map.yaml similarity index 100% rename from howto/setup-monitoring-tools/azm-config-map.yaml rename to OLD/howto/setup-monitoring-tools/azm-config-map.yaml diff --git a/howto/setup-monitoring-tools/fluentd-config-map.yaml b/OLD/howto/setup-monitoring-tools/fluentd-config-map.yaml similarity index 100% rename from howto/setup-monitoring-tools/fluentd-config-map.yaml rename to OLD/howto/setup-monitoring-tools/fluentd-config-map.yaml diff --git a/howto/setup-monitoring-tools/fluentd-dapr-with-rbac.yaml b/OLD/howto/setup-monitoring-tools/fluentd-dapr-with-rbac.yaml similarity index 100% rename from howto/setup-monitoring-tools/fluentd-dapr-with-rbac.yaml rename to OLD/howto/setup-monitoring-tools/fluentd-dapr-with-rbac.yaml diff --git a/howto/setup-monitoring-tools/img/grafana-add-datasources.png b/OLD/howto/setup-monitoring-tools/img/grafana-add-datasources.png similarity index 100% rename from howto/setup-monitoring-tools/img/grafana-add-datasources.png rename to OLD/howto/setup-monitoring-tools/img/grafana-add-datasources.png diff --git a/howto/setup-monitoring-tools/img/grafana-datasources.png b/OLD/howto/setup-monitoring-tools/img/grafana-datasources.png similarity index 100% rename from howto/setup-monitoring-tools/img/grafana-datasources.png rename to OLD/howto/setup-monitoring-tools/img/grafana-datasources.png diff --git a/howto/setup-monitoring-tools/img/grafana-prometheus-dapr-server-url.png b/OLD/howto/setup-monitoring-tools/img/grafana-prometheus-dapr-server-url.png similarity index 100% rename from howto/setup-monitoring-tools/img/grafana-prometheus-dapr-server-url.png rename to OLD/howto/setup-monitoring-tools/img/grafana-prometheus-dapr-server-url.png diff --git a/howto/setup-monitoring-tools/img/grafana-uploadjson.png b/OLD/howto/setup-monitoring-tools/img/grafana-uploadjson.png similarity index 100% rename from howto/setup-monitoring-tools/img/grafana-uploadjson.png rename to OLD/howto/setup-monitoring-tools/img/grafana-uploadjson.png diff --git a/howto/setup-monitoring-tools/img/kibana-1.png b/OLD/howto/setup-monitoring-tools/img/kibana-1.png similarity index 100% rename from howto/setup-monitoring-tools/img/kibana-1.png rename to OLD/howto/setup-monitoring-tools/img/kibana-1.png diff --git a/howto/setup-monitoring-tools/img/kibana-2.png b/OLD/howto/setup-monitoring-tools/img/kibana-2.png similarity index 100% rename from howto/setup-monitoring-tools/img/kibana-2.png rename to OLD/howto/setup-monitoring-tools/img/kibana-2.png diff --git a/howto/setup-monitoring-tools/img/kibana-3.png b/OLD/howto/setup-monitoring-tools/img/kibana-3.png similarity index 100% rename from howto/setup-monitoring-tools/img/kibana-3.png rename to OLD/howto/setup-monitoring-tools/img/kibana-3.png diff --git a/howto/setup-monitoring-tools/img/kibana-4.png b/OLD/howto/setup-monitoring-tools/img/kibana-4.png similarity index 100% rename from howto/setup-monitoring-tools/img/kibana-4.png rename to OLD/howto/setup-monitoring-tools/img/kibana-4.png diff --git a/howto/setup-monitoring-tools/img/kibana-5.png b/OLD/howto/setup-monitoring-tools/img/kibana-5.png similarity index 100% rename from howto/setup-monitoring-tools/img/kibana-5.png rename to OLD/howto/setup-monitoring-tools/img/kibana-5.png diff --git a/howto/setup-monitoring-tools/img/kibana-6.png b/OLD/howto/setup-monitoring-tools/img/kibana-6.png similarity index 100% rename from howto/setup-monitoring-tools/img/kibana-6.png rename to OLD/howto/setup-monitoring-tools/img/kibana-6.png diff --git a/howto/setup-monitoring-tools/img/kibana-7.png b/OLD/howto/setup-monitoring-tools/img/kibana-7.png similarity index 100% rename from howto/setup-monitoring-tools/img/kibana-7.png rename to OLD/howto/setup-monitoring-tools/img/kibana-7.png diff --git a/howto/setup-monitoring-tools/observe-metrics-with-grafana.md b/OLD/howto/setup-monitoring-tools/observe-metrics-with-grafana.md similarity index 100% rename from howto/setup-monitoring-tools/observe-metrics-with-grafana.md rename to OLD/howto/setup-monitoring-tools/observe-metrics-with-grafana.md diff --git a/howto/setup-monitoring-tools/observe-metrics-with-prometheus-locally.md b/OLD/howto/setup-monitoring-tools/observe-metrics-with-prometheus-locally.md similarity index 100% rename from howto/setup-monitoring-tools/observe-metrics-with-prometheus-locally.md rename to OLD/howto/setup-monitoring-tools/observe-metrics-with-prometheus-locally.md diff --git a/howto/setup-monitoring-tools/setup-azure-monitor.md b/OLD/howto/setup-monitoring-tools/setup-azure-monitor.md similarity index 100% rename from howto/setup-monitoring-tools/setup-azure-monitor.md rename to OLD/howto/setup-monitoring-tools/setup-azure-monitor.md diff --git a/howto/setup-monitoring-tools/setup-fluentd-es-kibana.md b/OLD/howto/setup-monitoring-tools/setup-fluentd-es-kibana.md similarity index 100% rename from howto/setup-monitoring-tools/setup-fluentd-es-kibana.md rename to OLD/howto/setup-monitoring-tools/setup-fluentd-es-kibana.md diff --git a/howto/setup-monitoring-tools/setup-prometheus-grafana.md b/OLD/howto/setup-monitoring-tools/setup-prometheus-grafana.md similarity index 100% rename from howto/setup-monitoring-tools/setup-prometheus-grafana.md rename to OLD/howto/setup-monitoring-tools/setup-prometheus-grafana.md diff --git a/howto/setup-pub-sub-message-broker/README.md b/OLD/howto/setup-pub-sub-message-broker/README.md similarity index 100% rename from howto/setup-pub-sub-message-broker/README.md rename to OLD/howto/setup-pub-sub-message-broker/README.md diff --git a/howto/setup-pub-sub-message-broker/setup-azure-eventhubs.md b/OLD/howto/setup-pub-sub-message-broker/setup-azure-eventhubs.md similarity index 100% rename from howto/setup-pub-sub-message-broker/setup-azure-eventhubs.md rename to OLD/howto/setup-pub-sub-message-broker/setup-azure-eventhubs.md diff --git a/howto/setup-pub-sub-message-broker/setup-azure-servicebus.md b/OLD/howto/setup-pub-sub-message-broker/setup-azure-servicebus.md similarity index 100% rename from howto/setup-pub-sub-message-broker/setup-azure-servicebus.md rename to OLD/howto/setup-pub-sub-message-broker/setup-azure-servicebus.md diff --git a/howto/setup-pub-sub-message-broker/setup-gcp.md b/OLD/howto/setup-pub-sub-message-broker/setup-gcp.md similarity index 100% rename from howto/setup-pub-sub-message-broker/setup-gcp.md rename to OLD/howto/setup-pub-sub-message-broker/setup-gcp.md diff --git a/howto/setup-pub-sub-message-broker/setup-hazelcast.md b/OLD/howto/setup-pub-sub-message-broker/setup-hazelcast.md similarity index 100% rename from howto/setup-pub-sub-message-broker/setup-hazelcast.md rename to OLD/howto/setup-pub-sub-message-broker/setup-hazelcast.md diff --git a/howto/setup-pub-sub-message-broker/setup-kafka.md b/OLD/howto/setup-pub-sub-message-broker/setup-kafka.md similarity index 100% rename from howto/setup-pub-sub-message-broker/setup-kafka.md rename to OLD/howto/setup-pub-sub-message-broker/setup-kafka.md diff --git a/howto/setup-pub-sub-message-broker/setup-mqtt.md b/OLD/howto/setup-pub-sub-message-broker/setup-mqtt.md similarity index 100% rename from howto/setup-pub-sub-message-broker/setup-mqtt.md rename to OLD/howto/setup-pub-sub-message-broker/setup-mqtt.md diff --git a/howto/setup-pub-sub-message-broker/setup-nats.md b/OLD/howto/setup-pub-sub-message-broker/setup-nats.md similarity index 100% rename from howto/setup-pub-sub-message-broker/setup-nats.md rename to OLD/howto/setup-pub-sub-message-broker/setup-nats.md diff --git a/howto/setup-pub-sub-message-broker/setup-pulsar.md b/OLD/howto/setup-pub-sub-message-broker/setup-pulsar.md similarity index 100% rename from howto/setup-pub-sub-message-broker/setup-pulsar.md rename to OLD/howto/setup-pub-sub-message-broker/setup-pulsar.md diff --git a/howto/setup-pub-sub-message-broker/setup-rabbitmq.md b/OLD/howto/setup-pub-sub-message-broker/setup-rabbitmq.md similarity index 100% rename from howto/setup-pub-sub-message-broker/setup-rabbitmq.md rename to OLD/howto/setup-pub-sub-message-broker/setup-rabbitmq.md diff --git a/howto/setup-pub-sub-message-broker/setup-redis.md b/OLD/howto/setup-pub-sub-message-broker/setup-redis.md similarity index 100% rename from howto/setup-pub-sub-message-broker/setup-redis.md rename to OLD/howto/setup-pub-sub-message-broker/setup-redis.md diff --git a/howto/setup-pub-sub-message-broker/setup-snssqs.md b/OLD/howto/setup-pub-sub-message-broker/setup-snssqs.md similarity index 100% rename from howto/setup-pub-sub-message-broker/setup-snssqs.md rename to OLD/howto/setup-pub-sub-message-broker/setup-snssqs.md diff --git a/howto/setup-secret-store/README.md b/OLD/howto/setup-secret-store/README.md similarity index 100% rename from howto/setup-secret-store/README.md rename to OLD/howto/setup-secret-store/README.md diff --git a/howto/setup-secret-store/aws-secret-manager.md b/OLD/howto/setup-secret-store/aws-secret-manager.md similarity index 100% rename from howto/setup-secret-store/aws-secret-manager.md rename to OLD/howto/setup-secret-store/aws-secret-manager.md diff --git a/howto/setup-secret-store/azure-keyvault-managed-identity.md b/OLD/howto/setup-secret-store/azure-keyvault-managed-identity.md similarity index 100% rename from howto/setup-secret-store/azure-keyvault-managed-identity.md rename to OLD/howto/setup-secret-store/azure-keyvault-managed-identity.md diff --git a/howto/setup-secret-store/azure-keyvault.md b/OLD/howto/setup-secret-store/azure-keyvault.md similarity index 100% rename from howto/setup-secret-store/azure-keyvault.md rename to OLD/howto/setup-secret-store/azure-keyvault.md diff --git a/howto/setup-secret-store/envvar-secret-store.md b/OLD/howto/setup-secret-store/envvar-secret-store.md similarity index 100% rename from howto/setup-secret-store/envvar-secret-store.md rename to OLD/howto/setup-secret-store/envvar-secret-store.md diff --git a/howto/setup-secret-store/file-secret-store.md b/OLD/howto/setup-secret-store/file-secret-store.md similarity index 100% rename from howto/setup-secret-store/file-secret-store.md rename to OLD/howto/setup-secret-store/file-secret-store.md diff --git a/howto/setup-secret-store/gcp-secret-manager.md b/OLD/howto/setup-secret-store/gcp-secret-manager.md similarity index 100% rename from howto/setup-secret-store/gcp-secret-manager.md rename to OLD/howto/setup-secret-store/gcp-secret-manager.md diff --git a/howto/setup-secret-store/hashicorp-vault.md b/OLD/howto/setup-secret-store/hashicorp-vault.md similarity index 100% rename from howto/setup-secret-store/hashicorp-vault.md rename to OLD/howto/setup-secret-store/hashicorp-vault.md diff --git a/howto/setup-secret-store/kubernetes.md b/OLD/howto/setup-secret-store/kubernetes.md similarity index 100% rename from howto/setup-secret-store/kubernetes.md rename to OLD/howto/setup-secret-store/kubernetes.md diff --git a/howto/setup-state-store/README.md b/OLD/howto/setup-state-store/README.md similarity index 100% rename from howto/setup-state-store/README.md rename to OLD/howto/setup-state-store/README.md diff --git a/howto/setup-state-store/setup-aerospike.md b/OLD/howto/setup-state-store/setup-aerospike.md similarity index 100% rename from howto/setup-state-store/setup-aerospike.md rename to OLD/howto/setup-state-store/setup-aerospike.md diff --git a/howto/setup-state-store/setup-azure-blobstorage.md b/OLD/howto/setup-state-store/setup-azure-blobstorage.md similarity index 100% rename from howto/setup-state-store/setup-azure-blobstorage.md rename to OLD/howto/setup-state-store/setup-azure-blobstorage.md diff --git a/howto/setup-state-store/setup-azure-cosmosdb.md b/OLD/howto/setup-state-store/setup-azure-cosmosdb.md similarity index 100% rename from howto/setup-state-store/setup-azure-cosmosdb.md rename to OLD/howto/setup-state-store/setup-azure-cosmosdb.md diff --git a/howto/setup-state-store/setup-azure-tablestorage.md b/OLD/howto/setup-state-store/setup-azure-tablestorage.md similarity index 100% rename from howto/setup-state-store/setup-azure-tablestorage.md rename to OLD/howto/setup-state-store/setup-azure-tablestorage.md diff --git a/howto/setup-state-store/setup-cassandra.md b/OLD/howto/setup-state-store/setup-cassandra.md similarity index 100% rename from howto/setup-state-store/setup-cassandra.md rename to OLD/howto/setup-state-store/setup-cassandra.md diff --git a/howto/setup-state-store/setup-cloudstate.md b/OLD/howto/setup-state-store/setup-cloudstate.md similarity index 100% rename from howto/setup-state-store/setup-cloudstate.md rename to OLD/howto/setup-state-store/setup-cloudstate.md diff --git a/howto/setup-state-store/setup-consul.md b/OLD/howto/setup-state-store/setup-consul.md similarity index 100% rename from howto/setup-state-store/setup-consul.md rename to OLD/howto/setup-state-store/setup-consul.md diff --git a/howto/setup-state-store/setup-couchbase.md b/OLD/howto/setup-state-store/setup-couchbase.md similarity index 100% rename from howto/setup-state-store/setup-couchbase.md rename to OLD/howto/setup-state-store/setup-couchbase.md diff --git a/howto/setup-state-store/setup-etcd.md b/OLD/howto/setup-state-store/setup-etcd.md similarity index 100% rename from howto/setup-state-store/setup-etcd.md rename to OLD/howto/setup-state-store/setup-etcd.md diff --git a/howto/setup-state-store/setup-firestore.md b/OLD/howto/setup-state-store/setup-firestore.md similarity index 100% rename from howto/setup-state-store/setup-firestore.md rename to OLD/howto/setup-state-store/setup-firestore.md diff --git a/howto/setup-state-store/setup-hazelcast.md b/OLD/howto/setup-state-store/setup-hazelcast.md similarity index 100% rename from howto/setup-state-store/setup-hazelcast.md rename to OLD/howto/setup-state-store/setup-hazelcast.md diff --git a/howto/setup-state-store/setup-memcached.md b/OLD/howto/setup-state-store/setup-memcached.md similarity index 100% rename from howto/setup-state-store/setup-memcached.md rename to OLD/howto/setup-state-store/setup-memcached.md diff --git a/howto/setup-state-store/setup-mongodb.md b/OLD/howto/setup-state-store/setup-mongodb.md similarity index 100% rename from howto/setup-state-store/setup-mongodb.md rename to OLD/howto/setup-state-store/setup-mongodb.md diff --git a/howto/setup-state-store/setup-postgresql.md b/OLD/howto/setup-state-store/setup-postgresql.md similarity index 100% rename from howto/setup-state-store/setup-postgresql.md rename to OLD/howto/setup-state-store/setup-postgresql.md diff --git a/howto/setup-state-store/setup-redis.md b/OLD/howto/setup-state-store/setup-redis.md similarity index 100% rename from howto/setup-state-store/setup-redis.md rename to OLD/howto/setup-state-store/setup-redis.md diff --git a/howto/setup-state-store/setup-sqlserver.md b/OLD/howto/setup-state-store/setup-sqlserver.md similarity index 100% rename from howto/setup-state-store/setup-sqlserver.md rename to OLD/howto/setup-state-store/setup-sqlserver.md diff --git a/howto/setup-state-store/setup-zookeeper.md b/OLD/howto/setup-state-store/setup-zookeeper.md similarity index 100% rename from howto/setup-state-store/setup-zookeeper.md rename to OLD/howto/setup-state-store/setup-zookeeper.md diff --git a/howto/setup-state-store/supported-state-stores.md b/OLD/howto/setup-state-store/supported-state-stores.md similarity index 100% rename from howto/setup-state-store/supported-state-stores.md rename to OLD/howto/setup-state-store/supported-state-stores.md diff --git a/howto/stateful-replicated-service/README.md b/OLD/howto/stateful-replicated-service/README.md similarity index 100% rename from howto/stateful-replicated-service/README.md rename to OLD/howto/stateful-replicated-service/README.md diff --git a/howto/trigger-app-with-input-binding/README.md b/OLD/howto/trigger-app-with-input-binding/README.md similarity index 100% rename from howto/trigger-app-with-input-binding/README.md rename to OLD/howto/trigger-app-with-input-binding/README.md diff --git a/howto/use-w3c-tracecontext/README.md b/OLD/howto/use-w3c-tracecontext/README.md similarity index 100% rename from howto/use-w3c-tracecontext/README.md rename to OLD/howto/use-w3c-tracecontext/README.md diff --git a/howto/vscode-debugging-daprd/README.md b/OLD/howto/vscode-debugging-daprd/README.md similarity index 100% rename from howto/vscode-debugging-daprd/README.md rename to OLD/howto/vscode-debugging-daprd/README.md diff --git a/howto/vscode-remote-containers/README.md b/OLD/howto/vscode-remote-containers/README.md similarity index 100% rename from howto/vscode-remote-containers/README.md rename to OLD/howto/vscode-remote-containers/README.md diff --git a/howto/windows-k8s/README.md b/OLD/howto/windows-k8s/README.md similarity index 100% rename from howto/windows-k8s/README.md rename to OLD/howto/windows-k8s/README.md diff --git a/images/actor_game_example.png b/OLD/images/actor_game_example.png similarity index 100% rename from images/actor_game_example.png rename to OLD/images/actor_game_example.png diff --git a/images/actor_pattern.png b/OLD/images/actor_pattern.png similarity index 100% rename from images/actor_pattern.png rename to OLD/images/actor_pattern.png diff --git a/images/actors_client.png b/OLD/images/actors_client.png similarity index 100% rename from images/actors_client.png rename to OLD/images/actors_client.png diff --git a/images/actors_communication.png b/OLD/images/actors_communication.png similarity index 100% rename from images/actors_communication.png rename to OLD/images/actors_communication.png diff --git a/images/actors_concurrency.png b/OLD/images/actors_concurrency.png similarity index 100% rename from images/actors_concurrency.png rename to OLD/images/actors_concurrency.png diff --git a/images/actors_id_hashing_calling.png b/OLD/images/actors_id_hashing_calling.png similarity index 100% rename from images/actors_id_hashing_calling.png rename to OLD/images/actors_id_hashing_calling.png diff --git a/images/actors_placement_service_registration.png b/OLD/images/actors_placement_service_registration.png similarity index 100% rename from images/actors_placement_service_registration.png rename to OLD/images/actors_placement_service_registration.png diff --git a/images/actors_server.png b/OLD/images/actors_server.png similarity index 100% rename from images/actors_server.png rename to OLD/images/actors_server.png diff --git a/images/alloc.png b/OLD/images/alloc.png similarity index 100% rename from images/alloc.png rename to OLD/images/alloc.png diff --git a/images/azure-monitor.png b/OLD/images/azure-monitor.png similarity index 100% rename from images/azure-monitor.png rename to OLD/images/azure-monitor.png diff --git a/images/building_blocks.png b/OLD/images/building_blocks.png similarity index 100% rename from images/building_blocks.png rename to OLD/images/building_blocks.png diff --git a/images/concepts-building-blocks.png b/OLD/images/concepts-building-blocks.png similarity index 100% rename from images/concepts-building-blocks.png rename to OLD/images/concepts-building-blocks.png diff --git a/images/dynamic_range.png b/OLD/images/dynamic_range.png similarity index 100% rename from images/dynamic_range.png rename to OLD/images/dynamic_range.png diff --git a/images/heap.png b/OLD/images/heap.png similarity index 100% rename from images/heap.png rename to OLD/images/heap.png diff --git a/images/intellij_debug_app.png b/OLD/images/intellij_debug_app.png similarity index 100% rename from images/intellij_debug_app.png rename to OLD/images/intellij_debug_app.png diff --git a/images/intellij_debug_menu.png b/OLD/images/intellij_debug_menu.png similarity index 100% rename from images/intellij_debug_menu.png rename to OLD/images/intellij_debug_menu.png diff --git a/images/intellij_edit_run_configuration.png b/OLD/images/intellij_edit_run_configuration.png similarity index 100% rename from images/intellij_edit_run_configuration.png rename to OLD/images/intellij_edit_run_configuration.png diff --git a/images/intellij_start_dapr.png b/OLD/images/intellij_start_dapr.png similarity index 100% rename from images/intellij_start_dapr.png rename to OLD/images/intellij_start_dapr.png diff --git a/images/middleware.png b/OLD/images/middleware.png similarity index 100% rename from images/middleware.png rename to OLD/images/middleware.png diff --git a/images/overview-sidecar-kubernetes.png b/OLD/images/overview-sidecar-kubernetes.png similarity index 100% rename from images/overview-sidecar-kubernetes.png rename to OLD/images/overview-sidecar-kubernetes.png diff --git a/images/overview-sidecar.png b/OLD/images/overview-sidecar.png similarity index 100% rename from images/overview-sidecar.png rename to OLD/images/overview-sidecar.png diff --git a/images/overview.png b/OLD/images/overview.png similarity index 100% rename from images/overview.png rename to OLD/images/overview.png diff --git a/images/overview_kubernetes.png b/OLD/images/overview_kubernetes.png similarity index 100% rename from images/overview_kubernetes.png rename to OLD/images/overview_kubernetes.png diff --git a/images/overview_standalone.png b/OLD/images/overview_standalone.png similarity index 100% rename from images/overview_standalone.png rename to OLD/images/overview_standalone.png diff --git a/images/programming_experience.png b/OLD/images/programming_experience.png similarity index 100% rename from images/programming_experience.png rename to OLD/images/programming_experience.png diff --git a/images/sample_trace.png b/OLD/images/sample_trace.png similarity index 100% rename from images/sample_trace.png rename to OLD/images/sample_trace.png diff --git a/images/secrets_azure_aks_keyvault.png b/OLD/images/secrets_azure_aks_keyvault.png similarity index 100% rename from images/secrets_azure_aks_keyvault.png rename to OLD/images/secrets_azure_aks_keyvault.png diff --git a/images/secrets_cloud_stores.png b/OLD/images/secrets_cloud_stores.png similarity index 100% rename from images/secrets_cloud_stores.png rename to OLD/images/secrets_cloud_stores.png diff --git a/images/secrets_kubernetes_store.png b/OLD/images/secrets_kubernetes_store.png similarity index 100% rename from images/secrets_kubernetes_store.png rename to OLD/images/secrets_kubernetes_store.png diff --git a/images/security-mTLS-dapr-system-services.png b/OLD/images/security-mTLS-dapr-system-services.png similarity index 100% rename from images/security-mTLS-dapr-system-services.png rename to OLD/images/security-mTLS-dapr-system-services.png diff --git a/images/security-mTLS-sentry-kubernetes.png b/OLD/images/security-mTLS-sentry-kubernetes.png similarity index 100% rename from images/security-mTLS-sentry-kubernetes.png rename to OLD/images/security-mTLS-sentry-kubernetes.png diff --git a/images/security-mTLS-sentry-selfhosted.png b/OLD/images/security-mTLS-sentry-selfhosted.png similarity index 100% rename from images/security-mTLS-sentry-selfhosted.png rename to OLD/images/security-mTLS-sentry-selfhosted.png diff --git a/images/service-invocation.png b/OLD/images/service-invocation.png similarity index 100% rename from images/service-invocation.png rename to OLD/images/service-invocation.png diff --git a/images/state_management.png b/OLD/images/state_management.png similarity index 100% rename from images/state_management.png rename to OLD/images/state_management.png diff --git a/images/threat_model.png b/OLD/images/threat_model.png similarity index 100% rename from images/threat_model.png rename to OLD/images/threat_model.png diff --git a/images/tracing.png b/OLD/images/tracing.png similarity index 100% rename from images/tracing.png rename to OLD/images/tracing.png diff --git a/images/vscode_remote_containers.png b/OLD/images/vscode_remote_containers.png similarity index 100% rename from images/vscode_remote_containers.png rename to OLD/images/vscode_remote_containers.png diff --git a/images/zipkin_ui.png b/OLD/images/zipkin_ui.png similarity index 100% rename from images/zipkin_ui.png rename to OLD/images/zipkin_ui.png diff --git a/overview/README.md b/OLD/overview/README.md similarity index 100% rename from overview/README.md rename to OLD/overview/README.md diff --git a/presentations/Dapr Presentation Deck.pptx b/OLD/presentations/Dapr Presentation Deck.pptx similarity index 100% rename from presentations/Dapr Presentation Deck.pptx rename to OLD/presentations/Dapr Presentation Deck.pptx diff --git a/presentations/PastPresentations/2019IgniteCloudNativeApps.pdf b/OLD/presentations/PastPresentations/2019IgniteCloudNativeApps.pdf similarity index 100% rename from presentations/PastPresentations/2019IgniteCloudNativeApps.pdf rename to OLD/presentations/PastPresentations/2019IgniteCloudNativeApps.pdf diff --git a/presentations/PastPresentations/2020ReadyCloudNativeApps.pdf b/OLD/presentations/PastPresentations/2020ReadyCloudNativeApps.pdf similarity index 100% rename from presentations/PastPresentations/2020ReadyCloudNativeApps.pdf rename to OLD/presentations/PastPresentations/2020ReadyCloudNativeApps.pdf diff --git a/presentations/README.md b/OLD/presentations/README.md similarity index 100% rename from presentations/README.md rename to OLD/presentations/README.md diff --git a/walkthroughs/daprrun.md b/OLD/walkthroughs/daprrun.md similarity index 100% rename from walkthroughs/daprrun.md rename to OLD/walkthroughs/daprrun.md diff --git a/concepts/README.md b/concepts/README.md deleted file mode 100644 index 868a0606b..000000000 --- a/concepts/README.md +++ /dev/null @@ -1,73 +0,0 @@ -# Dapr concepts - -The goal of these topics is to provide an understanding of the key concepts used in the Dapr documentation. - -## Contents - - - [Building blocks](#building-blocks) - - [Components](#components) - - [Configuration](#configuration) - - [Secrets](#secrets) - - [Hosting environments](#hosting-environments) - -## Building blocks - -A [building block](./architecture/building_blocks.md) is as an HTTP or gRPC API that can be called from user code and uses one or more Dapr components. Dapr consists of a set of building blocks, with extensibility to add new building blocks. - -The diagram below shows how building blocks expose a public API that is called from your code, using components to implement the building blocks' capability. - - - -The following are the building blocks provided by Dapr: - - - -| Building Block | Endpoint | Description | -|----------------|----------|-------------| -| [**Service-to-Service Invocation**](./service-invocation/README.md) | `/v1.0/invoke` | Service invocation enables applications to communicate with each other through well-known endpoints in the form of http or gRPC messages. Dapr provides an endpoint that acts as a combination of a reverse proxy with built-in service discovery, while leveraging built-in distributed tracing and error handling. -| [**State Management**](./state-management/README.md) | `/v1.0/state` | Application state is anything an application wants to preserve beyond a single session. Dapr provides a key/value-based state API with pluggable state stores for persistence. -| [**Publish and Subscribe**](./publish-subscribe-messaging/README.md) | `/v1.0/publish` `/v1.0/subscribe`| Pub/Sub is a loosely coupled messaging pattern where senders (or publishers) publishes messages to a topic, to which subscribers subscribe. Dapr supports the pub/sub pattern between applications. -| [**Resource Bindings**](./bindings/README.md)| `/v1.0/bindings` | A binding provides a bi-directional connection to an external cloud/on-premise service or system. Dapr allows you to invoke the external service through the Dapr binding API, and it allows your application to be triggered by events sent by the connected service. -| [**Actors**](./actors/README.md) | `/v1.0/actors` | An actor is an isolated, independent unit of compute and state with single-threaded execution. Dapr provides an actor implementation based on the Virtual Actor pattern which provides a single-threaded programming model and where actors are garbage collected when not in use. See * [Actor Overview](./actors#understanding-actors) -| [**Observability**](./observability/README.md) | `N/A` | Dapr system components and runtime emit metrics, logs, and traces to debug, operate and monitor Dapr system services, components and user applications. -| [**Secrets**](./secrets/README.md) | `/v1.0/secrets` | Dapr offers a secrets building block API and integrates with secret stores such as Azure Key Vault and Kubernetes to store the secrets. Service code can call the secrets API to retrieve secrets out of the Dapr supported secret stores. - -## Components - -Dapr uses a modular design where functionality is delivered as a component. Each component has an interface definition. All of the components are pluggable so that you can swap out one component with the same interface for another. The [components contrib repo](https://github.com/dapr/components-contrib) is where you can contribute implementations for the component interfaces and extends Dapr's capabilities. - - A building block can use any combination of components. For example the [actors](./actors) building block and the state management building block both use state components. As another example, the pub/sub building block uses [pub/sub](./publish-subscribe-messaging/README.md) components. - - You can get a list of current components available in the current hosting environment using the `dapr components` CLI command. - - The following are the component types provided by Dapr: - -* [Service discovery](https://github.com/dapr/components-contrib/tree/master/nameresolution) -* [State](https://github.com/dapr/components-contrib/tree/master/state) -* [Pub/sub](https://github.com/dapr/components-contrib/tree/master/pubsub) -* [Bindings](https://github.com/dapr/components-contrib/tree/master/bindings) -* [Middleware](https://github.com/dapr/components-contrib/tree/master/middleware) -* [Secret stores](https://github.com/dapr/components-contrib/tree/master/secretstores) -* [Tracing exporters](https://github.com/dapr/components-contrib/tree/master/exporters) - -### Service invocation and service discovery components -Service discovery components are used with the [Service Invocation](./service-invocation/README.md) building block to integrate with the hosting environment to provide service-to-service discovery. For example, the Kubernetes service discovery component integrates with the kubernetes DNS service and self hosted uses mDNS. - -### Service invocation and middleware components -Dapr allows custom [**middleware**](./middleware/README.md) to be plugged into the request processing pipeline. Middleware can perform additional actions on a request, such as authentication, encryption and message transformation before the request is routed to the user code, or before the request is returned to the client. The middleware components are used with the [Service Invocation](./service-invocation/README.md) building block. - -### Secret store components -In Dapr, a [**secret**](./secrets/README.md) is any piece of private information that you want to guard against unwanted users. Secretstores, used to store secrets, are Dapr components and can be used by any of the building blocks. - -## Configuration - -Dapr [Configuration](./configuration/README.md) defines a policy that affects how any Dapr sidecar instance behaves, such as using [distributed tracing](./observability/traces.md) or a [middleware component](./middleware/README.md). Configuration can be applied to Dapr sidecar instances dynamically. - - You can get a list of current configurations available in the current the hosting environment using the `dapr configurations` CLI command. - -## Hosting environments - -Dapr can run on multiple hosting platforms. The supported hosting platforms are: - -* [**Self hosted**](./hosting/README.md#running-dapr-on-a-local-developer-machine-in-standalone-mode). Dapr runs on a single machine either as a process or in a container. Used for local development or running on a single machine execution -* [**Kubernetes**](./hosting/README.md#running-dapr-in-kubernetes-mode). Dapr runs on any Kubernetes cluster either from a cloud provider or on-premises. diff --git a/concepts/architecture/README.md b/concepts/architecture/README.md deleted file mode 100644 index 9dfdf1579..000000000 --- a/concepts/architecture/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Dapr architecture - -- [Building Blocks](./building_blocks.md) diff --git a/concepts/architecture/building_blocks.md b/concepts/architecture/building_blocks.md deleted file mode 100644 index f163bb18c..000000000 --- a/concepts/architecture/building_blocks.md +++ /dev/null @@ -1,15 +0,0 @@ -# Building blocks - -Dapr consists of a set of building blocks that can be called from any programming language through Dapr HTTP or gRPC APIs. These building blocks address common challenges in building resilient, microservices applications. And they capture and share best practices and patterns that empower distributed application developers. - -![Dapr building blocks](../../images/overview.png) - -## Anatomy of a building block - -Both Dapr spec and Dapr runtime are designed to be extensible -to include new building blocks. A building block is comprised of the following artifacts: - -* Dapr spec API definition. A newly proposed building block shall have its API design incorporated into the Dapr spec. -* Components. A building block may reuse existing [Dapr components](../README.md#components), or introduce new components. -* Test suites. A new building block implementation should come with associated unit tests and end-to-end scenario tests. -* Documents and samples. diff --git a/contributing/howto-template.md b/contributing/howto-template.md deleted file mode 100644 index d43cdb084..000000000 --- a/contributing/howto-template.md +++ /dev/null @@ -1,82 +0,0 @@ -# [Title] - ->Title should be descriptive of what this article helps achieve. Imagine it continues a sentence that starts with ***How to...*** so should start with a word such as "Setup", "Configure", "Implement" etc. -> ->Does not need to include the word *Dapr* in it (as it is in the context of the Dapr docs repo) -> ->If it is specific to an environment (e.g. Kubernetes), should call out the environment. -> ->Capital letters only for first word and product/technology names. -> ->Example: -># Set up Zipkin for distributed tracing in Kubernetes - -[Intro paragraph] - -> Intro paragraph should be a short description of what this article covers to set expectations of the reader. Include links if they can provide context and clarity to the reader. -> -> Example: -> -> This article will provide guidance on how to enable Dapr distributed tracing capabilities on Kubernetes using [Zipkin](https://zipkin.io/) as a tracing broker. - -## Pre-requisites - ->List the required setup this article assumes with links on how to achieve each prerequisite. -> ->Example: -> -> - [Setup Dapr on a Kubernetes cluster](https://github.com/dapr/docs/blob/master/getting-started/environment-setup.md#installing-dapr-on-a-kubernetes-cluster) -> - [Install Helm](https://helm.sh/docs/intro/install/) -> - [Install Python](https://www.python.org/downloads/) version >= 3.7 - -## [Step header] - (multiple) - -> ->Name each step section in a clear descriptive way which allows readers to understand what this section covers. Example: **Create a configuration file** -> ->If using terminal commands, make sure to allow easy copy/paste by having each terminal command in a separate line with the markdown (indented as needed when appearing in bullets or numbered lists). If Windows/Linux/MacOS instructions differ, make sure to include instructions for each. -> ->Example (note the indentation of the commands): -> ->- Clone the Dapr samples repository: -> ```bash -> git clone https://github.com/dapr/samples.git -> ``` ->- Go to the hello world sample: -> ``` -> cd 1.hello-world -> ``` -> ->Add sections as needed for multiple steps. -> - -## Cleanup - -> -> If possible, provide steps that undo the steps above. These should bring the user environment back to the pre-requisites stage. If using terminal commands, make sure to allow easy copy/paste by having each terminal command in a separate line with the markdown (indented as needed when appearing in bullets or numbered lists). If Windows/Linux/MacOS instructions differ, make sure to include instructions for each. -> ->Example: -> ->1. Delete the deployments from the cluster -> ``` -> kubectl delete -f file.yaml -> ``` ->2. Delete the Helm chart from the cluster -> ``` -> helm del --purge dapr-kafka -> ``` -> - -## Related links - -> -> Reference other documentation that may be relevant to a user interested in this How To. Include any of the following: -> ->- Other **How To** articles in related topics or alternative technology integrations. ->- **Concept** articles that are relevant. ->- **Reference** and **API** documentation that can be helpful ->- **Samples** that provide code reference relevant to this guidance. ->- Any other documentation link that may be a logical next step for a reader interested in this guidance (for example, if this is a how to on publishing to a pub/sub topic, a logical next step would be a how to which describes consuming from a topic). -> - - diff --git a/daprdocs/archetypes/default.md b/daprdocs/archetypes/default.md new file mode 100644 index 000000000..00e77bd79 --- /dev/null +++ b/daprdocs/archetypes/default.md @@ -0,0 +1,6 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +draft: true +--- + diff --git a/daprdocs/assets/icons/logo.png b/daprdocs/assets/icons/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b77e0bba64e0e7df06eb29ebb64cdc2ef58157ae GIT binary patch literal 5356 zcmds*=QkU0+sA3OrNdUWt7_C%dsAvt6@nU3qhiF4twE_xjZnmlJ&OoJX{l8bd(+em zwO7r??K$T;&wuc|xzG7szwf!u`MkJZd|rKH3=K3N+-1H?LPGLDTT9*OI&uFqoT^}F+ zDJR92Q;(rflRs35TZx}kK=s>Bh3l41@se4efou%h*7U3u1%s4L7-Z0>?gLwV-Gguy z`@-noYPVy)l9-dT1!0|&G6QN4kF^A_HEaG0WA4A&GOvuae1DtLk3Kg05CCx?EYm%&SmAa{x>@h27 zAGw!*O@_~UMbDYupiZnkeeG{}O{zj@xlki>em1VwZMG6q+9HD`FXIt1n<% zlMu=X%8#(fix1!chxAb_-6*k=LD*Uj@?WjJSD}7F+7xy#Tf# z)-+e4*IHm!KGl|8=gWo5vNmB-a?K3Z0|rS_^3t+w4*1lyS?eik?S(ufi}cV#o!$~yv4;BMi82_ctW_d8Us3Gj`czH}-!l`Kq5ZBf1kszn>%=p?nBxRU5WtZnFz~>OPG&xMKPXTAt|} zSsU8%)yop}&9zmiBSv1(uapdcAljXAQu_Uo%0%~wtlb?dx7eb}(sEQA(~2x?qb3en zH|^-;HLl@|(j5hUI^?@09CZ%cJ(#Vpxp@bzUi_8ugF;*s#X>YdPL|@;#cP@uwzdLgdKwJY7 zwA}A?cbNgkmREaocCx`>^?MY-4=A|1h~HrPQdB^k03LeuExj(yp-8*T8H|59$UpiS z@#^kADAA|MS`=D<@g(qb+GcO4oEtDt)v2@F^gCWY{U$_QP0mHbWOjdKyECZ-0KkP) zS@4r78LmZGVb7c%+>`@4IJ5iNVS#zaZGq6}v68&)5+tXLjX1njp{8%EI3HZfb@uFS z%ur+yTFKBH?TCWvC}2G^CV`CWc$y zkY8xpZw5-7$#x((9A5-OyG-KRM^;NHT{JEk~b^SwpP8Fo%!}x1OBJQil9}yWmgois*M0(SJVX zG*K+}z5ey5Fxfyo7!uW*C$l#>c9^xJ4}*%D@co1DV;<_au?mX>&GaNBMN}~RUS@Y~ z)u0NKdzgl@Jdssbhx#(`52ZI}jb2Js zo%XzreA_0Q0Wvhr92}OAkQlvP#3p!wW?Tvp3tB3kJ!jk1HMdEpkl=_-RpH?N9xSJ8 zs?p#`^@)!*m>Awy#oP*sc79j2 z-&Sb+wd$)9KZ22O*sJy@A6bWwR9QXbBBr7T$Adhk+1f?{e`Umk8{PlbuvXu#g`Sw!99#J5;PXXb82iYrN&Ml{&etVy7;28)Xp2-LUTu9 zpIrrPc}G*Cdc#aB?cM1H8$T1FD`1;+Rj5m5mo5+QxzH@rA+cRU$~XE|UzD4Myzt!s zUY#ly=)>{)y8X64q`L7#<0q$MKmg9@tlYZ3Ve)OAL;2{KJAo2=0gJ)7pNx5A|2sEvk9wZcL&b!OLVnMOFbL7m zc*2!+xsdW!6=v#uzP!cH@*sR&)C&lA<{iktv-@~_M#t(QLm=N@wi`{s8koOBTJ~ue zrIvGUK>{-UxAcRPRbk+^j*-UFtO-ym=&)ZcyG#6E9}O+&%AnU*PIP3LA)%5ikWVP+ zX%toCG4`nXD*GPoiHH!+FTG*-uovSl&&g<%T<06yVfXqee@)4oknnRK_A!yJ5ZpX@ z)P9oT&E}+7!HvEJknKM7rlOF0(NCFq?_N@7_r^cXW8NIc;UNm}oS(jK=Gl?RhXOBy zD$*==+1Ig^ojvkwuQ0ml~W`;>4*lLfSE_01{Qu# zQ7*+faar9IxL9cZ5Q0^EpCh z`nfZFFWZW#R4k>gB9S_uEjj(e!cw5D8KADDTx0fW?8%|igLh98j~W%#@3a%%x#CV! zan9r7ng2Aca~~X|6mq`uHn1x&8aP#{Gv%)io|iaFMp;8b(hu5-vqVO$d4ZUi5=VeD z2a|wRUTGVd$zjPmE2(T<104>`R8bw|C&#MqE8q<)QWW>x&WY4eq+Q(llL;N5G5iWB znS?6M*_W0(D>+#I@l(jtgTG@G^qu&s|JSGebLBVwFD6W)_wnUxoOMFRSn;vk9f{tq ze~{Y2`CO_FMMlbPtVF8ewz!y7ji8kIjfFyczdR&OrA_)|vWeLrc_ef9%4CO(sEl-g z&Y$YT>YlE00HBE6Q|@K#1s0L#Ah4RXTW zoM1qJk8N?o{IT5b_o5hk39@G=9B%T`<>}51+6f;%1hx*v$H_UPN*srdmb=}DA_2CM zX_0EFqe|QyZWYGO&Krp*!&U}Bx*3$ML*ZHX6cxJS2Y+wp$nixne}LYMQPjn@R~QWg zjNTPr4tTHRpkP11^xNe=$Oc&9+elvhWEr&_DyEd)tlYdI#iR7GRS^6L5G zJ~OAlBWu4&LiLKeFz1sYdpTWeG?8eI%I~wTuvk8uR|=-H-QKiw|7VFy(lI?p6rWhC z4)`e6a31WJ%pN$7o>2y75jvAY!C7ArZ6(A4*=;)4O9tli{m3)jIlQVo>#>)S_$Wx$ zq^bUGZ-;u0nKVSSg^OsWIP9O;ooLtbm~p8L;tI<4#{=fR1ZkVt^-cn6Bk@lMDkcB1 z;CLnzWJ^KC0h)6wa=rlE>U6ER>)dX`lVnB;|8C=~i;l@ufUa-L5S`$_Y2rGx&ud#G zsB>cogAmUMR$D3k__5tV5hpw|;GNK|6Ll|KUPZdO{-Q}?4#R7~9!qA%=cNtxe1ZSnNM*uZT%cyUcCV8Eiltfh;MW8IwA@(EI>&1$~=3vHu^Zrx1*t8 zqi$P4;OsqZiNkV4)yq_VAaZWmWwzhHf$qV=5RoSn9N&|52j}&K)%?|K=5toX``9__ zlpkmr78eOmmiE>szeQiy_ro2&C3x{5_6p=FM~ZbFsr_>jppMkG*wRN%ju?@7zuto2 z*#1g0FCJF&FxpDrYz26b2~+C(5A>D&fi4$?#nDk0XkvmdG1OtO+~YPzS@wD56CXu= zqfM-z0l{uHfTI#GxLVZppz>k$k$j?MdLCf0FLoq2%}&8MkPT|YA#VAa*|;wu5h6$D zl6hw4K=lyIENKaY&3pb5e>La?G!I_LQ^BTZc`x?uIW3vK3ShE$DL>SpQPFiqR^8c= zh^qK{g6!vXfzZfJ^UoCynQ?HA2LJvnk5>b*${w4+UrQkF zeN?Kl<`l2un@6ji=a2NOi49yAQVE;q6kbaB2(E(uu?wx;$=08`0bQ9rD?3S+h`h(& zLyE_geRcs#y;!%ZIShEDS#oR!Hvbh=_TrW7i z(uig?)^Z7YjTA0il#rkiW?vHvWcj{%Bv_Von_6ks%z|jA90e^(G?`2%JOv)}?$euJ zCb(7;G`y!IcQD}jI%(Qns$sr$?xXR)w1FNLx&rni-h!TpzN@ev6$Q23!vL>>i6fAg zCwrGsm5-ChO*)G>tZh2BDF4emIvfX9;P>u+ zOjU4og_EHox=z`duZ~S0e`X^E?RwVVV{3tu8#?M`8Yrz~8jy5m;*h^#BO&)A?DFB9 ztT(AYtc2HKKZw1NA1Zhu6Yxu=rz`Fihv-h@I_nFWmy;{w6Y;u|HzAaZk3t^_GJf}m z+qa8HdK`R>yx*%?oA#ZlmjpoGOY-A!OTM+F59K4U=>Kku;xfzsx2X_9Gbh7620iY7 zVnlfANj!|O3%C6gobUZj%SBa2L-ckZ#n)k8m60__S?K2`{Z!d60_lQq5qG0Ej$u5t z*q>WW4>PYDiA?fUPYeR7Za4ITpVP<>)$?YUpPN2PD1vU!7swd?`=FYFv=+U)s3y}c z9rm8YtAuA2=+^Zeuq?B=ZkI$b{+R0!(C7B)TTCo*Ms7!kODY0+Q<#$~B9(*-41(UG zjxm1|evg?$WI58Kt!T4ux6G;px<*c+DUjDYL6H_j&TEL3R5Tli0q4lNay~|E@WElK zGC%tcct6yTR8ddSS`x?Sue2VsUd^e<-w-e^gsypz<*tI&l(T6%`_uE2&Ni&FdDltH zM&(tU0?I_IL6CEO8YQE>QZRWh$Bu>$+j{%<33ov(1FB{lP{Zo=7hwWCuPNA>OZZy% z&7|cPI0CM4FaP!G=4K`H>~0Y^x + + + white on dark + Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/daprdocs/assets/scss/_nav.scss b/daprdocs/assets/scss/_nav.scss new file mode 100644 index 000000000..ae6c470e4 --- /dev/null +++ b/daprdocs/assets/scss/_nav.scss @@ -0,0 +1,102 @@ +// +// Main navbar +// + +.td-navbar-cover { + background: $primary; + + @include media-breakpoint-up(md) { + background: transparent !important; + + .nav-link { + text-shadow: 1px 1px 2px $dark; + } + + } + + &.navbar-bg-onscroll .nav-link { + text-shadow: none; + } +} + +.navbar-bg-onscroll { + background: $primary !important; + opacity: inherit; +} + +.td-navbar { + background: $primary; + min-height: 4rem; + margin: 0; + z-index: 32; + + @include media-breakpoint-up(md) { + position: fixed; + top: 0; + width: 100%; + } + + + .navbar-brand { + text-transform: none !important; + text-align: middle; + + .nav-link { + display: inline-block; + margin-right: -30px; + } + + svg { + display: inline-block; + margin-right: 5px; + margin-left: 5px; + margin-top: 0px; + margin-bottom: 0px; + height: 40px; + width: 40px; + } + } + + .nav-link { + text-transform: none !important; + font-weight: $font-weight-bold; + } + + .td-search-input { + border: none; + + @include placeholder { + color: $navbar-dark-color; + } + } + + .dropdown { + min-width: 100px; + } + + @include media-breakpoint-down(md) { + padding-right: .5rem; + padding-left: .75rem; + + .td-navbar-nav-scroll { + max-width: 100%; + height: 2.5rem; + margin-top: .25rem; + overflow: hidden; + font-size: .875rem; + + .nav-link { + padding-right: .25rem; + padding-left: 0; + } + + .navbar-nav { + padding-bottom: 2rem; + overflow-x: auto; + white-space: nowrap; + -webkit-overflow-scrolling: touch; + + } + } + } +} \ No newline at end of file diff --git a/daprdocs/assets/scss/_variables_project.scss b/daprdocs/assets/scss/_variables_project.scss new file mode 100644 index 000000000..17463feed --- /dev/null +++ b/daprdocs/assets/scss/_variables_project.scss @@ -0,0 +1,12 @@ +$primary:#0D2192; +$secondary: #1F329A; + +.navbar-brand { + text-align: left; + + svg { + display: inline-block; + margin: 0 10px; + height: 60px; + } +} \ No newline at end of file diff --git a/daprdocs/config.toml b/daprdocs/config.toml new file mode 100644 index 000000000..e8c13733a --- /dev/null +++ b/daprdocs/config.toml @@ -0,0 +1,11 @@ +baseURL = "https://docs.dapr.io" +languageCode = "en-us" +contentDir = "content/en" +defaultContentLanguage = "en" +title = "Dapr Docs" +theme = "docsy" + + +[params.ui] +sidebar_menu_compact = true +navbar_logo = true diff --git a/README.md b/daprdocs/content/en/_index.md similarity index 96% rename from README.md rename to daprdocs/content/en/_index.md index b84eea839..23b21bfb7 100644 --- a/README.md +++ b/daprdocs/content/en/_index.md @@ -1,3 +1,12 @@ +--- +title: "Dapr Documentation" +linkTitle: "Home" +weight: 1 +no_list: true +description: > + Docs, references, and best-practices for the Dapr project. +--- + # 📖 Dapr documentation Welcome to the Dapr documentation repository. You can learn more about Dapr from the links below. diff --git a/daprdocs/content/en/docs/_index.md b/daprdocs/content/en/docs/_index.md new file mode 100644 index 000000000..e69de29bb diff --git a/daprdocs/content/en/docs/building-blocks/_index.md b/daprdocs/content/en/docs/building-blocks/_index.md new file mode 100644 index 000000000..aae55ae2a --- /dev/null +++ b/daprdocs/content/en/docs/building-blocks/_index.md @@ -0,0 +1,25 @@ +--- +title: "Building Blocks" +weight: 20 +description: "HTTP or gRPC API that can be called from user code and uses one or more Dapr components." +--- + +A [building block](./architecture/building_blocks.md) is as an HTTP or gRPC API that can be called from user code and uses one or more Dapr components. Dapr consists of a set of building blocks, with extensibility to add new building blocks. + +The diagram below shows how building blocks expose a public API that is called from your code, using components to implement the building blocks' capability. + + + +The following are the building blocks provided by Dapr: + + + +| Building Block | Endpoint | Description | +|----------------|----------|-------------| +| [**Service-to-Service Invocation**](./service-invocation/README.md) | `/v1.0/invoke` | Service invocation enables applications to communicate with each other through well-known endpoints in the form of http or gRPC messages. Dapr provides an endpoint that acts as a combination of a reverse proxy with built-in service discovery, while leveraging built-in distributed tracing and error handling. +| [**State Management**](./state-management/README.md) | `/v1.0/state` | Application state is anything an application wants to preserve beyond a single session. Dapr provides a key/value-based state API with pluggable state stores for persistence. +| [**Publish and Subscribe**](./publish-subscribe-messaging/README.md) | `/v1.0/publish` `/v1.0/subscribe`| Pub/Sub is a loosely coupled messaging pattern where senders (or publishers) publishes messages to a topic, to which subscribers subscribe. Dapr supports the pub/sub pattern between applications. +| [**Resource Bindings**](./bindings/README.md)| `/v1.0/bindings` | A binding provides a bi-directional connection to an external cloud/on-premise service or system. Dapr allows you to invoke the external service through the Dapr binding API, and it allows your application to be triggered by events sent by the connected service. +| [**Actors**](./actors/README.md) | `/v1.0/actors` | An actor is an isolated, independent unit of compute and state with single-threaded execution. Dapr provides an actor implementation based on the Virtual Actor pattern which provides a single-threaded programming model and where actors are garbage collected when not in use. See * [Actor Overview](./actors#understanding-actors) +| [**Observability**](./observability/README.md) | `N/A` | Dapr system components and runtime emit metrics, logs, and traces to debug, operate and monitor Dapr system services, components and user applications. +| [**Secrets**](./secrets/README.md) | `/v1.0/secrets` | Dapr offers a secrets building block API and integrates with secret stores such as Azure Key Vault and Kubernetes to store the secrets. Service code can call the secrets API to retrieve secrets out of the Dapr supported secret stores. \ No newline at end of file diff --git a/concepts/actors/actors_features.md b/daprdocs/content/en/docs/building-blocks/actors/_index.md similarity index 98% rename from concepts/actors/actors_features.md rename to daprdocs/content/en/docs/building-blocks/actors/_index.md index 71e1e05e4..9c0f9c6df 100644 --- a/concepts/actors/actors_features.md +++ b/daprdocs/content/en/docs/building-blocks/actors/_index.md @@ -1,3 +1,11 @@ +--- +title: "Dapr Actors Runtime" +linkTitle: "Actors" +weight: 50 +description: > + Information on actors in Dapr +--- + # Dapr actors runtime The Dapr actors runtime provides following capabilities: diff --git a/concepts/actors/README.md b/daprdocs/content/en/docs/building-blocks/actors/actors_background.md similarity index 98% rename from concepts/actors/README.md rename to daprdocs/content/en/docs/building-blocks/actors/actors_background.md index 77c04b935..9d3cb02ee 100644 --- a/concepts/actors/README.md +++ b/daprdocs/content/en/docs/building-blocks/actors/actors_background.md @@ -1,3 +1,11 @@ +--- +title: "Introduction to Actors" +linkTitle: "Actor Background" +weight: 51 +description: > + Information on virtual actors in Dapr. +--- + # Introduction to actors The [actor pattern](https://en.wikipedia.org/wiki/Actor_model) describes **actors** as the lowest-level "unit of computation". In other words, you write your code in a self-contained unit (called an actor) that receives messages and processes them one at a time, without any kind of concurrency or threading. diff --git a/concepts/bindings/README.md b/daprdocs/content/en/docs/building-blocks/bindings/_index.md similarity index 97% rename from concepts/bindings/README.md rename to daprdocs/content/en/docs/building-blocks/bindings/_index.md index 8bc983ebe..105c17a28 100644 --- a/concepts/bindings/README.md +++ b/daprdocs/content/en/docs/building-blocks/bindings/_index.md @@ -1,3 +1,11 @@ +--- +title: "Dapr Bindings" +linkTitle: "Bindings" +weight: 40 +description: > + Information on the Dapr bindings building block +--- + # Bindings Using bindings, you can trigger your app with events coming in from external systems, or invoke external systems. This building block provides several benefits for you and your code: diff --git a/concepts/observability/W3C-traces.md b/daprdocs/content/en/docs/building-blocks/observability/W3C-traces.md similarity index 99% rename from concepts/observability/W3C-traces.md rename to daprdocs/content/en/docs/building-blocks/observability/W3C-traces.md index dd5a6649b..de5105d30 100644 --- a/concepts/observability/W3C-traces.md +++ b/daprdocs/content/en/docs/building-blocks/observability/W3C-traces.md @@ -1,3 +1,9 @@ +--- +title: "Dapr W3C Traces" +linkTitle: "W3C Traces" +weight: 1 +--- + # W3C trace context for distributed tracing - [Background](#background) diff --git a/concepts/observability/README.md b/daprdocs/content/en/docs/building-blocks/observability/_index.md similarity index 96% rename from concepts/observability/README.md rename to daprdocs/content/en/docs/building-blocks/observability/_index.md index 0639a30bc..46969ec89 100644 --- a/concepts/observability/README.md +++ b/daprdocs/content/en/docs/building-blocks/observability/_index.md @@ -1,3 +1,11 @@ +--- +title: "Observability in Dapr" +linkTitle: "Observability" +weight: 60 +description: > + How to monitor your application with Dapr Observability +--- + # Observability Observability is a term from control theory. Observability means you can answer questions about what's happening on the inside of a system by observing the outside of the system, without having to ship new code to answer new questions. Observability is critical in production environments and services to debug, operate and monitor Dapr system services, components and user applications. diff --git a/concepts/observability/health.md b/daprdocs/content/en/docs/building-blocks/observability/health.md similarity index 98% rename from concepts/observability/health.md rename to daprdocs/content/en/docs/building-blocks/observability/health.md index 62cc25f5a..b861853d2 100644 --- a/concepts/observability/health.md +++ b/daprdocs/content/en/docs/building-blocks/observability/health.md @@ -1,3 +1,9 @@ +--- +title: "Dapr Health" +linkTitle: "Health" +weight: 1 +--- + # Health Dapr provides a way to determine it's health using an HTTP /healthz endpoint. diff --git a/concepts/observability/logs.md b/daprdocs/content/en/docs/building-blocks/observability/logs.md similarity index 98% rename from concepts/observability/logs.md rename to daprdocs/content/en/docs/building-blocks/observability/logs.md index f9848570d..af2f5a68d 100644 --- a/concepts/observability/logs.md +++ b/daprdocs/content/en/docs/building-blocks/observability/logs.md @@ -1,3 +1,9 @@ +--- +title: "Dapr Logs" +linkTitle: "Logs" +weight: 1 +--- + # Logs Dapr produces structured logs to stdout either as a plain text or JSON formatted. By default, all Dapr processes (runtime and system services) write to console out in plain text. To enable JSON formatted logs, you need to add the `--log-as-json` command flag when running Dapr processes. diff --git a/concepts/observability/metrics.md b/daprdocs/content/en/docs/building-blocks/observability/metrics.md similarity index 94% rename from concepts/observability/metrics.md rename to daprdocs/content/en/docs/building-blocks/observability/metrics.md index da2111ec9..50f42cdf5 100644 --- a/concepts/observability/metrics.md +++ b/daprdocs/content/en/docs/building-blocks/observability/metrics.md @@ -1,3 +1,9 @@ +--- +title: "Dapr Metrics" +linkTitle: "Metrics" +weight: 1 +--- + # Metrics Dapr exposes a [Prometheus](https://prometheus.io/) metrics endpoint that you can scrape to gain a greater understanding of how Dapr is behaving and to setup alerts for specific conditions. diff --git a/concepts/observability/traces.md b/daprdocs/content/en/docs/building-blocks/observability/traces.md similarity index 98% rename from concepts/observability/traces.md rename to daprdocs/content/en/docs/building-blocks/observability/traces.md index f3c7d4004..6cad22475 100644 --- a/concepts/observability/traces.md +++ b/daprdocs/content/en/docs/building-blocks/observability/traces.md @@ -1,3 +1,9 @@ +--- +title: "Dapr Health" +linkTitle: "Traces" +weight: 1 +--- + # Distributed Tracing Dapr uses OpenTelemetry (previously known as OpenCensus) for distributed traces and metrics collection. OpenTelemetry supports various backends including [Azure Monitor](https://azure.microsoft.com/en-us/services/monitor/), [Datadog](https://www.datadoghq.com), [Instana](https://www.instana.com), [Jaeger](https://www.jaegertracing.io/), [SignalFX](https://www.signalfx.com/), [Stackdriver](https://cloud.google.com/stackdriver), [Zipkin](https://zipkin.io) and others. diff --git a/concepts/publish-subscribe-messaging/README.md b/daprdocs/content/en/docs/building-blocks/pubsub/_index.md similarity index 96% rename from concepts/publish-subscribe-messaging/README.md rename to daprdocs/content/en/docs/building-blocks/pubsub/_index.md index 42c5516be..45b892230 100644 --- a/concepts/publish-subscribe-messaging/README.md +++ b/daprdocs/content/en/docs/building-blocks/pubsub/_index.md @@ -1,3 +1,9 @@ +--- +title: "Publish & Subscribe Messaging in Dapr" +linkTitle: "Pub/Sub" +weight: 30 +--- + # Publish/Subscribe Messaging The [publish/subscribe pattern](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) allows your microservices to communicate with each other purely by sending messages. In this system, the **producer** of a message sends it to a **topic**, with no knowledge of what service will receive the message. A messages can even be sent if there's no consumer for it. diff --git a/concepts/secrets/README.md b/daprdocs/content/en/docs/building-blocks/secrets/_index.md similarity index 98% rename from concepts/secrets/README.md rename to daprdocs/content/en/docs/building-blocks/secrets/_index.md index b77f8b011..c3428dcd5 100644 --- a/concepts/secrets/README.md +++ b/daprdocs/content/en/docs/building-blocks/secrets/_index.md @@ -1,3 +1,9 @@ +--- +title: "Secrets in Dapr" +linkTitle: "Secrets" +weight: 70 +--- + # Dapr secrets management Almost all non-trivial applications need to _securely_ store secret data like API keys, database passwords, and more. By nature, these secrets should not be checked into the version control system, but they also need to be accessible to code running in production. This is generally a hard problem, but it's critical to get it right. Otherwise, critical production systems can be compromised. diff --git a/concepts/secrets/component-secrets.md b/daprdocs/content/en/docs/building-blocks/secrets/component-secrets.md similarity index 96% rename from concepts/secrets/component-secrets.md rename to daprdocs/content/en/docs/building-blocks/secrets/component-secrets.md index 35f613f4d..cd0166cb9 100644 --- a/concepts/secrets/component-secrets.md +++ b/daprdocs/content/en/docs/building-blocks/secrets/component-secrets.md @@ -1,3 +1,9 @@ +--- +title: "Referencing Secret Stores in Components" +linkTitle: "Referencing Secrets" +weight: 1 +--- + # Referencing Secret Stores in Components Components can reference secrets for the `spec.metadata` section. diff --git a/concepts/service-invocation/README.md b/daprdocs/content/en/docs/building-blocks/service-invocation/_index.md similarity index 96% rename from concepts/service-invocation/README.md rename to daprdocs/content/en/docs/building-blocks/service-invocation/_index.md index d6b283fac..14ddc4dcc 100644 --- a/concepts/service-invocation/README.md +++ b/daprdocs/content/en/docs/building-blocks/service-invocation/_index.md @@ -1,3 +1,9 @@ +--- +title: "Dapr Service Invocation" +linkTitle: "Service Invocation" +weight: 10 +--- + # Service Invocation Using the service invocation API, your microservice can find and reliably communicate with other microservices in your system using standard protocols ([gRPC](https://grpc.io) or HTTP are currently supported). diff --git a/concepts/state-management/README.md b/daprdocs/content/en/docs/building-blocks/state-management/_index.md similarity index 98% rename from concepts/state-management/README.md rename to daprdocs/content/en/docs/building-blocks/state-management/_index.md index a00c4c178..c58d07698 100644 --- a/concepts/state-management/README.md +++ b/daprdocs/content/en/docs/building-blocks/state-management/_index.md @@ -1,3 +1,9 @@ +--- +title: "Dapr State Management" +linkTitle: "State Management" +weight: 20 +--- + # State management Dapr offers key/value storage APIs for state management. If a microservice uses state management, it can use these APIs to leverage any of the [supported state stores](https://github.com/dapr/docs/blob/master/howto/setup-state-store/supported-state-stores.md), without adding or learning a third party SDK. diff --git a/daprdocs/content/en/docs/concepts/_index.md b/daprdocs/content/en/docs/concepts/_index.md new file mode 100644 index 000000000..beb89f6c1 --- /dev/null +++ b/daprdocs/content/en/docs/concepts/_index.md @@ -0,0 +1,5 @@ +--- +title: "Dapr Concepts" +linkTitle: "Concepts" +weight: 20 +--- \ No newline at end of file diff --git a/daprdocs/content/en/docs/concepts/components/_index.md b/daprdocs/content/en/docs/concepts/components/_index.md new file mode 100644 index 000000000..2d8a040aa --- /dev/null +++ b/daprdocs/content/en/docs/concepts/components/_index.md @@ -0,0 +1,31 @@ +--- +title: "Dapr Components" +linkTitle: "Components" +weight: 10 +description: "Modular pieces of functionality used in Dapr." +--- + +Dapr uses a modular design where functionality is delivered as a component. Each component has an interface definition. All of the components are pluggable so that you can swap out one component with the same interface for another. The [components contrib repo](https://github.com/dapr/components-contrib) is where you can contribute implementations for the component interfaces and extends Dapr's capabilities. + + A building block can use any combination of components. For example the [actors](./actors) building block and the state management building block both use state components. As another example, the pub/sub building block uses [pub/sub](./publish-subscribe-messaging/README.md) components. + + You can get a list of current components available in the current hosting environment using the `dapr components` CLI command. + + The following are the component types provided by Dapr: + +* [Service discovery](https://github.com/dapr/components-contrib/tree/master/nameresolution) +* [State](https://github.com/dapr/components-contrib/tree/master/state) +* [Pub/sub](https://github.com/dapr/components-contrib/tree/master/pubsub) +* [Bindings](https://github.com/dapr/components-contrib/tree/master/bindings) +* [Middleware](https://github.com/dapr/components-contrib/tree/master/middleware) +* [Secret stores](https://github.com/dapr/components-contrib/tree/master/secretstores) +* [Tracing exporters](https://github.com/dapr/components-contrib/tree/master/exporters) + +### Service invocation and service discovery components +Service discovery components are used with the [Service Invocation](./service-invocation/README.md) building block to integrate with the hosting environment to provide service-to-service discovery. For example, the Kubernetes service discovery component integrates with the kubernetes DNS service and self hosted uses mDNS. + +### Service invocation and middleware components +Dapr allows custom [**middleware**](./middleware/README.md) to be plugged into the request processing pipeline. Middleware can perform additional actions on a request, such as authentication, encryption and message transformation before the request is routed to the user code, or before the request is returned to the client. The middleware components are used with the [Service Invocation](./service-invocation/README.md) building block. + +### Secret store components +In Dapr, a [**secret**](./secrets/README.md) is any piece of private information that you want to guard against unwanted users. Secretstores, used to store secrets, are Dapr components and can be used by any of the building blocks. \ No newline at end of file diff --git a/concepts/configuration/README.md b/daprdocs/content/en/docs/concepts/configuration/_index.md similarity index 97% rename from concepts/configuration/README.md rename to daprdocs/content/en/docs/concepts/configuration/_index.md index 172ffcaaf..3704bf12f 100644 --- a/concepts/configuration/README.md +++ b/daprdocs/content/en/docs/concepts/configuration/_index.md @@ -1,140 +1,146 @@ -# Configurations -Dapr configurations are settings that enable you to change the behavior of individual Dapr sidecars or globally on the system services in the Dapr control plane. - -An example of a per Dapr sidecar setting is configuring trace settings. An example of a control plane setting is mutual TLS which is a global setting on the Sentry system service. - -- [Self hosted sidecar configuration](#self-hosted-sidecar-configuration) -- [Kubernetes sidecar configuration](#kubernetes-sidecar-configuration) -- [Sidecar Configuration settings](#sidecar-configuration-settings) -- [Kubernetes control plane configuration](#kubernetes-control-plane-configuration) -- [Control plane configuration settings](#control-plane-configuration-settings) - -## Self hosted sidecar configuration -In self hosted mode the Dapr configuration is a configuration file, for example `config.yaml`. By default Dapr sidecar looks in the default Dapr folder for the runtime configuration eg: `$HOME/.dapr/config.yaml` in Linux/MacOS and `%USERPROFILE%\.dapr\config.yaml` in Windows. - -A Dapr sidecar can also apply a configuration by using a ```--config``` flag to the file path with ```dapr run``` CLI command. - -## Kubernetes sidecar configuration -In Kubernetes mode the Dapr configuration is a Configuration CRD, that is applied to the cluster. For example; - -```cli -kubectl apply -f myappconfig.yaml -``` - -You can use the Dapr CLI to list the Configuration CRDs - -```cli -dapr configurations -k -``` - -A Dapr sidecar can apply a specific configuration by using a ```dapr.io/config``` annotation. For example: - -```yml - annotations: - dapr.io/enabled: "true" - dapr.io/app-id: "nodeapp" - dapr.io/app-port: "3000" - dapr.io/config: "myappconfig" -``` -Note: There are more [Kubernetes annotations](../../howto/configure-k8s/README.md) available to configure the Dapr sidecar on activation by sidecar Injector system service. - -## Sidecar configuration settings - -The following configuration settings can be applied to Dapr sidecars; - -* [Observability distributed tracing](../observability/traces.md) -* [Middleware pipelines](../middleware/README.md) - -### Tracing configuration - -The `tracing` section under the `Configuration` spec contains the following properties: - -```yml -tracing: - samplingRate: "1" -``` - -The following table lists the different properties. - -Property | Type | Description ----- | ------- | ----------- -samplingRate | string | Set sampling rate for tracing to be enabled or disabled. - - -`samplingRate` is used to enable or disable the tracing. To disable the sampling rate , -set `samplingRate : "0"` in the configuration. The valid range of samplingRate is between 0 and 1 inclusive. The sampling rate determines whether a trace span should be sampled or not based on value. `samplingRate : "1"` samples all traces. By default, the sampling rate is (0.0001) or 1 in 10,000 traces. - -### Middleware configuration - -The `httpPipeline` section under the `Configuration` spec contains the following properties: - -```yml -httpPipeline: - handlers: - - name: oauth2 - type: middleware.http.oauth2 - - name: uppercase - type: middleware.http.uppercase -``` - -The following table lists the different properties. - -Property | Type | Description ----- | ------- | ----------- -name | string | name of the middleware component -type | string | type of middleware component - - - -Example sidecar configuration - -```yml -apiVersion: dapr.io/v1alpha1 -kind: Configuration -metadata: - name: myappconfig - namespace: default -spec: - tracing: - samplingRate: "1" - httpPipeline: - - name: oauth2 - type: middleware.http.oauth2 -``` - -## Kubernetes control plane configuration -There is a single configuration file called `default` installed with the control plane system services that applies global settings. - -## Control plane configuration settings - -A Dapr control plane configuration can configure the following settings: - -* [Mutual TLS](../../howto/configure-mtls/README.md). Also see [security concepts](../security/README.md) - - -Property | Type | Description ----- | ------- | ----------- -enabled | bool | Set mtls to be enabled or disabled -allowedClockSkew | string | The extra time to give for certificate expiry based on possible clock skew on a machine. Default is 15 minutes. -workloadCertTTL | string | Time a certificate is valid for. Default is 24 hours - -Example control plane configuration - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Configuration -metadata: - name: default - namespace: default -spec: - mtls: - enabled: true - allowedClockSkew: 15m - workloadCertTTL: 24h -``` - -## References -* [Distributed tracing](../observability/traces.md) -* [Middleware pipelines](../middleware/README.md) -* [Security](../security/README.md) -* [How-To: Configuring the Dapr sidecar on Kubernetes](../../howto/configure-k8s/README.md) +--- +title: "Dapr Configurations" +linkTitle: "Configuration" +weight: 30 +--- + +# Configurations +Dapr configurations are settings that enable you to change the behavior of individual Dapr sidecars or globally on the system services in the Dapr control plane. + +An example of a per Dapr sidecar setting is configuring trace settings. An example of a control plane setting is mutual TLS which is a global setting on the Sentry system service. + +- [Self hosted sidecar configuration](#self-hosted-sidecar-configuration) +- [Kubernetes sidecar configuration](#kubernetes-sidecar-configuration) +- [Sidecar Configuration settings](#sidecar-configuration-settings) +- [Kubernetes control plane configuration](#kubernetes-control-plane-configuration) +- [Control plane configuration settings](#control-plane-configuration-settings) + +## Self hosted sidecar configuration +In self hosted mode the Dapr configuration is a configuration file, for example `config.yaml`. By default Dapr sidecar looks in the default Dapr folder for the runtime configuration eg: `$HOME/.dapr/config.yaml` in Linux/MacOS and `%USERPROFILE%\.dapr\config.yaml` in Windows. + +A Dapr sidecar can also apply a configuration by using a ```--config``` flag to the file path with ```dapr run``` CLI command. + +## Kubernetes sidecar configuration +In Kubernetes mode the Dapr configuration is a Configuration CRD, that is applied to the cluster. For example; + +```cli +kubectl apply -f myappconfig.yaml +``` + +You can use the Dapr CLI to list the Configuration CRDs + +```cli +dapr configurations -k +``` + +A Dapr sidecar can apply a specific configuration by using a ```dapr.io/config``` annotation. For example: + +```yml + annotations: + dapr.io/enabled: "true" + dapr.io/app-id: "nodeapp" + dapr.io/app-port: "3000" + dapr.io/config: "myappconfig" +``` +Note: There are more [Kubernetes annotations](../../howto/configure-k8s/README.md) available to configure the Dapr sidecar on activation by sidecar Injector system service. + +## Sidecar configuration settings + +The following configuration settings can be applied to Dapr sidecars; + +* [Observability distributed tracing](../observability/traces.md) +* [Middleware pipelines](../middleware/README.md) + +### Tracing configuration + +The `tracing` section under the `Configuration` spec contains the following properties: + +```yml +tracing: + samplingRate: "1" +``` + +The following table lists the different properties. + +Property | Type | Description +---- | ------- | ----------- +samplingRate | string | Set sampling rate for tracing to be enabled or disabled. + + +`samplingRate` is used to enable or disable the tracing. To disable the sampling rate , +set `samplingRate : "0"` in the configuration. The valid range of samplingRate is between 0 and 1 inclusive. The sampling rate determines whether a trace span should be sampled or not based on value. `samplingRate : "1"` samples all traces. By default, the sampling rate is (0.0001) or 1 in 10,000 traces. + +### Middleware configuration + +The `httpPipeline` section under the `Configuration` spec contains the following properties: + +```yml +httpPipeline: + handlers: + - name: oauth2 + type: middleware.http.oauth2 + - name: uppercase + type: middleware.http.uppercase +``` + +The following table lists the different properties. + +Property | Type | Description +---- | ------- | ----------- +name | string | name of the middleware component +type | string | type of middleware component + + + +Example sidecar configuration + +```yml +apiVersion: dapr.io/v1alpha1 +kind: Configuration +metadata: + name: myappconfig + namespace: default +spec: + tracing: + samplingRate: "1" + httpPipeline: + - name: oauth2 + type: middleware.http.oauth2 +``` + +## Kubernetes control plane configuration +There is a single configuration file called `default` installed with the control plane system services that applies global settings. + +## Control plane configuration settings + +A Dapr control plane configuration can configure the following settings: + +* [Mutual TLS](../../howto/configure-mtls/README.md). Also see [security concepts](../security/README.md) + + +Property | Type | Description +---- | ------- | ----------- +enabled | bool | Set mtls to be enabled or disabled +allowedClockSkew | string | The extra time to give for certificate expiry based on possible clock skew on a machine. Default is 15 minutes. +workloadCertTTL | string | Time a certificate is valid for. Default is 24 hours + +Example control plane configuration + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Configuration +metadata: + name: default + namespace: default +spec: + mtls: + enabled: true + allowedClockSkew: 15m + workloadCertTTL: 24h +``` + +## References +* [Distributed tracing](../observability/traces.md) +* [Middleware pipelines](../middleware/README.md) +* [Security](../security/README.md) +* [How-To: Configuring the Dapr sidecar on Kubernetes](../../howto/configure-k8s/README.md) diff --git a/concepts/middleware/README.md b/daprdocs/content/en/docs/concepts/middleware/_index.md similarity index 97% rename from concepts/middleware/README.md rename to daprdocs/content/en/docs/concepts/middleware/_index.md index eef6d1907..380f05174 100644 --- a/concepts/middleware/README.md +++ b/daprdocs/content/en/docs/concepts/middleware/_index.md @@ -1,3 +1,9 @@ +--- +title: "Middleware Pipeline" +linkTitle: "Middleware" +weight: 50 +--- + # Middleware pipeline Dapr allows custom processing pipelines to be defined by chaining a series of middleware components. A request goes through all defined middleware components before it's routed to user code, and then goes through the defined middleware, in reverse order, before it's returned to the client, as shown in the following diagram. diff --git a/concepts/security/README.md b/daprdocs/content/en/docs/concepts/security/_index.md similarity index 98% rename from concepts/security/README.md rename to daprdocs/content/en/docs/concepts/security/_index.md index 0a495cb1d..e8aab821f 100644 --- a/concepts/security/README.md +++ b/daprdocs/content/en/docs/concepts/security/_index.md @@ -1,3 +1,11 @@ +--- +title: "Dapr Security" +linkTitle: "Security" +weight: 60 +description: > + How Dapr is designed with security in mind for your enterprise deployments. +--- + # Security This article addresses multiple security considerations when using Dapr in a distributed application including: diff --git a/concepts/security/audits/DAP-01-report.pdf b/daprdocs/content/en/docs/concepts/security/audits/DAP-01-report.pdf similarity index 100% rename from concepts/security/audits/DAP-01-report.pdf rename to daprdocs/content/en/docs/concepts/security/audits/DAP-01-report.pdf diff --git a/contributing/README.md b/daprdocs/content/en/docs/contributing/_index.md similarity index 96% rename from contributing/README.md rename to daprdocs/content/en/docs/contributing/_index.md index 3db8846f5..252c3cfed 100644 --- a/contributing/README.md +++ b/daprdocs/content/en/docs/contributing/_index.md @@ -1,3 +1,11 @@ +--- +title: "Contributing to Dapr" +linkTitle: "Contributing" +weight: 100 +description: > + How to contribute to the Dapr project. +--- + # Contributing to Dapr documentation High quality documentation is a core tenant of the Dapr project. Some contribution guidelines are below. diff --git a/getting-started/README.md b/daprdocs/content/en/docs/getting-started/_index.md similarity index 92% rename from getting-started/README.md rename to daprdocs/content/en/docs/getting-started/_index.md index cf7325464..f2ba90ce5 100644 --- a/getting-started/README.md +++ b/daprdocs/content/en/docs/getting-started/_index.md @@ -1,3 +1,11 @@ +--- +title: "Getting Started with Dapr" +linkTitle: "Getting Started" +weight: 1 +description: > + How to get up and running with Dapr +--- + # Getting Started Dapr is a portable, event-driven runtime that makes it easy for enterprise developers to build resilient, microservice stateless and stateful applications that run on the cloud and edge and embraces the diversity of languages and developer frameworks. diff --git a/daprdocs/content/en/docs/getting-started/cluster/_index.md b/daprdocs/content/en/docs/getting-started/cluster/_index.md new file mode 100644 index 000000000..7084427d4 --- /dev/null +++ b/daprdocs/content/en/docs/getting-started/cluster/_index.md @@ -0,0 +1,8 @@ +--- +title: "Kubernetes Setup" +linkTitle: "Kubernetes" +weight: 20 +simple_list: true +description: > + How to setup dapr on a kubernetes cluster. +--- \ No newline at end of file diff --git a/getting-started/cluster/setup-aks.md b/daprdocs/content/en/docs/getting-started/cluster/setup-aks.md similarity index 91% rename from getting-started/cluster/setup-aks.md rename to daprdocs/content/en/docs/getting-started/cluster/setup-aks.md index 4b7f93a53..760104e22 100644 --- a/getting-started/cluster/setup-aks.md +++ b/daprdocs/content/en/docs/getting-started/cluster/setup-aks.md @@ -1,3 +1,10 @@ +--- +title: "Setup an Azure Kubernetes Service cluster" +linkTitle: "Azure Kubernetes Service" +weight: 20 +description: > + How to setup Dapr on an Azure Kubernetes Cluster. +--- # Set up an Azure Kubernetes Service cluster diff --git a/getting-started/cluster/setup-minikube.md b/daprdocs/content/en/docs/getting-started/cluster/setup-minikube.md similarity index 94% rename from getting-started/cluster/setup-minikube.md rename to daprdocs/content/en/docs/getting-started/cluster/setup-minikube.md index ce0fc26d0..70e88cd41 100644 --- a/getting-started/cluster/setup-minikube.md +++ b/daprdocs/content/en/docs/getting-started/cluster/setup-minikube.md @@ -1,3 +1,10 @@ +--- +title: "Setup an Minikube cluster" +linkTitle: "Minikube" +weight: 20 +description: > + How to setup Dapr on an Azure Kubernetes Cluster. +--- # Set up a Minikube cluster diff --git a/getting-started/environment-setup.md b/daprdocs/content/en/docs/getting-started/environment-setup.md similarity index 98% rename from getting-started/environment-setup.md rename to daprdocs/content/en/docs/getting-started/environment-setup.md index a08b5fc17..ff24537fd 100644 --- a/getting-started/environment-setup.md +++ b/daprdocs/content/en/docs/getting-started/environment-setup.md @@ -1,3 +1,11 @@ +--- +title: "Setup a local Dapr environment" +linkTitle: "Local Environment" +weight: 10 +description: > + How to setup Dapr in a local environment +--- + # Environment Setup Dapr can be run in either self hosted or Kubernetes modes. Running Dapr runtime in self hosted mode enables you to develop Dapr applications in your local development environment and then deploy and run them in other Dapr supported environments. For example, you can develop Dapr applications in self hosted mode and then deploy them to any Kubernetes cluster. diff --git a/concepts/hosting/README.md b/daprdocs/content/en/docs/hosting/_index.md similarity index 97% rename from concepts/hosting/README.md rename to daprdocs/content/en/docs/hosting/_index.md index 2198654a2..3749f5a99 100644 --- a/concepts/hosting/README.md +++ b/daprdocs/content/en/docs/hosting/_index.md @@ -1,3 +1,9 @@ +--- +title: "Environment Options for Hosting Dapr" +linkTitle: "Hosting Environments" +weight: 50 +--- + # Hosting environments diff --git a/reference/README.md b/daprdocs/content/en/docs/reference/_index.md similarity index 93% rename from reference/README.md rename to daprdocs/content/en/docs/reference/_index.md index eea062f97..216612fad 100644 --- a/reference/README.md +++ b/daprdocs/content/en/docs/reference/_index.md @@ -1,3 +1,9 @@ +--- +title: "Dapr Reference Docs" +linkTitle: "Reference" +weight: 60 +--- + # Dapr references - **[Dapr CLI](https://github.com/dapr/cli)**: The Dapr CLI allows you to setup Dapr on your local dev machine or on a Kubernetes cluster, provides debugging support, launches and manages Dapr instances. diff --git a/reference/api/README.md b/daprdocs/content/en/docs/reference/api/README.md similarity index 100% rename from reference/api/README.md rename to daprdocs/content/en/docs/reference/api/README.md diff --git a/reference/api/actors_api.md b/daprdocs/content/en/docs/reference/api/actors_api.md similarity index 100% rename from reference/api/actors_api.md rename to daprdocs/content/en/docs/reference/api/actors_api.md diff --git a/reference/api/bindings_api.md b/daprdocs/content/en/docs/reference/api/bindings_api.md similarity index 100% rename from reference/api/bindings_api.md rename to daprdocs/content/en/docs/reference/api/bindings_api.md diff --git a/reference/api/error_codes.md b/daprdocs/content/en/docs/reference/api/error_codes.md similarity index 100% rename from reference/api/error_codes.md rename to daprdocs/content/en/docs/reference/api/error_codes.md diff --git a/reference/api/health_api.md b/daprdocs/content/en/docs/reference/api/health_api.md similarity index 100% rename from reference/api/health_api.md rename to daprdocs/content/en/docs/reference/api/health_api.md diff --git a/reference/api/pubsub_api.md b/daprdocs/content/en/docs/reference/api/pubsub_api.md similarity index 100% rename from reference/api/pubsub_api.md rename to daprdocs/content/en/docs/reference/api/pubsub_api.md diff --git a/reference/api/secrets_api.md b/daprdocs/content/en/docs/reference/api/secrets_api.md similarity index 100% rename from reference/api/secrets_api.md rename to daprdocs/content/en/docs/reference/api/secrets_api.md diff --git a/reference/api/service_invocation_api.md b/daprdocs/content/en/docs/reference/api/service_invocation_api.md similarity index 100% rename from reference/api/service_invocation_api.md rename to daprdocs/content/en/docs/reference/api/service_invocation_api.md diff --git a/reference/api/state_api.md b/daprdocs/content/en/docs/reference/api/state_api.md similarity index 100% rename from reference/api/state_api.md rename to daprdocs/content/en/docs/reference/api/state_api.md diff --git a/reference/dashboard/README.md b/daprdocs/content/en/docs/reference/dashboard/README.md similarity index 100% rename from reference/dashboard/README.md rename to daprdocs/content/en/docs/reference/dashboard/README.md diff --git a/reference/dashboard/grafana/actor-dashboard.json b/daprdocs/content/en/docs/reference/dashboard/grafana/actor-dashboard.json similarity index 100% rename from reference/dashboard/grafana/actor-dashboard.json rename to daprdocs/content/en/docs/reference/dashboard/grafana/actor-dashboard.json diff --git a/reference/dashboard/grafana/sidecar-dashboard.json b/daprdocs/content/en/docs/reference/dashboard/grafana/sidecar-dashboard.json similarity index 100% rename from reference/dashboard/grafana/sidecar-dashboard.json rename to daprdocs/content/en/docs/reference/dashboard/grafana/sidecar-dashboard.json diff --git a/reference/dashboard/grafana/system-services-dashboard.json b/daprdocs/content/en/docs/reference/dashboard/grafana/system-services-dashboard.json similarity index 95% rename from reference/dashboard/grafana/system-services-dashboard.json rename to daprdocs/content/en/docs/reference/dashboard/grafana/system-services-dashboard.json index 41525084f..e28c863aa 100644 --- a/reference/dashboard/grafana/system-services-dashboard.json +++ b/daprdocs/content/en/docs/reference/dashboard/grafana/system-services-dashboard.json @@ -1,1538 +1,1538 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "id": 1, - "links": [], - "panels": [ - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 18, - "panels": [], - "title": "Health & Resource", - "type": "row" - }, - { - "cacheTimeout": null, - "datasource": "Dapr", - "gridPos": { - "h": 8, - "w": 4, - "x": 0, - "y": 1 - }, - "id": 20, - "links": [], - "options": { - "colorMode": "value", - "fieldOptions": { - "calcs": [ - "last" - ], - "defaults": { - "decimals": 1, - "mappings": [ - { - "id": 0, - "op": "=", - "text": "N/A", - "type": 1, - "value": "null" - } - ], - "nullValueMode": "connected", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": null - }, - { - "color": "green", - "value": 600 - } - ] - }, - "unit": "s" - }, - "overrides": [], - "values": false - }, - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal" - }, - "pluginVersion": "6.6.2", - "targets": [ - { - "expr": "time() - max(process_start_time_seconds{app=~\"dapr-sentry|dapr-placement|dapr-sidecar-injector|dapr-operator\"}) by (app)", - "intervalFactor": 2, - "legendFormat": "{{app}}", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Uptime", - "type": "stat" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Dapr", - "description": "This shows total amount of kernel and user CPU usage time.", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 7, - "x": 4, - "y": 1 - }, - "hiddenSeries": false, - "id": 22, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(container_cpu_usage_seconds_total{pod=~\"(dapr-sentry|dapr-sidecar-injector|dapr-placement|dapr-operator).*\"}[5m])) by (pod)", - "legendFormat": "{{pod}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Total CPU usage (kernel and user)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Dapr", - "description": "The amount of memory that belongs specifically to that process in bytes. This excludes swapped out memory pages.", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 7, - "x": 11, - "y": 1 - }, - "hiddenSeries": false, - "id": 24, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "max(process_resident_memory_bytes{app=~\"(dapr-sentry|dapr-sidecar-injector|dapr-placement|dapr-operator)\"}) by (app)", - "legendFormat": "{{app}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Memory usage in bytes", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Dapr", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 6, - "x": 18, - "y": 1 - }, - "hiddenSeries": false, - "id": 26, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "max(go_goroutines{app=~\"(dapr-sentry|dapr-sidecar-injector|dapr-placement|dapr-operator)\"}) by (app)", - "legendFormat": "{{app}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Number of GO routines", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 9 - }, - "id": 14, - "panels": [], - "title": "Operator", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "The total number of services created.", - "fill": 10, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 10 - }, - "hiddenSeries": false, - "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": true, - "targets": [ - { - "expr": "count(dapr_operator_service_created_total) by (app_id)", - "legendFormat": "{{app_id}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "# Services Created", - "tooltip": { - "shared": true, - "sort": 1, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Dapr", - "description": "The total number of services deleted.", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 10 - }, - "hiddenSeries": false, - "id": 4, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "dapr_operator_service_deleted_total", - "legendFormat": "{{app_id}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "# Services Deleted", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 18 - }, - "id": 12, - "panels": [], - "title": "Sidecar Injector", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "The total number of sidecar injection requests.", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 19 - }, - "hiddenSeries": false, - "id": 8, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "dapr_injector_sidecar_injection_requests_total", - "legendFormat": "sidecars requests", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "# sidecar injection requests", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Dapr", - "description": "The total number of successful sidecar injection requests.", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 19 - }, - "hiddenSeries": false, - "id": 10, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pluginVersion": "6.6.2", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "dapr_injector_sidecar_injection_succeeded_total", - "legendFormat": "{{app_id}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "# successful sidecar injected", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 28 - }, - "id": 42, - "panels": [], - "title": "CA Sentry", - "type": "row" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#F2495C", - "#FADE2A", - "#73BF69" - ], - "datasource": null, - "decimals": null, - "description": "", - "format": "s", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 7, - "w": 3, - "x": 0, - "y": 29 - }, - "id": 44, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", - "postfix": " left", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": true, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "min(dapr_sentry_issuercert_expiry_timestamp) - time()", - "refId": "A" - } - ], - "thresholds": "2628000, 5256000", - "timeFrom": "1m", - "timeShift": null, - "title": "Root/Issuer cert expiry", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "Certificate Signing Request ( CSR ) from Dapr runtime", - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 9, - "x": 3, - "y": 29 - }, - "hiddenSeries": false, - "id": 34, - "legend": { - "alignAsTable": true, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "CSR Requests", - "color": "rgb(60, 33, 166)", - "dashes": true - }, - { - "alias": "CSR Success", - "color": "#73BF69" - }, - { - "alias": "CSR Failure", - "color": "#F2495C" - } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(dapr_sentry_cert_sign_request_received_total{app=\"dapr-sentry\"})", - "legendFormat": "CSR Requests", - "refId": "A" - }, - { - "expr": "sum(dapr_sentry_cert_sign_success_total{app=\"dapr-sentry\"})", - "instant": false, - "legendFormat": "CSR Success", - "refId": "B" - }, - { - "expr": "sum(dapr_sentry_cert_sign_failure_total{app=\"dapr-sentry\"})", - "instant": false, - "legendFormat": "CSR Failure", - "refId": "C" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Certificate Signing Requests (CSR) from Daprd", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "This chart shows the failure reason of Certificate Sign Request.", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 29 - }, - "hiddenSeries": false, - "id": 38, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(dapr_sentry_cert_sign_failure_total{app=\"dapr-sentry\"}) by (reason)", - "legendFormat": "{{reason}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CSR Failures", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "cacheTimeout": null, - "dashLength": 10, - "dashes": false, - "datasource": "Dapr", - "description": "This will be counted when issuer cert and key are changed.", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 36 - }, - "hiddenSeries": false, - "id": 36, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pluginVersion": "6.6.2", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(dapr_sentry_issuercert_changed_total{app=\"dapr-sentry\"})", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Issuer cert and key changed total", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "none", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "This chart shows the reason of gRPC server TLS certificate issuance failures.", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 36 - }, - "hiddenSeries": false, - "id": 40, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(dapr_sentry_servercert_issue_failed_total{app=\"dapr-sentry\"}) by (reason)", - "legendFormat": "{{reason}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Server TLS certificate issuance failures", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 43 - }, - "id": 16, - "panels": [], - "title": "Placement", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "The total number of replicas connected to placement service.", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 44 - }, - "hiddenSeries": false, - "id": 28, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "dapr_placement_hosts_total", - "legendFormat": "hosts", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "# total replicas", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "The total number of replicas which are not hosting actors.", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 44 - }, - "hiddenSeries": false, - "id": 30, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "dapr_placement_nonactorhosts_total", - "legendFormat": "{{kubernetes_pod_name}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "# replicas not hosting actors", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "The total number of actor types registered with Dapr runtime.", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 52 - }, - "hiddenSeries": false, - "id": 32, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "dapr_placement_actortypes_total", - "legendFormat": "actor types", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "# actor types", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": "15m", - "schemaVersion": 22, - "style": "dark", - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "Dapr System Services Dashboard", - "uid": "RHSwiHXWk", - "version": 2 +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "id": 1, + "links": [], + "panels": [ + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 18, + "panels": [], + "title": "Health & Resource", + "type": "row" + }, + { + "cacheTimeout": null, + "datasource": "Dapr", + "gridPos": { + "h": 8, + "w": 4, + "x": 0, + "y": 1 + }, + "id": 20, + "links": [], + "options": { + "colorMode": "value", + "fieldOptions": { + "calcs": [ + "last" + ], + "defaults": { + "decimals": 1, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "green", + "value": 600 + } + ] + }, + "unit": "s" + }, + "overrides": [], + "values": false + }, + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal" + }, + "pluginVersion": "6.6.2", + "targets": [ + { + "expr": "time() - max(process_start_time_seconds{app=~\"dapr-sentry|dapr-placement|dapr-sidecar-injector|dapr-operator\"}) by (app)", + "intervalFactor": 2, + "legendFormat": "{{app}}", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Uptime", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "Dapr", + "description": "This shows total amount of kernel and user CPU usage time.", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 7, + "x": 4, + "y": 1 + }, + "hiddenSeries": false, + "id": 22, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(container_cpu_usage_seconds_total{pod=~\"(dapr-sentry|dapr-sidecar-injector|dapr-placement|dapr-operator).*\"}[5m])) by (pod)", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Total CPU usage (kernel and user)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "Dapr", + "description": "The amount of memory that belongs specifically to that process in bytes. This excludes swapped out memory pages.", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 7, + "x": 11, + "y": 1 + }, + "hiddenSeries": false, + "id": 24, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "max(process_resident_memory_bytes{app=~\"(dapr-sentry|dapr-sidecar-injector|dapr-placement|dapr-operator)\"}) by (app)", + "legendFormat": "{{app}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory usage in bytes", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "Dapr", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 1 + }, + "hiddenSeries": false, + "id": 26, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "max(go_goroutines{app=~\"(dapr-sentry|dapr-sidecar-injector|dapr-placement|dapr-operator)\"}) by (app)", + "legendFormat": "{{app}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Number of GO routines", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 9 + }, + "id": 14, + "panels": [], + "title": "Operator", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "description": "The total number of services created.", + "fill": 10, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 10 + }, + "hiddenSeries": false, + "id": 6, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": true, + "targets": [ + { + "expr": "count(dapr_operator_service_created_total) by (app_id)", + "legendFormat": "{{app_id}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "# Services Created", + "tooltip": { + "shared": true, + "sort": 1, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "Dapr", + "description": "The total number of services deleted.", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 10 + }, + "hiddenSeries": false, + "id": 4, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "dapr_operator_service_deleted_total", + "legendFormat": "{{app_id}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "# Services Deleted", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 18 + }, + "id": 12, + "panels": [], + "title": "Sidecar Injector", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "description": "The total number of sidecar injection requests.", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 19 + }, + "hiddenSeries": false, + "id": 8, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "dapr_injector_sidecar_injection_requests_total", + "legendFormat": "sidecars requests", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "# sidecar injection requests", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "Dapr", + "description": "The total number of successful sidecar injection requests.", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 19 + }, + "hiddenSeries": false, + "id": 10, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pluginVersion": "6.6.2", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "dapr_injector_sidecar_injection_succeeded_total", + "legendFormat": "{{app_id}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "# successful sidecar injected", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 28 + }, + "id": 42, + "panels": [], + "title": "CA Sentry", + "type": "row" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#F2495C", + "#FADE2A", + "#73BF69" + ], + "datasource": null, + "decimals": null, + "description": "", + "format": "s", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 7, + "w": 3, + "x": 0, + "y": 29 + }, + "id": 44, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "options": {}, + "pluginVersion": "6.6.2", + "postfix": " left", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true, + "ymax": null, + "ymin": null + }, + "tableColumn": "", + "targets": [ + { + "expr": "min(dapr_sentry_issuercert_expiry_timestamp) - time()", + "refId": "A" + } + ], + "thresholds": "2628000, 5256000", + "timeFrom": "1m", + "timeShift": null, + "title": "Root/Issuer cert expiry", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "description": "Certificate Signing Request ( CSR ) from Dapr runtime", + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 9, + "x": 3, + "y": 29 + }, + "hiddenSeries": false, + "id": 34, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "CSR Requests", + "color": "rgb(60, 33, 166)", + "dashes": true + }, + { + "alias": "CSR Success", + "color": "#73BF69" + }, + { + "alias": "CSR Failure", + "color": "#F2495C" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(dapr_sentry_cert_sign_request_received_total{app=\"dapr-sentry\"})", + "legendFormat": "CSR Requests", + "refId": "A" + }, + { + "expr": "sum(dapr_sentry_cert_sign_success_total{app=\"dapr-sentry\"})", + "instant": false, + "legendFormat": "CSR Success", + "refId": "B" + }, + { + "expr": "sum(dapr_sentry_cert_sign_failure_total{app=\"dapr-sentry\"})", + "instant": false, + "legendFormat": "CSR Failure", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Certificate Signing Requests (CSR) from Daprd", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "description": "This chart shows the failure reason of Certificate Sign Request.", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 29 + }, + "hiddenSeries": false, + "id": 38, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(dapr_sentry_cert_sign_failure_total{app=\"dapr-sentry\"}) by (reason)", + "legendFormat": "{{reason}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CSR Failures", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "cacheTimeout": null, + "dashLength": 10, + "dashes": false, + "datasource": "Dapr", + "description": "This will be counted when issuer cert and key are changed.", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 36 + }, + "hiddenSeries": false, + "id": 36, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pluginVersion": "6.6.2", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(dapr_sentry_issuercert_changed_total{app=\"dapr-sentry\"})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Issuer cert and key changed total", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "none", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "description": "This chart shows the reason of gRPC server TLS certificate issuance failures.", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 36 + }, + "hiddenSeries": false, + "id": 40, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(dapr_sentry_servercert_issue_failed_total{app=\"dapr-sentry\"}) by (reason)", + "legendFormat": "{{reason}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server TLS certificate issuance failures", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 43 + }, + "id": 16, + "panels": [], + "title": "Placement", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "description": "The total number of replicas connected to placement service.", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 44 + }, + "hiddenSeries": false, + "id": 28, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "dapr_placement_hosts_total", + "legendFormat": "hosts", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "# total replicas", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "description": "The total number of replicas which are not hosting actors.", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 44 + }, + "hiddenSeries": false, + "id": 30, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "dapr_placement_nonactorhosts_total", + "legendFormat": "{{kubernetes_pod_name}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "# replicas not hosting actors", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "description": "The total number of actor types registered with Dapr runtime.", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 52 + }, + "hiddenSeries": false, + "id": 32, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "dapr_placement_actortypes_total", + "legendFormat": "actor types", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "# actor types", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": "15m", + "schemaVersion": 22, + "style": "dark", + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "Dapr System Services Dashboard", + "uid": "RHSwiHXWk", + "version": 2 } \ No newline at end of file diff --git a/reference/dashboard/img/actor-dashboard.png b/daprdocs/content/en/docs/reference/dashboard/img/actor-dashboard.png similarity index 100% rename from reference/dashboard/img/actor-dashboard.png rename to daprdocs/content/en/docs/reference/dashboard/img/actor-dashboard.png diff --git a/reference/dashboard/img/sidecar-dashboard.png b/daprdocs/content/en/docs/reference/dashboard/img/sidecar-dashboard.png similarity index 100% rename from reference/dashboard/img/sidecar-dashboard.png rename to daprdocs/content/en/docs/reference/dashboard/img/sidecar-dashboard.png diff --git a/reference/dashboard/img/system-service-dashboard.png b/daprdocs/content/en/docs/reference/dashboard/img/system-service-dashboard.png similarity index 100% rename from reference/dashboard/img/system-service-dashboard.png rename to daprdocs/content/en/docs/reference/dashboard/img/system-service-dashboard.png diff --git a/reference/specs/bindings/README.md b/daprdocs/content/en/docs/reference/specs/bindings/README.md similarity index 100% rename from reference/specs/bindings/README.md rename to daprdocs/content/en/docs/reference/specs/bindings/README.md diff --git a/reference/specs/bindings/blobstorage.md b/daprdocs/content/en/docs/reference/specs/bindings/blobstorage.md similarity index 100% rename from reference/specs/bindings/blobstorage.md rename to daprdocs/content/en/docs/reference/specs/bindings/blobstorage.md diff --git a/reference/specs/bindings/cosmosdb.md b/daprdocs/content/en/docs/reference/specs/bindings/cosmosdb.md similarity index 100% rename from reference/specs/bindings/cosmosdb.md rename to daprdocs/content/en/docs/reference/specs/bindings/cosmosdb.md diff --git a/reference/specs/bindings/cron.md b/daprdocs/content/en/docs/reference/specs/bindings/cron.md similarity index 100% rename from reference/specs/bindings/cron.md rename to daprdocs/content/en/docs/reference/specs/bindings/cron.md diff --git a/reference/specs/bindings/dynamodb.md b/daprdocs/content/en/docs/reference/specs/bindings/dynamodb.md similarity index 100% rename from reference/specs/bindings/dynamodb.md rename to daprdocs/content/en/docs/reference/specs/bindings/dynamodb.md diff --git a/reference/specs/bindings/eventgrid.md b/daprdocs/content/en/docs/reference/specs/bindings/eventgrid.md similarity index 100% rename from reference/specs/bindings/eventgrid.md rename to daprdocs/content/en/docs/reference/specs/bindings/eventgrid.md diff --git a/reference/specs/bindings/eventhubs.md b/daprdocs/content/en/docs/reference/specs/bindings/eventhubs.md similarity index 100% rename from reference/specs/bindings/eventhubs.md rename to daprdocs/content/en/docs/reference/specs/bindings/eventhubs.md diff --git a/reference/specs/bindings/gcpbucket.md b/daprdocs/content/en/docs/reference/specs/bindings/gcpbucket.md similarity index 100% rename from reference/specs/bindings/gcpbucket.md rename to daprdocs/content/en/docs/reference/specs/bindings/gcpbucket.md diff --git a/reference/specs/bindings/gcppubsub.md b/daprdocs/content/en/docs/reference/specs/bindings/gcppubsub.md similarity index 100% rename from reference/specs/bindings/gcppubsub.md rename to daprdocs/content/en/docs/reference/specs/bindings/gcppubsub.md diff --git a/reference/specs/bindings/http.md b/daprdocs/content/en/docs/reference/specs/bindings/http.md similarity index 100% rename from reference/specs/bindings/http.md rename to daprdocs/content/en/docs/reference/specs/bindings/http.md diff --git a/reference/specs/bindings/influxdb.md b/daprdocs/content/en/docs/reference/specs/bindings/influxdb.md similarity index 100% rename from reference/specs/bindings/influxdb.md rename to daprdocs/content/en/docs/reference/specs/bindings/influxdb.md diff --git a/reference/specs/bindings/kafka.md b/daprdocs/content/en/docs/reference/specs/bindings/kafka.md similarity index 100% rename from reference/specs/bindings/kafka.md rename to daprdocs/content/en/docs/reference/specs/bindings/kafka.md diff --git a/reference/specs/bindings/kinesis.md b/daprdocs/content/en/docs/reference/specs/bindings/kinesis.md similarity index 100% rename from reference/specs/bindings/kinesis.md rename to daprdocs/content/en/docs/reference/specs/bindings/kinesis.md diff --git a/reference/specs/bindings/kubernetes.md b/daprdocs/content/en/docs/reference/specs/bindings/kubernetes.md similarity index 100% rename from reference/specs/bindings/kubernetes.md rename to daprdocs/content/en/docs/reference/specs/bindings/kubernetes.md diff --git a/reference/specs/bindings/mqtt.md b/daprdocs/content/en/docs/reference/specs/bindings/mqtt.md similarity index 100% rename from reference/specs/bindings/mqtt.md rename to daprdocs/content/en/docs/reference/specs/bindings/mqtt.md diff --git a/reference/specs/bindings/rabbitmq.md b/daprdocs/content/en/docs/reference/specs/bindings/rabbitmq.md similarity index 100% rename from reference/specs/bindings/rabbitmq.md rename to daprdocs/content/en/docs/reference/specs/bindings/rabbitmq.md diff --git a/reference/specs/bindings/redis.md b/daprdocs/content/en/docs/reference/specs/bindings/redis.md similarity index 100% rename from reference/specs/bindings/redis.md rename to daprdocs/content/en/docs/reference/specs/bindings/redis.md diff --git a/reference/specs/bindings/s3.md b/daprdocs/content/en/docs/reference/specs/bindings/s3.md similarity index 100% rename from reference/specs/bindings/s3.md rename to daprdocs/content/en/docs/reference/specs/bindings/s3.md diff --git a/reference/specs/bindings/sendgrid.md b/daprdocs/content/en/docs/reference/specs/bindings/sendgrid.md similarity index 100% rename from reference/specs/bindings/sendgrid.md rename to daprdocs/content/en/docs/reference/specs/bindings/sendgrid.md diff --git a/reference/specs/bindings/servicebusqueues.md b/daprdocs/content/en/docs/reference/specs/bindings/servicebusqueues.md similarity index 100% rename from reference/specs/bindings/servicebusqueues.md rename to daprdocs/content/en/docs/reference/specs/bindings/servicebusqueues.md diff --git a/reference/specs/bindings/signalr.md b/daprdocs/content/en/docs/reference/specs/bindings/signalr.md similarity index 100% rename from reference/specs/bindings/signalr.md rename to daprdocs/content/en/docs/reference/specs/bindings/signalr.md diff --git a/reference/specs/bindings/sns.md b/daprdocs/content/en/docs/reference/specs/bindings/sns.md similarity index 100% rename from reference/specs/bindings/sns.md rename to daprdocs/content/en/docs/reference/specs/bindings/sns.md diff --git a/reference/specs/bindings/sqs.md b/daprdocs/content/en/docs/reference/specs/bindings/sqs.md similarity index 100% rename from reference/specs/bindings/sqs.md rename to daprdocs/content/en/docs/reference/specs/bindings/sqs.md diff --git a/reference/specs/bindings/storagequeues.md b/daprdocs/content/en/docs/reference/specs/bindings/storagequeues.md similarity index 100% rename from reference/specs/bindings/storagequeues.md rename to daprdocs/content/en/docs/reference/specs/bindings/storagequeues.md diff --git a/reference/specs/bindings/twilio.md b/daprdocs/content/en/docs/reference/specs/bindings/twilio.md similarity index 100% rename from reference/specs/bindings/twilio.md rename to daprdocs/content/en/docs/reference/specs/bindings/twilio.md diff --git a/reference/specs/bindings/twitter.md b/daprdocs/content/en/docs/reference/specs/bindings/twitter.md similarity index 100% rename from reference/specs/bindings/twitter.md rename to daprdocs/content/en/docs/reference/specs/bindings/twitter.md diff --git a/daprdocs/layouts/partials/navbar.html b/daprdocs/layouts/partials/navbar.html new file mode 100644 index 000000000..e1dc682d4 --- /dev/null +++ b/daprdocs/layouts/partials/navbar.html @@ -0,0 +1,33 @@ +{{ $cover := .HasShortcode "blocks/cover" }} + diff --git a/daprdocs/layouts/partials/section-index.html b/daprdocs/layouts/partials/section-index.html new file mode 100644 index 000000000..48199fe64 --- /dev/null +++ b/daprdocs/layouts/partials/section-index.html @@ -0,0 +1,31 @@ +
+ {{ $pages := (where .Site.Pages "Section" .Section).ByWeight }} + {{ $parent := .Page }} + {{ if $parent.Params.no_list }} + {{/* If no_list is true we don't show a list of subpages */}} + {{ else if $parent.Params.simple_list }} + {{/* If simple_list is true we show a bulleted list of subpages */}} +
+

Read Next:

+
    + {{ range $pages }} + {{ if eq .Parent $parent }} +
  • {{- .Title -}}
  • + {{ end }} + {{ end }} +
+ {{ else }} + {{/* Otherwise we show a nice formatted list of subpages with page descriptions */}} +
+ {{ range $pages }} + {{ if eq .Parent $parent }} +
+
+ {{- .Title -}} +
+

{{ .Description | markdownify }}

+
+ {{ end }} + {{ end }} + {{ end }} +
diff --git a/daprdocs/layouts/partials/toc.html b/daprdocs/layouts/partials/toc.html new file mode 100644 index 000000000..f6055b334 --- /dev/null +++ b/daprdocs/layouts/partials/toc.html @@ -0,0 +1,10 @@ +

+

Table of Contents:

+{{ partial "page-meta-links.html" . }} +{{ if not .Params.notoc }} +{{ with .TableOfContents }} +{{ if ge (len .) 200 }} +{{ . }} +{{ end }} +{{ end }} +{{ end }} \ No newline at end of file diff --git a/daprdocs/resources/_gen/assets/scss/dapr.io/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.content b/daprdocs/resources/_gen/assets/scss/dapr.io/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.content new file mode 100644 index 000000000..dcc5e7659 --- /dev/null +++ b/daprdocs/resources/_gen/assets/scss/dapr.io/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.content @@ -0,0 +1,13862 @@ +/* + +Nothing defined here. The Hugo project that uses this theme can override theme variables by adding a file to: + +assets/scss/_variables_project.scss + +*/ +/* + +Bootstrap variables overrides for theme. +See https://github.com/twbs/bootstrap/pull/23260 +*/ +@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,700,700i"); +@fa-font-path : "../webfonts"; +/*! + * Bootstrap v4.5.0 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +:root { + --blue: #72A1E5; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #e83e8c; + --red: #dc3545; + --orange: #BA5A31; + --yellow: #ffc107; + --green: #28a745; + --teal: #20c997; + --cyan: #17a2b8; + --white: #fff; + --gray: #888; + --gray-dark: #333; + --primary: #30638E; + --secondary: #FFA630; + --success: #3772FF; + --info: #C0E0DE; + --warning: #ED6A5A; + --danger: #ED6A5A; + --light: #D3F3EE; + --dark: #403F4C; + --breakpoint-xs: 0; + --breakpoint-sm: 576px; + --breakpoint-md: 768px; + --breakpoint-lg: 992px; + --breakpoint-xl: 1200px; + --font-family-sans-serif: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } + +*, +*::before, +*::after { + box-sizing: border-box; } + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } + +article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { + display: block; } + +body { + margin: 0; + font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #222; + text-align: left; + background-color: #fff; } + +[tabindex="-1"]:focus:not(:focus-visible) { + 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; + text-decoration-skip-ink: none; } + +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: 700; } + +dd { + margin-bottom: .5rem; + margin-left: 0; } + +blockquote { + margin: 0 0 1rem; } + +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: #3176d9; + text-decoration: none; + background-color: transparent; } + a:hover { + color: #1e53a0; + text-decoration: none; } + +a:not([href]) { + color: inherit; + text-decoration: none; } + a:not([href]):hover { + color: inherit; + text-decoration: none; } + +pre, +code, +kbd, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", 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 { + overflow: hidden; + vertical-align: middle; } + +table { + border-collapse: collapse; } + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #888; + text-align: left; + caption-side: bottom; } + +th { + text-align: inherit; } + +label { + display: inline-block; + margin-bottom: 0.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; } + +[role="button"] { + cursor: pointer; } + +select { + word-wrap: normal; } + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; } + +button:not(:disabled), +[type="button"]:not(:disabled), +[type="reset"]:not(:disabled), +[type="submit"]:not(:disabled) { + cursor: pointer; } + +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; } + +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-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-weight: 500; + line-height: 1.2; } + +h1, .h1 { + font-size: 2.25rem; } + +h2, .h2 { + font-size: 2rem; } + +h3, .h3 { + font-size: 1.5rem; } + +h4, .h4 { + font-size: 1.35rem; } + +h5, .h5 { + font-size: 1.15rem; } + +h6, .h6 { + font-size: 1rem; } + +.lead { + font-size: 1.25rem; + font-weight: 300; } + +.display-1 { + font-size: 3rem; + font-weight: 700; + line-height: 1.2; } + +.display-2 { + font-size: 2.5rem; + font-weight: 700; + line-height: 1.2; } + +.display-3 { + font-size: 2rem; + font-weight: 700; + line-height: 1.2; } + +.display-4 { + font-size: 1.75rem; + font-weight: 700; + 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: #888; } + .blockquote-footer::before { + content: "\2014\00A0"; } + +.img-fluid, .td-content img { + max-width: 100%; + height: auto; } + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + 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: #888; } + +code { + font-size: 87.5%; + color: #c97300; + word-wrap: break-word; } + a > code { + color: inherit; } + +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #222; + 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: 700; + box-shadow: none; } + +pre { + display: block; + font-size: 87.5%; + color: #222; } + 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, .container-xl, .container-lg, .container-md, .container-sm { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; } + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; } } + +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; } } + +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; } } + +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; } } + +.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-xl, +.col-xl-auto, .col-xl-12, .col-xl-11, .col-xl-10, .col-xl-9, .col-xl-8, .col-xl-7, .col-xl-6, .col-xl-5, .col-xl-4, .col-xl-3, .col-xl-2, .col-xl-1, .col-lg, +.col-lg-auto, .col-lg-12, .col-lg-11, .col-lg-10, .col-lg-9, .col-lg-8, .col-lg-7, .col-lg-6, .col-lg-5, .col-lg-4, .col-lg-3, .col-lg-2, .col-lg-1, .col-md, +.col-md-auto, .col-md-12, .col-md-11, .col-md-10, .col-md-9, .col-md-8, .col-md-7, .col-md-6, .col-md-5, .col-md-4, .col-md-3, .col-md-2, .col-md-1, .col-sm, +.col-sm-auto, .col-sm-12, .col-sm-11, .col-sm-10, .col-sm-9, .col-sm-8, .col-sm-7, .col-sm-6, .col-sm-5, .col-sm-4, .col-sm-3, .col-sm-2, .col-sm-1, .col, +.col-auto, .col-12, .col-11, .col-10, .col-9, .col-8, .col-7, .col-6, .col-5, .col-4, .col-3, .col-2, .col-1 { + position: relative; + width: 100%; + padding-right: 15px; + padding-left: 15px; } + +.col { + flex-basis: 0; + flex-grow: 1; + min-width: 0; + max-width: 100%; } + +.row-cols-1 > * { + flex: 0 0 100%; + max-width: 100%; } + +.row-cols-2 > * { + flex: 0 0 50%; + max-width: 50%; } + +.row-cols-3 > * { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + +.row-cols-4 > * { + flex: 0 0 25%; + max-width: 25%; } + +.row-cols-5 > * { + flex: 0 0 20%; + max-width: 20%; } + +.row-cols-6 > * { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + +.col-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; } + +.col-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; } + +.col-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + +.col-3 { + flex: 0 0 25%; + max-width: 25%; } + +.col-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + +.col-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; } + +.col-6 { + flex: 0 0 50%; + max-width: 50%; } + +.col-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; } + +.col-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; } + +.col-9 { + flex: 0 0 75%; + max-width: 75%; } + +.col-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; } + +.col-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; } + +.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.33333333%; } + +.offset-2 { + margin-left: 16.66666667%; } + +.offset-3 { + margin-left: 25%; } + +.offset-4 { + margin-left: 33.33333333%; } + +.offset-5 { + margin-left: 41.66666667%; } + +.offset-6 { + margin-left: 50%; } + +.offset-7 { + margin-left: 58.33333333%; } + +.offset-8 { + margin-left: 66.66666667%; } + +.offset-9 { + margin-left: 75%; } + +.offset-10 { + margin-left: 83.33333333%; } + +.offset-11 { + margin-left: 91.66666667%; } + +@media (min-width: 576px) { + .col-sm { + flex-basis: 0; + flex-grow: 1; + min-width: 0; + max-width: 100%; } + .row-cols-sm-1 > * { + flex: 0 0 100%; + max-width: 100%; } + .row-cols-sm-2 > * { + flex: 0 0 50%; + max-width: 50%; } + .row-cols-sm-3 > * { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .row-cols-sm-4 > * { + flex: 0 0 25%; + max-width: 25%; } + .row-cols-sm-5 > * { + flex: 0 0 20%; + max-width: 20%; } + .row-cols-sm-6 > * { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; } + .col-sm-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; } + .col-sm-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-sm-3 { + flex: 0 0 25%; + max-width: 25%; } + .col-sm-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .col-sm-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; } + .col-sm-6 { + flex: 0 0 50%; + max-width: 50%; } + .col-sm-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; } + .col-sm-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; } + .col-sm-9 { + flex: 0 0 75%; + max-width: 75%; } + .col-sm-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; } + .col-sm-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; } + .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.33333333%; } + .offset-sm-2 { + margin-left: 16.66666667%; } + .offset-sm-3 { + margin-left: 25%; } + .offset-sm-4 { + margin-left: 33.33333333%; } + .offset-sm-5 { + margin-left: 41.66666667%; } + .offset-sm-6 { + margin-left: 50%; } + .offset-sm-7 { + margin-left: 58.33333333%; } + .offset-sm-8 { + margin-left: 66.66666667%; } + .offset-sm-9 { + margin-left: 75%; } + .offset-sm-10 { + margin-left: 83.33333333%; } + .offset-sm-11 { + margin-left: 91.66666667%; } } + +@media (min-width: 768px) { + .col-md { + flex-basis: 0; + flex-grow: 1; + min-width: 0; + max-width: 100%; } + .row-cols-md-1 > * { + flex: 0 0 100%; + max-width: 100%; } + .row-cols-md-2 > * { + flex: 0 0 50%; + max-width: 50%; } + .row-cols-md-3 > * { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .row-cols-md-4 > * { + flex: 0 0 25%; + max-width: 25%; } + .row-cols-md-5 > * { + flex: 0 0 20%; + max-width: 20%; } + .row-cols-md-6 > * { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-md-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; } + .col-md-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; } + .col-md-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-md-3 { + flex: 0 0 25%; + max-width: 25%; } + .col-md-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .col-md-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; } + .col-md-6 { + flex: 0 0 50%; + max-width: 50%; } + .col-md-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; } + .col-md-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; } + .col-md-9 { + flex: 0 0 75%; + max-width: 75%; } + .col-md-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; } + .col-md-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; } + .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.33333333%; } + .offset-md-2 { + margin-left: 16.66666667%; } + .offset-md-3 { + margin-left: 25%; } + .offset-md-4 { + margin-left: 33.33333333%; } + .offset-md-5 { + margin-left: 41.66666667%; } + .offset-md-6 { + margin-left: 50%; } + .offset-md-7 { + margin-left: 58.33333333%; } + .offset-md-8 { + margin-left: 66.66666667%; } + .offset-md-9 { + margin-left: 75%; } + .offset-md-10 { + margin-left: 83.33333333%; } + .offset-md-11 { + margin-left: 91.66666667%; } } + +@media (min-width: 992px) { + .col-lg { + flex-basis: 0; + flex-grow: 1; + min-width: 0; + max-width: 100%; } + .row-cols-lg-1 > * { + flex: 0 0 100%; + max-width: 100%; } + .row-cols-lg-2 > * { + flex: 0 0 50%; + max-width: 50%; } + .row-cols-lg-3 > * { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .row-cols-lg-4 > * { + flex: 0 0 25%; + max-width: 25%; } + .row-cols-lg-5 > * { + flex: 0 0 20%; + max-width: 20%; } + .row-cols-lg-6 > * { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; } + .col-lg-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; } + .col-lg-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-lg-3 { + flex: 0 0 25%; + max-width: 25%; } + .col-lg-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .col-lg-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; } + .col-lg-6 { + flex: 0 0 50%; + max-width: 50%; } + .col-lg-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; } + .col-lg-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; } + .col-lg-9 { + flex: 0 0 75%; + max-width: 75%; } + .col-lg-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; } + .col-lg-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; } + .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.33333333%; } + .offset-lg-2 { + margin-left: 16.66666667%; } + .offset-lg-3 { + margin-left: 25%; } + .offset-lg-4 { + margin-left: 33.33333333%; } + .offset-lg-5 { + margin-left: 41.66666667%; } + .offset-lg-6 { + margin-left: 50%; } + .offset-lg-7 { + margin-left: 58.33333333%; } + .offset-lg-8 { + margin-left: 66.66666667%; } + .offset-lg-9 { + margin-left: 75%; } + .offset-lg-10 { + margin-left: 83.33333333%; } + .offset-lg-11 { + margin-left: 91.66666667%; } } + +@media (min-width: 1200px) { + .col-xl { + flex-basis: 0; + flex-grow: 1; + min-width: 0; + max-width: 100%; } + .row-cols-xl-1 > * { + flex: 0 0 100%; + max-width: 100%; } + .row-cols-xl-2 > * { + flex: 0 0 50%; + max-width: 50%; } + .row-cols-xl-3 > * { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .row-cols-xl-4 > * { + flex: 0 0 25%; + max-width: 25%; } + .row-cols-xl-5 > * { + flex: 0 0 20%; + max-width: 20%; } + .row-cols-xl-6 > * { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; } + .col-xl-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; } + .col-xl-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-xl-3 { + flex: 0 0 25%; + max-width: 25%; } + .col-xl-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .col-xl-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; } + .col-xl-6 { + flex: 0 0 50%; + max-width: 50%; } + .col-xl-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; } + .col-xl-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; } + .col-xl-9 { + flex: 0 0 75%; + max-width: 75%; } + .col-xl-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; } + .col-xl-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; } + .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.33333333%; } + .offset-xl-2 { + margin-left: 16.66666667%; } + .offset-xl-3 { + margin-left: 25%; } + .offset-xl-4 { + margin-left: 33.33333333%; } + .offset-xl-5 { + margin-left: 41.66666667%; } + .offset-xl-6 { + margin-left: 50%; } + .offset-xl-7 { + margin-left: 58.33333333%; } + .offset-xl-8 { + margin-left: 66.66666667%; } + .offset-xl-9 { + margin-left: 75%; } + .offset-xl-10 { + margin-left: 83.33333333%; } + .offset-xl-11 { + margin-left: 91.66666667%; } } + +.table, .td-content > table, .td-box .row.section > table { + width: 100%; + margin-bottom: 1rem; + color: #222; } + .table th, .td-content > table th, .td-box .row.section > table th, + .table td, + .td-content > table td, + .td-box .row.section > table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #dee2e6; } + .table thead th, .td-content > table thead th, .td-box .row.section > table thead th { + vertical-align: bottom; + border-bottom: 2px solid #dee2e6; } + .table tbody + tbody, .td-content > table tbody + tbody, .td-box .row.section > table tbody + tbody { + border-top: 2px solid #dee2e6; } + +.table-sm th, +.table-sm td { + padding: 0.3rem; } + +.table-bordered { + border: 1px solid #dee2e6; } + .table-bordered th, + .table-bordered td { + border: 1px solid #dee2e6; } + .table-bordered thead th, + .table-bordered thead td { + border-bottom-width: 2px; } + +.table-borderless th, +.table-borderless td, +.table-borderless thead th, +.table-borderless tbody + tbody { + border: 0; } + +.table-striped tbody tr:nth-of-type(odd), .td-content > table tbody tr:nth-of-type(odd), .td-box .row.section > table tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); } + +.table-hover tbody tr:hover { + color: #222; + background-color: rgba(0, 0, 0, 0.075); } + +.table-primary, +.table-primary > th, +.table-primary > td { + background-color: #c5d3df; } + +.table-primary th, +.table-primary td, +.table-primary thead th, +.table-primary tbody + tbody { + border-color: #93aec4; } + +.table-hover .table-primary:hover { + background-color: #b5c7d6; } + .table-hover .table-primary:hover > td, + .table-hover .table-primary:hover > th { + background-color: #b5c7d6; } + +.table-secondary, +.table-secondary > th, +.table-secondary > td { + background-color: #ffe6c5; } + +.table-secondary th, +.table-secondary td, +.table-secondary thead th, +.table-secondary tbody + tbody { + border-color: #ffd193; } + +.table-hover .table-secondary:hover { + background-color: #ffdbac; } + .table-hover .table-secondary:hover > td, + .table-hover .table-secondary:hover > th { + background-color: #ffdbac; } + +.table-success, +.table-success > th, +.table-success > td { + background-color: #c7d8ff; } + +.table-success th, +.table-success td, +.table-success thead th, +.table-success tbody + tbody { + border-color: #97b6ff; } + +.table-hover .table-success:hover { + background-color: #aec6ff; } + .table-hover .table-success:hover > td, + .table-hover .table-success:hover > th { + background-color: #aec6ff; } + +.table-info, +.table-info > th, +.table-info > td { + background-color: #edf6f6; } + +.table-info th, +.table-info td, +.table-info thead th, +.table-info tbody + tbody { + border-color: #deefee; } + +.table-hover .table-info:hover { + background-color: #dceeee; } + .table-hover .table-info:hover > td, + .table-hover .table-info:hover > th { + background-color: #dceeee; } + +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #fad5d1; } + +.table-warning th, +.table-warning td, +.table-warning thead th, +.table-warning tbody + tbody { + border-color: #f6b2a9; } + +.table-hover .table-warning:hover { + background-color: #f8c0ba; } + .table-hover .table-warning:hover > td, + .table-hover .table-warning:hover > th { + background-color: #f8c0ba; } + +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #fad5d1; } + +.table-danger th, +.table-danger td, +.table-danger thead th, +.table-danger tbody + tbody { + border-color: #f6b2a9; } + +.table-hover .table-danger:hover { + background-color: #f8c0ba; } + .table-hover .table-danger:hover > td, + .table-hover .table-danger:hover > th { + background-color: #f8c0ba; } + +.table-light, +.table-light > th, +.table-light > td { + background-color: #f3fcfa; } + +.table-light th, +.table-light td, +.table-light thead th, +.table-light tbody + tbody { + border-color: #e8f9f6; } + +.table-hover .table-light:hover { + background-color: #dff7f2; } + .table-hover .table-light:hover > td, + .table-hover .table-light:hover > th { + background-color: #dff7f2; } + +.table-dark, +.table-dark > th, +.table-dark > td { + background-color: #cac9cd; } + +.table-dark th, +.table-dark td, +.table-dark thead th, +.table-dark tbody + tbody { + border-color: #9c9ba2; } + +.table-hover .table-dark:hover { + background-color: #bdbcc1; } + .table-hover .table-dark:hover > td, + .table-hover .table-dark:hover > th { + background-color: #bdbcc1; } + +.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, .td-content > table .thead-dark th, .td-box .row.section > table .thead-dark th { + color: #fff; + background-color: #333; + border-color: #464646; } + +.table .thead-light th, .td-content > table .thead-light th, .td-box .row.section > table .thead-light th { + color: #495057; + background-color: #eee; + border-color: #dee2e6; } + +.table-dark { + color: #fff; + background-color: #333; } + .table-dark th, + .table-dark td, + .table-dark thead th { + border-color: #464646; } + .table-dark.table-bordered { + border: 0; } + .table-dark.table-striped tbody tr:nth-of-type(odd), .td-content > table.table-dark tbody tr:nth-of-type(odd), .td-box .row.section > table.table-dark tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05); } + .table-dark.table-hover tbody tr:hover { + color: #fff; + 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; } + .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; } + .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; } + .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; } + .table-responsive-xl > .table-bordered { + border: 0; } } + +.table-responsive, .td-content > table, .td-box .row.section > table { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; } + .table-responsive > .table-bordered, .td-content > table > .table-bordered, .td-box .row.section > table > .table-bordered { + border: 0; } + +.form-control { + display: block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ccc; + border-radius: 0.25rem; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; } } + .form-control::-ms-expand { + background-color: transparent; + border: 0; } + .form-control:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; } + .form-control:focus { + color: #495057; + background-color: #fff; + border-color: #6fa3ce; + outline: 0; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(48, 99, 142, 0.25); } + .form-control::placeholder { + color: #888; + opacity: 1; } + .form-control:disabled, .form-control[readonly] { + background-color: #eee; + opacity: 1; } + +input[type="date"].form-control, +input[type="time"].form-control, +input[type="datetime-local"].form-control, +input[type="month"].form-control { + appearance: none; } + +select.form-control:focus::-ms-value { + color: #495057; + background-color: #fff; } + +.form-control-file, +.form-control-range { + display: block; + width: 100%; } + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; } + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 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: 0.375rem 0; + margin-bottom: 0; + font-size: 1rem; + line-height: 1.5; + color: #222; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; } + .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; } + +.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; } + +.form-control-lg { + height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; } + +select.form-control[size], select.form-control[multiple] { + height: auto; } + +textarea.form-control { + height: auto; } + +.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, .form-check-input:disabled ~ .form-check-label { + color: #888; } + +.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: #3772FF; } + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(55, 114, 255, 0.9); + border-radius: 0.25rem; } + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; } + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: #3772FF; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%233772FF' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: #3772FF; + box-shadow: 0 0 0 0.2rem rgba(55, 114, 255, 0.25); } + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } + +.was-validated .custom-select:valid, .custom-select.is-valid { + border-color: #3772FF; + padding-right: calc(0.75em + 2.3125rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%233772FF' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus { + border-color: #3772FF; + box-shadow: 0 0 0 0.2rem rgba(55, 114, 255, 0.25); } + +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #3772FF; } + +.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: #3772FF; } + .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { + border-color: #3772FF; } + +.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { + border-color: #6a96ff; + background: #6a96ff linear-gradient(180deg, #80a6ff, #6a96ff) repeat-x; } + +.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 0.2rem rgba(55, 114, 255, 0.25); } + +.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #3772FF; } + +.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label { + border-color: #3772FF; } + +.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { + border-color: #3772FF; + box-shadow: 0 0 0 0.2rem rgba(55, 114, 255, 0.25); } + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #ED6A5A; } + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(237, 106, 90, 0.9); + border-radius: 0.25rem; } + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; } + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: #ED6A5A; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23ED6A5A' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ED6A5A' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: #ED6A5A; + box-shadow: 0 0 0 0.2rem rgba(237, 106, 90, 0.25); } + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } + +.was-validated .custom-select:invalid, .custom-select.is-invalid { + border-color: #ED6A5A; + padding-right: calc(0.75em + 2.3125rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23ED6A5A' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ED6A5A' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus { + border-color: #ED6A5A; + box-shadow: 0 0 0 0.2rem rgba(237, 106, 90, 0.25); } + +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #ED6A5A; } + +.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: #ED6A5A; } + .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { + border-color: #ED6A5A; } + +.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { + border-color: #f29488; + background: #f29488 linear-gradient(180deg, #f4a49a, #f29488) repeat-x; } + +.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 0.2rem rgba(237, 106, 90, 0.25); } + +.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #ED6A5A; } + +.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label { + border-color: #ED6A5A; } + +.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { + border-color: #ED6A5A; + box-shadow: 0 0 0 0.2rem rgba(237, 106, 90, 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, + .form-inline .custom-select { + 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; + flex-shrink: 0; + 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; + color: #222; + text-align: center; + vertical-align: middle; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + 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; } + @media (prefers-reduced-motion: reduce) { + .btn { + transition: none; } } + .btn:hover { + color: #222; + text-decoration: none; } + .btn:focus, .btn.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(48, 99, 142, 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 { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } + .btn:not(:disabled):not(.disabled):active:focus, .btn:not(:disabled):not(.disabled).active:focus { + box-shadow: 0 0 0 0.2rem rgba(48, 99, 142, 0.25), inset 0 3px 5px rgba(0, 0, 0, 0.125); } + +a.btn.disabled, +fieldset:disabled a.btn { + pointer-events: none; } + +.btn-primary { + color: #fff; + background: #30638E linear-gradient(180deg, #4f7a9f, #30638E) repeat-x; + border-color: #30638E; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-primary:hover { + color: #fff; + background: #264f71 linear-gradient(180deg, #476987, #264f71) repeat-x; + border-color: #234868; } + .btn-primary:focus, .btn-primary.focus { + color: #fff; + background: #264f71 linear-gradient(180deg, #476987, #264f71) repeat-x; + border-color: #234868; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(79, 122, 159, 0.5); } + .btn-primary.disabled, .btn-primary:disabled { + color: #fff; + background-color: #30638E; + border-color: #30638E; + background-image: none; } + .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #234868; + background-image: none; + border-color: #20425e; } + .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(79, 122, 159, 0.5); } + +.btn-secondary { + color: #fff; + background: #FFA630 linear-gradient(180deg, #ffb34f, #FFA630) repeat-x; + border-color: #FFA630; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-secondary:hover { + color: #fff; + background: #ff960a linear-gradient(180deg, #ffa52f, #ff960a) repeat-x; + border-color: #fc9000; } + .btn-secondary:focus, .btn-secondary.focus { + color: #fff; + background: #ff960a linear-gradient(180deg, #ffa52f, #ff960a) repeat-x; + border-color: #fc9000; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(255, 179, 79, 0.5); } + .btn-secondary.disabled, .btn-secondary:disabled { + color: #fff; + background-color: #FFA630; + border-color: #FFA630; + background-image: none; } + .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #fc9000; + background-image: none; + border-color: #ef8800; } + .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(255, 179, 79, 0.5); } + +.btn-success { + color: #fff; + background: #3772FF linear-gradient(180deg, #5587ff, #3772FF) repeat-x; + border-color: #3772FF; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-success:hover { + color: #fff; + background: #1157ff linear-gradient(180deg, #3470ff, #1157ff) repeat-x; + border-color: #044eff; } + .btn-success:focus, .btn-success.focus { + color: #fff; + background: #1157ff linear-gradient(180deg, #3470ff, #1157ff) repeat-x; + border-color: #044eff; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(85, 135, 255, 0.5); } + .btn-success.disabled, .btn-success:disabled { + color: #fff; + background-color: #3772FF; + border-color: #3772FF; + background-image: none; } + .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #044eff; + background-image: none; + border-color: #0049f6; } + .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(85, 135, 255, 0.5); } + +.btn-info { + color: #222; + background: #C0E0DE linear-gradient(180deg, #c9e5e3, #C0E0DE) repeat-x; + border-color: #C0E0DE; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-info:hover { + color: #fff; + background: #a6d3d1 linear-gradient(180deg, #b4dad8, #a6d3d1) repeat-x; + border-color: #9ecfcc; } + .btn-info:focus, .btn-info.focus { + color: #fff; + background: #a6d3d1 linear-gradient(180deg, #b4dad8, #a6d3d1) repeat-x; + border-color: #9ecfcc; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(168, 196, 194, 0.5); } + .btn-info.disabled, .btn-info:disabled { + color: #222; + background-color: #C0E0DE; + border-color: #C0E0DE; + background-image: none; } + .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, .show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #9ecfcc; + background-image: none; + border-color: #95cbc8; } + .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, .show > .btn-info.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(168, 196, 194, 0.5); } + +.btn-warning { + color: #fff; + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x; + border-color: #ED6A5A; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-warning:hover { + color: #fff; + background: #e94b38 linear-gradient(180deg, #ed6655, #e94b38) repeat-x; + border-color: #e8402c; } + .btn-warning:focus, .btn-warning.focus { + color: #fff; + background: #e94b38 linear-gradient(180deg, #ed6655, #e94b38) repeat-x; + border-color: #e8402c; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(240, 128, 115, 0.5); } + .btn-warning.disabled, .btn-warning:disabled { + color: #fff; + background-color: #ED6A5A; + border-color: #ED6A5A; + background-image: none; } + .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, .show > .btn-warning.dropdown-toggle { + color: #fff; + background-color: #e8402c; + background-image: none; + border-color: #e73621; } + .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-warning.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(240, 128, 115, 0.5); } + +.btn-danger { + color: #fff; + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x; + border-color: #ED6A5A; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-danger:hover { + color: #fff; + background: #e94b38 linear-gradient(180deg, #ed6655, #e94b38) repeat-x; + border-color: #e8402c; } + .btn-danger:focus, .btn-danger.focus { + color: #fff; + background: #e94b38 linear-gradient(180deg, #ed6655, #e94b38) repeat-x; + border-color: #e8402c; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(240, 128, 115, 0.5); } + .btn-danger.disabled, .btn-danger:disabled { + color: #fff; + background-color: #ED6A5A; + border-color: #ED6A5A; + background-image: none; } + .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, .show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #e8402c; + background-image: none; + border-color: #e73621; } + .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(240, 128, 115, 0.5); } + +.btn-light { + color: #222; + background: #D3F3EE linear-gradient(180deg, #daf5f1, #D3F3EE) repeat-x; + border-color: #D3F3EE; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-light:hover { + color: #222; + background: #b5ebe2 linear-gradient(180deg, #c0eee7, #b5ebe2) repeat-x; + border-color: #abe8df; } + .btn-light:focus, .btn-light.focus { + color: #222; + background: #b5ebe2 linear-gradient(180deg, #c0eee7, #b5ebe2) repeat-x; + border-color: #abe8df; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(184, 212, 207, 0.5); } + .btn-light.disabled, .btn-light:disabled { + color: #222; + background-color: #D3F3EE; + border-color: #D3F3EE; + background-image: none; } + .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, .show > .btn-light.dropdown-toggle { + color: #222; + background-color: #abe8df; + background-image: none; + border-color: #a1e5db; } + .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, .show > .btn-light.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(184, 212, 207, 0.5); } + +.btn-dark { + color: #fff; + background: #403F4C linear-gradient(180deg, #5d5c67, #403F4C) repeat-x; + border-color: #403F4C; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-dark:hover { + color: #fff; + background: #2e2e37 linear-gradient(180deg, #4e4d55, #2e2e37) repeat-x; + border-color: #292830; } + .btn-dark:focus, .btn-dark.focus { + color: #fff; + background: #2e2e37 linear-gradient(180deg, #4e4d55, #2e2e37) repeat-x; + border-color: #292830; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(93, 92, 103, 0.5); } + .btn-dark.disabled, .btn-dark:disabled { + color: #fff; + background-color: #403F4C; + border-color: #403F4C; + background-image: none; } + .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, .show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #292830; + background-image: none; + border-color: #232229; } + .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-dark.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(93, 92, 103, 0.5); } + +.btn-outline-primary { + color: #30638E; + border-color: #30638E; } + .btn-outline-primary:hover { + color: #fff; + background-color: #30638E; + border-color: #30638E; } + .btn-outline-primary:focus, .btn-outline-primary.focus { + box-shadow: 0 0 0 0.2rem rgba(48, 99, 142, 0.5); } + .btn-outline-primary.disabled, .btn-outline-primary:disabled { + color: #30638E; + 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: #fff; + background-color: #30638E; + border-color: #30638E; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(48, 99, 142, 0.5); } + +.btn-outline-secondary { + color: #FFA630; + border-color: #FFA630; } + .btn-outline-secondary:hover { + color: #fff; + background-color: #FFA630; + border-color: #FFA630; } + .btn-outline-secondary:focus, .btn-outline-secondary.focus { + box-shadow: 0 0 0 0.2rem rgba(255, 166, 48, 0.5); } + .btn-outline-secondary.disabled, .btn-outline-secondary:disabled { + color: #FFA630; + 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: #fff; + background-color: #FFA630; + border-color: #FFA630; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(255, 166, 48, 0.5); } + +.btn-outline-success { + color: #3772FF; + border-color: #3772FF; } + .btn-outline-success:hover { + color: #fff; + background-color: #3772FF; + border-color: #3772FF; } + .btn-outline-success:focus, .btn-outline-success.focus { + box-shadow: 0 0 0 0.2rem rgba(55, 114, 255, 0.5); } + .btn-outline-success.disabled, .btn-outline-success:disabled { + color: #3772FF; + 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: #fff; + background-color: #3772FF; + border-color: #3772FF; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(55, 114, 255, 0.5); } + +.btn-outline-info { + color: #C0E0DE; + border-color: #C0E0DE; } + .btn-outline-info:hover { + color: #222; + background-color: #C0E0DE; + border-color: #C0E0DE; } + .btn-outline-info:focus, .btn-outline-info.focus { + box-shadow: 0 0 0 0.2rem rgba(192, 224, 222, 0.5); } + .btn-outline-info.disabled, .btn-outline-info:disabled { + color: #C0E0DE; + 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: #222; + background-color: #C0E0DE; + border-color: #C0E0DE; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(192, 224, 222, 0.5); } + +.btn-outline-warning { + color: #ED6A5A; + border-color: #ED6A5A; } + .btn-outline-warning:hover { + color: #fff; + background-color: #ED6A5A; + border-color: #ED6A5A; } + .btn-outline-warning:focus, .btn-outline-warning.focus { + box-shadow: 0 0 0 0.2rem rgba(237, 106, 90, 0.5); } + .btn-outline-warning.disabled, .btn-outline-warning:disabled { + color: #ED6A5A; + 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: #fff; + background-color: #ED6A5A; + border-color: #ED6A5A; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(237, 106, 90, 0.5); } + +.btn-outline-danger { + color: #ED6A5A; + border-color: #ED6A5A; } + .btn-outline-danger:hover { + color: #fff; + background-color: #ED6A5A; + border-color: #ED6A5A; } + .btn-outline-danger:focus, .btn-outline-danger.focus { + box-shadow: 0 0 0 0.2rem rgba(237, 106, 90, 0.5); } + .btn-outline-danger.disabled, .btn-outline-danger:disabled { + color: #ED6A5A; + 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: #fff; + background-color: #ED6A5A; + border-color: #ED6A5A; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(237, 106, 90, 0.5); } + +.btn-outline-light { + color: #D3F3EE; + border-color: #D3F3EE; } + .btn-outline-light:hover { + color: #222; + background-color: #D3F3EE; + border-color: #D3F3EE; } + .btn-outline-light:focus, .btn-outline-light.focus { + box-shadow: 0 0 0 0.2rem rgba(211, 243, 238, 0.5); } + .btn-outline-light.disabled, .btn-outline-light:disabled { + color: #D3F3EE; + 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: #222; + background-color: #D3F3EE; + border-color: #D3F3EE; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(211, 243, 238, 0.5); } + +.btn-outline-dark { + color: #403F4C; + border-color: #403F4C; } + .btn-outline-dark:hover { + color: #fff; + background-color: #403F4C; + border-color: #403F4C; } + .btn-outline-dark:focus, .btn-outline-dark.focus { + box-shadow: 0 0 0 0.2rem rgba(64, 63, 76, 0.5); } + .btn-outline-dark.disabled, .btn-outline-dark:disabled { + color: #403F4C; + 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: #fff; + background-color: #403F4C; + border-color: #403F4C; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(64, 63, 76, 0.5); } + +.btn-link { + font-weight: 400; + color: #3176d9; + text-decoration: none; } + .btn-link:hover { + color: #1e53a0; + text-decoration: none; } + .btn-link:focus, .btn-link.focus { + text-decoration: none; } + .btn-link:disabled, .btn-link.disabled { + color: #888; + pointer-events: none; } + +.btn-lg, .btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; } + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; } + +.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 { + transition: opacity 0.15s linear; } + @media (prefers-reduced-motion: reduce) { + .fade { + transition: none; } } + .fade:not(.show) { + opacity: 0; } + +.collapse:not(.show) { + display: none; } + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height 0.35s ease; } + @media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; } } +.dropup, +.dropright, +.dropdown, +.dropleft { + position: relative; } + +.dropdown-toggle { + white-space: nowrap; } + .dropdown-toggle::after { + display: inline-block; + 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: #222; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175); } + +.dropdown-menu-left { + right: auto; + left: 0; } + +.dropdown-menu-right { + right: 0; + left: auto; } + +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0; } + .dropdown-menu-sm-right { + right: 0; + left: auto; } } + +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0; } + .dropdown-menu-md-right { + right: 0; + left: auto; } } + +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0; } + .dropdown-menu-lg-right { + right: 0; + left: auto; } } + +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0; } + .dropdown-menu-xl-right { + right: 0; + left: auto; } } + +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; } + +.dropup .dropdown-toggle::after { + display: inline-block; + 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 { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; } + +.dropright .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + 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 { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; } + +.dropleft .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; } + +.dropleft .dropdown-toggle::after { + display: none; } + +.dropleft .dropdown-toggle::before { + display: inline-block; + 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-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] { + right: auto; + bottom: auto; } + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #eee; } + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #222; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; } + .dropdown-item:hover, .dropdown-item:focus { + color: #151515; + text-decoration: none; + background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x; } + .dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background: #30638E linear-gradient(180deg, #4f7a9f, #30638E) repeat-x; } + .dropdown-item.disabled, .dropdown-item:disabled { + color: #888; + pointer-events: none; + background-color: transparent; + background-image: none; } + +.dropdown-menu.show { + display: block; } + +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #888; + white-space: nowrap; } + +.dropdown-item-text { + display: block; + padding: 0.25rem 1.5rem; + color: #222; } + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; } + .btn-group > .btn, + .btn-group-vertical > .btn { + position: relative; + flex: 1 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-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .btn-toolbar .input-group { + width: auto; } + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; } + +.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.5625rem; + padding-left: 0.5625rem; } + .dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropright .dropdown-toggle-split::after { + margin-left: 0; } + .dropleft .dropdown-toggle-split::before { + margin-right: 0; } + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; } + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; } + +.btn-group.show .dropdown-toggle { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } + .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:not(:first-child), + .btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; } + .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 > .form-control-plaintext, + .input-group > .custom-select, + .input-group > .custom-file { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; + margin-bottom: 0; } + .input-group > .form-control + .form-control, + .input-group > .form-control + .custom-select, + .input-group > .form-control + .custom-file, + .input-group > .form-control-plaintext + .form-control, + .input-group > .form-control-plaintext + .custom-select, + .input-group > .form-control-plaintext + .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:focus, + .input-group > .custom-select:focus, + .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label { + z-index: 3; } + .input-group > .custom-file .custom-file-input:focus { + z-index: 4; } + .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::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + .input-group > .custom-file:not(:first-child) .custom-file-label { + 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:focus, + .input-group-append .btn:focus { + z-index: 3; } + .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.375rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 0.25rem; } + .input-group-text input[type="radio"], + .input-group-text input[type="checkbox"] { + margin-top: 0; } + +.input-group-lg > .form-control:not(textarea), +.input-group-lg > .custom-select { + height: calc(1.5em + 1rem + 2px); } + +.input-group-lg > .form-control, +.input-group-lg > .custom-select, +.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.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; } + +.input-group-sm > .form-control:not(textarea), +.input-group-sm > .custom-select { + height: calc(1.5em + 0.5rem + 2px); } + +.input-group-sm > .form-control, +.input-group-sm > .custom-select, +.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.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; } + +.input-group-lg > .custom-select, +.input-group-sm > .custom-select { + padding-right: 1.75rem; } + +.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; + left: 0; + z-index: -1; + width: 1rem; + height: 1.25rem; + opacity: 0; } + .custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + border-color: #30638E; + background: #30638E linear-gradient(180deg, #4f7a9f, #30638E) repeat-x; + box-shadow: none; } + .custom-control-input:focus ~ .custom-control-label::before { + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(48, 99, 142, 0.25); } + .custom-control-input:focus:not(:checked) ~ .custom-control-label::before { + border-color: #6fa3ce; } + .custom-control-input:not(:disabled):active ~ .custom-control-label::before { + color: #fff; + background-color: #95bbdb; + border-color: #95bbdb; + box-shadow: none; } + .custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label { + color: #888; } + .custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before { + background-color: #eee; } + +.custom-control-label { + position: relative; + margin-bottom: 0; + vertical-align: top; } + .custom-control-label::before { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ""; + background-color: #fff; + border: #adb5bd solid 1px; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } + .custom-control-label::after { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + content: ""; + background: no-repeat 50% / 50% 50%; } + +.custom-checkbox .custom-control-label::before { + border-radius: 0.25rem; } + +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e"); } + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + border-color: #30638E; + background: #30638E linear-gradient(180deg, #4f7a9f, #30638E) repeat-x; + box-shadow: none; } + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e"); } + +.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(48, 99, 142, 0.5); } + +.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { + background-color: rgba(48, 99, 142, 0.5); } + +.custom-radio .custom-control-label::before { + border-radius: 50%; } + +.custom-radio .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); } + +.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(48, 99, 142, 0.5); } + +.custom-switch { + padding-left: 2.25rem; } + .custom-switch .custom-control-label::before { + left: -2.25rem; + width: 1.75rem; + pointer-events: all; + border-radius: 0.5rem; } + .custom-switch .custom-control-label::after { + top: calc(0.25rem + 2px); + left: calc(-2.25rem + 2px); + width: calc(1rem - 4px); + height: calc(1rem - 4px); + background-color: #adb5bd; + border-radius: 0.5rem; + transition: transform 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; } + @media (prefers-reduced-motion: reduce) { + .custom-switch .custom-control-label::after { + transition: none; } } + .custom-switch .custom-control-input:checked ~ .custom-control-label::after { + background-color: #fff; + transform: translateX(0.75rem); } + .custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(48, 99, 142, 0.5); } + +.custom-select { + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px; + border: 1px solid #ccc; + border-radius: 0.25rem; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075); + appearance: none; } + .custom-select:focus { + border-color: #6fa3ce; + outline: 0; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(48, 99, 142, 0.25); } + .custom-select:focus::-ms-value { + color: #495057; + background-color: #fff; } + .custom-select[multiple], .custom-select[size]:not([size="1"]) { + height: auto; + padding-right: 0.75rem; + background-image: none; } + .custom-select:disabled { + color: #888; + background-color: #eee; } + .custom-select::-ms-expand { + display: none; } + .custom-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; } + +.custom-select-sm { + height: calc(1.5em + 0.5rem + 2px); + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; } + +.custom-select-lg { + height: calc(1.5em + 1rem + 2px); + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; } + +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin-bottom: 0; } + +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin: 0; + opacity: 0; } + .custom-file-input:focus ~ .custom-file-label { + border-color: #6fa3ce; + box-shadow: 0 0 0 0.2rem rgba(48, 99, 142, 0.25); } + .custom-file-input[disabled] ~ .custom-file-label, .custom-file-input:disabled ~ .custom-file-label { + background-color: #eee; } + .custom-file-input:lang(en) ~ .custom-file-label::after { + content: "Browse"; } + .custom-file-input ~ .custom-file-label[data-browse]::after { + content: attr(data-browse); } + +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + border: 1px solid #ccc; + border-radius: 0.25rem; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } + .custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: calc(1.5em + 0.75rem); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + content: "Browse"; + background: #eee linear-gradient(180deg, #f1f1f1, #eee) repeat-x; + border-left: inherit; + border-radius: 0 0.25rem 0.25rem 0; } + +.custom-range { + width: 100%; + height: 1.4rem; + padding: 0; + background-color: transparent; + appearance: none; } + .custom-range:focus { + outline: none; } + .custom-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(48, 99, 142, 0.25); } + .custom-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(48, 99, 142, 0.25); } + .custom-range:focus::-ms-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(48, 99, 142, 0.25); } + .custom-range::-moz-focus-outer { + border: 0; } + .custom-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background: #30638E linear-gradient(180deg, #4f7a9f, #30638E) repeat-x; + border: 0; + border-radius: 1rem; + box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; } + @media (prefers-reduced-motion: reduce) { + .custom-range::-webkit-slider-thumb { + transition: none; } } + .custom-range::-webkit-slider-thumb:active { + background: #95bbdb linear-gradient(180deg, #a5c5e1, #95bbdb) repeat-x; } + .custom-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; + box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1); } + .custom-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background: #30638E linear-gradient(180deg, #4f7a9f, #30638E) repeat-x; + border: 0; + border-radius: 1rem; + box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; } + @media (prefers-reduced-motion: reduce) { + .custom-range::-moz-range-thumb { + transition: none; } } + .custom-range::-moz-range-thumb:active { + background: #95bbdb linear-gradient(180deg, #a5c5e1, #95bbdb) repeat-x; } + .custom-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; + box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1); } + .custom-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: 0.2rem; + margin-left: 0.2rem; + background: #30638E linear-gradient(180deg, #4f7a9f, #30638E) repeat-x; + border: 0; + border-radius: 1rem; + box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; } + @media (prefers-reduced-motion: reduce) { + .custom-range::-ms-thumb { + transition: none; } } + .custom-range::-ms-thumb:active { + background: #95bbdb linear-gradient(180deg, #a5c5e1, #95bbdb) repeat-x; } + .custom-range::-ms-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: 0.5rem; + box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1); } + .custom-range::-ms-fill-lower { + background-color: #dee2e6; + border-radius: 1rem; } + .custom-range::-ms-fill-upper { + margin-right: 15px; + background-color: #dee2e6; + border-radius: 1rem; } + .custom-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; } + .custom-range:disabled::-webkit-slider-runnable-track { + cursor: default; } + .custom-range:disabled::-moz-range-thumb { + background-color: #adb5bd; } + .custom-range:disabled::-moz-range-track { + cursor: default; } + .custom-range:disabled::-ms-thumb { + background-color: #adb5bd; } + +.custom-control-label::before, +.custom-file-label, +.custom-select { + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .custom-control-label::before, + .custom-file-label, + .custom-select { + transition: none; } } +.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: #888; + pointer-events: none; + cursor: default; } + +.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: #eee #eee #dee2e6; } + .nav-tabs .nav-link.disabled { + color: #888; + background-color: transparent; + border-color: transparent; } + .nav-tabs .nav-link.active, + .nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; } + .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: #fff; + background-color: #30638E; } + +.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, + .navbar .container-sm, + .navbar .container-md, + .navbar .container-lg, + .navbar .container-xl { + 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-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, + .navbar-expand-sm > .container-sm, + .navbar-expand-sm > .container-md, + .navbar-expand-sm > .container-lg, + .navbar-expand-sm > .container-xl { + 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 .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, + .navbar-expand-sm > .container-sm, + .navbar-expand-sm > .container-md, + .navbar-expand-sm > .container-lg, + .navbar-expand-sm > .container-xl { + flex-wrap: nowrap; } + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand-sm .navbar-toggler { + display: none; } } + +@media (max-width: 767.98px) { + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, + .navbar-expand-md > .container-sm, + .navbar-expand-md > .container-md, + .navbar-expand-md > .container-lg, + .navbar-expand-md > .container-xl { + 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 .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, + .navbar-expand-md > .container-sm, + .navbar-expand-md > .container-md, + .navbar-expand-md > .container-lg, + .navbar-expand-md > .container-xl { + flex-wrap: nowrap; } + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand-md .navbar-toggler { + display: none; } } + +@media (max-width: 991.98px) { + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, + .navbar-expand-lg > .container-sm, + .navbar-expand-lg > .container-md, + .navbar-expand-lg > .container-lg, + .navbar-expand-lg > .container-xl { + 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 .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, + .navbar-expand-lg > .container-sm, + .navbar-expand-lg > .container-md, + .navbar-expand-lg > .container-lg, + .navbar-expand-lg > .container-xl { + flex-wrap: nowrap; } + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand-lg .navbar-toggler { + display: none; } } + +@media (max-width: 1199.98px) { + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, + .navbar-expand-xl > .container-sm, + .navbar-expand-xl > .container-md, + .navbar-expand-xl > .container-lg, + .navbar-expand-xl > .container-xl { + 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 .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, + .navbar-expand-xl > .container-sm, + .navbar-expand-xl > .container-md, + .navbar-expand-xl > .container-lg, + .navbar-expand-xl > .container-xl { + flex-wrap: nowrap; } + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand-xl .navbar-toggler { + display: none; } } + +.navbar-expand { + flex-flow: row nowrap; + justify-content: flex-start; } + .navbar-expand > .container, + .navbar-expand > .container-fluid, + .navbar-expand > .container-sm, + .navbar-expand > .container-md, + .navbar-expand > .container-lg, + .navbar-expand > .container-xl { + 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 .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand > .container, + .navbar-expand > .container-fluid, + .navbar-expand > .container-sm, + .navbar-expand > .container-md, + .navbar-expand > .container-lg, + .navbar-expand > .container-xl { + flex-wrap: nowrap; } + .navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand .navbar-toggler { + display: none; } + +.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,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' 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: #fff; } + .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { + color: #fff; } + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.75); } + .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.5); } + .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: #fff; } + +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.75); + border-color: rgba(255, 255, 255, 0.1); } + +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } + +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.75); } + .navbar-dark .navbar-text a { + color: #fff; } + .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus { + color: #fff; } + +.card, .td-content .highlight { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; } + .card > hr, .td-content .highlight > hr { + margin-right: 0; + margin-left: 0; } + .card > .list-group, .td-content .highlight > .list-group { + border-top: inherit; + border-bottom: inherit; } + .card > .list-group:first-child, .td-content .highlight > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); } + .card > .list-group:last-child, .td-content .highlight > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); } + +.card-body { + flex: 1 1 auto; + min-height: 1px; + 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: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); } + .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: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); } + .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, +.card-img-top, +.card-img-bottom { + flex-shrink: 0; + width: 100%; } + +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); } + +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); } + +.card-deck .card, .card-deck .td-content .highlight, .td-content .card-deck .highlight { + margin-bottom: 15px; } + +@media (min-width: 576px) { + .card-deck { + display: flex; + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px; } + .card-deck .card, .card-deck .td-content .highlight, .td-content .card-deck .highlight { + flex: 1 0 0%; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px; } } + +.card-group > .card, .td-content .card-group > .highlight { + margin-bottom: 15px; } + +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap; } + .card-group > .card, .td-content .card-group > .highlight { + flex: 1 0 0%; + margin-bottom: 0; } + .card-group > .card + .card, .td-content .card-group > .highlight + .card, .td-content .card-group > .card + .highlight, .td-content .card-group > .highlight + .highlight { + margin-left: 0; + border-left: 0; } + .card-group > .card:not(:last-child), .td-content .card-group > .highlight:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + .card-group > .card:not(:last-child) .card-img-top, .td-content .card-group > .highlight:not(:last-child) .card-img-top, + .card-group > .card:not(:last-child) .card-header, + .td-content .card-group > .highlight:not(:last-child) .card-header { + border-top-right-radius: 0; } + .card-group > .card:not(:last-child) .card-img-bottom, .td-content .card-group > .highlight:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer, + .td-content .card-group > .highlight:not(:last-child) .card-footer { + border-bottom-right-radius: 0; } + .card-group > .card:not(:first-child), .td-content .card-group > .highlight:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + .card-group > .card:not(:first-child) .card-img-top, .td-content .card-group > .highlight:not(:first-child) .card-img-top, + .card-group > .card:not(:first-child) .card-header, + .td-content .card-group > .highlight:not(:first-child) .card-header { + border-top-left-radius: 0; } + .card-group > .card:not(:first-child) .card-img-bottom, .td-content .card-group > .highlight:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer, + .td-content .card-group > .highlight:not(:first-child) .card-footer { + border-bottom-left-radius: 0; } } + +.card-columns .card, .card-columns .td-content .highlight, .td-content .card-columns .highlight { + margin-bottom: 0.75rem; } + +@media (min-width: 576px) { + .card-columns { + column-count: 3; + column-gap: 1.25rem; + orphans: 1; + widows: 1; } + .card-columns .card, .card-columns .td-content .highlight, .td-content .card-columns .highlight { + display: inline-block; + width: 100%; } } + +.accordion > .card, .td-content .accordion > .highlight { + overflow: hidden; } + .accordion > .card:not(:last-of-type), .td-content .accordion > .highlight:not(:last-of-type) { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } + .accordion > .card:not(:first-of-type), .td-content .accordion > .highlight:not(:first-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0; } + .accordion > .card > .card-header, .td-content .accordion > .highlight > .card-header { + border-radius: 0; + margin-bottom: -1px; } + +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #eee; + border-radius: 0.25rem; } + +.breadcrumb-item { + display: flex; } + .breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; } + .breadcrumb-item + .breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + color: #888; + content: "/"; } + .breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; } + .breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; } + .breadcrumb-item.active { + color: #888; } + +.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: -1px; + line-height: 1.25; + color: #888; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.1); } + .page-link:hover { + z-index: 2; + color: #1e53a0; + text-decoration: none; + background-color: #eee; + border-color: #dee2e6; } + .page-link:focus { + z-index: 3; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(48, 99, 142, 0.25); } + +.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: 3; + color: #fff; + background-color: #30638E; + border-color: #2a567b; } + +.page-item.disabled .page-link { + color: #dee2e6; + pointer-events: none; + cursor: auto; + background-color: #fff; + border-color: #dee2e6; } + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + 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.5rem; + 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; } + +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + 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; } + @media (prefers-reduced-motion: reduce) { + .badge { + transition: none; } } + a.badge:hover, a.badge:focus { + text-decoration: none; } + .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: #fff; + background-color: #30638E; } + a.badge-primary:hover, a.badge-primary:focus { + color: #fff; + background-color: #234868; } + a.badge-primary:focus, a.badge-primary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(48, 99, 142, 0.5); } + +.badge-secondary { + color: #fff; + background-color: #FFA630; } + a.badge-secondary:hover, a.badge-secondary:focus { + color: #fff; + background-color: #fc9000; } + a.badge-secondary:focus, a.badge-secondary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(255, 166, 48, 0.5); } + +.badge-success { + color: #fff; + background-color: #3772FF; } + a.badge-success:hover, a.badge-success:focus { + color: #fff; + background-color: #044eff; } + a.badge-success:focus, a.badge-success.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(55, 114, 255, 0.5); } + +.badge-info { + color: #222; + background-color: #C0E0DE; } + a.badge-info:hover, a.badge-info:focus { + color: #222; + background-color: #9ecfcc; } + a.badge-info:focus, a.badge-info.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(192, 224, 222, 0.5); } + +.badge-warning { + color: #fff; + background-color: #ED6A5A; } + a.badge-warning:hover, a.badge-warning:focus { + color: #fff; + background-color: #e8402c; } + a.badge-warning:focus, a.badge-warning.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(237, 106, 90, 0.5); } + +.badge-danger { + color: #fff; + background-color: #ED6A5A; } + a.badge-danger:hover, a.badge-danger:focus { + color: #fff; + background-color: #e8402c; } + a.badge-danger:focus, a.badge-danger.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(237, 106, 90, 0.5); } + +.badge-light { + color: #222; + background-color: #D3F3EE; } + a.badge-light:hover, a.badge-light:focus { + color: #222; + background-color: #abe8df; } + a.badge-light:focus, a.badge-light.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(211, 243, 238, 0.5); } + +.badge-dark { + color: #fff; + background-color: #403F4C; } + a.badge-dark:hover, a.badge-dark:focus { + color: #fff; + background-color: #292830; } + a.badge-dark:focus, a.badge-dark.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(64, 63, 76, 0.5); } + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #eee; + 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: 700; } + +.alert-dismissible { + padding-right: 4rem; } + .alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: 0.75rem 1.25rem; + color: inherit; } + +.alert-primary { + color: #19334a; + background: #d6e0e8 linear-gradient(180deg, #dce5eb, #d6e0e8) repeat-x; + border-color: #c5d3df; } + .alert-primary hr { + border-top-color: #b5c7d6; } + .alert-primary .alert-link { + color: #0c1924; } + +.alert-secondary { + color: #855619; + background: #ffedd6 linear-gradient(180deg, #fff0dc, #ffedd6) repeat-x; + border-color: #ffe6c5; } + .alert-secondary hr { + border-top-color: #ffdbac; } + .alert-secondary .alert-link { + color: #5a3a11; } + +.alert-success { + color: #1d3b85; + background: #d7e3ff linear-gradient(180deg, #dde7ff, #d7e3ff) repeat-x; + border-color: #c7d8ff; } + .alert-success hr { + border-top-color: #aec6ff; } + .alert-success .alert-link { + color: #14285b; } + +.alert-info { + color: #647473; + background: #f2f9f8 linear-gradient(180deg, #f4faf9, #f2f9f8) repeat-x; + border-color: #edf6f6; } + .alert-info hr { + border-top-color: #dceeee; } + .alert-info .alert-link { + color: #4c5958; } + +.alert-warning { + color: #7b372f; + background: #fbe1de linear-gradient(180deg, #fce6e3, #fbe1de) repeat-x; + border-color: #fad5d1; } + .alert-warning hr { + border-top-color: #f8c0ba; } + .alert-warning .alert-link { + color: #562721; } + +.alert-danger { + color: #7b372f; + background: #fbe1de linear-gradient(180deg, #fce6e3, #fbe1de) repeat-x; + border-color: #fad5d1; } + .alert-danger hr { + border-top-color: #f8c0ba; } + .alert-danger .alert-link { + color: #562721; } + +.alert-light { + color: #6e7e7c; + background: #f6fdfc linear-gradient(180deg, #f7fdfc, #f6fdfc) repeat-x; + border-color: #f3fcfa; } + .alert-light hr { + border-top-color: #dff7f2; } + .alert-light .alert-link { + color: #566361; } + +.alert-dark { + color: #212128; + background: #d9d9db linear-gradient(180deg, #dfdfe0, #d9d9db) repeat-x; + border-color: #cac9cd; } + .alert-dark hr { + border-top-color: #bdbcc1; } + .alert-dark .alert-link { + color: #0a0a0c; } + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; } + to { + background-position: 0 0; } } + +.progress { + display: flex; + height: 1rem; + overflow: hidden; + line-height: 0; + font-size: 0.75rem; + background-color: #eee; + 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; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #30638E; + transition: width 0.6s ease; } + @media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; } } +.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 (prefers-reduced-motion: reduce) { + .progress-bar-animated { + animation: none; } } +.media { + display: flex; + align-items: flex-start; } + +.media-body { + flex: 1; } + +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: 0.25rem; } + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; } + .list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa; } + .list-group-item-action:active { + color: #222; + background-color: #eee; } + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); } + .list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; } + .list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; } + .list-group-item.disabled, .list-group-item:disabled { + color: #888; + pointer-events: none; + background-color: #fff; } + .list-group-item.active { + z-index: 2; + color: #fff; + background-color: #30638E; + border-color: #30638E; } + .list-group-item + .list-group-item { + border-top-width: 0; } + .list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; } + +.list-group-horizontal { + flex-direction: row; } + .list-group-horizontal > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } + +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; } + .list-group-horizontal-sm > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal-sm > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } } + +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; } + .list-group-horizontal-md > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal-md > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } } + +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; } + .list-group-horizontal-lg > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal-lg > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } } + +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; } + .list-group-horizontal-xl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal-xl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } } + +.list-group-flush { + border-radius: 0; } + .list-group-flush > .list-group-item { + border-width: 0 0 1px; } + .list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; } + +.list-group-item-primary { + color: #19334a; + background-color: #c5d3df; } + .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #19334a; + background-color: #b5c7d6; } + .list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #19334a; + border-color: #19334a; } + +.list-group-item-secondary { + color: #855619; + background-color: #ffe6c5; } + .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #855619; + background-color: #ffdbac; } + .list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #855619; + border-color: #855619; } + +.list-group-item-success { + color: #1d3b85; + background-color: #c7d8ff; } + .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #1d3b85; + background-color: #aec6ff; } + .list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #1d3b85; + border-color: #1d3b85; } + +.list-group-item-info { + color: #647473; + background-color: #edf6f6; } + .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #647473; + background-color: #dceeee; } + .list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #647473; + border-color: #647473; } + +.list-group-item-warning { + color: #7b372f; + background-color: #fad5d1; } + .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #7b372f; + background-color: #f8c0ba; } + .list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #7b372f; + border-color: #7b372f; } + +.list-group-item-danger { + color: #7b372f; + background-color: #fad5d1; } + .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #7b372f; + background-color: #f8c0ba; } + .list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #7b372f; + border-color: #7b372f; } + +.list-group-item-light { + color: #6e7e7c; + background-color: #f3fcfa; } + .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #6e7e7c; + background-color: #dff7f2; } + .list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #6e7e7c; + border-color: #6e7e7c; } + +.list-group-item-dark { + color: #212128; + background-color: #cac9cd; } + .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #212128; + background-color: #bdbcc1; } + .list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #212128; + border-color: #212128; } + +.close { + float: right; + font-size: 1.5rem; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .5; } + .close:hover { + color: #000; + text-decoration: none; } + .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus { + opacity: .75; } + +button.close { + padding: 0; + background-color: transparent; + border: 0; } + +a.close.disabled { + pointer-events: none; } + +.toast { + max-width: 350px; + overflow: hidden; + font-size: 0.875rem; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + backdrop-filter: blur(10px); + opacity: 0; + border-radius: 0.25rem; } + .toast:not(:last-child) { + margin-bottom: 0.75rem; } + .toast.showing { + opacity: 1; } + .toast.show { + display: block; + opacity: 1; } + .toast.hide { + display: none; } + +.toast-header { + display: flex; + align-items: center; + padding: 0.25rem 0.75rem; + color: #888; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); } + +.toast-body { + padding: 0.75rem; } + +.modal-open { + overflow: hidden; } + .modal-open .modal { + overflow-x: hidden; + overflow-y: auto; } + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + display: none; + width: 100%; + height: 100%; + overflow: hidden; + outline: 0; } + +.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, -50px); } + @media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; } } + .modal.show .modal-dialog { + transform: none; } + .modal.modal-static .modal-dialog { + transform: scale(1.02); } + +.modal-dialog-scrollable { + display: flex; + max-height: calc(100% - 1rem); } + .modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 1rem); + overflow: hidden; } + .modal-dialog-scrollable .modal-header, + .modal-dialog-scrollable .modal-footer { + flex-shrink: 0; } + .modal-dialog-scrollable .modal-body { + overflow-y: auto; } + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - 1rem); } + .modal-dialog-centered::before { + display: block; + height: calc(100vh - 1rem); + height: min-content; + content: ""; } + .modal-dialog-centered.modal-dialog-scrollable { + flex-direction: column; + justify-content: center; + height: 100%; } + .modal-dialog-centered.modal-dialog-scrollable .modal-content { + max-height: none; } + .modal-dialog-centered.modal-dialog-scrollable::before { + content: none; } + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + 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; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; } + .modal-backdrop.fade { + opacity: 0; } + .modal-backdrop.show { + opacity: 0.5; } + +.modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); } + .modal-header .close { + padding: 1rem 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; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px); } + .modal-footer > * { + margin: 0.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-scrollable { + max-height: calc(100% - 3.5rem); } + .modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 3.5rem); } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); } + .modal-dialog-centered::before { + height: calc(100vh - 3.5rem); + height: min-content; } + .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, + .modal-xl { + max-width: 800px; } } + +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px; } } + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + 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: #000; } + +.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: #000; } + +.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: #000; } + +.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: #000; } + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; } + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + 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: #fff; + 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); } + .bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^="top"] > .arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 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-width: 0.5rem 0.5rem 0; + border-top-color: #fff; } + +.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); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; } + .bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^="right"] > .arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 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-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; } + +.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); } + .bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^="bottom"] > .arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + 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-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; } + .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); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; } + .bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^="left"] > .arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + 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-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; } + +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + 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: #222; } + +.carousel { + position: relative; } + +.carousel.pointer-event { + touch-action: pan-y; } + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; } + .carousel-inner::after { + display: block; + clear: both; + content: ""; } + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; } } +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; } + +.carousel-item-next:not(.carousel-item-left), +.active.carousel-item-right { + transform: translateX(100%); } + +.carousel-item-prev:not(.carousel-item-right), +.active.carousel-item-left { + transform: translateX(-100%); } + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; } + +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right { + z-index: 1; + opacity: 1; } + +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; } + @media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-left, + .carousel-fade .active.carousel-item-right { + transition: none; } } +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; + transition: opacity 0.15s ease; } + @media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; } } + .carousel-control-prev:hover, .carousel-control-prev:focus, + .carousel-control-next:hover, + .carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; } + +.carousel-control-prev { + left: 0; + background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.001)); } + +.carousel-control-next { + right: 0; + background-image: linear-gradient(270deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.001)); } + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: no-repeat 50% / 100% 100%; } + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e"); } + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e"); } + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + 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 { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: .5; + transition: opacity 0.6s ease; } + @media (prefers-reduced-motion: reduce) { + .carousel-indicators li { + transition: none; } } + .carousel-indicators .active { + opacity: 1; } + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; } + +@keyframes spinner-border { + to { + transform: rotate(360deg); } } + +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + border: 0.25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + animation: spinner-border .75s linear infinite; } + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; } + +@keyframes spinner-grow { + 0% { + transform: scale(0); } + 50% { + opacity: 1; + transform: none; } } + +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + animation: spinner-grow .75s linear infinite; } + +.spinner-grow-sm { + width: 1rem; + height: 1rem; } + +.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: #30638E !important; } + +a.bg-primary:hover, a.bg-primary:focus, +button.bg-primary:hover, +button.bg-primary:focus { + background-color: #234868 !important; } + +.bg-secondary { + background-color: #FFA630 !important; } + +a.bg-secondary:hover, a.bg-secondary:focus, +button.bg-secondary:hover, +button.bg-secondary:focus { + background-color: #fc9000 !important; } + +.bg-success { + background-color: #3772FF !important; } + +a.bg-success:hover, a.bg-success:focus, +button.bg-success:hover, +button.bg-success:focus { + background-color: #044eff !important; } + +.bg-info { + background-color: #C0E0DE !important; } + +a.bg-info:hover, a.bg-info:focus, +button.bg-info:hover, +button.bg-info:focus { + background-color: #9ecfcc !important; } + +.bg-warning { + background-color: #ED6A5A !important; } + +a.bg-warning:hover, a.bg-warning:focus, +button.bg-warning:hover, +button.bg-warning:focus { + background-color: #e8402c !important; } + +.bg-danger { + background-color: #ED6A5A !important; } + +a.bg-danger:hover, a.bg-danger:focus, +button.bg-danger:hover, +button.bg-danger:focus { + background-color: #e8402c !important; } + +.bg-light { + background-color: #D3F3EE !important; } + +a.bg-light:hover, a.bg-light:focus, +button.bg-light:hover, +button.bg-light:focus { + background-color: #abe8df !important; } + +.bg-dark { + background-color: #403F4C !important; } + +a.bg-dark:hover, a.bg-dark:focus, +button.bg-dark:hover, +button.bg-dark:focus { + background-color: #292830 !important; } + +.bg-gradient-primary { + background: #30638E linear-gradient(180deg, #4f7a9f, #30638E) repeat-x !important; } + +.bg-gradient-secondary { + background: #FFA630 linear-gradient(180deg, #ffb34f, #FFA630) repeat-x !important; } + +.bg-gradient-success { + background: #3772FF linear-gradient(180deg, #5587ff, #3772FF) repeat-x !important; } + +.bg-gradient-info { + background: #C0E0DE linear-gradient(180deg, #c9e5e3, #C0E0DE) repeat-x !important; } + +.bg-gradient-warning { + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x !important; } + +.bg-gradient-danger { + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x !important; } + +.bg-gradient-light { + background: #D3F3EE linear-gradient(180deg, #daf5f1, #D3F3EE) repeat-x !important; } + +.bg-gradient-dark { + background: #403F4C linear-gradient(180deg, #5d5c67, #403F4C) repeat-x !important; } + +.bg-white { + background-color: #fff !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: #30638E !important; } + +.border-secondary { + border-color: #FFA630 !important; } + +.border-success { + border-color: #3772FF !important; } + +.border-info { + border-color: #C0E0DE !important; } + +.border-warning { + border-color: #ED6A5A !important; } + +.border-danger { + border-color: #ED6A5A !important; } + +.border-light { + border-color: #D3F3EE !important; } + +.border-dark { + border-color: #403F4C !important; } + +.border-white { + border-color: #fff !important; } + +.rounded-sm { + border-radius: 0.2rem !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-lg { + border-radius: 0.3rem !important; } + +.rounded-circle { + border-radius: 50% !important; } + +.rounded-pill { + border-radius: 50rem !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.85714286%; } + +.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; } + +.flex-fill { + flex: 1 1 auto !important; } + +.flex-grow-0 { + flex-grow: 0 !important; } + +.flex-grow-1 { + flex-grow: 1 !important; } + +.flex-shrink-0 { + flex-shrink: 0 !important; } + +.flex-shrink-1 { + flex-shrink: 1 !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; } + .flex-sm-fill { + flex: 1 1 auto !important; } + .flex-sm-grow-0 { + flex-grow: 0 !important; } + .flex-sm-grow-1 { + flex-grow: 1 !important; } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; } + .flex-sm-shrink-1 { + flex-shrink: 1 !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; } + .flex-md-fill { + flex: 1 1 auto !important; } + .flex-md-grow-0 { + flex-grow: 0 !important; } + .flex-md-grow-1 { + flex-grow: 1 !important; } + .flex-md-shrink-0 { + flex-shrink: 0 !important; } + .flex-md-shrink-1 { + flex-shrink: 1 !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; } + .flex-lg-fill { + flex: 1 1 auto !important; } + .flex-lg-grow-0 { + flex-grow: 0 !important; } + .flex-lg-grow-1 { + flex-grow: 1 !important; } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; } + .flex-lg-shrink-1 { + flex-shrink: 1 !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; } + .flex-xl-fill { + flex: 1 1 auto !important; } + .flex-xl-grow-0 { + flex-grow: 0 !important; } + .flex-xl-grow-1 { + flex-grow: 1 !important; } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; } + .flex-xl-shrink-1 { + flex-shrink: 1 !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; } } + +.user-select-all { + user-select: all !important; } + +.user-select-auto { + user-select: auto !important; } + +.user-select-none { + user-select: none !important; } + +.overflow-auto { + overflow: auto !important; } + +.overflow-hidden { + overflow: hidden !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; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; } + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; } + +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; } + +.shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; } + +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; } + +.shadow-none { + box-shadow: none !important; } + +.w-25 { + width: 25% !important; } + +.w-50 { + width: 50% !important; } + +.w-75 { + width: 75% !important; } + +.w-100 { + width: 100% !important; } + +.w-auto { + width: auto !important; } + +.h-25 { + height: 25% !important; } + +.h-50 { + height: 50% !important; } + +.h-75 { + height: 75% !important; } + +.h-100 { + height: 100% !important; } + +.h-auto { + height: auto !important; } + +.mw-100 { + max-width: 100% !important; } + +.mh-100 { + max-height: 100% !important; } + +.min-vw-100 { + min-width: 100vw !important; } + +.min-vh-100 { + min-height: 100vh !important; } + +.vw-100 { + width: 100vw !important; } + +.vh-100 { + height: 100vh !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-n1 { + margin: -0.25rem !important; } + +.mt-n1, +.my-n1 { + margin-top: -0.25rem !important; } + +.mr-n1, +.mx-n1 { + margin-right: -0.25rem !important; } + +.mb-n1, +.my-n1 { + margin-bottom: -0.25rem !important; } + +.ml-n1, +.mx-n1 { + margin-left: -0.25rem !important; } + +.m-n2 { + margin: -0.5rem !important; } + +.mt-n2, +.my-n2 { + margin-top: -0.5rem !important; } + +.mr-n2, +.mx-n2 { + margin-right: -0.5rem !important; } + +.mb-n2, +.my-n2 { + margin-bottom: -0.5rem !important; } + +.ml-n2, +.mx-n2 { + margin-left: -0.5rem !important; } + +.m-n3 { + margin: -1rem !important; } + +.mt-n3, +.my-n3 { + margin-top: -1rem !important; } + +.mr-n3, +.mx-n3 { + margin-right: -1rem !important; } + +.mb-n3, +.my-n3 { + margin-bottom: -1rem !important; } + +.ml-n3, +.mx-n3 { + margin-left: -1rem !important; } + +.m-n4 { + margin: -1.5rem !important; } + +.mt-n4, +.my-n4 { + margin-top: -1.5rem !important; } + +.mr-n4, +.mx-n4 { + margin-right: -1.5rem !important; } + +.mb-n4, +.my-n4 { + margin-bottom: -1.5rem !important; } + +.ml-n4, +.mx-n4 { + margin-left: -1.5rem !important; } + +.m-n5 { + margin: -3rem !important; } + +.mt-n5, +.my-n5 { + margin-top: -3rem !important; } + +.mr-n5, +.mx-n5 { + margin-right: -3rem !important; } + +.mb-n5, +.my-n5 { + margin-bottom: -3rem !important; } + +.ml-n5, +.mx-n5 { + margin-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-n1 { + margin: -0.25rem !important; } + .mt-sm-n1, + .my-sm-n1 { + margin-top: -0.25rem !important; } + .mr-sm-n1, + .mx-sm-n1 { + margin-right: -0.25rem !important; } + .mb-sm-n1, + .my-sm-n1 { + margin-bottom: -0.25rem !important; } + .ml-sm-n1, + .mx-sm-n1 { + margin-left: -0.25rem !important; } + .m-sm-n2 { + margin: -0.5rem !important; } + .mt-sm-n2, + .my-sm-n2 { + margin-top: -0.5rem !important; } + .mr-sm-n2, + .mx-sm-n2 { + margin-right: -0.5rem !important; } + .mb-sm-n2, + .my-sm-n2 { + margin-bottom: -0.5rem !important; } + .ml-sm-n2, + .mx-sm-n2 { + margin-left: -0.5rem !important; } + .m-sm-n3 { + margin: -1rem !important; } + .mt-sm-n3, + .my-sm-n3 { + margin-top: -1rem !important; } + .mr-sm-n3, + .mx-sm-n3 { + margin-right: -1rem !important; } + .mb-sm-n3, + .my-sm-n3 { + margin-bottom: -1rem !important; } + .ml-sm-n3, + .mx-sm-n3 { + margin-left: -1rem !important; } + .m-sm-n4 { + margin: -1.5rem !important; } + .mt-sm-n4, + .my-sm-n4 { + margin-top: -1.5rem !important; } + .mr-sm-n4, + .mx-sm-n4 { + margin-right: -1.5rem !important; } + .mb-sm-n4, + .my-sm-n4 { + margin-bottom: -1.5rem !important; } + .ml-sm-n4, + .mx-sm-n4 { + margin-left: -1.5rem !important; } + .m-sm-n5 { + margin: -3rem !important; } + .mt-sm-n5, + .my-sm-n5 { + margin-top: -3rem !important; } + .mr-sm-n5, + .mx-sm-n5 { + margin-right: -3rem !important; } + .mb-sm-n5, + .my-sm-n5 { + margin-bottom: -3rem !important; } + .ml-sm-n5, + .mx-sm-n5 { + margin-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-n1 { + margin: -0.25rem !important; } + .mt-md-n1, + .my-md-n1 { + margin-top: -0.25rem !important; } + .mr-md-n1, + .mx-md-n1 { + margin-right: -0.25rem !important; } + .mb-md-n1, + .my-md-n1 { + margin-bottom: -0.25rem !important; } + .ml-md-n1, + .mx-md-n1 { + margin-left: -0.25rem !important; } + .m-md-n2 { + margin: -0.5rem !important; } + .mt-md-n2, + .my-md-n2 { + margin-top: -0.5rem !important; } + .mr-md-n2, + .mx-md-n2 { + margin-right: -0.5rem !important; } + .mb-md-n2, + .my-md-n2 { + margin-bottom: -0.5rem !important; } + .ml-md-n2, + .mx-md-n2 { + margin-left: -0.5rem !important; } + .m-md-n3 { + margin: -1rem !important; } + .mt-md-n3, + .my-md-n3 { + margin-top: -1rem !important; } + .mr-md-n3, + .mx-md-n3 { + margin-right: -1rem !important; } + .mb-md-n3, + .my-md-n3 { + margin-bottom: -1rem !important; } + .ml-md-n3, + .mx-md-n3 { + margin-left: -1rem !important; } + .m-md-n4 { + margin: -1.5rem !important; } + .mt-md-n4, + .my-md-n4 { + margin-top: -1.5rem !important; } + .mr-md-n4, + .mx-md-n4 { + margin-right: -1.5rem !important; } + .mb-md-n4, + .my-md-n4 { + margin-bottom: -1.5rem !important; } + .ml-md-n4, + .mx-md-n4 { + margin-left: -1.5rem !important; } + .m-md-n5 { + margin: -3rem !important; } + .mt-md-n5, + .my-md-n5 { + margin-top: -3rem !important; } + .mr-md-n5, + .mx-md-n5 { + margin-right: -3rem !important; } + .mb-md-n5, + .my-md-n5 { + margin-bottom: -3rem !important; } + .ml-md-n5, + .mx-md-n5 { + margin-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-n1 { + margin: -0.25rem !important; } + .mt-lg-n1, + .my-lg-n1 { + margin-top: -0.25rem !important; } + .mr-lg-n1, + .mx-lg-n1 { + margin-right: -0.25rem !important; } + .mb-lg-n1, + .my-lg-n1 { + margin-bottom: -0.25rem !important; } + .ml-lg-n1, + .mx-lg-n1 { + margin-left: -0.25rem !important; } + .m-lg-n2 { + margin: -0.5rem !important; } + .mt-lg-n2, + .my-lg-n2 { + margin-top: -0.5rem !important; } + .mr-lg-n2, + .mx-lg-n2 { + margin-right: -0.5rem !important; } + .mb-lg-n2, + .my-lg-n2 { + margin-bottom: -0.5rem !important; } + .ml-lg-n2, + .mx-lg-n2 { + margin-left: -0.5rem !important; } + .m-lg-n3 { + margin: -1rem !important; } + .mt-lg-n3, + .my-lg-n3 { + margin-top: -1rem !important; } + .mr-lg-n3, + .mx-lg-n3 { + margin-right: -1rem !important; } + .mb-lg-n3, + .my-lg-n3 { + margin-bottom: -1rem !important; } + .ml-lg-n3, + .mx-lg-n3 { + margin-left: -1rem !important; } + .m-lg-n4 { + margin: -1.5rem !important; } + .mt-lg-n4, + .my-lg-n4 { + margin-top: -1.5rem !important; } + .mr-lg-n4, + .mx-lg-n4 { + margin-right: -1.5rem !important; } + .mb-lg-n4, + .my-lg-n4 { + margin-bottom: -1.5rem !important; } + .ml-lg-n4, + .mx-lg-n4 { + margin-left: -1.5rem !important; } + .m-lg-n5 { + margin: -3rem !important; } + .mt-lg-n5, + .my-lg-n5 { + margin-top: -3rem !important; } + .mr-lg-n5, + .mx-lg-n5 { + margin-right: -3rem !important; } + .mb-lg-n5, + .my-lg-n5 { + margin-bottom: -3rem !important; } + .ml-lg-n5, + .mx-lg-n5 { + margin-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-n1 { + margin: -0.25rem !important; } + .mt-xl-n1, + .my-xl-n1 { + margin-top: -0.25rem !important; } + .mr-xl-n1, + .mx-xl-n1 { + margin-right: -0.25rem !important; } + .mb-xl-n1, + .my-xl-n1 { + margin-bottom: -0.25rem !important; } + .ml-xl-n1, + .mx-xl-n1 { + margin-left: -0.25rem !important; } + .m-xl-n2 { + margin: -0.5rem !important; } + .mt-xl-n2, + .my-xl-n2 { + margin-top: -0.5rem !important; } + .mr-xl-n2, + .mx-xl-n2 { + margin-right: -0.5rem !important; } + .mb-xl-n2, + .my-xl-n2 { + margin-bottom: -0.5rem !important; } + .ml-xl-n2, + .mx-xl-n2 { + margin-left: -0.5rem !important; } + .m-xl-n3 { + margin: -1rem !important; } + .mt-xl-n3, + .my-xl-n3 { + margin-top: -1rem !important; } + .mr-xl-n3, + .mx-xl-n3 { + margin-right: -1rem !important; } + .mb-xl-n3, + .my-xl-n3 { + margin-bottom: -1rem !important; } + .ml-xl-n3, + .mx-xl-n3 { + margin-left: -1rem !important; } + .m-xl-n4 { + margin: -1.5rem !important; } + .mt-xl-n4, + .my-xl-n4 { + margin-top: -1.5rem !important; } + .mr-xl-n4, + .mx-xl-n4 { + margin-right: -1.5rem !important; } + .mb-xl-n4, + .my-xl-n4 { + margin-bottom: -1.5rem !important; } + .ml-xl-n4, + .mx-xl-n4 { + margin-left: -1.5rem !important; } + .m-xl-n5 { + margin: -3rem !important; } + .mt-xl-n5, + .my-xl-n5 { + margin-top: -3rem !important; } + .mr-xl-n5, + .mx-xl-n5 { + margin-right: -3rem !important; } + .mb-xl-n5, + .my-xl-n5 { + margin-bottom: -3rem !important; } + .ml-xl-n5, + .mx-xl-n5 { + margin-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; } } + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + pointer-events: auto; + content: ""; + background-color: rgba(0, 0, 0, 0); } + +.text-monospace { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; } + +.text-justify { + text-align: justify !important; } + +.text-wrap { + white-space: normal !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-lighter { + font-weight: lighter !important; } + +.font-weight-normal { + font-weight: 400 !important; } + +.font-weight-bold { + font-weight: 700 !important; } + +.font-weight-bolder { + font-weight: bolder !important; } + +.font-italic { + font-style: italic !important; } + +.text-white { + color: #fff !important; } + +.text-primary { + color: #30638E !important; } + +a.text-primary:hover, a.text-primary:focus { + color: #1d3b55 !important; } + +.text-secondary { + color: #FFA630 !important; } + +a.text-secondary:hover, a.text-secondary:focus { + color: #e38100 !important; } + +.text-success { + color: #3772FF !important; } + +a.text-success:hover, a.text-success:focus { + color: #0045ea !important; } + +.text-info { + color: #C0E0DE !important; } + +a.text-info:hover, a.text-info:focus { + color: #8dc7c3 !important; } + +.text-warning { + color: #ED6A5A !important; } + +a.text-warning:hover, a.text-warning:focus { + color: #e22f19 !important; } + +.text-danger { + color: #ED6A5A !important; } + +a.text-danger:hover, a.text-danger:focus { + color: #e22f19 !important; } + +.text-light { + color: #D3F3EE !important; } + +a.text-light:hover, a.text-light:focus { + color: #97e3d7 !important; } + +.text-dark { + color: #403F4C !important; } + +a.text-dark:hover, a.text-dark:focus { + color: #1d1c22 !important; } + +.text-body { + color: #222 !important; } + +.text-muted { + color: #888 !important; } + +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important; } + +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important; } + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; } + +.text-decoration-none { + text-decoration: none !important; } + +.text-break { + word-wrap: break-word !important; } + +.text-reset { + color: inherit !important; } + +.visible { + visibility: visible !important; } + +.invisible { + visibility: hidden !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 #adb5bd; + 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, .td-content > table, .td-box .row.section > table { + border-collapse: collapse !important; } + .table td, .td-content > table td, .td-box .row.section > table td, + .table th, + .td-content > table th, + .td-box .row.section > table th { + background-color: #fff !important; } + .table-bordered th, + .table-bordered td { + border: 1px solid #dee2e6 !important; } + .table-dark { + color: inherit; } + .table-dark th, + .table-dark td, + .table-dark thead th, + .table-dark tbody + tbody { + border-color: #dee2e6; } + .table .thead-dark th, .td-content > table .thead-dark th, .td-box .row.section > table .thead-dark th { + color: inherit; + border-color: #dee2e6; } } + +/*! + * Font Awesome Free 5.14.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +.fa, +.fas, +.far, +.fal, +.fad, +.fab { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; } + +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -.0667em; } + +.fa-xs { + font-size: .75em; } + +.fa-sm { + font-size: .875em; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: 2.5em; + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: -2em; + position: absolute; + text-align: center; + width: 2em; + line-height: inherit; } + +.fa-border { + border: solid 0.08em #eee; + border-radius: .1em; + padding: .2em .25em .15em; } + +.fa-pull-left { + float: left; } + +.fa-pull-right { + float: right; } + +.fa.fa-pull-left, +.fas.fa-pull-left, +.far.fa-pull-left, +.fal.fa-pull-left, +.fab.fa-pull-left { + margin-right: .3em; } + +.fa.fa-pull-right, +.fas.fa-pull-right, +.far.fa-pull-right, +.fal.fa-pull-right, +.fab.fa-pull-right { + margin-left: .3em; } + +.fa-spin { + animation: fa-spin 2s infinite linear; } + +.fa-pulse { + animation: fa-spin 1s infinite steps(8); } + +@keyframes fa-spin { + 0% { + transform: rotate(0deg); } + 100% { + transform: rotate(360deg); } } + +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + transform: rotate(90deg); } + +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + transform: rotate(180deg); } + +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + transform: rotate(270deg); } + +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + transform: scale(-1, 1); } + +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + transform: scale(1, -1); } + +.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + transform: scale(-1, -1); } + +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical, +:root .fa-flip-both { + filter: none; } + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: #fff; } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ +.fa-500px:before { + content: "\f26e"; } + +.fa-accessible-icon:before { + content: "\f368"; } + +.fa-accusoft:before { + content: "\f369"; } + +.fa-acquisitions-incorporated:before { + content: "\f6af"; } + +.fa-ad:before { + content: "\f641"; } + +.fa-address-book:before { + content: "\f2b9"; } + +.fa-address-card:before { + content: "\f2bb"; } + +.fa-adjust:before { + content: "\f042"; } + +.fa-adn:before { + content: "\f170"; } + +.fa-adobe:before { + content: "\f778"; } + +.fa-adversal:before { + content: "\f36a"; } + +.fa-affiliatetheme:before { + content: "\f36b"; } + +.fa-air-freshener:before { + content: "\f5d0"; } + +.fa-airbnb:before { + content: "\f834"; } + +.fa-algolia:before { + content: "\f36c"; } + +.fa-align-center:before { + content: "\f037"; } + +.fa-align-justify:before { + content: "\f039"; } + +.fa-align-left:before { + content: "\f036"; } + +.fa-align-right:before { + content: "\f038"; } + +.fa-alipay:before { + content: "\f642"; } + +.fa-allergies:before { + content: "\f461"; } + +.fa-amazon:before { + content: "\f270"; } + +.fa-amazon-pay:before { + content: "\f42c"; } + +.fa-ambulance:before { + content: "\f0f9"; } + +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; } + +.fa-amilia:before { + content: "\f36d"; } + +.fa-anchor:before { + content: "\f13d"; } + +.fa-android:before { + content: "\f17b"; } + +.fa-angellist:before { + content: "\f209"; } + +.fa-angle-double-down:before { + content: "\f103"; } + +.fa-angle-double-left:before { + content: "\f100"; } + +.fa-angle-double-right:before { + content: "\f101"; } + +.fa-angle-double-up:before { + content: "\f102"; } + +.fa-angle-down:before { + content: "\f107"; } + +.fa-angle-left:before { + content: "\f104"; } + +.fa-angle-right:before { + content: "\f105"; } + +.fa-angle-up:before { + content: "\f106"; } + +.fa-angry:before { + content: "\f556"; } + +.fa-angrycreative:before { + content: "\f36e"; } + +.fa-angular:before { + content: "\f420"; } + +.fa-ankh:before { + content: "\f644"; } + +.fa-app-store:before { + content: "\f36f"; } + +.fa-app-store-ios:before { + content: "\f370"; } + +.fa-apper:before { + content: "\f371"; } + +.fa-apple:before { + content: "\f179"; } + +.fa-apple-alt:before { + content: "\f5d1"; } + +.fa-apple-pay:before { + content: "\f415"; } + +.fa-archive:before { + content: "\f187"; } + +.fa-archway:before { + content: "\f557"; } + +.fa-arrow-alt-circle-down:before { + content: "\f358"; } + +.fa-arrow-alt-circle-left:before { + content: "\f359"; } + +.fa-arrow-alt-circle-right:before { + content: "\f35a"; } + +.fa-arrow-alt-circle-up:before { + content: "\f35b"; } + +.fa-arrow-circle-down:before { + content: "\f0ab"; } + +.fa-arrow-circle-left:before { + content: "\f0a8"; } + +.fa-arrow-circle-right:before { + content: "\f0a9"; } + +.fa-arrow-circle-up:before { + content: "\f0aa"; } + +.fa-arrow-down:before { + content: "\f063"; } + +.fa-arrow-left:before { + content: "\f060"; } + +.fa-arrow-right:before { + content: "\f061"; } + +.fa-arrow-up:before { + content: "\f062"; } + +.fa-arrows-alt:before { + content: "\f0b2"; } + +.fa-arrows-alt-h:before { + content: "\f337"; } + +.fa-arrows-alt-v:before { + content: "\f338"; } + +.fa-artstation:before { + content: "\f77a"; } + +.fa-assistive-listening-systems:before { + content: "\f2a2"; } + +.fa-asterisk:before { + content: "\f069"; } + +.fa-asymmetrik:before { + content: "\f372"; } + +.fa-at:before { + content: "\f1fa"; } + +.fa-atlas:before { + content: "\f558"; } + +.fa-atlassian:before { + content: "\f77b"; } + +.fa-atom:before { + content: "\f5d2"; } + +.fa-audible:before { + content: "\f373"; } + +.fa-audio-description:before { + content: "\f29e"; } + +.fa-autoprefixer:before { + content: "\f41c"; } + +.fa-avianex:before { + content: "\f374"; } + +.fa-aviato:before { + content: "\f421"; } + +.fa-award:before { + content: "\f559"; } + +.fa-aws:before { + content: "\f375"; } + +.fa-baby:before { + content: "\f77c"; } + +.fa-baby-carriage:before { + content: "\f77d"; } + +.fa-backspace:before { + content: "\f55a"; } + +.fa-backward:before { + content: "\f04a"; } + +.fa-bacon:before { + content: "\f7e5"; } + +.fa-bacteria:before { + content: "\e059"; } + +.fa-bacterium:before { + content: "\e05a"; } + +.fa-bahai:before { + content: "\f666"; } + +.fa-balance-scale:before { + content: "\f24e"; } + +.fa-balance-scale-left:before { + content: "\f515"; } + +.fa-balance-scale-right:before { + content: "\f516"; } + +.fa-ban:before { + content: "\f05e"; } + +.fa-band-aid:before { + content: "\f462"; } + +.fa-bandcamp:before { + content: "\f2d5"; } + +.fa-barcode:before { + content: "\f02a"; } + +.fa-bars:before { + content: "\f0c9"; } + +.fa-baseball-ball:before { + content: "\f433"; } + +.fa-basketball-ball:before { + content: "\f434"; } + +.fa-bath:before { + content: "\f2cd"; } + +.fa-battery-empty:before { + content: "\f244"; } + +.fa-battery-full:before { + content: "\f240"; } + +.fa-battery-half:before { + content: "\f242"; } + +.fa-battery-quarter:before { + content: "\f243"; } + +.fa-battery-three-quarters:before { + content: "\f241"; } + +.fa-battle-net:before { + content: "\f835"; } + +.fa-bed:before { + content: "\f236"; } + +.fa-beer:before { + content: "\f0fc"; } + +.fa-behance:before { + content: "\f1b4"; } + +.fa-behance-square:before { + content: "\f1b5"; } + +.fa-bell:before { + content: "\f0f3"; } + +.fa-bell-slash:before { + content: "\f1f6"; } + +.fa-bezier-curve:before { + content: "\f55b"; } + +.fa-bible:before { + content: "\f647"; } + +.fa-bicycle:before { + content: "\f206"; } + +.fa-biking:before { + content: "\f84a"; } + +.fa-bimobject:before { + content: "\f378"; } + +.fa-binoculars:before { + content: "\f1e5"; } + +.fa-biohazard:before { + content: "\f780"; } + +.fa-birthday-cake:before { + content: "\f1fd"; } + +.fa-bitbucket:before { + content: "\f171"; } + +.fa-bitcoin:before { + content: "\f379"; } + +.fa-bity:before { + content: "\f37a"; } + +.fa-black-tie:before { + content: "\f27e"; } + +.fa-blackberry:before { + content: "\f37b"; } + +.fa-blender:before { + content: "\f517"; } + +.fa-blender-phone:before { + content: "\f6b6"; } + +.fa-blind:before { + content: "\f29d"; } + +.fa-blog:before { + content: "\f781"; } + +.fa-blogger:before { + content: "\f37c"; } + +.fa-blogger-b:before { + content: "\f37d"; } + +.fa-bluetooth:before { + content: "\f293"; } + +.fa-bluetooth-b:before { + content: "\f294"; } + +.fa-bold:before { + content: "\f032"; } + +.fa-bolt:before { + content: "\f0e7"; } + +.fa-bomb:before { + content: "\f1e2"; } + +.fa-bone:before { + content: "\f5d7"; } + +.fa-bong:before { + content: "\f55c"; } + +.fa-book:before { + content: "\f02d"; } + +.fa-book-dead:before { + content: "\f6b7"; } + +.fa-book-medical:before { + content: "\f7e6"; } + +.fa-book-open:before { + content: "\f518"; } + +.fa-book-reader:before { + content: "\f5da"; } + +.fa-bookmark:before { + content: "\f02e"; } + +.fa-bootstrap:before { + content: "\f836"; } + +.fa-border-all:before { + content: "\f84c"; } + +.fa-border-none:before { + content: "\f850"; } + +.fa-border-style:before { + content: "\f853"; } + +.fa-bowling-ball:before { + content: "\f436"; } + +.fa-box:before { + content: "\f466"; } + +.fa-box-open:before { + content: "\f49e"; } + +.fa-box-tissue:before { + content: "\e05b"; } + +.fa-boxes:before { + content: "\f468"; } + +.fa-braille:before { + content: "\f2a1"; } + +.fa-brain:before { + content: "\f5dc"; } + +.fa-bread-slice:before { + content: "\f7ec"; } + +.fa-briefcase:before { + content: "\f0b1"; } + +.fa-briefcase-medical:before { + content: "\f469"; } + +.fa-broadcast-tower:before { + content: "\f519"; } + +.fa-broom:before { + content: "\f51a"; } + +.fa-brush:before { + content: "\f55d"; } + +.fa-btc:before { + content: "\f15a"; } + +.fa-buffer:before { + content: "\f837"; } + +.fa-bug:before { + content: "\f188"; } + +.fa-building:before { + content: "\f1ad"; } + +.fa-bullhorn:before { + content: "\f0a1"; } + +.fa-bullseye:before { + content: "\f140"; } + +.fa-burn:before { + content: "\f46a"; } + +.fa-buromobelexperte:before { + content: "\f37f"; } + +.fa-bus:before { + content: "\f207"; } + +.fa-bus-alt:before { + content: "\f55e"; } + +.fa-business-time:before { + content: "\f64a"; } + +.fa-buy-n-large:before { + content: "\f8a6"; } + +.fa-buysellads:before { + content: "\f20d"; } + +.fa-calculator:before { + content: "\f1ec"; } + +.fa-calendar:before { + content: "\f133"; } + +.fa-calendar-alt:before { + content: "\f073"; } + +.fa-calendar-check:before { + content: "\f274"; } + +.fa-calendar-day:before { + content: "\f783"; } + +.fa-calendar-minus:before { + content: "\f272"; } + +.fa-calendar-plus:before { + content: "\f271"; } + +.fa-calendar-times:before { + content: "\f273"; } + +.fa-calendar-week:before { + content: "\f784"; } + +.fa-camera:before { + content: "\f030"; } + +.fa-camera-retro:before { + content: "\f083"; } + +.fa-campground:before { + content: "\f6bb"; } + +.fa-canadian-maple-leaf:before { + content: "\f785"; } + +.fa-candy-cane:before { + content: "\f786"; } + +.fa-cannabis:before { + content: "\f55f"; } + +.fa-capsules:before { + content: "\f46b"; } + +.fa-car:before { + content: "\f1b9"; } + +.fa-car-alt:before { + content: "\f5de"; } + +.fa-car-battery:before { + content: "\f5df"; } + +.fa-car-crash:before { + content: "\f5e1"; } + +.fa-car-side:before { + content: "\f5e4"; } + +.fa-caravan:before { + content: "\f8ff"; } + +.fa-caret-down:before { + content: "\f0d7"; } + +.fa-caret-left:before { + content: "\f0d9"; } + +.fa-caret-right:before { + content: "\f0da"; } + +.fa-caret-square-down:before { + content: "\f150"; } + +.fa-caret-square-left:before { + content: "\f191"; } + +.fa-caret-square-right:before { + content: "\f152"; } + +.fa-caret-square-up:before { + content: "\f151"; } + +.fa-caret-up:before { + content: "\f0d8"; } + +.fa-carrot:before { + content: "\f787"; } + +.fa-cart-arrow-down:before { + content: "\f218"; } + +.fa-cart-plus:before { + content: "\f217"; } + +.fa-cash-register:before { + content: "\f788"; } + +.fa-cat:before { + content: "\f6be"; } + +.fa-cc-amazon-pay:before { + content: "\f42d"; } + +.fa-cc-amex:before { + content: "\f1f3"; } + +.fa-cc-apple-pay:before { + content: "\f416"; } + +.fa-cc-diners-club:before { + content: "\f24c"; } + +.fa-cc-discover:before { + content: "\f1f2"; } + +.fa-cc-jcb:before { + content: "\f24b"; } + +.fa-cc-mastercard:before { + content: "\f1f1"; } + +.fa-cc-paypal:before { + content: "\f1f4"; } + +.fa-cc-stripe:before { + content: "\f1f5"; } + +.fa-cc-visa:before { + content: "\f1f0"; } + +.fa-centercode:before { + content: "\f380"; } + +.fa-centos:before { + content: "\f789"; } + +.fa-certificate:before { + content: "\f0a3"; } + +.fa-chair:before { + content: "\f6c0"; } + +.fa-chalkboard:before { + content: "\f51b"; } + +.fa-chalkboard-teacher:before { + content: "\f51c"; } + +.fa-charging-station:before { + content: "\f5e7"; } + +.fa-chart-area:before { + content: "\f1fe"; } + +.fa-chart-bar:before { + content: "\f080"; } + +.fa-chart-line:before { + content: "\f201"; } + +.fa-chart-pie:before { + content: "\f200"; } + +.fa-check:before { + content: "\f00c"; } + +.fa-check-circle:before { + content: "\f058"; } + +.fa-check-double:before { + content: "\f560"; } + +.fa-check-square:before { + content: "\f14a"; } + +.fa-cheese:before { + content: "\f7ef"; } + +.fa-chess:before { + content: "\f439"; } + +.fa-chess-bishop:before { + content: "\f43a"; } + +.fa-chess-board:before { + content: "\f43c"; } + +.fa-chess-king:before { + content: "\f43f"; } + +.fa-chess-knight:before { + content: "\f441"; } + +.fa-chess-pawn:before { + content: "\f443"; } + +.fa-chess-queen:before { + content: "\f445"; } + +.fa-chess-rook:before { + content: "\f447"; } + +.fa-chevron-circle-down:before { + content: "\f13a"; } + +.fa-chevron-circle-left:before { + content: "\f137"; } + +.fa-chevron-circle-right:before { + content: "\f138"; } + +.fa-chevron-circle-up:before { + content: "\f139"; } + +.fa-chevron-down:before { + content: "\f078"; } + +.fa-chevron-left:before { + content: "\f053"; } + +.fa-chevron-right:before { + content: "\f054"; } + +.fa-chevron-up:before { + content: "\f077"; } + +.fa-child:before { + content: "\f1ae"; } + +.fa-chrome:before { + content: "\f268"; } + +.fa-chromecast:before { + content: "\f838"; } + +.fa-church:before { + content: "\f51d"; } + +.fa-circle:before { + content: "\f111"; } + +.fa-circle-notch:before { + content: "\f1ce"; } + +.fa-city:before { + content: "\f64f"; } + +.fa-clinic-medical:before { + content: "\f7f2"; } + +.fa-clipboard:before { + content: "\f328"; } + +.fa-clipboard-check:before { + content: "\f46c"; } + +.fa-clipboard-list:before { + content: "\f46d"; } + +.fa-clock:before { + content: "\f017"; } + +.fa-clone:before { + content: "\f24d"; } + +.fa-closed-captioning:before { + content: "\f20a"; } + +.fa-cloud:before { + content: "\f0c2"; } + +.fa-cloud-download-alt:before { + content: "\f381"; } + +.fa-cloud-meatball:before { + content: "\f73b"; } + +.fa-cloud-moon:before { + content: "\f6c3"; } + +.fa-cloud-moon-rain:before { + content: "\f73c"; } + +.fa-cloud-rain:before { + content: "\f73d"; } + +.fa-cloud-showers-heavy:before { + content: "\f740"; } + +.fa-cloud-sun:before { + content: "\f6c4"; } + +.fa-cloud-sun-rain:before { + content: "\f743"; } + +.fa-cloud-upload-alt:before { + content: "\f382"; } + +.fa-cloudscale:before { + content: "\f383"; } + +.fa-cloudsmith:before { + content: "\f384"; } + +.fa-cloudversify:before { + content: "\f385"; } + +.fa-cocktail:before { + content: "\f561"; } + +.fa-code:before { + content: "\f121"; } + +.fa-code-branch:before { + content: "\f126"; } + +.fa-codepen:before { + content: "\f1cb"; } + +.fa-codiepie:before { + content: "\f284"; } + +.fa-coffee:before { + content: "\f0f4"; } + +.fa-cog:before { + content: "\f013"; } + +.fa-cogs:before { + content: "\f085"; } + +.fa-coins:before { + content: "\f51e"; } + +.fa-columns:before { + content: "\f0db"; } + +.fa-comment:before { + content: "\f075"; } + +.fa-comment-alt:before { + content: "\f27a"; } + +.fa-comment-dollar:before { + content: "\f651"; } + +.fa-comment-dots:before { + content: "\f4ad"; } + +.fa-comment-medical:before { + content: "\f7f5"; } + +.fa-comment-slash:before { + content: "\f4b3"; } + +.fa-comments:before { + content: "\f086"; } + +.fa-comments-dollar:before { + content: "\f653"; } + +.fa-compact-disc:before { + content: "\f51f"; } + +.fa-compass:before { + content: "\f14e"; } + +.fa-compress:before { + content: "\f066"; } + +.fa-compress-alt:before { + content: "\f422"; } + +.fa-compress-arrows-alt:before { + content: "\f78c"; } + +.fa-concierge-bell:before { + content: "\f562"; } + +.fa-confluence:before { + content: "\f78d"; } + +.fa-connectdevelop:before { + content: "\f20e"; } + +.fa-contao:before { + content: "\f26d"; } + +.fa-cookie:before { + content: "\f563"; } + +.fa-cookie-bite:before { + content: "\f564"; } + +.fa-copy:before { + content: "\f0c5"; } + +.fa-copyright:before { + content: "\f1f9"; } + +.fa-cotton-bureau:before { + content: "\f89e"; } + +.fa-couch:before { + content: "\f4b8"; } + +.fa-cpanel:before { + content: "\f388"; } + +.fa-creative-commons:before { + content: "\f25e"; } + +.fa-creative-commons-by:before { + content: "\f4e7"; } + +.fa-creative-commons-nc:before { + content: "\f4e8"; } + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; } + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; } + +.fa-creative-commons-nd:before { + content: "\f4eb"; } + +.fa-creative-commons-pd:before { + content: "\f4ec"; } + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; } + +.fa-creative-commons-remix:before { + content: "\f4ee"; } + +.fa-creative-commons-sa:before { + content: "\f4ef"; } + +.fa-creative-commons-sampling:before { + content: "\f4f0"; } + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; } + +.fa-creative-commons-share:before { + content: "\f4f2"; } + +.fa-creative-commons-zero:before { + content: "\f4f3"; } + +.fa-credit-card:before { + content: "\f09d"; } + +.fa-critical-role:before { + content: "\f6c9"; } + +.fa-crop:before { + content: "\f125"; } + +.fa-crop-alt:before { + content: "\f565"; } + +.fa-cross:before { + content: "\f654"; } + +.fa-crosshairs:before { + content: "\f05b"; } + +.fa-crow:before { + content: "\f520"; } + +.fa-crown:before { + content: "\f521"; } + +.fa-crutch:before { + content: "\f7f7"; } + +.fa-css3:before { + content: "\f13c"; } + +.fa-css3-alt:before { + content: "\f38b"; } + +.fa-cube:before { + content: "\f1b2"; } + +.fa-cubes:before { + content: "\f1b3"; } + +.fa-cut:before { + content: "\f0c4"; } + +.fa-cuttlefish:before { + content: "\f38c"; } + +.fa-d-and-d:before { + content: "\f38d"; } + +.fa-d-and-d-beyond:before { + content: "\f6ca"; } + +.fa-dailymotion:before { + content: "\e052"; } + +.fa-dashcube:before { + content: "\f210"; } + +.fa-database:before { + content: "\f1c0"; } + +.fa-deaf:before { + content: "\f2a4"; } + +.fa-deezer:before { + content: "\e077"; } + +.fa-delicious:before { + content: "\f1a5"; } + +.fa-democrat:before { + content: "\f747"; } + +.fa-deploydog:before { + content: "\f38e"; } + +.fa-deskpro:before { + content: "\f38f"; } + +.fa-desktop:before { + content: "\f108"; } + +.fa-dev:before { + content: "\f6cc"; } + +.fa-deviantart:before { + content: "\f1bd"; } + +.fa-dharmachakra:before { + content: "\f655"; } + +.fa-dhl:before { + content: "\f790"; } + +.fa-diagnoses:before { + content: "\f470"; } + +.fa-diaspora:before { + content: "\f791"; } + +.fa-dice:before { + content: "\f522"; } + +.fa-dice-d20:before { + content: "\f6cf"; } + +.fa-dice-d6:before { + content: "\f6d1"; } + +.fa-dice-five:before { + content: "\f523"; } + +.fa-dice-four:before { + content: "\f524"; } + +.fa-dice-one:before { + content: "\f525"; } + +.fa-dice-six:before { + content: "\f526"; } + +.fa-dice-three:before { + content: "\f527"; } + +.fa-dice-two:before { + content: "\f528"; } + +.fa-digg:before { + content: "\f1a6"; } + +.fa-digital-ocean:before { + content: "\f391"; } + +.fa-digital-tachograph:before { + content: "\f566"; } + +.fa-directions:before { + content: "\f5eb"; } + +.fa-discord:before { + content: "\f392"; } + +.fa-discourse:before { + content: "\f393"; } + +.fa-disease:before { + content: "\f7fa"; } + +.fa-divide:before { + content: "\f529"; } + +.fa-dizzy:before { + content: "\f567"; } + +.fa-dna:before { + content: "\f471"; } + +.fa-dochub:before { + content: "\f394"; } + +.fa-docker:before { + content: "\f395"; } + +.fa-dog:before { + content: "\f6d3"; } + +.fa-dollar-sign:before { + content: "\f155"; } + +.fa-dolly:before { + content: "\f472"; } + +.fa-dolly-flatbed:before { + content: "\f474"; } + +.fa-donate:before { + content: "\f4b9"; } + +.fa-door-closed:before { + content: "\f52a"; } + +.fa-door-open:before { + content: "\f52b"; } + +.fa-dot-circle:before { + content: "\f192"; } + +.fa-dove:before { + content: "\f4ba"; } + +.fa-download:before { + content: "\f019"; } + +.fa-draft2digital:before { + content: "\f396"; } + +.fa-drafting-compass:before { + content: "\f568"; } + +.fa-dragon:before { + content: "\f6d5"; } + +.fa-draw-polygon:before { + content: "\f5ee"; } + +.fa-dribbble:before { + content: "\f17d"; } + +.fa-dribbble-square:before { + content: "\f397"; } + +.fa-dropbox:before { + content: "\f16b"; } + +.fa-drum:before { + content: "\f569"; } + +.fa-drum-steelpan:before { + content: "\f56a"; } + +.fa-drumstick-bite:before { + content: "\f6d7"; } + +.fa-drupal:before { + content: "\f1a9"; } + +.fa-dumbbell:before { + content: "\f44b"; } + +.fa-dumpster:before { + content: "\f793"; } + +.fa-dumpster-fire:before { + content: "\f794"; } + +.fa-dungeon:before { + content: "\f6d9"; } + +.fa-dyalog:before { + content: "\f399"; } + +.fa-earlybirds:before { + content: "\f39a"; } + +.fa-ebay:before { + content: "\f4f4"; } + +.fa-edge:before { + content: "\f282"; } + +.fa-edge-legacy:before { + content: "\e078"; } + +.fa-edit:before { + content: "\f044"; } + +.fa-egg:before { + content: "\f7fb"; } + +.fa-eject:before { + content: "\f052"; } + +.fa-elementor:before { + content: "\f430"; } + +.fa-ellipsis-h:before { + content: "\f141"; } + +.fa-ellipsis-v:before { + content: "\f142"; } + +.fa-ello:before { + content: "\f5f1"; } + +.fa-ember:before { + content: "\f423"; } + +.fa-empire:before { + content: "\f1d1"; } + +.fa-envelope:before { + content: "\f0e0"; } + +.fa-envelope-open:before { + content: "\f2b6"; } + +.fa-envelope-open-text:before { + content: "\f658"; } + +.fa-envelope-square:before { + content: "\f199"; } + +.fa-envira:before { + content: "\f299"; } + +.fa-equals:before { + content: "\f52c"; } + +.fa-eraser:before { + content: "\f12d"; } + +.fa-erlang:before { + content: "\f39d"; } + +.fa-ethereum:before { + content: "\f42e"; } + +.fa-ethernet:before { + content: "\f796"; } + +.fa-etsy:before { + content: "\f2d7"; } + +.fa-euro-sign:before { + content: "\f153"; } + +.fa-evernote:before { + content: "\f839"; } + +.fa-exchange-alt:before { + content: "\f362"; } + +.fa-exclamation:before { + content: "\f12a"; } + +.fa-exclamation-circle:before { + content: "\f06a"; } + +.fa-exclamation-triangle:before { + content: "\f071"; } + +.fa-expand:before { + content: "\f065"; } + +.fa-expand-alt:before { + content: "\f424"; } + +.fa-expand-arrows-alt:before { + content: "\f31e"; } + +.fa-expeditedssl:before { + content: "\f23e"; } + +.fa-external-link-alt:before { + content: "\f35d"; } + +.fa-external-link-square-alt:before { + content: "\f360"; } + +.fa-eye:before { + content: "\f06e"; } + +.fa-eye-dropper:before { + content: "\f1fb"; } + +.fa-eye-slash:before { + content: "\f070"; } + +.fa-facebook:before { + content: "\f09a"; } + +.fa-facebook-f:before { + content: "\f39e"; } + +.fa-facebook-messenger:before { + content: "\f39f"; } + +.fa-facebook-square:before { + content: "\f082"; } + +.fa-fan:before { + content: "\f863"; } + +.fa-fantasy-flight-games:before { + content: "\f6dc"; } + +.fa-fast-backward:before { + content: "\f049"; } + +.fa-fast-forward:before { + content: "\f050"; } + +.fa-faucet:before { + content: "\e005"; } + +.fa-fax:before { + content: "\f1ac"; } + +.fa-feather:before { + content: "\f52d"; } + +.fa-feather-alt:before { + content: "\f56b"; } + +.fa-fedex:before { + content: "\f797"; } + +.fa-fedora:before { + content: "\f798"; } + +.fa-female:before { + content: "\f182"; } + +.fa-fighter-jet:before { + content: "\f0fb"; } + +.fa-figma:before { + content: "\f799"; } + +.fa-file:before { + content: "\f15b"; } + +.fa-file-alt:before { + content: "\f15c"; } + +.fa-file-archive:before { + content: "\f1c6"; } + +.fa-file-audio:before { + content: "\f1c7"; } + +.fa-file-code:before { + content: "\f1c9"; } + +.fa-file-contract:before { + content: "\f56c"; } + +.fa-file-csv:before { + content: "\f6dd"; } + +.fa-file-download:before { + content: "\f56d"; } + +.fa-file-excel:before { + content: "\f1c3"; } + +.fa-file-export:before { + content: "\f56e"; } + +.fa-file-image:before { + content: "\f1c5"; } + +.fa-file-import:before { + content: "\f56f"; } + +.fa-file-invoice:before { + content: "\f570"; } + +.fa-file-invoice-dollar:before { + content: "\f571"; } + +.fa-file-medical:before { + content: "\f477"; } + +.fa-file-medical-alt:before { + content: "\f478"; } + +.fa-file-pdf:before { + content: "\f1c1"; } + +.fa-file-powerpoint:before { + content: "\f1c4"; } + +.fa-file-prescription:before { + content: "\f572"; } + +.fa-file-signature:before { + content: "\f573"; } + +.fa-file-upload:before { + content: "\f574"; } + +.fa-file-video:before { + content: "\f1c8"; } + +.fa-file-word:before { + content: "\f1c2"; } + +.fa-fill:before { + content: "\f575"; } + +.fa-fill-drip:before { + content: "\f576"; } + +.fa-film:before { + content: "\f008"; } + +.fa-filter:before { + content: "\f0b0"; } + +.fa-fingerprint:before { + content: "\f577"; } + +.fa-fire:before { + content: "\f06d"; } + +.fa-fire-alt:before { + content: "\f7e4"; } + +.fa-fire-extinguisher:before { + content: "\f134"; } + +.fa-firefox:before { + content: "\f269"; } + +.fa-firefox-browser:before { + content: "\e007"; } + +.fa-first-aid:before { + content: "\f479"; } + +.fa-first-order:before { + content: "\f2b0"; } + +.fa-first-order-alt:before { + content: "\f50a"; } + +.fa-firstdraft:before { + content: "\f3a1"; } + +.fa-fish:before { + content: "\f578"; } + +.fa-fist-raised:before { + content: "\f6de"; } + +.fa-flag:before { + content: "\f024"; } + +.fa-flag-checkered:before { + content: "\f11e"; } + +.fa-flag-usa:before { + content: "\f74d"; } + +.fa-flask:before { + content: "\f0c3"; } + +.fa-flickr:before { + content: "\f16e"; } + +.fa-flipboard:before { + content: "\f44d"; } + +.fa-flushed:before { + content: "\f579"; } + +.fa-fly:before { + content: "\f417"; } + +.fa-folder:before { + content: "\f07b"; } + +.fa-folder-minus:before { + content: "\f65d"; } + +.fa-folder-open:before { + content: "\f07c"; } + +.fa-folder-plus:before { + content: "\f65e"; } + +.fa-font:before { + content: "\f031"; } + +.fa-font-awesome:before { + content: "\f2b4"; } + +.fa-font-awesome-alt:before { + content: "\f35c"; } + +.fa-font-awesome-flag:before { + content: "\f425"; } + +.fa-font-awesome-logo-full:before { + content: "\f4e6"; } + +.fa-fonticons:before { + content: "\f280"; } + +.fa-fonticons-fi:before { + content: "\f3a2"; } + +.fa-football-ball:before { + content: "\f44e"; } + +.fa-fort-awesome:before { + content: "\f286"; } + +.fa-fort-awesome-alt:before { + content: "\f3a3"; } + +.fa-forumbee:before { + content: "\f211"; } + +.fa-forward:before { + content: "\f04e"; } + +.fa-foursquare:before { + content: "\f180"; } + +.fa-free-code-camp:before { + content: "\f2c5"; } + +.fa-freebsd:before { + content: "\f3a4"; } + +.fa-frog:before { + content: "\f52e"; } + +.fa-frown:before { + content: "\f119"; } + +.fa-frown-open:before { + content: "\f57a"; } + +.fa-fulcrum:before { + content: "\f50b"; } + +.fa-funnel-dollar:before { + content: "\f662"; } + +.fa-futbol:before { + content: "\f1e3"; } + +.fa-galactic-republic:before { + content: "\f50c"; } + +.fa-galactic-senate:before { + content: "\f50d"; } + +.fa-gamepad:before { + content: "\f11b"; } + +.fa-gas-pump:before { + content: "\f52f"; } + +.fa-gavel:before { + content: "\f0e3"; } + +.fa-gem:before { + content: "\f3a5"; } + +.fa-genderless:before { + content: "\f22d"; } + +.fa-get-pocket:before { + content: "\f265"; } + +.fa-gg:before { + content: "\f260"; } + +.fa-gg-circle:before { + content: "\f261"; } + +.fa-ghost:before { + content: "\f6e2"; } + +.fa-gift:before { + content: "\f06b"; } + +.fa-gifts:before { + content: "\f79c"; } + +.fa-git:before { + content: "\f1d3"; } + +.fa-git-alt:before { + content: "\f841"; } + +.fa-git-square:before { + content: "\f1d2"; } + +.fa-github:before { + content: "\f09b"; } + +.fa-github-alt:before { + content: "\f113"; } + +.fa-github-square:before { + content: "\f092"; } + +.fa-gitkraken:before { + content: "\f3a6"; } + +.fa-gitlab:before { + content: "\f296"; } + +.fa-gitter:before { + content: "\f426"; } + +.fa-glass-cheers:before { + content: "\f79f"; } + +.fa-glass-martini:before { + content: "\f000"; } + +.fa-glass-martini-alt:before { + content: "\f57b"; } + +.fa-glass-whiskey:before { + content: "\f7a0"; } + +.fa-glasses:before { + content: "\f530"; } + +.fa-glide:before { + content: "\f2a5"; } + +.fa-glide-g:before { + content: "\f2a6"; } + +.fa-globe:before { + content: "\f0ac"; } + +.fa-globe-africa:before { + content: "\f57c"; } + +.fa-globe-americas:before { + content: "\f57d"; } + +.fa-globe-asia:before { + content: "\f57e"; } + +.fa-globe-europe:before { + content: "\f7a2"; } + +.fa-gofore:before { + content: "\f3a7"; } + +.fa-golf-ball:before { + content: "\f450"; } + +.fa-goodreads:before { + content: "\f3a8"; } + +.fa-goodreads-g:before { + content: "\f3a9"; } + +.fa-google:before { + content: "\f1a0"; } + +.fa-google-drive:before { + content: "\f3aa"; } + +.fa-google-pay:before { + content: "\e079"; } + +.fa-google-play:before { + content: "\f3ab"; } + +.fa-google-plus:before { + content: "\f2b3"; } + +.fa-google-plus-g:before { + content: "\f0d5"; } + +.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa-google-wallet:before { + content: "\f1ee"; } + +.fa-gopuram:before { + content: "\f664"; } + +.fa-graduation-cap:before { + content: "\f19d"; } + +.fa-gratipay:before { + content: "\f184"; } + +.fa-grav:before { + content: "\f2d6"; } + +.fa-greater-than:before { + content: "\f531"; } + +.fa-greater-than-equal:before { + content: "\f532"; } + +.fa-grimace:before { + content: "\f57f"; } + +.fa-grin:before { + content: "\f580"; } + +.fa-grin-alt:before { + content: "\f581"; } + +.fa-grin-beam:before { + content: "\f582"; } + +.fa-grin-beam-sweat:before { + content: "\f583"; } + +.fa-grin-hearts:before { + content: "\f584"; } + +.fa-grin-squint:before { + content: "\f585"; } + +.fa-grin-squint-tears:before { + content: "\f586"; } + +.fa-grin-stars:before { + content: "\f587"; } + +.fa-grin-tears:before { + content: "\f588"; } + +.fa-grin-tongue:before { + content: "\f589"; } + +.fa-grin-tongue-squint:before { + content: "\f58a"; } + +.fa-grin-tongue-wink:before { + content: "\f58b"; } + +.fa-grin-wink:before { + content: "\f58c"; } + +.fa-grip-horizontal:before { + content: "\f58d"; } + +.fa-grip-lines:before { + content: "\f7a4"; } + +.fa-grip-lines-vertical:before { + content: "\f7a5"; } + +.fa-grip-vertical:before { + content: "\f58e"; } + +.fa-gripfire:before { + content: "\f3ac"; } + +.fa-grunt:before { + content: "\f3ad"; } + +.fa-guitar:before { + content: "\f7a6"; } + +.fa-gulp:before { + content: "\f3ae"; } + +.fa-h-square:before { + content: "\f0fd"; } + +.fa-hacker-news:before { + content: "\f1d4"; } + +.fa-hacker-news-square:before { + content: "\f3af"; } + +.fa-hackerrank:before { + content: "\f5f7"; } + +.fa-hamburger:before { + content: "\f805"; } + +.fa-hammer:before { + content: "\f6e3"; } + +.fa-hamsa:before { + content: "\f665"; } + +.fa-hand-holding:before { + content: "\f4bd"; } + +.fa-hand-holding-heart:before { + content: "\f4be"; } + +.fa-hand-holding-medical:before { + content: "\e05c"; } + +.fa-hand-holding-usd:before { + content: "\f4c0"; } + +.fa-hand-holding-water:before { + content: "\f4c1"; } + +.fa-hand-lizard:before { + content: "\f258"; } + +.fa-hand-middle-finger:before { + content: "\f806"; } + +.fa-hand-paper:before { + content: "\f256"; } + +.fa-hand-peace:before { + content: "\f25b"; } + +.fa-hand-point-down:before { + content: "\f0a7"; } + +.fa-hand-point-left:before { + content: "\f0a5"; } + +.fa-hand-point-right:before { + content: "\f0a4"; } + +.fa-hand-point-up:before { + content: "\f0a6"; } + +.fa-hand-pointer:before { + content: "\f25a"; } + +.fa-hand-rock:before { + content: "\f255"; } + +.fa-hand-scissors:before { + content: "\f257"; } + +.fa-hand-sparkles:before { + content: "\e05d"; } + +.fa-hand-spock:before { + content: "\f259"; } + +.fa-hands:before { + content: "\f4c2"; } + +.fa-hands-helping:before { + content: "\f4c4"; } + +.fa-hands-wash:before { + content: "\e05e"; } + +.fa-handshake:before { + content: "\f2b5"; } + +.fa-handshake-alt-slash:before { + content: "\e05f"; } + +.fa-handshake-slash:before { + content: "\e060"; } + +.fa-hanukiah:before { + content: "\f6e6"; } + +.fa-hard-hat:before { + content: "\f807"; } + +.fa-hashtag:before { + content: "\f292"; } + +.fa-hat-cowboy:before { + content: "\f8c0"; } + +.fa-hat-cowboy-side:before { + content: "\f8c1"; } + +.fa-hat-wizard:before { + content: "\f6e8"; } + +.fa-hdd:before { + content: "\f0a0"; } + +.fa-head-side-cough:before { + content: "\e061"; } + +.fa-head-side-cough-slash:before { + content: "\e062"; } + +.fa-head-side-mask:before { + content: "\e063"; } + +.fa-head-side-virus:before { + content: "\e064"; } + +.fa-heading:before { + content: "\f1dc"; } + +.fa-headphones:before { + content: "\f025"; } + +.fa-headphones-alt:before { + content: "\f58f"; } + +.fa-headset:before { + content: "\f590"; } + +.fa-heart:before { + content: "\f004"; } + +.fa-heart-broken:before { + content: "\f7a9"; } + +.fa-heartbeat:before { + content: "\f21e"; } + +.fa-helicopter:before { + content: "\f533"; } + +.fa-highlighter:before { + content: "\f591"; } + +.fa-hiking:before { + content: "\f6ec"; } + +.fa-hippo:before { + content: "\f6ed"; } + +.fa-hips:before { + content: "\f452"; } + +.fa-hire-a-helper:before { + content: "\f3b0"; } + +.fa-history:before { + content: "\f1da"; } + +.fa-hockey-puck:before { + content: "\f453"; } + +.fa-holly-berry:before { + content: "\f7aa"; } + +.fa-home:before { + content: "\f015"; } + +.fa-hooli:before { + content: "\f427"; } + +.fa-hornbill:before { + content: "\f592"; } + +.fa-horse:before { + content: "\f6f0"; } + +.fa-horse-head:before { + content: "\f7ab"; } + +.fa-hospital:before { + content: "\f0f8"; } + +.fa-hospital-alt:before { + content: "\f47d"; } + +.fa-hospital-symbol:before { + content: "\f47e"; } + +.fa-hospital-user:before { + content: "\f80d"; } + +.fa-hot-tub:before { + content: "\f593"; } + +.fa-hotdog:before { + content: "\f80f"; } + +.fa-hotel:before { + content: "\f594"; } + +.fa-hotjar:before { + content: "\f3b1"; } + +.fa-hourglass:before { + content: "\f254"; } + +.fa-hourglass-end:before { + content: "\f253"; } + +.fa-hourglass-half:before { + content: "\f252"; } + +.fa-hourglass-start:before { + content: "\f251"; } + +.fa-house-damage:before { + content: "\f6f1"; } + +.fa-house-user:before { + content: "\e065"; } + +.fa-houzz:before { + content: "\f27c"; } + +.fa-hryvnia:before { + content: "\f6f2"; } + +.fa-html5:before { + content: "\f13b"; } + +.fa-hubspot:before { + content: "\f3b2"; } + +.fa-i-cursor:before { + content: "\f246"; } + +.fa-ice-cream:before { + content: "\f810"; } + +.fa-icicles:before { + content: "\f7ad"; } + +.fa-icons:before { + content: "\f86d"; } + +.fa-id-badge:before { + content: "\f2c1"; } + +.fa-id-card:before { + content: "\f2c2"; } + +.fa-id-card-alt:before { + content: "\f47f"; } + +.fa-ideal:before { + content: "\e013"; } + +.fa-igloo:before { + content: "\f7ae"; } + +.fa-image:before { + content: "\f03e"; } + +.fa-images:before { + content: "\f302"; } + +.fa-imdb:before { + content: "\f2d8"; } + +.fa-inbox:before { + content: "\f01c"; } + +.fa-indent:before { + content: "\f03c"; } + +.fa-industry:before { + content: "\f275"; } + +.fa-infinity:before { + content: "\f534"; } + +.fa-info:before { + content: "\f129"; } + +.fa-info-circle:before { + content: "\f05a"; } + +.fa-instagram:before { + content: "\f16d"; } + +.fa-instagram-square:before { + content: "\e055"; } + +.fa-intercom:before { + content: "\f7af"; } + +.fa-internet-explorer:before { + content: "\f26b"; } + +.fa-invision:before { + content: "\f7b0"; } + +.fa-ioxhost:before { + content: "\f208"; } + +.fa-italic:before { + content: "\f033"; } + +.fa-itch-io:before { + content: "\f83a"; } + +.fa-itunes:before { + content: "\f3b4"; } + +.fa-itunes-note:before { + content: "\f3b5"; } + +.fa-java:before { + content: "\f4e4"; } + +.fa-jedi:before { + content: "\f669"; } + +.fa-jedi-order:before { + content: "\f50e"; } + +.fa-jenkins:before { + content: "\f3b6"; } + +.fa-jira:before { + content: "\f7b1"; } + +.fa-joget:before { + content: "\f3b7"; } + +.fa-joint:before { + content: "\f595"; } + +.fa-joomla:before { + content: "\f1aa"; } + +.fa-journal-whills:before { + content: "\f66a"; } + +.fa-js:before { + content: "\f3b8"; } + +.fa-js-square:before { + content: "\f3b9"; } + +.fa-jsfiddle:before { + content: "\f1cc"; } + +.fa-kaaba:before { + content: "\f66b"; } + +.fa-kaggle:before { + content: "\f5fa"; } + +.fa-key:before { + content: "\f084"; } + +.fa-keybase:before { + content: "\f4f5"; } + +.fa-keyboard:before { + content: "\f11c"; } + +.fa-keycdn:before { + content: "\f3ba"; } + +.fa-khanda:before { + content: "\f66d"; } + +.fa-kickstarter:before { + content: "\f3bb"; } + +.fa-kickstarter-k:before { + content: "\f3bc"; } + +.fa-kiss:before { + content: "\f596"; } + +.fa-kiss-beam:before { + content: "\f597"; } + +.fa-kiss-wink-heart:before { + content: "\f598"; } + +.fa-kiwi-bird:before { + content: "\f535"; } + +.fa-korvue:before { + content: "\f42f"; } + +.fa-landmark:before { + content: "\f66f"; } + +.fa-language:before { + content: "\f1ab"; } + +.fa-laptop:before { + content: "\f109"; } + +.fa-laptop-code:before { + content: "\f5fc"; } + +.fa-laptop-house:before { + content: "\e066"; } + +.fa-laptop-medical:before { + content: "\f812"; } + +.fa-laravel:before { + content: "\f3bd"; } + +.fa-lastfm:before { + content: "\f202"; } + +.fa-lastfm-square:before { + content: "\f203"; } + +.fa-laugh:before { + content: "\f599"; } + +.fa-laugh-beam:before { + content: "\f59a"; } + +.fa-laugh-squint:before { + content: "\f59b"; } + +.fa-laugh-wink:before { + content: "\f59c"; } + +.fa-layer-group:before { + content: "\f5fd"; } + +.fa-leaf:before { + content: "\f06c"; } + +.fa-leanpub:before { + content: "\f212"; } + +.fa-lemon:before { + content: "\f094"; } + +.fa-less:before { + content: "\f41d"; } + +.fa-less-than:before { + content: "\f536"; } + +.fa-less-than-equal:before { + content: "\f537"; } + +.fa-level-down-alt:before { + content: "\f3be"; } + +.fa-level-up-alt:before { + content: "\f3bf"; } + +.fa-life-ring:before { + content: "\f1cd"; } + +.fa-lightbulb:before { + content: "\f0eb"; } + +.fa-line:before { + content: "\f3c0"; } + +.fa-link:before { + content: "\f0c1"; } + +.fa-linkedin:before { + content: "\f08c"; } + +.fa-linkedin-in:before { + content: "\f0e1"; } + +.fa-linode:before { + content: "\f2b8"; } + +.fa-linux:before { + content: "\f17c"; } + +.fa-lira-sign:before { + content: "\f195"; } + +.fa-list:before { + content: "\f03a"; } + +.fa-list-alt:before { + content: "\f022"; } + +.fa-list-ol:before { + content: "\f0cb"; } + +.fa-list-ul:before { + content: "\f0ca"; } + +.fa-location-arrow:before { + content: "\f124"; } + +.fa-lock:before { + content: "\f023"; } + +.fa-lock-open:before { + content: "\f3c1"; } + +.fa-long-arrow-alt-down:before { + content: "\f309"; } + +.fa-long-arrow-alt-left:before { + content: "\f30a"; } + +.fa-long-arrow-alt-right:before { + content: "\f30b"; } + +.fa-long-arrow-alt-up:before { + content: "\f30c"; } + +.fa-low-vision:before { + content: "\f2a8"; } + +.fa-luggage-cart:before { + content: "\f59d"; } + +.fa-lungs:before { + content: "\f604"; } + +.fa-lungs-virus:before { + content: "\e067"; } + +.fa-lyft:before { + content: "\f3c3"; } + +.fa-magento:before { + content: "\f3c4"; } + +.fa-magic:before { + content: "\f0d0"; } + +.fa-magnet:before { + content: "\f076"; } + +.fa-mail-bulk:before { + content: "\f674"; } + +.fa-mailchimp:before { + content: "\f59e"; } + +.fa-male:before { + content: "\f183"; } + +.fa-mandalorian:before { + content: "\f50f"; } + +.fa-map:before { + content: "\f279"; } + +.fa-map-marked:before { + content: "\f59f"; } + +.fa-map-marked-alt:before { + content: "\f5a0"; } + +.fa-map-marker:before { + content: "\f041"; } + +.fa-map-marker-alt:before { + content: "\f3c5"; } + +.fa-map-pin:before { + content: "\f276"; } + +.fa-map-signs:before { + content: "\f277"; } + +.fa-markdown:before { + content: "\f60f"; } + +.fa-marker:before { + content: "\f5a1"; } + +.fa-mars:before { + content: "\f222"; } + +.fa-mars-double:before { + content: "\f227"; } + +.fa-mars-stroke:before { + content: "\f229"; } + +.fa-mars-stroke-h:before { + content: "\f22b"; } + +.fa-mars-stroke-v:before { + content: "\f22a"; } + +.fa-mask:before { + content: "\f6fa"; } + +.fa-mastodon:before { + content: "\f4f6"; } + +.fa-maxcdn:before { + content: "\f136"; } + +.fa-mdb:before { + content: "\f8ca"; } + +.fa-medal:before { + content: "\f5a2"; } + +.fa-medapps:before { + content: "\f3c6"; } + +.fa-medium:before { + content: "\f23a"; } + +.fa-medium-m:before { + content: "\f3c7"; } + +.fa-medkit:before { + content: "\f0fa"; } + +.fa-medrt:before { + content: "\f3c8"; } + +.fa-meetup:before { + content: "\f2e0"; } + +.fa-megaport:before { + content: "\f5a3"; } + +.fa-meh:before { + content: "\f11a"; } + +.fa-meh-blank:before { + content: "\f5a4"; } + +.fa-meh-rolling-eyes:before { + content: "\f5a5"; } + +.fa-memory:before { + content: "\f538"; } + +.fa-mendeley:before { + content: "\f7b3"; } + +.fa-menorah:before { + content: "\f676"; } + +.fa-mercury:before { + content: "\f223"; } + +.fa-meteor:before { + content: "\f753"; } + +.fa-microblog:before { + content: "\e01a"; } + +.fa-microchip:before { + content: "\f2db"; } + +.fa-microphone:before { + content: "\f130"; } + +.fa-microphone-alt:before { + content: "\f3c9"; } + +.fa-microphone-alt-slash:before { + content: "\f539"; } + +.fa-microphone-slash:before { + content: "\f131"; } + +.fa-microscope:before { + content: "\f610"; } + +.fa-microsoft:before { + content: "\f3ca"; } + +.fa-minus:before { + content: "\f068"; } + +.fa-minus-circle:before { + content: "\f056"; } + +.fa-minus-square:before { + content: "\f146"; } + +.fa-mitten:before { + content: "\f7b5"; } + +.fa-mix:before { + content: "\f3cb"; } + +.fa-mixcloud:before { + content: "\f289"; } + +.fa-mixer:before { + content: "\e056"; } + +.fa-mizuni:before { + content: "\f3cc"; } + +.fa-mobile:before { + content: "\f10b"; } + +.fa-mobile-alt:before { + content: "\f3cd"; } + +.fa-modx:before { + content: "\f285"; } + +.fa-monero:before { + content: "\f3d0"; } + +.fa-money-bill:before { + content: "\f0d6"; } + +.fa-money-bill-alt:before { + content: "\f3d1"; } + +.fa-money-bill-wave:before { + content: "\f53a"; } + +.fa-money-bill-wave-alt:before { + content: "\f53b"; } + +.fa-money-check:before { + content: "\f53c"; } + +.fa-money-check-alt:before { + content: "\f53d"; } + +.fa-monument:before { + content: "\f5a6"; } + +.fa-moon:before { + content: "\f186"; } + +.fa-mortar-pestle:before { + content: "\f5a7"; } + +.fa-mosque:before { + content: "\f678"; } + +.fa-motorcycle:before { + content: "\f21c"; } + +.fa-mountain:before { + content: "\f6fc"; } + +.fa-mouse:before { + content: "\f8cc"; } + +.fa-mouse-pointer:before { + content: "\f245"; } + +.fa-mug-hot:before { + content: "\f7b6"; } + +.fa-music:before { + content: "\f001"; } + +.fa-napster:before { + content: "\f3d2"; } + +.fa-neos:before { + content: "\f612"; } + +.fa-network-wired:before { + content: "\f6ff"; } + +.fa-neuter:before { + content: "\f22c"; } + +.fa-newspaper:before { + content: "\f1ea"; } + +.fa-nimblr:before { + content: "\f5a8"; } + +.fa-node:before { + content: "\f419"; } + +.fa-node-js:before { + content: "\f3d3"; } + +.fa-not-equal:before { + content: "\f53e"; } + +.fa-notes-medical:before { + content: "\f481"; } + +.fa-npm:before { + content: "\f3d4"; } + +.fa-ns8:before { + content: "\f3d5"; } + +.fa-nutritionix:before { + content: "\f3d6"; } + +.fa-object-group:before { + content: "\f247"; } + +.fa-object-ungroup:before { + content: "\f248"; } + +.fa-odnoklassniki:before { + content: "\f263"; } + +.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa-oil-can:before { + content: "\f613"; } + +.fa-old-republic:before { + content: "\f510"; } + +.fa-om:before { + content: "\f679"; } + +.fa-opencart:before { + content: "\f23d"; } + +.fa-openid:before { + content: "\f19b"; } + +.fa-opera:before { + content: "\f26a"; } + +.fa-optin-monster:before { + content: "\f23c"; } + +.fa-orcid:before { + content: "\f8d2"; } + +.fa-osi:before { + content: "\f41a"; } + +.fa-otter:before { + content: "\f700"; } + +.fa-outdent:before { + content: "\f03b"; } + +.fa-page4:before { + content: "\f3d7"; } + +.fa-pagelines:before { + content: "\f18c"; } + +.fa-pager:before { + content: "\f815"; } + +.fa-paint-brush:before { + content: "\f1fc"; } + +.fa-paint-roller:before { + content: "\f5aa"; } + +.fa-palette:before { + content: "\f53f"; } + +.fa-palfed:before { + content: "\f3d8"; } + +.fa-pallet:before { + content: "\f482"; } + +.fa-paper-plane:before { + content: "\f1d8"; } + +.fa-paperclip:before { + content: "\f0c6"; } + +.fa-parachute-box:before { + content: "\f4cd"; } + +.fa-paragraph:before { + content: "\f1dd"; } + +.fa-parking:before { + content: "\f540"; } + +.fa-passport:before { + content: "\f5ab"; } + +.fa-pastafarianism:before { + content: "\f67b"; } + +.fa-paste:before { + content: "\f0ea"; } + +.fa-patreon:before { + content: "\f3d9"; } + +.fa-pause:before { + content: "\f04c"; } + +.fa-pause-circle:before { + content: "\f28b"; } + +.fa-paw:before { + content: "\f1b0"; } + +.fa-paypal:before { + content: "\f1ed"; } + +.fa-peace:before { + content: "\f67c"; } + +.fa-pen:before { + content: "\f304"; } + +.fa-pen-alt:before { + content: "\f305"; } + +.fa-pen-fancy:before { + content: "\f5ac"; } + +.fa-pen-nib:before { + content: "\f5ad"; } + +.fa-pen-square:before { + content: "\f14b"; } + +.fa-pencil-alt:before { + content: "\f303"; } + +.fa-pencil-ruler:before { + content: "\f5ae"; } + +.fa-penny-arcade:before { + content: "\f704"; } + +.fa-people-arrows:before { + content: "\e068"; } + +.fa-people-carry:before { + content: "\f4ce"; } + +.fa-pepper-hot:before { + content: "\f816"; } + +.fa-percent:before { + content: "\f295"; } + +.fa-percentage:before { + content: "\f541"; } + +.fa-periscope:before { + content: "\f3da"; } + +.fa-person-booth:before { + content: "\f756"; } + +.fa-phabricator:before { + content: "\f3db"; } + +.fa-phoenix-framework:before { + content: "\f3dc"; } + +.fa-phoenix-squadron:before { + content: "\f511"; } + +.fa-phone:before { + content: "\f095"; } + +.fa-phone-alt:before { + content: "\f879"; } + +.fa-phone-slash:before { + content: "\f3dd"; } + +.fa-phone-square:before { + content: "\f098"; } + +.fa-phone-square-alt:before { + content: "\f87b"; } + +.fa-phone-volume:before { + content: "\f2a0"; } + +.fa-photo-video:before { + content: "\f87c"; } + +.fa-php:before { + content: "\f457"; } + +.fa-pied-piper:before { + content: "\f2ae"; } + +.fa-pied-piper-alt:before { + content: "\f1a8"; } + +.fa-pied-piper-hat:before { + content: "\f4e5"; } + +.fa-pied-piper-pp:before { + content: "\f1a7"; } + +.fa-pied-piper-square:before { + content: "\e01e"; } + +.fa-piggy-bank:before { + content: "\f4d3"; } + +.fa-pills:before { + content: "\f484"; } + +.fa-pinterest:before { + content: "\f0d2"; } + +.fa-pinterest-p:before { + content: "\f231"; } + +.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa-pizza-slice:before { + content: "\f818"; } + +.fa-place-of-worship:before { + content: "\f67f"; } + +.fa-plane:before { + content: "\f072"; } + +.fa-plane-arrival:before { + content: "\f5af"; } + +.fa-plane-departure:before { + content: "\f5b0"; } + +.fa-plane-slash:before { + content: "\e069"; } + +.fa-play:before { + content: "\f04b"; } + +.fa-play-circle:before { + content: "\f144"; } + +.fa-playstation:before { + content: "\f3df"; } + +.fa-plug:before { + content: "\f1e6"; } + +.fa-plus:before { + content: "\f067"; } + +.fa-plus-circle:before { + content: "\f055"; } + +.fa-plus-square:before { + content: "\f0fe"; } + +.fa-podcast:before { + content: "\f2ce"; } + +.fa-poll:before { + content: "\f681"; } + +.fa-poll-h:before { + content: "\f682"; } + +.fa-poo:before { + content: "\f2fe"; } + +.fa-poo-storm:before { + content: "\f75a"; } + +.fa-poop:before { + content: "\f619"; } + +.fa-portrait:before { + content: "\f3e0"; } + +.fa-pound-sign:before { + content: "\f154"; } + +.fa-power-off:before { + content: "\f011"; } + +.fa-pray:before { + content: "\f683"; } + +.fa-praying-hands:before { + content: "\f684"; } + +.fa-prescription:before { + content: "\f5b1"; } + +.fa-prescription-bottle:before { + content: "\f485"; } + +.fa-prescription-bottle-alt:before { + content: "\f486"; } + +.fa-print:before { + content: "\f02f"; } + +.fa-procedures:before { + content: "\f487"; } + +.fa-product-hunt:before { + content: "\f288"; } + +.fa-project-diagram:before { + content: "\f542"; } + +.fa-pump-medical:before { + content: "\e06a"; } + +.fa-pump-soap:before { + content: "\e06b"; } + +.fa-pushed:before { + content: "\f3e1"; } + +.fa-puzzle-piece:before { + content: "\f12e"; } + +.fa-python:before { + content: "\f3e2"; } + +.fa-qq:before { + content: "\f1d6"; } + +.fa-qrcode:before { + content: "\f029"; } + +.fa-question:before { + content: "\f128"; } + +.fa-question-circle:before { + content: "\f059"; } + +.fa-quidditch:before { + content: "\f458"; } + +.fa-quinscape:before { + content: "\f459"; } + +.fa-quora:before { + content: "\f2c4"; } + +.fa-quote-left:before { + content: "\f10d"; } + +.fa-quote-right:before { + content: "\f10e"; } + +.fa-quran:before { + content: "\f687"; } + +.fa-r-project:before { + content: "\f4f7"; } + +.fa-radiation:before { + content: "\f7b9"; } + +.fa-radiation-alt:before { + content: "\f7ba"; } + +.fa-rainbow:before { + content: "\f75b"; } + +.fa-random:before { + content: "\f074"; } + +.fa-raspberry-pi:before { + content: "\f7bb"; } + +.fa-ravelry:before { + content: "\f2d9"; } + +.fa-react:before { + content: "\f41b"; } + +.fa-reacteurope:before { + content: "\f75d"; } + +.fa-readme:before { + content: "\f4d5"; } + +.fa-rebel:before { + content: "\f1d0"; } + +.fa-receipt:before { + content: "\f543"; } + +.fa-record-vinyl:before { + content: "\f8d9"; } + +.fa-recycle:before { + content: "\f1b8"; } + +.fa-red-river:before { + content: "\f3e3"; } + +.fa-reddit:before { + content: "\f1a1"; } + +.fa-reddit-alien:before { + content: "\f281"; } + +.fa-reddit-square:before { + content: "\f1a2"; } + +.fa-redhat:before { + content: "\f7bc"; } + +.fa-redo:before { + content: "\f01e"; } + +.fa-redo-alt:before { + content: "\f2f9"; } + +.fa-registered:before { + content: "\f25d"; } + +.fa-remove-format:before { + content: "\f87d"; } + +.fa-renren:before { + content: "\f18b"; } + +.fa-reply:before { + content: "\f3e5"; } + +.fa-reply-all:before { + content: "\f122"; } + +.fa-replyd:before { + content: "\f3e6"; } + +.fa-republican:before { + content: "\f75e"; } + +.fa-researchgate:before { + content: "\f4f8"; } + +.fa-resolving:before { + content: "\f3e7"; } + +.fa-restroom:before { + content: "\f7bd"; } + +.fa-retweet:before { + content: "\f079"; } + +.fa-rev:before { + content: "\f5b2"; } + +.fa-ribbon:before { + content: "\f4d6"; } + +.fa-ring:before { + content: "\f70b"; } + +.fa-road:before { + content: "\f018"; } + +.fa-robot:before { + content: "\f544"; } + +.fa-rocket:before { + content: "\f135"; } + +.fa-rocketchat:before { + content: "\f3e8"; } + +.fa-rockrms:before { + content: "\f3e9"; } + +.fa-route:before { + content: "\f4d7"; } + +.fa-rss:before { + content: "\f09e"; } + +.fa-rss-square:before { + content: "\f143"; } + +.fa-ruble-sign:before { + content: "\f158"; } + +.fa-ruler:before { + content: "\f545"; } + +.fa-ruler-combined:before { + content: "\f546"; } + +.fa-ruler-horizontal:before { + content: "\f547"; } + +.fa-ruler-vertical:before { + content: "\f548"; } + +.fa-running:before { + content: "\f70c"; } + +.fa-rupee-sign:before { + content: "\f156"; } + +.fa-rust:before { + content: "\e07a"; } + +.fa-sad-cry:before { + content: "\f5b3"; } + +.fa-sad-tear:before { + content: "\f5b4"; } + +.fa-safari:before { + content: "\f267"; } + +.fa-salesforce:before { + content: "\f83b"; } + +.fa-sass:before { + content: "\f41e"; } + +.fa-satellite:before { + content: "\f7bf"; } + +.fa-satellite-dish:before { + content: "\f7c0"; } + +.fa-save:before { + content: "\f0c7"; } + +.fa-schlix:before { + content: "\f3ea"; } + +.fa-school:before { + content: "\f549"; } + +.fa-screwdriver:before { + content: "\f54a"; } + +.fa-scribd:before { + content: "\f28a"; } + +.fa-scroll:before { + content: "\f70e"; } + +.fa-sd-card:before { + content: "\f7c2"; } + +.fa-search:before { + content: "\f002"; } + +.fa-search-dollar:before { + content: "\f688"; } + +.fa-search-location:before { + content: "\f689"; } + +.fa-search-minus:before { + content: "\f010"; } + +.fa-search-plus:before { + content: "\f00e"; } + +.fa-searchengin:before { + content: "\f3eb"; } + +.fa-seedling:before { + content: "\f4d8"; } + +.fa-sellcast:before { + content: "\f2da"; } + +.fa-sellsy:before { + content: "\f213"; } + +.fa-server:before { + content: "\f233"; } + +.fa-servicestack:before { + content: "\f3ec"; } + +.fa-shapes:before { + content: "\f61f"; } + +.fa-share:before { + content: "\f064"; } + +.fa-share-alt:before { + content: "\f1e0"; } + +.fa-share-alt-square:before { + content: "\f1e1"; } + +.fa-share-square:before { + content: "\f14d"; } + +.fa-shekel-sign:before { + content: "\f20b"; } + +.fa-shield-alt:before { + content: "\f3ed"; } + +.fa-shield-virus:before { + content: "\e06c"; } + +.fa-ship:before { + content: "\f21a"; } + +.fa-shipping-fast:before { + content: "\f48b"; } + +.fa-shirtsinbulk:before { + content: "\f214"; } + +.fa-shoe-prints:before { + content: "\f54b"; } + +.fa-shopify:before { + content: "\e057"; } + +.fa-shopping-bag:before { + content: "\f290"; } + +.fa-shopping-basket:before { + content: "\f291"; } + +.fa-shopping-cart:before { + content: "\f07a"; } + +.fa-shopware:before { + content: "\f5b5"; } + +.fa-shower:before { + content: "\f2cc"; } + +.fa-shuttle-van:before { + content: "\f5b6"; } + +.fa-sign:before { + content: "\f4d9"; } + +.fa-sign-in-alt:before { + content: "\f2f6"; } + +.fa-sign-language:before { + content: "\f2a7"; } + +.fa-sign-out-alt:before { + content: "\f2f5"; } + +.fa-signal:before { + content: "\f012"; } + +.fa-signature:before { + content: "\f5b7"; } + +.fa-sim-card:before { + content: "\f7c4"; } + +.fa-simplybuilt:before { + content: "\f215"; } + +.fa-sink:before { + content: "\e06d"; } + +.fa-sistrix:before { + content: "\f3ee"; } + +.fa-sitemap:before { + content: "\f0e8"; } + +.fa-sith:before { + content: "\f512"; } + +.fa-skating:before { + content: "\f7c5"; } + +.fa-sketch:before { + content: "\f7c6"; } + +.fa-skiing:before { + content: "\f7c9"; } + +.fa-skiing-nordic:before { + content: "\f7ca"; } + +.fa-skull:before { + content: "\f54c"; } + +.fa-skull-crossbones:before { + content: "\f714"; } + +.fa-skyatlas:before { + content: "\f216"; } + +.fa-skype:before { + content: "\f17e"; } + +.fa-slack:before { + content: "\f198"; } + +.fa-slack-hash:before { + content: "\f3ef"; } + +.fa-slash:before { + content: "\f715"; } + +.fa-sleigh:before { + content: "\f7cc"; } + +.fa-sliders-h:before { + content: "\f1de"; } + +.fa-slideshare:before { + content: "\f1e7"; } + +.fa-smile:before { + content: "\f118"; } + +.fa-smile-beam:before { + content: "\f5b8"; } + +.fa-smile-wink:before { + content: "\f4da"; } + +.fa-smog:before { + content: "\f75f"; } + +.fa-smoking:before { + content: "\f48d"; } + +.fa-smoking-ban:before { + content: "\f54d"; } + +.fa-sms:before { + content: "\f7cd"; } + +.fa-snapchat:before { + content: "\f2ab"; } + +.fa-snapchat-ghost:before { + content: "\f2ac"; } + +.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa-snowboarding:before { + content: "\f7ce"; } + +.fa-snowflake:before { + content: "\f2dc"; } + +.fa-snowman:before { + content: "\f7d0"; } + +.fa-snowplow:before { + content: "\f7d2"; } + +.fa-soap:before { + content: "\e06e"; } + +.fa-socks:before { + content: "\f696"; } + +.fa-solar-panel:before { + content: "\f5ba"; } + +.fa-sort:before { + content: "\f0dc"; } + +.fa-sort-alpha-down:before { + content: "\f15d"; } + +.fa-sort-alpha-down-alt:before { + content: "\f881"; } + +.fa-sort-alpha-up:before { + content: "\f15e"; } + +.fa-sort-alpha-up-alt:before { + content: "\f882"; } + +.fa-sort-amount-down:before { + content: "\f160"; } + +.fa-sort-amount-down-alt:before { + content: "\f884"; } + +.fa-sort-amount-up:before { + content: "\f161"; } + +.fa-sort-amount-up-alt:before { + content: "\f885"; } + +.fa-sort-down:before { + content: "\f0dd"; } + +.fa-sort-numeric-down:before { + content: "\f162"; } + +.fa-sort-numeric-down-alt:before { + content: "\f886"; } + +.fa-sort-numeric-up:before { + content: "\f163"; } + +.fa-sort-numeric-up-alt:before { + content: "\f887"; } + +.fa-sort-up:before { + content: "\f0de"; } + +.fa-soundcloud:before { + content: "\f1be"; } + +.fa-sourcetree:before { + content: "\f7d3"; } + +.fa-spa:before { + content: "\f5bb"; } + +.fa-space-shuttle:before { + content: "\f197"; } + +.fa-speakap:before { + content: "\f3f3"; } + +.fa-speaker-deck:before { + content: "\f83c"; } + +.fa-spell-check:before { + content: "\f891"; } + +.fa-spider:before { + content: "\f717"; } + +.fa-spinner:before { + content: "\f110"; } + +.fa-splotch:before { + content: "\f5bc"; } + +.fa-spotify:before { + content: "\f1bc"; } + +.fa-spray-can:before { + content: "\f5bd"; } + +.fa-square:before { + content: "\f0c8"; } + +.fa-square-full:before { + content: "\f45c"; } + +.fa-square-root-alt:before { + content: "\f698"; } + +.fa-squarespace:before { + content: "\f5be"; } + +.fa-stack-exchange:before { + content: "\f18d"; } + +.fa-stack-overflow:before { + content: "\f16c"; } + +.fa-stackpath:before { + content: "\f842"; } + +.fa-stamp:before { + content: "\f5bf"; } + +.fa-star:before { + content: "\f005"; } + +.fa-star-and-crescent:before { + content: "\f699"; } + +.fa-star-half:before { + content: "\f089"; } + +.fa-star-half-alt:before { + content: "\f5c0"; } + +.fa-star-of-david:before { + content: "\f69a"; } + +.fa-star-of-life:before { + content: "\f621"; } + +.fa-staylinked:before { + content: "\f3f5"; } + +.fa-steam:before { + content: "\f1b6"; } + +.fa-steam-square:before { + content: "\f1b7"; } + +.fa-steam-symbol:before { + content: "\f3f6"; } + +.fa-step-backward:before { + content: "\f048"; } + +.fa-step-forward:before { + content: "\f051"; } + +.fa-stethoscope:before { + content: "\f0f1"; } + +.fa-sticker-mule:before { + content: "\f3f7"; } + +.fa-sticky-note:before { + content: "\f249"; } + +.fa-stop:before { + content: "\f04d"; } + +.fa-stop-circle:before { + content: "\f28d"; } + +.fa-stopwatch:before { + content: "\f2f2"; } + +.fa-stopwatch-20:before { + content: "\e06f"; } + +.fa-store:before { + content: "\f54e"; } + +.fa-store-alt:before { + content: "\f54f"; } + +.fa-store-alt-slash:before { + content: "\e070"; } + +.fa-store-slash:before { + content: "\e071"; } + +.fa-strava:before { + content: "\f428"; } + +.fa-stream:before { + content: "\f550"; } + +.fa-street-view:before { + content: "\f21d"; } + +.fa-strikethrough:before { + content: "\f0cc"; } + +.fa-stripe:before { + content: "\f429"; } + +.fa-stripe-s:before { + content: "\f42a"; } + +.fa-stroopwafel:before { + content: "\f551"; } + +.fa-studiovinari:before { + content: "\f3f8"; } + +.fa-stumbleupon:before { + content: "\f1a4"; } + +.fa-stumbleupon-circle:before { + content: "\f1a3"; } + +.fa-subscript:before { + content: "\f12c"; } + +.fa-subway:before { + content: "\f239"; } + +.fa-suitcase:before { + content: "\f0f2"; } + +.fa-suitcase-rolling:before { + content: "\f5c1"; } + +.fa-sun:before { + content: "\f185"; } + +.fa-superpowers:before { + content: "\f2dd"; } + +.fa-superscript:before { + content: "\f12b"; } + +.fa-supple:before { + content: "\f3f9"; } + +.fa-surprise:before { + content: "\f5c2"; } + +.fa-suse:before { + content: "\f7d6"; } + +.fa-swatchbook:before { + content: "\f5c3"; } + +.fa-swift:before { + content: "\f8e1"; } + +.fa-swimmer:before { + content: "\f5c4"; } + +.fa-swimming-pool:before { + content: "\f5c5"; } + +.fa-symfony:before { + content: "\f83d"; } + +.fa-synagogue:before { + content: "\f69b"; } + +.fa-sync:before { + content: "\f021"; } + +.fa-sync-alt:before { + content: "\f2f1"; } + +.fa-syringe:before { + content: "\f48e"; } + +.fa-table:before { + content: "\f0ce"; } + +.fa-table-tennis:before { + content: "\f45d"; } + +.fa-tablet:before { + content: "\f10a"; } + +.fa-tablet-alt:before { + content: "\f3fa"; } + +.fa-tablets:before { + content: "\f490"; } + +.fa-tachometer-alt:before { + content: "\f3fd"; } + +.fa-tag:before { + content: "\f02b"; } + +.fa-tags:before { + content: "\f02c"; } + +.fa-tape:before { + content: "\f4db"; } + +.fa-tasks:before { + content: "\f0ae"; } + +.fa-taxi:before { + content: "\f1ba"; } + +.fa-teamspeak:before { + content: "\f4f9"; } + +.fa-teeth:before { + content: "\f62e"; } + +.fa-teeth-open:before { + content: "\f62f"; } + +.fa-telegram:before { + content: "\f2c6"; } + +.fa-telegram-plane:before { + content: "\f3fe"; } + +.fa-temperature-high:before { + content: "\f769"; } + +.fa-temperature-low:before { + content: "\f76b"; } + +.fa-tencent-weibo:before { + content: "\f1d5"; } + +.fa-tenge:before { + content: "\f7d7"; } + +.fa-terminal:before { + content: "\f120"; } + +.fa-text-height:before { + content: "\f034"; } + +.fa-text-width:before { + content: "\f035"; } + +.fa-th:before { + content: "\f00a"; } + +.fa-th-large:before { + content: "\f009"; } + +.fa-th-list:before { + content: "\f00b"; } + +.fa-the-red-yeti:before { + content: "\f69d"; } + +.fa-theater-masks:before { + content: "\f630"; } + +.fa-themeco:before { + content: "\f5c6"; } + +.fa-themeisle:before { + content: "\f2b2"; } + +.fa-thermometer:before { + content: "\f491"; } + +.fa-thermometer-empty:before { + content: "\f2cb"; } + +.fa-thermometer-full:before { + content: "\f2c7"; } + +.fa-thermometer-half:before { + content: "\f2c9"; } + +.fa-thermometer-quarter:before { + content: "\f2ca"; } + +.fa-thermometer-three-quarters:before { + content: "\f2c8"; } + +.fa-think-peaks:before { + content: "\f731"; } + +.fa-thumbs-down:before { + content: "\f165"; } + +.fa-thumbs-up:before { + content: "\f164"; } + +.fa-thumbtack:before { + content: "\f08d"; } + +.fa-ticket-alt:before { + content: "\f3ff"; } + +.fa-tiktok:before { + content: "\e07b"; } + +.fa-times:before { + content: "\f00d"; } + +.fa-times-circle:before { + content: "\f057"; } + +.fa-tint:before { + content: "\f043"; } + +.fa-tint-slash:before { + content: "\f5c7"; } + +.fa-tired:before { + content: "\f5c8"; } + +.fa-toggle-off:before { + content: "\f204"; } + +.fa-toggle-on:before { + content: "\f205"; } + +.fa-toilet:before { + content: "\f7d8"; } + +.fa-toilet-paper:before { + content: "\f71e"; } + +.fa-toilet-paper-slash:before { + content: "\e072"; } + +.fa-toolbox:before { + content: "\f552"; } + +.fa-tools:before { + content: "\f7d9"; } + +.fa-tooth:before { + content: "\f5c9"; } + +.fa-torah:before { + content: "\f6a0"; } + +.fa-torii-gate:before { + content: "\f6a1"; } + +.fa-tractor:before { + content: "\f722"; } + +.fa-trade-federation:before { + content: "\f513"; } + +.fa-trademark:before { + content: "\f25c"; } + +.fa-traffic-light:before { + content: "\f637"; } + +.fa-trailer:before { + content: "\e041"; } + +.fa-train:before { + content: "\f238"; } + +.fa-tram:before { + content: "\f7da"; } + +.fa-transgender:before { + content: "\f224"; } + +.fa-transgender-alt:before { + content: "\f225"; } + +.fa-trash:before { + content: "\f1f8"; } + +.fa-trash-alt:before { + content: "\f2ed"; } + +.fa-trash-restore:before { + content: "\f829"; } + +.fa-trash-restore-alt:before { + content: "\f82a"; } + +.fa-tree:before { + content: "\f1bb"; } + +.fa-trello:before { + content: "\f181"; } + +.fa-tripadvisor:before { + content: "\f262"; } + +.fa-trophy:before { + content: "\f091"; } + +.fa-truck:before { + content: "\f0d1"; } + +.fa-truck-loading:before { + content: "\f4de"; } + +.fa-truck-monster:before { + content: "\f63b"; } + +.fa-truck-moving:before { + content: "\f4df"; } + +.fa-truck-pickup:before { + content: "\f63c"; } + +.fa-tshirt:before { + content: "\f553"; } + +.fa-tty:before { + content: "\f1e4"; } + +.fa-tumblr:before { + content: "\f173"; } + +.fa-tumblr-square:before { + content: "\f174"; } + +.fa-tv:before { + content: "\f26c"; } + +.fa-twitch:before { + content: "\f1e8"; } + +.fa-twitter:before { + content: "\f099"; } + +.fa-twitter-square:before { + content: "\f081"; } + +.fa-typo3:before { + content: "\f42b"; } + +.fa-uber:before { + content: "\f402"; } + +.fa-ubuntu:before { + content: "\f7df"; } + +.fa-uikit:before { + content: "\f403"; } + +.fa-umbraco:before { + content: "\f8e8"; } + +.fa-umbrella:before { + content: "\f0e9"; } + +.fa-umbrella-beach:before { + content: "\f5ca"; } + +.fa-underline:before { + content: "\f0cd"; } + +.fa-undo:before { + content: "\f0e2"; } + +.fa-undo-alt:before { + content: "\f2ea"; } + +.fa-uniregistry:before { + content: "\f404"; } + +.fa-unity:before { + content: "\e049"; } + +.fa-universal-access:before { + content: "\f29a"; } + +.fa-university:before { + content: "\f19c"; } + +.fa-unlink:before { + content: "\f127"; } + +.fa-unlock:before { + content: "\f09c"; } + +.fa-unlock-alt:before { + content: "\f13e"; } + +.fa-unsplash:before { + content: "\e07c"; } + +.fa-untappd:before { + content: "\f405"; } + +.fa-upload:before { + content: "\f093"; } + +.fa-ups:before { + content: "\f7e0"; } + +.fa-usb:before { + content: "\f287"; } + +.fa-user:before { + content: "\f007"; } + +.fa-user-alt:before { + content: "\f406"; } + +.fa-user-alt-slash:before { + content: "\f4fa"; } + +.fa-user-astronaut:before { + content: "\f4fb"; } + +.fa-user-check:before { + content: "\f4fc"; } + +.fa-user-circle:before { + content: "\f2bd"; } + +.fa-user-clock:before { + content: "\f4fd"; } + +.fa-user-cog:before { + content: "\f4fe"; } + +.fa-user-edit:before { + content: "\f4ff"; } + +.fa-user-friends:before { + content: "\f500"; } + +.fa-user-graduate:before { + content: "\f501"; } + +.fa-user-injured:before { + content: "\f728"; } + +.fa-user-lock:before { + content: "\f502"; } + +.fa-user-md:before { + content: "\f0f0"; } + +.fa-user-minus:before { + content: "\f503"; } + +.fa-user-ninja:before { + content: "\f504"; } + +.fa-user-nurse:before { + content: "\f82f"; } + +.fa-user-plus:before { + content: "\f234"; } + +.fa-user-secret:before { + content: "\f21b"; } + +.fa-user-shield:before { + content: "\f505"; } + +.fa-user-slash:before { + content: "\f506"; } + +.fa-user-tag:before { + content: "\f507"; } + +.fa-user-tie:before { + content: "\f508"; } + +.fa-user-times:before { + content: "\f235"; } + +.fa-users:before { + content: "\f0c0"; } + +.fa-users-cog:before { + content: "\f509"; } + +.fa-users-slash:before { + content: "\e073"; } + +.fa-usps:before { + content: "\f7e1"; } + +.fa-ussunnah:before { + content: "\f407"; } + +.fa-utensil-spoon:before { + content: "\f2e5"; } + +.fa-utensils:before { + content: "\f2e7"; } + +.fa-vaadin:before { + content: "\f408"; } + +.fa-vector-square:before { + content: "\f5cb"; } + +.fa-venus:before { + content: "\f221"; } + +.fa-venus-double:before { + content: "\f226"; } + +.fa-venus-mars:before { + content: "\f228"; } + +.fa-viacoin:before { + content: "\f237"; } + +.fa-viadeo:before { + content: "\f2a9"; } + +.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa-vial:before { + content: "\f492"; } + +.fa-vials:before { + content: "\f493"; } + +.fa-viber:before { + content: "\f409"; } + +.fa-video:before { + content: "\f03d"; } + +.fa-video-slash:before { + content: "\f4e2"; } + +.fa-vihara:before { + content: "\f6a7"; } + +.fa-vimeo:before { + content: "\f40a"; } + +.fa-vimeo-square:before { + content: "\f194"; } + +.fa-vimeo-v:before { + content: "\f27d"; } + +.fa-vine:before { + content: "\f1ca"; } + +.fa-virus:before { + content: "\e074"; } + +.fa-virus-slash:before { + content: "\e075"; } + +.fa-viruses:before { + content: "\e076"; } + +.fa-vk:before { + content: "\f189"; } + +.fa-vnv:before { + content: "\f40b"; } + +.fa-voicemail:before { + content: "\f897"; } + +.fa-volleyball-ball:before { + content: "\f45f"; } + +.fa-volume-down:before { + content: "\f027"; } + +.fa-volume-mute:before { + content: "\f6a9"; } + +.fa-volume-off:before { + content: "\f026"; } + +.fa-volume-up:before { + content: "\f028"; } + +.fa-vote-yea:before { + content: "\f772"; } + +.fa-vr-cardboard:before { + content: "\f729"; } + +.fa-vuejs:before { + content: "\f41f"; } + +.fa-walking:before { + content: "\f554"; } + +.fa-wallet:before { + content: "\f555"; } + +.fa-warehouse:before { + content: "\f494"; } + +.fa-water:before { + content: "\f773"; } + +.fa-wave-square:before { + content: "\f83e"; } + +.fa-waze:before { + content: "\f83f"; } + +.fa-weebly:before { + content: "\f5cc"; } + +.fa-weibo:before { + content: "\f18a"; } + +.fa-weight:before { + content: "\f496"; } + +.fa-weight-hanging:before { + content: "\f5cd"; } + +.fa-weixin:before { + content: "\f1d7"; } + +.fa-whatsapp:before { + content: "\f232"; } + +.fa-whatsapp-square:before { + content: "\f40c"; } + +.fa-wheelchair:before { + content: "\f193"; } + +.fa-whmcs:before { + content: "\f40d"; } + +.fa-wifi:before { + content: "\f1eb"; } + +.fa-wikipedia-w:before { + content: "\f266"; } + +.fa-wind:before { + content: "\f72e"; } + +.fa-window-close:before { + content: "\f410"; } + +.fa-window-maximize:before { + content: "\f2d0"; } + +.fa-window-minimize:before { + content: "\f2d1"; } + +.fa-window-restore:before { + content: "\f2d2"; } + +.fa-windows:before { + content: "\f17a"; } + +.fa-wine-bottle:before { + content: "\f72f"; } + +.fa-wine-glass:before { + content: "\f4e3"; } + +.fa-wine-glass-alt:before { + content: "\f5ce"; } + +.fa-wix:before { + content: "\f5cf"; } + +.fa-wizards-of-the-coast:before { + content: "\f730"; } + +.fa-wolf-pack-battalion:before { + content: "\f514"; } + +.fa-won-sign:before { + content: "\f159"; } + +.fa-wordpress:before { + content: "\f19a"; } + +.fa-wordpress-simple:before { + content: "\f411"; } + +.fa-wpbeginner:before { + content: "\f297"; } + +.fa-wpexplorer:before { + content: "\f2de"; } + +.fa-wpforms:before { + content: "\f298"; } + +.fa-wpressr:before { + content: "\f3e4"; } + +.fa-wrench:before { + content: "\f0ad"; } + +.fa-x-ray:before { + content: "\f497"; } + +.fa-xbox:before { + content: "\f412"; } + +.fa-xing:before { + content: "\f168"; } + +.fa-xing-square:before { + content: "\f169"; } + +.fa-y-combinator:before { + content: "\f23b"; } + +.fa-yahoo:before { + content: "\f19e"; } + +.fa-yammer:before { + content: "\f840"; } + +.fa-yandex:before { + content: "\f413"; } + +.fa-yandex-international:before { + content: "\f414"; } + +.fa-yarn:before { + content: "\f7e3"; } + +.fa-yelp:before { + content: "\f1e9"; } + +.fa-yen-sign:before { + content: "\f157"; } + +.fa-yin-yang:before { + content: "\f6ad"; } + +.fa-yoast:before { + content: "\f2b1"; } + +.fa-youtube:before { + content: "\f167"; } + +.fa-youtube-square:before { + content: "\f431"; } + +.fa-zhihu:before { + content: "\f63f"; } + +.sr-only { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } + +.sr-only-focusable:active, .sr-only-focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; } + +/*! + * Font Awesome Free 5.14.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url("../webfonts/fa-solid-900.eot"); + src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); } + +.fa, +.fas { + font-family: 'Font Awesome 5 Free'; + font-weight: 900; } + +/*! + * Font Awesome Free 5.14.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-brands-400.eot"); + src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); } + +.fab { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.td-border-top { + border: none; + border-top: 1px solid #eee; } + +.td-border-none { + border: none; } + +.td-block-padding, .td-default main section { + padding-top: 4rem; + padding-bottom: 4rem; } + @media (min-width: 768px) { + .td-block-padding, .td-default main section { + padding-top: 5rem; + padding-bottom: 5rem; } } +.td-overlay { + position: relative; } + .td-overlay::after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; } + .td-overlay--dark::after { + background-color: rgba(64, 63, 76, 0.3); } + .td-overlay--light::after { + background-color: rgba(211, 243, 238, 0.3); } + .td-overlay__inner { + position: relative; + z-index: 1; } + +@media (min-width: 992px) { + .td-max-width-on-larger-screens, .td-content > pre, .td-content > .highlight, .td-content > .lead, .td-content > h1, .td-content > h2, .td-content > ul, .td-content > ol, .td-content > p, .td-content > blockquote, .td-content > dl dd, .td-content .footnotes, .td-content > .alert { + max-width: 80%; } } + +.-bg-blue { + color: #fff; + background-color: #72A1E5; } + +.-bg-blue p > a { + color: #a0c0ee; } + .-bg-blue p > a:hover { + color: #1e53a0; } + +.-text-blue { + color: #72A1E5; } + +.-bg-indigo { + color: #fff; + background-color: #6610f2; } + +.-bg-indigo p > a { + color: #b8cff2; } + .-bg-indigo p > a:hover { + color: #1e53a0; } + +.-text-indigo { + color: #6610f2; } + +.-bg-purple { + color: #fff; + background-color: #6f42c1; } + +.-bg-purple p > a { + color: #b7cff2; } + .-bg-purple p > a:hover { + color: #1e53a0; } + +.-text-purple { + color: #6f42c1; } + +.-bg-pink { + color: #fff; + background-color: #e83e8c; } + +.-bg-pink p > a { + color: #aec9f0; } + .-bg-pink p > a:hover { + color: #1e53a0; } + +.-text-pink { + color: #e83e8c; } + +.-bg-red { + color: #fff; + background-color: #dc3545; } + +.-bg-red p > a { + color: #b4cdf1; } + .-bg-red p > a:hover { + color: #1e53a0; } + +.-text-red { + color: #dc3545; } + +.-bg-orange { + color: #fff; + background-color: #BA5A31; } + +.-bg-orange p > a { + color: #bed4f3; } + .-bg-orange p > a:hover { + color: #1e53a0; } + +.-text-orange { + color: #BA5A31; } + +.-bg-yellow { + color: #fff; + background-color: #ffc107; } + +.-bg-yellow p > a { + color: #b7cff2; } + .-bg-yellow p > a:hover { + color: #1e53a0; } + +.-text-yellow { + color: #ffc107; } + +.-bg-green { + color: #fff; + background-color: #28a745; } + +.-bg-green p > a { + color: #c6d9f4; } + .-bg-green p > a:hover { + color: #1e53a0; } + +.-text-green { + color: #28a745; } + +.-bg-teal { + color: #fff; + background-color: #20c997; } + +.-bg-teal p > a { + color: #bfd4f3; } + .-bg-teal p > a:hover { + color: #1e53a0; } + +.-text-teal { + color: #20c997; } + +.-bg-cyan { + color: #fff; + background-color: #17a2b8; } + +.-bg-cyan p > a { + color: #c6d9f4; } + .-bg-cyan p > a:hover { + color: #1e53a0; } + +.-text-cyan { + color: #17a2b8; } + +.-bg-white { + color: #222; + background-color: #fff; } + +.-bg-white p > a { + color: #72a1e5; } + .-bg-white p > a:hover { + color: #1e53a0; } + +.-text-white { + color: #fff; } + +.-bg-gray { + color: #fff; + background-color: #888; } + +.-bg-gray p > a { + color: #b4cdf1; } + .-bg-gray p > a:hover { + color: #1e53a0; } + +.-text-gray { + color: #888; } + +.-bg-gray-dark { + color: #fff; + background-color: #333; } + +.-bg-gray-dark p > a { + color: #e3ecfa; } + .-bg-gray-dark p > a:hover { + color: #1e53a0; } + +.-text-gray-dark { + color: #333; } + +.-bg-primary { + color: #fff; + background-color: #30638E; } + +.-bg-primary p > a { + color: #cadcf5; } + .-bg-primary p > a:hover { + color: #1e53a0; } + +.-text-primary { + color: #30638E; } + +.-bg-secondary { + color: #fff; + background-color: #FFA630; } + +.-bg-secondary p > a { + color: #abc7f0; } + .-bg-secondary p > a:hover { + color: #1e53a0; } + +.-text-secondary { + color: #FFA630; } + +.-bg-success { + color: #fff; + background-color: #3772FF; } + +.-bg-success p > a { + color: #a9c6ef; } + .-bg-success p > a:hover { + color: #1e53a0; } + +.-text-success { + color: #3772FF; } + +.-bg-info { + color: #222; + background-color: #C0E0DE; } + +.-bg-info p > a { + color: #638ac1; } + .-bg-info p > a:hover { + color: #1e53a0; } + +.-text-info { + color: #C0E0DE; } + +.-bg-warning { + color: #fff; + background-color: #ED6A5A; } + +.-bg-warning p > a { + color: #a5c3ee; } + .-bg-warning p > a:hover { + color: #1e53a0; } + +.-text-warning { + color: #ED6A5A; } + +.-bg-danger { + color: #fff; + background-color: #ED6A5A; } + +.-bg-danger p > a { + color: #a5c3ee; } + .-bg-danger p > a:hover { + color: #1e53a0; } + +.-text-danger { + color: #ED6A5A; } + +.-bg-light { + color: #222; + background-color: #D3F3EE; } + +.-bg-light p > a { + color: #6993d0; } + .-bg-light p > a:hover { + color: #1e53a0; } + +.-text-light { + color: #D3F3EE; } + +.-bg-dark { + color: #fff; + background-color: #403F4C; } + +.-bg-dark p > a { + color: #d9e5f8; } + .-bg-dark p > a:hover { + color: #1e53a0; } + +.-text-dark { + color: #403F4C; } + +.-bg-100 { + color: #222; + background-color: #f8f9fa; } + +.-bg-100 p > a { + color: #709ee0; } + .-bg-100 p > a:hover { + color: #1e53a0; } + +.-text-100 { + color: #f8f9fa; } + +.-bg-200 { + color: #222; + background-color: #eee; } + +.-bg-200 p > a { + color: #6d99d8; } + .-bg-200 p > a:hover { + color: #1e53a0; } + +.-text-200 { + color: #eee; } + +.-bg-300 { + color: #222; + background-color: #dee2e6; } + +.-bg-300 p > a { + color: #6993cf; } + .-bg-300 p > a:hover { + color: #1e53a0; } + +.-text-300 { + color: #dee2e6; } + +.-bg-400 { + color: #222; + background-color: #ccc; } + +.-bg-400 p > a { + color: #6288be; } + .-bg-400 p > a:hover { + color: #1e53a0; } + +.-text-400 { + color: #ccc; } + +.-bg-500 { + color: #fff; + background-color: #adb5bd; } + +.-bg-500 p > a { + color: #9bbced; } + .-bg-500 p > a:hover { + color: #1e53a0; } + +.-text-500 { + color: #adb5bd; } + +.-bg-600 { + color: #fff; + background-color: #888; } + +.-bg-600 p > a { + color: #b4cdf1; } + .-bg-600 p > a:hover { + color: #1e53a0; } + +.-text-600 { + color: #888; } + +.-bg-700 { + color: #fff; + background-color: #495057; } + +.-bg-700 p > a { + color: #d3e2f7; } + .-bg-700 p > a:hover { + color: #1e53a0; } + +.-text-700 { + color: #495057; } + +.-bg-800 { + color: #fff; + background-color: #333; } + +.-bg-800 p > a { + color: #e3ecfa; } + .-bg-800 p > a:hover { + color: #1e53a0; } + +.-text-800 { + color: #333; } + +.-bg-900 { + color: #fff; + background-color: #222; } + +.-bg-900 p > a { + color: #ecf2fc; } + .-bg-900 p > a:hover { + color: #1e53a0; } + +.-text-900 { + color: #222; } + +.-bg-0 { + color: #fff; + background-color: #403F4C; } + +.-bg-0 p > a { + color: #d9e5f8; } + .-bg-0 p > a:hover { + color: #1e53a0; } + +.-text-0 { + color: #403F4C; } + +.-bg-1 { + color: #fff; + background-color: #30638E; } + +.-bg-1 p > a { + color: #cadcf5; } + .-bg-1 p > a:hover { + color: #1e53a0; } + +.-text-1 { + color: #30638E; } + +.-bg-2 { + color: #fff; + background-color: #FFA630; } + +.-bg-2 p > a { + color: #abc7f0; } + .-bg-2 p > a:hover { + color: #1e53a0; } + +.-text-2 { + color: #FFA630; } + +.-bg-3 { + color: #222; + background-color: #C0E0DE; } + +.-bg-3 p > a { + color: #638ac1; } + .-bg-3 p > a:hover { + color: #1e53a0; } + +.-text-3 { + color: #C0E0DE; } + +.-bg-4 { + color: #222; + background-color: white; } + +.-bg-4 p > a { + color: #72a1e5; } + .-bg-4 p > a:hover { + color: #1e53a0; } + +.-text-4 { + color: white; } + +.-bg-5 { + color: #fff; + background-color: #888; } + +.-bg-5 p > a { + color: #b4cdf1; } + .-bg-5 p > a:hover { + color: #1e53a0; } + +.-text-5 { + color: #888; } + +.-bg-6 { + color: #fff; + background-color: #3772FF; } + +.-bg-6 p > a { + color: #a9c6ef; } + .-bg-6 p > a:hover { + color: #1e53a0; } + +.-text-6 { + color: #3772FF; } + +.-bg-7 { + color: #fff; + background-color: #ED6A5A; } + +.-bg-7 p > a { + color: #a5c3ee; } + .-bg-7 p > a:hover { + color: #1e53a0; } + +.-text-7 { + color: #ED6A5A; } + +.-bg-8 { + color: #fff; + background-color: #403F4C; } + +.-bg-8 p > a { + color: #d9e5f8; } + .-bg-8 p > a:hover { + color: #1e53a0; } + +.-text-8 { + color: #403F4C; } + +.-bg-9 { + color: #fff; + background-color: #ED6A5A; } + +.-bg-9 p > a { + color: #a5c3ee; } + .-bg-9 p > a:hover { + color: #1e53a0; } + +.-text-9 { + color: #ED6A5A; } + +.-bg-10 { + color: #fff; + background-color: #30638E; } + +.-bg-10 p > a { + color: #cadcf5; } + .-bg-10 p > a:hover { + color: #1e53a0; } + +.-text-10 { + color: #30638E; } + +.-bg-11 { + color: #fff; + background-color: #FFA630; } + +.-bg-11 p > a { + color: #abc7f0; } + .-bg-11 p > a:hover { + color: #1e53a0; } + +.-text-11 { + color: #FFA630; } + +.-bg-12 { + color: #222; + background-color: white; } + +.-bg-12 p > a { + color: #72a1e5; } + .-bg-12 p > a:hover { + color: #1e53a0; } + +.-text-12 { + color: white; } + +.-bg-13 { + color: #222; + background-color: #C0E0DE; } + +.-bg-13 p > a { + color: #638ac1; } + .-bg-13 p > a:hover { + color: #1e53a0; } + +.-text-13 { + color: #C0E0DE; } + +.td-box--height-min { + min-height: 300px; } + +.td-box--height-med { + min-height: 400px; } + +.td-box--height-max { + min-height: 500px; } + +.td-box--height-full { + min-height: 100vh; } + +@media (min-width: 768px) { + .td-box--height-min { + min-height: 450px; } + .td-box--height-med { + min-height: 500px; } + .td-box--height-max { + min-height: 650px; } } + +.td-box .row.section { + padding-left: 5rem; + padding-right: 5rem; + flex-direction: column; } + +.td-box .row { + padding-left: 5rem; + padding-right: 5rem; + flex-direction: row; } + +.td-box.linkbox { + padding: 5rem; } + +.td-box--0 { + color: #fff; + background-color: #403F4C; } + .td-box--0 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #403F4C transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--0 p > a { + color: #d9e5f8; } + .td-box--0 p > a:hover { + color: #1e53a0; } + +.td-box--10.td-box--gradient { + background: #403F4C linear-gradient(180deg, #5d5c67, #403F4C) repeat-x !important; } + +.td-box--1 { + color: #fff; + background-color: #30638E; } + .td-box--1 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #30638E transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--1 p > a { + color: #cadcf5; } + .td-box--1 p > a:hover { + color: #1e53a0; } + +.td-box--11.td-box--gradient { + background: #30638E linear-gradient(180deg, #4f7a9f, #30638E) repeat-x !important; } + +.td-box--2 { + color: #fff; + background-color: #FFA630; } + .td-box--2 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #FFA630 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--2 p > a { + color: #abc7f0; } + .td-box--2 p > a:hover { + color: #1e53a0; } + +.td-box--12.td-box--gradient { + background: #FFA630 linear-gradient(180deg, #ffb34f, #FFA630) repeat-x !important; } + +.td-box--3 { + color: #222; + background-color: #C0E0DE; } + .td-box--3 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #C0E0DE transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--3 p > a { + color: #638ac1; } + .td-box--3 p > a:hover { + color: #1e53a0; } + +.td-box--13.td-box--gradient { + background: #C0E0DE linear-gradient(180deg, #c9e5e3, #C0E0DE) repeat-x !important; } + +.td-box--4 { + color: #222; + background-color: white; } + .td-box--4 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: white transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--4 p > a { + color: #72a1e5; } + .td-box--4 p > a:hover { + color: #1e53a0; } + +.td-box--14.td-box--gradient { + background: white linear-gradient(180deg, white, white) repeat-x !important; } + +.td-box--5 { + color: #fff; + background-color: #888; } + .td-box--5 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #888 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--5 p > a { + color: #b4cdf1; } + .td-box--5 p > a:hover { + color: #1e53a0; } + +.td-box--15.td-box--gradient { + background: #888 linear-gradient(180deg, #9a9a9a, #888) repeat-x !important; } + +.td-box--6 { + color: #fff; + background-color: #3772FF; } + .td-box--6 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #3772FF transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--6 p > a { + color: #a9c6ef; } + .td-box--6 p > a:hover { + color: #1e53a0; } + +.td-box--16.td-box--gradient { + background: #3772FF linear-gradient(180deg, #5587ff, #3772FF) repeat-x !important; } + +.td-box--7 { + color: #fff; + background-color: #ED6A5A; } + .td-box--7 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #ED6A5A transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--7 p > a { + color: #a5c3ee; } + .td-box--7 p > a:hover { + color: #1e53a0; } + +.td-box--17.td-box--gradient { + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x !important; } + +.td-box--8 { + color: #fff; + background-color: #403F4C; } + .td-box--8 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #403F4C transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--8 p > a { + color: #d9e5f8; } + .td-box--8 p > a:hover { + color: #1e53a0; } + +.td-box--18.td-box--gradient { + background: #403F4C linear-gradient(180deg, #5d5c67, #403F4C) repeat-x !important; } + +.td-box--9 { + color: #fff; + background-color: #ED6A5A; } + .td-box--9 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #ED6A5A transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--9 p > a { + color: #a5c3ee; } + .td-box--9 p > a:hover { + color: #1e53a0; } + +.td-box--19.td-box--gradient { + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x !important; } + +.td-box--10 { + color: #fff; + background-color: #30638E; } + .td-box--10 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #30638E transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--10 p > a { + color: #cadcf5; } + .td-box--10 p > a:hover { + color: #1e53a0; } + +.td-box--110.td-box--gradient { + background: #30638E linear-gradient(180deg, #4f7a9f, #30638E) repeat-x !important; } + +.td-box--11 { + color: #fff; + background-color: #FFA630; } + .td-box--11 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #FFA630 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--11 p > a { + color: #abc7f0; } + .td-box--11 p > a:hover { + color: #1e53a0; } + +.td-box--111.td-box--gradient { + background: #FFA630 linear-gradient(180deg, #ffb34f, #FFA630) repeat-x !important; } + +.td-box--12 { + color: #222; + background-color: white; } + .td-box--12 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: white transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--12 p > a { + color: #72a1e5; } + .td-box--12 p > a:hover { + color: #1e53a0; } + +.td-box--112.td-box--gradient { + background: white linear-gradient(180deg, white, white) repeat-x !important; } + +.td-box--13 { + color: #222; + background-color: #C0E0DE; } + .td-box--13 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #C0E0DE transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--13 p > a { + color: #638ac1; } + .td-box--13 p > a:hover { + color: #1e53a0; } + +.td-box--113.td-box--gradient { + background: #C0E0DE linear-gradient(180deg, #c9e5e3, #C0E0DE) repeat-x !important; } + +.td-box--blue { + color: #fff; + background-color: #72A1E5; } + .td-box--blue .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #72A1E5 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--blue p > a { + color: #a0c0ee; } + .td-box--blue p > a:hover { + color: #1e53a0; } + +.td-box--1blue.td-box--gradient { + background: #72A1E5 linear-gradient(180deg, #87afe9, #72A1E5) repeat-x !important; } + +.td-box--indigo { + color: #fff; + background-color: #6610f2; } + .td-box--indigo .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #6610f2 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--indigo p > a { + color: #b8cff2; } + .td-box--indigo p > a:hover { + color: #1e53a0; } + +.td-box--1indigo.td-box--gradient { + background: #6610f2 linear-gradient(180deg, #7d34f4, #6610f2) repeat-x !important; } + +.td-box--purple { + color: #fff; + background-color: #6f42c1; } + .td-box--purple .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #6f42c1 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--purple p > a { + color: #b7cff2; } + .td-box--purple p > a:hover { + color: #1e53a0; } + +.td-box--1purple.td-box--gradient { + background: #6f42c1 linear-gradient(180deg, #855eca, #6f42c1) repeat-x !important; } + +.td-box--pink { + color: #fff; + background-color: #e83e8c; } + .td-box--pink .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #e83e8c transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--pink p > a { + color: #aec9f0; } + .td-box--pink p > a:hover { + color: #1e53a0; } + +.td-box--1pink.td-box--gradient { + background: #e83e8c linear-gradient(180deg, #eb5b9d, #e83e8c) repeat-x !important; } + +.td-box--red { + color: #fff; + background-color: #dc3545; } + .td-box--red .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #dc3545 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--red p > a { + color: #b4cdf1; } + .td-box--red p > a:hover { + color: #1e53a0; } + +.td-box--1red.td-box--gradient { + background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important; } + +.td-box--orange { + color: #fff; + background-color: #BA5A31; } + .td-box--orange .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #BA5A31 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--orange p > a { + color: #bed4f3; } + .td-box--orange p > a:hover { + color: #1e53a0; } + +.td-box--1orange.td-box--gradient { + background: #BA5A31 linear-gradient(180deg, #c47350, #BA5A31) repeat-x !important; } + +.td-box--yellow { + color: #fff; + background-color: #ffc107; } + .td-box--yellow .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #ffc107 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--yellow p > a { + color: #b7cff2; } + .td-box--yellow p > a:hover { + color: #1e53a0; } + +.td-box--1yellow.td-box--gradient { + background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important; } + +.td-box--green { + color: #fff; + background-color: #28a745; } + .td-box--green .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #28a745 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--green p > a { + color: #c6d9f4; } + .td-box--green p > a:hover { + color: #1e53a0; } + +.td-box--1green.td-box--gradient { + background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important; } + +.td-box--teal { + color: #fff; + background-color: #20c997; } + .td-box--teal .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #20c997 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--teal p > a { + color: #bfd4f3; } + .td-box--teal p > a:hover { + color: #1e53a0; } + +.td-box--1teal.td-box--gradient { + background: #20c997 linear-gradient(180deg, #41d1a7, #20c997) repeat-x !important; } + +.td-box--cyan { + color: #fff; + background-color: #17a2b8; } + .td-box--cyan .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #17a2b8 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--cyan p > a { + color: #c6d9f4; } + .td-box--cyan p > a:hover { + color: #1e53a0; } + +.td-box--1cyan.td-box--gradient { + background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important; } + +.td-box--white { + color: #222; + background-color: #fff; } + .td-box--white .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #fff transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--white p > a { + color: #72a1e5; } + .td-box--white p > a:hover { + color: #1e53a0; } + +.td-box--1white.td-box--gradient { + background: #fff linear-gradient(180deg, white, #fff) repeat-x !important; } + +.td-box--gray { + color: #fff; + background-color: #888; } + .td-box--gray .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #888 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--gray p > a { + color: #b4cdf1; } + .td-box--gray p > a:hover { + color: #1e53a0; } + +.td-box--1gray.td-box--gradient { + background: #888 linear-gradient(180deg, #9a9a9a, #888) repeat-x !important; } + +.td-box--gray-dark { + color: #fff; + background-color: #333; } + .td-box--gray-dark .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #333 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--gray-dark p > a { + color: #e3ecfa; } + .td-box--gray-dark p > a:hover { + color: #1e53a0; } + +.td-box--1gray-dark.td-box--gradient { + background: #333 linear-gradient(180deg, #525252, #333) repeat-x !important; } + +.td-box--primary { + color: #fff; + background-color: #30638E; } + .td-box--primary .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #30638E transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--primary p > a { + color: #cadcf5; } + .td-box--primary p > a:hover { + color: #1e53a0; } + +.td-box--1primary.td-box--gradient { + background: #30638E linear-gradient(180deg, #4f7a9f, #30638E) repeat-x !important; } + +.td-box--secondary { + color: #fff; + background-color: #FFA630; } + .td-box--secondary .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #FFA630 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--secondary p > a { + color: #abc7f0; } + .td-box--secondary p > a:hover { + color: #1e53a0; } + +.td-box--1secondary.td-box--gradient { + background: #FFA630 linear-gradient(180deg, #ffb34f, #FFA630) repeat-x !important; } + +.td-box--success { + color: #fff; + background-color: #3772FF; } + .td-box--success .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #3772FF transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--success p > a { + color: #a9c6ef; } + .td-box--success p > a:hover { + color: #1e53a0; } + +.td-box--1success.td-box--gradient { + background: #3772FF linear-gradient(180deg, #5587ff, #3772FF) repeat-x !important; } + +.td-box--info { + color: #222; + background-color: #C0E0DE; } + .td-box--info .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #C0E0DE transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--info p > a { + color: #638ac1; } + .td-box--info p > a:hover { + color: #1e53a0; } + +.td-box--1info.td-box--gradient { + background: #C0E0DE linear-gradient(180deg, #c9e5e3, #C0E0DE) repeat-x !important; } + +.td-box--warning { + color: #fff; + background-color: #ED6A5A; } + .td-box--warning .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #ED6A5A transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--warning p > a { + color: #a5c3ee; } + .td-box--warning p > a:hover { + color: #1e53a0; } + +.td-box--1warning.td-box--gradient { + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x !important; } + +.td-box--danger { + color: #fff; + background-color: #ED6A5A; } + .td-box--danger .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #ED6A5A transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--danger p > a { + color: #a5c3ee; } + .td-box--danger p > a:hover { + color: #1e53a0; } + +.td-box--1danger.td-box--gradient { + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x !important; } + +.td-box--light { + color: #222; + background-color: #D3F3EE; } + .td-box--light .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #D3F3EE transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--light p > a { + color: #6993d0; } + .td-box--light p > a:hover { + color: #1e53a0; } + +.td-box--1light.td-box--gradient { + background: #D3F3EE linear-gradient(180deg, #daf5f1, #D3F3EE) repeat-x !important; } + +.td-box--dark { + color: #fff; + background-color: #403F4C; } + .td-box--dark .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #403F4C transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--dark p > a { + color: #d9e5f8; } + .td-box--dark p > a:hover { + color: #1e53a0; } + +.td-box--1dark.td-box--gradient { + background: #403F4C linear-gradient(180deg, #5d5c67, #403F4C) repeat-x !important; } + +.td-box--100 { + color: #222; + background-color: #f8f9fa; } + .td-box--100 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #f8f9fa transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--100 p > a { + color: #709ee0; } + .td-box--100 p > a:hover { + color: #1e53a0; } + +.td-box--1100.td-box--gradient { + background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important; } + +.td-box--200 { + color: #222; + background-color: #eee; } + .td-box--200 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #eee transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--200 p > a { + color: #6d99d8; } + .td-box--200 p > a:hover { + color: #1e53a0; } + +.td-box--1200.td-box--gradient { + background: #eee linear-gradient(180deg, #f1f1f1, #eee) repeat-x !important; } + +.td-box--300 { + color: #222; + background-color: #dee2e6; } + .td-box--300 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #dee2e6 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--300 p > a { + color: #6993cf; } + .td-box--300 p > a:hover { + color: #1e53a0; } + +.td-box--1300.td-box--gradient { + background: #dee2e6 linear-gradient(180deg, #e3e6ea, #dee2e6) repeat-x !important; } + +.td-box--400 { + color: #222; + background-color: #ccc; } + .td-box--400 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #ccc transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--400 p > a { + color: #6288be; } + .td-box--400 p > a:hover { + color: #1e53a0; } + +.td-box--1400.td-box--gradient { + background: #ccc linear-gradient(180deg, #d4d4d4, #ccc) repeat-x !important; } + +.td-box--500 { + color: #fff; + background-color: #adb5bd; } + .td-box--500 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #adb5bd transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--500 p > a { + color: #9bbced; } + .td-box--500 p > a:hover { + color: #1e53a0; } + +.td-box--1500.td-box--gradient { + background: #adb5bd linear-gradient(180deg, #b9c0c7, #adb5bd) repeat-x !important; } + +.td-box--600 { + color: #fff; + background-color: #888; } + .td-box--600 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #888 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--600 p > a { + color: #b4cdf1; } + .td-box--600 p > a:hover { + color: #1e53a0; } + +.td-box--1600.td-box--gradient { + background: #888 linear-gradient(180deg, #9a9a9a, #888) repeat-x !important; } + +.td-box--700 { + color: #fff; + background-color: #495057; } + .td-box--700 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #495057 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--700 p > a { + color: #d3e2f7; } + .td-box--700 p > a:hover { + color: #1e53a0; } + +.td-box--1700.td-box--gradient { + background: #495057 linear-gradient(180deg, #646a70, #495057) repeat-x !important; } + +.td-box--800 { + color: #fff; + background-color: #333; } + .td-box--800 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #333 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--800 p > a { + color: #e3ecfa; } + .td-box--800 p > a:hover { + color: #1e53a0; } + +.td-box--1800.td-box--gradient { + background: #333 linear-gradient(180deg, #525252, #333) repeat-x !important; } + +.td-box--900 { + color: #fff; + background-color: #222; } + .td-box--900 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #222 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--900 p > a { + color: #ecf2fc; } + .td-box--900 p > a:hover { + color: #1e53a0; } + +.td-box--1900.td-box--gradient { + background: #222 linear-gradient(180deg, #434343, #222) repeat-x !important; } + +.td-blog .td-rss-button { + position: absolute; + top: 5.5rem; + right: 1rem; + z-index: 22; } + +.td-content .highlight { + margin: 2rem 0; + padding: 0; } + .td-content .highlight pre { + margin: 0; + padding: 1rem; } + +.td-content p code, .td-content li > code, .td-content table code { + color: inherit; + padding: 0.2em 0.4em; + margin: 0; + font-size: 85%; + word-break: normal; + background-color: rgba(0, 0, 0, 0.05); + border-radius: 0.25rem; } + .td-content p code br, .td-content li > code br, .td-content table code br { + display: none; } + +.td-content pre { + word-wrap: normal; + background-color: #f8f9fa; + padding: 1rem; } + .td-content pre > code { + background-color: inherit !important; + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + border: 0; } + +.td-navbar-cover { + background: #30638E; } + @media (min-width: 768px) { + .td-navbar-cover { + background: transparent !important; } + .td-navbar-cover .nav-link { + text-shadow: 1px 1px 2px #403F4C; } } + .td-navbar-cover.navbar-bg-onscroll .nav-link { + text-shadow: none; } + +.navbar-bg-onscroll { + background: #30638E !important; + opacity: inherit; } + +.td-navbar { + background: #30638E; + min-height: 4rem; + margin: 0; + z-index: 32; } + @media (min-width: 768px) { + .td-navbar { + position: fixed; + top: 0; + width: 100%; } } + .td-navbar .navbar-brand { + text-transform: none; + text-align: middle; } + .td-navbar .navbar-brand .nav-link { + display: inline-block; + margin-right: -30px; } + .td-navbar .navbar-brand svg { + display: inline-block; + margin: 0 10px; + height: 30px; } + .td-navbar .nav-link { + text-transform: none; + font-weight: 700; } + .td-navbar .td-search-input { + border: none; } + .td-navbar .td-search-input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.75); } + .td-navbar .td-search-input:-moz-placeholder { + color: rgba(255, 255, 255, 0.75); } + .td-navbar .td-search-input::-moz-placeholder { + color: rgba(255, 255, 255, 0.75); } + .td-navbar .td-search-input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.75); } + .td-navbar .dropdown { + min-width: 100px; } + @media (max-width: 991.98px) { + .td-navbar { + padding-right: .5rem; + padding-left: .75rem; } + .td-navbar .td-navbar-nav-scroll { + max-width: 100%; + height: 2.5rem; + margin-top: .25rem; + overflow: hidden; + font-size: .875rem; } + .td-navbar .td-navbar-nav-scroll .nav-link { + padding-right: .25rem; + padding-left: 0; } + .td-navbar .td-navbar-nav-scroll .navbar-nav { + padding-bottom: 2rem; + overflow-x: auto; + white-space: nowrap; + -webkit-overflow-scrolling: touch; } } +.td-sidebar-nav { + padding-right: 0.5rem; + margin-right: -15px; + margin-left: -15px; } + @media (min-width: 768px) { + @supports (position: sticky) { + .td-sidebar-nav { + max-height: calc(100vh - 10rem); + overflow-y: auto; } } } + @media (min-width: 768px) { + .td-sidebar-nav { + display: block !important; } } + .td-sidebar-nav__section { + padding-left: 0; } + .td-sidebar-nav__section li { + list-style: none; } + .td-sidebar-nav__section ul { + padding: 0; + margin: 0; } + @media (min-width: 768px) { + .td-sidebar-nav__section > ul { + padding-left: .5rem; } } + .td-sidebar-nav__section-title { + display: block; + font-weight: 500; } + .td-sidebar-nav__section-title .active { + font-weight: 700; } + .td-sidebar-nav__section-title a { + color: #222; } + .td-sidebar-nav .td-sidebar-link { + display: block; + padding-bottom: 0.375rem; } + .td-sidebar-nav .td-sidebar-link__page { + color: #495057; + font-weight: 300; } + .td-sidebar-nav a:hover { + color: #72A1E5; + text-decoration: none; } + .td-sidebar-nav a.active { + font-weight: 700; } + .td-sidebar-nav .dropdown a { + color: #495057; } + .td-sidebar-nav .dropdown .nav-link { + padding: 0 0 1rem; } + .td-sidebar-nav > .td-sidebar-nav__section { + padding-top: .5rem; + padding-left: 1.5rem; } + +.td-sidebar { + padding-bottom: 1rem; } + @media (min-width: 768px) { + .td-sidebar { + padding-top: 4rem; + background-color: rgba(48, 99, 142, 0.03); + padding-right: 1rem; + border-right: 1px solid #dee2e6; } } + .td-sidebar__toggle { + line-height: 1; + color: #222; + margin: 1rem; } + .td-sidebar__search { + padding: 1rem 15px; + margin-right: -15px; + margin-left: -15px; } + .td-sidebar__inner { + order: 0; } + @media (min-width: 768px) { + @supports (position: sticky) { + .td-sidebar__inner { + position: sticky; + top: 4rem; + z-index: 10; + height: calc(100vh - 6rem); } } } + @media (min-width: 1200px) { + .td-sidebar__inner { + flex: 0 1 320px; } } + .td-sidebar__inner .td-search-box { + width: 100%; } + .td-sidebar #content-desktop { + display: block; } + .td-sidebar #content-mobile { + display: none; } + @media (max-width: 991.98px) { + .td-sidebar #content-desktop { + display: none; } + .td-sidebar #content-mobile { + display: block; } } +.td-toc { + border-left: 1px solid #dee2e6; + order: 2; + padding-top: 0.75rem; + padding-bottom: 1.5rem; + vertical-align: top; } + @supports (position: sticky) { + .td-toc { + position: sticky; + top: 4rem; + height: calc(100vh - 10rem); + overflow-y: auto; } } + .td-toc a { + display: block; + font-weight: 300; + padding-bottom: .25rem; } + .td-toc li { + list-style: none; + display: block; } + .td-toc li li { + margin-left: 0.5rem; } + .td-toc .td-page-meta a { + font-weight: 500; } + .td-toc #TableOfContents a { + color: #888; } + .td-toc #TableOfContents a:hover { + color: #72A1E5; + text-decoration: none; } + .td-toc ul { + padding-left: 0; } + +.btn { + border-radius: 1rem; } + .btn-lg, .btn-group-lg > .btn { + border-radius: 2rem; } + .btn-sm, .btn-group-sm > .btn { + border-radius: 1rem; } + +.breadcrumb { + background: none; + padding-left: 0; + padding-top: 0; } + +.alert { + font-weight: 500; + background: #fff; + color: inherit; + border-radius: 0; } + .alert-primary { + border-style: solid; + border-color: #30638E; + border-width: 0 0 0 4px; } + .alert-primary .alert-heading { + color: #30638E; } + .alert-secondary { + border-style: solid; + border-color: #FFA630; + border-width: 0 0 0 4px; } + .alert-secondary .alert-heading { + color: #FFA630; } + .alert-success { + border-style: solid; + border-color: #3772FF; + border-width: 0 0 0 4px; } + .alert-success .alert-heading { + color: #3772FF; } + .alert-info { + border-style: solid; + border-color: #C0E0DE; + border-width: 0 0 0 4px; } + .alert-info .alert-heading { + color: #C0E0DE; } + .alert-warning { + border-style: solid; + border-color: #ED6A5A; + border-width: 0 0 0 4px; } + .alert-warning .alert-heading { + color: #ED6A5A; } + .alert-danger { + border-style: solid; + border-color: #ED6A5A; + border-width: 0 0 0 4px; } + .alert-danger .alert-heading { + color: #ED6A5A; } + .alert-light { + border-style: solid; + border-color: #D3F3EE; + border-width: 0 0 0 4px; } + .alert-light .alert-heading { + color: #D3F3EE; } + .alert-dark { + border-style: solid; + border-color: #403F4C; + border-width: 0 0 0 4px; } + .alert-dark .alert-heading { + color: #403F4C; } + +.td-content { + order: 1; } + .td-content p, .td-content li, .td-content td { + font-weight: 400; } + .td-content > h1 { + font-weight: 700; + margin-bottom: 1rem; } + .td-content > h2 { + margin-bottom: 1rem; } + .td-content > h2:not(:first-child) { + margin-top: 3rem; } + .td-content > h2 + h3 { + margin-top: 1rem; } + .td-content > h3, .td-content > h4, .td-content > h5, .td-content > h6 { + margin-bottom: 1rem; + margin-top: 2rem; } + .td-content > blockquote { + padding: 0 0 0 1rem; + margin-bottom: 1rem; + color: #888; + border-left: 6px solid #FFA630; } + .td-content > ul li, .td-content > ol li { + margin-bottom: .25rem; } + .td-content strong { + font-weight: 700; } + .td-content .alert:not(:first-child) { + margin-top: 2rem; + margin-bottom: 2rem; } + .td-content .lead { + margin-bottom: 1.5rem; } + +.td-title { + margin-top: 1rem; + margin-bottom: .5rem; } + @media (min-width: 576px) { + .td-title { + font-size: 3rem; } } +.td-search-input { + background: transparent; + border-radius: 1rem; + font-family: "Font Awesome 5 Free", "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; } + .td-search-input.form-control:focus { + border-color: #f5f8fb; + box-shadow: 0 0 0 2px #82afd5; } + +.popover.offline-search-result { + max-width: 90%; } + .popover.offline-search-result .card, .popover.offline-search-result .td-content .highlight, .td-content .popover.offline-search-result .highlight { + margin-bottom: 0.5rem; } + .popover.offline-search-result .card .card-header, .popover.offline-search-result .td-content .highlight .card-header, .td-content .popover.offline-search-result .highlight .card-header { + font-weight: bold; } + +.td-outer { + display: flex; + flex-direction: column; + height: 100vh; } + +@media (min-width: 768px) { + .td-default main section:first-of-type { + padding-top: 8rem; } } + +.td-main { + flex-grow: 1; } + .td-main main { + padding-bottom: 2rem; } + @media (min-width: 768px) { + .td-main main { + padding-top: 5.5rem; } } +.td-cover-block--height-min { + min-height: 300px; } + +.td-cover-block--height-med { + min-height: 400px; } + +.td-cover-block--height-max { + min-height: 500px; } + +.td-cover-block--height-full { + min-height: 100vh; } + +@media (min-width: 768px) { + .td-cover-block--height-min { + min-height: 450px; } + .td-cover-block--height-med { + min-height: 500px; } + .td-cover-block--height-max { + min-height: 650px; } } + +.td-cover-logo { + margin-right: 0.5em; } + +.td-cover-block { + position: relative; + padding-top: 5rem; + padding-bottom: 5rem; + background-repeat: no-repeat; + background-position: 50% 0; + background-size: cover; } + .td-cover-block > .byline { + position: absolute; + bottom: 2px; + right: 4px; } + +.td-bg-arrow-wrapper { + position: relative; } + +.section-index .entry { + padding: .75rem; } + +.section-index h5 { + margin-bottom: 0; } + .section-index h5 a { + font-weight: 700; } + +.section-index p { + margin-top: 0; } + +.pageinfo { + font-weight: 500; + background: #f8f9fa; + color: inherit; + border-radius: 0; + margin: 2rem; + padding: 1.5rem; + padding-bottom: 0.5rem; } + .pageinfo-primary { + border-style: solid; + border-color: #30638E; } + .pageinfo-secondary { + border-style: solid; + border-color: #FFA630; } + .pageinfo-success { + border-style: solid; + border-color: #3772FF; } + .pageinfo-info { + border-style: solid; + border-color: #C0E0DE; } + .pageinfo-warning { + border-style: solid; + border-color: #ED6A5A; } + .pageinfo-danger { + border-style: solid; + border-color: #ED6A5A; } + .pageinfo-light { + border-style: solid; + border-color: #D3F3EE; } + .pageinfo-dark { + border-style: solid; + border-color: #403F4C; } + +footer { + min-height: 150px; } + @media (max-width: 991.98px) { + footer { + min-height: 200px; } } +@media (min-width: 768px) { + .td-offset-anchor:target { + display: block; + position: relative; + top: -4rem; + visibility: hidden; } + h2[id]:before, h3[id]:before, h4[id]:before, h5[id]:before { + display: block; + content: " "; + margin-top: -5rem; + height: 5rem; + visibility: hidden; } } + +/* + +Nothing defined here. The Hugo project that uses this theme can override Bootstrap by adding a file to: + +assets/scss/_styles_project.scss + +*/ + +/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/daprdocs/resources/_gen/assets/scss/dapr.io/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.json b/daprdocs/resources/_gen/assets/scss/dapr.io/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.json new file mode 100644 index 000000000..e2e3d4cf5 --- /dev/null +++ b/daprdocs/resources/_gen/assets/scss/dapr.io/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.json @@ -0,0 +1 @@ +{"Target":"scss/main.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/daprdocs/resources/_gen/assets/scss/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.content b/daprdocs/resources/_gen/assets/scss/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.content new file mode 100644 index 000000000..dbd4946d3 --- /dev/null +++ b/daprdocs/resources/_gen/assets/scss/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.content @@ -0,0 +1,13866 @@ +@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,700,700i"); +.navbar-brand { + text-align: left; } + .navbar-brand svg { + display: inline-block; + margin: 0 10px; + height: 60px; } + +/* + +Bootstrap variables overrides for theme. +See https://github.com/twbs/bootstrap/pull/23260 +*/ +@fa-font-path : "../webfonts"; +/*! + * Bootstrap v4.5.0 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +:root { + --blue: #72A1E5; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #e83e8c; + --red: #dc3545; + --orange: #BA5A31; + --yellow: #ffc107; + --green: #28a745; + --teal: #20c997; + --cyan: #17a2b8; + --white: #fff; + --gray: #888; + --gray-dark: #333; + --primary: #0D2192; + --secondary: #1F329A; + --success: #3772FF; + --info: #C0E0DE; + --warning: #ED6A5A; + --danger: #ED6A5A; + --light: #D3F3EE; + --dark: #403F4C; + --breakpoint-xs: 0; + --breakpoint-sm: 576px; + --breakpoint-md: 768px; + --breakpoint-lg: 992px; + --breakpoint-xl: 1200px; + --font-family-sans-serif: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } + +*, +*::before, +*::after { + box-sizing: border-box; } + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } + +article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { + display: block; } + +body { + margin: 0; + font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #222; + text-align: left; + background-color: #fff; } + +[tabindex="-1"]:focus:not(:focus-visible) { + 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; + text-decoration-skip-ink: none; } + +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: 700; } + +dd { + margin-bottom: .5rem; + margin-left: 0; } + +blockquote { + margin: 0 0 1rem; } + +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: #3176d9; + text-decoration: none; + background-color: transparent; } + a:hover { + color: #1e53a0; + text-decoration: none; } + +a:not([href]) { + color: inherit; + text-decoration: none; } + a:not([href]):hover { + color: inherit; + text-decoration: none; } + +pre, +code, +kbd, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", 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 { + overflow: hidden; + vertical-align: middle; } + +table { + border-collapse: collapse; } + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #888; + text-align: left; + caption-side: bottom; } + +th { + text-align: inherit; } + +label { + display: inline-block; + margin-bottom: 0.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; } + +[role="button"] { + cursor: pointer; } + +select { + word-wrap: normal; } + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; } + +button:not(:disabled), +[type="button"]:not(:disabled), +[type="reset"]:not(:disabled), +[type="submit"]:not(:disabled) { + cursor: pointer; } + +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; } + +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-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-weight: 500; + line-height: 1.2; } + +h1, .h1 { + font-size: 2.25rem; } + +h2, .h2 { + font-size: 2rem; } + +h3, .h3 { + font-size: 1.5rem; } + +h4, .h4 { + font-size: 1.35rem; } + +h5, .h5 { + font-size: 1.15rem; } + +h6, .h6 { + font-size: 1rem; } + +.lead { + font-size: 1.25rem; + font-weight: 300; } + +.display-1 { + font-size: 3rem; + font-weight: 700; + line-height: 1.2; } + +.display-2 { + font-size: 2.5rem; + font-weight: 700; + line-height: 1.2; } + +.display-3 { + font-size: 2rem; + font-weight: 700; + line-height: 1.2; } + +.display-4 { + font-size: 1.75rem; + font-weight: 700; + 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: #888; } + .blockquote-footer::before { + content: "\2014\00A0"; } + +.img-fluid, .td-content img { + max-width: 100%; + height: auto; } + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + 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: #888; } + +code { + font-size: 87.5%; + color: #0e1645; + word-wrap: break-word; } + a > code { + color: inherit; } + +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #222; + 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: 700; + box-shadow: none; } + +pre { + display: block; + font-size: 87.5%; + color: #222; } + 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, .container-xl, .container-lg, .container-md, .container-sm { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; } + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; } } + +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; } } + +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; } } + +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; } } + +.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-xl, +.col-xl-auto, .col-xl-12, .col-xl-11, .col-xl-10, .col-xl-9, .col-xl-8, .col-xl-7, .col-xl-6, .col-xl-5, .col-xl-4, .col-xl-3, .col-xl-2, .col-xl-1, .col-lg, +.col-lg-auto, .col-lg-12, .col-lg-11, .col-lg-10, .col-lg-9, .col-lg-8, .col-lg-7, .col-lg-6, .col-lg-5, .col-lg-4, .col-lg-3, .col-lg-2, .col-lg-1, .col-md, +.col-md-auto, .col-md-12, .col-md-11, .col-md-10, .col-md-9, .col-md-8, .col-md-7, .col-md-6, .col-md-5, .col-md-4, .col-md-3, .col-md-2, .col-md-1, .col-sm, +.col-sm-auto, .col-sm-12, .col-sm-11, .col-sm-10, .col-sm-9, .col-sm-8, .col-sm-7, .col-sm-6, .col-sm-5, .col-sm-4, .col-sm-3, .col-sm-2, .col-sm-1, .col, +.col-auto, .col-12, .col-11, .col-10, .col-9, .col-8, .col-7, .col-6, .col-5, .col-4, .col-3, .col-2, .col-1 { + position: relative; + width: 100%; + padding-right: 15px; + padding-left: 15px; } + +.col { + flex-basis: 0; + flex-grow: 1; + min-width: 0; + max-width: 100%; } + +.row-cols-1 > * { + flex: 0 0 100%; + max-width: 100%; } + +.row-cols-2 > * { + flex: 0 0 50%; + max-width: 50%; } + +.row-cols-3 > * { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + +.row-cols-4 > * { + flex: 0 0 25%; + max-width: 25%; } + +.row-cols-5 > * { + flex: 0 0 20%; + max-width: 20%; } + +.row-cols-6 > * { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + +.col-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; } + +.col-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; } + +.col-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + +.col-3 { + flex: 0 0 25%; + max-width: 25%; } + +.col-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + +.col-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; } + +.col-6 { + flex: 0 0 50%; + max-width: 50%; } + +.col-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; } + +.col-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; } + +.col-9 { + flex: 0 0 75%; + max-width: 75%; } + +.col-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; } + +.col-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; } + +.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.33333333%; } + +.offset-2 { + margin-left: 16.66666667%; } + +.offset-3 { + margin-left: 25%; } + +.offset-4 { + margin-left: 33.33333333%; } + +.offset-5 { + margin-left: 41.66666667%; } + +.offset-6 { + margin-left: 50%; } + +.offset-7 { + margin-left: 58.33333333%; } + +.offset-8 { + margin-left: 66.66666667%; } + +.offset-9 { + margin-left: 75%; } + +.offset-10 { + margin-left: 83.33333333%; } + +.offset-11 { + margin-left: 91.66666667%; } + +@media (min-width: 576px) { + .col-sm { + flex-basis: 0; + flex-grow: 1; + min-width: 0; + max-width: 100%; } + .row-cols-sm-1 > * { + flex: 0 0 100%; + max-width: 100%; } + .row-cols-sm-2 > * { + flex: 0 0 50%; + max-width: 50%; } + .row-cols-sm-3 > * { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .row-cols-sm-4 > * { + flex: 0 0 25%; + max-width: 25%; } + .row-cols-sm-5 > * { + flex: 0 0 20%; + max-width: 20%; } + .row-cols-sm-6 > * { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; } + .col-sm-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; } + .col-sm-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-sm-3 { + flex: 0 0 25%; + max-width: 25%; } + .col-sm-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .col-sm-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; } + .col-sm-6 { + flex: 0 0 50%; + max-width: 50%; } + .col-sm-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; } + .col-sm-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; } + .col-sm-9 { + flex: 0 0 75%; + max-width: 75%; } + .col-sm-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; } + .col-sm-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; } + .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.33333333%; } + .offset-sm-2 { + margin-left: 16.66666667%; } + .offset-sm-3 { + margin-left: 25%; } + .offset-sm-4 { + margin-left: 33.33333333%; } + .offset-sm-5 { + margin-left: 41.66666667%; } + .offset-sm-6 { + margin-left: 50%; } + .offset-sm-7 { + margin-left: 58.33333333%; } + .offset-sm-8 { + margin-left: 66.66666667%; } + .offset-sm-9 { + margin-left: 75%; } + .offset-sm-10 { + margin-left: 83.33333333%; } + .offset-sm-11 { + margin-left: 91.66666667%; } } + +@media (min-width: 768px) { + .col-md { + flex-basis: 0; + flex-grow: 1; + min-width: 0; + max-width: 100%; } + .row-cols-md-1 > * { + flex: 0 0 100%; + max-width: 100%; } + .row-cols-md-2 > * { + flex: 0 0 50%; + max-width: 50%; } + .row-cols-md-3 > * { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .row-cols-md-4 > * { + flex: 0 0 25%; + max-width: 25%; } + .row-cols-md-5 > * { + flex: 0 0 20%; + max-width: 20%; } + .row-cols-md-6 > * { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-md-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; } + .col-md-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; } + .col-md-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-md-3 { + flex: 0 0 25%; + max-width: 25%; } + .col-md-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .col-md-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; } + .col-md-6 { + flex: 0 0 50%; + max-width: 50%; } + .col-md-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; } + .col-md-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; } + .col-md-9 { + flex: 0 0 75%; + max-width: 75%; } + .col-md-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; } + .col-md-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; } + .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.33333333%; } + .offset-md-2 { + margin-left: 16.66666667%; } + .offset-md-3 { + margin-left: 25%; } + .offset-md-4 { + margin-left: 33.33333333%; } + .offset-md-5 { + margin-left: 41.66666667%; } + .offset-md-6 { + margin-left: 50%; } + .offset-md-7 { + margin-left: 58.33333333%; } + .offset-md-8 { + margin-left: 66.66666667%; } + .offset-md-9 { + margin-left: 75%; } + .offset-md-10 { + margin-left: 83.33333333%; } + .offset-md-11 { + margin-left: 91.66666667%; } } + +@media (min-width: 992px) { + .col-lg { + flex-basis: 0; + flex-grow: 1; + min-width: 0; + max-width: 100%; } + .row-cols-lg-1 > * { + flex: 0 0 100%; + max-width: 100%; } + .row-cols-lg-2 > * { + flex: 0 0 50%; + max-width: 50%; } + .row-cols-lg-3 > * { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .row-cols-lg-4 > * { + flex: 0 0 25%; + max-width: 25%; } + .row-cols-lg-5 > * { + flex: 0 0 20%; + max-width: 20%; } + .row-cols-lg-6 > * { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; } + .col-lg-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; } + .col-lg-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-lg-3 { + flex: 0 0 25%; + max-width: 25%; } + .col-lg-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .col-lg-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; } + .col-lg-6 { + flex: 0 0 50%; + max-width: 50%; } + .col-lg-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; } + .col-lg-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; } + .col-lg-9 { + flex: 0 0 75%; + max-width: 75%; } + .col-lg-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; } + .col-lg-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; } + .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.33333333%; } + .offset-lg-2 { + margin-left: 16.66666667%; } + .offset-lg-3 { + margin-left: 25%; } + .offset-lg-4 { + margin-left: 33.33333333%; } + .offset-lg-5 { + margin-left: 41.66666667%; } + .offset-lg-6 { + margin-left: 50%; } + .offset-lg-7 { + margin-left: 58.33333333%; } + .offset-lg-8 { + margin-left: 66.66666667%; } + .offset-lg-9 { + margin-left: 75%; } + .offset-lg-10 { + margin-left: 83.33333333%; } + .offset-lg-11 { + margin-left: 91.66666667%; } } + +@media (min-width: 1200px) { + .col-xl { + flex-basis: 0; + flex-grow: 1; + min-width: 0; + max-width: 100%; } + .row-cols-xl-1 > * { + flex: 0 0 100%; + max-width: 100%; } + .row-cols-xl-2 > * { + flex: 0 0 50%; + max-width: 50%; } + .row-cols-xl-3 > * { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .row-cols-xl-4 > * { + flex: 0 0 25%; + max-width: 25%; } + .row-cols-xl-5 > * { + flex: 0 0 20%; + max-width: 20%; } + .row-cols-xl-6 > * { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; } + .col-xl-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; } + .col-xl-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; } + .col-xl-3 { + flex: 0 0 25%; + max-width: 25%; } + .col-xl-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; } + .col-xl-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; } + .col-xl-6 { + flex: 0 0 50%; + max-width: 50%; } + .col-xl-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; } + .col-xl-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; } + .col-xl-9 { + flex: 0 0 75%; + max-width: 75%; } + .col-xl-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; } + .col-xl-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; } + .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.33333333%; } + .offset-xl-2 { + margin-left: 16.66666667%; } + .offset-xl-3 { + margin-left: 25%; } + .offset-xl-4 { + margin-left: 33.33333333%; } + .offset-xl-5 { + margin-left: 41.66666667%; } + .offset-xl-6 { + margin-left: 50%; } + .offset-xl-7 { + margin-left: 58.33333333%; } + .offset-xl-8 { + margin-left: 66.66666667%; } + .offset-xl-9 { + margin-left: 75%; } + .offset-xl-10 { + margin-left: 83.33333333%; } + .offset-xl-11 { + margin-left: 91.66666667%; } } + +.table, .td-content > table, .td-box .row.section > table { + width: 100%; + margin-bottom: 1rem; + color: #222; } + .table th, .td-content > table th, .td-box .row.section > table th, + .table td, + .td-content > table td, + .td-box .row.section > table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #dee2e6; } + .table thead th, .td-content > table thead th, .td-box .row.section > table thead th { + vertical-align: bottom; + border-bottom: 2px solid #dee2e6; } + .table tbody + tbody, .td-content > table tbody + tbody, .td-box .row.section > table tbody + tbody { + border-top: 2px solid #dee2e6; } + +.table-sm th, +.table-sm td { + padding: 0.3rem; } + +.table-bordered { + border: 1px solid #dee2e6; } + .table-bordered th, + .table-bordered td { + border: 1px solid #dee2e6; } + .table-bordered thead th, + .table-bordered thead td { + border-bottom-width: 2px; } + +.table-borderless th, +.table-borderless td, +.table-borderless thead th, +.table-borderless tbody + tbody { + border: 0; } + +.table-striped tbody tr:nth-of-type(odd), .td-content > table tbody tr:nth-of-type(odd), .td-box .row.section > table tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); } + +.table-hover tbody tr:hover { + color: #222; + background-color: rgba(0, 0, 0, 0.075); } + +.table-primary, +.table-primary > th, +.table-primary > td { + background-color: #bbc1e0; } + +.table-primary th, +.table-primary td, +.table-primary thead th, +.table-primary tbody + tbody { + border-color: #818cc6; } + +.table-hover .table-primary:hover { + background-color: #a9b1d8; } + .table-hover .table-primary:hover > td, + .table-hover .table-primary:hover > th { + background-color: #a9b1d8; } + +.table-secondary, +.table-secondary > th, +.table-secondary > td { + background-color: #c0c6e3; } + +.table-secondary th, +.table-secondary td, +.table-secondary thead th, +.table-secondary tbody + tbody { + border-color: #8b94ca; } + +.table-hover .table-secondary:hover { + background-color: #aeb6db; } + .table-hover .table-secondary:hover > td, + .table-hover .table-secondary:hover > th { + background-color: #aeb6db; } + +.table-success, +.table-success > th, +.table-success > td { + background-color: #c7d8ff; } + +.table-success th, +.table-success td, +.table-success thead th, +.table-success tbody + tbody { + border-color: #97b6ff; } + +.table-hover .table-success:hover { + background-color: #aec6ff; } + .table-hover .table-success:hover > td, + .table-hover .table-success:hover > th { + background-color: #aec6ff; } + +.table-info, +.table-info > th, +.table-info > td { + background-color: #edf6f6; } + +.table-info th, +.table-info td, +.table-info thead th, +.table-info tbody + tbody { + border-color: #deefee; } + +.table-hover .table-info:hover { + background-color: #dceeee; } + .table-hover .table-info:hover > td, + .table-hover .table-info:hover > th { + background-color: #dceeee; } + +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #fad5d1; } + +.table-warning th, +.table-warning td, +.table-warning thead th, +.table-warning tbody + tbody { + border-color: #f6b2a9; } + +.table-hover .table-warning:hover { + background-color: #f8c0ba; } + .table-hover .table-warning:hover > td, + .table-hover .table-warning:hover > th { + background-color: #f8c0ba; } + +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #fad5d1; } + +.table-danger th, +.table-danger td, +.table-danger thead th, +.table-danger tbody + tbody { + border-color: #f6b2a9; } + +.table-hover .table-danger:hover { + background-color: #f8c0ba; } + .table-hover .table-danger:hover > td, + .table-hover .table-danger:hover > th { + background-color: #f8c0ba; } + +.table-light, +.table-light > th, +.table-light > td { + background-color: #f3fcfa; } + +.table-light th, +.table-light td, +.table-light thead th, +.table-light tbody + tbody { + border-color: #e8f9f6; } + +.table-hover .table-light:hover { + background-color: #dff7f2; } + .table-hover .table-light:hover > td, + .table-hover .table-light:hover > th { + background-color: #dff7f2; } + +.table-dark, +.table-dark > th, +.table-dark > td { + background-color: #cac9cd; } + +.table-dark th, +.table-dark td, +.table-dark thead th, +.table-dark tbody + tbody { + border-color: #9c9ba2; } + +.table-hover .table-dark:hover { + background-color: #bdbcc1; } + .table-hover .table-dark:hover > td, + .table-hover .table-dark:hover > th { + background-color: #bdbcc1; } + +.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, .td-content > table .thead-dark th, .td-box .row.section > table .thead-dark th { + color: #fff; + background-color: #333; + border-color: #464646; } + +.table .thead-light th, .td-content > table .thead-light th, .td-box .row.section > table .thead-light th { + color: #495057; + background-color: #eee; + border-color: #dee2e6; } + +.table-dark { + color: #fff; + background-color: #333; } + .table-dark th, + .table-dark td, + .table-dark thead th { + border-color: #464646; } + .table-dark.table-bordered { + border: 0; } + .table-dark.table-striped tbody tr:nth-of-type(odd), .td-content > table.table-dark tbody tr:nth-of-type(odd), .td-box .row.section > table.table-dark tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05); } + .table-dark.table-hover tbody tr:hover { + color: #fff; + 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; } + .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; } + .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; } + .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; } + .table-responsive-xl > .table-bordered { + border: 0; } } + +.table-responsive, .td-content > table, .td-box .row.section > table { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; } + .table-responsive > .table-bordered, .td-content > table > .table-bordered, .td-box .row.section > table > .table-bordered { + border: 0; } + +.form-control { + display: block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ccc; + border-radius: 0.25rem; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; } } + .form-control::-ms-expand { + background-color: transparent; + border: 0; } + .form-control:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; } + .form-control:focus { + color: #495057; + background-color: #fff; + border-color: #324eed; + outline: 0; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(13, 33, 146, 0.25); } + .form-control::placeholder { + color: #888; + opacity: 1; } + .form-control:disabled, .form-control[readonly] { + background-color: #eee; + opacity: 1; } + +input[type="date"].form-control, +input[type="time"].form-control, +input[type="datetime-local"].form-control, +input[type="month"].form-control { + appearance: none; } + +select.form-control:focus::-ms-value { + color: #495057; + background-color: #fff; } + +.form-control-file, +.form-control-range { + display: block; + width: 100%; } + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; } + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 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: 0.375rem 0; + margin-bottom: 0; + font-size: 1rem; + line-height: 1.5; + color: #222; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; } + .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; } + +.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; } + +.form-control-lg { + height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; } + +select.form-control[size], select.form-control[multiple] { + height: auto; } + +textarea.form-control { + height: auto; } + +.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, .form-check-input:disabled ~ .form-check-label { + color: #888; } + +.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: #3772FF; } + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(55, 114, 255, 0.9); + border-radius: 0.25rem; } + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; } + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: #3772FF; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%233772FF' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: #3772FF; + box-shadow: 0 0 0 0.2rem rgba(55, 114, 255, 0.25); } + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } + +.was-validated .custom-select:valid, .custom-select.is-valid { + border-color: #3772FF; + padding-right: calc(0.75em + 2.3125rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%233772FF' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus { + border-color: #3772FF; + box-shadow: 0 0 0 0.2rem rgba(55, 114, 255, 0.25); } + +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #3772FF; } + +.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: #3772FF; } + .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { + border-color: #3772FF; } + +.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { + border-color: #6a96ff; + background: #6a96ff linear-gradient(180deg, #80a6ff, #6a96ff) repeat-x; } + +.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 0.2rem rgba(55, 114, 255, 0.25); } + +.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #3772FF; } + +.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label { + border-color: #3772FF; } + +.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { + border-color: #3772FF; + box-shadow: 0 0 0 0.2rem rgba(55, 114, 255, 0.25); } + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #ED6A5A; } + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(237, 106, 90, 0.9); + border-radius: 0.25rem; } + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; } + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: #ED6A5A; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23ED6A5A' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ED6A5A' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: #ED6A5A; + box-shadow: 0 0 0 0.2rem rgba(237, 106, 90, 0.25); } + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } + +.was-validated .custom-select:invalid, .custom-select.is-invalid { + border-color: #ED6A5A; + padding-right: calc(0.75em + 2.3125rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23ED6A5A' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ED6A5A' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus { + border-color: #ED6A5A; + box-shadow: 0 0 0 0.2rem rgba(237, 106, 90, 0.25); } + +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #ED6A5A; } + +.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: #ED6A5A; } + .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { + border-color: #ED6A5A; } + +.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { + border-color: #f29488; + background: #f29488 linear-gradient(180deg, #f4a49a, #f29488) repeat-x; } + +.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 0.2rem rgba(237, 106, 90, 0.25); } + +.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #ED6A5A; } + +.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label { + border-color: #ED6A5A; } + +.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { + border-color: #ED6A5A; + box-shadow: 0 0 0 0.2rem rgba(237, 106, 90, 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, + .form-inline .custom-select { + 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; + flex-shrink: 0; + 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; + color: #222; + text-align: center; + vertical-align: middle; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + 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; } + @media (prefers-reduced-motion: reduce) { + .btn { + transition: none; } } + .btn:hover { + color: #222; + text-decoration: none; } + .btn:focus, .btn.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(13, 33, 146, 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 { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } + .btn:not(:disabled):not(.disabled):active:focus, .btn:not(:disabled):not(.disabled).active:focus { + box-shadow: 0 0 0 0.2rem rgba(13, 33, 146, 0.25), inset 0 3px 5px rgba(0, 0, 0, 0.125); } + +a.btn.disabled, +fieldset:disabled a.btn { + pointer-events: none; } + +.btn-primary { + color: #fff; + background: #0D2192 linear-gradient(180deg, #3142a2, #0D2192) repeat-x; + border-color: #0D2192; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-primary:hover { + color: #fff; + background: #0a196f linear-gradient(180deg, #2f3c84, #0a196f) repeat-x; + border-color: #091663; } + .btn-primary:focus, .btn-primary.focus { + color: #fff; + background: #0a196f linear-gradient(180deg, #2f3c84, #0a196f) repeat-x; + border-color: #091663; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(49, 66, 162, 0.5); } + .btn-primary.disabled, .btn-primary:disabled { + color: #fff; + background-color: #0D2192; + border-color: #0D2192; + background-image: none; } + .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #091663; + background-image: none; + border-color: #081457; } + .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(49, 66, 162, 0.5); } + +.btn-secondary { + color: #fff; + background: #1F329A linear-gradient(180deg, #4151a9, #1F329A) repeat-x; + border-color: #1F329A; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-secondary:hover { + color: #fff; + background: #19287a linear-gradient(180deg, #3b488e, #19287a) repeat-x; + border-color: #162470; } + .btn-secondary:focus, .btn-secondary.focus { + color: #fff; + background: #19287a linear-gradient(180deg, #3b488e, #19287a) repeat-x; + border-color: #162470; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(65, 81, 169, 0.5); } + .btn-secondary.disabled, .btn-secondary:disabled { + color: #fff; + background-color: #1F329A; + border-color: #1F329A; + background-image: none; } + .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #162470; + background-image: none; + border-color: #142165; } + .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(65, 81, 169, 0.5); } + +.btn-success { + color: #fff; + background: #3772FF linear-gradient(180deg, #5587ff, #3772FF) repeat-x; + border-color: #3772FF; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-success:hover { + color: #fff; + background: #1157ff linear-gradient(180deg, #3470ff, #1157ff) repeat-x; + border-color: #044eff; } + .btn-success:focus, .btn-success.focus { + color: #fff; + background: #1157ff linear-gradient(180deg, #3470ff, #1157ff) repeat-x; + border-color: #044eff; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(85, 135, 255, 0.5); } + .btn-success.disabled, .btn-success:disabled { + color: #fff; + background-color: #3772FF; + border-color: #3772FF; + background-image: none; } + .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #044eff; + background-image: none; + border-color: #0049f6; } + .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(85, 135, 255, 0.5); } + +.btn-info { + color: #222; + background: #C0E0DE linear-gradient(180deg, #c9e5e3, #C0E0DE) repeat-x; + border-color: #C0E0DE; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-info:hover { + color: #fff; + background: #a6d3d1 linear-gradient(180deg, #b4dad8, #a6d3d1) repeat-x; + border-color: #9ecfcc; } + .btn-info:focus, .btn-info.focus { + color: #fff; + background: #a6d3d1 linear-gradient(180deg, #b4dad8, #a6d3d1) repeat-x; + border-color: #9ecfcc; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(168, 196, 194, 0.5); } + .btn-info.disabled, .btn-info:disabled { + color: #222; + background-color: #C0E0DE; + border-color: #C0E0DE; + background-image: none; } + .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, .show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #9ecfcc; + background-image: none; + border-color: #95cbc8; } + .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, .show > .btn-info.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(168, 196, 194, 0.5); } + +.btn-warning { + color: #fff; + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x; + border-color: #ED6A5A; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-warning:hover { + color: #fff; + background: #e94b38 linear-gradient(180deg, #ed6655, #e94b38) repeat-x; + border-color: #e8402c; } + .btn-warning:focus, .btn-warning.focus { + color: #fff; + background: #e94b38 linear-gradient(180deg, #ed6655, #e94b38) repeat-x; + border-color: #e8402c; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(240, 128, 115, 0.5); } + .btn-warning.disabled, .btn-warning:disabled { + color: #fff; + background-color: #ED6A5A; + border-color: #ED6A5A; + background-image: none; } + .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, .show > .btn-warning.dropdown-toggle { + color: #fff; + background-color: #e8402c; + background-image: none; + border-color: #e73621; } + .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-warning.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(240, 128, 115, 0.5); } + +.btn-danger { + color: #fff; + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x; + border-color: #ED6A5A; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-danger:hover { + color: #fff; + background: #e94b38 linear-gradient(180deg, #ed6655, #e94b38) repeat-x; + border-color: #e8402c; } + .btn-danger:focus, .btn-danger.focus { + color: #fff; + background: #e94b38 linear-gradient(180deg, #ed6655, #e94b38) repeat-x; + border-color: #e8402c; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(240, 128, 115, 0.5); } + .btn-danger.disabled, .btn-danger:disabled { + color: #fff; + background-color: #ED6A5A; + border-color: #ED6A5A; + background-image: none; } + .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, .show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #e8402c; + background-image: none; + border-color: #e73621; } + .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(240, 128, 115, 0.5); } + +.btn-light { + color: #222; + background: #D3F3EE linear-gradient(180deg, #daf5f1, #D3F3EE) repeat-x; + border-color: #D3F3EE; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-light:hover { + color: #222; + background: #b5ebe2 linear-gradient(180deg, #c0eee7, #b5ebe2) repeat-x; + border-color: #abe8df; } + .btn-light:focus, .btn-light.focus { + color: #222; + background: #b5ebe2 linear-gradient(180deg, #c0eee7, #b5ebe2) repeat-x; + border-color: #abe8df; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(184, 212, 207, 0.5); } + .btn-light.disabled, .btn-light:disabled { + color: #222; + background-color: #D3F3EE; + border-color: #D3F3EE; + background-image: none; } + .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, .show > .btn-light.dropdown-toggle { + color: #222; + background-color: #abe8df; + background-image: none; + border-color: #a1e5db; } + .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, .show > .btn-light.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(184, 212, 207, 0.5); } + +.btn-dark { + color: #fff; + background: #403F4C linear-gradient(180deg, #5d5c67, #403F4C) repeat-x; + border-color: #403F4C; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } + .btn-dark:hover { + color: #fff; + background: #2e2e37 linear-gradient(180deg, #4e4d55, #2e2e37) repeat-x; + border-color: #292830; } + .btn-dark:focus, .btn-dark.focus { + color: #fff; + background: #2e2e37 linear-gradient(180deg, #4e4d55, #2e2e37) repeat-x; + border-color: #292830; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(93, 92, 103, 0.5); } + .btn-dark.disabled, .btn-dark:disabled { + color: #fff; + background-color: #403F4C; + border-color: #403F4C; + background-image: none; } + .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, .show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #292830; + background-image: none; + border-color: #232229; } + .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-dark.dropdown-toggle:focus { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(93, 92, 103, 0.5); } + +.btn-outline-primary { + color: #0D2192; + border-color: #0D2192; } + .btn-outline-primary:hover { + color: #fff; + background-color: #0D2192; + border-color: #0D2192; } + .btn-outline-primary:focus, .btn-outline-primary.focus { + box-shadow: 0 0 0 0.2rem rgba(13, 33, 146, 0.5); } + .btn-outline-primary.disabled, .btn-outline-primary:disabled { + color: #0D2192; + 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: #fff; + background-color: #0D2192; + border-color: #0D2192; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(13, 33, 146, 0.5); } + +.btn-outline-secondary { + color: #1F329A; + border-color: #1F329A; } + .btn-outline-secondary:hover { + color: #fff; + background-color: #1F329A; + border-color: #1F329A; } + .btn-outline-secondary:focus, .btn-outline-secondary.focus { + box-shadow: 0 0 0 0.2rem rgba(31, 50, 154, 0.5); } + .btn-outline-secondary.disabled, .btn-outline-secondary:disabled { + color: #1F329A; + 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: #fff; + background-color: #1F329A; + border-color: #1F329A; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(31, 50, 154, 0.5); } + +.btn-outline-success { + color: #3772FF; + border-color: #3772FF; } + .btn-outline-success:hover { + color: #fff; + background-color: #3772FF; + border-color: #3772FF; } + .btn-outline-success:focus, .btn-outline-success.focus { + box-shadow: 0 0 0 0.2rem rgba(55, 114, 255, 0.5); } + .btn-outline-success.disabled, .btn-outline-success:disabled { + color: #3772FF; + 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: #fff; + background-color: #3772FF; + border-color: #3772FF; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(55, 114, 255, 0.5); } + +.btn-outline-info { + color: #C0E0DE; + border-color: #C0E0DE; } + .btn-outline-info:hover { + color: #222; + background-color: #C0E0DE; + border-color: #C0E0DE; } + .btn-outline-info:focus, .btn-outline-info.focus { + box-shadow: 0 0 0 0.2rem rgba(192, 224, 222, 0.5); } + .btn-outline-info.disabled, .btn-outline-info:disabled { + color: #C0E0DE; + 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: #222; + background-color: #C0E0DE; + border-color: #C0E0DE; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(192, 224, 222, 0.5); } + +.btn-outline-warning { + color: #ED6A5A; + border-color: #ED6A5A; } + .btn-outline-warning:hover { + color: #fff; + background-color: #ED6A5A; + border-color: #ED6A5A; } + .btn-outline-warning:focus, .btn-outline-warning.focus { + box-shadow: 0 0 0 0.2rem rgba(237, 106, 90, 0.5); } + .btn-outline-warning.disabled, .btn-outline-warning:disabled { + color: #ED6A5A; + 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: #fff; + background-color: #ED6A5A; + border-color: #ED6A5A; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(237, 106, 90, 0.5); } + +.btn-outline-danger { + color: #ED6A5A; + border-color: #ED6A5A; } + .btn-outline-danger:hover { + color: #fff; + background-color: #ED6A5A; + border-color: #ED6A5A; } + .btn-outline-danger:focus, .btn-outline-danger.focus { + box-shadow: 0 0 0 0.2rem rgba(237, 106, 90, 0.5); } + .btn-outline-danger.disabled, .btn-outline-danger:disabled { + color: #ED6A5A; + 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: #fff; + background-color: #ED6A5A; + border-color: #ED6A5A; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(237, 106, 90, 0.5); } + +.btn-outline-light { + color: #D3F3EE; + border-color: #D3F3EE; } + .btn-outline-light:hover { + color: #222; + background-color: #D3F3EE; + border-color: #D3F3EE; } + .btn-outline-light:focus, .btn-outline-light.focus { + box-shadow: 0 0 0 0.2rem rgba(211, 243, 238, 0.5); } + .btn-outline-light.disabled, .btn-outline-light:disabled { + color: #D3F3EE; + 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: #222; + background-color: #D3F3EE; + border-color: #D3F3EE; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(211, 243, 238, 0.5); } + +.btn-outline-dark { + color: #403F4C; + border-color: #403F4C; } + .btn-outline-dark:hover { + color: #fff; + background-color: #403F4C; + border-color: #403F4C; } + .btn-outline-dark:focus, .btn-outline-dark.focus { + box-shadow: 0 0 0 0.2rem rgba(64, 63, 76, 0.5); } + .btn-outline-dark.disabled, .btn-outline-dark:disabled { + color: #403F4C; + 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: #fff; + background-color: #403F4C; + border-color: #403F4C; } + .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: inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 0 0.2rem rgba(64, 63, 76, 0.5); } + +.btn-link { + font-weight: 400; + color: #3176d9; + text-decoration: none; } + .btn-link:hover { + color: #1e53a0; + text-decoration: none; } + .btn-link:focus, .btn-link.focus { + text-decoration: none; } + .btn-link:disabled, .btn-link.disabled { + color: #888; + pointer-events: none; } + +.btn-lg, .btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; } + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; } + +.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 { + transition: opacity 0.15s linear; } + @media (prefers-reduced-motion: reduce) { + .fade { + transition: none; } } + .fade:not(.show) { + opacity: 0; } + +.collapse:not(.show) { + display: none; } + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height 0.35s ease; } + @media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; } } +.dropup, +.dropright, +.dropdown, +.dropleft { + position: relative; } + +.dropdown-toggle { + white-space: nowrap; } + .dropdown-toggle::after { + display: inline-block; + 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: #222; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175); } + +.dropdown-menu-left { + right: auto; + left: 0; } + +.dropdown-menu-right { + right: 0; + left: auto; } + +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0; } + .dropdown-menu-sm-right { + right: 0; + left: auto; } } + +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0; } + .dropdown-menu-md-right { + right: 0; + left: auto; } } + +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0; } + .dropdown-menu-lg-right { + right: 0; + left: auto; } } + +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0; } + .dropdown-menu-xl-right { + right: 0; + left: auto; } } + +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; } + +.dropup .dropdown-toggle::after { + display: inline-block; + 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 { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; } + +.dropright .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + 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 { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; } + +.dropleft .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; } + +.dropleft .dropdown-toggle::after { + display: none; } + +.dropleft .dropdown-toggle::before { + display: inline-block; + 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-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] { + right: auto; + bottom: auto; } + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #eee; } + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #222; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; } + .dropdown-item:hover, .dropdown-item:focus { + color: #151515; + text-decoration: none; + background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x; } + .dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background: #0D2192 linear-gradient(180deg, #3142a2, #0D2192) repeat-x; } + .dropdown-item.disabled, .dropdown-item:disabled { + color: #888; + pointer-events: none; + background-color: transparent; + background-image: none; } + +.dropdown-menu.show { + display: block; } + +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #888; + white-space: nowrap; } + +.dropdown-item-text { + display: block; + padding: 0.25rem 1.5rem; + color: #222; } + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; } + .btn-group > .btn, + .btn-group-vertical > .btn { + position: relative; + flex: 1 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-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .btn-toolbar .input-group { + width: auto; } + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; } + +.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.5625rem; + padding-left: 0.5625rem; } + .dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropright .dropdown-toggle-split::after { + margin-left: 0; } + .dropleft .dropdown-toggle-split::before { + margin-right: 0; } + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; } + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; } + +.btn-group.show .dropdown-toggle { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } + .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:not(:first-child), + .btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; } + .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 > .form-control-plaintext, + .input-group > .custom-select, + .input-group > .custom-file { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; + margin-bottom: 0; } + .input-group > .form-control + .form-control, + .input-group > .form-control + .custom-select, + .input-group > .form-control + .custom-file, + .input-group > .form-control-plaintext + .form-control, + .input-group > .form-control-plaintext + .custom-select, + .input-group > .form-control-plaintext + .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:focus, + .input-group > .custom-select:focus, + .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label { + z-index: 3; } + .input-group > .custom-file .custom-file-input:focus { + z-index: 4; } + .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::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + .input-group > .custom-file:not(:first-child) .custom-file-label { + 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:focus, + .input-group-append .btn:focus { + z-index: 3; } + .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.375rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 0.25rem; } + .input-group-text input[type="radio"], + .input-group-text input[type="checkbox"] { + margin-top: 0; } + +.input-group-lg > .form-control:not(textarea), +.input-group-lg > .custom-select { + height: calc(1.5em + 1rem + 2px); } + +.input-group-lg > .form-control, +.input-group-lg > .custom-select, +.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.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; } + +.input-group-sm > .form-control:not(textarea), +.input-group-sm > .custom-select { + height: calc(1.5em + 0.5rem + 2px); } + +.input-group-sm > .form-control, +.input-group-sm > .custom-select, +.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.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; } + +.input-group-lg > .custom-select, +.input-group-sm > .custom-select { + padding-right: 1.75rem; } + +.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; + left: 0; + z-index: -1; + width: 1rem; + height: 1.25rem; + opacity: 0; } + .custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + border-color: #0D2192; + background: #0D2192 linear-gradient(180deg, #3142a2, #0D2192) repeat-x; + box-shadow: none; } + .custom-control-input:focus ~ .custom-control-label::before { + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(13, 33, 146, 0.25); } + .custom-control-input:focus:not(:checked) ~ .custom-control-label::before { + border-color: #324eed; } + .custom-control-input:not(:disabled):active ~ .custom-control-label::before { + color: #fff; + background-color: #6176f1; + border-color: #6176f1; + box-shadow: none; } + .custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label { + color: #888; } + .custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before { + background-color: #eee; } + +.custom-control-label { + position: relative; + margin-bottom: 0; + vertical-align: top; } + .custom-control-label::before { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ""; + background-color: #fff; + border: #adb5bd solid 1px; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } + .custom-control-label::after { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + content: ""; + background: no-repeat 50% / 50% 50%; } + +.custom-checkbox .custom-control-label::before { + border-radius: 0.25rem; } + +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e"); } + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + border-color: #0D2192; + background: #0D2192 linear-gradient(180deg, #3142a2, #0D2192) repeat-x; + box-shadow: none; } + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e"); } + +.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(13, 33, 146, 0.5); } + +.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { + background-color: rgba(13, 33, 146, 0.5); } + +.custom-radio .custom-control-label::before { + border-radius: 50%; } + +.custom-radio .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); } + +.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(13, 33, 146, 0.5); } + +.custom-switch { + padding-left: 2.25rem; } + .custom-switch .custom-control-label::before { + left: -2.25rem; + width: 1.75rem; + pointer-events: all; + border-radius: 0.5rem; } + .custom-switch .custom-control-label::after { + top: calc(0.25rem + 2px); + left: calc(-2.25rem + 2px); + width: calc(1rem - 4px); + height: calc(1rem - 4px); + background-color: #adb5bd; + border-radius: 0.5rem; + transition: transform 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; } + @media (prefers-reduced-motion: reduce) { + .custom-switch .custom-control-label::after { + transition: none; } } + .custom-switch .custom-control-input:checked ~ .custom-control-label::after { + background-color: #fff; + transform: translateX(0.75rem); } + .custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(13, 33, 146, 0.5); } + +.custom-select { + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px; + border: 1px solid #ccc; + border-radius: 0.25rem; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075); + appearance: none; } + .custom-select:focus { + border-color: #324eed; + outline: 0; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(13, 33, 146, 0.25); } + .custom-select:focus::-ms-value { + color: #495057; + background-color: #fff; } + .custom-select[multiple], .custom-select[size]:not([size="1"]) { + height: auto; + padding-right: 0.75rem; + background-image: none; } + .custom-select:disabled { + color: #888; + background-color: #eee; } + .custom-select::-ms-expand { + display: none; } + .custom-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; } + +.custom-select-sm { + height: calc(1.5em + 0.5rem + 2px); + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; } + +.custom-select-lg { + height: calc(1.5em + 1rem + 2px); + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; } + +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin-bottom: 0; } + +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin: 0; + opacity: 0; } + .custom-file-input:focus ~ .custom-file-label { + border-color: #324eed; + box-shadow: 0 0 0 0.2rem rgba(13, 33, 146, 0.25); } + .custom-file-input[disabled] ~ .custom-file-label, .custom-file-input:disabled ~ .custom-file-label { + background-color: #eee; } + .custom-file-input:lang(en) ~ .custom-file-label::after { + content: "Browse"; } + .custom-file-input ~ .custom-file-label[data-browse]::after { + content: attr(data-browse); } + +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + border: 1px solid #ccc; + border-radius: 0.25rem; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } + .custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: calc(1.5em + 0.75rem); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + content: "Browse"; + background: #eee linear-gradient(180deg, #f1f1f1, #eee) repeat-x; + border-left: inherit; + border-radius: 0 0.25rem 0.25rem 0; } + +.custom-range { + width: 100%; + height: 1.4rem; + padding: 0; + background-color: transparent; + appearance: none; } + .custom-range:focus { + outline: none; } + .custom-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(13, 33, 146, 0.25); } + .custom-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(13, 33, 146, 0.25); } + .custom-range:focus::-ms-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(13, 33, 146, 0.25); } + .custom-range::-moz-focus-outer { + border: 0; } + .custom-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background: #0D2192 linear-gradient(180deg, #3142a2, #0D2192) repeat-x; + border: 0; + border-radius: 1rem; + box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; } + @media (prefers-reduced-motion: reduce) { + .custom-range::-webkit-slider-thumb { + transition: none; } } + .custom-range::-webkit-slider-thumb:active { + background: #6176f1 linear-gradient(180deg, #788bf3, #6176f1) repeat-x; } + .custom-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; + box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1); } + .custom-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background: #0D2192 linear-gradient(180deg, #3142a2, #0D2192) repeat-x; + border: 0; + border-radius: 1rem; + box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; } + @media (prefers-reduced-motion: reduce) { + .custom-range::-moz-range-thumb { + transition: none; } } + .custom-range::-moz-range-thumb:active { + background: #6176f1 linear-gradient(180deg, #788bf3, #6176f1) repeat-x; } + .custom-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; + box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1); } + .custom-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: 0.2rem; + margin-left: 0.2rem; + background: #0D2192 linear-gradient(180deg, #3142a2, #0D2192) repeat-x; + border: 0; + border-radius: 1rem; + box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; } + @media (prefers-reduced-motion: reduce) { + .custom-range::-ms-thumb { + transition: none; } } + .custom-range::-ms-thumb:active { + background: #6176f1 linear-gradient(180deg, #788bf3, #6176f1) repeat-x; } + .custom-range::-ms-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: 0.5rem; + box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1); } + .custom-range::-ms-fill-lower { + background-color: #dee2e6; + border-radius: 1rem; } + .custom-range::-ms-fill-upper { + margin-right: 15px; + background-color: #dee2e6; + border-radius: 1rem; } + .custom-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; } + .custom-range:disabled::-webkit-slider-runnable-track { + cursor: default; } + .custom-range:disabled::-moz-range-thumb { + background-color: #adb5bd; } + .custom-range:disabled::-moz-range-track { + cursor: default; } + .custom-range:disabled::-ms-thumb { + background-color: #adb5bd; } + +.custom-control-label::before, +.custom-file-label, +.custom-select { + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .custom-control-label::before, + .custom-file-label, + .custom-select { + transition: none; } } +.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: #888; + pointer-events: none; + cursor: default; } + +.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: #eee #eee #dee2e6; } + .nav-tabs .nav-link.disabled { + color: #888; + background-color: transparent; + border-color: transparent; } + .nav-tabs .nav-link.active, + .nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; } + .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: #fff; + background-color: #0D2192; } + +.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, + .navbar .container-sm, + .navbar .container-md, + .navbar .container-lg, + .navbar .container-xl { + 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-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, + .navbar-expand-sm > .container-sm, + .navbar-expand-sm > .container-md, + .navbar-expand-sm > .container-lg, + .navbar-expand-sm > .container-xl { + 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 .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, + .navbar-expand-sm > .container-sm, + .navbar-expand-sm > .container-md, + .navbar-expand-sm > .container-lg, + .navbar-expand-sm > .container-xl { + flex-wrap: nowrap; } + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand-sm .navbar-toggler { + display: none; } } + +@media (max-width: 767.98px) { + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, + .navbar-expand-md > .container-sm, + .navbar-expand-md > .container-md, + .navbar-expand-md > .container-lg, + .navbar-expand-md > .container-xl { + 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 .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, + .navbar-expand-md > .container-sm, + .navbar-expand-md > .container-md, + .navbar-expand-md > .container-lg, + .navbar-expand-md > .container-xl { + flex-wrap: nowrap; } + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand-md .navbar-toggler { + display: none; } } + +@media (max-width: 991.98px) { + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, + .navbar-expand-lg > .container-sm, + .navbar-expand-lg > .container-md, + .navbar-expand-lg > .container-lg, + .navbar-expand-lg > .container-xl { + 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 .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, + .navbar-expand-lg > .container-sm, + .navbar-expand-lg > .container-md, + .navbar-expand-lg > .container-lg, + .navbar-expand-lg > .container-xl { + flex-wrap: nowrap; } + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand-lg .navbar-toggler { + display: none; } } + +@media (max-width: 1199.98px) { + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, + .navbar-expand-xl > .container-sm, + .navbar-expand-xl > .container-md, + .navbar-expand-xl > .container-lg, + .navbar-expand-xl > .container-xl { + 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 .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, + .navbar-expand-xl > .container-sm, + .navbar-expand-xl > .container-md, + .navbar-expand-xl > .container-lg, + .navbar-expand-xl > .container-xl { + flex-wrap: nowrap; } + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand-xl .navbar-toggler { + display: none; } } + +.navbar-expand { + flex-flow: row nowrap; + justify-content: flex-start; } + .navbar-expand > .container, + .navbar-expand > .container-fluid, + .navbar-expand > .container-sm, + .navbar-expand > .container-md, + .navbar-expand > .container-lg, + .navbar-expand > .container-xl { + 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 .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand > .container, + .navbar-expand > .container-fluid, + .navbar-expand > .container-sm, + .navbar-expand > .container-md, + .navbar-expand > .container-lg, + .navbar-expand > .container-xl { + flex-wrap: nowrap; } + .navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand .navbar-toggler { + display: none; } + +.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,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' 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: #fff; } + .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { + color: #fff; } + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.75); } + .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.5); } + .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: #fff; } + +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.75); + border-color: rgba(255, 255, 255, 0.1); } + +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } + +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.75); } + .navbar-dark .navbar-text a { + color: #fff; } + .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus { + color: #fff; } + +.card, .td-content .highlight { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; } + .card > hr, .td-content .highlight > hr { + margin-right: 0; + margin-left: 0; } + .card > .list-group, .td-content .highlight > .list-group { + border-top: inherit; + border-bottom: inherit; } + .card > .list-group:first-child, .td-content .highlight > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); } + .card > .list-group:last-child, .td-content .highlight > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); } + +.card-body { + flex: 1 1 auto; + min-height: 1px; + 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: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); } + .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: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); } + .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, +.card-img-top, +.card-img-bottom { + flex-shrink: 0; + width: 100%; } + +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); } + +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); } + +.card-deck .card, .card-deck .td-content .highlight, .td-content .card-deck .highlight { + margin-bottom: 15px; } + +@media (min-width: 576px) { + .card-deck { + display: flex; + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px; } + .card-deck .card, .card-deck .td-content .highlight, .td-content .card-deck .highlight { + flex: 1 0 0%; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px; } } + +.card-group > .card, .td-content .card-group > .highlight { + margin-bottom: 15px; } + +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap; } + .card-group > .card, .td-content .card-group > .highlight { + flex: 1 0 0%; + margin-bottom: 0; } + .card-group > .card + .card, .td-content .card-group > .highlight + .card, .td-content .card-group > .card + .highlight, .td-content .card-group > .highlight + .highlight { + margin-left: 0; + border-left: 0; } + .card-group > .card:not(:last-child), .td-content .card-group > .highlight:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + .card-group > .card:not(:last-child) .card-img-top, .td-content .card-group > .highlight:not(:last-child) .card-img-top, + .card-group > .card:not(:last-child) .card-header, + .td-content .card-group > .highlight:not(:last-child) .card-header { + border-top-right-radius: 0; } + .card-group > .card:not(:last-child) .card-img-bottom, .td-content .card-group > .highlight:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer, + .td-content .card-group > .highlight:not(:last-child) .card-footer { + border-bottom-right-radius: 0; } + .card-group > .card:not(:first-child), .td-content .card-group > .highlight:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + .card-group > .card:not(:first-child) .card-img-top, .td-content .card-group > .highlight:not(:first-child) .card-img-top, + .card-group > .card:not(:first-child) .card-header, + .td-content .card-group > .highlight:not(:first-child) .card-header { + border-top-left-radius: 0; } + .card-group > .card:not(:first-child) .card-img-bottom, .td-content .card-group > .highlight:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer, + .td-content .card-group > .highlight:not(:first-child) .card-footer { + border-bottom-left-radius: 0; } } + +.card-columns .card, .card-columns .td-content .highlight, .td-content .card-columns .highlight { + margin-bottom: 0.75rem; } + +@media (min-width: 576px) { + .card-columns { + column-count: 3; + column-gap: 1.25rem; + orphans: 1; + widows: 1; } + .card-columns .card, .card-columns .td-content .highlight, .td-content .card-columns .highlight { + display: inline-block; + width: 100%; } } + +.accordion > .card, .td-content .accordion > .highlight { + overflow: hidden; } + .accordion > .card:not(:last-of-type), .td-content .accordion > .highlight:not(:last-of-type) { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } + .accordion > .card:not(:first-of-type), .td-content .accordion > .highlight:not(:first-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0; } + .accordion > .card > .card-header, .td-content .accordion > .highlight > .card-header { + border-radius: 0; + margin-bottom: -1px; } + +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #eee; + border-radius: 0.25rem; } + +.breadcrumb-item { + display: flex; } + .breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; } + .breadcrumb-item + .breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + color: #888; + content: "/"; } + .breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; } + .breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; } + .breadcrumb-item.active { + color: #888; } + +.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: -1px; + line-height: 1.25; + color: #888; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.1); } + .page-link:hover { + z-index: 2; + color: #1e53a0; + text-decoration: none; + background-color: #eee; + border-color: #dee2e6; } + .page-link:focus { + z-index: 3; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(13, 33, 146, 0.25); } + +.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: 3; + color: #fff; + background-color: #0D2192; + border-color: #0b1c7b; } + +.page-item.disabled .page-link { + color: #dee2e6; + pointer-events: none; + cursor: auto; + background-color: #fff; + border-color: #dee2e6; } + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + 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.5rem; + 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; } + +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + 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; } + @media (prefers-reduced-motion: reduce) { + .badge { + transition: none; } } + a.badge:hover, a.badge:focus { + text-decoration: none; } + .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: #fff; + background-color: #0D2192; } + a.badge-primary:hover, a.badge-primary:focus { + color: #fff; + background-color: #091663; } + a.badge-primary:focus, a.badge-primary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(13, 33, 146, 0.5); } + +.badge-secondary { + color: #fff; + background-color: #1F329A; } + a.badge-secondary:hover, a.badge-secondary:focus { + color: #fff; + background-color: #162470; } + a.badge-secondary:focus, a.badge-secondary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(31, 50, 154, 0.5); } + +.badge-success { + color: #fff; + background-color: #3772FF; } + a.badge-success:hover, a.badge-success:focus { + color: #fff; + background-color: #044eff; } + a.badge-success:focus, a.badge-success.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(55, 114, 255, 0.5); } + +.badge-info { + color: #222; + background-color: #C0E0DE; } + a.badge-info:hover, a.badge-info:focus { + color: #222; + background-color: #9ecfcc; } + a.badge-info:focus, a.badge-info.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(192, 224, 222, 0.5); } + +.badge-warning { + color: #fff; + background-color: #ED6A5A; } + a.badge-warning:hover, a.badge-warning:focus { + color: #fff; + background-color: #e8402c; } + a.badge-warning:focus, a.badge-warning.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(237, 106, 90, 0.5); } + +.badge-danger { + color: #fff; + background-color: #ED6A5A; } + a.badge-danger:hover, a.badge-danger:focus { + color: #fff; + background-color: #e8402c; } + a.badge-danger:focus, a.badge-danger.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(237, 106, 90, 0.5); } + +.badge-light { + color: #222; + background-color: #D3F3EE; } + a.badge-light:hover, a.badge-light:focus { + color: #222; + background-color: #abe8df; } + a.badge-light:focus, a.badge-light.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(211, 243, 238, 0.5); } + +.badge-dark { + color: #fff; + background-color: #403F4C; } + a.badge-dark:hover, a.badge-dark:focus { + color: #fff; + background-color: #292830; } + a.badge-dark:focus, a.badge-dark.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(64, 63, 76, 0.5); } + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #eee; + 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: 700; } + +.alert-dismissible { + padding-right: 4rem; } + .alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: 0.75rem 1.25rem; + color: inherit; } + +.alert-primary { + color: #07114c; + background: #cfd3e9 linear-gradient(180deg, #d6daec, #cfd3e9) repeat-x; + border-color: #bbc1e0; } + .alert-primary hr { + border-top-color: #a9b1d8; } + .alert-primary .alert-link { + color: #03071d; } + +.alert-secondary { + color: #101a50; + background: #d2d6eb linear-gradient(180deg, #d9dcee, #d2d6eb) repeat-x; + border-color: #c0c6e3; } + .alert-secondary hr { + border-top-color: #aeb6db; } + .alert-secondary .alert-link { + color: #080c26; } + +.alert-success { + color: #1d3b85; + background: #d7e3ff linear-gradient(180deg, #dde7ff, #d7e3ff) repeat-x; + border-color: #c7d8ff; } + .alert-success hr { + border-top-color: #aec6ff; } + .alert-success .alert-link { + color: #14285b; } + +.alert-info { + color: #647473; + background: #f2f9f8 linear-gradient(180deg, #f4faf9, #f2f9f8) repeat-x; + border-color: #edf6f6; } + .alert-info hr { + border-top-color: #dceeee; } + .alert-info .alert-link { + color: #4c5958; } + +.alert-warning { + color: #7b372f; + background: #fbe1de linear-gradient(180deg, #fce6e3, #fbe1de) repeat-x; + border-color: #fad5d1; } + .alert-warning hr { + border-top-color: #f8c0ba; } + .alert-warning .alert-link { + color: #562721; } + +.alert-danger { + color: #7b372f; + background: #fbe1de linear-gradient(180deg, #fce6e3, #fbe1de) repeat-x; + border-color: #fad5d1; } + .alert-danger hr { + border-top-color: #f8c0ba; } + .alert-danger .alert-link { + color: #562721; } + +.alert-light { + color: #6e7e7c; + background: #f6fdfc linear-gradient(180deg, #f7fdfc, #f6fdfc) repeat-x; + border-color: #f3fcfa; } + .alert-light hr { + border-top-color: #dff7f2; } + .alert-light .alert-link { + color: #566361; } + +.alert-dark { + color: #212128; + background: #d9d9db linear-gradient(180deg, #dfdfe0, #d9d9db) repeat-x; + border-color: #cac9cd; } + .alert-dark hr { + border-top-color: #bdbcc1; } + .alert-dark .alert-link { + color: #0a0a0c; } + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; } + to { + background-position: 0 0; } } + +.progress { + display: flex; + height: 1rem; + overflow: hidden; + line-height: 0; + font-size: 0.75rem; + background-color: #eee; + 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; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #0D2192; + transition: width 0.6s ease; } + @media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; } } +.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 (prefers-reduced-motion: reduce) { + .progress-bar-animated { + animation: none; } } +.media { + display: flex; + align-items: flex-start; } + +.media-body { + flex: 1; } + +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: 0.25rem; } + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; } + .list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa; } + .list-group-item-action:active { + color: #222; + background-color: #eee; } + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); } + .list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; } + .list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; } + .list-group-item.disabled, .list-group-item:disabled { + color: #888; + pointer-events: none; + background-color: #fff; } + .list-group-item.active { + z-index: 2; + color: #fff; + background-color: #0D2192; + border-color: #0D2192; } + .list-group-item + .list-group-item { + border-top-width: 0; } + .list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; } + +.list-group-horizontal { + flex-direction: row; } + .list-group-horizontal > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } + +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; } + .list-group-horizontal-sm > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal-sm > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } } + +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; } + .list-group-horizontal-md > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal-md > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } } + +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; } + .list-group-horizontal-lg > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal-lg > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } } + +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; } + .list-group-horizontal-xl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal-xl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } } + +.list-group-flush { + border-radius: 0; } + .list-group-flush > .list-group-item { + border-width: 0 0 1px; } + .list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; } + +.list-group-item-primary { + color: #07114c; + background-color: #bbc1e0; } + .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #07114c; + background-color: #a9b1d8; } + .list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #07114c; + border-color: #07114c; } + +.list-group-item-secondary { + color: #101a50; + background-color: #c0c6e3; } + .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #101a50; + background-color: #aeb6db; } + .list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #101a50; + border-color: #101a50; } + +.list-group-item-success { + color: #1d3b85; + background-color: #c7d8ff; } + .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #1d3b85; + background-color: #aec6ff; } + .list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #1d3b85; + border-color: #1d3b85; } + +.list-group-item-info { + color: #647473; + background-color: #edf6f6; } + .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #647473; + background-color: #dceeee; } + .list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #647473; + border-color: #647473; } + +.list-group-item-warning { + color: #7b372f; + background-color: #fad5d1; } + .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #7b372f; + background-color: #f8c0ba; } + .list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #7b372f; + border-color: #7b372f; } + +.list-group-item-danger { + color: #7b372f; + background-color: #fad5d1; } + .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #7b372f; + background-color: #f8c0ba; } + .list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #7b372f; + border-color: #7b372f; } + +.list-group-item-light { + color: #6e7e7c; + background-color: #f3fcfa; } + .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #6e7e7c; + background-color: #dff7f2; } + .list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #6e7e7c; + border-color: #6e7e7c; } + +.list-group-item-dark { + color: #212128; + background-color: #cac9cd; } + .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #212128; + background-color: #bdbcc1; } + .list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #212128; + border-color: #212128; } + +.close { + float: right; + font-size: 1.5rem; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .5; } + .close:hover { + color: #000; + text-decoration: none; } + .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus { + opacity: .75; } + +button.close { + padding: 0; + background-color: transparent; + border: 0; } + +a.close.disabled { + pointer-events: none; } + +.toast { + max-width: 350px; + overflow: hidden; + font-size: 0.875rem; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + backdrop-filter: blur(10px); + opacity: 0; + border-radius: 0.25rem; } + .toast:not(:last-child) { + margin-bottom: 0.75rem; } + .toast.showing { + opacity: 1; } + .toast.show { + display: block; + opacity: 1; } + .toast.hide { + display: none; } + +.toast-header { + display: flex; + align-items: center; + padding: 0.25rem 0.75rem; + color: #888; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); } + +.toast-body { + padding: 0.75rem; } + +.modal-open { + overflow: hidden; } + .modal-open .modal { + overflow-x: hidden; + overflow-y: auto; } + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + display: none; + width: 100%; + height: 100%; + overflow: hidden; + outline: 0; } + +.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, -50px); } + @media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; } } + .modal.show .modal-dialog { + transform: none; } + .modal.modal-static .modal-dialog { + transform: scale(1.02); } + +.modal-dialog-scrollable { + display: flex; + max-height: calc(100% - 1rem); } + .modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 1rem); + overflow: hidden; } + .modal-dialog-scrollable .modal-header, + .modal-dialog-scrollable .modal-footer { + flex-shrink: 0; } + .modal-dialog-scrollable .modal-body { + overflow-y: auto; } + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - 1rem); } + .modal-dialog-centered::before { + display: block; + height: calc(100vh - 1rem); + height: min-content; + content: ""; } + .modal-dialog-centered.modal-dialog-scrollable { + flex-direction: column; + justify-content: center; + height: 100%; } + .modal-dialog-centered.modal-dialog-scrollable .modal-content { + max-height: none; } + .modal-dialog-centered.modal-dialog-scrollable::before { + content: none; } + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + 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; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; } + .modal-backdrop.fade { + opacity: 0; } + .modal-backdrop.show { + opacity: 0.5; } + +.modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); } + .modal-header .close { + padding: 1rem 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; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px); } + .modal-footer > * { + margin: 0.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-scrollable { + max-height: calc(100% - 3.5rem); } + .modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 3.5rem); } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); } + .modal-dialog-centered::before { + height: calc(100vh - 3.5rem); + height: min-content; } + .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, + .modal-xl { + max-width: 800px; } } + +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px; } } + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + 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: #000; } + +.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: #000; } + +.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: #000; } + +.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: #000; } + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; } + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + 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: #fff; + 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); } + .bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^="top"] > .arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 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-width: 0.5rem 0.5rem 0; + border-top-color: #fff; } + +.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); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; } + .bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^="right"] > .arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 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-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; } + +.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); } + .bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^="bottom"] > .arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + 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-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; } + .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); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; } + .bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^="left"] > .arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + 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-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; } + +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + 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: #222; } + +.carousel { + position: relative; } + +.carousel.pointer-event { + touch-action: pan-y; } + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; } + .carousel-inner::after { + display: block; + clear: both; + content: ""; } + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; } } +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; } + +.carousel-item-next:not(.carousel-item-left), +.active.carousel-item-right { + transform: translateX(100%); } + +.carousel-item-prev:not(.carousel-item-right), +.active.carousel-item-left { + transform: translateX(-100%); } + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; } + +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right { + z-index: 1; + opacity: 1; } + +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; } + @media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-left, + .carousel-fade .active.carousel-item-right { + transition: none; } } +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; + transition: opacity 0.15s ease; } + @media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; } } + .carousel-control-prev:hover, .carousel-control-prev:focus, + .carousel-control-next:hover, + .carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; } + +.carousel-control-prev { + left: 0; + background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.001)); } + +.carousel-control-next { + right: 0; + background-image: linear-gradient(270deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.001)); } + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: no-repeat 50% / 100% 100%; } + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e"); } + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e"); } + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + 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 { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: .5; + transition: opacity 0.6s ease; } + @media (prefers-reduced-motion: reduce) { + .carousel-indicators li { + transition: none; } } + .carousel-indicators .active { + opacity: 1; } + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; } + +@keyframes spinner-border { + to { + transform: rotate(360deg); } } + +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + border: 0.25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + animation: spinner-border .75s linear infinite; } + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; } + +@keyframes spinner-grow { + 0% { + transform: scale(0); } + 50% { + opacity: 1; + transform: none; } } + +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + animation: spinner-grow .75s linear infinite; } + +.spinner-grow-sm { + width: 1rem; + height: 1rem; } + +.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: #0D2192 !important; } + +a.bg-primary:hover, a.bg-primary:focus, +button.bg-primary:hover, +button.bg-primary:focus { + background-color: #091663 !important; } + +.bg-secondary { + background-color: #1F329A !important; } + +a.bg-secondary:hover, a.bg-secondary:focus, +button.bg-secondary:hover, +button.bg-secondary:focus { + background-color: #162470 !important; } + +.bg-success { + background-color: #3772FF !important; } + +a.bg-success:hover, a.bg-success:focus, +button.bg-success:hover, +button.bg-success:focus { + background-color: #044eff !important; } + +.bg-info { + background-color: #C0E0DE !important; } + +a.bg-info:hover, a.bg-info:focus, +button.bg-info:hover, +button.bg-info:focus { + background-color: #9ecfcc !important; } + +.bg-warning { + background-color: #ED6A5A !important; } + +a.bg-warning:hover, a.bg-warning:focus, +button.bg-warning:hover, +button.bg-warning:focus { + background-color: #e8402c !important; } + +.bg-danger { + background-color: #ED6A5A !important; } + +a.bg-danger:hover, a.bg-danger:focus, +button.bg-danger:hover, +button.bg-danger:focus { + background-color: #e8402c !important; } + +.bg-light { + background-color: #D3F3EE !important; } + +a.bg-light:hover, a.bg-light:focus, +button.bg-light:hover, +button.bg-light:focus { + background-color: #abe8df !important; } + +.bg-dark { + background-color: #403F4C !important; } + +a.bg-dark:hover, a.bg-dark:focus, +button.bg-dark:hover, +button.bg-dark:focus { + background-color: #292830 !important; } + +.bg-gradient-primary { + background: #0D2192 linear-gradient(180deg, #3142a2, #0D2192) repeat-x !important; } + +.bg-gradient-secondary { + background: #1F329A linear-gradient(180deg, #4151a9, #1F329A) repeat-x !important; } + +.bg-gradient-success { + background: #3772FF linear-gradient(180deg, #5587ff, #3772FF) repeat-x !important; } + +.bg-gradient-info { + background: #C0E0DE linear-gradient(180deg, #c9e5e3, #C0E0DE) repeat-x !important; } + +.bg-gradient-warning { + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x !important; } + +.bg-gradient-danger { + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x !important; } + +.bg-gradient-light { + background: #D3F3EE linear-gradient(180deg, #daf5f1, #D3F3EE) repeat-x !important; } + +.bg-gradient-dark { + background: #403F4C linear-gradient(180deg, #5d5c67, #403F4C) repeat-x !important; } + +.bg-white { + background-color: #fff !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: #0D2192 !important; } + +.border-secondary { + border-color: #1F329A !important; } + +.border-success { + border-color: #3772FF !important; } + +.border-info { + border-color: #C0E0DE !important; } + +.border-warning { + border-color: #ED6A5A !important; } + +.border-danger { + border-color: #ED6A5A !important; } + +.border-light { + border-color: #D3F3EE !important; } + +.border-dark { + border-color: #403F4C !important; } + +.border-white { + border-color: #fff !important; } + +.rounded-sm { + border-radius: 0.2rem !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-lg { + border-radius: 0.3rem !important; } + +.rounded-circle { + border-radius: 50% !important; } + +.rounded-pill { + border-radius: 50rem !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.85714286%; } + +.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; } + +.flex-fill { + flex: 1 1 auto !important; } + +.flex-grow-0 { + flex-grow: 0 !important; } + +.flex-grow-1 { + flex-grow: 1 !important; } + +.flex-shrink-0 { + flex-shrink: 0 !important; } + +.flex-shrink-1 { + flex-shrink: 1 !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; } + .flex-sm-fill { + flex: 1 1 auto !important; } + .flex-sm-grow-0 { + flex-grow: 0 !important; } + .flex-sm-grow-1 { + flex-grow: 1 !important; } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; } + .flex-sm-shrink-1 { + flex-shrink: 1 !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; } + .flex-md-fill { + flex: 1 1 auto !important; } + .flex-md-grow-0 { + flex-grow: 0 !important; } + .flex-md-grow-1 { + flex-grow: 1 !important; } + .flex-md-shrink-0 { + flex-shrink: 0 !important; } + .flex-md-shrink-1 { + flex-shrink: 1 !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; } + .flex-lg-fill { + flex: 1 1 auto !important; } + .flex-lg-grow-0 { + flex-grow: 0 !important; } + .flex-lg-grow-1 { + flex-grow: 1 !important; } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; } + .flex-lg-shrink-1 { + flex-shrink: 1 !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; } + .flex-xl-fill { + flex: 1 1 auto !important; } + .flex-xl-grow-0 { + flex-grow: 0 !important; } + .flex-xl-grow-1 { + flex-grow: 1 !important; } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; } + .flex-xl-shrink-1 { + flex-shrink: 1 !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; } } + +.user-select-all { + user-select: all !important; } + +.user-select-auto { + user-select: auto !important; } + +.user-select-none { + user-select: none !important; } + +.overflow-auto { + overflow: auto !important; } + +.overflow-hidden { + overflow: hidden !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; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; } + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; } + +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; } + +.shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; } + +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; } + +.shadow-none { + box-shadow: none !important; } + +.w-25 { + width: 25% !important; } + +.w-50 { + width: 50% !important; } + +.w-75 { + width: 75% !important; } + +.w-100 { + width: 100% !important; } + +.w-auto { + width: auto !important; } + +.h-25 { + height: 25% !important; } + +.h-50 { + height: 50% !important; } + +.h-75 { + height: 75% !important; } + +.h-100 { + height: 100% !important; } + +.h-auto { + height: auto !important; } + +.mw-100 { + max-width: 100% !important; } + +.mh-100 { + max-height: 100% !important; } + +.min-vw-100 { + min-width: 100vw !important; } + +.min-vh-100 { + min-height: 100vh !important; } + +.vw-100 { + width: 100vw !important; } + +.vh-100 { + height: 100vh !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-n1 { + margin: -0.25rem !important; } + +.mt-n1, +.my-n1 { + margin-top: -0.25rem !important; } + +.mr-n1, +.mx-n1 { + margin-right: -0.25rem !important; } + +.mb-n1, +.my-n1 { + margin-bottom: -0.25rem !important; } + +.ml-n1, +.mx-n1 { + margin-left: -0.25rem !important; } + +.m-n2 { + margin: -0.5rem !important; } + +.mt-n2, +.my-n2 { + margin-top: -0.5rem !important; } + +.mr-n2, +.mx-n2 { + margin-right: -0.5rem !important; } + +.mb-n2, +.my-n2 { + margin-bottom: -0.5rem !important; } + +.ml-n2, +.mx-n2 { + margin-left: -0.5rem !important; } + +.m-n3 { + margin: -1rem !important; } + +.mt-n3, +.my-n3 { + margin-top: -1rem !important; } + +.mr-n3, +.mx-n3 { + margin-right: -1rem !important; } + +.mb-n3, +.my-n3 { + margin-bottom: -1rem !important; } + +.ml-n3, +.mx-n3 { + margin-left: -1rem !important; } + +.m-n4 { + margin: -1.5rem !important; } + +.mt-n4, +.my-n4 { + margin-top: -1.5rem !important; } + +.mr-n4, +.mx-n4 { + margin-right: -1.5rem !important; } + +.mb-n4, +.my-n4 { + margin-bottom: -1.5rem !important; } + +.ml-n4, +.mx-n4 { + margin-left: -1.5rem !important; } + +.m-n5 { + margin: -3rem !important; } + +.mt-n5, +.my-n5 { + margin-top: -3rem !important; } + +.mr-n5, +.mx-n5 { + margin-right: -3rem !important; } + +.mb-n5, +.my-n5 { + margin-bottom: -3rem !important; } + +.ml-n5, +.mx-n5 { + margin-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-n1 { + margin: -0.25rem !important; } + .mt-sm-n1, + .my-sm-n1 { + margin-top: -0.25rem !important; } + .mr-sm-n1, + .mx-sm-n1 { + margin-right: -0.25rem !important; } + .mb-sm-n1, + .my-sm-n1 { + margin-bottom: -0.25rem !important; } + .ml-sm-n1, + .mx-sm-n1 { + margin-left: -0.25rem !important; } + .m-sm-n2 { + margin: -0.5rem !important; } + .mt-sm-n2, + .my-sm-n2 { + margin-top: -0.5rem !important; } + .mr-sm-n2, + .mx-sm-n2 { + margin-right: -0.5rem !important; } + .mb-sm-n2, + .my-sm-n2 { + margin-bottom: -0.5rem !important; } + .ml-sm-n2, + .mx-sm-n2 { + margin-left: -0.5rem !important; } + .m-sm-n3 { + margin: -1rem !important; } + .mt-sm-n3, + .my-sm-n3 { + margin-top: -1rem !important; } + .mr-sm-n3, + .mx-sm-n3 { + margin-right: -1rem !important; } + .mb-sm-n3, + .my-sm-n3 { + margin-bottom: -1rem !important; } + .ml-sm-n3, + .mx-sm-n3 { + margin-left: -1rem !important; } + .m-sm-n4 { + margin: -1.5rem !important; } + .mt-sm-n4, + .my-sm-n4 { + margin-top: -1.5rem !important; } + .mr-sm-n4, + .mx-sm-n4 { + margin-right: -1.5rem !important; } + .mb-sm-n4, + .my-sm-n4 { + margin-bottom: -1.5rem !important; } + .ml-sm-n4, + .mx-sm-n4 { + margin-left: -1.5rem !important; } + .m-sm-n5 { + margin: -3rem !important; } + .mt-sm-n5, + .my-sm-n5 { + margin-top: -3rem !important; } + .mr-sm-n5, + .mx-sm-n5 { + margin-right: -3rem !important; } + .mb-sm-n5, + .my-sm-n5 { + margin-bottom: -3rem !important; } + .ml-sm-n5, + .mx-sm-n5 { + margin-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-n1 { + margin: -0.25rem !important; } + .mt-md-n1, + .my-md-n1 { + margin-top: -0.25rem !important; } + .mr-md-n1, + .mx-md-n1 { + margin-right: -0.25rem !important; } + .mb-md-n1, + .my-md-n1 { + margin-bottom: -0.25rem !important; } + .ml-md-n1, + .mx-md-n1 { + margin-left: -0.25rem !important; } + .m-md-n2 { + margin: -0.5rem !important; } + .mt-md-n2, + .my-md-n2 { + margin-top: -0.5rem !important; } + .mr-md-n2, + .mx-md-n2 { + margin-right: -0.5rem !important; } + .mb-md-n2, + .my-md-n2 { + margin-bottom: -0.5rem !important; } + .ml-md-n2, + .mx-md-n2 { + margin-left: -0.5rem !important; } + .m-md-n3 { + margin: -1rem !important; } + .mt-md-n3, + .my-md-n3 { + margin-top: -1rem !important; } + .mr-md-n3, + .mx-md-n3 { + margin-right: -1rem !important; } + .mb-md-n3, + .my-md-n3 { + margin-bottom: -1rem !important; } + .ml-md-n3, + .mx-md-n3 { + margin-left: -1rem !important; } + .m-md-n4 { + margin: -1.5rem !important; } + .mt-md-n4, + .my-md-n4 { + margin-top: -1.5rem !important; } + .mr-md-n4, + .mx-md-n4 { + margin-right: -1.5rem !important; } + .mb-md-n4, + .my-md-n4 { + margin-bottom: -1.5rem !important; } + .ml-md-n4, + .mx-md-n4 { + margin-left: -1.5rem !important; } + .m-md-n5 { + margin: -3rem !important; } + .mt-md-n5, + .my-md-n5 { + margin-top: -3rem !important; } + .mr-md-n5, + .mx-md-n5 { + margin-right: -3rem !important; } + .mb-md-n5, + .my-md-n5 { + margin-bottom: -3rem !important; } + .ml-md-n5, + .mx-md-n5 { + margin-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-n1 { + margin: -0.25rem !important; } + .mt-lg-n1, + .my-lg-n1 { + margin-top: -0.25rem !important; } + .mr-lg-n1, + .mx-lg-n1 { + margin-right: -0.25rem !important; } + .mb-lg-n1, + .my-lg-n1 { + margin-bottom: -0.25rem !important; } + .ml-lg-n1, + .mx-lg-n1 { + margin-left: -0.25rem !important; } + .m-lg-n2 { + margin: -0.5rem !important; } + .mt-lg-n2, + .my-lg-n2 { + margin-top: -0.5rem !important; } + .mr-lg-n2, + .mx-lg-n2 { + margin-right: -0.5rem !important; } + .mb-lg-n2, + .my-lg-n2 { + margin-bottom: -0.5rem !important; } + .ml-lg-n2, + .mx-lg-n2 { + margin-left: -0.5rem !important; } + .m-lg-n3 { + margin: -1rem !important; } + .mt-lg-n3, + .my-lg-n3 { + margin-top: -1rem !important; } + .mr-lg-n3, + .mx-lg-n3 { + margin-right: -1rem !important; } + .mb-lg-n3, + .my-lg-n3 { + margin-bottom: -1rem !important; } + .ml-lg-n3, + .mx-lg-n3 { + margin-left: -1rem !important; } + .m-lg-n4 { + margin: -1.5rem !important; } + .mt-lg-n4, + .my-lg-n4 { + margin-top: -1.5rem !important; } + .mr-lg-n4, + .mx-lg-n4 { + margin-right: -1.5rem !important; } + .mb-lg-n4, + .my-lg-n4 { + margin-bottom: -1.5rem !important; } + .ml-lg-n4, + .mx-lg-n4 { + margin-left: -1.5rem !important; } + .m-lg-n5 { + margin: -3rem !important; } + .mt-lg-n5, + .my-lg-n5 { + margin-top: -3rem !important; } + .mr-lg-n5, + .mx-lg-n5 { + margin-right: -3rem !important; } + .mb-lg-n5, + .my-lg-n5 { + margin-bottom: -3rem !important; } + .ml-lg-n5, + .mx-lg-n5 { + margin-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-n1 { + margin: -0.25rem !important; } + .mt-xl-n1, + .my-xl-n1 { + margin-top: -0.25rem !important; } + .mr-xl-n1, + .mx-xl-n1 { + margin-right: -0.25rem !important; } + .mb-xl-n1, + .my-xl-n1 { + margin-bottom: -0.25rem !important; } + .ml-xl-n1, + .mx-xl-n1 { + margin-left: -0.25rem !important; } + .m-xl-n2 { + margin: -0.5rem !important; } + .mt-xl-n2, + .my-xl-n2 { + margin-top: -0.5rem !important; } + .mr-xl-n2, + .mx-xl-n2 { + margin-right: -0.5rem !important; } + .mb-xl-n2, + .my-xl-n2 { + margin-bottom: -0.5rem !important; } + .ml-xl-n2, + .mx-xl-n2 { + margin-left: -0.5rem !important; } + .m-xl-n3 { + margin: -1rem !important; } + .mt-xl-n3, + .my-xl-n3 { + margin-top: -1rem !important; } + .mr-xl-n3, + .mx-xl-n3 { + margin-right: -1rem !important; } + .mb-xl-n3, + .my-xl-n3 { + margin-bottom: -1rem !important; } + .ml-xl-n3, + .mx-xl-n3 { + margin-left: -1rem !important; } + .m-xl-n4 { + margin: -1.5rem !important; } + .mt-xl-n4, + .my-xl-n4 { + margin-top: -1.5rem !important; } + .mr-xl-n4, + .mx-xl-n4 { + margin-right: -1.5rem !important; } + .mb-xl-n4, + .my-xl-n4 { + margin-bottom: -1.5rem !important; } + .ml-xl-n4, + .mx-xl-n4 { + margin-left: -1.5rem !important; } + .m-xl-n5 { + margin: -3rem !important; } + .mt-xl-n5, + .my-xl-n5 { + margin-top: -3rem !important; } + .mr-xl-n5, + .mx-xl-n5 { + margin-right: -3rem !important; } + .mb-xl-n5, + .my-xl-n5 { + margin-bottom: -3rem !important; } + .ml-xl-n5, + .mx-xl-n5 { + margin-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; } } + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + pointer-events: auto; + content: ""; + background-color: rgba(0, 0, 0, 0); } + +.text-monospace { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; } + +.text-justify { + text-align: justify !important; } + +.text-wrap { + white-space: normal !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-lighter { + font-weight: lighter !important; } + +.font-weight-normal { + font-weight: 400 !important; } + +.font-weight-bold { + font-weight: 700 !important; } + +.font-weight-bolder { + font-weight: bolder !important; } + +.font-italic { + font-style: italic !important; } + +.text-white { + color: #fff !important; } + +.text-primary { + color: #0D2192 !important; } + +a.text-primary:hover, a.text-primary:focus { + color: #07114c !important; } + +.text-secondary { + color: #1F329A !important; } + +a.text-secondary:hover, a.text-secondary:focus { + color: #121d5a !important; } + +.text-success { + color: #3772FF !important; } + +a.text-success:hover, a.text-success:focus { + color: #0045ea !important; } + +.text-info { + color: #C0E0DE !important; } + +a.text-info:hover, a.text-info:focus { + color: #8dc7c3 !important; } + +.text-warning { + color: #ED6A5A !important; } + +a.text-warning:hover, a.text-warning:focus { + color: #e22f19 !important; } + +.text-danger { + color: #ED6A5A !important; } + +a.text-danger:hover, a.text-danger:focus { + color: #e22f19 !important; } + +.text-light { + color: #D3F3EE !important; } + +a.text-light:hover, a.text-light:focus { + color: #97e3d7 !important; } + +.text-dark { + color: #403F4C !important; } + +a.text-dark:hover, a.text-dark:focus { + color: #1d1c22 !important; } + +.text-body { + color: #222 !important; } + +.text-muted { + color: #888 !important; } + +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important; } + +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important; } + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; } + +.text-decoration-none { + text-decoration: none !important; } + +.text-break { + word-wrap: break-word !important; } + +.text-reset { + color: inherit !important; } + +.visible { + visibility: visible !important; } + +.invisible { + visibility: hidden !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 #adb5bd; + 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, .td-content > table, .td-box .row.section > table { + border-collapse: collapse !important; } + .table td, .td-content > table td, .td-box .row.section > table td, + .table th, + .td-content > table th, + .td-box .row.section > table th { + background-color: #fff !important; } + .table-bordered th, + .table-bordered td { + border: 1px solid #dee2e6 !important; } + .table-dark { + color: inherit; } + .table-dark th, + .table-dark td, + .table-dark thead th, + .table-dark tbody + tbody { + border-color: #dee2e6; } + .table .thead-dark th, .td-content > table .thead-dark th, .td-box .row.section > table .thead-dark th { + color: inherit; + border-color: #dee2e6; } } + +/*! + * Font Awesome Free 5.14.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +.fa, +.fas, +.far, +.fal, +.fad, +.fab { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; } + +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -.0667em; } + +.fa-xs { + font-size: .75em; } + +.fa-sm { + font-size: .875em; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: 2.5em; + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: -2em; + position: absolute; + text-align: center; + width: 2em; + line-height: inherit; } + +.fa-border { + border: solid 0.08em #eee; + border-radius: .1em; + padding: .2em .25em .15em; } + +.fa-pull-left { + float: left; } + +.fa-pull-right { + float: right; } + +.fa.fa-pull-left, +.fas.fa-pull-left, +.far.fa-pull-left, +.fal.fa-pull-left, +.fab.fa-pull-left { + margin-right: .3em; } + +.fa.fa-pull-right, +.fas.fa-pull-right, +.far.fa-pull-right, +.fal.fa-pull-right, +.fab.fa-pull-right { + margin-left: .3em; } + +.fa-spin { + animation: fa-spin 2s infinite linear; } + +.fa-pulse { + animation: fa-spin 1s infinite steps(8); } + +@keyframes fa-spin { + 0% { + transform: rotate(0deg); } + 100% { + transform: rotate(360deg); } } + +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + transform: rotate(90deg); } + +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + transform: rotate(180deg); } + +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + transform: rotate(270deg); } + +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + transform: scale(-1, 1); } + +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + transform: scale(1, -1); } + +.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + transform: scale(-1, -1); } + +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical, +:root .fa-flip-both { + filter: none; } + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: #fff; } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ +.fa-500px:before { + content: "\f26e"; } + +.fa-accessible-icon:before { + content: "\f368"; } + +.fa-accusoft:before { + content: "\f369"; } + +.fa-acquisitions-incorporated:before { + content: "\f6af"; } + +.fa-ad:before { + content: "\f641"; } + +.fa-address-book:before { + content: "\f2b9"; } + +.fa-address-card:before { + content: "\f2bb"; } + +.fa-adjust:before { + content: "\f042"; } + +.fa-adn:before { + content: "\f170"; } + +.fa-adobe:before { + content: "\f778"; } + +.fa-adversal:before { + content: "\f36a"; } + +.fa-affiliatetheme:before { + content: "\f36b"; } + +.fa-air-freshener:before { + content: "\f5d0"; } + +.fa-airbnb:before { + content: "\f834"; } + +.fa-algolia:before { + content: "\f36c"; } + +.fa-align-center:before { + content: "\f037"; } + +.fa-align-justify:before { + content: "\f039"; } + +.fa-align-left:before { + content: "\f036"; } + +.fa-align-right:before { + content: "\f038"; } + +.fa-alipay:before { + content: "\f642"; } + +.fa-allergies:before { + content: "\f461"; } + +.fa-amazon:before { + content: "\f270"; } + +.fa-amazon-pay:before { + content: "\f42c"; } + +.fa-ambulance:before { + content: "\f0f9"; } + +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; } + +.fa-amilia:before { + content: "\f36d"; } + +.fa-anchor:before { + content: "\f13d"; } + +.fa-android:before { + content: "\f17b"; } + +.fa-angellist:before { + content: "\f209"; } + +.fa-angle-double-down:before { + content: "\f103"; } + +.fa-angle-double-left:before { + content: "\f100"; } + +.fa-angle-double-right:before { + content: "\f101"; } + +.fa-angle-double-up:before { + content: "\f102"; } + +.fa-angle-down:before { + content: "\f107"; } + +.fa-angle-left:before { + content: "\f104"; } + +.fa-angle-right:before { + content: "\f105"; } + +.fa-angle-up:before { + content: "\f106"; } + +.fa-angry:before { + content: "\f556"; } + +.fa-angrycreative:before { + content: "\f36e"; } + +.fa-angular:before { + content: "\f420"; } + +.fa-ankh:before { + content: "\f644"; } + +.fa-app-store:before { + content: "\f36f"; } + +.fa-app-store-ios:before { + content: "\f370"; } + +.fa-apper:before { + content: "\f371"; } + +.fa-apple:before { + content: "\f179"; } + +.fa-apple-alt:before { + content: "\f5d1"; } + +.fa-apple-pay:before { + content: "\f415"; } + +.fa-archive:before { + content: "\f187"; } + +.fa-archway:before { + content: "\f557"; } + +.fa-arrow-alt-circle-down:before { + content: "\f358"; } + +.fa-arrow-alt-circle-left:before { + content: "\f359"; } + +.fa-arrow-alt-circle-right:before { + content: "\f35a"; } + +.fa-arrow-alt-circle-up:before { + content: "\f35b"; } + +.fa-arrow-circle-down:before { + content: "\f0ab"; } + +.fa-arrow-circle-left:before { + content: "\f0a8"; } + +.fa-arrow-circle-right:before { + content: "\f0a9"; } + +.fa-arrow-circle-up:before { + content: "\f0aa"; } + +.fa-arrow-down:before { + content: "\f063"; } + +.fa-arrow-left:before { + content: "\f060"; } + +.fa-arrow-right:before { + content: "\f061"; } + +.fa-arrow-up:before { + content: "\f062"; } + +.fa-arrows-alt:before { + content: "\f0b2"; } + +.fa-arrows-alt-h:before { + content: "\f337"; } + +.fa-arrows-alt-v:before { + content: "\f338"; } + +.fa-artstation:before { + content: "\f77a"; } + +.fa-assistive-listening-systems:before { + content: "\f2a2"; } + +.fa-asterisk:before { + content: "\f069"; } + +.fa-asymmetrik:before { + content: "\f372"; } + +.fa-at:before { + content: "\f1fa"; } + +.fa-atlas:before { + content: "\f558"; } + +.fa-atlassian:before { + content: "\f77b"; } + +.fa-atom:before { + content: "\f5d2"; } + +.fa-audible:before { + content: "\f373"; } + +.fa-audio-description:before { + content: "\f29e"; } + +.fa-autoprefixer:before { + content: "\f41c"; } + +.fa-avianex:before { + content: "\f374"; } + +.fa-aviato:before { + content: "\f421"; } + +.fa-award:before { + content: "\f559"; } + +.fa-aws:before { + content: "\f375"; } + +.fa-baby:before { + content: "\f77c"; } + +.fa-baby-carriage:before { + content: "\f77d"; } + +.fa-backspace:before { + content: "\f55a"; } + +.fa-backward:before { + content: "\f04a"; } + +.fa-bacon:before { + content: "\f7e5"; } + +.fa-bacteria:before { + content: "\e059"; } + +.fa-bacterium:before { + content: "\e05a"; } + +.fa-bahai:before { + content: "\f666"; } + +.fa-balance-scale:before { + content: "\f24e"; } + +.fa-balance-scale-left:before { + content: "\f515"; } + +.fa-balance-scale-right:before { + content: "\f516"; } + +.fa-ban:before { + content: "\f05e"; } + +.fa-band-aid:before { + content: "\f462"; } + +.fa-bandcamp:before { + content: "\f2d5"; } + +.fa-barcode:before { + content: "\f02a"; } + +.fa-bars:before { + content: "\f0c9"; } + +.fa-baseball-ball:before { + content: "\f433"; } + +.fa-basketball-ball:before { + content: "\f434"; } + +.fa-bath:before { + content: "\f2cd"; } + +.fa-battery-empty:before { + content: "\f244"; } + +.fa-battery-full:before { + content: "\f240"; } + +.fa-battery-half:before { + content: "\f242"; } + +.fa-battery-quarter:before { + content: "\f243"; } + +.fa-battery-three-quarters:before { + content: "\f241"; } + +.fa-battle-net:before { + content: "\f835"; } + +.fa-bed:before { + content: "\f236"; } + +.fa-beer:before { + content: "\f0fc"; } + +.fa-behance:before { + content: "\f1b4"; } + +.fa-behance-square:before { + content: "\f1b5"; } + +.fa-bell:before { + content: "\f0f3"; } + +.fa-bell-slash:before { + content: "\f1f6"; } + +.fa-bezier-curve:before { + content: "\f55b"; } + +.fa-bible:before { + content: "\f647"; } + +.fa-bicycle:before { + content: "\f206"; } + +.fa-biking:before { + content: "\f84a"; } + +.fa-bimobject:before { + content: "\f378"; } + +.fa-binoculars:before { + content: "\f1e5"; } + +.fa-biohazard:before { + content: "\f780"; } + +.fa-birthday-cake:before { + content: "\f1fd"; } + +.fa-bitbucket:before { + content: "\f171"; } + +.fa-bitcoin:before { + content: "\f379"; } + +.fa-bity:before { + content: "\f37a"; } + +.fa-black-tie:before { + content: "\f27e"; } + +.fa-blackberry:before { + content: "\f37b"; } + +.fa-blender:before { + content: "\f517"; } + +.fa-blender-phone:before { + content: "\f6b6"; } + +.fa-blind:before { + content: "\f29d"; } + +.fa-blog:before { + content: "\f781"; } + +.fa-blogger:before { + content: "\f37c"; } + +.fa-blogger-b:before { + content: "\f37d"; } + +.fa-bluetooth:before { + content: "\f293"; } + +.fa-bluetooth-b:before { + content: "\f294"; } + +.fa-bold:before { + content: "\f032"; } + +.fa-bolt:before { + content: "\f0e7"; } + +.fa-bomb:before { + content: "\f1e2"; } + +.fa-bone:before { + content: "\f5d7"; } + +.fa-bong:before { + content: "\f55c"; } + +.fa-book:before { + content: "\f02d"; } + +.fa-book-dead:before { + content: "\f6b7"; } + +.fa-book-medical:before { + content: "\f7e6"; } + +.fa-book-open:before { + content: "\f518"; } + +.fa-book-reader:before { + content: "\f5da"; } + +.fa-bookmark:before { + content: "\f02e"; } + +.fa-bootstrap:before { + content: "\f836"; } + +.fa-border-all:before { + content: "\f84c"; } + +.fa-border-none:before { + content: "\f850"; } + +.fa-border-style:before { + content: "\f853"; } + +.fa-bowling-ball:before { + content: "\f436"; } + +.fa-box:before { + content: "\f466"; } + +.fa-box-open:before { + content: "\f49e"; } + +.fa-box-tissue:before { + content: "\e05b"; } + +.fa-boxes:before { + content: "\f468"; } + +.fa-braille:before { + content: "\f2a1"; } + +.fa-brain:before { + content: "\f5dc"; } + +.fa-bread-slice:before { + content: "\f7ec"; } + +.fa-briefcase:before { + content: "\f0b1"; } + +.fa-briefcase-medical:before { + content: "\f469"; } + +.fa-broadcast-tower:before { + content: "\f519"; } + +.fa-broom:before { + content: "\f51a"; } + +.fa-brush:before { + content: "\f55d"; } + +.fa-btc:before { + content: "\f15a"; } + +.fa-buffer:before { + content: "\f837"; } + +.fa-bug:before { + content: "\f188"; } + +.fa-building:before { + content: "\f1ad"; } + +.fa-bullhorn:before { + content: "\f0a1"; } + +.fa-bullseye:before { + content: "\f140"; } + +.fa-burn:before { + content: "\f46a"; } + +.fa-buromobelexperte:before { + content: "\f37f"; } + +.fa-bus:before { + content: "\f207"; } + +.fa-bus-alt:before { + content: "\f55e"; } + +.fa-business-time:before { + content: "\f64a"; } + +.fa-buy-n-large:before { + content: "\f8a6"; } + +.fa-buysellads:before { + content: "\f20d"; } + +.fa-calculator:before { + content: "\f1ec"; } + +.fa-calendar:before { + content: "\f133"; } + +.fa-calendar-alt:before { + content: "\f073"; } + +.fa-calendar-check:before { + content: "\f274"; } + +.fa-calendar-day:before { + content: "\f783"; } + +.fa-calendar-minus:before { + content: "\f272"; } + +.fa-calendar-plus:before { + content: "\f271"; } + +.fa-calendar-times:before { + content: "\f273"; } + +.fa-calendar-week:before { + content: "\f784"; } + +.fa-camera:before { + content: "\f030"; } + +.fa-camera-retro:before { + content: "\f083"; } + +.fa-campground:before { + content: "\f6bb"; } + +.fa-canadian-maple-leaf:before { + content: "\f785"; } + +.fa-candy-cane:before { + content: "\f786"; } + +.fa-cannabis:before { + content: "\f55f"; } + +.fa-capsules:before { + content: "\f46b"; } + +.fa-car:before { + content: "\f1b9"; } + +.fa-car-alt:before { + content: "\f5de"; } + +.fa-car-battery:before { + content: "\f5df"; } + +.fa-car-crash:before { + content: "\f5e1"; } + +.fa-car-side:before { + content: "\f5e4"; } + +.fa-caravan:before { + content: "\f8ff"; } + +.fa-caret-down:before { + content: "\f0d7"; } + +.fa-caret-left:before { + content: "\f0d9"; } + +.fa-caret-right:before { + content: "\f0da"; } + +.fa-caret-square-down:before { + content: "\f150"; } + +.fa-caret-square-left:before { + content: "\f191"; } + +.fa-caret-square-right:before { + content: "\f152"; } + +.fa-caret-square-up:before { + content: "\f151"; } + +.fa-caret-up:before { + content: "\f0d8"; } + +.fa-carrot:before { + content: "\f787"; } + +.fa-cart-arrow-down:before { + content: "\f218"; } + +.fa-cart-plus:before { + content: "\f217"; } + +.fa-cash-register:before { + content: "\f788"; } + +.fa-cat:before { + content: "\f6be"; } + +.fa-cc-amazon-pay:before { + content: "\f42d"; } + +.fa-cc-amex:before { + content: "\f1f3"; } + +.fa-cc-apple-pay:before { + content: "\f416"; } + +.fa-cc-diners-club:before { + content: "\f24c"; } + +.fa-cc-discover:before { + content: "\f1f2"; } + +.fa-cc-jcb:before { + content: "\f24b"; } + +.fa-cc-mastercard:before { + content: "\f1f1"; } + +.fa-cc-paypal:before { + content: "\f1f4"; } + +.fa-cc-stripe:before { + content: "\f1f5"; } + +.fa-cc-visa:before { + content: "\f1f0"; } + +.fa-centercode:before { + content: "\f380"; } + +.fa-centos:before { + content: "\f789"; } + +.fa-certificate:before { + content: "\f0a3"; } + +.fa-chair:before { + content: "\f6c0"; } + +.fa-chalkboard:before { + content: "\f51b"; } + +.fa-chalkboard-teacher:before { + content: "\f51c"; } + +.fa-charging-station:before { + content: "\f5e7"; } + +.fa-chart-area:before { + content: "\f1fe"; } + +.fa-chart-bar:before { + content: "\f080"; } + +.fa-chart-line:before { + content: "\f201"; } + +.fa-chart-pie:before { + content: "\f200"; } + +.fa-check:before { + content: "\f00c"; } + +.fa-check-circle:before { + content: "\f058"; } + +.fa-check-double:before { + content: "\f560"; } + +.fa-check-square:before { + content: "\f14a"; } + +.fa-cheese:before { + content: "\f7ef"; } + +.fa-chess:before { + content: "\f439"; } + +.fa-chess-bishop:before { + content: "\f43a"; } + +.fa-chess-board:before { + content: "\f43c"; } + +.fa-chess-king:before { + content: "\f43f"; } + +.fa-chess-knight:before { + content: "\f441"; } + +.fa-chess-pawn:before { + content: "\f443"; } + +.fa-chess-queen:before { + content: "\f445"; } + +.fa-chess-rook:before { + content: "\f447"; } + +.fa-chevron-circle-down:before { + content: "\f13a"; } + +.fa-chevron-circle-left:before { + content: "\f137"; } + +.fa-chevron-circle-right:before { + content: "\f138"; } + +.fa-chevron-circle-up:before { + content: "\f139"; } + +.fa-chevron-down:before { + content: "\f078"; } + +.fa-chevron-left:before { + content: "\f053"; } + +.fa-chevron-right:before { + content: "\f054"; } + +.fa-chevron-up:before { + content: "\f077"; } + +.fa-child:before { + content: "\f1ae"; } + +.fa-chrome:before { + content: "\f268"; } + +.fa-chromecast:before { + content: "\f838"; } + +.fa-church:before { + content: "\f51d"; } + +.fa-circle:before { + content: "\f111"; } + +.fa-circle-notch:before { + content: "\f1ce"; } + +.fa-city:before { + content: "\f64f"; } + +.fa-clinic-medical:before { + content: "\f7f2"; } + +.fa-clipboard:before { + content: "\f328"; } + +.fa-clipboard-check:before { + content: "\f46c"; } + +.fa-clipboard-list:before { + content: "\f46d"; } + +.fa-clock:before { + content: "\f017"; } + +.fa-clone:before { + content: "\f24d"; } + +.fa-closed-captioning:before { + content: "\f20a"; } + +.fa-cloud:before { + content: "\f0c2"; } + +.fa-cloud-download-alt:before { + content: "\f381"; } + +.fa-cloud-meatball:before { + content: "\f73b"; } + +.fa-cloud-moon:before { + content: "\f6c3"; } + +.fa-cloud-moon-rain:before { + content: "\f73c"; } + +.fa-cloud-rain:before { + content: "\f73d"; } + +.fa-cloud-showers-heavy:before { + content: "\f740"; } + +.fa-cloud-sun:before { + content: "\f6c4"; } + +.fa-cloud-sun-rain:before { + content: "\f743"; } + +.fa-cloud-upload-alt:before { + content: "\f382"; } + +.fa-cloudscale:before { + content: "\f383"; } + +.fa-cloudsmith:before { + content: "\f384"; } + +.fa-cloudversify:before { + content: "\f385"; } + +.fa-cocktail:before { + content: "\f561"; } + +.fa-code:before { + content: "\f121"; } + +.fa-code-branch:before { + content: "\f126"; } + +.fa-codepen:before { + content: "\f1cb"; } + +.fa-codiepie:before { + content: "\f284"; } + +.fa-coffee:before { + content: "\f0f4"; } + +.fa-cog:before { + content: "\f013"; } + +.fa-cogs:before { + content: "\f085"; } + +.fa-coins:before { + content: "\f51e"; } + +.fa-columns:before { + content: "\f0db"; } + +.fa-comment:before { + content: "\f075"; } + +.fa-comment-alt:before { + content: "\f27a"; } + +.fa-comment-dollar:before { + content: "\f651"; } + +.fa-comment-dots:before { + content: "\f4ad"; } + +.fa-comment-medical:before { + content: "\f7f5"; } + +.fa-comment-slash:before { + content: "\f4b3"; } + +.fa-comments:before { + content: "\f086"; } + +.fa-comments-dollar:before { + content: "\f653"; } + +.fa-compact-disc:before { + content: "\f51f"; } + +.fa-compass:before { + content: "\f14e"; } + +.fa-compress:before { + content: "\f066"; } + +.fa-compress-alt:before { + content: "\f422"; } + +.fa-compress-arrows-alt:before { + content: "\f78c"; } + +.fa-concierge-bell:before { + content: "\f562"; } + +.fa-confluence:before { + content: "\f78d"; } + +.fa-connectdevelop:before { + content: "\f20e"; } + +.fa-contao:before { + content: "\f26d"; } + +.fa-cookie:before { + content: "\f563"; } + +.fa-cookie-bite:before { + content: "\f564"; } + +.fa-copy:before { + content: "\f0c5"; } + +.fa-copyright:before { + content: "\f1f9"; } + +.fa-cotton-bureau:before { + content: "\f89e"; } + +.fa-couch:before { + content: "\f4b8"; } + +.fa-cpanel:before { + content: "\f388"; } + +.fa-creative-commons:before { + content: "\f25e"; } + +.fa-creative-commons-by:before { + content: "\f4e7"; } + +.fa-creative-commons-nc:before { + content: "\f4e8"; } + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; } + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; } + +.fa-creative-commons-nd:before { + content: "\f4eb"; } + +.fa-creative-commons-pd:before { + content: "\f4ec"; } + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; } + +.fa-creative-commons-remix:before { + content: "\f4ee"; } + +.fa-creative-commons-sa:before { + content: "\f4ef"; } + +.fa-creative-commons-sampling:before { + content: "\f4f0"; } + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; } + +.fa-creative-commons-share:before { + content: "\f4f2"; } + +.fa-creative-commons-zero:before { + content: "\f4f3"; } + +.fa-credit-card:before { + content: "\f09d"; } + +.fa-critical-role:before { + content: "\f6c9"; } + +.fa-crop:before { + content: "\f125"; } + +.fa-crop-alt:before { + content: "\f565"; } + +.fa-cross:before { + content: "\f654"; } + +.fa-crosshairs:before { + content: "\f05b"; } + +.fa-crow:before { + content: "\f520"; } + +.fa-crown:before { + content: "\f521"; } + +.fa-crutch:before { + content: "\f7f7"; } + +.fa-css3:before { + content: "\f13c"; } + +.fa-css3-alt:before { + content: "\f38b"; } + +.fa-cube:before { + content: "\f1b2"; } + +.fa-cubes:before { + content: "\f1b3"; } + +.fa-cut:before { + content: "\f0c4"; } + +.fa-cuttlefish:before { + content: "\f38c"; } + +.fa-d-and-d:before { + content: "\f38d"; } + +.fa-d-and-d-beyond:before { + content: "\f6ca"; } + +.fa-dailymotion:before { + content: "\e052"; } + +.fa-dashcube:before { + content: "\f210"; } + +.fa-database:before { + content: "\f1c0"; } + +.fa-deaf:before { + content: "\f2a4"; } + +.fa-deezer:before { + content: "\e077"; } + +.fa-delicious:before { + content: "\f1a5"; } + +.fa-democrat:before { + content: "\f747"; } + +.fa-deploydog:before { + content: "\f38e"; } + +.fa-deskpro:before { + content: "\f38f"; } + +.fa-desktop:before { + content: "\f108"; } + +.fa-dev:before { + content: "\f6cc"; } + +.fa-deviantart:before { + content: "\f1bd"; } + +.fa-dharmachakra:before { + content: "\f655"; } + +.fa-dhl:before { + content: "\f790"; } + +.fa-diagnoses:before { + content: "\f470"; } + +.fa-diaspora:before { + content: "\f791"; } + +.fa-dice:before { + content: "\f522"; } + +.fa-dice-d20:before { + content: "\f6cf"; } + +.fa-dice-d6:before { + content: "\f6d1"; } + +.fa-dice-five:before { + content: "\f523"; } + +.fa-dice-four:before { + content: "\f524"; } + +.fa-dice-one:before { + content: "\f525"; } + +.fa-dice-six:before { + content: "\f526"; } + +.fa-dice-three:before { + content: "\f527"; } + +.fa-dice-two:before { + content: "\f528"; } + +.fa-digg:before { + content: "\f1a6"; } + +.fa-digital-ocean:before { + content: "\f391"; } + +.fa-digital-tachograph:before { + content: "\f566"; } + +.fa-directions:before { + content: "\f5eb"; } + +.fa-discord:before { + content: "\f392"; } + +.fa-discourse:before { + content: "\f393"; } + +.fa-disease:before { + content: "\f7fa"; } + +.fa-divide:before { + content: "\f529"; } + +.fa-dizzy:before { + content: "\f567"; } + +.fa-dna:before { + content: "\f471"; } + +.fa-dochub:before { + content: "\f394"; } + +.fa-docker:before { + content: "\f395"; } + +.fa-dog:before { + content: "\f6d3"; } + +.fa-dollar-sign:before { + content: "\f155"; } + +.fa-dolly:before { + content: "\f472"; } + +.fa-dolly-flatbed:before { + content: "\f474"; } + +.fa-donate:before { + content: "\f4b9"; } + +.fa-door-closed:before { + content: "\f52a"; } + +.fa-door-open:before { + content: "\f52b"; } + +.fa-dot-circle:before { + content: "\f192"; } + +.fa-dove:before { + content: "\f4ba"; } + +.fa-download:before { + content: "\f019"; } + +.fa-draft2digital:before { + content: "\f396"; } + +.fa-drafting-compass:before { + content: "\f568"; } + +.fa-dragon:before { + content: "\f6d5"; } + +.fa-draw-polygon:before { + content: "\f5ee"; } + +.fa-dribbble:before { + content: "\f17d"; } + +.fa-dribbble-square:before { + content: "\f397"; } + +.fa-dropbox:before { + content: "\f16b"; } + +.fa-drum:before { + content: "\f569"; } + +.fa-drum-steelpan:before { + content: "\f56a"; } + +.fa-drumstick-bite:before { + content: "\f6d7"; } + +.fa-drupal:before { + content: "\f1a9"; } + +.fa-dumbbell:before { + content: "\f44b"; } + +.fa-dumpster:before { + content: "\f793"; } + +.fa-dumpster-fire:before { + content: "\f794"; } + +.fa-dungeon:before { + content: "\f6d9"; } + +.fa-dyalog:before { + content: "\f399"; } + +.fa-earlybirds:before { + content: "\f39a"; } + +.fa-ebay:before { + content: "\f4f4"; } + +.fa-edge:before { + content: "\f282"; } + +.fa-edge-legacy:before { + content: "\e078"; } + +.fa-edit:before { + content: "\f044"; } + +.fa-egg:before { + content: "\f7fb"; } + +.fa-eject:before { + content: "\f052"; } + +.fa-elementor:before { + content: "\f430"; } + +.fa-ellipsis-h:before { + content: "\f141"; } + +.fa-ellipsis-v:before { + content: "\f142"; } + +.fa-ello:before { + content: "\f5f1"; } + +.fa-ember:before { + content: "\f423"; } + +.fa-empire:before { + content: "\f1d1"; } + +.fa-envelope:before { + content: "\f0e0"; } + +.fa-envelope-open:before { + content: "\f2b6"; } + +.fa-envelope-open-text:before { + content: "\f658"; } + +.fa-envelope-square:before { + content: "\f199"; } + +.fa-envira:before { + content: "\f299"; } + +.fa-equals:before { + content: "\f52c"; } + +.fa-eraser:before { + content: "\f12d"; } + +.fa-erlang:before { + content: "\f39d"; } + +.fa-ethereum:before { + content: "\f42e"; } + +.fa-ethernet:before { + content: "\f796"; } + +.fa-etsy:before { + content: "\f2d7"; } + +.fa-euro-sign:before { + content: "\f153"; } + +.fa-evernote:before { + content: "\f839"; } + +.fa-exchange-alt:before { + content: "\f362"; } + +.fa-exclamation:before { + content: "\f12a"; } + +.fa-exclamation-circle:before { + content: "\f06a"; } + +.fa-exclamation-triangle:before { + content: "\f071"; } + +.fa-expand:before { + content: "\f065"; } + +.fa-expand-alt:before { + content: "\f424"; } + +.fa-expand-arrows-alt:before { + content: "\f31e"; } + +.fa-expeditedssl:before { + content: "\f23e"; } + +.fa-external-link-alt:before { + content: "\f35d"; } + +.fa-external-link-square-alt:before { + content: "\f360"; } + +.fa-eye:before { + content: "\f06e"; } + +.fa-eye-dropper:before { + content: "\f1fb"; } + +.fa-eye-slash:before { + content: "\f070"; } + +.fa-facebook:before { + content: "\f09a"; } + +.fa-facebook-f:before { + content: "\f39e"; } + +.fa-facebook-messenger:before { + content: "\f39f"; } + +.fa-facebook-square:before { + content: "\f082"; } + +.fa-fan:before { + content: "\f863"; } + +.fa-fantasy-flight-games:before { + content: "\f6dc"; } + +.fa-fast-backward:before { + content: "\f049"; } + +.fa-fast-forward:before { + content: "\f050"; } + +.fa-faucet:before { + content: "\e005"; } + +.fa-fax:before { + content: "\f1ac"; } + +.fa-feather:before { + content: "\f52d"; } + +.fa-feather-alt:before { + content: "\f56b"; } + +.fa-fedex:before { + content: "\f797"; } + +.fa-fedora:before { + content: "\f798"; } + +.fa-female:before { + content: "\f182"; } + +.fa-fighter-jet:before { + content: "\f0fb"; } + +.fa-figma:before { + content: "\f799"; } + +.fa-file:before { + content: "\f15b"; } + +.fa-file-alt:before { + content: "\f15c"; } + +.fa-file-archive:before { + content: "\f1c6"; } + +.fa-file-audio:before { + content: "\f1c7"; } + +.fa-file-code:before { + content: "\f1c9"; } + +.fa-file-contract:before { + content: "\f56c"; } + +.fa-file-csv:before { + content: "\f6dd"; } + +.fa-file-download:before { + content: "\f56d"; } + +.fa-file-excel:before { + content: "\f1c3"; } + +.fa-file-export:before { + content: "\f56e"; } + +.fa-file-image:before { + content: "\f1c5"; } + +.fa-file-import:before { + content: "\f56f"; } + +.fa-file-invoice:before { + content: "\f570"; } + +.fa-file-invoice-dollar:before { + content: "\f571"; } + +.fa-file-medical:before { + content: "\f477"; } + +.fa-file-medical-alt:before { + content: "\f478"; } + +.fa-file-pdf:before { + content: "\f1c1"; } + +.fa-file-powerpoint:before { + content: "\f1c4"; } + +.fa-file-prescription:before { + content: "\f572"; } + +.fa-file-signature:before { + content: "\f573"; } + +.fa-file-upload:before { + content: "\f574"; } + +.fa-file-video:before { + content: "\f1c8"; } + +.fa-file-word:before { + content: "\f1c2"; } + +.fa-fill:before { + content: "\f575"; } + +.fa-fill-drip:before { + content: "\f576"; } + +.fa-film:before { + content: "\f008"; } + +.fa-filter:before { + content: "\f0b0"; } + +.fa-fingerprint:before { + content: "\f577"; } + +.fa-fire:before { + content: "\f06d"; } + +.fa-fire-alt:before { + content: "\f7e4"; } + +.fa-fire-extinguisher:before { + content: "\f134"; } + +.fa-firefox:before { + content: "\f269"; } + +.fa-firefox-browser:before { + content: "\e007"; } + +.fa-first-aid:before { + content: "\f479"; } + +.fa-first-order:before { + content: "\f2b0"; } + +.fa-first-order-alt:before { + content: "\f50a"; } + +.fa-firstdraft:before { + content: "\f3a1"; } + +.fa-fish:before { + content: "\f578"; } + +.fa-fist-raised:before { + content: "\f6de"; } + +.fa-flag:before { + content: "\f024"; } + +.fa-flag-checkered:before { + content: "\f11e"; } + +.fa-flag-usa:before { + content: "\f74d"; } + +.fa-flask:before { + content: "\f0c3"; } + +.fa-flickr:before { + content: "\f16e"; } + +.fa-flipboard:before { + content: "\f44d"; } + +.fa-flushed:before { + content: "\f579"; } + +.fa-fly:before { + content: "\f417"; } + +.fa-folder:before { + content: "\f07b"; } + +.fa-folder-minus:before { + content: "\f65d"; } + +.fa-folder-open:before { + content: "\f07c"; } + +.fa-folder-plus:before { + content: "\f65e"; } + +.fa-font:before { + content: "\f031"; } + +.fa-font-awesome:before { + content: "\f2b4"; } + +.fa-font-awesome-alt:before { + content: "\f35c"; } + +.fa-font-awesome-flag:before { + content: "\f425"; } + +.fa-font-awesome-logo-full:before { + content: "\f4e6"; } + +.fa-fonticons:before { + content: "\f280"; } + +.fa-fonticons-fi:before { + content: "\f3a2"; } + +.fa-football-ball:before { + content: "\f44e"; } + +.fa-fort-awesome:before { + content: "\f286"; } + +.fa-fort-awesome-alt:before { + content: "\f3a3"; } + +.fa-forumbee:before { + content: "\f211"; } + +.fa-forward:before { + content: "\f04e"; } + +.fa-foursquare:before { + content: "\f180"; } + +.fa-free-code-camp:before { + content: "\f2c5"; } + +.fa-freebsd:before { + content: "\f3a4"; } + +.fa-frog:before { + content: "\f52e"; } + +.fa-frown:before { + content: "\f119"; } + +.fa-frown-open:before { + content: "\f57a"; } + +.fa-fulcrum:before { + content: "\f50b"; } + +.fa-funnel-dollar:before { + content: "\f662"; } + +.fa-futbol:before { + content: "\f1e3"; } + +.fa-galactic-republic:before { + content: "\f50c"; } + +.fa-galactic-senate:before { + content: "\f50d"; } + +.fa-gamepad:before { + content: "\f11b"; } + +.fa-gas-pump:before { + content: "\f52f"; } + +.fa-gavel:before { + content: "\f0e3"; } + +.fa-gem:before { + content: "\f3a5"; } + +.fa-genderless:before { + content: "\f22d"; } + +.fa-get-pocket:before { + content: "\f265"; } + +.fa-gg:before { + content: "\f260"; } + +.fa-gg-circle:before { + content: "\f261"; } + +.fa-ghost:before { + content: "\f6e2"; } + +.fa-gift:before { + content: "\f06b"; } + +.fa-gifts:before { + content: "\f79c"; } + +.fa-git:before { + content: "\f1d3"; } + +.fa-git-alt:before { + content: "\f841"; } + +.fa-git-square:before { + content: "\f1d2"; } + +.fa-github:before { + content: "\f09b"; } + +.fa-github-alt:before { + content: "\f113"; } + +.fa-github-square:before { + content: "\f092"; } + +.fa-gitkraken:before { + content: "\f3a6"; } + +.fa-gitlab:before { + content: "\f296"; } + +.fa-gitter:before { + content: "\f426"; } + +.fa-glass-cheers:before { + content: "\f79f"; } + +.fa-glass-martini:before { + content: "\f000"; } + +.fa-glass-martini-alt:before { + content: "\f57b"; } + +.fa-glass-whiskey:before { + content: "\f7a0"; } + +.fa-glasses:before { + content: "\f530"; } + +.fa-glide:before { + content: "\f2a5"; } + +.fa-glide-g:before { + content: "\f2a6"; } + +.fa-globe:before { + content: "\f0ac"; } + +.fa-globe-africa:before { + content: "\f57c"; } + +.fa-globe-americas:before { + content: "\f57d"; } + +.fa-globe-asia:before { + content: "\f57e"; } + +.fa-globe-europe:before { + content: "\f7a2"; } + +.fa-gofore:before { + content: "\f3a7"; } + +.fa-golf-ball:before { + content: "\f450"; } + +.fa-goodreads:before { + content: "\f3a8"; } + +.fa-goodreads-g:before { + content: "\f3a9"; } + +.fa-google:before { + content: "\f1a0"; } + +.fa-google-drive:before { + content: "\f3aa"; } + +.fa-google-pay:before { + content: "\e079"; } + +.fa-google-play:before { + content: "\f3ab"; } + +.fa-google-plus:before { + content: "\f2b3"; } + +.fa-google-plus-g:before { + content: "\f0d5"; } + +.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa-google-wallet:before { + content: "\f1ee"; } + +.fa-gopuram:before { + content: "\f664"; } + +.fa-graduation-cap:before { + content: "\f19d"; } + +.fa-gratipay:before { + content: "\f184"; } + +.fa-grav:before { + content: "\f2d6"; } + +.fa-greater-than:before { + content: "\f531"; } + +.fa-greater-than-equal:before { + content: "\f532"; } + +.fa-grimace:before { + content: "\f57f"; } + +.fa-grin:before { + content: "\f580"; } + +.fa-grin-alt:before { + content: "\f581"; } + +.fa-grin-beam:before { + content: "\f582"; } + +.fa-grin-beam-sweat:before { + content: "\f583"; } + +.fa-grin-hearts:before { + content: "\f584"; } + +.fa-grin-squint:before { + content: "\f585"; } + +.fa-grin-squint-tears:before { + content: "\f586"; } + +.fa-grin-stars:before { + content: "\f587"; } + +.fa-grin-tears:before { + content: "\f588"; } + +.fa-grin-tongue:before { + content: "\f589"; } + +.fa-grin-tongue-squint:before { + content: "\f58a"; } + +.fa-grin-tongue-wink:before { + content: "\f58b"; } + +.fa-grin-wink:before { + content: "\f58c"; } + +.fa-grip-horizontal:before { + content: "\f58d"; } + +.fa-grip-lines:before { + content: "\f7a4"; } + +.fa-grip-lines-vertical:before { + content: "\f7a5"; } + +.fa-grip-vertical:before { + content: "\f58e"; } + +.fa-gripfire:before { + content: "\f3ac"; } + +.fa-grunt:before { + content: "\f3ad"; } + +.fa-guitar:before { + content: "\f7a6"; } + +.fa-gulp:before { + content: "\f3ae"; } + +.fa-h-square:before { + content: "\f0fd"; } + +.fa-hacker-news:before { + content: "\f1d4"; } + +.fa-hacker-news-square:before { + content: "\f3af"; } + +.fa-hackerrank:before { + content: "\f5f7"; } + +.fa-hamburger:before { + content: "\f805"; } + +.fa-hammer:before { + content: "\f6e3"; } + +.fa-hamsa:before { + content: "\f665"; } + +.fa-hand-holding:before { + content: "\f4bd"; } + +.fa-hand-holding-heart:before { + content: "\f4be"; } + +.fa-hand-holding-medical:before { + content: "\e05c"; } + +.fa-hand-holding-usd:before { + content: "\f4c0"; } + +.fa-hand-holding-water:before { + content: "\f4c1"; } + +.fa-hand-lizard:before { + content: "\f258"; } + +.fa-hand-middle-finger:before { + content: "\f806"; } + +.fa-hand-paper:before { + content: "\f256"; } + +.fa-hand-peace:before { + content: "\f25b"; } + +.fa-hand-point-down:before { + content: "\f0a7"; } + +.fa-hand-point-left:before { + content: "\f0a5"; } + +.fa-hand-point-right:before { + content: "\f0a4"; } + +.fa-hand-point-up:before { + content: "\f0a6"; } + +.fa-hand-pointer:before { + content: "\f25a"; } + +.fa-hand-rock:before { + content: "\f255"; } + +.fa-hand-scissors:before { + content: "\f257"; } + +.fa-hand-sparkles:before { + content: "\e05d"; } + +.fa-hand-spock:before { + content: "\f259"; } + +.fa-hands:before { + content: "\f4c2"; } + +.fa-hands-helping:before { + content: "\f4c4"; } + +.fa-hands-wash:before { + content: "\e05e"; } + +.fa-handshake:before { + content: "\f2b5"; } + +.fa-handshake-alt-slash:before { + content: "\e05f"; } + +.fa-handshake-slash:before { + content: "\e060"; } + +.fa-hanukiah:before { + content: "\f6e6"; } + +.fa-hard-hat:before { + content: "\f807"; } + +.fa-hashtag:before { + content: "\f292"; } + +.fa-hat-cowboy:before { + content: "\f8c0"; } + +.fa-hat-cowboy-side:before { + content: "\f8c1"; } + +.fa-hat-wizard:before { + content: "\f6e8"; } + +.fa-hdd:before { + content: "\f0a0"; } + +.fa-head-side-cough:before { + content: "\e061"; } + +.fa-head-side-cough-slash:before { + content: "\e062"; } + +.fa-head-side-mask:before { + content: "\e063"; } + +.fa-head-side-virus:before { + content: "\e064"; } + +.fa-heading:before { + content: "\f1dc"; } + +.fa-headphones:before { + content: "\f025"; } + +.fa-headphones-alt:before { + content: "\f58f"; } + +.fa-headset:before { + content: "\f590"; } + +.fa-heart:before { + content: "\f004"; } + +.fa-heart-broken:before { + content: "\f7a9"; } + +.fa-heartbeat:before { + content: "\f21e"; } + +.fa-helicopter:before { + content: "\f533"; } + +.fa-highlighter:before { + content: "\f591"; } + +.fa-hiking:before { + content: "\f6ec"; } + +.fa-hippo:before { + content: "\f6ed"; } + +.fa-hips:before { + content: "\f452"; } + +.fa-hire-a-helper:before { + content: "\f3b0"; } + +.fa-history:before { + content: "\f1da"; } + +.fa-hockey-puck:before { + content: "\f453"; } + +.fa-holly-berry:before { + content: "\f7aa"; } + +.fa-home:before { + content: "\f015"; } + +.fa-hooli:before { + content: "\f427"; } + +.fa-hornbill:before { + content: "\f592"; } + +.fa-horse:before { + content: "\f6f0"; } + +.fa-horse-head:before { + content: "\f7ab"; } + +.fa-hospital:before { + content: "\f0f8"; } + +.fa-hospital-alt:before { + content: "\f47d"; } + +.fa-hospital-symbol:before { + content: "\f47e"; } + +.fa-hospital-user:before { + content: "\f80d"; } + +.fa-hot-tub:before { + content: "\f593"; } + +.fa-hotdog:before { + content: "\f80f"; } + +.fa-hotel:before { + content: "\f594"; } + +.fa-hotjar:before { + content: "\f3b1"; } + +.fa-hourglass:before { + content: "\f254"; } + +.fa-hourglass-end:before { + content: "\f253"; } + +.fa-hourglass-half:before { + content: "\f252"; } + +.fa-hourglass-start:before { + content: "\f251"; } + +.fa-house-damage:before { + content: "\f6f1"; } + +.fa-house-user:before { + content: "\e065"; } + +.fa-houzz:before { + content: "\f27c"; } + +.fa-hryvnia:before { + content: "\f6f2"; } + +.fa-html5:before { + content: "\f13b"; } + +.fa-hubspot:before { + content: "\f3b2"; } + +.fa-i-cursor:before { + content: "\f246"; } + +.fa-ice-cream:before { + content: "\f810"; } + +.fa-icicles:before { + content: "\f7ad"; } + +.fa-icons:before { + content: "\f86d"; } + +.fa-id-badge:before { + content: "\f2c1"; } + +.fa-id-card:before { + content: "\f2c2"; } + +.fa-id-card-alt:before { + content: "\f47f"; } + +.fa-ideal:before { + content: "\e013"; } + +.fa-igloo:before { + content: "\f7ae"; } + +.fa-image:before { + content: "\f03e"; } + +.fa-images:before { + content: "\f302"; } + +.fa-imdb:before { + content: "\f2d8"; } + +.fa-inbox:before { + content: "\f01c"; } + +.fa-indent:before { + content: "\f03c"; } + +.fa-industry:before { + content: "\f275"; } + +.fa-infinity:before { + content: "\f534"; } + +.fa-info:before { + content: "\f129"; } + +.fa-info-circle:before { + content: "\f05a"; } + +.fa-instagram:before { + content: "\f16d"; } + +.fa-instagram-square:before { + content: "\e055"; } + +.fa-intercom:before { + content: "\f7af"; } + +.fa-internet-explorer:before { + content: "\f26b"; } + +.fa-invision:before { + content: "\f7b0"; } + +.fa-ioxhost:before { + content: "\f208"; } + +.fa-italic:before { + content: "\f033"; } + +.fa-itch-io:before { + content: "\f83a"; } + +.fa-itunes:before { + content: "\f3b4"; } + +.fa-itunes-note:before { + content: "\f3b5"; } + +.fa-java:before { + content: "\f4e4"; } + +.fa-jedi:before { + content: "\f669"; } + +.fa-jedi-order:before { + content: "\f50e"; } + +.fa-jenkins:before { + content: "\f3b6"; } + +.fa-jira:before { + content: "\f7b1"; } + +.fa-joget:before { + content: "\f3b7"; } + +.fa-joint:before { + content: "\f595"; } + +.fa-joomla:before { + content: "\f1aa"; } + +.fa-journal-whills:before { + content: "\f66a"; } + +.fa-js:before { + content: "\f3b8"; } + +.fa-js-square:before { + content: "\f3b9"; } + +.fa-jsfiddle:before { + content: "\f1cc"; } + +.fa-kaaba:before { + content: "\f66b"; } + +.fa-kaggle:before { + content: "\f5fa"; } + +.fa-key:before { + content: "\f084"; } + +.fa-keybase:before { + content: "\f4f5"; } + +.fa-keyboard:before { + content: "\f11c"; } + +.fa-keycdn:before { + content: "\f3ba"; } + +.fa-khanda:before { + content: "\f66d"; } + +.fa-kickstarter:before { + content: "\f3bb"; } + +.fa-kickstarter-k:before { + content: "\f3bc"; } + +.fa-kiss:before { + content: "\f596"; } + +.fa-kiss-beam:before { + content: "\f597"; } + +.fa-kiss-wink-heart:before { + content: "\f598"; } + +.fa-kiwi-bird:before { + content: "\f535"; } + +.fa-korvue:before { + content: "\f42f"; } + +.fa-landmark:before { + content: "\f66f"; } + +.fa-language:before { + content: "\f1ab"; } + +.fa-laptop:before { + content: "\f109"; } + +.fa-laptop-code:before { + content: "\f5fc"; } + +.fa-laptop-house:before { + content: "\e066"; } + +.fa-laptop-medical:before { + content: "\f812"; } + +.fa-laravel:before { + content: "\f3bd"; } + +.fa-lastfm:before { + content: "\f202"; } + +.fa-lastfm-square:before { + content: "\f203"; } + +.fa-laugh:before { + content: "\f599"; } + +.fa-laugh-beam:before { + content: "\f59a"; } + +.fa-laugh-squint:before { + content: "\f59b"; } + +.fa-laugh-wink:before { + content: "\f59c"; } + +.fa-layer-group:before { + content: "\f5fd"; } + +.fa-leaf:before { + content: "\f06c"; } + +.fa-leanpub:before { + content: "\f212"; } + +.fa-lemon:before { + content: "\f094"; } + +.fa-less:before { + content: "\f41d"; } + +.fa-less-than:before { + content: "\f536"; } + +.fa-less-than-equal:before { + content: "\f537"; } + +.fa-level-down-alt:before { + content: "\f3be"; } + +.fa-level-up-alt:before { + content: "\f3bf"; } + +.fa-life-ring:before { + content: "\f1cd"; } + +.fa-lightbulb:before { + content: "\f0eb"; } + +.fa-line:before { + content: "\f3c0"; } + +.fa-link:before { + content: "\f0c1"; } + +.fa-linkedin:before { + content: "\f08c"; } + +.fa-linkedin-in:before { + content: "\f0e1"; } + +.fa-linode:before { + content: "\f2b8"; } + +.fa-linux:before { + content: "\f17c"; } + +.fa-lira-sign:before { + content: "\f195"; } + +.fa-list:before { + content: "\f03a"; } + +.fa-list-alt:before { + content: "\f022"; } + +.fa-list-ol:before { + content: "\f0cb"; } + +.fa-list-ul:before { + content: "\f0ca"; } + +.fa-location-arrow:before { + content: "\f124"; } + +.fa-lock:before { + content: "\f023"; } + +.fa-lock-open:before { + content: "\f3c1"; } + +.fa-long-arrow-alt-down:before { + content: "\f309"; } + +.fa-long-arrow-alt-left:before { + content: "\f30a"; } + +.fa-long-arrow-alt-right:before { + content: "\f30b"; } + +.fa-long-arrow-alt-up:before { + content: "\f30c"; } + +.fa-low-vision:before { + content: "\f2a8"; } + +.fa-luggage-cart:before { + content: "\f59d"; } + +.fa-lungs:before { + content: "\f604"; } + +.fa-lungs-virus:before { + content: "\e067"; } + +.fa-lyft:before { + content: "\f3c3"; } + +.fa-magento:before { + content: "\f3c4"; } + +.fa-magic:before { + content: "\f0d0"; } + +.fa-magnet:before { + content: "\f076"; } + +.fa-mail-bulk:before { + content: "\f674"; } + +.fa-mailchimp:before { + content: "\f59e"; } + +.fa-male:before { + content: "\f183"; } + +.fa-mandalorian:before { + content: "\f50f"; } + +.fa-map:before { + content: "\f279"; } + +.fa-map-marked:before { + content: "\f59f"; } + +.fa-map-marked-alt:before { + content: "\f5a0"; } + +.fa-map-marker:before { + content: "\f041"; } + +.fa-map-marker-alt:before { + content: "\f3c5"; } + +.fa-map-pin:before { + content: "\f276"; } + +.fa-map-signs:before { + content: "\f277"; } + +.fa-markdown:before { + content: "\f60f"; } + +.fa-marker:before { + content: "\f5a1"; } + +.fa-mars:before { + content: "\f222"; } + +.fa-mars-double:before { + content: "\f227"; } + +.fa-mars-stroke:before { + content: "\f229"; } + +.fa-mars-stroke-h:before { + content: "\f22b"; } + +.fa-mars-stroke-v:before { + content: "\f22a"; } + +.fa-mask:before { + content: "\f6fa"; } + +.fa-mastodon:before { + content: "\f4f6"; } + +.fa-maxcdn:before { + content: "\f136"; } + +.fa-mdb:before { + content: "\f8ca"; } + +.fa-medal:before { + content: "\f5a2"; } + +.fa-medapps:before { + content: "\f3c6"; } + +.fa-medium:before { + content: "\f23a"; } + +.fa-medium-m:before { + content: "\f3c7"; } + +.fa-medkit:before { + content: "\f0fa"; } + +.fa-medrt:before { + content: "\f3c8"; } + +.fa-meetup:before { + content: "\f2e0"; } + +.fa-megaport:before { + content: "\f5a3"; } + +.fa-meh:before { + content: "\f11a"; } + +.fa-meh-blank:before { + content: "\f5a4"; } + +.fa-meh-rolling-eyes:before { + content: "\f5a5"; } + +.fa-memory:before { + content: "\f538"; } + +.fa-mendeley:before { + content: "\f7b3"; } + +.fa-menorah:before { + content: "\f676"; } + +.fa-mercury:before { + content: "\f223"; } + +.fa-meteor:before { + content: "\f753"; } + +.fa-microblog:before { + content: "\e01a"; } + +.fa-microchip:before { + content: "\f2db"; } + +.fa-microphone:before { + content: "\f130"; } + +.fa-microphone-alt:before { + content: "\f3c9"; } + +.fa-microphone-alt-slash:before { + content: "\f539"; } + +.fa-microphone-slash:before { + content: "\f131"; } + +.fa-microscope:before { + content: "\f610"; } + +.fa-microsoft:before { + content: "\f3ca"; } + +.fa-minus:before { + content: "\f068"; } + +.fa-minus-circle:before { + content: "\f056"; } + +.fa-minus-square:before { + content: "\f146"; } + +.fa-mitten:before { + content: "\f7b5"; } + +.fa-mix:before { + content: "\f3cb"; } + +.fa-mixcloud:before { + content: "\f289"; } + +.fa-mixer:before { + content: "\e056"; } + +.fa-mizuni:before { + content: "\f3cc"; } + +.fa-mobile:before { + content: "\f10b"; } + +.fa-mobile-alt:before { + content: "\f3cd"; } + +.fa-modx:before { + content: "\f285"; } + +.fa-monero:before { + content: "\f3d0"; } + +.fa-money-bill:before { + content: "\f0d6"; } + +.fa-money-bill-alt:before { + content: "\f3d1"; } + +.fa-money-bill-wave:before { + content: "\f53a"; } + +.fa-money-bill-wave-alt:before { + content: "\f53b"; } + +.fa-money-check:before { + content: "\f53c"; } + +.fa-money-check-alt:before { + content: "\f53d"; } + +.fa-monument:before { + content: "\f5a6"; } + +.fa-moon:before { + content: "\f186"; } + +.fa-mortar-pestle:before { + content: "\f5a7"; } + +.fa-mosque:before { + content: "\f678"; } + +.fa-motorcycle:before { + content: "\f21c"; } + +.fa-mountain:before { + content: "\f6fc"; } + +.fa-mouse:before { + content: "\f8cc"; } + +.fa-mouse-pointer:before { + content: "\f245"; } + +.fa-mug-hot:before { + content: "\f7b6"; } + +.fa-music:before { + content: "\f001"; } + +.fa-napster:before { + content: "\f3d2"; } + +.fa-neos:before { + content: "\f612"; } + +.fa-network-wired:before { + content: "\f6ff"; } + +.fa-neuter:before { + content: "\f22c"; } + +.fa-newspaper:before { + content: "\f1ea"; } + +.fa-nimblr:before { + content: "\f5a8"; } + +.fa-node:before { + content: "\f419"; } + +.fa-node-js:before { + content: "\f3d3"; } + +.fa-not-equal:before { + content: "\f53e"; } + +.fa-notes-medical:before { + content: "\f481"; } + +.fa-npm:before { + content: "\f3d4"; } + +.fa-ns8:before { + content: "\f3d5"; } + +.fa-nutritionix:before { + content: "\f3d6"; } + +.fa-object-group:before { + content: "\f247"; } + +.fa-object-ungroup:before { + content: "\f248"; } + +.fa-odnoklassniki:before { + content: "\f263"; } + +.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa-oil-can:before { + content: "\f613"; } + +.fa-old-republic:before { + content: "\f510"; } + +.fa-om:before { + content: "\f679"; } + +.fa-opencart:before { + content: "\f23d"; } + +.fa-openid:before { + content: "\f19b"; } + +.fa-opera:before { + content: "\f26a"; } + +.fa-optin-monster:before { + content: "\f23c"; } + +.fa-orcid:before { + content: "\f8d2"; } + +.fa-osi:before { + content: "\f41a"; } + +.fa-otter:before { + content: "\f700"; } + +.fa-outdent:before { + content: "\f03b"; } + +.fa-page4:before { + content: "\f3d7"; } + +.fa-pagelines:before { + content: "\f18c"; } + +.fa-pager:before { + content: "\f815"; } + +.fa-paint-brush:before { + content: "\f1fc"; } + +.fa-paint-roller:before { + content: "\f5aa"; } + +.fa-palette:before { + content: "\f53f"; } + +.fa-palfed:before { + content: "\f3d8"; } + +.fa-pallet:before { + content: "\f482"; } + +.fa-paper-plane:before { + content: "\f1d8"; } + +.fa-paperclip:before { + content: "\f0c6"; } + +.fa-parachute-box:before { + content: "\f4cd"; } + +.fa-paragraph:before { + content: "\f1dd"; } + +.fa-parking:before { + content: "\f540"; } + +.fa-passport:before { + content: "\f5ab"; } + +.fa-pastafarianism:before { + content: "\f67b"; } + +.fa-paste:before { + content: "\f0ea"; } + +.fa-patreon:before { + content: "\f3d9"; } + +.fa-pause:before { + content: "\f04c"; } + +.fa-pause-circle:before { + content: "\f28b"; } + +.fa-paw:before { + content: "\f1b0"; } + +.fa-paypal:before { + content: "\f1ed"; } + +.fa-peace:before { + content: "\f67c"; } + +.fa-pen:before { + content: "\f304"; } + +.fa-pen-alt:before { + content: "\f305"; } + +.fa-pen-fancy:before { + content: "\f5ac"; } + +.fa-pen-nib:before { + content: "\f5ad"; } + +.fa-pen-square:before { + content: "\f14b"; } + +.fa-pencil-alt:before { + content: "\f303"; } + +.fa-pencil-ruler:before { + content: "\f5ae"; } + +.fa-penny-arcade:before { + content: "\f704"; } + +.fa-people-arrows:before { + content: "\e068"; } + +.fa-people-carry:before { + content: "\f4ce"; } + +.fa-pepper-hot:before { + content: "\f816"; } + +.fa-percent:before { + content: "\f295"; } + +.fa-percentage:before { + content: "\f541"; } + +.fa-periscope:before { + content: "\f3da"; } + +.fa-person-booth:before { + content: "\f756"; } + +.fa-phabricator:before { + content: "\f3db"; } + +.fa-phoenix-framework:before { + content: "\f3dc"; } + +.fa-phoenix-squadron:before { + content: "\f511"; } + +.fa-phone:before { + content: "\f095"; } + +.fa-phone-alt:before { + content: "\f879"; } + +.fa-phone-slash:before { + content: "\f3dd"; } + +.fa-phone-square:before { + content: "\f098"; } + +.fa-phone-square-alt:before { + content: "\f87b"; } + +.fa-phone-volume:before { + content: "\f2a0"; } + +.fa-photo-video:before { + content: "\f87c"; } + +.fa-php:before { + content: "\f457"; } + +.fa-pied-piper:before { + content: "\f2ae"; } + +.fa-pied-piper-alt:before { + content: "\f1a8"; } + +.fa-pied-piper-hat:before { + content: "\f4e5"; } + +.fa-pied-piper-pp:before { + content: "\f1a7"; } + +.fa-pied-piper-square:before { + content: "\e01e"; } + +.fa-piggy-bank:before { + content: "\f4d3"; } + +.fa-pills:before { + content: "\f484"; } + +.fa-pinterest:before { + content: "\f0d2"; } + +.fa-pinterest-p:before { + content: "\f231"; } + +.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa-pizza-slice:before { + content: "\f818"; } + +.fa-place-of-worship:before { + content: "\f67f"; } + +.fa-plane:before { + content: "\f072"; } + +.fa-plane-arrival:before { + content: "\f5af"; } + +.fa-plane-departure:before { + content: "\f5b0"; } + +.fa-plane-slash:before { + content: "\e069"; } + +.fa-play:before { + content: "\f04b"; } + +.fa-play-circle:before { + content: "\f144"; } + +.fa-playstation:before { + content: "\f3df"; } + +.fa-plug:before { + content: "\f1e6"; } + +.fa-plus:before { + content: "\f067"; } + +.fa-plus-circle:before { + content: "\f055"; } + +.fa-plus-square:before { + content: "\f0fe"; } + +.fa-podcast:before { + content: "\f2ce"; } + +.fa-poll:before { + content: "\f681"; } + +.fa-poll-h:before { + content: "\f682"; } + +.fa-poo:before { + content: "\f2fe"; } + +.fa-poo-storm:before { + content: "\f75a"; } + +.fa-poop:before { + content: "\f619"; } + +.fa-portrait:before { + content: "\f3e0"; } + +.fa-pound-sign:before { + content: "\f154"; } + +.fa-power-off:before { + content: "\f011"; } + +.fa-pray:before { + content: "\f683"; } + +.fa-praying-hands:before { + content: "\f684"; } + +.fa-prescription:before { + content: "\f5b1"; } + +.fa-prescription-bottle:before { + content: "\f485"; } + +.fa-prescription-bottle-alt:before { + content: "\f486"; } + +.fa-print:before { + content: "\f02f"; } + +.fa-procedures:before { + content: "\f487"; } + +.fa-product-hunt:before { + content: "\f288"; } + +.fa-project-diagram:before { + content: "\f542"; } + +.fa-pump-medical:before { + content: "\e06a"; } + +.fa-pump-soap:before { + content: "\e06b"; } + +.fa-pushed:before { + content: "\f3e1"; } + +.fa-puzzle-piece:before { + content: "\f12e"; } + +.fa-python:before { + content: "\f3e2"; } + +.fa-qq:before { + content: "\f1d6"; } + +.fa-qrcode:before { + content: "\f029"; } + +.fa-question:before { + content: "\f128"; } + +.fa-question-circle:before { + content: "\f059"; } + +.fa-quidditch:before { + content: "\f458"; } + +.fa-quinscape:before { + content: "\f459"; } + +.fa-quora:before { + content: "\f2c4"; } + +.fa-quote-left:before { + content: "\f10d"; } + +.fa-quote-right:before { + content: "\f10e"; } + +.fa-quran:before { + content: "\f687"; } + +.fa-r-project:before { + content: "\f4f7"; } + +.fa-radiation:before { + content: "\f7b9"; } + +.fa-radiation-alt:before { + content: "\f7ba"; } + +.fa-rainbow:before { + content: "\f75b"; } + +.fa-random:before { + content: "\f074"; } + +.fa-raspberry-pi:before { + content: "\f7bb"; } + +.fa-ravelry:before { + content: "\f2d9"; } + +.fa-react:before { + content: "\f41b"; } + +.fa-reacteurope:before { + content: "\f75d"; } + +.fa-readme:before { + content: "\f4d5"; } + +.fa-rebel:before { + content: "\f1d0"; } + +.fa-receipt:before { + content: "\f543"; } + +.fa-record-vinyl:before { + content: "\f8d9"; } + +.fa-recycle:before { + content: "\f1b8"; } + +.fa-red-river:before { + content: "\f3e3"; } + +.fa-reddit:before { + content: "\f1a1"; } + +.fa-reddit-alien:before { + content: "\f281"; } + +.fa-reddit-square:before { + content: "\f1a2"; } + +.fa-redhat:before { + content: "\f7bc"; } + +.fa-redo:before { + content: "\f01e"; } + +.fa-redo-alt:before { + content: "\f2f9"; } + +.fa-registered:before { + content: "\f25d"; } + +.fa-remove-format:before { + content: "\f87d"; } + +.fa-renren:before { + content: "\f18b"; } + +.fa-reply:before { + content: "\f3e5"; } + +.fa-reply-all:before { + content: "\f122"; } + +.fa-replyd:before { + content: "\f3e6"; } + +.fa-republican:before { + content: "\f75e"; } + +.fa-researchgate:before { + content: "\f4f8"; } + +.fa-resolving:before { + content: "\f3e7"; } + +.fa-restroom:before { + content: "\f7bd"; } + +.fa-retweet:before { + content: "\f079"; } + +.fa-rev:before { + content: "\f5b2"; } + +.fa-ribbon:before { + content: "\f4d6"; } + +.fa-ring:before { + content: "\f70b"; } + +.fa-road:before { + content: "\f018"; } + +.fa-robot:before { + content: "\f544"; } + +.fa-rocket:before { + content: "\f135"; } + +.fa-rocketchat:before { + content: "\f3e8"; } + +.fa-rockrms:before { + content: "\f3e9"; } + +.fa-route:before { + content: "\f4d7"; } + +.fa-rss:before { + content: "\f09e"; } + +.fa-rss-square:before { + content: "\f143"; } + +.fa-ruble-sign:before { + content: "\f158"; } + +.fa-ruler:before { + content: "\f545"; } + +.fa-ruler-combined:before { + content: "\f546"; } + +.fa-ruler-horizontal:before { + content: "\f547"; } + +.fa-ruler-vertical:before { + content: "\f548"; } + +.fa-running:before { + content: "\f70c"; } + +.fa-rupee-sign:before { + content: "\f156"; } + +.fa-rust:before { + content: "\e07a"; } + +.fa-sad-cry:before { + content: "\f5b3"; } + +.fa-sad-tear:before { + content: "\f5b4"; } + +.fa-safari:before { + content: "\f267"; } + +.fa-salesforce:before { + content: "\f83b"; } + +.fa-sass:before { + content: "\f41e"; } + +.fa-satellite:before { + content: "\f7bf"; } + +.fa-satellite-dish:before { + content: "\f7c0"; } + +.fa-save:before { + content: "\f0c7"; } + +.fa-schlix:before { + content: "\f3ea"; } + +.fa-school:before { + content: "\f549"; } + +.fa-screwdriver:before { + content: "\f54a"; } + +.fa-scribd:before { + content: "\f28a"; } + +.fa-scroll:before { + content: "\f70e"; } + +.fa-sd-card:before { + content: "\f7c2"; } + +.fa-search:before { + content: "\f002"; } + +.fa-search-dollar:before { + content: "\f688"; } + +.fa-search-location:before { + content: "\f689"; } + +.fa-search-minus:before { + content: "\f010"; } + +.fa-search-plus:before { + content: "\f00e"; } + +.fa-searchengin:before { + content: "\f3eb"; } + +.fa-seedling:before { + content: "\f4d8"; } + +.fa-sellcast:before { + content: "\f2da"; } + +.fa-sellsy:before { + content: "\f213"; } + +.fa-server:before { + content: "\f233"; } + +.fa-servicestack:before { + content: "\f3ec"; } + +.fa-shapes:before { + content: "\f61f"; } + +.fa-share:before { + content: "\f064"; } + +.fa-share-alt:before { + content: "\f1e0"; } + +.fa-share-alt-square:before { + content: "\f1e1"; } + +.fa-share-square:before { + content: "\f14d"; } + +.fa-shekel-sign:before { + content: "\f20b"; } + +.fa-shield-alt:before { + content: "\f3ed"; } + +.fa-shield-virus:before { + content: "\e06c"; } + +.fa-ship:before { + content: "\f21a"; } + +.fa-shipping-fast:before { + content: "\f48b"; } + +.fa-shirtsinbulk:before { + content: "\f214"; } + +.fa-shoe-prints:before { + content: "\f54b"; } + +.fa-shopify:before { + content: "\e057"; } + +.fa-shopping-bag:before { + content: "\f290"; } + +.fa-shopping-basket:before { + content: "\f291"; } + +.fa-shopping-cart:before { + content: "\f07a"; } + +.fa-shopware:before { + content: "\f5b5"; } + +.fa-shower:before { + content: "\f2cc"; } + +.fa-shuttle-van:before { + content: "\f5b6"; } + +.fa-sign:before { + content: "\f4d9"; } + +.fa-sign-in-alt:before { + content: "\f2f6"; } + +.fa-sign-language:before { + content: "\f2a7"; } + +.fa-sign-out-alt:before { + content: "\f2f5"; } + +.fa-signal:before { + content: "\f012"; } + +.fa-signature:before { + content: "\f5b7"; } + +.fa-sim-card:before { + content: "\f7c4"; } + +.fa-simplybuilt:before { + content: "\f215"; } + +.fa-sink:before { + content: "\e06d"; } + +.fa-sistrix:before { + content: "\f3ee"; } + +.fa-sitemap:before { + content: "\f0e8"; } + +.fa-sith:before { + content: "\f512"; } + +.fa-skating:before { + content: "\f7c5"; } + +.fa-sketch:before { + content: "\f7c6"; } + +.fa-skiing:before { + content: "\f7c9"; } + +.fa-skiing-nordic:before { + content: "\f7ca"; } + +.fa-skull:before { + content: "\f54c"; } + +.fa-skull-crossbones:before { + content: "\f714"; } + +.fa-skyatlas:before { + content: "\f216"; } + +.fa-skype:before { + content: "\f17e"; } + +.fa-slack:before { + content: "\f198"; } + +.fa-slack-hash:before { + content: "\f3ef"; } + +.fa-slash:before { + content: "\f715"; } + +.fa-sleigh:before { + content: "\f7cc"; } + +.fa-sliders-h:before { + content: "\f1de"; } + +.fa-slideshare:before { + content: "\f1e7"; } + +.fa-smile:before { + content: "\f118"; } + +.fa-smile-beam:before { + content: "\f5b8"; } + +.fa-smile-wink:before { + content: "\f4da"; } + +.fa-smog:before { + content: "\f75f"; } + +.fa-smoking:before { + content: "\f48d"; } + +.fa-smoking-ban:before { + content: "\f54d"; } + +.fa-sms:before { + content: "\f7cd"; } + +.fa-snapchat:before { + content: "\f2ab"; } + +.fa-snapchat-ghost:before { + content: "\f2ac"; } + +.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa-snowboarding:before { + content: "\f7ce"; } + +.fa-snowflake:before { + content: "\f2dc"; } + +.fa-snowman:before { + content: "\f7d0"; } + +.fa-snowplow:before { + content: "\f7d2"; } + +.fa-soap:before { + content: "\e06e"; } + +.fa-socks:before { + content: "\f696"; } + +.fa-solar-panel:before { + content: "\f5ba"; } + +.fa-sort:before { + content: "\f0dc"; } + +.fa-sort-alpha-down:before { + content: "\f15d"; } + +.fa-sort-alpha-down-alt:before { + content: "\f881"; } + +.fa-sort-alpha-up:before { + content: "\f15e"; } + +.fa-sort-alpha-up-alt:before { + content: "\f882"; } + +.fa-sort-amount-down:before { + content: "\f160"; } + +.fa-sort-amount-down-alt:before { + content: "\f884"; } + +.fa-sort-amount-up:before { + content: "\f161"; } + +.fa-sort-amount-up-alt:before { + content: "\f885"; } + +.fa-sort-down:before { + content: "\f0dd"; } + +.fa-sort-numeric-down:before { + content: "\f162"; } + +.fa-sort-numeric-down-alt:before { + content: "\f886"; } + +.fa-sort-numeric-up:before { + content: "\f163"; } + +.fa-sort-numeric-up-alt:before { + content: "\f887"; } + +.fa-sort-up:before { + content: "\f0de"; } + +.fa-soundcloud:before { + content: "\f1be"; } + +.fa-sourcetree:before { + content: "\f7d3"; } + +.fa-spa:before { + content: "\f5bb"; } + +.fa-space-shuttle:before { + content: "\f197"; } + +.fa-speakap:before { + content: "\f3f3"; } + +.fa-speaker-deck:before { + content: "\f83c"; } + +.fa-spell-check:before { + content: "\f891"; } + +.fa-spider:before { + content: "\f717"; } + +.fa-spinner:before { + content: "\f110"; } + +.fa-splotch:before { + content: "\f5bc"; } + +.fa-spotify:before { + content: "\f1bc"; } + +.fa-spray-can:before { + content: "\f5bd"; } + +.fa-square:before { + content: "\f0c8"; } + +.fa-square-full:before { + content: "\f45c"; } + +.fa-square-root-alt:before { + content: "\f698"; } + +.fa-squarespace:before { + content: "\f5be"; } + +.fa-stack-exchange:before { + content: "\f18d"; } + +.fa-stack-overflow:before { + content: "\f16c"; } + +.fa-stackpath:before { + content: "\f842"; } + +.fa-stamp:before { + content: "\f5bf"; } + +.fa-star:before { + content: "\f005"; } + +.fa-star-and-crescent:before { + content: "\f699"; } + +.fa-star-half:before { + content: "\f089"; } + +.fa-star-half-alt:before { + content: "\f5c0"; } + +.fa-star-of-david:before { + content: "\f69a"; } + +.fa-star-of-life:before { + content: "\f621"; } + +.fa-staylinked:before { + content: "\f3f5"; } + +.fa-steam:before { + content: "\f1b6"; } + +.fa-steam-square:before { + content: "\f1b7"; } + +.fa-steam-symbol:before { + content: "\f3f6"; } + +.fa-step-backward:before { + content: "\f048"; } + +.fa-step-forward:before { + content: "\f051"; } + +.fa-stethoscope:before { + content: "\f0f1"; } + +.fa-sticker-mule:before { + content: "\f3f7"; } + +.fa-sticky-note:before { + content: "\f249"; } + +.fa-stop:before { + content: "\f04d"; } + +.fa-stop-circle:before { + content: "\f28d"; } + +.fa-stopwatch:before { + content: "\f2f2"; } + +.fa-stopwatch-20:before { + content: "\e06f"; } + +.fa-store:before { + content: "\f54e"; } + +.fa-store-alt:before { + content: "\f54f"; } + +.fa-store-alt-slash:before { + content: "\e070"; } + +.fa-store-slash:before { + content: "\e071"; } + +.fa-strava:before { + content: "\f428"; } + +.fa-stream:before { + content: "\f550"; } + +.fa-street-view:before { + content: "\f21d"; } + +.fa-strikethrough:before { + content: "\f0cc"; } + +.fa-stripe:before { + content: "\f429"; } + +.fa-stripe-s:before { + content: "\f42a"; } + +.fa-stroopwafel:before { + content: "\f551"; } + +.fa-studiovinari:before { + content: "\f3f8"; } + +.fa-stumbleupon:before { + content: "\f1a4"; } + +.fa-stumbleupon-circle:before { + content: "\f1a3"; } + +.fa-subscript:before { + content: "\f12c"; } + +.fa-subway:before { + content: "\f239"; } + +.fa-suitcase:before { + content: "\f0f2"; } + +.fa-suitcase-rolling:before { + content: "\f5c1"; } + +.fa-sun:before { + content: "\f185"; } + +.fa-superpowers:before { + content: "\f2dd"; } + +.fa-superscript:before { + content: "\f12b"; } + +.fa-supple:before { + content: "\f3f9"; } + +.fa-surprise:before { + content: "\f5c2"; } + +.fa-suse:before { + content: "\f7d6"; } + +.fa-swatchbook:before { + content: "\f5c3"; } + +.fa-swift:before { + content: "\f8e1"; } + +.fa-swimmer:before { + content: "\f5c4"; } + +.fa-swimming-pool:before { + content: "\f5c5"; } + +.fa-symfony:before { + content: "\f83d"; } + +.fa-synagogue:before { + content: "\f69b"; } + +.fa-sync:before { + content: "\f021"; } + +.fa-sync-alt:before { + content: "\f2f1"; } + +.fa-syringe:before { + content: "\f48e"; } + +.fa-table:before { + content: "\f0ce"; } + +.fa-table-tennis:before { + content: "\f45d"; } + +.fa-tablet:before { + content: "\f10a"; } + +.fa-tablet-alt:before { + content: "\f3fa"; } + +.fa-tablets:before { + content: "\f490"; } + +.fa-tachometer-alt:before { + content: "\f3fd"; } + +.fa-tag:before { + content: "\f02b"; } + +.fa-tags:before { + content: "\f02c"; } + +.fa-tape:before { + content: "\f4db"; } + +.fa-tasks:before { + content: "\f0ae"; } + +.fa-taxi:before { + content: "\f1ba"; } + +.fa-teamspeak:before { + content: "\f4f9"; } + +.fa-teeth:before { + content: "\f62e"; } + +.fa-teeth-open:before { + content: "\f62f"; } + +.fa-telegram:before { + content: "\f2c6"; } + +.fa-telegram-plane:before { + content: "\f3fe"; } + +.fa-temperature-high:before { + content: "\f769"; } + +.fa-temperature-low:before { + content: "\f76b"; } + +.fa-tencent-weibo:before { + content: "\f1d5"; } + +.fa-tenge:before { + content: "\f7d7"; } + +.fa-terminal:before { + content: "\f120"; } + +.fa-text-height:before { + content: "\f034"; } + +.fa-text-width:before { + content: "\f035"; } + +.fa-th:before { + content: "\f00a"; } + +.fa-th-large:before { + content: "\f009"; } + +.fa-th-list:before { + content: "\f00b"; } + +.fa-the-red-yeti:before { + content: "\f69d"; } + +.fa-theater-masks:before { + content: "\f630"; } + +.fa-themeco:before { + content: "\f5c6"; } + +.fa-themeisle:before { + content: "\f2b2"; } + +.fa-thermometer:before { + content: "\f491"; } + +.fa-thermometer-empty:before { + content: "\f2cb"; } + +.fa-thermometer-full:before { + content: "\f2c7"; } + +.fa-thermometer-half:before { + content: "\f2c9"; } + +.fa-thermometer-quarter:before { + content: "\f2ca"; } + +.fa-thermometer-three-quarters:before { + content: "\f2c8"; } + +.fa-think-peaks:before { + content: "\f731"; } + +.fa-thumbs-down:before { + content: "\f165"; } + +.fa-thumbs-up:before { + content: "\f164"; } + +.fa-thumbtack:before { + content: "\f08d"; } + +.fa-ticket-alt:before { + content: "\f3ff"; } + +.fa-tiktok:before { + content: "\e07b"; } + +.fa-times:before { + content: "\f00d"; } + +.fa-times-circle:before { + content: "\f057"; } + +.fa-tint:before { + content: "\f043"; } + +.fa-tint-slash:before { + content: "\f5c7"; } + +.fa-tired:before { + content: "\f5c8"; } + +.fa-toggle-off:before { + content: "\f204"; } + +.fa-toggle-on:before { + content: "\f205"; } + +.fa-toilet:before { + content: "\f7d8"; } + +.fa-toilet-paper:before { + content: "\f71e"; } + +.fa-toilet-paper-slash:before { + content: "\e072"; } + +.fa-toolbox:before { + content: "\f552"; } + +.fa-tools:before { + content: "\f7d9"; } + +.fa-tooth:before { + content: "\f5c9"; } + +.fa-torah:before { + content: "\f6a0"; } + +.fa-torii-gate:before { + content: "\f6a1"; } + +.fa-tractor:before { + content: "\f722"; } + +.fa-trade-federation:before { + content: "\f513"; } + +.fa-trademark:before { + content: "\f25c"; } + +.fa-traffic-light:before { + content: "\f637"; } + +.fa-trailer:before { + content: "\e041"; } + +.fa-train:before { + content: "\f238"; } + +.fa-tram:before { + content: "\f7da"; } + +.fa-transgender:before { + content: "\f224"; } + +.fa-transgender-alt:before { + content: "\f225"; } + +.fa-trash:before { + content: "\f1f8"; } + +.fa-trash-alt:before { + content: "\f2ed"; } + +.fa-trash-restore:before { + content: "\f829"; } + +.fa-trash-restore-alt:before { + content: "\f82a"; } + +.fa-tree:before { + content: "\f1bb"; } + +.fa-trello:before { + content: "\f181"; } + +.fa-tripadvisor:before { + content: "\f262"; } + +.fa-trophy:before { + content: "\f091"; } + +.fa-truck:before { + content: "\f0d1"; } + +.fa-truck-loading:before { + content: "\f4de"; } + +.fa-truck-monster:before { + content: "\f63b"; } + +.fa-truck-moving:before { + content: "\f4df"; } + +.fa-truck-pickup:before { + content: "\f63c"; } + +.fa-tshirt:before { + content: "\f553"; } + +.fa-tty:before { + content: "\f1e4"; } + +.fa-tumblr:before { + content: "\f173"; } + +.fa-tumblr-square:before { + content: "\f174"; } + +.fa-tv:before { + content: "\f26c"; } + +.fa-twitch:before { + content: "\f1e8"; } + +.fa-twitter:before { + content: "\f099"; } + +.fa-twitter-square:before { + content: "\f081"; } + +.fa-typo3:before { + content: "\f42b"; } + +.fa-uber:before { + content: "\f402"; } + +.fa-ubuntu:before { + content: "\f7df"; } + +.fa-uikit:before { + content: "\f403"; } + +.fa-umbraco:before { + content: "\f8e8"; } + +.fa-umbrella:before { + content: "\f0e9"; } + +.fa-umbrella-beach:before { + content: "\f5ca"; } + +.fa-underline:before { + content: "\f0cd"; } + +.fa-undo:before { + content: "\f0e2"; } + +.fa-undo-alt:before { + content: "\f2ea"; } + +.fa-uniregistry:before { + content: "\f404"; } + +.fa-unity:before { + content: "\e049"; } + +.fa-universal-access:before { + content: "\f29a"; } + +.fa-university:before { + content: "\f19c"; } + +.fa-unlink:before { + content: "\f127"; } + +.fa-unlock:before { + content: "\f09c"; } + +.fa-unlock-alt:before { + content: "\f13e"; } + +.fa-unsplash:before { + content: "\e07c"; } + +.fa-untappd:before { + content: "\f405"; } + +.fa-upload:before { + content: "\f093"; } + +.fa-ups:before { + content: "\f7e0"; } + +.fa-usb:before { + content: "\f287"; } + +.fa-user:before { + content: "\f007"; } + +.fa-user-alt:before { + content: "\f406"; } + +.fa-user-alt-slash:before { + content: "\f4fa"; } + +.fa-user-astronaut:before { + content: "\f4fb"; } + +.fa-user-check:before { + content: "\f4fc"; } + +.fa-user-circle:before { + content: "\f2bd"; } + +.fa-user-clock:before { + content: "\f4fd"; } + +.fa-user-cog:before { + content: "\f4fe"; } + +.fa-user-edit:before { + content: "\f4ff"; } + +.fa-user-friends:before { + content: "\f500"; } + +.fa-user-graduate:before { + content: "\f501"; } + +.fa-user-injured:before { + content: "\f728"; } + +.fa-user-lock:before { + content: "\f502"; } + +.fa-user-md:before { + content: "\f0f0"; } + +.fa-user-minus:before { + content: "\f503"; } + +.fa-user-ninja:before { + content: "\f504"; } + +.fa-user-nurse:before { + content: "\f82f"; } + +.fa-user-plus:before { + content: "\f234"; } + +.fa-user-secret:before { + content: "\f21b"; } + +.fa-user-shield:before { + content: "\f505"; } + +.fa-user-slash:before { + content: "\f506"; } + +.fa-user-tag:before { + content: "\f507"; } + +.fa-user-tie:before { + content: "\f508"; } + +.fa-user-times:before { + content: "\f235"; } + +.fa-users:before { + content: "\f0c0"; } + +.fa-users-cog:before { + content: "\f509"; } + +.fa-users-slash:before { + content: "\e073"; } + +.fa-usps:before { + content: "\f7e1"; } + +.fa-ussunnah:before { + content: "\f407"; } + +.fa-utensil-spoon:before { + content: "\f2e5"; } + +.fa-utensils:before { + content: "\f2e7"; } + +.fa-vaadin:before { + content: "\f408"; } + +.fa-vector-square:before { + content: "\f5cb"; } + +.fa-venus:before { + content: "\f221"; } + +.fa-venus-double:before { + content: "\f226"; } + +.fa-venus-mars:before { + content: "\f228"; } + +.fa-viacoin:before { + content: "\f237"; } + +.fa-viadeo:before { + content: "\f2a9"; } + +.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa-vial:before { + content: "\f492"; } + +.fa-vials:before { + content: "\f493"; } + +.fa-viber:before { + content: "\f409"; } + +.fa-video:before { + content: "\f03d"; } + +.fa-video-slash:before { + content: "\f4e2"; } + +.fa-vihara:before { + content: "\f6a7"; } + +.fa-vimeo:before { + content: "\f40a"; } + +.fa-vimeo-square:before { + content: "\f194"; } + +.fa-vimeo-v:before { + content: "\f27d"; } + +.fa-vine:before { + content: "\f1ca"; } + +.fa-virus:before { + content: "\e074"; } + +.fa-virus-slash:before { + content: "\e075"; } + +.fa-viruses:before { + content: "\e076"; } + +.fa-vk:before { + content: "\f189"; } + +.fa-vnv:before { + content: "\f40b"; } + +.fa-voicemail:before { + content: "\f897"; } + +.fa-volleyball-ball:before { + content: "\f45f"; } + +.fa-volume-down:before { + content: "\f027"; } + +.fa-volume-mute:before { + content: "\f6a9"; } + +.fa-volume-off:before { + content: "\f026"; } + +.fa-volume-up:before { + content: "\f028"; } + +.fa-vote-yea:before { + content: "\f772"; } + +.fa-vr-cardboard:before { + content: "\f729"; } + +.fa-vuejs:before { + content: "\f41f"; } + +.fa-walking:before { + content: "\f554"; } + +.fa-wallet:before { + content: "\f555"; } + +.fa-warehouse:before { + content: "\f494"; } + +.fa-water:before { + content: "\f773"; } + +.fa-wave-square:before { + content: "\f83e"; } + +.fa-waze:before { + content: "\f83f"; } + +.fa-weebly:before { + content: "\f5cc"; } + +.fa-weibo:before { + content: "\f18a"; } + +.fa-weight:before { + content: "\f496"; } + +.fa-weight-hanging:before { + content: "\f5cd"; } + +.fa-weixin:before { + content: "\f1d7"; } + +.fa-whatsapp:before { + content: "\f232"; } + +.fa-whatsapp-square:before { + content: "\f40c"; } + +.fa-wheelchair:before { + content: "\f193"; } + +.fa-whmcs:before { + content: "\f40d"; } + +.fa-wifi:before { + content: "\f1eb"; } + +.fa-wikipedia-w:before { + content: "\f266"; } + +.fa-wind:before { + content: "\f72e"; } + +.fa-window-close:before { + content: "\f410"; } + +.fa-window-maximize:before { + content: "\f2d0"; } + +.fa-window-minimize:before { + content: "\f2d1"; } + +.fa-window-restore:before { + content: "\f2d2"; } + +.fa-windows:before { + content: "\f17a"; } + +.fa-wine-bottle:before { + content: "\f72f"; } + +.fa-wine-glass:before { + content: "\f4e3"; } + +.fa-wine-glass-alt:before { + content: "\f5ce"; } + +.fa-wix:before { + content: "\f5cf"; } + +.fa-wizards-of-the-coast:before { + content: "\f730"; } + +.fa-wolf-pack-battalion:before { + content: "\f514"; } + +.fa-won-sign:before { + content: "\f159"; } + +.fa-wordpress:before { + content: "\f19a"; } + +.fa-wordpress-simple:before { + content: "\f411"; } + +.fa-wpbeginner:before { + content: "\f297"; } + +.fa-wpexplorer:before { + content: "\f2de"; } + +.fa-wpforms:before { + content: "\f298"; } + +.fa-wpressr:before { + content: "\f3e4"; } + +.fa-wrench:before { + content: "\f0ad"; } + +.fa-x-ray:before { + content: "\f497"; } + +.fa-xbox:before { + content: "\f412"; } + +.fa-xing:before { + content: "\f168"; } + +.fa-xing-square:before { + content: "\f169"; } + +.fa-y-combinator:before { + content: "\f23b"; } + +.fa-yahoo:before { + content: "\f19e"; } + +.fa-yammer:before { + content: "\f840"; } + +.fa-yandex:before { + content: "\f413"; } + +.fa-yandex-international:before { + content: "\f414"; } + +.fa-yarn:before { + content: "\f7e3"; } + +.fa-yelp:before { + content: "\f1e9"; } + +.fa-yen-sign:before { + content: "\f157"; } + +.fa-yin-yang:before { + content: "\f6ad"; } + +.fa-yoast:before { + content: "\f2b1"; } + +.fa-youtube:before { + content: "\f167"; } + +.fa-youtube-square:before { + content: "\f431"; } + +.fa-zhihu:before { + content: "\f63f"; } + +.sr-only { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } + +.sr-only-focusable:active, .sr-only-focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; } + +/*! + * Font Awesome Free 5.14.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url("../webfonts/fa-solid-900.eot"); + src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); } + +.fa, +.fas { + font-family: 'Font Awesome 5 Free'; + font-weight: 900; } + +/*! + * Font Awesome Free 5.14.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-brands-400.eot"); + src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); } + +.fab { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + +.td-border-top { + border: none; + border-top: 1px solid #eee; } + +.td-border-none { + border: none; } + +.td-block-padding, .td-default main section { + padding-top: 4rem; + padding-bottom: 4rem; } + @media (min-width: 768px) { + .td-block-padding, .td-default main section { + padding-top: 5rem; + padding-bottom: 5rem; } } +.td-overlay { + position: relative; } + .td-overlay::after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; } + .td-overlay--dark::after { + background-color: rgba(64, 63, 76, 0.3); } + .td-overlay--light::after { + background-color: rgba(211, 243, 238, 0.3); } + .td-overlay__inner { + position: relative; + z-index: 1; } + +@media (min-width: 992px) { + .td-max-width-on-larger-screens, .td-content > pre, .td-content > .highlight, .td-content > .lead, .td-content > h1, .td-content > h2, .td-content > ul, .td-content > ol, .td-content > p, .td-content > blockquote, .td-content > dl dd, .td-content .footnotes, .td-content > .alert { + max-width: 80%; } } + +.-bg-blue { + color: #fff; + background-color: #72A1E5; } + +.-bg-blue p > a { + color: #a0c0ee; } + .-bg-blue p > a:hover { + color: #1e53a0; } + +.-text-blue { + color: #72A1E5; } + +.-bg-indigo { + color: #fff; + background-color: #6610f2; } + +.-bg-indigo p > a { + color: #b8cff2; } + .-bg-indigo p > a:hover { + color: #1e53a0; } + +.-text-indigo { + color: #6610f2; } + +.-bg-purple { + color: #fff; + background-color: #6f42c1; } + +.-bg-purple p > a { + color: #b7cff2; } + .-bg-purple p > a:hover { + color: #1e53a0; } + +.-text-purple { + color: #6f42c1; } + +.-bg-pink { + color: #fff; + background-color: #e83e8c; } + +.-bg-pink p > a { + color: #aec9f0; } + .-bg-pink p > a:hover { + color: #1e53a0; } + +.-text-pink { + color: #e83e8c; } + +.-bg-red { + color: #fff; + background-color: #dc3545; } + +.-bg-red p > a { + color: #b4cdf1; } + .-bg-red p > a:hover { + color: #1e53a0; } + +.-text-red { + color: #dc3545; } + +.-bg-orange { + color: #fff; + background-color: #BA5A31; } + +.-bg-orange p > a { + color: #bed4f3; } + .-bg-orange p > a:hover { + color: #1e53a0; } + +.-text-orange { + color: #BA5A31; } + +.-bg-yellow { + color: #fff; + background-color: #ffc107; } + +.-bg-yellow p > a { + color: #b7cff2; } + .-bg-yellow p > a:hover { + color: #1e53a0; } + +.-text-yellow { + color: #ffc107; } + +.-bg-green { + color: #fff; + background-color: #28a745; } + +.-bg-green p > a { + color: #c6d9f4; } + .-bg-green p > a:hover { + color: #1e53a0; } + +.-text-green { + color: #28a745; } + +.-bg-teal { + color: #fff; + background-color: #20c997; } + +.-bg-teal p > a { + color: #bfd4f3; } + .-bg-teal p > a:hover { + color: #1e53a0; } + +.-text-teal { + color: #20c997; } + +.-bg-cyan { + color: #fff; + background-color: #17a2b8; } + +.-bg-cyan p > a { + color: #c6d9f4; } + .-bg-cyan p > a:hover { + color: #1e53a0; } + +.-text-cyan { + color: #17a2b8; } + +.-bg-white { + color: #222; + background-color: #fff; } + +.-bg-white p > a { + color: #72a1e5; } + .-bg-white p > a:hover { + color: #1e53a0; } + +.-text-white { + color: #fff; } + +.-bg-gray { + color: #fff; + background-color: #888; } + +.-bg-gray p > a { + color: #b4cdf1; } + .-bg-gray p > a:hover { + color: #1e53a0; } + +.-text-gray { + color: #888; } + +.-bg-gray-dark { + color: #fff; + background-color: #333; } + +.-bg-gray-dark p > a { + color: #e3ecfa; } + .-bg-gray-dark p > a:hover { + color: #1e53a0; } + +.-text-gray-dark { + color: #333; } + +.-bg-primary { + color: #fff; + background-color: #0D2192; } + +.-bg-primary p > a { + color: #d3e2f7; } + .-bg-primary p > a:hover { + color: #1e53a0; } + +.-text-primary { + color: #0D2192; } + +.-bg-secondary { + color: #fff; + background-color: #1F329A; } + +.-bg-secondary p > a { + color: #ccddf6; } + .-bg-secondary p > a:hover { + color: #1e53a0; } + +.-text-secondary { + color: #1F329A; } + +.-bg-success { + color: #fff; + background-color: #3772FF; } + +.-bg-success p > a { + color: #a9c6ef; } + .-bg-success p > a:hover { + color: #1e53a0; } + +.-text-success { + color: #3772FF; } + +.-bg-info { + color: #222; + background-color: #C0E0DE; } + +.-bg-info p > a { + color: #638ac1; } + .-bg-info p > a:hover { + color: #1e53a0; } + +.-text-info { + color: #C0E0DE; } + +.-bg-warning { + color: #fff; + background-color: #ED6A5A; } + +.-bg-warning p > a { + color: #a5c3ee; } + .-bg-warning p > a:hover { + color: #1e53a0; } + +.-text-warning { + color: #ED6A5A; } + +.-bg-danger { + color: #fff; + background-color: #ED6A5A; } + +.-bg-danger p > a { + color: #a5c3ee; } + .-bg-danger p > a:hover { + color: #1e53a0; } + +.-text-danger { + color: #ED6A5A; } + +.-bg-light { + color: #222; + background-color: #D3F3EE; } + +.-bg-light p > a { + color: #6993d0; } + .-bg-light p > a:hover { + color: #1e53a0; } + +.-text-light { + color: #D3F3EE; } + +.-bg-dark { + color: #fff; + background-color: #403F4C; } + +.-bg-dark p > a { + color: #d9e5f8; } + .-bg-dark p > a:hover { + color: #1e53a0; } + +.-text-dark { + color: #403F4C; } + +.-bg-100 { + color: #222; + background-color: #f8f9fa; } + +.-bg-100 p > a { + color: #709ee0; } + .-bg-100 p > a:hover { + color: #1e53a0; } + +.-text-100 { + color: #f8f9fa; } + +.-bg-200 { + color: #222; + background-color: #eee; } + +.-bg-200 p > a { + color: #6d99d8; } + .-bg-200 p > a:hover { + color: #1e53a0; } + +.-text-200 { + color: #eee; } + +.-bg-300 { + color: #222; + background-color: #dee2e6; } + +.-bg-300 p > a { + color: #6993cf; } + .-bg-300 p > a:hover { + color: #1e53a0; } + +.-text-300 { + color: #dee2e6; } + +.-bg-400 { + color: #222; + background-color: #ccc; } + +.-bg-400 p > a { + color: #6288be; } + .-bg-400 p > a:hover { + color: #1e53a0; } + +.-text-400 { + color: #ccc; } + +.-bg-500 { + color: #fff; + background-color: #adb5bd; } + +.-bg-500 p > a { + color: #9bbced; } + .-bg-500 p > a:hover { + color: #1e53a0; } + +.-text-500 { + color: #adb5bd; } + +.-bg-600 { + color: #fff; + background-color: #888; } + +.-bg-600 p > a { + color: #b4cdf1; } + .-bg-600 p > a:hover { + color: #1e53a0; } + +.-text-600 { + color: #888; } + +.-bg-700 { + color: #fff; + background-color: #495057; } + +.-bg-700 p > a { + color: #d3e2f7; } + .-bg-700 p > a:hover { + color: #1e53a0; } + +.-text-700 { + color: #495057; } + +.-bg-800 { + color: #fff; + background-color: #333; } + +.-bg-800 p > a { + color: #e3ecfa; } + .-bg-800 p > a:hover { + color: #1e53a0; } + +.-text-800 { + color: #333; } + +.-bg-900 { + color: #fff; + background-color: #222; } + +.-bg-900 p > a { + color: #ecf2fc; } + .-bg-900 p > a:hover { + color: #1e53a0; } + +.-text-900 { + color: #222; } + +.-bg-0 { + color: #fff; + background-color: #403F4C; } + +.-bg-0 p > a { + color: #d9e5f8; } + .-bg-0 p > a:hover { + color: #1e53a0; } + +.-text-0 { + color: #403F4C; } + +.-bg-1 { + color: #fff; + background-color: #0D2192; } + +.-bg-1 p > a { + color: #d3e2f7; } + .-bg-1 p > a:hover { + color: #1e53a0; } + +.-text-1 { + color: #0D2192; } + +.-bg-2 { + color: #fff; + background-color: #1F329A; } + +.-bg-2 p > a { + color: #ccddf6; } + .-bg-2 p > a:hover { + color: #1e53a0; } + +.-text-2 { + color: #1F329A; } + +.-bg-3 { + color: #222; + background-color: #C0E0DE; } + +.-bg-3 p > a { + color: #638ac1; } + .-bg-3 p > a:hover { + color: #1e53a0; } + +.-text-3 { + color: #C0E0DE; } + +.-bg-4 { + color: #222; + background-color: white; } + +.-bg-4 p > a { + color: #72a1e5; } + .-bg-4 p > a:hover { + color: #1e53a0; } + +.-text-4 { + color: white; } + +.-bg-5 { + color: #fff; + background-color: #888; } + +.-bg-5 p > a { + color: #b4cdf1; } + .-bg-5 p > a:hover { + color: #1e53a0; } + +.-text-5 { + color: #888; } + +.-bg-6 { + color: #fff; + background-color: #3772FF; } + +.-bg-6 p > a { + color: #a9c6ef; } + .-bg-6 p > a:hover { + color: #1e53a0; } + +.-text-6 { + color: #3772FF; } + +.-bg-7 { + color: #fff; + background-color: #ED6A5A; } + +.-bg-7 p > a { + color: #a5c3ee; } + .-bg-7 p > a:hover { + color: #1e53a0; } + +.-text-7 { + color: #ED6A5A; } + +.-bg-8 { + color: #fff; + background-color: #403F4C; } + +.-bg-8 p > a { + color: #d9e5f8; } + .-bg-8 p > a:hover { + color: #1e53a0; } + +.-text-8 { + color: #403F4C; } + +.-bg-9 { + color: #fff; + background-color: #ED6A5A; } + +.-bg-9 p > a { + color: #a5c3ee; } + .-bg-9 p > a:hover { + color: #1e53a0; } + +.-text-9 { + color: #ED6A5A; } + +.-bg-10 { + color: #fff; + background-color: #0D2192; } + +.-bg-10 p > a { + color: #d3e2f7; } + .-bg-10 p > a:hover { + color: #1e53a0; } + +.-text-10 { + color: #0D2192; } + +.-bg-11 { + color: #fff; + background-color: #1F329A; } + +.-bg-11 p > a { + color: #ccddf6; } + .-bg-11 p > a:hover { + color: #1e53a0; } + +.-text-11 { + color: #1F329A; } + +.-bg-12 { + color: #222; + background-color: white; } + +.-bg-12 p > a { + color: #72a1e5; } + .-bg-12 p > a:hover { + color: #1e53a0; } + +.-text-12 { + color: white; } + +.-bg-13 { + color: #222; + background-color: #C0E0DE; } + +.-bg-13 p > a { + color: #638ac1; } + .-bg-13 p > a:hover { + color: #1e53a0; } + +.-text-13 { + color: #C0E0DE; } + +.td-box--height-min { + min-height: 300px; } + +.td-box--height-med { + min-height: 400px; } + +.td-box--height-max { + min-height: 500px; } + +.td-box--height-full { + min-height: 100vh; } + +@media (min-width: 768px) { + .td-box--height-min { + min-height: 450px; } + .td-box--height-med { + min-height: 500px; } + .td-box--height-max { + min-height: 650px; } } + +.td-box .row.section { + padding-left: 5rem; + padding-right: 5rem; + flex-direction: column; } + +.td-box .row { + padding-left: 5rem; + padding-right: 5rem; + flex-direction: row; } + +.td-box.linkbox { + padding: 5rem; } + +.td-box--0 { + color: #fff; + background-color: #403F4C; } + .td-box--0 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #403F4C transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--0 p > a { + color: #d9e5f8; } + .td-box--0 p > a:hover { + color: #1e53a0; } + +.td-box--10.td-box--gradient { + background: #403F4C linear-gradient(180deg, #5d5c67, #403F4C) repeat-x !important; } + +.td-box--1 { + color: #fff; + background-color: #0D2192; } + .td-box--1 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #0D2192 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--1 p > a { + color: #d3e2f7; } + .td-box--1 p > a:hover { + color: #1e53a0; } + +.td-box--11.td-box--gradient { + background: #0D2192 linear-gradient(180deg, #3142a2, #0D2192) repeat-x !important; } + +.td-box--2 { + color: #fff; + background-color: #1F329A; } + .td-box--2 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #1F329A transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--2 p > a { + color: #ccddf6; } + .td-box--2 p > a:hover { + color: #1e53a0; } + +.td-box--12.td-box--gradient { + background: #1F329A linear-gradient(180deg, #4151a9, #1F329A) repeat-x !important; } + +.td-box--3 { + color: #222; + background-color: #C0E0DE; } + .td-box--3 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #C0E0DE transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--3 p > a { + color: #638ac1; } + .td-box--3 p > a:hover { + color: #1e53a0; } + +.td-box--13.td-box--gradient { + background: #C0E0DE linear-gradient(180deg, #c9e5e3, #C0E0DE) repeat-x !important; } + +.td-box--4 { + color: #222; + background-color: white; } + .td-box--4 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: white transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--4 p > a { + color: #72a1e5; } + .td-box--4 p > a:hover { + color: #1e53a0; } + +.td-box--14.td-box--gradient { + background: white linear-gradient(180deg, white, white) repeat-x !important; } + +.td-box--5 { + color: #fff; + background-color: #888; } + .td-box--5 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #888 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--5 p > a { + color: #b4cdf1; } + .td-box--5 p > a:hover { + color: #1e53a0; } + +.td-box--15.td-box--gradient { + background: #888 linear-gradient(180deg, #9a9a9a, #888) repeat-x !important; } + +.td-box--6 { + color: #fff; + background-color: #3772FF; } + .td-box--6 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #3772FF transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--6 p > a { + color: #a9c6ef; } + .td-box--6 p > a:hover { + color: #1e53a0; } + +.td-box--16.td-box--gradient { + background: #3772FF linear-gradient(180deg, #5587ff, #3772FF) repeat-x !important; } + +.td-box--7 { + color: #fff; + background-color: #ED6A5A; } + .td-box--7 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #ED6A5A transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--7 p > a { + color: #a5c3ee; } + .td-box--7 p > a:hover { + color: #1e53a0; } + +.td-box--17.td-box--gradient { + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x !important; } + +.td-box--8 { + color: #fff; + background-color: #403F4C; } + .td-box--8 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #403F4C transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--8 p > a { + color: #d9e5f8; } + .td-box--8 p > a:hover { + color: #1e53a0; } + +.td-box--18.td-box--gradient { + background: #403F4C linear-gradient(180deg, #5d5c67, #403F4C) repeat-x !important; } + +.td-box--9 { + color: #fff; + background-color: #ED6A5A; } + .td-box--9 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #ED6A5A transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--9 p > a { + color: #a5c3ee; } + .td-box--9 p > a:hover { + color: #1e53a0; } + +.td-box--19.td-box--gradient { + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x !important; } + +.td-box--10 { + color: #fff; + background-color: #0D2192; } + .td-box--10 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #0D2192 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--10 p > a { + color: #d3e2f7; } + .td-box--10 p > a:hover { + color: #1e53a0; } + +.td-box--110.td-box--gradient { + background: #0D2192 linear-gradient(180deg, #3142a2, #0D2192) repeat-x !important; } + +.td-box--11 { + color: #fff; + background-color: #1F329A; } + .td-box--11 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #1F329A transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--11 p > a { + color: #ccddf6; } + .td-box--11 p > a:hover { + color: #1e53a0; } + +.td-box--111.td-box--gradient { + background: #1F329A linear-gradient(180deg, #4151a9, #1F329A) repeat-x !important; } + +.td-box--12 { + color: #222; + background-color: white; } + .td-box--12 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: white transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--12 p > a { + color: #72a1e5; } + .td-box--12 p > a:hover { + color: #1e53a0; } + +.td-box--112.td-box--gradient { + background: white linear-gradient(180deg, white, white) repeat-x !important; } + +.td-box--13 { + color: #222; + background-color: #C0E0DE; } + .td-box--13 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #C0E0DE transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--13 p > a { + color: #638ac1; } + .td-box--13 p > a:hover { + color: #1e53a0; } + +.td-box--113.td-box--gradient { + background: #C0E0DE linear-gradient(180deg, #c9e5e3, #C0E0DE) repeat-x !important; } + +.td-box--blue { + color: #fff; + background-color: #72A1E5; } + .td-box--blue .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #72A1E5 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--blue p > a { + color: #a0c0ee; } + .td-box--blue p > a:hover { + color: #1e53a0; } + +.td-box--1blue.td-box--gradient { + background: #72A1E5 linear-gradient(180deg, #87afe9, #72A1E5) repeat-x !important; } + +.td-box--indigo { + color: #fff; + background-color: #6610f2; } + .td-box--indigo .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #6610f2 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--indigo p > a { + color: #b8cff2; } + .td-box--indigo p > a:hover { + color: #1e53a0; } + +.td-box--1indigo.td-box--gradient { + background: #6610f2 linear-gradient(180deg, #7d34f4, #6610f2) repeat-x !important; } + +.td-box--purple { + color: #fff; + background-color: #6f42c1; } + .td-box--purple .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #6f42c1 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--purple p > a { + color: #b7cff2; } + .td-box--purple p > a:hover { + color: #1e53a0; } + +.td-box--1purple.td-box--gradient { + background: #6f42c1 linear-gradient(180deg, #855eca, #6f42c1) repeat-x !important; } + +.td-box--pink { + color: #fff; + background-color: #e83e8c; } + .td-box--pink .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #e83e8c transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--pink p > a { + color: #aec9f0; } + .td-box--pink p > a:hover { + color: #1e53a0; } + +.td-box--1pink.td-box--gradient { + background: #e83e8c linear-gradient(180deg, #eb5b9d, #e83e8c) repeat-x !important; } + +.td-box--red { + color: #fff; + background-color: #dc3545; } + .td-box--red .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #dc3545 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--red p > a { + color: #b4cdf1; } + .td-box--red p > a:hover { + color: #1e53a0; } + +.td-box--1red.td-box--gradient { + background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important; } + +.td-box--orange { + color: #fff; + background-color: #BA5A31; } + .td-box--orange .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #BA5A31 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--orange p > a { + color: #bed4f3; } + .td-box--orange p > a:hover { + color: #1e53a0; } + +.td-box--1orange.td-box--gradient { + background: #BA5A31 linear-gradient(180deg, #c47350, #BA5A31) repeat-x !important; } + +.td-box--yellow { + color: #fff; + background-color: #ffc107; } + .td-box--yellow .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #ffc107 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--yellow p > a { + color: #b7cff2; } + .td-box--yellow p > a:hover { + color: #1e53a0; } + +.td-box--1yellow.td-box--gradient { + background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important; } + +.td-box--green { + color: #fff; + background-color: #28a745; } + .td-box--green .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #28a745 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--green p > a { + color: #c6d9f4; } + .td-box--green p > a:hover { + color: #1e53a0; } + +.td-box--1green.td-box--gradient { + background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important; } + +.td-box--teal { + color: #fff; + background-color: #20c997; } + .td-box--teal .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #20c997 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--teal p > a { + color: #bfd4f3; } + .td-box--teal p > a:hover { + color: #1e53a0; } + +.td-box--1teal.td-box--gradient { + background: #20c997 linear-gradient(180deg, #41d1a7, #20c997) repeat-x !important; } + +.td-box--cyan { + color: #fff; + background-color: #17a2b8; } + .td-box--cyan .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #17a2b8 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--cyan p > a { + color: #c6d9f4; } + .td-box--cyan p > a:hover { + color: #1e53a0; } + +.td-box--1cyan.td-box--gradient { + background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important; } + +.td-box--white { + color: #222; + background-color: #fff; } + .td-box--white .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #fff transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--white p > a { + color: #72a1e5; } + .td-box--white p > a:hover { + color: #1e53a0; } + +.td-box--1white.td-box--gradient { + background: #fff linear-gradient(180deg, white, #fff) repeat-x !important; } + +.td-box--gray { + color: #fff; + background-color: #888; } + .td-box--gray .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #888 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--gray p > a { + color: #b4cdf1; } + .td-box--gray p > a:hover { + color: #1e53a0; } + +.td-box--1gray.td-box--gradient { + background: #888 linear-gradient(180deg, #9a9a9a, #888) repeat-x !important; } + +.td-box--gray-dark { + color: #fff; + background-color: #333; } + .td-box--gray-dark .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #333 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--gray-dark p > a { + color: #e3ecfa; } + .td-box--gray-dark p > a:hover { + color: #1e53a0; } + +.td-box--1gray-dark.td-box--gradient { + background: #333 linear-gradient(180deg, #525252, #333) repeat-x !important; } + +.td-box--primary { + color: #fff; + background-color: #0D2192; } + .td-box--primary .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #0D2192 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--primary p > a { + color: #d3e2f7; } + .td-box--primary p > a:hover { + color: #1e53a0; } + +.td-box--1primary.td-box--gradient { + background: #0D2192 linear-gradient(180deg, #3142a2, #0D2192) repeat-x !important; } + +.td-box--secondary { + color: #fff; + background-color: #1F329A; } + .td-box--secondary .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #1F329A transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--secondary p > a { + color: #ccddf6; } + .td-box--secondary p > a:hover { + color: #1e53a0; } + +.td-box--1secondary.td-box--gradient { + background: #1F329A linear-gradient(180deg, #4151a9, #1F329A) repeat-x !important; } + +.td-box--success { + color: #fff; + background-color: #3772FF; } + .td-box--success .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #3772FF transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--success p > a { + color: #a9c6ef; } + .td-box--success p > a:hover { + color: #1e53a0; } + +.td-box--1success.td-box--gradient { + background: #3772FF linear-gradient(180deg, #5587ff, #3772FF) repeat-x !important; } + +.td-box--info { + color: #222; + background-color: #C0E0DE; } + .td-box--info .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #C0E0DE transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--info p > a { + color: #638ac1; } + .td-box--info p > a:hover { + color: #1e53a0; } + +.td-box--1info.td-box--gradient { + background: #C0E0DE linear-gradient(180deg, #c9e5e3, #C0E0DE) repeat-x !important; } + +.td-box--warning { + color: #fff; + background-color: #ED6A5A; } + .td-box--warning .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #ED6A5A transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--warning p > a { + color: #a5c3ee; } + .td-box--warning p > a:hover { + color: #1e53a0; } + +.td-box--1warning.td-box--gradient { + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x !important; } + +.td-box--danger { + color: #fff; + background-color: #ED6A5A; } + .td-box--danger .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #ED6A5A transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--danger p > a { + color: #a5c3ee; } + .td-box--danger p > a:hover { + color: #1e53a0; } + +.td-box--1danger.td-box--gradient { + background: #ED6A5A linear-gradient(180deg, #f08073, #ED6A5A) repeat-x !important; } + +.td-box--light { + color: #222; + background-color: #D3F3EE; } + .td-box--light .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #D3F3EE transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--light p > a { + color: #6993d0; } + .td-box--light p > a:hover { + color: #1e53a0; } + +.td-box--1light.td-box--gradient { + background: #D3F3EE linear-gradient(180deg, #daf5f1, #D3F3EE) repeat-x !important; } + +.td-box--dark { + color: #fff; + background-color: #403F4C; } + .td-box--dark .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #403F4C transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--dark p > a { + color: #d9e5f8; } + .td-box--dark p > a:hover { + color: #1e53a0; } + +.td-box--1dark.td-box--gradient { + background: #403F4C linear-gradient(180deg, #5d5c67, #403F4C) repeat-x !important; } + +.td-box--100 { + color: #222; + background-color: #f8f9fa; } + .td-box--100 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #f8f9fa transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--100 p > a { + color: #709ee0; } + .td-box--100 p > a:hover { + color: #1e53a0; } + +.td-box--1100.td-box--gradient { + background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important; } + +.td-box--200 { + color: #222; + background-color: #eee; } + .td-box--200 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #eee transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--200 p > a { + color: #6d99d8; } + .td-box--200 p > a:hover { + color: #1e53a0; } + +.td-box--1200.td-box--gradient { + background: #eee linear-gradient(180deg, #f1f1f1, #eee) repeat-x !important; } + +.td-box--300 { + color: #222; + background-color: #dee2e6; } + .td-box--300 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #dee2e6 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--300 p > a { + color: #6993cf; } + .td-box--300 p > a:hover { + color: #1e53a0; } + +.td-box--1300.td-box--gradient { + background: #dee2e6 linear-gradient(180deg, #e3e6ea, #dee2e6) repeat-x !important; } + +.td-box--400 { + color: #222; + background-color: #ccc; } + .td-box--400 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #ccc transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--400 p > a { + color: #6288be; } + .td-box--400 p > a:hover { + color: #1e53a0; } + +.td-box--1400.td-box--gradient { + background: #ccc linear-gradient(180deg, #d4d4d4, #ccc) repeat-x !important; } + +.td-box--500 { + color: #fff; + background-color: #adb5bd; } + .td-box--500 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #adb5bd transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--500 p > a { + color: #9bbced; } + .td-box--500 p > a:hover { + color: #1e53a0; } + +.td-box--1500.td-box--gradient { + background: #adb5bd linear-gradient(180deg, #b9c0c7, #adb5bd) repeat-x !important; } + +.td-box--600 { + color: #fff; + background-color: #888; } + .td-box--600 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #888 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--600 p > a { + color: #b4cdf1; } + .td-box--600 p > a:hover { + color: #1e53a0; } + +.td-box--1600.td-box--gradient { + background: #888 linear-gradient(180deg, #9a9a9a, #888) repeat-x !important; } + +.td-box--700 { + color: #fff; + background-color: #495057; } + .td-box--700 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #495057 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--700 p > a { + color: #d3e2f7; } + .td-box--700 p > a:hover { + color: #1e53a0; } + +.td-box--1700.td-box--gradient { + background: #495057 linear-gradient(180deg, #646a70, #495057) repeat-x !important; } + +.td-box--800 { + color: #fff; + background-color: #333; } + .td-box--800 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #333 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--800 p > a { + color: #e3ecfa; } + .td-box--800 p > a:hover { + color: #1e53a0; } + +.td-box--1800.td-box--gradient { + background: #333 linear-gradient(180deg, #525252, #333) repeat-x !important; } + +.td-box--900 { + color: #fff; + background-color: #222; } + .td-box--900 .td-arrow-down::before { + left: 50%; + margin-left: -30px; + bottom: -25px; + border-style: solid; + border-width: 25px 30px 0 30px; + border-color: #222 transparent transparent transparent; + z-index: 3; + position: absolute; + content: ""; } + +.td-box--900 p > a { + color: #ecf2fc; } + .td-box--900 p > a:hover { + color: #1e53a0; } + +.td-box--1900.td-box--gradient { + background: #222 linear-gradient(180deg, #434343, #222) repeat-x !important; } + +.td-blog .td-rss-button { + position: absolute; + top: 5.5rem; + right: 1rem; + z-index: 22; } + +.td-content .highlight { + margin: 2rem 0; + padding: 0; } + .td-content .highlight pre { + margin: 0; + padding: 1rem; } + +.td-content p code, .td-content li > code, .td-content table code { + color: inherit; + padding: 0.2em 0.4em; + margin: 0; + font-size: 85%; + word-break: normal; + background-color: rgba(0, 0, 0, 0.05); + border-radius: 0.25rem; } + .td-content p code br, .td-content li > code br, .td-content table code br { + display: none; } + +.td-content pre { + word-wrap: normal; + background-color: #f8f9fa; + padding: 1rem; } + .td-content pre > code { + background-color: inherit !important; + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + border: 0; } + +.td-navbar-cover { + background: #0D2192; } + @media (min-width: 768px) { + .td-navbar-cover { + background: transparent !important; } + .td-navbar-cover .nav-link { + text-shadow: 1px 1px 2px #403F4C; } } + .td-navbar-cover.navbar-bg-onscroll .nav-link { + text-shadow: none; } + +.navbar-bg-onscroll { + background: #0D2192 !important; + opacity: inherit; } + +.td-navbar { + background: #0D2192; + min-height: 4rem; + margin: 0; + z-index: 32; } + @media (min-width: 768px) { + .td-navbar { + position: fixed; + top: 0; + width: 100%; } } + .td-navbar .navbar-brand { + text-transform: none !important; + text-align: middle; } + .td-navbar .navbar-brand .nav-link { + display: inline-block; + margin-right: -30px; } + .td-navbar .navbar-brand svg { + display: inline-block; + margin-right: 5px; + margin-left: 5px; + margin-top: 0px; + margin-bottom: 0px; + height: 40px; + width: 40px; } + .td-navbar .nav-link { + text-transform: none !important; + font-weight: 700; } + .td-navbar .td-search-input { + border: none; } + .td-navbar .td-search-input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.75); } + .td-navbar .td-search-input:-moz-placeholder { + color: rgba(255, 255, 255, 0.75); } + .td-navbar .td-search-input::-moz-placeholder { + color: rgba(255, 255, 255, 0.75); } + .td-navbar .td-search-input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.75); } + .td-navbar .dropdown { + min-width: 100px; } + @media (max-width: 991.98px) { + .td-navbar { + padding-right: .5rem; + padding-left: .75rem; } + .td-navbar .td-navbar-nav-scroll { + max-width: 100%; + height: 2.5rem; + margin-top: .25rem; + overflow: hidden; + font-size: .875rem; } + .td-navbar .td-navbar-nav-scroll .nav-link { + padding-right: .25rem; + padding-left: 0; } + .td-navbar .td-navbar-nav-scroll .navbar-nav { + padding-bottom: 2rem; + overflow-x: auto; + white-space: nowrap; + -webkit-overflow-scrolling: touch; } } +.td-sidebar-nav { + padding-right: 0.5rem; + margin-right: -15px; + margin-left: -15px; } + @media (min-width: 768px) { + @supports (position: sticky) { + .td-sidebar-nav { + max-height: calc(100vh - 10rem); + overflow-y: auto; } } } + @media (min-width: 768px) { + .td-sidebar-nav { + display: block !important; } } + .td-sidebar-nav__section { + padding-left: 0; } + .td-sidebar-nav__section li { + list-style: none; } + .td-sidebar-nav__section ul { + padding: 0; + margin: 0; } + @media (min-width: 768px) { + .td-sidebar-nav__section > ul { + padding-left: .5rem; } } + .td-sidebar-nav__section-title { + display: block; + font-weight: 500; } + .td-sidebar-nav__section-title .active { + font-weight: 700; } + .td-sidebar-nav__section-title a { + color: #222; } + .td-sidebar-nav .td-sidebar-link { + display: block; + padding-bottom: 0.375rem; } + .td-sidebar-nav .td-sidebar-link__page { + color: #495057; + font-weight: 300; } + .td-sidebar-nav a:hover { + color: #72A1E5; + text-decoration: none; } + .td-sidebar-nav a.active { + font-weight: 700; } + .td-sidebar-nav .dropdown a { + color: #495057; } + .td-sidebar-nav .dropdown .nav-link { + padding: 0 0 1rem; } + .td-sidebar-nav > .td-sidebar-nav__section { + padding-top: .5rem; + padding-left: 1.5rem; } + +.td-sidebar { + padding-bottom: 1rem; } + @media (min-width: 768px) { + .td-sidebar { + padding-top: 4rem; + background-color: rgba(13, 33, 146, 0.03); + padding-right: 1rem; + border-right: 1px solid #dee2e6; } } + .td-sidebar__toggle { + line-height: 1; + color: #222; + margin: 1rem; } + .td-sidebar__search { + padding: 1rem 15px; + margin-right: -15px; + margin-left: -15px; } + .td-sidebar__inner { + order: 0; } + @media (min-width: 768px) { + @supports (position: sticky) { + .td-sidebar__inner { + position: sticky; + top: 4rem; + z-index: 10; + height: calc(100vh - 6rem); } } } + @media (min-width: 1200px) { + .td-sidebar__inner { + flex: 0 1 320px; } } + .td-sidebar__inner .td-search-box { + width: 100%; } + .td-sidebar #content-desktop { + display: block; } + .td-sidebar #content-mobile { + display: none; } + @media (max-width: 991.98px) { + .td-sidebar #content-desktop { + display: none; } + .td-sidebar #content-mobile { + display: block; } } +.td-toc { + border-left: 1px solid #dee2e6; + order: 2; + padding-top: 0.75rem; + padding-bottom: 1.5rem; + vertical-align: top; } + @supports (position: sticky) { + .td-toc { + position: sticky; + top: 4rem; + height: calc(100vh - 10rem); + overflow-y: auto; } } + .td-toc a { + display: block; + font-weight: 300; + padding-bottom: .25rem; } + .td-toc li { + list-style: none; + display: block; } + .td-toc li li { + margin-left: 0.5rem; } + .td-toc .td-page-meta a { + font-weight: 500; } + .td-toc #TableOfContents a { + color: #888; } + .td-toc #TableOfContents a:hover { + color: #72A1E5; + text-decoration: none; } + .td-toc ul { + padding-left: 0; } + +.btn { + border-radius: 1rem; } + .btn-lg, .btn-group-lg > .btn { + border-radius: 2rem; } + .btn-sm, .btn-group-sm > .btn { + border-radius: 1rem; } + +.breadcrumb { + background: none; + padding-left: 0; + padding-top: 0; } + +.alert { + font-weight: 500; + background: #fff; + color: inherit; + border-radius: 0; } + .alert-primary { + border-style: solid; + border-color: #0D2192; + border-width: 0 0 0 4px; } + .alert-primary .alert-heading { + color: #0D2192; } + .alert-secondary { + border-style: solid; + border-color: #1F329A; + border-width: 0 0 0 4px; } + .alert-secondary .alert-heading { + color: #1F329A; } + .alert-success { + border-style: solid; + border-color: #3772FF; + border-width: 0 0 0 4px; } + .alert-success .alert-heading { + color: #3772FF; } + .alert-info { + border-style: solid; + border-color: #C0E0DE; + border-width: 0 0 0 4px; } + .alert-info .alert-heading { + color: #C0E0DE; } + .alert-warning { + border-style: solid; + border-color: #ED6A5A; + border-width: 0 0 0 4px; } + .alert-warning .alert-heading { + color: #ED6A5A; } + .alert-danger { + border-style: solid; + border-color: #ED6A5A; + border-width: 0 0 0 4px; } + .alert-danger .alert-heading { + color: #ED6A5A; } + .alert-light { + border-style: solid; + border-color: #D3F3EE; + border-width: 0 0 0 4px; } + .alert-light .alert-heading { + color: #D3F3EE; } + .alert-dark { + border-style: solid; + border-color: #403F4C; + border-width: 0 0 0 4px; } + .alert-dark .alert-heading { + color: #403F4C; } + +.td-content { + order: 1; } + .td-content p, .td-content li, .td-content td { + font-weight: 400; } + .td-content > h1 { + font-weight: 700; + margin-bottom: 1rem; } + .td-content > h2 { + margin-bottom: 1rem; } + .td-content > h2:not(:first-child) { + margin-top: 3rem; } + .td-content > h2 + h3 { + margin-top: 1rem; } + .td-content > h3, .td-content > h4, .td-content > h5, .td-content > h6 { + margin-bottom: 1rem; + margin-top: 2rem; } + .td-content > blockquote { + padding: 0 0 0 1rem; + margin-bottom: 1rem; + color: #888; + border-left: 6px solid #1F329A; } + .td-content > ul li, .td-content > ol li { + margin-bottom: .25rem; } + .td-content strong { + font-weight: 700; } + .td-content .alert:not(:first-child) { + margin-top: 2rem; + margin-bottom: 2rem; } + .td-content .lead { + margin-bottom: 1.5rem; } + +.td-title { + margin-top: 1rem; + margin-bottom: .5rem; } + @media (min-width: 576px) { + .td-title { + font-size: 3rem; } } +.td-search-input { + background: transparent; + border-radius: 1rem; + font-family: "Font Awesome 5 Free", "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; } + .td-search-input.form-control:focus { + border-color: #d6dbfb; + box-shadow: 0 0 0 2px #4962ef; } + +.popover.offline-search-result { + max-width: 90%; } + .popover.offline-search-result .card, .popover.offline-search-result .td-content .highlight, .td-content .popover.offline-search-result .highlight { + margin-bottom: 0.5rem; } + .popover.offline-search-result .card .card-header, .popover.offline-search-result .td-content .highlight .card-header, .td-content .popover.offline-search-result .highlight .card-header { + font-weight: bold; } + +.td-outer { + display: flex; + flex-direction: column; + height: 100vh; } + +@media (min-width: 768px) { + .td-default main section:first-of-type { + padding-top: 8rem; } } + +.td-main { + flex-grow: 1; } + .td-main main { + padding-bottom: 2rem; } + @media (min-width: 768px) { + .td-main main { + padding-top: 5.5rem; } } +.td-cover-block--height-min { + min-height: 300px; } + +.td-cover-block--height-med { + min-height: 400px; } + +.td-cover-block--height-max { + min-height: 500px; } + +.td-cover-block--height-full { + min-height: 100vh; } + +@media (min-width: 768px) { + .td-cover-block--height-min { + min-height: 450px; } + .td-cover-block--height-med { + min-height: 500px; } + .td-cover-block--height-max { + min-height: 650px; } } + +.td-cover-logo { + margin-right: 0.5em; } + +.td-cover-block { + position: relative; + padding-top: 5rem; + padding-bottom: 5rem; + background-repeat: no-repeat; + background-position: 50% 0; + background-size: cover; } + .td-cover-block > .byline { + position: absolute; + bottom: 2px; + right: 4px; } + +.td-bg-arrow-wrapper { + position: relative; } + +.section-index .entry { + padding: .75rem; } + +.section-index h5 { + margin-bottom: 0; } + .section-index h5 a { + font-weight: 700; } + +.section-index p { + margin-top: 0; } + +.pageinfo { + font-weight: 500; + background: #f8f9fa; + color: inherit; + border-radius: 0; + margin: 2rem; + padding: 1.5rem; + padding-bottom: 0.5rem; } + .pageinfo-primary { + border-style: solid; + border-color: #0D2192; } + .pageinfo-secondary { + border-style: solid; + border-color: #1F329A; } + .pageinfo-success { + border-style: solid; + border-color: #3772FF; } + .pageinfo-info { + border-style: solid; + border-color: #C0E0DE; } + .pageinfo-warning { + border-style: solid; + border-color: #ED6A5A; } + .pageinfo-danger { + border-style: solid; + border-color: #ED6A5A; } + .pageinfo-light { + border-style: solid; + border-color: #D3F3EE; } + .pageinfo-dark { + border-style: solid; + border-color: #403F4C; } + +footer { + min-height: 150px; } + @media (max-width: 991.98px) { + footer { + min-height: 200px; } } +@media (min-width: 768px) { + .td-offset-anchor:target { + display: block; + position: relative; + top: -4rem; + visibility: hidden; } + h2[id]:before, h3[id]:before, h4[id]:before, h5[id]:before { + display: block; + content: " "; + margin-top: -5rem; + height: 5rem; + visibility: hidden; } } + +/* + +Nothing defined here. The Hugo project that uses this theme can override Bootstrap by adding a file to: + +assets/scss/_styles_project.scss + +*/ + +/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/daprdocs/resources/_gen/assets/scss/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.json b/daprdocs/resources/_gen/assets/scss/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.json new file mode 100644 index 000000000..e2e3d4cf5 --- /dev/null +++ b/daprdocs/resources/_gen/assets/scss/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.json @@ -0,0 +1 @@ +{"Target":"scss/main.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/daprdocs/static/favicons/favicon.ico b/daprdocs/static/favicons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d17d9e7847940fa5f1a976162b1d6966229a791b GIT binary patch literal 1150 zcmZQzU<5(|0R|wcz>vYhz#zuJz@P!dKp~(AL>x#lFaYJy!Tvy$SU zE$LAQ7djigf@3FxSF=qNUl4=$lx5A{Ut6$bZG^`;5T0$S^lPSp?ElFs0{KpEc~vm wU7C7kW`7+BpPtrRcVa>t2EMX#VKQ=<4}CTRF#jVktbBOD&cJ{TBdZ0m0ow?sga7~l literal 0 HcmV?d00001