From 6d2fca9a77e4a39d8d0d410017639c2b771aafaa Mon Sep 17 00:00:00 2001 From: Florian Date: Tue, 28 Oct 2025 09:06:40 +0100 Subject: [PATCH] Initial commit --- pom.xml | 222 + .../petclinic/api/ApiGatewayApplication.java | 90 + .../application/CustomersServiceClient.java | 41 + .../api/application/VisitsServiceClient.java | 57 + .../boundary/web/ApiGatewayController.java | 83 + .../api/boundary/web/FallbackController.java | 16 + .../petclinic/api/dto/OwnerDetails.java | 97 + .../samples/petclinic/api/dto/PetDetails.java | 81 + .../samples/petclinic/api/dto/PetType.java | 22 + .../petclinic/api/dto/VisitDetails.java | 26 + .../samples/petclinic/api/dto/Visits.java | 31 + src/main/resources/application.yml | 50 + src/main/resources/logback-spring.xml | 6 + .../resources/messages/messages.properties | 7 + .../resources/messages/messages_de.properties | 7 + .../resources/messages/messages_en.properties | 1 + src/main/resources/static/css/header.css | 62 + src/main/resources/static/css/petclinic.css | 9613 +++++++++++++++++ src/main/resources/static/css/responsive.css | 28 + src/main/resources/static/css/typography.css | 43 + .../static/fonts/montserrat-webfont.eot | Bin 0 -> 20979 bytes .../static/fonts/montserrat-webfont.svg | 1283 +++ .../static/fonts/montserrat-webfont.ttf | Bin 0 -> 42692 bytes .../static/fonts/montserrat-webfont.woff | Bin 0 -> 24240 bytes .../static/fonts/varela_round-webfont.eot | Bin 0 -> 28963 bytes .../static/fonts/varela_round-webfont.svg | 7875 ++++++++++++++ .../static/fonts/varela_round-webfont.ttf | Bin 0 -> 63044 bytes .../static/fonts/varela_round-webfont.woff | Bin 0 -> 32712 bytes src/main/resources/static/images/favicon.png | Bin 0 -> 528 bytes src/main/resources/static/images/pets.png | Bin 0 -> 67721 bytes .../resources/static/images/platform-bg.png | Bin 0 -> 9162 bytes .../images/spring-logo-dataflow-mobile.png | Bin 0 -> 3705 bytes .../static/images/spring-logo-dataflow.png | Bin 0 -> 6888 bytes .../static/images/spring-pivotal-logo.png | Bin 0 -> 2818 bytes src/main/resources/static/index.html | 95 + src/main/resources/static/scripts/app.js | 36 + .../static/scripts/fragments/footer.html | 6 + .../static/scripts/fragments/nav.html | 44 + .../static/scripts/fragments/welcome.html | 7 + .../resources/static/scripts/genai/chat.js | 81 + .../httpErrorHandlingInterceptor.js | 17 + .../scripts/infrastructure/infrastructure.js | 3 + .../owner-details/owner-details.component.js | 7 + .../owner-details/owner-details.controller.js | 10 + .../scripts/owner-details/owner-details.js | 11 + .../owner-details/owner-details.template.html | 70 + .../owner-form/owner-form.component.js | 7 + .../owner-form/owner-form.controller.js | 30 + .../static/scripts/owner-form/owner-form.js | 16 + .../owner-form/owner-form.template.html | 39 + .../owner-list/owner-list.component.js | 7 + .../owner-list/owner-list.controller.js | 10 + .../static/scripts/owner-list/owner-list.js | 11 + .../owner-list/owner-list.template.html | 31 + .../scripts/pet-form/pet-form.component.js | 7 + .../scripts/pet-form/pet-form.controller.js | 52 + .../static/scripts/pet-form/pet-form.js | 16 + .../scripts/pet-form/pet-form.template.html | 43 + .../scripts/vet-list/vet-list.component.js | 7 + .../scripts/vet-list/vet-list.controller.js | 10 + .../static/scripts/vet-list/vet-list.js | 11 + .../scripts/vet-list/vet-list.template.html | 15 + .../static/scripts/visits/visits.component.js | 7 + .../scripts/visits/visits.controller.js | 25 + .../resources/static/scripts/visits/visits.js | 11 + .../scripts/visits/visits.template.html | 27 + src/main/resources/static/scss/header.scss | 73 + src/main/resources/static/scss/petclinic.scss | 339 + .../resources/static/scss/responsive.scss | 41 + .../resources/static/scss/typography.scss | 60 + .../api/ApiGatewayApplicationTests.java | 15 + .../VisitsServiceClientIntegrationTest.java | 64 + .../web/ApiGatewayControllerTest.java | 97 + .../web/CircuitBreakerConfiguration.java | 29 + src/test/jmeter/petclinic_test_plan.jmx | 568 + src/test/resources/application-test.yml | 2 + 76 files changed, 21798 insertions(+) create mode 100644 pom.xml create mode 100644 src/main/java/org/springframework/samples/petclinic/api/ApiGatewayApplication.java create mode 100644 src/main/java/org/springframework/samples/petclinic/api/application/CustomersServiceClient.java create mode 100644 src/main/java/org/springframework/samples/petclinic/api/application/VisitsServiceClient.java create mode 100644 src/main/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayController.java create mode 100644 src/main/java/org/springframework/samples/petclinic/api/boundary/web/FallbackController.java create mode 100644 src/main/java/org/springframework/samples/petclinic/api/dto/OwnerDetails.java create mode 100644 src/main/java/org/springframework/samples/petclinic/api/dto/PetDetails.java create mode 100644 src/main/java/org/springframework/samples/petclinic/api/dto/PetType.java create mode 100644 src/main/java/org/springframework/samples/petclinic/api/dto/VisitDetails.java create mode 100644 src/main/java/org/springframework/samples/petclinic/api/dto/Visits.java create mode 100644 src/main/resources/application.yml create mode 100644 src/main/resources/logback-spring.xml create mode 100644 src/main/resources/messages/messages.properties create mode 100644 src/main/resources/messages/messages_de.properties create mode 100644 src/main/resources/messages/messages_en.properties create mode 100644 src/main/resources/static/css/header.css create mode 100644 src/main/resources/static/css/petclinic.css create mode 100644 src/main/resources/static/css/responsive.css create mode 100644 src/main/resources/static/css/typography.css create mode 100644 src/main/resources/static/fonts/montserrat-webfont.eot create mode 100644 src/main/resources/static/fonts/montserrat-webfont.svg create mode 100644 src/main/resources/static/fonts/montserrat-webfont.ttf create mode 100644 src/main/resources/static/fonts/montserrat-webfont.woff create mode 100644 src/main/resources/static/fonts/varela_round-webfont.eot create mode 100644 src/main/resources/static/fonts/varela_round-webfont.svg create mode 100644 src/main/resources/static/fonts/varela_round-webfont.ttf create mode 100644 src/main/resources/static/fonts/varela_round-webfont.woff create mode 100644 src/main/resources/static/images/favicon.png create mode 100644 src/main/resources/static/images/pets.png create mode 100644 src/main/resources/static/images/platform-bg.png create mode 100644 src/main/resources/static/images/spring-logo-dataflow-mobile.png create mode 100644 src/main/resources/static/images/spring-logo-dataflow.png create mode 100644 src/main/resources/static/images/spring-pivotal-logo.png create mode 100644 src/main/resources/static/index.html create mode 100644 src/main/resources/static/scripts/app.js create mode 100644 src/main/resources/static/scripts/fragments/footer.html create mode 100644 src/main/resources/static/scripts/fragments/nav.html create mode 100644 src/main/resources/static/scripts/fragments/welcome.html create mode 100644 src/main/resources/static/scripts/genai/chat.js create mode 100644 src/main/resources/static/scripts/infrastructure/httpErrorHandlingInterceptor.js create mode 100644 src/main/resources/static/scripts/infrastructure/infrastructure.js create mode 100644 src/main/resources/static/scripts/owner-details/owner-details.component.js create mode 100644 src/main/resources/static/scripts/owner-details/owner-details.controller.js create mode 100644 src/main/resources/static/scripts/owner-details/owner-details.js create mode 100644 src/main/resources/static/scripts/owner-details/owner-details.template.html create mode 100644 src/main/resources/static/scripts/owner-form/owner-form.component.js create mode 100644 src/main/resources/static/scripts/owner-form/owner-form.controller.js create mode 100644 src/main/resources/static/scripts/owner-form/owner-form.js create mode 100644 src/main/resources/static/scripts/owner-form/owner-form.template.html create mode 100644 src/main/resources/static/scripts/owner-list/owner-list.component.js create mode 100644 src/main/resources/static/scripts/owner-list/owner-list.controller.js create mode 100644 src/main/resources/static/scripts/owner-list/owner-list.js create mode 100644 src/main/resources/static/scripts/owner-list/owner-list.template.html create mode 100644 src/main/resources/static/scripts/pet-form/pet-form.component.js create mode 100644 src/main/resources/static/scripts/pet-form/pet-form.controller.js create mode 100644 src/main/resources/static/scripts/pet-form/pet-form.js create mode 100644 src/main/resources/static/scripts/pet-form/pet-form.template.html create mode 100644 src/main/resources/static/scripts/vet-list/vet-list.component.js create mode 100644 src/main/resources/static/scripts/vet-list/vet-list.controller.js create mode 100644 src/main/resources/static/scripts/vet-list/vet-list.js create mode 100644 src/main/resources/static/scripts/vet-list/vet-list.template.html create mode 100644 src/main/resources/static/scripts/visits/visits.component.js create mode 100644 src/main/resources/static/scripts/visits/visits.controller.js create mode 100644 src/main/resources/static/scripts/visits/visits.js create mode 100644 src/main/resources/static/scripts/visits/visits.template.html create mode 100644 src/main/resources/static/scss/header.scss create mode 100644 src/main/resources/static/scss/petclinic.scss create mode 100644 src/main/resources/static/scss/responsive.scss create mode 100644 src/main/resources/static/scss/typography.scss create mode 100644 src/test/java/org/springframework/samples/petclinic/api/ApiGatewayApplicationTests.java create mode 100644 src/test/java/org/springframework/samples/petclinic/api/application/VisitsServiceClientIntegrationTest.java create mode 100644 src/test/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayControllerTest.java create mode 100644 src/test/java/org/springframework/samples/petclinic/api/boundary/web/CircuitBreakerConfiguration.java create mode 100644 src/test/jmeter/petclinic_test_plan.jmx create mode 100644 src/test/resources/application-test.yml diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..bcc70c1 --- /dev/null +++ b/pom.xml @@ -0,0 +1,222 @@ + + + 4.0.0 + + org.springframework.samples.petclinic.api + spring-petclinic-api-gateway + jar + Spring PetClinic API Gateway + + + org.springframework.samples + spring-petclinic-microservices + 3.4.1 + + + + 5.3.3 + 4.7.0 + 1.8.3 + 1.0.30 + 14.1.2 + 4.12.0 + + 0.2.29 + 8081 + ${basedir}/../docker + + + + + + org.springframework.boot + spring-boot-devtools + true + + + org.springframework.boot + spring-boot-configuration-processor + true + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-test + test + + + + + org.springframework.cloud + spring-cloud-starter-circuitbreaker-reactor-resilience4j + + + org.springframework.cloud + spring-cloud-starter-config + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + + + org.springframework.cloud + spring-cloud-starter-gateway + + + + + org.jolokia + jolokia-core + + + io.micrometer + micrometer-registry-prometheus + + + io.github.resilience4j + resilience4j-micrometer + + + io.opentelemetry + opentelemetry-exporter-zipkin + + + io.micrometer + micrometer-observation + + + io.micrometer + micrometer-tracing-bridge-brave + + + io.zipkin.reporter2 + zipkin-reporter-brave + + + com.github.ben-manes.caffeine + caffeine + + + + + org.webjars + angularjs + ${webjars-angular.version} + + + org.webjars.npm + font-awesome + ${webjars-font-awesome.version} + + + org.webjars + bootstrap + ${webjars-bootstrap.version} + + + org.webjars + angular-ui-router + ${webjars-angular-ui-router.version} + + + org.webjars + webjars-locator-core + + + org.webjars.npm + marked + ${webjars-marked.version} + + + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + com.squareup.okhttp3 + mockwebserver + ${squareup-okhttp3.version} + test + + + + + + buildDocker + + + + org.codehaus.mojo + exec-maven-plugin + + + + + + css + + + + org.apache.maven.plugins + maven-dependency-plugin + + + unpack + + generate-resources + + unpack + + + + + org.webjars.npm + bootstrap + ${webjars-bootstrap.version} + + + ${project.build.directory}/webjars + + + + + + + com.gitlab.haynes + libsass-maven-plugin + ${libsass-maven-plugin.version} + + + generate-resources + + + compile + + + + + ${basedir}/src/main/resources/static/scss/ + ${basedir}/src/main/resources/static/css/ + ${project.build.directory}/webjars/META-INF/resources/webjars/bootstrap/${webjars-bootstrap.version}/scss/ + + + + + + + diff --git a/src/main/java/org/springframework/samples/petclinic/api/ApiGatewayApplication.java b/src/main/java/org/springframework/samples/petclinic/api/ApiGatewayApplication.java new file mode 100644 index 0000000..f872c1c --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/api/ApiGatewayApplication.java @@ -0,0 +1,90 @@ +/* + * Copyright 2002-2021 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.samples.petclinic.api; + +import io.github.resilience4j.circuitbreaker.CircuitBreakerConfig; +import io.github.resilience4j.timelimiter.TimeLimiterConfig; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.circuitbreaker.resilience4j.ReactiveResilience4JCircuitBreakerFactory; +import org.springframework.cloud.circuitbreaker.resilience4j.Resilience4JConfigBuilder; +import org.springframework.cloud.client.circuitbreaker.Customizer; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.client.loadbalancer.LoadBalanced; +import org.springframework.context.annotation.Bean; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.springframework.http.MediaType; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.reactive.function.client.WebClient; +import org.springframework.web.reactive.function.server.RequestPredicates; +import org.springframework.web.reactive.function.server.RouterFunction; +import org.springframework.web.reactive.function.server.RouterFunctions; +import org.springframework.web.reactive.function.server.ServerResponse; + +import java.time.Duration; + + +/** + * @author Maciej Szarlinski + */ +@EnableDiscoveryClient +@SpringBootApplication +public class ApiGatewayApplication { + + public static void main(String[] args) { + SpringApplication.run(ApiGatewayApplication.class, args); + } + + @Bean + @LoadBalanced + RestTemplate loadBalancedRestTemplate() { + return new RestTemplate(); + } + + @Bean + @LoadBalanced + public WebClient.Builder loadBalancedWebClientBuilder() { + return WebClient.builder(); + } + + @Value("classpath:/static/index.html") + private Resource indexHtml; + + /** + * workaround solution for forwarding to index.html + * @see #9785 + */ + @Bean + RouterFunction routerFunction() { + RouterFunction router = RouterFunctions.resources("/**", new ClassPathResource("static/")) + .andRoute(RequestPredicates.GET("/"), + request -> ServerResponse.ok().contentType(MediaType.TEXT_HTML).bodyValue(indexHtml)); + return router; + } + + /** + * Default Resilience4j circuit breaker configuration + */ + @Bean + public Customizer defaultCustomizer() { + return factory -> factory.configureDefault(id -> new Resilience4JConfigBuilder(id) + .circuitBreakerConfig(CircuitBreakerConfig.ofDefaults()) + .timeLimiterConfig(TimeLimiterConfig.custom().timeoutDuration(Duration.ofSeconds(10)).build()) + .build()); + } +} diff --git a/src/main/java/org/springframework/samples/petclinic/api/application/CustomersServiceClient.java b/src/main/java/org/springframework/samples/petclinic/api/application/CustomersServiceClient.java new file mode 100644 index 0000000..8112b96 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/api/application/CustomersServiceClient.java @@ -0,0 +1,41 @@ +/* + * Copyright 2002-2021 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.samples.petclinic.api.application; + +import org.springframework.samples.petclinic.api.dto.OwnerDetails; +import org.springframework.stereotype.Component; +import org.springframework.web.reactive.function.client.WebClient; +import reactor.core.publisher.Mono; + +/** + * @author Maciej Szarlinski + */ +@Component +public class CustomersServiceClient { + + private final WebClient.Builder webClientBuilder; + + public CustomersServiceClient(WebClient.Builder webClientBuilder) { + this.webClientBuilder = webClientBuilder; + } + + public Mono getOwner(final int ownerId) { + return webClientBuilder.build().get() + .uri("http://customers-service/owners/{ownerId}", ownerId) + .retrieve() + .bodyToMono(OwnerDetails.class); + } +} diff --git a/src/main/java/org/springframework/samples/petclinic/api/application/VisitsServiceClient.java b/src/main/java/org/springframework/samples/petclinic/api/application/VisitsServiceClient.java new file mode 100644 index 0000000..dcb2225 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/api/application/VisitsServiceClient.java @@ -0,0 +1,57 @@ +/* + * Copyright 2002-2021 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.samples.petclinic.api.application; + +import org.springframework.samples.petclinic.api.dto.Visits; +import org.springframework.stereotype.Component; +import org.springframework.web.reactive.function.client.WebClient; +import reactor.core.publisher.Mono; + +import java.util.List; + +import static java.util.stream.Collectors.joining; + +/** + * @author Maciej Szarlinski + */ +@Component +public class VisitsServiceClient { + + // Could be changed for testing purpose + private String hostname = "http://visits-service/"; + + private final WebClient.Builder webClientBuilder; + + public VisitsServiceClient(WebClient.Builder webClientBuilder) { + this.webClientBuilder = webClientBuilder; + } + + public Mono getVisitsForPets(final List petIds) { + return webClientBuilder.build() + .get() + .uri(hostname + "pets/visits?petId={petId}", joinIds(petIds)) + .retrieve() + .bodyToMono(Visits.class); + } + + private String joinIds(List petIds) { + return petIds.stream().map(Object::toString).collect(joining(",")); + } + + void setHostname(String hostname) { + this.hostname = hostname; + } +} diff --git a/src/main/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayController.java b/src/main/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayController.java new file mode 100644 index 0000000..fba8875 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayController.java @@ -0,0 +1,83 @@ +/* + * Copyright 2002-2021 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.samples.petclinic.api.boundary.web; + +import org.springframework.cloud.client.circuitbreaker.ReactiveCircuitBreaker; +import org.springframework.cloud.client.circuitbreaker.ReactiveCircuitBreakerFactory; +import org.springframework.samples.petclinic.api.application.CustomersServiceClient; +import org.springframework.samples.petclinic.api.application.VisitsServiceClient; +import org.springframework.samples.petclinic.api.dto.OwnerDetails; +import org.springframework.samples.petclinic.api.dto.Visits; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import reactor.core.publisher.Mono; + +import java.util.List; +import java.util.function.Function; + +/** + * @author Maciej Szarlinski + */ +@RestController +@RequestMapping("/api/gateway") +public class ApiGatewayController { + + private final CustomersServiceClient customersServiceClient; + + private final VisitsServiceClient visitsServiceClient; + + private final ReactiveCircuitBreakerFactory cbFactory; + + public ApiGatewayController(CustomersServiceClient customersServiceClient, + VisitsServiceClient visitsServiceClient, + ReactiveCircuitBreakerFactory cbFactory) { + this.customersServiceClient = customersServiceClient; + this.visitsServiceClient = visitsServiceClient; + this.cbFactory = cbFactory; + } + + @GetMapping(value = "owners/{ownerId}") + public Mono getOwnerDetails(final @PathVariable int ownerId) { + return customersServiceClient.getOwner(ownerId) + .flatMap(owner -> + visitsServiceClient.getVisitsForPets(owner.getPetIds()) + .transform(it -> { + ReactiveCircuitBreaker cb = cbFactory.create("getOwnerDetails"); + return cb.run(it, throwable -> emptyVisitsForPets()); + }) + .map(addVisitsToOwner(owner)) + ); + + } + + private Function addVisitsToOwner(OwnerDetails owner) { + return visits -> { + owner.pets() + .forEach(pet -> pet.visits() + .addAll(visits.items().stream() + .filter(v -> v.petId() == pet.id()) + .toList()) + ); + return owner; + }; + } + + private Mono emptyVisitsForPets() { + return Mono.just(new Visits(List.of())); + } +} diff --git a/src/main/java/org/springframework/samples/petclinic/api/boundary/web/FallbackController.java b/src/main/java/org/springframework/samples/petclinic/api/boundary/web/FallbackController.java new file mode 100644 index 0000000..3daafdd --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/api/boundary/web/FallbackController.java @@ -0,0 +1,16 @@ +package org.springframework.samples.petclinic.api.boundary.web; + +import org.apache.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class FallbackController { + + @PostMapping("/fallback") + public ResponseEntity fallback() { + return ResponseEntity.status(HttpStatus.SC_SERVICE_UNAVAILABLE) + .body("Chat is currently unavailable. Please try again later."); + } +} diff --git a/src/main/java/org/springframework/samples/petclinic/api/dto/OwnerDetails.java b/src/main/java/org/springframework/samples/petclinic/api/dto/OwnerDetails.java new file mode 100644 index 0000000..18c58bf --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/api/dto/OwnerDetails.java @@ -0,0 +1,97 @@ +/* + * Copyright 2002-2021 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.samples.petclinic.api.dto; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +import java.util.List; + +/** + * @author Maciej Szarlinski + */ +public record OwnerDetails( + int id, + String firstName, + String lastName, + String address, + String city, + String telephone, + List pets) { + + @JsonIgnore + public List getPetIds() { + return pets.stream() + .map(PetDetails::id) + .toList(); + } + + + public static final class OwnerDetailsBuilder { + private int id; + private String firstName; + private String lastName; + private String address; + private String city; + private String telephone; + private List pets; + + private OwnerDetailsBuilder() { + } + + public static OwnerDetailsBuilder anOwnerDetails() { + return new OwnerDetailsBuilder(); + } + + public OwnerDetailsBuilder id(int id) { + this.id = id; + return this; + } + + public OwnerDetailsBuilder firstName(String firstName) { + this.firstName = firstName; + return this; + } + + public OwnerDetailsBuilder lastName(String lastName) { + this.lastName = lastName; + return this; + } + + public OwnerDetailsBuilder address(String address) { + this.address = address; + return this; + } + + public OwnerDetailsBuilder city(String city) { + this.city = city; + return this; + } + + public OwnerDetailsBuilder telephone(String telephone) { + this.telephone = telephone; + return this; + } + + public OwnerDetailsBuilder pets(List pets) { + this.pets = pets; + return this; + } + + public OwnerDetails build() { + return new OwnerDetails(id, firstName, lastName, address, city, telephone, pets); + } + } +} diff --git a/src/main/java/org/springframework/samples/petclinic/api/dto/PetDetails.java b/src/main/java/org/springframework/samples/petclinic/api/dto/PetDetails.java new file mode 100644 index 0000000..a1bacf1 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/api/dto/PetDetails.java @@ -0,0 +1,81 @@ +/* + * Copyright 2002-2021 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.samples.petclinic.api.dto; + + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Maciej Szarlinski + */ +public record PetDetails( + int id, + String name, + String birthDate, + PetType type, + List visits) { + + public PetDetails { + if (visits == null) { + visits = new ArrayList<>(); + } + } + + public static final class PetDetailsBuilder { + private int id; + private String name; + private String birthDate; + private PetType type; + private List visits; + + private PetDetailsBuilder() { + } + + public static PetDetailsBuilder aPetDetails() { + return new PetDetailsBuilder(); + } + + public PetDetailsBuilder id(int id) { + this.id = id; + return this; + } + + public PetDetailsBuilder name(String name) { + this.name = name; + return this; + } + + public PetDetailsBuilder birthDate(String birthDate) { + this.birthDate = birthDate; + return this; + } + + public PetDetailsBuilder type(PetType type) { + this.type = type; + return this; + } + + public PetDetailsBuilder visits(List visits) { + this.visits = visits; + return this; + } + + public PetDetails build() { + return new PetDetails(id, name, birthDate, type, visits); + } + } +} diff --git a/src/main/java/org/springframework/samples/petclinic/api/dto/PetType.java b/src/main/java/org/springframework/samples/petclinic/api/dto/PetType.java new file mode 100644 index 0000000..e6977b1 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/api/dto/PetType.java @@ -0,0 +1,22 @@ +/* + * Copyright 2002-2021 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.samples.petclinic.api.dto; + +/** + * @author Maciej Szarlinski + */ +public record PetType(String name) { +} diff --git a/src/main/java/org/springframework/samples/petclinic/api/dto/VisitDetails.java b/src/main/java/org/springframework/samples/petclinic/api/dto/VisitDetails.java new file mode 100644 index 0000000..da9747f --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/api/dto/VisitDetails.java @@ -0,0 +1,26 @@ +/* + * Copyright 2002-2021 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.samples.petclinic.api.dto; + +/** + * @author Maciej Szarlinski + */ +public record VisitDetails ( + Integer id, + Integer petId, + String date, + String description) { +} diff --git a/src/main/java/org/springframework/samples/petclinic/api/dto/Visits.java b/src/main/java/org/springframework/samples/petclinic/api/dto/Visits.java new file mode 100644 index 0000000..1ef90a0 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/api/dto/Visits.java @@ -0,0 +1,31 @@ +/* + * Copyright 2002-2021 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.samples.petclinic.api.dto; + +import java.util.ArrayList; +import java.util.List; + + +/** + * @author Maciej Szarlinski + */ +public record Visits ( + List items +) { + public Visits() { + this(new ArrayList<>()); + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..cb80e10 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,50 @@ +spring: + application: + name: api-gateway + config: + import: optional:configserver:${CONFIG_SERVER_URL:http://localhost:8888/} + cloud: + gateway: + default-filters: + - name: CircuitBreaker + args: + name: defaultCircuitBreaker + fallbackUri: forward:/fallback + - name: Retry + args: + retries: 1 + statuses: SERVICE_UNAVAILABLE + methods: POST + routes: + - id: vets-service + uri: lb://vets-service + predicates: + - Path=/api/vet/** + filters: + - StripPrefix=2 + - id: visits-service + uri: lb://visits-service + predicates: + - Path=/api/visit/** + filters: + - StripPrefix=2 + - id: customers-service + uri: lb://customers-service + predicates: + - Path=/api/customer/** + filters: + - StripPrefix=2 + - id: genai-service + uri: lb://genai-service + predicates: + - Path=/api/genai/** + filters: + - StripPrefix=2 + - CircuitBreaker=name=genaiCircuitBreaker,fallbackUri=/fallback + +--- +spring: + config: + activate: + on-profile: docker + import: configserver:http://config-server:8888 diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..5d03f79 --- /dev/null +++ b/src/main/resources/logback-spring.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/messages/messages.properties b/src/main/resources/messages/messages.properties new file mode 100644 index 0000000..f916c7a --- /dev/null +++ b/src/main/resources/messages/messages.properties @@ -0,0 +1,7 @@ +required=is required +notFound=has not been found +duplicate=is already in use +nonNumeric=must be all numeric +duplicateFormSubmission=Duplicate form submission is not allowed +typeMismatch.date=invalid date +typeMismatch.birthDate=invalid date diff --git a/src/main/resources/messages/messages_de.properties b/src/main/resources/messages/messages_de.properties new file mode 100644 index 0000000..46c70b5 --- /dev/null +++ b/src/main/resources/messages/messages_de.properties @@ -0,0 +1,7 @@ +required=muss angegeben werden +notFound=wurde nicht gefunden +duplicate=ist bereits vergeben +nonNumeric=darf nur numerisch sein +duplicateFormSubmission=Wiederholtes Absenden des Formulars ist nicht erlaubt +typeMismatch.date=ung�ltiges Datum +typeMismatch.birthDate=ung�ltiges Datum diff --git a/src/main/resources/messages/messages_en.properties b/src/main/resources/messages/messages_en.properties new file mode 100644 index 0000000..05d519b --- /dev/null +++ b/src/main/resources/messages/messages_en.properties @@ -0,0 +1 @@ +# This file is intentionally empty. Message look-ups will fall back to the default "messages.properties" file. \ No newline at end of file diff --git a/src/main/resources/static/css/header.css b/src/main/resources/static/css/header.css new file mode 100644 index 0000000..edd0889 --- /dev/null +++ b/src/main/resources/static/css/header.css @@ -0,0 +1,62 @@ +.navbar { + border-top: 4px solid #6db33f; + background-color: #34302d; + margin-bottom: 0px; + border-bottom: 0; + border-left: 0; + border-right: 0; } + +.navbar a.navbar-brand { + background: url("../images/spring-logo-dataflow.png") -1px -1px no-repeat; + margin: 12px 0 6px; + width: 229px; + height: 46px; + display: inline-block; + text-decoration: none; + padding: 0; } + +.navbar a.navbar-brand span { + display: block; + width: 229px; + height: 46px; + background: url("../images/spring-logo-dataflow.png") -1px -48px no-repeat; + opacity: 0; + -moz-transition: opacity 0.12s ease-in-out; + -webkit-transition: opacity 0.12s ease-in-out; + -o-transition: opacity 0.12s ease-in-out; } + +.navbar a.navbar-brand:hover span { + opacity: 1; } + +.navbar li > a, .navbar-text { + font-family: "montserratregular", sans-serif; + text-shadow: none; + font-size: 14px; + /* line-height: 14px; */ + padding: 28px 20px; + transition: all 0.15s; + -webkit-transition: all 0.15s; + -moz-transition: all 0.15s; + -o-transition: all 0.15s; + -ms-transition: all 0.15s; } + +.navbar li > a { + text-transform: uppercase; } + +.navbar .navbar-text { + margin-top: 0; + margin-bottom: 0; } + +.navbar li:hover > a { + color: #eeeeee; + background-color: #6db33f; } + +.navbar-toggle { + border-width: 0; } + .navbar-toggle .icon-bar + .icon-bar { + margin-top: 3px; } + .navbar-toggle .icon-bar { + width: 19px; + height: 3px; } + +/*# sourceMappingURL=../../../../../target/header.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/css/petclinic.css b/src/main/resources/static/css/petclinic.css new file mode 100644 index 0000000..3928143 --- /dev/null +++ b/src/main/resources/static/css/petclinic.css @@ -0,0 +1,9613 @@ +/* + * Copyright 2016 the original author or authors. + * + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*! + * Bootstrap v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root, +[data-bs-theme="light"] { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-primary-text-emphasis: #052c65; + --bs-secondary-text-emphasis: #2b2f32; + --bs-success-text-emphasis: #0a3622; + --bs-info-text-emphasis: #055160; + --bs-warning-text-emphasis: #664d03; + --bs-danger-text-emphasis: #58151c; + --bs-light-text-emphasis: #495057; + --bs-dark-text-emphasis: #495057; + --bs-primary-bg-subtle: #cfe2ff; + --bs-secondary-bg-subtle: #e2e3e5; + --bs-success-bg-subtle: #d1e7dd; + --bs-info-bg-subtle: #cff4fc; + --bs-warning-bg-subtle: #fff3cd; + --bs-danger-bg-subtle: #f8d7da; + --bs-light-bg-subtle: #fcfcfd; + --bs-dark-bg-subtle: #ced4da; + --bs-primary-border-subtle: #9ec5fe; + --bs-secondary-border-subtle: #c4c8cb; + --bs-success-border-subtle: #a3cfbb; + --bs-info-border-subtle: #9eeaf9; + --bs-warning-border-subtle: #ffe69c; + --bs-danger-border-subtle: #f1aeb5; + --bs-light-border-subtle: #e9ecef; + --bs-dark-border-subtle: #adb5bd; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg: #fff; + --bs-body-bg-rgb: 255, 255, 255; + --bs-emphasis-color: #000; + --bs-emphasis-color-rgb: 0, 0, 0; + --bs-secondary-color: rgba(33, 37, 41, 0.75); + --bs-secondary-color-rgb: 33, 37, 41; + --bs-secondary-bg: #e9ecef; + --bs-secondary-bg-rgb: 233, 236, 239; + --bs-tertiary-color: rgba(33, 37, 41, 0.5); + --bs-tertiary-color-rgb: 33, 37, 41; + --bs-tertiary-bg: #f8f9fa; + --bs-tertiary-bg-rgb: 248, 249, 250; + --bs-heading-color: inherit; + --bs-link-color: #0d6efd; + --bs-link-color-rgb: 13, 110, 253; + --bs-link-decoration: underline; + --bs-link-hover-color: #0a58ca; + --bs-link-hover-color-rgb: 10, 88, 202; + --bs-code-color: #d63384; + --bs-highlight-color: #212529; + --bs-highlight-bg: #fff3cd; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #dee2e6; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-xxl: 2rem; + --bs-border-radius-2xl: var(--bs-border-radius-xxl); + --bs-border-radius-pill: 50rem; + --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175); + --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --bs-focus-ring-width: 0.25rem; + --bs-focus-ring-opacity: 0.25; + --bs-focus-ring-color: rgba(13, 110, 253, 0.25); + --bs-form-valid-color: #198754; + --bs-form-valid-border-color: #198754; + --bs-form-invalid-color: #dc3545; + --bs-form-invalid-border-color: #dc3545; } + +[data-bs-theme="dark"] { + color-scheme: dark; + --bs-body-color: #dee2e6; + --bs-body-color-rgb: 222, 226, 230; + --bs-body-bg: #212529; + --bs-body-bg-rgb: 33, 37, 41; + --bs-emphasis-color: #fff; + --bs-emphasis-color-rgb: 255, 255, 255; + --bs-secondary-color: rgba(222, 226, 230, 0.75); + --bs-secondary-color-rgb: 222, 226, 230; + --bs-secondary-bg: #343a40; + --bs-secondary-bg-rgb: 52, 58, 64; + --bs-tertiary-color: rgba(222, 226, 230, 0.5); + --bs-tertiary-color-rgb: 222, 226, 230; + --bs-tertiary-bg: #2b3035; + --bs-tertiary-bg-rgb: 43, 48, 53; + --bs-primary-text-emphasis: #6ea8fe; + --bs-secondary-text-emphasis: #a7acb1; + --bs-success-text-emphasis: #75b798; + --bs-info-text-emphasis: #6edff6; + --bs-warning-text-emphasis: #ffda6a; + --bs-danger-text-emphasis: #ea868f; + --bs-light-text-emphasis: #f8f9fa; + --bs-dark-text-emphasis: #dee2e6; + --bs-primary-bg-subtle: #031633; + --bs-secondary-bg-subtle: #161719; + --bs-success-bg-subtle: #051b11; + --bs-info-bg-subtle: #032830; + --bs-warning-bg-subtle: #332701; + --bs-danger-bg-subtle: #2c0b0e; + --bs-light-bg-subtle: #343a40; + --bs-dark-bg-subtle: #1a1d20; + --bs-primary-border-subtle: #084298; + --bs-secondary-border-subtle: #41464b; + --bs-success-border-subtle: #0f5132; + --bs-info-border-subtle: #087990; + --bs-warning-border-subtle: #997404; + --bs-danger-border-subtle: #842029; + --bs-light-border-subtle: #495057; + --bs-dark-border-subtle: #343a40; + --bs-heading-color: inherit; + --bs-link-color: #6ea8fe; + --bs-link-hover-color: #8bb9fe; + --bs-link-color-rgb: 110, 168, 254; + --bs-link-hover-color-rgb: 139, 185, 254; + --bs-code-color: #e685b5; + --bs-highlight-color: #dee2e6; + --bs-highlight-bg: #664d03; + --bs-border-color: #495057; + --bs-border-color-translucent: rgba(255, 255, 255, 0.15); + --bs-form-valid-color: #75b798; + --bs-form-valid-border-color: #75b798; + --bs-form-invalid-color: #ea868f; + --bs-form-invalid-border-color: #ea868f; } + +*, +*::before, +*::after { + box-sizing: border-box; } + +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior: smooth; } } + +body { + margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } + +hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: var(--bs-border-width) solid; + opacity: 0.25; } + +h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; + color: var(--bs-heading-color); } + +h1, .h1 { + font-size: calc(1.375rem + 1.5vw); } + @media (min-width: 1200px) { + h1, .h1 { + font-size: 2.5rem; } } +h2, .h2 { + font-size: calc(1.325rem + 0.9vw); } + @media (min-width: 1200px) { + h2, .h2 { + font-size: 2rem; } } +h3, .h3 { + font-size: calc(1.3rem + 0.6vw); } + @media (min-width: 1200px) { + h3, .h3 { + font-size: 1.75rem; } } +h4, .h4 { + font-size: calc(1.275rem + 0.3vw); } + @media (min-width: 1200px) { + h4, .h4 { + font-size: 1.5rem; } } +h5, .h5 { + font-size: 1.25rem; } + +h6, .h6 { + font-size: 1rem; } + +p { + margin-top: 0; + margin-bottom: 1rem; } + +abbr[title] { + text-decoration: underline dotted; + cursor: help; + text-decoration-skip-ink: none; } + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; } + +ol, +ul { + padding-left: 2rem; } + +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, .small { + font-size: 0.875em; } + +mark, .mark { + padding: 0.1875em; + color: var(--bs-highlight-color); + background-color: var(--bs-highlight-bg); } + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; } + +sub { + bottom: -.25em; } + +sup { + top: -.5em; } + +a { + color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1)); + text-decoration: underline; } + a:hover { + --bs-link-color-rgb: var(--bs-link-hover-color-rgb); } + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; } + +pre, +code, +kbd, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; } + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; } + pre code { + font-size: inherit; + color: inherit; + word-break: normal; } + +code { + font-size: 0.875em; + color: var(--bs-code-color); + word-wrap: break-word; } + a > code { + color: inherit; } + +kbd { + padding: 0.1875rem 0.375rem; + font-size: 0.875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + border-radius: 0.25rem; } + kbd kbd { + padding: 0; + font-size: 1em; } + +figure { + margin: 0 0 1rem; } + +img, +svg { + vertical-align: middle; } + +table { + caption-side: bottom; + border-collapse: collapse; } + +caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-secondary-color); + text-align: left; } + +th { + text-align: inherit; + text-align: -webkit-match-parent; } + +thead, +tbody, +tfoot, +tr, +td, +th { + border-color: inherit; + border-style: solid; + border-width: 0; } + +label { + display: inline-block; } + +button { + border-radius: 0; } + +button:focus:not(:focus-visible) { + outline: 0; } + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; } + +button, +select { + text-transform: none; } + +[role="button"] { + cursor: pointer; } + +select { + word-wrap: normal; } + select:disabled { + opacity: 1; } + +[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator { + display: none !important; } + +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; } + +::-moz-focus-inner { + padding: 0; + border-style: none; } + +textarea { + resize: vertical; } + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; } + +legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; } + @media (min-width: 1200px) { + legend { + font-size: 1.5rem; } } + legend + * { + clear: left; } + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; } + +::-webkit-inner-spin-button { + height: auto; } + +[type="search"] { + -webkit-appearance: textfield; + outline-offset: -2px; } + +/* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +*/ +::-webkit-search-decoration { + -webkit-appearance: none; } + +::-webkit-color-swatch-wrapper { + padding: 0; } + +::file-selector-button { + font: inherit; + -webkit-appearance: button; } + +output { + display: inline-block; } + +iframe { + border: 0; } + +summary { + display: list-item; + cursor: pointer; } + +progress { + vertical-align: baseline; } + +[hidden] { + display: none !important; } + +.lead { + font-size: 1.25rem; + font-weight: 300; } + +.display-1 { + font-size: calc(1.625rem + 4.5vw); + font-weight: 300; + line-height: 1.2; } + @media (min-width: 1200px) { + .display-1 { + font-size: 5rem; } } +.display-2 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2; } + @media (min-width: 1200px) { + .display-2 { + font-size: 4.5rem; } } +.display-3 { + font-size: calc(1.525rem + 3.3vw); + font-weight: 300; + line-height: 1.2; } + @media (min-width: 1200px) { + .display-3 { + font-size: 4rem; } } +.display-4 { + font-size: calc(1.475rem + 2.7vw); + font-weight: 300; + line-height: 1.2; } + @media (min-width: 1200px) { + .display-4 { + font-size: 3.5rem; } } +.display-5 { + font-size: calc(1.425rem + 2.1vw); + font-weight: 300; + line-height: 1.2; } + @media (min-width: 1200px) { + .display-5 { + font-size: 3rem; } } +.display-6 { + font-size: calc(1.375rem + 1.5vw); + font-weight: 300; + line-height: 1.2; } + @media (min-width: 1200px) { + .display-6 { + font-size: 2.5rem; } } +.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: 0.875em; + text-transform: uppercase; } + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; } + .blockquote > :last-child { + margin-bottom: 0; } + +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; } + .blockquote-footer::before { + content: "\2014\00A0"; } + +.img-fluid { + max-width: 100%; + height: auto; } + +.img-thumbnail { + padding: 0.25rem; + background-color: var(--bs-body-bg); + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + max-width: 100%; + height: auto; } + +.figure { + display: inline-block; } + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; } + +.figure-caption { + font-size: 0.875em; + color: var(--bs-secondary-color); } + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-right: calc(var(--bs-gutter-x) * .5); + padding-left: calc(var(--bs-gutter-x) * .5); + 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; } } + +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; } } + +:root { + --bs-breakpoint-xs: 0; + --bs-breakpoint-sm: 576px; + --bs-breakpoint-md: 768px; + --bs-breakpoint-lg: 992px; + --bs-breakpoint-xl: 1200px; + --bs-breakpoint-xxl: 1400px; } + +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-.5 * var(--bs-gutter-x)); + margin-left: calc(-.5 * var(--bs-gutter-x)); } + .row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * .5); + padding-left: calc(var(--bs-gutter-x) * .5); + margin-top: var(--bs-gutter-y); } + +.col { + flex: 1 0 0%; } + +.row-cols-auto > * { + flex: 0 0 auto; + width: auto; } + +.row-cols-1 > * { + flex: 0 0 auto; + width: 100%; } + +.row-cols-2 > * { + flex: 0 0 auto; + width: 50%; } + +.row-cols-3 > * { + flex: 0 0 auto; + width: 33.33333%; } + +.row-cols-4 > * { + flex: 0 0 auto; + width: 25%; } + +.row-cols-5 > * { + flex: 0 0 auto; + width: 20%; } + +.row-cols-6 > * { + flex: 0 0 auto; + width: 16.66667%; } + +.col-auto { + flex: 0 0 auto; + width: auto; } + +.col-1 { + flex: 0 0 auto; + width: 8.33333%; } + +.col-2 { + flex: 0 0 auto; + width: 16.66667%; } + +.col-3 { + flex: 0 0 auto; + width: 25%; } + +.col-4 { + flex: 0 0 auto; + width: 33.33333%; } + +.col-5 { + flex: 0 0 auto; + width: 41.66667%; } + +.col-6 { + flex: 0 0 auto; + width: 50%; } + +.col-7 { + flex: 0 0 auto; + width: 58.33333%; } + +.col-8 { + flex: 0 0 auto; + width: 66.66667%; } + +.col-9 { + flex: 0 0 auto; + width: 75%; } + +.col-10 { + flex: 0 0 auto; + width: 83.33333%; } + +.col-11 { + flex: 0 0 auto; + width: 91.66667%; } + +.col-12 { + flex: 0 0 auto; + width: 100%; } + +.offset-1 { + margin-left: 8.33333%; } + +.offset-2 { + margin-left: 16.66667%; } + +.offset-3 { + margin-left: 25%; } + +.offset-4 { + margin-left: 33.33333%; } + +.offset-5 { + margin-left: 41.66667%; } + +.offset-6 { + margin-left: 50%; } + +.offset-7 { + margin-left: 58.33333%; } + +.offset-8 { + margin-left: 66.66667%; } + +.offset-9 { + margin-left: 75%; } + +.offset-10 { + margin-left: 83.33333%; } + +.offset-11 { + margin-left: 91.66667%; } + +.g-0, +.gx-0 { + --bs-gutter-x: 0; } + +.g-0, +.gy-0 { + --bs-gutter-y: 0; } + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; } + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; } + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; } + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; } + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; } + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; } + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; } + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; } + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; } + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; } + +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; } + .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; } + .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; } + .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; } + .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.33333%; } + .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; } + .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; } + .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.66667%; } + .col-sm-auto { + flex: 0 0 auto; + width: auto; } + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333%; } + .col-sm-2 { + flex: 0 0 auto; + width: 16.66667%; } + .col-sm-3 { + flex: 0 0 auto; + width: 25%; } + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333%; } + .col-sm-5 { + flex: 0 0 auto; + width: 41.66667%; } + .col-sm-6 { + flex: 0 0 auto; + width: 50%; } + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333%; } + .col-sm-8 { + flex: 0 0 auto; + width: 66.66667%; } + .col-sm-9 { + flex: 0 0 auto; + width: 75%; } + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333%; } + .col-sm-11 { + flex: 0 0 auto; + width: 91.66667%; } + .col-sm-12 { + flex: 0 0 auto; + width: 100%; } + .offset-sm-0 { + margin-left: 0; } + .offset-sm-1 { + margin-left: 8.33333%; } + .offset-sm-2 { + margin-left: 16.66667%; } + .offset-sm-3 { + margin-left: 25%; } + .offset-sm-4 { + margin-left: 33.33333%; } + .offset-sm-5 { + margin-left: 41.66667%; } + .offset-sm-6 { + margin-left: 50%; } + .offset-sm-7 { + margin-left: 58.33333%; } + .offset-sm-8 { + margin-left: 66.66667%; } + .offset-sm-9 { + margin-left: 75%; } + .offset-sm-10 { + margin-left: 83.33333%; } + .offset-sm-11 { + margin-left: 91.66667%; } + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; } + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; } + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; } + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; } + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; } + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; } + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; } + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; } + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; } + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; } + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; } + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; } } + +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; } + .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; } + .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; } + .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; } + .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.33333%; } + .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; } + .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; } + .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.66667%; } + .col-md-auto { + flex: 0 0 auto; + width: auto; } + .col-md-1 { + flex: 0 0 auto; + width: 8.33333%; } + .col-md-2 { + flex: 0 0 auto; + width: 16.66667%; } + .col-md-3 { + flex: 0 0 auto; + width: 25%; } + .col-md-4 { + flex: 0 0 auto; + width: 33.33333%; } + .col-md-5 { + flex: 0 0 auto; + width: 41.66667%; } + .col-md-6 { + flex: 0 0 auto; + width: 50%; } + .col-md-7 { + flex: 0 0 auto; + width: 58.33333%; } + .col-md-8 { + flex: 0 0 auto; + width: 66.66667%; } + .col-md-9 { + flex: 0 0 auto; + width: 75%; } + .col-md-10 { + flex: 0 0 auto; + width: 83.33333%; } + .col-md-11 { + flex: 0 0 auto; + width: 91.66667%; } + .col-md-12 { + flex: 0 0 auto; + width: 100%; } + .offset-md-0 { + margin-left: 0; } + .offset-md-1 { + margin-left: 8.33333%; } + .offset-md-2 { + margin-left: 16.66667%; } + .offset-md-3 { + margin-left: 25%; } + .offset-md-4 { + margin-left: 33.33333%; } + .offset-md-5 { + margin-left: 41.66667%; } + .offset-md-6 { + margin-left: 50%; } + .offset-md-7 { + margin-left: 58.33333%; } + .offset-md-8 { + margin-left: 66.66667%; } + .offset-md-9 { + margin-left: 75%; } + .offset-md-10 { + margin-left: 83.33333%; } + .offset-md-11 { + margin-left: 91.66667%; } + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; } + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; } + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; } + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; } + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; } + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; } + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; } + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; } + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; } + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; } + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; } + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; } } + +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; } + .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; } + .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; } + .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; } + .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.33333%; } + .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; } + .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; } + .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.66667%; } + .col-lg-auto { + flex: 0 0 auto; + width: auto; } + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333%; } + .col-lg-2 { + flex: 0 0 auto; + width: 16.66667%; } + .col-lg-3 { + flex: 0 0 auto; + width: 25%; } + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333%; } + .col-lg-5 { + flex: 0 0 auto; + width: 41.66667%; } + .col-lg-6 { + flex: 0 0 auto; + width: 50%; } + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333%; } + .col-lg-8 { + flex: 0 0 auto; + width: 66.66667%; } + .col-lg-9 { + flex: 0 0 auto; + width: 75%; } + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333%; } + .col-lg-11 { + flex: 0 0 auto; + width: 91.66667%; } + .col-lg-12 { + flex: 0 0 auto; + width: 100%; } + .offset-lg-0 { + margin-left: 0; } + .offset-lg-1 { + margin-left: 8.33333%; } + .offset-lg-2 { + margin-left: 16.66667%; } + .offset-lg-3 { + margin-left: 25%; } + .offset-lg-4 { + margin-left: 33.33333%; } + .offset-lg-5 { + margin-left: 41.66667%; } + .offset-lg-6 { + margin-left: 50%; } + .offset-lg-7 { + margin-left: 58.33333%; } + .offset-lg-8 { + margin-left: 66.66667%; } + .offset-lg-9 { + margin-left: 75%; } + .offset-lg-10 { + margin-left: 83.33333%; } + .offset-lg-11 { + margin-left: 91.66667%; } + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; } + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; } + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; } + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; } + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; } + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; } + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; } + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; } + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; } + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; } + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; } + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; } } + +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; } + .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; } + .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; } + .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; } + .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.33333%; } + .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; } + .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; } + .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.66667%; } + .col-xl-auto { + flex: 0 0 auto; + width: auto; } + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333%; } + .col-xl-2 { + flex: 0 0 auto; + width: 16.66667%; } + .col-xl-3 { + flex: 0 0 auto; + width: 25%; } + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333%; } + .col-xl-5 { + flex: 0 0 auto; + width: 41.66667%; } + .col-xl-6 { + flex: 0 0 auto; + width: 50%; } + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333%; } + .col-xl-8 { + flex: 0 0 auto; + width: 66.66667%; } + .col-xl-9 { + flex: 0 0 auto; + width: 75%; } + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333%; } + .col-xl-11 { + flex: 0 0 auto; + width: 91.66667%; } + .col-xl-12 { + flex: 0 0 auto; + width: 100%; } + .offset-xl-0 { + margin-left: 0; } + .offset-xl-1 { + margin-left: 8.33333%; } + .offset-xl-2 { + margin-left: 16.66667%; } + .offset-xl-3 { + margin-left: 25%; } + .offset-xl-4 { + margin-left: 33.33333%; } + .offset-xl-5 { + margin-left: 41.66667%; } + .offset-xl-6 { + margin-left: 50%; } + .offset-xl-7 { + margin-left: 58.33333%; } + .offset-xl-8 { + margin-left: 66.66667%; } + .offset-xl-9 { + margin-left: 75%; } + .offset-xl-10 { + margin-left: 83.33333%; } + .offset-xl-11 { + margin-left: 91.66667%; } + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; } + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; } + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; } + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; } + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; } + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; } + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; } + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; } + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; } + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; } + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; } + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; } } + +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; } + .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; } + .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; } + .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; } + .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.33333%; } + .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; } + .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; } + .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.66667%; } + .col-xxl-auto { + flex: 0 0 auto; + width: auto; } + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333%; } + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66667%; } + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; } + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333%; } + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66667%; } + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; } + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333%; } + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66667%; } + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; } + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333%; } + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66667%; } + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; } + .offset-xxl-0 { + margin-left: 0; } + .offset-xxl-1 { + margin-left: 8.33333%; } + .offset-xxl-2 { + margin-left: 16.66667%; } + .offset-xxl-3 { + margin-left: 25%; } + .offset-xxl-4 { + margin-left: 33.33333%; } + .offset-xxl-5 { + margin-left: 41.66667%; } + .offset-xxl-6 { + margin-left: 50%; } + .offset-xxl-7 { + margin-left: 58.33333%; } + .offset-xxl-8 { + margin-left: 66.66667%; } + .offset-xxl-9 { + margin-left: 75%; } + .offset-xxl-10 { + margin-left: 83.33333%; } + .offset-xxl-11 { + margin-left: 91.66667%; } + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; } + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; } + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; } + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; } + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; } + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; } + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; } + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; } + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; } + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; } + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; } + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; } } + +.table { + --bs-table-color-type: initial; + --bs-table-bg-type: initial; + --bs-table-color-state: initial; + --bs-table-bg-state: initial; + --bs-table-color: var(--bs-emphasis-color); + --bs-table-bg: var(--bs-body-bg); + --bs-table-border-color: var(--bs-border-color); + --bs-table-accent-bg: transparent; + --bs-table-striped-color: var(--bs-emphasis-color); + --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05); + --bs-table-active-color: var(--bs-emphasis-color); + --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1); + --bs-table-hover-color: var(--bs-emphasis-color); + --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075); + width: 100%; + margin-bottom: 1rem; + vertical-align: top; + border-color: var(--bs-table-border-color); } + .table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color))); + background-color: var(--bs-table-bg); + border-bottom-width: var(--bs-border-width); + box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg))); } + .table > tbody { + vertical-align: inherit; } + .table > thead { + vertical-align: bottom; } + +.table-group-divider { + border-top: calc(var(--bs-border-width) * 2) solid currentcolor; } + +.caption-top { + caption-side: top; } + +.table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; } + +.table-bordered > :not(caption) > * { + border-width: var(--bs-border-width) 0; } + .table-bordered > :not(caption) > * > * { + border-width: 0 var(--bs-border-width); } + +.table-borderless > :not(caption) > * > * { + border-bottom-width: 0; } + +.table-borderless > :not(:first-child) { + border-top-width: 0; } + +.table-striped > tbody > tr:nth-of-type(odd) > * { + --bs-table-color-type: var(--bs-table-striped-color); + --bs-table-bg-type: var(--bs-table-striped-bg); } + +.table-striped-columns > :not(caption) > tr > :nth-child(even) { + --bs-table-color-type: var(--bs-table-striped-color); + --bs-table-bg-type: var(--bs-table-striped-bg); } + +.table-active { + --bs-table-color-state: var(--bs-table-active-color); + --bs-table-bg-state: var(--bs-table-active-bg); } + +.table-hover > tbody > tr:hover > * { + --bs-table-color-state: var(--bs-table-hover-color); + --bs-table-bg-state: var(--bs-table-hover-bg); } + +.table-primary { + --bs-table-color: #000; + --bs-table-bg: #cfe2ff; + --bs-table-border-color: #a6b5cc; + --bs-table-striped-bg: #c5d7f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bacbe6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); } + +.table-secondary { + --bs-table-color: #000; + --bs-table-bg: #e2e3e5; + --bs-table-border-color: #b5b6b7; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); } + +.table-success { + --bs-table-color: #000; + --bs-table-bg: #d1e7dd; + --bs-table-border-color: #a7b9b1; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); } + +.table-info { + --bs-table-color: #000; + --bs-table-bg: #cff4fc; + --bs-table-border-color: #a6c3ca; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); } + +.table-warning { + --bs-table-color: #000; + --bs-table-bg: #fff3cd; + --bs-table-border-color: #ccc2a4; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); } + +.table-danger { + --bs-table-color: #000; + --bs-table-bg: #f8d7da; + --bs-table-border-color: #c6acae; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); } + +.table-light { + --bs-table-color: #000; + --bs-table-bg: #f8f9fa; + --bs-table-border-color: #c6c7c8; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); } + +.table-dark { + --bs-table-color: #fff; + --bs-table-bg: #212529; + --bs-table-border-color: #4d5154; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); } + +.table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } + +@media (max-width: 575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } } + +@media (max-width: 767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } } + +@media (max-width: 991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } } + +@media (max-width: 1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } } + +@media (max-width: 1399.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } } + +.form-label { + margin-bottom: 0.5rem; } + +.col-form-label { + padding-top: calc(0.375rem + var(--bs-border-width)); + padding-bottom: calc(0.375rem + var(--bs-border-width)); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; } + +.col-form-label-lg { + padding-top: calc(0.5rem + var(--bs-border-width)); + padding-bottom: calc(0.5rem + var(--bs-border-width)); + font-size: 1.25rem; } + +.col-form-label-sm { + padding-top: calc(0.25rem + var(--bs-border-width)); + padding-bottom: calc(0.25rem + var(--bs-border-width)); + font-size: 0.875rem; } + +.form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-secondary-color); } + +.form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: var(--bs-body-color); + appearance: none; + background-color: var(--bs-body-bg); + background-clip: padding-box; + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + 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[type="file"] { + overflow: hidden; } + .form-control[type="file"]:not(:disabled):not([readonly]) { + cursor: pointer; } + .form-control:focus { + color: var(--bs-body-color); + background-color: var(--bs-body-bg); + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } + .form-control::-webkit-date-and-time-value { + min-width: 85px; + height: 1.5em; + margin: 0; } + .form-control::-webkit-datetime-edit { + display: block; + padding: 0; } + .form-control::placeholder { + color: var(--bs-secondary-color); + opacity: 1; } + .form-control:disabled { + background-color: var(--bs-secondary-bg); + opacity: 1; } + .form-control::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + margin-inline-end: 0.75rem; + color: var(--bs-body-color); + background-color: var(--bs-tertiary-bg); + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: var(--bs-border-width); + border-radius: 0; + 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) { + .form-control::file-selector-button { + transition: none; } } + .form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: var(--bs-secondary-bg); } + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: var(--bs-body-color); + background-color: transparent; + border: solid transparent; + border-width: var(--bs-border-width) 0; } + .form-control-plaintext:focus { + outline: 0; } + .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; } + +.form-control-sm { + min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); } + .form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + margin-inline-end: 0.5rem; } + +.form-control-lg { + min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); } + .form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + margin-inline-end: 1rem; } + +textarea.form-control { + min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); } + +textarea.form-control-sm { + min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); } + +textarea.form-control-lg { + min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); } + +.form-control-color { + width: 3rem; + height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); + padding: 0.375rem; } + .form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; } + .form-control-color::-moz-color-swatch { + border: 0 !important; + border-radius: var(--bs-border-radius); } + .form-control-color::-webkit-color-swatch { + border: 0 !important; + border-radius: var(--bs-border-radius); } + .form-control-color.form-control-sm { + height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); } + .form-control-color.form-control-lg { + height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); } + +.form-select { + --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); + display: block; + width: 100%; + padding: 0.375rem 2.25rem 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: var(--bs-body-color); + appearance: none; + background-color: var(--bs-body-bg); + background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .form-select { + transition: none; } } + .form-select:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } + .form-select[multiple], .form-select[size]:not([size="1"]) { + padding-right: 0.75rem; + background-image: none; } + .form-select:disabled { + background-color: var(--bs-secondary-bg); } + .form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 var(--bs-body-color); } + +.form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); } + +.form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); } + +[data-bs-theme="dark"] .form-select { + --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); } + +.form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.5em; + margin-bottom: 0.125rem; } + .form-check .form-check-input { + float: left; + margin-left: -1.5em; } + +.form-check-reverse { + padding-right: 1.5em; + padding-left: 0; + text-align: right; } + .form-check-reverse .form-check-input { + float: right; + margin-right: -1.5em; + margin-left: 0; } + +.form-check-input { + --bs-form-check-bg: var(--bs-body-bg); + flex-shrink: 0; + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + appearance: none; + background-color: var(--bs-form-check-bg); + background-image: var(--bs-form-check-bg-image); + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: var(--bs-border-width) solid var(--bs-border-color); + print-color-adjust: exact; } + .form-check-input[type="checkbox"] { + border-radius: 0.25em; } + .form-check-input[type="radio"] { + border-radius: 50%; } + .form-check-input:active { + filter: brightness(90%); } + .form-check-input:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } + .form-check-input:checked { + background-color: #0d6efd; + border-color: #0d6efd; } + .form-check-input[type="checkbox"]:checked { + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); } + .form-check-input[type="radio"]:checked { + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); } + .form-check-input[type="checkbox"]:indeterminate { + background-color: #0d6efd; + border-color: #0d6efd; + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); } + .form-check-input:disabled { + pointer-events: none; + filter: none; + opacity: 0.5; } + .form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + cursor: default; + opacity: 0.5; } + +.form-switch { + padding-left: 2.5em; } + .form-switch .form-check-input { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); + width: 2em; + margin-left: -2.5em; + background-image: var(--bs-form-switch-bg); + background-position: left center; + border-radius: 2em; + transition: background-position 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .form-switch .form-check-input { + transition: none; } } + .form-switch .form-check-input:focus { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e"); } + .form-switch .form-check-input:checked { + background-position: right center; + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); } + .form-switch.form-check-reverse { + padding-right: 2.5em; + padding-left: 0; } + .form-switch.form-check-reverse .form-check-input { + margin-right: -2.5em; + margin-left: 0; } + +.form-check-inline { + display: inline-block; + margin-right: 1rem; } + +.btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; } + .btn-check[disabled] + .btn, .btn-check:disabled + .btn { + pointer-events: none; + filter: none; + opacity: 0.65; } + +[data-bs-theme="dark"] .form-switch .form-check-input:not(:checked):not(:focus) { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e"); } + +.form-range { + width: 100%; + height: 1.5rem; + padding: 0; + appearance: none; + background-color: transparent; } + .form-range:focus { + outline: 0; } + .form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } + .form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } + .form-range::-moz-focus-outer { + border: 0; } + .form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + appearance: none; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + 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) { + .form-range::-webkit-slider-thumb { + transition: none; } } + .form-range::-webkit-slider-thumb:active { + background-color: #b6d4fe; } + .form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; + border-radius: 1rem; } + .form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + appearance: none; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + 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) { + .form-range::-moz-range-thumb { + transition: none; } } + .form-range::-moz-range-thumb:active { + background-color: #b6d4fe; } + .form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; + border-radius: 1rem; } + .form-range:disabled { + pointer-events: none; } + .form-range:disabled::-webkit-slider-thumb { + background-color: var(--bs-secondary-color); } + .form-range:disabled::-moz-range-thumb { + background-color: var(--bs-secondary-color); } + +.form-floating { + position: relative; } + .form-floating > .form-control, + .form-floating > .form-control-plaintext, + .form-floating > .form-select { + height: calc(3.5rem + calc(var(--bs-border-width) * 2)); + min-height: calc(3.5rem + calc(var(--bs-border-width) * 2)); + line-height: 1.25; } + .form-floating > label { + position: absolute; + top: 0; + left: 0; + z-index: 2; + height: 100%; + padding: 1rem 0.75rem; + overflow: hidden; + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; + pointer-events: none; + border: var(--bs-border-width) solid transparent; + transform-origin: 0 0; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .form-floating > label { + transition: none; } } + .form-floating > .form-control, + .form-floating > .form-control-plaintext { + padding: 1rem 0.75rem; } + .form-floating > .form-control::placeholder, + .form-floating > .form-control-plaintext::placeholder { + color: transparent; } + .form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown), + .form-floating > .form-control-plaintext:focus, + .form-floating > .form-control-plaintext:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; } + .form-floating > .form-control:-webkit-autofill, + .form-floating > .form-control-plaintext:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; } + .form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; } + .form-floating > .form-control:focus ~ label, + .form-floating > .form-control:not(:placeholder-shown) ~ label, + .form-floating > .form-control-plaintext ~ label, + .form-floating > .form-select ~ label { + color: rgba(var(--bs-body-color-rgb), 0.65); + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); } + .form-floating > .form-control:focus ~ label::after, + .form-floating > .form-control:not(:placeholder-shown) ~ label::after, + .form-floating > .form-control-plaintext ~ label::after, + .form-floating > .form-select ~ label::after { + position: absolute; + inset: 1rem 0.375rem; + z-index: -1; + height: 1.5em; + content: ""; + background-color: var(--bs-body-bg); + border-radius: var(--bs-border-radius); } + .form-floating > .form-control:-webkit-autofill ~ label { + color: rgba(var(--bs-body-color-rgb), 0.65); + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); } + .form-floating > .form-control-plaintext ~ label { + border-width: var(--bs-border-width) 0; } + .form-floating > :disabled ~ label, + .form-floating > .form-control:disabled ~ label { + color: #6c757d; } + .form-floating > :disabled ~ label::after, + .form-floating > .form-control:disabled ~ label::after { + background-color: var(--bs-secondary-bg); } + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; } + .input-group > .form-control, + .input-group > .form-select, + .input-group > .form-floating { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; } + .input-group > .form-control:focus, + .input-group > .form-select:focus, + .input-group > .form-floating:focus-within { + z-index: 5; } + .input-group .btn { + position: relative; + z-index: 2; } + .input-group .btn:focus { + z-index: 5; } + +.input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: var(--bs-body-color); + text-align: center; + white-space: nowrap; + background-color: var(--bs-tertiary-bg); + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); } + +.input-group-lg > .form-control, +.input-group-lg > .form-select, +.input-group-lg > .input-group-text, +.input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); } + +.input-group-sm > .form-control, +.input-group-sm > .form-select, +.input-group-sm > .input-group-text, +.input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); } + +.input-group-lg > .form-select, +.input-group-sm > .form-select { + padding-right: 3rem; } + +.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n + 3), +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.input-group.has-validation > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group.has-validation > .dropdown-toggle:nth-last-child(n + 4), +.input-group.has-validation > .form-floating:nth-last-child(n + 3) > .form-control, +.input-group.has-validation > .form-floating:nth-last-child(n + 3) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-left: calc(var(--bs-border-width) * -1); + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + +.input-group > .form-floating:not(:first-child) > .form-control, +.input-group > .form-floating:not(:first-child) > .form-select { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-form-valid-color); } + +.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; + color: #fff; + background-color: var(--bs-success); + border-radius: var(--bs-border-radius); } + +.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: var(--bs-form-valid-border-color); + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.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: var(--bs-form-valid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 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 .form-select:valid, .form-select.is-valid { + border-color: var(--bs-form-valid-border-color); } + .was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select[size="1"]:valid:not([multiple]), .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid[size="1"]:not([multiple]) { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.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"); + padding-right: 4.125rem; + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .form-select:valid:focus, .form-select.is-valid:focus { + border-color: var(--bs-form-valid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); } + +.was-validated .form-control-color:valid, .form-control-color.is-valid { + width: calc(3rem + calc(1.5em + 0.75rem)); } + +.was-validated .form-check-input:valid, .form-check-input.is-valid { + border-color: var(--bs-form-valid-border-color); } + .was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { + background-color: var(--bs-form-valid-color); } + .was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); } + .was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: var(--bs-form-valid-color); } + +.form-check-inline .form-check-input ~ .valid-feedback { + margin-left: .5em; } + +.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control.is-valid:not(:focus), .was-validated .input-group > .form-select:not(:focus):valid, +.input-group > .form-select.is-valid:not(:focus), .was-validated .input-group > .form-floating:not(:focus-within):valid, +.input-group > .form-floating.is-valid:not(:focus-within) { + z-index: 3; } + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-form-invalid-color); } + +.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; + color: #fff; + background-color: var(--bs-danger); + border-radius: var(--bs-border-radius); } + +.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: var(--bs-form-invalid-border-color); + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%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='%23dc3545' 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: var(--bs-form-invalid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 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 .form-select:invalid, .form-select.is-invalid { + border-color: var(--bs-form-invalid-border-color); } + .was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select[size="1"]:invalid:not([multiple]), .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid[size="1"]:not([multiple]) { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%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='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + padding-right: 4.125rem; + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { + border-color: var(--bs-form-invalid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); } + +.was-validated .form-control-color:invalid, .form-control-color.is-invalid { + width: calc(3rem + calc(1.5em + 0.75rem)); } + +.was-validated .form-check-input:invalid, .form-check-input.is-invalid { + border-color: var(--bs-form-invalid-border-color); } + .was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { + background-color: var(--bs-form-invalid-color); } + .was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); } + .was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: var(--bs-form-invalid-color); } + +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: .5em; } + +.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control.is-invalid:not(:focus), .was-validated .input-group > .form-select:not(:focus):invalid, +.input-group > .form-select.is-invalid:not(:focus), .was-validated .input-group > .form-floating:not(:focus-within):invalid, +.input-group > .form-floating.is-invalid:not(:focus-within) { + z-index: 4; } + +.btn { + --bs-btn-padding-x: 0.75rem; + --bs-btn-padding-y: 0.375rem; + --bs-btn-font-family: ; + --bs-btn-font-size: 1rem; + --bs-btn-font-weight: 400; + --bs-btn-line-height: 1.5; + --bs-btn-color: var(--bs-body-color); + --bs-btn-bg: transparent; + --bs-btn-border-width: var(--bs-border-width); + --bs-btn-border-color: transparent; + --bs-btn-border-radius: var(--bs-border-radius); + --bs-btn-hover-border-color: transparent; + --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + --bs-btn-disabled-opacity: 0.65; + --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5); + display: inline-block; + padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x); + font-family: var(--bs-btn-font-family); + font-size: var(--bs-btn-font-size); + font-weight: var(--bs-btn-font-weight); + line-height: var(--bs-btn-line-height); + color: var(--bs-btn-color); + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + user-select: none; + border: var(--bs-btn-border-width) solid var(--bs-btn-border-color); + border-radius: var(--bs-btn-border-radius); + background-color: var(--bs-btn-bg); + 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: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); } + .btn-check + .btn:hover { + color: var(--bs-btn-color); + background-color: var(--bs-btn-bg); + border-color: var(--bs-btn-border-color); } + .btn:focus-visible { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); } + .btn-check:focus-visible + .btn { + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); } + .btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show { + color: var(--bs-btn-active-color); + background-color: var(--bs-btn-active-bg); + border-color: var(--bs-btn-active-border-color); } + .btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible { + box-shadow: var(--bs-btn-focus-box-shadow); } + .btn-check:checked:focus-visible + .btn { + box-shadow: var(--bs-btn-focus-box-shadow); } + .btn:disabled, .btn.disabled, fieldset:disabled .btn { + color: var(--bs-btn-disabled-color); + pointer-events: none; + background-color: var(--bs-btn-disabled-bg); + border-color: var(--bs-btn-disabled-border-color); + opacity: var(--bs-btn-disabled-opacity); } + +.btn-primary { + --bs-btn-color: #fff; + --bs-btn-bg: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0b5ed7; + --bs-btn-hover-border-color: #0a58ca; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0a58ca; + --bs-btn-active-border-color: #0a53be; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #0d6efd; + --bs-btn-disabled-border-color: #0d6efd; } + +.btn-secondary { + --bs-btn-color: #fff; + --bs-btn-bg: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #5c636a; + --bs-btn-hover-border-color: #565e64; + --bs-btn-focus-shadow-rgb: 130, 138, 145; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #565e64; + --bs-btn-active-border-color: #51585e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #6c757d; + --bs-btn-disabled-border-color: #6c757d; } + +.btn-success { + --bs-btn-color: #fff; + --bs-btn-bg: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #157347; + --bs-btn-hover-border-color: #146c43; + --bs-btn-focus-shadow-rgb: 60, 153, 110; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #146c43; + --bs-btn-active-border-color: #13653f; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #198754; + --bs-btn-disabled-border-color: #198754; } + +.btn-info { + --bs-btn-color: #000; + --bs-btn-bg: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #31d2f2; + --bs-btn-hover-border-color: #25cff2; + --bs-btn-focus-shadow-rgb: 11, 172, 204; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #3dd5f3; + --bs-btn-active-border-color: #25cff2; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #0dcaf0; + --bs-btn-disabled-border-color: #0dcaf0; } + +.btn-warning { + --bs-btn-color: #000; + --bs-btn-bg: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffca2c; + --bs-btn-hover-border-color: #ffc720; + --bs-btn-focus-shadow-rgb: 217, 164, 6; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffcd39; + --bs-btn-active-border-color: #ffc720; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #ffc107; + --bs-btn-disabled-border-color: #ffc107; } + +.btn-danger { + --bs-btn-color: #fff; + --bs-btn-bg: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #bb2d3b; + --bs-btn-hover-border-color: #b02a37; + --bs-btn-focus-shadow-rgb: 225, 83, 97; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #b02a37; + --bs-btn-active-border-color: #a52834; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #dc3545; + --bs-btn-disabled-border-color: #dc3545; } + +.btn-light { + --bs-btn-color: #000; + --bs-btn-bg: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #d3d4d5; + --bs-btn-hover-border-color: #c6c7c8; + --bs-btn-focus-shadow-rgb: 211, 212, 213; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #c6c7c8; + --bs-btn-active-border-color: #babbbc; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #f8f9fa; + --bs-btn-disabled-border-color: #f8f9fa; } + +.btn-dark { + --bs-btn-color: #fff; + --bs-btn-bg: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #424649; + --bs-btn-hover-border-color: #373b3e; + --bs-btn-focus-shadow-rgb: 66, 70, 73; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #4d5154; + --bs-btn-active-border-color: #373b3e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #212529; + --bs-btn-disabled-border-color: #212529; } + +.btn-outline-primary { + --bs-btn-color: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0d6efd; + --bs-btn-hover-border-color: #0d6efd; + --bs-btn-focus-shadow-rgb: 13, 110, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0d6efd; + --bs-btn-active-border-color: #0d6efd; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0d6efd; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0d6efd; + --bs-gradient: none; } + +.btn-outline-secondary { + --bs-btn-color: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #6c757d; + --bs-btn-hover-border-color: #6c757d; + --bs-btn-focus-shadow-rgb: 108, 117, 125; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #6c757d; + --bs-btn-active-border-color: #6c757d; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #6c757d; + --bs-gradient: none; } + +.btn-outline-success { + --bs-btn-color: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #198754; + --bs-btn-hover-border-color: #198754; + --bs-btn-focus-shadow-rgb: 25, 135, 84; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #198754; + --bs-btn-active-border-color: #198754; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #198754; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #198754; + --bs-gradient: none; } + +.btn-outline-info { + --bs-btn-color: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #0dcaf0; + --bs-btn-hover-border-color: #0dcaf0; + --bs-btn-focus-shadow-rgb: 13, 202, 240; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #0dcaf0; + --bs-btn-active-border-color: #0dcaf0; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0dcaf0; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0dcaf0; + --bs-gradient: none; } + +.btn-outline-warning { + --bs-btn-color: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffc107; + --bs-btn-hover-border-color: #ffc107; + --bs-btn-focus-shadow-rgb: 255, 193, 7; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffc107; + --bs-btn-active-border-color: #ffc107; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #ffc107; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #ffc107; + --bs-gradient: none; } + +.btn-outline-danger { + --bs-btn-color: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #dc3545; + --bs-btn-hover-border-color: #dc3545; + --bs-btn-focus-shadow-rgb: 220, 53, 69; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #dc3545; + --bs-btn-active-border-color: #dc3545; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #dc3545; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #dc3545; + --bs-gradient: none; } + +.btn-outline-light { + --bs-btn-color: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #f8f9fa; + --bs-btn-hover-border-color: #f8f9fa; + --bs-btn-focus-shadow-rgb: 248, 249, 250; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #f8f9fa; + --bs-btn-active-border-color: #f8f9fa; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #f8f9fa; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #f8f9fa; + --bs-gradient: none; } + +.btn-outline-dark { + --bs-btn-color: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #212529; + --bs-btn-hover-border-color: #212529; + --bs-btn-focus-shadow-rgb: 33, 37, 41; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #212529; + --bs-btn-active-border-color: #212529; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #212529; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #212529; + --bs-gradient: none; } + +.btn-link { + --bs-btn-font-weight: 400; + --bs-btn-color: var(--bs-link-color); + --bs-btn-bg: transparent; + --bs-btn-border-color: transparent; + --bs-btn-hover-color: var(--bs-link-hover-color); + --bs-btn-hover-border-color: transparent; + --bs-btn-active-color: var(--bs-link-hover-color); + --bs-btn-active-border-color: transparent; + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-border-color: transparent; + --bs-btn-box-shadow: 0 0 0 #000; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + text-decoration: underline; } + .btn-link:focus-visible { + color: var(--bs-btn-color); } + .btn-link:hover { + color: var(--bs-btn-hover-color); } + +.btn-lg, .btn-group-lg > .btn { + --bs-btn-padding-y: 0.5rem; + --bs-btn-padding-x: 1rem; + --bs-btn-font-size: 1.25rem; + --bs-btn-border-radius: var(--bs-border-radius-lg); } + +.btn-sm, .btn-group-sm > .btn { + --bs-btn-padding-y: 0.25rem; + --bs-btn-padding-x: 0.5rem; + --bs-btn-font-size: 0.875rem; + --bs-btn-border-radius: var(--bs-border-radius-sm); } + +.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 { + height: 0; + overflow: hidden; + transition: height 0.35s ease; } + @media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; } } + .collapsing.collapse-horizontal { + width: 0; + height: auto; + transition: width 0.35s ease; } + @media (prefers-reduced-motion: reduce) { + .collapsing.collapse-horizontal { + transition: none; } } +.dropup, +.dropend, +.dropdown, +.dropstart, +.dropup-center, +.dropdown-center { + 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 { + --bs-dropdown-zindex: 1000; + --bs-dropdown-min-width: 10rem; + --bs-dropdown-padding-x: 0; + --bs-dropdown-padding-y: 0.5rem; + --bs-dropdown-spacer: 0.125rem; + --bs-dropdown-font-size: 1rem; + --bs-dropdown-color: var(--bs-body-color); + --bs-dropdown-bg: var(--bs-body-bg); + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-border-radius: var(--bs-border-radius); + --bs-dropdown-border-width: var(--bs-border-width); + --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width)); + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-divider-margin-y: 0.5rem; + --bs-dropdown-box-shadow: var(--bs-box-shadow); + --bs-dropdown-link-color: var(--bs-body-color); + --bs-dropdown-link-hover-color: var(--bs-body-color); + --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: var(--bs-tertiary-color); + --bs-dropdown-item-padding-x: 1rem; + --bs-dropdown-item-padding-y: 0.25rem; + --bs-dropdown-header-color: #6c757d; + --bs-dropdown-header-padding-x: 1rem; + --bs-dropdown-header-padding-y: 0.5rem; + position: absolute; + z-index: var(--bs-dropdown-zindex); + display: none; + min-width: var(--bs-dropdown-min-width); + padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); + margin: 0; + font-size: var(--bs-dropdown-font-size); + color: var(--bs-dropdown-color); + text-align: left; + list-style: none; + background-color: var(--bs-dropdown-bg); + background-clip: padding-box; + border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color); + border-radius: var(--bs-dropdown-border-radius); } + .dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: var(--bs-dropdown-spacer); } + +.dropdown-menu-start { + --bs-position: start; } + .dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0; } + +.dropdown-menu-end { + --bs-position: end; } + .dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto; } + +@media (min-width: 576px) { + .dropdown-menu-sm-start { + --bs-position: start; } + .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0; } + .dropdown-menu-sm-end { + --bs-position: end; } + .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; } } + +@media (min-width: 768px) { + .dropdown-menu-md-start { + --bs-position: start; } + .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; } + .dropdown-menu-md-end { + --bs-position: end; } + .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; } } + +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; } + .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; } + .dropdown-menu-lg-end { + --bs-position: end; } + .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; } } + +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; } + .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; } + .dropdown-menu-xl-end { + --bs-position: end; } + .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; } } + +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; } + .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; } + .dropdown-menu-xxl-end { + --bs-position: end; } + .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; } } + +.dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: var(--bs-dropdown-spacer); } + +.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; } + +.dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: var(--bs-dropdown-spacer); } + +.dropend .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; } + +.dropend .dropdown-toggle:empty::after { + margin-left: 0; } + +.dropend .dropdown-toggle::after { + vertical-align: 0; } + +.dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: var(--bs-dropdown-spacer); } + +.dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; } + +.dropstart .dropdown-toggle::after { + display: none; } + +.dropstart .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; } + +.dropstart .dropdown-toggle:empty::after { + margin-left: 0; } + +.dropstart .dropdown-toggle::before { + vertical-align: 0; } + +.dropdown-divider { + height: 0; + margin: var(--bs-dropdown-divider-margin-y) 0; + overflow: hidden; + border-top: 1px solid var(--bs-dropdown-divider-bg); + opacity: 1; } + +.dropdown-item { + display: block; + width: 100%; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + clear: both; + font-weight: 400; + color: var(--bs-dropdown-link-color); + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; + border-radius: var(--bs-dropdown-item-border-radius, 0); } + .dropdown-item:hover, .dropdown-item:focus { + color: var(--bs-dropdown-link-hover-color); + background-color: var(--bs-dropdown-link-hover-bg); } + .dropdown-item.active, .dropdown-item:active { + color: var(--bs-dropdown-link-active-color); + text-decoration: none; + background-color: var(--bs-dropdown-link-active-bg); } + .dropdown-item.disabled, .dropdown-item:disabled { + color: var(--bs-dropdown-link-disabled-color); + pointer-events: none; + background-color: transparent; } + +.dropdown-menu.show { + display: block; } + +.dropdown-header { + display: block; + padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); + margin-bottom: 0; + font-size: 0.875rem; + color: var(--bs-dropdown-header-color); + white-space: nowrap; } + +.dropdown-item-text { + display: block; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + color: var(--bs-dropdown-link-color); } + +.dropdown-menu-dark { + --bs-dropdown-color: #dee2e6; + --bs-dropdown-bg: #343a40; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-box-shadow: ; + --bs-dropdown-link-color: #dee2e6; + --bs-dropdown-link-hover-color: #fff; + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-header-color: #adb5bd; } + +.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-check:checked + .btn, + .btn-group > .btn-check:focus + .btn, + .btn-group > .btn:hover, + .btn-group > .btn:focus, + .btn-group > .btn:active, + .btn-group > .btn.active, + .btn-group-vertical > .btn-check:checked + .btn, + .btn-group-vertical > .btn-check:focus + .btn, + .btn-group-vertical > .btn:hover, + .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 { + border-radius: var(--bs-border-radius); } + .btn-group > :not(.btn-check:first-child) + .btn, + .btn-group > .btn-group:not(:first-child) { + margin-left: calc(var(--bs-border-width) * -1); } + .btn-group > .btn:not(:last-child):not(.dropdown-toggle), + .btn-group > .btn.dropdown-toggle-split:first-child, + .btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + .btn-group > .btn:nth-child(n + 3), + .btn-group > :not(.btn-check) + .btn, + .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, .dropend .dropdown-toggle-split::after { + margin-left: 0; } + .dropstart .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-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: calc(var(--bs-border-width) * -1); } + .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 ~ .btn, + .btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.nav { + --bs-nav-link-padding-x: 1rem; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-font-weight: ; + --bs-nav-link-color: var(--bs-link-color); + --bs-nav-link-hover-color: var(--bs-link-hover-color); + --bs-nav-link-disabled-color: var(--bs-secondary-color); + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; } + +.nav-link { + display: block; + padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x); + font-size: var(--bs-nav-link-font-size); + font-weight: var(--bs-nav-link-font-weight); + color: var(--bs-nav-link-color); + text-decoration: none; + background: none; + border: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .nav-link { + transition: none; } } + .nav-link:hover, .nav-link:focus { + color: var(--bs-nav-link-hover-color); } + .nav-link:focus-visible { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } + .nav-link.disabled, .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + pointer-events: none; + cursor: default; } + +.nav-tabs { + --bs-nav-tabs-border-width: var(--bs-border-width); + --bs-nav-tabs-border-color: var(--bs-border-color); + --bs-nav-tabs-border-radius: var(--bs-border-radius); + --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color); + --bs-nav-tabs-link-active-color: var(--bs-emphasis-color); + --bs-nav-tabs-link-active-bg: var(--bs-body-bg); + --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg); + border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); } + .nav-tabs .nav-link { + margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); + border: var(--bs-nav-tabs-border-width) solid transparent; + border-top-left-radius: var(--bs-nav-tabs-border-radius); + border-top-right-radius: var(--bs-nav-tabs-border-radius); } + .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + isolation: isolate; + border-color: var(--bs-nav-tabs-link-hover-border-color); } + .nav-tabs .nav-link.active, + .nav-tabs .nav-item.show .nav-link { + color: var(--bs-nav-tabs-link-active-color); + background-color: var(--bs-nav-tabs-link-active-bg); + border-color: var(--bs-nav-tabs-link-active-border-color); } + .nav-tabs .dropdown-menu { + margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.nav-pills { + --bs-nav-pills-border-radius: var(--bs-border-radius); + --bs-nav-pills-link-active-color: #fff; + --bs-nav-pills-link-active-bg: #0d6efd; } + .nav-pills .nav-link { + border-radius: var(--bs-nav-pills-border-radius); } + .nav-pills .nav-link.active, + .nav-pills .show > .nav-link { + color: var(--bs-nav-pills-link-active-color); + background-color: var(--bs-nav-pills-link-active-bg); } + +.nav-underline { + --bs-nav-underline-gap: 1rem; + --bs-nav-underline-border-width: 0.125rem; + --bs-nav-underline-link-active-color: var(--bs-emphasis-color); + gap: var(--bs-nav-underline-gap); } + .nav-underline .nav-link { + padding-right: 0; + padding-left: 0; + border-bottom: var(--bs-nav-underline-border-width) solid transparent; } + .nav-underline .nav-link:hover, .nav-underline .nav-link:focus { + border-bottom-color: currentcolor; } + .nav-underline .nav-link.active, + .nav-underline .show > .nav-link { + font-weight: 700; + color: var(--bs-nav-underline-link-active-color); + border-bottom-color: currentcolor; } + +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; } + +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; } + +.nav-fill .nav-item .nav-link, +.nav-justified .nav-item .nav-link { + width: 100%; } + +.tab-content > .tab-pane { + display: none; } + +.tab-content > .active { + display: block; } + +.navbar { + --bs-navbar-padding-x: 0; + --bs-navbar-padding-y: 0.5rem; + --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65); + --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8); + --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3); + --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1); + --bs-navbar-brand-padding-y: 0.3125rem; + --bs-navbar-brand-margin-end: 1rem; + --bs-navbar-brand-font-size: 1.25rem; + --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1); + --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1); + --bs-navbar-nav-link-padding-x: 0.5rem; + --bs-navbar-toggler-padding-y: 0.25rem; + --bs-navbar-toggler-padding-x: 0.75rem; + --bs-navbar-toggler-font-size: 1.25rem; + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); + --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15); + --bs-navbar-toggler-border-radius: var(--bs-border-radius); + --bs-navbar-toggler-focus-width: 0.25rem; + --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out; + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x); } + .navbar > .container, + .navbar > .container-fluid, + .navbar > .container-sm, + .navbar > .container-md, + .navbar > .container-lg, + .navbar > .container-xl, + .navbar > .container-xxl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between; } + +.navbar-brand { + padding-top: var(--bs-navbar-brand-padding-y); + padding-bottom: var(--bs-navbar-brand-padding-y); + margin-right: var(--bs-navbar-brand-margin-end); + font-size: var(--bs-navbar-brand-font-size); + color: var(--bs-navbar-brand-color); + text-decoration: none; + white-space: nowrap; } + .navbar-brand:hover, .navbar-brand:focus { + color: var(--bs-navbar-brand-hover-color); } + +.navbar-nav { + --bs-nav-link-padding-x: 0; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-font-weight: ; + --bs-nav-link-color: var(--bs-navbar-color); + --bs-nav-link-hover-color: var(--bs-navbar-hover-color); + --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color); + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; } + .navbar-nav .nav-link.active, .navbar-nav .nav-link.show { + color: var(--bs-navbar-active-color); } + .navbar-nav .dropdown-menu { + position: static; } + +.navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-navbar-color); } + .navbar-text a, + .navbar-text a:hover, + .navbar-text a:focus { + color: var(--bs-navbar-active-color); } + +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; } + +.navbar-toggler { + padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x); + font-size: var(--bs-navbar-toggler-font-size); + line-height: 1; + color: var(--bs-navbar-color); + background-color: transparent; + border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color); + border-radius: var(--bs-navbar-toggler-border-radius); + transition: var(--bs-navbar-toggler-transition); } + @media (prefers-reduced-motion: reduce) { + .navbar-toggler { + transition: none; } } + .navbar-toggler:hover { + text-decoration: none; } + .navbar-toggler:focus { + text-decoration: none; + outline: 0; + box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width); } + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-image: var(--bs-navbar-toggler-icon-bg); + background-repeat: no-repeat; + background-position: center; + background-size: 100%; } + +.navbar-nav-scroll { + max-height: var(--bs-scroll-height, 75vh); + overflow-y: auto; } + +@media (min-width: 576px) { + .navbar-expand-sm { + flex-wrap: 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: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); } + .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; } + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand-sm .navbar-toggler { + display: none; } + .navbar-expand-sm .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; } + .navbar-expand-sm .offcanvas .offcanvas-header { + display: none; } + .navbar-expand-sm .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; } } + +@media (min-width: 768px) { + .navbar-expand-md { + flex-wrap: 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: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); } + .navbar-expand-md .navbar-nav-scroll { + overflow: visible; } + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand-md .navbar-toggler { + display: none; } + .navbar-expand-md .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; } + .navbar-expand-md .offcanvas .offcanvas-header { + display: none; } + .navbar-expand-md .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; } } + +@media (min-width: 992px) { + .navbar-expand-lg { + flex-wrap: 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: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); } + .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; } + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand-lg .navbar-toggler { + display: none; } + .navbar-expand-lg .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; } + .navbar-expand-lg .offcanvas .offcanvas-header { + display: none; } + .navbar-expand-lg .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; } } + +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-wrap: 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: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); } + .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; } + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand-xl .navbar-toggler { + display: none; } + .navbar-expand-xl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; } + .navbar-expand-xl .offcanvas .offcanvas-header { + display: none; } + .navbar-expand-xl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; } } + +@media (min-width: 1400px) { + .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start; } + .navbar-expand-xxl .navbar-nav { + flex-direction: row; } + .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; } + .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); } + .navbar-expand-xxl .navbar-nav-scroll { + overflow: visible; } + .navbar-expand-xxl .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand-xxl .navbar-toggler { + display: none; } + .navbar-expand-xxl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; } + .navbar-expand-xxl .offcanvas .offcanvas-header { + display: none; } + .navbar-expand-xxl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; } } + +.navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start; } + .navbar-expand .navbar-nav { + flex-direction: row; } + .navbar-expand .navbar-nav .dropdown-menu { + position: absolute; } + .navbar-expand .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); } + .navbar-expand .navbar-nav-scroll { + overflow: visible; } + .navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; } + .navbar-expand .navbar-toggler { + display: none; } + .navbar-expand .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; } + .navbar-expand .offcanvas .offcanvas-header { + display: none; } + .navbar-expand .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; } + +.navbar-dark, +.navbar[data-bs-theme="dark"] { + --bs-navbar-color: rgba(255, 255, 255, 0.55); + --bs-navbar-hover-color: rgba(255, 255, 255, 0.75); + --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25); + --bs-navbar-active-color: #fff; + --bs-navbar-brand-color: #fff; + --bs-navbar-brand-hover-color: #fff; + --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1); + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } + +[data-bs-theme="dark"] .navbar-toggler-icon { + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } + +.card { + --bs-card-spacer-y: 1rem; + --bs-card-spacer-x: 1rem; + --bs-card-title-spacer-y: 0.5rem; + --bs-card-title-color: ; + --bs-card-subtitle-color: ; + --bs-card-border-width: var(--bs-border-width); + --bs-card-border-color: var(--bs-border-color-translucent); + --bs-card-border-radius: var(--bs-border-radius); + --bs-card-box-shadow: ; + --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); + --bs-card-cap-padding-y: 0.5rem; + --bs-card-cap-padding-x: 1rem; + --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03); + --bs-card-cap-color: ; + --bs-card-height: ; + --bs-card-color: ; + --bs-card-bg: var(--bs-body-bg); + --bs-card-img-overlay-padding: 1rem; + --bs-card-group-margin: 0.75rem; + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + height: var(--bs-card-height); + color: var(--bs-body-color); + word-wrap: break-word; + background-color: var(--bs-card-bg); + background-clip: border-box; + border: var(--bs-card-border-width) solid var(--bs-card-border-color); + border-radius: var(--bs-card-border-radius); } + .card > hr { + margin-right: 0; + margin-left: 0; } + .card > .list-group { + border-top: inherit; + border-bottom: inherit; } + .card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); } + .card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); } + .card > .card-header + .list-group, + .card > .list-group + .card-footer { + border-top: 0; } + +.card-body { + flex: 1 1 auto; + padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x); + color: var(--bs-card-color); } + +.card-title { + margin-bottom: var(--bs-card-title-spacer-y); + color: var(--bs-card-title-color); } + +.card-subtitle { + margin-top: calc(-.5 * var(--bs-card-title-spacer-y)); + margin-bottom: 0; + color: var(--bs-card-subtitle-color); } + +.card-text:last-child { + margin-bottom: 0; } + +.card-link + .card-link { + margin-left: var(--bs-card-spacer-x); } + +.card-header { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + margin-bottom: 0; + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color); } + .card-header:first-child { + border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0; } + +.card-footer { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-top: var(--bs-card-border-width) solid var(--bs-card-border-color); } + .card-footer:last-child { + border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius); } + +.card-header-tabs { + margin-right: calc(-.5 * var(--bs-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); + margin-left: calc(-.5 * var(--bs-card-cap-padding-x)); + border-bottom: 0; } + .card-header-tabs .nav-link.active { + background-color: var(--bs-card-bg); + border-bottom-color: var(--bs-card-bg); } + +.card-header-pills { + margin-right: calc(-.5 * var(--bs-card-cap-padding-x)); + margin-left: calc(-.5 * var(--bs-card-cap-padding-x)); } + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: var(--bs-card-img-overlay-padding); + border-radius: var(--bs-card-inner-border-radius); } + +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; } + +.card-img, +.card-img-top { + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); } + +.card-img, +.card-img-bottom { + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); } + +.card-group > .card { + margin-bottom: var(--bs-card-group-margin); } + +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap; } + .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; } + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + .card-group > .card:not(:last-child) .card-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; } + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + .card-group > .card:not(:first-child) .card-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; } } + +.accordion { + --bs-accordion-color: var(--bs-body-color); + --bs-accordion-bg: var(--bs-body-bg); + --bs-accordion-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, border-radius 0.15s ease; + --bs-accordion-border-color: var(--bs-border-color); + --bs-accordion-border-width: var(--bs-border-width); + --bs-accordion-border-radius: var(--bs-border-radius); + --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); + --bs-accordion-btn-padding-x: 1.25rem; + --bs-accordion-btn-padding-y: 1rem; + --bs-accordion-btn-color: var(--bs-body-color); + --bs-accordion-btn-bg: var(--bs-accordion-bg); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon-width: 1.25rem; + --bs-accordion-btn-icon-transform: rotate(-180deg); + --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); + --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-accordion-body-padding-x: 1.25rem; + --bs-accordion-body-padding-y: 1rem; + --bs-accordion-active-color: var(--bs-primary-text-emphasis); + --bs-accordion-active-bg: var(--bs-primary-bg-subtle); } + +.accordion-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); + font-size: 1rem; + color: var(--bs-accordion-btn-color); + text-align: left; + background-color: var(--bs-accordion-btn-bg); + border: 0; + border-radius: 0; + overflow-anchor: none; + transition: var(--bs-accordion-transition); } + @media (prefers-reduced-motion: reduce) { + .accordion-button { + transition: none; } } + .accordion-button:not(.collapsed) { + color: var(--bs-accordion-active-color); + background-color: var(--bs-accordion-active-bg); + box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color); } + .accordion-button:not(.collapsed)::after { + background-image: var(--bs-accordion-btn-active-icon); + transform: var(--bs-accordion-btn-icon-transform); } + .accordion-button::after { + flex-shrink: 0; + width: var(--bs-accordion-btn-icon-width); + height: var(--bs-accordion-btn-icon-width); + margin-left: auto; + content: ""; + background-image: var(--bs-accordion-btn-icon); + background-repeat: no-repeat; + background-size: var(--bs-accordion-btn-icon-width); + transition: var(--bs-accordion-btn-icon-transition); } + @media (prefers-reduced-motion: reduce) { + .accordion-button::after { + transition: none; } } + .accordion-button:hover { + z-index: 2; } + .accordion-button:focus { + z-index: 3; + outline: 0; + box-shadow: var(--bs-accordion-btn-focus-box-shadow); } + +.accordion-header { + margin-bottom: 0; } + +.accordion-item { + color: var(--bs-accordion-color); + background-color: var(--bs-accordion-bg); + border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color); } + .accordion-item:first-of-type { + border-top-left-radius: var(--bs-accordion-border-radius); + border-top-right-radius: var(--bs-accordion-border-radius); } + .accordion-item:first-of-type > .accordion-header .accordion-button { + border-top-left-radius: var(--bs-accordion-inner-border-radius); + border-top-right-radius: var(--bs-accordion-inner-border-radius); } + .accordion-item:not(:first-of-type) { + border-top: 0; } + .accordion-item:last-of-type { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); } + .accordion-item:last-of-type > .accordion-header .accordion-button.collapsed { + border-bottom-right-radius: var(--bs-accordion-inner-border-radius); + border-bottom-left-radius: var(--bs-accordion-inner-border-radius); } + .accordion-item:last-of-type > .accordion-collapse { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); } + +.accordion-body { + padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x); } + +.accordion-flush > .accordion-item { + border-right: 0; + border-left: 0; + border-radius: 0; } + .accordion-flush > .accordion-item:first-child { + border-top: 0; } + .accordion-flush > .accordion-item:last-child { + border-bottom: 0; } + .accordion-flush > .accordion-item > .accordion-header .accordion-button, .accordion-flush > .accordion-item > .accordion-header .accordion-button.collapsed { + border-radius: 0; } + .accordion-flush > .accordion-item > .accordion-collapse { + border-radius: 0; } + +[data-bs-theme="dark"] .accordion-button::after { + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } + +.breadcrumb { + --bs-breadcrumb-padding-x: 0; + --bs-breadcrumb-padding-y: 0; + --bs-breadcrumb-margin-bottom: 1rem; + --bs-breadcrumb-bg: ; + --bs-breadcrumb-border-radius: ; + --bs-breadcrumb-divider-color: var(--bs-secondary-color); + --bs-breadcrumb-item-padding-x: 0.5rem; + --bs-breadcrumb-item-active-color: var(--bs-secondary-color); + display: flex; + flex-wrap: wrap; + padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x); + margin-bottom: var(--bs-breadcrumb-margin-bottom); + font-size: var(--bs-breadcrumb-font-size); + list-style: none; + background-color: var(--bs-breadcrumb-bg); + border-radius: var(--bs-breadcrumb-border-radius); } + +.breadcrumb-item + .breadcrumb-item { + padding-left: var(--bs-breadcrumb-item-padding-x); } + .breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: var(--bs-breadcrumb-item-padding-x); + color: var(--bs-breadcrumb-divider-color); + content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; } + +.breadcrumb-item.active { + color: var(--bs-breadcrumb-item-active-color); } + +.pagination { + --bs-pagination-padding-x: 0.75rem; + --bs-pagination-padding-y: 0.375rem; + --bs-pagination-font-size: 1rem; + --bs-pagination-color: var(--bs-link-color); + --bs-pagination-bg: var(--bs-body-bg); + --bs-pagination-border-width: var(--bs-border-width); + --bs-pagination-border-color: var(--bs-border-color); + --bs-pagination-border-radius: var(--bs-border-radius); + --bs-pagination-hover-color: var(--bs-link-hover-color); + --bs-pagination-hover-bg: var(--bs-tertiary-bg); + --bs-pagination-hover-border-color: var(--bs-border-color); + --bs-pagination-focus-color: var(--bs-link-hover-color); + --bs-pagination-focus-bg: var(--bs-secondary-bg); + --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-pagination-active-color: #fff; + --bs-pagination-active-bg: #0d6efd; + --bs-pagination-active-border-color: #0d6efd; + --bs-pagination-disabled-color: var(--bs-secondary-color); + --bs-pagination-disabled-bg: var(--bs-secondary-bg); + --bs-pagination-disabled-border-color: var(--bs-border-color); + display: flex; + padding-left: 0; + list-style: none; } + +.page-link { + position: relative; + display: block; + padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x); + font-size: var(--bs-pagination-font-size); + color: var(--bs-pagination-color); + text-decoration: none; + background-color: var(--bs-pagination-bg); + border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color); + 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) { + .page-link { + transition: none; } } + .page-link:hover { + z-index: 2; + color: var(--bs-pagination-hover-color); + background-color: var(--bs-pagination-hover-bg); + border-color: var(--bs-pagination-hover-border-color); } + .page-link:focus { + z-index: 3; + color: var(--bs-pagination-focus-color); + background-color: var(--bs-pagination-focus-bg); + outline: 0; + box-shadow: var(--bs-pagination-focus-box-shadow); } + .page-link.active, .active > .page-link { + z-index: 3; + color: var(--bs-pagination-active-color); + background-color: var(--bs-pagination-active-bg); + border-color: var(--bs-pagination-active-border-color); } + .page-link.disabled, .disabled > .page-link { + color: var(--bs-pagination-disabled-color); + pointer-events: none; + background-color: var(--bs-pagination-disabled-bg); + border-color: var(--bs-pagination-disabled-border-color); } + +.page-item:not(:first-child) .page-link { + margin-left: calc(var(--bs-border-width) * -1); } + +.page-item:first-child .page-link { + border-top-left-radius: var(--bs-pagination-border-radius); + border-bottom-left-radius: var(--bs-pagination-border-radius); } + +.page-item:last-child .page-link { + border-top-right-radius: var(--bs-pagination-border-radius); + border-bottom-right-radius: var(--bs-pagination-border-radius); } + +.pagination-lg { + --bs-pagination-padding-x: 1.5rem; + --bs-pagination-padding-y: 0.75rem; + --bs-pagination-font-size: 1.25rem; + --bs-pagination-border-radius: var(--bs-border-radius-lg); } + +.pagination-sm { + --bs-pagination-padding-x: 0.5rem; + --bs-pagination-padding-y: 0.25rem; + --bs-pagination-font-size: 0.875rem; + --bs-pagination-border-radius: var(--bs-border-radius-sm); } + +.badge { + --bs-badge-padding-x: 0.65em; + --bs-badge-padding-y: 0.35em; + --bs-badge-font-size: 0.75em; + --bs-badge-font-weight: 700; + --bs-badge-color: #fff; + --bs-badge-border-radius: var(--bs-border-radius); + display: inline-block; + padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x); + font-size: var(--bs-badge-font-size); + font-weight: var(--bs-badge-font-weight); + line-height: 1; + color: var(--bs-badge-color); + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: var(--bs-badge-border-radius); } + .badge:empty { + display: none; } + +.btn .badge { + position: relative; + top: -1px; } + +.alert { + --bs-alert-bg: transparent; + --bs-alert-padding-x: 1rem; + --bs-alert-padding-y: 1rem; + --bs-alert-margin-bottom: 1rem; + --bs-alert-color: inherit; + --bs-alert-border-color: transparent; + --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color); + --bs-alert-border-radius: var(--bs-border-radius); + --bs-alert-link-color: inherit; + position: relative; + padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x); + margin-bottom: var(--bs-alert-margin-bottom); + color: var(--bs-alert-color); + background-color: var(--bs-alert-bg); + border: var(--bs-alert-border); + border-radius: var(--bs-alert-border-radius); } + +.alert-heading { + color: inherit; } + +.alert-link { + font-weight: 700; + color: var(--bs-alert-link-color); } + +.alert-dismissible { + padding-right: 3rem; } + .alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 1.25rem 1rem; } + +.alert-primary { + --bs-alert-color: var(--bs-primary-text-emphasis); + --bs-alert-bg: var(--bs-primary-bg-subtle); + --bs-alert-border-color: var(--bs-primary-border-subtle); + --bs-alert-link-color: var(--bs-primary-text-emphasis); } + +.alert-secondary { + --bs-alert-color: var(--bs-secondary-text-emphasis); + --bs-alert-bg: var(--bs-secondary-bg-subtle); + --bs-alert-border-color: var(--bs-secondary-border-subtle); + --bs-alert-link-color: var(--bs-secondary-text-emphasis); } + +.alert-success { + --bs-alert-color: var(--bs-success-text-emphasis); + --bs-alert-bg: var(--bs-success-bg-subtle); + --bs-alert-border-color: var(--bs-success-border-subtle); + --bs-alert-link-color: var(--bs-success-text-emphasis); } + +.alert-info { + --bs-alert-color: var(--bs-info-text-emphasis); + --bs-alert-bg: var(--bs-info-bg-subtle); + --bs-alert-border-color: var(--bs-info-border-subtle); + --bs-alert-link-color: var(--bs-info-text-emphasis); } + +.alert-warning { + --bs-alert-color: var(--bs-warning-text-emphasis); + --bs-alert-bg: var(--bs-warning-bg-subtle); + --bs-alert-border-color: var(--bs-warning-border-subtle); + --bs-alert-link-color: var(--bs-warning-text-emphasis); } + +.alert-danger { + --bs-alert-color: var(--bs-danger-text-emphasis); + --bs-alert-bg: var(--bs-danger-bg-subtle); + --bs-alert-border-color: var(--bs-danger-border-subtle); + --bs-alert-link-color: var(--bs-danger-text-emphasis); } + +.alert-light { + --bs-alert-color: var(--bs-light-text-emphasis); + --bs-alert-bg: var(--bs-light-bg-subtle); + --bs-alert-border-color: var(--bs-light-border-subtle); + --bs-alert-link-color: var(--bs-light-text-emphasis); } + +.alert-dark { + --bs-alert-color: var(--bs-dark-text-emphasis); + --bs-alert-bg: var(--bs-dark-bg-subtle); + --bs-alert-border-color: var(--bs-dark-border-subtle); + --bs-alert-link-color: var(--bs-dark-text-emphasis); } + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; } } + +.progress, +.progress-stacked { + --bs-progress-height: 1rem; + --bs-progress-font-size: 0.75rem; + --bs-progress-bg: var(--bs-secondary-bg); + --bs-progress-border-radius: var(--bs-border-radius); + --bs-progress-box-shadow: var(--bs-box-shadow-inset); + --bs-progress-bar-color: #fff; + --bs-progress-bar-bg: #0d6efd; + --bs-progress-bar-transition: width 0.6s ease; + display: flex; + height: var(--bs-progress-height); + overflow: hidden; + font-size: var(--bs-progress-font-size); + background-color: var(--bs-progress-bg); + border-radius: var(--bs-progress-border-radius); } + +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: var(--bs-progress-bar-color); + text-align: center; + white-space: nowrap; + background-color: var(--bs-progress-bar-bg); + transition: var(--bs-progress-bar-transition); } + @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: var(--bs-progress-height) var(--bs-progress-height); } + +.progress-stacked > .progress { + overflow: visible; } + +.progress-stacked > .progress > .progress-bar { + width: 100%; } + +.progress-bar-animated { + animation: 1s linear infinite progress-bar-stripes; } + @media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + animation: none; } } +.list-group { + --bs-list-group-color: var(--bs-body-color); + --bs-list-group-bg: var(--bs-body-bg); + --bs-list-group-border-color: var(--bs-border-color); + --bs-list-group-border-width: var(--bs-border-width); + --bs-list-group-border-radius: var(--bs-border-radius); + --bs-list-group-item-padding-x: 1rem; + --bs-list-group-item-padding-y: 0.5rem; + --bs-list-group-action-color: var(--bs-secondary-color); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-tertiary-bg); + --bs-list-group-action-active-color: var(--bs-body-color); + --bs-list-group-action-active-bg: var(--bs-secondary-bg); + --bs-list-group-disabled-color: var(--bs-secondary-color); + --bs-list-group-disabled-bg: var(--bs-body-bg); + --bs-list-group-active-color: #fff; + --bs-list-group-active-bg: #0d6efd; + --bs-list-group-active-border-color: #0d6efd; + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: var(--bs-list-group-border-radius); } + +.list-group-numbered { + list-style-type: none; + counter-reset: section; } + .list-group-numbered > .list-group-item::before { + content: counters(section, ".") ". "; + counter-increment: section; } + +.list-group-item-action { + width: 100%; + color: var(--bs-list-group-action-color); + text-align: inherit; } + .list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: var(--bs-list-group-action-hover-color); + text-decoration: none; + background-color: var(--bs-list-group-action-hover-bg); } + .list-group-item-action:active { + color: var(--bs-list-group-action-active-color); + background-color: var(--bs-list-group-action-active-bg); } + +.list-group-item { + position: relative; + display: block; + padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x); + color: var(--bs-list-group-color); + text-decoration: none; + background-color: var(--bs-list-group-bg); + border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color); } + .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: var(--bs-list-group-disabled-color); + pointer-events: none; + background-color: var(--bs-list-group-disabled-bg); } + .list-group-item.active { + z-index: 2; + color: var(--bs-list-group-active-color); + background-color: var(--bs-list-group-active-bg); + border-color: var(--bs-list-group-active-border-color); } + .list-group-item + .list-group-item { + border-top-width: 0; } + .list-group-item + .list-group-item.active { + margin-top: calc(-1 * var(--bs-list-group-border-width)); + border-top-width: var(--bs-list-group-border-width); } + +.list-group-horizontal { + flex-direction: row; } + .list-group-horizontal > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; } + .list-group-horizontal > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + 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: var(--bs-list-group-border-width); + border-left-width: 0; } + .list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); } + +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; } + .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; } + .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + 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: var(--bs-list-group-border-width); + border-left-width: 0; } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); } } + +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; } + .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; } + .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + 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: var(--bs-list-group-border-width); + border-left-width: 0; } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); } } + +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; } + .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; } + .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + 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: var(--bs-list-group-border-width); + border-left-width: 0; } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); } } + +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; } + .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; } + .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + 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: var(--bs-list-group-border-width); + border-left-width: 0; } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); } } + +@media (min-width: 1400px) { + .list-group-horizontal-xxl { + flex-direction: row; } + .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; } + .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; } + .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; } + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); } } + +.list-group-flush { + border-radius: 0; } + .list-group-flush > .list-group-item { + border-width: 0 0 var(--bs-list-group-border-width); } + .list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; } + +.list-group-item-primary { + --bs-list-group-color: var(--bs-primary-text-emphasis); + --bs-list-group-bg: var(--bs-primary-bg-subtle); + --bs-list-group-border-color: var(--bs-primary-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-primary-border-subtle); + --bs-list-group-active-color: var(--bs-primary-bg-subtle); + --bs-list-group-active-bg: var(--bs-primary-text-emphasis); + --bs-list-group-active-border-color: var(--bs-primary-text-emphasis); } + +.list-group-item-secondary { + --bs-list-group-color: var(--bs-secondary-text-emphasis); + --bs-list-group-bg: var(--bs-secondary-bg-subtle); + --bs-list-group-border-color: var(--bs-secondary-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle); + --bs-list-group-active-color: var(--bs-secondary-bg-subtle); + --bs-list-group-active-bg: var(--bs-secondary-text-emphasis); + --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis); } + +.list-group-item-success { + --bs-list-group-color: var(--bs-success-text-emphasis); + --bs-list-group-bg: var(--bs-success-bg-subtle); + --bs-list-group-border-color: var(--bs-success-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-success-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-success-border-subtle); + --bs-list-group-active-color: var(--bs-success-bg-subtle); + --bs-list-group-active-bg: var(--bs-success-text-emphasis); + --bs-list-group-active-border-color: var(--bs-success-text-emphasis); } + +.list-group-item-info { + --bs-list-group-color: var(--bs-info-text-emphasis); + --bs-list-group-bg: var(--bs-info-bg-subtle); + --bs-list-group-border-color: var(--bs-info-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-info-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-info-border-subtle); + --bs-list-group-active-color: var(--bs-info-bg-subtle); + --bs-list-group-active-bg: var(--bs-info-text-emphasis); + --bs-list-group-active-border-color: var(--bs-info-text-emphasis); } + +.list-group-item-warning { + --bs-list-group-color: var(--bs-warning-text-emphasis); + --bs-list-group-bg: var(--bs-warning-bg-subtle); + --bs-list-group-border-color: var(--bs-warning-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-warning-border-subtle); + --bs-list-group-active-color: var(--bs-warning-bg-subtle); + --bs-list-group-active-bg: var(--bs-warning-text-emphasis); + --bs-list-group-active-border-color: var(--bs-warning-text-emphasis); } + +.list-group-item-danger { + --bs-list-group-color: var(--bs-danger-text-emphasis); + --bs-list-group-bg: var(--bs-danger-bg-subtle); + --bs-list-group-border-color: var(--bs-danger-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-danger-border-subtle); + --bs-list-group-active-color: var(--bs-danger-bg-subtle); + --bs-list-group-active-bg: var(--bs-danger-text-emphasis); + --bs-list-group-active-border-color: var(--bs-danger-text-emphasis); } + +.list-group-item-light { + --bs-list-group-color: var(--bs-light-text-emphasis); + --bs-list-group-bg: var(--bs-light-bg-subtle); + --bs-list-group-border-color: var(--bs-light-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-light-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-light-border-subtle); + --bs-list-group-active-color: var(--bs-light-bg-subtle); + --bs-list-group-active-bg: var(--bs-light-text-emphasis); + --bs-list-group-active-border-color: var(--bs-light-text-emphasis); } + +.list-group-item-dark { + --bs-list-group-color: var(--bs-dark-text-emphasis); + --bs-list-group-bg: var(--bs-dark-bg-subtle); + --bs-list-group-border-color: var(--bs-dark-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-dark-border-subtle); + --bs-list-group-active-color: var(--bs-dark-bg-subtle); + --bs-list-group-active-bg: var(--bs-dark-text-emphasis); + --bs-list-group-active-border-color: var(--bs-dark-text-emphasis); } + +.btn-close { + --bs-btn-close-color: #000; + --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e"); + --bs-btn-close-opacity: 0.5; + --bs-btn-close-hover-opacity: 0.75; + --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-btn-close-focus-opacity: 1; + --bs-btn-close-disabled-opacity: 0.25; + --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%); + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: var(--bs-btn-close-color); + background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat; + border: 0; + border-radius: 0.375rem; + opacity: var(--bs-btn-close-opacity); } + .btn-close:hover { + color: var(--bs-btn-close-color); + text-decoration: none; + opacity: var(--bs-btn-close-hover-opacity); } + .btn-close:focus { + outline: 0; + box-shadow: var(--bs-btn-close-focus-shadow); + opacity: var(--bs-btn-close-focus-opacity); } + .btn-close:disabled, .btn-close.disabled { + pointer-events: none; + user-select: none; + opacity: var(--bs-btn-close-disabled-opacity); } + +.btn-close-white { + filter: var(--bs-btn-close-white-filter); } + +[data-bs-theme="dark"] .btn-close { + filter: var(--bs-btn-close-white-filter); } + +.toast { + --bs-toast-zindex: 1090; + --bs-toast-padding-x: 0.75rem; + --bs-toast-padding-y: 0.5rem; + --bs-toast-spacing: 1.5rem; + --bs-toast-max-width: 350px; + --bs-toast-font-size: 0.875rem; + --bs-toast-color: ; + --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85); + --bs-toast-border-width: var(--bs-border-width); + --bs-toast-border-color: var(--bs-border-color-translucent); + --bs-toast-border-radius: var(--bs-border-radius); + --bs-toast-box-shadow: var(--bs-box-shadow); + --bs-toast-header-color: var(--bs-secondary-color); + --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85); + --bs-toast-header-border-color: var(--bs-border-color-translucent); + width: var(--bs-toast-max-width); + max-width: 100%; + font-size: var(--bs-toast-font-size); + color: var(--bs-toast-color); + pointer-events: auto; + background-color: var(--bs-toast-bg); + background-clip: padding-box; + border: var(--bs-toast-border-width) solid var(--bs-toast-border-color); + box-shadow: var(--bs-toast-box-shadow); + border-radius: var(--bs-toast-border-radius); } + .toast.showing { + opacity: 0; } + .toast:not(.show) { + display: none; } + +.toast-container { + --bs-toast-zindex: 1090; + position: absolute; + z-index: var(--bs-toast-zindex); + width: max-content; + max-width: 100%; + pointer-events: none; } + .toast-container > :not(:last-child) { + margin-bottom: var(--bs-toast-spacing); } + +.toast-header { + display: flex; + align-items: center; + padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x); + color: var(--bs-toast-header-color); + background-color: var(--bs-toast-header-bg); + background-clip: padding-box; + border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color); + border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); + border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); } + .toast-header .btn-close { + margin-right: calc(-.5 * var(--bs-toast-padding-x)); + margin-left: var(--bs-toast-padding-x); } + +.toast-body { + padding: var(--bs-toast-padding-x); + word-wrap: break-word; } + +.modal { + --bs-modal-zindex: 1055; + --bs-modal-width: 500px; + --bs-modal-padding: 1rem; + --bs-modal-margin: 0.5rem; + --bs-modal-color: ; + --bs-modal-bg: var(--bs-body-bg); + --bs-modal-border-color: var(--bs-border-color-translucent); + --bs-modal-border-width: var(--bs-border-width); + --bs-modal-border-radius: var(--bs-border-radius-lg); + --bs-modal-box-shadow: var(--bs-box-shadow-sm); + --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width))); + --bs-modal-header-padding-x: 1rem; + --bs-modal-header-padding-y: 1rem; + --bs-modal-header-padding: 1rem 1rem; + --bs-modal-header-border-color: var(--bs-border-color); + --bs-modal-header-border-width: var(--bs-border-width); + --bs-modal-title-line-height: 1.5; + --bs-modal-footer-gap: 0.5rem; + --bs-modal-footer-bg: ; + --bs-modal-footer-border-color: var(--bs-border-color); + --bs-modal-footer-border-width: var(--bs-border-width); + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-modal-zindex); + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0; } + +.modal-dialog { + position: relative; + width: auto; + margin: var(--bs-modal-margin); + 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 { + height: calc(100% - var(--bs-modal-margin) * 2); } + .modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; } + .modal-dialog-scrollable .modal-body { + overflow-y: auto; } + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - var(--bs-modal-margin) * 2); } + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + color: var(--bs-modal-color); + pointer-events: auto; + background-color: var(--bs-modal-bg); + background-clip: padding-box; + border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); + border-radius: var(--bs-modal-border-radius); + outline: 0; } + +.modal-backdrop { + --bs-backdrop-zindex: 1050; + --bs-backdrop-bg: #000; + --bs-backdrop-opacity: 0.5; + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-backdrop-zindex); + width: 100vw; + height: 100vh; + background-color: var(--bs-backdrop-bg); } + .modal-backdrop.fade { + opacity: 0; } + .modal-backdrop.show { + opacity: var(--bs-backdrop-opacity); } + +.modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + padding: var(--bs-modal-header-padding); + border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); + border-top-left-radius: var(--bs-modal-inner-border-radius); + border-top-right-radius: var(--bs-modal-inner-border-radius); } + .modal-header .btn-close { + padding: calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5); + margin: calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto; } + +.modal-title { + margin-bottom: 0; + line-height: var(--bs-modal-title-line-height); } + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: var(--bs-modal-padding); } + +.modal-footer { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5); + background-color: var(--bs-modal-footer-bg); + border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color); + border-bottom-right-radius: var(--bs-modal-inner-border-radius); + border-bottom-left-radius: var(--bs-modal-inner-border-radius); } + .modal-footer > * { + margin: calc(var(--bs-modal-footer-gap) * .5); } + +@media (min-width: 576px) { + .modal { + --bs-modal-margin: 1.75rem; + --bs-modal-box-shadow: var(--bs-box-shadow); } + .modal-dialog { + max-width: var(--bs-modal-width); + margin-right: auto; + margin-left: auto; } + .modal-sm { + --bs-modal-width: 300px; } } + +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + --bs-modal-width: 800px; } } + +@media (min-width: 1200px) { + .modal-xl { + --bs-modal-width: 1140px; } } + +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; } + .modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; } + .modal-fullscreen .modal-header, + .modal-fullscreen .modal-footer { + border-radius: 0; } + .modal-fullscreen .modal-body { + overflow-y: auto; } + +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; } + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; } + .modal-fullscreen-sm-down .modal-header, + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; } } + +@media (max-width: 767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; } + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; } + .modal-fullscreen-md-down .modal-header, + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; } } + +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; } + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; } + .modal-fullscreen-lg-down .modal-header, + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; } } + +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; } + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; } + .modal-fullscreen-xl-down .modal-header, + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; } } + +@media (max-width: 1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; } + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; } + .modal-fullscreen-xxl-down .modal-header, + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; } } + +.tooltip { + --bs-tooltip-zindex: 1080; + --bs-tooltip-max-width: 200px; + --bs-tooltip-padding-x: 0.5rem; + --bs-tooltip-padding-y: 0.25rem; + --bs-tooltip-margin: ; + --bs-tooltip-font-size: 0.875rem; + --bs-tooltip-color: var(--bs-body-bg); + --bs-tooltip-bg: var(--bs-emphasis-color); + --bs-tooltip-border-radius: var(--bs-border-radius); + --bs-tooltip-opacity: 0.9; + --bs-tooltip-arrow-width: 0.8rem; + --bs-tooltip-arrow-height: 0.4rem; + z-index: var(--bs-tooltip-zindex); + display: block; + margin: var(--bs-tooltip-margin); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-tooltip-font-size); + word-wrap: break-word; + opacity: 0; } + .tooltip.show { + opacity: var(--bs-tooltip-opacity); } + .tooltip .tooltip-arrow { + display: block; + width: var(--bs-tooltip-arrow-width); + height: var(--bs-tooltip-arrow-height); } + .tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; } + +.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow { + bottom: calc(-1 * var(--bs-tooltip-arrow-height)); } + .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before { + top: -1px; + border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0; + border-top-color: var(--bs-tooltip-bg); } + +/* rtl:begin:ignore */ +.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow { + left: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); } + .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before { + right: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0; + border-right-color: var(--bs-tooltip-bg); } + +/* rtl:end:ignore */ +.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow { + top: calc(-1 * var(--bs-tooltip-arrow-height)); } + .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height); + border-bottom-color: var(--bs-tooltip-bg); } + +/* rtl:begin:ignore */ +.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow { + right: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); } + .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before { + left: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height); + border-left-color: var(--bs-tooltip-bg); } + +/* rtl:end:ignore */ +.tooltip-inner { + max-width: var(--bs-tooltip-max-width); + padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x); + color: var(--bs-tooltip-color); + text-align: center; + background-color: var(--bs-tooltip-bg); + border-radius: var(--bs-tooltip-border-radius); } + +.popover { + --bs-popover-zindex: 1070; + --bs-popover-max-width: 276px; + --bs-popover-font-size: 0.875rem; + --bs-popover-bg: var(--bs-body-bg); + --bs-popover-border-width: var(--bs-border-width); + --bs-popover-border-color: var(--bs-border-color-translucent); + --bs-popover-border-radius: var(--bs-border-radius-lg); + --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width)); + --bs-popover-box-shadow: var(--bs-box-shadow); + --bs-popover-header-padding-x: 1rem; + --bs-popover-header-padding-y: 0.5rem; + --bs-popover-header-font-size: 1rem; + --bs-popover-header-color: inherit; + --bs-popover-header-bg: var(--bs-secondary-bg); + --bs-popover-body-padding-x: 1rem; + --bs-popover-body-padding-y: 1rem; + --bs-popover-body-color: var(--bs-body-color); + --bs-popover-arrow-width: 1rem; + --bs-popover-arrow-height: 0.5rem; + --bs-popover-arrow-border: var(--bs-popover-border-color); + z-index: var(--bs-popover-zindex); + display: block; + max-width: var(--bs-popover-max-width); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-popover-font-size); + word-wrap: break-word; + background-color: var(--bs-popover-bg); + background-clip: padding-box; + border: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-radius: var(--bs-popover-border-radius); } + .popover .popover-arrow { + display: block; + width: var(--bs-popover-arrow-width); + height: var(--bs-popover-arrow-height); } + .popover .popover-arrow::before, .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; + border-width: 0; } + +.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow { + bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); } + .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after { + border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0; } + .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before { + bottom: 0; + border-top-color: var(--bs-popover-arrow-border); } + .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after { + bottom: var(--bs-popover-border-width); + border-top-color: var(--bs-popover-bg); } + +/* rtl:begin:ignore */ +.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow { + left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); } + .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0; } + .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before { + left: 0; + border-right-color: var(--bs-popover-arrow-border); } + .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after { + left: var(--bs-popover-border-width); + border-right-color: var(--bs-popover-bg); } + +/* rtl:end:ignore */ +.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow { + top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); } + .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after { + border-width: 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height); } + .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before { + top: 0; + border-bottom-color: var(--bs-popover-arrow-border); } + .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after { + top: var(--bs-popover-border-width); + border-bottom-color: var(--bs-popover-bg); } + +.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: var(--bs-popover-arrow-width); + margin-left: calc(-.5 * var(--bs-popover-arrow-width)); + content: ""; + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); } + +/* rtl:begin:ignore */ +.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow { + right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); } + .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height); } + .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before { + right: 0; + border-left-color: var(--bs-popover-arrow-border); } + .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after { + right: var(--bs-popover-border-width); + border-left-color: var(--bs-popover-bg); } + +/* rtl:end:ignore */ +.popover-header { + padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x); + margin-bottom: 0; + font-size: var(--bs-popover-header-font-size); + color: var(--bs-popover-header-color); + background-color: var(--bs-popover-header-bg); + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-top-left-radius: var(--bs-popover-inner-border-radius); + border-top-right-radius: var(--bs-popover-inner-border-radius); } + .popover-header:empty { + display: none; } + +.popover-body { + padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x); + color: var(--bs-popover-body-color); } + +.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-start), +.active.carousel-item-end { + transform: translateX(100%); } + +.carousel-item-prev:not(.carousel-item-end), +.active.carousel-item-start { + 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-start, +.carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; } + +.carousel-fade .active.carousel-item-start, +.carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; } + @media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-start, + .carousel-fade .active.carousel-item-end { + 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%; + padding: 0; + color: #fff; + text-align: center; + background: none; + border: 0; + 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; } + +.carousel-control-next { + right: 0; } + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; } + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")*/; } + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")*/; } + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding: 0; + margin-right: 15%; + margin-bottom: 1rem; + margin-left: 15%; } + .carousel-indicators [data-bs-target] { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + padding: 0; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; } + @media (prefers-reduced-motion: reduce) { + .carousel-indicators [data-bs-target] { + transition: none; } } + .carousel-indicators .active { + opacity: 1; } + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: #fff; + text-align: center; } + +.carousel-dark .carousel-control-prev-icon, +.carousel-dark .carousel-control-next-icon { + filter: invert(1) grayscale(100); } + +.carousel-dark .carousel-indicators [data-bs-target] { + background-color: #000; } + +.carousel-dark .carousel-caption { + color: #000; } + +[data-bs-theme="dark"] .carousel .carousel-control-prev-icon, +[data-bs-theme="dark"] .carousel .carousel-control-next-icon, .carousel[data-bs-theme="dark"] .carousel-control-prev-icon, +.carousel[data-bs-theme="dark"] .carousel-control-next-icon { + filter: invert(1) grayscale(100); } + +[data-bs-theme="dark"] .carousel .carousel-indicators [data-bs-target], .carousel[data-bs-theme="dark"] .carousel-indicators [data-bs-target] { + background-color: #000; } + +[data-bs-theme="dark"] .carousel .carousel-caption, .carousel[data-bs-theme="dark"] .carousel-caption { + color: #000; } + +.spinner-grow, +.spinner-border { + display: inline-block; + width: var(--bs-spinner-width); + height: var(--bs-spinner-height); + vertical-align: var(--bs-spinner-vertical-align); + border-radius: 50%; + animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); } + +@keyframes spinner-border { + to { + transform: rotate(360deg) /* rtl:ignore */; } } + +.spinner-border { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-border-width: 0.25em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-border; + border: var(--bs-spinner-border-width) solid currentcolor; + border-right-color: transparent; } + +.spinner-border-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; + --bs-spinner-border-width: 0.2em; } + +@keyframes spinner-grow { + 0% { + transform: scale(0); } + 50% { + opacity: 1; + transform: none; } } + +.spinner-grow { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-grow; + background-color: currentcolor; + opacity: 0; } + +.spinner-grow-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; } + +@media (prefers-reduced-motion: reduce) { + .spinner-border, + .spinner-grow { + --bs-spinner-animation-speed: 1.5s; } } + +.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm { + --bs-offcanvas-zindex: 1045; + --bs-offcanvas-width: 400px; + --bs-offcanvas-height: 30vh; + --bs-offcanvas-padding-x: 1rem; + --bs-offcanvas-padding-y: 1rem; + --bs-offcanvas-color: var(--bs-body-color); + --bs-offcanvas-bg: var(--bs-body-bg); + --bs-offcanvas-border-width: var(--bs-border-width); + --bs-offcanvas-border-color: var(--bs-border-color-translucent); + --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm); + --bs-offcanvas-transition: transform 0.3s ease-in-out; + --bs-offcanvas-title-line-height: 1.5; } + +@media (max-width: 575.98px) { + .offcanvas-sm { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); } } + @media (max-width: 575.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-sm { + transition: none; } } +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); } + .offcanvas-sm.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); } + .offcanvas-sm.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); } + .offcanvas-sm.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); } + .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) { + transform: none; } + .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show { + visibility: visible; } } + +@media (min-width: 576px) { + .offcanvas-sm { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; } + .offcanvas-sm .offcanvas-header { + display: none; } + .offcanvas-sm .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; } } + +@media (max-width: 767.98px) { + .offcanvas-md { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); } } + @media (max-width: 767.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-md { + transition: none; } } +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); } + .offcanvas-md.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); } + .offcanvas-md.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); } + .offcanvas-md.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); } + .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) { + transform: none; } + .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show { + visibility: visible; } } + +@media (min-width: 768px) { + .offcanvas-md { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; } + .offcanvas-md .offcanvas-header { + display: none; } + .offcanvas-md .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; } } + +@media (max-width: 991.98px) { + .offcanvas-lg { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); } } + @media (max-width: 991.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-lg { + transition: none; } } +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); } + .offcanvas-lg.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); } + .offcanvas-lg.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); } + .offcanvas-lg.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); } + .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) { + transform: none; } + .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show { + visibility: visible; } } + +@media (min-width: 992px) { + .offcanvas-lg { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; } + .offcanvas-lg .offcanvas-header { + display: none; } + .offcanvas-lg .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; } } + +@media (max-width: 1199.98px) { + .offcanvas-xl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); } } + @media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xl { + transition: none; } } +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); } + .offcanvas-xl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); } + .offcanvas-xl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); } + .offcanvas-xl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); } + .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) { + transform: none; } + .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show { + visibility: visible; } } + +@media (min-width: 1200px) { + .offcanvas-xl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; } + .offcanvas-xl .offcanvas-header { + display: none; } + .offcanvas-xl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; } } + +@media (max-width: 1399.98px) { + .offcanvas-xxl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); } } + @media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xxl { + transition: none; } } +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); } + .offcanvas-xxl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); } + .offcanvas-xxl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); } + .offcanvas-xxl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); } + .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) { + transform: none; } + .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show { + visibility: visible; } } + +@media (min-width: 1400px) { + .offcanvas-xxl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; } + .offcanvas-xxl .offcanvas-header { + display: none; } + .offcanvas-xxl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; } } + +.offcanvas { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); } + @media (prefers-reduced-motion: reduce) { + .offcanvas { + transition: none; } } + .offcanvas.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); } + .offcanvas.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); } + .offcanvas.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); } + .offcanvas.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); } + .offcanvas.showing, .offcanvas.show:not(.hiding) { + transform: none; } + .offcanvas.showing, .offcanvas.hiding, .offcanvas.show { + visibility: visible; } + +.offcanvas-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; } + .offcanvas-backdrop.fade { + opacity: 0; } + .offcanvas-backdrop.show { + opacity: 0.5; } + +.offcanvas-header { + display: flex; + align-items: center; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); } + .offcanvas-header .btn-close { + padding: calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5); + margin: calc(-.5 * var(--bs-offcanvas-padding-y)) calc(-.5 * var(--bs-offcanvas-padding-x)) calc(-.5 * var(--bs-offcanvas-padding-y)) auto; } + +.offcanvas-title { + margin-bottom: 0; + line-height: var(--bs-offcanvas-title-line-height); } + +.offcanvas-body { + flex-grow: 1; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); + overflow-y: auto; } + +.placeholder { + display: inline-block; + min-height: 1em; + vertical-align: middle; + cursor: wait; + background-color: currentcolor; + opacity: 0.5; } + .placeholder.btn::before { + display: inline-block; + content: ""; } + +.placeholder-xs { + min-height: .6em; } + +.placeholder-sm { + min-height: .8em; } + +.placeholder-lg { + min-height: 1.2em; } + +.placeholder-glow .placeholder { + animation: placeholder-glow 2s ease-in-out infinite; } + +@keyframes placeholder-glow { + 50% { + opacity: 0.2; } } + +.placeholder-wave { + mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + mask-size: 200% 100%; + animation: placeholder-wave 2s linear infinite; } + +@keyframes placeholder-wave { + 100% { + mask-position: -200% 0%; } } + +.clearfix::after { + display: block; + clear: both; + content: ""; } + +.text-bg-primary { + color: #fff !important; + background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important; } + +.text-bg-secondary { + color: #fff !important; + background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important; } + +.text-bg-success { + color: #fff !important; + background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important; } + +.text-bg-info { + color: #000 !important; + background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important; } + +.text-bg-warning { + color: #000 !important; + background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important; } + +.text-bg-danger { + color: #fff !important; + background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important; } + +.text-bg-light { + color: #000 !important; + background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important; } + +.text-bg-dark { + color: #fff !important; + background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important; } + +.link-primary { + color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-primary:hover, .link-primary:focus { + color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important; } + +.link-secondary { + color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-secondary:hover, .link-secondary:focus { + color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important; } + +.link-success { + color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-success:hover, .link-success:focus { + color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important; } + +.link-info { + color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-info:hover, .link-info:focus { + color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important; } + +.link-warning { + color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-warning:hover, .link-warning:focus { + color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important; } + +.link-danger { + color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-danger:hover, .link-danger:focus { + color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important; } + +.link-light { + color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-light:hover, .link-light:focus { + color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important; } + +.link-dark { + color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-dark:hover, .link-dark:focus { + color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important; } + +.link-body-emphasis { + color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-body-emphasis:hover, .link-body-emphasis:focus { + color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important; } + +.focus-ring:focus { + outline: 0; + box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color); } + +.icon-link { + display: inline-flex; + gap: 0.375rem; + align-items: center; + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5)); + text-underline-offset: 0.25em; + backface-visibility: hidden; } + .icon-link > .bi { + flex-shrink: 0; + width: 1em; + height: 1em; + fill: currentcolor; + transition: 0.2s ease-in-out transform; } + @media (prefers-reduced-motion: reduce) { + .icon-link > .bi { + transition: none; } } +.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi { + transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0)); } + +.ratio { + position: relative; + width: 100%; } + .ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ""; } + .ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; } + +.ratio-1x1 { + --bs-aspect-ratio: 100%; } + +.ratio-4x3 { + --bs-aspect-ratio: calc(3 / 4 * 100%); } + +.ratio-16x9 { + --bs-aspect-ratio: calc(9 / 16 * 100%); } + +.ratio-21x9 { + --bs-aspect-ratio: calc(9 / 21 * 100%); } + +.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; } + +.sticky-top { + position: sticky; + top: 0; + z-index: 1020; } + +.sticky-bottom { + position: sticky; + bottom: 0; + z-index: 1020; } + +@media (min-width: 576px) { + .sticky-sm-top { + position: sticky; + top: 0; + z-index: 1020; } + .sticky-sm-bottom { + position: sticky; + bottom: 0; + z-index: 1020; } } + +@media (min-width: 768px) { + .sticky-md-top { + position: sticky; + top: 0; + z-index: 1020; } + .sticky-md-bottom { + position: sticky; + bottom: 0; + z-index: 1020; } } + +@media (min-width: 992px) { + .sticky-lg-top { + position: sticky; + top: 0; + z-index: 1020; } + .sticky-lg-bottom { + position: sticky; + bottom: 0; + z-index: 1020; } } + +@media (min-width: 1200px) { + .sticky-xl-top { + position: sticky; + top: 0; + z-index: 1020; } + .sticky-xl-bottom { + position: sticky; + bottom: 0; + z-index: 1020; } } + +@media (min-width: 1400px) { + .sticky-xxl-top { + position: sticky; + top: 0; + z-index: 1020; } + .sticky-xxl-bottom { + position: sticky; + bottom: 0; + z-index: 1020; } } + +.hstack { + display: flex; + flex-direction: row; + align-items: center; + align-self: stretch; } + +.vstack { + display: flex; + flex: 1 1 auto; + flex-direction: column; + align-self: stretch; } + +.visually-hidden, +.visually-hidden-focusable:not(:focus):not(:focus-within) { + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; } + .visually-hidden:not(caption), + .visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) { + position: absolute !important; } + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: ""; } + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + +.vr { + display: inline-block; + align-self: stretch; + width: var(--bs-border-width); + min-height: 1em; + background-color: currentcolor; + opacity: 0.25; } + +.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; } + +.float-start { + float: left !important; } + +.float-end { + float: right !important; } + +.float-none { + float: none !important; } + +.object-fit-contain { + object-fit: contain !important; } + +.object-fit-cover { + object-fit: cover !important; } + +.object-fit-fill { + object-fit: fill !important; } + +.object-fit-scale { + object-fit: scale-down !important; } + +.object-fit-none { + object-fit: none !important; } + +.opacity-0 { + opacity: 0 !important; } + +.opacity-25 { + opacity: 0.25 !important; } + +.opacity-50 { + opacity: 0.5 !important; } + +.opacity-75 { + opacity: 0.75 !important; } + +.opacity-100 { + opacity: 1 !important; } + +.overflow-auto { + overflow: auto !important; } + +.overflow-hidden { + overflow: hidden !important; } + +.overflow-visible { + overflow: visible !important; } + +.overflow-scroll { + overflow: scroll !important; } + +.overflow-x-auto { + overflow-x: auto !important; } + +.overflow-x-hidden { + overflow-x: hidden !important; } + +.overflow-x-visible { + overflow-x: visible !important; } + +.overflow-x-scroll { + overflow-x: scroll !important; } + +.overflow-y-auto { + overflow-y: auto !important; } + +.overflow-y-hidden { + overflow-y: hidden !important; } + +.overflow-y-visible { + overflow-y: visible !important; } + +.overflow-y-scroll { + overflow-y: scroll !important; } + +.d-inline { + display: inline !important; } + +.d-inline-block { + display: inline-block !important; } + +.d-block { + display: block !important; } + +.d-grid { + display: grid !important; } + +.d-inline-grid { + display: inline-grid !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; } + +.d-none { + display: none !important; } + +.shadow { + box-shadow: var(--bs-box-shadow) !important; } + +.shadow-sm { + box-shadow: var(--bs-box-shadow-sm) !important; } + +.shadow-lg { + box-shadow: var(--bs-box-shadow-lg) !important; } + +.shadow-none { + box-shadow: none !important; } + +.focus-ring-primary { + --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity)); } + +.focus-ring-secondary { + --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity)); } + +.focus-ring-success { + --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity)); } + +.focus-ring-info { + --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity)); } + +.focus-ring-warning { + --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity)); } + +.focus-ring-danger { + --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity)); } + +.focus-ring-light { + --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity)); } + +.focus-ring-dark { + --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity)); } + +.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; } + +.top-0 { + top: 0 !important; } + +.top-50 { + top: 50% !important; } + +.top-100 { + top: 100% !important; } + +.bottom-0 { + bottom: 0 !important; } + +.bottom-50 { + bottom: 50% !important; } + +.bottom-100 { + bottom: 100% !important; } + +.start-0 { + left: 0 !important; } + +.start-50 { + left: 50% !important; } + +.start-100 { + left: 100% !important; } + +.end-0 { + right: 0 !important; } + +.end-50 { + right: 50% !important; } + +.end-100 { + right: 100% !important; } + +.translate-middle { + transform: translate(-50%, -50%) !important; } + +.translate-middle-x { + transform: translateX(-50%) !important; } + +.translate-middle-y { + transform: translateY(-50%) !important; } + +.border { + border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; } + +.border-0 { + border: 0 !important; } + +.border-top { + border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; } + +.border-top-0 { + border-top: 0 !important; } + +.border-end { + border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; } + +.border-end-0 { + border-right: 0 !important; } + +.border-bottom { + border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; } + +.border-bottom-0 { + border-bottom: 0 !important; } + +.border-start { + border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; } + +.border-start-0 { + border-left: 0 !important; } + +.border-primary { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important; } + +.border-secondary { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important; } + +.border-success { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important; } + +.border-info { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important; } + +.border-warning { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important; } + +.border-danger { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important; } + +.border-light { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important; } + +.border-dark { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important; } + +.border-black { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important; } + +.border-white { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important; } + +.border-primary-subtle { + border-color: var(--bs-primary-border-subtle) !important; } + +.border-secondary-subtle { + border-color: var(--bs-secondary-border-subtle) !important; } + +.border-success-subtle { + border-color: var(--bs-success-border-subtle) !important; } + +.border-info-subtle { + border-color: var(--bs-info-border-subtle) !important; } + +.border-warning-subtle { + border-color: var(--bs-warning-border-subtle) !important; } + +.border-danger-subtle { + border-color: var(--bs-danger-border-subtle) !important; } + +.border-light-subtle { + border-color: var(--bs-light-border-subtle) !important; } + +.border-dark-subtle { + border-color: var(--bs-dark-border-subtle) !important; } + +.border-1 { + border-width: 1px !important; } + +.border-2 { + border-width: 2px !important; } + +.border-3 { + border-width: 3px !important; } + +.border-4 { + border-width: 4px !important; } + +.border-5 { + border-width: 5px !important; } + +.border-opacity-10 { + --bs-border-opacity: 0.1; } + +.border-opacity-25 { + --bs-border-opacity: 0.25; } + +.border-opacity-50 { + --bs-border-opacity: 0.5; } + +.border-opacity-75 { + --bs-border-opacity: 0.75; } + +.border-opacity-100 { + --bs-border-opacity: 1; } + +.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; } + +.mw-100 { + max-width: 100% !important; } + +.vw-100 { + width: 100vw !important; } + +.min-vw-100 { + min-width: 100vw !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; } + +.mh-100 { + max-height: 100% !important; } + +.vh-100 { + height: 100vh !important; } + +.min-vh-100 { + min-height: 100vh !important; } + +.flex-fill { + flex: 1 1 auto !important; } + +.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-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; } + +.flex-wrap { + flex-wrap: wrap !important; } + +.flex-nowrap { + flex-wrap: nowrap !important; } + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; } + +.justify-content-start { + justify-content: flex-start !important; } + +.justify-content-end { + justify-content: flex-end !important; } + +.justify-content-center { + justify-content: center !important; } + +.justify-content-between { + justify-content: space-between !important; } + +.justify-content-around { + justify-content: space-around !important; } + +.justify-content-evenly { + justify-content: space-evenly !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; } + +.order-first { + order: -1 !important; } + +.order-0 { + order: 0 !important; } + +.order-1 { + order: 1 !important; } + +.order-2 { + order: 2 !important; } + +.order-3 { + order: 3 !important; } + +.order-4 { + order: 4 !important; } + +.order-5 { + order: 5 !important; } + +.order-last { + order: 6 !important; } + +.m-0 { + margin: 0 !important; } + +.m-1 { + margin: 0.25rem !important; } + +.m-2 { + margin: 0.5rem !important; } + +.m-3 { + margin: 1rem !important; } + +.m-4 { + margin: 1.5rem !important; } + +.m-5 { + margin: 3rem !important; } + +.m-auto { + margin: auto !important; } + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; } + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; } + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; } + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; } + +.mt-0 { + margin-top: 0 !important; } + +.mt-1 { + margin-top: 0.25rem !important; } + +.mt-2 { + margin-top: 0.5rem !important; } + +.mt-3 { + margin-top: 1rem !important; } + +.mt-4 { + margin-top: 1.5rem !important; } + +.mt-5 { + margin-top: 3rem !important; } + +.mt-auto { + margin-top: auto !important; } + +.me-0 { + margin-right: 0 !important; } + +.me-1 { + margin-right: 0.25rem !important; } + +.me-2 { + margin-right: 0.5rem !important; } + +.me-3 { + margin-right: 1rem !important; } + +.me-4 { + margin-right: 1.5rem !important; } + +.me-5 { + margin-right: 3rem !important; } + +.me-auto { + margin-right: auto !important; } + +.mb-0 { + margin-bottom: 0 !important; } + +.mb-1 { + margin-bottom: 0.25rem !important; } + +.mb-2 { + margin-bottom: 0.5rem !important; } + +.mb-3 { + margin-bottom: 1rem !important; } + +.mb-4 { + margin-bottom: 1.5rem !important; } + +.mb-5 { + margin-bottom: 3rem !important; } + +.mb-auto { + margin-bottom: auto !important; } + +.ms-0 { + margin-left: 0 !important; } + +.ms-1 { + margin-left: 0.25rem !important; } + +.ms-2 { + margin-left: 0.5rem !important; } + +.ms-3 { + margin-left: 1rem !important; } + +.ms-4 { + margin-left: 1.5rem !important; } + +.ms-5 { + margin-left: 3rem !important; } + +.ms-auto { + margin-left: auto !important; } + +.p-0 { + padding: 0 !important; } + +.p-1 { + padding: 0.25rem !important; } + +.p-2 { + padding: 0.5rem !important; } + +.p-3 { + padding: 1rem !important; } + +.p-4 { + padding: 1.5rem !important; } + +.p-5 { + padding: 3rem !important; } + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; } + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; } + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + +.pt-0 { + padding-top: 0 !important; } + +.pt-1 { + padding-top: 0.25rem !important; } + +.pt-2 { + padding-top: 0.5rem !important; } + +.pt-3 { + padding-top: 1rem !important; } + +.pt-4 { + padding-top: 1.5rem !important; } + +.pt-5 { + padding-top: 3rem !important; } + +.pe-0 { + padding-right: 0 !important; } + +.pe-1 { + padding-right: 0.25rem !important; } + +.pe-2 { + padding-right: 0.5rem !important; } + +.pe-3 { + padding-right: 1rem !important; } + +.pe-4 { + padding-right: 1.5rem !important; } + +.pe-5 { + padding-right: 3rem !important; } + +.pb-0 { + padding-bottom: 0 !important; } + +.pb-1 { + padding-bottom: 0.25rem !important; } + +.pb-2 { + padding-bottom: 0.5rem !important; } + +.pb-3 { + padding-bottom: 1rem !important; } + +.pb-4 { + padding-bottom: 1.5rem !important; } + +.pb-5 { + padding-bottom: 3rem !important; } + +.ps-0 { + padding-left: 0 !important; } + +.ps-1 { + padding-left: 0.25rem !important; } + +.ps-2 { + padding-left: 0.5rem !important; } + +.ps-3 { + padding-left: 1rem !important; } + +.ps-4 { + padding-left: 1.5rem !important; } + +.ps-5 { + padding-left: 3rem !important; } + +.gap-0 { + gap: 0 !important; } + +.gap-1 { + gap: 0.25rem !important; } + +.gap-2 { + gap: 0.5rem !important; } + +.gap-3 { + gap: 1rem !important; } + +.gap-4 { + gap: 1.5rem !important; } + +.gap-5 { + gap: 3rem !important; } + +.row-gap-0 { + row-gap: 0 !important; } + +.row-gap-1 { + row-gap: 0.25rem !important; } + +.row-gap-2 { + row-gap: 0.5rem !important; } + +.row-gap-3 { + row-gap: 1rem !important; } + +.row-gap-4 { + row-gap: 1.5rem !important; } + +.row-gap-5 { + row-gap: 3rem !important; } + +.column-gap-0 { + column-gap: 0 !important; } + +.column-gap-1 { + column-gap: 0.25rem !important; } + +.column-gap-2 { + column-gap: 0.5rem !important; } + +.column-gap-3 { + column-gap: 1rem !important; } + +.column-gap-4 { + column-gap: 1.5rem !important; } + +.column-gap-5 { + column-gap: 3rem !important; } + +.font-monospace { + font-family: var(--bs-font-monospace) !important; } + +.fs-1 { + font-size: calc(1.375rem + 1.5vw) !important; } + +.fs-2 { + font-size: calc(1.325rem + 0.9vw) !important; } + +.fs-3 { + font-size: calc(1.3rem + 0.6vw) !important; } + +.fs-4 { + font-size: calc(1.275rem + 0.3vw) !important; } + +.fs-5 { + font-size: 1.25rem !important; } + +.fs-6 { + font-size: 1rem !important; } + +.fst-italic { + font-style: italic !important; } + +.fst-normal { + font-style: normal !important; } + +.fw-lighter { + font-weight: lighter !important; } + +.fw-light { + font-weight: 300 !important; } + +.fw-normal { + font-weight: 400 !important; } + +.fw-medium { + font-weight: 500 !important; } + +.fw-semibold { + font-weight: 600 !important; } + +.fw-bold { + font-weight: 700 !important; } + +.fw-bolder { + font-weight: bolder !important; } + +.lh-1 { + line-height: 1 !important; } + +.lh-sm { + line-height: 1.25 !important; } + +.lh-base { + line-height: 1.5 !important; } + +.lh-lg { + line-height: 2 !important; } + +.text-start { + text-align: left !important; } + +.text-end { + text-align: right !important; } + +.text-center { + text-align: center !important; } + +.text-decoration-none { + text-decoration: none !important; } + +.text-decoration-underline { + text-decoration: underline !important; } + +.text-decoration-line-through { + text-decoration: line-through !important; } + +.text-lowercase { + text-transform: lowercase !important; } + +.text-uppercase { + text-transform: uppercase !important; } + +.text-capitalize { + text-transform: capitalize !important; } + +.text-wrap { + white-space: normal !important; } + +.text-nowrap { + white-space: nowrap !important; } + +/* rtl:begin:remove */ +.text-break { + word-wrap: break-word !important; + word-break: break-word !important; } + +/* rtl:end:remove */ +.text-primary { + --bs-text-opacity: 1; + color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important; } + +.text-secondary { + --bs-text-opacity: 1; + color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important; } + +.text-success { + --bs-text-opacity: 1; + color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important; } + +.text-info { + --bs-text-opacity: 1; + color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important; } + +.text-warning { + --bs-text-opacity: 1; + color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important; } + +.text-danger { + --bs-text-opacity: 1; + color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important; } + +.text-light { + --bs-text-opacity: 1; + color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important; } + +.text-dark { + --bs-text-opacity: 1; + color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important; } + +.text-black { + --bs-text-opacity: 1; + color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important; } + +.text-white { + --bs-text-opacity: 1; + color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important; } + +.text-body { + --bs-text-opacity: 1; + color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important; } + +.text-muted { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important; } + +.text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, 0.5) !important; } + +.text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, 0.5) !important; } + +.text-body-secondary { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important; } + +.text-body-tertiary { + --bs-text-opacity: 1; + color: var(--bs-tertiary-color) !important; } + +.text-body-emphasis { + --bs-text-opacity: 1; + color: var(--bs-emphasis-color) !important; } + +.text-reset { + --bs-text-opacity: 1; + color: inherit !important; } + +.text-opacity-25 { + --bs-text-opacity: 0.25; } + +.text-opacity-50 { + --bs-text-opacity: 0.5; } + +.text-opacity-75 { + --bs-text-opacity: 0.75; } + +.text-opacity-100 { + --bs-text-opacity: 1; } + +.text-primary-emphasis { + color: var(--bs-primary-text-emphasis) !important; } + +.text-secondary-emphasis { + color: var(--bs-secondary-text-emphasis) !important; } + +.text-success-emphasis { + color: var(--bs-success-text-emphasis) !important; } + +.text-info-emphasis { + color: var(--bs-info-text-emphasis) !important; } + +.text-warning-emphasis { + color: var(--bs-warning-text-emphasis) !important; } + +.text-danger-emphasis { + color: var(--bs-danger-text-emphasis) !important; } + +.text-light-emphasis { + color: var(--bs-light-text-emphasis) !important; } + +.text-dark-emphasis { + color: var(--bs-dark-text-emphasis) !important; } + +.link-opacity-10 { + --bs-link-opacity: 0.1; } + +.link-opacity-10-hover:hover { + --bs-link-opacity: 0.1; } + +.link-opacity-25 { + --bs-link-opacity: 0.25; } + +.link-opacity-25-hover:hover { + --bs-link-opacity: 0.25; } + +.link-opacity-50 { + --bs-link-opacity: 0.5; } + +.link-opacity-50-hover:hover { + --bs-link-opacity: 0.5; } + +.link-opacity-75 { + --bs-link-opacity: 0.75; } + +.link-opacity-75-hover:hover { + --bs-link-opacity: 0.75; } + +.link-opacity-100 { + --bs-link-opacity: 1; } + +.link-opacity-100-hover:hover { + --bs-link-opacity: 1; } + +.link-offset-1 { + text-underline-offset: 0.125em !important; } + +.link-offset-1-hover:hover { + text-underline-offset: 0.125em !important; } + +.link-offset-2 { + text-underline-offset: 0.25em !important; } + +.link-offset-2-hover:hover { + text-underline-offset: 0.25em !important; } + +.link-offset-3 { + text-underline-offset: 0.375em !important; } + +.link-offset-3-hover:hover { + text-underline-offset: 0.375em !important; } + +.link-underline-primary { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important; } + +.link-underline-secondary { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important; } + +.link-underline-success { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important; } + +.link-underline-info { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important; } + +.link-underline-warning { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important; } + +.link-underline-danger { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important; } + +.link-underline-light { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important; } + +.link-underline-dark { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important; } + +.link-underline { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important; } + +.link-underline-opacity-0 { + --bs-link-underline-opacity: 0; } + +.link-underline-opacity-0-hover:hover { + --bs-link-underline-opacity: 0; } + +.link-underline-opacity-10 { + --bs-link-underline-opacity: 0.1; } + +.link-underline-opacity-10-hover:hover { + --bs-link-underline-opacity: 0.1; } + +.link-underline-opacity-25 { + --bs-link-underline-opacity: 0.25; } + +.link-underline-opacity-25-hover:hover { + --bs-link-underline-opacity: 0.25; } + +.link-underline-opacity-50 { + --bs-link-underline-opacity: 0.5; } + +.link-underline-opacity-50-hover:hover { + --bs-link-underline-opacity: 0.5; } + +.link-underline-opacity-75 { + --bs-link-underline-opacity: 0.75; } + +.link-underline-opacity-75-hover:hover { + --bs-link-underline-opacity: 0.75; } + +.link-underline-opacity-100 { + --bs-link-underline-opacity: 1; } + +.link-underline-opacity-100-hover:hover { + --bs-link-underline-opacity: 1; } + +.bg-primary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important; } + +.bg-secondary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important; } + +.bg-success { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important; } + +.bg-info { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important; } + +.bg-warning { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important; } + +.bg-danger { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important; } + +.bg-light { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important; } + +.bg-dark { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important; } + +.bg-black { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important; } + +.bg-white { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important; } + +.bg-body { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important; } + +.bg-transparent { + --bs-bg-opacity: 1; + background-color: transparent !important; } + +.bg-body-secondary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important; } + +.bg-body-tertiary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important; } + +.bg-opacity-10 { + --bs-bg-opacity: 0.1; } + +.bg-opacity-25 { + --bs-bg-opacity: 0.25; } + +.bg-opacity-50 { + --bs-bg-opacity: 0.5; } + +.bg-opacity-75 { + --bs-bg-opacity: 0.75; } + +.bg-opacity-100 { + --bs-bg-opacity: 1; } + +.bg-primary-subtle { + background-color: var(--bs-primary-bg-subtle) !important; } + +.bg-secondary-subtle { + background-color: var(--bs-secondary-bg-subtle) !important; } + +.bg-success-subtle { + background-color: var(--bs-success-bg-subtle) !important; } + +.bg-info-subtle { + background-color: var(--bs-info-bg-subtle) !important; } + +.bg-warning-subtle { + background-color: var(--bs-warning-bg-subtle) !important; } + +.bg-danger-subtle { + background-color: var(--bs-danger-bg-subtle) !important; } + +.bg-light-subtle { + background-color: var(--bs-light-bg-subtle) !important; } + +.bg-dark-subtle { + background-color: var(--bs-dark-bg-subtle) !important; } + +.bg-gradient { + background-image: var(--bs-gradient) !important; } + +.user-select-all { + user-select: all !important; } + +.user-select-auto { + user-select: auto !important; } + +.user-select-none { + user-select: none !important; } + +.pe-none { + pointer-events: none !important; } + +.pe-auto { + pointer-events: auto !important; } + +.rounded { + border-radius: var(--bs-border-radius) !important; } + +.rounded-0 { + border-radius: 0 !important; } + +.rounded-1 { + border-radius: var(--bs-border-radius-sm) !important; } + +.rounded-2 { + border-radius: var(--bs-border-radius) !important; } + +.rounded-3 { + border-radius: var(--bs-border-radius-lg) !important; } + +.rounded-4 { + border-radius: var(--bs-border-radius-xl) !important; } + +.rounded-5 { + border-radius: var(--bs-border-radius-xxl) !important; } + +.rounded-circle { + border-radius: 50% !important; } + +.rounded-pill { + border-radius: var(--bs-border-radius-pill) !important; } + +.rounded-top { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; } + +.rounded-top-0 { + border-top-left-radius: 0 !important; + border-top-right-radius: 0 !important; } + +.rounded-top-1 { + border-top-left-radius: var(--bs-border-radius-sm) !important; + border-top-right-radius: var(--bs-border-radius-sm) !important; } + +.rounded-top-2 { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; } + +.rounded-top-3 { + border-top-left-radius: var(--bs-border-radius-lg) !important; + border-top-right-radius: var(--bs-border-radius-lg) !important; } + +.rounded-top-4 { + border-top-left-radius: var(--bs-border-radius-xl) !important; + border-top-right-radius: var(--bs-border-radius-xl) !important; } + +.rounded-top-5 { + border-top-left-radius: var(--bs-border-radius-xxl) !important; + border-top-right-radius: var(--bs-border-radius-xxl) !important; } + +.rounded-top-circle { + border-top-left-radius: 50% !important; + border-top-right-radius: 50% !important; } + +.rounded-top-pill { + border-top-left-radius: var(--bs-border-radius-pill) !important; + border-top-right-radius: var(--bs-border-radius-pill) !important; } + +.rounded-end { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; } + +.rounded-end-0 { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; } + +.rounded-end-1 { + border-top-right-radius: var(--bs-border-radius-sm) !important; + border-bottom-right-radius: var(--bs-border-radius-sm) !important; } + +.rounded-end-2 { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; } + +.rounded-end-3 { + border-top-right-radius: var(--bs-border-radius-lg) !important; + border-bottom-right-radius: var(--bs-border-radius-lg) !important; } + +.rounded-end-4 { + border-top-right-radius: var(--bs-border-radius-xl) !important; + border-bottom-right-radius: var(--bs-border-radius-xl) !important; } + +.rounded-end-5 { + border-top-right-radius: var(--bs-border-radius-xxl) !important; + border-bottom-right-radius: var(--bs-border-radius-xxl) !important; } + +.rounded-end-circle { + border-top-right-radius: 50% !important; + border-bottom-right-radius: 50% !important; } + +.rounded-end-pill { + border-top-right-radius: var(--bs-border-radius-pill) !important; + border-bottom-right-radius: var(--bs-border-radius-pill) !important; } + +.rounded-bottom { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; } + +.rounded-bottom-0 { + border-bottom-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; } + +.rounded-bottom-1 { + border-bottom-right-radius: var(--bs-border-radius-sm) !important; + border-bottom-left-radius: var(--bs-border-radius-sm) !important; } + +.rounded-bottom-2 { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; } + +.rounded-bottom-3 { + border-bottom-right-radius: var(--bs-border-radius-lg) !important; + border-bottom-left-radius: var(--bs-border-radius-lg) !important; } + +.rounded-bottom-4 { + border-bottom-right-radius: var(--bs-border-radius-xl) !important; + border-bottom-left-radius: var(--bs-border-radius-xl) !important; } + +.rounded-bottom-5 { + border-bottom-right-radius: var(--bs-border-radius-xxl) !important; + border-bottom-left-radius: var(--bs-border-radius-xxl) !important; } + +.rounded-bottom-circle { + border-bottom-right-radius: 50% !important; + border-bottom-left-radius: 50% !important; } + +.rounded-bottom-pill { + border-bottom-right-radius: var(--bs-border-radius-pill) !important; + border-bottom-left-radius: var(--bs-border-radius-pill) !important; } + +.rounded-start { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; } + +.rounded-start-0 { + border-bottom-left-radius: 0 !important; + border-top-left-radius: 0 !important; } + +.rounded-start-1 { + border-bottom-left-radius: var(--bs-border-radius-sm) !important; + border-top-left-radius: var(--bs-border-radius-sm) !important; } + +.rounded-start-2 { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; } + +.rounded-start-3 { + border-bottom-left-radius: var(--bs-border-radius-lg) !important; + border-top-left-radius: var(--bs-border-radius-lg) !important; } + +.rounded-start-4 { + border-bottom-left-radius: var(--bs-border-radius-xl) !important; + border-top-left-radius: var(--bs-border-radius-xl) !important; } + +.rounded-start-5 { + border-bottom-left-radius: var(--bs-border-radius-xxl) !important; + border-top-left-radius: var(--bs-border-radius-xxl) !important; } + +.rounded-start-circle { + border-bottom-left-radius: 50% !important; + border-top-left-radius: 50% !important; } + +.rounded-start-pill { + border-bottom-left-radius: var(--bs-border-radius-pill) !important; + border-top-left-radius: var(--bs-border-radius-pill) !important; } + +.visible { + visibility: visible !important; } + +.invisible { + visibility: hidden !important; } + +.z-n1 { + z-index: -1 !important; } + +.z-0 { + z-index: 0 !important; } + +.z-1 { + z-index: 1 !important; } + +.z-2 { + z-index: 2 !important; } + +.z-3 { + z-index: 3 !important; } + +@media (min-width: 576px) { + .float-sm-start { + float: left !important; } + .float-sm-end { + float: right !important; } + .float-sm-none { + float: none !important; } + .object-fit-sm-contain { + object-fit: contain !important; } + .object-fit-sm-cover { + object-fit: cover !important; } + .object-fit-sm-fill { + object-fit: fill !important; } + .object-fit-sm-scale { + object-fit: scale-down !important; } + .object-fit-sm-none { + object-fit: none !important; } + .d-sm-inline { + display: inline !important; } + .d-sm-inline-block { + display: inline-block !important; } + .d-sm-block { + display: block !important; } + .d-sm-grid { + display: grid !important; } + .d-sm-inline-grid { + display: inline-grid !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; } + .d-sm-none { + display: none !important; } + .flex-sm-fill { + flex: 1 1 auto !important; } + .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-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; } + .flex-sm-wrap { + flex-wrap: wrap !important; } + .flex-sm-nowrap { + flex-wrap: nowrap !important; } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; } + .justify-content-sm-start { + justify-content: flex-start !important; } + .justify-content-sm-end { + justify-content: flex-end !important; } + .justify-content-sm-center { + justify-content: center !important; } + .justify-content-sm-between { + justify-content: space-between !important; } + .justify-content-sm-around { + justify-content: space-around !important; } + .justify-content-sm-evenly { + justify-content: space-evenly !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; } + .order-sm-first { + order: -1 !important; } + .order-sm-0 { + order: 0 !important; } + .order-sm-1 { + order: 1 !important; } + .order-sm-2 { + order: 2 !important; } + .order-sm-3 { + order: 3 !important; } + .order-sm-4 { + order: 4 !important; } + .order-sm-5 { + order: 5 !important; } + .order-sm-last { + order: 6 !important; } + .m-sm-0 { + margin: 0 !important; } + .m-sm-1 { + margin: 0.25rem !important; } + .m-sm-2 { + margin: 0.5rem !important; } + .m-sm-3 { + margin: 1rem !important; } + .m-sm-4 { + margin: 1.5rem !important; } + .m-sm-5 { + margin: 3rem !important; } + .m-sm-auto { + margin: auto !important; } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; } + .mt-sm-0 { + margin-top: 0 !important; } + .mt-sm-1 { + margin-top: 0.25rem !important; } + .mt-sm-2 { + margin-top: 0.5rem !important; } + .mt-sm-3 { + margin-top: 1rem !important; } + .mt-sm-4 { + margin-top: 1.5rem !important; } + .mt-sm-5 { + margin-top: 3rem !important; } + .mt-sm-auto { + margin-top: auto !important; } + .me-sm-0 { + margin-right: 0 !important; } + .me-sm-1 { + margin-right: 0.25rem !important; } + .me-sm-2 { + margin-right: 0.5rem !important; } + .me-sm-3 { + margin-right: 1rem !important; } + .me-sm-4 { + margin-right: 1.5rem !important; } + .me-sm-5 { + margin-right: 3rem !important; } + .me-sm-auto { + margin-right: auto !important; } + .mb-sm-0 { + margin-bottom: 0 !important; } + .mb-sm-1 { + margin-bottom: 0.25rem !important; } + .mb-sm-2 { + margin-bottom: 0.5rem !important; } + .mb-sm-3 { + margin-bottom: 1rem !important; } + .mb-sm-4 { + margin-bottom: 1.5rem !important; } + .mb-sm-5 { + margin-bottom: 3rem !important; } + .mb-sm-auto { + margin-bottom: auto !important; } + .ms-sm-0 { + margin-left: 0 !important; } + .ms-sm-1 { + margin-left: 0.25rem !important; } + .ms-sm-2 { + margin-left: 0.5rem !important; } + .ms-sm-3 { + margin-left: 1rem !important; } + .ms-sm-4 { + margin-left: 1.5rem !important; } + .ms-sm-5 { + margin-left: 3rem !important; } + .ms-sm-auto { + margin-left: auto !important; } + .p-sm-0 { + padding: 0 !important; } + .p-sm-1 { + padding: 0.25rem !important; } + .p-sm-2 { + padding: 0.5rem !important; } + .p-sm-3 { + padding: 1rem !important; } + .p-sm-4 { + padding: 1.5rem !important; } + .p-sm-5 { + padding: 3rem !important; } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + .pt-sm-0 { + padding-top: 0 !important; } + .pt-sm-1 { + padding-top: 0.25rem !important; } + .pt-sm-2 { + padding-top: 0.5rem !important; } + .pt-sm-3 { + padding-top: 1rem !important; } + .pt-sm-4 { + padding-top: 1.5rem !important; } + .pt-sm-5 { + padding-top: 3rem !important; } + .pe-sm-0 { + padding-right: 0 !important; } + .pe-sm-1 { + padding-right: 0.25rem !important; } + .pe-sm-2 { + padding-right: 0.5rem !important; } + .pe-sm-3 { + padding-right: 1rem !important; } + .pe-sm-4 { + padding-right: 1.5rem !important; } + .pe-sm-5 { + padding-right: 3rem !important; } + .pb-sm-0 { + padding-bottom: 0 !important; } + .pb-sm-1 { + padding-bottom: 0.25rem !important; } + .pb-sm-2 { + padding-bottom: 0.5rem !important; } + .pb-sm-3 { + padding-bottom: 1rem !important; } + .pb-sm-4 { + padding-bottom: 1.5rem !important; } + .pb-sm-5 { + padding-bottom: 3rem !important; } + .ps-sm-0 { + padding-left: 0 !important; } + .ps-sm-1 { + padding-left: 0.25rem !important; } + .ps-sm-2 { + padding-left: 0.5rem !important; } + .ps-sm-3 { + padding-left: 1rem !important; } + .ps-sm-4 { + padding-left: 1.5rem !important; } + .ps-sm-5 { + padding-left: 3rem !important; } + .gap-sm-0 { + gap: 0 !important; } + .gap-sm-1 { + gap: 0.25rem !important; } + .gap-sm-2 { + gap: 0.5rem !important; } + .gap-sm-3 { + gap: 1rem !important; } + .gap-sm-4 { + gap: 1.5rem !important; } + .gap-sm-5 { + gap: 3rem !important; } + .row-gap-sm-0 { + row-gap: 0 !important; } + .row-gap-sm-1 { + row-gap: 0.25rem !important; } + .row-gap-sm-2 { + row-gap: 0.5rem !important; } + .row-gap-sm-3 { + row-gap: 1rem !important; } + .row-gap-sm-4 { + row-gap: 1.5rem !important; } + .row-gap-sm-5 { + row-gap: 3rem !important; } + .column-gap-sm-0 { + column-gap: 0 !important; } + .column-gap-sm-1 { + column-gap: 0.25rem !important; } + .column-gap-sm-2 { + column-gap: 0.5rem !important; } + .column-gap-sm-3 { + column-gap: 1rem !important; } + .column-gap-sm-4 { + column-gap: 1.5rem !important; } + .column-gap-sm-5 { + column-gap: 3rem !important; } + .text-sm-start { + text-align: left !important; } + .text-sm-end { + text-align: right !important; } + .text-sm-center { + text-align: center !important; } } + +@media (min-width: 768px) { + .float-md-start { + float: left !important; } + .float-md-end { + float: right !important; } + .float-md-none { + float: none !important; } + .object-fit-md-contain { + object-fit: contain !important; } + .object-fit-md-cover { + object-fit: cover !important; } + .object-fit-md-fill { + object-fit: fill !important; } + .object-fit-md-scale { + object-fit: scale-down !important; } + .object-fit-md-none { + object-fit: none !important; } + .d-md-inline { + display: inline !important; } + .d-md-inline-block { + display: inline-block !important; } + .d-md-block { + display: block !important; } + .d-md-grid { + display: grid !important; } + .d-md-inline-grid { + display: inline-grid !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; } + .d-md-none { + display: none !important; } + .flex-md-fill { + flex: 1 1 auto !important; } + .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-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; } + .flex-md-wrap { + flex-wrap: wrap !important; } + .flex-md-nowrap { + flex-wrap: nowrap !important; } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; } + .justify-content-md-start { + justify-content: flex-start !important; } + .justify-content-md-end { + justify-content: flex-end !important; } + .justify-content-md-center { + justify-content: center !important; } + .justify-content-md-between { + justify-content: space-between !important; } + .justify-content-md-around { + justify-content: space-around !important; } + .justify-content-md-evenly { + justify-content: space-evenly !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; } + .order-md-first { + order: -1 !important; } + .order-md-0 { + order: 0 !important; } + .order-md-1 { + order: 1 !important; } + .order-md-2 { + order: 2 !important; } + .order-md-3 { + order: 3 !important; } + .order-md-4 { + order: 4 !important; } + .order-md-5 { + order: 5 !important; } + .order-md-last { + order: 6 !important; } + .m-md-0 { + margin: 0 !important; } + .m-md-1 { + margin: 0.25rem !important; } + .m-md-2 { + margin: 0.5rem !important; } + .m-md-3 { + margin: 1rem !important; } + .m-md-4 { + margin: 1.5rem !important; } + .m-md-5 { + margin: 3rem !important; } + .m-md-auto { + margin: auto !important; } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; } + .mt-md-0 { + margin-top: 0 !important; } + .mt-md-1 { + margin-top: 0.25rem !important; } + .mt-md-2 { + margin-top: 0.5rem !important; } + .mt-md-3 { + margin-top: 1rem !important; } + .mt-md-4 { + margin-top: 1.5rem !important; } + .mt-md-5 { + margin-top: 3rem !important; } + .mt-md-auto { + margin-top: auto !important; } + .me-md-0 { + margin-right: 0 !important; } + .me-md-1 { + margin-right: 0.25rem !important; } + .me-md-2 { + margin-right: 0.5rem !important; } + .me-md-3 { + margin-right: 1rem !important; } + .me-md-4 { + margin-right: 1.5rem !important; } + .me-md-5 { + margin-right: 3rem !important; } + .me-md-auto { + margin-right: auto !important; } + .mb-md-0 { + margin-bottom: 0 !important; } + .mb-md-1 { + margin-bottom: 0.25rem !important; } + .mb-md-2 { + margin-bottom: 0.5rem !important; } + .mb-md-3 { + margin-bottom: 1rem !important; } + .mb-md-4 { + margin-bottom: 1.5rem !important; } + .mb-md-5 { + margin-bottom: 3rem !important; } + .mb-md-auto { + margin-bottom: auto !important; } + .ms-md-0 { + margin-left: 0 !important; } + .ms-md-1 { + margin-left: 0.25rem !important; } + .ms-md-2 { + margin-left: 0.5rem !important; } + .ms-md-3 { + margin-left: 1rem !important; } + .ms-md-4 { + margin-left: 1.5rem !important; } + .ms-md-5 { + margin-left: 3rem !important; } + .ms-md-auto { + margin-left: auto !important; } + .p-md-0 { + padding: 0 !important; } + .p-md-1 { + padding: 0.25rem !important; } + .p-md-2 { + padding: 0.5rem !important; } + .p-md-3 { + padding: 1rem !important; } + .p-md-4 { + padding: 1.5rem !important; } + .p-md-5 { + padding: 3rem !important; } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + .pt-md-0 { + padding-top: 0 !important; } + .pt-md-1 { + padding-top: 0.25rem !important; } + .pt-md-2 { + padding-top: 0.5rem !important; } + .pt-md-3 { + padding-top: 1rem !important; } + .pt-md-4 { + padding-top: 1.5rem !important; } + .pt-md-5 { + padding-top: 3rem !important; } + .pe-md-0 { + padding-right: 0 !important; } + .pe-md-1 { + padding-right: 0.25rem !important; } + .pe-md-2 { + padding-right: 0.5rem !important; } + .pe-md-3 { + padding-right: 1rem !important; } + .pe-md-4 { + padding-right: 1.5rem !important; } + .pe-md-5 { + padding-right: 3rem !important; } + .pb-md-0 { + padding-bottom: 0 !important; } + .pb-md-1 { + padding-bottom: 0.25rem !important; } + .pb-md-2 { + padding-bottom: 0.5rem !important; } + .pb-md-3 { + padding-bottom: 1rem !important; } + .pb-md-4 { + padding-bottom: 1.5rem !important; } + .pb-md-5 { + padding-bottom: 3rem !important; } + .ps-md-0 { + padding-left: 0 !important; } + .ps-md-1 { + padding-left: 0.25rem !important; } + .ps-md-2 { + padding-left: 0.5rem !important; } + .ps-md-3 { + padding-left: 1rem !important; } + .ps-md-4 { + padding-left: 1.5rem !important; } + .ps-md-5 { + padding-left: 3rem !important; } + .gap-md-0 { + gap: 0 !important; } + .gap-md-1 { + gap: 0.25rem !important; } + .gap-md-2 { + gap: 0.5rem !important; } + .gap-md-3 { + gap: 1rem !important; } + .gap-md-4 { + gap: 1.5rem !important; } + .gap-md-5 { + gap: 3rem !important; } + .row-gap-md-0 { + row-gap: 0 !important; } + .row-gap-md-1 { + row-gap: 0.25rem !important; } + .row-gap-md-2 { + row-gap: 0.5rem !important; } + .row-gap-md-3 { + row-gap: 1rem !important; } + .row-gap-md-4 { + row-gap: 1.5rem !important; } + .row-gap-md-5 { + row-gap: 3rem !important; } + .column-gap-md-0 { + column-gap: 0 !important; } + .column-gap-md-1 { + column-gap: 0.25rem !important; } + .column-gap-md-2 { + column-gap: 0.5rem !important; } + .column-gap-md-3 { + column-gap: 1rem !important; } + .column-gap-md-4 { + column-gap: 1.5rem !important; } + .column-gap-md-5 { + column-gap: 3rem !important; } + .text-md-start { + text-align: left !important; } + .text-md-end { + text-align: right !important; } + .text-md-center { + text-align: center !important; } } + +@media (min-width: 992px) { + .float-lg-start { + float: left !important; } + .float-lg-end { + float: right !important; } + .float-lg-none { + float: none !important; } + .object-fit-lg-contain { + object-fit: contain !important; } + .object-fit-lg-cover { + object-fit: cover !important; } + .object-fit-lg-fill { + object-fit: fill !important; } + .object-fit-lg-scale { + object-fit: scale-down !important; } + .object-fit-lg-none { + object-fit: none !important; } + .d-lg-inline { + display: inline !important; } + .d-lg-inline-block { + display: inline-block !important; } + .d-lg-block { + display: block !important; } + .d-lg-grid { + display: grid !important; } + .d-lg-inline-grid { + display: inline-grid !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; } + .d-lg-none { + display: none !important; } + .flex-lg-fill { + flex: 1 1 auto !important; } + .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-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; } + .flex-lg-wrap { + flex-wrap: wrap !important; } + .flex-lg-nowrap { + flex-wrap: nowrap !important; } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; } + .justify-content-lg-start { + justify-content: flex-start !important; } + .justify-content-lg-end { + justify-content: flex-end !important; } + .justify-content-lg-center { + justify-content: center !important; } + .justify-content-lg-between { + justify-content: space-between !important; } + .justify-content-lg-around { + justify-content: space-around !important; } + .justify-content-lg-evenly { + justify-content: space-evenly !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; } + .order-lg-first { + order: -1 !important; } + .order-lg-0 { + order: 0 !important; } + .order-lg-1 { + order: 1 !important; } + .order-lg-2 { + order: 2 !important; } + .order-lg-3 { + order: 3 !important; } + .order-lg-4 { + order: 4 !important; } + .order-lg-5 { + order: 5 !important; } + .order-lg-last { + order: 6 !important; } + .m-lg-0 { + margin: 0 !important; } + .m-lg-1 { + margin: 0.25rem !important; } + .m-lg-2 { + margin: 0.5rem !important; } + .m-lg-3 { + margin: 1rem !important; } + .m-lg-4 { + margin: 1.5rem !important; } + .m-lg-5 { + margin: 3rem !important; } + .m-lg-auto { + margin: auto !important; } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; } + .mt-lg-0 { + margin-top: 0 !important; } + .mt-lg-1 { + margin-top: 0.25rem !important; } + .mt-lg-2 { + margin-top: 0.5rem !important; } + .mt-lg-3 { + margin-top: 1rem !important; } + .mt-lg-4 { + margin-top: 1.5rem !important; } + .mt-lg-5 { + margin-top: 3rem !important; } + .mt-lg-auto { + margin-top: auto !important; } + .me-lg-0 { + margin-right: 0 !important; } + .me-lg-1 { + margin-right: 0.25rem !important; } + .me-lg-2 { + margin-right: 0.5rem !important; } + .me-lg-3 { + margin-right: 1rem !important; } + .me-lg-4 { + margin-right: 1.5rem !important; } + .me-lg-5 { + margin-right: 3rem !important; } + .me-lg-auto { + margin-right: auto !important; } + .mb-lg-0 { + margin-bottom: 0 !important; } + .mb-lg-1 { + margin-bottom: 0.25rem !important; } + .mb-lg-2 { + margin-bottom: 0.5rem !important; } + .mb-lg-3 { + margin-bottom: 1rem !important; } + .mb-lg-4 { + margin-bottom: 1.5rem !important; } + .mb-lg-5 { + margin-bottom: 3rem !important; } + .mb-lg-auto { + margin-bottom: auto !important; } + .ms-lg-0 { + margin-left: 0 !important; } + .ms-lg-1 { + margin-left: 0.25rem !important; } + .ms-lg-2 { + margin-left: 0.5rem !important; } + .ms-lg-3 { + margin-left: 1rem !important; } + .ms-lg-4 { + margin-left: 1.5rem !important; } + .ms-lg-5 { + margin-left: 3rem !important; } + .ms-lg-auto { + margin-left: auto !important; } + .p-lg-0 { + padding: 0 !important; } + .p-lg-1 { + padding: 0.25rem !important; } + .p-lg-2 { + padding: 0.5rem !important; } + .p-lg-3 { + padding: 1rem !important; } + .p-lg-4 { + padding: 1.5rem !important; } + .p-lg-5 { + padding: 3rem !important; } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + .pt-lg-0 { + padding-top: 0 !important; } + .pt-lg-1 { + padding-top: 0.25rem !important; } + .pt-lg-2 { + padding-top: 0.5rem !important; } + .pt-lg-3 { + padding-top: 1rem !important; } + .pt-lg-4 { + padding-top: 1.5rem !important; } + .pt-lg-5 { + padding-top: 3rem !important; } + .pe-lg-0 { + padding-right: 0 !important; } + .pe-lg-1 { + padding-right: 0.25rem !important; } + .pe-lg-2 { + padding-right: 0.5rem !important; } + .pe-lg-3 { + padding-right: 1rem !important; } + .pe-lg-4 { + padding-right: 1.5rem !important; } + .pe-lg-5 { + padding-right: 3rem !important; } + .pb-lg-0 { + padding-bottom: 0 !important; } + .pb-lg-1 { + padding-bottom: 0.25rem !important; } + .pb-lg-2 { + padding-bottom: 0.5rem !important; } + .pb-lg-3 { + padding-bottom: 1rem !important; } + .pb-lg-4 { + padding-bottom: 1.5rem !important; } + .pb-lg-5 { + padding-bottom: 3rem !important; } + .ps-lg-0 { + padding-left: 0 !important; } + .ps-lg-1 { + padding-left: 0.25rem !important; } + .ps-lg-2 { + padding-left: 0.5rem !important; } + .ps-lg-3 { + padding-left: 1rem !important; } + .ps-lg-4 { + padding-left: 1.5rem !important; } + .ps-lg-5 { + padding-left: 3rem !important; } + .gap-lg-0 { + gap: 0 !important; } + .gap-lg-1 { + gap: 0.25rem !important; } + .gap-lg-2 { + gap: 0.5rem !important; } + .gap-lg-3 { + gap: 1rem !important; } + .gap-lg-4 { + gap: 1.5rem !important; } + .gap-lg-5 { + gap: 3rem !important; } + .row-gap-lg-0 { + row-gap: 0 !important; } + .row-gap-lg-1 { + row-gap: 0.25rem !important; } + .row-gap-lg-2 { + row-gap: 0.5rem !important; } + .row-gap-lg-3 { + row-gap: 1rem !important; } + .row-gap-lg-4 { + row-gap: 1.5rem !important; } + .row-gap-lg-5 { + row-gap: 3rem !important; } + .column-gap-lg-0 { + column-gap: 0 !important; } + .column-gap-lg-1 { + column-gap: 0.25rem !important; } + .column-gap-lg-2 { + column-gap: 0.5rem !important; } + .column-gap-lg-3 { + column-gap: 1rem !important; } + .column-gap-lg-4 { + column-gap: 1.5rem !important; } + .column-gap-lg-5 { + column-gap: 3rem !important; } + .text-lg-start { + text-align: left !important; } + .text-lg-end { + text-align: right !important; } + .text-lg-center { + text-align: center !important; } } + +@media (min-width: 1200px) { + .float-xl-start { + float: left !important; } + .float-xl-end { + float: right !important; } + .float-xl-none { + float: none !important; } + .object-fit-xl-contain { + object-fit: contain !important; } + .object-fit-xl-cover { + object-fit: cover !important; } + .object-fit-xl-fill { + object-fit: fill !important; } + .object-fit-xl-scale { + object-fit: scale-down !important; } + .object-fit-xl-none { + object-fit: none !important; } + .d-xl-inline { + display: inline !important; } + .d-xl-inline-block { + display: inline-block !important; } + .d-xl-block { + display: block !important; } + .d-xl-grid { + display: grid !important; } + .d-xl-inline-grid { + display: inline-grid !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; } + .d-xl-none { + display: none !important; } + .flex-xl-fill { + flex: 1 1 auto !important; } + .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-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; } + .flex-xl-wrap { + flex-wrap: wrap !important; } + .flex-xl-nowrap { + flex-wrap: nowrap !important; } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; } + .justify-content-xl-start { + justify-content: flex-start !important; } + .justify-content-xl-end { + justify-content: flex-end !important; } + .justify-content-xl-center { + justify-content: center !important; } + .justify-content-xl-between { + justify-content: space-between !important; } + .justify-content-xl-around { + justify-content: space-around !important; } + .justify-content-xl-evenly { + justify-content: space-evenly !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; } + .order-xl-first { + order: -1 !important; } + .order-xl-0 { + order: 0 !important; } + .order-xl-1 { + order: 1 !important; } + .order-xl-2 { + order: 2 !important; } + .order-xl-3 { + order: 3 !important; } + .order-xl-4 { + order: 4 !important; } + .order-xl-5 { + order: 5 !important; } + .order-xl-last { + order: 6 !important; } + .m-xl-0 { + margin: 0 !important; } + .m-xl-1 { + margin: 0.25rem !important; } + .m-xl-2 { + margin: 0.5rem !important; } + .m-xl-3 { + margin: 1rem !important; } + .m-xl-4 { + margin: 1.5rem !important; } + .m-xl-5 { + margin: 3rem !important; } + .m-xl-auto { + margin: auto !important; } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; } + .mt-xl-0 { + margin-top: 0 !important; } + .mt-xl-1 { + margin-top: 0.25rem !important; } + .mt-xl-2 { + margin-top: 0.5rem !important; } + .mt-xl-3 { + margin-top: 1rem !important; } + .mt-xl-4 { + margin-top: 1.5rem !important; } + .mt-xl-5 { + margin-top: 3rem !important; } + .mt-xl-auto { + margin-top: auto !important; } + .me-xl-0 { + margin-right: 0 !important; } + .me-xl-1 { + margin-right: 0.25rem !important; } + .me-xl-2 { + margin-right: 0.5rem !important; } + .me-xl-3 { + margin-right: 1rem !important; } + .me-xl-4 { + margin-right: 1.5rem !important; } + .me-xl-5 { + margin-right: 3rem !important; } + .me-xl-auto { + margin-right: auto !important; } + .mb-xl-0 { + margin-bottom: 0 !important; } + .mb-xl-1 { + margin-bottom: 0.25rem !important; } + .mb-xl-2 { + margin-bottom: 0.5rem !important; } + .mb-xl-3 { + margin-bottom: 1rem !important; } + .mb-xl-4 { + margin-bottom: 1.5rem !important; } + .mb-xl-5 { + margin-bottom: 3rem !important; } + .mb-xl-auto { + margin-bottom: auto !important; } + .ms-xl-0 { + margin-left: 0 !important; } + .ms-xl-1 { + margin-left: 0.25rem !important; } + .ms-xl-2 { + margin-left: 0.5rem !important; } + .ms-xl-3 { + margin-left: 1rem !important; } + .ms-xl-4 { + margin-left: 1.5rem !important; } + .ms-xl-5 { + margin-left: 3rem !important; } + .ms-xl-auto { + margin-left: auto !important; } + .p-xl-0 { + padding: 0 !important; } + .p-xl-1 { + padding: 0.25rem !important; } + .p-xl-2 { + padding: 0.5rem !important; } + .p-xl-3 { + padding: 1rem !important; } + .p-xl-4 { + padding: 1.5rem !important; } + .p-xl-5 { + padding: 3rem !important; } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + .pt-xl-0 { + padding-top: 0 !important; } + .pt-xl-1 { + padding-top: 0.25rem !important; } + .pt-xl-2 { + padding-top: 0.5rem !important; } + .pt-xl-3 { + padding-top: 1rem !important; } + .pt-xl-4 { + padding-top: 1.5rem !important; } + .pt-xl-5 { + padding-top: 3rem !important; } + .pe-xl-0 { + padding-right: 0 !important; } + .pe-xl-1 { + padding-right: 0.25rem !important; } + .pe-xl-2 { + padding-right: 0.5rem !important; } + .pe-xl-3 { + padding-right: 1rem !important; } + .pe-xl-4 { + padding-right: 1.5rem !important; } + .pe-xl-5 { + padding-right: 3rem !important; } + .pb-xl-0 { + padding-bottom: 0 !important; } + .pb-xl-1 { + padding-bottom: 0.25rem !important; } + .pb-xl-2 { + padding-bottom: 0.5rem !important; } + .pb-xl-3 { + padding-bottom: 1rem !important; } + .pb-xl-4 { + padding-bottom: 1.5rem !important; } + .pb-xl-5 { + padding-bottom: 3rem !important; } + .ps-xl-0 { + padding-left: 0 !important; } + .ps-xl-1 { + padding-left: 0.25rem !important; } + .ps-xl-2 { + padding-left: 0.5rem !important; } + .ps-xl-3 { + padding-left: 1rem !important; } + .ps-xl-4 { + padding-left: 1.5rem !important; } + .ps-xl-5 { + padding-left: 3rem !important; } + .gap-xl-0 { + gap: 0 !important; } + .gap-xl-1 { + gap: 0.25rem !important; } + .gap-xl-2 { + gap: 0.5rem !important; } + .gap-xl-3 { + gap: 1rem !important; } + .gap-xl-4 { + gap: 1.5rem !important; } + .gap-xl-5 { + gap: 3rem !important; } + .row-gap-xl-0 { + row-gap: 0 !important; } + .row-gap-xl-1 { + row-gap: 0.25rem !important; } + .row-gap-xl-2 { + row-gap: 0.5rem !important; } + .row-gap-xl-3 { + row-gap: 1rem !important; } + .row-gap-xl-4 { + row-gap: 1.5rem !important; } + .row-gap-xl-5 { + row-gap: 3rem !important; } + .column-gap-xl-0 { + column-gap: 0 !important; } + .column-gap-xl-1 { + column-gap: 0.25rem !important; } + .column-gap-xl-2 { + column-gap: 0.5rem !important; } + .column-gap-xl-3 { + column-gap: 1rem !important; } + .column-gap-xl-4 { + column-gap: 1.5rem !important; } + .column-gap-xl-5 { + column-gap: 3rem !important; } + .text-xl-start { + text-align: left !important; } + .text-xl-end { + text-align: right !important; } + .text-xl-center { + text-align: center !important; } } + +@media (min-width: 1400px) { + .float-xxl-start { + float: left !important; } + .float-xxl-end { + float: right !important; } + .float-xxl-none { + float: none !important; } + .object-fit-xxl-contain { + object-fit: contain !important; } + .object-fit-xxl-cover { + object-fit: cover !important; } + .object-fit-xxl-fill { + object-fit: fill !important; } + .object-fit-xxl-scale { + object-fit: scale-down !important; } + .object-fit-xxl-none { + object-fit: none !important; } + .d-xxl-inline { + display: inline !important; } + .d-xxl-inline-block { + display: inline-block !important; } + .d-xxl-block { + display: block !important; } + .d-xxl-grid { + display: grid !important; } + .d-xxl-inline-grid { + display: inline-grid !important; } + .d-xxl-table { + display: table !important; } + .d-xxl-table-row { + display: table-row !important; } + .d-xxl-table-cell { + display: table-cell !important; } + .d-xxl-flex { + display: flex !important; } + .d-xxl-inline-flex { + display: inline-flex !important; } + .d-xxl-none { + display: none !important; } + .flex-xxl-fill { + flex: 1 1 auto !important; } + .flex-xxl-row { + flex-direction: row !important; } + .flex-xxl-column { + flex-direction: column !important; } + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; } + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; } + .flex-xxl-grow-0 { + flex-grow: 0 !important; } + .flex-xxl-grow-1 { + flex-grow: 1 !important; } + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; } + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; } + .flex-xxl-wrap { + flex-wrap: wrap !important; } + .flex-xxl-nowrap { + flex-wrap: nowrap !important; } + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; } + .justify-content-xxl-start { + justify-content: flex-start !important; } + .justify-content-xxl-end { + justify-content: flex-end !important; } + .justify-content-xxl-center { + justify-content: center !important; } + .justify-content-xxl-between { + justify-content: space-between !important; } + .justify-content-xxl-around { + justify-content: space-around !important; } + .justify-content-xxl-evenly { + justify-content: space-evenly !important; } + .align-items-xxl-start { + align-items: flex-start !important; } + .align-items-xxl-end { + align-items: flex-end !important; } + .align-items-xxl-center { + align-items: center !important; } + .align-items-xxl-baseline { + align-items: baseline !important; } + .align-items-xxl-stretch { + align-items: stretch !important; } + .align-content-xxl-start { + align-content: flex-start !important; } + .align-content-xxl-end { + align-content: flex-end !important; } + .align-content-xxl-center { + align-content: center !important; } + .align-content-xxl-between { + align-content: space-between !important; } + .align-content-xxl-around { + align-content: space-around !important; } + .align-content-xxl-stretch { + align-content: stretch !important; } + .align-self-xxl-auto { + align-self: auto !important; } + .align-self-xxl-start { + align-self: flex-start !important; } + .align-self-xxl-end { + align-self: flex-end !important; } + .align-self-xxl-center { + align-self: center !important; } + .align-self-xxl-baseline { + align-self: baseline !important; } + .align-self-xxl-stretch { + align-self: stretch !important; } + .order-xxl-first { + order: -1 !important; } + .order-xxl-0 { + order: 0 !important; } + .order-xxl-1 { + order: 1 !important; } + .order-xxl-2 { + order: 2 !important; } + .order-xxl-3 { + order: 3 !important; } + .order-xxl-4 { + order: 4 !important; } + .order-xxl-5 { + order: 5 !important; } + .order-xxl-last { + order: 6 !important; } + .m-xxl-0 { + margin: 0 !important; } + .m-xxl-1 { + margin: 0.25rem !important; } + .m-xxl-2 { + margin: 0.5rem !important; } + .m-xxl-3 { + margin: 1rem !important; } + .m-xxl-4 { + margin: 1.5rem !important; } + .m-xxl-5 { + margin: 3rem !important; } + .m-xxl-auto { + margin: auto !important; } + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; } + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; } + .mt-xxl-0 { + margin-top: 0 !important; } + .mt-xxl-1 { + margin-top: 0.25rem !important; } + .mt-xxl-2 { + margin-top: 0.5rem !important; } + .mt-xxl-3 { + margin-top: 1rem !important; } + .mt-xxl-4 { + margin-top: 1.5rem !important; } + .mt-xxl-5 { + margin-top: 3rem !important; } + .mt-xxl-auto { + margin-top: auto !important; } + .me-xxl-0 { + margin-right: 0 !important; } + .me-xxl-1 { + margin-right: 0.25rem !important; } + .me-xxl-2 { + margin-right: 0.5rem !important; } + .me-xxl-3 { + margin-right: 1rem !important; } + .me-xxl-4 { + margin-right: 1.5rem !important; } + .me-xxl-5 { + margin-right: 3rem !important; } + .me-xxl-auto { + margin-right: auto !important; } + .mb-xxl-0 { + margin-bottom: 0 !important; } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; } + .mb-xxl-2 { + margin-bottom: 0.5rem !important; } + .mb-xxl-3 { + margin-bottom: 1rem !important; } + .mb-xxl-4 { + margin-bottom: 1.5rem !important; } + .mb-xxl-5 { + margin-bottom: 3rem !important; } + .mb-xxl-auto { + margin-bottom: auto !important; } + .ms-xxl-0 { + margin-left: 0 !important; } + .ms-xxl-1 { + margin-left: 0.25rem !important; } + .ms-xxl-2 { + margin-left: 0.5rem !important; } + .ms-xxl-3 { + margin-left: 1rem !important; } + .ms-xxl-4 { + margin-left: 1.5rem !important; } + .ms-xxl-5 { + margin-left: 3rem !important; } + .ms-xxl-auto { + margin-left: auto !important; } + .p-xxl-0 { + padding: 0 !important; } + .p-xxl-1 { + padding: 0.25rem !important; } + .p-xxl-2 { + padding: 0.5rem !important; } + .p-xxl-3 { + padding: 1rem !important; } + .p-xxl-4 { + padding: 1.5rem !important; } + .p-xxl-5 { + padding: 3rem !important; } + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; } + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + .pt-xxl-0 { + padding-top: 0 !important; } + .pt-xxl-1 { + padding-top: 0.25rem !important; } + .pt-xxl-2 { + padding-top: 0.5rem !important; } + .pt-xxl-3 { + padding-top: 1rem !important; } + .pt-xxl-4 { + padding-top: 1.5rem !important; } + .pt-xxl-5 { + padding-top: 3rem !important; } + .pe-xxl-0 { + padding-right: 0 !important; } + .pe-xxl-1 { + padding-right: 0.25rem !important; } + .pe-xxl-2 { + padding-right: 0.5rem !important; } + .pe-xxl-3 { + padding-right: 1rem !important; } + .pe-xxl-4 { + padding-right: 1.5rem !important; } + .pe-xxl-5 { + padding-right: 3rem !important; } + .pb-xxl-0 { + padding-bottom: 0 !important; } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; } + .pb-xxl-2 { + padding-bottom: 0.5rem !important; } + .pb-xxl-3 { + padding-bottom: 1rem !important; } + .pb-xxl-4 { + padding-bottom: 1.5rem !important; } + .pb-xxl-5 { + padding-bottom: 3rem !important; } + .ps-xxl-0 { + padding-left: 0 !important; } + .ps-xxl-1 { + padding-left: 0.25rem !important; } + .ps-xxl-2 { + padding-left: 0.5rem !important; } + .ps-xxl-3 { + padding-left: 1rem !important; } + .ps-xxl-4 { + padding-left: 1.5rem !important; } + .ps-xxl-5 { + padding-left: 3rem !important; } + .gap-xxl-0 { + gap: 0 !important; } + .gap-xxl-1 { + gap: 0.25rem !important; } + .gap-xxl-2 { + gap: 0.5rem !important; } + .gap-xxl-3 { + gap: 1rem !important; } + .gap-xxl-4 { + gap: 1.5rem !important; } + .gap-xxl-5 { + gap: 3rem !important; } + .row-gap-xxl-0 { + row-gap: 0 !important; } + .row-gap-xxl-1 { + row-gap: 0.25rem !important; } + .row-gap-xxl-2 { + row-gap: 0.5rem !important; } + .row-gap-xxl-3 { + row-gap: 1rem !important; } + .row-gap-xxl-4 { + row-gap: 1.5rem !important; } + .row-gap-xxl-5 { + row-gap: 3rem !important; } + .column-gap-xxl-0 { + column-gap: 0 !important; } + .column-gap-xxl-1 { + column-gap: 0.25rem !important; } + .column-gap-xxl-2 { + column-gap: 0.5rem !important; } + .column-gap-xxl-3 { + column-gap: 1rem !important; } + .column-gap-xxl-4 { + column-gap: 1.5rem !important; } + .column-gap-xxl-5 { + column-gap: 3rem !important; } + .text-xxl-start { + text-align: left !important; } + .text-xxl-end { + text-align: right !important; } + .text-xxl-center { + text-align: center !important; } } + +@media (min-width: 1200px) { + .fs-1 { + font-size: 2.5rem !important; } + .fs-2 { + font-size: 2rem !important; } + .fs-3 { + font-size: 1.75rem !important; } + .fs-4 { + font-size: 1.5rem !important; } } + +@media print { + .d-print-inline { + display: inline !important; } + .d-print-inline-block { + display: inline-block !important; } + .d-print-block { + display: block !important; } + .d-print-grid { + display: grid !important; } + .d-print-inline-grid { + display: inline-grid !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; } + .d-print-none { + display: none !important; } } + +.table > thead > tr > th { + background-color: #3c3834; + color: #f1f1f1; } + +.table-filter { + background-color: #34302D; + padding: 9px 12px; } + +.nav > li > a { + color: #838789; } + +.btn-primary { + margin-top: 12px; + border-width: 2px; + transition: border 0.15s; + color: #f1f1f1; + background: #34302D; + border-color: #6db33f; + -webkit-transition: border 0.15s; + -moz-transition: border 0.15s; + -o-transition: border 0.15s; + -ms-transition: border 0.15s; } + .btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, + .btn-primary .open .dropdown-toggle { + background-color: #34302D; + border-color: #34302D; } + +.container .text-muted { + margin: 20px 0; } + +code { + font-size: 80%; } + +.xd-container { + margin-top: 40px; + margin-bottom: 100px; + padding-left: 5px; + padding-right: 5px; } + +h1, .h1 { + margin-bottom: 15px; } + +.index-page--subtitle { + font-size: 16px; + line-height: 24px; + margin: 0 0 30px; } + +.form-horizontal button.btn-inverse { + margin-left: 32px; } + +#job-params-modal .modal-dialog { + width: 90%; + margin-left: auto; + margin-right: auto; } + +.splash[ng-cloak] { + display: block !important; } + +[ng-cloak] { + display: none; } + +.splash { + background: #6db33f; + color: #34302D; + display: none; } + +.error-page { + margin-top: 100px; + text-align: center; } + +.error-page .error-title { + font-size: 24px; + line-height: 24px; + margin: 30px 0 0; } + +table td { + vertical-align: middle; } + +table td .progress { + margin-bottom: 0; } + +table td.action-column { + width: 1px; } + +.help-block { + color: #b6afaa; } + +.xd-containers { + font-size: 15px; } + +.cluster-view > table td { + vertical-align: top; } + +.cluster-view .label, .cluster-view .column-block { + display: block; } + +.cluster-view .input-group-addon { + width: 0%; } + +.cluster-view { + margin-bottom: 0; } + +.container-details-table th { + background-color: #3c3834; + color: #f1f1f1; } + +.status-help-content-table td { + color: #34302D; } + +.logo { + width: 200px; } + +.myspinner { + animation-name: spinner; + animation-duration: 2s; + animation-iteration-count: infinite; + animation-timing-function: linear; + -webkit-transform-origin: 49% 50%; + -webkit-animation-name: spinner; + -webkit-animation-duration: 2s; + -webkit-animation-iteration-count: infinite; + -webkit-animation-timing-function: linear; } + +hr { + border-top: 1px dotted #34302D; } + +/* Chatbox container */ +.chatbox { + position: fixed; + bottom: 10px; + right: 10px; + width: 300px; + background-color: #f1f1f1; + border-radius: 10px; + box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); + display: flex; + flex-direction: column; } + .chatbox.minimized .chatbox-content { + height: 40px; + /* Height when minimized (header only) */ } + .chatbox.minimized .chatbox-messages, + .chatbox.minimized .chatbox-footer { + display: none; } + +/* Header styling */ +.chatbox-header { + background-color: #075E54; + color: white; + padding: 10px; + text-align: center; + border-top-left-radius: 10px; + border-top-right-radius: 10px; + cursor: pointer; } + +/* Chatbox content styling */ +.chatbox-content { + display: flex; + flex-direction: column; + height: 400px; + /* Adjust to desired height */ + overflow: hidden; + /* Hide overflow to make it scrollable */ } + +.chatbox-messages { + flex-grow: 1; + overflow-y: auto; + /* Allows vertical scrolling */ + padding: 10px; } + +/* Chat bubbles styling */ +.chat-bubble { + max-width: 80%; + padding: 10px; + border-radius: 20px; + margin-bottom: 10px; + position: relative; + word-wrap: break-word; + font-size: 14px; } + .chat-bubble strong { + font-weight: bold; } + .chat-bubble em { + font-style: italic; } + .chat-bubble.user { + background-color: #dcf8c6; + /* WhatsApp-style light green */ + margin-left: auto; + text-align: right; + border-bottom-right-radius: 0; } + .chat-bubble.bot { + background-color: #ffffff; + margin-right: auto; + text-align: left; + border-bottom-left-radius: 0; + border: 1px solid #e1e1e1; } + +/* Input field and button */ +.chatbox-footer { + padding: 10px; + background-color: #f9f9f9; + display: flex; } + +.chatbox-footer input { + flex-grow: 1; + padding: 10px; + border-radius: 20px; + border: 1px solid #ccc; + margin-right: 10px; + outline: none; } + +.chatbox-footer button { + background-color: #075E54; + color: white; + border: none; + padding: 10px; + border-radius: 50%; + cursor: pointer; } + .chatbox-footer button:hover { + background-color: #128C7E; } + +@font-face { + font-family: 'varela_roundregular'; + src: url("../fonts/varela_round-webfont.eot"); + src: url("../fonts/varela_round-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/varela_round-webfont.woff") format("woff"), url("../fonts/varela_round-webfont.ttf") format("truetype"), url("../fonts/varela_round-webfont.svg#varela_roundregular") format("svg"); + font-weight: normal; + font-style: normal; } + +@font-face { + font-family: 'montserratregular'; + src: url("../fonts/montserrat-webfont.eot"); + src: url("../fonts/montserrat-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/montserrat-webfont.woff") format("woff"), url("../fonts/montserrat-webfont.ttf") format("truetype"), url("../fonts/montserrat-webfont.svg#montserratregular") format("svg"); + font-weight: normal; + font-style: normal; } + +body, h1, .h1, h2, .h2, h3, .h3, p, input { + margin: 0; + font-weight: 400; + font-family: "varela_roundregular", sans-serif; + color: #34302d; } + +h1, .h1 { + font-size: 24px; + line-height: 30px; + font-family: "montserratregular", sans-serif; } + +h2, .h2 { + font-size: 18px; + font-weight: 700; + line-height: 24px; + margin-bottom: 10px; + font-family: "montserratregular", sans-serif; } + +h3, .h3 { + font-size: 16px; + line-height: 24px; + margin-bottom: 10px; + font-weight: 700; } + +strong { + font-weight: 700; + font-family: "montserratregular", sans-serif; } + +.navbar { + border-top: 4px solid #6db33f; + background-color: #34302d; + margin-bottom: 0px; + border-bottom: 0; + border-left: 0; + border-right: 0; } + +.navbar a.navbar-brand { + background: url("../images/spring-logo-dataflow.png") -1px -1px no-repeat; + margin: 12px 0 6px; + width: 229px; + height: 46px; + display: inline-block; + text-decoration: none; + padding: 0; } + +.navbar a.navbar-brand span { + display: block; + width: 229px; + height: 46px; + background: url("../images/spring-logo-dataflow.png") -1px -48px no-repeat; + opacity: 0; + -moz-transition: opacity 0.12s ease-in-out; + -webkit-transition: opacity 0.12s ease-in-out; + -o-transition: opacity 0.12s ease-in-out; } + +.navbar a.navbar-brand:hover span { + opacity: 1; } + +.navbar li > a, .navbar-text { + font-family: "montserratregular", sans-serif; + text-shadow: none; + font-size: 14px; + /* line-height: 14px; */ + padding: 28px 20px; + transition: all 0.15s; + -webkit-transition: all 0.15s; + -moz-transition: all 0.15s; + -o-transition: all 0.15s; + -ms-transition: all 0.15s; } + +.navbar li > a { + text-transform: uppercase; } + +.navbar .navbar-text { + margin-top: 0; + margin-bottom: 0; } + +.navbar li:hover > a { + color: #eeeeee; + background-color: #6db33f; } + +.navbar-toggle { + border-width: 0; } + .navbar-toggle .icon-bar + .icon-bar { + margin-top: 3px; } + .navbar-toggle .icon-bar { + width: 19px; + height: 3px; } + +@media (max-width: 768px) { + .navbar-toggle { + position: absolute; + z-index: 9999; + left: 0px; + top: 0px; } + .navbar a.navbar-brand { + display: block; + margin: 0 auto 0 auto; + width: 148px; + height: 50px; + float: none; + background: url("../images/spring-logo-dataflow-mobile.png") 0 center no-repeat; } + .homepage-billboard .homepage-subtitle { + font-size: 21px; + line-height: 21px; } + .navbar a.navbar-brand span { + display: none; } + .navbar { + border-top-width: 0; } + .xd-container { + margin-top: 20px; + margin-bottom: 30px; } + .index-page--subtitle { + margin-top: 10px; + margin-bottom: 30px; } } + +/*# sourceMappingURL=../../../../../target/petclinic.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/css/responsive.css b/src/main/resources/static/css/responsive.css new file mode 100644 index 0000000..4d2cb8d --- /dev/null +++ b/src/main/resources/static/css/responsive.css @@ -0,0 +1,28 @@ +@media (max-width: 768px) { + .navbar-toggle { + position: absolute; + z-index: 9999; + left: 0px; + top: 0px; } + .navbar a.navbar-brand { + display: block; + margin: 0 auto 0 auto; + width: 148px; + height: 50px; + float: none; + background: url("../images/spring-logo-dataflow-mobile.png") 0 center no-repeat; } + .homepage-billboard .homepage-subtitle { + font-size: 21px; + line-height: 21px; } + .navbar a.navbar-brand span { + display: none; } + .navbar { + border-top-width: 0; } + .xd-container { + margin-top: 20px; + margin-bottom: 30px; } + .index-page--subtitle { + margin-top: 10px; + margin-bottom: 30px; } } + +/*# sourceMappingURL=../../../../../target/responsive.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/css/typography.css b/src/main/resources/static/css/typography.css new file mode 100644 index 0000000..da04116 --- /dev/null +++ b/src/main/resources/static/css/typography.css @@ -0,0 +1,43 @@ +@font-face { + font-family: 'varela_roundregular'; + src: url("../fonts/varela_round-webfont.eot"); + src: url("../fonts/varela_round-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/varela_round-webfont.woff") format("woff"), url("../fonts/varela_round-webfont.ttf") format("truetype"), url("../fonts/varela_round-webfont.svg#varela_roundregular") format("svg"); + font-weight: normal; + font-style: normal; } + +@font-face { + font-family: 'montserratregular'; + src: url("../fonts/montserrat-webfont.eot"); + src: url("../fonts/montserrat-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/montserrat-webfont.woff") format("woff"), url("../fonts/montserrat-webfont.ttf") format("truetype"), url("../fonts/montserrat-webfont.svg#montserratregular") format("svg"); + font-weight: normal; + font-style: normal; } + +body, h1, h2, h3, p, input { + margin: 0; + font-weight: 400; + font-family: "varela_roundregular", sans-serif; + color: #34302d; } + +h1 { + font-size: 24px; + line-height: 30px; + font-family: "montserratregular", sans-serif; } + +h2 { + font-size: 18px; + font-weight: 700; + line-height: 24px; + margin-bottom: 10px; + font-family: "montserratregular", sans-serif; } + +h3 { + font-size: 16px; + line-height: 24px; + margin-bottom: 10px; + font-weight: 700; } + +strong { + font-weight: 700; + font-family: "montserratregular", sans-serif; } + +/*# sourceMappingURL=../../../../../target/typography.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/fonts/montserrat-webfont.eot b/src/main/resources/static/fonts/montserrat-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..0caea9169a83c1707e3f3b849a685200a4f0d046 GIT binary patch literal 20979 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 y7G&oLkp@UW + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/fonts/montserrat-webfont.ttf b/src/main/resources/static/fonts/montserrat-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9953fe62e0002951d13e04023f534b504f158f5d GIT binary patch literal 42692 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 Lv@qdJ8`1v&;m2A} literal 0 HcmV?d00001 diff --git a/src/main/resources/static/fonts/montserrat-webfont.woff b/src/main/resources/static/fonts/montserrat-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..eb49333f716be52b58f29f6c866e40d73b891150 GIT binary patch literal 24240 zcmY&eb8ux(u)eXiv7H+m8{690wryv#u{O4CZjz0S8*FUbwqAbq-al`uzB8x4>h8fg zQ#Cz39*PnY05HH;(XRub|5uj`{IC4q`~NQz5~}h509e@Q;b$rR1 zUodQfNrp7BGjap~kTAaNoxjj`;Y*=x;_gZU03e5d>CpZMv?l})b4LriFRtlJryc+R zH&bb1Dzz|j`Lac|{L+E_KcHIJdYON5U%a>#01$}i_v_b?rJ0c_0HC(^rSsK3fD?*d zp~Uiw1OU`gzhsgxP#_n>a9P^9dVX=tU;fnr0ElR`Z9NEE2a_*7&9A4KxP z*_W;U*LVSmUzjy-4#o2@Gydwce%Y4{{U4@XR7k&SurC0{`3t80tH&;ZUtv|CWmX650!^xilt`tyfq-BEPS3!S^ojjSI(HnQETM$|OC41*?YP9K#< zl7>z>GNfv*21!rKMGuw*RR)eUss4HO(C=pD^c*ER;Ui)5wQKY8@%dI@>NQeUjPItw zS7%NBH3LO@Uq{gU&~BMzumgJ-jjijZ{nSE``~6Q+hQkXDR*Qh_pxQfc_OmE%(lDb_ zbL)!kWt+Ed+&cbxx9exGU;p~yN8>BgMK=~E_B=+X?wt0W`m~%=-qZY!$zbmeu+m!H zt>&+uvhK}nLRW&}XyUw%I!eul&oOVYixsxsAKA|24TVdj%iNCVvCia6wTBfe7ca2S;hh{aUtEweL+57nQi{Bi5IKiCJ*y z4e#L9jG^^(t75w`ND(lpeYSi-Z+uE=i)3_Kb>=!$-=gSVSp(%tFBQf{BiVbh-EP3Q z)CIlJJV}jZCKP2fK~Ifs1|x&-$;rbd%#G4V2J2Mi8Hl+%GwO0+rAy|!5cQc`NFu+R zi6WfQ$JKa}8F*{cH1QKp!hnEy9f~F*V5t6)^W%7!i}VLuUdc4Jr~$0sx--=4&&iOa zE#S^TS*`(?`30B}ldb*r^&cI-U6^&z@zQkuIB}XPX=7M z@bym9&dk5Knxw0Pm|9YzbmZ8yqc=H+nt;-)WkWqlcjf zgbaSRk-GlRXV!7)nC8*qerju#E*4+>P!~CcAZ%0Lq2piW8Vh-XCHk<;jSHi}wm($z z%tuKIt+4h&R!p7qk{_uOSDyVtE(xp7_g%pj=*az z!o~+)ZV9#%G&Vf;b_B()xQx}Z<3+tCF~)O?rn+3j1$MfdDyiNMfKAqjZmLcm;s{k6 z%vfGW(JQF(l`fBy!FZPJVXqz-!;rpDI6Zj?YeIO$;-1u>t}?lp_CC}=h~RiwwbG$& z^QIYN?Eb9+oX-Z=&UindhSQ(z51!&)(kb=jI3r>~DPA{!A6?-S15{sd1zlB#&FL_P zj3_mss9E@T^EwaW=52A*(DEPB&jea7fmK$}=k&O2;(z1<@p?ZJIdvFO7ay;MxmfrM zdF#dBnJZW4&<(c#$lpoSP>%xV3=7M=+Hj$jPE&MnR| z&85XL+)gGT|IQC%p7XSL)1C8(wA32K?K9U-^^j|RXvDn2j*P~9P~Pc(msVx<&z7Yv z-rRk1NU#`=ojsnC}Yv`eic8@*a&u;qhZlM8WY->hp<)NH`IVM5B2$Ly>dUmohWZPK}mB z4*#4?5`}U=*x!B11Ck@mr9kU-q32EApk<4y;A2Qhm6u5YF;p>1_2INP8dGN;uHnf86)op!^(6{-Ih*e9k*SKkbD~u1eI^il&-}h@)Xmh~feF0S z$AdX&-l>W{USsMB^ha=+8dgzR)81Uv2Bu~**0!JiAsfg0jq*Z;*4`d73pSt*Xit=x?!&vrE-Fllaw`5nOo}|>nWd(`G5@6!4ll4t zP+5suA+>2bv?os~;hjfIKL1vy8p?8S(&l#{!9i4Eb{%`sZZ=TSIEsQqe14`N@Q|xloPOo?wEBCR-#&+;^nT z$w=qA;d)@`Oe6J#&EZt6S5*;23N+AlQMY(Cz7S!6--n9MxRvpJJbXgjczJSON{1E<2$ zMwW@V$f-qsp=rI7m;=byqw1dl8jL)E|ZyEO>9v7Km0WA zQbkMo%ELG1x_d423`{h01r`?>wbGbD_4{|s3SiaAC}zbho$8@L;Yy|3oM*MdX+NCj zgcn)x@D2&&ISsHT@~5vHlV&w-W|R5@+qc9~73l$tRcWL42jkb~3 z_hq``g9N)d*atb-JB;Z02Dw|%%B|CBI8&A9jK>ADPiLd!sv%({Q`)kH52h)NZQp|i z4+t=3d1iz3T@pC5yUd^MRmwD@+`A9X{j*zAGBahqvG)@-wc%(eJFvc5IHn!Y`M3P`MP|oRoX3JE;CTNpE;u1#1Ti zNDQYnTcZ*xWu7{d`nAh`qPnC&-W+ugUu!y2EZQ8J-g6*6c0F?_jg_{ZCr-$zV!T z&Nu>BD22ONJ-N{on9`ZlcCVXdEe4nkQd`rcs_5G@rN5t6m(2e9ke$uXx$Vcp;)rg$ zHLM30Wy=(<@1F!oSkG82M`UEBPc{j&Z+;qopI3p0&#yVYJ)4jFC2Pj({BUD7tmLNo z)8*!>AwKh|d+e=&IVGa^`}fpy zx4>2=3kxp63EiqJK}FIVQUf^Rz*6UQM^<38C(;-22NNbWLQ`UKf|I7P!qwvTf)b}R z!&KvNLy~8(Bh=&fgAgS*L04gOL6D`h!PnvSfsq7SU~6!BpeQmq5E}@72KMA_#s90j z3LhyuN?U4u3K0wa^Duca%67n@-(L{z|_#w z^HShP$<2^mXiCn(M$HEt`fG`TNgAugg>5LgBtnp~nh+vD!@@WCzeom>A1V#72^av3 z19k!XfNQ||*K->11b71@2W$h50IPs0fEX0ofANf-QoDkVFzPxI3PjMr5()PTMq_&X zkWW4o+`xQ{u_^DbeON0l=igCIV8lW}Vn{2sxOw?SQkl@C*iybC0;J#AY{CoJd3hUM zCeztu$9`9M9NSE(98$#htwT?6zAH#IHv%4uPETW^n|{J*+nV2vxxIcMKxa-T@md4+ z`5kCbaOHV}w3|vlrr+R0U*Cvtd2yQ9XYb~C;EqWl4>Fx(e_rBF`~{)B1kZ09Gcy;Z zmFzGImMDL;upe53>Y9H~cl=~Sdmd#MQn9gv%=nlioxgR$kc|hG)N`h#HGEK@_x>7n zRa0pme_H9)YiK+&{7E|z1hdqy?uAH%j6#Jm(?T&ukA(JMTsZ)XmPi24y}vg4Q6%&% z^=+s_T84Kwv>AHn_hL^Tr()wLU#7gB17Y8j7D2B^H?Azt(@5wF4w^BqF-;(xn23bh zb12?aCq49@^6QjPQsDk|TtGH#)5Ve)Uuv@(GK)H_xBu$e4Jfi*y=^i|#KWP&x@?AK z;#GgLYZxMj2%%rtq&IWw^+P7;g^#|5-4Yp6)SJuuv!MATys`sZpaD4BU9bJ$=LG|R zeSQK^JXbn9k$hG6o0&Rt-?=x_`E%2K6{$wU(Im`aS;Pm)$V!q#+XxutX_O-|lw=u- zrCgkyt&q9GoEgYu&@elb`nQKcaUPeW;o(xkMN$m=j?Z9B!`e}Jb{JMgbJ(H>+j^&7 z4{}tbN%;mCU0(L zq=ylM>s7t^ZGLiS2{86h{*qtx9%V5j z)}3dF#-7O_nX{l!gB`oKYNwtpLe}oy51cE zih?z32fs?yf2~&r20J$CLA%wAYo(|++WKj_W#^!Ehp4-b?*_{QPiYi@Ad$}eBGzEq zrG0Nvg$9kP(t$ck#BDhVXLut|m75IK@+r%+bSoG}lyLc+t<8NDZgoxtG<*M30d5i26u=yroi^NIS)l!@=FZZSQl+H^@?ULBKG!^@F9B31NmI7 z_|22%@ONb&PqGGPFM;?n`AxaJl40Jmri45LX@&tDLwg9L<%lv7wc2fhD`2uy}?>sl$NKo$u4Q`ljHK*wfk5^Lf@S zu)H!d41vjgqNHncrWnUe-{!F^$|^eZsn$%7x|-DW*C8ERUHc(c1b>J0z2NK+ZZ5^c zhxTdf=_;zB)>c57AaQg7I?7)hfV(F>hhbJeyL7I%ys=1%DWJ!ybS2p?n^P3-3q7t% zEVB|=hDGmWS=&nA^=)h|yw^N!gjfU)Eah-qWhGYC zqVK|O3VVIJ-knS)0qLL00PFVCu37~x>R1KzcCgx)?PI-1Y3%UBEimunAD=X4Dx1b$ z9;a1W)r~b5WI3YU1*ymhoDT$UHrvfy$>}(G`A(6ah9vbKZt1E{Pw(dEejWorW3$bkA{Sn2|jZp_6`i`kH9Y3#si`H~lSPL9MW^imEK5-Ng@l z{AD^+#Vbgv(ta$viX|U?Zkfi{_+GBTdN;$e^1d-E=KD4=AAjYBWT??UA<$7Y=w?7#4i$05)oSkA89-*^Zn1%sf}ED!6J6-Jj06rrh)pK z^J?5@Lwr+IFm>&^f;dm4%6{fxWGPUroWjnB~EtzR&SYqH^Y0M83UsKzYHcB9%Zl zGGt9wcE{@>N4{c?P!7%Cj#WxFyk5>@!c*E)y)>l?@?P`p3$GP(E}sR-l^=Jd513IG z0Y$t02!wB42vRacl#gI20ZcgHnmI|*rc0coO+x=@;S8&1#CpQS8W!0&38M+xRmyfQ zCNFwg&hg$#`eRWDgF6L)ze1^{1o5IzSp2|_eIs0Fl9?iWP=2d5y`$PuRtAMm+7yoH zE7N=rDFa-5^W)M{0?t~1EHWA0J0%XvqNJ+oYZ{B)>`hK1ts2!8GuTSqCh<#m9jlS{ zBH4xcz+RMM-qOTQdYM#FQ~*v>4=V^qlM~QG?>Y%VW*z=}QNY9Hcq5b6HYW@W_((-}CHq~|@s7T)w#*vDBRk4pF zrk%dsG1=;_R0E^m-?uKp6MYwCqTmxRz%`?h#XQGm4sdse93c8J-S3?qh6EumlDNGv zD~6IMdjEvT^Aya5Y_oxf+{-Hb~AuUa!Kk&5n zQw1U00uZa%PMP^&2abo#k}KzZVfMQ8OyInC0pA=+5fFK{c7k~O&okhM3^7Y1h>SrG zzn3pBSMCM0e6?THKN$;Vx;AI!O<8mnZ8~qn%o=~tzbz$Xf}frkXVBf7`aaYl_%@;> ze@|e}vXHCo1fIK*Vd|p<5;6^E3;(kS`C4<`>iwSV$0 zLEnoru0d5ASJTc)PrEKJI>R(pi&FP;Sa$Q3%=lPjhqV#^6gFpGixLupawX=%qsoRP*F)YfMQR1c!rw$R%`#w1O2a_s3^d=On&V$ zx)$EXM5;=A&K_7^6xbof%{R^CaB#b~_mLdI&_d`bEJvvAA1-yLSb7{AtC8D%w-!pb zhp{ZV)96v9823V3?7+G1A)n_$4OOV}cF-8t)s}wx!uPNII8TLh&W*CWmg9$K46d)d z5Jv;stj*8+2A2JXpmQ!l9E!XK>K>How3j>&sC(#6xXDECMxA4WL0r|8mr*v0T7{%X zVzILZ0@HT2(ZFA#$2Hh9L`gNoMU{~R1EwcbIjof2@+uPC793JUE z`fpaeRstTe7gm=~o(`K96wj07aUHWV0!yd7r0>9TnwmRj5C!gYm&Eh94DfGTW^j4wGOe>_k$W6pW zpKOf^L$s+#sXdDZO3qbynm}2m)lUChF~4q06H`d!CY;E#WbegfAkQyYzdA}jpL&$x zZ1@>|*D8Ej@Hu%O9iC@le5;eW@b;l~F~u2(!cX=qT~HS3rob?RRRI*{jR5Z4Ke+4c z7Z1d&&c*L~j@x`$5cE&q3YkzR?M_;R?wuM}CM7-EX^%chkMz)7b`QMYSV;39~4F%A(k$H^B({ugkLkk~I(h#2iL+Q*S_yYN4oouI3JA!&e z%qOKz$T#wM#OB!j{N^8n1o?S96%K5KJ8s?}V&xYr@s%q=Z3`lU#TMCcR_w$T*YcWPWepEvQTC$QR8!(d zazdp>`z}yt9~3!uf-~DDMOjv$JZH*nvLu)xIWy<{?dK08GT~}vj$F#4gC4V+t=Gie z!V5W!d4JU0J5%FcwkSJF7mfATbG4f#exU#Q{7X!I;f0i^NsvHiSTHvk?+=bBfn12x)If>XM|nNs+9~PT?XK#@O;4 zu=N&-R$Cn0&fK~$PRMr@l|ccdSZ)O}X4oS3r$EVJSKwU^GQ0v=d8I_ZH<{ec#SxeA4)IG5#7x~0q9e_S_TN3X9OW)H&C(Sm z6-mFfd(@0_R;{)~$WeBeOe{0FI-NGHmPqr~!gYJ6FS)bm^#^uh`-VaDBL5)etL7@g zi0f0$6zT~n4^Pd4gIhW`+n%V)M^nnta#vTovpS0?6ycela}X{tX` za=Lp_DTmq%^7NWGvB0h_a+q?Ttf5$aeLW7=Cv(D1ER+xHuy!O;T z?=Yq9zZG{Z&R}c61Xk4z=U8We11x$UN#zauX-CV9ZdkGj*95KP%L%Y#f(0CRdK1mM zcmg5;v|wnS^WScQpXP|Un7r%n33eV$?9!p8Ix_Wy7oyHh4-Gu%(-Z{rW{)x(4+Ivc z&Y{L0DRe~jo+2?FdM4Uj-7w1I+Wqlmq5smGY)J;YYAULzXSDXD@eCEJaUgA2y76<% z2#{5dV7>UgtfNF^j!?w&3y)Bmq3b2;N$G5MI!E|IvIf3_hPOWyqTNGu>3c31EBSGM zRsIeRX~iLRCxJAPgBCqQ#qIGJwI9q>j~|7Q`*2fz`A!$r-pE#**Ko}L_k~{XzQ%1+ z&C#IU5vKdHhu;pqy%g#480R1d!o%g@qU5@rF!>>3nW~WsS?}7NlixBMq7Mar zVfozRs(nO1*WiY6kZHMx49W$;;d^HZjEf41^LW2Eb6KKTW^VDht0NgK<$9nwB4H4@ z#DQfp<(k#a55jV5Ncvid^aOhDF6)KKFePc)(Grf-jlAqT=Ea2Zjq;d0%9ej|2k{*2 zZ=8?9Wk8fhw+zd3SBB&%S6&J#mf;>+QX=$3sje79g`PQE{^!BoJwJGGc+@4}&a`Z5 zgZx;@8T562*PyYByW)qxDHG^a3}In->;w?NeaD4={{Qk75(BZDNf)t=bv1V^1 z3%6%yA(G+=S$m2gdUHRh<9@3? zxJ1q5!B$+ zd-wLpF=s$rbT--#p02|BcV@2P0ye=&lvz&Vswy?{%S*JxFAE{l3@Q*xQ|lY~i_#4& zON6kxZb6O0i4y1i=g&Juzo>n$_vD%9N*xBT`#S#bW@$bsw*2jjNmV{3P<@P!8g$2~ z3`lJOktB(Zw~9r)0{MRLr9tzblyO0;&^7u(J}rAIlx{Eo-eiz{u%#iMF&BmW2k%?< zG@hm?ix3`^GZdz3ywm3rvWu|R`fVGud_&IiTpB**4y9g?5xo;Aghb##$ir#$u13!J z;^6pM_1w_(2~12_lHX|VG%=i`&V-&Q59u4uk_+o$!G`y%cd@+S%S(YrHc4W!)tf$h zDobq3bg4(W^?q!)_vlo_FMs}~?wgPO8WiCPyouP`Q(?Rh^pu0)DTSvhsYCevTgw_v z2~JR!R473B8{tPFQgu@BbeJIzDzR6_IP7=rD^q%PFq`5%a5OQVV5}W`If#KmJ)o?& z`&h!U;?QDIJ1=8Qbx~L-8a@AvY=D5v#ds~zl46b~B{KQ0d&w!-wob~>a_bOj!N~V@ zxp4&y7v|dM3kuq9d#7-9P04)^OZjMSMBsY(If*mM5h}b+0g5-K7 zGBE3N40>9Zd!vmcG!(&nLu}W482WJ^ZF&ni=7c2UXSI%Pbo`bF>8VGeU_jHgJuRQQ zp&Fl8Q643FlqoZI#9lEkB!%p?uQ@+%koD^LoS}9%@`rat`tA--xyf*TAV6?_Sz6ya z)7?X5_blffp=B!DUD8^>>&_N5&M!aF=rQHDMWQ$R^8x26+TA8+jk# zSk(R+j&U3i)g?T;cj{4N+%Y-nr=*O6!lPur;G=x4rGNP8WhI-q^Q{0Gh}95%Qbw`PCHHZgOXM1yvaF)hWEBU#318Lx6q)2p-k#3Tk&x0r=Ul+Ti< zGnXdxbgN4v;L|C-(>`pG5Jn!#AQeSMB(>~&mL?b_Q)EKb5~0FkdIAWFIcjructv5GV#5p5+2#jg=aJ=DUdojg__Lb zP16mD%ak3`k*|Mo0^{P27>aV_T;q9r*f|mq?lAl&g>$htu?z~#_Bzkjm&-IWpd7?& z?)y6V=r!EfTGk+L{xss1!{cKlDpw2@A@3~GU(0@l!~*)p}kUYJk1}79yET$|{n?&)Z_@_rpER zcbHrnOozqlb}vVUULXmcsfh)s!`Mj>P6x_FU{M)v;mSvnVP9i z63SaWaDq+q5x5n3nPV@zyPB>Sy{aJ+SY@U)QE&rr=D_|E-3W4VWBK7hl(@>ADaPK* zNpNrD=$v+_e=E^F$G^YfdIb`lBd&23I>W0vgkCA5NN=G>F*Br&!Aj!lM^1tl{0(ZY z2PMt6*JK6z#Hf1@>NE5{AS|R5sfLyX<2xj*GKG|)I}qu}D1T_`;;(z$jO8;-(RP}W z@i(~uhw1SxTN3^*fWIXpNR{`1d!0&x)f&bBgMNOlylr6`?ndX`-@TFBS9xlueef6< zL%x>DA9PU+qTP8zd~Km(a@ zWpshB8@;^~bnAKfq}pVpTcsTpr${L(%)bDrV^=>Pj$XH;(B?ngaTqC6fyT$GwS+Y>va@OoPr*QmNh_=aQuMaek0_rrN7tQ`Fw=X4_GcfW(R;_1Cz zs3U4L zWN}z{_f{T2J~}yB*z~Cf*w_+jr-*HnHIS^>~;<;YHfG_IvwOI|F%_LL3pd44&e_v47|&BL$zK^c1NM1&nYE zMT^dJ zm!wB%M;Z$_3Tzd;@1=ZX|1qhIWjbaC{20d!sH^;R`-Ul=keAA2t5xqm|CfKKf&)LN zuQ?a)!LH&2+%B7`$PZBwupi262G3gJLF&q^mJa;ktC`8^hBP|{2-ZYG6SXIF;94~prS6ax<`5pRMO~`(wIS+cP zRSp##yvhT9HHD6Pg4v~T1xH5(?GwY>Vmm#ngGC7CN`mdBFoS+*w53yn;mK<9rfn+* zBb*uyFX&NL16CV$omAk9~18d`mW!+$Es?JQ}Jtpu9+c+&!9lvKmXPh1;%kD zaI>fUW;t|LH*Y>h~-H#4&-}qtr7icnfk`coq zaeB(Wk0OdXaBh@we)uJnO3PW}`)|<%xR9o9DwB@l@AIGEk2n@Yta)U7ASfsEBe_=m7ub9_UG-x$=W-xA6iV ze`Ls(GHtXbo^1>4b<4;}wWq%YZG(4r!LJv!L|sJ5V330O0&9I=%qKFYO@EwJ0X1$DiJ>cntUV*%DwHxZ>#O2 zAPNQS`1d=}zX9zttD9h5@0Sg-qdL4t_#zhqkeB3eW^V$|u1K)B-Ow`}tL@1f0!*Ly z)esNTP})C2+xSR(I$QH+k^2lO)T3h(D5AW!j4^eiXg$ryAg4t1#nLU+y&zS4G2l=2 z>wZW5dxkA>_>n>ad!mL(WRPc!_a9g(!@&K*NGU4466(Xc&3uMp! z1rmeoF)aieb8HO!nE=EBRfPu+;Jaikq#qFNB%bSxmV9r_n^4ht!kI#*0@nop9Q7_? zaoaq^=tk_qw{iu!T6*P&`RW#ljVj5J7(J8chy~;n6QP~45+7VK{IuQ(`JL~m(;bsc z5dO-c1yT)Qx%>jt>=jGw#{xiqO2`>?BdZ7ju$!2FeR!pTA8}t-5|oYP#9vP4!(T6TYmX-5*j3)YbALR}Rb~eYwnm?xbR%@&vJ%+;#|8h;*Cjn4m zpl!I1Ml#f}nU74mlN^xHa;U5K!rt#b*An$g%|ReoS;9<&f21pUqsr$^L{#@8m(I`V ze51KvEZz2*pQ`YO{vCc{Bh#OG1yN~+n@O&$Jhr2%e1&7IZX9}(9@{ibY-cR~=K5R1 z!V8%ua-t?#zDhW}^$z|nL;Tr3i+RC$$L$&q)Luvdz70=9a06adk^c4$p*O2D>2>b9 z2z4_OyIh%@^W1seT!}s5pzFP%=_J4OuQ^uEE{j_l^Dt+<$>MmD8=Z<>%y;^zY{lH$ zcGEVc`?--F(|9!g$}Uz3(P7MWl<)V@b!6XlWQwT(*+?L~y?hlr%-wl6q(G$&NynQQ;6=yd@8Q8=MSv7(A>96>XNqq%`=TXHl_Ko@@3vC!O5@BI6#q<^9JOzRGpffF0 z4d-Mx9fN5sHAr=Uz%6sy*v(~E{7=-BsmF|pDTvDHWgfzEFdn(Jat+KCV^4V`ye%n- zkPUVt$`mjCfyJ)G@22Quu~_FH-EOmWZ|T6cHsjqGBOM4>CtqbvpSWXA1B?MSD(N}! zd-V>_tKH*`2}8x#81YiWg|ddGMaEc21160ZR;QB+d+jM%tp%yX2VBqqDTid|MSd8c zjo~{X5&X-{g$&5PlYo`1XJ5E~RL*WVBg|L65#*^%H2eCRk%`EEbHuzE(U{(WH`M1P z@2XYU{dY7sooABEDyDGju#Z>M$2WMbVH#!F&c*}k5G`Zipa&8WwM@^PkYeeAUMwf|hbDHq*XY(4JEvQlZqOw6*cCrNgMt#j zNbwbaZ#czx-CCke765FyDko2QVF4@f`%0o5jEqw%WaRl0N+zQjsRqpj?pYjMQo{>Q zl>tupm5D6ZbiLuhO*-wRnx&x|kpnv>qzdXB1fJ)*5H)7Bns{A=U+{P-=;DPa4*wV;_Yzat9R`P4+&_P-qT2KX7 z6k3Q%j9N=%eRCBZ5k}-fQueu4x1^u8?XfnH{VX*#IhIH?hPJ5$Xn#BcW4CJF_Z)+*pYjmGw!*-;bOa_pjY5& ztLr@}S>&ZTNUJcGn!clCjA2ZSlsXAM?usWWzqD>HILMl$Z*JM)kcjYsNu3e^c}SbW zDxqf90a;j&2Y3jS{cXy+yDLu|ute(T{!~}YYHDlaM9u=xJ&aKwF-r0N zvKFHy*}2nT)cUkjM66X~OS+*hBr1kmF#9o4H2y-)Fe3+t60R`qS)e<{&Mbh%`Dn3z z>;feiGE!@&9LK|j2DEP|W!tFps!q%$kbJw<)*#sNcjn0FXDg4#q;{tvrni8TaCe7j z)&mb(O~<4E;RE0e^nf9*hinN2@2QSG5^Xc zOV~b}caUYy+f%a)R2j$7mRu8Pk4&LSrp}(8Z5`s~uiT&()YsaWVl`8}9^&s0r`K)l)RKV{tD`uVrt=IGW2 z`P~1PYR3({U#Z_E^i85$`mnxj`s<8|59hyo{KsluW}gQzD|&vfBUEWk0p|)5YC1r! zSe?dV=2S7LJbLO9bL~EqZSbXNZB(u`trHN0gJ-Ohz>xkJjRw#?Hb)v3*VoM_<4Pl7 zNPobpkJTsULjY=7p=J)qNsH-HVH_fm9r3Xg7eEz0p|~6(IX!VEFG+=k@hO<{WVRkz zCs!5NEkY6?*G(husBoHfGYRB$0(Z4D^4S~blEG#k^>~G~wI+2;7E;WnSvF~df>f8| zbp7$F7((w~kqLR&)z=dANbE3kC;U_I6Wu^ILJkh7LvVz_N;%AxZKGxpb~Nw0mrlwm=+L&hmZq^^a-0^Llr(maU+J{89*ZPx9SwBHt21B3*_v(|yY4YS?sjG`9Kn;QblL@78y?{-;AtKFa6ykIODf!Q91; z?M`H;`Cz+k>Aee+#1cCn&xee3gxt+mOCR<>_A7;war}*b=S9ncD_ti3KA@B3ZEu2B zv{Cx!kh{us?Ly$y*R3yQ3jUQV}7 zgA`DL8Q65c2Pagp6>ZEnjW|;EUxnG3P6lG1b-jvM9RL1DAx5b7W ziZ``R=_iY~9G0~BB1B!DbkMLq4)C6qkQa?lEd^>C@k-1q@Qxlq6!|x$&i>w-StH`Qd#iBXLcCsVN&sNv99)NuCfqiso}AF%T2B4U<-wj5?T+iN3Y z;4&&=GdU4i!j7*S+^z2ZR*WPTDOAbl@n@RA_Y7KWvX0C^pdx z@CNKeMWy-rs;rjT|BpUK-jk0jXnd%Lh~`X|<+ov{+|& zR&r)BGYz7?Y>CyFyB(8BxrE=K<)MRo@QYH-L}IR1f3u_S8BAvWki})DyARf*R|x(+ za*HpVAHnOeW`B>V`@F<+wSpmhg!v13 zC>2Ajnx?2Fg;@%+xs%#ItwwSM*O|70vR>WzG2|iag zdtTMaJI>FZ8T)~$GKqusW=uMXTI5w>W*P8BdL)xf7dPAF*=^9z#Xb>#J($ijyPO}# zlG}>~K5S96S}L2}7G?BdNQ}Ial;Phn;2!HEnMT!orw3_SMRuCT{}P&_?l2S0dS~n-4$Sq4tzGgZnx>I!6q^9vm zxxO6!yd(c+>b*h3h#J?JliQ8`B=tL2b|QIXiJ`nconBTU;8qh$wh4NUj5B4wWvGFN zScb{(VbY;fM!T{0ekzB@u5V{l#_;uoSmEuuqcEE;oY|+>&x67IjsepF{SlyUbZcy1 zG&OjPfXwa`##}JW48Dkl-tSKUy1}T|{SgnG)AP>od@nn;haC70#I-g>DCb}|mV(dW z$Wv$NwA;Qpc$W1Sc!A{?{&-v6|Fq+J|M8WyD&L!oJnGd3$~aLXw$dsM%|v zcjVCf`tvUnFAR*g$@)dgNHFmAv7`y7j!xCBffgl3I_n0G{xw~1Ax0b0GH!fG-x=L9 z%{#4oel}tbyXipflLO#5T;Is-G(L-0V@EoY0^*J?v%X58c8TtOb&n!)&e4du!-ZZQe z2OOvm`@4(qR3{v_)B<=G5rCP3&f4!Y8)rceKQq76}N1AS9=zc_8!3cra}< zgl*)ulj61c+ermXT#c=-`QzfW7e8q2^oU3zq-lm%jz8RH0|pj-Qobj;)^$zjI5&>1 zu_2z8@saaZXi?N_)7YJE0*OonR8|=6>%8$kJy!UI)nQwF+DHjN7Ysfx{iV4d%q)-f zZ7#%#z^>all}kQxbB8Q0hh0ANTb|x9gYoApiSDGa_f4R-UM$QfS@?UtK@6ZA1bSW zO=VP#(qNYG($YTTclEOXGPe;^hy^z$V!kLj_(_V?i)ikYR8eMq3mW@8!^>5Y-K%)}>i(GBVg z&mTBm7eo>BD)-5kAl%j^d!=X*xoRTBWueC{b(7LXwFsEf``J5#Z1#Z5IRxONK zJW`N5m8%*|nXSe(W-r(ZTI2UdR7d?#@#3gt^Y|eezg!9KNt0;rAkq^eASo>~i0U-S6l zFoET-X&z}rw<6~|6-BFIo%l*{hnIl^y=5}xXmW19<6eC?+s6XOUp`!_UCc~hL*nOo z;cyh~98RrWk@p#~Tcnw}&!Jg$%T|c!6J2DK{yHe$!H@?E@`k#VLZ+pG8yPlzqr_`O zWFRiOUiSXCyY$?~6bf3!bQb5oH*YJ2={Lzjb-6}2?qd{CLT7-vJ-*+)YCHx{OrU8n z?{{1kyTU-S1z>q1`|0kUE0c@C(UkDu0An2Fyrk6h7$tm@Zr z?KHpxiWOba7uVEo4{FF{wJmmh(`vgM1#G7x3_vUbWT7K^s7a05vSd(TbSgXE$n7;9?TAH~8`Dp1-15ua& z;ZH;=#|M&Qq9Q#CAHAXZ;~eG0gsiHe5&VG?);?}}uQK&}vaxQG7pIwFwOB7wS=sl+ z^DwE|WM=*zAr>2HGk4bDQ3bl}XmyeSlnRlaK!IuC^|-H8SlVDznf5M3>>v>V;73FZ zM*}IbTeR)Oj4cfe`M}q`mCWo-G~%7CJ8%?Pstu1-yGNSyMC2N6x2H-!!jzn0@y$No z3r$ZL5Ss2O8sz!^1nC_X;$7D7?HA@)6+R)wnsr%YxnIS`@{Gsp!e#NWkuLVortqdP z_Ze{arrphJt?pc{mCuv0VY{2h#>l`78GK1N*Af;l%9pKavcT2%vVH$IiIK-|Wy4;l zXyB>HyQ^Y+&O$y8HrEL&H1mt5`n+Fas!z{N{kWQjO!r}* zZo!0K|F5xSH#g?T%<>R=n*TS^Gn5W6)&+EAAH`5FPlqQL^W|uX0xiBTmW}^Q&=MF~ zHhyN$3&ry&x8{YEF;mX{7NjYe2&K z9v+&323|*V=@CnnU&n{U*hHM?hEd$pqm{7FkClv9T66RB7MQgG+ zOX=v>kABk46r^u)fo@#81mE_7Zm578;?{(Nja}2p#v2?qcIuJoV6}9GQ^^+@gMLrn z>Cb+>WlPZ~xmC@R3sgb~A+|9eW_3654oQ)9NMiV8(PF;~IKKpBD9CBXRse$oxZinv0~y@a)GQO&(fuI0j<46Ttp_p>~B921uBRw zXT|UFfo8FVuDNmvewD7YY>v_cn8*%z;h(RYZp21#M=ImxNT}Ew#Dchtm3)R62Id|e z;0j7OC@NvS*BG>fdC-!Zi7aF1xv{dE=_|pJrXY?0`x%cT%tz)BQbP_Qk1Il^eJ5;hD&Gb*+>l?id3uLzaeSR0{HoXmB=TihV@ui{!>#ZGV-T(o1H zVp~gi70($fce5iaa}vM=O_0?r#UckgU<40p^f)oQtwSu* z^o0Tthq%_^`TxP)58QLl1K?!uzvpY;8Hn+1!AQ;R2tZs?lErh0tyOl1kJQCpU^wh*3j7YBiniEXV*f4lyf44qC7 zKD6LR$DiDN?8?gfNxFH)Y5FGlA59IXN$q~|ESW%d#6P4*7tno2=wUjixR2a1kIX)~ z`u)45t;O_Yw%$P!XZyA=Y{BMP!B(NAx^=jT*1&KRtwC#|wae|{X6pK(Rz%B#23tup zSkK|6Ta_o6<;>C2^nZXBfI)+4IRVyjI9lYB%rfR^i88A=EG^;TXelnB#Xk})%nA-B zM?|dr?3Q6EI$>Ep$)ZWLcKQ9+Q#I@+AE0vhO`fAYx5-V9(q!#$w>sRsvW*Pc%!7G} z7b4|h*IOU7fki%R3-;V5xB!<8nzl9U3D!Yt4cvOHfm>6wHw`;-i~g{1>~<=Hz5}DT z(#vGjeXkXqfq)40YXz7(<8bB97s*I|_E56?H9t`!KQVwPPjy-6<@jAXM|Rlno~qID zFod9A*M?Dcn)O)n7YrM;JX$s5m-SerG|aaQ#JzF)!n*f7fw zR#-b2j&apmU12x!&LA6W2*Q3ROq<5A8_2Ce%+K-*F@U5-WzwvNw_~GNk41SCZ>T83 z(*UtE)rStO3STg4c`tQJABP#zs!$lq@9fOTdeV?TN|NWuocOL_TL;3va|2aN0z$Z`2 z6yXeH^gqZjZlIAEJ_4I*1ct>o*}ls0`!?`fCe#Y63;C@Y#Ba?Ye(M;&<@hMQ^LO60eQk6!%Y z5Bt|x!_7I~&jRmtLPB_@koOx0@jj-2cWlmy@JAKNuChpttv(aw&oSt{nF%J22j#^H zyj92HY20hxG$5r4*#DVI{?35J#)8D^LVO^o0;CnuqN8p^X;l)P52}sPF$p1H1D2^t z{5M_t=gDj+jvZNgslizG-jSrZV#9o%0?)}&w&Zw>oeNVZj1gWelw@>}Bx?&LS)MRP zr!o=l{YHWC5=?j%AiQt|4q%qL*}3+yyyUuWDvH7DH^A#RB+Q%Kg$j4Gb-s*I)nweD zr!^NF`-%C?QDZ<{H|1nl`?tz42Zi&Z%cY&J6JhA?2b!B7sOOR+_uhl3c&GrC_>!qp zmo!__lWM`KE@{rmP@Qez*)hWJzMSQOjhMNS*EPo^GSybbI8kVgsvthPot;MHj)k}1zHlT{-neVks$K2GmMaRdeXdQFX95PhQMg%nUSJ;= z0Kkh)O;jhDXbn#arE82yW~6wji?t14ql-}wdO4QKvkK%1L1!(OAfB;WpG^B}Sx36h zUT-Eb?#x^GTHSPFmbexSNK^swzCba4fzm zuGS7HqNWlBPvV*N(Q!*!W{inoztM)$7VPrpkavSa40N4(H^5H=#m1`;GM^!eFI+P6u?t0H zNJXM<{=hK|za!&1J9nIpJ=T7>d3^luSTW)RX(E3tIFeyU$z*J_$<-m+BcK!PoCEOl zc+NqI@X!~XbWl3NNe5-tNe6hSRZ%$dpE~ORvCD|(9ZbMf)-Y!th|eN&$??-?@$-ZK zEI)e~KgA`SA<$rcLe$^N5~7n4S^5YwUc<0N-m>b}oTs;er!aVy6+?L{L!OEUc&f*87*zBPt${0WZ)#9r$vJkoy=seEJoG^7Fbs1inVp-cSu1RsOhn8f9VS0CADtCC6 zA0OmvC2Izy5*|6(S>xcstkLG&SiL`ijU24;Gk^{8_!$g#JftXTbwlA$i7@1&7#2uJ zv#Z%>B+Oyo#l43P(U;g0X)JHTN8KAGpOgDo?kR?6{IL9ZWlq|qO8(GxYmOOJ$H~tT zF~e33r#e@|iIf-Aa4PYfBtOe1I)&oc;0n$-=1x))=1hectKf_wJ})ca_;Fg&8wcTj z+A^c%c>B_Spf7#eH0`^`JKEO0zlw~CB{n|bDc|_&ePZ+ixhryrUYg$f=mq++=QN2l zXGsIyxkzlaWt+sKKNg^s9fnAO7rt{e zz6~@+awm5TLu1JZG?osMV+Q2NV>Ks+pr22w)%jXT?UNkf4@0li&uuL4E8sLAV|}63 zc+%VOb38zFG?fW)i&CCs$z;w&S3ts+sABgJe!8lhE}I4O6J`~lJj^Z^2foB{D??#> zAz$f1NPU>qm{MpwM1GctngAme816KYU;^7hzszYO=z6a|QN#s0G4xas#b(v}*x6A^ zFWk9Im}gmzVi2mGMTYFyD6Bp6xmNahTw*ZEKK23oQ(dke224vpWLCe!%g8PdXR?c(IpYDKl_&aReJ8!SrWB+PnZl@{D)}z-l0;&CZ@_%Ccu@Wl>1xX z88hT&xjp2i!p(guLWQ)=jl)SsiO!C={bI=vbt>1dg25sJR0;?Pu3L`CAa{bZ1cG3T zu>RXH&K z=(Mx%I9A9ywj3DK2s%VJtkg)nR?IMp3^eItW5WcZ$EqJ9za-=3eYrlttE1@~TS(dQ zJ$p`&&Ei6`*=iJ&w$OR>taK@dk!)k-nQT5{6y^`{6Tgg-RQ@ba{6v`;aN@2BA}4N{ z7ybq+BHjjAB0Zi<3%Z z=o!WMhdV?{POMpD{oP5W_RIdA+(u4zcJlK)WCvNGY!mEgrP&0aT@@VoCk~!Ga`O*Q zz$95(LXgB;H7AmkRzcM2skM)^&1fRcOXV34H|#cQ+ooFQgn)Zqpls&XRjkif&0SY2 zxUPhKuEgGCeE{hg!arAQ>hwmq=+|l=kp&~VYU&iYIKS?-7P3IN4A&jS&%yo@R}Ei( z)$K;C-MXlVG7z6(GVo)cH%h^9rz}CR-pW8u7MMkIl7Z|=fmjgR$ZWapGm{;o2c?InWpDu+4o;7hr^j7L&j90K4bZ;hF|ht2 z!c8^SjT<76ebXE7SvswD<$$;g#EvvwYY{gyx%+X)39Jv53qO}{`r9cAe;JDMOEs`$ zpa;82yLdoaho1nSoA2qQ!et(AR>@uN4oXqA= zLxS~*D7k5DK1Ex2qD1a237mt6znjDUE}Hv0Jb+!!|7q@{G4XTb3I;!-=CXqAie z!<%Z7eSmW@=0$CB)^St8dJ9Zlvj*4v4XL_ujj@K*cyto%gB&#Qk7@u9M7KU-BU)V( zU-FVFzHoXnne!%@a$tSS){6%cB=BODL2e^thkx#2L1I9UO4q8hKvxA zZi)sG77=(6U5qXyD6+&$SiwxtDI>5ZHU`X~b zV9p__?;-8`gn6}$4C!~S;+EV+O7+2Wwvbo7@MH}UeH%Ha89nkG8Ck$3$zwnkx!%W= zco@+^Tw~9y8e+`|9>^w!<$!man3YzX_xB*He*k(3W&H)C<}9@bW%-D*Y2m&bWi`!x z7JYh=>Y?oa%)264$Ed#XM?bKx2{G37nRb-)W0*h+$8`#Aa!}pX8Mta2B?%!yO*kD0 z>DS1cRb}T$Xcq-}%J;f(ZshIuh#n{Jt-nB-;py-n9}QrsxUUB zf~-`03A2m|^&UBKF=-YsW4*U$PMW^QF<~=tlFXzN6P%@_Pok(t*dvbn%<8gg=d1>k ztoO_gqW&=wrcbRH*W2{ndcXZIfx+rmn}yAx5j9<{*es~OsKyK;e3-*gIA5x^W)_Xq zvbf29Vfsbi|A&8$I#xRqA5Hrb z(t(%GEZ~m-hpMuGZ;PC%gB|J>YKGr1hePBdR`gq}_%;yrZProyWUr1hhG(`;y}=~$ zY)=!UN4>yrmb2b@004N}V_;y=fx;Aq8H@!?Tuk$rm6%ccvN^#z+B+ab0;>^1D4I5aq7IEpx?aIE4~;C#R(#MQuch?|Mqj=O~W8V?_j z4o?Qp9G*kG47^snZM>)WEcp8PzVNH?C-ArNKN64-@DQjHSR-&q;D?}$poL(V;1MA? zp#-5l!ZN~n!Vg5$L=r@{h`bPG5=|3bA^J(oLu{Vd1@S!bLlSHfIucb9Ya|{?@<pwOUjOp!~` zK(Rt`iQ*e2E~Or2A?0l}XD|;l-(q29vBlz(Ws2oCD-Nq9t4r1b)+N?=Y}{<_*)rL> z;DAB43ATB*UAD_?FWLUH)37VB+hxyWuLFc0_E|vq%z+I6bVGrW000010002v05t#w z0000000IC300ICO000310XqNy004N}om0zB!cY)BrTAbWE91gdV~k27l_D!v8i`SZ z65l(M0u@ks1PaEj-{IP&3%^2t!jJF^Ja>8lix`P%ZhL0t%djw56C z(m~gi#xJCa$U;jlw33z zr-u%18B0aD39)RE!mKUkt5a8_#b(APrG#X-r_N_B7Eb8j;c3&$Lz$Xg@)}a*5q;}o zx3G#stq<63+WcR%DrQC3(;n&OXD?Ys9~UJ%xS!NmyET&MLTnvoQe5S0(^L76^G=R< zkIzt(-qj3z(Uobf3;&k7Cax!%mOTOIZ^jwt71T4F(5ckmbDpXuZ&0y{RHEFFe$-UE z#AWHtlF57Gy^lP<1@5OOcQ%Zi4@FQrGkU)c`%=gHR#`aj@cw#w3tbfX_Cg!zO5SZ8 z3l8S4{t};6WwF7h!ZdDP>B@aM z*p#=!*csZhlrw|v%zOb=8oNXQ004N}ZO}(dlW`cw@$Unrg|hc@@9q1(?OVWIM%@$l z1f;Z8ELg0H+qg9vjfppn>!OJZTrp7&YTPT1s0S}zM8$YeuZr~V&EMsd-;+Gg;US8S z{Pt19|MC$eN}`FzLJU@H#1e;{coIk?iDXhpC5?14$Rvwwa>yl*d^*vYE_9_E-RVJ3 zdeNIc^ravD8NfgWF_<9?MMKBHffExK1r$=mForXNk&I$AV{lVU38j?bVJzbq&jcni ziOEc1D$|(G49c0wEM_x@xy)le3s}e^7PEv3D#gMnwzGqq9N`l?Ilw-Sa)#3q!(QIA zjl*IU8~Y`e-Q4Db#Bq$X{Nx9}ILSF4aF6p;v6O>U^9V2ZdB`&!^Mt3gwtw#>&w0TG ze0=8+Z+OLP{CuH}JuD-@a#m1FkmJ;`l6pck5M~vtS;J@6vW`a9vyly4=LDPC#1^*l zm2ceOBA0l}JF!c=BuJtpNwTC!s-#J}WJsoDNj6P1bCqk{;WAga%Pz^`7A=x1d6IAS z)i&1qbz3+X&@`f?%SEGGVsVfboL+MnSN|&-gS*ZMX&mB=$cXi!f z6YzyY-s;K*e`I8MBAOmcSvXYJQA|(CAB>5UdH{IZ+rjw1bpvBBgZBoGfQXHZjD3+C z-Pp7v6gLP&dT$U30x}vRWjC;C$3!q}U{-M5z^v`EfmOkE6SEDIHkiW#}gEe8=2k8fLu->mjl7&0&+QX;9PDXm&*mt9c< hAeYAw&gBDgdBtGd$PFUe0DRIrk^le!Qz6lE007=+$KwD1 literal 0 HcmV?d00001 diff --git a/src/main/resources/static/fonts/varela_round-webfont.eot b/src/main/resources/static/fonts/varela_round-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..dfee0c26e7bf8cd2e2d0712a6835f3b910b637c6 GIT binary patch literal 28963 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 BmVN*L literal 0 HcmV?d00001 diff --git a/src/main/resources/static/fonts/varela_round-webfont.svg b/src/main/resources/static/fonts/varela_round-webfont.svg new file mode 100644 index 0000000..3280e2c --- /dev/null +++ b/src/main/resources/static/fonts/varela_round-webfont.svg @@ -0,0 +1,7875 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/fonts/varela_round-webfont.ttf b/src/main/resources/static/fonts/varela_round-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3ca0666937719a3b757dd792d770646fd8f8dba9 GIT binary patch literal 63044 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 }E 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

-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 X=z!lFFmN;$00000NkvXXu0mjfnUfZp literal 0 HcmV?d00001 diff --git a/src/main/resources/static/images/spring-logo-dataflow.png b/src/main/resources/static/images/spring-logo-dataflow.png new file mode 100644 index 0000000000000000000000000000000000000000..ff7cdbb40d78468b08701431128bb972c34a3587 GIT binary patch literal 6888 zcmVP)7~+DrJYJ+ULUM4R9UU^v&tNm=_)f-N=+3QRA^9XX(_qSP4D$>rhiUXIa%dMl|xl> zRnmFLPL-8xx3g6~Q~74}Z$2+eR+*qA(<-4U@c`GVT%mGs9OoCPyrJ@f%D1K|8l-}h zN<NWuB6()aBgf`sW0dvsEroX{oYT z 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 + + + + + + + + + + + + + PetClinic :: a Spring Framework demonstration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+
+
+
+
+ +
+ +
+
+ +
+ +
+
+ + + + + + + + + + + + diff --git a/src/main/resources/static/scripts/app.js b/src/main/resources/static/scripts/app.js new file mode 100644 index 0000000..66db62a --- /dev/null +++ b/src/main/resources/static/scripts/app.js @@ -0,0 +1,36 @@ +'use strict'; +/* App Module */ +var petClinicApp = angular.module('petClinicApp', [ + 'ui.router', 'infrastructure', 'layoutNav', 'layoutFooter', 'layoutWelcome', + 'ownerList', 'ownerDetails', 'ownerForm', 'petForm', 'visits', 'vetList']); + +petClinicApp.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', '$httpProvider', function( + $stateProvider, $urlRouterProvider, $locationProvider, $httpProvider) { + + // safari turns to be lazy sending the Cache-Control header + $httpProvider.defaults.headers.common["Cache-Control"] = 'no-cache'; + $httpProvider.interceptors.push('HttpErrorHandlingInterceptor'); + + $locationProvider.hashPrefix('!'); + + $urlRouterProvider.otherwise('/welcome'); + $stateProvider + .state('app', { + abstract: true, + url: '', + template: '' + }) + .state('welcome', { + parent: 'app', + url: '/welcome', + template: '' + }); +}]); + +['welcome', 'nav', 'footer'].forEach(function(c) { + var mod = 'layout' + c.toUpperCase().substring(0, 1) + c.substring(1); + angular.module(mod, []); + angular.module(mod).component(mod, { + templateUrl: "scripts/fragments/" + c + ".html" + }); +}); diff --git a/src/main/resources/static/scripts/fragments/footer.html b/src/main/resources/static/scripts/fragments/footer.html new file mode 100644 index 0000000..cc1e7c5 --- /dev/null +++ b/src/main/resources/static/scripts/fragments/footer.html @@ -0,0 +1,6 @@ +
+
+
Sponsored by Pivotal
+
+
\ No newline at end of file diff --git a/src/main/resources/static/scripts/fragments/nav.html b/src/main/resources/static/scripts/fragments/nav.html new file mode 100644 index 0000000..f1ed285 --- /dev/null +++ b/src/main/resources/static/scripts/fragments/nav.html @@ -0,0 +1,44 @@ +
+ + + diff --git a/src/main/resources/static/scripts/fragments/welcome.html b/src/main/resources/static/scripts/fragments/welcome.html new file mode 100644 index 0000000..df0b55e --- /dev/null +++ b/src/main/resources/static/scripts/fragments/welcome.html @@ -0,0 +1,7 @@ +

Welcome to Petclinic

+ +
+
+ pets logo +
+
\ No newline at end of file diff --git a/src/main/resources/static/scripts/genai/chat.js b/src/main/resources/static/scripts/genai/chat.js new file mode 100644 index 0000000..ec78916 --- /dev/null +++ b/src/main/resources/static/scripts/genai/chat.js @@ -0,0 +1,81 @@ +function appendMessage(message, type) { + const chatMessages = document.getElementById('chatbox-messages'); + const messageElement = document.createElement('div'); + messageElement.classList.add('chat-bubble', type); + + // Convert Markdown to HTML + const htmlContent = marked.parse(message); // Use marked.parse() for newer versions + messageElement.innerHTML = htmlContent; + + chatMessages.appendChild(messageElement); + + // Scroll to the bottom of the chatbox to show the latest message + chatMessages.scrollTop = chatMessages.scrollHeight; +} + +function toggleChatbox() { + const chatbox = document.getElementById('chatbox'); + const chatboxContent = document.getElementById('chatbox-content'); + + if (chatbox.classList.contains('minimized')) { + chatbox.classList.remove('minimized'); + chatboxContent.style.height = '400px'; // Set to initial height when expanded + } else { + chatbox.classList.add('minimized'); + chatboxContent.style.height = '40px'; // Set to minimized height + } +} + +function sendMessage() { + const query = document.getElementById('chatbox-input').value; + + // Only send if there's a message + if (!query.trim()) return; + + // Clear the input field after sending the message + document.getElementById('chatbox-input').value = ''; + + // Display user message in the chatbox + appendMessage(query, 'user'); + + // Send the message to the backend + fetch('/api/genai/chatclient', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(query), + }) + .then(response => response.text()) + .then(responseText => { + // Display the response from the server in the chatbox + appendMessage(responseText, 'bot'); + }) + .catch(error => { + console.error('Error:', error); + // Display the fallback message in the chatbox + appendMessage('Chat is currently unavailable', 'bot'); + }); +} + +function handleKeyPress(event) { + if (event.key === "Enter") { + event.preventDefault(); // Prevents adding a newline + sendMessage(); // Send the message when Enter is pressed + } +} + +// Save chat messages to localStorage +function saveChatMessages() { + const messages = document.getElementById('chatbox-messages').innerHTML; + localStorage.setItem('chatMessages', messages); +} + +// Load chat messages from localStorage +function loadChatMessages() { + const messages = localStorage.getItem('chatMessages'); + if (messages) { + document.getElementById('chatbox-messages').innerHTML = messages; + document.getElementById('chatbox-messages').scrollTop = document.getElementById('chatbox-messages').scrollHeight; + } +} diff --git a/src/main/resources/static/scripts/infrastructure/httpErrorHandlingInterceptor.js b/src/main/resources/static/scripts/infrastructure/httpErrorHandlingInterceptor.js new file mode 100644 index 0000000..f65ab68 --- /dev/null +++ b/src/main/resources/static/scripts/infrastructure/httpErrorHandlingInterceptor.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * Global HTTP errors handler. + */ +angular.module('infrastructure') + .factory('HttpErrorHandlingInterceptor', function () { + return { + responseError: function (response) { + var error = response.data; + alert(error.error + "\r\n" + error.errors.map(function (e) { + return e.field + ": " + e.defaultMessage; + }).join("\r\n")); + return response; + } + } + }); diff --git a/src/main/resources/static/scripts/infrastructure/infrastructure.js b/src/main/resources/static/scripts/infrastructure/infrastructure.js new file mode 100644 index 0000000..58dd767 --- /dev/null +++ b/src/main/resources/static/scripts/infrastructure/infrastructure.js @@ -0,0 +1,3 @@ +'use strict'; + +angular.module('infrastructure', []); diff --git a/src/main/resources/static/scripts/owner-details/owner-details.component.js b/src/main/resources/static/scripts/owner-details/owner-details.component.js new file mode 100644 index 0000000..98a43fc --- /dev/null +++ b/src/main/resources/static/scripts/owner-details/owner-details.component.js @@ -0,0 +1,7 @@ +'use strict'; + +angular.module('ownerDetails') + .component('ownerDetails', { + templateUrl: 'scripts/owner-details/owner-details.template.html', + controller: 'OwnerDetailsController' + }); diff --git a/src/main/resources/static/scripts/owner-details/owner-details.controller.js b/src/main/resources/static/scripts/owner-details/owner-details.controller.js new file mode 100644 index 0000000..d164378 --- /dev/null +++ b/src/main/resources/static/scripts/owner-details/owner-details.controller.js @@ -0,0 +1,10 @@ +'use strict'; + +angular.module('ownerDetails') + .controller('OwnerDetailsController', ['$http', '$stateParams', function ($http, $stateParams) { + var self = this; + + $http.get('api/gateway/owners/' + $stateParams.ownerId).then(function (resp) { + self.owner = resp.data; + }); + }]); diff --git a/src/main/resources/static/scripts/owner-details/owner-details.js b/src/main/resources/static/scripts/owner-details/owner-details.js new file mode 100644 index 0000000..670f24b --- /dev/null +++ b/src/main/resources/static/scripts/owner-details/owner-details.js @@ -0,0 +1,11 @@ +'use strict'; + +angular.module('ownerDetails', ['ui.router']) + .config(['$stateProvider', function ($stateProvider) { + $stateProvider + .state('ownerDetails', { + parent: 'app', + url: '/owners/details/:ownerId', + template: '' + }) + }]); \ No newline at end of file diff --git a/src/main/resources/static/scripts/owner-details/owner-details.template.html b/src/main/resources/static/scripts/owner-details/owner-details.template.html new file mode 100644 index 0000000..126848d --- /dev/null +++ b/src/main/resources/static/scripts/owner-details/owner-details.template.html @@ -0,0 +1,70 @@ +

Owner Information

+ + + + + + + + + + + + + + + + + + + + + + +
Name{{$ctrl.owner.firstName}} {{$ctrl.owner.lastName}}
Address{{$ctrl.owner.address}}
City{{$ctrl.owner.city}}
Telephone{{$ctrl.owner.telephone}}
+ Edit Owner + + Add New Pet +
+ +

Pets and Visits

+ + + + + + +
+
+
Name
+
{{pet.name}}
+
Birth Date
+
{{pet.birthDate | date:'yyyy MMM dd'}}
+
Type
+
{{pet.type.name}}
+
+
+ + + + + + + + + + + + + + + +
Visit DateDescription
{{visit.date | date:'yyyy MMM dd'}}{{visit.description}}
+ Edit Pet + + Add Visit +
+
+ + + diff --git a/src/main/resources/static/scripts/owner-form/owner-form.component.js b/src/main/resources/static/scripts/owner-form/owner-form.component.js new file mode 100644 index 0000000..e8dec69 --- /dev/null +++ b/src/main/resources/static/scripts/owner-form/owner-form.component.js @@ -0,0 +1,7 @@ +'use strict'; + +angular.module('ownerForm') + .component('ownerForm', { + templateUrl: 'scripts/owner-form/owner-form.template.html', + controller: 'OwnerFormController' + }); diff --git a/src/main/resources/static/scripts/owner-form/owner-form.controller.js b/src/main/resources/static/scripts/owner-form/owner-form.controller.js new file mode 100644 index 0000000..d25f7a5 --- /dev/null +++ b/src/main/resources/static/scripts/owner-form/owner-form.controller.js @@ -0,0 +1,30 @@ +'use strict'; + +angular.module('ownerForm') + .controller('OwnerFormController', ["$http", '$state', '$stateParams', function ($http, $state, $stateParams) { + var self = this; + + var ownerId = $stateParams.ownerId || 0; + + if (!ownerId) { + self.owner = {}; + } else { + $http.get("api/customer/owners/" + ownerId).then(function (resp) { + self.owner = resp.data; + }); + } + + self.submitOwnerForm = function () { + var id = self.owner.id; + + if (id) { + $http.put('api/customer/owners/' + id, self.owner).then(function () { + $state.go('ownerDetails', {ownerId: ownerId}); + }); + } else { + $http.post('api/customer/owners', self.owner).then(function () { + $state.go('owners'); + }); + } + }; + }]); diff --git a/src/main/resources/static/scripts/owner-form/owner-form.js b/src/main/resources/static/scripts/owner-form/owner-form.js new file mode 100644 index 0000000..1bb6159 --- /dev/null +++ b/src/main/resources/static/scripts/owner-form/owner-form.js @@ -0,0 +1,16 @@ +'use strict'; + +angular.module('ownerForm', ['ui.router']) + .config(['$stateProvider', function ($stateProvider) { + $stateProvider + .state('ownerNew', { + parent: 'app', + url: '/owners/new', + template: '' + }) + .state('ownerEdit', { + parent: 'app', + url: '/owners/:ownerId/edit', + template: '' + }) + }]); diff --git a/src/main/resources/static/scripts/owner-form/owner-form.template.html b/src/main/resources/static/scripts/owner-form/owner-form.template.html new file mode 100644 index 0000000..af76090 --- /dev/null +++ b/src/main/resources/static/scripts/owner-form/owner-form.template.html @@ -0,0 +1,39 @@ +

Owner

+
+
+ + + First name is required. +
+ +
+ + + Last name is required. +
+ + +
+ + + Address is required. +
+ +
+ + + City is required. +
+ +
+ + + Telephone is required. +
+ +
+ +
+
+ diff --git a/src/main/resources/static/scripts/owner-list/owner-list.component.js b/src/main/resources/static/scripts/owner-list/owner-list.component.js new file mode 100644 index 0000000..55b6b25 --- /dev/null +++ b/src/main/resources/static/scripts/owner-list/owner-list.component.js @@ -0,0 +1,7 @@ +'use strict'; + +angular.module('ownerList') + .component('ownerList', { + templateUrl: 'scripts/owner-list/owner-list.template.html', + controller: 'OwnerListController' + }); diff --git a/src/main/resources/static/scripts/owner-list/owner-list.controller.js b/src/main/resources/static/scripts/owner-list/owner-list.controller.js new file mode 100644 index 0000000..8229f43 --- /dev/null +++ b/src/main/resources/static/scripts/owner-list/owner-list.controller.js @@ -0,0 +1,10 @@ +'use strict'; + +angular.module('ownerList') + .controller('OwnerListController', ['$http', function ($http) { + var self = this; + + $http.get('api/customer/owners').then(function (resp) { + self.owners = resp.data; + }); + }]); diff --git a/src/main/resources/static/scripts/owner-list/owner-list.js b/src/main/resources/static/scripts/owner-list/owner-list.js new file mode 100644 index 0000000..4714a2f --- /dev/null +++ b/src/main/resources/static/scripts/owner-list/owner-list.js @@ -0,0 +1,11 @@ +'use strict'; + +angular.module('ownerList', ['ui.router']) + .config(['$stateProvider', function ($stateProvider) { + $stateProvider + .state('owners', { + parent: 'app', + url: '/owners', + template: '' + }) + }]); \ No newline at end of file diff --git a/src/main/resources/static/scripts/owner-list/owner-list.template.html b/src/main/resources/static/scripts/owner-list/owner-list.template.html new file mode 100644 index 0000000..fc78463 --- /dev/null +++ b/src/main/resources/static/scripts/owner-list/owner-list.template.html @@ -0,0 +1,31 @@ +

Owners

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + +
NameCityTelephone
+ + {{owner.firstName}} {{owner.lastName}} + + {{owner.city}}{{owner.telephone}}
diff --git a/src/main/resources/static/scripts/pet-form/pet-form.component.js b/src/main/resources/static/scripts/pet-form/pet-form.component.js new file mode 100644 index 0000000..6f5e13b --- /dev/null +++ b/src/main/resources/static/scripts/pet-form/pet-form.component.js @@ -0,0 +1,7 @@ +'use strict'; + +angular.module('petForm') + .component('petForm', { + templateUrl: 'scripts/pet-form/pet-form.template.html', + controller: 'PetFormController' + }); diff --git a/src/main/resources/static/scripts/pet-form/pet-form.controller.js b/src/main/resources/static/scripts/pet-form/pet-form.controller.js new file mode 100644 index 0000000..93bbb6c --- /dev/null +++ b/src/main/resources/static/scripts/pet-form/pet-form.controller.js @@ -0,0 +1,52 @@ +'use strict'; + +angular.module('petForm') + .controller('PetFormController', ['$http', '$state', '$stateParams', function ($http, $state, $stateParams) { + var self = this; + var ownerId = $stateParams.ownerId || 0; + + $http.get('api/customer/petTypes').then(function (resp) { + self.types = resp.data; + }).then(function () { + + var petId = $stateParams.petId || 0; + + if (petId) { // edit + $http.get("api/customer/owners/" + ownerId + "/pets/" + petId).then(function (resp) { + self.pet = resp.data; + self.pet.birthDate = new Date(self.pet.birthDate); + self.petTypeId = "" + self.pet.type.id; + }); + } else { + $http.get('api/customer/owners/' + ownerId).then(function (resp) { + self.pet = { + owner: resp.data.firstName + " " + resp.data.lastName + }; + self.petTypeId = "1"; + }) + + } + }); + + self.submit = function () { + var id = self.pet.id || 0; + + var data = { + id: id, + name: self.pet.name, + birthDate: self.pet.birthDate, + typeId: self.petTypeId + }; + + var req; + if (id) { + req = $http.put("api/customer/owners/" + ownerId + "/pets/" + id, data); + } else { + req = $http.post("api/customer/owners/" + ownerId + "/pets", data); + } + + req.then(function () { + $state.go('ownerDetails', {ownerId: ownerId}); + }); + }; + }]); diff --git a/src/main/resources/static/scripts/pet-form/pet-form.js b/src/main/resources/static/scripts/pet-form/pet-form.js new file mode 100644 index 0000000..70292ad --- /dev/null +++ b/src/main/resources/static/scripts/pet-form/pet-form.js @@ -0,0 +1,16 @@ +'use strict'; + +angular.module('petForm', ['ui.router']) + .config(['$stateProvider', function ($stateProvider) { + $stateProvider + .state('petNew', { + parent: 'app', + url: '/owners/:ownerId/new-pet', + template: '' + }) + .state('petEdit', { + parent: 'app', + url: '/owners/:ownerId/pets/:petId', + template: '' + }) + }]); diff --git a/src/main/resources/static/scripts/pet-form/pet-form.template.html b/src/main/resources/static/scripts/pet-form/pet-form.template.html new file mode 100644 index 0000000..56b6155 --- /dev/null +++ b/src/main/resources/static/scripts/pet-form/pet-form.template.html @@ -0,0 +1,43 @@ +

Pet

+ +
+
+ +
+

{{$ctrl.pet.owner}}

+
+
+ +
+ +
+ + Name is required. +
+
+ +
+ +
+ + birth date is required. +
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+
diff --git a/src/main/resources/static/scripts/vet-list/vet-list.component.js b/src/main/resources/static/scripts/vet-list/vet-list.component.js new file mode 100644 index 0000000..6d8e950 --- /dev/null +++ b/src/main/resources/static/scripts/vet-list/vet-list.component.js @@ -0,0 +1,7 @@ +'use strict'; + +angular.module('vetList') + .component('vetList', { + templateUrl: 'scripts/vet-list/vet-list.template.html', + controller: 'VetListController' + }); diff --git a/src/main/resources/static/scripts/vet-list/vet-list.controller.js b/src/main/resources/static/scripts/vet-list/vet-list.controller.js new file mode 100644 index 0000000..4adc7fc --- /dev/null +++ b/src/main/resources/static/scripts/vet-list/vet-list.controller.js @@ -0,0 +1,10 @@ +'use strict'; + +angular.module('vetList') + .controller('VetListController', ['$http', function ($http) { + var self = this; + + $http.get('api/vet/vets').then(function (resp) { + self.vetList = resp.data; + }); + }]); diff --git a/src/main/resources/static/scripts/vet-list/vet-list.js b/src/main/resources/static/scripts/vet-list/vet-list.js new file mode 100644 index 0000000..bcecacc --- /dev/null +++ b/src/main/resources/static/scripts/vet-list/vet-list.js @@ -0,0 +1,11 @@ +'use strict'; + +angular.module('vetList', ['ui.router']) + .config(['$stateProvider', function ($stateProvider) { + $stateProvider + .state('vets', { + parent: 'app', + url: '/vets', + template: '' + }) + }]); \ No newline at end of file diff --git a/src/main/resources/static/scripts/vet-list/vet-list.template.html b/src/main/resources/static/scripts/vet-list/vet-list.template.html new file mode 100644 index 0000000..e705f05 --- /dev/null +++ b/src/main/resources/static/scripts/vet-list/vet-list.template.html @@ -0,0 +1,15 @@ +

Veterinarians

+ + + + + + + + + + + + + +
NameSpecialties
{{vet.firstName}} {{vet.lastName}}{{specialty.name + ' '}}
diff --git a/src/main/resources/static/scripts/visits/visits.component.js b/src/main/resources/static/scripts/visits/visits.component.js new file mode 100644 index 0000000..0bfbcad --- /dev/null +++ b/src/main/resources/static/scripts/visits/visits.component.js @@ -0,0 +1,7 @@ +'use strict'; + +angular.module('visits') + .component('visits', { + templateUrl: 'scripts/visits/visits.template.html', + controller: 'VisitsController' + }); diff --git a/src/main/resources/static/scripts/visits/visits.controller.js b/src/main/resources/static/scripts/visits/visits.controller.js new file mode 100644 index 0000000..d68798b --- /dev/null +++ b/src/main/resources/static/scripts/visits/visits.controller.js @@ -0,0 +1,25 @@ +'use strict'; + +angular.module('visits') + .controller('VisitsController', ['$http', '$state', '$stateParams', '$filter', function ($http, $state, $stateParams, $filter) { + var self = this; + var petId = $stateParams.petId || 0; + var url = "api/visit/owners/" + ($stateParams.ownerId || 0) + "/pets/" + petId + "/visits"; + self.date = new Date(); + self.desc = ""; + + $http.get(url).then(function (resp) { + self.visits = resp.data; + }); + + self.submit = function () { + var data = { + date: $filter('date')(self.date, "yyyy-MM-dd"), + description: self.desc + }; + + $http.post(url, data).then(function () { + $state.go('ownerDetails', { ownerId: $stateParams.ownerId }); + }); + }; + }]); diff --git a/src/main/resources/static/scripts/visits/visits.js b/src/main/resources/static/scripts/visits/visits.js new file mode 100644 index 0000000..10821ac --- /dev/null +++ b/src/main/resources/static/scripts/visits/visits.js @@ -0,0 +1,11 @@ +'use strict'; + +angular.module('visits', ['ui.router']) + .config(['$stateProvider', function ($stateProvider) { + $stateProvider + .state('visits', { + parent: 'app', + url: '/owners/:ownerId/pets/:petId/visits', + template: '' + }) + }]); diff --git a/src/main/resources/static/scripts/visits/visits.template.html b/src/main/resources/static/scripts/visits/visits.template.html new file mode 100644 index 0000000..30f136a --- /dev/null +++ b/src/main/resources/static/scripts/visits/visits.template.html @@ -0,0 +1,27 @@ +

Visits

+ +
+ +
+ + +
+ +
+ + +
+ +
+ +
+ +
+ +

Previous Visits

+ + + + + +
{{v.date}}{{v.description}}
diff --git a/src/main/resources/static/scss/header.scss b/src/main/resources/static/scss/header.scss new file mode 100644 index 0000000..7cb1a78 --- /dev/null +++ b/src/main/resources/static/scss/header.scss @@ -0,0 +1,73 @@ +.navbar { + border-top: 4px solid #6db33f; + background-color: #34302d; + margin-bottom: 0px; + border-bottom: 0; + border-left: 0; + border-right: 0; +} + +.navbar a.navbar-brand { + background: url("../images/spring-logo-dataflow.png") -1px -1px no-repeat; + margin: 12px 0 6px; + width: 229px; + height: 46px; + display: inline-block; + text-decoration: none; + padding: 0; +} + +.navbar a.navbar-brand span { + display: block; + width: 229px; + height: 46px; + background: url("../images/spring-logo-dataflow.png") -1px -48px no-repeat; + opacity: 0; + -moz-transition: opacity 0.12s ease-in-out; + -webkit-transition: opacity 0.12s ease-in-out; + -o-transition: opacity 0.12s ease-in-out; +} + +.navbar a:hover.navbar-brand span { + opacity: 1; +} + +.navbar li > a, .navbar-text { + font-family: "montserratregular", sans-serif; + text-shadow: none; + font-size: 14px; + +/* line-height: 14px; */ + padding: 28px 20px; + transition: all 0.15s; + -webkit-transition: all 0.15s; + -moz-transition: all 0.15s; + -o-transition: all 0.15s; + -ms-transition: all 0.15s; +} + +.navbar li > a { + text-transform: uppercase; +} + +.navbar .navbar-text { + margin-top: 0; + margin-bottom: 0; +} +.navbar li:hover > a { + color: #eeeeee; + background-color: #6db33f; +} + +.navbar-toggle { + border-width: 0; + + .icon-bar + .icon-bar { + margin-top: 3px; + } + .icon-bar { + width: 19px; + height: 3px; + } + +} diff --git a/src/main/resources/static/scss/petclinic.scss b/src/main/resources/static/scss/petclinic.scss new file mode 100644 index 0000000..9136fbd --- /dev/null +++ b/src/main/resources/static/scss/petclinic.scss @@ -0,0 +1,339 @@ +/* + * Copyright 2016 the original author or authors. + * + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + @import "bootstrap"; + +$icon-font-path: "../../webjars/bootstrap/fonts/"; + +$spring-green: #6db33f; +$spring-dark-green: #5fa134; +$spring-brown: #34302D; +$spring-grey: #838789; +$spring-light-grey: #f1f1f1; + +$chatbox-bg-color: #f1f1f1; +$chatbox-header-bg-color: #075E54; +$chatbox-header-text-color: white; +$chatbox-height: 400px; +$chatbox-border-radius: 10px; +$chatbox-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); +$chatbox-bubble-user-bg-color: #dcf8c6; +$chatbox-bubble-bot-bg-color: #ffffff; +$chatbox-bubble-border-color: #e1e1e1; +$chatbox-footer-bg-color: #f9f9f9; +$chatbox-input-border-color: #ccc; +$chatbox-button-bg-color: #075E54; +$chatbox-button-hover-bg-color: #128C7E; + +$body-bg: $spring-light-grey; +$text-color: $spring-brown; +$link-color: $spring-dark-green; +$link-hover-color: $spring-dark-green; + +$navbar-default-link-color: $spring-light-grey; +$navbar-default-link-active-color: $spring-light-grey; +$navbar-default-link-hover-color: $spring-light-grey; +$navbar-default-link-hover-bg: $spring-green; +$navbar-default-toggle-icon-bar-bg: $spring-light-grey; +$navbar-default-toggle-hover-bg: transparent; +$navbar-default-link-active-bg: $spring-green; + +$border-radius-base: 0; +$border-radius-large: 0; +$border-radius-small: 0; + +$nav-tabs-active-link-hover-color: $spring-light-grey; +$nav-tabs-active-link-hover-bg: $spring-brown; +$nav-tabs-active-link-hover-border-color: $spring-brown; +$nav-tabs-border-color: $spring-brown; + +$pagination-active-bg: $spring-brown; +$pagination-active-border: $spring-green; +$table-border-color: $spring-brown; + +.table > thead > tr > th { + background-color: lighten($spring-brown, 3%); + color: $spring-light-grey; +} + +.table-filter { + background-color: $spring-brown; + padding: 9px 12px; +} + +.nav > li > a { + color: $spring-grey; +} + +.btn-primary { + margin-top: 12px; + border-width: 2px; + transition: border 0.15s; + color: $spring-light-grey; + background: $spring-brown; + border-color: $spring-green; + -webkit-transition: border 0.15s; + -moz-transition: border 0.15s; + -o-transition: border 0.15s; + -ms-transition: border 0.15s; + + &:hover, + &:focus, + &:active, + &.active, + .open .dropdown-toggle { + background-color: $spring-brown; + border-color: $spring-brown; + } +} + + +.container .text-muted { + margin: 20px 0; +} + +code { + font-size: 80%; +} + +.xd-container { + margin-top: 40px; + margin-bottom: 100px; + padding-left: 5px; + padding-right: 5px; +} + +h1 { + margin-bottom: 15px +} + +.index-page--subtitle { + font-size: 16px; + line-height: 24px; + margin: 0 0 30px; +} + +.form-horizontal button.btn-inverse { + margin-left: 32px; +} + +#job-params-modal .modal-dialog { + width: 90%; + margin-left:auto; + margin-right:auto; +} + +[ng-cloak].splash { + display: block !important; +} +[ng-cloak] { + display: none; +} + +.splash { + background: $spring-green; + color: $spring-brown; + display: none; +} + +.error-page { + margin-top: 100px; + text-align: center; +} + +.error-page .error-title { + font-size: 24px; + line-height: 24px; + margin: 30px 0 0; +} + +table td { + vertical-align: middle; +} + +table td .progress { + margin-bottom: 0; +} + +table td.action-column { + width: 1px; +} + +.help-block { + color: lighten($text-color, 50%); // lighten the text some for contrast +} + +.xd-containers { + font-size: 15px; +} + +.cluster-view > table td { + vertical-align: top; +} + +.cluster-view .label, .cluster-view .column-block { + display: block; +} + +.cluster-view .input-group-addon { + width: 0%; +} + +.cluster-view { + margin-bottom: 0; +} + +.container-details-table th { + background-color: lighten($spring-brown, 3%); + color: $spring-light-grey; +} + +.status-help-content-table td { + color: $spring-brown; +} + +.logo { + width: 200px; +} + +.myspinner { + animation-name: spinner; + animation-duration: 2s; + animation-iteration-count: infinite; + animation-timing-function: linear; + + -webkit-transform-origin: 49% 50%; + -webkit-animation-name: spinner; + -webkit-animation-duration: 2s; + -webkit-animation-iteration-count: infinite; + -webkit-animation-timing-function: linear; +} + +hr { + border-top: 1px dotted $spring-brown; +} + +/* Chatbox container */ +.chatbox { + position: fixed; + bottom: 10px; + right: 10px; + width: 300px; + background-color: $chatbox-bg-color; + border-radius: $chatbox-border-radius; + box-shadow: $chatbox-box-shadow; + display: flex; + flex-direction: column; + + &.minimized { + .chatbox-content { + height: 40px; /* Height when minimized (header only) */ + } + .chatbox-messages, + .chatbox-footer { + display: none; + } + } +} + +/* Header styling */ +.chatbox-header { + background-color: $chatbox-header-bg-color; + color: $chatbox-header-text-color; + padding: 10px; + text-align: center; + border-top-left-radius: $chatbox-border-radius; + border-top-right-radius: $chatbox-border-radius; + cursor: pointer; +} + +/* Chatbox content styling */ +.chatbox-content { + display: flex; + flex-direction: column; + height: $chatbox-height; /* Adjust to desired height */ + overflow: hidden; /* Hide overflow to make it scrollable */ +} + +.chatbox-messages { + flex-grow: 1; + overflow-y: auto; /* Allows vertical scrolling */ + padding: 10px; +} + +/* Chat bubbles styling */ +.chat-bubble { + max-width: 80%; + padding: 10px; + border-radius: 20px; + margin-bottom: 10px; + position: relative; + word-wrap: break-word; + font-size: 14px; + + strong { + font-weight: bold; + } + + em { + font-style: italic; + } + + &.user { + background-color: $chatbox-bubble-user-bg-color; /* WhatsApp-style light green */ + margin-left: auto; + text-align: right; + border-bottom-right-radius: 0; + } + + &.bot { + background-color: $chatbox-bubble-bot-bg-color; + margin-right: auto; + text-align: left; + border-bottom-left-radius: 0; + border: 1px solid $chatbox-bubble-border-color; + } +} + +/* Input field and button */ +.chatbox-footer { + padding: 10px; + background-color: $chatbox-footer-bg-color; + display: flex; +} + +.chatbox-footer input { + flex-grow: 1; + padding: 10px; + border-radius: 20px; + border: 1px solid $chatbox-input-border-color; + margin-right: 10px; + outline: none; +} + +.chatbox-footer button { + background-color: $chatbox-button-bg-color; + color: white; + border: none; + padding: 10px; + border-radius: 50%; + cursor: pointer; + + &:hover { + background-color: $chatbox-button-hover-bg-color; + } +} + +@import "typography.scss"; +@import "header.scss"; +@import "responsive.scss"; diff --git a/src/main/resources/static/scss/responsive.scss b/src/main/resources/static/scss/responsive.scss new file mode 100644 index 0000000..96a720c --- /dev/null +++ b/src/main/resources/static/scss/responsive.scss @@ -0,0 +1,41 @@ +@media (max-width: 768px) { + .navbar-toggle { + position:absolute; + z-index: 9999; + left:0px; + top:0px; + } + + .navbar a.navbar-brand { + display: block; + margin: 0 auto 0 auto; + width: 148px; + height: 50px; + float: none; + background: url("../images/spring-logo-dataflow-mobile.png") 0 center no-repeat; + } + + .homepage-billboard .homepage-subtitle { + font-size: 21px; + line-height: 21px; + } + + .navbar a.navbar-brand span { + display: none; + } + + .navbar { + border-top-width: 0; + } + + .xd-container { + margin-top: 20px; + margin-bottom: 30px; + } + + .index-page--subtitle { + margin-top: 10px; + margin-bottom: 30px; + } + +} diff --git a/src/main/resources/static/scss/typography.scss b/src/main/resources/static/scss/typography.scss new file mode 100644 index 0000000..8b8436e --- /dev/null +++ b/src/main/resources/static/scss/typography.scss @@ -0,0 +1,60 @@ +@font-face { + font-family: 'varela_roundregular'; + + src: url('../fonts/varela_round-webfont.eot'); + src: url('../fonts/varela_round-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/varela_round-webfont.woff') format('woff'), + url('../fonts/varela_round-webfont.ttf') format('truetype'), + url('../fonts/varela_round-webfont.svg#varela_roundregular') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'montserratregular'; + src: url('../fonts/montserrat-webfont.eot'); + src: url('../fonts/montserrat-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/montserrat-webfont.woff') format('woff'), + url('../fonts/montserrat-webfont.ttf') format('truetype'), + url('../fonts/montserrat-webfont.svg#montserratregular') format('svg'); + font-weight: normal; + font-style: normal; +} + +body, h1, h2, h3, p, input { + margin: 0; + font-weight: 400; + font-family: "varela_roundregular", sans-serif; + color: #34302d; +} + +h1 { + font-size: 24px; + line-height: 30px; + font-family: "montserratregular", sans-serif; +} + +h2 { + font-size: 18px; + font-weight: 700; + line-height: 24px; + margin-bottom: 10px; + font-family: "montserratregular", sans-serif; +} + +h3 { + font-size: 16px; + line-height: 24px; + margin-bottom: 10px; + font-weight: 700; +} + +p { + //font-size: 15px; + //line-height: 24px; +} + +strong { + font-weight: 700; + font-family: "montserratregular", sans-serif; +} diff --git a/src/test/java/org/springframework/samples/petclinic/api/ApiGatewayApplicationTests.java b/src/test/java/org/springframework/samples/petclinic/api/ApiGatewayApplicationTests.java new file mode 100644 index 0000000..864d4fb --- /dev/null +++ b/src/test/java/org/springframework/samples/petclinic/api/ApiGatewayApplicationTests.java @@ -0,0 +1,15 @@ +package org.springframework.samples.petclinic.api; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; + +@ActiveProfiles("test") +@SpringBootTest +class ApiGatewayApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/src/test/java/org/springframework/samples/petclinic/api/application/VisitsServiceClientIntegrationTest.java b/src/test/java/org/springframework/samples/petclinic/api/application/VisitsServiceClientIntegrationTest.java new file mode 100644 index 0000000..3820ba9 --- /dev/null +++ b/src/test/java/org/springframework/samples/petclinic/api/application/VisitsServiceClientIntegrationTest.java @@ -0,0 +1,64 @@ +package org.springframework.samples.petclinic.api.application; + +import okhttp3.mockwebserver.MockResponse; +import okhttp3.mockwebserver.MockWebServer; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.samples.petclinic.api.dto.Visits; +import org.springframework.web.reactive.function.client.WebClient; +import reactor.core.publisher.Mono; + +import java.io.IOException; +import java.util.Collections; +import java.util.function.Consumer; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +class VisitsServiceClientIntegrationTest { + + private static final Integer PET_ID = 1; + + private VisitsServiceClient visitsServiceClient; + + private MockWebServer server; + + @BeforeEach + void setUp() { + server = new MockWebServer(); + visitsServiceClient = new VisitsServiceClient(WebClient.builder()); + visitsServiceClient.setHostname(server.url("/").toString()); + } + + @AfterEach + void shutdown() throws IOException { + this.server.shutdown(); + } + + @Test + void getVisitsForPets_withAvailableVisitsService() { + prepareResponse(response -> response + .setHeader("Content-Type", "application/json") + .setBody("{\"items\":[{\"id\":5,\"date\":\"2018-11-15\",\"description\":\"test visit\",\"petId\":1}]}")); + + Mono visits = visitsServiceClient.getVisitsForPets(Collections.singletonList(1)); + + assertVisitDescriptionEquals(visits.block(), PET_ID,"test visit"); + } + + + private void assertVisitDescriptionEquals(Visits visits, int petId, String description) { + assertEquals(1, visits.items().size()); + assertNotNull(visits.items().get(0)); + assertEquals(petId, visits.items().get(0).petId()); + assertEquals(description, visits.items().get(0).description()); + } + + private void prepareResponse(Consumer consumer) { + MockResponse response = new MockResponse(); + consumer.accept(response); + this.server.enqueue(response); + } + +} diff --git a/src/test/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayControllerTest.java b/src/test/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayControllerTest.java new file mode 100644 index 0000000..566f456 --- /dev/null +++ b/src/test/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayControllerTest.java @@ -0,0 +1,97 @@ +package org.springframework.samples.petclinic.api.boundary.web; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.cloud.circuitbreaker.resilience4j.ReactiveResilience4JAutoConfiguration; +import org.springframework.context.annotation.Import; +import org.springframework.samples.petclinic.api.application.CustomersServiceClient; +import org.springframework.samples.petclinic.api.application.VisitsServiceClient; +import org.springframework.samples.petclinic.api.dto.*; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.web.reactive.server.WebTestClient; +import reactor.core.publisher.Mono; + +import java.net.ConnectException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +@ExtendWith(SpringExtension.class) +@WebFluxTest(controllers = ApiGatewayController.class) +@Import({ReactiveResilience4JAutoConfiguration.class, CircuitBreakerConfiguration.class}) +class ApiGatewayControllerTest { + + @MockBean + private CustomersServiceClient customersServiceClient; + + @MockBean + private VisitsServiceClient visitsServiceClient; + + @Autowired + private WebTestClient client; + + + @Test + void getOwnerDetails_withAvailableVisitsService() { + PetDetails cat = PetDetails.PetDetailsBuilder.aPetDetails() + .id(20) + .name("Garfield") + .visits(new ArrayList<>()) + .build(); + OwnerDetails owner = OwnerDetails.OwnerDetailsBuilder.anOwnerDetails() + .pets(List.of(cat)) + .build(); + Mockito + .when(customersServiceClient.getOwner(1)) + .thenReturn(Mono.just(owner)); + + VisitDetails visit = new VisitDetails(300, cat.id(), null, "First visit"); + Visits visits = new Visits(List.of(visit)); + Mockito + .when(visitsServiceClient.getVisitsForPets(Collections.singletonList(cat.id()))) + .thenReturn(Mono.just(visits)); + + client.get() + .uri("/api/gateway/owners/1") + .exchange() + .expectStatus().isOk() + .expectBody() + .jsonPath("$.pets[0].name").isEqualTo("Garfield") + .jsonPath("$.pets[0].visits[0].description").isEqualTo("First visit"); + } + + /** + * Test Resilience4j fallback method + */ + @Test + void getOwnerDetails_withServiceError() { + PetDetails cat = PetDetails.PetDetailsBuilder.aPetDetails() + .id(20) + .name("Garfield") + .visits(new ArrayList<>()) + .build(); + OwnerDetails owner = OwnerDetails.OwnerDetailsBuilder.anOwnerDetails() + .pets(List.of(cat)) + .build(); + Mockito + .when(customersServiceClient.getOwner(1)) + .thenReturn(Mono.just(owner)); + + Mockito + .when(visitsServiceClient.getVisitsForPets(Collections.singletonList(cat.id()))) + .thenReturn(Mono.error(new ConnectException("Simulate error"))); + + client.get() + .uri("/api/gateway/owners/1") + .exchange() + .expectStatus().isOk() + .expectBody() + .jsonPath("$.pets[0].name").isEqualTo("Garfield") + .jsonPath("$.pets[0].visits").isEmpty(); + } + +} diff --git a/src/test/java/org/springframework/samples/petclinic/api/boundary/web/CircuitBreakerConfiguration.java b/src/test/java/org/springframework/samples/petclinic/api/boundary/web/CircuitBreakerConfiguration.java new file mode 100644 index 0000000..0a24009 --- /dev/null +++ b/src/test/java/org/springframework/samples/petclinic/api/boundary/web/CircuitBreakerConfiguration.java @@ -0,0 +1,29 @@ +package org.springframework.samples.petclinic.api.boundary.web; + +import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; +import io.github.resilience4j.timelimiter.TimeLimiterRegistry; +import org.springframework.cloud.circuitbreaker.resilience4j.Resilience4JConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; + +@Configuration +public class CircuitBreakerConfiguration { + + @Bean + public CircuitBreakerRegistry circuitBreakerRegistry() { + return CircuitBreakerRegistry.ofDefaults(); + } + + @Bean + public TimeLimiterRegistry timeLimiterRegistry() { + return TimeLimiterRegistry.ofDefaults(); + } + + @Bean + @Primary + public Resilience4JConfigurationProperties resilience4JConfigurationProperties(){ + return new Resilience4JConfigurationProperties(); + } + +} diff --git a/src/test/jmeter/petclinic_test_plan.jmx b/src/test/jmeter/petclinic_test_plan.jmx new file mode 100644 index 0000000..9e88f1a --- /dev/null +++ b/src/test/jmeter/petclinic_test_plan.jmx @@ -0,0 +1,568 @@ + + + + + + false + true + false + + + + PETCLINC_HOST + localhost + = + + + PETCLINIC_PORT + 8080 + = + + + + + + + + + + + ${PETCLINC_HOST} + ${PETCLINIC_PORT} + + + + 6 + + + + + + + + Accept + application/json, text/plain, */* + + + Content-Type + application/json;charset=UTF-8 + + + Accept-Encoding + gzip, deflate, br + + + + + + + + 1 + 0 + 0 + 300 + 30 + + + + false + -1 + + continue + + + + PET_TYPE + + 1 + 6 + + false + + + + 300 + 100.0 + + + + + + + + + + + /api/customer/owners + GET + true + false + true + false + + + + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + true + + + + false + { + "firstName":"Firstname", + "lastName":"Lastname", + "address":"Adress", + "city":"City", + "telephone":"0000000000" +} + = + + + + + + + + /api/customer/owners + POST + true + false + true + false + + + + + + + + 201 + + + Assertion.response_code + false + 8 + + + + OWNER_ID + $.id + + + + + + + + + + + + + /api/gateway/owners/${OWNER_ID} + GET + true + false + true + false + + + + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + true + + + + false + { + "id":"${OWNER_ID}", + "firstName":"Firstname", + "lastName":"Lastname${OWNER_ID}", + "address":"Adress${OWNER_ID}", + "city":"City${OWNER_ID}", + "telephone":"1111111111" +} + = + + + + + + + + /api/customer/owners/${OWNER_ID} + PUT + true + false + true + false + + + + + + + + 204 + + + Assertion.response_code + false + 8 + + + + + true + + + + false + { + "name":"Pet", + "birthDate":"2018-12-31T23:00:00.000Z", + "typeId":"${PET_TYPE}" +} + = + + + + + + + + /api/customer/owners/${OWNER_ID}/pets + POST + true + false + true + false + + + + + + + + 201 + + + Assertion.response_code + false + 8 + + + + PET_ID + $.id + + + + + + 1 + + + + true + + + + false + { + "name":"Pet", + "birthDate":"2018-12-31T23:00:00.000Z", + "typeId":"${PET_TYPE}" +} + = + + + + + + + + /api/customer/owners/${OWNER_ID}/pets + POST + true + false + true + false + + + + + + + + 201 + + + Assertion.response_code + false + 8 + + + + + + true + + + + false + { + "id": ${PET_ID}, + "name":"Pet${OWNER_ID}", + "birthDate":"2018-12-31T23:00:00.000Z", + "typeId":"${PET_TYPE}" +} + = + + + + + + + + /api/customer/owners/${OWNER_ID}/pets/${PET_ID} + PUT + true + false + true + false + + + + + + + + 204 + + + Assertion.response_code + false + 8 + + + + + true + + + + false + { + "date":"2019-03-15", + "description":"Visit" +} + = + + + + + + + + /api/visit/owners/${OWNER_ID}/pets/${PET_ID}/visits + POST + true + false + true + false + + + + + + + + 201 + + + Assertion.response_code + false + 8 + + + + + 1 + + + + true + + + + false + { + "date":"2019-03-15", + "description":"Visit" +} + = + + + + + + + + /api/visit/owners/${OWNER_ID}/pets/${PET_ID}/visits + POST + true + false + true + false + + + + + + + + 201 + + + Assertion.response_code + false + 8 + + + + + + + + + + + + + /api/vet/vets + GET + true + false + true + false + + + + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + true + false + false + false + true + 0 + true + true + true + true + true + true + + + + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + true + false + false + false + true + 0 + true + true + true + true + true + true + + + + + + + + + diff --git a/src/test/resources/application-test.yml b/src/test/resources/application-test.yml new file mode 100644 index 0000000..cb8e4f5 --- /dev/null +++ b/src/test/resources/application-test.yml @@ -0,0 +1,2 @@ +spring.cloud.config.enabled: false +eureka.client.enabled: false