├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md └── _htmresc ├── Add button.svg ├── CMSIS_Logo_Final.jpg ├── FP-AUD-SMARTMIC1_Software_Architecture.png ├── STM32Cube.bmp ├── STM32Cube_components.bmp ├── Update.svg ├── favicon.png ├── logo.bmp ├── mini-st.css ├── mini-st_2020.css ├── st_logo.png └── st_logo_2020.png /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team via this [link](https://www.st.com/content/st_com/en/contact-us.html). 59 | All complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 1.4, 71 | available [here](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html). 72 | 73 | For answers to common questions about this code of conduct, see the [FAQ section](https://www.contributor-covenant.org/faq). 74 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | The example is being delivered as-is, not necessarily supported by ST. 2 | Pull-request are not supported, you may submit problems or suggestions related to the software delivered in this repository using Issues. 3 | 4 | In addition, for any question related to the product, the hardware performance or characteristics, the tools, the environment, you can submit it to the ST Community on the STM32 MCUs related page. 5 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | | Component | Copyright | License | 2 | |:--------- |:------- |:---------- | 3 | | BSP BlueCoin | STMicroelectronics | BSD-3-Clause | 4 | | BSP CCA02M2 | STMicroelectronics | BSD-3-Clause | 5 | | BSP CCA01M1 | STMicroelectronics | BSD-3-Clause | 6 | | Components/Common | STMicroelectronics | BSD-3-Clause | 7 | | Components/pcm1774 | STMicroelectronics | BSD-3-Clause | 8 | | Components/sta350bw | STMicroelectronics | BSD-3-Clause | 9 | | Components/vl53l0x | STMicroelectronics | BSD-3-Clause | 10 | | STM32F4xx CMSIS | STMicroelectronics | BSD-3-Clause | 11 | | STM32F4xx HAL | STMicroelectronics | BSD-3-Clause | 12 | | Gesture | STMicroelectronics | BSD-3-Clause | 13 | | STCmdP | STMicroelectronics | BSD-3-Clause | 14 | | STM32 AcousticBF Library | STMicroelectronics + Jean-Marc Valin, Epic Games and the XIPHOPHORUS Company | SLA0077 | 15 | | STM32 AcousticDB Library | STMicroelectronics | SLA0077 | 16 | | STM32 AcousticEC Library | STMicroelectronics + Jean-Marc Valin, Epic Games and the XIPHOPHORUS Company | SLA0077 | 17 | | STM32 AcousticSL Library | STMicroelectronics | SLA0077 | 18 | | STM32 Audio PDM Library | STMicroelectronics | SLA0047 | 19 | | STM32 USB Device Library | STMicroelectronics | SLA0044 | 20 | | STM32 Audio USB Device Library | STMicroelectronics | SLA0044 | 21 | | STM32F446RE-BlueCoin/SMARTMIC1 | STMicroelectronics | SLA0055 | 22 | | STM32F446RE-Nucleo/SMARTMIC1 | STMicroelectronics | SLA0055 | 23 | | PC_Software Control_SW | STMicroelectronics | LGPL-3.0 | 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FP-AUD-SMARTMIC1 Firmware Package 2 | 3 | ![latest tag](https://img.shields.io/github/v/tag/STMicroelectronics/fp-aud-smartmic1.svg?color=brightgreen) 4 | 5 | > [!NOTE] 6 | > ## **FP-AUD-SMARTMIC1** software package is not available anymore in this repository 7 | > 8 | > In this repository, the * `./Middlewares/ST/STM32_Audio` middleware libraries and the related projects (demos, applications, and examples) are **not available** here as they (the middleware libraries) are subject to some restrictive license terms requiring the user's approval via a "click thru" procedure. 9 | > 10 | > If needed, they can be found inside the full firmware package available on our website `st.com` and downloadable from [here](https://www.st.com/en/embedded-software/fp-aud-smartmic1.html). You will be prompted to login or to register in case you have no account. 11 | 12 | ## Overview 13 | 14 | **FP-AUD-SMARTMIC1** provides a firmware running on STM32 which acquires audio signals of four digital MEMS microphones, elaborates them by means of embedded 15 | DSP libraries and streams the processed audio to both an USB host and a loudspeaker connected to the relevant expansion board. A communication infrastructure 16 | is provided as well, allowing the control of the device status and the setup of the running algorithm from a host PC. 17 | 18 | FP-AUD-SMARTMIC1 software features: 19 | 20 | - Complete middleware to build audio applications using ST digital MEMS microphones and **STA350BW** Sound Terminal® 2.1-channel high-efficiency digital audio output system. 21 | - **AcousticBF** library provides an implementation for a real-time adaptive beamforming algorithm 22 | - **AcousticEC** library provides an implementation for a real-time echo cancellation 23 | - **AcousticSL** library provides an implementation for a real-time sound source localization algorithm 24 | - dB SPL estimation 25 | - Communication to a host PC via STDCmdP protocol and dedicated PC software 26 | - Easy portability across different MCU families thanks to STM32Cube 27 | - Free user-friendly license terms 28 | 29 | Examples implementation available for: 30 | 31 | - **NUCLEO-F446RE** board equipped with **X-NUCLEO-CCA01M1**, an expansion board based on the STA350BW Sound Terminal® 2.1-channel high-efficiency digital audio 32 | output system, **X-NUCLEO-CCA02M2**, an evaluation board based on ST digital MEMS microphones and STEVAL-MIC001Vx, STEVAL-MIC002Vx or STEVAL-MIC003Vx digital microphones. 33 | - **STEVAL-BCNKT01V1 BlueCoin** kit 34 | 35 | The figure below shows the overall architecture. 36 | 37 | ![](_htmresc/FP-AUD-SMARTMIC1_Software_Architecture.png) 38 | 39 | Here is the list of references to user documents: 40 | 41 | - [UM2219](https://www.st.com/resource/en/user_manual/dm00393676.pdf) : Getting started with STM32 ODE function pack for MEMS microphones acquisition, advanced audio processing and audio output 42 | - [UM2212](https://www.st.com/resource/en/user_manual/dm00390468.pdf) : Getting started with Acoustic SL real-time sound source localization middleware 43 | - [UM2213](https://www.st.com/resource/en/user_manual/dm00390471.pdf) : Getting started with AcousticEC real-time acoustic echo cancellation middleware 44 | - [UM2214](https://www.st.com/resource/en/user_manual/dm00391112.pdf) : Getting started with AcousticBF real-time beam forming middleware 45 | - [STM32Cube](https://www.st.com/stm32cube) : STM32Cube 46 | - [STM32 Nucleo boards](https://www.st.com/stm32nucleo) : STM32 Nucleo boards 47 | - [STM32 Nucleo expansion boards](https://www.st.com/x-nucleo) : STM32 Nucleo expansion boards 48 | 49 | ## Known Limitations 50 | 51 | - None 52 | 53 | ## Development Toolchains and Compilers 54 | 55 | - IAR Embedded Workbench for ARM (EWARM) toolchain V9.20.1 56 | - RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.37 57 | - STM32CubeIDE Version 1.10.1 58 | 59 | ## Supported Devices and Boards 60 | 61 | - STM32F446RE devices 62 | - [STEVAL-BCNKT01V1](https://www.st.com/content/st_com/en/products/evaluation-tools/solution-evaluation-tools/sensor-solution-eval-boards/steval-bcnkt01v1.html) 63 | - [NUCLEO-F446RE](https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-nucleo-boards/nucleo-f446re.html) Rev C 64 | - [X-NUCLEO-CCA01M1](https://www.st.com/content/st_com/en/products/ecosystems/stm32-open-development-environment/stm32-nucleo-expansion-boards/stm32-ode-translate-hw/x-nucleo-cca01m1.html) 65 | - [X-NUCLEO-CCA02M2](https://www.st.com/content/st_com/en/products/ecosystems/stm32-open-development-environment/stm32-nucleo-expansion-boards/stm32-ode-sense-hw/x-nucleo-cca02m2.html) 66 | 67 | ## Backward Compatibility 68 | 69 | - User must recompile the application to be fully working when using first generation of BlueCoin platform as described in Errata Sheet [ES0462](https://www.st.com/resource/en/errata_sheet/es0462-software-limitations-related-to-stevalbcnkt01v1-lot-1720-stmicroelectronics.pdf) 70 | 71 | ## Dependencies 72 | 73 | - None 74 | -------------------------------------------------------------------------------- /_htmresc/Add button.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /_htmresc/CMSIS_Logo_Final.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/STMicroelectronics/fp-aud-smartmic1/d323162bb1114b9a38f16e40218b54ff701befba/_htmresc/CMSIS_Logo_Final.jpg -------------------------------------------------------------------------------- /_htmresc/FP-AUD-SMARTMIC1_Software_Architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/STMicroelectronics/fp-aud-smartmic1/d323162bb1114b9a38f16e40218b54ff701befba/_htmresc/FP-AUD-SMARTMIC1_Software_Architecture.png -------------------------------------------------------------------------------- /_htmresc/STM32Cube.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/STMicroelectronics/fp-aud-smartmic1/d323162bb1114b9a38f16e40218b54ff701befba/_htmresc/STM32Cube.bmp -------------------------------------------------------------------------------- /_htmresc/STM32Cube_components.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/STMicroelectronics/fp-aud-smartmic1/d323162bb1114b9a38f16e40218b54ff701befba/_htmresc/STM32Cube_components.bmp -------------------------------------------------------------------------------- /_htmresc/Update.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /_htmresc/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/STMicroelectronics/fp-aud-smartmic1/d323162bb1114b9a38f16e40218b54ff701befba/_htmresc/favicon.png -------------------------------------------------------------------------------- /_htmresc/logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/STMicroelectronics/fp-aud-smartmic1/d323162bb1114b9a38f16e40218b54ff701befba/_htmresc/logo.bmp -------------------------------------------------------------------------------- /_htmresc/mini-st.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /* 3 | Flavor name: Default (mini-default) 4 | Author: Angelos Chalaris (chalarangelo@gmail.com) 5 | Maintainers: Angelos Chalaris 6 | mini.css version: v3.0.0-alpha.3 7 | */ 8 | /* 9 | Browsers resets and base typography. 10 | */ 11 | /* Core module CSS variable definitions */ 12 | :root { 13 | --fore-color: #111; 14 | --secondary-fore-color: #444; 15 | --back-color: #f8f8f8; 16 | --secondary-back-color: #f0f0f0; 17 | --blockquote-color: #f57c00; 18 | --pre-color: #1565c0; 19 | --border-color: #aaa; 20 | --secondary-border-color: #ddd; 21 | --heading-ratio: 1.19; 22 | --universal-margin: 0.5rem; 23 | --universal-padding: 0.125rem; 24 | --universal-border-radius: 0.125rem; 25 | --a-link-color: #0277bd; 26 | --a-visited-color: #01579b; } 27 | 28 | html { 29 | font-size: 14px; } 30 | 31 | a, b, del, em, i, ins, q, span, strong, u { 32 | font-size: 1em; } 33 | 34 | html, * { 35 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, sans-serif; 36 | line-height: 1.4; 37 | -webkit-text-size-adjust: 100%; } 38 | 39 | * { 40 | font-size: 1rem; } 41 | 42 | body { 43 | margin: 0; 44 | color: var(--fore-color); 45 | background: var(--back-color); } 46 | 47 | details { 48 | display: block; } 49 | 50 | summary { 51 | display: list-item; } 52 | 53 | abbr[title] { 54 | border-bottom: none; 55 | text-decoration: underline dotted; } 56 | 57 | input { 58 | overflow: visible; } 59 | 60 | img { 61 | max-width: 100%; 62 | height: auto; } 63 | 64 | h1, h2, h3, h4, h5, h6 { 65 | line-height: 1.2; 66 | margin: calc(1.5 * var(--universal-margin)) var(--universal-margin); 67 | font-weight: 500; } 68 | h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { 69 | color: var(--secondary-fore-color); 70 | display: block; 71 | margin-top: -0.25rem; } 72 | 73 | h1 { 74 | font-size: calc(1rem * var(--heading-ratio) * var(--heading-ratio) * var(--heading-ratio)); } 75 | 76 | h2 { 77 | font-size: calc(1rem * var(--heading-ratio) * var(--heading-ratio); ); 78 | background: var(--mark-back-color); 79 | font-weight: 600; 80 | padding: 0.1em 0.5em 0.2em 0.5em; 81 | color: var(--mark-fore-color); } 82 | 83 | h3 { 84 | font-size: calc(1rem * var(--heading-ratio)); 85 | padding-left: calc(2 * var(--universal-margin)); 86 | /* background: var(--border-color); */ 87 | } 88 | 89 | h4 { 90 | font-size: 1rem;); 91 | padding-left: calc(4 * var(--universal-margin)); } 92 | 93 | h5 { 94 | font-size: 1rem; } 95 | 96 | h6 { 97 | font-size: calc(1rem / var(--heading-ratio)); } 98 | 99 | p { 100 | margin: var(--universal-margin); } 101 | 102 | ol, ul { 103 | margin: var(--universal-margin); 104 | padding-left: calc(6 * var(--universal-margin)); } 105 | 106 | b, strong { 107 | font-weight: 700; } 108 | 109 | hr { 110 | box-sizing: content-box; 111 | border: 0; 112 | line-height: 1.25em; 113 | margin: var(--universal-margin); 114 | height: 0.0625rem; 115 | background: linear-gradient(to right, transparent, var(--border-color) 20%, var(--border-color) 80%, transparent); } 116 | 117 | blockquote { 118 | display: block; 119 | position: relative; 120 | font-style: italic; 121 | color: var(--secondary-fore-color); 122 | margin: var(--universal-margin); 123 | padding: calc(3 * var(--universal-padding)); 124 | border: 0.0625rem solid var(--secondary-border-color); 125 | border-left: 0.375rem solid var(--blockquote-color); 126 | border-radius: 0 var(--universal-border-radius) var(--universal-border-radius) 0; } 127 | blockquote:before { 128 | position: absolute; 129 | top: calc(0rem - var(--universal-padding)); 130 | left: 0; 131 | font-family: sans-serif; 132 | font-size: 3rem; 133 | font-weight: 700; 134 | content: "\201c"; 135 | color: var(--blockquote-color); } 136 | blockquote[cite]:after { 137 | font-style: normal; 138 | font-size: 0.75em; 139 | font-weight: 700; 140 | content: "\a— " attr(cite); 141 | white-space: pre; } 142 | 143 | code, kbd, pre, samp { 144 | font-family: Menlo, Consolas, monospace; 145 | font-size: 0.85em; } 146 | 147 | code { 148 | background: var(--secondary-back-color); 149 | border-radius: var(--universal-border-radius); 150 | padding: calc(var(--universal-padding) / 4) calc(var(--universal-padding) / 2); } 151 | 152 | kbd { 153 | background: var(--fore-color); 154 | color: var(--back-color); 155 | border-radius: var(--universal-border-radius); 156 | padding: calc(var(--universal-padding) / 4) calc(var(--universal-padding) / 2); } 157 | 158 | pre { 159 | overflow: auto; 160 | background: var(--secondary-back-color); 161 | padding: calc(1.5 * var(--universal-padding)); 162 | margin: var(--universal-margin); 163 | border: 0.0625rem solid var(--secondary-border-color); 164 | border-left: 0.25rem solid var(--pre-color); 165 | border-radius: 0 var(--universal-border-radius) var(--universal-border-radius) 0; } 166 | 167 | sup, sub, code, kbd { 168 | line-height: 0; 169 | position: relative; 170 | vertical-align: baseline; } 171 | 172 | small, sup, sub, figcaption { 173 | font-size: 0.75em; } 174 | 175 | sup { 176 | top: -0.5em; } 177 | 178 | sub { 179 | bottom: -0.25em; } 180 | 181 | figure { 182 | margin: var(--universal-margin); } 183 | 184 | figcaption { 185 | color: var(--secondary-fore-color); } 186 | 187 | a { 188 | text-decoration: none; } 189 | a:link { 190 | color: var(--a-link-color); } 191 | a:visited { 192 | color: var(--a-visited-color); } 193 | a:hover, a:focus { 194 | text-decoration: underline; } 195 | 196 | /* 197 | Definitions for the grid system, cards and containers. 198 | */ 199 | .container { 200 | margin: 0 auto; 201 | padding: 0 calc(1.5 * var(--universal-padding)); } 202 | 203 | .row { 204 | box-sizing: border-box; 205 | display: flex; 206 | flex: 0 1 auto; 207 | flex-flow: row wrap; } 208 | 209 | .col-sm, 210 | [class^='col-sm-'], 211 | [class^='col-sm-offset-'], 212 | .row[class*='cols-sm-'] > * { 213 | box-sizing: border-box; 214 | flex: 0 0 auto; 215 | padding: 0 calc(var(--universal-padding) / 2); } 216 | 217 | .col-sm, 218 | .row.cols-sm > * { 219 | max-width: 100%; 220 | flex-grow: 1; 221 | flex-basis: 0; } 222 | 223 | .col-sm-1, 224 | .row.cols-sm-1 > * { 225 | max-width: 8.3333333333%; 226 | flex-basis: 8.3333333333%; } 227 | 228 | .col-sm-offset-0 { 229 | margin-left: 0; } 230 | 231 | .col-sm-2, 232 | .row.cols-sm-2 > * { 233 | max-width: 16.6666666667%; 234 | flex-basis: 16.6666666667%; } 235 | 236 | .col-sm-offset-1 { 237 | margin-left: 8.3333333333%; } 238 | 239 | .col-sm-3, 240 | .row.cols-sm-3 > * { 241 | max-width: 25%; 242 | flex-basis: 25%; } 243 | 244 | .col-sm-offset-2 { 245 | margin-left: 16.6666666667%; } 246 | 247 | .col-sm-4, 248 | .row.cols-sm-4 > * { 249 | max-width: 33.3333333333%; 250 | flex-basis: 33.3333333333%; } 251 | 252 | .col-sm-offset-3 { 253 | margin-left: 25%; } 254 | 255 | .col-sm-5, 256 | .row.cols-sm-5 > * { 257 | max-width: 41.6666666667%; 258 | flex-basis: 41.6666666667%; } 259 | 260 | .col-sm-offset-4 { 261 | margin-left: 33.3333333333%; } 262 | 263 | .col-sm-6, 264 | .row.cols-sm-6 > * { 265 | max-width: 50%; 266 | flex-basis: 50%; } 267 | 268 | .col-sm-offset-5 { 269 | margin-left: 41.6666666667%; } 270 | 271 | .col-sm-7, 272 | .row.cols-sm-7 > * { 273 | max-width: 58.3333333333%; 274 | flex-basis: 58.3333333333%; } 275 | 276 | .col-sm-offset-6 { 277 | margin-left: 50%; } 278 | 279 | .col-sm-8, 280 | .row.cols-sm-8 > * { 281 | max-width: 66.6666666667%; 282 | flex-basis: 66.6666666667%; } 283 | 284 | .col-sm-offset-7 { 285 | margin-left: 58.3333333333%; } 286 | 287 | .col-sm-9, 288 | .row.cols-sm-9 > * { 289 | max-width: 75%; 290 | flex-basis: 75%; } 291 | 292 | .col-sm-offset-8 { 293 | margin-left: 66.6666666667%; } 294 | 295 | .col-sm-10, 296 | .row.cols-sm-10 > * { 297 | max-width: 83.3333333333%; 298 | flex-basis: 83.3333333333%; } 299 | 300 | .col-sm-offset-9 { 301 | margin-left: 75%; } 302 | 303 | .col-sm-11, 304 | .row.cols-sm-11 > * { 305 | max-width: 91.6666666667%; 306 | flex-basis: 91.6666666667%; } 307 | 308 | .col-sm-offset-10 { 309 | margin-left: 83.3333333333%; } 310 | 311 | .col-sm-12, 312 | .row.cols-sm-12 > * { 313 | max-width: 100%; 314 | flex-basis: 100%; } 315 | 316 | .col-sm-offset-11 { 317 | margin-left: 91.6666666667%; } 318 | 319 | .col-sm-normal { 320 | order: initial; } 321 | 322 | .col-sm-first { 323 | order: -999; } 324 | 325 | .col-sm-last { 326 | order: 999; } 327 | 328 | @media screen and (min-width: 500px) { 329 | .col-md, 330 | [class^='col-md-'], 331 | [class^='col-md-offset-'], 332 | .row[class*='cols-md-'] > * { 333 | box-sizing: border-box; 334 | flex: 0 0 auto; 335 | padding: 0 calc(var(--universal-padding) / 2); } 336 | 337 | .col-md, 338 | .row.cols-md > * { 339 | max-width: 100%; 340 | flex-grow: 1; 341 | flex-basis: 0; } 342 | 343 | .col-md-1, 344 | .row.cols-md-1 > * { 345 | max-width: 8.3333333333%; 346 | flex-basis: 8.3333333333%; } 347 | 348 | .col-md-offset-0 { 349 | margin-left: 0; } 350 | 351 | .col-md-2, 352 | .row.cols-md-2 > * { 353 | max-width: 16.6666666667%; 354 | flex-basis: 16.6666666667%; } 355 | 356 | .col-md-offset-1 { 357 | margin-left: 8.3333333333%; } 358 | 359 | .col-md-3, 360 | .row.cols-md-3 > * { 361 | max-width: 25%; 362 | flex-basis: 25%; } 363 | 364 | .col-md-offset-2 { 365 | margin-left: 16.6666666667%; } 366 | 367 | .col-md-4, 368 | .row.cols-md-4 > * { 369 | max-width: 33.3333333333%; 370 | flex-basis: 33.3333333333%; } 371 | 372 | .col-md-offset-3 { 373 | margin-left: 25%; } 374 | 375 | .col-md-5, 376 | .row.cols-md-5 > * { 377 | max-width: 41.6666666667%; 378 | flex-basis: 41.6666666667%; } 379 | 380 | .col-md-offset-4 { 381 | margin-left: 33.3333333333%; } 382 | 383 | .col-md-6, 384 | .row.cols-md-6 > * { 385 | max-width: 50%; 386 | flex-basis: 50%; } 387 | 388 | .col-md-offset-5 { 389 | margin-left: 41.6666666667%; } 390 | 391 | .col-md-7, 392 | .row.cols-md-7 > * { 393 | max-width: 58.3333333333%; 394 | flex-basis: 58.3333333333%; } 395 | 396 | .col-md-offset-6 { 397 | margin-left: 50%; } 398 | 399 | .col-md-8, 400 | .row.cols-md-8 > * { 401 | max-width: 66.6666666667%; 402 | flex-basis: 66.6666666667%; } 403 | 404 | .col-md-offset-7 { 405 | margin-left: 58.3333333333%; } 406 | 407 | .col-md-9, 408 | .row.cols-md-9 > * { 409 | max-width: 75%; 410 | flex-basis: 75%; } 411 | 412 | .col-md-offset-8 { 413 | margin-left: 66.6666666667%; } 414 | 415 | .col-md-10, 416 | .row.cols-md-10 > * { 417 | max-width: 83.3333333333%; 418 | flex-basis: 83.3333333333%; } 419 | 420 | .col-md-offset-9 { 421 | margin-left: 75%; } 422 | 423 | .col-md-11, 424 | .row.cols-md-11 > * { 425 | max-width: 91.6666666667%; 426 | flex-basis: 91.6666666667%; } 427 | 428 | .col-md-offset-10 { 429 | margin-left: 83.3333333333%; } 430 | 431 | .col-md-12, 432 | .row.cols-md-12 > * { 433 | max-width: 100%; 434 | flex-basis: 100%; } 435 | 436 | .col-md-offset-11 { 437 | margin-left: 91.6666666667%; } 438 | 439 | .col-md-normal { 440 | order: initial; } 441 | 442 | .col-md-first { 443 | order: -999; } 444 | 445 | .col-md-last { 446 | order: 999; } } 447 | @media screen and (min-width: 1280px) { 448 | .col-lg, 449 | [class^='col-lg-'], 450 | [class^='col-lg-offset-'], 451 | .row[class*='cols-lg-'] > * { 452 | box-sizing: border-box; 453 | flex: 0 0 auto; 454 | padding: 0 calc(var(--universal-padding) / 2); } 455 | 456 | .col-lg, 457 | .row.cols-lg > * { 458 | max-width: 100%; 459 | flex-grow: 1; 460 | flex-basis: 0; } 461 | 462 | .col-lg-1, 463 | .row.cols-lg-1 > * { 464 | max-width: 8.3333333333%; 465 | flex-basis: 8.3333333333%; } 466 | 467 | .col-lg-offset-0 { 468 | margin-left: 0; } 469 | 470 | .col-lg-2, 471 | .row.cols-lg-2 > * { 472 | max-width: 16.6666666667%; 473 | flex-basis: 16.6666666667%; } 474 | 475 | .col-lg-offset-1 { 476 | margin-left: 8.3333333333%; } 477 | 478 | .col-lg-3, 479 | .row.cols-lg-3 > * { 480 | max-width: 25%; 481 | flex-basis: 25%; } 482 | 483 | .col-lg-offset-2 { 484 | margin-left: 16.6666666667%; } 485 | 486 | .col-lg-4, 487 | .row.cols-lg-4 > * { 488 | max-width: 33.3333333333%; 489 | flex-basis: 33.3333333333%; } 490 | 491 | .col-lg-offset-3 { 492 | margin-left: 25%; } 493 | 494 | .col-lg-5, 495 | .row.cols-lg-5 > * { 496 | max-width: 41.6666666667%; 497 | flex-basis: 41.6666666667%; } 498 | 499 | .col-lg-offset-4 { 500 | margin-left: 33.3333333333%; } 501 | 502 | .col-lg-6, 503 | .row.cols-lg-6 > * { 504 | max-width: 50%; 505 | flex-basis: 50%; } 506 | 507 | .col-lg-offset-5 { 508 | margin-left: 41.6666666667%; } 509 | 510 | .col-lg-7, 511 | .row.cols-lg-7 > * { 512 | max-width: 58.3333333333%; 513 | flex-basis: 58.3333333333%; } 514 | 515 | .col-lg-offset-6 { 516 | margin-left: 50%; } 517 | 518 | .col-lg-8, 519 | .row.cols-lg-8 > * { 520 | max-width: 66.6666666667%; 521 | flex-basis: 66.6666666667%; } 522 | 523 | .col-lg-offset-7 { 524 | margin-left: 58.3333333333%; } 525 | 526 | .col-lg-9, 527 | .row.cols-lg-9 > * { 528 | max-width: 75%; 529 | flex-basis: 75%; } 530 | 531 | .col-lg-offset-8 { 532 | margin-left: 66.6666666667%; } 533 | 534 | .col-lg-10, 535 | .row.cols-lg-10 > * { 536 | max-width: 83.3333333333%; 537 | flex-basis: 83.3333333333%; } 538 | 539 | .col-lg-offset-9 { 540 | margin-left: 75%; } 541 | 542 | .col-lg-11, 543 | .row.cols-lg-11 > * { 544 | max-width: 91.6666666667%; 545 | flex-basis: 91.6666666667%; } 546 | 547 | .col-lg-offset-10 { 548 | margin-left: 83.3333333333%; } 549 | 550 | .col-lg-12, 551 | .row.cols-lg-12 > * { 552 | max-width: 100%; 553 | flex-basis: 100%; } 554 | 555 | .col-lg-offset-11 { 556 | margin-left: 91.6666666667%; } 557 | 558 | .col-lg-normal { 559 | order: initial; } 560 | 561 | .col-lg-first { 562 | order: -999; } 563 | 564 | .col-lg-last { 565 | order: 999; } } 566 | /* Card component CSS variable definitions */ 567 | :root { 568 | --card-back-color: #f8f8f8; 569 | --card-fore-color: #111; 570 | --card-border-color: #ddd; } 571 | 572 | .card { 573 | display: flex; 574 | flex-direction: column; 575 | justify-content: space-between; 576 | align-self: center; 577 | position: relative; 578 | width: 100%; 579 | background: var(--card-back-color); 580 | color: var(--card-fore-color); 581 | border: 0.0625rem solid var(--card-border-color); 582 | border-radius: var(--universal-border-radius); 583 | margin: var(--universal-margin); 584 | overflow: hidden; } 585 | @media screen and (min-width: 320px) { 586 | .card { 587 | max-width: 320px; } } 588 | .card > .sectione { 589 | background: var(--card-back-color); 590 | color: var(--card-fore-color); 591 | box-sizing: border-box; 592 | margin: 0; 593 | border: 0; 594 | border-radius: 0; 595 | border-bottom: 0.0625rem solid var(--card-border-color); 596 | padding: var(--universal-padding); 597 | width: 100%; } 598 | .card > .sectione.media { 599 | height: 200px; 600 | padding: 0; 601 | -o-object-fit: cover; 602 | object-fit: cover; } 603 | .card > .sectione:last-child { 604 | border-bottom: 0; } 605 | 606 | /* 607 | Custom elements for card elements. 608 | */ 609 | @media screen and (min-width: 240px) { 610 | .card.small { 611 | max-width: 240px; } } 612 | @media screen and (min-width: 480px) { 613 | .card.large { 614 | max-width: 480px; } } 615 | .card.fluid { 616 | max-width: 100%; 617 | width: auto; } 618 | 619 | .card.warning { 620 | /* --card-back-color: #ffca28; */ 621 | --card-back-color: #e5b8b7; 622 | --card-border-color: #e8b825; } 623 | 624 | .card.error { 625 | --card-back-color: #b71c1c; 626 | --card-fore-color: #f8f8f8; 627 | --card-border-color: #a71a1a; } 628 | 629 | .card > .sectione.dark { 630 | --card-back-color: #e0e0e0; } 631 | 632 | .card > .sectione.double-padded { 633 | padding: calc(1.5 * var(--universal-padding)); } 634 | 635 | /* 636 | Definitions for forms and input elements. 637 | */ 638 | /* Input_control module CSS variable definitions */ 639 | :root { 640 | --form-back-color: #f0f0f0; 641 | --form-fore-color: #111; 642 | --form-border-color: #ddd; 643 | --input-back-color: #f8f8f8; 644 | --input-fore-color: #111; 645 | --input-border-color: #ddd; 646 | --input-focus-color: #0288d1; 647 | --input-invalid-color: #d32f2f; 648 | --button-back-color: #e2e2e2; 649 | --button-hover-back-color: #dcdcdc; 650 | --button-fore-color: #212121; 651 | --button-border-color: transparent; 652 | --button-hover-border-color: transparent; 653 | --button-group-border-color: rgba(124, 124, 124, 0.54); } 654 | 655 | form { 656 | background: var(--form-back-color); 657 | color: var(--form-fore-color); 658 | border: 0.0625rem solid var(--form-border-color); 659 | border-radius: var(--universal-border-radius); 660 | margin: var(--universal-margin); 661 | padding: calc(2 * var(--universal-padding)) var(--universal-padding); } 662 | 663 | fieldset { 664 | border: 0.0625rem solid var(--form-border-color); 665 | border-radius: var(--universal-border-radius); 666 | margin: calc(var(--universal-margin) / 4); 667 | padding: var(--universal-padding); } 668 | 669 | legend { 670 | box-sizing: border-box; 671 | display: table; 672 | max-width: 100%; 673 | white-space: normal; 674 | font-weight: 700; 675 | padding: calc(var(--universal-padding) / 2); } 676 | 677 | label { 678 | padding: calc(var(--universal-padding) / 2) var(--universal-padding); } 679 | 680 | .input-group { 681 | display: inline-block; } 682 | .input-group.fluid { 683 | display: flex; 684 | align-items: center; 685 | justify-content: center; } 686 | .input-group.fluid > input { 687 | max-width: 100%; 688 | flex-grow: 1; 689 | flex-basis: 0px; } 690 | @media screen and (max-width: 499px) { 691 | .input-group.fluid { 692 | align-items: stretch; 693 | flex-direction: column; } } 694 | .input-group.vertical { 695 | display: flex; 696 | align-items: stretch; 697 | flex-direction: column; } 698 | .input-group.vertical > input { 699 | max-width: 100%; 700 | flex-grow: 1; 701 | flex-basis: 0px; } 702 | 703 | [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { 704 | height: auto; } 705 | 706 | [type="search"] { 707 | -webkit-appearance: textfield; 708 | outline-offset: -2px; } 709 | 710 | [type="search"]::-webkit-search-cancel-button, 711 | [type="search"]::-webkit-search-decoration { 712 | -webkit-appearance: none; } 713 | 714 | input:not([type]), [type="text"], [type="email"], [type="number"], [type="search"], 715 | [type="password"], [type="url"], [type="tel"], [type="checkbox"], [type="radio"], textarea, select { 716 | box-sizing: border-box; 717 | background: var(--input-back-color); 718 | color: var(--input-fore-color); 719 | border: 0.0625rem solid var(--input-border-color); 720 | border-radius: var(--universal-border-radius); 721 | margin: calc(var(--universal-margin) / 2); 722 | padding: var(--universal-padding) calc(1.5 * var(--universal-padding)); } 723 | 724 | input:not([type="button"]):not([type="submit"]):not([type="reset"]):hover, input:not([type="button"]):not([type="submit"]):not([type="reset"]):focus, textarea:hover, textarea:focus, select:hover, select:focus { 725 | border-color: var(--input-focus-color); 726 | box-shadow: none; } 727 | input:not([type="button"]):not([type="submit"]):not([type="reset"]):invalid, input:not([type="button"]):not([type="submit"]):not([type="reset"]):focus:invalid, textarea:invalid, textarea:focus:invalid, select:invalid, select:focus:invalid { 728 | border-color: var(--input-invalid-color); 729 | box-shadow: none; } 730 | input:not([type="button"]):not([type="submit"]):not([type="reset"])[readonly], textarea[readonly], select[readonly] { 731 | background: var(--secondary-back-color); } 732 | 733 | select { 734 | max-width: 100%; } 735 | 736 | option { 737 | overflow: hidden; 738 | text-overflow: ellipsis; } 739 | 740 | [type="checkbox"], [type="radio"] { 741 | -webkit-appearance: none; 742 | -moz-appearance: none; 743 | appearance: none; 744 | position: relative; 745 | height: calc(1rem + var(--universal-padding) / 2); 746 | width: calc(1rem + var(--universal-padding) / 2); 747 | vertical-align: text-bottom; 748 | padding: 0; 749 | flex-basis: calc(1rem + var(--universal-padding) / 2) !important; 750 | flex-grow: 0 !important; } 751 | [type="checkbox"]:checked:before, [type="radio"]:checked:before { 752 | position: absolute; } 753 | 754 | [type="checkbox"]:checked:before { 755 | content: '\2713'; 756 | font-family: sans-serif; 757 | font-size: calc(1rem + var(--universal-padding) / 2); 758 | top: calc(0rem - var(--universal-padding)); 759 | left: calc(var(--universal-padding) / 4); } 760 | 761 | [type="radio"] { 762 | border-radius: 100%; } 763 | [type="radio"]:checked:before { 764 | border-radius: 100%; 765 | content: ''; 766 | top: calc(0.0625rem + var(--universal-padding) / 2); 767 | left: calc(0.0625rem + var(--universal-padding) / 2); 768 | background: var(--input-fore-color); 769 | width: 0.5rem; 770 | height: 0.5rem; } 771 | 772 | :placeholder-shown { 773 | color: var(--input-fore-color); } 774 | 775 | ::-ms-placeholder { 776 | color: var(--input-fore-color); 777 | opacity: 0.54; } 778 | 779 | button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { 780 | border-style: none; 781 | padding: 0; } 782 | 783 | button, html [type="button"], [type="reset"], [type="submit"] { 784 | -webkit-appearance: button; } 785 | 786 | button { 787 | overflow: visible; 788 | text-transform: none; } 789 | 790 | button, [type="button"], [type="submit"], [type="reset"], 791 | a.button, label.button, .button, 792 | a[role="button"], label[role="button"], [role="button"] { 793 | display: inline-block; 794 | background: var(--button-back-color); 795 | color: var(--button-fore-color); 796 | border: 0.0625rem solid var(--button-border-color); 797 | border-radius: var(--universal-border-radius); 798 | padding: var(--universal-padding) calc(1.5 * var(--universal-padding)); 799 | margin: var(--universal-margin); 800 | text-decoration: none; 801 | cursor: pointer; 802 | transition: background 0.3s; } 803 | button:hover, button:focus, [type="button"]:hover, [type="button"]:focus, [type="submit"]:hover, [type="submit"]:focus, [type="reset"]:hover, [type="reset"]:focus, 804 | a.button:hover, 805 | a.button:focus, label.button:hover, label.button:focus, .button:hover, .button:focus, 806 | a[role="button"]:hover, 807 | a[role="button"]:focus, label[role="button"]:hover, label[role="button"]:focus, [role="button"]:hover, [role="button"]:focus { 808 | background: var(--button-hover-back-color); 809 | border-color: var(--button-hover-border-color); } 810 | 811 | input:disabled, input[disabled], textarea:disabled, textarea[disabled], select:disabled, select[disabled], button:disabled, button[disabled], .button:disabled, .button[disabled], [role="button"]:disabled, [role="button"][disabled] { 812 | cursor: not-allowed; 813 | opacity: 0.75; } 814 | 815 | .button-group { 816 | display: flex; 817 | border: 0.0625rem solid var(--button-group-border-color); 818 | border-radius: var(--universal-border-radius); 819 | margin: var(--universal-margin); } 820 | .button-group > button, .button-group [type="button"], .button-group > [type="submit"], .button-group > [type="reset"], .button-group > .button, .button-group > [role="button"] { 821 | margin: 0; 822 | max-width: 100%; 823 | flex: 1 1 auto; 824 | text-align: center; 825 | border: 0; 826 | border-radius: 0; 827 | box-shadow: none; } 828 | .button-group > :not(:first-child) { 829 | border-left: 0.0625rem solid var(--button-group-border-color); } 830 | @media screen and (max-width: 499px) { 831 | .button-group { 832 | flex-direction: column; } 833 | .button-group > :not(:first-child) { 834 | border: 0; 835 | border-top: 0.0625rem solid var(--button-group-border-color); } } 836 | 837 | /* 838 | Custom elements for forms and input elements. 839 | */ 840 | button.primary, [type="button"].primary, [type="submit"].primary, [type="reset"].primary, .button.primary, [role="button"].primary { 841 | --button-back-color: #1976d2; 842 | --button-fore-color: #f8f8f8; } 843 | button.primary:hover, button.primary:focus, [type="button"].primary:hover, [type="button"].primary:focus, [type="submit"].primary:hover, [type="submit"].primary:focus, [type="reset"].primary:hover, [type="reset"].primary:focus, .button.primary:hover, .button.primary:focus, [role="button"].primary:hover, [role="button"].primary:focus { 844 | --button-hover-back-color: #1565c0; } 845 | 846 | button.secondary, [type="button"].secondary, [type="submit"].secondary, [type="reset"].secondary, .button.secondary, [role="button"].secondary { 847 | --button-back-color: #d32f2f; 848 | --button-fore-color: #f8f8f8; } 849 | button.secondary:hover, button.secondary:focus, [type="button"].secondary:hover, [type="button"].secondary:focus, [type="submit"].secondary:hover, [type="submit"].secondary:focus, [type="reset"].secondary:hover, [type="reset"].secondary:focus, .button.secondary:hover, .button.secondary:focus, [role="button"].secondary:hover, [role="button"].secondary:focus { 850 | --button-hover-back-color: #c62828; } 851 | 852 | button.tertiary, [type="button"].tertiary, [type="submit"].tertiary, [type="reset"].tertiary, .button.tertiary, [role="button"].tertiary { 853 | --button-back-color: #308732; 854 | --button-fore-color: #f8f8f8; } 855 | button.tertiary:hover, button.tertiary:focus, [type="button"].tertiary:hover, [type="button"].tertiary:focus, [type="submit"].tertiary:hover, [type="submit"].tertiary:focus, [type="reset"].tertiary:hover, [type="reset"].tertiary:focus, .button.tertiary:hover, .button.tertiary:focus, [role="button"].tertiary:hover, [role="button"].tertiary:focus { 856 | --button-hover-back-color: #277529; } 857 | 858 | button.inverse, [type="button"].inverse, [type="submit"].inverse, [type="reset"].inverse, .button.inverse, [role="button"].inverse { 859 | --button-back-color: #212121; 860 | --button-fore-color: #f8f8f8; } 861 | button.inverse:hover, button.inverse:focus, [type="button"].inverse:hover, [type="button"].inverse:focus, [type="submit"].inverse:hover, [type="submit"].inverse:focus, [type="reset"].inverse:hover, [type="reset"].inverse:focus, .button.inverse:hover, .button.inverse:focus, [role="button"].inverse:hover, [role="button"].inverse:focus { 862 | --button-hover-back-color: #111; } 863 | 864 | button.small, [type="button"].small, [type="submit"].small, [type="reset"].small, .button.small, [role="button"].small { 865 | padding: calc(0.5 * var(--universal-padding)) calc(0.75 * var(--universal-padding)); 866 | margin: var(--universal-margin); } 867 | 868 | button.large, [type="button"].large, [type="submit"].large, [type="reset"].large, .button.large, [role="button"].large { 869 | padding: calc(1.5 * var(--universal-padding)) calc(2 * var(--universal-padding)); 870 | margin: var(--universal-margin); } 871 | 872 | /* 873 | Definitions for navigation elements. 874 | */ 875 | /* Navigation module CSS variable definitions */ 876 | :root { 877 | --header-back-color: #f8f8f8; 878 | --header-hover-back-color: #f0f0f0; 879 | --header-fore-color: #444; 880 | --header-border-color: #ddd; 881 | --nav-back-color: #f8f8f8; 882 | --nav-hover-back-color: #f0f0f0; 883 | --nav-fore-color: #444; 884 | --nav-border-color: #ddd; 885 | --nav-link-color: #0277bd; 886 | --footer-fore-color: #444; 887 | --footer-back-color: #f8f8f8; 888 | --footer-border-color: #ddd; 889 | --footer-link-color: #0277bd; 890 | --drawer-back-color: #f8f8f8; 891 | --drawer-hover-back-color: #f0f0f0; 892 | --drawer-border-color: #ddd; 893 | --drawer-close-color: #444; } 894 | 895 | header { 896 | height: 3.1875rem; 897 | background: var(--header-back-color); 898 | color: var(--header-fore-color); 899 | border-bottom: 0.0625rem solid var(--header-border-color); 900 | padding: calc(var(--universal-padding) / 4) 0; 901 | white-space: nowrap; 902 | overflow-x: auto; 903 | overflow-y: hidden; } 904 | header.row { 905 | box-sizing: content-box; } 906 | header .logo { 907 | color: var(--header-fore-color); 908 | font-size: 1.75rem; 909 | padding: var(--universal-padding) calc(2 * var(--universal-padding)); 910 | text-decoration: none; } 911 | header button, header [type="button"], header .button, header [role="button"] { 912 | box-sizing: border-box; 913 | position: relative; 914 | top: calc(0rem - var(--universal-padding) / 4); 915 | height: calc(3.1875rem + var(--universal-padding) / 2); 916 | background: var(--header-back-color); 917 | line-height: calc(3.1875rem - var(--universal-padding) * 1.5); 918 | text-align: center; 919 | color: var(--header-fore-color); 920 | border: 0; 921 | border-radius: 0; 922 | margin: 0; 923 | text-transform: uppercase; } 924 | header button:hover, header button:focus, header [type="button"]:hover, header [type="button"]:focus, header .button:hover, header .button:focus, header [role="button"]:hover, header [role="button"]:focus { 925 | background: var(--header-hover-back-color); } 926 | 927 | nav { 928 | background: var(--nav-back-color); 929 | color: var(--nav-fore-color); 930 | border: 0.0625rem solid var(--nav-border-color); 931 | border-radius: var(--universal-border-radius); 932 | margin: var(--universal-margin); } 933 | nav * { 934 | padding: var(--universal-padding) calc(1.5 * var(--universal-padding)); } 935 | nav a, nav a:visited { 936 | display: block; 937 | color: var(--nav-link-color); 938 | border-radius: var(--universal-border-radius); 939 | transition: background 0.3s; } 940 | nav a:hover, nav a:focus, nav a:visited:hover, nav a:visited:focus { 941 | text-decoration: none; 942 | background: var(--nav-hover-back-color); } 943 | nav .sublink-1 { 944 | position: relative; 945 | margin-left: calc(2 * var(--universal-padding)); } 946 | nav .sublink-1:before { 947 | position: absolute; 948 | left: calc(var(--universal-padding) - 1 * var(--universal-padding)); 949 | top: -0.0625rem; 950 | content: ''; 951 | height: 100%; 952 | border: 0.0625rem solid var(--nav-border-color); 953 | border-left: 0; } 954 | nav .sublink-2 { 955 | position: relative; 956 | margin-left: calc(4 * var(--universal-padding)); } 957 | nav .sublink-2:before { 958 | position: absolute; 959 | left: calc(var(--universal-padding) - 3 * var(--universal-padding)); 960 | top: -0.0625rem; 961 | content: ''; 962 | height: 100%; 963 | border: 0.0625rem solid var(--nav-border-color); 964 | border-left: 0; } 965 | 966 | footer { 967 | background: var(--footer-back-color); 968 | color: var(--footer-fore-color); 969 | border-top: 0.0625rem solid var(--footer-border-color); 970 | padding: calc(2 * var(--universal-padding)) var(--universal-padding); 971 | font-size: 0.875rem; } 972 | footer a, footer a:visited { 973 | color: var(--footer-link-color); } 974 | 975 | header.sticky { 976 | position: -webkit-sticky; 977 | position: sticky; 978 | z-index: 1101; 979 | top: 0; } 980 | 981 | footer.sticky { 982 | position: -webkit-sticky; 983 | position: sticky; 984 | z-index: 1101; 985 | bottom: 0; } 986 | 987 | .drawer-toggle:before { 988 | display: inline-block; 989 | position: relative; 990 | vertical-align: bottom; 991 | content: '\00a0\2261\00a0'; 992 | font-family: sans-serif; 993 | font-size: 1.5em; } 994 | @media screen and (min-width: 500px) { 995 | .drawer-toggle:not(.persistent) { 996 | display: none; } } 997 | 998 | [type="checkbox"].drawer { 999 | height: 1px; 1000 | width: 1px; 1001 | margin: -1px; 1002 | overflow: hidden; 1003 | position: absolute; 1004 | clip: rect(0 0 0 0); 1005 | -webkit-clip-path: inset(100%); 1006 | clip-path: inset(100%); } 1007 | [type="checkbox"].drawer + * { 1008 | display: block; 1009 | box-sizing: border-box; 1010 | position: fixed; 1011 | top: 0; 1012 | width: 320px; 1013 | height: 100vh; 1014 | overflow-y: auto; 1015 | background: var(--drawer-back-color); 1016 | border: 0.0625rem solid var(--drawer-border-color); 1017 | border-radius: 0; 1018 | margin: 0; 1019 | z-index: 1110; 1020 | right: -320px; 1021 | transition: right 0.3s; } 1022 | [type="checkbox"].drawer + * .drawer-close { 1023 | position: absolute; 1024 | top: var(--universal-margin); 1025 | right: var(--universal-margin); 1026 | z-index: 1111; 1027 | width: 2rem; 1028 | height: 2rem; 1029 | border-radius: var(--universal-border-radius); 1030 | padding: var(--universal-padding); 1031 | margin: 0; 1032 | cursor: pointer; 1033 | transition: background 0.3s; } 1034 | [type="checkbox"].drawer + * .drawer-close:before { 1035 | display: block; 1036 | content: '\00D7'; 1037 | color: var(--drawer-close-color); 1038 | position: relative; 1039 | font-family: sans-serif; 1040 | font-size: 2rem; 1041 | line-height: 1; 1042 | text-align: center; } 1043 | [type="checkbox"].drawer + * .drawer-close:hover, [type="checkbox"].drawer + * .drawer-close:focus { 1044 | background: var(--drawer-hover-back-color); } 1045 | @media screen and (max-width: 320px) { 1046 | [type="checkbox"].drawer + * { 1047 | width: 100%; } } 1048 | [type="checkbox"].drawer:checked + * { 1049 | right: 0; } 1050 | @media screen and (min-width: 500px) { 1051 | [type="checkbox"].drawer:not(.persistent) + * { 1052 | position: static; 1053 | height: 100%; 1054 | z-index: 1100; } 1055 | [type="checkbox"].drawer:not(.persistent) + * .drawer-close { 1056 | display: none; } } 1057 | 1058 | /* 1059 | Definitions for the responsive table component. 1060 | */ 1061 | /* Table module CSS variable definitions. */ 1062 | :root { 1063 | --table-border-color: #aaa; 1064 | --table-border-separator-color: #666; 1065 | --table-head-back-color: #e6e6e6; 1066 | --table-head-fore-color: #111; 1067 | --table-body-back-color: #f8f8f8; 1068 | --table-body-fore-color: #111; 1069 | --table-body-alt-back-color: #eee; } 1070 | 1071 | table { 1072 | border-collapse: separate; 1073 | border-spacing: 0; 1074 | : margin: calc(1.5 * var(--universal-margin)) var(--universal-margin); 1075 | display: flex; 1076 | flex: 0 1 auto; 1077 | flex-flow: row wrap; 1078 | padding: var(--universal-padding); 1079 | padding-top: 0; 1080 | margin: calc(1.5 * var(--universal-margin)) var(--universal-margin); } 1081 | table caption { 1082 | font-size: 1.25 * rem; 1083 | margin: calc(2 * var(--universal-margin)) 0; 1084 | max-width: 100%; 1085 | flex: 0 0 100%; 1086 | text-align: left;} 1087 | table thead, table tbody { 1088 | display: flex; 1089 | flex-flow: row wrap; 1090 | border: 0.0625rem solid var(--table-border-color); } 1091 | table thead { 1092 | z-index: 999; 1093 | border-radius: var(--universal-border-radius) var(--universal-border-radius) 0 0; 1094 | border-bottom: 0.0625rem solid var(--table-border-separator-color); } 1095 | table tbody { 1096 | border-top: 0; 1097 | margin-top: calc(0 - var(--universal-margin)); 1098 | border-radius: 0 0 var(--universal-border-radius) var(--universal-border-radius); } 1099 | table tr { 1100 | display: flex; 1101 | padding: 0; } 1102 | table th, table td { 1103 | padding: calc(0.5 * var(--universal-padding)); 1104 | font-size: 0.9rem; } 1105 | table th { 1106 | text-align: left; 1107 | background: var(--table-head-back-color); 1108 | color: var(--table-head-fore-color); } 1109 | table td { 1110 | background: var(--table-body-back-color); 1111 | color: var(--table-body-fore-color); 1112 | border-top: 0.0625rem solid var(--table-border-color); } 1113 | 1114 | table:not(.horizontal) { 1115 | overflow: auto; 1116 | max-height: 850px; } 1117 | table:not(.horizontal) thead, table:not(.horizontal) tbody { 1118 | max-width: 100%; 1119 | flex: 0 0 100%; } 1120 | table:not(.horizontal) tr { 1121 | flex-flow: row wrap; 1122 | flex: 0 0 100%; } 1123 | table:not(.horizontal) th, table:not(.horizontal) td { 1124 | flex: 1 0 0%; 1125 | overflow: hidden; 1126 | text-overflow: ellipsis; } 1127 | table:not(.horizontal) thead { 1128 | position: sticky; 1129 | top: 0; } 1130 | table:not(.horizontal) tbody tr:first-child td { 1131 | border-top: 0; } 1132 | 1133 | table.horizontal { 1134 | border: 0; } 1135 | table.horizontal thead, table.horizontal tbody { 1136 | border: 0; 1137 | flex-flow: row nowrap; } 1138 | table.horizontal tbody { 1139 | overflow: auto; 1140 | justify-content: space-between; 1141 | flex: 1 0 0; 1142 | margin-left: calc( 4 * var(--universal-margin)); 1143 | padding-bottom: calc(var(--universal-padding) / 4); } 1144 | table.horizontal tr { 1145 | flex-direction: column; 1146 | flex: 1 0 auto; } 1147 | table.horizontal th, table.horizontal td { 1148 | width: 100%; 1149 | border: 0; 1150 | border-bottom: 0.0625rem solid var(--table-border-color); } 1151 | table.horizontal th:not(:first-child), table.horizontal td:not(:first-child) { 1152 | border-top: 0; } 1153 | table.horizontal th { 1154 | text-align: right; 1155 | border-left: 0.0625rem solid var(--table-border-color); 1156 | border-right: 0.0625rem solid var(--table-border-separator-color); } 1157 | table.horizontal thead tr:first-child { 1158 | padding-left: 0; } 1159 | table.horizontal th:first-child, table.horizontal td:first-child { 1160 | border-top: 0.0625rem solid var(--table-border-color); } 1161 | table.horizontal tbody tr:last-child td { 1162 | border-right: 0.0625rem solid var(--table-border-color); } 1163 | table.horizontal tbody tr:last-child td:first-child { 1164 | border-top-right-radius: 0.25rem; } 1165 | table.horizontal tbody tr:last-child td:last-child { 1166 | border-bottom-right-radius: 0.25rem; } 1167 | table.horizontal thead tr:first-child th:first-child { 1168 | border-top-left-radius: 0.25rem; } 1169 | table.horizontal thead tr:first-child th:last-child { 1170 | border-bottom-left-radius: 0.25rem; } 1171 | 1172 | @media screen and (max-width: 499px) { 1173 | table, table.horizontal { 1174 | border-collapse: collapse; 1175 | border: 0; 1176 | width: 100%; 1177 | display: table; } 1178 | table thead, table th, table.horizontal thead, table.horizontal th { 1179 | border: 0; 1180 | height: 1px; 1181 | width: 1px; 1182 | margin: -1px; 1183 | overflow: hidden; 1184 | padding: 0; 1185 | position: absolute; 1186 | clip: rect(0 0 0 0); 1187 | -webkit-clip-path: inset(100%); 1188 | clip-path: inset(100%); } 1189 | table tbody, table.horizontal tbody { 1190 | border: 0; 1191 | display: table-row-group; } 1192 | table tr, table.horizontal tr { 1193 | display: block; 1194 | border: 0.0625rem solid var(--table-border-color); 1195 | border-radius: var(--universal-border-radius); 1196 | background: #fafafa; 1197 | padding: var(--universal-padding); 1198 | margin: var(--universal-margin); 1199 | margin-bottom: calc(2 * var(--universal-margin)); } 1200 | table th, table td, table.horizontal th, table.horizontal td { 1201 | width: auto; } 1202 | table td, table.horizontal td { 1203 | display: block; 1204 | border: 0; 1205 | text-align: right; } 1206 | table td:before, table.horizontal td:before { 1207 | content: attr(data-label); 1208 | float: left; 1209 | font-weight: 600; } 1210 | table th:first-child, table td:first-child, table.horizontal th:first-child, table.horizontal td:first-child { 1211 | border-top: 0; } 1212 | table tbody tr:last-child td, table.horizontal tbody tr:last-child td { 1213 | border-right: 0; } } 1214 | :root { 1215 | --table-body-alt-back-color: #eee; } 1216 | 1217 | table tr:nth-of-type(2n) > td { 1218 | background: var(--table-body-alt-back-color); } 1219 | 1220 | @media screen and (max-width: 500px) { 1221 | table tr:nth-of-type(2n) { 1222 | background: var(--table-body-alt-back-color); } } 1223 | :root { 1224 | --table-body-hover-back-color: #90caf9; } 1225 | 1226 | table.hoverable tr:hover, table.hoverable tr:hover > td, table.hoverable tr:focus, table.hoverable tr:focus > td { 1227 | background: var(--table-body-hover-back-color); } 1228 | 1229 | @media screen and (max-width: 500px) { 1230 | table.hoverable tr:hover, table.hoverable tr:hover > td, table.hoverable tr:focus, table.hoverable tr:focus > td { 1231 | background: var(--table-body-hover-back-color); } } 1232 | /* 1233 | Definitions for contextual background elements, toasts and tooltips. 1234 | */ 1235 | /* Contextual module CSS variable definitions */ 1236 | :root { 1237 | --mark-back-color: #0277bd; 1238 | --mark-fore-color: #fafafa; } 1239 | 1240 | mark { 1241 | background: var(--mark-back-color); 1242 | color: var(--mark-fore-color); 1243 | font-size: 0.95em; 1244 | line-height: 1em; 1245 | border-radius: var(--universal-border-radius); 1246 | padding: calc(var(--universal-padding) / 4) calc(var(--universal-padding) / 2); } 1247 | mark.inline-block { 1248 | display: inline-block; 1249 | font-size: 1em; 1250 | line-height: 1.5; 1251 | padding: calc(var(--universal-padding) / 2) var(--universal-padding); } 1252 | 1253 | :root { 1254 | --toast-back-color: #424242; 1255 | --toast-fore-color: #fafafa; } 1256 | 1257 | .toast { 1258 | position: fixed; 1259 | bottom: calc(var(--universal-margin) * 3); 1260 | left: 50%; 1261 | transform: translate(-50%, -50%); 1262 | z-index: 1111; 1263 | color: var(--toast-fore-color); 1264 | background: var(--toast-back-color); 1265 | border-radius: calc(var(--universal-border-radius) * 16); 1266 | padding: var(--universal-padding) calc(var(--universal-padding) * 3); } 1267 | 1268 | :root { 1269 | --tooltip-back-color: #212121; 1270 | --tooltip-fore-color: #fafafa; } 1271 | 1272 | .tooltip { 1273 | position: relative; 1274 | display: inline-block; } 1275 | .tooltip:before, .tooltip:after { 1276 | position: absolute; 1277 | opacity: 0; 1278 | clip: rect(0 0 0 0); 1279 | -webkit-clip-path: inset(100%); 1280 | clip-path: inset(100%); 1281 | transition: all 0.3s; 1282 | z-index: 1010; 1283 | left: 50%; } 1284 | .tooltip:not(.bottom):before, .tooltip:not(.bottom):after { 1285 | bottom: 75%; } 1286 | .tooltip.bottom:before, .tooltip.bottom:after { 1287 | top: 75%; } 1288 | .tooltip:hover:before, .tooltip:hover:after, .tooltip:focus:before, .tooltip:focus:after { 1289 | opacity: 1; 1290 | clip: auto; 1291 | -webkit-clip-path: inset(0%); 1292 | clip-path: inset(0%); } 1293 | .tooltip:before { 1294 | content: ''; 1295 | background: transparent; 1296 | border: var(--universal-margin) solid transparent; 1297 | left: calc(50% - var(--universal-margin)); } 1298 | .tooltip:not(.bottom):before { 1299 | border-top-color: #212121; } 1300 | .tooltip.bottom:before { 1301 | border-bottom-color: #212121; } 1302 | .tooltip:after { 1303 | content: attr(aria-label); 1304 | color: var(--tooltip-fore-color); 1305 | background: var(--tooltip-back-color); 1306 | border-radius: var(--universal-border-radius); 1307 | padding: var(--universal-padding); 1308 | white-space: nowrap; 1309 | transform: translateX(-50%); } 1310 | .tooltip:not(.bottom):after { 1311 | margin-bottom: calc(2 * var(--universal-margin)); } 1312 | .tooltip.bottom:after { 1313 | margin-top: calc(2 * var(--universal-margin)); } 1314 | 1315 | :root { 1316 | --modal-overlay-color: rgba(0, 0, 0, 0.45); 1317 | --modal-close-color: #444; 1318 | --modal-close-hover-color: #f0f0f0; } 1319 | 1320 | [type="checkbox"].modal { 1321 | height: 1px; 1322 | width: 1px; 1323 | margin: -1px; 1324 | overflow: hidden; 1325 | position: absolute; 1326 | clip: rect(0 0 0 0); 1327 | -webkit-clip-path: inset(100%); 1328 | clip-path: inset(100%); } 1329 | [type="checkbox"].modal + div { 1330 | position: fixed; 1331 | top: 0; 1332 | left: 0; 1333 | display: none; 1334 | width: 100vw; 1335 | height: 100vh; 1336 | background: var(--modal-overlay-color); } 1337 | [type="checkbox"].modal + div .card { 1338 | margin: 0 auto; 1339 | max-height: 50vh; 1340 | overflow: auto; } 1341 | [type="checkbox"].modal + div .card .modal-close { 1342 | position: absolute; 1343 | top: 0; 1344 | right: 0; 1345 | width: 1.75rem; 1346 | height: 1.75rem; 1347 | border-radius: var(--universal-border-radius); 1348 | padding: var(--universal-padding); 1349 | margin: 0; 1350 | cursor: pointer; 1351 | transition: background 0.3s; } 1352 | [type="checkbox"].modal + div .card .modal-close:before { 1353 | display: block; 1354 | content: '\00D7'; 1355 | color: var(--modal-close-color); 1356 | position: relative; 1357 | font-family: sans-serif; 1358 | font-size: 1.75rem; 1359 | line-height: 1; 1360 | text-align: center; } 1361 | [type="checkbox"].modal + div .card .modal-close:hover, [type="checkbox"].modal + div .card .modal-close:focus { 1362 | background: var(--modal-close-hover-color); } 1363 | [type="checkbox"].modal:checked + div { 1364 | display: flex; 1365 | flex: 0 1 auto; 1366 | z-index: 1200; } 1367 | [type="checkbox"].modal:checked + div .card .modal-close { 1368 | z-index: 1211; } 1369 | 1370 | :root { 1371 | --collapse-label-back-color: #e8e8e8; 1372 | --collapse-label-fore-color: #212121; 1373 | --collapse-label-hover-back-color: #f0f0f0; 1374 | --collapse-selected-label-back-color: #ececec; 1375 | --collapse-border-color: #ddd; 1376 | --collapse-content-back-color: #fafafa; 1377 | --collapse-selected-label-border-color: #0277bd; } 1378 | 1379 | .collapse { 1380 | width: calc(100% - 2 * var(--universal-margin)); 1381 | opacity: 1; 1382 | display: flex; 1383 | flex-direction: column; 1384 | margin: var(--universal-margin); 1385 | border-radius: var(--universal-border-radius); } 1386 | .collapse > [type="radio"], .collapse > [type="checkbox"] { 1387 | height: 1px; 1388 | width: 1px; 1389 | margin: -1px; 1390 | overflow: hidden; 1391 | position: absolute; 1392 | clip: rect(0 0 0 0); 1393 | -webkit-clip-path: inset(100%); 1394 | clip-path: inset(100%); } 1395 | .collapse > label { 1396 | flex-grow: 1; 1397 | display: inline-block; 1398 | height: 1.5rem; 1399 | cursor: pointer; 1400 | transition: background 0.3s; 1401 | color: var(--collapse-label-fore-color); 1402 | background: var(--collapse-label-back-color); 1403 | border: 0.0625rem solid var(--collapse-border-color); 1404 | padding: calc(1.5 * var(--universal-padding)); } 1405 | .collapse > label:hover, .collapse > label:focus { 1406 | background: var(--collapse-label-hover-back-color); } 1407 | .collapse > label + div { 1408 | flex-basis: auto; 1409 | height: 1px; 1410 | width: 1px; 1411 | margin: -1px; 1412 | overflow: hidden; 1413 | position: absolute; 1414 | clip: rect(0 0 0 0); 1415 | -webkit-clip-path: inset(100%); 1416 | clip-path: inset(100%); 1417 | transition: max-height 0.3s; 1418 | max-height: 1px; } 1419 | .collapse > :checked + label { 1420 | background: var(--collapse-selected-label-back-color); 1421 | border-bottom-color: var(--collapse-selected-label-border-color); } 1422 | .collapse > :checked + label + div { 1423 | box-sizing: border-box; 1424 | position: relative; 1425 | width: 100%; 1426 | height: auto; 1427 | overflow: auto; 1428 | margin: 0; 1429 | background: var(--collapse-content-back-color); 1430 | border: 0.0625rem solid var(--collapse-border-color); 1431 | border-top: 0; 1432 | padding: var(--universal-padding); 1433 | clip: auto; 1434 | -webkit-clip-path: inset(0%); 1435 | clip-path: inset(0%); 1436 | max-height: 850px; } 1437 | .collapse > label:not(:first-of-type) { 1438 | border-top: 0; } 1439 | .collapse > label:first-of-type { 1440 | border-radius: var(--universal-border-radius) var(--universal-border-radius) 0 0; } 1441 | .collapse > label:last-of-type:not(:first-of-type) { 1442 | border-radius: 0 0 var(--universal-border-radius) var(--universal-border-radius); } 1443 | .collapse > label:last-of-type:first-of-type { 1444 | border-radius: var(--universal-border-radius); } 1445 | .collapse > :checked:last-of-type:not(:first-of-type) + label { 1446 | border-radius: 0; } 1447 | .collapse > :checked:last-of-type + label + div { 1448 | border-radius: 0 0 var(--universal-border-radius) var(--universal-border-radius); } 1449 | 1450 | /* 1451 | Custom elements for contextual background elements, toasts and tooltips. 1452 | */ 1453 | mark.secondary { 1454 | --mark-back-color: #d32f2f; } 1455 | 1456 | mark.tertiary { 1457 | --mark-back-color: #308732; } 1458 | 1459 | mark.tag { 1460 | padding: calc(var(--universal-padding)/2) var(--universal-padding); 1461 | border-radius: 1em; } 1462 | 1463 | /* 1464 | Definitions for progress elements and spinners. 1465 | */ 1466 | /* Progess module CSS variable definitions */ 1467 | :root { 1468 | --progress-back-color: #ddd; 1469 | --progress-fore-color: #555; } 1470 | 1471 | progress { 1472 | display: block; 1473 | vertical-align: baseline; 1474 | -webkit-appearance: none; 1475 | -moz-appearance: none; 1476 | appearance: none; 1477 | height: 0.75rem; 1478 | width: calc(100% - 2 * var(--universal-margin)); 1479 | margin: var(--universal-margin); 1480 | border: 0; 1481 | border-radius: calc(2 * var(--universal-border-radius)); 1482 | background: var(--progress-back-color); 1483 | color: var(--progress-fore-color); } 1484 | progress::-webkit-progress-value { 1485 | background: var(--progress-fore-color); 1486 | border-top-left-radius: calc(2 * var(--universal-border-radius)); 1487 | border-bottom-left-radius: calc(2 * var(--universal-border-radius)); } 1488 | progress::-webkit-progress-bar { 1489 | background: var(--progress-back-color); } 1490 | progress::-moz-progress-bar { 1491 | background: var(--progress-fore-color); 1492 | border-top-left-radius: calc(2 * var(--universal-border-radius)); 1493 | border-bottom-left-radius: calc(2 * var(--universal-border-radius)); } 1494 | progress[value="1000"]::-webkit-progress-value { 1495 | border-radius: calc(2 * var(--universal-border-radius)); } 1496 | progress[value="1000"]::-moz-progress-bar { 1497 | border-radius: calc(2 * var(--universal-border-radius)); } 1498 | progress.inline { 1499 | display: inline-block; 1500 | vertical-align: middle; 1501 | width: 60%; } 1502 | 1503 | :root { 1504 | --spinner-back-color: #ddd; 1505 | --spinner-fore-color: #555; } 1506 | 1507 | @keyframes spinner-donut-anim { 1508 | 0% { 1509 | transform: rotate(0deg); } 1510 | 100% { 1511 | transform: rotate(360deg); } } 1512 | .spinner { 1513 | display: inline-block; 1514 | margin: var(--universal-margin); 1515 | border: 0.25rem solid var(--spinner-back-color); 1516 | border-left: 0.25rem solid var(--spinner-fore-color); 1517 | border-radius: 50%; 1518 | width: 1.25rem; 1519 | height: 1.25rem; 1520 | animation: spinner-donut-anim 1.2s linear infinite; } 1521 | 1522 | /* 1523 | Custom elements for progress bars and spinners. 1524 | */ 1525 | progress.primary { 1526 | --progress-fore-color: #1976d2; } 1527 | 1528 | progress.secondary { 1529 | --progress-fore-color: #d32f2f; } 1530 | 1531 | progress.tertiary { 1532 | --progress-fore-color: #308732; } 1533 | 1534 | .spinner.primary { 1535 | --spinner-fore-color: #1976d2; } 1536 | 1537 | .spinner.secondary { 1538 | --spinner-fore-color: #d32f2f; } 1539 | 1540 | .spinner.tertiary { 1541 | --spinner-fore-color: #308732; } 1542 | 1543 | /* 1544 | Definitions for icons - powered by Feather (https://feathericons.com/). 1545 | */ 1546 | span[class^='icon-'] { 1547 | display: inline-block; 1548 | height: 1em; 1549 | width: 1em; 1550 | vertical-align: -0.125em; 1551 | background-size: contain; 1552 | margin: 0 calc(var(--universal-margin) / 4); } 1553 | span[class^='icon-'].secondary { 1554 | -webkit-filter: invert(25%); 1555 | filter: invert(25%); } 1556 | span[class^='icon-'].inverse { 1557 | -webkit-filter: invert(100%); 1558 | filter: invert(100%); } 1559 | 1560 | span.icon-alert { 1561 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12' y2='16'%3E%3C/line%3E%3C/svg%3E"); } 1562 | span.icon-bookmark { 1563 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z'%3E%3C/path%3E%3C/svg%3E"); } 1564 | span.icon-calendar { 1565 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E"); } 1566 | span.icon-credit { 1567 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='1' y1='10' x2='23' y2='10'%3E%3C/line%3E%3C/svg%3E"); } 1568 | span.icon-edit { 1569 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 14.66V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h5.34'%3E%3C/path%3E%3Cpolygon points='18 2 22 6 12 16 8 16 8 12 18 2'%3E%3C/polygon%3E%3C/svg%3E"); } 1570 | span.icon-link { 1571 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'%3E%3C/path%3E%3Cpolyline points='15 3 21 3 21 9'%3E%3C/polyline%3E%3Cline x1='10' y1='14' x2='21' y2='3'%3E%3C/line%3E%3C/svg%3E"); } 1572 | span.icon-help { 1573 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3'%3E%3C/path%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='17' x2='12' y2='17'%3E%3C/line%3E%3C/svg%3E"); } 1574 | span.icon-home { 1575 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'%3E%3C/path%3E%3Cpolyline points='9 22 9 12 15 12 15 22'%3E%3C/polyline%3E%3C/svg%3E"); } 1576 | span.icon-info { 1577 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='16' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='8' x2='12' y2='8'%3E%3C/line%3E%3C/svg%3E"); } 1578 | span.icon-lock { 1579 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'%3E%3C/rect%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'%3E%3C/path%3E%3C/svg%3E"); } 1580 | span.icon-mail { 1581 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'%3E%3C/path%3E%3Cpolyline points='22,6 12,13 2,6'%3E%3C/polyline%3E%3C/svg%3E"); } 1582 | span.icon-location { 1583 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'%3E%3C/path%3E%3Ccircle cx='12' cy='10' r='3'%3E%3C/circle%3E%3C/svg%3E"); } 1584 | span.icon-phone { 1585 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'%3E%3C/path%3E%3C/svg%3E"); } 1586 | span.icon-rss { 1587 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11a9 9 0 0 1 9 9'%3E%3C/path%3E%3Cpath d='M4 4a16 16 0 0 1 16 16'%3E%3C/path%3E%3Ccircle cx='5' cy='19' r='1'%3E%3C/circle%3E%3C/svg%3E"); } 1588 | span.icon-search { 1589 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E"); } 1590 | span.icon-settings { 1591 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'%3E%3C/circle%3E%3Cpath d='M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z'%3E%3C/path%3E%3C/svg%3E"); } 1592 | span.icon-share { 1593 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='3'%3E%3C/circle%3E%3Ccircle cx='6' cy='12' r='3'%3E%3C/circle%3E%3Ccircle cx='18' cy='19' r='3'%3E%3C/circle%3E%3Cline x1='8.59' y1='13.51' x2='15.42' y2='17.49'%3E%3C/line%3E%3Cline x1='15.41' y1='6.51' x2='8.59' y2='10.49'%3E%3C/line%3E%3C/svg%3E"); } 1594 | span.icon-cart { 1595 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'%3E%3C/circle%3E%3Ccircle cx='20' cy='21' r='1'%3E%3C/circle%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'%3E%3C/path%3E%3C/svg%3E"); } 1596 | span.icon-upload { 1597 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'%3E%3C/path%3E%3Cpolyline points='17 8 12 3 7 8'%3E%3C/polyline%3E%3Cline x1='12' y1='3' x2='12' y2='15'%3E%3C/line%3E%3C/svg%3E"); } 1598 | span.icon-user { 1599 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='12' cy='7' r='4'%3E%3C/circle%3E%3C/svg%3E"); } 1600 | 1601 | /* 1602 | Definitions for utilities and helper classes. 1603 | */ 1604 | /* Utility module CSS variable definitions */ 1605 | :root { 1606 | --generic-border-color: rgba(0, 0, 0, 0.3); 1607 | --generic-box-shadow: 0 0.25rem 0.25rem 0 rgba(0, 0, 0, 0.125), 0 0.125rem 0.125rem -0.125rem rgba(0, 0, 0, 0.25); } 1608 | 1609 | .hidden { 1610 | display: none !important; } 1611 | 1612 | .visually-hidden { 1613 | position: absolute !important; 1614 | width: 1px !important; 1615 | height: 1px !important; 1616 | margin: -1px !important; 1617 | border: 0 !important; 1618 | padding: 0 !important; 1619 | clip: rect(0 0 0 0) !important; 1620 | -webkit-clip-path: inset(100%) !important; 1621 | clip-path: inset(100%) !important; 1622 | overflow: hidden !important; } 1623 | 1624 | .bordered { 1625 | border: 0.0625rem solid var(--generic-border-color) !important; } 1626 | 1627 | .rounded { 1628 | border-radius: var(--universal-border-radius) !important; } 1629 | 1630 | .circular { 1631 | border-radius: 50% !important; } 1632 | 1633 | .shadowed { 1634 | box-shadow: var(--generic-box-shadow) !important; } 1635 | 1636 | .responsive-margin { 1637 | margin: calc(var(--universal-margin) / 4) !important; } 1638 | @media screen and (min-width: 500px) { 1639 | .responsive-margin { 1640 | margin: calc(var(--universal-margin) / 2) !important; } } 1641 | @media screen and (min-width: 1280px) { 1642 | .responsive-margin { 1643 | margin: var(--universal-margin) !important; } } 1644 | 1645 | .responsive-padding { 1646 | padding: calc(var(--universal-padding) / 4) !important; } 1647 | @media screen and (min-width: 500px) { 1648 | .responsive-padding { 1649 | padding: calc(var(--universal-padding) / 2) !important; } } 1650 | @media screen and (min-width: 1280px) { 1651 | .responsive-padding { 1652 | padding: var(--universal-padding) !important; } } 1653 | 1654 | @media screen and (max-width: 499px) { 1655 | .hidden-sm { 1656 | display: none !important; } } 1657 | @media screen and (min-width: 500px) and (max-width: 1279px) { 1658 | .hidden-md { 1659 | display: none !important; } } 1660 | @media screen and (min-width: 1280px) { 1661 | .hidden-lg { 1662 | display: none !important; } } 1663 | @media screen and (max-width: 499px) { 1664 | .visually-hidden-sm { 1665 | position: absolute !important; 1666 | width: 1px !important; 1667 | height: 1px !important; 1668 | margin: -1px !important; 1669 | border: 0 !important; 1670 | padding: 0 !important; 1671 | clip: rect(0 0 0 0) !important; 1672 | -webkit-clip-path: inset(100%) !important; 1673 | clip-path: inset(100%) !important; 1674 | overflow: hidden !important; } } 1675 | @media screen and (min-width: 500px) and (max-width: 1279px) { 1676 | .visually-hidden-md { 1677 | position: absolute !important; 1678 | width: 1px !important; 1679 | height: 1px !important; 1680 | margin: -1px !important; 1681 | border: 0 !important; 1682 | padding: 0 !important; 1683 | clip: rect(0 0 0 0) !important; 1684 | -webkit-clip-path: inset(100%) !important; 1685 | clip-path: inset(100%) !important; 1686 | overflow: hidden !important; } } 1687 | @media screen and (min-width: 1280px) { 1688 | .visually-hidden-lg { 1689 | position: absolute !important; 1690 | width: 1px !important; 1691 | height: 1px !important; 1692 | margin: -1px !important; 1693 | border: 0 !important; 1694 | padding: 0 !important; 1695 | clip: rect(0 0 0 0) !important; 1696 | -webkit-clip-path: inset(100%) !important; 1697 | clip-path: inset(100%) !important; 1698 | overflow: hidden !important; } } 1699 | 1700 | /*# sourceMappingURL=mini-default.css.map */ 1701 | -------------------------------------------------------------------------------- /_htmresc/mini-st_2020.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /* 3 | Flavor name: Custom (mini-custom) 4 | Generated online - https://minicss.org/flavors 5 | mini.css version: v3.0.1 6 | */ 7 | /* 8 | Browsers resets and base typography. 9 | */ 10 | /* Core module CSS variable definitions */ 11 | :root { 12 | --fore-color: #03234b; 13 | --secondary-fore-color: #03234b; 14 | --back-color: #ffffff; 15 | --secondary-back-color: #ffffff; 16 | --blockquote-color: #e6007e; 17 | --pre-color: #e6007e; 18 | --border-color: #3cb4e6; 19 | --secondary-border-color: #3cb4e6; 20 | --heading-ratio: 1.2; 21 | --universal-margin: 0.5rem; 22 | --universal-padding: 0.25rem; 23 | --universal-border-radius: 0.075rem; 24 | --background-margin: 1.5%; 25 | --a-link-color: #3cb4e6; 26 | --a-visited-color: #8c0078; } 27 | 28 | html { 29 | font-size: 13.5px; } 30 | 31 | a, b, del, em, i, ins, q, span, strong, u { 32 | font-size: 1em; } 33 | 34 | html, * { 35 | font-family: -apple-system, BlinkMacSystemFont, Helvetica, arial, sans-serif; 36 | line-height: 1.25; 37 | -webkit-text-size-adjust: 100%; } 38 | 39 | * { 40 | font-size: 1rem; } 41 | 42 | body { 43 | margin: 0; 44 | color: var(--fore-color); 45 | @background: var(--back-color); 46 | background: var(--back-color) linear-gradient(#ffd200, #ffd200) repeat-y left top; 47 | background-size: var(--background-margin); 48 | } 49 | 50 | details { 51 | display: block; } 52 | 53 | summary { 54 | display: list-item; } 55 | 56 | abbr[title] { 57 | border-bottom: none; 58 | text-decoration: underline dotted; } 59 | 60 | input { 61 | overflow: visible; } 62 | 63 | img { 64 | max-width: 100%; 65 | height: auto; } 66 | 67 | h1, h2, h3, h4, h5, h6 { 68 | line-height: 1.25; 69 | margin: calc(1.5 * var(--universal-margin)) var(--universal-margin); 70 | font-weight: 400; } 71 | h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { 72 | color: var(--secondary-fore-color); 73 | display: block; 74 | margin-top: -0.25rem; } 75 | 76 | h1 { 77 | font-size: calc(1rem * var(--heading-ratio) * var(--heading-ratio) * var(--heading-ratio)); } 78 | 79 | h2 { 80 | font-size: calc(1rem * var(--heading-ratio) * var(--heading-ratio) ); 81 | border-style: none none solid none ; 82 | border-width: thin; 83 | border-color: var(--border-color); } 84 | h3 { 85 | font-size: calc(1rem * var(--heading-ratio) ); } 86 | 87 | h4 { 88 | font-size: calc(1rem * var(--heading-ratio)); } 89 | 90 | h5 { 91 | font-size: 1rem; } 92 | 93 | h6 { 94 | font-size: calc(1rem / var(--heading-ratio)); } 95 | 96 | p { 97 | margin: var(--universal-margin); } 98 | 99 | ol, ul { 100 | margin: var(--universal-margin); 101 | padding-left: calc(3 * var(--universal-margin)); } 102 | 103 | b, strong { 104 | font-weight: 700; } 105 | 106 | hr { 107 | box-sizing: content-box; 108 | border: 0; 109 | line-height: 1.25em; 110 | margin: var(--universal-margin); 111 | height: 0.0714285714rem; 112 | background: linear-gradient(to right, transparent, var(--border-color) 20%, var(--border-color) 80%, transparent); } 113 | 114 | blockquote { 115 | display: block; 116 | position: relative; 117 | font-style: italic; 118 | color: var(--secondary-fore-color); 119 | margin: var(--universal-margin); 120 | padding: calc(3 * var(--universal-padding)); 121 | border: 0.0714285714rem solid var(--secondary-border-color); 122 | border-left: 0.3rem solid var(--blockquote-color); 123 | border-radius: 0 var(--universal-border-radius) var(--universal-border-radius) 0; } 124 | blockquote:before { 125 | position: absolute; 126 | top: calc(0rem - var(--universal-padding)); 127 | left: 0; 128 | font-family: sans-serif; 129 | font-size: 2rem; 130 | font-weight: 800; 131 | content: "\201c"; 132 | color: var(--blockquote-color); } 133 | blockquote[cite]:after { 134 | font-style: normal; 135 | font-size: 0.75em; 136 | font-weight: 700; 137 | content: "\a— " attr(cite); 138 | white-space: pre; } 139 | 140 | code, kbd, pre, samp { 141 | font-family: Menlo, Consolas, monospace; 142 | font-size: 0.85em; } 143 | 144 | code { 145 | background: var(--secondary-back-color); 146 | border-radius: var(--universal-border-radius); 147 | padding: calc(var(--universal-padding) / 4) calc(var(--universal-padding) / 2); } 148 | 149 | kbd { 150 | background: var(--fore-color); 151 | color: var(--back-color); 152 | border-radius: var(--universal-border-radius); 153 | padding: calc(var(--universal-padding) / 4) calc(var(--universal-padding) / 2); } 154 | 155 | pre { 156 | overflow: auto; 157 | background: var(--secondary-back-color); 158 | padding: calc(1.5 * var(--universal-padding)); 159 | margin: var(--universal-margin); 160 | border: 0.0714285714rem solid var(--secondary-border-color); 161 | border-left: 0.2857142857rem solid var(--pre-color); 162 | border-radius: 0 var(--universal-border-radius) var(--universal-border-radius) 0; } 163 | 164 | sup, sub, code, kbd { 165 | line-height: 0; 166 | position: relative; 167 | vertical-align: baseline; } 168 | 169 | small, sup, sub, figcaption { 170 | font-size: 0.75em; } 171 | 172 | sup { 173 | top: -0.5em; } 174 | 175 | sub { 176 | bottom: -0.25em; } 177 | 178 | figure { 179 | margin: var(--universal-margin); } 180 | 181 | figcaption { 182 | color: var(--secondary-fore-color); } 183 | 184 | a { 185 | text-decoration: none; } 186 | a:link { 187 | color: var(--a-link-color); } 188 | a:visited { 189 | color: var(--a-visited-color); } 190 | a:hover, a:focus { 191 | text-decoration: underline; } 192 | 193 | /* 194 | Definitions for the grid system, cards and containers. 195 | */ 196 | .container { 197 | margin: 0 auto; 198 | padding: 0 calc(1.5 * var(--universal-padding)); } 199 | 200 | .row { 201 | box-sizing: border-box; 202 | display: flex; 203 | flex: 0 1 auto; 204 | flex-flow: row wrap; 205 | margin: 0 0 0 var(--background-margin); } 206 | 207 | .col-sm, 208 | [class^='col-sm-'], 209 | [class^='col-sm-offset-'], 210 | .row[class*='cols-sm-'] > * { 211 | box-sizing: border-box; 212 | flex: 0 0 auto; 213 | padding: 0 calc(var(--universal-padding) / 2); } 214 | 215 | .col-sm, 216 | .row.cols-sm > * { 217 | max-width: 100%; 218 | flex-grow: 1; 219 | flex-basis: 0; } 220 | 221 | .col-sm-1, 222 | .row.cols-sm-1 > * { 223 | max-width: 8.3333333333%; 224 | flex-basis: 8.3333333333%; } 225 | 226 | .col-sm-offset-0 { 227 | margin-left: 0; } 228 | 229 | .col-sm-2, 230 | .row.cols-sm-2 > * { 231 | max-width: 16.6666666667%; 232 | flex-basis: 16.6666666667%; } 233 | 234 | .col-sm-offset-1 { 235 | margin-left: 8.3333333333%; } 236 | 237 | .col-sm-3, 238 | .row.cols-sm-3 > * { 239 | max-width: 25%; 240 | flex-basis: 25%; } 241 | 242 | .col-sm-offset-2 { 243 | margin-left: 16.6666666667%; } 244 | 245 | .col-sm-4, 246 | .row.cols-sm-4 > * { 247 | max-width: 33.3333333333%; 248 | flex-basis: 33.3333333333%; } 249 | 250 | .col-sm-offset-3 { 251 | margin-left: 25%; } 252 | 253 | .col-sm-5, 254 | .row.cols-sm-5 > * { 255 | max-width: 41.6666666667%; 256 | flex-basis: 41.6666666667%; } 257 | 258 | .col-sm-offset-4 { 259 | margin-left: 33.3333333333%; } 260 | 261 | .col-sm-6, 262 | .row.cols-sm-6 > * { 263 | max-width: 50%; 264 | flex-basis: 50%; } 265 | 266 | .col-sm-offset-5 { 267 | margin-left: 41.6666666667%; } 268 | 269 | .col-sm-7, 270 | .row.cols-sm-7 > * { 271 | max-width: 58.3333333333%; 272 | flex-basis: 58.3333333333%; } 273 | 274 | .col-sm-offset-6 { 275 | margin-left: 50%; } 276 | 277 | .col-sm-8, 278 | .row.cols-sm-8 > * { 279 | max-width: 66.6666666667%; 280 | flex-basis: 66.6666666667%; } 281 | 282 | .col-sm-offset-7 { 283 | margin-left: 58.3333333333%; } 284 | 285 | .col-sm-9, 286 | .row.cols-sm-9 > * { 287 | max-width: 75%; 288 | flex-basis: 75%; } 289 | 290 | .col-sm-offset-8 { 291 | margin-left: 66.6666666667%; } 292 | 293 | .col-sm-10, 294 | .row.cols-sm-10 > * { 295 | max-width: 83.3333333333%; 296 | flex-basis: 83.3333333333%; } 297 | 298 | .col-sm-offset-9 { 299 | margin-left: 75%; } 300 | 301 | .col-sm-11, 302 | .row.cols-sm-11 > * { 303 | max-width: 91.6666666667%; 304 | flex-basis: 91.6666666667%; } 305 | 306 | .col-sm-offset-10 { 307 | margin-left: 83.3333333333%; } 308 | 309 | .col-sm-12, 310 | .row.cols-sm-12 > * { 311 | max-width: 100%; 312 | flex-basis: 100%; } 313 | 314 | .col-sm-offset-11 { 315 | margin-left: 91.6666666667%; } 316 | 317 | .col-sm-normal { 318 | order: initial; } 319 | 320 | .col-sm-first { 321 | order: -999; } 322 | 323 | .col-sm-last { 324 | order: 999; } 325 | 326 | @media screen and (min-width: 500px) { 327 | .col-md, 328 | [class^='col-md-'], 329 | [class^='col-md-offset-'], 330 | .row[class*='cols-md-'] > * { 331 | box-sizing: border-box; 332 | flex: 0 0 auto; 333 | padding: 0 calc(var(--universal-padding) / 2); } 334 | 335 | .col-md, 336 | .row.cols-md > * { 337 | max-width: 100%; 338 | flex-grow: 1; 339 | flex-basis: 0; } 340 | 341 | .col-md-1, 342 | .row.cols-md-1 > * { 343 | max-width: 8.3333333333%; 344 | flex-basis: 8.3333333333%; } 345 | 346 | .col-md-offset-0 { 347 | margin-left: 0; } 348 | 349 | .col-md-2, 350 | .row.cols-md-2 > * { 351 | max-width: 16.6666666667%; 352 | flex-basis: 16.6666666667%; } 353 | 354 | .col-md-offset-1 { 355 | margin-left: 8.3333333333%; } 356 | 357 | .col-md-3, 358 | .row.cols-md-3 > * { 359 | max-width: 25%; 360 | flex-basis: 25%; } 361 | 362 | .col-md-offset-2 { 363 | margin-left: 16.6666666667%; } 364 | 365 | .col-md-4, 366 | .row.cols-md-4 > * { 367 | max-width: 33.3333333333%; 368 | flex-basis: 33.3333333333%; } 369 | 370 | .col-md-offset-3 { 371 | margin-left: 25%; } 372 | 373 | .col-md-5, 374 | .row.cols-md-5 > * { 375 | max-width: 41.6666666667%; 376 | flex-basis: 41.6666666667%; } 377 | 378 | .col-md-offset-4 { 379 | margin-left: 33.3333333333%; } 380 | 381 | .col-md-6, 382 | .row.cols-md-6 > * { 383 | max-width: 50%; 384 | flex-basis: 50%; } 385 | 386 | .col-md-offset-5 { 387 | margin-left: 41.6666666667%; } 388 | 389 | .col-md-7, 390 | .row.cols-md-7 > * { 391 | max-width: 58.3333333333%; 392 | flex-basis: 58.3333333333%; } 393 | 394 | .col-md-offset-6 { 395 | margin-left: 50%; } 396 | 397 | .col-md-8, 398 | .row.cols-md-8 > * { 399 | max-width: 66.6666666667%; 400 | flex-basis: 66.6666666667%; } 401 | 402 | .col-md-offset-7 { 403 | margin-left: 58.3333333333%; } 404 | 405 | .col-md-9, 406 | .row.cols-md-9 > * { 407 | max-width: 75%; 408 | flex-basis: 75%; } 409 | 410 | .col-md-offset-8 { 411 | margin-left: 66.6666666667%; } 412 | 413 | .col-md-10, 414 | .row.cols-md-10 > * { 415 | max-width: 83.3333333333%; 416 | flex-basis: 83.3333333333%; } 417 | 418 | .col-md-offset-9 { 419 | margin-left: 75%; } 420 | 421 | .col-md-11, 422 | .row.cols-md-11 > * { 423 | max-width: 91.6666666667%; 424 | flex-basis: 91.6666666667%; } 425 | 426 | .col-md-offset-10 { 427 | margin-left: 83.3333333333%; } 428 | 429 | .col-md-12, 430 | .row.cols-md-12 > * { 431 | max-width: 100%; 432 | flex-basis: 100%; } 433 | 434 | .col-md-offset-11 { 435 | margin-left: 91.6666666667%; } 436 | 437 | .col-md-normal { 438 | order: initial; } 439 | 440 | .col-md-first { 441 | order: -999; } 442 | 443 | .col-md-last { 444 | order: 999; } } 445 | @media screen and (min-width: 1280px) { 446 | .col-lg, 447 | [class^='col-lg-'], 448 | [class^='col-lg-offset-'], 449 | .row[class*='cols-lg-'] > * { 450 | box-sizing: border-box; 451 | flex: 0 0 auto; 452 | padding: 0 calc(var(--universal-padding) / 2); } 453 | 454 | .col-lg, 455 | .row.cols-lg > * { 456 | max-width: 100%; 457 | flex-grow: 1; 458 | flex-basis: 0; } 459 | 460 | .col-lg-1, 461 | .row.cols-lg-1 > * { 462 | max-width: 8.3333333333%; 463 | flex-basis: 8.3333333333%; } 464 | 465 | .col-lg-offset-0 { 466 | margin-left: 0; } 467 | 468 | .col-lg-2, 469 | .row.cols-lg-2 > * { 470 | max-width: 16.6666666667%; 471 | flex-basis: 16.6666666667%; } 472 | 473 | .col-lg-offset-1 { 474 | margin-left: 8.3333333333%; } 475 | 476 | .col-lg-3, 477 | .row.cols-lg-3 > * { 478 | max-width: 25%; 479 | flex-basis: 25%; } 480 | 481 | .col-lg-offset-2 { 482 | margin-left: 16.6666666667%; } 483 | 484 | .col-lg-4, 485 | .row.cols-lg-4 > * { 486 | max-width: 33.3333333333%; 487 | flex-basis: 33.3333333333%; } 488 | 489 | .col-lg-offset-3 { 490 | margin-left: 25%; } 491 | 492 | .col-lg-5, 493 | .row.cols-lg-5 > * { 494 | max-width: 41.6666666667%; 495 | flex-basis: 41.6666666667%; } 496 | 497 | .col-lg-offset-4 { 498 | margin-left: 33.3333333333%; } 499 | 500 | .col-lg-6, 501 | .row.cols-lg-6 > * { 502 | max-width: 50%; 503 | flex-basis: 50%; } 504 | 505 | .col-lg-offset-5 { 506 | margin-left: 41.6666666667%; } 507 | 508 | .col-lg-7, 509 | .row.cols-lg-7 > * { 510 | max-width: 58.3333333333%; 511 | flex-basis: 58.3333333333%; } 512 | 513 | .col-lg-offset-6 { 514 | margin-left: 50%; } 515 | 516 | .col-lg-8, 517 | .row.cols-lg-8 > * { 518 | max-width: 66.6666666667%; 519 | flex-basis: 66.6666666667%; } 520 | 521 | .col-lg-offset-7 { 522 | margin-left: 58.3333333333%; } 523 | 524 | .col-lg-9, 525 | .row.cols-lg-9 > * { 526 | max-width: 75%; 527 | flex-basis: 75%; } 528 | 529 | .col-lg-offset-8 { 530 | margin-left: 66.6666666667%; } 531 | 532 | .col-lg-10, 533 | .row.cols-lg-10 > * { 534 | max-width: 83.3333333333%; 535 | flex-basis: 83.3333333333%; } 536 | 537 | .col-lg-offset-9 { 538 | margin-left: 75%; } 539 | 540 | .col-lg-11, 541 | .row.cols-lg-11 > * { 542 | max-width: 91.6666666667%; 543 | flex-basis: 91.6666666667%; } 544 | 545 | .col-lg-offset-10 { 546 | margin-left: 83.3333333333%; } 547 | 548 | .col-lg-12, 549 | .row.cols-lg-12 > * { 550 | max-width: 100%; 551 | flex-basis: 100%; } 552 | 553 | .col-lg-offset-11 { 554 | margin-left: 91.6666666667%; } 555 | 556 | .col-lg-normal { 557 | order: initial; } 558 | 559 | .col-lg-first { 560 | order: -999; } 561 | 562 | .col-lg-last { 563 | order: 999; } } 564 | /* Card component CSS variable definitions */ 565 | :root { 566 | --card-back-color: #3cb4e6; 567 | --card-fore-color: #03234b; 568 | --card-border-color: #03234b; } 569 | 570 | .card { 571 | display: flex; 572 | flex-direction: column; 573 | justify-content: space-between; 574 | align-self: center; 575 | position: relative; 576 | width: 100%; 577 | background: var(--card-back-color); 578 | color: var(--card-fore-color); 579 | border: 0.0714285714rem solid var(--card-border-color); 580 | border-radius: var(--universal-border-radius); 581 | margin: var(--universal-margin); 582 | overflow: hidden; } 583 | @media screen and (min-width: 320px) { 584 | .card { 585 | max-width: 320px; } } 586 | .card > .sectione { 587 | background: var(--card-back-color); 588 | color: var(--card-fore-color); 589 | box-sizing: border-box; 590 | margin: 0; 591 | border: 0; 592 | border-radius: 0; 593 | border-bottom: 0.0714285714rem solid var(--card-border-color); 594 | padding: var(--universal-padding); 595 | width: 100%; } 596 | .card > .sectione.media { 597 | height: 200px; 598 | padding: 0; 599 | -o-object-fit: cover; 600 | object-fit: cover; } 601 | .card > .sectione:last-child { 602 | border-bottom: 0; } 603 | 604 | /* 605 | Custom elements for card elements. 606 | */ 607 | @media screen and (min-width: 240px) { 608 | .card.small { 609 | max-width: 240px; } } 610 | @media screen and (min-width: 480px) { 611 | .card.large { 612 | max-width: 480px; } } 613 | .card.fluid { 614 | max-width: 100%; 615 | width: auto; } 616 | 617 | .card.warning { 618 | --card-back-color: #e5b8b7; 619 | --card-fore-color: #3b234b; 620 | --card-border-color: #8c0078; } 621 | 622 | .card.error { 623 | --card-back-color: #464650; 624 | --card-fore-color: #ffffff; 625 | --card-border-color: #8c0078; } 626 | 627 | .card > .sectione.dark { 628 | --card-back-color: #3b234b; 629 | --card-fore-color: #ffffff; } 630 | 631 | .card > .sectione.double-padded { 632 | padding: calc(1.5 * var(--universal-padding)); } 633 | 634 | /* 635 | Definitions for forms and input elements. 636 | */ 637 | /* Input_control module CSS variable definitions */ 638 | :root { 639 | --form-back-color: #ffe97f; 640 | --form-fore-color: #03234b; 641 | --form-border-color: #3cb4e6; 642 | --input-back-color: #ffffff; 643 | --input-fore-color: #03234b; 644 | --input-border-color: #3cb4e6; 645 | --input-focus-color: #0288d1; 646 | --input-invalid-color: #d32f2f; 647 | --button-back-color: #e2e2e2; 648 | --button-hover-back-color: #dcdcdc; 649 | --button-fore-color: #212121; 650 | --button-border-color: transparent; 651 | --button-hover-border-color: transparent; 652 | --button-group-border-color: rgba(124, 124, 124, 0.54); } 653 | 654 | form { 655 | background: var(--form-back-color); 656 | color: var(--form-fore-color); 657 | border: 0.0714285714rem solid var(--form-border-color); 658 | border-radius: var(--universal-border-radius); 659 | margin: var(--universal-margin); 660 | padding: calc(2 * var(--universal-padding)) var(--universal-padding); } 661 | 662 | fieldset { 663 | border: 0.0714285714rem solid var(--form-border-color); 664 | border-radius: var(--universal-border-radius); 665 | margin: calc(var(--universal-margin) / 4); 666 | padding: var(--universal-padding); } 667 | 668 | legend { 669 | box-sizing: border-box; 670 | display: table; 671 | max-width: 100%; 672 | white-space: normal; 673 | font-weight: 500; 674 | padding: calc(var(--universal-padding) / 2); } 675 | 676 | label { 677 | padding: calc(var(--universal-padding) / 2) var(--universal-padding); } 678 | 679 | .input-group { 680 | display: inline-block; } 681 | .input-group.fluid { 682 | display: flex; 683 | align-items: center; 684 | justify-content: center; } 685 | .input-group.fluid > input { 686 | max-width: 100%; 687 | flex-grow: 1; 688 | flex-basis: 0px; } 689 | @media screen and (max-width: 499px) { 690 | .input-group.fluid { 691 | align-items: stretch; 692 | flex-direction: column; } } 693 | .input-group.vertical { 694 | display: flex; 695 | align-items: stretch; 696 | flex-direction: column; } 697 | .input-group.vertical > input { 698 | max-width: 100%; 699 | flex-grow: 1; 700 | flex-basis: 0px; } 701 | 702 | [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { 703 | height: auto; } 704 | 705 | [type="search"] { 706 | -webkit-appearance: textfield; 707 | outline-offset: -2px; } 708 | 709 | [type="search"]::-webkit-search-cancel-button, 710 | [type="search"]::-webkit-search-decoration { 711 | -webkit-appearance: none; } 712 | 713 | input:not([type]), [type="text"], [type="email"], [type="number"], [type="search"], 714 | [type="password"], [type="url"], [type="tel"], [type="checkbox"], [type="radio"], textarea, select { 715 | box-sizing: border-box; 716 | background: var(--input-back-color); 717 | color: var(--input-fore-color); 718 | border: 0.0714285714rem solid var(--input-border-color); 719 | border-radius: var(--universal-border-radius); 720 | margin: calc(var(--universal-margin) / 2); 721 | padding: var(--universal-padding) calc(1.5 * var(--universal-padding)); } 722 | 723 | input:not([type="button"]):not([type="submit"]):not([type="reset"]):hover, input:not([type="button"]):not([type="submit"]):not([type="reset"]):focus, textarea:hover, textarea:focus, select:hover, select:focus { 724 | border-color: var(--input-focus-color); 725 | box-shadow: none; } 726 | input:not([type="button"]):not([type="submit"]):not([type="reset"]):invalid, input:not([type="button"]):not([type="submit"]):not([type="reset"]):focus:invalid, textarea:invalid, textarea:focus:invalid, select:invalid, select:focus:invalid { 727 | border-color: var(--input-invalid-color); 728 | box-shadow: none; } 729 | input:not([type="button"]):not([type="submit"]):not([type="reset"])[readonly], textarea[readonly], select[readonly] { 730 | background: var(--secondary-back-color); } 731 | 732 | select { 733 | max-width: 100%; } 734 | 735 | option { 736 | overflow: hidden; 737 | text-overflow: ellipsis; } 738 | 739 | [type="checkbox"], [type="radio"] { 740 | -webkit-appearance: none; 741 | -moz-appearance: none; 742 | appearance: none; 743 | position: relative; 744 | height: calc(1rem + var(--universal-padding) / 2); 745 | width: calc(1rem + var(--universal-padding) / 2); 746 | vertical-align: text-bottom; 747 | padding: 0; 748 | flex-basis: calc(1rem + var(--universal-padding) / 2) !important; 749 | flex-grow: 0 !important; } 750 | [type="checkbox"]:checked:before, [type="radio"]:checked:before { 751 | position: absolute; } 752 | 753 | [type="checkbox"]:checked:before { 754 | content: '\2713'; 755 | font-family: sans-serif; 756 | font-size: calc(1rem + var(--universal-padding) / 2); 757 | top: calc(0rem - var(--universal-padding)); 758 | left: calc(var(--universal-padding) / 4); } 759 | 760 | [type="radio"] { 761 | border-radius: 100%; } 762 | [type="radio"]:checked:before { 763 | border-radius: 100%; 764 | content: ''; 765 | top: calc(0.0714285714rem + var(--universal-padding) / 2); 766 | left: calc(0.0714285714rem + var(--universal-padding) / 2); 767 | background: var(--input-fore-color); 768 | width: 0.5rem; 769 | height: 0.5rem; } 770 | 771 | :placeholder-shown { 772 | color: var(--input-fore-color); } 773 | 774 | ::-ms-placeholder { 775 | color: var(--input-fore-color); 776 | opacity: 0.54; } 777 | 778 | button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { 779 | border-style: none; 780 | padding: 0; } 781 | 782 | button, html [type="button"], [type="reset"], [type="submit"] { 783 | -webkit-appearance: button; } 784 | 785 | button { 786 | overflow: visible; 787 | text-transform: none; } 788 | 789 | button, [type="button"], [type="submit"], [type="reset"], 790 | a.button, label.button, .button, 791 | a[role="button"], label[role="button"], [role="button"] { 792 | display: inline-block; 793 | background: var(--button-back-color); 794 | color: var(--button-fore-color); 795 | border: 0.0714285714rem solid var(--button-border-color); 796 | border-radius: var(--universal-border-radius); 797 | padding: var(--universal-padding) calc(1.5 * var(--universal-padding)); 798 | margin: var(--universal-margin); 799 | text-decoration: none; 800 | cursor: pointer; 801 | transition: background 0.3s; } 802 | button:hover, button:focus, [type="button"]:hover, [type="button"]:focus, [type="submit"]:hover, [type="submit"]:focus, [type="reset"]:hover, [type="reset"]:focus, 803 | a.button:hover, 804 | a.button:focus, label.button:hover, label.button:focus, .button:hover, .button:focus, 805 | a[role="button"]:hover, 806 | a[role="button"]:focus, label[role="button"]:hover, label[role="button"]:focus, [role="button"]:hover, [role="button"]:focus { 807 | background: var(--button-hover-back-color); 808 | border-color: var(--button-hover-border-color); } 809 | 810 | input:disabled, input[disabled], textarea:disabled, textarea[disabled], select:disabled, select[disabled], button:disabled, button[disabled], .button:disabled, .button[disabled], [role="button"]:disabled, [role="button"][disabled] { 811 | cursor: not-allowed; 812 | opacity: 0.75; } 813 | 814 | .button-group { 815 | display: flex; 816 | border: 0.0714285714rem solid var(--button-group-border-color); 817 | border-radius: var(--universal-border-radius); 818 | margin: var(--universal-margin); } 819 | .button-group > button, .button-group [type="button"], .button-group > [type="submit"], .button-group > [type="reset"], .button-group > .button, .button-group > [role="button"] { 820 | margin: 0; 821 | max-width: 100%; 822 | flex: 1 1 auto; 823 | text-align: center; 824 | border: 0; 825 | border-radius: 0; 826 | box-shadow: none; } 827 | .button-group > :not(:first-child) { 828 | border-left: 0.0714285714rem solid var(--button-group-border-color); } 829 | @media screen and (max-width: 499px) { 830 | .button-group { 831 | flex-direction: column; } 832 | .button-group > :not(:first-child) { 833 | border: 0; 834 | border-top: 0.0714285714rem solid var(--button-group-border-color); } } 835 | 836 | /* 837 | Custom elements for forms and input elements. 838 | */ 839 | button.primary, [type="button"].primary, [type="submit"].primary, [type="reset"].primary, .button.primary, [role="button"].primary { 840 | --button-back-color: #1976d2; 841 | --button-fore-color: #f8f8f8; } 842 | button.primary:hover, button.primary:focus, [type="button"].primary:hover, [type="button"].primary:focus, [type="submit"].primary:hover, [type="submit"].primary:focus, [type="reset"].primary:hover, [type="reset"].primary:focus, .button.primary:hover, .button.primary:focus, [role="button"].primary:hover, [role="button"].primary:focus { 843 | --button-hover-back-color: #1565c0; } 844 | 845 | button.secondary, [type="button"].secondary, [type="submit"].secondary, [type="reset"].secondary, .button.secondary, [role="button"].secondary { 846 | --button-back-color: #d32f2f; 847 | --button-fore-color: #f8f8f8; } 848 | button.secondary:hover, button.secondary:focus, [type="button"].secondary:hover, [type="button"].secondary:focus, [type="submit"].secondary:hover, [type="submit"].secondary:focus, [type="reset"].secondary:hover, [type="reset"].secondary:focus, .button.secondary:hover, .button.secondary:focus, [role="button"].secondary:hover, [role="button"].secondary:focus { 849 | --button-hover-back-color: #c62828; } 850 | 851 | button.tertiary, [type="button"].tertiary, [type="submit"].tertiary, [type="reset"].tertiary, .button.tertiary, [role="button"].tertiary { 852 | --button-back-color: #308732; 853 | --button-fore-color: #f8f8f8; } 854 | button.tertiary:hover, button.tertiary:focus, [type="button"].tertiary:hover, [type="button"].tertiary:focus, [type="submit"].tertiary:hover, [type="submit"].tertiary:focus, [type="reset"].tertiary:hover, [type="reset"].tertiary:focus, .button.tertiary:hover, .button.tertiary:focus, [role="button"].tertiary:hover, [role="button"].tertiary:focus { 855 | --button-hover-back-color: #277529; } 856 | 857 | button.inverse, [type="button"].inverse, [type="submit"].inverse, [type="reset"].inverse, .button.inverse, [role="button"].inverse { 858 | --button-back-color: #212121; 859 | --button-fore-color: #f8f8f8; } 860 | button.inverse:hover, button.inverse:focus, [type="button"].inverse:hover, [type="button"].inverse:focus, [type="submit"].inverse:hover, [type="submit"].inverse:focus, [type="reset"].inverse:hover, [type="reset"].inverse:focus, .button.inverse:hover, .button.inverse:focus, [role="button"].inverse:hover, [role="button"].inverse:focus { 861 | --button-hover-back-color: #111; } 862 | 863 | button.small, [type="button"].small, [type="submit"].small, [type="reset"].small, .button.small, [role="button"].small { 864 | padding: calc(0.5 * var(--universal-padding)) calc(0.75 * var(--universal-padding)); 865 | margin: var(--universal-margin); } 866 | 867 | button.large, [type="button"].large, [type="submit"].large, [type="reset"].large, .button.large, [role="button"].large { 868 | padding: calc(1.5 * var(--universal-padding)) calc(2 * var(--universal-padding)); 869 | margin: var(--universal-margin); } 870 | 871 | /* 872 | Definitions for navigation elements. 873 | */ 874 | /* Navigation module CSS variable definitions */ 875 | :root { 876 | --header-back-color: #03234b; 877 | --header-hover-back-color: #ffd200; 878 | --header-fore-color: #ffffff; 879 | --header-border-color: #3cb4e6; 880 | --nav-back-color: #ffffff; 881 | --nav-hover-back-color: #ffe97f; 882 | --nav-fore-color: #e6007e; 883 | --nav-border-color: #3cb4e6; 884 | --nav-link-color: #3cb4e6; 885 | --footer-fore-color: #ffffff; 886 | --footer-back-color: #03234b; 887 | --footer-border-color: #3cb4e6; 888 | --footer-link-color: #3cb4e6; 889 | --drawer-back-color: #ffffff; 890 | --drawer-hover-back-color: #ffe97f; 891 | --drawer-border-color: #3cb4e6; 892 | --drawer-close-color: #e6007e; } 893 | 894 | header { 895 | height: 2.75rem; 896 | background: var(--header-back-color); 897 | color: var(--header-fore-color); 898 | border-bottom: 0.0714285714rem solid var(--header-border-color); 899 | padding: calc(var(--universal-padding) / 4) 0; 900 | white-space: nowrap; 901 | overflow-x: auto; 902 | overflow-y: hidden; } 903 | header.row { 904 | box-sizing: content-box; } 905 | header .logo { 906 | color: var(--header-fore-color); 907 | font-size: 1.75rem; 908 | padding: var(--universal-padding) calc(2 * var(--universal-padding)); 909 | text-decoration: none; } 910 | header button, header [type="button"], header .button, header [role="button"] { 911 | box-sizing: border-box; 912 | position: relative; 913 | top: calc(0rem - var(--universal-padding) / 4); 914 | height: calc(3.1875rem + var(--universal-padding) / 2); 915 | background: var(--header-back-color); 916 | line-height: calc(3.1875rem - var(--universal-padding) * 1.5); 917 | text-align: center; 918 | color: var(--header-fore-color); 919 | border: 0; 920 | border-radius: 0; 921 | margin: 0; 922 | text-transform: uppercase; } 923 | header button:hover, header button:focus, header [type="button"]:hover, header [type="button"]:focus, header .button:hover, header .button:focus, header [role="button"]:hover, header [role="button"]:focus { 924 | background: var(--header-hover-back-color); } 925 | 926 | nav { 927 | background: var(--nav-back-color); 928 | color: var(--nav-fore-color); 929 | border: 0.0714285714rem solid var(--nav-border-color); 930 | border-radius: var(--universal-border-radius); 931 | margin: var(--universal-margin); } 932 | nav * { 933 | padding: var(--universal-padding) calc(1.5 * var(--universal-padding)); } 934 | nav a, nav a:visited { 935 | display: block; 936 | color: var(--nav-link-color); 937 | border-radius: var(--universal-border-radius); 938 | transition: background 0.3s; } 939 | nav a:hover, nav a:focus, nav a:visited:hover, nav a:visited:focus { 940 | text-decoration: none; 941 | background: var(--nav-hover-back-color); } 942 | nav .sublink-1 { 943 | position: relative; 944 | margin-left: calc(2 * var(--universal-padding)); } 945 | nav .sublink-1:before { 946 | position: absolute; 947 | left: calc(var(--universal-padding) - 1 * var(--universal-padding)); 948 | top: -0.0714285714rem; 949 | content: ''; 950 | height: 100%; 951 | border: 0.0714285714rem solid var(--nav-border-color); 952 | border-left: 0; } 953 | nav .sublink-2 { 954 | position: relative; 955 | margin-left: calc(4 * var(--universal-padding)); } 956 | nav .sublink-2:before { 957 | position: absolute; 958 | left: calc(var(--universal-padding) - 3 * var(--universal-padding)); 959 | top: -0.0714285714rem; 960 | content: ''; 961 | height: 100%; 962 | border: 0.0714285714rem solid var(--nav-border-color); 963 | border-left: 0; } 964 | 965 | footer { 966 | background: var(--footer-back-color); 967 | color: var(--footer-fore-color); 968 | border-top: 0.0714285714rem solid var(--footer-border-color); 969 | padding: calc(2 * var(--universal-padding)) var(--universal-padding); 970 | font-size: 0.875rem; } 971 | footer a, footer a:visited { 972 | color: var(--footer-link-color); } 973 | 974 | header.sticky { 975 | position: -webkit-sticky; 976 | position: sticky; 977 | z-index: 1101; 978 | top: 0; } 979 | 980 | footer.sticky { 981 | position: -webkit-sticky; 982 | position: sticky; 983 | z-index: 1101; 984 | bottom: 0; } 985 | 986 | .drawer-toggle:before { 987 | display: inline-block; 988 | position: relative; 989 | vertical-align: bottom; 990 | content: '\00a0\2261\00a0'; 991 | font-family: sans-serif; 992 | font-size: 1.5em; } 993 | @media screen and (min-width: 500px) { 994 | .drawer-toggle:not(.persistent) { 995 | display: none; } } 996 | 997 | [type="checkbox"].drawer { 998 | height: 1px; 999 | width: 1px; 1000 | margin: -1px; 1001 | overflow: hidden; 1002 | position: absolute; 1003 | clip: rect(0 0 0 0); 1004 | -webkit-clip-path: inset(100%); 1005 | clip-path: inset(100%); } 1006 | [type="checkbox"].drawer + * { 1007 | display: block; 1008 | box-sizing: border-box; 1009 | position: fixed; 1010 | top: 0; 1011 | width: 320px; 1012 | height: 100vh; 1013 | overflow-y: auto; 1014 | background: var(--drawer-back-color); 1015 | border: 0.0714285714rem solid var(--drawer-border-color); 1016 | border-radius: 0; 1017 | margin: 0; 1018 | z-index: 1110; 1019 | right: -320px; 1020 | transition: right 0.3s; } 1021 | [type="checkbox"].drawer + * .drawer-close { 1022 | position: absolute; 1023 | top: var(--universal-margin); 1024 | right: var(--universal-margin); 1025 | z-index: 1111; 1026 | width: 2rem; 1027 | height: 2rem; 1028 | border-radius: var(--universal-border-radius); 1029 | padding: var(--universal-padding); 1030 | margin: 0; 1031 | cursor: pointer; 1032 | transition: background 0.3s; } 1033 | [type="checkbox"].drawer + * .drawer-close:before { 1034 | display: block; 1035 | content: '\00D7'; 1036 | color: var(--drawer-close-color); 1037 | position: relative; 1038 | font-family: sans-serif; 1039 | font-size: 2rem; 1040 | line-height: 1; 1041 | text-align: center; } 1042 | [type="checkbox"].drawer + * .drawer-close:hover, [type="checkbox"].drawer + * .drawer-close:focus { 1043 | background: var(--drawer-hover-back-color); } 1044 | @media screen and (max-width: 320px) { 1045 | [type="checkbox"].drawer + * { 1046 | width: 100%; } } 1047 | [type="checkbox"].drawer:checked + * { 1048 | right: 0; } 1049 | @media screen and (min-width: 500px) { 1050 | [type="checkbox"].drawer:not(.persistent) + * { 1051 | position: static; 1052 | height: 100%; 1053 | z-index: 1100; } 1054 | [type="checkbox"].drawer:not(.persistent) + * .drawer-close { 1055 | display: none; } } 1056 | 1057 | /* 1058 | Definitions for the responsive table component. 1059 | */ 1060 | /* Table module CSS variable definitions. */ 1061 | :root { 1062 | --table-border-color: #03234b; 1063 | --table-border-separator-color: #03234b; 1064 | --table-head-back-color: #03234b; 1065 | --table-head-fore-color: #ffffff; 1066 | --table-body-back-color: #ffffff; 1067 | --table-body-fore-color: #03234b; 1068 | --table-body-alt-back-color: #f4f4f4; } 1069 | 1070 | table { 1071 | border-collapse: separate; 1072 | border-spacing: 0; 1073 | margin: 0; 1074 | display: flex; 1075 | flex: 0 1 auto; 1076 | flex-flow: row wrap; 1077 | padding: var(--universal-padding); 1078 | padding-top: 0; } 1079 | table caption { 1080 | font-size: 1rem; 1081 | margin: calc(2 * var(--universal-margin)) 0; 1082 | max-width: 100%; 1083 | flex: 0 0 100%; } 1084 | table thead, table tbody { 1085 | display: flex; 1086 | flex-flow: row wrap; 1087 | border: 0.0714285714rem solid var(--table-border-color); } 1088 | table thead { 1089 | z-index: 999; 1090 | border-radius: var(--universal-border-radius) var(--universal-border-radius) 0 0; 1091 | border-bottom: 0.0714285714rem solid var(--table-border-separator-color); } 1092 | table tbody { 1093 | border-top: 0; 1094 | margin-top: calc(0 - var(--universal-margin)); 1095 | border-radius: 0 0 var(--universal-border-radius) var(--universal-border-radius); } 1096 | table tr { 1097 | display: flex; 1098 | padding: 0; } 1099 | table th, table td { 1100 | padding: calc(0.5 * var(--universal-padding)); 1101 | font-size: 0.9rem; } 1102 | table th { 1103 | text-align: left; 1104 | background: var(--table-head-back-color); 1105 | color: var(--table-head-fore-color); } 1106 | table td { 1107 | background: var(--table-body-back-color); 1108 | color: var(--table-body-fore-color); 1109 | border-top: 0.0714285714rem solid var(--table-border-color); } 1110 | 1111 | table:not(.horizontal) { 1112 | overflow: auto; 1113 | max-height: 100%; } 1114 | table:not(.horizontal) thead, table:not(.horizontal) tbody { 1115 | max-width: 100%; 1116 | flex: 0 0 100%; } 1117 | table:not(.horizontal) tr { 1118 | flex-flow: row wrap; 1119 | flex: 0 0 100%; } 1120 | table:not(.horizontal) th, table:not(.horizontal) td { 1121 | flex: 1 0 0%; 1122 | overflow: hidden; 1123 | text-overflow: ellipsis; } 1124 | table:not(.horizontal) thead { 1125 | position: sticky; 1126 | top: 0; } 1127 | table:not(.horizontal) tbody tr:first-child td { 1128 | border-top: 0; } 1129 | 1130 | table.horizontal { 1131 | border: 0; } 1132 | table.horizontal thead, table.horizontal tbody { 1133 | border: 0; 1134 | flex: .2 0 0; 1135 | flex-flow: row nowrap; } 1136 | table.horizontal tbody { 1137 | overflow: auto; 1138 | justify-content: space-between; 1139 | flex: .8 0 0; 1140 | margin-left: 0; 1141 | padding-bottom: calc(var(--universal-padding) / 4); } 1142 | table.horizontal tr { 1143 | flex-direction: column; 1144 | flex: 1 0 auto; } 1145 | table.horizontal th, table.horizontal td { 1146 | width: auto; 1147 | border: 0; 1148 | border-bottom: 0.0714285714rem solid var(--table-border-color); } 1149 | table.horizontal th:not(:first-child), table.horizontal td:not(:first-child) { 1150 | border-top: 0; } 1151 | table.horizontal th { 1152 | text-align: right; 1153 | border-left: 0.0714285714rem solid var(--table-border-color); 1154 | border-right: 0.0714285714rem solid var(--table-border-separator-color); } 1155 | table.horizontal thead tr:first-child { 1156 | padding-left: 0; } 1157 | table.horizontal th:first-child, table.horizontal td:first-child { 1158 | border-top: 0.0714285714rem solid var(--table-border-color); } 1159 | table.horizontal tbody tr:last-child td { 1160 | border-right: 0.0714285714rem solid var(--table-border-color); } 1161 | table.horizontal tbody tr:last-child td:first-child { 1162 | border-top-right-radius: 0.25rem; } 1163 | table.horizontal tbody tr:last-child td:last-child { 1164 | border-bottom-right-radius: 0.25rem; } 1165 | table.horizontal thead tr:first-child th:first-child { 1166 | border-top-left-radius: 0.25rem; } 1167 | table.horizontal thead tr:first-child th:last-child { 1168 | border-bottom-left-radius: 0.25rem; } 1169 | 1170 | @media screen and (max-width: 499px) { 1171 | table, table.horizontal { 1172 | border-collapse: collapse; 1173 | border: 0; 1174 | width: 100%; 1175 | display: table; } 1176 | table thead, table th, table.horizontal thead, table.horizontal th { 1177 | border: 0; 1178 | height: 1px; 1179 | width: 1px; 1180 | margin: -1px; 1181 | overflow: hidden; 1182 | padding: 0; 1183 | position: absolute; 1184 | clip: rect(0 0 0 0); 1185 | -webkit-clip-path: inset(100%); 1186 | clip-path: inset(100%); } 1187 | table tbody, table.horizontal tbody { 1188 | border: 0; 1189 | display: table-row-group; } 1190 | table tr, table.horizontal tr { 1191 | display: block; 1192 | border: 0.0714285714rem solid var(--table-border-color); 1193 | border-radius: var(--universal-border-radius); 1194 | background: #ffffff; 1195 | padding: var(--universal-padding); 1196 | margin: var(--universal-margin); 1197 | margin-bottom: calc(1 * var(--universal-margin)); } 1198 | table th, table td, table.horizontal th, table.horizontal td { 1199 | width: auto; } 1200 | table td, table.horizontal td { 1201 | display: block; 1202 | border: 0; 1203 | text-align: right; } 1204 | table td:before, table.horizontal td:before { 1205 | content: attr(data-label); 1206 | float: left; 1207 | font-weight: 600; } 1208 | table th:first-child, table td:first-child, table.horizontal th:first-child, table.horizontal td:first-child { 1209 | border-top: 0; } 1210 | table tbody tr:last-child td, table.horizontal tbody tr:last-child td { 1211 | border-right: 0; } } 1212 | table tr:nth-of-type(2n) > td { 1213 | background: var(--table-body-alt-back-color); } 1214 | 1215 | @media screen and (max-width: 500px) { 1216 | table tr:nth-of-type(2n) { 1217 | background: var(--table-body-alt-back-color); } } 1218 | :root { 1219 | --table-body-hover-back-color: #90caf9; } 1220 | 1221 | table.hoverable tr:hover, table.hoverable tr:hover > td, table.hoverable tr:focus, table.hoverable tr:focus > td { 1222 | background: var(--table-body-hover-back-color); } 1223 | 1224 | @media screen and (max-width: 500px) { 1225 | table.hoverable tr:hover, table.hoverable tr:hover > td, table.hoverable tr:focus, table.hoverable tr:focus > td { 1226 | background: var(--table-body-hover-back-color); } } 1227 | /* 1228 | Definitions for contextual background elements, toasts and tooltips. 1229 | */ 1230 | /* Contextual module CSS variable definitions */ 1231 | :root { 1232 | --mark-back-color: #3cb4e6; 1233 | --mark-fore-color: #ffffff; } 1234 | 1235 | mark { 1236 | background: var(--mark-back-color); 1237 | color: var(--mark-fore-color); 1238 | font-size: 0.95em; 1239 | line-height: 1em; 1240 | border-radius: var(--universal-border-radius); 1241 | padding: calc(var(--universal-padding) / 4) var(--universal-padding); } 1242 | mark.inline-block { 1243 | display: inline-block; 1244 | font-size: 1em; 1245 | line-height: 1.4; 1246 | padding: calc(var(--universal-padding) / 2) var(--universal-padding); } 1247 | 1248 | :root { 1249 | --toast-back-color: #424242; 1250 | --toast-fore-color: #fafafa; } 1251 | 1252 | .toast { 1253 | position: fixed; 1254 | bottom: calc(var(--universal-margin) * 3); 1255 | left: 50%; 1256 | transform: translate(-50%, -50%); 1257 | z-index: 1111; 1258 | color: var(--toast-fore-color); 1259 | background: var(--toast-back-color); 1260 | border-radius: calc(var(--universal-border-radius) * 16); 1261 | padding: var(--universal-padding) calc(var(--universal-padding) * 3); } 1262 | 1263 | :root { 1264 | --tooltip-back-color: #212121; 1265 | --tooltip-fore-color: #fafafa; } 1266 | 1267 | .tooltip { 1268 | position: relative; 1269 | display: inline-block; } 1270 | .tooltip:before, .tooltip:after { 1271 | position: absolute; 1272 | opacity: 0; 1273 | clip: rect(0 0 0 0); 1274 | -webkit-clip-path: inset(100%); 1275 | clip-path: inset(100%); 1276 | transition: all 0.3s; 1277 | z-index: 1010; 1278 | left: 50%; } 1279 | .tooltip:not(.bottom):before, .tooltip:not(.bottom):after { 1280 | bottom: 75%; } 1281 | .tooltip.bottom:before, .tooltip.bottom:after { 1282 | top: 75%; } 1283 | .tooltip:hover:before, .tooltip:hover:after, .tooltip:focus:before, .tooltip:focus:after { 1284 | opacity: 1; 1285 | clip: auto; 1286 | -webkit-clip-path: inset(0%); 1287 | clip-path: inset(0%); } 1288 | .tooltip:before { 1289 | content: ''; 1290 | background: transparent; 1291 | border: var(--universal-margin) solid transparent; 1292 | left: calc(50% - var(--universal-margin)); } 1293 | .tooltip:not(.bottom):before { 1294 | border-top-color: #212121; } 1295 | .tooltip.bottom:before { 1296 | border-bottom-color: #212121; } 1297 | .tooltip:after { 1298 | content: attr(aria-label); 1299 | color: var(--tooltip-fore-color); 1300 | background: var(--tooltip-back-color); 1301 | border-radius: var(--universal-border-radius); 1302 | padding: var(--universal-padding); 1303 | white-space: nowrap; 1304 | transform: translateX(-50%); } 1305 | .tooltip:not(.bottom):after { 1306 | margin-bottom: calc(2 * var(--universal-margin)); } 1307 | .tooltip.bottom:after { 1308 | margin-top: calc(2 * var(--universal-margin)); } 1309 | 1310 | :root { 1311 | --modal-overlay-color: rgba(0, 0, 0, 0.45); 1312 | --modal-close-color: #e6007e; 1313 | --modal-close-hover-color: #ffe97f; } 1314 | 1315 | [type="checkbox"].modal { 1316 | height: 1px; 1317 | width: 1px; 1318 | margin: -1px; 1319 | overflow: hidden; 1320 | position: absolute; 1321 | clip: rect(0 0 0 0); 1322 | -webkit-clip-path: inset(100%); 1323 | clip-path: inset(100%); } 1324 | [type="checkbox"].modal + div { 1325 | position: fixed; 1326 | top: 0; 1327 | left: 0; 1328 | display: none; 1329 | width: 100vw; 1330 | height: 100vh; 1331 | background: var(--modal-overlay-color); } 1332 | [type="checkbox"].modal + div .card { 1333 | margin: 0 auto; 1334 | max-height: 50vh; 1335 | overflow: auto; } 1336 | [type="checkbox"].modal + div .card .modal-close { 1337 | position: absolute; 1338 | top: 0; 1339 | right: 0; 1340 | width: 1.75rem; 1341 | height: 1.75rem; 1342 | border-radius: var(--universal-border-radius); 1343 | padding: var(--universal-padding); 1344 | margin: 0; 1345 | cursor: pointer; 1346 | transition: background 0.3s; } 1347 | [type="checkbox"].modal + div .card .modal-close:before { 1348 | display: block; 1349 | content: '\00D7'; 1350 | color: var(--modal-close-color); 1351 | position: relative; 1352 | font-family: sans-serif; 1353 | font-size: 1.75rem; 1354 | line-height: 1; 1355 | text-align: center; } 1356 | [type="checkbox"].modal + div .card .modal-close:hover, [type="checkbox"].modal + div .card .modal-close:focus { 1357 | background: var(--modal-close-hover-color); } 1358 | [type="checkbox"].modal:checked + div { 1359 | display: flex; 1360 | flex: 0 1 auto; 1361 | z-index: 1200; } 1362 | [type="checkbox"].modal:checked + div .card .modal-close { 1363 | z-index: 1211; } 1364 | 1365 | :root { 1366 | --collapse-label-back-color: #03234b; 1367 | --collapse-label-fore-color: #ffffff; 1368 | --collapse-label-hover-back-color: #3cb4e6; 1369 | --collapse-selected-label-back-color: #3cb4e6; 1370 | --collapse-border-color: var(--collapse-label-back-color); 1371 | --collapse-selected-border-color: #ceecf8; 1372 | --collapse-content-back-color: #ffffff; 1373 | --collapse-selected-label-border-color: #3cb4e6; } 1374 | 1375 | .collapse { 1376 | width: calc(100% - 2 * var(--universal-margin)); 1377 | opacity: 1; 1378 | display: flex; 1379 | flex-direction: column; 1380 | margin: var(--universal-margin); 1381 | border-radius: var(--universal-border-radius); } 1382 | .collapse > [type="radio"], .collapse > [type="checkbox"] { 1383 | height: 1px; 1384 | width: 1px; 1385 | margin: -1px; 1386 | overflow: hidden; 1387 | position: absolute; 1388 | clip: rect(0 0 0 0); 1389 | -webkit-clip-path: inset(100%); 1390 | clip-path: inset(100%); } 1391 | .collapse > label { 1392 | flex-grow: 1; 1393 | display: inline-block; 1394 | height: 1.25rem; 1395 | cursor: pointer; 1396 | transition: background 0.2s; 1397 | color: var(--collapse-label-fore-color); 1398 | background: var(--collapse-label-back-color); 1399 | border: 0.0714285714rem solid var(--collapse-selected-border-color); 1400 | padding: calc(1.25 * var(--universal-padding)); } 1401 | .collapse > label:hover, .collapse > label:focus { 1402 | background: var(--collapse-label-hover-back-color); } 1403 | .collapse > label + div { 1404 | flex-basis: auto; 1405 | height: 1px; 1406 | width: 1px; 1407 | margin: -1px; 1408 | overflow: hidden; 1409 | position: absolute; 1410 | clip: rect(0 0 0 0); 1411 | -webkit-clip-path: inset(100%); 1412 | clip-path: inset(100%); 1413 | transition: max-height 0.3s; 1414 | max-height: 1px; } 1415 | .collapse > :checked + label { 1416 | background: var(--collapse-selected-label-back-color); 1417 | border-color: var(--collapse-selected-label-border-color); } 1418 | .collapse > :checked + label + div { 1419 | box-sizing: border-box; 1420 | position: relative; 1421 | width: 100%; 1422 | height: auto; 1423 | overflow: auto; 1424 | margin: 0; 1425 | background: var(--collapse-content-back-color); 1426 | border: 0.0714285714rem solid var(--collapse-selected-border-color); 1427 | border-top: 0; 1428 | padding: var(--universal-padding); 1429 | clip: auto; 1430 | -webkit-clip-path: inset(0%); 1431 | clip-path: inset(0%); 1432 | max-height: 100%; } 1433 | .collapse > label:not(:first-of-type) { 1434 | border-top: 0; } 1435 | .collapse > label:first-of-type { 1436 | border-radius: var(--universal-border-radius) var(--universal-border-radius) 0 0; } 1437 | .collapse > label:last-of-type:not(:first-of-type) { 1438 | border-radius: 0 0 var(--universal-border-radius) var(--universal-border-radius); } 1439 | .collapse > label:last-of-type:first-of-type { 1440 | border-radius: var(--universal-border-radius); } 1441 | .collapse > :checked:last-of-type:not(:first-of-type) + label { 1442 | border-radius: 0; } 1443 | .collapse > :checked:last-of-type + label + div { 1444 | border-radius: 0 0 var(--universal-border-radius) var(--universal-border-radius); } 1445 | 1446 | /* 1447 | Custom elements for contextual background elements, toasts and tooltips. 1448 | */ 1449 | mark.tertiary { 1450 | --mark-back-color: #3cb4e6; } 1451 | 1452 | mark.tag { 1453 | padding: calc(var(--universal-padding)/2) var(--universal-padding); 1454 | border-radius: 1em; } 1455 | 1456 | /* 1457 | Definitions for progress elements and spinners. 1458 | */ 1459 | /* Progress module CSS variable definitions */ 1460 | :root { 1461 | --progress-back-color: #3cb4e6; 1462 | --progress-fore-color: #555; } 1463 | 1464 | progress { 1465 | display: block; 1466 | vertical-align: baseline; 1467 | -webkit-appearance: none; 1468 | -moz-appearance: none; 1469 | appearance: none; 1470 | height: 0.75rem; 1471 | width: calc(100% - 2 * var(--universal-margin)); 1472 | margin: var(--universal-margin); 1473 | border: 0; 1474 | border-radius: calc(2 * var(--universal-border-radius)); 1475 | background: var(--progress-back-color); 1476 | color: var(--progress-fore-color); } 1477 | progress::-webkit-progress-value { 1478 | background: var(--progress-fore-color); 1479 | border-top-left-radius: calc(2 * var(--universal-border-radius)); 1480 | border-bottom-left-radius: calc(2 * var(--universal-border-radius)); } 1481 | progress::-webkit-progress-bar { 1482 | background: var(--progress-back-color); } 1483 | progress::-moz-progress-bar { 1484 | background: var(--progress-fore-color); 1485 | border-top-left-radius: calc(2 * var(--universal-border-radius)); 1486 | border-bottom-left-radius: calc(2 * var(--universal-border-radius)); } 1487 | progress[value="1000"]::-webkit-progress-value { 1488 | border-radius: calc(2 * var(--universal-border-radius)); } 1489 | progress[value="1000"]::-moz-progress-bar { 1490 | border-radius: calc(2 * var(--universal-border-radius)); } 1491 | progress.inline { 1492 | display: inline-block; 1493 | vertical-align: middle; 1494 | width: 60%; } 1495 | 1496 | :root { 1497 | --spinner-back-color: #ddd; 1498 | --spinner-fore-color: #555; } 1499 | 1500 | @keyframes spinner-donut-anim { 1501 | 0% { 1502 | transform: rotate(0deg); } 1503 | 100% { 1504 | transform: rotate(360deg); } } 1505 | .spinner { 1506 | display: inline-block; 1507 | margin: var(--universal-margin); 1508 | border: 0.25rem solid var(--spinner-back-color); 1509 | border-left: 0.25rem solid var(--spinner-fore-color); 1510 | border-radius: 50%; 1511 | width: 1.25rem; 1512 | height: 1.25rem; 1513 | animation: spinner-donut-anim 1.2s linear infinite; } 1514 | 1515 | /* 1516 | Custom elements for progress bars and spinners. 1517 | */ 1518 | progress.primary { 1519 | --progress-fore-color: #1976d2; } 1520 | 1521 | progress.secondary { 1522 | --progress-fore-color: #d32f2f; } 1523 | 1524 | progress.tertiary { 1525 | --progress-fore-color: #308732; } 1526 | 1527 | .spinner.primary { 1528 | --spinner-fore-color: #1976d2; } 1529 | 1530 | .spinner.secondary { 1531 | --spinner-fore-color: #d32f2f; } 1532 | 1533 | .spinner.tertiary { 1534 | --spinner-fore-color: #308732; } 1535 | 1536 | /* 1537 | Definitions for icons - powered by Feather (https://feathericons.com/). 1538 | */ 1539 | span[class^='icon-'] { 1540 | display: inline-block; 1541 | height: 1em; 1542 | width: 1em; 1543 | vertical-align: -0.125em; 1544 | background-size: contain; 1545 | margin: 0 calc(var(--universal-margin) / 4); } 1546 | span[class^='icon-'].secondary { 1547 | -webkit-filter: invert(25%); 1548 | filter: invert(25%); } 1549 | span[class^='icon-'].inverse { 1550 | -webkit-filter: invert(100%); 1551 | filter: invert(100%); } 1552 | 1553 | span.icon-alert { 1554 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12' y2='16'%3E%3C/line%3E%3C/svg%3E"); } 1555 | span.icon-bookmark { 1556 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z'%3E%3C/path%3E%3C/svg%3E"); } 1557 | span.icon-calendar { 1558 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E"); } 1559 | span.icon-credit { 1560 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='1' y1='10' x2='23' y2='10'%3E%3C/line%3E%3C/svg%3E"); } 1561 | span.icon-edit { 1562 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 14.66V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h5.34'%3E%3C/path%3E%3Cpolygon points='18 2 22 6 12 16 8 16 8 12 18 2'%3E%3C/polygon%3E%3C/svg%3E"); } 1563 | span.icon-link { 1564 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'%3E%3C/path%3E%3Cpolyline points='15 3 21 3 21 9'%3E%3C/polyline%3E%3Cline x1='10' y1='14' x2='21' y2='3'%3E%3C/line%3E%3C/svg%3E"); } 1565 | span.icon-help { 1566 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3'%3E%3C/path%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='17' x2='12' y2='17'%3E%3C/line%3E%3C/svg%3E"); } 1567 | span.icon-home { 1568 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'%3E%3C/path%3E%3Cpolyline points='9 22 9 12 15 12 15 22'%3E%3C/polyline%3E%3C/svg%3E"); } 1569 | span.icon-info { 1570 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='16' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='8' x2='12' y2='8'%3E%3C/line%3E%3C/svg%3E"); } 1571 | span.icon-lock { 1572 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'%3E%3C/rect%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'%3E%3C/path%3E%3C/svg%3E"); } 1573 | span.icon-mail { 1574 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'%3E%3C/path%3E%3Cpolyline points='22,6 12,13 2,6'%3E%3C/polyline%3E%3C/svg%3E"); } 1575 | span.icon-location { 1576 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'%3E%3C/path%3E%3Ccircle cx='12' cy='10' r='3'%3E%3C/circle%3E%3C/svg%3E"); } 1577 | span.icon-phone { 1578 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'%3E%3C/path%3E%3C/svg%3E"); } 1579 | span.icon-rss { 1580 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11a9 9 0 0 1 9 9'%3E%3C/path%3E%3Cpath d='M4 4a16 16 0 0 1 16 16'%3E%3C/path%3E%3Ccircle cx='5' cy='19' r='1'%3E%3C/circle%3E%3C/svg%3E"); } 1581 | span.icon-search { 1582 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E"); } 1583 | span.icon-settings { 1584 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'%3E%3C/circle%3E%3Cpath d='M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z'%3E%3C/path%3E%3C/svg%3E"); } 1585 | span.icon-share { 1586 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='3'%3E%3C/circle%3E%3Ccircle cx='6' cy='12' r='3'%3E%3C/circle%3E%3Ccircle cx='18' cy='19' r='3'%3E%3C/circle%3E%3Cline x1='8.59' y1='13.51' x2='15.42' y2='17.49'%3E%3C/line%3E%3Cline x1='15.41' y1='6.51' x2='8.59' y2='10.49'%3E%3C/line%3E%3C/svg%3E"); } 1587 | span.icon-cart { 1588 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'%3E%3C/circle%3E%3Ccircle cx='20' cy='21' r='1'%3E%3C/circle%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'%3E%3C/path%3E%3C/svg%3E"); } 1589 | span.icon-upload { 1590 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'%3E%3C/path%3E%3Cpolyline points='17 8 12 3 7 8'%3E%3C/polyline%3E%3Cline x1='12' y1='3' x2='12' y2='15'%3E%3C/line%3E%3C/svg%3E"); } 1591 | span.icon-user { 1592 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='12' cy='7' r='4'%3E%3C/circle%3E%3C/svg%3E"); } 1593 | 1594 | /* 1595 | Definitions for STMicroelectronics icons (https://brandportal.st.com/document/26). 1596 | */ 1597 | span.icon-st-update { 1598 | background-image: url("Update.svg"); } 1599 | span.icon-st-add { 1600 | background-image: url("Add button.svg"); } 1601 | 1602 | /* 1603 | Definitions for utilities and helper classes. 1604 | */ 1605 | /* Utility module CSS variable definitions */ 1606 | :root { 1607 | --generic-border-color: rgba(0, 0, 0, 0.3); 1608 | --generic-box-shadow: 0 0.2857142857rem 0.2857142857rem 0 rgba(0, 0, 0, 0.125), 0 0.1428571429rem 0.1428571429rem -0.1428571429rem rgba(0, 0, 0, 0.125); } 1609 | 1610 | .hidden { 1611 | display: none !important; } 1612 | 1613 | .visually-hidden { 1614 | position: absolute !important; 1615 | width: 1px !important; 1616 | height: 1px !important; 1617 | margin: -1px !important; 1618 | border: 0 !important; 1619 | padding: 0 !important; 1620 | clip: rect(0 0 0 0) !important; 1621 | -webkit-clip-path: inset(100%) !important; 1622 | clip-path: inset(100%) !important; 1623 | overflow: hidden !important; } 1624 | 1625 | .bordered { 1626 | border: 0.0714285714rem solid var(--generic-border-color) !important; } 1627 | 1628 | .rounded { 1629 | border-radius: var(--universal-border-radius) !important; } 1630 | 1631 | .circular { 1632 | border-radius: 50% !important; } 1633 | 1634 | .shadowed { 1635 | box-shadow: var(--generic-box-shadow) !important; } 1636 | 1637 | .responsive-margin { 1638 | margin: calc(var(--universal-margin) / 4) !important; } 1639 | @media screen and (min-width: 500px) { 1640 | .responsive-margin { 1641 | margin: calc(var(--universal-margin) / 2) !important; } } 1642 | @media screen and (min-width: 1280px) { 1643 | .responsive-margin { 1644 | margin: var(--universal-margin) !important; } } 1645 | 1646 | .responsive-padding { 1647 | padding: calc(var(--universal-padding) / 4) !important; } 1648 | @media screen and (min-width: 500px) { 1649 | .responsive-padding { 1650 | padding: calc(var(--universal-padding) / 2) !important; } } 1651 | @media screen and (min-width: 1280px) { 1652 | .responsive-padding { 1653 | padding: var(--universal-padding) !important; } } 1654 | 1655 | @media screen and (max-width: 499px) { 1656 | .hidden-sm { 1657 | display: none !important; } } 1658 | @media screen and (min-width: 500px) and (max-width: 1279px) { 1659 | .hidden-md { 1660 | display: none !important; } } 1661 | @media screen and (min-width: 1280px) { 1662 | .hidden-lg { 1663 | display: none !important; } } 1664 | @media screen and (max-width: 499px) { 1665 | .visually-hidden-sm { 1666 | position: absolute !important; 1667 | width: 1px !important; 1668 | height: 1px !important; 1669 | margin: -1px !important; 1670 | border: 0 !important; 1671 | padding: 0 !important; 1672 | clip: rect(0 0 0 0) !important; 1673 | -webkit-clip-path: inset(100%) !important; 1674 | clip-path: inset(100%) !important; 1675 | overflow: hidden !important; } } 1676 | @media screen and (min-width: 500px) and (max-width: 1279px) { 1677 | .visually-hidden-md { 1678 | position: absolute !important; 1679 | width: 1px !important; 1680 | height: 1px !important; 1681 | margin: -1px !important; 1682 | border: 0 !important; 1683 | padding: 0 !important; 1684 | clip: rect(0 0 0 0) !important; 1685 | -webkit-clip-path: inset(100%) !important; 1686 | clip-path: inset(100%) !important; 1687 | overflow: hidden !important; } } 1688 | @media screen and (min-width: 1280px) { 1689 | .visually-hidden-lg { 1690 | position: absolute !important; 1691 | width: 1px !important; 1692 | height: 1px !important; 1693 | margin: -1px !important; 1694 | border: 0 !important; 1695 | padding: 0 !important; 1696 | clip: rect(0 0 0 0) !important; 1697 | -webkit-clip-path: inset(100%) !important; 1698 | clip-path: inset(100%) !important; 1699 | overflow: hidden !important; } } 1700 | 1701 | /*# sourceMappingURL=mini-custom.css.map */ 1702 | 1703 | img[alt="ST logo"] { display: block; margin: auto; width: 75%; max-width: 250px; min-width: 71px; } 1704 | img[alt="Cube logo"] { float: right; width: 30%; max-width: 10rem; min-width: 8rem; padding-right: 1rem;} 1705 | 1706 | .figure { 1707 | display: block; 1708 | margin-left: auto; 1709 | margin-right: auto; 1710 | text-align: center; 1711 | } -------------------------------------------------------------------------------- /_htmresc/st_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/STMicroelectronics/fp-aud-smartmic1/d323162bb1114b9a38f16e40218b54ff701befba/_htmresc/st_logo.png -------------------------------------------------------------------------------- /_htmresc/st_logo_2020.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/STMicroelectronics/fp-aud-smartmic1/d323162bb1114b9a38f16e40218b54ff701befba/_htmresc/st_logo_2020.png --------------------------------------------------------------------------------