diff options
author | silverwind <me@silverwind.io> | 2020-10-28 00:44:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-27 19:44:06 -0400 |
commit | 946bbbe9b55831ede80518ff4177f940b303a674 (patch) | |
tree | 4e012998a85f078f3f45ff3bb35720cb3350adbc | |
parent | 7dfb2fc176a3d0d864b52b3124a795781cbd73e5 (diff) | |
download | gitea-946bbbe9b55831ede80518ff4177f940b303a674.tar.gz gitea-946bbbe9b55831ede80518ff4177f940b303a674.zip |
Precompile fomantic-ui files (#13332)
We rarely change fomantic-ui or its configuration so it's kind of a
waste to have it rebuild on every CI run. These changes remove the
fomantic files from the build and instead add the relevant output files
to the git index, which should shave of 2-3 minutes on every CI run.
`make fomantic` should still work and should be ran whenever fomantic is
updated or its configuration is changed.
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
-rw-r--r-- | .gitignore | 12 | ||||
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | web_src/fomantic/build/semantic.css | 43951 | ||||
-rw-r--r-- | web_src/fomantic/build/semantic.js | 18707 | ||||
-rw-r--r-- | web_src/fomantic/build/themes/default/assets/fonts/icons.woff2 | bin | 0 -> 79444 bytes | |||
-rw-r--r-- | web_src/fomantic/build/themes/default/assets/fonts/outline-icons.woff2 | bin | 0 -> 13584 bytes |
6 files changed, 62672 insertions, 4 deletions
diff --git a/.gitignore b/.gitignore index af522a53c3..8d8863546a 100644 --- a/.gitignore +++ b/.gitignore @@ -80,7 +80,17 @@ coverage.all /public/css /public/fonts /public/img/webpack -/web_src/fomantic/build +/web_src/fomantic/build/* +!/web_src/fomantic/build/semantic.js +!/web_src/fomantic/build/semantic.css +!/web_src/fomantic/build/themes +/web_src/fomantic/build/themes/* +!/web_src/fomantic/build/themes/default +/web_src/fomantic/build/themes/default/assets/* +!/web_src/fomantic/build/themes/default/assets/fonts +/web_src/fomantic/build/themes/default/assets/fonts/* +!/web_src/fomantic/build/themes/default/assets/fonts/icons.woff2 +!/web_src/fomantic/build/themes/default/assets/fonts/outline-icons.woff2 /VERSION /.air @@ -210,7 +210,7 @@ node-check: .PHONY: clean-all clean-all: clean - rm -rf $(WEBPACK_DEST_ENTRIES) $(FOMANTIC_DEST_DIR) + rm -rf $(WEBPACK_DEST_ENTRIES) .PHONY: clean clean: @@ -323,7 +323,7 @@ watch: bash tools/watch.sh .PHONY: watch-frontend -watch-frontend: node-check $(FOMANTIC_DEST) node_modules +watch-frontend: node-check node_modules rm -rf $(WEBPACK_DEST_ENTRIES) NODE_ENV=development npx webpack --hide-modules --display-entrypoints=false --watch --progress @@ -541,7 +541,7 @@ install: $(wildcard *.go) build: frontend backend .PHONY: frontend -frontend: node-check $(FOMANTIC_DEST) $(WEBPACK_DEST) +frontend: node-check $(WEBPACK_DEST) .PHONY: backend backend: go-check generate $(EXECUTABLE) diff --git a/web_src/fomantic/build/semantic.css b/web_src/fomantic/build/semantic.css new file mode 100644 index 0000000000..c227185b24 --- /dev/null +++ b/web_src/fomantic/build/semantic.css @@ -0,0 +1,43951 @@ + /* + * # Fomantic UI - 2.8.7 + * https://github.com/fomantic/Fomantic-UI + * http://fomantic-ui.com/ + * + * Copyright 2014 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ +/*! + * # Fomantic-UI - Accordion + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Accordion +*******************************/ + +.ui.accordion, +.ui.accordion .accordion { + max-width: 100%; +} + +.ui.accordion .accordion { + margin: 1em 0 0; + padding: 0; +} + +/* Title */ + +.ui.accordion .title, +.ui.accordion .accordion .title { + cursor: pointer; +} + +/* Default Styling */ + +.ui.accordion .title:not(.ui) { + padding: 0.5em 0; + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + font-size: 1em; + color: rgba(0, 0, 0, 0.87); +} + +/* Default Styling */ + +.ui.accordion:not(.styled) .title ~ .content:not(.ui), +.ui.accordion:not(.styled) .accordion .title ~ .content:not(.ui) { + margin: ''; + padding: 0.5em 0 1em; +} + +.ui.accordion:not(.styled) .title ~ .content:not(.ui):last-child { + padding-bottom: 0; +} + +/* Arrow */ + +.ui.accordion .title .dropdown.icon, +.ui.accordion .accordion .title .dropdown.icon { + display: inline-block; + float: none; + opacity: 1; + width: 1.25em; + height: 1em; + margin: 0 0.25rem 0 0; + padding: 0; + font-size: 1em; + transition: transform 0.1s ease, opacity 0.1s ease; + vertical-align: baseline; + transform: none; +} + +/*-------------- + Coupling +---------------*/ + +/* Menu */ + +.ui.accordion.menu .item .title { + display: block; + padding: 0; +} + +.ui.accordion.menu .item .title > .dropdown.icon { + float: right; + margin: 0.21425em 0 0 1em; + transform: rotate(180deg); +} + +/* Header */ + +.ui.accordion .ui.header .dropdown.icon { + font-size: 1em; + margin: 0 0.25rem 0 0; +} + +/******************************* + States +*******************************/ + +.ui.accordion .active.title .dropdown.icon, +.ui.accordion .accordion .active.title .dropdown.icon { + transform: rotate(90deg); +} + +.ui.accordion.menu .item .active.title > .dropdown.icon { + transform: rotate(90deg); +} + +/******************************* + Types +*******************************/ + +/*-------------- + Styled + ---------------*/ + +.ui.styled.accordion { + width: 600px; +} + +.ui.styled.accordion, +.ui.styled.accordion .accordion { + border-radius: 0.28571429rem; + background: #FFFFFF; + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15); +} + +.ui.styled.accordion .title, +.ui.styled.accordion .accordion .title { + margin: 0; + padding: 0.75em 1em; + color: rgba(0, 0, 0, 0.4); + font-weight: bold; + border-top: 1px solid rgba(34, 36, 38, 0.15); + transition: background 0.1s ease, color 0.1s ease; +} + +.ui.styled.accordion > .title:first-child, +.ui.styled.accordion .accordion .title:first-child { + border-top: none; +} + +/* Content */ + +.ui.styled.accordion .content, +.ui.styled.accordion .accordion .content { + margin: 0; + padding: 0.5em 1em 1.5em; +} + +.ui.styled.accordion .accordion .content { + margin: 0; + padding: 0.5em 1em 1.5em; +} + +/* Hover */ + +.ui.styled.accordion .title:hover, +.ui.styled.accordion .active.title, +.ui.styled.accordion .accordion .title:hover, +.ui.styled.accordion .accordion .active.title { + background: transparent; + color: rgba(0, 0, 0, 0.87); +} + +.ui.styled.accordion .accordion .title:hover, +.ui.styled.accordion .accordion .active.title { + background: transparent; + color: rgba(0, 0, 0, 0.87); +} + +/* Active */ + +.ui.styled.accordion .active.title { + background: transparent; + color: rgba(0, 0, 0, 0.95); +} + +.ui.styled.accordion .accordion .active.title { + background: transparent; + color: rgba(0, 0, 0, 0.95); +} + +/******************************* + States +*******************************/ + +/*-------------- + Not Active +---------------*/ + +.ui.accordion .title ~ .content:not(.active), +.ui.accordion .accordion .title ~ .content:not(.active) { + display: none; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Fluid + ---------------*/ + +.ui.fluid.accordion, +.ui.fluid.accordion .accordion { + width: 100%; +} + +/*-------------- + Inverted + ---------------*/ + +.ui.inverted.accordion .title:not(.ui) { + color: rgba(255, 255, 255, 0.9); +} + +/******************************* + Theme Overrides +*******************************/ + +@font-face { + font-family: 'Accordion'; + src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfOIKAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zryj6HgAAAFwAAAAyGhlYWT/0IhHAAACOAAAADZoaGVhApkB5wAAAnAAAAAkaG10eAJuABIAAAKUAAAAGGxvY2EAjABWAAACrAAAAA5tYXhwAAgAFgAAArwAAAAgbmFtZfC1n04AAALcAAABPHBvc3QAAwAAAAAEGAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQASAEkAtwFuABMAADc0PwE2FzYXFh0BFAcGJwYvASY1EgaABQgHBQYGBQcIBYAG2wcGfwcBAQcECf8IBAcBAQd/BgYAAAAAAQAAAEkApQFuABMAADcRNDc2MzIfARYVFA8BBiMiJyY1AAUGBwgFgAYGgAUIBwYFWwEACAUGBoAFCAcFgAYGBQcAAAABAAAAAQAAqWYls18PPPUACwIAAAAAAM/9o+4AAAAAz/2j7gAAAAAAtwFuAAAACAACAAAAAAAAAAEAAAHg/+AAAAIAAAAAAAC3AAEAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAQAAAAC3ABIAtwAAAAAAAAAKABQAHgBCAGQAAAABAAAABgAUAAEAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype'), url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAASwAAoAAAAABGgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAS0AAAEtFpovuE9TLzIAAAIkAAAAYAAAAGAIIweQY21hcAAAAoQAAABMAAAATA984gpnYXNwAAAC0AAAAAgAAAAIAAAAEGhlYWQAAALYAAAANgAAADb/0IhHaGhlYQAAAxAAAAAkAAAAJAKZAedobXR4AAADNAAAABgAAAAYAm4AEm1heHAAAANMAAAABgAAAAYABlAAbmFtZQAAA1QAAAE8AAABPPC1n05wb3N0AAAEkAAAACAAAAAgAAMAAAEABAQAAQEBB3JhdGluZwABAgABADr4HAL4GwP4GAQeCgAZU/+Lix4KABlT/4uLDAeLa/iU+HQFHQAAAHkPHQAAAH4RHQAAAAkdAAABJBIABwEBBw0PERQZHnJhdGluZ3JhdGluZ3UwdTF1MjB1RjBEOXVGMERBAAACAYkABAAGAQEEBwoNVp38lA78lA78lA77lA773Z33bxWLkI2Qj44I9xT3FAWOj5CNkIuQi4+JjoePiI2Gi4YIi/uUBYuGiYeHiIiHh4mGi4aLho2Ijwj7FPcUBYeOiY+LkAgO+92L5hWL95QFi5CNkI6Oj4+PjZCLkIuQiY6HCPcU+xQFj4iNhouGi4aJh4eICPsU+xQFiIeGiYaLhouHjYePiI6Jj4uQCA74lBT4lBWLDAoAAAAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAEAADfYOJZfDzz1AAsCAAAAAADP/aPuAAAAAM/9o+4AAAAAALcBbgAAAAgAAgAAAAAAAAABAAAB4P/gAAACAAAAAAAAtwABAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAEAAAAAtwASALcAAAAAUAAABgAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff'); + font-weight: normal; + font-style: normal; +} + +/* Dropdown Icon */ + +.ui.accordion .title .dropdown.icon, +.ui.accordion .accordion .title .dropdown.icon { + font-family: Accordion; + line-height: 1; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + font-weight: normal; + font-style: normal; + text-align: center; +} + +.ui.accordion .title .dropdown.icon:before, +.ui.accordion .accordion .title .dropdown.icon:before { + content: '\f0da' ; +} + +/******************************* + User Overrides +*******************************/ +/*! + * # Fomantic-UI - Breadcrumb + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Breadcrumb +*******************************/ + +.ui.breadcrumb { + line-height: 1.4285em; + display: inline-block; + margin: 0 0; + vertical-align: middle; +} + +.ui.breadcrumb:first-child { + margin-top: 0; +} + +.ui.breadcrumb:last-child { + margin-bottom: 0; +} + +/******************************* + Content +*******************************/ + +/* Divider */ + +.ui.breadcrumb .divider { + display: inline-block; + opacity: 0.7; + margin: 0 0.21428571rem 0; + font-size: 0.92857143em; + color: rgba(0, 0, 0, 0.4); + vertical-align: baseline; +} + +/* Link */ + +.ui.breadcrumb a { + color: #4183C4; +} + +.ui.breadcrumb a:hover { + color: #1e70bf; +} + +/* Icon Divider */ + +.ui.breadcrumb .icon.divider { + font-size: 0.85714286em; + vertical-align: baseline; +} + +/* Section */ + +.ui.breadcrumb a.section { + cursor: pointer; +} + +.ui.breadcrumb .section { + display: inline-block; + margin: 0; + padding: 0; +} + +/* Loose Coupling */ + +.ui.breadcrumb.segment { + display: inline-block; + padding: 0.78571429em 1em; +} + +/* Inverted */ + +.ui.inverted.breadcrumb { + color: #DCDDDE; +} + +.ui.inverted.breadcrumb > .active.section { + color: #FFFFFF; +} + +.ui.inverted.breadcrumb > .divider { + color: rgba(255, 255, 255, 0.7); +} + +/******************************* + States +*******************************/ + +.ui.breadcrumb .active.section { + font-weight: bold; +} + +/******************************* + Variations +*******************************/ + +.ui.breadcrumb { + font-size: 1rem; +} + +.ui.mini.breadcrumb { + font-size: 0.78571429rem; +} + +.ui.tiny.breadcrumb { + font-size: 0.85714286rem; +} + +.ui.small.breadcrumb { + font-size: 0.92857143rem; +} + +.ui.large.breadcrumb { + font-size: 1.14285714rem; +} + +.ui.big.breadcrumb { + font-size: 1.28571429rem; +} + +.ui.huge.breadcrumb { + font-size: 1.42857143rem; +} + +.ui.massive.breadcrumb { + font-size: 1.71428571rem; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Button + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Button +*******************************/ + +.ui.button { + cursor: pointer; + display: inline-block; + min-height: 1em; + outline: none; + border: none; + vertical-align: baseline; + background: #E0E1E2 none; + color: rgba(0, 0, 0, 0.6); + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + margin: 0 0.25em 0 0; + padding: 0.78571429em 1.5em 0.78571429em; + text-transform: none; + text-shadow: none; + font-weight: bold; + line-height: 1em; + font-style: normal; + text-align: center; + text-decoration: none; + border-radius: 0.28571429rem; + box-shadow: 0 0 0 1px transparent inset, 0 0 0 0 rgba(34, 36, 38, 0.15) inset; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + transition: opacity 0.1s ease, background-color 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, background 0.1s ease; + will-change: auto; + -webkit-tap-highlight-color: transparent; +} + +/******************************* + States +*******************************/ + +/*-------------- + Hover +---------------*/ + +.ui.button:hover { + background-color: #CACBCD; + background-image: none; + box-shadow: 0 0 0 1px transparent inset, 0 0 0 0 rgba(34, 36, 38, 0.15) inset; + color: rgba(0, 0, 0, 0.8); +} + +.ui.button:hover .icon { + opacity: 0.85; +} + +/*-------------- + Focus +---------------*/ + +.ui.button:focus { + background-color: #CACBCD; + color: rgba(0, 0, 0, 0.8); + background-image: none; + box-shadow: ''; +} + +.ui.button:focus .icon { + opacity: 0.85; +} + +/*-------------- + Down +---------------*/ + +.ui.button:active, +.ui.active.button:active { + background-color: #BABBBC; + background-image: ''; + color: rgba(0, 0, 0, 0.9); + box-shadow: 0 0 0 1px transparent inset, none; +} + +/*-------------- + Active +---------------*/ + +.ui.active.button { + background-color: #C0C1C2; + background-image: none; + box-shadow: 0 0 0 1px transparent inset; + color: rgba(0, 0, 0, 0.95); +} + +.ui.active.button:hover { + background-color: #C0C1C2; + background-image: none; + color: rgba(0, 0, 0, 0.95); +} + +.ui.active.button:active { + background-color: #C0C1C2; + background-image: none; +} + +/*-------------- + Loading +---------------*/ + +/* Specificity hack */ + +.ui.loading.loading.loading.loading.loading.loading.button { + position: relative; + cursor: default; + text-shadow: none !important; + color: transparent; + opacity: 1; + pointer-events: auto; + transition: all 0s linear, opacity 0.1s ease; +} + +.ui.loading.button:before { + position: absolute; + content: ''; + top: 50%; + left: 50%; + margin: -0.64285714em 0 0 -0.64285714em; + width: 1.28571429em; + height: 1.28571429em; + border-radius: 500rem; + border: 0.2em solid rgba(0, 0, 0, 0.15); +} + +.ui.loading.button:after { + position: absolute; + content: ''; + top: 50%; + left: 50%; + margin: -0.64285714em 0 0 -0.64285714em; + width: 1.28571429em; + height: 1.28571429em; + border-radius: 500rem; + -webkit-animation: loader 0.6s infinite linear; + animation: loader 0.6s infinite linear; + border: 0.2em solid currentColor; + color: #FFFFFF; + box-shadow: 0 0 0 1px transparent; +} + +.ui.labeled.icon.loading.button .icon { + background-color: transparent; + box-shadow: none; +} + +.ui.basic.loading.button:not(.inverted):before { + border-color: rgba(0, 0, 0, 0.1); +} + +.ui.basic.loading.button:not(.inverted):after { + border-color: #767676; +} + +/*------------------- + Disabled + --------------------*/ + +.ui.buttons .disabled.button:not(.basic), +.ui.disabled.button, +.ui.button:disabled, +.ui.disabled.button:hover, +.ui.disabled.active.button { + cursor: default; + opacity: 0.45 !important; + background-image: none; + box-shadow: none; + pointer-events: none !important; +} + +/* Basic Group With Disabled */ + +.ui.basic.buttons .ui.disabled.button { + border-color: rgba(34, 36, 38, 0.5); +} + +/******************************* + Types +*******************************/ + +/*------------------- + Animated + --------------------*/ + +.ui.animated.button { + position: relative; + overflow: hidden; + padding-right: 0 !important; + vertical-align: middle; + z-index: 1; +} + +.ui.animated.button .content { + will-change: transform, opacity; +} + +.ui.animated.button .visible.content { + position: relative; + margin-right: 1.5em; +} + +.ui.animated.button .hidden.content { + position: absolute; + width: 100%; +} + +/* Horizontal */ + +.ui.animated.button .visible.content, +.ui.animated.button .hidden.content { + transition: right 0.3s ease 0s; +} + +.ui.animated.button .visible.content { + left: auto; + right: 0; +} + +.ui.animated.button .hidden.content { + top: 50%; + left: auto; + right: -100%; + margin-top: -0.5em; +} + +.ui.animated.button:focus .visible.content, +.ui.animated.button:hover .visible.content { + left: auto; + right: 200%; +} + +.ui.animated.button:focus .hidden.content, +.ui.animated.button:hover .hidden.content { + left: auto; + right: 0; +} + +/* Vertical */ + +.ui.vertical.animated.button .visible.content, +.ui.vertical.animated.button .hidden.content { + transition: top 0.3s ease, transform 0.3s ease; +} + +.ui.vertical.animated.button .visible.content { + transform: translateY(0%); + right: auto; +} + +.ui.vertical.animated.button .hidden.content { + top: -50%; + left: 0; + right: auto; +} + +.ui.vertical.animated.button:focus .visible.content, +.ui.vertical.animated.button:hover .visible.content { + transform: translateY(200%); + right: auto; +} + +.ui.vertical.animated.button:focus .hidden.content, +.ui.vertical.animated.button:hover .hidden.content { + top: 50%; + right: auto; +} + +/* Fade */ + +.ui.fade.animated.button .visible.content, +.ui.fade.animated.button .hidden.content { + transition: opacity 0.3s ease, transform 0.3s ease; +} + +.ui.fade.animated.button .visible.content { + left: auto; + right: auto; + opacity: 1; + transform: scale(1); +} + +.ui.fade.animated.button .hidden.content { + opacity: 0; + left: 0; + right: auto; + transform: scale(1.5); +} + +.ui.fade.animated.button:focus .visible.content, +.ui.fade.animated.button:hover .visible.content { + left: auto; + right: auto; + opacity: 0; + transform: scale(0.75); +} + +.ui.fade.animated.button:focus .hidden.content, +.ui.fade.animated.button:hover .hidden.content { + left: 0; + right: auto; + opacity: 1; + transform: scale(1); +} + +/*------------------- + Inverted + --------------------*/ + +.ui.inverted.button { + box-shadow: 0 0 0 2px #FFFFFF inset; + background: transparent none; + color: #FFFFFF; + text-shadow: none !important; +} + +/* Group */ + +.ui.inverted.buttons .button { + margin: 0 0 0 -2px; +} + +.ui.inverted.buttons .button:first-child { + margin-left: 0; +} + +.ui.inverted.vertical.buttons .button { + margin: 0 0 -2px 0; +} + +.ui.inverted.vertical.buttons .button:first-child { + margin-top: 0; +} + +/* States */ + +/* Hover */ + +.ui.inverted.button:hover { + background: #FFFFFF; + box-shadow: 0 0 0 2px #FFFFFF inset; + color: rgba(0, 0, 0, 0.8); +} + +/* Active / Focus */ + +.ui.inverted.button:focus, +.ui.inverted.button.active { + background: #FFFFFF; + box-shadow: 0 0 0 2px #FFFFFF inset; + color: rgba(0, 0, 0, 0.8); +} + +/* Active Focus */ + +.ui.inverted.button.active:focus { + background: #DCDDDE; + box-shadow: 0 0 0 2px #DCDDDE inset; + color: rgba(0, 0, 0, 0.8); +} + +/*------------------- + Labeled Button + --------------------*/ + +.ui.labeled.button:not(.icon) { + display: inline-flex; + flex-direction: row; + background: none; + padding: 0 !important; + border: none; + box-shadow: none; +} + +.ui.labeled.button > .button { + margin: 0; +} + +.ui.labeled.button > .label { + display: flex; + align-items: center; + margin: 0 0 0 -1px !important; + font-size: 1em; + padding: ''; + border-color: rgba(34, 36, 38, 0.15); +} + +/* Tag */ + +.ui.labeled.button > .tag.label:before { + width: 1.85em; + height: 1.85em; +} + +/* Right */ + +.ui.labeled.button:not([class*="left labeled"]) > .button { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.ui.labeled.button:not([class*="left labeled"]) > .label { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +/* Left Side */ + +.ui[class*="left labeled"].button > .button { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.ui[class*="left labeled"].button > .label { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +/*------------------- + Social + --------------------*/ + +/* Facebook */ + +.ui.facebook.button { + background-color: #3B5998; + color: #FFFFFF; + text-shadow: none; + background-image: none; + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.facebook.button:hover { + background-color: #304d8a; + color: #FFFFFF; + text-shadow: none; +} + +.ui.facebook.button:active { + background-color: #2d4373; + color: #FFFFFF; + text-shadow: none; +} + +/* Twitter */ + +.ui.twitter.button { + background-color: #1DA1F2; + color: #FFFFFF; + text-shadow: none; + background-image: none; + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.twitter.button:hover { + background-color: #0298f3; + color: #FFFFFF; + text-shadow: none; +} + +.ui.twitter.button:active { + background-color: #0c85d0; + color: #FFFFFF; + text-shadow: none; +} + +/* Google Plus */ + +.ui.google.plus.button { + background-color: #DD4B39; + color: #FFFFFF; + text-shadow: none; + background-image: none; + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.google.plus.button:hover { + background-color: #e0321c; + color: #FFFFFF; + text-shadow: none; +} + +.ui.google.plus.button:active { + background-color: #c23321; + color: #FFFFFF; + text-shadow: none; +} + +/* Linked In */ + +.ui.linkedin.button { + background-color: #0077B5; + color: #FFFFFF; + text-shadow: none; +} + +.ui.linkedin.button:hover { + background-color: #00669c; + color: #FFFFFF; + text-shadow: none; +} + +.ui.linkedin.button:active { + background-color: #005582; + color: #FFFFFF; + text-shadow: none; +} + +/* YouTube */ + +.ui.youtube.button { + background-color: #FF0000; + color: #FFFFFF; + text-shadow: none; + background-image: none; + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.youtube.button:hover { + background-color: #e60000; + color: #FFFFFF; + text-shadow: none; +} + +.ui.youtube.button:active { + background-color: #cc0000; + color: #FFFFFF; + text-shadow: none; +} + +/* Instagram */ + +.ui.instagram.button { + background-color: #49769C; + color: #FFFFFF; + text-shadow: none; + background-image: none; + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.instagram.button:hover { + background-color: #3d698e; + color: #FFFFFF; + text-shadow: none; +} + +.ui.instagram.button:active { + background-color: #395c79; + color: #FFFFFF; + text-shadow: none; +} + +/* Pinterest */ + +.ui.pinterest.button { + background-color: #BD081C; + color: #FFFFFF; + text-shadow: none; + background-image: none; + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.pinterest.button:hover { + background-color: #ac0013; + color: #FFFFFF; + text-shadow: none; +} + +.ui.pinterest.button:active { + background-color: #8c0615; + color: #FFFFFF; + text-shadow: none; +} + +/* VK */ + +.ui.vk.button { + background-color: #45668E; + color: #FFFFFF; + background-image: none; + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.vk.button:hover { + background-color: #395980; + color: #FFFFFF; +} + +.ui.vk.button:active { + background-color: #344d6c; + color: #FFFFFF; +} + +/* WhatsApp */ + +.ui.whatsapp.button { + background-color: #25D366; + color: #FFFFFF; + background-image: none; + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.whatsapp.button:hover { + background-color: #19c55a; + color: #FFFFFF; +} + +.ui.whatsapp.button:active { + background-color: #1da851; + color: #FFFFFF; +} + +/* Telegram */ + +.ui.telegram.button { + background-color: #0088CC; + color: #FFFFFF; + background-image: none; + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.telegram.button:hover { + background-color: #0077b3; + color: #FFFFFF; +} + +.ui.telegram.button:active { + background-color: #006699; + color: #FFFFFF; +} + +/*-------------- + Icon +---------------*/ + +.ui.button > .icon:not(.button) { + height: auto; + opacity: 0.8; + transition: opacity 0.1s ease; + color: ''; +} + +.ui.button:not(.icon) > .icon:not(.button):not(.dropdown), +.ui.button:not(.icon) > .icons:not(.button):not(.dropdown) { + margin: 0 0.42857143em 0 -0.21428571em; + vertical-align: baseline; +} + +.ui.button:not(.icon) > .icons:not(.button):not(.dropdown) > .icon { + vertical-align: baseline; +} + +.ui.button:not(.icon) > .right.icon:not(.button):not(.dropdown) { + margin: 0 -0.21428571em 0 0.42857143em; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Floated + --------------------*/ + +.ui[class*="left floated"].buttons, +.ui[class*="left floated"].button { + float: left; + margin-left: 0; + margin-right: 0.25em; +} + +.ui[class*="right floated"].buttons, +.ui[class*="right floated"].button { + float: right; + margin-right: 0; + margin-left: 0.25em; +} + +/*------------------- + Compact + --------------------*/ + +.ui.compact.buttons .button, +.ui.compact.button { + padding: 0.58928571em 1.125em 0.58928571em; +} + +.ui.compact.icon.buttons .button, +.ui.compact.icon.button { + padding: 0.58928571em 0.58928571em 0.58928571em; +} + +.ui.compact.labeled.icon.buttons .button, +.ui.compact.labeled.icon.button { + padding: 0.58928571em 3.69642857em 0.58928571em; +} + +.ui.compact.labeled.icon.buttons .button > .icon, +.ui.compact.labeled.icon.button > .icon { + padding: 0.58928571em 0 0.58928571em 0; +} + +/*------------------- + Sizes +--------------------*/ + +.ui.buttons .button, +.ui.buttons .or, +.ui.button { + font-size: 1rem; +} + +.ui.mini.buttons .dropdown, +.ui.mini.buttons .dropdown .menu > .item, +.ui.mini.buttons .button, +.ui.mini.buttons .or, +.ui.ui.ui.ui.mini.button { + font-size: 0.78571429rem; +} + +.ui.tiny.buttons .dropdown, +.ui.tiny.buttons .dropdown .menu > .item, +.ui.tiny.buttons .button, +.ui.tiny.buttons .or, +.ui.ui.ui.ui.tiny.button { + font-size: 0.85714286rem; +} + +.ui.small.buttons .dropdown, +.ui.small.buttons .dropdown .menu > .item, +.ui.small.buttons .button, +.ui.small.buttons .or, +.ui.ui.ui.ui.small.button { + font-size: 0.92857143rem; +} + +.ui.large.buttons .dropdown, +.ui.large.buttons .dropdown .menu > .item, +.ui.large.buttons .button, +.ui.large.buttons .or, +.ui.ui.ui.ui.large.button { + font-size: 1.14285714rem; +} + +.ui.big.buttons .dropdown, +.ui.big.buttons .dropdown .menu > .item, +.ui.big.buttons .button, +.ui.big.buttons .or, +.ui.ui.ui.ui.big.button { + font-size: 1.28571429rem; +} + +.ui.huge.buttons .dropdown, +.ui.huge.buttons .dropdown .menu > .item, +.ui.huge.buttons .button, +.ui.huge.buttons .or, +.ui.ui.ui.ui.huge.button { + font-size: 1.42857143rem; +} + +.ui.massive.buttons .dropdown, +.ui.massive.buttons .dropdown .menu > .item, +.ui.massive.buttons .button, +.ui.massive.buttons .or, +.ui.ui.ui.ui.massive.button { + font-size: 1.71428571rem; +} + +/*-------------- + Icon Only +---------------*/ + +.ui.icon.buttons .button, +.ui.icon.button:not(.animated):not(.compact) { + padding: 0.78571429em 0.78571429em 0.78571429em; +} + +.ui.animated.icon.button > .content > .icon, +.ui.icon.buttons .button > .icon, +.ui.icon.button > .icon { + opacity: 0.9; + margin: 0 !important; + vertical-align: top; +} + +.ui.animated.button > .content > .icon { + vertical-align: top; +} + +/*------------------- + Basic + --------------------*/ + +.ui.basic.buttons .button, +.ui.basic.button { + background: transparent none; + color: rgba(0, 0, 0, 0.6); + font-weight: normal; + border-radius: 0.28571429rem; + text-transform: none; + text-shadow: none !important; + box-shadow: 0 0 0 1px rgba(34, 36, 38, 0.15) inset; +} + +.ui.basic.buttons { + box-shadow: none; + border: 1px solid rgba(34, 36, 38, 0.15); + border-radius: 0.28571429rem; +} + +.ui.basic.buttons .button { + border-radius: 0; +} + +.ui.basic.buttons .button:hover, +.ui.basic.button:hover { + background: #FFFFFF; + color: rgba(0, 0, 0, 0.8); + box-shadow: 0 0 0 1px rgba(34, 36, 38, 0.35) inset, 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.basic.buttons .button:focus, +.ui.basic.button:focus { + background: #FFFFFF; + color: rgba(0, 0, 0, 0.8); + box-shadow: 0 0 0 1px rgba(34, 36, 38, 0.35) inset, 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.basic.buttons .button:active, +.ui.basic.button:active { + background: #F8F8F8; + color: rgba(0, 0, 0, 0.9); + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset, 0 1px 4px 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.basic.buttons .active.button, +.ui.basic.active.button { + background: rgba(0, 0, 0, 0.05); + box-shadow: ''; + color: rgba(0, 0, 0, 0.95); +} + +.ui.basic.buttons .active.button:hover, +.ui.basic.active.button:hover { + background-color: rgba(0, 0, 0, 0.05); +} + +/* Vertical */ + +.ui.basic.buttons .button:hover { + box-shadow: 0 0 0 1px rgba(34, 36, 38, 0.35) inset, 0 0 0 0 rgba(34, 36, 38, 0.15) inset inset; +} + +.ui.basic.buttons .button:active { + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset, 0 1px 4px 0 rgba(34, 36, 38, 0.15) inset inset; +} + +.ui.basic.buttons .active.button { + box-shadow: ''; +} + +/* Standard Basic Inverted */ + +.ui.basic.inverted.buttons .button, +.ui.basic.inverted.button { + background-color: transparent; + color: #F9FAFB; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; +} + +.ui.basic.inverted.buttons .button:hover, +.ui.basic.inverted.button:hover { + color: #FFFFFF; + box-shadow: 0 0 0 2px #ffffff inset; +} + +.ui.basic.inverted.buttons .button:focus, +.ui.basic.inverted.button:focus { + color: #FFFFFF; + box-shadow: 0 0 0 2px #ffffff inset; +} + +.ui.basic.inverted.buttons .button:active, +.ui.basic.inverted.button:active { + background-color: rgba(255, 255, 255, 0.08); + color: #FFFFFF; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9) inset; +} + +.ui.basic.inverted.buttons .active.button, +.ui.basic.inverted.active.button { + background-color: rgba(255, 255, 255, 0.08); + color: #FFFFFF; + text-shadow: none; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.7) inset; +} + +.ui.basic.inverted.buttons .active.button:hover, +.ui.basic.inverted.active.button:hover { + background-color: rgba(255, 255, 255, 0.15); + box-shadow: 0 0 0 2px #ffffff inset; +} + +/* Basic Group */ + +.ui.basic.buttons .button { + border-left: 1px solid rgba(34, 36, 38, 0.15); + box-shadow: none; +} + +.ui.basic.vertical.buttons .button { + border-left: none; + border-left-width: 0; + border-top: 1px solid rgba(34, 36, 38, 0.15); +} + +.ui.basic.vertical.buttons .button:first-child { + border-top-width: 0; +} + +/*------------------- + Tertiary + --------------------*/ + +/* Overline Mixin */ + +.ui.tertiary.button { + transition: color 0.1s ease !important; + border-radius: 0; + margin: 0.28571429em 0.25em 0.28571429em 0 !important; + padding: 0.5em !important; + box-shadow: none; + color: rgba(0, 0, 0, 0.6); + background: none; +} + +.ui.tertiary.button:hover { + box-shadow: inset 0 -0.2em 0 #666666; + color: #333333; + background: none; +} + +.ui.tertiary.button:focus { + box-shadow: inset 0 -0.2em 0 #666666; + color: #333333; + background: none; +} + +.ui.tertiary.button:active { + box-shadow: inset 0 -0.2em 0 #999999; + border-radius: 0.28571429rem 0.28571429rem 0 0; + color: #666666; + background: none; +} + +/*-------------- + Labeled Icon + ---------------*/ + +.ui.labeled.icon.buttons .button, +.ui.labeled.icon.button { + position: relative; + padding-left: 4.07142857em !important; + padding-right: 1.5em !important; +} + +/* Left Labeled */ + +.ui.labeled.icon.buttons > .button > .icon, +.ui.labeled.icon.button > .icon { + position: absolute; + top: 0; + left: 0; + height: 100%; + line-height: 1; + border-radius: 0; + border-top-left-radius: inherit; + border-bottom-left-radius: inherit; + text-align: center; + -webkit-animation: none; + animation: none; + padding: 0.78571429em 0 0.78571429em 0; + margin: 0; + width: 2.57142857em; + background-color: rgba(0, 0, 0, 0.05); + color: ''; + box-shadow: -1px 0 0 0 transparent inset; +} + +/* Right Labeled */ + +.ui[class*="right labeled"].icon.button { + padding-right: 4.07142857em !important; + padding-left: 1.5em !important; +} + +.ui[class*="right labeled"].icon.button > .icon { + left: auto; + right: 0; + border-radius: 0; + border-top-right-radius: inherit; + border-bottom-right-radius: inherit; + box-shadow: 1px 0 0 0 transparent inset; +} + +.ui.labeled.icon.buttons > .button > .icon:before, +.ui.labeled.icon.button > .icon:before, +.ui.labeled.icon.buttons > .button > .icon:after, +.ui.labeled.icon.button > .icon:after { + display: block; + position: relative; + width: 100%; + top: 0; + text-align: center; +} + +.ui.labeled.icon.buttons .button > .icon { + border-radius: 0; +} + +.ui.labeled.icon.buttons .button:first-child > .icon { + border-top-left-radius: 0.28571429rem; + border-bottom-left-radius: 0.28571429rem; +} + +.ui.labeled.icon.buttons .button:last-child > .icon { + border-top-right-radius: 0.28571429rem; + border-bottom-right-radius: 0.28571429rem; +} + +.ui.vertical.labeled.icon.buttons .button:first-child > .icon { + border-radius: 0; + border-top-left-radius: 0.28571429rem; +} + +.ui.vertical.labeled.icon.buttons .button:last-child > .icon { + border-radius: 0; + border-bottom-left-radius: 0.28571429rem; +} + +/* Loading Icon in Labeled Button */ + +.ui.labeled.icon.button > .loading.icon:before { + -webkit-animation: loader 2s linear infinite; + animation: loader 2s linear infinite; +} + +/*-------------- + Toggle + ---------------*/ + +/* Toggle (Modifies active state to give affordances) */ + +.ui.toggle.buttons .active.button, +.ui.buttons .button.toggle.active, +.ui.button.toggle.active { + background-color: #21BA45; + box-shadow: none; + text-shadow: none; + color: #FFFFFF; +} + +.ui.button.toggle.active:hover { + background-color: #16ab39; + text-shadow: none; + color: #FFFFFF; +} + +/*-------------- + Circular + ---------------*/ + +.ui.circular.button { + border-radius: 10em; +} + +.ui.circular.button > .icon { + width: 1em; + vertical-align: baseline; +} + +/*------------------- + Or Buttons + --------------------*/ + +.ui.buttons .or { + position: relative; + width: 0.3em; + height: 2.57142857em; + z-index: 3; +} + +.ui.buttons .or:before { + position: absolute; + text-align: center; + border-radius: 500rem; + content: 'or'; + top: 50%; + left: 50%; + background-color: #FFFFFF; + text-shadow: none; + margin-top: -0.89285714em; + margin-left: -0.89285714em; + width: 1.78571429em; + height: 1.78571429em; + line-height: 1.78571429em; + color: rgba(0, 0, 0, 0.4); + font-style: normal; + font-weight: bold; + box-shadow: 0 0 0 1px transparent inset; +} + +.ui.buttons .or[data-text]:before { + content: attr(data-text); +} + +/* Fluid Or */ + +.ui.fluid.buttons .or { + width: 0 !important; +} + +.ui.fluid.buttons .or:after { + display: none; +} + +/*------------------- + Attached + --------------------*/ + +/* Singular */ + +.ui.attached.button { + position: relative; + display: block; + margin: 0; + border-radius: 0; + box-shadow: 0 0 0 1px rgba(34, 36, 38, 0.15); +} + +/* Top / Bottom */ + +.ui.attached.top.button { + border-radius: 0.28571429rem 0.28571429rem 0 0; +} + +.ui.attached.bottom.button { + border-radius: 0 0 0.28571429rem 0.28571429rem; +} + +/* Left / Right */ + +.ui.left.attached.button { + display: inline-block; + border-left: none; + text-align: right; + padding-right: 0.75em; + border-radius: 0.28571429rem 0 0 0.28571429rem; +} + +.ui.right.attached.button { + display: inline-block; + text-align: left; + padding-left: 0.75em; + border-radius: 0 0.28571429rem 0.28571429rem 0; +} + +/* Plural */ + +.ui.attached.buttons { + position: relative; + display: flex; + border-radius: 0; + width: auto !important; + z-index: auto; + margin-left: -1px; + margin-right: -1px; +} + +.ui.attached.buttons .button { + margin: 0; +} + +.ui.attached.buttons .button:first-child { + border-radius: 0; +} + +.ui.attached.buttons .button:last-child { + border-radius: 0; +} + +/* Top / Bottom */ + +.ui[class*="top attached"].buttons { + margin-bottom: -1px; + border-radius: 0.28571429rem 0.28571429rem 0 0; +} + +.ui[class*="top attached"].buttons .button:first-child { + border-radius: 0.28571429rem 0 0 0; +} + +.ui[class*="top attached"].buttons .button:last-child { + border-radius: 0 0.28571429rem 0 0; +} + +.ui[class*="bottom attached"].buttons { + margin-top: -1px; + border-radius: 0 0 0.28571429rem 0.28571429rem; +} + +.ui[class*="bottom attached"].buttons .button:first-child { + border-radius: 0 0 0 0.28571429rem; +} + +.ui[class*="bottom attached"].buttons .button:last-child { + border-radius: 0 0 0.28571429rem 0; +} + +/* Left / Right */ + +.ui[class*="left attached"].buttons { + display: inline-flex; + margin-right: 0; + margin-left: -1px; + border-radius: 0 0.28571429rem 0.28571429rem 0; +} + +.ui[class*="left attached"].buttons .button:first-child { + margin-left: -1px; + border-radius: 0 0.28571429rem 0 0; +} + +.ui[class*="left attached"].buttons .button:last-child { + margin-left: -1px; + border-radius: 0 0 0.28571429rem 0; +} + +.ui[class*="right attached"].buttons { + display: inline-flex; + margin-left: 0; + margin-right: -1px; + border-radius: 0.28571429rem 0 0 0.28571429rem; +} + +.ui[class*="right attached"].buttons .button:first-child { + margin-left: -1px; + border-radius: 0.28571429rem 0 0 0; +} + +.ui[class*="right attached"].buttons .button:last-child { + margin-left: -1px; + border-radius: 0 0 0 0.28571429rem; +} + +/*------------------- + Fluid + --------------------*/ + +.ui.fluid.buttons, +.ui.fluid.button { + width: 100%; +} + +.ui.fluid.button { + display: block; +} + +.ui.two.buttons { + width: 100%; +} + +.ui.two.buttons > .button { + width: 50%; +} + +.ui.three.buttons { + width: 100%; +} + +.ui.three.buttons > .button { + width: 33.333%; +} + +.ui.four.buttons { + width: 100%; +} + +.ui.four.buttons > .button { + width: 25%; +} + +.ui.five.buttons { + width: 100%; +} + +.ui.five.buttons > .button { + width: 20%; +} + +.ui.six.buttons { + width: 100%; +} + +.ui.six.buttons > .button { + width: 16.666%; +} + +.ui.seven.buttons { + width: 100%; +} + +.ui.seven.buttons > .button { + width: 14.285%; +} + +.ui.eight.buttons { + width: 100%; +} + +.ui.eight.buttons > .button { + width: 12.5%; +} + +.ui.nine.buttons { + width: 100%; +} + +.ui.nine.buttons > .button { + width: 11.11%; +} + +.ui.ten.buttons { + width: 100%; +} + +.ui.ten.buttons > .button { + width: 10%; +} + +.ui.eleven.buttons { + width: 100%; +} + +.ui.eleven.buttons > .button { + width: 9.09%; +} + +.ui.twelve.buttons { + width: 100%; +} + +.ui.twelve.buttons > .button { + width: 8.3333%; +} + +/* Fluid Vertical Buttons */ + +.ui.fluid.vertical.buttons, +.ui.fluid.vertical.buttons > .button { + display: flex; + width: auto; + justify-content: center; +} + +.ui.two.vertical.buttons > .button { + height: 50%; +} + +.ui.three.vertical.buttons > .button { + height: 33.333%; +} + +.ui.four.vertical.buttons > .button { + height: 25%; +} + +.ui.five.vertical.buttons > .button { + height: 20%; +} + +.ui.six.vertical.buttons > .button { + height: 16.666%; +} + +.ui.seven.vertical.buttons > .button { + height: 14.285%; +} + +.ui.eight.vertical.buttons > .button { + height: 12.5%; +} + +.ui.nine.vertical.buttons > .button { + height: 11.11%; +} + +.ui.ten.vertical.buttons > .button { + height: 10%; +} + +.ui.eleven.vertical.buttons > .button { + height: 9.09%; +} + +.ui.twelve.vertical.buttons > .button { + height: 8.3333%; +} + +/*------------------- + Colors +--------------------*/ + +.ui.primary.buttons .button, +.ui.primary.button { + background-color: #2185D0; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.primary.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.primary.buttons .button:hover, +.ui.primary.button:hover { + background-color: #1678c2; + color: #FFFFFF; + text-shadow: none; +} + +.ui.primary.buttons .button:focus, +.ui.primary.button:focus { + background-color: #0d71bb; + color: #FFFFFF; + text-shadow: none; +} + +.ui.primary.buttons .button:active, +.ui.primary.button:active { + background-color: #1a69a4; + color: #FFFFFF; + text-shadow: none; +} + +.ui.primary.buttons .active.button, +.ui.primary.buttons .active.button:active, +.ui.primary.active.button, +.ui.primary.button .active.button:active { + background-color: #1279c6; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.primary.buttons .button, +.ui.basic.primary.button { + background: transparent; + box-shadow: 0 0 0 1px #2185D0 inset; + color: #2185D0; +} + +.ui.basic.primary.buttons .button:hover, +.ui.basic.primary.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #1678c2 inset; + color: #1678c2; +} + +.ui.basic.primary.buttons .button:focus, +.ui.basic.primary.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #0d71bb inset; + color: #1678c2; +} + +.ui.basic.primary.buttons .active.button, +.ui.basic.primary.active.button { + background: transparent; + box-shadow: 0 0 0 1px #1279c6 inset; + color: #1a69a4; +} + +.ui.basic.primary.buttons .button:active, +.ui.basic.primary.button:active { + box-shadow: 0 0 0 1px #1a69a4 inset; + color: #1a69a4; +} + +.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child) { + margin-left: -1px; +} + +/* Inverted */ + +.ui.inverted.primary.buttons .button, +.ui.inverted.primary.button { + background-color: transparent; + box-shadow: 0 0 0 2px #54C8FF inset; + color: #54C8FF; +} + +.ui.inverted.primary.buttons .button:hover, +.ui.inverted.primary.button:hover, +.ui.inverted.primary.buttons .button:focus, +.ui.inverted.primary.button:focus, +.ui.inverted.primary.buttons .button.active, +.ui.inverted.primary.button.active, +.ui.inverted.primary.buttons .button:active, +.ui.inverted.primary.button:active { + box-shadow: none; + color: #FFFFFF; +} + +.ui.inverted.primary.buttons .button:hover, +.ui.inverted.primary.button:hover { + background-color: #21b8ff; +} + +.ui.inverted.primary.buttons .button:focus, +.ui.inverted.primary.button:focus { + background-color: #2bbbff; +} + +.ui.inverted.primary.buttons .active.button, +.ui.inverted.primary.active.button { + background-color: #3ac0ff; +} + +.ui.inverted.primary.buttons .button:active, +.ui.inverted.primary.button:active { + background-color: #21b8ff; +} + +/* Inverted Basic */ + +.ui.inverted.primary.basic.buttons .button, +.ui.inverted.primary.buttons .basic.button, +.ui.inverted.primary.basic.button { + background-color: transparent; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; + color: #FFFFFF; +} + +.ui.inverted.primary.basic.buttons .button:hover, +.ui.inverted.primary.buttons .basic.button:hover, +.ui.inverted.primary.basic.button:hover { + box-shadow: 0 0 0 2px #21b8ff inset; + color: #54C8FF; +} + +.ui.inverted.primary.basic.buttons .button:focus, +.ui.inverted.primary.basic.buttons .button:focus, +.ui.inverted.primary.basic.button:focus { + box-shadow: 0 0 0 2px #2bbbff inset; + color: #54C8FF; +} + +.ui.inverted.primary.basic.buttons .active.button, +.ui.inverted.primary.buttons .basic.active.button, +.ui.inverted.primary.basic.active.button { + box-shadow: 0 0 0 2px #3ac0ff inset; + color: #54C8FF; +} + +.ui.inverted.primary.basic.buttons .button:active, +.ui.inverted.primary.buttons .basic.button:active, +.ui.inverted.primary.basic.button:active { + box-shadow: 0 0 0 2px #21b8ff inset; + color: #54C8FF; +} + +/* Tertiary */ + +.ui.tertiary.primary.buttons .button, +.ui.tertiary.primary.buttons .tertiary.button, +.ui.tertiary.primary.button { + background: transparent; + box-shadow: none; + color: #2185D0; +} + +.ui.tertiary.primary.buttons .button:hover, +.ui.tertiary.primary.buttons button:hover, +.ui.tertiary.primary.button:hover { + box-shadow: inset 0 -0.2em 0 #2b75ac; + color: #2b75ac; +} + +.ui.tertiary.primary.buttons .button:focus, +.ui.tertiary.primary.buttons .tertiary.button:focus, +.ui.tertiary.primary.button:focus { + box-shadow: inset 0 -0.2em 0 #216ea7; + color: #216ea7; +} + +.ui.tertiary.primary.buttons .active.button, +.ui.tertiary.primary.buttons .tertiary.active.button, +.ui.tertiary.primary.active.button, +.ui.tertiary.primary.buttons .button:active, +.ui.tertiary.primary.buttons .tertiary.button:active, +.ui.tertiary.primary.button:active { + box-shadow: inset 0 -0.2em 0 #007bd8; + color: #1279c6; +} + +.ui.secondary.buttons .button, +.ui.secondary.button { + background-color: #1B1C1D; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.secondary.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.secondary.buttons .button:hover, +.ui.secondary.button:hover { + background-color: #27292a; + color: #FFFFFF; + text-shadow: none; +} + +.ui.secondary.buttons .button:focus, +.ui.secondary.button:focus { + background-color: #2e3032; + color: #FFFFFF; + text-shadow: none; +} + +.ui.secondary.buttons .button:active, +.ui.secondary.button:active { + background-color: #343637; + color: #FFFFFF; + text-shadow: none; +} + +.ui.secondary.buttons .active.button, +.ui.secondary.buttons .active.button:active, +.ui.secondary.active.button, +.ui.secondary.button .active.button:active { + background-color: #27292a; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.secondary.buttons .button, +.ui.basic.secondary.button { + background: transparent; + box-shadow: 0 0 0 1px #1B1C1D inset; + color: #1B1C1D; +} + +.ui.basic.secondary.buttons .button:hover, +.ui.basic.secondary.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #27292a inset; + color: #27292a; +} + +.ui.basic.secondary.buttons .button:focus, +.ui.basic.secondary.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #2e3032 inset; + color: #27292a; +} + +.ui.basic.secondary.buttons .active.button, +.ui.basic.secondary.active.button { + background: transparent; + box-shadow: 0 0 0 1px #27292a inset; + color: #343637; +} + +.ui.basic.secondary.buttons .button:active, +.ui.basic.secondary.button:active { + box-shadow: 0 0 0 1px #343637 inset; + color: #343637; +} + +.ui.buttons:not(.vertical) > .basic.secondary.button:not(:first-child) { + margin-left: -1px; +} + +/* Inverted */ + +.ui.inverted.secondary.buttons .button, +.ui.inverted.secondary.button { + background-color: transparent; + box-shadow: 0 0 0 2px #545454 inset; + color: #545454; +} + +.ui.inverted.secondary.buttons .button:hover, +.ui.inverted.secondary.button:hover, +.ui.inverted.secondary.buttons .button:focus, +.ui.inverted.secondary.button:focus, +.ui.inverted.secondary.buttons .button.active, +.ui.inverted.secondary.button.active, +.ui.inverted.secondary.buttons .button:active, +.ui.inverted.secondary.button:active { + box-shadow: none; + color: #FFFFFF; +} + +.ui.inverted.secondary.buttons .button:hover, +.ui.inverted.secondary.button:hover { + background-color: #6e6e6e; +} + +.ui.inverted.secondary.buttons .button:focus, +.ui.inverted.secondary.button:focus { + background-color: #686868; +} + +.ui.inverted.secondary.buttons .active.button, +.ui.inverted.secondary.active.button { + background-color: #616161; +} + +.ui.inverted.secondary.buttons .button:active, +.ui.inverted.secondary.button:active { + background-color: #6e6e6e; +} + +/* Inverted Basic */ + +.ui.inverted.secondary.basic.buttons .button, +.ui.inverted.secondary.buttons .basic.button, +.ui.inverted.secondary.basic.button { + background-color: transparent; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; + color: #FFFFFF; +} + +.ui.inverted.secondary.basic.buttons .button:hover, +.ui.inverted.secondary.buttons .basic.button:hover, +.ui.inverted.secondary.basic.button:hover { + box-shadow: 0 0 0 2px #6e6e6e inset; + color: #545454; +} + +.ui.inverted.secondary.basic.buttons .button:focus, +.ui.inverted.secondary.basic.buttons .button:focus, +.ui.inverted.secondary.basic.button:focus { + box-shadow: 0 0 0 2px #686868 inset; + color: #545454; +} + +.ui.inverted.secondary.basic.buttons .active.button, +.ui.inverted.secondary.buttons .basic.active.button, +.ui.inverted.secondary.basic.active.button { + box-shadow: 0 0 0 2px #616161 inset; + color: #545454; +} + +.ui.inverted.secondary.basic.buttons .button:active, +.ui.inverted.secondary.buttons .basic.button:active, +.ui.inverted.secondary.basic.button:active { + box-shadow: 0 0 0 2px #6e6e6e inset; + color: #545454; +} + +/* Tertiary */ + +.ui.tertiary.secondary.buttons .button, +.ui.tertiary.secondary.buttons .tertiary.button, +.ui.tertiary.secondary.button { + background: transparent; + box-shadow: none; + color: #1B1C1D; +} + +.ui.tertiary.secondary.buttons .button:hover, +.ui.tertiary.secondary.buttons button:hover, +.ui.tertiary.secondary.button:hover { + box-shadow: inset 0 -0.2em 0 #292929; + color: #292929; +} + +.ui.tertiary.secondary.buttons .button:focus, +.ui.tertiary.secondary.buttons .tertiary.button:focus, +.ui.tertiary.secondary.button:focus { + box-shadow: inset 0 -0.2em 0 #303030; + color: #303030; +} + +.ui.tertiary.secondary.buttons .active.button, +.ui.tertiary.secondary.buttons .tertiary.active.button, +.ui.tertiary.secondary.active.button, +.ui.tertiary.secondary.buttons .button:active, +.ui.tertiary.secondary.buttons .tertiary.button:active, +.ui.tertiary.secondary.button:active { + box-shadow: inset 0 -0.2em 0 #1f2933; + color: #27292a; +} + +.ui.red.buttons .button, +.ui.red.button { + background-color: #DB2828; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.red.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.red.buttons .button:hover, +.ui.red.button:hover { + background-color: #d01919; + color: #FFFFFF; + text-shadow: none; +} + +.ui.red.buttons .button:focus, +.ui.red.button:focus { + background-color: #ca1010; + color: #FFFFFF; + text-shadow: none; +} + +.ui.red.buttons .button:active, +.ui.red.button:active { + background-color: #b21e1e; + color: #FFFFFF; + text-shadow: none; +} + +.ui.red.buttons .active.button, +.ui.red.buttons .active.button:active, +.ui.red.active.button, +.ui.red.button .active.button:active { + background-color: #d41515; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.red.buttons .button, +.ui.basic.red.button { + background: transparent; + box-shadow: 0 0 0 1px #DB2828 inset; + color: #DB2828; +} + +.ui.basic.red.buttons .button:hover, +.ui.basic.red.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #d01919 inset; + color: #d01919; +} + +.ui.basic.red.buttons .button:focus, +.ui.basic.red.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #ca1010 inset; + color: #d01919; +} + +.ui.basic.red.buttons .active.button, +.ui.basic.red.active.button { + background: transparent; + box-shadow: 0 0 0 1px #d41515 inset; + color: #b21e1e; +} + +.ui.basic.red.buttons .button:active, +.ui.basic.red.button:active { + box-shadow: 0 0 0 1px #b21e1e inset; + color: #b21e1e; +} + +.ui.buttons:not(.vertical) > .basic.red.button:not(:first-child) { + margin-left: -1px; +} + +/* Inverted */ + +.ui.inverted.red.buttons .button, +.ui.inverted.red.button { + background-color: transparent; + box-shadow: 0 0 0 2px #FF695E inset; + color: #FF695E; +} + +.ui.inverted.red.buttons .button:hover, +.ui.inverted.red.button:hover, +.ui.inverted.red.buttons .button:focus, +.ui.inverted.red.button:focus, +.ui.inverted.red.buttons .button.active, +.ui.inverted.red.button.active, +.ui.inverted.red.buttons .button:active, +.ui.inverted.red.button:active { + box-shadow: none; + color: #FFFFFF; +} + +.ui.inverted.red.buttons .button:hover, +.ui.inverted.red.button:hover { + background-color: #ff392b; +} + +.ui.inverted.red.buttons .button:focus, +.ui.inverted.red.button:focus { + background-color: #ff4335; +} + +.ui.inverted.red.buttons .active.button, +.ui.inverted.red.active.button { + background-color: #ff5144; +} + +.ui.inverted.red.buttons .button:active, +.ui.inverted.red.button:active { + background-color: #ff392b; +} + +/* Inverted Basic */ + +.ui.inverted.red.basic.buttons .button, +.ui.inverted.red.buttons .basic.button, +.ui.inverted.red.basic.button { + background-color: transparent; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; + color: #FFFFFF; +} + +.ui.inverted.red.basic.buttons .button:hover, +.ui.inverted.red.buttons .basic.button:hover, +.ui.inverted.red.basic.button:hover { + box-shadow: 0 0 0 2px #ff392b inset; + color: #FF695E; +} + +.ui.inverted.red.basic.buttons .button:focus, +.ui.inverted.red.basic.buttons .button:focus, +.ui.inverted.red.basic.button:focus { + box-shadow: 0 0 0 2px #ff4335 inset; + color: #FF695E; +} + +.ui.inverted.red.basic.buttons .active.button, +.ui.inverted.red.buttons .basic.active.button, +.ui.inverted.red.basic.active.button { + box-shadow: 0 0 0 2px #ff5144 inset; + color: #FF695E; +} + +.ui.inverted.red.basic.buttons .button:active, +.ui.inverted.red.buttons .basic.button:active, +.ui.inverted.red.basic.button:active { + box-shadow: 0 0 0 2px #ff392b inset; + color: #FF695E; +} + +/* Tertiary */ + +.ui.tertiary.red.buttons .button, +.ui.tertiary.red.buttons .tertiary.button, +.ui.tertiary.red.button { + background: transparent; + box-shadow: none; + color: #DB2828; +} + +.ui.tertiary.red.buttons .button:hover, +.ui.tertiary.red.buttons button:hover, +.ui.tertiary.red.button:hover { + box-shadow: inset 0 -0.2em 0 #b93131; + color: #b93131; +} + +.ui.tertiary.red.buttons .button:focus, +.ui.tertiary.red.buttons .tertiary.button:focus, +.ui.tertiary.red.button:focus { + box-shadow: inset 0 -0.2em 0 #b52626; + color: #b52626; +} + +.ui.tertiary.red.buttons .active.button, +.ui.tertiary.red.buttons .tertiary.active.button, +.ui.tertiary.red.active.button, +.ui.tertiary.red.buttons .button:active, +.ui.tertiary.red.buttons .tertiary.button:active, +.ui.tertiary.red.button:active { + box-shadow: inset 0 -0.2em 0 #ea0000; + color: #d41515; +} + +.ui.orange.buttons .button, +.ui.orange.button { + background-color: #F2711C; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.orange.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.orange.buttons .button:hover, +.ui.orange.button:hover { + background-color: #f26202; + color: #FFFFFF; + text-shadow: none; +} + +.ui.orange.buttons .button:focus, +.ui.orange.button:focus { + background-color: #e55b00; + color: #FFFFFF; + text-shadow: none; +} + +.ui.orange.buttons .button:active, +.ui.orange.button:active { + background-color: #cf590c; + color: #FFFFFF; + text-shadow: none; +} + +.ui.orange.buttons .active.button, +.ui.orange.buttons .active.button:active, +.ui.orange.active.button, +.ui.orange.button .active.button:active { + background-color: #f56100; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.orange.buttons .button, +.ui.basic.orange.button { + background: transparent; + box-shadow: 0 0 0 1px #F2711C inset; + color: #F2711C; +} + +.ui.basic.orange.buttons .button:hover, +.ui.basic.orange.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #f26202 inset; + color: #f26202; +} + +.ui.basic.orange.buttons .button:focus, +.ui.basic.orange.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #e55b00 inset; + color: #f26202; +} + +.ui.basic.orange.buttons .active.button, +.ui.basic.orange.active.button { + background: transparent; + box-shadow: 0 0 0 1px #f56100 inset; + color: #cf590c; +} + +.ui.basic.orange.buttons .button:active, +.ui.basic.orange.button:active { + box-shadow: 0 0 0 1px #cf590c inset; + color: #cf590c; +} + +.ui.buttons:not(.vertical) > .basic.orange.button:not(:first-child) { + margin-left: -1px; +} + +/* Inverted */ + +.ui.inverted.orange.buttons .button, +.ui.inverted.orange.button { + background-color: transparent; + box-shadow: 0 0 0 2px #FF851B inset; + color: #FF851B; +} + +.ui.inverted.orange.buttons .button:hover, +.ui.inverted.orange.button:hover, +.ui.inverted.orange.buttons .button:focus, +.ui.inverted.orange.button:focus, +.ui.inverted.orange.buttons .button.active, +.ui.inverted.orange.button.active, +.ui.inverted.orange.buttons .button:active, +.ui.inverted.orange.button:active { + box-shadow: none; + color: #FFFFFF; +} + +.ui.inverted.orange.buttons .button:hover, +.ui.inverted.orange.button:hover { + background-color: #e76b00; +} + +.ui.inverted.orange.buttons .button:focus, +.ui.inverted.orange.button:focus { + background-color: #f17000; +} + +.ui.inverted.orange.buttons .active.button, +.ui.inverted.orange.active.button { + background-color: #ff7701; +} + +.ui.inverted.orange.buttons .button:active, +.ui.inverted.orange.button:active { + background-color: #e76b00; +} + +/* Inverted Basic */ + +.ui.inverted.orange.basic.buttons .button, +.ui.inverted.orange.buttons .basic.button, +.ui.inverted.orange.basic.button { + background-color: transparent; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; + color: #FFFFFF; +} + +.ui.inverted.orange.basic.buttons .button:hover, +.ui.inverted.orange.buttons .basic.button:hover, +.ui.inverted.orange.basic.button:hover { + box-shadow: 0 0 0 2px #e76b00 inset; + color: #FF851B; +} + +.ui.inverted.orange.basic.buttons .button:focus, +.ui.inverted.orange.basic.buttons .button:focus, +.ui.inverted.orange.basic.button:focus { + box-shadow: 0 0 0 2px #f17000 inset; + color: #FF851B; +} + +.ui.inverted.orange.basic.buttons .active.button, +.ui.inverted.orange.buttons .basic.active.button, +.ui.inverted.orange.basic.active.button { + box-shadow: 0 0 0 2px #ff7701 inset; + color: #FF851B; +} + +.ui.inverted.orange.basic.buttons .button:active, +.ui.inverted.orange.buttons .basic.button:active, +.ui.inverted.orange.basic.button:active { + box-shadow: 0 0 0 2px #e76b00 inset; + color: #FF851B; +} + +/* Tertiary */ + +.ui.tertiary.orange.buttons .button, +.ui.tertiary.orange.buttons .tertiary.button, +.ui.tertiary.orange.button { + background: transparent; + box-shadow: none; + color: #F2711C; +} + +.ui.tertiary.orange.buttons .button:hover, +.ui.tertiary.orange.buttons button:hover, +.ui.tertiary.orange.button:hover { + box-shadow: inset 0 -0.2em 0 #da671b; + color: #da671b; +} + +.ui.tertiary.orange.buttons .button:focus, +.ui.tertiary.orange.buttons .tertiary.button:focus, +.ui.tertiary.orange.button:focus { + box-shadow: inset 0 -0.2em 0 #ce6017; + color: #ce6017; +} + +.ui.tertiary.orange.buttons .active.button, +.ui.tertiary.orange.buttons .tertiary.active.button, +.ui.tertiary.orange.active.button, +.ui.tertiary.orange.buttons .button:active, +.ui.tertiary.orange.buttons .tertiary.button:active, +.ui.tertiary.orange.button:active { + box-shadow: inset 0 -0.2em 0 #f56100; + color: #f56100; +} + +.ui.yellow.buttons .button, +.ui.yellow.button { + background-color: #FBBD08; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.yellow.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.yellow.buttons .button:hover, +.ui.yellow.button:hover { + background-color: #eaae00; + color: #FFFFFF; + text-shadow: none; +} + +.ui.yellow.buttons .button:focus, +.ui.yellow.button:focus { + background-color: #daa300; + color: #FFFFFF; + text-shadow: none; +} + +.ui.yellow.buttons .button:active, +.ui.yellow.button:active { + background-color: #cd9903; + color: #FFFFFF; + text-shadow: none; +} + +.ui.yellow.buttons .active.button, +.ui.yellow.buttons .active.button:active, +.ui.yellow.active.button, +.ui.yellow.button .active.button:active { + background-color: #eaae00; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.yellow.buttons .button, +.ui.basic.yellow.button { + background: transparent; + box-shadow: 0 0 0 1px #FBBD08 inset; + color: #FBBD08; +} + +.ui.basic.yellow.buttons .button:hover, +.ui.basic.yellow.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #eaae00 inset; + color: #eaae00; +} + +.ui.basic.yellow.buttons .button:focus, +.ui.basic.yellow.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #daa300 inset; + color: #eaae00; +} + +.ui.basic.yellow.buttons .active.button, +.ui.basic.yellow.active.button { + background: transparent; + box-shadow: 0 0 0 1px #eaae00 inset; + color: #cd9903; +} + +.ui.basic.yellow.buttons .button:active, +.ui.basic.yellow.button:active { + box-shadow: 0 0 0 1px #cd9903 inset; + color: #cd9903; +} + +.ui.buttons:not(.vertical) > .basic.yellow.button:not(:first-child) { + margin-left: -1px; +} + +/* Inverted */ + +.ui.inverted.yellow.buttons .button, +.ui.inverted.yellow.button { + background-color: transparent; + box-shadow: 0 0 0 2px #FFE21F inset; + color: #FFE21F; +} + +.ui.inverted.yellow.buttons .button:hover, +.ui.inverted.yellow.button:hover, +.ui.inverted.yellow.buttons .button:focus, +.ui.inverted.yellow.button:focus, +.ui.inverted.yellow.buttons .button.active, +.ui.inverted.yellow.button.active, +.ui.inverted.yellow.buttons .button:active, +.ui.inverted.yellow.button:active { + box-shadow: none; + color: rgba(0, 0, 0, 0.6); +} + +.ui.inverted.yellow.buttons .button:hover, +.ui.inverted.yellow.button:hover { + background-color: #ebcd00; +} + +.ui.inverted.yellow.buttons .button:focus, +.ui.inverted.yellow.button:focus { + background-color: #f5d500; +} + +.ui.inverted.yellow.buttons .active.button, +.ui.inverted.yellow.active.button { + background-color: #ffdf05; +} + +.ui.inverted.yellow.buttons .button:active, +.ui.inverted.yellow.button:active { + background-color: #ebcd00; +} + +/* Inverted Basic */ + +.ui.inverted.yellow.basic.buttons .button, +.ui.inverted.yellow.buttons .basic.button, +.ui.inverted.yellow.basic.button { + background-color: transparent; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; + color: #FFFFFF; +} + +.ui.inverted.yellow.basic.buttons .button:hover, +.ui.inverted.yellow.buttons .basic.button:hover, +.ui.inverted.yellow.basic.button:hover { + box-shadow: 0 0 0 2px #ebcd00 inset; + color: #FFE21F; +} + +.ui.inverted.yellow.basic.buttons .button:focus, +.ui.inverted.yellow.basic.buttons .button:focus, +.ui.inverted.yellow.basic.button:focus { + box-shadow: 0 0 0 2px #f5d500 inset; + color: #FFE21F; +} + +.ui.inverted.yellow.basic.buttons .active.button, +.ui.inverted.yellow.buttons .basic.active.button, +.ui.inverted.yellow.basic.active.button { + box-shadow: 0 0 0 2px #ffdf05 inset; + color: #FFE21F; +} + +.ui.inverted.yellow.basic.buttons .button:active, +.ui.inverted.yellow.buttons .basic.button:active, +.ui.inverted.yellow.basic.button:active { + box-shadow: 0 0 0 2px #ebcd00 inset; + color: #FFE21F; +} + +/* Tertiary */ + +.ui.tertiary.yellow.buttons .button, +.ui.tertiary.yellow.buttons .tertiary.button, +.ui.tertiary.yellow.button { + background: transparent; + box-shadow: none; + color: #FBBD08; +} + +.ui.tertiary.yellow.buttons .button:hover, +.ui.tertiary.yellow.buttons button:hover, +.ui.tertiary.yellow.button:hover { + box-shadow: inset 0 -0.2em 0 #d2a217; + color: #d2a217; +} + +.ui.tertiary.yellow.buttons .button:focus, +.ui.tertiary.yellow.buttons .tertiary.button:focus, +.ui.tertiary.yellow.button:focus { + box-shadow: inset 0 -0.2em 0 #c49816; + color: #c49816; +} + +.ui.tertiary.yellow.buttons .active.button, +.ui.tertiary.yellow.buttons .tertiary.active.button, +.ui.tertiary.yellow.active.button, +.ui.tertiary.yellow.buttons .button:active, +.ui.tertiary.yellow.buttons .tertiary.button:active, +.ui.tertiary.yellow.button:active { + box-shadow: inset 0 -0.2em 0 #eaae00; + color: #eaae00; +} + +.ui.olive.buttons .button, +.ui.olive.button { + background-color: #B5CC18; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.olive.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.olive.buttons .button:hover, +.ui.olive.button:hover { + background-color: #a7bd0d; + color: #FFFFFF; + text-shadow: none; +} + +.ui.olive.buttons .button:focus, +.ui.olive.button:focus { + background-color: #a0b605; + color: #FFFFFF; + text-shadow: none; +} + +.ui.olive.buttons .button:active, +.ui.olive.button:active { + background-color: #8d9e13; + color: #FFFFFF; + text-shadow: none; +} + +.ui.olive.buttons .active.button, +.ui.olive.buttons .active.button:active, +.ui.olive.active.button, +.ui.olive.button .active.button:active { + background-color: #aac109; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.olive.buttons .button, +.ui.basic.olive.button { + background: transparent; + box-shadow: 0 0 0 1px #B5CC18 inset; + color: #B5CC18; +} + +.ui.basic.olive.buttons .button:hover, +.ui.basic.olive.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #a7bd0d inset; + color: #a7bd0d; +} + +.ui.basic.olive.buttons .button:focus, +.ui.basic.olive.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #a0b605 inset; + color: #a7bd0d; +} + +.ui.basic.olive.buttons .active.button, +.ui.basic.olive.active.button { + background: transparent; + box-shadow: 0 0 0 1px #aac109 inset; + color: #8d9e13; +} + +.ui.basic.olive.buttons .button:active, +.ui.basic.olive.button:active { + box-shadow: 0 0 0 1px #8d9e13 inset; + color: #8d9e13; +} + +.ui.buttons:not(.vertical) > .basic.olive.button:not(:first-child) { + margin-left: -1px; +} + +/* Inverted */ + +.ui.inverted.olive.buttons .button, +.ui.inverted.olive.button { + background-color: transparent; + box-shadow: 0 0 0 2px #D9E778 inset; + color: #D9E778; +} + +.ui.inverted.olive.buttons .button:hover, +.ui.inverted.olive.button:hover, +.ui.inverted.olive.buttons .button:focus, +.ui.inverted.olive.button:focus, +.ui.inverted.olive.buttons .button.active, +.ui.inverted.olive.button.active, +.ui.inverted.olive.buttons .button:active, +.ui.inverted.olive.button:active { + box-shadow: none; + color: rgba(0, 0, 0, 0.6); +} + +.ui.inverted.olive.buttons .button:hover, +.ui.inverted.olive.button:hover { + background-color: #d2e745; +} + +.ui.inverted.olive.buttons .button:focus, +.ui.inverted.olive.button:focus { + background-color: #daef47; +} + +.ui.inverted.olive.buttons .active.button, +.ui.inverted.olive.active.button { + background-color: #daed59; +} + +.ui.inverted.olive.buttons .button:active, +.ui.inverted.olive.button:active { + background-color: #cddf4d; +} + +/* Inverted Basic */ + +.ui.inverted.olive.basic.buttons .button, +.ui.inverted.olive.buttons .basic.button, +.ui.inverted.olive.basic.button { + background-color: transparent; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; + color: #FFFFFF; +} + +.ui.inverted.olive.basic.buttons .button:hover, +.ui.inverted.olive.buttons .basic.button:hover, +.ui.inverted.olive.basic.button:hover { + box-shadow: 0 0 0 2px #d2e745 inset; + color: #D9E778; +} + +.ui.inverted.olive.basic.buttons .button:focus, +.ui.inverted.olive.basic.buttons .button:focus, +.ui.inverted.olive.basic.button:focus { + box-shadow: 0 0 0 2px #daef47 inset; + color: #D9E778; +} + +.ui.inverted.olive.basic.buttons .active.button, +.ui.inverted.olive.buttons .basic.active.button, +.ui.inverted.olive.basic.active.button { + box-shadow: 0 0 0 2px #daed59 inset; + color: #D9E778; +} + +.ui.inverted.olive.basic.buttons .button:active, +.ui.inverted.olive.buttons .basic.button:active, +.ui.inverted.olive.basic.button:active { + box-shadow: 0 0 0 2px #cddf4d inset; + color: #D9E778; +} + +/* Tertiary */ + +.ui.tertiary.olive.buttons .button, +.ui.tertiary.olive.buttons .tertiary.button, +.ui.tertiary.olive.button { + background: transparent; + box-shadow: none; + color: #B5CC18; +} + +.ui.tertiary.olive.buttons .button:hover, +.ui.tertiary.olive.buttons button:hover, +.ui.tertiary.olive.button:hover { + box-shadow: inset 0 -0.2em 0 #98a922; + color: #98a922; +} + +.ui.tertiary.olive.buttons .button:focus, +.ui.tertiary.olive.buttons .tertiary.button:focus, +.ui.tertiary.olive.button:focus { + box-shadow: inset 0 -0.2em 0 #92a418; + color: #92a418; +} + +.ui.tertiary.olive.buttons .active.button, +.ui.tertiary.olive.buttons .tertiary.active.button, +.ui.tertiary.olive.active.button, +.ui.tertiary.olive.buttons .button:active, +.ui.tertiary.olive.buttons .tertiary.button:active, +.ui.tertiary.olive.button:active { + box-shadow: inset 0 -0.2em 0 #b1cb00; + color: #aac109; +} + +.ui.green.buttons .button, +.ui.green.button { + background-color: #21BA45; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.green.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.green.buttons .button:hover, +.ui.green.button:hover { + background-color: #16ab39; + color: #FFFFFF; + text-shadow: none; +} + +.ui.green.buttons .button:focus, +.ui.green.button:focus { + background-color: #0ea432; + color: #FFFFFF; + text-shadow: none; +} + +.ui.green.buttons .button:active, +.ui.green.button:active { + background-color: #198f35; + color: #FFFFFF; + text-shadow: none; +} + +.ui.green.buttons .active.button, +.ui.green.buttons .active.button:active, +.ui.green.active.button, +.ui.green.button .active.button:active { + background-color: #13ae38; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.green.buttons .button, +.ui.basic.green.button { + background: transparent; + box-shadow: 0 0 0 1px #21BA45 inset; + color: #21BA45; +} + +.ui.basic.green.buttons .button:hover, +.ui.basic.green.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #16ab39 inset; + color: #16ab39; +} + +.ui.basic.green.buttons .button:focus, +.ui.basic.green.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #0ea432 inset; + color: #16ab39; +} + +.ui.basic.green.buttons .active.button, +.ui.basic.green.active.button { + background: transparent; + box-shadow: 0 0 0 1px #13ae38 inset; + color: #198f35; +} + +.ui.basic.green.buttons .button:active, +.ui.basic.green.button:active { + box-shadow: 0 0 0 1px #198f35 inset; + color: #198f35; +} + +.ui.buttons:not(.vertical) > .basic.green.button:not(:first-child) { + margin-left: -1px; +} + +/* Inverted */ + +.ui.inverted.green.buttons .button, +.ui.inverted.green.button { + background-color: transparent; + box-shadow: 0 0 0 2px #2ECC40 inset; + color: #2ECC40; +} + +.ui.inverted.green.buttons .button:hover, +.ui.inverted.green.button:hover, +.ui.inverted.green.buttons .button:focus, +.ui.inverted.green.button:focus, +.ui.inverted.green.buttons .button.active, +.ui.inverted.green.button.active, +.ui.inverted.green.buttons .button:active, +.ui.inverted.green.button:active { + box-shadow: none; + color: #FFFFFF; +} + +.ui.inverted.green.buttons .button:hover, +.ui.inverted.green.button:hover { + background-color: #1ea92e; +} + +.ui.inverted.green.buttons .button:focus, +.ui.inverted.green.button:focus { + background-color: #19b82b; +} + +.ui.inverted.green.buttons .active.button, +.ui.inverted.green.active.button { + background-color: #1fc231; +} + +.ui.inverted.green.buttons .button:active, +.ui.inverted.green.button:active { + background-color: #25a233; +} + +/* Inverted Basic */ + +.ui.inverted.green.basic.buttons .button, +.ui.inverted.green.buttons .basic.button, +.ui.inverted.green.basic.button { + background-color: transparent; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; + color: #FFFFFF; +} + +.ui.inverted.green.basic.buttons .button:hover, +.ui.inverted.green.buttons .basic.button:hover, +.ui.inverted.green.basic.button:hover { + box-shadow: 0 0 0 2px #1ea92e inset; + color: #2ECC40; +} + +.ui.inverted.green.basic.buttons .button:focus, +.ui.inverted.green.basic.buttons .button:focus, +.ui.inverted.green.basic.button:focus { + box-shadow: 0 0 0 2px #19b82b inset; + color: #2ECC40; +} + +.ui.inverted.green.basic.buttons .active.button, +.ui.inverted.green.buttons .basic.active.button, +.ui.inverted.green.basic.active.button { + box-shadow: 0 0 0 2px #1fc231 inset; + color: #2ECC40; +} + +.ui.inverted.green.basic.buttons .button:active, +.ui.inverted.green.buttons .basic.button:active, +.ui.inverted.green.basic.button:active { + box-shadow: 0 0 0 2px #25a233 inset; + color: #2ECC40; +} + +/* Tertiary */ + +.ui.tertiary.green.buttons .button, +.ui.tertiary.green.buttons .tertiary.button, +.ui.tertiary.green.button { + background: transparent; + box-shadow: none; + color: #21BA45; +} + +.ui.tertiary.green.buttons .button:hover, +.ui.tertiary.green.buttons button:hover, +.ui.tertiary.green.button:hover { + box-shadow: inset 0 -0.2em 0 #2a9844; + color: #2a9844; +} + +.ui.tertiary.green.buttons .button:focus, +.ui.tertiary.green.buttons .tertiary.button:focus, +.ui.tertiary.green.button:focus { + box-shadow: inset 0 -0.2em 0 #20923b; + color: #20923b; +} + +.ui.tertiary.green.buttons .active.button, +.ui.tertiary.green.buttons .tertiary.active.button, +.ui.tertiary.green.active.button, +.ui.tertiary.green.buttons .button:active, +.ui.tertiary.green.buttons .tertiary.button:active, +.ui.tertiary.green.button:active { + box-shadow: inset 0 -0.2em 0 #00c22e; + color: #13ae38; +} + +.ui.teal.buttons .button, +.ui.teal.button { + background-color: #00B5AD; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.teal.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.teal.buttons .button:hover, +.ui.teal.button:hover { + background-color: #009c95; + color: #FFFFFF; + text-shadow: none; +} + +.ui.teal.buttons .button:focus, +.ui.teal.button:focus { + background-color: #008c86; + color: #FFFFFF; + text-shadow: none; +} + +.ui.teal.buttons .button:active, +.ui.teal.button:active { + background-color: #00827c; + color: #FFFFFF; + text-shadow: none; +} + +.ui.teal.buttons .active.button, +.ui.teal.buttons .active.button:active, +.ui.teal.active.button, +.ui.teal.button .active.button:active { + background-color: #009c95; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.teal.buttons .button, +.ui.basic.teal.button { + background: transparent; + box-shadow: 0 0 0 1px #00B5AD inset; + color: #00B5AD; +} + +.ui.basic.teal.buttons .button:hover, +.ui.basic.teal.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #009c95 inset; + color: #009c95; +} + +.ui.basic.teal.buttons .button:focus, +.ui.basic.teal.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #008c86 inset; + color: #009c95; +} + +.ui.basic.teal.buttons .active.button, +.ui.basic.teal.active.button { + background: transparent; + box-shadow: 0 0 0 1px #009c95 inset; + color: #00827c; +} + +.ui.basic.teal.buttons .button:active, +.ui.basic.teal.button:active { + box-shadow: 0 0 0 1px #00827c inset; + color: #00827c; +} + +.ui.buttons:not(.vertical) > .basic.teal.button:not(:first-child) { + margin-left: -1px; +} + +/* Inverted */ + +.ui.inverted.teal.buttons .button, +.ui.inverted.teal.button { + background-color: transparent; + box-shadow: 0 0 0 2px #6DFFFF inset; + color: #6DFFFF; +} + +.ui.inverted.teal.buttons .button:hover, +.ui.inverted.teal.button:hover, +.ui.inverted.teal.buttons .button:focus, +.ui.inverted.teal.button:focus, +.ui.inverted.teal.buttons .button.active, +.ui.inverted.teal.button.active, +.ui.inverted.teal.buttons .button:active, +.ui.inverted.teal.button:active { + box-shadow: none; + color: rgba(0, 0, 0, 0.6); +} + +.ui.inverted.teal.buttons .button:hover, +.ui.inverted.teal.button:hover { + background-color: #3affff; +} + +.ui.inverted.teal.buttons .button:focus, +.ui.inverted.teal.button:focus { + background-color: #44ffff; +} + +.ui.inverted.teal.buttons .active.button, +.ui.inverted.teal.active.button { + background-color: #54ffff; +} + +.ui.inverted.teal.buttons .button:active, +.ui.inverted.teal.button:active { + background-color: #3affff; +} + +/* Inverted Basic */ + +.ui.inverted.teal.basic.buttons .button, +.ui.inverted.teal.buttons .basic.button, +.ui.inverted.teal.basic.button { + background-color: transparent; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; + color: #FFFFFF; +} + +.ui.inverted.teal.basic.buttons .button:hover, +.ui.inverted.teal.buttons .basic.button:hover, +.ui.inverted.teal.basic.button:hover { + box-shadow: 0 0 0 2px #3affff inset; + color: #6DFFFF; +} + +.ui.inverted.teal.basic.buttons .button:focus, +.ui.inverted.teal.basic.buttons .button:focus, +.ui.inverted.teal.basic.button:focus { + box-shadow: 0 0 0 2px #44ffff inset; + color: #6DFFFF; +} + +.ui.inverted.teal.basic.buttons .active.button, +.ui.inverted.teal.buttons .basic.active.button, +.ui.inverted.teal.basic.active.button { + box-shadow: 0 0 0 2px #54ffff inset; + color: #6DFFFF; +} + +.ui.inverted.teal.basic.buttons .button:active, +.ui.inverted.teal.buttons .basic.button:active, +.ui.inverted.teal.basic.button:active { + box-shadow: 0 0 0 2px #3affff inset; + color: #6DFFFF; +} + +/* Tertiary */ + +.ui.tertiary.teal.buttons .button, +.ui.tertiary.teal.buttons .tertiary.button, +.ui.tertiary.teal.button { + background: transparent; + box-shadow: none; + color: #00B5AD; +} + +.ui.tertiary.teal.buttons .button:hover, +.ui.tertiary.teal.buttons button:hover, +.ui.tertiary.teal.button:hover { + box-shadow: inset 0 -0.2em 0 #108c86; + color: #108c86; +} + +.ui.tertiary.teal.buttons .button:focus, +.ui.tertiary.teal.buttons .tertiary.button:focus, +.ui.tertiary.teal.button:focus { + box-shadow: inset 0 -0.2em 0 #0e7e79; + color: #0e7e79; +} + +.ui.tertiary.teal.buttons .active.button, +.ui.tertiary.teal.buttons .tertiary.active.button, +.ui.tertiary.teal.active.button, +.ui.tertiary.teal.buttons .button:active, +.ui.tertiary.teal.buttons .tertiary.button:active, +.ui.tertiary.teal.button:active { + box-shadow: inset 0 -0.2em 0 #009c95; + color: #009c95; +} + +.ui.blue.buttons .button, +.ui.blue.button { + background-color: #2185D0; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.blue.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.blue.buttons .button:hover, +.ui.blue.button:hover { + background-color: #1678c2; + color: #FFFFFF; + text-shadow: none; +} + +.ui.blue.buttons .button:focus, +.ui.blue.button:focus { + background-color: #0d71bb; + color: #FFFFFF; + text-shadow: none; +} + +.ui.blue.buttons .button:active, +.ui.blue.button:active { + background-color: #1a69a4; + color: #FFFFFF; + text-shadow: none; +} + +.ui.blue.buttons .active.button, +.ui.blue.buttons .active.button:active, +.ui.blue.active.button, +.ui.blue.button .active.button:active { + background-color: #1279c6; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.blue.buttons .button, +.ui.basic.blue.button { + background: transparent; + box-shadow: 0 0 0 1px #2185D0 inset; + color: #2185D0; +} + +.ui.basic.blue.buttons .button:hover, +.ui.basic.blue.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #1678c2 inset; + color: #1678c2; +} + +.ui.basic.blue.buttons .button:focus, +.ui.basic.blue.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #0d71bb inset; + color: #1678c2; +} + +.ui.basic.blue.buttons .active.button, +.ui.basic.blue.active.button { + background: transparent; + box-shadow: 0 0 0 1px #1279c6 inset; + color: #1a69a4; +} + +.ui.basic.blue.buttons .button:active, +.ui.basic.blue.button:active { + box-shadow: 0 0 0 1px #1a69a4 inset; + color: #1a69a4; +} + +.ui.buttons:not(.vertical) > .basic.blue.button:not(:first-child) { + margin-left: -1px; +} + +/* Inverted */ + +.ui.inverted.blue.buttons .button, +.ui.inverted.blue.button { + background-color: transparent; + box-shadow: 0 0 0 2px #54C8FF inset; + color: #54C8FF; +} + +.ui.inverted.blue.buttons .button:hover, +.ui.inverted.blue.button:hover, +.ui.inverted.blue.buttons .button:focus, +.ui.inverted.blue.button:focus, +.ui.inverted.blue.buttons .button.active, +.ui.inverted.blue.button.active, +.ui.inverted.blue.buttons .button:active, +.ui.inverted.blue.button:active { + box-shadow: none; + color: #FFFFFF; +} + +.ui.inverted.blue.buttons .button:hover, +.ui.inverted.blue.button:hover { + background-color: #21b8ff; +} + +.ui.inverted.blue.buttons .button:focus, +.ui.inverted.blue.button:focus { + background-color: #2bbbff; +} + +.ui.inverted.blue.buttons .active.button, +.ui.inverted.blue.active.button { + background-color: #3ac0ff; +} + +.ui.inverted.blue.buttons .button:active, +.ui.inverted.blue.button:active { + background-color: #21b8ff; +} + +/* Inverted Basic */ + +.ui.inverted.blue.basic.buttons .button, +.ui.inverted.blue.buttons .basic.button, +.ui.inverted.blue.basic.button { + background-color: transparent; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; + color: #FFFFFF; +} + +.ui.inverted.blue.basic.buttons .button:hover, +.ui.inverted.blue.buttons .basic.button:hover, +.ui.inverted.blue.basic.button:hover { + box-shadow: 0 0 0 2px #21b8ff inset; + color: #54C8FF; +} + +.ui.inverted.blue.basic.buttons .button:focus, +.ui.inverted.blue.basic.buttons .button:focus, +.ui.inverted.blue.basic.button:focus { + box-shadow: 0 0 0 2px #2bbbff inset; + color: #54C8FF; +} + +.ui.inverted.blue.basic.buttons .active.button, +.ui.inverted.blue.buttons .basic.active.button, +.ui.inverted.blue.basic.active.button { + box-shadow: 0 0 0 2px #3ac0ff inset; + color: #54C8FF; +} + +.ui.inverted.blue.basic.buttons .button:active, +.ui.inverted.blue.buttons .basic.button:active, +.ui.inverted.blue.basic.button:active { + box-shadow: 0 0 0 2px #21b8ff inset; + color: #54C8FF; +} + +/* Tertiary */ + +.ui.tertiary.blue.buttons .button, +.ui.tertiary.blue.buttons .tertiary.button, +.ui.tertiary.blue.button { + background: transparent; + box-shadow: none; + color: #2185D0; +} + +.ui.tertiary.blue.buttons .button:hover, +.ui.tertiary.blue.buttons button:hover, +.ui.tertiary.blue.button:hover { + box-shadow: inset 0 -0.2em 0 #2b75ac; + color: #2b75ac; +} + +.ui.tertiary.blue.buttons .button:focus, +.ui.tertiary.blue.buttons .tertiary.button:focus, +.ui.tertiary.blue.button:focus { + box-shadow: inset 0 -0.2em 0 #216ea7; + color: #216ea7; +} + +.ui.tertiary.blue.buttons .active.button, +.ui.tertiary.blue.buttons .tertiary.active.button, +.ui.tertiary.blue.active.button, +.ui.tertiary.blue.buttons .button:active, +.ui.tertiary.blue.buttons .tertiary.button:active, +.ui.tertiary.blue.button:active { + box-shadow: inset 0 -0.2em 0 #007bd8; + color: #1279c6; +} + +.ui.violet.buttons .button, +.ui.violet.button { + background-color: #6435C9; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.violet.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.violet.buttons .button:hover, +.ui.violet.button:hover { + background-color: #5829bb; + color: #FFFFFF; + text-shadow: none; +} + +.ui.violet.buttons .button:focus, +.ui.violet.button:focus { + background-color: #4f20b5; + color: #FFFFFF; + text-shadow: none; +} + +.ui.violet.buttons .button:active, +.ui.violet.button:active { + background-color: #502aa1; + color: #FFFFFF; + text-shadow: none; +} + +.ui.violet.buttons .active.button, +.ui.violet.buttons .active.button:active, +.ui.violet.active.button, +.ui.violet.button .active.button:active { + background-color: #5626bf; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.violet.buttons .button, +.ui.basic.violet.button { + background: transparent; + box-shadow: 0 0 0 1px #6435C9 inset; + color: #6435C9; +} + +.ui.basic.violet.buttons .button:hover, +.ui.basic.violet.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #5829bb inset; + color: #5829bb; +} + +.ui.basic.violet.buttons .button:focus, +.ui.basic.violet.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #4f20b5 inset; + color: #5829bb; +} + +.ui.basic.violet.buttons .active.button, +.ui.basic.violet.active.button { + background: transparent; + box-shadow: 0 0 0 1px #5626bf inset; + color: #502aa1; +} + +.ui.basic.violet.buttons .button:active, +.ui.basic.violet.button:active { + box-shadow: 0 0 0 1px #502aa1 inset; + color: #502aa1; +} + +.ui.buttons:not(.vertical) > .basic.violet.button:not(:first-child) { + margin-left: -1px; +} + +/* Inverted */ + +.ui.inverted.violet.buttons .button, +.ui.inverted.violet.button { + background-color: transparent; + box-shadow: 0 0 0 2px #A291FB inset; + color: #A291FB; +} + +.ui.inverted.violet.buttons .button:hover, +.ui.inverted.violet.button:hover, +.ui.inverted.violet.buttons .button:focus, +.ui.inverted.violet.button:focus, +.ui.inverted.violet.buttons .button.active, +.ui.inverted.violet.button.active, +.ui.inverted.violet.buttons .button:active, +.ui.inverted.violet.button:active { + box-shadow: none; + color: #FFFFFF; +} + +.ui.inverted.violet.buttons .button:hover, +.ui.inverted.violet.button:hover { + background-color: #745aff; +} + +.ui.inverted.violet.buttons .button:focus, +.ui.inverted.violet.button:focus { + background-color: #7d64ff; +} + +.ui.inverted.violet.buttons .active.button, +.ui.inverted.violet.active.button { + background-color: #8a73ff; +} + +.ui.inverted.violet.buttons .button:active, +.ui.inverted.violet.button:active { + background-color: #7860f9; +} + +/* Inverted Basic */ + +.ui.inverted.violet.basic.buttons .button, +.ui.inverted.violet.buttons .basic.button, +.ui.inverted.violet.basic.button { + background-color: transparent; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; + color: #FFFFFF; +} + +.ui.inverted.violet.basic.buttons .button:hover, +.ui.inverted.violet.buttons .basic.button:hover, +.ui.inverted.violet.basic.button:hover { + box-shadow: 0 0 0 2px #745aff inset; + color: #A291FB; +} + +.ui.inverted.violet.basic.buttons .button:focus, +.ui.inverted.violet.basic.buttons .button:focus, +.ui.inverted.violet.basic.button:focus { + box-shadow: 0 0 0 2px #7d64ff inset; + color: #A291FB; +} + +.ui.inverted.violet.basic.buttons .active.button, +.ui.inverted.violet.buttons .basic.active.button, +.ui.inverted.violet.basic.active.button { + box-shadow: 0 0 0 2px #8a73ff inset; + color: #A291FB; +} + +.ui.inverted.violet.basic.buttons .button:active, +.ui.inverted.violet.buttons .basic.button:active, +.ui.inverted.violet.basic.button:active { + box-shadow: 0 0 0 2px #7860f9 inset; + color: #A291FB; +} + +/* Tertiary */ + +.ui.tertiary.violet.buttons .button, +.ui.tertiary.violet.buttons .tertiary.button, +.ui.tertiary.violet.button { + background: transparent; + box-shadow: none; + color: #6435C9; +} + +.ui.tertiary.violet.buttons .button:hover, +.ui.tertiary.violet.buttons button:hover, +.ui.tertiary.violet.button:hover { + box-shadow: inset 0 -0.2em 0 #6040a5; + color: #6040a5; +} + +.ui.tertiary.violet.buttons .button:focus, +.ui.tertiary.violet.buttons .tertiary.button:focus, +.ui.tertiary.violet.button:focus { + box-shadow: inset 0 -0.2em 0 #5735a0; + color: #5735a0; +} + +.ui.tertiary.violet.buttons .active.button, +.ui.tertiary.violet.buttons .tertiary.active.button, +.ui.tertiary.violet.active.button, +.ui.tertiary.violet.buttons .button:active, +.ui.tertiary.violet.buttons .tertiary.button:active, +.ui.tertiary.violet.button:active { + box-shadow: inset 0 -0.2em 0 #4e0fd6; + color: #5626bf; +} + +.ui.purple.buttons .button, +.ui.purple.button { + background-color: #A333C8; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.purple.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.purple.buttons .button:hover, +.ui.purple.button:hover { + background-color: #9627ba; + color: #FFFFFF; + text-shadow: none; +} + +.ui.purple.buttons .button:focus, +.ui.purple.button:focus { + background-color: #8f1eb4; + color: #FFFFFF; + text-shadow: none; +} + +.ui.purple.buttons .button:active, +.ui.purple.button:active { + background-color: #82299f; + color: #FFFFFF; + text-shadow: none; +} + +.ui.purple.buttons .active.button, +.ui.purple.buttons .active.button:active, +.ui.purple.active.button, +.ui.purple.button .active.button:active { + background-color: #9724be; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.purple.buttons .button, +.ui.basic.purple.button { + background: transparent; + box-shadow: 0 0 0 1px #A333C8 inset; + color: #A333C8; +} + +.ui.basic.purple.buttons .button:hover, +.ui.basic.purple.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #9627ba inset; + color: #9627ba; +} + +.ui.basic.purple.buttons .button:focus, +.ui.basic.purple.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #8f1eb4 inset; + color: #9627ba; +} + +.ui.basic.purple.buttons .active.button, +.ui.basic.purple.active.button { + background: transparent; + box-shadow: 0 0 0 1px #9724be inset; + color: #82299f; +} + +.ui.basic.purple.buttons .button:active, +.ui.basic.purple.button:active { + box-shadow: 0 0 0 1px #82299f inset; + color: #82299f; +} + +.ui.buttons:not(.vertical) > .basic.purple.button:not(:first-child) { + margin-left: -1px; +} + +/* Inverted */ + +.ui.inverted.purple.buttons .button, +.ui.inverted.purple.button { + background-color: transparent; + box-shadow: 0 0 0 2px #DC73FF inset; + color: #DC73FF; +} + +.ui.inverted.purple.buttons .button:hover, +.ui.inverted.purple.button:hover, +.ui.inverted.purple.buttons .button:focus, +.ui.inverted.purple.button:focus, +.ui.inverted.purple.buttons .button.active, +.ui.inverted.purple.button.active, +.ui.inverted.purple.buttons .button:active, +.ui.inverted.purple.button:active { + box-shadow: none; + color: #FFFFFF; +} + +.ui.inverted.purple.buttons .button:hover, +.ui.inverted.purple.button:hover { + background-color: #cf40ff; +} + +.ui.inverted.purple.buttons .button:focus, +.ui.inverted.purple.button:focus { + background-color: #d24aff; +} + +.ui.inverted.purple.buttons .active.button, +.ui.inverted.purple.active.button { + background-color: #d65aff; +} + +.ui.inverted.purple.buttons .button:active, +.ui.inverted.purple.button:active { + background-color: #cf40ff; +} + +/* Inverted Basic */ + +.ui.inverted.purple.basic.buttons .button, +.ui.inverted.purple.buttons .basic.button, +.ui.inverted.purple.basic.button { + background-color: transparent; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; + color: #FFFFFF; +} + +.ui.inverted.purple.basic.buttons .button:hover, +.ui.inverted.purple.buttons .basic.button:hover, +.ui.inverted.purple.basic.button:hover { + box-shadow: 0 0 0 2px #cf40ff inset; + color: #DC73FF; +} + +.ui.inverted.purple.basic.buttons .button:focus, +.ui.inverted.purple.basic.buttons .button:focus, +.ui.inverted.purple.basic.button:focus { + box-shadow: 0 0 0 2px #d24aff inset; + color: #DC73FF; +} + +.ui.inverted.purple.basic.buttons .active.button, +.ui.inverted.purple.buttons .basic.active.button, +.ui.inverted.purple.basic.active.button { + box-shadow: 0 0 0 2px #d65aff inset; + color: #DC73FF; +} + +.ui.inverted.purple.basic.buttons .button:active, +.ui.inverted.purple.buttons .basic.button:active, +.ui.inverted.purple.basic.button:active { + box-shadow: 0 0 0 2px #cf40ff inset; + color: #DC73FF; +} + +/* Tertiary */ + +.ui.tertiary.purple.buttons .button, +.ui.tertiary.purple.buttons .tertiary.button, +.ui.tertiary.purple.button { + background: transparent; + box-shadow: none; + color: #A333C8; +} + +.ui.tertiary.purple.buttons .button:hover, +.ui.tertiary.purple.buttons button:hover, +.ui.tertiary.purple.button:hover { + box-shadow: inset 0 -0.2em 0 #8a3ea4; + color: #8a3ea4; +} + +.ui.tertiary.purple.buttons .button:focus, +.ui.tertiary.purple.buttons .tertiary.button:focus, +.ui.tertiary.purple.button:focus { + box-shadow: inset 0 -0.2em 0 #84339f; + color: #84339f; +} + +.ui.tertiary.purple.buttons .active.button, +.ui.tertiary.purple.buttons .tertiary.active.button, +.ui.tertiary.purple.active.button, +.ui.tertiary.purple.buttons .button:active, +.ui.tertiary.purple.buttons .tertiary.button:active, +.ui.tertiary.purple.button:active { + box-shadow: inset 0 -0.2em 0 #a30dd4; + color: #9724be; +} + +.ui.pink.buttons .button, +.ui.pink.button { + background-color: #E03997; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.pink.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.pink.buttons .button:hover, +.ui.pink.button:hover { + background-color: #e61a8d; + color: #FFFFFF; + text-shadow: none; +} + +.ui.pink.buttons .button:focus, +.ui.pink.button:focus { + background-color: #e10f85; + color: #FFFFFF; + text-shadow: none; +} + +.ui.pink.buttons .button:active, +.ui.pink.button:active { + background-color: #c71f7e; + color: #FFFFFF; + text-shadow: none; +} + +.ui.pink.buttons .active.button, +.ui.pink.buttons .active.button:active, +.ui.pink.active.button, +.ui.pink.button .active.button:active { + background-color: #ea158d; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.pink.buttons .button, +.ui.basic.pink.button { + background: transparent; + box-shadow: 0 0 0 1px #E03997 inset; + color: #E03997; +} + +.ui.basic.pink.buttons .button:hover, +.ui.basic.pink.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #e61a8d inset; + color: #e61a8d; +} + +.ui.basic.pink.buttons .button:focus, +.ui.basic.pink.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #e10f85 inset; + color: #e61a8d; +} + +.ui.basic.pink.buttons .active.button, +.ui.basic.pink.active.button { + background: transparent; + box-shadow: 0 0 0 1px #ea158d inset; + color: #c71f7e; +} + +.ui.basic.pink.buttons .button:active, +.ui.basic.pink.button:active { + box-shadow: 0 0 0 1px #c71f7e inset; + color: #c71f7e; +} + +.ui.buttons:not(.vertical) > .basic.pink.button:not(:first-child) { + margin-left: -1px; +} + +/* Inverted */ + +.ui.inverted.pink.buttons .button, +.ui.inverted.pink.button { + background-color: transparent; + box-shadow: 0 0 0 2px #FF8EDF inset; + color: #FF8EDF; +} + +.ui.inverted.pink.buttons .button:hover, +.ui.inverted.pink.button:hover, +.ui.inverted.pink.buttons .button:focus, +.ui.inverted.pink.button:focus, +.ui.inverted.pink.buttons .button.active, +.ui.inverted.pink.button.active, +.ui.inverted.pink.buttons .button:active, +.ui.inverted.pink.button:active { + box-shadow: none; + color: #FFFFFF; +} + +.ui.inverted.pink.buttons .button:hover, +.ui.inverted.pink.button:hover { + background-color: #ff5bd1; +} + +.ui.inverted.pink.buttons .button:focus, +.ui.inverted.pink.button:focus { + background-color: #ff65d3; +} + +.ui.inverted.pink.buttons .active.button, +.ui.inverted.pink.active.button { + background-color: #ff74d8; +} + +.ui.inverted.pink.buttons .button:active, +.ui.inverted.pink.button:active { + background-color: #ff5bd1; +} + +/* Inverted Basic */ + +.ui.inverted.pink.basic.buttons .button, +.ui.inverted.pink.buttons .basic.button, +.ui.inverted.pink.basic.button { + background-color: transparent; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; + color: #FFFFFF; +} + +.ui.inverted.pink.basic.buttons .button:hover, +.ui.inverted.pink.buttons .basic.button:hover, +.ui.inverted.pink.basic.button:hover { + box-shadow: 0 0 0 2px #ff5bd1 inset; + color: #FF8EDF; +} + +.ui.inverted.pink.basic.buttons .button:focus, +.ui.inverted.pink.basic.buttons .button:focus, +.ui.inverted.pink.basic.button:focus { + box-shadow: 0 0 0 2px #ff65d3 inset; + color: #FF8EDF; +} + +.ui.inverted.pink.basic.buttons .active.button, +.ui.inverted.pink.buttons .basic.active.button, +.ui.inverted.pink.basic.active.button { + box-shadow: 0 0 0 2px #ff74d8 inset; + color: #FF8EDF; +} + +.ui.inverted.pink.basic.buttons .button:active, +.ui.inverted.pink.buttons .basic.button:active, +.ui.inverted.pink.basic.button:active { + box-shadow: 0 0 0 2px #ff5bd1 inset; + color: #FF8EDF; +} + +/* Tertiary */ + +.ui.tertiary.pink.buttons .button, +.ui.tertiary.pink.buttons .tertiary.button, +.ui.tertiary.pink.button { + background: transparent; + box-shadow: none; + color: #E03997; +} + +.ui.tertiary.pink.buttons .button:hover, +.ui.tertiary.pink.buttons button:hover, +.ui.tertiary.pink.button:hover { + box-shadow: inset 0 -0.2em 0 #cc3389; + color: #cc3389; +} + +.ui.tertiary.pink.buttons .button:focus, +.ui.tertiary.pink.buttons .tertiary.button:focus, +.ui.tertiary.pink.button:focus { + box-shadow: inset 0 -0.2em 0 #c92782; + color: #c92782; +} + +.ui.tertiary.pink.buttons .active.button, +.ui.tertiary.pink.buttons .tertiary.active.button, +.ui.tertiary.pink.active.button, +.ui.tertiary.pink.buttons .button:active, +.ui.tertiary.pink.buttons .tertiary.button:active, +.ui.tertiary.pink.button:active { + box-shadow: inset 0 -0.2em 0 #ff0090; + color: #ea158d; +} + +.ui.brown.buttons .button, +.ui.brown.button { + background-color: #A5673F; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.brown.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.brown.buttons .button:hover, +.ui.brown.button:hover { + background-color: #975b33; + color: #FFFFFF; + text-shadow: none; +} + +.ui.brown.buttons .button:focus, +.ui.brown.button:focus { + background-color: #90532b; + color: #FFFFFF; + text-shadow: none; +} + +.ui.brown.buttons .button:active, +.ui.brown.button:active { + background-color: #805031; + color: #FFFFFF; + text-shadow: none; +} + +.ui.brown.buttons .active.button, +.ui.brown.buttons .active.button:active, +.ui.brown.active.button, +.ui.brown.button .active.button:active { + background-color: #995a31; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.brown.buttons .button, +.ui.basic.brown.button { + background: transparent; + box-shadow: 0 0 0 1px #A5673F inset; + color: #A5673F; +} + +.ui.basic.brown.buttons .button:hover, +.ui.basic.brown.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #975b33 inset; + color: #975b33; +} + +.ui.basic.brown.buttons .button:focus, +.ui.basic.brown.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #90532b inset; + color: #975b33; +} + +.ui.basic.brown.buttons .active.button, +.ui.basic.brown.active.button { + background: transparent; + box-shadow: 0 0 0 1px #995a31 inset; + color: #805031; +} + +.ui.basic.brown.buttons .button:active, +.ui.basic.brown.button:active { + box-shadow: 0 0 0 1px #805031 inset; + color: #805031; +} + +.ui.buttons:not(.vertical) > .basic.brown.button:not(:first-child) { + margin-left: -1px; +} + +/* Inverted */ + +.ui.inverted.brown.buttons .button, +.ui.inverted.brown.button { + background-color: transparent; + box-shadow: 0 0 0 2px #D67C1C inset; + color: #D67C1C; +} + +.ui.inverted.brown.buttons .button:hover, +.ui.inverted.brown.button:hover, +.ui.inverted.brown.buttons .button:focus, +.ui.inverted.brown.button:focus, +.ui.inverted.brown.buttons .button.active, +.ui.inverted.brown.button.active, +.ui.inverted.brown.buttons .button:active, +.ui.inverted.brown.button:active { + box-shadow: none; + color: #FFFFFF; +} + +.ui.inverted.brown.buttons .button:hover, +.ui.inverted.brown.button:hover { + background-color: #b0620f; +} + +.ui.inverted.brown.buttons .button:focus, +.ui.inverted.brown.button:focus { + background-color: #c16808; +} + +.ui.inverted.brown.buttons .active.button, +.ui.inverted.brown.active.button { + background-color: #cc6f0d; +} + +.ui.inverted.brown.buttons .button:active, +.ui.inverted.brown.button:active { + background-color: #a96216; +} + +/* Inverted Basic */ + +.ui.inverted.brown.basic.buttons .button, +.ui.inverted.brown.buttons .basic.button, +.ui.inverted.brown.basic.button { + background-color: transparent; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; + color: #FFFFFF; +} + +.ui.inverted.brown.basic.buttons .button:hover, +.ui.inverted.brown.buttons .basic.button:hover, +.ui.inverted.brown.basic.button:hover { + box-shadow: 0 0 0 2px #b0620f inset; + color: #D67C1C; +} + +.ui.inverted.brown.basic.buttons .button:focus, +.ui.inverted.brown.basic.buttons .button:focus, +.ui.inverted.brown.basic.button:focus { + box-shadow: 0 0 0 2px #c16808 inset; + color: #D67C1C; +} + +.ui.inverted.brown.basic.buttons .active.button, +.ui.inverted.brown.buttons .basic.active.button, +.ui.inverted.brown.basic.active.button { + box-shadow: 0 0 0 2px #cc6f0d inset; + color: #D67C1C; +} + +.ui.inverted.brown.basic.buttons .button:active, +.ui.inverted.brown.buttons .basic.button:active, +.ui.inverted.brown.basic.button:active { + box-shadow: 0 0 0 2px #a96216 inset; + color: #D67C1C; +} + +/* Tertiary */ + +.ui.tertiary.brown.buttons .button, +.ui.tertiary.brown.buttons .tertiary.button, +.ui.tertiary.brown.button { + background: transparent; + box-shadow: none; + color: #A5673F; +} + +.ui.tertiary.brown.buttons .button:hover, +.ui.tertiary.brown.buttons button:hover, +.ui.tertiary.brown.button:hover { + box-shadow: inset 0 -0.2em 0 #835f48; + color: #835f48; +} + +.ui.tertiary.brown.buttons .button:focus, +.ui.tertiary.brown.buttons .tertiary.button:focus, +.ui.tertiary.brown.button:focus { + box-shadow: inset 0 -0.2em 0 #7d573e; + color: #7d573e; +} + +.ui.tertiary.brown.buttons .active.button, +.ui.tertiary.brown.buttons .tertiary.active.button, +.ui.tertiary.brown.active.button, +.ui.tertiary.brown.buttons .button:active, +.ui.tertiary.brown.buttons .tertiary.button:active, +.ui.tertiary.brown.button:active { + box-shadow: inset 0 -0.2em 0 #ae561d; + color: #995a31; +} + +.ui.grey.buttons .button, +.ui.grey.button { + background-color: #767676; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.grey.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.grey.buttons .button:hover, +.ui.grey.button:hover { + background-color: #838383; + color: #FFFFFF; + text-shadow: none; +} + +.ui.grey.buttons .button:focus, +.ui.grey.button:focus { + background-color: #8a8a8a; + color: #FFFFFF; + text-shadow: none; +} + +.ui.grey.buttons .button:active, +.ui.grey.button:active { + background-color: #909090; + color: #FFFFFF; + text-shadow: none; +} + +.ui.grey.buttons .active.button, +.ui.grey.buttons .active.button:active, +.ui.grey.active.button, +.ui.grey.button .active.button:active { + background-color: #696969; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.grey.buttons .button, +.ui.basic.grey.button { + background: transparent; + box-shadow: 0 0 0 1px #767676 inset; + color: #767676; +} + +.ui.basic.grey.buttons .button:hover, +.ui.basic.grey.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #838383 inset; + color: #838383; +} + +.ui.basic.grey.buttons .button:focus, +.ui.basic.grey.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #8a8a8a inset; + color: #838383; +} + +.ui.basic.grey.buttons .active.button, +.ui.basic.grey.active.button { + background: transparent; + box-shadow: 0 0 0 1px #696969 inset; + color: #909090; +} + +.ui.basic.grey.buttons .button:active, +.ui.basic.grey.button:active { + box-shadow: 0 0 0 1px #909090 inset; + color: #909090; +} + +.ui.buttons:not(.vertical) > .basic.grey.button:not(:first-child) { + margin-left: -1px; +} + +/* Inverted */ + +.ui.inverted.grey.buttons .button, +.ui.inverted.grey.button { + background-color: transparent; + box-shadow: 0 0 0 2px #D4D4D5 inset; + color: #FFFFFF; +} + +.ui.inverted.grey.buttons .button:hover, +.ui.inverted.grey.button:hover, +.ui.inverted.grey.buttons .button:focus, +.ui.inverted.grey.button:focus, +.ui.inverted.grey.buttons .button.active, +.ui.inverted.grey.button.active, +.ui.inverted.grey.buttons .button:active, +.ui.inverted.grey.button:active { + box-shadow: none; + color: rgba(0, 0, 0, 0.6); +} + +.ui.inverted.grey.buttons .button:hover, +.ui.inverted.grey.button:hover { + background-color: #c2c4c5; +} + +.ui.inverted.grey.buttons .button:focus, +.ui.inverted.grey.button:focus { + background-color: #c7c9cb; +} + +.ui.inverted.grey.buttons .active.button, +.ui.inverted.grey.active.button { + background-color: #cfd0d2; +} + +.ui.inverted.grey.buttons .button:active, +.ui.inverted.grey.button:active { + background-color: #c2c4c5; +} + +/* Inverted Basic */ + +.ui.inverted.grey.basic.buttons .button, +.ui.inverted.grey.buttons .basic.button, +.ui.inverted.grey.basic.button { + background-color: transparent; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; + color: #FFFFFF; +} + +.ui.inverted.grey.basic.buttons .button:hover, +.ui.inverted.grey.buttons .basic.button:hover, +.ui.inverted.grey.basic.button:hover { + box-shadow: 0 0 0 2px #c2c4c5 inset; + color: #FFFFFF; +} + +.ui.inverted.grey.basic.buttons .button:focus, +.ui.inverted.grey.basic.buttons .button:focus, +.ui.inverted.grey.basic.button:focus { + box-shadow: 0 0 0 2px #c7c9cb inset; + color: #DCDDDE; +} + +.ui.inverted.grey.basic.buttons .active.button, +.ui.inverted.grey.buttons .basic.active.button, +.ui.inverted.grey.basic.active.button { + box-shadow: 0 0 0 2px #cfd0d2 inset; + color: #FFFFFF; +} + +.ui.inverted.grey.basic.buttons .button:active, +.ui.inverted.grey.buttons .basic.button:active, +.ui.inverted.grey.basic.button:active { + box-shadow: 0 0 0 2px #c2c4c5 inset; + color: #FFFFFF; +} + +/* Tertiary */ + +.ui.tertiary.grey.buttons .button, +.ui.tertiary.grey.buttons .tertiary.button, +.ui.tertiary.grey.button { + background: transparent; + box-shadow: none; + color: #767676; +} + +.ui.tertiary.grey.buttons .button:hover, +.ui.tertiary.grey.buttons button:hover, +.ui.tertiary.grey.button:hover { + box-shadow: inset 0 -0.2em 0 #838383; + color: #838383; +} + +.ui.tertiary.grey.buttons .button:focus, +.ui.tertiary.grey.buttons .tertiary.button:focus, +.ui.tertiary.grey.button:focus { + box-shadow: inset 0 -0.2em 0 #8a8a8a; + color: #8a8a8a; +} + +.ui.tertiary.grey.buttons .active.button, +.ui.tertiary.grey.buttons .tertiary.active.button, +.ui.tertiary.grey.active.button, +.ui.tertiary.grey.buttons .button:active, +.ui.tertiary.grey.buttons .tertiary.button:active, +.ui.tertiary.grey.button:active { + box-shadow: inset 0 -0.2em 0 #7e5454; + color: #696969; +} + +.ui.black.buttons .button, +.ui.black.button { + background-color: #1B1C1D; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.black.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.black.buttons .button:hover, +.ui.black.button:hover { + background-color: #27292a; + color: #FFFFFF; + text-shadow: none; +} + +.ui.black.buttons .button:focus, +.ui.black.button:focus { + background-color: #2f3032; + color: #FFFFFF; + text-shadow: none; +} + +.ui.black.buttons .button:active, +.ui.black.button:active { + background-color: #343637; + color: #FFFFFF; + text-shadow: none; +} + +.ui.black.buttons .active.button, +.ui.black.buttons .active.button:active, +.ui.black.active.button, +.ui.black.button .active.button:active { + background-color: #0f0f10; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.black.buttons .button, +.ui.basic.black.button { + background: transparent; + box-shadow: 0 0 0 1px #1B1C1D inset; + color: #1B1C1D; +} + +.ui.basic.black.buttons .button:hover, +.ui.basic.black.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #27292a inset; + color: #27292a; +} + +.ui.basic.black.buttons .button:focus, +.ui.basic.black.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #2f3032 inset; + color: #27292a; +} + +.ui.basic.black.buttons .active.button, +.ui.basic.black.active.button { + background: transparent; + box-shadow: 0 0 0 1px #0f0f10 inset; + color: #343637; +} + +.ui.basic.black.buttons .button:active, +.ui.basic.black.button:active { + box-shadow: 0 0 0 1px #343637 inset; + color: #343637; +} + +.ui.buttons:not(.vertical) > .basic.black.button:not(:first-child) { + margin-left: -1px; +} + +/* Inverted */ + +.ui.inverted.black.buttons .button, +.ui.inverted.black.button { + background-color: transparent; + box-shadow: 0 0 0 2px #D4D4D5 inset; + color: #FFFFFF; +} + +.ui.inverted.black.buttons .button:hover, +.ui.inverted.black.button:hover, +.ui.inverted.black.buttons .button:focus, +.ui.inverted.black.button:focus, +.ui.inverted.black.buttons .button.active, +.ui.inverted.black.button.active, +.ui.inverted.black.buttons .button:active, +.ui.inverted.black.button:active { + box-shadow: none; + color: #FFFFFF; +} + +.ui.inverted.black.buttons .button:hover, +.ui.inverted.black.button:hover { + background-color: #000000; +} + +.ui.inverted.black.buttons .button:focus, +.ui.inverted.black.button:focus { + background-color: #000000; +} + +.ui.inverted.black.buttons .active.button, +.ui.inverted.black.active.button { + background-color: #000000; +} + +.ui.inverted.black.buttons .button:active, +.ui.inverted.black.button:active { + background-color: #000000; +} + +/* Inverted Basic */ + +.ui.inverted.black.basic.buttons .button, +.ui.inverted.black.buttons .basic.button, +.ui.inverted.black.basic.button { + background-color: transparent; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; + color: #FFFFFF; +} + +.ui.inverted.black.basic.buttons .button:hover, +.ui.inverted.black.buttons .basic.button:hover, +.ui.inverted.black.basic.button:hover { + box-shadow: 0 0 0 2px #000000 inset; + color: #FFFFFF; +} + +.ui.inverted.black.basic.buttons .button:focus, +.ui.inverted.black.basic.buttons .button:focus, +.ui.inverted.black.basic.button:focus { + box-shadow: 0 0 0 2px #000000 inset; + color: #545454; +} + +.ui.inverted.black.basic.buttons .active.button, +.ui.inverted.black.buttons .basic.active.button, +.ui.inverted.black.basic.active.button { + box-shadow: 0 0 0 2px #000000 inset; + color: #FFFFFF; +} + +.ui.inverted.black.basic.buttons .button:active, +.ui.inverted.black.buttons .basic.button:active, +.ui.inverted.black.basic.button:active { + box-shadow: 0 0 0 2px #000000 inset; + color: #FFFFFF; +} + +/* Tertiary */ + +.ui.tertiary.black.buttons .button, +.ui.tertiary.black.buttons .tertiary.button, +.ui.tertiary.black.button { + background: transparent; + box-shadow: none; + color: #1B1C1D; +} + +.ui.tertiary.black.buttons .button:hover, +.ui.tertiary.black.buttons button:hover, +.ui.tertiary.black.button:hover { + box-shadow: inset 0 -0.2em 0 #8b8f93; + color: #8b8f93; +} + +.ui.tertiary.black.buttons .button:focus, +.ui.tertiary.black.buttons .tertiary.button:focus, +.ui.tertiary.black.button:focus { + box-shadow: inset 0 -0.2em 0 #93969a; + color: #93969a; +} + +.ui.tertiary.black.buttons .active.button, +.ui.tertiary.black.buttons .tertiary.active.button, +.ui.tertiary.black.active.button, +.ui.tertiary.black.buttons .button:active, +.ui.tertiary.black.buttons .tertiary.button:active, +.ui.tertiary.black.button:active { + box-shadow: inset 0 -0.2em 0 #404245; + color: #0f0f10; +} + +/*--------------- + Positive +----------------*/ + +/* Standard */ + +.ui.positive.buttons .button, +.ui.positive.button { + background-color: #21BA45; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.positive.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.positive.buttons .button:hover, +.ui.positive.button:hover { + background-color: #16ab39; + color: #FFFFFF; + text-shadow: none; +} + +.ui.positive.buttons .button:focus, +.ui.positive.button:focus { + background-color: #0ea432; + color: #FFFFFF; + text-shadow: none; +} + +.ui.positive.buttons .button:active, +.ui.positive.button:active { + background-color: #198f35; + color: #FFFFFF; + text-shadow: none; +} + +.ui.positive.buttons .active.button, +.ui.positive.buttons .active.button:active, +.ui.positive.active.button, +.ui.positive.button .active.button:active { + background-color: #13ae38; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.positive.buttons .button, +.ui.basic.positive.button { + background: transparent; + box-shadow: 0 0 0 1px #21BA45 inset; + color: #21BA45; +} + +.ui.basic.positive.buttons .button:hover, +.ui.basic.positive.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #16ab39 inset; + color: #16ab39; +} + +.ui.basic.positive.buttons .button:focus, +.ui.basic.positive.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #0ea432 inset; + color: #16ab39; +} + +.ui.basic.positive.buttons .active.button, +.ui.basic.positive.active.button { + background: transparent; + box-shadow: 0 0 0 1px #13ae38 inset; + color: #198f35; +} + +.ui.basic.positive.buttons .button:active, +.ui.basic.positive.button:active { + box-shadow: 0 0 0 1px #198f35 inset; + color: #198f35; +} + +.ui.buttons:not(.vertical) > .basic.positive.button:not(:first-child) { + margin-left: -1px; +} + +/*--------------- + Negative +----------------*/ + +/* Standard */ + +.ui.negative.buttons .button, +.ui.negative.button { + background-color: #DB2828; + color: #FFFFFF; + text-shadow: none; + background-image: none; +} + +.ui.negative.button { + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.negative.buttons .button:hover, +.ui.negative.button:hover { + background-color: #d01919; + color: #FFFFFF; + text-shadow: none; +} + +.ui.negative.buttons .button:focus, +.ui.negative.button:focus { + background-color: #ca1010; + color: #FFFFFF; + text-shadow: none; +} + +.ui.negative.buttons .button:active, +.ui.negative.button:active { + background-color: #b21e1e; + color: #FFFFFF; + text-shadow: none; +} + +.ui.negative.buttons .active.button, +.ui.negative.buttons .active.button:active, +.ui.negative.active.button, +.ui.negative.button .active.button:active { + background-color: #d41515; + color: #FFFFFF; + text-shadow: none; +} + +/* Basic */ + +.ui.basic.negative.buttons .button, +.ui.basic.negative.button { + background: transparent; + box-shadow: 0 0 0 1px #DB2828 inset; + color: #DB2828; +} + +.ui.basic.negative.buttons .button:hover, +.ui.basic.negative.button:hover { + background: transparent; + box-shadow: 0 0 0 1px #d01919 inset; + color: #d01919; +} + +.ui.basic.negative.buttons .button:focus, +.ui.basic.negative.button:focus { + background: transparent; + box-shadow: 0 0 0 1px #ca1010 inset; + color: #d01919; +} + +.ui.basic.negative.buttons .active.button, +.ui.basic.negative.active.button { + background: transparent; + box-shadow: 0 0 0 1px #d41515 inset; + color: #b21e1e; +} + +.ui.basic.negative.buttons .button:active, +.ui.basic.negative.button:active { + box-shadow: 0 0 0 1px #b21e1e inset; + color: #b21e1e; +} + +.ui.buttons:not(.vertical) > .basic.negative.button:not(:first-child) { + margin-left: -1px; +} + +/******************************* + Groups + *******************************/ + +.ui.buttons { + display: inline-flex; + flex-direction: row; + font-size: 0; + vertical-align: baseline; + margin: 0 0.25em 0 0; +} + +.ui.buttons:not(.basic):not(.inverted) { + box-shadow: none; +} + +/* Clearfix */ + +.ui.buttons:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +/* Standard Group */ + +.ui.buttons .button { + flex: 1 0 auto; + border-radius: 0; + margin: 0 0 0 0; +} + +.ui.buttons:not(.basic):not(.inverted) > .button:not(.basic):not(.inverted) { + box-shadow: 0 0 0 1px transparent inset, 0 0 0 0 rgba(34, 36, 38, 0.15) inset; +} + +.ui.buttons .button:first-child { + border-left: none; + margin-left: 0; + border-top-left-radius: 0.28571429rem; + border-bottom-left-radius: 0.28571429rem; +} + +.ui.buttons .button:last-child { + border-top-right-radius: 0.28571429rem; + border-bottom-right-radius: 0.28571429rem; +} + +/* Vertical Style */ + +.ui.vertical.buttons { + display: inline-flex; + flex-direction: column; +} + +.ui.vertical.buttons .button { + display: block; + float: none; + width: 100%; + margin: 0 0 0 0; + box-shadow: none; + border-radius: 0; +} + +.ui.vertical.buttons .button:first-child { + border-top-left-radius: 0.28571429rem; + border-top-right-radius: 0.28571429rem; +} + +.ui.vertical.buttons .button:last-child { + margin-bottom: 0; + border-bottom-left-radius: 0.28571429rem; + border-bottom-right-radius: 0.28571429rem; +} + +.ui.vertical.buttons .button:only-child { + border-radius: 0.28571429rem; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Card + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Standard +*******************************/ + +/*-------------- + Card +---------------*/ + +.ui.cards > .card, +.ui.card { + max-width: 100%; + position: relative; + display: flex; + flex-direction: column; + width: 290px; + min-height: 0; + background: #FFFFFF; + padding: 0; + border: none; + border-radius: 0.28571429rem; + box-shadow: 0 1px 3px 0 #D4D4D5, 0 0 0 1px #D4D4D5; + transition: box-shadow 0.1s ease, transform 0.1s ease; + z-index: ''; + word-wrap: break-word; +} + +.ui.card { + margin: 1em 0; +} + +.ui.cards > .card a, +.ui.card a { + cursor: pointer; +} + +.ui.card:first-child { + margin-top: 0; +} + +.ui.card:last-child { + margin-bottom: 0; +} + +/*-------------- + Cards +---------------*/ + +.ui.cards { + display: flex; + margin: -0.875em -0.5em; + flex-wrap: wrap; +} + +.ui.cards > .card { + display: flex; + margin: 0.875em 0.5em; + float: none; +} + +/* Clearing */ + +.ui.cards:after, +.ui.card:after { + display: block; + content: ' '; + height: 0; + clear: both; + overflow: hidden; + visibility: hidden; +} + +/* Consecutive Card Groups Preserve Row Spacing */ + +.ui.cards ~ .ui.cards { + margin-top: 0.875em; +} + +/*-------------- + Rounded Edges +---------------*/ + +.ui.cards > .card > :first-child, +.ui.card > :first-child { + border-radius: 0.28571429rem 0.28571429rem 0 0 !important; + border-top: none !important; +} + +.ui.cards > .card > :last-child, +.ui.card > :last-child { + border-radius: 0 0 0.28571429rem 0.28571429rem !important; +} + +.ui.cards > .card > :only-child, +.ui.card > :only-child { + border-radius: 0.28571429rem !important; +} + +/*-------------- + Images +---------------*/ + +.ui.cards > .card > .image, +.ui.card > .image { + position: relative; + display: block; + flex: 0 0 auto; + padding: 0; + background: rgba(0, 0, 0, 0.05); +} + +.ui.cards > .card > .image > img, +.ui.card > .image > img { + display: block; + width: 100%; + height: auto; + border-radius: inherit; +} + +.ui.cards > .card > .image:not(.ui) > img, +.ui.card > .image:not(.ui) > img { + border: none; +} + +/*-------------- + Content +---------------*/ + +.ui.cards > .card > .content, +.ui.card > .content { + flex-grow: 1; + border: none; + border-top: 1px solid rgba(34, 36, 38, 0.1); + background: none; + margin: 0; + padding: 1em 1em; + box-shadow: none; + font-size: 1em; + border-radius: 0; +} + +.ui.cards > .card > .content:after, +.ui.card > .content:after { + display: block; + content: ' '; + height: 0; + clear: both; + overflow: hidden; + visibility: hidden; +} + +.ui.cards > .card > .content > .header, +.ui.card > .content > .header { + display: block; + margin: ''; + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + color: rgba(0, 0, 0, 0.85); +} + +/* Default Header Size */ + +.ui.cards > .card > .content > .header:not(.ui), +.ui.card > .content > .header:not(.ui) { + font-weight: bold; + font-size: 1.28571429em; + margin-top: -0.21425em; + line-height: 1.28571429em; +} + +.ui.cards > .card > .content > .meta + .description, +.ui.cards > .card > .content > .header + .description, +.ui.card > .content > .meta + .description, +.ui.card > .content > .header + .description { + margin-top: 0.5em; +} + +/*---------------- + Floated Content +-----------------*/ + +.ui.cards > .card [class*="left floated"], +.ui.card [class*="left floated"] { + float: left; +} + +.ui.cards > .card [class*="right floated"], +.ui.card [class*="right floated"] { + float: right; +} + +/*-------------- + Aligned +---------------*/ + +.ui.cards > .card [class*="left aligned"], +.ui.card [class*="left aligned"] { + text-align: left; +} + +.ui.cards > .card [class*="center aligned"], +.ui.card [class*="center aligned"] { + text-align: center; +} + +.ui.cards > .card [class*="right aligned"], +.ui.card [class*="right aligned"] { + text-align: right; +} + +/*-------------- + Content Image +---------------*/ + +.ui.cards > .card .content img, +.ui.card .content img { + display: inline-block; + vertical-align: middle; + width: ''; +} + +.ui.cards > .card img.avatar, +.ui.cards > .card .avatar img, +.ui.card img.avatar, +.ui.card .avatar img { + width: 2em; + height: 2em; + border-radius: 500rem; +} + +/*-------------- + Description +---------------*/ + +.ui.cards > .card > .content > .description, +.ui.card > .content > .description { + clear: both; + color: rgba(0, 0, 0, 0.68); +} + +/*-------------- + Paragraph +---------------*/ + +.ui.cards > .card > .content p, +.ui.card > .content p { + margin: 0 0 0.5em; +} + +.ui.cards > .card > .content p:last-child, +.ui.card > .content p:last-child { + margin-bottom: 0; +} + +/*-------------- + Meta +---------------*/ + +.ui.cards > .card .meta, +.ui.card .meta { + font-size: 1em; + color: rgba(0, 0, 0, 0.4); +} + +.ui.cards > .card .meta *, +.ui.card .meta * { + margin-right: 0.3em; +} + +.ui.cards > .card .meta :last-child, +.ui.card .meta :last-child { + margin-right: 0; +} + +.ui.cards > .card .meta [class*="right floated"], +.ui.card .meta [class*="right floated"] { + margin-right: 0; + margin-left: 0.3em; +} + +/*-------------- + Links +---------------*/ + +/* Generic */ + +.ui.cards > .card > .content a:not(.ui), +.ui.card > .content a:not(.ui) { + color: ''; + transition: color 0.1s ease; +} + +.ui.cards > .card > .content a:not(.ui):hover, +.ui.card > .content a:not(.ui):hover { + color: ''; +} + +/* Header */ + +.ui.cards > .card > .content > a.header, +.ui.card > .content > a.header { + color: rgba(0, 0, 0, 0.85); +} + +.ui.cards > .card > .content > a.header:hover, +.ui.card > .content > a.header:hover { + color: #1e70bf; +} + +/* Meta */ + +.ui.cards > .card .meta > a:not(.ui), +.ui.card .meta > a:not(.ui) { + color: rgba(0, 0, 0, 0.4); +} + +.ui.cards > .card .meta > a:not(.ui):hover, +.ui.card .meta > a:not(.ui):hover { + color: rgba(0, 0, 0, 0.87); +} + +/*-------------- + Buttons +---------------*/ + +.ui.cards > .card > .buttons, +.ui.card > .buttons, +.ui.cards > .card > .button, +.ui.card > .button { + margin: 0 -1px; + width: calc(100% + 2px); +} + +.ui.cards > .card > .buttons:last-child, +.ui.card > .buttons:last-child, +.ui.cards > .card > .button:last-child, +.ui.card > .button:last-child { + margin-bottom: -1px; +} + +/*-------------- + Dimmer +---------------*/ + +.ui.cards > .card .dimmer, +.ui.card .dimmer { + background: ''; + z-index: 10; +} + +/*-------------- + Labels +---------------*/ + +/*-----Star----- */ + +/* Icon */ + +.ui.cards > .card > .content .star.icon, +.ui.card > .content .star.icon { + cursor: pointer; + opacity: 0.75; + transition: color 0.1s ease; +} + +.ui.cards > .card > .content .star.icon:hover, +.ui.card > .content .star.icon:hover { + opacity: 1; + color: #FFB70A; +} + +.ui.cards > .card > .content .active.star.icon, +.ui.card > .content .active.star.icon { + color: #FFE623; +} + +/*-----Like----- */ + +/* Icon */ + +.ui.cards > .card > .content .like.icon, +.ui.card > .content .like.icon { + cursor: pointer; + opacity: 0.75; + transition: color 0.1s ease; +} + +.ui.cards > .card > .content .like.icon:hover, +.ui.card > .content .like.icon:hover { + opacity: 1; + color: #FF2733; +} + +.ui.cards > .card > .content .active.like.icon, +.ui.card > .content .active.like.icon { + color: #FF2733; +} + +/*---------------- + Extra Content +-----------------*/ + +.ui.cards > .card > .extra, +.ui.card > .extra { + max-width: 100%; + min-height: 0 !important; + flex-grow: 0; + border-top: 1px solid rgba(0, 0, 0, 0.05) !important; + position: static; + background: none; + width: auto; + margin: 0 0; + padding: 0.75em 1em; + top: 0; + left: 0; + color: rgba(0, 0, 0, 0.4); + box-shadow: none; + transition: color 0.1s ease; +} + +.ui.cards > .card > .extra a:not(.ui), +.ui.card > .extra a:not(.ui) { + color: rgba(0, 0, 0, 0.4); +} + +.ui.cards > .card > .extra a:not(.ui):hover, +.ui.card > .extra a:not(.ui):hover { + color: #1e70bf; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Horizontal + --------------------*/ + +.ui.horizontal.cards > .card, +.ui.card.horizontal { + flex-direction: row; + flex-wrap: wrap; + min-width: 270px; + width: 400px; + max-width: 100%; +} + +.ui.horizontal.cards > .card > .image, +.ui.card.horizontal > .image { + border-radius: 0.28571429rem 0 0 0.28571429rem; + width: 150px; +} + +.ui.horizontal.cards > .card > .image > img, +.ui.card.horizontal > .image > img { + background-size: cover; + background-repeat: no-repeat; + background-position: center; + justify-content: center; + align-items: center; + display: flex; + width: 100%; + height: 100%; + border-radius: 0.28571429rem 0 0 0.28571429rem; +} + +.ui.horizontal.cards > .card > .image:last-child > img, +.ui.card.horizontal > .image:last-child > img { + border-radius: 0 0.28571429rem 0.28571429rem 0; +} + +.ui.horizontal.cards > .card > .content, +.ui.horizontal.card > .content { + flex-basis: 1px; +} + +.ui.horizontal.cards > .card > .extra, +.ui.horizontal.card > .extra { + flex-basis: 100%; +} + +/*------------------- + Raised + --------------------*/ + +.ui.raised.cards > .card, +.ui.raised.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.raised.cards a.card:hover, +.ui.link.cards .raised.card:hover, +a.ui.raised.card:hover, +.ui.link.raised.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 4px 0 rgba(34, 36, 38, 0.15), 0 2px 10px 0 rgba(34, 36, 38, 0.25); +} + +/*------------------- + Centered + --------------------*/ + +.ui.centered.cards { + justify-content: center; +} + +.ui.centered.card { + margin-left: auto; + margin-right: auto; +} + +/*------------------- + Fluid + --------------------*/ + +.ui.fluid.card { + width: 100%; + max-width: 9999px; +} + +/*------------------- + Link + --------------------*/ + +.ui.cards a.card, +.ui.link.cards .card, +a.ui.card, +.ui.link.card { + transform: none; +} + +.ui.cards a.card:hover, +.ui.link.cards .card:not(.icon):hover, +a.ui.card:hover, +.ui.link.card:hover { + cursor: pointer; + z-index: 5; + background: #FFFFFF; + border: none; + box-shadow: 0 1px 3px 0 #BCBDBD, 0 0 0 1px #D4D4D5; + transform: translateY(-3px); +} + +/*------------------- + Colors +--------------------*/ + +.ui.primary.cards > .card, +.ui.cards > .primary.card, +.ui.primary.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #2185D0, 0 1px 3px 0 #D4D4D5; +} + +.ui.primary.cards > .card:hover, +.ui.cards > .primary.card:hover, +.ui.primary.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #1678c2, 0 1px 3px 0 #BCBDBD; +} + +.ui.inverted.primary.cards > .card, +.ui.inverted.cards > .primary.card, +.ui.inverted.primary.card { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #54C8FF, 0 0 0 1px #555555; +} + +.ui.inverted.primary.cards > .card:hover, +.ui.inverted.cards > .primary.card:hover, +.ui.inverted.primary.card:hover { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #21b8ff, 0 0 0 1px #555555; +} + +.ui.secondary.cards > .card, +.ui.cards > .secondary.card, +.ui.secondary.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #1B1C1D, 0 1px 3px 0 #D4D4D5; +} + +.ui.secondary.cards > .card:hover, +.ui.cards > .secondary.card:hover, +.ui.secondary.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #27292a, 0 1px 3px 0 #BCBDBD; +} + +.ui.inverted.secondary.cards > .card, +.ui.inverted.cards > .secondary.card, +.ui.inverted.secondary.card { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #545454, 0 0 0 1px #555555; +} + +.ui.inverted.secondary.cards > .card:hover, +.ui.inverted.cards > .secondary.card:hover, +.ui.inverted.secondary.card:hover { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #6e6e6e, 0 0 0 1px #555555; +} + +.ui.red.cards > .card, +.ui.cards > .red.card, +.ui.red.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #DB2828, 0 1px 3px 0 #D4D4D5; +} + +.ui.red.cards > .card:hover, +.ui.cards > .red.card:hover, +.ui.red.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #d01919, 0 1px 3px 0 #BCBDBD; +} + +.ui.inverted.red.cards > .card, +.ui.inverted.cards > .red.card, +.ui.inverted.red.card { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #FF695E, 0 0 0 1px #555555; +} + +.ui.inverted.red.cards > .card:hover, +.ui.inverted.cards > .red.card:hover, +.ui.inverted.red.card:hover { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #ff392b, 0 0 0 1px #555555; +} + +.ui.orange.cards > .card, +.ui.cards > .orange.card, +.ui.orange.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #F2711C, 0 1px 3px 0 #D4D4D5; +} + +.ui.orange.cards > .card:hover, +.ui.cards > .orange.card:hover, +.ui.orange.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #f26202, 0 1px 3px 0 #BCBDBD; +} + +.ui.inverted.orange.cards > .card, +.ui.inverted.cards > .orange.card, +.ui.inverted.orange.card { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #FF851B, 0 0 0 1px #555555; +} + +.ui.inverted.orange.cards > .card:hover, +.ui.inverted.cards > .orange.card:hover, +.ui.inverted.orange.card:hover { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #e76b00, 0 0 0 1px #555555; +} + +.ui.yellow.cards > .card, +.ui.cards > .yellow.card, +.ui.yellow.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #FBBD08, 0 1px 3px 0 #D4D4D5; +} + +.ui.yellow.cards > .card:hover, +.ui.cards > .yellow.card:hover, +.ui.yellow.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #eaae00, 0 1px 3px 0 #BCBDBD; +} + +.ui.inverted.yellow.cards > .card, +.ui.inverted.cards > .yellow.card, +.ui.inverted.yellow.card { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #FFE21F, 0 0 0 1px #555555; +} + +.ui.inverted.yellow.cards > .card:hover, +.ui.inverted.cards > .yellow.card:hover, +.ui.inverted.yellow.card:hover { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #ebcd00, 0 0 0 1px #555555; +} + +.ui.olive.cards > .card, +.ui.cards > .olive.card, +.ui.olive.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #B5CC18, 0 1px 3px 0 #D4D4D5; +} + +.ui.olive.cards > .card:hover, +.ui.cards > .olive.card:hover, +.ui.olive.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #a7bd0d, 0 1px 3px 0 #BCBDBD; +} + +.ui.inverted.olive.cards > .card, +.ui.inverted.cards > .olive.card, +.ui.inverted.olive.card { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #D9E778, 0 0 0 1px #555555; +} + +.ui.inverted.olive.cards > .card:hover, +.ui.inverted.cards > .olive.card:hover, +.ui.inverted.olive.card:hover { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #d2e745, 0 0 0 1px #555555; +} + +.ui.green.cards > .card, +.ui.cards > .green.card, +.ui.green.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #21BA45, 0 1px 3px 0 #D4D4D5; +} + +.ui.green.cards > .card:hover, +.ui.cards > .green.card:hover, +.ui.green.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #16ab39, 0 1px 3px 0 #BCBDBD; +} + +.ui.inverted.green.cards > .card, +.ui.inverted.cards > .green.card, +.ui.inverted.green.card { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #2ECC40, 0 0 0 1px #555555; +} + +.ui.inverted.green.cards > .card:hover, +.ui.inverted.cards > .green.card:hover, +.ui.inverted.green.card:hover { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #1ea92e, 0 0 0 1px #555555; +} + +.ui.teal.cards > .card, +.ui.cards > .teal.card, +.ui.teal.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #00B5AD, 0 1px 3px 0 #D4D4D5; +} + +.ui.teal.cards > .card:hover, +.ui.cards > .teal.card:hover, +.ui.teal.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #009c95, 0 1px 3px 0 #BCBDBD; +} + +.ui.inverted.teal.cards > .card, +.ui.inverted.cards > .teal.card, +.ui.inverted.teal.card { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #6DFFFF, 0 0 0 1px #555555; +} + +.ui.inverted.teal.cards > .card:hover, +.ui.inverted.cards > .teal.card:hover, +.ui.inverted.teal.card:hover { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #3affff, 0 0 0 1px #555555; +} + +.ui.blue.cards > .card, +.ui.cards > .blue.card, +.ui.blue.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #2185D0, 0 1px 3px 0 #D4D4D5; +} + +.ui.blue.cards > .card:hover, +.ui.cards > .blue.card:hover, +.ui.blue.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #1678c2, 0 1px 3px 0 #BCBDBD; +} + +.ui.inverted.blue.cards > .card, +.ui.inverted.cards > .blue.card, +.ui.inverted.blue.card { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #54C8FF, 0 0 0 1px #555555; +} + +.ui.inverted.blue.cards > .card:hover, +.ui.inverted.cards > .blue.card:hover, +.ui.inverted.blue.card:hover { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #21b8ff, 0 0 0 1px #555555; +} + +.ui.violet.cards > .card, +.ui.cards > .violet.card, +.ui.violet.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #6435C9, 0 1px 3px 0 #D4D4D5; +} + +.ui.violet.cards > .card:hover, +.ui.cards > .violet.card:hover, +.ui.violet.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #5829bb, 0 1px 3px 0 #BCBDBD; +} + +.ui.inverted.violet.cards > .card, +.ui.inverted.cards > .violet.card, +.ui.inverted.violet.card { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #A291FB, 0 0 0 1px #555555; +} + +.ui.inverted.violet.cards > .card:hover, +.ui.inverted.cards > .violet.card:hover, +.ui.inverted.violet.card:hover { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #745aff, 0 0 0 1px #555555; +} + +.ui.purple.cards > .card, +.ui.cards > .purple.card, +.ui.purple.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #A333C8, 0 1px 3px 0 #D4D4D5; +} + +.ui.purple.cards > .card:hover, +.ui.cards > .purple.card:hover, +.ui.purple.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #9627ba, 0 1px 3px 0 #BCBDBD; +} + +.ui.inverted.purple.cards > .card, +.ui.inverted.cards > .purple.card, +.ui.inverted.purple.card { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #DC73FF, 0 0 0 1px #555555; +} + +.ui.inverted.purple.cards > .card:hover, +.ui.inverted.cards > .purple.card:hover, +.ui.inverted.purple.card:hover { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #cf40ff, 0 0 0 1px #555555; +} + +.ui.pink.cards > .card, +.ui.cards > .pink.card, +.ui.pink.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #E03997, 0 1px 3px 0 #D4D4D5; +} + +.ui.pink.cards > .card:hover, +.ui.cards > .pink.card:hover, +.ui.pink.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #e61a8d, 0 1px 3px 0 #BCBDBD; +} + +.ui.inverted.pink.cards > .card, +.ui.inverted.cards > .pink.card, +.ui.inverted.pink.card { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #FF8EDF, 0 0 0 1px #555555; +} + +.ui.inverted.pink.cards > .card:hover, +.ui.inverted.cards > .pink.card:hover, +.ui.inverted.pink.card:hover { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #ff5bd1, 0 0 0 1px #555555; +} + +.ui.brown.cards > .card, +.ui.cards > .brown.card, +.ui.brown.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #A5673F, 0 1px 3px 0 #D4D4D5; +} + +.ui.brown.cards > .card:hover, +.ui.cards > .brown.card:hover, +.ui.brown.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #975b33, 0 1px 3px 0 #BCBDBD; +} + +.ui.inverted.brown.cards > .card, +.ui.inverted.cards > .brown.card, +.ui.inverted.brown.card { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #D67C1C, 0 0 0 1px #555555; +} + +.ui.inverted.brown.cards > .card:hover, +.ui.inverted.cards > .brown.card:hover, +.ui.inverted.brown.card:hover { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #b0620f, 0 0 0 1px #555555; +} + +.ui.grey.cards > .card, +.ui.cards > .grey.card, +.ui.grey.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #767676, 0 1px 3px 0 #D4D4D5; +} + +.ui.grey.cards > .card:hover, +.ui.cards > .grey.card:hover, +.ui.grey.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #838383, 0 1px 3px 0 #BCBDBD; +} + +.ui.inverted.grey.cards > .card, +.ui.inverted.cards > .grey.card, +.ui.inverted.grey.card { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #DCDDDE, 0 0 0 1px #555555; +} + +.ui.inverted.grey.cards > .card:hover, +.ui.inverted.cards > .grey.card:hover, +.ui.inverted.grey.card:hover { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #c2c4c5, 0 0 0 1px #555555; +} + +.ui.black.cards > .card, +.ui.cards > .black.card, +.ui.black.card { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #1B1C1D, 0 1px 3px 0 #D4D4D5; +} + +.ui.black.cards > .card:hover, +.ui.cards > .black.card:hover, +.ui.black.card:hover { + box-shadow: 0 0 0 1px #D4D4D5, 0 2px 0 0 #27292a, 0 1px 3px 0 #BCBDBD; +} + +.ui.inverted.black.cards > .card, +.ui.inverted.cards > .black.card, +.ui.inverted.black.card { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #545454, 0 0 0 1px #555555; +} + +.ui.inverted.black.cards > .card:hover, +.ui.inverted.cards > .black.card:hover, +.ui.inverted.black.card:hover { + box-shadow: 0 1px 3px 0 #555555, 0 2px 0 0 #000000, 0 0 0 1px #555555; +} + +/*-------------- + Card Count +---------------*/ + +.ui.one.cards { + margin-left: 0; + margin-right: 0; +} + +.ui.one.cards > .card { + width: 100%; +} + +.ui.two.cards { + margin-left: -1em; + margin-right: -1em; +} + +.ui.two.cards > .card { + width: calc(50% - 2em); + margin-left: 1em; + margin-right: 1em; +} + +.ui.three.cards { + margin-left: -1em; + margin-right: -1em; +} + +.ui.three.cards > .card { + width: calc(33.33333333333333% - 2em); + margin-left: 1em; + margin-right: 1em; +} + +.ui.four.cards { + margin-left: -0.75em; + margin-right: -0.75em; +} + +.ui.four.cards > .card { + width: calc(25% - 1.5em); + margin-left: 0.75em; + margin-right: 0.75em; +} + +.ui.five.cards { + margin-left: -0.75em; + margin-right: -0.75em; +} + +.ui.five.cards > .card { + width: calc(20% - 1.5em); + margin-left: 0.75em; + margin-right: 0.75em; +} + +.ui.six.cards { + margin-left: -0.75em; + margin-right: -0.75em; +} + +.ui.six.cards > .card { + width: calc(16.666666666666664% - 1.5em); + margin-left: 0.75em; + margin-right: 0.75em; +} + +.ui.seven.cards { + margin-left: -0.5em; + margin-right: -0.5em; +} + +.ui.seven.cards > .card { + width: calc(14.285714285714285% - 1em); + margin-left: 0.5em; + margin-right: 0.5em; +} + +.ui.eight.cards { + margin-left: -0.5em; + margin-right: -0.5em; +} + +.ui.eight.cards > .card { + width: calc(12.5% - 1em); + margin-left: 0.5em; + margin-right: 0.5em; + font-size: 11px; +} + +.ui.nine.cards { + margin-left: -0.5em; + margin-right: -0.5em; +} + +.ui.nine.cards > .card { + width: calc(11.11111111111111% - 1em); + margin-left: 0.5em; + margin-right: 0.5em; + font-size: 10px; +} + +.ui.ten.cards { + margin-left: -0.5em; + margin-right: -0.5em; +} + +.ui.ten.cards > .card { + width: calc(10% - 1em); + margin-left: 0.5em; + margin-right: 0.5em; +} + +/*------------------- + Doubling + --------------------*/ + +/* Mobile Only */ + +@media only screen and (max-width: 767.98px) { + .ui.two.doubling.cards { + margin-left: 0; + margin-right: 0; + } + + .ui.two.doubling.cards > .card { + width: 100%; + margin-left: 0; + margin-right: 0; + } + + .ui.three.doubling.cards { + margin-left: -1em; + margin-right: -1em; + } + + .ui.three.doubling.cards > .card { + width: calc(50% - 2em); + margin-left: 1em; + margin-right: 1em; + } + + .ui.four.doubling.cards { + margin-left: -1em; + margin-right: -1em; + } + + .ui.four.doubling.cards > .card { + width: calc(50% - 2em); + margin-left: 1em; + margin-right: 1em; + } + + .ui.five.doubling.cards { + margin-left: -1em; + margin-right: -1em; + } + + .ui.five.doubling.cards > .card { + width: calc(50% - 2em); + margin-left: 1em; + margin-right: 1em; + } + + .ui.six.doubling.cards { + margin-left: -1em; + margin-right: -1em; + } + + .ui.six.doubling.cards > .card { + width: calc(50% - 2em); + margin-left: 1em; + margin-right: 1em; + } + + .ui.seven.doubling.cards { + margin-left: -1em; + margin-right: -1em; + } + + .ui.seven.doubling.cards > .card { + width: calc(33.33333333333333% - 2em); + margin-left: 1em; + margin-right: 1em; + } + + .ui.eight.doubling.cards { + margin-left: -1em; + margin-right: -1em; + } + + .ui.eight.doubling.cards > .card { + width: calc(33.33333333333333% - 2em); + margin-left: 1em; + margin-right: 1em; + } + + .ui.nine.doubling.cards { + margin-left: -1em; + margin-right: -1em; + } + + .ui.nine.doubling.cards > .card { + width: calc(33.33333333333333% - 2em); + margin-left: 1em; + margin-right: 1em; + } + + .ui.ten.doubling.cards { + margin-left: -1em; + margin-right: -1em; + } + + .ui.ten.doubling.cards > .card { + width: calc(33.33333333333333% - 2em); + margin-left: 1em; + margin-right: 1em; + } +} + +/* Tablet Only */ + +@media only screen and (min-width: 768px) and (max-width: 991.98px) { + .ui.two.doubling.cards { + margin-left: 0; + margin-right: 0; + } + + .ui.two.doubling.cards > .card { + width: 100%; + margin-left: 0; + margin-right: 0; + } + + .ui.three.doubling.cards { + margin-left: -1em; + margin-right: -1em; + } + + .ui.three.doubling.cards > .card { + width: calc(50% - 2em); + margin-left: 1em; + margin-right: 1em; + } + + .ui.four.doubling.cards { + margin-left: -1em; + margin-right: -1em; + } + + .ui.four.doubling.cards > .card { + width: calc(50% - 2em); + margin-left: 1em; + margin-right: 1em; + } + + .ui.five.doubling.cards { + margin-left: -1em; + margin-right: -1em; + } + + .ui.five.doubling.cards > .card { + width: calc(33.33333333333333% - 2em); + margin-left: 1em; + margin-right: 1em; + } + + .ui.six.doubling.cards { + margin-left: -1em; + margin-right: -1em; + } + + .ui.six.doubling.cards > .card { + width: calc(33.33333333333333% - 2em); + margin-left: 1em; + margin-right: 1em; + } + + .ui.eight.doubling.cards { + margin-left: -1em; + margin-right: -1em; + } + + .ui.eight.doubling.cards > .card { + width: calc(33.33333333333333% - 2em); + margin-left: 1em; + margin-right: 1em; + } + + .ui.eight.doubling.cards { + margin-left: -0.75em; + margin-right: -0.75em; + } + + .ui.eight.doubling.cards > .card { + width: calc(25% - 1.5em); + margin-left: 0.75em; + margin-right: 0.75em; + } + + .ui.nine.doubling.cards { + margin-left: -0.75em; + margin-right: -0.75em; + } + + .ui.nine.doubling.cards > .card { + width: calc(25% - 1.5em); + margin-left: 0.75em; + margin-right: 0.75em; + } + + .ui.ten.doubling.cards { + margin-left: -0.75em; + margin-right: -0.75em; + } + + .ui.ten.doubling.cards > .card { + width: calc(20% - 1.5em); + margin-left: 0.75em; + margin-right: 0.75em; + } +} + +/*------------------- + Stackable + --------------------*/ + +@media only screen and (max-width: 767.98px) { + .ui.stackable.cards { + display: block !important; + } + + .ui.stackable.cards .card:first-child { + margin-top: 0 !important; + } + + .ui.stackable.cards > .card { + display: block !important; + height: auto !important; + margin: 1em 1em; + padding: 0 !important; + width: calc(100% - 2em) !important; + } +} + +/*-------------- + Size +---------------*/ + +.ui.cards > .card { + font-size: 1em; +} + +.ui.mini.cards .card { + font-size: 0.78571429rem; +} + +.ui.tiny.cards .card { + font-size: 0.85714286rem; +} + +.ui.small.cards .card { + font-size: 0.92857143rem; +} + +.ui.large.cards .card { + font-size: 1.14285714rem; +} + +.ui.big.cards .card { + font-size: 1.28571429rem; +} + +.ui.huge.cards .card { + font-size: 1.42857143rem; +} + +.ui.massive.cards .card { + font-size: 1.71428571rem; +} + +/*----------------- + Inverted + ------------------*/ + +.ui.inverted.cards > .card, +.ui.inverted.card { + background: #1B1C1D; + box-shadow: 0 1px 3px 0 #555555, 0 0 0 1px #555555; +} + +/* Content */ + +.ui.inverted.cards > .card > .content, +.ui.inverted.card > .content { + border-top: 1px solid rgba(255, 255, 255, 0.15); +} + +/* Header */ + +.ui.inverted.cards > .card > .content > .header, +.ui.inverted.card > .content > .header { + color: rgba(255, 255, 255, 0.9); +} + +/* Description */ + +.ui.inverted.cards > .card > .content > .description, +.ui.inverted.card > .content > .description { + color: rgba(255, 255, 255, 0.8); +} + +/* Meta */ + +.ui.inverted.cards > .card .meta, +.ui.inverted.card .meta { + color: rgba(255, 255, 255, 0.7); +} + +.ui.inverted.cards > .card .meta > a:not(.ui), +.ui.inverted.card .meta > a:not(.ui) { + color: rgba(255, 255, 255, 0.7); +} + +.ui.inverted.cards > .card .meta > a:not(.ui):hover, +.ui.inverted.card .meta > a:not(.ui):hover { + color: #ffffff; +} + +/* Extra */ + +.ui.inverted.cards > .card > .extra, +.ui.inverted.card > .extra { + border-top: 1px solid rgba(255, 255, 255, 0.15) !important; + color: rgba(255, 255, 255, 0.7); +} + +.ui.inverted.cards > .card > .extra a:not(.ui), +.ui.inverted.card > .extra a:not(.ui) { + color: rgba(255, 255, 255, 0.5); +} + +.ui.inverted.cards > .card > .extra a:not(.ui):hover, +.ui.inverted.card > .extra a:not(.ui):hover { + color: #1e70bf; +} + +/* Link card(s) */ + +.ui.inverted.cards a.card:hover, +.ui.inverted.link.cards .card:not(.icon):hover, +a.inverted.ui.card:hover, +.ui.inverted.link.card:hover { + background: #1B1C1D; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + User Variable Overrides +*******************************/ +/*! + * # Fomantic-UI - Checkbox + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Checkbox +*******************************/ + +/*-------------- + Content +---------------*/ + +.ui.checkbox { + position: relative; + display: inline-block; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + outline: none; + vertical-align: baseline; + font-style: normal; + min-height: 17px; + font-size: 1em; + line-height: 17px; + min-width: 17px; +} + +/* HTML Checkbox */ + +.ui.checkbox input[type="checkbox"], +.ui.checkbox input[type="radio"] { + cursor: pointer; + position: absolute; + top: 0; + left: 0; + opacity: 0 !important; + outline: none; + z-index: 3; + width: 17px; + height: 17px; +} + +.ui.checkbox label { + cursor: auto; + position: relative; + display: block; + padding-left: 1.85714em; + outline: none; + font-size: 1em; +} + +.ui.checkbox label:before { + position: absolute; + top: 0; + left: 0; + width: 17px; + height: 17px; + content: ''; + background: #FFFFFF; + border-radius: 0.21428571rem; + transition: border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease; + border: 1px solid #D4D4D5; +} + +/*-------------- + Checkmark +---------------*/ + +.ui.checkbox label:after { + position: absolute; + font-size: 14px; + top: 0; + left: 0; + width: 17px; + height: 17px; + text-align: center; + opacity: 0; + color: rgba(0, 0, 0, 0.87); + transition: border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease; +} + +/*-------------- + Label +---------------*/ + +/* Inside */ + +.ui.checkbox label, +.ui.checkbox + label { + color: rgba(0, 0, 0, 0.87); + transition: color 0.1s ease; +} + +/* Outside */ + +.ui.checkbox + label { + vertical-align: middle; +} + +/******************************* + States +*******************************/ + +/*-------------- + Hover +---------------*/ + +.ui.checkbox label:hover::before { + background: #FFFFFF; + border-color: rgba(34, 36, 38, 0.35); +} + +.ui.checkbox label:hover, +.ui.checkbox + label:hover { + color: rgba(0, 0, 0, 0.8); +} + +/*-------------- + Down +---------------*/ + +.ui.checkbox label:active::before { + background: #F9FAFB; + border-color: rgba(34, 36, 38, 0.35); +} + +.ui.checkbox label:active::after { + color: rgba(0, 0, 0, 0.95); +} + +.ui.checkbox input:active ~ label { + color: rgba(0, 0, 0, 0.95); +} + +/*-------------- + Focus +---------------*/ + +.ui.checkbox input:focus ~ label:before { + background: #FFFFFF; + border-color: #96C8DA; +} + +.ui.checkbox input:focus ~ label:after { + color: rgba(0, 0, 0, 0.95); +} + +.ui.checkbox input:focus ~ label { + color: rgba(0, 0, 0, 0.95); +} + +/*-------------- + Active +---------------*/ + +.ui.checkbox input:checked ~ label:before { + background: #FFFFFF; + border-color: rgba(34, 36, 38, 0.35); +} + +.ui.checkbox input:checked ~ label:after { + opacity: 1; + color: rgba(0, 0, 0, 0.95); +} + +/*-------------- + Indeterminate + ---------------*/ + +.ui.checkbox input:not([type=radio]):indeterminate ~ label:before { + background: #FFFFFF; + border-color: rgba(34, 36, 38, 0.35); +} + +.ui.checkbox input:not([type=radio]):indeterminate ~ label:after { + opacity: 1; + color: rgba(0, 0, 0, 0.95); +} + +.ui.indeterminate.toggle.checkbox input:not([type=radio]):indeterminate ~ label:before { + background: rgba(0, 0, 0, 0.15); +} + +.ui.indeterminate.toggle.checkbox input:not([type=radio]) ~ label:after { + left: 1.075rem; +} + +/*-------------- + Active Focus +---------------*/ + +.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label:before, +.ui.checkbox input:checked:focus ~ label:before { + background: #FFFFFF; + border-color: #96C8DA; +} + +.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label:after, +.ui.checkbox input:checked:focus ~ label:after { + color: rgba(0, 0, 0, 0.95); +} + +/*-------------- + Read-Only +---------------*/ + +.ui.read-only.checkbox, +.ui.read-only.checkbox label { + cursor: default; +} + +/*-------------- + Disabled + ---------------*/ + +.ui.disabled.checkbox label, +.ui.checkbox input[disabled] ~ label { + cursor: default !important; + opacity: 0.5; + color: #000000; + pointer-events: none; +} + +/*-------------- + Hidden +---------------*/ + +/* Initialized checkbox moves input below element + to prevent manually triggering */ + +.ui.checkbox input.hidden { + z-index: -1; +} + +/* Selectable Label */ + +.ui.checkbox input.hidden + label { + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +/******************************* + Types +*******************************/ + +/*-------------- + Radio + ---------------*/ + +.ui.radio.checkbox { + min-height: 15px; +} + +.ui.radio.checkbox label { + padding-left: 1.85714em; +} + +/* Box */ + +.ui.radio.checkbox label:before { + content: ''; + transform: none; + width: 15px; + height: 15px; + border-radius: 500rem; + top: 1px; + left: 0; +} + +/* Bullet */ + +.ui.radio.checkbox label:after { + border: none; + content: '' !important; + line-height: 15px; + top: 1px; + left: 0; + width: 15px; + height: 15px; + border-radius: 500rem; + transform: scale(0.46666667); + background-color: rgba(0, 0, 0, 0.87); +} + +/* Focus */ + +.ui.radio.checkbox input:focus ~ label:before { + background-color: #FFFFFF; +} + +.ui.radio.checkbox input:focus ~ label:after { + background-color: rgba(0, 0, 0, 0.95); +} + +/* Indeterminate */ + +.ui.radio.checkbox input:indeterminate ~ label:after { + opacity: 0; +} + +/* Active */ + +.ui.radio.checkbox input:checked ~ label:before { + background-color: #FFFFFF; +} + +.ui.radio.checkbox input:checked ~ label:after { + background-color: rgba(0, 0, 0, 0.95); +} + +/* Active Focus */ + +.ui.radio.checkbox input:focus:checked ~ label:before { + background-color: #FFFFFF; +} + +.ui.radio.checkbox input:focus:checked ~ label:after { + background-color: rgba(0, 0, 0, 0.95); +} + +/*-------------- + Slider + ---------------*/ + +.ui.slider.checkbox { + min-height: 1.25rem; +} + +/* Input */ + +.ui.slider.checkbox input { + width: 3.5rem; + height: 1.25rem; +} + +/* Label */ + +.ui.slider.checkbox label { + padding-left: 4.5rem; + line-height: 1rem; + color: rgba(0, 0, 0, 0.4); +} + +/* Line */ + +.ui.slider.checkbox label:before { + display: block; + position: absolute; + content: ''; + transform: none; + border: none !important; + left: 0; + z-index: 1; + top: 0.4rem; + background-color: rgba(0, 0, 0, 0.05); + width: 3.5rem; + height: 0.21428571rem; + border-radius: 500rem; + transition: background 0.3s ease; +} + +/* Handle */ + +.ui.slider.checkbox label:after { + background: #FFFFFF linear-gradient(transparent, rgba(0, 0, 0, 0.05)); + position: absolute; + content: '' !important; + opacity: 1; + z-index: 2; + border: none; + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15) inset; + width: 1.5rem; + height: 1.5rem; + top: -0.25rem; + left: 0; + transform: none; + border-radius: 500rem; + transition: left 0.3s ease; +} + +/* Focus */ + +.ui.slider.checkbox input:focus ~ label:before { + background-color: rgba(0, 0, 0, 0.15); + border: none; +} + +/* Hover */ + +.ui.slider.checkbox label:hover { + color: rgba(0, 0, 0, 0.8); +} + +.ui.slider.checkbox label:hover::before { + background: rgba(0, 0, 0, 0.15); +} + +/* Active */ + +.ui.slider.checkbox input:checked ~ label { + color: rgba(0, 0, 0, 0.95) !important; +} + +.ui.slider.checkbox input:checked ~ label:before { + background-color: #545454 !important; +} + +.ui.slider.checkbox input:checked ~ label:after { + left: 2rem; +} + +/* Active Focus */ + +.ui.slider.checkbox input:focus:checked ~ label { + color: rgba(0, 0, 0, 0.95) !important; +} + +.ui.slider.checkbox input:focus:checked ~ label:before { + background-color: #000000 !important; +} + +/*-------------- + Toggle + ---------------*/ + +.ui.toggle.checkbox { + min-height: 1.5rem; +} + +/* Input */ + +.ui.toggle.checkbox input { + width: 3.5rem; + height: 1.5rem; +} + +/* Label */ + +.ui.toggle.checkbox label { + min-height: 1.5rem; + padding-left: 4.5rem; + color: rgba(0, 0, 0, 0.87); +} + +.ui.toggle.checkbox label { + padding-top: 0.15em; +} + +/* Switch */ + +.ui.toggle.checkbox label:before { + display: block; + position: absolute; + content: ''; + z-index: 1; + transform: none; + border: none; + top: 0; + background: rgba(0, 0, 0, 0.05); + box-shadow: none; + width: 3.5rem; + height: 1.5rem; + border-radius: 500rem; +} + +/* Handle */ + +.ui.toggle.checkbox label:after { + background: #FFFFFF linear-gradient(transparent, rgba(0, 0, 0, 0.05)); + position: absolute; + content: '' !important; + opacity: 1; + z-index: 2; + border: none; + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15) inset; + width: 1.5rem; + height: 1.5rem; + top: 0; + left: 0; + border-radius: 500rem; + transition: background 0.3s ease, left 0.3s ease; +} + +.ui.toggle.checkbox input ~ label:after { + left: -0.05rem; + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15) inset; +} + +/* Focus */ + +.ui.toggle.checkbox input:focus ~ label:before { + background-color: rgba(0, 0, 0, 0.15); + border: none; +} + +/* Hover */ + +.ui.toggle.checkbox label:hover::before { + background-color: rgba(0, 0, 0, 0.15); + border: none; +} + +/* Active */ + +.ui.toggle.checkbox input:checked ~ label { + color: rgba(0, 0, 0, 0.95) !important; +} + +.ui.toggle.checkbox input:checked ~ label:before { + background-color: #2185D0 !important; +} + +.ui.toggle.checkbox input:checked ~ label:after { + left: 2.15rem; + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15) inset; +} + +/* Active Focus */ + +.ui.toggle.checkbox input:focus:checked ~ label { + color: rgba(0, 0, 0, 0.95) !important; +} + +.ui.toggle.checkbox input:focus:checked ~ label:before { + background-color: #0d71bb !important; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Fitted + ---------------*/ + +.ui.fitted.checkbox label { + padding-left: 0 !important; +} + +.ui.fitted.toggle.checkbox { + width: 3.5rem; +} + +.ui.fitted.slider.checkbox { + width: 3.5rem; +} + +/*-------------- + Inverted + ---------------*/ + +.ui.inverted.checkbox label, +.ui.inverted.checkbox + label { + color: rgba(255, 255, 255, 0.9) !important; +} + +/* Hover */ + +.ui.inverted.checkbox label:hover { + color: #ffffff !important; +} + +.ui.inverted.checkbox label:hover::before { + border-color: rgba(34, 36, 38, 0.5); +} + +/*Slider Label */ + +.ui.inverted.slider.checkbox label { + color: rgba(255, 255, 255, 0.5); +} + +/* Slider Line */ + +.ui.inverted.slider.checkbox label:before { + background-color: rgba(255, 255, 255, 0.5) !important; +} + +/* Slider Hover */ + +.ui.inverted.slider.checkbox label:hover::before { + background: rgba(255, 255, 255, 0.7) !important; +} + +/* Slider Active */ + +.ui.inverted.slider.checkbox input:checked ~ label { + color: #ffffff !important; +} + +.ui.inverted.slider.checkbox input:checked ~ label:before { + background-color: rgba(255, 255, 255, 0.8) !important; +} + +/* Slider Active Focus */ + +.ui.inverted.slider.checkbox input:focus:checked ~ label { + color: #ffffff !important; +} + +.ui.inverted.slider.checkbox input:focus:checked ~ label:before { + background-color: rgba(255, 255, 255, 0.8) !important; +} + +/* Toggle Switch */ + +.ui.inverted.toggle.checkbox label:before { + background-color: rgba(255, 255, 255, 0.9) !important; +} + +/* Toggle Hover */ + +.ui.inverted.toggle.checkbox label:hover::before { + background: #ffffff !important; +} + +/* Toggle Active */ + +.ui.inverted.toggle.checkbox input:checked ~ label { + color: #ffffff !important; +} + +.ui.inverted.toggle.checkbox input:checked ~ label:before { + background-color: #2185D0 !important; +} + +/* Toggle Active Focus */ + +.ui.inverted.toggle.checkbox input:focus:checked ~ label { + color: #ffffff !important; +} + +.ui.inverted.toggle.checkbox input:focus:checked ~ label:before { + background-color: #0d71bb !important; +} + +/*-------------------- + Size +---------------------*/ + +.ui.mini.checkbox { + font-size: 0.78571429em; +} + +.ui.tiny.checkbox { + font-size: 0.85714286em; +} + +.ui.small.checkbox { + font-size: 0.92857143em; +} + +.ui.large.checkbox { + font-size: 1.14285714em; +} + +.ui.large.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after, +.ui.large.checkbox:not(.slider):not(.toggle):not(.radio) label:after, +.ui.large.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before, +.ui.large.checkbox:not(.slider):not(.toggle):not(.radio) label:before { + transform: scale(1.14285714); + transform-origin: left; +} + +.ui.large.form .checkbox.radio label:before, +.ui.large.checkbox.radio label:before { + transform: scale(1.14285714); + transform-origin: left; +} + +.ui.large.form .checkbox.radio label:after, +.ui.large.checkbox.radio label:after { + transform: scale(0.57142857); + transform-origin: left; + left: 0.33571429em; +} + +.ui.big.checkbox { + font-size: 1.28571429em; +} + +.ui.big.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after, +.ui.big.checkbox:not(.slider):not(.toggle):not(.radio) label:after, +.ui.big.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before, +.ui.big.checkbox:not(.slider):not(.toggle):not(.radio) label:before { + transform: scale(1.28571429); + transform-origin: left; +} + +.ui.big.form .checkbox.radio label:before, +.ui.big.checkbox.radio label:before { + transform: scale(1.28571429); + transform-origin: left; +} + +.ui.big.form .checkbox.radio label:after, +.ui.big.checkbox.radio label:after { + transform: scale(0.64285714); + transform-origin: left; + left: 0.37142857em; +} + +.ui.huge.checkbox { + font-size: 1.42857143em; +} + +.ui.huge.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after, +.ui.huge.checkbox:not(.slider):not(.toggle):not(.radio) label:after, +.ui.huge.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before, +.ui.huge.checkbox:not(.slider):not(.toggle):not(.radio) label:before { + transform: scale(1.42857143); + transform-origin: left; +} + +.ui.huge.form .checkbox.radio label:before, +.ui.huge.checkbox.radio label:before { + transform: scale(1.42857143); + transform-origin: left; +} + +.ui.huge.form .checkbox.radio label:after, +.ui.huge.checkbox.radio label:after { + transform: scale(0.71428571); + transform-origin: left; + left: 0.40714286em; +} + +.ui.massive.checkbox { + font-size: 1.71428571em; +} + +.ui.massive.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after, +.ui.massive.checkbox:not(.slider):not(.toggle):not(.radio) label:after, +.ui.massive.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before, +.ui.massive.checkbox:not(.slider):not(.toggle):not(.radio) label:before { + transform: scale(1.71428571); + transform-origin: left; +} + +.ui.massive.form .checkbox.radio label:before, +.ui.massive.checkbox.radio label:before { + transform: scale(1.71428571); + transform-origin: left; +} + +.ui.massive.form .checkbox.radio label:after, +.ui.massive.checkbox.radio label:after { + transform: scale(0.85714286); + transform-origin: left; + left: 0.47857143em; +} + +/******************************* + Theme Overrides +*******************************/ + +@font-face { + font-family: 'Checkbox'; + src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBD8AAAC8AAAAYGNtYXAYVtCJAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zn4huwUAAAF4AAABYGhlYWQGPe1ZAAAC2AAAADZoaGVhB30DyAAAAxAAAAAkaG10eBBKAEUAAAM0AAAAHGxvY2EAmgESAAADUAAAABBtYXhwAAkALwAAA2AAAAAgbmFtZSC8IugAAAOAAAABknBvc3QAAwAAAAAFFAAAACAAAwMTAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADoAgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6AL//f//AAAAAAAg6AD//f//AAH/4xgEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAEUAUQO7AvgAGgAAARQHAQYjIicBJjU0PwE2MzIfAQE2MzIfARYVA7sQ/hQQFhcQ/uMQEE4QFxcQqAF2EBcXEE4QAnMWEP4UEBABHRAXFhBOEBCoAXcQEE4QFwAAAAABAAABbgMlAkkAFAAAARUUBwYjISInJj0BNDc2MyEyFxYVAyUQEBf9SRcQEBAQFwK3FxAQAhJtFxAQEBAXbRcQEBAQFwAAAAABAAAASQMlA24ALAAAARUUBwYrARUUBwYrASInJj0BIyInJj0BNDc2OwE1NDc2OwEyFxYdATMyFxYVAyUQEBfuEBAXbhYQEO4XEBAQEBfuEBAWbhcQEO4XEBACEm0XEBDuFxAQEBAX7hAQF20XEBDuFxAQEBAX7hAQFwAAAQAAAAIAAHRSzT9fDzz1AAsEAAAAAADRsdR3AAAAANGx1HcAAAAAA7sDbgAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAADuwABAAAAAAAAAAAAAAAAAAAABwQAAAAAAAAAAAAAAAIAAAAEAABFAyUAAAMlAAAAAAAAAAoAFAAeAE4AcgCwAAEAAAAHAC0AAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAIAAAAAQAAAAAAAgAHAGkAAQAAAAAAAwAIADkAAQAAAAAABAAIAH4AAQAAAAAABQALABgAAQAAAAAABgAIAFEAAQAAAAAACgAaAJYAAwABBAkAAQAQAAgAAwABBAkAAgAOAHAAAwABBAkAAwAQAEEAAwABBAkABAAQAIYAAwABBAkABQAWACMAAwABBAkABgAQAFkAAwABBAkACgA0ALBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhWZXJzaW9uIDIuMABWAGUAcgBzAGkAbwBuACAAMgAuADBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhDaGVja2JveABDAGgAZQBjAGsAYgBvAHhSZWd1bGFyAFIAZQBnAHUAbABhAHJDaGVja2JveABDAGgAZQBjAGsAYgBvAHhGb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype'); +} + +/* Checkmark */ + +.ui.checkbox label:after, +.ui.checkbox .box:after { + font-family: 'Checkbox'; +} + +/* Checked */ + +.ui.checkbox input:checked ~ .box:after, +.ui.checkbox input:checked ~ label:after { + content: '\e800'; +} + +/* Indeterminate */ + +.ui.checkbox input:indeterminate ~ .box:after, +.ui.checkbox input:indeterminate ~ label:after { + font-size: 12px; + content: '\e801'; +} + +/* UTF Reference +.check:before { content: '\e800'; } +.dash:before { content: '\e801'; } +.plus:before { content: '\e802'; } +*/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Comment + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Standard +*******************************/ + +/*-------------- + Comments +---------------*/ + +.ui.comments { + margin: 1.5em 0; + max-width: 650px; +} + +.ui.comments:first-child { + margin-top: 0; +} + +.ui.comments:last-child { + margin-bottom: 0; +} + +/*-------------- + Comment +---------------*/ + +.ui.comments .comment { + position: relative; + background: none; + margin: 0.5em 0 0; + padding: 0.5em 0 0; + border: none; + border-top: none; + line-height: 1.2; +} + +.ui.comments .comment:first-child { + margin-top: 0; + padding-top: 0; +} + +/*-------------------- + Nested Comments +---------------------*/ + +.ui.comments .comment > .comments { + margin: 0 0 0.5em 0.5em; + padding: 1em 0 1em 1em; +} + +.ui.comments .comment > .comments:before { + position: absolute; + top: 0; + left: 0; +} + +.ui.comments .comment > .comments .comment { + border: none; + border-top: none; + background: none; +} + +/*-------------- + Avatar +---------------*/ + +.ui.comments .comment .avatar { + display: block; + width: 2.5em; + height: auto; + float: left; + margin: 0.2em 0 0; +} + +.ui.comments .comment img.avatar, +.ui.comments .comment .avatar img { + display: block; + margin: 0 auto; + width: 100%; + height: 100%; + border-radius: 0.25rem; +} + +/*-------------- + Content +---------------*/ + +.ui.comments .comment > .content { + display: block; +} + +/* If there is an avatar move content over */ + +.ui.comments .comment > .avatar ~ .content { + margin-left: 3.5em; +} + +/*-------------- + Author +---------------*/ + +.ui.comments .comment .author { + font-size: 1em; + color: rgba(0, 0, 0, 0.87); + font-weight: bold; +} + +.ui.comments .comment a.author { + cursor: pointer; +} + +.ui.comments .comment a.author:hover { + color: #1e70bf; +} + +/*-------------- + Metadata +---------------*/ + +.ui.comments .comment .metadata { + display: inline-block; + margin-left: 0.5em; + color: rgba(0, 0, 0, 0.4); + font-size: 0.875em; +} + +.ui.comments .comment .metadata > * { + display: inline-block; + margin: 0 0.5em 0 0; +} + +.ui.comments .comment .metadata > :last-child { + margin-right: 0; +} + +/*-------------------- + Comment Text +---------------------*/ + +.ui.comments .comment .text { + margin: 0.25em 0 0.5em; + font-size: 1em; + word-wrap: break-word; + color: rgba(0, 0, 0, 0.87); + line-height: 1.3; +} + +/*-------------------- + User Actions +---------------------*/ + +.ui.comments .comment .actions { + font-size: 0.875em; +} + +.ui.comments .comment .actions a { + cursor: pointer; + display: inline-block; + margin: 0 0.75em 0 0; + color: rgba(0, 0, 0, 0.4); +} + +.ui.comments .comment .actions a:last-child { + margin-right: 0; +} + +.ui.comments .comment .actions a.active, +.ui.comments .comment .actions a:hover { + color: rgba(0, 0, 0, 0.8); +} + +/*-------------------- + Reply Form +---------------------*/ + +.ui.comments > .reply.form { + margin-top: 1em; +} + +.ui.comments .comment .reply.form { + width: 100%; + margin-top: 1em; +} + +.ui.comments .reply.form textarea { + font-size: 1em; + height: 12em; +} + +/******************************* + State +*******************************/ + +.ui.collapsed.comments, +.ui.comments .collapsed.comments, +.ui.comments .collapsed.comment { + display: none; +} + +/******************************* + Variations +*******************************/ + +/*-------------------- + Threaded + ---------------------*/ + +.ui.threaded.comments .comment > .comments { + margin: -1.5em 0 -1em 1.25em; + padding: 3em 0 2em 2.25em; + box-shadow: -1px 0 0 rgba(34, 36, 38, 0.15); +} + +/*-------------------- + Minimal + ---------------------*/ + +.ui.minimal.comments .comment .actions { + opacity: 0; + position: absolute; + top: 0; + right: 0; + left: auto; + transition: opacity 0.2s ease; + transition-delay: 0.1s; +} + +.ui.minimal.comments .comment > .content:hover > .actions { + opacity: 1; +} + +/*------------------- + Sizes +--------------------*/ + +.ui.comments { + font-size: 1rem; +} + +.ui.mini.comments { + font-size: 0.78571429rem; +} + +.ui.tiny.comments { + font-size: 0.85714286rem; +} + +.ui.small.comments { + font-size: 0.92857143rem; +} + +.ui.large.comments { + font-size: 1.14285714rem; +} + +.ui.big.comments { + font-size: 1.28571429rem; +} + +.ui.huge.comments { + font-size: 1.42857143rem; +} + +.ui.massive.comments { + font-size: 1.71428571rem; +} + +/*------------------- + Inverted + --------------------*/ + +.ui.inverted.comments .comment { + background-color: #1B1C1D; +} + +.ui.inverted.comments .comment .author, +.ui.inverted.comments .comment .text { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.comments .comment .metadata, +.ui.inverted.comments .comment .actions a { + color: rgba(255, 255, 255, 0.7); +} + +.ui.inverted.comments .comment a.author:hover, +.ui.inverted.comments .comment .actions a.active, +.ui.inverted.comments .comment .actions a:hover { + color: #ffffff; +} + +.ui.inverted.threaded.comments .comment > .comments { + box-shadow: -1px 0 0 #555555; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + User Variable Overrides +*******************************/ +/*! + * # Fomantic-UI - Container + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Container +*******************************/ + +/* All Sizes */ + +.ui.container { + display: block; + max-width: 100%; +} + +/* Mobile */ + +@media only screen and (max-width: 767.98px) { + .ui.ui.ui.container:not(.fluid) { + width: auto; + margin-left: 1em; + margin-right: 1em; + } + + .ui.ui.ui.grid.container { + width: auto; + } + + .ui.ui.ui.relaxed.grid.container { + width: auto; + } + + .ui.ui.ui.very.relaxed.grid.container { + width: auto; + } +} + +/* Tablet */ + +@media only screen and (min-width: 768px) and (max-width: 991.98px) { + .ui.ui.ui.container:not(.fluid) { + width: 723px; + margin-left: auto; + margin-right: auto; + } + + .ui.ui.ui.grid.container { + width: calc(723px + 2rem); + } + + .ui.ui.ui.relaxed.grid.container { + width: calc(723px + 3rem); + } + + .ui.ui.ui.very.relaxed.grid.container { + width: calc(723px + 5rem); + } +} + +/* Small Monitor */ + +@media only screen and (min-width: 992px) and (max-width: 1199.98px) { + .ui.ui.ui.container:not(.fluid) { + width: 933px; + margin-left: auto; + margin-right: auto; + } + + .ui.ui.ui.grid.container { + width: calc(933px + 2rem); + } + + .ui.ui.ui.relaxed.grid.container { + width: calc(933px + 3rem); + } + + .ui.ui.ui.very.relaxed.grid.container { + width: calc(933px + 5rem); + } +} + +/* Large Monitor */ + +@media only screen and (min-width: 1200px) { + .ui.ui.ui.container:not(.fluid) { + width: 1127px; + margin-left: auto; + margin-right: auto; + } + + .ui.ui.ui.grid.container { + width: calc(1127px + 2rem); + } + + .ui.ui.ui.relaxed.grid.container { + width: calc(1127px + 3rem); + } + + .ui.ui.ui.very.relaxed.grid.container { + width: calc(1127px + 5rem); + } +} + +/******************************* + Types +*******************************/ + +/* Text Container */ + +.ui.text.container { + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + max-width: 700px; + line-height: 1.5; + font-size: 1.14285714rem; +} + +/* Fluid */ + +.ui.fluid.container { + width: 100%; +} + +/******************************* + Variations +*******************************/ + +.ui[class*="left aligned"].container { + text-align: left; +} + +.ui[class*="center aligned"].container { + text-align: center; +} + +.ui[class*="right aligned"].container { + text-align: right; +} + +.ui.justified.container { + text-align: justify; + -webkit-hyphens: auto; + hyphens: auto; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Dimmer + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Dimmer +*******************************/ + +.dimmable:not(body) { + position: relative; +} + +.ui.dimmer { + display: none; + position: absolute; + top: 0 !important; + left: 0 !important; + width: 100%; + height: 100%; + text-align: center; + vertical-align: middle; + padding: 1em; + background: rgba(0, 0, 0, 0.85); + opacity: 0; + line-height: 1; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; + transition: background-color 0.5s linear; + flex-direction: column; + align-items: center; + justify-content: center; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + will-change: opacity; + z-index: 1000; +} + +/* Dimmer Content */ + +.ui.dimmer > .content { + -webkit-user-select: text; + -moz-user-select: text; + user-select: text; + color: #FFFFFF; +} + +/* Loose Coupling */ + +.ui.segment > .ui.dimmer:not(.page) { + border-radius: inherit; +} + +/* Scrollbars */ + +.ui.dimmer:not(.inverted)::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0.1); +} + +.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.25); +} + +.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:window-inactive { + background: rgba(255, 255, 255, 0.15); +} + +.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:hover { + background: rgba(255, 255, 255, 0.35); +} + +/******************************* + States +*******************************/ + +/* Animating */ + +.animating.dimmable:not(body), +.dimmed.dimmable:not(body) { + overflow: hidden; +} + +/* Animating / Active / Visible */ + +.dimmed.dimmable > .ui.animating.dimmer, +.dimmed.dimmable > .ui.visible.dimmer, +.ui.active.dimmer { + display: flex; + opacity: 1; +} + +/* Disabled */ + +.ui.disabled.dimmer { + width: 0 !important; + height: 0 !important; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Legacy + ---------------*/ + +/* Animating / Active / Visible */ + +.dimmed.dimmable > .ui.animating.legacy.dimmer, +.dimmed.dimmable > .ui.visible.legacy.dimmer, +.ui.active.legacy.dimmer { + display: block; +} + +/*-------------- + Alignment + ---------------*/ + +.ui[class*="top aligned"].dimmer { + justify-content: flex-start; +} + +.ui[class*="bottom aligned"].dimmer { + justify-content: flex-end; +} + +/*-------------- + Page + ---------------*/ + +.ui.page.dimmer { + position: fixed; + transform-style: ''; + perspective: 2000px; + transform-origin: center center; +} + +.ui.page.dimmer.modals { + -moz-perspective: none; +} + +body.animating.in.dimmable, +body.dimmed.dimmable { + overflow: hidden; +} + +body.dimmable > .dimmer { + position: fixed; +} + +/*-------------- + Blurring + ---------------*/ + +.blurring.dimmable > :not(.dimmer) { + filter: initial; + transition: 800ms filter ease; +} + +.blurring.dimmed.dimmable > :not(.dimmer):not(.popup) { + filter: blur(5px) grayscale(0.7); +} + +/* Dimmer Color */ + +.blurring.dimmable > .dimmer { + background: rgba(0, 0, 0, 0.6); +} + +.blurring.dimmable > .inverted.dimmer { + background: rgba(255, 255, 255, 0.6); +} + +/*-------------- + Aligned + ---------------*/ + +.ui.dimmer > .top.aligned.content > * { + vertical-align: top; +} + +.ui.dimmer > .bottom.aligned.content > * { + vertical-align: bottom; +} + +/*-------------- + Shades + ---------------*/ + +.medium.medium.medium.medium.medium.dimmer { + background: rgba(0, 0, 0, 0.65); +} + +.light.light.light.light.light.dimmer { + background: rgba(0, 0, 0, 0.45); +} + +.very.light.light.light.light.dimmer { + background: rgba(0, 0, 0, 0.25); +} + +/*-------------- + Inverted + ---------------*/ + +.ui.inverted.dimmer { + background: rgba(255, 255, 255, 0.85); +} + +.ui.inverted.dimmer > .content, +.ui.inverted.dimmer > .content > * { + color: #000000; +} + +/*-------------- + Inverted Shades + ---------------*/ + +.medium.medium.medium.medium.medium.inverted.dimmer { + background: rgba(255, 255, 255, 0.65); +} + +.light.light.light.light.light.inverted.dimmer { + background: rgba(255, 255, 255, 0.45); +} + +.very.light.light.light.light.inverted.dimmer { + background: rgba(255, 255, 255, 0.25); +} + +/*-------------- + Simple + ---------------*/ + +/* Displays without javascript */ + +.ui.simple.dimmer { + display: block; + overflow: hidden; + opacity: 0; + width: 0; + height: 0; + z-index: -100; + background: rgba(0, 0, 0, 0); +} + +.dimmed.dimmable > .ui.simple.dimmer { + overflow: visible; + opacity: 1; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.85); + z-index: 1; +} + +.ui.simple.inverted.dimmer { + background: rgba(255, 255, 255, 0); +} + +.dimmed.dimmable > .ui.simple.inverted.dimmer { + background: rgba(255, 255, 255, 0.85); +} + +/*-------------- + Partially + ----------------*/ + +.ui[class*="top dimmer"], +.ui[class*="center dimmer"], +.ui[class*="bottom dimmer"] { + height: auto; +} + +.ui[class*="bottom dimmer"] { + top: auto !important; + bottom: 0; +} + +.ui[class*="center dimmer"] { + top: 50% !important; + transform: translateY(-50%); + -webkit-transform: translateY(calc(-50% - 0.5px)); +} + +.ui.segment > .ui.ui[class*="top dimmer"] { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.ui.segment > .ui.ui[class*="center dimmer"] { + border-radius: 0; +} + +.ui.segment > .ui.ui[class*="bottom dimmer"] { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.ui[class*="center dimmer"].transition[class*="fade up"].in { + -webkit-animation-name: fadeInUpCenter; + animation-name: fadeInUpCenter; +} + +.ui[class*="center dimmer"].transition[class*="fade down"].in { + -webkit-animation-name: fadeInDownCenter; + animation-name: fadeInDownCenter; +} + +.ui[class*="center dimmer"].transition[class*="fade up"].out { + -webkit-animation-name: fadeOutUpCenter; + animation-name: fadeOutUpCenter; +} + +.ui[class*="center dimmer"].transition[class*="fade down"].out { + -webkit-animation-name: fadeOutDownCenter; + animation-name: fadeOutDownCenter; +} + +.ui[class*="center dimmer"].bounce.transition { + -webkit-animation-name: bounceCenter; + animation-name: bounceCenter; +} + +@-webkit-keyframes fadeInUpCenter { + 0% { + opacity: 0; + transform: translateY(-40%); + -webkit-transform: translateY(calc(-40% - 0.5px)); + } + + 100% { + opacity: 1; + transform: translateY(-50%); + -webkit-transform: translateY(calc(-50% - 0.5px)); + } +} + +@keyframes fadeInUpCenter { + 0% { + opacity: 0; + transform: translateY(-40%); + -webkit-transform: translateY(calc(-40% - 0.5px)); + } + + 100% { + opacity: 1; + transform: translateY(-50%); + -webkit-transform: translateY(calc(-50% - 0.5px)); + } +} + +@-webkit-keyframes fadeInDownCenter { + 0% { + opacity: 0; + transform: translateY(-60%); + -webkit-transform: translateY(calc(-60% - 0.5px)); + } + + 100% { + opacity: 1; + transform: translateY(-50%); + -webkit-transform: translateY(calc(-50% - 0.5px)); + } +} + +@keyframes fadeInDownCenter { + 0% { + opacity: 0; + transform: translateY(-60%); + -webkit-transform: translateY(calc(-60% - 0.5px)); + } + + 100% { + opacity: 1; + transform: translateY(-50%); + -webkit-transform: translateY(calc(-50% - 0.5px)); + } +} + +@-webkit-keyframes fadeOutUpCenter { + 0% { + opacity: 1; + transform: translateY(-50%); + -webkit-transform: translateY(calc(-50% - 0.5px)); + } + + 100% { + opacity: 0; + transform: translateY(-45%); + -webkit-transform: translateY(calc(-45% - 0.5px)); + } +} + +@keyframes fadeOutUpCenter { + 0% { + opacity: 1; + transform: translateY(-50%); + -webkit-transform: translateY(calc(-50% - 0.5px)); + } + + 100% { + opacity: 0; + transform: translateY(-45%); + -webkit-transform: translateY(calc(-45% - 0.5px)); + } +} + +@-webkit-keyframes fadeOutDownCenter { + 0% { + opacity: 1; + transform: translateY(-50%); + -webkit-transform: translateY(calc(-50% - 0.5px)); + } + + 100% { + opacity: 0; + transform: translateY(-55%); + -webkit-transform: translateY(calc(-55% - 0.5px)); + } +} + +@keyframes fadeOutDownCenter { + 0% { + opacity: 1; + transform: translateY(-50%); + -webkit-transform: translateY(calc(-50% - 0.5px)); + } + + 100% { + opacity: 0; + transform: translateY(-55%); + -webkit-transform: translateY(calc(-55% - 0.5px)); + } +} + +@-webkit-keyframes bounceCenter { + 0%, 20%, 50%, 80%, 100% { + transform: translateY(-50%); + -webkit-transform: translateY(calc(-50% - 0.5px)); + } + + 40% { + transform: translateY(calc(-50% - 30px)); + } + + 60% { + transform: translateY(calc(-50% - 15px)); + } +} + +@keyframes bounceCenter { + 0%, 20%, 50%, 80%, 100% { + transform: translateY(-50%); + -webkit-transform: translateY(calc(-50% - 0.5px)); + } + + 40% { + transform: translateY(calc(-50% - 30px)); + } + + 60% { + transform: translateY(calc(-50% - 15px)); + } +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + User Overrides +*******************************/ +/*! + * # Fomantic-UI - Divider + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Divider +*******************************/ + +.ui.divider { + margin: 1rem 0; + line-height: 1; + height: 0; + font-weight: bold; + text-transform: uppercase; + letter-spacing: 0.05em; + color: rgba(0, 0, 0, 0.85); + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +/*-------------- + Basic +---------------*/ + +.ui.divider:not(.vertical):not(.horizontal) { + border-top: 1px solid rgba(34, 36, 38, 0.15); + border-bottom: 1px solid rgba(255, 255, 255, 0.1); +} + +/*-------------- + Coupling +---------------*/ + +/* Allow divider between each column row */ + +.ui.grid > .column + .divider, +.ui.grid > .row > .column + .divider { + left: auto; +} + +/*-------------- + Horizontal + ---------------*/ + +.ui.horizontal.divider { + display: table; + white-space: nowrap; + height: auto; + margin: ''; + line-height: 1; + text-align: center; +} + +.ui.horizontal.divider:before, +.ui.horizontal.divider:after { + content: ''; + display: table-cell; + position: relative; + top: 50%; + width: 50%; + background-repeat: no-repeat; +} + +.ui.horizontal.divider:before { + background-position: right 1em top 50%; +} + +.ui.horizontal.divider:after { + background-position: left 1em top 50%; +} + +/*-------------- + Vertical + ---------------*/ + +.ui.vertical.divider { + position: absolute; + z-index: 2; + top: 50%; + left: 50%; + margin: 0; + padding: 0; + width: auto; + height: 50%; + line-height: 0; + text-align: center; + transform: translateX(-50%); +} + +.ui.vertical.divider:before, +.ui.vertical.divider:after { + position: absolute; + left: 50%; + content: ''; + z-index: 3; + border-left: 1px solid rgba(34, 36, 38, 0.15); + border-right: 1px solid rgba(255, 255, 255, 0.1); + width: 0; + height: calc(100% - 1rem); +} + +.ui.vertical.divider:before { + top: -100%; +} + +.ui.vertical.divider:after { + top: auto; + bottom: 0; +} + +/* Inside grid */ + +@media only screen and (max-width: 767.98px) { + .ui.stackable.grid .ui.vertical.divider, + .ui.grid .stackable.row .ui.vertical.divider { + display: table; + white-space: nowrap; + height: auto; + margin: ''; + overflow: hidden; + line-height: 1; + text-align: center; + position: static; + top: 0; + left: 0; + transform: none; + } + + .ui.stackable.grid .ui.vertical.divider:before, + .ui.grid .stackable.row .ui.vertical.divider:before, + .ui.stackable.grid .ui.vertical.divider:after, + .ui.grid .stackable.row .ui.vertical.divider:after { + left: 0; + border-left: none; + border-right: none; + content: ''; + display: table-cell; + position: relative; + top: 50%; + width: 50%; + background-repeat: no-repeat; + } + + .ui.stackable.grid .ui.vertical.divider:before, + .ui.grid .stackable.row .ui.vertical.divider:before { + background-position: right 1em top 50%; + } + + .ui.stackable.grid .ui.vertical.divider:after, + .ui.grid .stackable.row .ui.vertical.divider:after { + background-position: left 1em top 50%; + } +} + +/*-------------- + Icon + ---------------*/ + +.ui.divider > .icon { + margin: 0; + font-size: 1rem; + height: 1em; + vertical-align: middle; +} + +/*-------------- + Header + ---------------*/ + +.ui.horizontal.divider[class*="left aligned"]:before { + display: none; +} + +.ui.horizontal.divider[class*="left aligned"]:after { + width: 100%; +} + +.ui.horizontal.divider[class*="right aligned"]:before { + width: 100%; +} + +.ui.horizontal.divider[class*="right aligned"]:after { + display: none; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Hidden + ---------------*/ + +.ui.hidden.divider { + border-color: transparent !important; +} + +.ui.hidden.divider:before, +.ui.hidden.divider:after { + display: none; +} + +/*-------------- + Inverted +---------------*/ + +.ui.divider.inverted, +.ui.vertical.inverted.divider, +.ui.horizontal.inverted.divider { + color: #FFFFFF; +} + +.ui.divider.inverted, +.ui.divider.inverted:after, +.ui.divider.inverted:before { + border-top-color: rgba(34, 36, 38, 0.15) !important; + border-left-color: rgba(34, 36, 38, 0.15) !important; + border-bottom-color: rgba(255, 255, 255, 0.15) !important; + border-right-color: rgba(255, 255, 255, 0.15) !important; +} + +/*-------------- + Fitted +---------------*/ + +.ui.fitted.divider { + margin: 0; +} + +/*-------------- + Clearing + ---------------*/ + +.ui.clearing.divider { + clear: both; +} + +/*-------------- + Section + ---------------*/ + +.ui.section.divider { + margin-top: 2rem; + margin-bottom: 2rem; +} + +/*-------------- + Sizes +---------------*/ + +.ui.divider { + font-size: 1rem; +} + +.ui.mini.divider { + font-size: 0.78571429rem; +} + +.ui.tiny.divider { + font-size: 0.85714286rem; +} + +.ui.small.divider { + font-size: 0.92857143rem; +} + +.ui.large.divider { + font-size: 1.14285714rem; +} + +.ui.big.divider { + font-size: 1.28571429rem; +} + +.ui.huge.divider { + font-size: 1.42857143rem; +} + +.ui.massive.divider { + font-size: 1.71428571rem; +} + +/******************************* + Theme Overrides +*******************************/ + +.ui.horizontal.divider:before, +.ui.horizontal.divider:after { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC'); +} + +@media only screen and (max-width: 767px) { + .ui.stackable.grid .ui.vertical.divider:before, + .ui.grid .stackable.row .ui.vertical.divider:before, + .ui.stackable.grid .ui.vertical.divider:after, + .ui.grid .stackable.row .ui.vertical.divider:after { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC'); + } +} + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Dropdown + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Dropdown +*******************************/ + +.ui.dropdown { + cursor: pointer; + position: relative; + display: inline-block; + outline: none; + text-align: left; + transition: box-shadow 0.1s ease, width 0.1s ease; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +/******************************* + Content +*******************************/ + +/*-------------- + Menu +---------------*/ + +.ui.dropdown .menu { + cursor: auto; + position: absolute; + display: none; + outline: none; + top: 100%; + min-width: -webkit-max-content; + min-width: -moz-max-content; + min-width: max-content; + margin: 0; + padding: 0 0; + background: #FFFFFF; + font-size: 1em; + text-shadow: none; + text-align: left; + box-shadow: 0 2px 3px 0 rgba(34, 36, 38, 0.15); + border: 1px solid rgba(34, 36, 38, 0.15); + border-radius: 0.28571429rem; + transition: opacity 0.1s ease; + z-index: 11; + will-change: transform, opacity; +} + +.ui.dropdown .menu > * { + white-space: nowrap; +} + +/*-------------- + Hidden Input +---------------*/ + +.ui.dropdown > input:not(.search):first-child, +.ui.dropdown > select { + display: none !important; +} + +/*-------------- + Dropdown Icon +---------------*/ + +.ui.dropdown:not(.labeled) > .dropdown.icon { + position: relative; + width: auto; + font-size: 0.85714286em; + margin: 0 0 0 1em; +} + +.ui.dropdown .menu > .item .dropdown.icon { + width: auto; + float: right; + margin: 0em 0 0 1em; +} + +.ui.dropdown .menu > .item .dropdown.icon + .text { + margin-right: 1em; +} + +/*-------------- + Text +---------------*/ + +.ui.dropdown > .text { + display: inline-block; + transition: none; +} + +/*-------------- + Menu Item +---------------*/ + +.ui.dropdown .menu > .item { + position: relative; + cursor: pointer; + display: block; + border: none; + height: auto; + min-height: 2.57142857rem; + text-align: left; + border-top: none; + line-height: 1em; + font-size: 1rem; + color: rgba(0, 0, 0, 0.87); + padding: 0.78571429rem 1.14285714rem !important; + text-transform: none; + font-weight: normal; + box-shadow: none; + -webkit-touch-callout: none; +} + +.ui.dropdown .menu > .item:first-child { + border-top-width: 0; +} + +.ui.dropdown .menu > .item.vertical { + display: flex; + flex-direction: column-reverse; +} + +/*-------------- + Floated Content +---------------*/ + +.ui.dropdown > .text > [class*="right floated"], +.ui.dropdown .menu .item > [class*="right floated"] { + float: right !important; + margin-right: 0 !important; + margin-left: 1em !important; +} + +.ui.dropdown > .text > [class*="left floated"], +.ui.dropdown .menu .item > [class*="left floated"] { + float: left !important; + margin-left: 0 !important; + margin-right: 1em !important; +} + +.ui.dropdown .menu .item > i.icon.floated, +.ui.dropdown .menu .item > .flag.floated, +.ui.dropdown .menu .item > .image.floated, +.ui.dropdown .menu .item > img.floated { + margin-top: 0em; +} + +/*-------------- + Menu Divider +---------------*/ + +.ui.dropdown .menu > .header { + margin: 1rem 0 0.75rem; + padding: 0 1.14285714rem; + font-weight: bold; + text-transform: uppercase; +} + +.ui.dropdown .menu > .header:not(.ui) { + color: rgba(0, 0, 0, 0.85); + font-size: 0.78571429em; +} + +.ui.dropdown .menu > .divider { + border-top: 1px solid rgba(34, 36, 38, 0.1); + height: 0; + margin: 0.5em 0; +} + +.ui.dropdown .menu > .horizontal.divider { + border-top: none; +} + +.ui.dropdown.dropdown .menu > .input { + width: auto; + display: flex; + margin: 1.14285714rem 0.78571429rem; + min-width: 10rem; +} + +.ui.dropdown .menu > .header + .input { + margin-top: 0; +} + +.ui.dropdown .menu > .input:not(.transparent) input { + padding: 0.5em 1em; +} + +.ui.dropdown .menu > .input:not(.transparent) .button, +.ui.dropdown .menu > .input:not(.transparent) i.icon, +.ui.dropdown .menu > .input:not(.transparent) .label { + padding-top: 0.5em; + padding-bottom: 0.5em; +} + +/*----------------- + Item Description +-------------------*/ + +.ui.dropdown > .text > .description, +.ui.dropdown .menu > .item > .description { + float: right; + margin: 0 0 0 1em; + color: rgba(0, 0, 0, 0.4); +} + +.ui.dropdown .menu > .item.vertical > .description { + margin: 0; +} + +/*----------------- + Item Text +-------------------*/ + +.ui.dropdown .menu > .item.vertical > .text { + margin-bottom: 0.25em; +} + +/*----------------- + Message +-------------------*/ + +.ui.dropdown .menu > .message { + padding: 0.78571429rem 1.14285714rem; + font-weight: normal; +} + +.ui.dropdown .menu > .message:not(.ui) { + color: rgba(0, 0, 0, 0.4); +} + +/*-------------- + Sub Menu +---------------*/ + +.ui.dropdown .menu .menu { + top: 0; + left: 100%; + right: auto; + margin: 0 -0.5em !important; + border-radius: 0.28571429rem !important; + z-index: 21 !important; +} + +/* Hide Arrow */ + +.ui.dropdown .menu .menu:after { + display: none; +} + +/*-------------- + Sub Elements +---------------*/ + +/* Icons / Flags / Labels / Image */ + +.ui.dropdown > .text > i.icon, +.ui.dropdown > .text > .label, +.ui.dropdown > .text > .flag, +.ui.dropdown > .text > img, +.ui.dropdown > .text > .image { + margin-top: 0em; +} + +.ui.dropdown .menu > .item > i.icon, +.ui.dropdown .menu > .item > .label, +.ui.dropdown .menu > .item > .flag, +.ui.dropdown .menu > .item > .image, +.ui.dropdown .menu > .item > img { + margin-top: 0em; +} + +.ui.dropdown > .text > i.icon, +.ui.dropdown > .text > .label, +.ui.dropdown > .text > .flag, +.ui.dropdown > .text > img, +.ui.dropdown > .text > .image, +.ui.dropdown .menu > .item > i.icon, +.ui.dropdown .menu > .item > .label, +.ui.dropdown .menu > .item > .flag, +.ui.dropdown .menu > .item > .image, +.ui.dropdown .menu > .item > img { + margin-left: 0; + float: none; + margin-right: 0.78571429rem; +} + +/*-------------- + Image +---------------*/ + +.ui.dropdown > .text > img, +.ui.dropdown > .text > .image:not(.icon), +.ui.dropdown .menu > .item > .image:not(.icon), +.ui.dropdown .menu > .item > img { + display: inline-block; + vertical-align: top; + width: auto; + margin-top: -0.5em; + margin-bottom: -0.5em; + max-height: 2em; +} + +/******************************* + Coupling +*******************************/ + +/*-------------- + Menu +---------------*/ + +/* Remove Menu Item Divider */ + +.ui.dropdown .ui.menu > .item:before, +.ui.menu .ui.dropdown .menu > .item:before { + display: none; +} + +/* Prevent Menu Item Border */ + +.ui.menu .ui.dropdown .menu .active.item { + border-left: none; +} + +/* Automatically float dropdown menu right on last menu item */ + +.ui.menu .right.menu .dropdown:last-child > .menu:not(.left), +.ui.menu .right.dropdown.item > .menu:not(.left), +.ui.buttons > .ui.dropdown:last-child > .menu:not(.left) { + left: auto; + right: 0; +} + +/*-------------- + Label + ---------------*/ + +/* Dropdown Menu */ + +.ui.label.dropdown .menu { + min-width: 100%; +} + +/*-------------- + Button + ---------------*/ + +/* No Margin On Icon Button */ + +.ui.dropdown.icon.button > .dropdown.icon { + margin: 0; +} + +.ui.button.dropdown .menu { + min-width: 100%; +} + +/******************************* + Types +*******************************/ + +select.ui.dropdown { + height: 38px; + padding: 0.5em; + border: 1px solid rgba(34, 36, 38, 0.15); + visibility: visible; +} + +/*-------------- + Selection + ---------------*/ + +/* Displays like a select box */ + +.ui.selection.dropdown { + cursor: pointer; + word-wrap: break-word; + line-height: 1em; + white-space: normal; + outline: 0; + transform: rotateZ(0deg); + min-width: 14em; + min-height: 2.71428571em; + background: #FFFFFF; + display: inline-block; + padding: 0.78571429em 3.2em 0.78571429em 1em; + color: rgba(0, 0, 0, 0.87); + box-shadow: none; + border: 1px solid rgba(34, 36, 38, 0.15); + border-radius: 0.28571429rem; + transition: box-shadow 0.1s ease, width 0.1s ease; +} + +.ui.selection.dropdown.visible, +.ui.selection.dropdown.active { + z-index: 10; +} + +.ui.selection.dropdown > .search.icon, +.ui.selection.dropdown > .delete.icon, +.ui.selection.dropdown > .dropdown.icon { + cursor: pointer; + position: absolute; + width: auto; + height: auto; + line-height: 1.21428571em; + top: 0.78571429em; + right: 1em; + z-index: 3; + margin: -0.78571429em; + padding: 0.91666667em; + opacity: 0.8; + transition: opacity 0.1s ease; +} + +/* Compact */ + +.ui.compact.selection.dropdown { + min-width: 0; +} + +/* Selection Menu */ + +.ui.selection.dropdown .menu { + overflow-x: hidden; + overflow-y: auto; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-overflow-scrolling: touch; + border-top-width: 0 !important; + width: auto; + outline: none; + margin: 0 -1px; + min-width: calc(100% + 2px); + width: calc(100% + 2px); + border-radius: 0 0 0.28571429rem 0.28571429rem; + box-shadow: 0 2px 3px 0 rgba(34, 36, 38, 0.15); + transition: opacity 0.1s ease; +} + +.ui.selection.dropdown .menu:after, +.ui.selection.dropdown .menu:before { + display: none; +} + +/*-------------- + Message + ---------------*/ + +.ui.selection.dropdown .menu > .message { + padding: 0.78571429rem 1.14285714rem; +} + +@media only screen and (max-width: 767.98px) { + .ui.selection.dropdown.short .menu { + max-height: 6.01071429rem; + } + + .ui.selection.dropdown[class*="very short"] .menu { + max-height: 4.00714286rem; + } + + .ui.selection.dropdown .menu { + max-height: 8.01428571rem; + } + + .ui.selection.dropdown.long .menu { + max-height: 16.02857143rem; + } + + .ui.selection.dropdown[class*="very long"] .menu { + max-height: 24.04285714rem; + } +} + +@media only screen and (min-width: 768px) { + .ui.selection.dropdown.short .menu { + max-height: 8.01428571rem; + } + + .ui.selection.dropdown[class*="very short"] .menu { + max-height: 5.34285714rem; + } + + .ui.selection.dropdown .menu { + max-height: 10.68571429rem; + } + + .ui.selection.dropdown.long .menu { + max-height: 21.37142857rem; + } + + .ui.selection.dropdown[class*="very long"] .menu { + max-height: 32.05714286rem; + } +} + +@media only screen and (min-width: 992px) { + .ui.selection.dropdown.short .menu { + max-height: 12.02142857rem; + } + + .ui.selection.dropdown[class*="very short"] .menu { + max-height: 8.01428571rem; + } + + .ui.selection.dropdown .menu { + max-height: 16.02857143rem; + } + + .ui.selection.dropdown.long .menu { + max-height: 32.05714286rem; + } + + .ui.selection.dropdown[class*="very long"] .menu { + max-height: 48.08571429rem; + } +} + +@media only screen and (min-width: 1920px) { + .ui.selection.dropdown.short .menu { + max-height: 16.02857143rem; + } + + .ui.selection.dropdown[class*="very short"] .menu { + max-height: 10.68571429rem; + } + + .ui.selection.dropdown .menu { + max-height: 21.37142857rem; + } + + .ui.selection.dropdown.long .menu { + max-height: 42.74285714rem; + } + + .ui.selection.dropdown[class*="very long"] .menu { + max-height: 64.11428571rem; + } +} + +/* Menu Item */ + +.ui.selection.dropdown .menu > .item { + border-top: 1px solid #FAFAFA; + padding: 0.78571429rem 1.14285714rem !important; + white-space: normal; + word-wrap: normal; +} + +/* User Item */ + +.ui.selection.dropdown .menu > .hidden.addition.item { + display: none; +} + +/* Hover */ + +.ui.selection.dropdown:hover { + border-color: rgba(34, 36, 38, 0.35); + box-shadow: none; +} + +/* Active */ + +.ui.selection.active.dropdown { + border-color: #96C8DA; + box-shadow: 0 2px 3px 0 rgba(34, 36, 38, 0.15); +} + +.ui.selection.active.dropdown .menu { + border-color: #96C8DA; + box-shadow: 0 2px 3px 0 rgba(34, 36, 38, 0.15); +} + +/* Focus */ + +.ui.selection.dropdown:focus { + border-color: #96C8DA; + box-shadow: none; +} + +.ui.selection.dropdown:focus .menu { + border-color: #96C8DA; + box-shadow: 0 2px 3px 0 rgba(34, 36, 38, 0.15); +} + +/* Visible */ + +.ui.selection.visible.dropdown > .text:not(.default) { + font-weight: normal; + color: rgba(0, 0, 0, 0.8); +} + +/* Visible Hover */ + +.ui.selection.active.dropdown:hover { + border-color: #96C8DA; + box-shadow: 0 2px 3px 0 rgba(34, 36, 38, 0.15); +} + +.ui.selection.active.dropdown:hover .menu { + border-color: #96C8DA; + box-shadow: 0 2px 3px 0 rgba(34, 36, 38, 0.15); +} + +/* Dropdown Icon */ + +.ui.active.selection.dropdown > .dropdown.icon, +.ui.visible.selection.dropdown > .dropdown.icon { + opacity: ''; + z-index: 3; +} + +/* Connecting Border */ + +.ui.active.selection.dropdown { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +/* Empty Connecting Border */ + +.ui.active.empty.selection.dropdown { + border-radius: 0.28571429rem !important; + box-shadow: none !important; +} + +.ui.active.empty.selection.dropdown .menu { + border: none !important; + box-shadow: none !important; +} + +/* CSS specific to iOS devices or firefox mobile only */ + +@supports (-webkit-touch-callout: none) or (-webkit-overflow-scrolling: touch) or (-moz-appearance:none) { +@media (-moz-touch-enabled), (pointer: coarse) { + .ui.dropdown .scrollhint.menu:not(.hidden):before { + -webkit-animation: scrollhint 2s ease 2; + animation: scrollhint 2s ease 2; + content: ''; + z-index: 15; + display: block; + position: absolute; + opacity: 0; + right: 0.25em; + top: 0; + height: 100%; + border-right: 0.25em solid; + border-left: 0; + -o-border-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0)) 1 100%; + border-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0)) 1 100%; + } + + .ui.inverted.dropdown .scrollhint.menu:not(.hidden):before { + -o-border-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0)) 1 100%; + border-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0)) 1 100%; + } + +@-webkit-keyframes scrollhint { + 0% { + opacity: 1; + top: 100%; + } + + 100% { + opacity: 0; + top: 0; + } +} + +@keyframes scrollhint { + 0% { + opacity: 1; + top: 100%; + } + + 100% { + opacity: 0; + top: 0; + } +} +} +} + +/*-------------- + Searchable + ---------------*/ + +/* Search Selection */ + +.ui.search.dropdown { + min-width: ''; +} + +/* Search Dropdown */ + +.ui.search.dropdown > input.search { + background: none transparent !important; + border: none !important; + box-shadow: none !important; + cursor: text; + top: 0; + left: 1px; + width: 100%; + outline: none; + -webkit-tap-highlight-color: rgba(255, 255, 255, 0); + padding: inherit; +} + +/* Text Layering */ + +.ui.search.dropdown > input.search { + position: absolute; + z-index: 2; +} + +.ui.search.dropdown > .text { + cursor: text; + position: relative; + left: 1px; + z-index: auto; +} + +/* Search Selection */ + +.ui.search.selection.dropdown > input.search { + line-height: 1.21428571em; + padding: 0.67857143em 3.2em 0.67857143em 1em; +} + +/* Used to size multi select input to character width */ + +.ui.search.selection.dropdown > span.sizer { + line-height: 1.21428571em; + padding: 0.67857143em 3.2em 0.67857143em 1em; + display: none; + white-space: pre; +} + +/* Active/Visible Search */ + +.ui.search.dropdown.active > input.search, +.ui.search.dropdown.visible > input.search { + cursor: auto; +} + +.ui.search.dropdown.active > .text, +.ui.search.dropdown.visible > .text { + pointer-events: none; +} + +/* Filtered Text */ + +.ui.active.search.dropdown input.search:focus + .text i.icon, +.ui.active.search.dropdown input.search:focus + .text .flag { + opacity: 0.45; +} + +.ui.active.search.dropdown input.search:focus + .text { + color: rgba(115, 115, 115, 0.87) !important; +} + +.ui.search.dropdown.button > span.sizer { + display: none; +} + +/* Search Menu */ + +.ui.search.dropdown .menu { + overflow-x: hidden; + overflow-y: auto; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-overflow-scrolling: touch; +} + +@media only screen and (max-width: 767.98px) { + .ui.search.dropdown .menu { + max-height: 8.01428571rem; + } +} + +@media only screen and (min-width: 768px) { + .ui.search.dropdown .menu { + max-height: 10.68571429rem; + } +} + +@media only screen and (min-width: 992px) { + .ui.search.dropdown .menu { + max-height: 16.02857143rem; + } +} + +@media only screen and (min-width: 1920px) { + .ui.search.dropdown .menu { + max-height: 21.37142857rem; + } +} + +/* Clearable Selection */ + +.ui.dropdown > .remove.icon { + cursor: pointer; + font-size: 0.85714286em; + margin: -0.78571429em; + padding: 0.91666667em; + right: 3em; + top: 0.78571429em; + position: absolute; + opacity: 0.6; + z-index: 3; +} + +.ui.clearable.dropdown .text, +.ui.clearable.dropdown a:last-of-type { + margin-right: 1.5em; +} + +.ui.dropdown select.noselection ~ .remove.icon, +.ui.dropdown input[value=''] ~ .remove.icon, +.ui.dropdown input:not([value]) ~ .remove.icon, +.ui.dropdown.loading > .remove.icon { + display: none; +} + +/*-------------- + Multiple + ---------------*/ + +/* Multiple Selection */ + +.ui.ui.multiple.dropdown { + padding: 0.22619048em 3.2em 0.22619048em 0.35714286em; +} + +.ui.multiple.dropdown .menu { + cursor: auto; +} + +/* Selection Label */ + +.ui.multiple.dropdown > .label { + display: inline-block; + white-space: normal; + font-size: 1em; + padding: 0.35714286em 0.78571429em; + margin: 0.14285714rem 0.28571429rem 0.14285714rem 0; + box-shadow: 0 0 0 1px rgba(34, 36, 38, 0.15) inset; +} + +/* Dropdown Icon */ + +.ui.multiple.dropdown .dropdown.icon { + margin: ''; + padding: ''; +} + +/* Text */ + +.ui.multiple.dropdown > .text { + position: static; + padding: 0; + max-width: 100%; + margin: 0.45238095em 0 0.45238095em 0.64285714em; + line-height: 1.21428571em; +} + +.ui.multiple.dropdown > .text.default { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.ui.multiple.dropdown > .label ~ input.search { + margin-left: 0.14285714em !important; +} + +.ui.multiple.dropdown > .label ~ .text { + display: none; +} + +.ui.multiple.dropdown > .label:not(.image) > img:not(.centered) { + margin-right: 0.78571429rem; +} + +.ui.multiple.dropdown > .label:not(.image) > img.ui:not(.avatar) { + margin-bottom: 0.39285714rem; +} + +.ui.multiple.dropdown > .image.label img { + margin: -0.35714286em 0.78571429em -0.35714286em -0.78571429em; + height: 1.71428571em; +} + +/*----------------- + Multiple Search + -----------------*/ + +/* Multiple Search Selection */ + +.ui.multiple.search.dropdown, +.ui.multiple.search.dropdown > input.search { + cursor: text; +} + +/* Prompt Text */ + +.ui.multiple.search.dropdown > .text { + display: inline-block; + position: absolute; + top: 0; + left: 0; + padding: inherit; + margin: 0.45238095em 0 0.45238095em 0.64285714em; + line-height: 1.21428571em; +} + +.ui.multiple.search.dropdown > .label ~ .text { + display: none; +} + +/* Search */ + +.ui.multiple.search.dropdown > input.search { + position: static; + padding: 0; + max-width: 100%; + margin: 0.45238095em 0 0.45238095em 0.64285714em; + width: 2.2em; + line-height: 1.21428571em; +} + +.ui.multiple.search.dropdown.button { + min-width: 14em; +} + +/*-------------- + Inline + ---------------*/ + +.ui.inline.dropdown { + cursor: pointer; + display: inline-block; + color: inherit; +} + +.ui.inline.dropdown .dropdown.icon { + margin: 0 0.21428571em 0 0.21428571em; + vertical-align: baseline; +} + +.ui.inline.dropdown > .text { + font-weight: bold; +} + +.ui.inline.dropdown .menu { + cursor: auto; + margin-top: 0.21428571em; + border-radius: 0.28571429rem; +} + +/******************************* + States +*******************************/ + +/*-------------------- + Active +----------------------*/ + +/* Menu Item Active */ + +.ui.dropdown .menu .active.item { + background: transparent; + font-weight: bold; + color: rgba(0, 0, 0, 0.95); + box-shadow: none; + z-index: 12; +} + +/*-------------------- + Hover +----------------------*/ + +/* Menu Item Hover */ + +.ui.dropdown .menu > .item:hover { + background: rgba(0, 0, 0, 0.05); + color: rgba(0, 0, 0, 0.95); + z-index: 13; +} + +/*-------------------- + Default Text +----------------------*/ + +.ui.dropdown:not(.button) > .default.text, +.ui.default.dropdown:not(.button) > .text { + color: rgba(191, 191, 191, 0.87); +} + +.ui.dropdown:not(.button) > input:focus ~ .default.text, +.ui.default.dropdown:not(.button) > input:focus ~ .text { + color: rgba(115, 115, 115, 0.87); +} + +/*-------------------- + Loading + ---------------------*/ + +.ui.loading.dropdown > i.icon { + height: 1em !important; +} + +.ui.loading.selection.dropdown > i.icon { + padding: 1.5em 1.28571429em !important; +} + +.ui.loading.dropdown > i.icon:before { + position: absolute; + content: ''; + top: 50%; + left: 50%; + margin: -0.64285714em 0 0 -0.64285714em; + width: 1.28571429em; + height: 1.28571429em; + border-radius: 500rem; + border: 0.2em solid rgba(0, 0, 0, 0.1); +} + +.ui.loading.dropdown > i.icon:after { + position: absolute; + content: ''; + top: 50%; + left: 50%; + box-shadow: 0 0 0 1px transparent; + margin: -0.64285714em 0 0 -0.64285714em; + width: 1.28571429em; + height: 1.28571429em; + -webkit-animation: loader 0.6s infinite linear; + animation: loader 0.6s infinite linear; + border: 0.2em solid #767676; + border-radius: 500rem; +} + +/* Coupling */ + +.ui.loading.dropdown.button > i.icon:before, +.ui.loading.dropdown.button > i.icon:after { + display: none; +} + +.ui.loading.dropdown > .text { + transition: none; +} + +/* Used To Check Position */ + +.ui.dropdown .loading.menu { + display: block; + visibility: hidden; + z-index: -1; +} + +.ui.dropdown > .loading.menu { + left: 0 !important; + right: auto !important; +} + +.ui.dropdown > .menu .loading.menu { + left: 100% !important; + right: auto !important; +} + +/*-------------------- + Keyboard Select +----------------------*/ + +/* Selected Item */ + +.ui.dropdown.selected, +.ui.dropdown .menu .selected.item { + background: rgba(0, 0, 0, 0.03); + color: rgba(0, 0, 0, 0.95); +} + +/*-------------------- + Search Filtered +----------------------*/ + +/* Filtered Item */ + +.ui.dropdown > .filtered.text { + visibility: hidden; +} + +.ui.dropdown .filtered.item { + display: none !important; +} + +/*-------------------- + States + ----------------------*/ + +.ui.dropdown.error, +.ui.dropdown.error > .text, +.ui.dropdown.error > .default.text { + color: #9F3A38; +} + +.ui.selection.dropdown.error { + background: #FFF6F6; + border-color: #E0B4B4; +} + +.ui.selection.dropdown.error:hover { + border-color: #E0B4B4; +} + +.ui.multiple.selection.error.dropdown > .label { + border-color: #E0B4B4; +} + +.ui.dropdown.error > .menu, +.ui.dropdown.error > .menu .menu { + border-color: #E0B4B4; +} + +.ui.dropdown.error > .menu > .item { + color: #9F3A38; +} + +/* Item Hover */ + +.ui.dropdown.error > .menu > .item:hover { + background-color: #FBE7E7; +} + +/* Item Active */ + +.ui.dropdown.error > .menu .active.item { + background-color: #FDCFCF; +} + +.ui.dropdown.info, +.ui.dropdown.info > .text, +.ui.dropdown.info > .default.text { + color: #276F86; +} + +.ui.selection.dropdown.info { + background: #F8FFFF; + border-color: #A9D5DE; +} + +.ui.selection.dropdown.info:hover { + border-color: #A9D5DE; +} + +.ui.multiple.selection.info.dropdown > .label { + border-color: #A9D5DE; +} + +.ui.dropdown.info > .menu, +.ui.dropdown.info > .menu .menu { + border-color: #A9D5DE; +} + +.ui.dropdown.info > .menu > .item { + color: #276F86; +} + +/* Item Hover */ + +.ui.dropdown.info > .menu > .item:hover { + background-color: #e9f2fb; +} + +/* Item Active */ + +.ui.dropdown.info > .menu .active.item { + background-color: #cef1fd; +} + +.ui.dropdown.success, +.ui.dropdown.success > .text, +.ui.dropdown.success > .default.text { + color: #2C662D; +} + +.ui.selection.dropdown.success { + background: #FCFFF5; + border-color: #A3C293; +} + +.ui.selection.dropdown.success:hover { + border-color: #A3C293; +} + +.ui.multiple.selection.success.dropdown > .label { + border-color: #A3C293; +} + +.ui.dropdown.success > .menu, +.ui.dropdown.success > .menu .menu { + border-color: #A3C293; +} + +.ui.dropdown.success > .menu > .item { + color: #2C662D; +} + +/* Item Hover */ + +.ui.dropdown.success > .menu > .item:hover { + background-color: #e9fbe9; +} + +/* Item Active */ + +.ui.dropdown.success > .menu .active.item { + background-color: #dafdce; +} + +.ui.dropdown.warning, +.ui.dropdown.warning > .text, +.ui.dropdown.warning > .default.text { + color: #573A08; +} + +.ui.selection.dropdown.warning { + background: #FFFAF3; + border-color: #C9BA9B; +} + +.ui.selection.dropdown.warning:hover { + border-color: #C9BA9B; +} + +.ui.multiple.selection.warning.dropdown > .label { + border-color: #C9BA9B; +} + +.ui.dropdown.warning > .menu, +.ui.dropdown.warning > .menu .menu { + border-color: #C9BA9B; +} + +.ui.dropdown.warning > .menu > .item { + color: #573A08; +} + +/* Item Hover */ + +.ui.dropdown.warning > .menu > .item:hover { + background-color: #fbfbe9; +} + +/* Item Active */ + +.ui.dropdown.warning > .menu .active.item { + background-color: #fdfdce; +} + +/*-------------------- + Clear +----------------------*/ + +.ui.dropdown > .clear.dropdown.icon { + opacity: 0.8; + transition: opacity 0.1s ease; +} + +.ui.dropdown > .clear.dropdown.icon:hover { + opacity: 1; +} + +/*-------------------- + Disabled + ----------------------*/ + +/* Disabled */ + +.ui.disabled.dropdown, +.ui.dropdown .menu > .disabled.item { + cursor: default; + pointer-events: none; + opacity: 0.45; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Direction +---------------*/ + +/* Flyout Direction */ + +.ui.dropdown .menu { + left: 0; +} + +/* Default Side (Right) */ + +.ui.dropdown .right.menu > .menu, +.ui.dropdown .menu .right.menu { + left: 100% !important; + right: auto !important; + border-radius: 0.28571429rem !important; +} + +/* Leftward Opening Menu */ + +.ui.dropdown > .left.menu { + left: auto !important; + right: 0 !important; +} + +.ui.dropdown > .left.menu .menu, +.ui.dropdown .menu .left.menu { + left: auto; + right: 100%; + margin: 0 -0.5em 0 0 !important; + border-radius: 0.28571429rem !important; +} + +.ui.dropdown .item .left.dropdown.icon, +.ui.dropdown .left.menu .item .dropdown.icon { + width: auto; + float: left; + margin: 0em 0 0 0; +} + +.ui.dropdown .item .left.dropdown.icon, +.ui.dropdown .left.menu .item .dropdown.icon { + width: auto; + float: left; + margin: 0em 0 0 0; +} + +.ui.dropdown .item .left.dropdown.icon + .text, +.ui.dropdown .left.menu .item .dropdown.icon + .text { + margin-left: 1em; + margin-right: 0; +} + +/*-------------- + Upward + ---------------*/ + +/* Upward Main Menu */ + +.ui.upward.dropdown > .menu { + top: auto; + bottom: 100%; + box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.08); + border-radius: 0.28571429rem 0.28571429rem 0 0; +} + +/* Upward Sub Menu */ + +.ui.dropdown .upward.menu { + top: auto !important; + bottom: 0 !important; +} + +/* Active Upward */ + +.ui.simple.upward.active.dropdown, +.ui.simple.upward.dropdown:hover { + border-radius: 0.28571429rem 0.28571429rem 0 0 !important; +} + +.ui.upward.dropdown.button:not(.pointing):not(.floating).active { + border-radius: 0.28571429rem 0.28571429rem 0 0; +} + +/* Selection */ + +.ui.upward.selection.dropdown .menu { + border-top-width: 1px !important; + border-bottom-width: 0 !important; + box-shadow: 0 -2px 3px 0 rgba(0, 0, 0, 0.08); +} + +.ui.upward.selection.dropdown:hover { + box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.05); +} + +/* Active Upward */ + +.ui.active.upward.selection.dropdown { + border-radius: 0 0 0.28571429rem 0.28571429rem !important; +} + +/* Visible Upward */ + +.ui.upward.selection.dropdown.visible { + box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.08); + border-radius: 0 0 0.28571429rem 0.28571429rem !important; +} + +/* Visible Hover Upward */ + +.ui.upward.active.selection.dropdown:hover { + box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.05); +} + +.ui.upward.active.selection.dropdown:hover .menu { + box-shadow: 0 -2px 3px 0 rgba(0, 0, 0, 0.08); +} + +/*-------------- + Scrolling + ---------------*/ + +/* Selection Menu */ + +.ui.scrolling.dropdown .menu, +.ui.dropdown .scrolling.menu { + overflow-x: hidden; + overflow-y: auto; +} + +.ui.scrolling.dropdown .menu { + overflow-x: hidden; + overflow-y: auto; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-overflow-scrolling: touch; + min-width: 100% !important; + width: auto !important; +} + +.ui.dropdown .scrolling.menu { + position: static; + overflow-y: auto; + border: none; + box-shadow: none !important; + border-radius: 0 !important; + margin: 0 !important; + min-width: 100% !important; + width: auto !important; + border-top: 1px solid rgba(34, 36, 38, 0.15); +} + +.ui.scrolling.dropdown .menu .item.item.item, +.ui.dropdown .scrolling.menu > .item.item.item { + border-top: none; +} + +.ui.scrolling.dropdown .menu .item:first-child, +.ui.dropdown .scrolling.menu .item:first-child { + border-top: none; +} + +.ui.dropdown > .animating.menu .scrolling.menu, +.ui.dropdown > .visible.menu .scrolling.menu { + display: block; +} + +/* Scrollbar in IE */ + +@media all and (-ms-high-contrast: none) { + .ui.scrolling.dropdown .menu, + .ui.dropdown .scrolling.menu { + min-width: calc(100% - 17px); + } +} + +@media only screen and (max-width: 767.98px) { + .ui.scrolling.dropdown .menu, + .ui.dropdown .scrolling.menu { + max-height: 10.28571429rem; + } +} + +@media only screen and (min-width: 768px) { + .ui.scrolling.dropdown .menu, + .ui.dropdown .scrolling.menu { + max-height: 15.42857143rem; + } +} + +@media only screen and (min-width: 992px) { + .ui.scrolling.dropdown .menu, + .ui.dropdown .scrolling.menu { + max-height: 20.57142857rem; + } +} + +@media only screen and (min-width: 1920px) { + .ui.scrolling.dropdown .menu, + .ui.dropdown .scrolling.menu { + max-height: 20.57142857rem; + } +} + +/*-------------- + Columnar +---------------*/ + +.ui.column.dropdown > .menu { + flex-wrap: wrap; +} + +.ui.dropdown[class*="two column"] > .menu > .item { + width: 50%; +} + +.ui.dropdown[class*="three column"] > .menu > .item { + width: 33%; +} + +.ui.dropdown[class*="four column"] > .menu > .item { + width: 25%; +} + +.ui.dropdown[class*="five column"] > .menu > .item { + width: 20%; +} + +/*-------------- + Simple + ---------------*/ + +/* Displays without javascript */ + +.ui.simple.dropdown .menu:before, +.ui.simple.dropdown .menu:after { + display: none; +} + +.ui.simple.dropdown .menu { + position: absolute; + /* IE hack to make dropdown icons appear inline */ + display: -ms-inline-flexbox !important; + display: block; + overflow: hidden; + top: -9999px; + opacity: 0; + width: 0; + height: 0; + transition: opacity 0.1s ease; + margin-top: 0 !important; +} + +.ui.simple.active.dropdown, +.ui.simple.dropdown:hover { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +.ui.simple.active.dropdown > .menu, +.ui.simple.dropdown:hover > .menu { + overflow: visible; + width: auto; + height: auto; + top: 100%; + opacity: 1; +} + +.ui.simple.dropdown > .menu > .item:active > .menu, +.ui.simple.dropdown .menu .item:hover > .menu { + overflow: visible; + width: auto; + height: auto; + top: 0 !important; + left: 100%; + opacity: 1; +} + +.ui.simple.dropdown > .menu > .item:active > .left.menu, +.ui.simple.dropdown .menu .item:hover > .left.menu, +.right.menu .ui.simple.dropdown > .menu > .item:active > .menu:not(.right), +.right.menu .ui.simple.dropdown > .menu .item:hover > .menu:not(.right) { + left: auto; + right: 100%; +} + +.ui.simple.disabled.dropdown:hover .menu { + display: none; + height: 0; + width: 0; + overflow: hidden; +} + +/* Visible */ + +.ui.simple.visible.dropdown > .menu { + display: block; +} + +/* Scrolling */ + +.ui.simple.scrolling.active.dropdown > .menu, +.ui.simple.scrolling.dropdown:hover > .menu { + overflow-x: hidden; + overflow-y: auto; +} + +/*-------------- + Fluid + ---------------*/ + +.ui.fluid.dropdown { + display: block; + width: 100% !important; + min-width: 0; +} + +.ui.fluid.dropdown > .dropdown.icon { + float: right; +} + +/*-------------- + Floating + ---------------*/ + +.ui.floating.dropdown .menu { + left: 0; + right: auto; + box-shadow: 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15) !important; + border-radius: 0.28571429rem !important; +} + +.ui.floating.dropdown > .menu { + border-radius: 0.28571429rem !important; +} + +.ui:not(.upward).floating.dropdown > .menu { + margin-top: 0.5em; +} + +.ui.upward.floating.dropdown > .menu { + margin-bottom: 0.5em; +} + +/*-------------- + Pointing + ---------------*/ + +.ui.pointing.dropdown > .menu { + top: 100%; + margin-top: 0.78571429rem; + border-radius: 0.28571429rem; +} + +.ui.pointing.dropdown > .menu:not(.hidden):after { + display: block; + position: absolute; + pointer-events: none; + content: ''; + visibility: visible; + transform: rotate(45deg); + width: 0.5em; + height: 0.5em; + box-shadow: -1px -1px 0 0 rgba(34, 36, 38, 0.15); + background: #FFFFFF; + z-index: 2; +} + +.ui.pointing.dropdown > .menu:not(.hidden):after { + top: -0.25em; + left: 50%; + margin: 0 0 0 -0.25em; +} + +/* Top Left Pointing */ + +.ui.top.left.pointing.dropdown > .menu { + top: 100%; + bottom: auto; + left: 0; + right: auto; + margin: 1em 0 0; +} + +.ui.top.left.pointing.dropdown > .menu { + top: 100%; + bottom: auto; + left: 0; + right: auto; + margin: 1em 0 0; +} + +.ui.top.left.pointing.dropdown > .menu:after { + top: -0.25em; + left: 1em; + right: auto; + margin: 0; + transform: rotate(45deg); +} + +/* Top Right Pointing */ + +.ui.top.right.pointing.dropdown > .menu { + top: 100%; + bottom: auto; + right: 0; + left: auto; + margin: 1em 0 0; +} + +.ui.top.pointing.dropdown > .left.menu:after, +.ui.top.right.pointing.dropdown > .menu:after { + top: -0.25em; + left: auto !important; + right: 1em !important; + margin: 0; + transform: rotate(45deg); +} + +/* Left Pointing */ + +.ui.left.pointing.dropdown > .menu { + top: 0; + left: 100%; + right: auto; + margin: 0 0 0 1em; +} + +.ui.left.pointing.dropdown > .menu:after { + top: 1em; + left: -0.25em; + margin: 0 0 0 0; + transform: rotate(-45deg); +} + +.ui.left:not(.top):not(.bottom).pointing.dropdown > .left.menu { + left: auto !important; + right: 100% !important; + margin: 0 1em 0 0; +} + +.ui.left:not(.top):not(.bottom).pointing.dropdown > .left.menu:after { + top: 1em; + left: auto; + right: -0.25em; + margin: 0 0 0 0; + transform: rotate(135deg); +} + +/* Right Pointing */ + +.ui.right.pointing.dropdown > .menu { + top: 0; + left: auto; + right: 100%; + margin: 0 1em 0 0; +} + +.ui.right.pointing.dropdown > .menu:after { + top: 1em; + left: auto; + right: -0.25em; + margin: 0 0 0 0; + transform: rotate(135deg); +} + +/* Bottom Pointing */ + +.ui.bottom.pointing.dropdown > .menu { + top: auto; + bottom: 100%; + left: 0; + right: auto; + margin: 0 0 1em; +} + +.ui.bottom.pointing.dropdown > .menu:after { + top: auto; + bottom: -0.25em; + right: auto; + margin: 0; + transform: rotate(-135deg); +} + +/* Reverse Sub-Menu Direction */ + +.ui.bottom.pointing.dropdown > .menu .menu { + top: auto !important; + bottom: 0 !important; +} + +/* Bottom Left */ + +.ui.bottom.left.pointing.dropdown > .menu { + left: 0; + right: auto; +} + +.ui.bottom.left.pointing.dropdown > .menu:after { + left: 1em; + right: auto; +} + +/* Bottom Right */ + +.ui.bottom.right.pointing.dropdown > .menu { + right: 0; + left: auto; +} + +.ui.bottom.right.pointing.dropdown > .menu:after { + left: auto; + right: 1em; +} + +/* Upward pointing */ + +.ui.pointing.upward.dropdown .menu, +.ui.top.pointing.upward.dropdown .menu { + top: auto !important; + bottom: 100% !important; + margin: 0 0 0.78571429rem; + border-radius: 0.28571429rem; +} + +.ui.pointing.upward.dropdown .menu:after, +.ui.top.pointing.upward.dropdown .menu:after { + top: 100% !important; + bottom: auto !important; + box-shadow: 1px 1px 0 0 rgba(34, 36, 38, 0.15); + margin: -0.25em 0 0; +} + +/* Right Pointing Upward */ + +.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu { + top: auto !important; + bottom: 0 !important; + margin: 0 1em 0 0; +} + +.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after { + top: auto !important; + bottom: 0 !important; + margin: 0 0 1em 0; + box-shadow: -1px -1px 0 0 rgba(34, 36, 38, 0.15); +} + +/* Left Pointing Upward */ + +.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu { + top: auto !important; + bottom: 0 !important; + margin: 0 0 0 1em; +} + +.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after { + top: auto !important; + bottom: 0 !important; + margin: 0 0 1em 0; + box-shadow: -1px -1px 0 0 rgba(34, 36, 38, 0.15); +} + +/*-------------------- + Sizes +---------------------*/ + +.ui.dropdown, +.ui.dropdown .menu > .item { + font-size: 1rem; +} + +.ui.mini.dropdown, +.ui.mini.dropdown .menu > .item { + font-size: 0.78571429rem; +} + +.ui.tiny.dropdown, +.ui.tiny.dropdown .menu > .item { + font-size: 0.85714286rem; +} + +.ui.small.dropdown, +.ui.small.dropdown .menu > .item { + font-size: 0.92857143rem; +} + +.ui.large.dropdown, +.ui.large.dropdown .menu > .item { + font-size: 1.14285714rem; +} + +.ui.big.dropdown, +.ui.big.dropdown .menu > .item { + font-size: 1.28571429rem; +} + +.ui.huge.dropdown, +.ui.huge.dropdown .menu > .item { + font-size: 1.42857143rem; +} + +.ui.massive.dropdown, +.ui.massive.dropdown .menu > .item { + font-size: 1.71428571rem; +} + +/*-------------- + Inverted + ---------------*/ + +/* General rules and basic dropdowns */ + +.ui.inverted.dropdown .menu { + background: #1B1C1D; + box-shadow: none; + border: 1px solid rgba(255, 255, 255, 0.15); +} + +.ui.inverted.dropdown .menu > .item { + color: rgba(255, 255, 255, 0.8); +} + +.ui.inverted.dropdown .menu .active.item { + background: transparent; + color: rgba(255, 255, 255, 0.8); + box-shadow: none; +} + +.ui.inverted.dropdown .menu > .item:hover { + background: rgba(255, 255, 255, 0.08); + color: rgba(255, 255, 255, 0.8); +} + +.ui.inverted.dropdown.selected, +.ui.inverted.dropdown .menu .selected.item { + background: rgba(255, 255, 255, 0.15); + color: rgba(255, 255, 255, 0.8); +} + +.ui.inverted.dropdown .menu > .header { + color: #FFFFFF; +} + +.ui.inverted.dropdown > .text > .description, +.ui.inverted.dropdown .menu > .item > .description { + color: rgba(255, 255, 255, 0.5); +} + +.ui.inverted.dropdown .menu > .divider { + border-top: 1px solid rgba(255, 255, 255, 0.15); +} + +.ui.inverted.dropdown .scrolling.menu { + border: none; + border-top: 1px solid rgba(255, 255, 255, 0.15); +} + +/* Selection */ + +.ui.inverted.selection.dropdown { + border: 1px solid rgba(255, 255, 255, 0.15); + background: #1B1C1D; + color: rgba(255, 255, 255, 0.8); +} + +.ui.inverted.selection.dropdown:hover { + border-color: rgba(255, 255, 255, 0.25); + box-shadow: none; +} + +.ui.inverted.selection.dropdown input { + color: #FFFFFF; +} + +.ui.inverted.selection.visible.dropdown > .text:not(.default) { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.selection.active.dropdown .menu, +.ui.inverted.selection.active.dropdown:hover { + border-color: rgba(255, 255, 255, 0.15); +} + +.ui.inverted.selection.dropdown .menu > .item { + border-top: 1px solid #242526; +} + +.ui.inverted.dropdown:not(.button) > .default.text, +.ui.inverted.default.dropdown:not(.button) > .text { + color: rgba(255, 255, 255, 0.5); +} + +.ui.inverted.dropdown:not(.button) > input:focus ~ .default.text, +.ui.inverted.default.dropdown:not(.button) > input:focus ~ .text { + color: rgba(255, 255, 255, 0.7); +} + +.ui.inverted.active.search.dropdown input.search:focus + .text i.icon, +.ui.inverted.active.search.dropdown input.search:focus + .text .flag { + opacity: 0.45; +} + +.ui.inverted.active.search.dropdown input.search:focus + .text { + color: rgba(255, 255, 255, 0.7) !important; +} + +.ui.inverted.dropdown .menu > .message:not(.ui) { + color: rgba(255, 255, 255, 0.5); +} + +/* Fixing the border */ + +.ui.inverted.dropdown .menu > .item:first-child { + border-top-width: 0; +} + +/* Labels */ + +.ui.inverted.multiple.dropdown > .label { + background-color: rgba(255, 255, 255, 0.7); + background-image: none; + color: #000000; + box-shadow: 0 0 0 1px rgba(255, 255, 255, 0) inset; +} + +.ui.inverted.multiple.dropdown > .label:hover { + background-color: rgba(255, 255, 255, 0.9); + border-color: rgba(255, 255, 255, 0.9); + background-image: none; + color: #000000; +} + +.ui.inverted.multiple.dropdown > .label > .close.icon, +.ui.inverted.multiple.dropdown > .label > .delete.icon { + opacity: 0.6; +} + +.ui.inverted.multiple.dropdown > .label > .close.icon:hover, +.ui.inverted.multiple.dropdown > .label > .delete.icon:hover { + opacity: 0.8; +} + +/* Selection for form elements */ + +.ui.inverted.dropdown textarea::-webkit-selection, +.ui.inverted.dropdown input::-webkit-selection { + background-color: rgba(255, 255, 255, 0.25); + color: rgba(255, 255, 255, 0.8); +} + +.ui.inverted.dropdown textarea::-moz-selection, +.ui.inverted.dropdown input::-moz-selection { + background-color: rgba(255, 255, 255, 0.25); + color: rgba(255, 255, 255, 0.8); +} + +.ui.inverted.dropdown textarea::-moz-selection, +.ui.inverted.dropdown input::-moz-selection { + background-color: rgba(255, 255, 255, 0.25); + color: rgba(255, 255, 255, 0.8); +} + +.ui.inverted.dropdown textarea::selection, +.ui.inverted.dropdown input::selection { + background-color: rgba(255, 255, 255, 0.25); + color: rgba(255, 255, 255, 0.8); +} + +/* Scrollbars */ + +.ui.inverted.dropdown .menu::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0.1); +} + +.ui.inverted.dropdown .menu::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.25); +} + +.ui.inverted.dropdown .menu::-webkit-scrollbar-thumb:window-inactive { + background: rgba(255, 255, 255, 0.15); +} + +.ui.inverted.dropdown .menu::-webkit-scrollbar-thumb:hover { + background: rgba(255, 255, 255, 0.35); +} + +.ui.inverted.pointing.dropdown > .menu:after { + background: #1B1C1D; + box-shadow: -1px -1px 0 0 rgba(255, 255, 255, 0.15); +} + +/******************************* + Theme Overrides +*******************************/ + +/* Dropdown Carets */ + +@font-face { + font-family: 'Dropdown'; + src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfuIIAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zjo82LgAAAFwAAABVGhlYWQAQ88bAAACxAAAADZoaGVhAwcB6QAAAvwAAAAkaG10eAS4ABIAAAMgAAAAIGxvY2EBNgDeAAADQAAAABJtYXhwAAoAFgAAA1QAAAAgbmFtZVcZpu4AAAN0AAABRXBvc3QAAwAAAAAEvAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDX//3//wAB/+MPLQADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAIABJQElABMAABM0NzY3BTYXFhUUDwEGJwYvASY1AAUGBwEACAUGBoAFCAcGgAUBEgcGBQEBAQcECQYHfwYBAQZ/BwYAAQAAAG4BJQESABMAADc0PwE2MzIfARYVFAcGIyEiJyY1AAWABgcIBYAGBgUI/wAHBgWABwaABQWABgcHBgUFBgcAAAABABIASQC3AW4AEwAANzQ/ATYXNhcWHQEUBwYnBi8BJjUSBoAFCAcFBgYFBwgFgAbbBwZ/BwEBBwQJ/wgEBwEBB38GBgAAAAABAAAASQClAW4AEwAANxE0NzYzMh8BFhUUDwEGIyInJjUABQYHCAWABgaABQgHBgVbAQAIBQYGgAUIBwWABgYFBwAAAAEAAAABAADZuaKOXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAAAAACgAUAB4AQgBkAIgAqgAAAAEAAAAIABQAAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAOAAAAAQAAAAAAAgAOAEcAAQAAAAAAAwAOACQAAQAAAAAABAAOAFUAAQAAAAAABQAWAA4AAQAAAAAABgAHADIAAQAAAAAACgA0AGMAAwABBAkAAQAOAAAAAwABBAkAAgAOAEcAAwABBAkAAwAOACQAAwABBAkABAAOAFUAAwABBAkABQAWAA4AAwABBAkABgAOADkAAwABBAkACgA0AGMAaQBjAG8AbQBvAG8AbgBWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AbgBSAGUAZwB1AGwAYQByAGkAYwBvAG0AbwBvAG4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format('truetype'), url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAAVwAAoAAAAABSgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAdkAAAHZLDXE/09TLzIAAALQAAAAYAAAAGAIIweQY21hcAAAAzAAAABMAAAATA9+4ghnYXNwAAADfAAAAAgAAAAIAAAAEGhlYWQAAAOEAAAANgAAADYAQ88baGhlYQAAA7wAAAAkAAAAJAMHAelobXR4AAAD4AAAACAAAAAgBLgAEm1heHAAAAQAAAAABgAAAAYACFAAbmFtZQAABAgAAAFFAAABRVcZpu5wb3N0AAAFUAAAACAAAAAgAAMAAAEABAQAAQEBCGljb21vb24AAQIAAQA6+BwC+BsD+BgEHgoAGVP/i4seCgAZU/+LiwwHi2v4lPh0BR0AAACIDx0AAACNER0AAAAJHQAAAdASAAkBAQgPERMWGyAlKmljb21vb25pY29tb29udTB1MXUyMHVGMEQ3dUYwRDh1RjBEOXVGMERBAAACAYkABgAIAgABAAQABwAKAA0AVgCfAOgBL/yUDvyUDvyUDvuUDvtvi/emFYuQjZCOjo+Pj42Qiwj3lIsFkIuQiY6Hj4iNhouGi4aJh4eHCPsU+xQFiIiGiYaLhouHjYeOCPsU9xQFiI+Jj4uQCA77b4v3FBWLkI2Pjo8I9xT3FAWPjo+NkIuQi5CJjogI9xT7FAWPh42Hi4aLhomHh4eIiIaJhosI+5SLBYaLh42HjoiPiY+LkAgO+92d928Vi5CNkI+OCPcU9xQFjo+QjZCLkIuPiY6Hj4iNhouGCIv7lAWLhomHh4iIh4eJhouGi4aNiI8I+xT3FAWHjomPi5AIDvvdi+YVi/eUBYuQjZCOjo+Pj42Qi5CLkImOhwj3FPsUBY+IjYaLhouGiYeHiAj7FPsUBYiHhomGi4aLh42Hj4iOiY+LkAgO+JQU+JQViwwKAAAAAAMCAAGQAAUAAAFMAWYAAABHAUwBZgAAAPUAGQCEAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA8NoB4P/g/+AB4AAgAAAAAQAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAA4AAAACgAIAAIAAgABACDw2v/9//8AAAAAACDw1//9//8AAf/jDy0AAwABAAAAAAAAAAAAAAABAAH//wAPAAEAAAABAAA5emozXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAUAAACAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoANABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoANABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff'); + font-weight: normal; + font-style: normal; +} + +.ui.dropdown > .dropdown.icon { + font-family: 'Dropdown'; + line-height: 1; + height: 1em; + width: 1.23em; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + font-weight: normal; + font-style: normal; + text-align: center; +} + +.ui.dropdown > .dropdown.icon { + width: auto; +} + +.ui.dropdown > .dropdown.icon:before { + content: '\f0d7'; +} + +/* Sub Menu */ + +.ui.dropdown .menu .item .dropdown.icon:before { + content: '\f0da' ; +} + +.ui.dropdown .item .left.dropdown.icon:before, +.ui.dropdown .left.menu .item .dropdown.icon:before { + content: "\f0d9" ; +} + +/* Vertical Menu Dropdown */ + +.ui.vertical.menu .dropdown.item > .dropdown.icon:before { + content: "\f0da" ; +} + +/* Icons for Reference +.dropdown.down.icon { + content: "\f0d7"; +} +.dropdown.up.icon { + content: "\f0d8"; +} +.dropdown.left.icon { + content: "\f0d9"; +} +.dropdown.icon.icon { + content: "\f0da"; +} +*/ + +/******************************* + User Overrides +*******************************/ +/*! + * # Fomantic-UI - Form + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Elements +*******************************/ + +/*-------------------- + Form +---------------------*/ + +.ui.form { + position: relative; + max-width: 100%; +} + +/*-------------------- + Content +---------------------*/ + +.ui.form > p { + margin: 1em 0; +} + +/*-------------------- + Field +---------------------*/ + +.ui.form .field { + clear: both; + margin: 0 0 1em; +} + +.ui.form .fields .fields, +.ui.form .field:last-child, +.ui.form .fields:last-child .field { + margin-bottom: 0; +} + +.ui.form .fields .field { + clear: both; + margin: 0; +} + +/*-------------------- + Labels +---------------------*/ + +.ui.form .field > label { + display: block; + margin: 0 0 0.28571429rem 0; + color: rgba(0, 0, 0, 0.87); + font-size: 0.92857143em; + font-weight: bold; + text-transform: none; +} + +/*-------------------- + Standard Inputs +---------------------*/ + +.ui.form textarea, +.ui.form input:not([type]), +.ui.form input[type="date"], +.ui.form input[type="datetime-local"], +.ui.form input[type="email"], +.ui.form input[type="number"], +.ui.form input[type="password"], +.ui.form input[type="search"], +.ui.form input[type="tel"], +.ui.form input[type="time"], +.ui.form input[type="text"], +.ui.form input[type="file"], +.ui.form input[type="url"] { + width: 100%; + vertical-align: top; +} + +/* Set max height on unusual input */ + +.ui.form ::-webkit-datetime-edit, +.ui.form ::-webkit-inner-spin-button { + height: 1.21428571em; +} + +.ui.form input:not([type]), +.ui.form input[type="date"], +.ui.form input[type="datetime-local"], +.ui.form input[type="email"], +.ui.form input[type="number"], +.ui.form input[type="password"], +.ui.form input[type="search"], +.ui.form input[type="tel"], +.ui.form input[type="time"], +.ui.form input[type="text"], +.ui.form input[type="file"], +.ui.form input[type="url"] { + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + margin: 0; + outline: none; + -webkit-appearance: none; + -webkit-tap-highlight-color: rgba(255, 255, 255, 0); + line-height: 1.21428571em; + padding: 0.67857143em 1em; + font-size: 1em; + background: #FFFFFF; + border: 1px solid rgba(34, 36, 38, 0.15); + color: rgba(0, 0, 0, 0.87); + border-radius: 0.28571429rem; + box-shadow: 0 0 0 0 transparent inset; + transition: color 0.1s ease, border-color 0.1s ease; +} + +/* Text Area */ + +.ui.input textarea, +.ui.form textarea { + margin: 0; + -webkit-appearance: none; + -webkit-tap-highlight-color: rgba(255, 255, 255, 0); + padding: 0.78571429em 1em; + background: #FFFFFF; + border: 1px solid rgba(34, 36, 38, 0.15); + outline: none; + color: rgba(0, 0, 0, 0.87); + border-radius: 0.28571429rem; + box-shadow: 0 0 0 0 transparent inset; + transition: color 0.1s ease, border-color 0.1s ease; + font-size: 1em; + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + line-height: 1.2857; + resize: vertical; +} + +.ui.form textarea:not([rows]) { + height: 12em; + min-height: 8em; + max-height: 24em; +} + +.ui.form textarea, +.ui.form input[type="checkbox"] { + vertical-align: top; +} + +/*-------------------- + Checkbox margin +---------------------*/ + +.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) label + .ui.ui.checkbox { + margin-top: 0.7em; +} + +.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) .ui.checkbox { + margin-top: 2.41428571em; +} + +.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) .ui.toggle.checkbox { + margin-top: 2.21428571em; +} + +.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) .ui.slider.checkbox { + margin-top: 2.61428571em; +} + +.ui.ui.form .field .fields .field:not(:only-child) .ui.checkbox { + margin-top: 0.6em; +} + +.ui.ui.form .field .fields .field:not(:only-child) .ui.toggle.checkbox { + margin-top: 0.5em; +} + +.ui.ui.form .field .fields .field:not(:only-child) .ui.slider.checkbox { + margin-top: 0.7em; +} + +/*-------------------- + Transparent + ---------------------*/ + +.ui.form .field .transparent.input:not(.icon) input, +.ui.form .field input.transparent, +.ui.form .field textarea.transparent { + padding: 0.67857143em 1em; +} + +.ui.form .field input.transparent, +.ui.form .field textarea.transparent { + border-color: transparent !important; + background-color: transparent !important; + box-shadow: none !important; +} + +/*-------------------------- + Input w/ attached Button +---------------------------*/ + +.ui.form input.attached { + width: auto; +} + +/*-------------------- + Basic Select +---------------------*/ + +.ui.form select { + display: block; + height: auto; + width: 100%; + background: #FFFFFF; + border: 1px solid rgba(34, 36, 38, 0.15); + border-radius: 0.28571429rem; + box-shadow: 0 0 0 0 transparent inset; + padding: 0.62em 1em; + color: rgba(0, 0, 0, 0.87); + transition: color 0.1s ease, border-color 0.1s ease; +} + +/*-------------------- + Dropdown +---------------------*/ + +/* Block */ + +.ui.form .field > .selection.dropdown { + min-width: auto; + width: 100%; +} + +.ui.form .field > .selection.dropdown > .dropdown.icon { + float: right; +} + +/* Inline */ + +.ui.form .inline.fields .field > .selection.dropdown, +.ui.form .inline.field > .selection.dropdown { + width: auto; +} + +.ui.form .inline.fields .field > .selection.dropdown > .dropdown.icon, +.ui.form .inline.field > .selection.dropdown > .dropdown.icon { + float: none; +} + +/*-------------------- + UI Input +---------------------*/ + +/* Block */ + +.ui.form .field .ui.input, +.ui.form .fields .field .ui.input, +.ui.form .wide.field .ui.input { + width: 100%; +} + +/* Inline */ + +.ui.form .inline.fields .field:not(.wide) .ui.input, +.ui.form .inline.field:not(.wide) .ui.input { + width: auto; + vertical-align: middle; +} + +/* Auto Input */ + +.ui.form .fields .field .ui.input input, +.ui.form .field .ui.input input { + width: auto; +} + +/* Full Width Input */ + +.ui.form .ten.fields .ui.input input, +.ui.form .nine.fields .ui.input input, +.ui.form .eight.fields .ui.input input, +.ui.form .seven.fields .ui.input input, +.ui.form .six.fields .ui.input input, +.ui.form .five.fields .ui.input input, +.ui.form .four.fields .ui.input input, +.ui.form .three.fields .ui.input input, +.ui.form .two.fields .ui.input input, +.ui.form .wide.field .ui.input input { + flex: 1 0 auto; + width: 0; +} + +/*-------------------- + Types of Messages +---------------------*/ + +.ui.form .error.message, +.ui.form .error.message:empty { + display: none; +} + +.ui.form .info.message, +.ui.form .info.message:empty { + display: none; +} + +.ui.form .success.message, +.ui.form .success.message:empty { + display: none; +} + +.ui.form .warning.message, +.ui.form .warning.message:empty { + display: none; +} + +/* Assumptions */ + +.ui.form .message:first-child { + margin-top: 0; +} + +/*-------------------- + Validation Prompt +---------------------*/ + +.ui.form .field .prompt.label { + white-space: normal; + background: #FFFFFF !important; + border: 1px solid #E0B4B4 !important; + color: #9F3A38 !important; +} + +.ui.form .inline.fields .field .prompt, +.ui.form .inline.field .prompt { + vertical-align: top; + margin: -0.25em 0 -0.5em 0.5em; +} + +.ui.form .inline.fields .field .prompt:before, +.ui.form .inline.field .prompt:before { + border-width: 0 0 1px 1px; + bottom: auto; + right: auto; + top: 50%; + left: 0; +} + +/******************************* + States +*******************************/ + +/*-------------------- + Autofilled +---------------------*/ + +.ui.form .field.field input:-webkit-autofill { + box-shadow: 0 0 0 100px #FFFFF0 inset !important; + border-color: #E5DFA1 !important; +} + +/* Focus */ + +.ui.form .field.field input:-webkit-autofill:focus { + box-shadow: 0 0 0 100px #FFFFF0 inset !important; + border-color: #D5C315 !important; +} + +/*-------------------- + Placeholder +---------------------*/ + +/* browsers require these rules separate */ + +.ui.form ::-webkit-input-placeholder { + color: rgba(191, 191, 191, 0.87); +} + +.ui.form :-ms-input-placeholder { + color: rgba(191, 191, 191, 0.87) !important; +} + +.ui.form ::-moz-placeholder { + color: rgba(191, 191, 191, 0.87); +} + +.ui.form :focus::-webkit-input-placeholder { + color: rgba(115, 115, 115, 0.87); +} + +.ui.form :focus:-ms-input-placeholder { + color: rgba(115, 115, 115, 0.87) !important; +} + +.ui.form :focus::-moz-placeholder { + color: rgba(115, 115, 115, 0.87); +} + +/*-------------------- + Focus +---------------------*/ + +.ui.form input:not([type]):focus, +.ui.form input[type="date"]:focus, +.ui.form input[type="datetime-local"]:focus, +.ui.form input[type="email"]:focus, +.ui.form input[type="number"]:focus, +.ui.form input[type="password"]:focus, +.ui.form input[type="search"]:focus, +.ui.form input[type="tel"]:focus, +.ui.form input[type="time"]:focus, +.ui.form input[type="text"]:focus, +.ui.form input[type="file"]:focus, +.ui.form input[type="url"]:focus { + color: rgba(0, 0, 0, 0.95); + border-color: #85B7D9; + border-radius: 0.28571429rem; + background: #FFFFFF; + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.35) inset; +} + +.ui.form .ui.action.input:not([class*="left action"]) input:not([type]):focus, +.ui.form .ui.action.input:not([class*="left action"]) input[type="date"]:focus, +.ui.form .ui.action.input:not([class*="left action"]) input[type="datetime-local"]:focus, +.ui.form .ui.action.input:not([class*="left action"]) input[type="email"]:focus, +.ui.form .ui.action.input:not([class*="left action"]) input[type="number"]:focus, +.ui.form .ui.action.input:not([class*="left action"]) input[type="password"]:focus, +.ui.form .ui.action.input:not([class*="left action"]) input[type="search"]:focus, +.ui.form .ui.action.input:not([class*="left action"]) input[type="tel"]:focus, +.ui.form .ui.action.input:not([class*="left action"]) input[type="time"]:focus, +.ui.form .ui.action.input:not([class*="left action"]) input[type="text"]:focus, +.ui.form .ui.action.input:not([class*="left action"]) input[type="file"]:focus, +.ui.form .ui.action.input:not([class*="left action"]) input[type="url"]:focus { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.ui.form .ui[class*="left action"].input input:not([type]), +.ui.form .ui[class*="left action"].input input[type="date"], +.ui.form .ui[class*="left action"].input input[type="datetime-local"], +.ui.form .ui[class*="left action"].input input[type="email"], +.ui.form .ui[class*="left action"].input input[type="number"], +.ui.form .ui[class*="left action"].input input[type="password"], +.ui.form .ui[class*="left action"].input input[type="search"], +.ui.form .ui[class*="left action"].input input[type="tel"], +.ui.form .ui[class*="left action"].input input[type="time"], +.ui.form .ui[class*="left action"].input input[type="text"], +.ui.form .ui[class*="left action"].input input[type="file"], +.ui.form .ui[class*="left action"].input input[type="url"] { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.ui.form textarea:focus { + color: rgba(0, 0, 0, 0.95); + border-color: #85B7D9; + border-radius: 0.28571429rem; + background: #FFFFFF; + box-shadow: 0 0 0 0 rgba(34, 36, 38, 0.35) inset; + -webkit-appearance: none; +} + +/*-------------------- + States + ---------------------*/ + +/* On Form */ + +.ui.form.error .error.message:not(:empty) { + display: block; +} + +.ui.form.error .compact.error.message:not(:empty) { + display: inline-block; +} + +.ui.form.error .icon.error.message:not(:empty) { + display: flex; +} + +/* On Field(s) */ + +.ui.form .fields.error .error.message:not(:empty), +.ui.form .field.error .error.message:not(:empty) { + display: block; +} + +.ui.form .fields.error .compact.error.message:not(:empty), +.ui.form .field.error .compact.error.message:not(:empty) { + display: inline-block; +} + +.ui.form .fields.error .icon.error.message:not(:empty), +.ui.form .field.error .icon.error.message:not(:empty) { + display: flex; +} + +.ui.ui.form .fields.error .field label, +.ui.ui.form .field.error label, +.ui.ui.form .fields.error .field .input, +.ui.ui.form .field.error .input { + color: #9F3A38; +} + +.ui.form .fields.error .field .corner.label, +.ui.form .field.error .corner.label { + border-color: #9F3A38; + color: #FFFFFF; +} + +.ui.form .fields.error .field textarea, +.ui.form .fields.error .field select, +.ui.form .fields.error .field input:not([type]), +.ui.form .fields.error .field input[type="date"], +.ui.form .fields.error .field input[type="datetime-local"], +.ui.form .fields.error .field input[type="email"], +.ui.form .fields.error .field input[type="number"], +.ui.form .fields.error .field input[type="password"], +.ui.form .fields.error .field input[type="search"], +.ui.form .fields.error .field input[type="tel"], +.ui.form .fields.error .field input[type="time"], +.ui.form .fields.error .field input[type="text"], +.ui.form .fields.error .field input[type="file"], +.ui.form .fields.error .field input[type="url"], +.ui.form .field.error textarea, +.ui.form .field.error select, +.ui.form .field.error input:not([type]), +.ui.form .field.error input[type="date"], +.ui.form .field.error input[type="datetime-local"], +.ui.form .field.error input[type="email"], +.ui.form .field.error input[type="number"], +.ui.form .field.error input[type="password"], +.ui.form .field.error input[type="search"], +.ui.form .field.error input[type="tel"], +.ui.form .field.error input[type="time"], +.ui.form .field.error input[type="text"], +.ui.form .field.error input[type="file"], +.ui.form .field.error input[type="url"] { + color: #9F3A38; + background: #FFF6F6; + border-color: #E0B4B4; + border-radius: ''; + box-shadow: none; +} + +.ui.form .field.error textarea:focus, +.ui.form .field.error select:focus, +.ui.form .field.error input:not([type]):focus, +.ui.form .field.error input[type="date"]:focus, +.ui.form .field.error input[type="datetime-local"]:focus, +.ui.form .field.error input[type="email"]:focus, +.ui.form .field.error input[type="number"]:focus, +.ui.form .field.error input[type="password"]:focus, +.ui.form .field.error input[type="search"]:focus, +.ui.form .field.error input[type="tel"]:focus, +.ui.form .field.error input[type="time"]:focus, +.ui.form .field.error input[type="text"]:focus, +.ui.form .field.error input[type="file"]:focus, +.ui.form .field.error input[type="url"]:focus { + background: #FFF6F6; + border-color: #E0B4B4; + color: #9F3A38; + box-shadow: none; +} + +/* Preserve Native Select Stylings */ + +.ui.form .field.error select { + -webkit-appearance: menulist-button; +} + +/*------------------ + Input State + --------------------*/ + +/* Transparent */ + +.ui.form .field.error .transparent.input input, +.ui.form .field.error .transparent.input textarea, +.ui.form .field.error input.transparent, +.ui.form .field.error textarea.transparent { + background-color: #FFF6F6 !important; + color: #9F3A38 !important; +} + +/* Autofilled */ + +.ui.form .error.error input:-webkit-autofill { + box-shadow: 0 0 0 100px #FFFAF0 inset !important; + border-color: #E0B4B4 !important; +} + +/* Placeholder */ + +.ui.form .error ::-webkit-input-placeholder { + color: #e7bdbc; +} + +.ui.form .error :-ms-input-placeholder { + color: #e7bdbc !important; +} + +.ui.form .error ::-moz-placeholder { + color: #e7bdbc; +} + +.ui.form .error :focus::-webkit-input-placeholder { + color: #da9796; +} + +.ui.form .error :focus:-ms-input-placeholder { + color: #da9796 !important; +} + +.ui.form .error :focus::-moz-placeholder { + color: #da9796; +} + +/*------------------ + Dropdown State + --------------------*/ + +.ui.form .fields.error .field .ui.dropdown, +.ui.form .fields.error .field .ui.dropdown .item, +.ui.form .field.error .ui.dropdown, +.ui.form .field.error .ui.dropdown .text, +.ui.form .field.error .ui.dropdown .item { + background: #FFF6F6; + color: #9F3A38; +} + +.ui.form .fields.error .field .ui.dropdown, +.ui.form .field.error .ui.dropdown { + border-color: #E0B4B4 !important; +} + +.ui.form .fields.error .field .ui.dropdown:hover, +.ui.form .field.error .ui.dropdown:hover { + border-color: #E0B4B4 !important; +} + +.ui.form .fields.error .field .ui.dropdown:hover .menu, +.ui.form .field.error .ui.dropdown:hover .menu { + border-color: #E0B4B4; +} + +.ui.form .fields.error .field .ui.multiple.selection.dropdown > .label, +.ui.form .field.error .ui.multiple.selection.dropdown > .label { + background-color: #EACBCB; + color: #9F3A38; +} + +/* Hover */ + +.ui.form .fields.error .field .ui.dropdown .menu .item:hover, +.ui.form .field.error .ui.dropdown .menu .item:hover { + background-color: #FBE7E7; +} + +/* Selected */ + +.ui.form .fields.error .field .ui.dropdown .menu .selected.item, +.ui.form .field.error .ui.dropdown .menu .selected.item { + background-color: #FBE7E7; +} + +/* Active */ + +.ui.form .fields.error .field .ui.dropdown .menu .active.item, +.ui.form .field.error .ui.dropdown .menu .active.item { + background-color: #FDCFCF !important; +} + +/*-------------------- + Checkbox State + ---------------------*/ + +.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label, +.ui.form .field.error .checkbox:not(.toggle):not(.slider) label, +.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box, +.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box { + color: #9F3A38; +} + +.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label:before, +.ui.form .field.error .checkbox:not(.toggle):not(.slider) label:before, +.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box:before, +.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box:before { + background: #FFF6F6; + border-color: #E0B4B4; +} + +.ui.form .fields.error .field .checkbox label:after, +.ui.form .field.error .checkbox label:after, +.ui.form .fields.error .field .checkbox .box:after, +.ui.form .field.error .checkbox .box:after { + color: #9F3A38; +} + +/* On Form */ + +.ui.form.info .info.message:not(:empty) { + display: block; +} + +.ui.form.info .compact.info.message:not(:empty) { + display: inline-block; +} + +.ui.form.info .icon.info.message:not(:empty) { + display: flex; +} + +/* On Field(s) */ + +.ui.form .fields.info .info.message:not(:empty), +.ui.form .field.info .info.message:not(:empty) { + display: block; +} + +.ui.form .fields.info .compact.info.message:not(:empty), +.ui.form .field.info .compact.info.message:not(:empty) { + display: inline-block; +} + +.ui.form .fields.info .icon.info.message:not(:empty), +.ui.form .field.info .icon.info.message:not(:empty) { + display: flex; +} + +.ui.ui.form .fields.info .field label, +.ui.ui.form .field.info label, +.ui.ui.form .fields.info .field .input, +.ui.ui.form .field.info .input { + color: #276F86; +} + +.ui.form .fields.info .field .corner.label, +.ui.form .field.info .corner.label { + border-color: #276F86; + color: #FFFFFF; +} + +.ui.form .fields.info .field textarea, +.ui.form .fields.info .field select, +.ui.form .fields.info .field input:not([type]), +.ui.form .fields.info .field input[type="date"], +.ui.form .fields.info .field input[type="datetime-local"], +.ui.form .fields.info .field input[type="email"], +.ui.form .fields.info .field input[type="number"], +.ui.form .fields.info .field input[type="password"], +.ui.form .fields.info .field input[type="search"], +.ui.form .fields.info .field input[type="tel"], +.ui.form .fields.info .field input[type="time"], +.ui.form .fields.info .field input[type="text"], +.ui.form .fields.info .field input[type="file"], +.ui.form .fields.info .field input[type="url"], +.ui.form .field.info textarea, +.ui.form .field.info select, +.ui.form .field.info input:not([type]), +.ui.form .field.info input[type="date"], +.ui.form .field.info input[type="datetime-local"], +.ui.form .field.info input[type="email"], +.ui.form .field.info input[type="number"], +.ui.form .field.info input[type="password"], +.ui.form .field.info input[type="search"], +.ui.form .field.info input[type="tel"], +.ui.form .field.info input[type="time"], +.ui.form .field.info input[type="text"], +.ui.form .field.info input[type="file"], +.ui.form .field.info input[type="url"] { + color: #276F86; + background: #F8FFFF; + border-color: #A9D5DE; + border-radius: ''; + box-shadow: none; +} + +.ui.form .field.info textarea:focus, +.ui.form .field.info select:focus, +.ui.form .field.info input:not([type]):focus, +.ui.form .field.info input[type="date"]:focus, +.ui.form .field.info input[type="datetime-local"]:focus, +.ui.form .field.info input[type="email"]:focus, +.ui.form .field.info input[type="number"]:focus, +.ui.form .field.info input[type="password"]:focus, +.ui.form .field.info input[type="search"]:focus, +.ui.form .field.info input[type="tel"]:focus, +.ui.form .field.info input[type="time"]:focus, +.ui.form .field.info input[type="text"]:focus, +.ui.form .field.info input[type="file"]:focus, +.ui.form .field.info input[type="url"]:focus { + background: #F8FFFF; + border-color: #A9D5DE; + color: #276F86; + box-shadow: none; +} + +/* Preserve Native Select Stylings */ + +.ui.form .field.info select { + -webkit-appearance: menulist-button; +} + +/*------------------ + Input State + --------------------*/ + +/* Transparent */ + +.ui.form .field.info .transparent.input input, +.ui.form .field.info .transparent.input textarea, +.ui.form .field.info input.transparent, +.ui.form .field.info textarea.transparent { + background-color: #F8FFFF !important; + color: #276F86 !important; +} + +/* Autofilled */ + +.ui.form .info.info input:-webkit-autofill { + box-shadow: 0 0 0 100px #F0FAFF inset !important; + border-color: #b3e0e0 !important; +} + +/* Placeholder */ + +.ui.form .info ::-webkit-input-placeholder { + color: #98cfe1; +} + +.ui.form .info :-ms-input-placeholder { + color: #98cfe1 !important; +} + +.ui.form .info ::-moz-placeholder { + color: #98cfe1; +} + +.ui.form .info :focus::-webkit-input-placeholder { + color: #70bdd6; +} + +.ui.form .info :focus:-ms-input-placeholder { + color: #70bdd6 !important; +} + +.ui.form .info :focus::-moz-placeholder { + color: #70bdd6; +} + +/*------------------ + Dropdown State + --------------------*/ + +.ui.form .fields.info .field .ui.dropdown, +.ui.form .fields.info .field .ui.dropdown .item, +.ui.form .field.info .ui.dropdown, +.ui.form .field.info .ui.dropdown .text, +.ui.form .field.info .ui.dropdown .item { + background: #F8FFFF; + color: #276F86; +} + +.ui.form .fields.info .field .ui.dropdown, +.ui.form .field.info .ui.dropdown { + border-color: #A9D5DE !important; +} + +.ui.form .fields.info .field .ui.dropdown:hover, +.ui.form .field.info .ui.dropdown:hover { + border-color: #A9D5DE !important; +} + +.ui.form .fields.info .field .ui.dropdown:hover .menu, +.ui.form .field.info .ui.dropdown:hover .menu { + border-color: #A9D5DE; +} + +.ui.form .fields.info .field .ui.multiple.selection.dropdown > .label, +.ui.form .field.info .ui.multiple.selection.dropdown > .label { + background-color: #cce3ea; + color: #276F86; +} + +/* Hover */ + +.ui.form .fields.info .field .ui.dropdown .menu .item:hover, +.ui.form .field.info .ui.dropdown .menu .item:hover { + background-color: #e9f2fb; +} + +/* Selected */ + +.ui.form .fields.info .field .ui.dropdown .menu .selected.item, +.ui.form .field.info .ui.dropdown .menu .selected.item { + background-color: #e9f2fb; +} + +/* Active */ + +.ui.form .fields.info .field .ui.dropdown .menu .active.item, +.ui.form .field.info .ui.dropdown .menu .active.item { + background-color: #cef1fd !important; +} + +/*-------------------- + Checkbox State + ---------------------*/ + +.ui.form .fields.info .field .checkbox:not(.toggle):not(.slider) label, +.ui.form .field.info .checkbox:not(.toggle):not(.slider) label, +.ui.form .fields.info .field .checkbox:not(.toggle):not(.slider) .box, +.ui.form .field.info .checkbox:not(.toggle):not(.slider) .box { + color: #276F86; +} + +.ui.form .fields.info .field .checkbox:not(.toggle):not(.slider) label:before, +.ui.form .field.info .checkbox:not(.toggle):not(.slider) label:before, +.ui.form .fields.info .field .checkbox:not(.toggle):not(.slider) .box:before, +.ui.form .field.info .checkbox:not(.toggle):not(.slider) .box:before { + background: #F8FFFF; + border-color: #A9D5DE; +} + +.ui.form .fields.info .field .checkbox label:after, +.ui.form .field.info .checkbox label:after, +.ui.form .fields.info .field .checkbox .box:after, +.ui.form .field.info .checkbox .box:after { + color: #276F86; +} + +/* On Form */ + +.ui.form.success .success.message:not(:empty) { + display: block; +} + +.ui.form.success .compact.success.message:not(:empty) { + display: inline-block; +} + +.ui.form.success .icon.success.message:not(:empty) { + display: flex; +} + +/* On Field(s) */ + +.ui.form .fields.success .success.message:not(:empty), +.ui.form .field.success .success.message:not(:empty) { + display: block; +} + +.ui.form .fields.success .compact.success.message:not(:empty), +.ui.form .field.success .compact.success.message:not(:empty) { + display: inline-block; +} + +.ui.form .fields.success .icon.success.message:not(:empty), +.ui.form .field.success .icon.success.message:not(:empty) { + display: flex; +} + +.ui.ui.form .fields.success .field label, +.ui.ui.form .field.success label, +.ui.ui.form .fields.success .field .input, +.ui.ui.form .field.success .input { + color: #2C662D; +} + +.ui.form .fields.success .field .corner.label, +.ui.form .field.success .corner.label { + border-color: #2C662D; + color: #FFFFFF; +} + +.ui.form .fields.success .field textarea, +.ui.form .fields.success .field select, +.ui.form .fields.success .field input:not([type]), +.ui.form .fields.success .field input[type="date"], +.ui.form .fields.success .field input[type="datetime-local"], +.ui.form .fields.success .field input[type="email"], +.ui.form .fields.success .field input[type="number"], +.ui.form .fields.success .field input[type="password"], +.ui.form .fields.success .field input[type="search"], +.ui.form .fields.success .field input[type="tel"], +.ui.form .fields.success .field input[type="time"], +.ui.form .fields.success .field input[type="text"], +.ui.form .fields.success .field input[type="file"], +.ui.form .fields.success .field input[type="url"], +.ui.form .field.success textarea, +.ui.form .field.success select, +.ui.form .field.success input:not([type]), +.ui.form .field.success input[type="date"], +.ui.form .field.success input[type="datetime-local"], +.ui.form .field.success input[type="email"], +.ui.form .field.success input[type="number"], +.ui.form .field.success input[type="password"], +.ui.form .field.success input[type="search"], +.ui.form .field.success input[type="tel"], +.ui.form .field.success input[type="time"], +.ui.form .field.success input[type="text"], +.ui.form .field.success input[type="file"], +.ui.form .field.success input[type="url"] { + color: #2C662D; + background: #FCFFF5; + border-color: #A3C293; + border-radius: ''; + box-shadow: none; +} + +.ui.form .field.success textarea:focus, +.ui.form .field.success select:focus, +.ui.form .field.success input:not([type]):focus, +.ui.form .field.success input[type="date"]:focus, +.ui.form .field.success input[type="datetime-local"]:focus, +.ui.form .field.success input[type="email"]:focus, +.ui.form .field.success input[type="number"]:focus, +.ui.form .field.success input[type="password"]:focus, +.ui.form .field.success input[type="search"]:focus, +.ui.form .field.success input[type="tel"]:focus, +.ui.form .field.success input[type="time"]:focus, +.ui.form .field.success input[type="text"]:focus, +.ui.form .field.success input[type="file"]:focus, +.ui.form .field.success input[type="url"]:focus { + background: #FCFFF5; + border-color: #A3C293; + color: #2C662D; + box-shadow: none; +} + +/* Preserve Native Select Stylings */ + +.ui.form .field.success select { + -webkit-appearance: menulist-button; +} + +/*------------------ + Input State + --------------------*/ + +/* Transparent */ + +.ui.form .field.success .transparent.input input, +.ui.form .field.success .transparent.input textarea, +.ui.form .field.success input.transparent, +.ui.form .field.success textarea.transparent { + background-color: #FCFFF5 !important; + color: #2C662D !important; +} + +/* Autofilled */ + +.ui.form .success.success input:-webkit-autofill { + box-shadow: 0 0 0 100px #F0FFF0 inset !important; + border-color: #bee0b3 !important; +} + +/* Placeholder */ + +.ui.form .success ::-webkit-input-placeholder { + color: #8fcf90; +} + +.ui.form .success :-ms-input-placeholder { + color: #8fcf90 !important; +} + +.ui.form .success ::-moz-placeholder { + color: #8fcf90; +} + +.ui.form .success :focus::-webkit-input-placeholder { + color: #6cbf6d; +} + +.ui.form .success :focus:-ms-input-placeholder { + color: #6cbf6d !important; +} + +.ui.form .success :focus::-moz-placeholder { + color: #6cbf6d; +} + +/*------------------ + Dropdown State + --------------------*/ + +.ui.form .fields.success .field .ui.dropdown, +.ui.form .fields.success .field .ui.dropdown .item, +.ui.form .field.success .ui.dropdown, +.ui.form .field.success .ui.dropdown .text, +.ui.form .field.success .ui.dropdown .item { + background: #FCFFF5; + color: #2C662D; +} + +.ui.form .fields.success .field .ui.dropdown, +.ui.form .field.success .ui.dropdown { + border-color: #A3C293 !important; +} + +.ui.form .fields.success .field .ui.dropdown:hover, +.ui.form .field.success .ui.dropdown:hover { + border-color: #A3C293 !important; +} + +.ui.form .fields.success .field .ui.dropdown:hover .menu, +.ui.form .field.success .ui.dropdown:hover .menu { + border-color: #A3C293; +} + +.ui.form .fields.success .field .ui.multiple.selection.dropdown > .label, +.ui.form .field.success .ui.multiple.selection.dropdown > .label { + background-color: #cceacc; + color: #2C662D; +} + +/* Hover */ + +.ui.form .fields.success .field .ui.dropdown .menu .item:hover, +.ui.form .field.success .ui.dropdown .menu .item:hover { + background-color: #e9fbe9; +} + +/* Selected */ + +.ui.form .fields.success .field .ui.dropdown .menu .selected.item, +.ui.form .field.success .ui.dropdown .menu .selected.item { + background-color: #e9fbe9; +} + +/* Active */ + +.ui.form .fields.success .field .ui.dropdown .menu .active.item, +.ui.form .field.success .ui.dropdown .menu .active.item { + background-color: #dafdce !important; +} + +/*-------------------- + Checkbox State + ---------------------*/ + +.ui.form .fields.success .field .checkbox:not(.toggle):not(.slider) label, +.ui.form .field.success .checkbox:not(.toggle):not(.slider) label, +.ui.form .fields.success .field .checkbox:not(.toggle):not(.slider) .box, +.ui.form .field.success .checkbox:not(.toggle):not(.slider) .box { + color: #2C662D; +} + +.ui.form .fields.success .field .checkbox:not(.toggle):not(.slider) label:before, +.ui.form .field.success .checkbox:not(.toggle):not(.slider) label:before, +.ui.form .fields.success .field .checkbox:not(.toggle):not(.slider) .box:before, +.ui.form .field.success .checkbox:not(.toggle):not(.slider) .box:before { + background: #FCFFF5; + border-color: #A3C293; +} + +.ui.form .fields.success .field .checkbox label:after, +.ui.form .field.success .checkbox label:after, +.ui.form .fields.success .field .checkbox .box:after, +.ui.form .field.success .checkbox .box:after { + color: #2C662D; +} + +/* On Form */ + +.ui.form.warning .warning.message:not(:empty) { + display: block; +} + +.ui.form.warning .compact.warning.message:not(:empty) { + display: inline-block; +} + +.ui.form.warning .icon.warning.message:not(:empty) { + display: flex; +} + +/* On Field(s) */ + +.ui.form .fields.warning .warning.message:not(:empty), +.ui.form .field.warning .warning.message:not(:empty) { + display: block; +} + +.ui.form .fields.warning .compact.warning.message:not(:empty), +.ui.form .field.warning .compact.warning.message:not(:empty) { + display: inline-block; +} + +.ui.form .fields.warning .icon.warning.message:not(:empty), +.ui.form .field.warning .icon.warning.message:not(:empty) { + display: flex; +} + +.ui.ui.form .fields.warning .field label, +.ui.ui.form .field.warning label, +.ui.ui.form .fields.warning .field .input, +.ui.ui.form .field.warning .input { + color: #573A08; +} + +.ui.form .fields.warning .field .corner.label, +.ui.form .field.warning .corner.label { + border-color: #573A08; + color: #FFFFFF; +} + +.ui.form .fields.warning .field textarea, +.ui.form .fields.warning .field select, +.ui.form .fields.warning .field input:not([type]), +.ui.form .fields.warning .field input[type="date"], +.ui.form .fields.warning .field input[type="datetime-local"], +.ui.form .fields.warning .field input[type="email"], +.ui.form .fields.warning .field input[type="number"], +.ui.form .fields.warning .field input[type="password"], +.ui.form .fields.warning .field input[type="search"], +.ui.form .fields.warning .field input[type="tel"], +.ui.form .fields.warning .field input[type="time"], +.ui.form .fields.warning .field input[type="text"], +.ui.form .fields.warning .field input[type="file"], +.ui.form .fields.warning .field input[type="url"], +.ui.form .field.warning textarea, +.ui.form .field.warning select, +.ui.form .field.warning input:not([type]), +.ui.form .field.warning input[type="date"], +.ui.form .field.warning input[type="datetime-local"], +.ui.form .field.warning input[type="email"], +.ui.form .field.warning input[type="number"], +.ui.form .field.warning input[type="password"], +.ui.form .field.warning input[type="search"], +.ui.form .field.warning input[type="tel"], +.ui.form .field.warning input[type="time"], +.ui.form .field.warning input[type="text"], +.ui.form .field.warning input[type="file"], +.ui.form .field.warning input[type="url"] { + color: #573A08; + background: #FFFAF3; + border-color: #C9BA9B; + border-radius: ''; + box-shadow: none; +} + +.ui.form .field.warning textarea:focus, +.ui.form .field.warning select:focus, +.ui.form .field.warning input:not([type]):focus, +.ui.form .field.warning input[type="date"]:focus, +.ui.form .field.warning input[type="datetime-local"]:focus, +.ui.form .field.warning input[type="email"]:focus, +.ui.form .field.warning input[type="number"]:focus, +.ui.form .field.warning input[type="password"]:focus, +.ui.form .field.warning input[type="search"]:focus, +.ui.form .field.warning input[type="tel"]:focus, +.ui.form .field.warning input[type="time"]:focus, +.ui.form .field.warning input[type="text"]:focus, +.ui.form .field.warning input[type="file"]:focus, +.ui.form .field.warning input[type="url"]:focus { + background: #FFFAF3; + border-color: #C9BA9B; + color: #573A08; + box-shadow: none; +} + +/* Preserve Native Select Stylings */ + +.ui.form .field.warning select { + -webkit-appearance: menulist-button; +} + +/*------------------ + Input State + --------------------*/ + +/* Transparent */ + +.ui.form .field.warning .transparent.input input, +.ui.form .field.warning .transparent.input textarea, +.ui.form .field.warning input.transparent, +.ui.form .field.warning textarea.transparent { + background-color: #FFFAF3 !important; + color: #573A08 !important; +} + +/* Autofilled */ + +.ui.form .warning.warning input:-webkit-autofill { + box-shadow: 0 0 0 100px #FFFFe0 inset !important; + border-color: #e0e0b3 !important; +} + +/* Placeholder */ + +.ui.form .warning ::-webkit-input-placeholder { + color: #edad3e; +} + +.ui.form .warning :-ms-input-placeholder { + color: #edad3e !important; +} + +.ui.form .warning ::-moz-placeholder { + color: #edad3e; +} + +.ui.form .warning :focus::-webkit-input-placeholder { + color: #e39715; +} + +.ui.form .warning :focus:-ms-input-placeholder { + color: #e39715 !important; +} + +.ui.form .warning :focus::-moz-placeholder { + color: #e39715; +} + +/*------------------ + Dropdown State + --------------------*/ + +.ui.form .fields.warning .field .ui.dropdown, +.ui.form .fields.warning .field .ui.dropdown .item, +.ui.form .field.warning .ui.dropdown, +.ui.form .field.warning .ui.dropdown .text, +.ui.form .field.warning .ui.dropdown .item { + background: #FFFAF3; + color: #573A08; +} + +.ui.form .fields.warning .field .ui.dropdown, +.ui.form .field.warning .ui.dropdown { + border-color: #C9BA9B !important; +} + +.ui.form .fields.warning .field .ui.dropdown:hover, +.ui.form .field.warning .ui.dropdown:hover { + border-color: #C9BA9B !important; +} + +.ui.form .fields.warning .field .ui.dropdown:hover .menu, +.ui.form .field.warning .ui.dropdown:hover .menu { + border-color: #C9BA9B; +} + +.ui.form .fields.warning .field .ui.multiple.selection.dropdown > .label, +.ui.form .field.warning .ui.multiple.selection.dropdown > .label { + background-color: #eaeacc; + color: #573A08; +} + +/* Hover */ + +.ui.form .fields.warning .field .ui.dropdown .menu .item:hover, +.ui.form .field.warning .ui.dropdown .menu .item:hover { + background-color: #fbfbe9; +} + +/* Selected */ + +.ui.form .fields.warning .field .ui.dropdown .menu .selected.item, +.ui.form .field.warning .ui.dropdown .menu .selected.item { + background-color: #fbfbe9; +} + +/* Active */ + +.ui.form .fields.warning .field .ui.dropdown .menu .active.item, +.ui.form .field.warning .ui.dropdown .menu .active.item { + background-color: #fdfdce !important; +} + +/*-------------------- + Checkbox State + ---------------------*/ + +.ui.form .fields.warning .field .checkbox:not(.toggle):not(.slider) label, +.ui.form .field.warning .checkbox:not(.toggle):not(.slider) label, +.ui.form .fields.warning .field .checkbox:not(.toggle):not(.slider) .box, +.ui.form .field.warning .checkbox:not(.toggle):not(.slider) .box { + color: #573A08; +} + +.ui.form .fields.warning .field .checkbox:not(.toggle):not(.slider) label:before, +.ui.form .field.warning .checkbox:not(.toggle):not(.slider) label:before, +.ui.form .fields.warning .field .checkbox:not(.toggle):not(.slider) .box:before, +.ui.form .field.warning .checkbox:not(.toggle):not(.slider) .box:before { + background: #FFFAF3; + border-color: #C9BA9B; +} + +.ui.form .fields.warning .field .checkbox label:after, +.ui.form .field.warning .checkbox label:after, +.ui.form .fields.warning .field .checkbox .box:after, +.ui.form .field.warning .checkbox .box:after { + color: #573A08; +} + +/*-------------------- + Disabled + ---------------------*/ + +.ui.form .disabled.fields .field, +.ui.form .disabled.field, +.ui.form .field :disabled { + pointer-events: none; + opacity: 0.45; +} + +.ui.form .field.disabled > label, +.ui.form .fields.disabled > label { + opacity: 0.45; +} + +.ui.form .field.disabled :disabled { + opacity: 1; +} + +/*-------------- + Loading + ---------------*/ + +.ui.loading.form { + position: relative; + cursor: default; + pointer-events: none; +} + +.ui.loading.form:before { + position: absolute; + content: ''; + top: 0; + left: 0; + background: rgba(255, 255, 255, 0.8); + width: 100%; + height: 100%; + z-index: 100; +} + +.ui.loading.form.segments:before { + border-radius: 0.28571429rem; +} + +.ui.loading.form:after { + position: absolute; + content: ''; + top: 50%; + left: 50%; + margin: -1.5em 0 0 -1.5em; + width: 3em; + height: 3em; + -webkit-animation: loader 0.6s infinite linear; + animation: loader 0.6s infinite linear; + border: 0.2em solid #767676; + border-radius: 500rem; + box-shadow: 0 0 0 1px transparent; + visibility: visible; + z-index: 101; +} + +/******************************* + Element Types +*******************************/ + +/*-------------------- + Required Field + ---------------------*/ + +.ui.form .required.fields:not(.grouped) > .field > label:after, +.ui.form .required.fields.grouped > label:after, +.ui.form .required.field > label:after, +.ui.form .required.fields:not(.grouped) > .field > .checkbox:after, +.ui.form .required.field > .checkbox:after, +.ui.form label.required:after { + margin: -0.2em 0 0 0.2em; + content: '*'; + color: #DB2828; +} + +.ui.form .required.fields:not(.grouped) > .field > label:after, +.ui.form .required.fields.grouped > label:after, +.ui.form .required.field > label:after, +.ui.form label.required:after { + display: inline-block; + vertical-align: top; +} + +.ui.form .required.fields:not(.grouped) > .field > .checkbox:after, +.ui.form .required.field > .checkbox:after { + position: absolute; + top: 0; + left: 100%; +} + +/******************************* + Variations +*******************************/ + +/*-------------------- + Inverted Colors + ---------------------*/ + +.ui.inverted.form label, +.ui.form .inverted.segment label, +.ui.form .inverted.segment .ui.checkbox label, +.ui.form .inverted.segment .ui.checkbox .box, +.ui.inverted.form .ui.checkbox label, +.ui.inverted.form .ui.checkbox .box, +.ui.inverted.form .inline.fields > label, +.ui.inverted.form .inline.fields .field > label, +.ui.inverted.form .inline.fields .field > p, +.ui.inverted.form .inline.field > label, +.ui.inverted.form .inline.field > p { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.loading.form { + color: #FFFFFF; +} + +.ui.inverted.loading.form:before { + background: rgba(0, 0, 0, 0.85); +} + +/* Inverted Field */ + +.ui.inverted.form input:not([type]), +.ui.inverted.form input[type="date"], +.ui.inverted.form input[type="datetime-local"], +.ui.inverted.form input[type="email"], +.ui.inverted.form input[type="number"], +.ui.inverted.form input[type="password"], +.ui.inverted.form input[type="search"], +.ui.inverted.form input[type="tel"], +.ui.inverted.form input[type="time"], +.ui.inverted.form input[type="text"], +.ui.inverted.form input[type="file"], +.ui.inverted.form input[type="url"] { + background: #FFFFFF; + border-color: rgba(255, 255, 255, 0.1); + color: rgba(0, 0, 0, 0.87); + box-shadow: none; +} + +/*-------------------- + Field Groups + ---------------------*/ + +/* Grouped Vertically */ + +.ui.form .grouped.fields { + display: block; + margin: 0 0 1em; +} + +.ui.form .grouped.fields:last-child { + margin-bottom: 0; +} + +.ui.form .grouped.fields > label { + margin: 0 0 0.28571429rem 0; + color: rgba(0, 0, 0, 0.87); + font-size: 0.92857143em; + font-weight: bold; + text-transform: none; +} + +.ui.form .grouped.fields .field, +.ui.form .grouped.inline.fields .field { + display: block; + margin: 0.5em 0; + padding: 0; +} + +.ui.form .grouped.inline.fields .ui.checkbox { + margin-bottom: 0.4em; +} + +/*-------------------- + Fields +---------------------*/ + +/* Split fields */ + +.ui.form .fields { + display: flex; + flex-direction: row; + margin: 0 -0.5em 1em; +} + +.ui.form .fields > .field { + flex: 0 1 auto; + padding-left: 0.5em; + padding-right: 0.5em; +} + +.ui.form .fields > .field:first-child { + border-left: none; + box-shadow: none; +} + +/* Other Combinations */ + +.ui.form .two.fields > .fields, +.ui.form .two.fields > .field { + width: 50%; +} + +.ui.form .three.fields > .fields, +.ui.form .three.fields > .field { + width: 33.33333333%; +} + +.ui.form .four.fields > .fields, +.ui.form .four.fields > .field { + width: 25%; +} + +.ui.form .five.fields > .fields, +.ui.form .five.fields > .field { + width: 20%; +} + +.ui.form .six.fields > .fields, +.ui.form .six.fields > .field { + width: 16.66666667%; +} + +.ui.form .seven.fields > .fields, +.ui.form .seven.fields > .field { + width: 14.28571429%; +} + +.ui.form .eight.fields > .fields, +.ui.form .eight.fields > .field { + width: 12.5%; +} + +.ui.form .nine.fields > .fields, +.ui.form .nine.fields > .field { + width: 11.11111111%; +} + +.ui.form .ten.fields > .fields, +.ui.form .ten.fields > .field { + width: 10%; +} + +/* Swap to full width on mobile */ + +@media only screen and (max-width: 767.98px) { + .ui.form .fields { + flex-wrap: wrap; + margin-bottom: 0; + } + + .ui.form:not(.unstackable) .fields:not(.unstackable) > .fields, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .field { + width: 100%; + margin: 0 0 1em; + } +} + +/* Sizing Combinations */ + +.ui.form .fields .wide.field { + width: 6.25%; + padding-left: 0.5em; + padding-right: 0.5em; +} + +.ui.form .one.wide.field { + width: 6.25%; +} + +.ui.form .two.wide.field { + width: 12.5%; +} + +.ui.form .three.wide.field { + width: 18.75%; +} + +.ui.form .four.wide.field { + width: 25%; +} + +.ui.form .five.wide.field { + width: 31.25%; +} + +.ui.form .six.wide.field { + width: 37.5%; +} + +.ui.form .seven.wide.field { + width: 43.75%; +} + +.ui.form .eight.wide.field { + width: 50%; +} + +.ui.form .nine.wide.field { + width: 56.25%; +} + +.ui.form .ten.wide.field { + width: 62.5%; +} + +.ui.form .eleven.wide.field { + width: 68.75%; +} + +.ui.form .twelve.wide.field { + width: 75%; +} + +.ui.form .thirteen.wide.field { + width: 81.25%; +} + +.ui.form .fourteen.wide.field { + width: 87.5%; +} + +.ui.form .fifteen.wide.field { + width: 93.75%; +} + +.ui.form .sixteen.wide.field { + width: 100%; +} + +/*-------------------- + Equal Width +---------------------*/ + +.ui[class*="equal width"].form .fields > .field, +.ui.form [class*="equal width"].fields > .field { + width: 100%; + flex: 1 1 auto; +} + +/*-------------------- + Inline Fields + ---------------------*/ + +.ui.form .inline.fields { + margin: 0 0 1em; + align-items: center; +} + +.ui.form .inline.fields .field { + margin: 0; + padding: 0 1em 0 0; +} + +/* Inline Label */ + +.ui.form .inline.fields > label, +.ui.form .inline.fields .field > label, +.ui.form .inline.fields .field > p, +.ui.form .inline.field > label, +.ui.form .inline.field > p { + display: inline-block; + width: auto; + margin-top: 0; + margin-bottom: 0; + vertical-align: baseline; + font-size: 0.92857143em; + font-weight: bold; + color: rgba(0, 0, 0, 0.87); + text-transform: none; +} + +/* Grouped Inline Label */ + +.ui.form .inline.fields > label { + margin: 0.035714em 1em 0 0; +} + +/* Inline Input */ + +.ui.form .inline.fields .field > input, +.ui.form .inline.fields .field > select, +.ui.form .inline.field > input, +.ui.form .inline.field > select { + display: inline-block; + width: auto; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + font-size: 1em; +} + +.ui.form .inline.fields .field .calendar:not(.popup), +.ui.form .inline.field .calendar:not(.popup) { + display: inline-block; +} + +.ui.form .inline.fields .field .calendar:not(.popup) > .input > input, +.ui.form .inline.field .calendar:not(.popup) > .input > input { + width: 13.11em; +} + +/* Label */ + +.ui.form .inline.fields .field > :first-child, +.ui.form .inline.field > :first-child { + margin: 0 0.85714286em 0 0; +} + +.ui.form .inline.fields .field > :only-child, +.ui.form .inline.field > :only-child { + margin: 0; +} + +/* Wide */ + +.ui.form .inline.fields .wide.field { + display: flex; + align-items: center; +} + +.ui.form .inline.fields .wide.field > input, +.ui.form .inline.fields .wide.field > select { + width: 100%; +} + +/*-------------------- + Sizes +---------------------*/ + +.ui.form, +.ui.form .field .dropdown, +.ui.form .field .dropdown .menu > .item { + font-size: 1rem; +} + +.ui.mini.form, +.ui.mini.form .field .dropdown, +.ui.mini.form .field .dropdown .menu > .item { + font-size: 0.78571429rem; +} + +.ui.tiny.form, +.ui.tiny.form .field .dropdown, +.ui.tiny.form .field .dropdown .menu > .item { + font-size: 0.85714286rem; +} + +.ui.small.form, +.ui.small.form .field .dropdown, +.ui.small.form .field .dropdown .menu > .item { + font-size: 0.92857143rem; +} + +.ui.large.form, +.ui.large.form .field .dropdown, +.ui.large.form .field .dropdown .menu > .item { + font-size: 1.14285714rem; +} + +.ui.big.form, +.ui.big.form .field .dropdown, +.ui.big.form .field .dropdown .menu > .item { + font-size: 1.28571429rem; +} + +.ui.huge.form, +.ui.huge.form .field .dropdown, +.ui.huge.form .field .dropdown .menu > .item { + font-size: 1.42857143rem; +} + +.ui.massive.form, +.ui.massive.form .field .dropdown, +.ui.massive.form .field .dropdown .menu > .item { + font-size: 1.71428571rem; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Grid + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Standard +*******************************/ + +.ui.grid { + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: stretch; + padding: 0; +} + +/*---------------------- + Remove Gutters +-----------------------*/ + +.ui.grid { + margin-top: -1rem; + margin-bottom: -1rem; + margin-left: -1rem; + margin-right: -1rem; +} + +.ui.relaxed.grid { + margin-left: -1.5rem; + margin-right: -1.5rem; +} + +.ui[class*="very relaxed"].grid { + margin-left: -2.5rem; + margin-right: -2.5rem; +} + +/* Preserve Rows Spacing on Consecutive Grids */ + +.ui.grid + .grid { + margin-top: 1rem; +} + +/*------------------- + Columns +--------------------*/ + +/* Standard 16 column */ + +.ui.grid > .column:not(.row), +.ui.grid > .row > .column { + position: relative; + display: inline-block; + width: 6.25%; + padding-left: 1rem; + padding-right: 1rem; + vertical-align: top; +} + +.ui.grid > * { + padding-left: 1rem; + padding-right: 1rem; +} + +/*------------------- + Rows +--------------------*/ + +.ui.grid > .row { + position: relative; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: inherit; + align-items: stretch; + width: 100% !important; + padding: 0; + padding-top: 1rem; + padding-bottom: 1rem; +} + +/*------------------- + Columns +--------------------*/ + +/* Vertical padding when no rows */ + +.ui.grid > .column:not(.row) { + padding-top: 1rem; + padding-bottom: 1rem; +} + +.ui.grid > .row > .column { + margin-top: 0; + margin-bottom: 0; +} + +/*------------------- + Content +--------------------*/ + +.ui.grid > .row > img, +.ui.grid > .row > .column > img { + max-width: 100%; +} + +/*------------------- + Loose Coupling +--------------------*/ + +/* Collapse Margin on Consecutive Grid */ + +.ui.grid > .ui.grid:first-child { + margin-top: 0; +} + +.ui.grid > .ui.grid:last-child { + margin-bottom: 0; +} + +/* Segment inside Aligned Grid */ + +.ui.grid .aligned.row > .column > .segment:not(.compact):not(.attached), +.ui.aligned.grid .column > .segment:not(.compact):not(.attached) { + width: 100%; +} + +/* Align Dividers with Gutter */ + +.ui.grid .row + .ui.divider { + flex-grow: 1; + margin: 1rem 1rem; +} + +.ui.grid .column + .ui.vertical.divider { + height: calc(50% - 1rem); +} + +/* Remove Border on Last Horizontal Segment */ + +.ui.grid > .row > .column:last-child > .horizontal.segment, +.ui.grid > .column:last-child > .horizontal.segment { + box-shadow: none; +} + +/******************************* + Variations +*******************************/ + +/*----------------------- + Page Grid + -------------------------*/ + +@media only screen and (max-width: 767.98px) { + .ui.page.grid { + width: auto; + padding-left: 0; + padding-right: 0; + margin-left: 0; + margin-right: 0; + } +} + +@media only screen and (min-width: 768px) and (max-width: 991.98px) { + .ui.page.grid { + width: auto; + margin-left: 0; + margin-right: 0; + padding-left: 2em; + padding-right: 2em; + } +} + +@media only screen and (min-width: 992px) and (max-width: 1199.98px) { + .ui.page.grid { + width: auto; + margin-left: 0; + margin-right: 0; + padding-left: 3%; + padding-right: 3%; + } +} + +@media only screen and (min-width: 1200px) and (max-width: 1919.98px) { + .ui.page.grid { + width: auto; + margin-left: 0; + margin-right: 0; + padding-left: 15%; + padding-right: 15%; + } +} + +@media only screen and (min-width: 1920px) { + .ui.page.grid { + width: auto; + margin-left: 0; + margin-right: 0; + padding-left: 23%; + padding-right: 23%; + } +} + +/*------------------- + Column Count +--------------------*/ + +/* Assume full width with one column */ + +.ui.grid > .column:only-child, +.ui.grid > .row > .column:only-child { + width: 100%; +} + +/* Grid Based */ + +.ui[class*="one column"].grid > .row > .column, +.ui[class*="one column"].grid > .column:not(.row) { + width: 100%; +} + +.ui[class*="two column"].grid > .row > .column, +.ui[class*="two column"].grid > .column:not(.row) { + width: 50%; +} + +.ui[class*="three column"].grid > .row > .column, +.ui[class*="three column"].grid > .column:not(.row) { + width: 33.33333333%; +} + +.ui[class*="four column"].grid > .row > .column, +.ui[class*="four column"].grid > .column:not(.row) { + width: 25%; +} + +.ui[class*="five column"].grid > .row > .column, +.ui[class*="five column"].grid > .column:not(.row) { + width: 20%; +} + +.ui[class*="six column"].grid > .row > .column, +.ui[class*="six column"].grid > .column:not(.row) { + width: 16.66666667%; +} + +.ui[class*="seven column"].grid > .row > .column, +.ui[class*="seven column"].grid > .column:not(.row) { + width: 14.28571429%; +} + +.ui[class*="eight column"].grid > .row > .column, +.ui[class*="eight column"].grid > .column:not(.row) { + width: 12.5%; +} + +.ui[class*="nine column"].grid > .row > .column, +.ui[class*="nine column"].grid > .column:not(.row) { + width: 11.11111111%; +} + +.ui[class*="ten column"].grid > .row > .column, +.ui[class*="ten column"].grid > .column:not(.row) { + width: 10%; +} + +.ui[class*="eleven column"].grid > .row > .column, +.ui[class*="eleven column"].grid > .column:not(.row) { + width: 9.09090909%; +} + +.ui[class*="twelve column"].grid > .row > .column, +.ui[class*="twelve column"].grid > .column:not(.row) { + width: 8.33333333%; +} + +.ui[class*="thirteen column"].grid > .row > .column, +.ui[class*="thirteen column"].grid > .column:not(.row) { + width: 7.69230769%; +} + +.ui[class*="fourteen column"].grid > .row > .column, +.ui[class*="fourteen column"].grid > .column:not(.row) { + width: 7.14285714%; +} + +.ui[class*="fifteen column"].grid > .row > .column, +.ui[class*="fifteen column"].grid > .column:not(.row) { + width: 6.66666667%; +} + +.ui[class*="sixteen column"].grid > .row > .column, +.ui[class*="sixteen column"].grid > .column:not(.row) { + width: 6.25%; +} + +/* Row Based Overrides */ + +.ui.grid > [class*="one column"].row > .column { + width: 100% !important; +} + +.ui.grid > [class*="two column"].row > .column { + width: 50% !important; +} + +.ui.grid > [class*="three column"].row > .column { + width: 33.33333333% !important; +} + +.ui.grid > [class*="four column"].row > .column { + width: 25% !important; +} + +.ui.grid > [class*="five column"].row > .column { + width: 20% !important; +} + +.ui.grid > [class*="six column"].row > .column { + width: 16.66666667% !important; +} + +.ui.grid > [class*="seven column"].row > .column { + width: 14.28571429% !important; +} + +.ui.grid > [class*="eight column"].row > .column { + width: 12.5% !important; +} + +.ui.grid > [class*="nine column"].row > .column { + width: 11.11111111% !important; +} + +.ui.grid > [class*="ten column"].row > .column { + width: 10% !important; +} + +.ui.grid > [class*="eleven column"].row > .column { + width: 9.09090909% !important; +} + +.ui.grid > [class*="twelve column"].row > .column { + width: 8.33333333% !important; +} + +.ui.grid > [class*="thirteen column"].row > .column { + width: 7.69230769% !important; +} + +.ui.grid > [class*="fourteen column"].row > .column { + width: 7.14285714% !important; +} + +.ui.grid > [class*="fifteen column"].row > .column { + width: 6.66666667% !important; +} + +.ui.grid > [class*="sixteen column"].row > .column { + width: 6.25% !important; +} + +/* Celled Page */ + +.ui.celled.page.grid { + box-shadow: none; +} + +/*------------------- + Column Width +--------------------*/ + +/* Sizing Combinations */ + +.ui.grid > .row > [class*="one wide"].column, +.ui.grid > .column.row > [class*="one wide"].column, +.ui.grid > [class*="one wide"].column, +.ui.column.grid > [class*="one wide"].column { + width: 6.25% !important; +} + +.ui.grid > .row > [class*="two wide"].column, +.ui.grid > .column.row > [class*="two wide"].column, +.ui.grid > [class*="two wide"].column, +.ui.column.grid > [class*="two wide"].column { + width: 12.5% !important; +} + +.ui.grid > .row > [class*="three wide"].column, +.ui.grid > .column.row > [class*="three wide"].column, +.ui.grid > [class*="three wide"].column, +.ui.column.grid > [class*="three wide"].column { + width: 18.75% !important; +} + +.ui.grid > .row > [class*="four wide"].column, +.ui.grid > .column.row > [class*="four wide"].column, +.ui.grid > [class*="four wide"].column, +.ui.column.grid > [class*="four wide"].column { + width: 25% !important; +} + +.ui.grid > .row > [class*="five wide"].column, +.ui.grid > .column.row > [class*="five wide"].column, +.ui.grid > [class*="five wide"].column, +.ui.column.grid > [class*="five wide"].column { + width: 31.25% !important; +} + +.ui.grid > .row > [class*="six wide"].column, +.ui.grid > .column.row > [class*="six wide"].column, +.ui.grid > [class*="six wide"].column, +.ui.column.grid > [class*="six wide"].column { + width: 37.5% !important; +} + +.ui.grid > .row > [class*="seven wide"].column, +.ui.grid > .column.row > [class*="seven wide"].column, +.ui.grid > [class*="seven wide"].column, +.ui.column.grid > [class*="seven wide"].column { + width: 43.75% !important; +} + +.ui.grid > .row > [class*="eight wide"].column, +.ui.grid > .column.row > [class*="eight wide"].column, +.ui.grid > [class*="eight wide"].column, +.ui.column.grid > [class*="eight wide"].column { + width: 50% !important; +} + +.ui.grid > .row > [class*="nine wide"].column, +.ui.grid > .column.row > [class*="nine wide"].column, +.ui.grid > [class*="nine wide"].column, +.ui.column.grid > [class*="nine wide"].column { + width: 56.25% !important; +} + +.ui.grid > .row > [class*="ten wide"].column, +.ui.grid > .column.row > [class*="ten wide"].column, +.ui.grid > [class*="ten wide"].column, +.ui.column.grid > [class*="ten wide"].column { + width: 62.5% !important; +} + +.ui.grid > .row > [class*="eleven wide"].column, +.ui.grid > .column.row > [class*="eleven wide"].column, +.ui.grid > [class*="eleven wide"].column, +.ui.column.grid > [class*="eleven wide"].column { + width: 68.75% !important; +} + +.ui.grid > .row > [class*="twelve wide"].column, +.ui.grid > .column.row > [class*="twelve wide"].column, +.ui.grid > [class*="twelve wide"].column, +.ui.column.grid > [class*="twelve wide"].column { + width: 75% !important; +} + +.ui.grid > .row > [class*="thirteen wide"].column, +.ui.grid > .column.row > [class*="thirteen wide"].column, +.ui.grid > [class*="thirteen wide"].column, +.ui.column.grid > [class*="thirteen wide"].column { + width: 81.25% !important; +} + +.ui.grid > .row > [class*="fourteen wide"].column, +.ui.grid > .column.row > [class*="fourteen wide"].column, +.ui.grid > [class*="fourteen wide"].column, +.ui.column.grid > [class*="fourteen wide"].column { + width: 87.5% !important; +} + +.ui.grid > .row > [class*="fifteen wide"].column, +.ui.grid > .column.row > [class*="fifteen wide"].column, +.ui.grid > [class*="fifteen wide"].column, +.ui.column.grid > [class*="fifteen wide"].column { + width: 93.75% !important; +} + +.ui.grid > .row > [class*="sixteen wide"].column, +.ui.grid > .column.row > [class*="sixteen wide"].column, +.ui.grid > [class*="sixteen wide"].column, +.ui.column.grid > [class*="sixteen wide"].column { + width: 100% !important; +} + +/*---------------------- + Width per Device +-----------------------*/ + +/* Mobile Sizing Combinations */ + +@media only screen and (min-width: 320px) and (max-width: 767.98px) { + .ui.grid > .row > [class*="one wide mobile"].column, + .ui.grid > .column.row > [class*="one wide mobile"].column, + .ui.grid > [class*="one wide mobile"].column, + .ui.column.grid > [class*="one wide mobile"].column { + width: 6.25% !important; + } + + .ui.grid > .row > [class*="two wide mobile"].column, + .ui.grid > .column.row > [class*="two wide mobile"].column, + .ui.grid > [class*="two wide mobile"].column, + .ui.column.grid > [class*="two wide mobile"].column { + width: 12.5% !important; + } + + .ui.grid > .row > [class*="three wide mobile"].column, + .ui.grid > .column.row > [class*="three wide mobile"].column, + .ui.grid > [class*="three wide mobile"].column, + .ui.column.grid > [class*="three wide mobile"].column { + width: 18.75% !important; + } + + .ui.grid > .row > [class*="four wide mobile"].column, + .ui.grid > .column.row > [class*="four wide mobile"].column, + .ui.grid > [class*="four wide mobile"].column, + .ui.column.grid > [class*="four wide mobile"].column { + width: 25% !important; + } + + .ui.grid > .row > [class*="five wide mobile"].column, + .ui.grid > .column.row > [class*="five wide mobile"].column, + .ui.grid > [class*="five wide mobile"].column, + .ui.column.grid > [class*="five wide mobile"].column { + width: 31.25% !important; + } + + .ui.grid > .row > [class*="six wide mobile"].column, + .ui.grid > .column.row > [class*="six wide mobile"].column, + .ui.grid > [class*="six wide mobile"].column, + .ui.column.grid > [class*="six wide mobile"].column { + width: 37.5% !important; + } + + .ui.grid > .row > [class*="seven wide mobile"].column, + .ui.grid > .column.row > [class*="seven wide mobile"].column, + .ui.grid > [class*="seven wide mobile"].column, + .ui.column.grid > [class*="seven wide mobile"].column { + width: 43.75% !important; + } + + .ui.grid > .row > [class*="eight wide mobile"].column, + .ui.grid > .column.row > [class*="eight wide mobile"].column, + .ui.grid > [class*="eight wide mobile"].column, + .ui.column.grid > [class*="eight wide mobile"].column { + width: 50% !important; + } + + .ui.grid > .row > [class*="nine wide mobile"].column, + .ui.grid > .column.row > [class*="nine wide mobile"].column, + .ui.grid > [class*="nine wide mobile"].column, + .ui.column.grid > [class*="nine wide mobile"].column { + width: 56.25% !important; + } + + .ui.grid > .row > [class*="ten wide mobile"].column, + .ui.grid > .column.row > [class*="ten wide mobile"].column, + .ui.grid > [class*="ten wide mobile"].column, + .ui.column.grid > [class*="ten wide mobile"].column { + width: 62.5% !important; + } + + .ui.grid > .row > [class*="eleven wide mobile"].column, + .ui.grid > .column.row > [class*="eleven wide mobile"].column, + .ui.grid > [class*="eleven wide mobile"].column, + .ui.column.grid > [class*="eleven wide mobile"].column { + width: 68.75% !important; + } + + .ui.grid > .row > [class*="twelve wide mobile"].column, + .ui.grid > .column.row > [class*="twelve wide mobile"].column, + .ui.grid > [class*="twelve wide mobile"].column, + .ui.column.grid > [class*="twelve wide mobile"].column { + width: 75% !important; + } + + .ui.grid > .row > [class*="thirteen wide mobile"].column, + .ui.grid > .column.row > [class*="thirteen wide mobile"].column, + .ui.grid > [class*="thirteen wide mobile"].column, + .ui.column.grid > [class*="thirteen wide mobile"].column { + width: 81.25% !important; + } + + .ui.grid > .row > [class*="fourteen wide mobile"].column, + .ui.grid > .column.row > [class*="fourteen wide mobile"].column, + .ui.grid > [class*="fourteen wide mobile"].column, + .ui.column.grid > [class*="fourteen wide mobile"].column { + width: 87.5% !important; + } + + .ui.grid > .row > [class*="fifteen wide mobile"].column, + .ui.grid > .column.row > [class*="fifteen wide mobile"].column, + .ui.grid > [class*="fifteen wide mobile"].column, + .ui.column.grid > [class*="fifteen wide mobile"].column { + width: 93.75% !important; + } + + .ui.grid > .row > [class*="sixteen wide mobile"].column, + .ui.grid > .column.row > [class*="sixteen wide mobile"].column, + .ui.grid > [class*="sixteen wide mobile"].column, + .ui.column.grid > [class*="sixteen wide mobile"].column { + width: 100% !important; + } +} + +/* Tablet Sizing Combinations */ + +@media only screen and (min-width: 768px) and (max-width: 991.98px) { + .ui.grid > .row > [class*="one wide tablet"].column, + .ui.grid > .column.row > [class*="one wide tablet"].column, + .ui.grid > [class*="one wide tablet"].column, + .ui.column.grid > [class*="one wide tablet"].column { + width: 6.25% !important; + } + + .ui.grid > .row > [class*="two wide tablet"].column, + .ui.grid > .column.row > [class*="two wide tablet"].column, + .ui.grid > [class*="two wide tablet"].column, + .ui.column.grid > [class*="two wide tablet"].column { + width: 12.5% !important; + } + + .ui.grid > .row > [class*="three wide tablet"].column, + .ui.grid > .column.row > [class*="three wide tablet"].column, + .ui.grid > [class*="three wide tablet"].column, + .ui.column.grid > [class*="three wide tablet"].column { + width: 18.75% !important; + } + + .ui.grid > .row > [class*="four wide tablet"].column, + .ui.grid > .column.row > [class*="four wide tablet"].column, + .ui.grid > [class*="four wide tablet"].column, + .ui.column.grid > [class*="four wide tablet"].column { + width: 25% !important; + } + + .ui.grid > .row > [class*="five wide tablet"].column, + .ui.grid > .column.row > [class*="five wide tablet"].column, + .ui.grid > [class*="five wide tablet"].column, + .ui.column.grid > [class*="five wide tablet"].column { + width: 31.25% !important; + } + + .ui.grid > .row > [class*="six wide tablet"].column, + .ui.grid > .column.row > [class*="six wide tablet"].column, + .ui.grid > [class*="six wide tablet"].column, + .ui.column.grid > [class*="six wide tablet"].column { + width: 37.5% !important; + } + + .ui.grid > .row > [class*="seven wide tablet"].column, + .ui.grid > .column.row > [class*="seven wide tablet"].column, + .ui.grid > [class*="seven wide tablet"].column, + .ui.column.grid > [class*="seven wide tablet"].column { + width: 43.75% !important; + } + + .ui.grid > .row > [class*="eight wide tablet"].column, + .ui.grid > .column.row > [class*="eight wide tablet"].column, + .ui.grid > [class*="eight wide tablet"].column, + .ui.column.grid > [class*="eight wide tablet"].column { + width: 50% !important; + } + + .ui.grid > .row > [class*="nine wide tablet"].column, + .ui.grid > .column.row > [class*="nine wide tablet"].column, + .ui.grid > [class*="nine wide tablet"].column, + .ui.column.grid > [class*="nine wide tablet"].column { + width: 56.25% !important; + } + + .ui.grid > .row > [class*="ten wide tablet"].column, + .ui.grid > .column.row > [class*="ten wide tablet"].column, + .ui.grid > [class*="ten wide tablet"].column, + .ui.column.grid > [class*="ten wide tablet"].column { + width: 62.5% !important; + } + + .ui.grid > .row > [class*="eleven wide tablet"].column, + .ui.grid > .column.row > [class*="eleven wide tablet"].column, + .ui.grid > [class*="eleven wide tablet"].column, + .ui.column.grid > [class*="eleven wide tablet"].column { + width: 68.75% !important; + } + + .ui.grid > .row > [class*="twelve wide tablet"].column, + .ui.grid > .column.row > [class*="twelve wide tablet"].column, + .ui.grid > [class*="twelve wide tablet"].column, + .ui.column.grid > [class*="twelve wide tablet"].column { + width: 75% !important; + } + + .ui.grid > .row > [class*="thirteen wide tablet"].column, + .ui.grid > .column.row > [class*="thirteen wide tablet"].column, + .ui.grid > [class*="thirteen wide tablet"].column, + .ui.column.grid > [class*="thirteen wide tablet"].column { + width: 81.25% !important; + } + + .ui.grid > .row > [class*="fourteen wide tablet"].column, + .ui.grid > .column.row > [class*="fourteen wide tablet"].column, + .ui.grid > [class*="fourteen wide tablet"].column, + .ui.column.grid > [class*="fourteen wide tablet"].column { + width: 87.5% !important; + } + + .ui.grid > .row > [class*="fifteen wide tablet"].column, + .ui.grid > .column.row > [class*="fifteen wide tablet"].column, + .ui.grid > [class*="fifteen wide tablet"].column, + .ui.column.grid > [class*="fifteen wide tablet"].column { + width: 93.75% !important; + } + + .ui.grid > .row > [class*="sixteen wide tablet"].column, + .ui.grid > .column.row > [class*="sixteen wide tablet"].column, + .ui.grid > [class*="sixteen wide tablet"].column, + .ui.column.grid > [class*="sixteen wide tablet"].column { + width: 100% !important; + } +} + +/* Computer/Desktop Sizing Combinations */ + +@media only screen and (min-width: 992px) { + .ui.grid > .row > [class*="one wide computer"].column, + .ui.grid > .column.row > [class*="one wide computer"].column, + .ui.grid > [class*="one wide computer"].column, + .ui.column.grid > [class*="one wide computer"].column { + width: 6.25% !important; + } + + .ui.grid > .row > [class*="two wide computer"].column, + .ui.grid > .column.row > [class*="two wide computer"].column, + .ui.grid > [class*="two wide computer"].column, + .ui.column.grid > [class*="two wide computer"].column { + width: 12.5% !important; + } + + .ui.grid > .row > [class*="three wide computer"].column, + .ui.grid > .column.row > [class*="three wide computer"].column, + .ui.grid > [class*="three wide computer"].column, + .ui.column.grid > [class*="three wide computer"].column { + width: 18.75% !important; + } + + .ui.grid > .row > [class*="four wide computer"].column, + .ui.grid > .column.row > [class*="four wide computer"].column, + .ui.grid > [class*="four wide computer"].column, + .ui.column.grid > [class*="four wide computer"].column { + width: 25% !important; + } + + .ui.grid > .row > [class*="five wide computer"].column, + .ui.grid > .column.row > [class*="five wide computer"].column, + .ui.grid > [class*="five wide computer"].column, + .ui.column.grid > [class*="five wide computer"].column { + width: 31.25% !important; + } + + .ui.grid > .row > [class*="six wide computer"].column, + .ui.grid > .column.row > [class*="six wide computer"].column, + .ui.grid > [class*="six wide computer"].column, + .ui.column.grid > [class*="six wide computer"].column { + width: 37.5% !important; + } + + .ui.grid > .row > [class*="seven wide computer"].column, + .ui.grid > .column.row > [class*="seven wide computer"].column, + .ui.grid > [class*="seven wide computer"].column, + .ui.column.grid > [class*="seven wide computer"].column { + width: 43.75% !important; + } + + .ui.grid > .row > [class*="eight wide computer"].column, + .ui.grid > .column.row > [class*="eight wide computer"].column, + .ui.grid > [class*="eight wide computer"].column, + .ui.column.grid > [class*="eight wide computer"].column { + width: 50% !important; + } + + .ui.grid > .row > [class*="nine wide computer"].column, + .ui.grid > .column.row > [class*="nine wide computer"].column, + .ui.grid > [class*="nine wide computer"].column, + .ui.column.grid > [class*="nine wide computer"].column { + width: 56.25% !important; + } + + .ui.grid > .row > [class*="ten wide computer"].column, + .ui.grid > .column.row > [class*="ten wide computer"].column, + .ui.grid > [class*="ten wide computer"].column, + .ui.column.grid > [class*="ten wide computer"].column { + width: 62.5% !important; + } + + .ui.grid > .row > [class*="eleven wide computer"].column, + .ui.grid > .column.row > [class*="eleven wide computer"].column, + .ui.grid > [class*="eleven wide computer"].column, + .ui.column.grid > [class*="eleven wide computer"].column { + width: 68.75% !important; + } + + .ui.grid > .row > [class*="twelve wide computer"].column, + .ui.grid > .column.row > [class*="twelve wide computer"].column, + .ui.grid > [class*="twelve wide computer"].column, + .ui.column.grid > [class*="twelve wide computer"].column { + width: 75% !important; + } + + .ui.grid > .row > [class*="thirteen wide computer"].column, + .ui.grid > .column.row > [class*="thirteen wide computer"].column, + .ui.grid > [class*="thirteen wide computer"].column, + .ui.column.grid > [class*="thirteen wide computer"].column { + width: 81.25% !important; + } + + .ui.grid > .row > [class*="fourteen wide computer"].column, + .ui.grid > .column.row > [class*="fourteen wide computer"].column, + .ui.grid > [class*="fourteen wide computer"].column, + .ui.column.grid > [class*="fourteen wide computer"].column { + width: 87.5% !important; + } + + .ui.grid > .row > [class*="fifteen wide computer"].column, + .ui.grid > .column.row > [class*="fifteen wide computer"].column, + .ui.grid > [class*="fifteen wide computer"].column, + .ui.column.grid > [class*="fifteen wide computer"].column { + width: 93.75% !important; + } + + .ui.grid > .row > [class*="sixteen wide computer"].column, + .ui.grid > .column.row > [class*="sixteen wide computer"].column, + .ui.grid > [class*="sixteen wide computer"].column, + .ui.column.grid > [class*="sixteen wide computer"].column { + width: 100% !important; + } +} + +/* Large Monitor Sizing Combinations */ + +@media only screen and (min-width: 1200px) and (max-width: 1919.98px) { + .ui.grid > .row > [class*="one wide large screen"].column, + .ui.grid > .column.row > [class*="one wide large screen"].column, + .ui.grid > [class*="one wide large screen"].column, + .ui.column.grid > [class*="one wide large screen"].column { + width: 6.25% !important; + } + + .ui.grid > .row > [class*="two wide large screen"].column, + .ui.grid > .column.row > [class*="two wide large screen"].column, + .ui.grid > [class*="two wide large screen"].column, + .ui.column.grid > [class*="two wide large screen"].column { + width: 12.5% !important; + } + + .ui.grid > .row > [class*="three wide large screen"].column, + .ui.grid > .column.row > [class*="three wide large screen"].column, + .ui.grid > [class*="three wide large screen"].column, + .ui.column.grid > [class*="three wide large screen"].column { + width: 18.75% !important; + } + + .ui.grid > .row > [class*="four wide large screen"].column, + .ui.grid > .column.row > [class*="four wide large screen"].column, + .ui.grid > [class*="four wide large screen"].column, + .ui.column.grid > [class*="four wide large screen"].column { + width: 25% !important; + } + + .ui.grid > .row > [class*="five wide large screen"].column, + .ui.grid > .column.row > [class*="five wide large screen"].column, + .ui.grid > [class*="five wide large screen"].column, + .ui.column.grid > [class*="five wide large screen"].column { + width: 31.25% !important; + } + + .ui.grid > .row > [class*="six wide large screen"].column, + .ui.grid > .column.row > [class*="six wide large screen"].column, + .ui.grid > [class*="six wide large screen"].column, + .ui.column.grid > [class*="six wide large screen"].column { + width: 37.5% !important; + } + + .ui.grid > .row > [class*="seven wide large screen"].column, + .ui.grid > .column.row > [class*="seven wide large screen"].column, + .ui.grid > [class*="seven wide large screen"].column, + .ui.column.grid > [class*="seven wide large screen"].column { + width: 43.75% !important; + } + + .ui.grid > .row > [class*="eight wide large screen"].column, + .ui.grid > .column.row > [class*="eight wide large screen"].column, + .ui.grid > [class*="eight wide large screen"].column, + .ui.column.grid > [class*="eight wide large screen"].column { + width: 50% !important; + } + + .ui.grid > .row > [class*="nine wide large screen"].column, + .ui.grid > .column.row > [class*="nine wide large screen"].column, + .ui.grid > [class*="nine wide large screen"].column, + .ui.column.grid > [class*="nine wide large screen"].column { + width: 56.25% !important; + } + + .ui.grid > .row > [class*="ten wide large screen"].column, + .ui.grid > .column.row > [class*="ten wide large screen"].column, + .ui.grid > [class*="ten wide large screen"].column, + .ui.column.grid > [class*="ten wide large screen"].column { + width: 62.5% !important; + } + + .ui.grid > .row > [class*="eleven wide large screen"].column, + .ui.grid > .column.row > [class*="eleven wide large screen"].column, + .ui.grid > [class*="eleven wide large screen"].column, + .ui.column.grid > [class*="eleven wide large screen"].column { + width: 68.75% !important; + } + + .ui.grid > .row > [class*="twelve wide large screen"].column, + .ui.grid > .column.row > [class*="twelve wide large screen"].column, + .ui.grid > [class*="twelve wide large screen"].column, + .ui.column.grid > [class*="twelve wide large screen"].column { + width: 75% !important; + } + + .ui.grid > .row > [class*="thirteen wide large screen"].column, + .ui.grid > .column.row > [class*="thirteen wide large screen"].column, + .ui.grid > [class*="thirteen wide large screen"].column, + .ui.column.grid > [class*="thirteen wide large screen"].column { + width: 81.25% !important; + } + + .ui.grid > .row > [class*="fourteen wide large screen"].column, + .ui.grid > .column.row > [class*="fourteen wide large screen"].column, + .ui.grid > [class*="fourteen wide large screen"].column, + .ui.column.grid > [class*="fourteen wide large screen"].column { + width: 87.5% !important; + } + + .ui.grid > .row > [class*="fifteen wide large screen"].column, + .ui.grid > .column.row > [class*="fifteen wide large screen"].column, + .ui.grid > [class*="fifteen wide large screen"].column, + .ui.column.grid > [class*="fifteen wide large screen"].column { + width: 93.75% !important; + } + + .ui.grid > .row > [class*="sixteen wide large screen"].column, + .ui.grid > .column.row > [class*="sixteen wide large screen"].column, + .ui.grid > [class*="sixteen wide large screen"].column, + .ui.column.grid > [class*="sixteen wide large screen"].column { + width: 100% !important; + } +} + +/* Widescreen Sizing Combinations */ + +@media only screen and (min-width: 1920px) { + .ui.grid > .row > [class*="one wide widescreen"].column, + .ui.grid > .column.row > [class*="one wide widescreen"].column, + .ui.grid > [class*="one wide widescreen"].column, + .ui.column.grid > [class*="one wide widescreen"].column { + width: 6.25% !important; + } + + .ui.grid > .row > [class*="two wide widescreen"].column, + .ui.grid > .column.row > [class*="two wide widescreen"].column, + .ui.grid > [class*="two wide widescreen"].column, + .ui.column.grid > [class*="two wide widescreen"].column { + width: 12.5% !important; + } + + .ui.grid > .row > [class*="three wide widescreen"].column, + .ui.grid > .column.row > [class*="three wide widescreen"].column, + .ui.grid > [class*="three wide widescreen"].column, + .ui.column.grid > [class*="three wide widescreen"].column { + width: 18.75% !important; + } + + .ui.grid > .row > [class*="four wide widescreen"].column, + .ui.grid > .column.row > [class*="four wide widescreen"].column, + .ui.grid > [class*="four wide widescreen"].column, + .ui.column.grid > [class*="four wide widescreen"].column { + width: 25% !important; + } + + .ui.grid > .row > [class*="five wide widescreen"].column, + .ui.grid > .column.row > [class*="five wide widescreen"].column, + .ui.grid > [class*="five wide widescreen"].column, + .ui.column.grid > [class*="five wide widescreen"].column { + width: 31.25% !important; + } + + .ui.grid > .row > [class*="six wide widescreen"].column, + .ui.grid > .column.row > [class*="six wide widescreen"].column, + .ui.grid > [class*="six wide widescreen"].column, + .ui.column.grid > [class*="six wide widescreen"].column { + width: 37.5% !important; + } + + .ui.grid > .row > [class*="seven wide widescreen"].column, + .ui.grid > .column.row > [class*="seven wide widescreen"].column, + .ui.grid > [class*="seven wide widescreen"].column, + .ui.column.grid > [class*="seven wide widescreen"].column { + width: 43.75% !important; + } + + .ui.grid > .row > [class*="eight wide widescreen"].column, + .ui.grid > .column.row > [class*="eight wide widescreen"].column, + .ui.grid > [class*="eight wide widescreen"].column, + .ui.column.grid > [class*="eight wide widescreen"].column { + width: 50% !important; + } + + .ui.grid > .row > [class*="nine wide widescreen"].column, + .ui.grid > .column.row > [class*="nine wide widescreen"].column, + .ui.grid > [class*="nine wide widescreen"].column, + .ui.column.grid > [class*="nine wide widescreen"].column { + width: 56.25% !important; + } + + .ui.grid > .row > [class*="ten wide widescreen"].column, + .ui.grid > .column.row > [class*="ten wide widescreen"].column, + .ui.grid > [class*="ten wide widescreen"].column, + .ui.column.grid > [class*="ten wide widescreen"].column { + width: 62.5% !important; + } + + .ui.grid > .row > [class*="eleven wide widescreen"].column, + .ui.grid > .column.row > [class*="eleven wide widescreen"].column, + .ui.grid > [class*="eleven wide widescreen"].column, + .ui.column.grid > [class*="eleven wide widescreen"].column { + width: 68.75% !important; + } + + .ui.grid > .row > [class*="twelve wide widescreen"].column, + .ui.grid > .column.row > [class*="twelve wide widescreen"].column, + .ui.grid > [class*="twelve wide widescreen"].column, + .ui.column.grid > [class*="twelve wide widescreen"].column { + width: 75% !important; + } + + .ui.grid > .row > [class*="thirteen wide widescreen"].column, + .ui.grid > .column.row > [class*="thirteen wide widescreen"].column, + .ui.grid > [class*="thirteen wide widescreen"].column, + .ui.column.grid > [class*="thirteen wide widescreen"].column { + width: 81.25% !important; + } + + .ui.grid > .row > [class*="fourteen wide widescreen"].column, + .ui.grid > .column.row > [class*="fourteen wide widescreen"].column, + .ui.grid > [class*="fourteen wide widescreen"].column, + .ui.column.grid > [class*="fourteen wide widescreen"].column { + width: 87.5% !important; + } + + .ui.grid > .row > [class*="fifteen wide widescreen"].column, + .ui.grid > .column.row > [class*="fifteen wide widescreen"].column, + .ui.grid > [class*="fifteen wide widescreen"].column, + .ui.column.grid > [class*="fifteen wide widescreen"].column { + width: 93.75% !important; + } + + .ui.grid > .row > [class*="sixteen wide widescreen"].column, + .ui.grid > .column.row > [class*="sixteen wide widescreen"].column, + .ui.grid > [class*="sixteen wide widescreen"].column, + .ui.column.grid > [class*="sixteen wide widescreen"].column { + width: 100% !important; + } +} + +/*---------------------- + Centered + -----------------------*/ + +.ui.centered.grid, +.ui.centered.grid > .row, +.ui.grid > .centered.row { + text-align: center; + justify-content: center; +} + +.ui.centered.grid > .column:not(.aligned):not(.justified):not(.row), +.ui.centered.grid > .row > .column:not(.aligned):not(.justified), +.ui.grid .centered.row > .column:not(.aligned):not(.justified) { + text-align: left; +} + +.ui.grid > .centered.column, +.ui.grid > .row > .centered.column { + display: block; + margin-left: auto; + margin-right: auto; +} + +/*---------------------- + Relaxed + -----------------------*/ + +.ui.relaxed.grid > .column:not(.row), +.ui.relaxed.grid > .row > .column, +.ui.grid > .relaxed.row > .column { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.ui[class*="very relaxed"].grid > .column:not(.row), +.ui[class*="very relaxed"].grid > .row > .column, +.ui.grid > [class*="very relaxed"].row > .column { + padding-left: 2.5rem; + padding-right: 2.5rem; +} + +/* Coupling with UI Divider */ + +.ui.relaxed.grid .row + .ui.divider, +.ui.grid .relaxed.row + .ui.divider { + margin-left: 1.5rem; + margin-right: 1.5rem; +} + +.ui[class*="very relaxed"].grid .row + .ui.divider, +.ui.grid [class*="very relaxed"].row + .ui.divider { + margin-left: 2.5rem; + margin-right: 2.5rem; +} + +/*---------------------- + Padded + -----------------------*/ + +.ui.padded.grid:not(.vertically):not(.horizontally) { + margin: 0 !important; +} + +[class*="horizontally padded"].ui.grid { + margin-left: 0 !important; + margin-right: 0 !important; +} + +[class*="vertically padded"].ui.grid { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +/*---------------------- + "Floated" + -----------------------*/ + +.ui.grid [class*="left floated"].column { + margin-right: auto; +} + +.ui.grid [class*="right floated"].column { + margin-left: auto; +} + +/*---------------------- + Divided + -----------------------*/ + +.ui.divided.grid:not([class*="vertically divided"]) > .column:not(.row), +.ui.divided.grid:not([class*="vertically divided"]) > .row > .column { + box-shadow: -1px 0 0 0 rgba(34, 36, 38, 0.15); +} + +/* Swap from padding to margin on columns to have dividers align */ + +.ui[class*="vertically divided"].grid > .column:not(.row), +.ui[class*="vertically divided"].grid > .row > .column { + margin-top: 1rem; + margin-bottom: 1rem; + padding-top: 0; + padding-bottom: 0; +} + +.ui[class*="vertically divided"].grid > .row { + margin-top: 0; + margin-bottom: 0; +} + +/* No divider on first column on row */ + +.ui.divided.grid:not([class*="vertically divided"]) > .column:first-child, +.ui.divided.grid:not([class*="vertically divided"]) > .row > .column:first-child { + box-shadow: none; +} + +/* No space on top of first row */ + +.ui[class*="vertically divided"].grid > .row:first-child > .column { + margin-top: 0; +} + +/* Divided Row */ + +.ui.grid > .divided.row > .column { + box-shadow: -1px 0 0 0 rgba(34, 36, 38, 0.15); +} + +.ui.grid > .divided.row > .column:first-child { + box-shadow: none; +} + +/* Vertically Divided */ + +.ui[class*="vertically divided"].grid > .row { + position: relative; +} + +.ui[class*="vertically divided"].grid > .row:before { + position: absolute; + content: ""; + top: 0; + left: 0; + width: calc(100% - 2rem); + height: 1px; + margin: 0 1rem; + box-shadow: 0 -1px 0 0 rgba(34, 36, 38, 0.15); +} + +/* Padded Horizontally Divided */ + +[class*="horizontally padded"].ui.divided.grid, +.ui.padded.divided.grid:not(.vertically):not(.horizontally) { + width: 100%; +} + +/* First Row Vertically Divided */ + +.ui[class*="vertically divided"].grid > .row:first-child:before { + box-shadow: none; +} + +/* Inverted Divided */ + +.ui.inverted.divided.grid:not([class*="vertically divided"]) > .column:not(.row), +.ui.inverted.divided.grid:not([class*="vertically divided"]) > .row > .column { + box-shadow: -1px 0 0 0 rgba(255, 255, 255, 0.1); +} + +.ui.inverted.divided.grid:not([class*="vertically divided"]) > .column:not(.row):first-child, +.ui.inverted.divided.grid:not([class*="vertically divided"]) > .row > .column:first-child { + box-shadow: none; +} + +.ui.inverted[class*="vertically divided"].grid > .row:before { + box-shadow: 0 -1px 0 0 rgba(255, 255, 255, 0.1); +} + +/* Relaxed */ + +.ui.relaxed[class*="vertically divided"].grid > .row:before { + margin-left: 1.5rem; + margin-right: 1.5rem; + width: calc(100% - 3rem); +} + +.ui[class*="very relaxed"][class*="vertically divided"].grid > .row:before { + margin-left: 2.5rem; + margin-right: 2.5rem; + width: calc(100% - 5rem); +} + +/*---------------------- + Celled + -----------------------*/ + +.ui.celled.grid { + width: 100%; + margin: 1em 0; + box-shadow: 0 0 0 1px #D4D4D5; +} + +.ui.celled.grid > .row { + width: 100% !important; + margin: 0; + padding: 0; + box-shadow: 0 -1px 0 0 #D4D4D5; +} + +.ui.celled.grid > .column:not(.row), +.ui.celled.grid > .row > .column { + box-shadow: -1px 0 0 0 #D4D4D5; +} + +.ui.celled.grid > .column:first-child, +.ui.celled.grid > .row > .column:first-child { + box-shadow: none; +} + +.ui.celled.grid > .column:not(.row), +.ui.celled.grid > .row > .column { + padding: 1em; +} + +.ui.relaxed.celled.grid > .column:not(.row), +.ui.relaxed.celled.grid > .row > .column { + padding: 1.5em; +} + +.ui[class*="very relaxed"].celled.grid > .column:not(.row), +.ui[class*="very relaxed"].celled.grid > .row > .column { + padding: 2em; +} + +/* Internally Celled */ + +.ui[class*="internally celled"].grid { + box-shadow: none; + margin: 0; +} + +.ui[class*="internally celled"].grid > .row:first-child { + box-shadow: none; +} + +.ui[class*="internally celled"].grid > .row > .column:first-child { + box-shadow: none; +} + +/*---------------------- + Vertically Aligned + -----------------------*/ + +/* Top Aligned */ + +.ui[class*="top aligned"].grid > .column:not(.row), +.ui[class*="top aligned"].grid > .row > .column, +.ui.grid > [class*="top aligned"].row > .column, +.ui.grid > [class*="top aligned"].column:not(.row), +.ui.grid > .row > [class*="top aligned"].column { + flex-direction: column; + vertical-align: top; + align-self: flex-start !important; +} + +/* Middle Aligned */ + +.ui[class*="middle aligned"].grid > .column:not(.row), +.ui[class*="middle aligned"].grid > .row > .column, +.ui.grid > [class*="middle aligned"].row > .column, +.ui.grid > [class*="middle aligned"].column:not(.row), +.ui.grid > .row > [class*="middle aligned"].column { + flex-direction: column; + vertical-align: middle; + align-self: center !important; +} + +/* Bottom Aligned */ + +.ui[class*="bottom aligned"].grid > .column:not(.row), +.ui[class*="bottom aligned"].grid > .row > .column, +.ui.grid > [class*="bottom aligned"].row > .column, +.ui.grid > [class*="bottom aligned"].column:not(.row), +.ui.grid > .row > [class*="bottom aligned"].column { + flex-direction: column; + vertical-align: bottom; + align-self: flex-end !important; +} + +/* Stretched */ + +.ui.stretched.grid > .row > .column, +.ui.stretched.grid > .column, +.ui.grid > .stretched.row > .column, +.ui.grid > .stretched.column:not(.row), +.ui.grid > .row > .stretched.column { + display: inline-flex !important; + align-self: stretch; + flex-direction: column; +} + +.ui.stretched.grid > .row > .column > *, +.ui.stretched.grid > .column > *, +.ui.grid > .stretched.row > .column > *, +.ui.grid > .stretched.column:not(.row) > *, +.ui.grid > .row > .stretched.column > * { + flex-grow: 1; +} + +/*---------------------- + Horizontally Centered + -----------------------*/ + +/* Left Aligned */ + +.ui[class*="left aligned"].grid > .column, +.ui[class*="left aligned"].grid > .row > .column, +.ui.grid > [class*="left aligned"].row > .column, +.ui.grid > [class*="left aligned"].column.column, +.ui.grid > .row > [class*="left aligned"].column.column { + text-align: left; + align-self: inherit; +} + +/* Center Aligned */ + +.ui[class*="center aligned"].grid > .column, +.ui[class*="center aligned"].grid > .row > .column, +.ui.grid > [class*="center aligned"].row > .column, +.ui.grid > [class*="center aligned"].column.column, +.ui.grid > .row > [class*="center aligned"].column.column { + text-align: center; + align-self: inherit; +} + +.ui[class*="center aligned"].grid { + justify-content: center; +} + +/* Right Aligned */ + +.ui[class*="right aligned"].grid > .column, +.ui[class*="right aligned"].grid > .row > .column, +.ui.grid > [class*="right aligned"].row > .column, +.ui.grid > [class*="right aligned"].column.column, +.ui.grid > .row > [class*="right aligned"].column.column { + text-align: right; + align-self: inherit; +} + +/* Justified */ + +.ui.justified.grid > .column, +.ui.justified.grid > .row > .column, +.ui.grid > .justified.row > .column, +.ui.grid > .justified.column.column, +.ui.grid > .row > .justified.column.column { + text-align: justify; + -webkit-hyphens: auto; + hyphens: auto; +} + +/*---------------------- + Colored +-----------------------*/ + +.ui.grid > .primary.row, +.ui.grid > .primary.column, +.ui.grid > .row > .primary.column { + background-color: #2185D0; + color: #FFFFFF; +} + +.ui.grid > .secondary.row, +.ui.grid > .secondary.column, +.ui.grid > .row > .secondary.column { + background-color: #1B1C1D; + color: #FFFFFF; +} + +.ui.grid > .red.row, +.ui.grid > .red.column, +.ui.grid > .row > .red.column { + background-color: #DB2828; + color: #FFFFFF; +} + +.ui.grid > .orange.row, +.ui.grid > .orange.column, +.ui.grid > .row > .orange.column { + background-color: #F2711C; + color: #FFFFFF; +} + +.ui.grid > .yellow.row, +.ui.grid > .yellow.column, +.ui.grid > .row > .yellow.column { + background-color: #FBBD08; + color: #FFFFFF; +} + +.ui.grid > .olive.row, +.ui.grid > .olive.column, +.ui.grid > .row > .olive.column { + background-color: #B5CC18; + color: #FFFFFF; +} + +.ui.grid > .green.row, +.ui.grid > .green.column, +.ui.grid > .row > .green.column { + background-color: #21BA45; + color: #FFFFFF; +} + +.ui.grid > .teal.row, +.ui.grid > .teal.column, +.ui.grid > .row > .teal.column { + background-color: #00B5AD; + color: #FFFFFF; +} + +.ui.grid > .blue.row, +.ui.grid > .blue.column, +.ui.grid > .row > .blue.column { + background-color: #2185D0; + color: #FFFFFF; +} + +.ui.grid > .violet.row, +.ui.grid > .violet.column, +.ui.grid > .row > .violet.column { + background-color: #6435C9; + color: #FFFFFF; +} + +.ui.grid > .purple.row, +.ui.grid > .purple.column, +.ui.grid > .row > .purple.column { + background-color: #A333C8; + color: #FFFFFF; +} + +.ui.grid > .pink.row, +.ui.grid > .pink.column, +.ui.grid > .row > .pink.column { + background-color: #E03997; + color: #FFFFFF; +} + +.ui.grid > .brown.row, +.ui.grid > .brown.column, +.ui.grid > .row > .brown.column { + background-color: #A5673F; + color: #FFFFFF; +} + +.ui.grid > .grey.row, +.ui.grid > .grey.column, +.ui.grid > .row > .grey.column { + background-color: #767676; + color: #FFFFFF; +} + +.ui.grid > .black.row, +.ui.grid > .black.column, +.ui.grid > .row > .black.column { + background-color: #1B1C1D; + color: #FFFFFF; +} + +/*---------------------- + Equal Width +-----------------------*/ + +.ui[class*="equal width"].grid > .column:not(.row), +.ui[class*="equal width"].grid > .row > .column, +.ui.grid > [class*="equal width"].row > .column { + display: inline-block; + flex-grow: 1; +} + +.ui[class*="equal width"].grid > .wide.column, +.ui[class*="equal width"].grid > .row > .wide.column, +.ui.grid > [class*="equal width"].row > .wide.column { + flex-grow: 0; +} + +/*---------------------- + Reverse + -----------------------*/ + +/* Mobile */ + +@media only screen and (max-width: 767.98px) { + .ui[class*="mobile reversed"].grid, + .ui[class*="mobile reversed"].grid > .row, + .ui.grid > [class*="mobile reversed"].row { + flex-direction: row-reverse; + } + + .ui[class*="mobile vertically reversed"].grid, + .ui.stackable[class*="mobile reversed"] { + flex-direction: column-reverse; + } + + /* Divided Reversed */ + + .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .column:first-child, + .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:first-child { + box-shadow: -1px 0 0 0 rgba(34, 36, 38, 0.15); + } + + .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .column:last-child, + .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:last-child { + box-shadow: none; + } + + /* Vertically Divided Reversed */ + + .ui.grid[class*="vertically divided"][class*="mobile vertically reversed"] > .row:first-child:before { + box-shadow: 0 -1px 0 0 rgba(34, 36, 38, 0.15); + } + + .ui.grid[class*="vertically divided"][class*="mobile vertically reversed"] > .row:last-child:before { + box-shadow: none; + } + + /* Celled Reversed */ + + .ui[class*="mobile reversed"].celled.grid > .row > .column:first-child { + box-shadow: -1px 0 0 0 #D4D4D5; + } + + .ui[class*="mobile reversed"].celled.grid > .row > .column:last-child { + box-shadow: none; + } +} + +/* Tablet */ + +@media only screen and (min-width: 768px) and (max-width: 991.98px) { + .ui[class*="tablet reversed"].grid, + .ui[class*="tablet reversed"].grid > .row, + .ui.grid > [class*="tablet reversed"].row { + flex-direction: row-reverse; + } + + .ui[class*="tablet vertically reversed"].grid { + flex-direction: column-reverse; + } + + /* Divided Reversed */ + + .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .column:first-child, + .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:first-child { + box-shadow: -1px 0 0 0 rgba(34, 36, 38, 0.15); + } + + .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .column:last-child, + .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:last-child { + box-shadow: none; + } + + /* Vertically Divided Reversed */ + + .ui.grid[class*="vertically divided"][class*="tablet vertically reversed"] > .row:first-child:before { + box-shadow: 0 -1px 0 0 rgba(34, 36, 38, 0.15); + } + + .ui.grid[class*="vertically divided"][class*="tablet vertically reversed"] > .row:last-child:before { + box-shadow: none; + } + + /* Celled Reversed */ + + .ui[class*="tablet reversed"].celled.grid > .row > .column:first-child { + box-shadow: -1px 0 0 0 #D4D4D5; + } + + .ui[class*="tablet reversed"].celled.grid > .row > .column:last-child { + box-shadow: none; + } +} + +/* Computer */ + +@media only screen and (min-width: 992px) { + .ui[class*="computer reversed"].grid, + .ui[class*="computer reversed"].grid > .row, + .ui.grid > [class*="computer reversed"].row { + flex-direction: row-reverse; + } + + .ui[class*="computer vertically reversed"].grid { + flex-direction: column-reverse; + } + + /* Divided Reversed */ + + .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .column:first-child, + .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:first-child { + box-shadow: -1px 0 0 0 rgba(34, 36, 38, 0.15); + } + + .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .column:last-child, + .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:last-child { + box-shadow: none; + } + + /* Vertically Divided Reversed */ + + .ui.grid[class*="vertically divided"][class*="computer vertically reversed"] > .row:first-child:before { + box-shadow: 0 -1px 0 0 rgba(34, 36, 38, 0.15); + } + + .ui.grid[class*="vertically divided"][class*="computer vertically reversed"] > .row:last-child:before { + box-shadow: none; + } + + /* Celled Reversed */ + + .ui[class*="computer reversed"].celled.grid > .row > .column:first-child { + box-shadow: -1px 0 0 0 #D4D4D5; + } + + .ui[class*="computer reversed"].celled.grid > .row > .column:last-child { + box-shadow: none; + } +} + +/*------------------- + Doubling + --------------------*/ + +/* Tablet Only */ + +@media only screen and (min-width: 768px) and (max-width: 991.98px) { + .ui.doubling.grid { + width: auto; + } + + .ui.grid > .doubling.row, + .ui.doubling.grid > .row { + margin: 0 !important; + padding: 0 !important; + } + + .ui.grid > .doubling.row > .column, + .ui.doubling.grid > .row > .column { + display: inline-block !important; + padding-top: 1rem !important; + padding-bottom: 1rem !important; + box-shadow: none !important; + margin: 0; + } + + .ui[class*="two column"].doubling.grid > .row > .column, + .ui[class*="two column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="two column"].doubling.row.row > .column { + width: 100% !important; + } + + .ui[class*="three column"].doubling.grid > .row > .column, + .ui[class*="three column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="three column"].doubling.row.row > .column { + width: 50% !important; + } + + .ui[class*="four column"].doubling.grid > .row > .column, + .ui[class*="four column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="four column"].doubling.row.row > .column { + width: 50% !important; + } + + .ui[class*="five column"].doubling.grid > .row > .column, + .ui[class*="five column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="five column"].doubling.row.row > .column { + width: 33.33333333% !important; + } + + .ui[class*="six column"].doubling.grid > .row > .column, + .ui[class*="six column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="six column"].doubling.row.row > .column { + width: 33.33333333% !important; + } + + .ui[class*="seven column"].doubling.grid > .row > .column, + .ui[class*="seven column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="seven column"].doubling.row.row > .column { + width: 33.33333333% !important; + } + + .ui[class*="eight column"].doubling.grid > .row > .column, + .ui[class*="eight column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="eight column"].doubling.row.row > .column { + width: 25% !important; + } + + .ui[class*="nine column"].doubling.grid > .row > .column, + .ui[class*="nine column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="nine column"].doubling.row.row > .column { + width: 25% !important; + } + + .ui[class*="ten column"].doubling.grid > .row > .column, + .ui[class*="ten column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="ten column"].doubling.row.row > .column { + width: 20% !important; + } + + .ui[class*="eleven column"].doubling.grid > .row > .column, + .ui[class*="eleven column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="eleven column"].doubling.row.row > .column { + width: 20% !important; + } + + .ui[class*="twelve column"].doubling.grid > .row > .column, + .ui[class*="twelve column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="twelve column"].doubling.row.row > .column { + width: 16.66666667% !important; + } + + .ui[class*="thirteen column"].doubling.grid > .row > .column, + .ui[class*="thirteen column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="thirteen column"].doubling.row.row > .column { + width: 16.66666667% !important; + } + + .ui[class*="fourteen column"].doubling.grid > .row > .column, + .ui[class*="fourteen column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="fourteen column"].doubling.row.row > .column { + width: 14.28571429% !important; + } + + .ui[class*="fifteen column"].doubling.grid > .row > .column, + .ui[class*="fifteen column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="fifteen column"].doubling.row.row > .column { + width: 14.28571429% !important; + } + + .ui[class*="sixteen column"].doubling.grid > .row > .column, + .ui[class*="sixteen column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="sixteen column"].doubling.row.row > .column { + width: 12.5% !important; + } +} + +/* Mobile Only */ + +@media only screen and (max-width: 767.98px) { + .ui.grid > .doubling.row, + .ui.doubling.grid > .row { + margin: 0 !important; + padding: 0 !important; + } + + .ui.grid > .doubling.row > .column, + .ui.doubling.grid > .row > .column { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + margin: 0 !important; + box-shadow: none !important; + } + + .ui[class*="two column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="two column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="two column"].doubling:not(.stackable).row.row > .column { + width: 100% !important; + } + + .ui[class*="three column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="three column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="three column"].doubling:not(.stackable).row.row > .column { + width: 50% !important; + } + + .ui[class*="four column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="four column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="four column"].doubling:not(.stackable).row.row > .column { + width: 50% !important; + } + + .ui[class*="five column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="five column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="five column"].doubling:not(.stackable).row.row > .column { + width: 50% !important; + } + + .ui[class*="six column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="six column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="six column"].doubling:not(.stackable).row.row > .column { + width: 50% !important; + } + + .ui[class*="seven column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="seven column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="seven column"].doubling:not(.stackable).row.row > .column { + width: 50% !important; + } + + .ui[class*="eight column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="eight column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="eight column"].doubling:not(.stackable).row.row > .column { + width: 50% !important; + } + + .ui[class*="nine column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="nine column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="nine column"].doubling:not(.stackable).row.row > .column { + width: 33.33333333% !important; + } + + .ui[class*="ten column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="ten column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="ten column"].doubling:not(.stackable).row.row > .column { + width: 33.33333333% !important; + } + + .ui[class*="eleven column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="eleven column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="eleven column"].doubling:not(.stackable).row.row > .column { + width: 33.33333333% !important; + } + + .ui[class*="twelve column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="twelve column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="twelve column"].doubling:not(.stackable).row.row > .column { + width: 33.33333333% !important; + } + + .ui[class*="thirteen column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="thirteen column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="thirteen column"].doubling:not(.stackable).row.row > .column { + width: 33.33333333% !important; + } + + .ui[class*="fourteen column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="fourteen column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="fourteen column"].doubling:not(.stackable).row.row > .column { + width: 25% !important; + } + + .ui[class*="fifteen column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="fifteen column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="fifteen column"].doubling:not(.stackable).row.row > .column { + width: 25% !important; + } + + .ui[class*="sixteen column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="sixteen column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="sixteen column"].doubling:not(.stackable).row.row > .column { + width: 25% !important; + } +} + +/*------------------- + Stackable + --------------------*/ + +@media only screen and (max-width: 767.98px) { + .ui.stackable.grid { + width: auto; + margin-left: 0 !important; + margin-right: 0 !important; + } + + .ui.stackable.grid > .row > .wide.column, + .ui.stackable.grid > .wide.column, + .ui.stackable.grid > .column.grid > .column, + .ui.stackable.grid > .column.row > .column, + .ui.stackable.grid > .row > .column, + .ui.stackable.grid > .column:not(.row), + .ui.grid > .stackable.stackable.stackable.row > .column { + width: 100% !important; + margin: 0 0 !important; + box-shadow: none !important; + padding: 1rem 1rem; + } + + .ui.stackable.grid:not(.vertically) > .row { + margin: 0; + padding: 0; + } + + /* Coupling */ + + .ui.container > .ui.stackable.grid > .column, + .ui.container > .ui.stackable.grid > .row > .column { + padding-left: 0 !important; + padding-right: 0 !important; + } + + /* Don't pad inside segment or nested grid */ + + .ui.grid .ui.stackable.grid, + .ui.segment:not(.vertical) .ui.stackable.page.grid { + margin-left: -1rem !important; + margin-right: -1rem !important; + } + + /* Divided Stackable */ + + .ui.stackable.divided.grid > .row:first-child > .column:first-child, + .ui.stackable.celled.grid > .row:first-child > .column:first-child, + .ui.stackable.divided.grid > .column:not(.row):first-child, + .ui.stackable.celled.grid > .column:not(.row):first-child { + border-top: none !important; + } + + .ui.inverted.stackable.celled.grid > .column:not(.row), + .ui.inverted.stackable.divided.grid > .column:not(.row), + .ui.inverted.stackable.celled.grid > .row > .column, + .ui.inverted.stackable.divided.grid > .row > .column { + border-top: 1px solid rgba(255, 255, 255, 0.1); + } + + .ui.stackable.celled.grid > .column:not(.row), + .ui.stackable.divided:not(.vertically).grid > .column:not(.row), + .ui.stackable.celled.grid > .row > .column, + .ui.stackable.divided:not(.vertically).grid > .row > .column { + border-top: 1px solid rgba(34, 36, 38, 0.15); + box-shadow: none !important; + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + + .ui.stackable.celled.grid > .row { + box-shadow: none !important; + } + + .ui.stackable.divided:not(.vertically).grid > .column:not(.row), + .ui.stackable.divided:not(.vertically).grid > .row > .column { + padding-left: 0 !important; + padding-right: 0 !important; + } +} + +/*---------------------- + Only (Device) +-----------------------*/ + +/* These include arbitrary class repetitions for forced specificity */ + +/* Mobile Only Hide */ + +@media only screen and (max-width: 767.98px) { + .ui[class*="tablet only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="tablet only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="tablet only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.mobile) { + display: none !important; + } + + .ui[class*="computer only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="computer only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="computer only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="computer only"].column:not(.mobile) { + display: none !important; + } + + .ui[class*="large screen only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="large screen only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="large screen only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="large screen only"].column:not(.mobile) { + display: none !important; + } + + .ui[class*="widescreen only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) { + display: none !important; + } +} + +/* Tablet Only Hide */ + +@media only screen and (min-width: 768px) and (max-width: 991.98px) { + .ui[class*="mobile only"].grid.grid.grid:not(.tablet), + .ui.grid.grid.grid > [class*="mobile only"].row:not(.tablet), + .ui.grid.grid.grid > [class*="mobile only"].column:not(.tablet), + .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.tablet) { + display: none !important; + } + + .ui[class*="computer only"].grid.grid.grid:not(.tablet), + .ui.grid.grid.grid > [class*="computer only"].row:not(.tablet), + .ui.grid.grid.grid > [class*="computer only"].column:not(.tablet), + .ui.grid.grid.grid > .row > [class*="computer only"].column:not(.tablet) { + display: none !important; + } + + .ui[class*="large screen only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="large screen only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="large screen only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="large screen only"].column:not(.mobile) { + display: none !important; + } + + .ui[class*="widescreen only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) { + display: none !important; + } +} + +/* Computer Only Hide */ + +@media only screen and (min-width: 992px) and (max-width: 1199.98px) { + .ui[class*="mobile only"].grid.grid.grid:not(.computer), + .ui.grid.grid.grid > [class*="mobile only"].row:not(.computer), + .ui.grid.grid.grid > [class*="mobile only"].column:not(.computer), + .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.computer) { + display: none !important; + } + + .ui[class*="tablet only"].grid.grid.grid:not(.computer), + .ui.grid.grid.grid > [class*="tablet only"].row:not(.computer), + .ui.grid.grid.grid > [class*="tablet only"].column:not(.computer), + .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.computer) { + display: none !important; + } + + .ui[class*="large screen only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="large screen only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="large screen only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="large screen only"].column:not(.mobile) { + display: none !important; + } + + .ui[class*="widescreen only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) { + display: none !important; + } +} + +/* Large Screen Only Hide */ + +@media only screen and (min-width: 1200px) and (max-width: 1919.98px) { + .ui[class*="mobile only"].grid.grid.grid:not(.computer), + .ui.grid.grid.grid > [class*="mobile only"].row:not(.computer), + .ui.grid.grid.grid > [class*="mobile only"].column:not(.computer), + .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.computer) { + display: none !important; + } + + .ui[class*="tablet only"].grid.grid.grid:not(.computer), + .ui.grid.grid.grid > [class*="tablet only"].row:not(.computer), + .ui.grid.grid.grid > [class*="tablet only"].column:not(.computer), + .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.computer) { + display: none !important; + } + + .ui[class*="widescreen only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) { + display: none !important; + } +} + +/* Widescreen Only Hide */ + +@media only screen and (min-width: 1920px) { + .ui[class*="mobile only"].grid.grid.grid:not(.computer), + .ui.grid.grid.grid > [class*="mobile only"].row:not(.computer), + .ui.grid.grid.grid > [class*="mobile only"].column:not(.computer), + .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.computer) { + display: none !important; + } + + .ui[class*="tablet only"].grid.grid.grid:not(.computer), + .ui.grid.grid.grid > [class*="tablet only"].row:not(.computer), + .ui.grid.grid.grid > [class*="tablet only"].column:not(.computer), + .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.computer) { + display: none !important; + } +} + +/*----------------- + Compact + -----------------*/ + +.ui.ui.ui.compact.grid > .column:not(.row), +.ui.ui.ui.compact.grid > .row > .column { + padding-left: 0.5rem; + padding-right: 0.5rem; +} + +.ui.ui.ui.compact.grid > * { + padding-left: 0.5rem; + padding-right: 0.5rem; +} + +/* Row */ + +.ui.ui.ui.compact.grid > .row { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +/* Columns */ + +.ui.ui.ui.compact.grid > .column:not(.row) { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +/* Relaxed + Celled */ + +.ui.compact.relaxed.celled.grid > .column:not(.row), +.ui.compact.relaxed.celled.grid > .row > .column { + padding: 0.75em; +} + +.ui.compact[class*="very relaxed"].celled.grid > .column:not(.row), +.ui.compact[class*="very relaxed"].celled.grid > .row > .column { + padding: 1em; +} + +/*----------------- + Very compact + -----------------*/ + +.ui.ui.ui[class*="very compact"].grid > .column:not(.row), +.ui.ui.ui[class*="very compact"].grid > .row > .column { + padding-left: 0.25rem; + padding-right: 0.25rem; +} + +.ui.ui.ui[class*="very compact"].grid > * { + padding-left: 0.25rem; + padding-right: 0.25rem; +} + +/* Row */ + +.ui.ui.ui[class*="very compact"].grid > .row { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +/* Columns */ + +.ui.ui.ui[class*="very compact"].grid > .column:not(.row) { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} + +/* Relaxed + Celled */ + +.ui[class*="very compact"].relaxed.celled.grid > .column:not(.row), +.ui[class*="very compact"].relaxed.celled.grid > .row > .column { + padding: 0.375em; +} + +.ui[class*="very compact"][class*="very relaxed"].celled.grid > .column:not(.row), +.ui[class*="very compact"][class*="very relaxed"].celled.grid > .row > .column { + padding: 0.5em; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Header + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Header +*******************************/ + +/* Standard */ + +.ui.header { + border: none; + margin: calc(2rem - 0.1428571428571429em) 0 1rem; + padding: 0 0; + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + font-weight: bold; + line-height: 1.28571429em; + text-transform: none; + color: rgba(0, 0, 0, 0.87); +} + +.ui.header:first-child { + margin-top: -0.14285714em; +} + +.ui.header:last-child { + margin-bottom: 0; +} + +/*-------------- + Sub Header + ---------------*/ + +.ui.header .sub.header { + display: block; + font-weight: normal; + padding: 0; + margin: 0; + font-size: 1rem; + line-height: 1.2em; + color: rgba(0, 0, 0, 0.6); +} + +/*-------------- + Icon +---------------*/ + +.ui.header > i.icon { + display: table-cell; + opacity: 1; + font-size: 1.5em; + padding-top: 0; + vertical-align: middle; +} + +/* With Text Node */ + +.ui.header > i.icon:only-child { + display: inline-block; + padding: 0; + margin-right: 0.75rem; +} + +/*------------------- + Image +--------------------*/ + +.ui.header > .image:not(.icon), +.ui.header > img { + display: inline-block; + margin-top: 0.14285714em; + width: 2.5em; + height: auto; + vertical-align: middle; +} + +.ui.header > .image:not(.icon):only-child, +.ui.header > img:only-child { + margin-right: 0.75rem; +} + +/*-------------- + Content +---------------*/ + +.ui.header .content { + display: inline-block; + vertical-align: top; +} + +/* After Image */ + +.ui.header > img + .content, +.ui.header > .image + .content { + padding-left: 0.75rem; + vertical-align: middle; +} + +/* After Icon */ + +.ui.header > i.icon + .content { + padding-left: 0.75rem; + display: table-cell; + vertical-align: middle; +} + +/*-------------- + Loose Coupling +---------------*/ + +.ui.header .ui.label { + font-size: ''; + margin-left: 0.5rem; + vertical-align: middle; +} + +/* Positioning */ + +.ui.header + p { + margin-top: 0; +} + +/******************************* + Types +*******************************/ + +/*-------------- + Page +---------------*/ + +h1.ui.header { + font-size: 2rem; +} + +h1.ui.header .sub.header { + font-size: 1.14285714rem; +} + +h2.ui.header { + font-size: 1.71428571rem; +} + +h2.ui.header .sub.header { + font-size: 1.14285714rem; +} + +h3.ui.header { + font-size: 1.28571429rem; +} + +h3.ui.header .sub.header { + font-size: 1rem; +} + +h4.ui.header { + font-size: 1.07142857rem; +} + +h4.ui.header .sub.header { + font-size: 1rem; +} + +h5.ui.header { + font-size: 1rem; +} + +h5.ui.header .sub.header { + font-size: 0.92857143rem; +} + +h6.ui.header { + font-size: 0.85714286rem; +} + +h6.ui.header .sub.header { + font-size: 0.92857143rem; +} + +/*-------------- + Content Heading +---------------*/ + +.ui.mini.header { + font-size: 0.85714286em; +} + +.ui.mini.header .sub.header { + font-size: 0.92857143rem; +} + +.ui.mini.sub.header { + font-size: 0.78571429em; +} + +.ui.tiny.header { + font-size: 1em; +} + +.ui.tiny.header .sub.header { + font-size: 0.92857143rem; +} + +.ui.tiny.sub.header { + font-size: 0.78571429em; +} + +.ui.small.header { + font-size: 1.07142857em; +} + +.ui.small.header .sub.header { + font-size: 1rem; +} + +.ui.small.sub.header { + font-size: 0.78571429em; +} + +.ui.large.header { + font-size: 1.71428571em; +} + +.ui.large.header .sub.header { + font-size: 1.14285714rem; +} + +.ui.large.sub.header { + font-size: 0.92857143em; +} + +.ui.big.header { + font-size: 1.85714286em; +} + +.ui.big.header .sub.header { + font-size: 1.14285714rem; +} + +.ui.big.sub.header { + font-size: 1em; +} + +.ui.huge.header { + font-size: 2em; + min-height: 1em; +} + +.ui.huge.header .sub.header { + font-size: 1.14285714rem; +} + +.ui.huge.sub.header { + font-size: 1em; +} + +.ui.massive.header { + font-size: 2.28571429em; + min-height: 1em; +} + +.ui.massive.header .sub.header { + font-size: 1.42857143rem; +} + +.ui.massive.sub.header { + font-size: 1.14285714em; +} + +/*-------------- + Sub Heading + ---------------*/ + +.ui.sub.header { + padding: 0; + margin-bottom: 0.14285714rem; + font-weight: bold; + font-size: 0.85714286em; + text-transform: uppercase; + color: ''; +} + +/*------------------- + Icon + --------------------*/ + +.ui.icon.header { + display: inline-block; + text-align: center; + margin: 2rem 0 1rem; +} + +.ui.icon.header:after { + content: ''; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.ui.icon.header:first-child { + margin-top: 0; +} + +.ui.icon.header > i.icon { + float: none; + display: block; + width: auto; + height: auto; + line-height: 1; + padding: 0; + font-size: 3em; + margin: 0 auto 0.5rem; + opacity: 1; +} + +.ui.icon.header .corner.icon { + font-size: calc(3em * 0.45); +} + +.ui.icon.header .content { + display: block; + padding: 0; +} + +.ui.icon.header > i.circular.icon { + font-size: 2em; +} + +.ui.icon.header > i.square.icon { + font-size: 2em; +} + +.ui.block.icon.header > i.icon { + margin-bottom: 0; +} + +.ui.icon.header.aligned { + margin-left: auto; + margin-right: auto; + display: block; +} + +/******************************* + States +*******************************/ + +.ui.disabled.header { + opacity: 0.45; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Inverted + --------------------*/ + +.ui.inverted.header { + color: #FFFFFF; +} + +.ui.inverted.header .sub.header { + color: rgba(255, 255, 255, 0.8); +} + +.ui.inverted.attached.header { + background: #1B1C1D; + box-shadow: none; + border-color: transparent; +} + +.ui.inverted.block.header { + background: #545454 linear-gradient(transparent, rgba(0, 0, 0, 0.05)); + box-shadow: none; + border-bottom: none; +} + +/*------------------- + Colors +--------------------*/ + +.ui.primary.header { + color: #2185D0; +} + +a.ui.primary.header:hover { + color: #1678c2; +} + +.ui.primary.dividing.header { + border-bottom: 2px solid #2185D0; +} + +.ui.inverted.primary.header.header.header { + color: #54C8FF; +} + +a.ui.inverted.primary.header.header.header:hover { + color: #21b8ff; +} + +.ui.inverted.primary.dividing.header { + border-bottom: 2px solid #54C8FF; +} + +.ui.secondary.header { + color: #1B1C1D; +} + +a.ui.secondary.header:hover { + color: #27292a; +} + +.ui.secondary.dividing.header { + border-bottom: 2px solid #1B1C1D; +} + +.ui.inverted.secondary.header.header.header { + color: #545454; +} + +a.ui.inverted.secondary.header.header.header:hover { + color: #6e6e6e; +} + +.ui.inverted.secondary.dividing.header { + border-bottom: 2px solid #545454; +} + +.ui.red.header { + color: #DB2828; +} + +a.ui.red.header:hover { + color: #d01919; +} + +.ui.red.dividing.header { + border-bottom: 2px solid #DB2828; +} + +.ui.inverted.red.header.header.header { + color: #FF695E; +} + +a.ui.inverted.red.header.header.header:hover { + color: #ff392b; +} + +.ui.inverted.red.dividing.header { + border-bottom: 2px solid #FF695E; +} + +.ui.orange.header { + color: #F2711C; +} + +a.ui.orange.header:hover { + color: #f26202; +} + +.ui.orange.dividing.header { + border-bottom: 2px solid #F2711C; +} + +.ui.inverted.orange.header.header.header { + color: #FF851B; +} + +a.ui.inverted.orange.header.header.header:hover { + color: #e76b00; +} + +.ui.inverted.orange.dividing.header { + border-bottom: 2px solid #FF851B; +} + +.ui.yellow.header { + color: #FBBD08; +} + +a.ui.yellow.header:hover { + color: #eaae00; +} + +.ui.yellow.dividing.header { + border-bottom: 2px solid #FBBD08; +} + +.ui.inverted.yellow.header.header.header { + color: #FFE21F; +} + +a.ui.inverted.yellow.header.header.header:hover { + color: #ebcd00; +} + +.ui.inverted.yellow.dividing.header { + border-bottom: 2px solid #FFE21F; +} + +.ui.olive.header { + color: #B5CC18; +} + +a.ui.olive.header:hover { + color: #a7bd0d; +} + +.ui.olive.dividing.header { + border-bottom: 2px solid #B5CC18; +} + +.ui.inverted.olive.header.header.header { + color: #D9E778; +} + +a.ui.inverted.olive.header.header.header:hover { + color: #d2e745; +} + +.ui.inverted.olive.dividing.header { + border-bottom: 2px solid #D9E778; +} + +.ui.green.header { + color: #21BA45; +} + +a.ui.green.header:hover { + color: #16ab39; +} + +.ui.green.dividing.header { + border-bottom: 2px solid #21BA45; +} + +.ui.inverted.green.header.header.header { + color: #2ECC40; +} + +a.ui.inverted.green.header.header.header:hover { + color: #1ea92e; +} + +.ui.inverted.green.dividing.header { + border-bottom: 2px solid #2ECC40; +} + +.ui.teal.header { + color: #00B5AD; +} + +a.ui.teal.header:hover { + color: #009c95; +} + +.ui.teal.dividing.header { + border-bottom: 2px solid #00B5AD; +} + +.ui.inverted.teal.header.header.header { + color: #6DFFFF; +} + +a.ui.inverted.teal.header.header.header:hover { + color: #3affff; +} + +.ui.inverted.teal.dividing.header { + border-bottom: 2px solid #6DFFFF; +} + +.ui.blue.header { + color: #2185D0; +} + +a.ui.blue.header:hover { + color: #1678c2; +} + +.ui.blue.dividing.header { + border-bottom: 2px solid #2185D0; +} + +.ui.inverted.blue.header.header.header { + color: #54C8FF; +} + +a.ui.inverted.blue.header.header.header:hover { + color: #21b8ff; +} + +.ui.inverted.blue.dividing.header { + border-bottom: 2px solid #54C8FF; +} + +.ui.violet.header { + color: #6435C9; +} + +a.ui.violet.header:hover { + color: #5829bb; +} + +.ui.violet.dividing.header { + border-bottom: 2px solid #6435C9; +} + +.ui.inverted.violet.header.header.header { + color: #A291FB; +} + +a.ui.inverted.violet.header.header.header:hover { + color: #745aff; +} + +.ui.inverted.violet.dividing.header { + border-bottom: 2px solid #A291FB; +} + +.ui.purple.header { + color: #A333C8; +} + +a.ui.purple.header:hover { + color: #9627ba; +} + +.ui.purple.dividing.header { + border-bottom: 2px solid #A333C8; +} + +.ui.inverted.purple.header.header.header { + color: #DC73FF; +} + +a.ui.inverted.purple.header.header.header:hover { + color: #cf40ff; +} + +.ui.inverted.purple.dividing.header { + border-bottom: 2px solid #DC73FF; +} + +.ui.pink.header { + color: #E03997; +} + +a.ui.pink.header:hover { + color: #e61a8d; +} + +.ui.pink.dividing.header { + border-bottom: 2px solid #E03997; +} + +.ui.inverted.pink.header.header.header { + color: #FF8EDF; +} + +a.ui.inverted.pink.header.header.header:hover { + color: #ff5bd1; +} + +.ui.inverted.pink.dividing.header { + border-bottom: 2px solid #FF8EDF; +} + +.ui.brown.header { + color: #A5673F; +} + +a.ui.brown.header:hover { + color: #975b33; +} + +.ui.brown.dividing.header { + border-bottom: 2px solid #A5673F; +} + +.ui.inverted.brown.header.header.header { + color: #D67C1C; +} + +a.ui.inverted.brown.header.header.header:hover { + color: #b0620f; +} + +.ui.inverted.brown.dividing.header { + border-bottom: 2px solid #D67C1C; +} + +.ui.grey.header { + color: #767676; +} + +a.ui.grey.header:hover { + color: #838383; +} + +.ui.grey.dividing.header { + border-bottom: 2px solid #767676; +} + +.ui.inverted.grey.header.header.header { + color: #DCDDDE; +} + +a.ui.inverted.grey.header.header.header:hover { + color: #c2c4c5; +} + +.ui.inverted.grey.dividing.header { + border-bottom: 2px solid #DCDDDE; +} + +.ui.black.header { + color: #1B1C1D; +} + +a.ui.black.header:hover { + color: #27292a; +} + +.ui.black.dividing.header { + border-bottom: 2px solid #1B1C1D; +} + +.ui.inverted.black.header.header.header { + color: #545454; +} + +a.ui.inverted.black.header.header.header:hover { + color: #000000; +} + +.ui.inverted.black.dividing.header { + border-bottom: 2px solid #545454; +} + +/*------------------- + Aligned + --------------------*/ + +.ui.left.aligned.header { + text-align: left; +} + +.ui.right.aligned.header { + text-align: right; +} + +.ui.centered.header, +.ui.center.aligned.header { + text-align: center; +} + +.ui.justified.header { + text-align: justify; +} + +.ui.justified.header:after { + display: inline-block; + content: ''; + width: 100%; +} + +/*------------------- + Floated + --------------------*/ + +.ui.floated.header, +.ui[class*="left floated"].header { + float: left; + margin-top: 0; + margin-right: 0.5em; +} + +.ui[class*="right floated"].header { + float: right; + margin-top: 0; + margin-left: 0.5em; +} + +/*------------------- + Fitted + --------------------*/ + +.ui.fitted.header { + padding: 0; +} + +/*------------------- + Dividing + --------------------*/ + +.ui.dividing.header { + padding-bottom: 0.21428571rem; + border-bottom: 1px solid rgba(34, 36, 38, 0.15); +} + +.ui.dividing.header .sub.header { + padding-bottom: 0.21428571rem; +} + +.ui.dividing.header i.icon { + margin-bottom: 0; +} + +.ui.inverted.dividing.header { + border-bottom-color: rgba(255, 255, 255, 0.1); +} + +/*------------------- + Block + --------------------*/ + +.ui.block.header { + background: #F3F4F5; + padding: 0.78571429rem 1rem; + box-shadow: none; + border: 1px solid #D4D4D5; + border-radius: 0.28571429rem; +} + +.ui.block.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) { + font-size: 1rem; +} + +.ui.mini.block.header { + font-size: 0.78571429rem; +} + +.ui.tiny.block.header { + font-size: 0.85714286rem; +} + +.ui.small.block.header { + font-size: 0.92857143rem; +} + +.ui.large.block.header { + font-size: 1.14285714rem; +} + +.ui.big.block.header { + font-size: 1.28571429rem; +} + +.ui.huge.block.header { + font-size: 1.42857143rem; +} + +.ui.massive.block.header { + font-size: 1.71428571rem; +} + +/*------------------- + Attached + --------------------*/ + +.ui.attached.header { + background: #FFFFFF; + padding: 0.78571429rem 1rem; + margin: 0 -1px 0 -1px; + box-shadow: none; + border: 1px solid #D4D4D5; + border-radius: 0; +} + +.ui.attached.block.header { + background: #F3F4F5; +} + +.ui.attached:not(.top).header { + border-top: none; +} + +.ui.top.attached.header { + border-radius: 0.28571429rem 0.28571429rem 0 0; +} + +.ui.bottom.attached.header { + border-radius: 0 0 0.28571429rem 0.28571429rem; +} + +/* Attached Sizes */ + +.ui.attached.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) { + font-size: 1em; +} + +.ui.mini.attached.header { + font-size: 0.78571429em; +} + +.ui.tiny.attached.header { + font-size: 0.85714286em; +} + +.ui.small.attached.header { + font-size: 0.92857143em; +} + +.ui.large.attached.header { + font-size: 1.14285714em; +} + +.ui.big.attached.header { + font-size: 1.28571429em; +} + +.ui.huge.attached.header { + font-size: 1.42857143em; +} + +.ui.massive.attached.header { + font-size: 1.71428571em; +} + +/*------------------- + Sizing +--------------------*/ + +.ui.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) { + font-size: 1.28571429em; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Icon + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Icon +*******************************/ + +@font-face { + font-family: 'Icons'; + src: url("./themes/default/assets/fonts/icons.eot"); + src: url("./themes/default/assets/fonts/icons.eot?#iefix") format('embedded-opentype'), url("./themes/default/assets/fonts/icons.woff2") format('woff2'), url("./themes/default/assets/fonts/icons.woff") format('woff'), url("./themes/default/assets/fonts/icons.ttf") format('truetype'), url("./themes/default/assets/fonts/icons.svg#icons") format('svg'); + font-style: normal; + font-weight: normal; + font-variant: normal; + text-decoration: inherit; + text-transform: none; +} + +i.icon { + display: inline-block; + opacity: 1; + margin: 0 0.25rem 0 0; + width: 1.18em; + height: 1em; + font-family: 'Icons'; + font-style: normal; + font-weight: normal; + text-decoration: inherit; + text-align: center; + speak: none; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +i.icon:before { + background: none !important; +} + +/******************************* + Types +*******************************/ + +/*-------------- + Loading + ---------------*/ + +i.icon.loading { + height: 1em; + line-height: 1; + -webkit-animation: loader 2s linear infinite; + animation: loader 2s linear infinite; +} + +/******************************* + States +*******************************/ + +i.icon:hover, +i.icons:hover, +i.icon:active, +i.icons:active, +i.emphasized.icon:not(.disabled), +i.emphasized.icons:not(.disabled) { + opacity: 1; +} + +i.disabled.icon, +i.disabled.icons { + opacity: 0.45; + cursor: default; + pointer-events: none; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Fitted + --------------------*/ + +i.fitted.icon { + width: auto; + margin: 0 !important; +} + +/*------------------- + Link + --------------------*/ + +i.link.icon:not(.disabled), +i.link.icons:not(.disabled) { + cursor: pointer; + opacity: 0.8; + transition: opacity 0.1s ease; +} + +i.link.icon:hover, +i.link.icons:hover { + opacity: 1; +} + +/*------------------- + Circular + --------------------*/ + +i.circular.icon { + border-radius: 500em !important; + line-height: 1 !important; + padding: 0.5em 0 !important; + box-shadow: 0 0 0 0.1em rgba(0, 0, 0, 0.1) inset; + width: 2em !important; + height: 2em !important; +} + +i.circular.inverted.icon { + border: none; + box-shadow: none; +} + +/*------------------- + Flipped + --------------------*/ + +i.flipped.icon, +i.horizontally.flipped.icon { + transform: scale(-1, 1); +} + +i.vertically.flipped.icon { + transform: scale(1, -1); +} + +/*------------------- + Rotated + --------------------*/ + +i.rotated.icon, +i.right.rotated.icon, +i.clockwise.rotated.icon { + transform: rotate(90deg); +} + +i.left.rotated.icon, +i.counterclockwise.rotated.icon { + transform: rotate(-90deg); +} + +i.halfway.rotated.icon { + transform: rotate(180deg); +} + +/*-------------------------- + Flipped & Rotated + ---------------------------*/ + +i.rotated.flipped.icon, +i.right.rotated.flipped.icon, +i.clockwise.rotated.flipped.icon { + transform: scale(-1, 1) rotate(90deg); +} + +i.left.rotated.flipped.icon, +i.counterclockwise.rotated.flipped.icon { + transform: scale(-1, 1) rotate(-90deg); +} + +i.halfway.rotated.flipped.icon { + transform: scale(-1, 1) rotate(180deg); +} + +i.rotated.vertically.flipped.icon, +i.right.rotated.vertically.flipped.icon, +i.clockwise.rotated.vertically.flipped.icon { + transform: scale(1, -1) rotate(90deg); +} + +i.left.rotated.vertically.flipped.icon, +i.counterclockwise.rotated.vertically.flipped.icon { + transform: scale(1, -1) rotate(-90deg); +} + +i.halfway.rotated.vertically.flipped.icon { + transform: scale(1, -1) rotate(180deg); +} + +/*------------------- + Bordered + --------------------*/ + +i.bordered.icon { + line-height: 1; + vertical-align: baseline; + width: 2em; + height: 2em; + padding: 0.5em 0 !important; + box-shadow: 0 0 0 0.1em rgba(0, 0, 0, 0.1) inset; +} + +i.bordered.inverted.icon { + border: none; + box-shadow: none; +} + +/*------------------- + Inverted + --------------------*/ + +/* Inverted Shapes */ + +i.inverted.bordered.icon, +i.inverted.circular.icon { + background-color: #1B1C1D; + color: #FFFFFF; +} + +i.inverted.icon { + color: #FFFFFF; +} + +/*------------------- + Colors +--------------------*/ + +i.primary.icon.icon.icon.icon { + color: #2185D0; +} + +i.inverted.primary.icon.icon.icon.icon { + color: #54C8FF; +} + +i.inverted.bordered.primary.icon.icon.icon.icon, +i.inverted.circular.primary.icon.icon.icon.icon { + background-color: #2185D0; + color: #FFFFFF; +} + +i.secondary.icon.icon.icon.icon { + color: #1B1C1D; +} + +i.inverted.secondary.icon.icon.icon.icon { + color: #545454; +} + +i.inverted.bordered.secondary.icon.icon.icon.icon, +i.inverted.circular.secondary.icon.icon.icon.icon { + background-color: #1B1C1D; + color: #FFFFFF; +} + +i.red.icon.icon.icon.icon { + color: #DB2828; +} + +i.inverted.red.icon.icon.icon.icon { + color: #FF695E; +} + +i.inverted.bordered.red.icon.icon.icon.icon, +i.inverted.circular.red.icon.icon.icon.icon { + background-color: #DB2828; + color: #FFFFFF; +} + +i.orange.icon.icon.icon.icon { + color: #F2711C; +} + +i.inverted.orange.icon.icon.icon.icon { + color: #FF851B; +} + +i.inverted.bordered.orange.icon.icon.icon.icon, +i.inverted.circular.orange.icon.icon.icon.icon { + background-color: #F2711C; + color: #FFFFFF; +} + +i.yellow.icon.icon.icon.icon { + color: #FBBD08; +} + +i.inverted.yellow.icon.icon.icon.icon { + color: #FFE21F; +} + +i.inverted.bordered.yellow.icon.icon.icon.icon, +i.inverted.circular.yellow.icon.icon.icon.icon { + background-color: #FBBD08; + color: #FFFFFF; +} + +i.olive.icon.icon.icon.icon { + color: #B5CC18; +} + +i.inverted.olive.icon.icon.icon.icon { + color: #D9E778; +} + +i.inverted.bordered.olive.icon.icon.icon.icon, +i.inverted.circular.olive.icon.icon.icon.icon { + background-color: #B5CC18; + color: #FFFFFF; +} + +i.green.icon.icon.icon.icon { + color: #21BA45; +} + +i.inverted.green.icon.icon.icon.icon { + color: #2ECC40; +} + +i.inverted.bordered.green.icon.icon.icon.icon, +i.inverted.circular.green.icon.icon.icon.icon { + background-color: #21BA45; + color: #FFFFFF; +} + +i.teal.icon.icon.icon.icon { + color: #00B5AD; +} + +i.inverted.teal.icon.icon.icon.icon { + color: #6DFFFF; +} + +i.inverted.bordered.teal.icon.icon.icon.icon, +i.inverted.circular.teal.icon.icon.icon.icon { + background-color: #00B5AD; + color: #FFFFFF; +} + +i.blue.icon.icon.icon.icon { + color: #2185D0; +} + +i.inverted.blue.icon.icon.icon.icon { + color: #54C8FF; +} + +i.inverted.bordered.blue.icon.icon.icon.icon, +i.inverted.circular.blue.icon.icon.icon.icon { + background-color: #2185D0; + color: #FFFFFF; +} + +i.violet.icon.icon.icon.icon { + color: #6435C9; +} + +i.inverted.violet.icon.icon.icon.icon { + color: #A291FB; +} + +i.inverted.bordered.violet.icon.icon.icon.icon, +i.inverted.circular.violet.icon.icon.icon.icon { + background-color: #6435C9; + color: #FFFFFF; +} + +i.purple.icon.icon.icon.icon { + color: #A333C8; +} + +i.inverted.purple.icon.icon.icon.icon { + color: #DC73FF; +} + +i.inverted.bordered.purple.icon.icon.icon.icon, +i.inverted.circular.purple.icon.icon.icon.icon { + background-color: #A333C8; + color: #FFFFFF; +} + +i.pink.icon.icon.icon.icon { + color: #E03997; +} + +i.inverted.pink.icon.icon.icon.icon { + color: #FF8EDF; +} + +i.inverted.bordered.pink.icon.icon.icon.icon, +i.inverted.circular.pink.icon.icon.icon.icon { + background-color: #E03997; + color: #FFFFFF; +} + +i.brown.icon.icon.icon.icon { + color: #A5673F; +} + +i.inverted.brown.icon.icon.icon.icon { + color: #D67C1C; +} + +i.inverted.bordered.brown.icon.icon.icon.icon, +i.inverted.circular.brown.icon.icon.icon.icon { + background-color: #A5673F; + color: #FFFFFF; +} + +i.grey.icon.icon.icon.icon { + color: #767676; +} + +i.inverted.grey.icon.icon.icon.icon { + color: #DCDDDE; +} + +i.inverted.bordered.grey.icon.icon.icon.icon, +i.inverted.circular.grey.icon.icon.icon.icon { + background-color: #767676; + color: #FFFFFF; +} + +i.black.icon.icon.icon.icon { + color: #1B1C1D; +} + +i.inverted.black.icon.icon.icon.icon { + color: #545454; +} + +i.inverted.bordered.black.icon.icon.icon.icon, +i.inverted.circular.black.icon.icon.icon.icon { + background-color: #1B1C1D; + color: #FFFFFF; +} + +/*------------------- + Sizes +--------------------*/ + +i.icon, +i.icons { + font-size: 1em; + line-height: 1; +} + +i.mini.mini.mini.icon, +i.mini.mini.mini.icons { + font-size: 0.4em; + vertical-align: middle; +} + +i.tiny.tiny.tiny.icon, +i.tiny.tiny.tiny.icons { + font-size: 0.5em; + vertical-align: middle; +} + +i.small.small.small.icon, +i.small.small.small.icons { + font-size: 0.75em; + vertical-align: middle; +} + +i.large.large.large.icon, +i.large.large.large.icons { + font-size: 1.5em; + vertical-align: middle; +} + +i.big.big.big.icon, +i.big.big.big.icons { + font-size: 2em; + vertical-align: middle; +} + +i.huge.huge.huge.icon, +i.huge.huge.huge.icons { + font-size: 4em; + vertical-align: middle; +} + +i.massive.massive.massive.icon, +i.massive.massive.massive.icons { + font-size: 8em; + vertical-align: middle; +} + +/******************************* + Groups + *******************************/ + +i.icons { + display: inline-block; + position: relative; + line-height: 1; +} + +i.icons .icon { + position: absolute; + top: 50%; + left: 50%; + transform: translateX(-50%) translateY(-50%); + margin: 0; +} + +i.icons .icon:first-child { + position: static; + width: auto; + height: auto; + vertical-align: top; + transform: none; +} + +/* Corner Icon */ + +i.icons .corner.icon { + top: auto; + left: auto; + right: 0; + bottom: 0; + transform: none; + font-size: 0.45em; + text-shadow: -1px -1px 0 #FFFFFF, 1px -1px 0 #FFFFFF, -1px 1px 0 #FFFFFF, 1px 1px 0 #FFFFFF; +} + +i.icons .icon.corner[class*="top right"] { + top: 0; + left: auto; + right: 0; + bottom: auto; +} + +i.icons .icon.corner[class*="top left"] { + top: 0; + left: 0; + right: auto; + bottom: auto; +} + +i.icons .icon.corner[class*="bottom left"] { + top: auto; + left: 0; + right: auto; + bottom: 0; +} + +i.icons .icon.corner[class*="bottom right"] { + top: auto; + left: auto; + right: 0; + bottom: 0; +} + +i.icons .inverted.corner.icon { + text-shadow: -1px -1px 0 #1B1C1D, 1px -1px 0 #1B1C1D, -1px 1px 0 #1B1C1D, 1px 1px 0 #1B1C1D; +} + +/* +* Font Awesome 5.13.0 by @fontawesome [https://fontawesome.com] +* License - https://fontawesome.com/license (Icons: CC BY 4.0 License, Fonts: SIL OFL 1.1 License, CSS: MIT License) +*/ + +/******************************* + +Fomantic-UI integration of FontAwesome : + +// class names are separated +i.icon.angle-left => i.icon.angle.left + +// variations are extracted +i.icon.circle => i.icon.circle +i.icon.circle-o => i.icon.circle.outline + +// abbreviation are replaced by full words +i.icon.*-h => i.icon.*.horizontal +i.icon.*-v => i.icon.*.vertical +i.icon.alpha => i.icon.alphabet +i.icon.asc => i.icon.ascending +i.icon.desc => i.icon.descending +i.icon.alt => i.icon.alternate + + +Icons are order A-Z in their group, Solid, Outline, Thin (Pro only) and Brand + +*******************************/ + +/******************************* + Icons +*******************************/ + +/* Deprecated *In/Out Naming Conflict) */ + +i.icon.linkedin.in:before { + content: "\f0e1"; +} + +i.icon.zoom.in:before { + content: "\f00e"; +} + +i.icon.zoom.out:before { + content: "\f010"; +} + +i.icon.sign.in:before { + content: "\f2f6"; +} + +i.icon.in.cart:before { + content: "\f218"; +} + +i.icon.log.out:before { + content: "\f2f5"; +} + +i.icon.sign.out:before { + content: "\f2f5"; +} + +/******************************* + Solid Icons +*******************************/ + +/* Icons */ + +i.icon.ad:before { + content: "\f641"; +} + +i.icon.address.book:before { + content: "\f2b9"; +} + +i.icon.address.card:before { + content: "\f2bb"; +} + +i.icon.adjust:before { + content: "\f042"; +} + +i.icon.air.freshener:before { + content: "\f5d0"; +} + +i.icon.align.center:before { + content: "\f037"; +} + +i.icon.align.justify:before { + content: "\f039"; +} + +i.icon.align.left:before { + content: "\f036"; +} + +i.icon.align.right:before { + content: "\f038"; +} + +i.icon.allergies:before { + content: "\f461"; +} + +i.icon.ambulance:before { + content: "\f0f9"; +} + +i.icon.american.sign.language.interpreting:before { + content: "\f2a3"; +} + +i.icon.anchor:before { + content: "\f13d"; +} + +i.icon.angle.double.down:before { + content: "\f103"; +} + +i.icon.angle.double.left:before { + content: "\f100"; +} + +i.icon.angle.double.right:before { + content: "\f101"; +} + +i.icon.angle.double.up:before { + content: "\f102"; +} + +i.icon.angle.down:before { + content: "\f107"; +} + +i.icon.angle.left:before { + content: "\f104"; +} + +i.icon.angle.right:before { + content: "\f105"; +} + +i.icon.angle.up:before { + content: "\f106"; +} + +i.icon.angry:before { + content: "\f556"; +} + +i.icon.ankh:before { + content: "\f644"; +} + +i.icon.archive:before { + content: "\f187"; +} + +i.icon.archway:before { + content: "\f557"; +} + +i.icon.arrow.alternate.circle.down:before { + content: "\f358"; +} + +i.icon.arrow.alternate.circle.left:before { + content: "\f359"; +} + +i.icon.arrow.alternate.circle.right:before { + content: "\f35a"; +} + +i.icon.arrow.alternate.circle.up:before { + content: "\f35b"; +} + +i.icon.arrow.circle.down:before { + content: "\f0ab"; +} + +i.icon.arrow.circle.left:before { + content: "\f0a8"; +} + +i.icon.arrow.circle.right:before { + content: "\f0a9"; +} + +i.icon.arrow.circle.up:before { + content: "\f0aa"; +} + +i.icon.arrow.left:before { + content: "\f060"; +} + +i.icon.arrow.right:before { + content: "\f061"; +} + +i.icon.arrow.up:before { + content: "\f062"; +} + +i.icon.arrow.down:before { + content: "\f063"; +} + +i.icon.arrows.alternate:before { + content: "\f0b2"; +} + +i.icon.arrows.alternate.horizontal:before { + content: "\f337"; +} + +i.icon.arrows.alternate.vertical:before { + content: "\f338"; +} + +i.icon.assistive.listening.systems:before { + content: "\f2a2"; +} + +i.icon.asterisk:before { + content: "\f069"; +} + +i.icon.at:before { + content: "\f1fa"; +} + +i.icon.atlas:before { + content: "\f558"; +} + +i.icon.atom:before { + content: "\f5d2"; +} + +i.icon.audio.description:before { + content: "\f29e"; +} + +i.icon.award:before { + content: "\f559"; +} + +i.icon.baby:before { + content: "\f77c"; +} + +i.icon.baby.carriage:before { + content: "\f77d"; +} + +i.icon.backspace:before { + content: "\f55a"; +} + +i.icon.backward:before { + content: "\f04a"; +} + +i.icon.bacon:before { + content: "\f7e5"; +} + +i.icon.bahai:before { + content: "\f666"; +} + +i.icon.balance.scale:before { + content: "\f24e"; +} + +i.icon.balance.scale.left:before { + content: "\f515"; +} + +i.icon.balance.scale.right:before { + content: "\f516"; +} + +i.icon.ban:before { + content: "\f05e"; +} + +i.icon.band.aid:before { + content: "\f462"; +} + +i.icon.barcode:before { + content: "\f02a"; +} + +i.icon.bars:before { + content: "\f0c9"; +} + +i.icon.baseball.ball:before { + content: "\f433"; +} + +i.icon.basketball.ball:before { + content: "\f434"; +} + +i.icon.bath:before { + content: "\f2cd"; +} + +i.icon.battery.empty:before { + content: "\f244"; +} + +i.icon.battery.full:before { + content: "\f240"; +} + +i.icon.battery.half:before { + content: "\f242"; +} + +i.icon.battery.quarter:before { + content: "\f243"; +} + +i.icon.battery.three.quarters:before { + content: "\f241"; +} + +i.icon.bed:before { + content: "\f236"; +} + +i.icon.beer:before { + content: "\f0fc"; +} + +i.icon.bell:before { + content: "\f0f3"; +} + +i.icon.bell.slash:before { + content: "\f1f6"; +} + +i.icon.bezier.curve:before { + content: "\f55b"; +} + +i.icon.bible:before { + content: "\f647"; +} + +i.icon.bicycle:before { + content: "\f206"; +} + +i.icon.biking:before { + content: "\f84a"; +} + +i.icon.binoculars:before { + content: "\f1e5"; +} + +i.icon.biohazard:before { + content: "\f780"; +} + +i.icon.birthday.cake:before { + content: "\f1fd"; +} + +i.icon.blender:before { + content: "\f517"; +} + +i.icon.blender.phone:before { + content: "\f6b6"; +} + +i.icon.blind:before { + content: "\f29d"; +} + +i.icon.blog:before { + content: "\f781"; +} + +i.icon.bold:before { + content: "\f032"; +} + +i.icon.bolt:before { + content: "\f0e7"; +} + +i.icon.bomb:before { + content: "\f1e2"; +} + +i.icon.bone:before { + content: "\f5d7"; +} + +i.icon.bong:before { + content: "\f55c"; +} + +i.icon.book:before { + content: "\f02d"; +} + +i.icon.book.dead:before { + content: "\f6b7"; +} + +i.icon.book.medical:before { + content: "\f7e6"; +} + +i.icon.book.open:before { + content: "\f518"; +} + +i.icon.book.reader:before { + content: "\f5da"; +} + +i.icon.bookmark:before { + content: "\f02e"; +} + +i.icon.border.all:before { + content: "\f84c"; +} + +i.icon.border.none:before { + content: "\f850"; +} + +i.icon.border.style:before { + content: "\f853"; +} + +i.icon.bowling.ball:before { + content: "\f436"; +} + +i.icon.box:before { + content: "\f466"; +} + +i.icon.box.open:before { + content: "\f49e"; +} + +i.icon.box.tissue:before { + content: "\f95b"; +} + +i.icon.boxes:before { + content: "\f468"; +} + +i.icon.braille:before { + content: "\f2a1"; +} + +i.icon.brain:before { + content: "\f5dc"; +} + +i.icon.bread.slice:before { + content: "\f7ec"; +} + +i.icon.briefcase:before { + content: "\f0b1"; +} + +i.icon.briefcase.medical:before { + content: "\f469"; +} + +i.icon.broadcast.tower:before { + content: "\f519"; +} + +i.icon.broom:before { + content: "\f51a"; +} + +i.icon.brush:before { + content: "\f55d"; +} + +i.icon.bug:before { + content: "\f188"; +} + +i.icon.building:before { + content: "\f1ad"; +} + +i.icon.bullhorn:before { + content: "\f0a1"; +} + +i.icon.bullseye:before { + content: "\f140"; +} + +i.icon.burn:before { + content: "\f46a"; +} + +i.icon.bus:before { + content: "\f207"; +} + +i.icon.bus.alternate:before { + content: "\f55e"; +} + +i.icon.business.time:before { + content: "\f64a"; +} + +i.icon.calculator:before { + content: "\f1ec"; +} + +i.icon.calendar:before { + content: "\f133"; +} + +i.icon.calendar.alternate:before { + content: "\f073"; +} + +i.icon.calendar.check:before { + content: "\f274"; +} + +i.icon.calendar.day:before { + content: "\f783"; +} + +i.icon.calendar.minus:before { + content: "\f272"; +} + +i.icon.calendar.plus:before { + content: "\f271"; +} + +i.icon.calendar.times:before { + content: "\f273"; +} + +i.icon.calendar.week:before { + content: "\f784"; +} + +i.icon.camera:before { + content: "\f030"; +} + +i.icon.camera.retro:before { + content: "\f083"; +} + +i.icon.campground:before { + content: "\f6bb"; +} + +i.icon.candy.cane:before { + content: "\f786"; +} + +i.icon.cannabis:before { + content: "\f55f"; +} + +i.icon.capsules:before { + content: "\f46b"; +} + +i.icon.car:before { + content: "\f1b9"; +} + +i.icon.car.alternate:before { + content: "\f5de"; +} + +i.icon.car.battery:before { + content: "\f5df"; +} + +i.icon.car.crash:before { + content: "\f5e1"; +} + +i.icon.car.side:before { + content: "\f5e4"; +} + +i.icon.caravan:before { + content: "\f8ff"; +} + +i.icon.caret.down:before { + content: "\f0d7"; +} + +i.icon.caret.left:before { + content: "\f0d9"; +} + +i.icon.caret.right:before { + content: "\f0da"; +} + +i.icon.caret.square.down:before { + content: "\f150"; +} + +i.icon.caret.square.left:before { + content: "\f191"; +} + +i.icon.caret.square.right:before { + content: "\f152"; +} + +i.icon.caret.square.up:before { + content: "\f151"; +} + +i.icon.caret.up:before { + content: "\f0d8"; +} + +i.icon.carrot:before { + content: "\f787"; +} + +i.icon.cart.arrow.down:before { + content: "\f218"; +} + +i.icon.cart.plus:before { + content: "\f217"; +} + +i.icon.cash.register:before { + content: "\f788"; +} + +i.icon.cat:before { + content: "\f6be"; +} + +i.icon.certificate:before { + content: "\f0a3"; +} + +i.icon.chair:before { + content: "\f6c0"; +} + +i.icon.chalkboard:before { + content: "\f51b"; +} + +i.icon.chalkboard.teacher:before { + content: "\f51c"; +} + +i.icon.charging.station:before { + content: "\f5e7"; +} + +i.icon.chart.area:before { + content: "\f1fe"; +} + +i.icon.chart.bar:before { + content: "\f080"; +} + +i.icon.chart.line:before { + content: "\f201"; +} + +i.icon.chartline:before { + content: "\f201"; +} + +i.icon.chart.pie:before { + content: "\f200"; +} + +i.icon.check:before { + content: "\f00c"; +} + +i.icon.check.circle:before { + content: "\f058"; +} + +i.icon.check.double:before { + content: "\f560"; +} + +i.icon.check.square:before { + content: "\f14a"; +} + +i.icon.cheese:before { + content: "\f7ef"; +} + +i.icon.chess:before { + content: "\f439"; +} + +i.icon.chess.bishop:before { + content: "\f43a"; +} + +i.icon.chess.board:before { + content: "\f43c"; +} + +i.icon.chess.king:before { + content: "\f43f"; +} + +i.icon.chess.knight:before { + content: "\f441"; +} + +i.icon.chess.pawn:before { + content: "\f443"; +} + +i.icon.chess.queen:before { + content: "\f445"; +} + +i.icon.chess.rook:before { + content: "\f447"; +} + +i.icon.chevron.circle.down:before { + content: "\f13a"; +} + +i.icon.chevron.circle.left:before { + content: "\f137"; +} + +i.icon.chevron.circle.right:before { + content: "\f138"; +} + +i.icon.chevron.circle.up:before { + content: "\f139"; +} + +i.icon.chevron.down:before { + content: "\f078"; +} + +i.icon.chevron.left:before { + content: "\f053"; +} + +i.icon.chevron.right:before { + content: "\f054"; +} + +i.icon.chevron.up:before { + content: "\f077"; +} + +i.icon.child:before { + content: "\f1ae"; +} + +i.icon.church:before { + content: "\f51d"; +} + +i.icon.circle:before { + content: "\f111"; +} + +i.icon.circle.notch:before { + content: "\f1ce"; +} + +i.icon.city:before { + content: "\f64f"; +} + +i.icon.clinic.medical:before { + content: "\f7f2"; +} + +i.icon.clipboard:before { + content: "\f328"; +} + +i.icon.clipboard.check:before { + content: "\f46c"; +} + +i.icon.clipboard.list:before { + content: "\f46d"; +} + +i.icon.clock:before { + content: "\f017"; +} + +i.icon.clone:before { + content: "\f24d"; +} + +i.icon.closed.captioning:before { + content: "\f20a"; +} + +i.icon.cloud:before { + content: "\f0c2"; +} + +i.icon.cloud.download.alternate:before { + content: "\f381"; +} + +i.icon.cloud.meatball:before { + content: "\f73b"; +} + +i.icon.cloud.moon:before { + content: "\f6c3"; +} + +i.icon.cloud.moon.rain:before { + content: "\f73c"; +} + +i.icon.cloud.rain:before { + content: "\f73d"; +} + +i.icon.cloud.showers.heavy:before { + content: "\f740"; +} + +i.icon.cloud.sun:before { + content: "\f6c4"; +} + +i.icon.cloud.sun.rain:before { + content: "\f743"; +} + +i.icon.cloud.upload.alternate:before { + content: "\f382"; +} + +i.icon.cocktail:before { + content: "\f561"; +} + +i.icon.code:before { + content: "\f121"; +} + +i.icon.code.branch:before { + content: "\f126"; +} + +i.icon.coffee:before { + content: "\f0f4"; +} + +i.icon.cog:before { + content: "\f013"; +} + +i.icon.cogs:before { + content: "\f085"; +} + +i.icon.coins:before { + content: "\f51e"; +} + +i.icon.columns:before { + content: "\f0db"; +} + +i.icon.comment:before { + content: "\f075"; +} + +i.icon.comment.alternate:before { + content: "\f27a"; +} + +i.icon.comment.dollar:before { + content: "\f651"; +} + +i.icon.comment.dots:before { + content: "\f4ad"; +} + +i.icon.comment.medical:before { + content: "\f7f5"; +} + +i.icon.comment.slash:before { + content: "\f4b3"; +} + +i.icon.comments:before { + content: "\f086"; +} + +i.icon.comments.dollar:before { + content: "\f653"; +} + +i.icon.compact.disc:before { + content: "\f51f"; +} + +i.icon.compass:before { + content: "\f14e"; +} + +i.icon.compress:before { + content: "\f066"; +} + +i.icon.compress.alternate:before { + content: "\f422"; +} + +i.icon.compress.arrows.alternate:before { + content: "\f78c"; +} + +i.icon.concierge.bell:before { + content: "\f562"; +} + +i.icon.cookie:before { + content: "\f563"; +} + +i.icon.cookie.bite:before { + content: "\f564"; +} + +i.icon.copy:before { + content: "\f0c5"; +} + +i.icon.copyright:before { + content: "\f1f9"; +} + +i.icon.couch:before { + content: "\f4b8"; +} + +i.icon.credit.card:before { + content: "\f09d"; +} + +i.icon.crop:before { + content: "\f125"; +} + +i.icon.crop.alternate:before { + content: "\f565"; +} + +i.icon.cross:before { + content: "\f654"; +} + +i.icon.crosshairs:before { + content: "\f05b"; +} + +i.icon.crow:before { + content: "\f520"; +} + +i.icon.crown:before { + content: "\f521"; +} + +i.icon.crutch:before { + content: "\f7f7"; +} + +i.icon.cube:before { + content: "\f1b2"; +} + +i.icon.cubes:before { + content: "\f1b3"; +} + +i.icon.cut:before { + content: "\f0c4"; +} + +i.icon.database:before { + content: "\f1c0"; +} + +i.icon.deaf:before { + content: "\f2a4"; +} + +i.icon.democrat:before { + content: "\f747"; +} + +i.icon.desktop:before { + content: "\f108"; +} + +i.icon.dharmachakra:before { + content: "\f655"; +} + +i.icon.diagnoses:before { + content: "\f470"; +} + +i.icon.dice:before { + content: "\f522"; +} + +i.icon.dice.d20:before { + content: "\f6cf"; +} + +i.icon.dice.d6:before { + content: "\f6d1"; +} + +i.icon.dice.five:before { + content: "\f523"; +} + +i.icon.dice.four:before { + content: "\f524"; +} + +i.icon.dice.one:before { + content: "\f525"; +} + +i.icon.dice.six:before { + content: "\f526"; +} + +i.icon.dice.three:before { + content: "\f527"; +} + +i.icon.dice.two:before { + content: "\f528"; +} + +i.icon.digital.tachograph:before { + content: "\f566"; +} + +i.icon.directions:before { + content: "\f5eb"; +} + +i.icon.disease:before { + content: "\f7fa"; +} + +i.icon.divide:before { + content: "\f529"; +} + +i.icon.dizzy:before { + content: "\f567"; +} + +i.icon.dna:before { + content: "\f471"; +} + +i.icon.dog:before { + content: "\f6d3"; +} + +i.icon.dollar.sign:before { + content: "\f155"; +} + +i.icon.dolly:before { + content: "\f472"; +} + +i.icon.dolly.flatbed:before { + content: "\f474"; +} + +i.icon.donate:before { + content: "\f4b9"; +} + +i.icon.door.closed:before { + content: "\f52a"; +} + +i.icon.door.open:before { + content: "\f52b"; +} + +i.icon.dot.circle:before { + content: "\f192"; +} + +i.icon.dove:before { + content: "\f4ba"; +} + +i.icon.download:before { + content: "\f019"; +} + +i.icon.drafting.compass:before { + content: "\f568"; +} + +i.icon.dragon:before { + content: "\f6d5"; +} + +i.icon.draw.polygon:before { + content: "\f5ee"; +} + +i.icon.drum:before { + content: "\f569"; +} + +i.icon.drum.steelpan:before { + content: "\f56a"; +} + +i.icon.drumstick.bite:before { + content: "\f6d7"; +} + +i.icon.dumbbell:before { + content: "\f44b"; +} + +i.icon.dumpster:before { + content: "\f793"; +} + +i.icon.dumpster.fire:before { + content: "\f794"; +} + +i.icon.dungeon:before { + content: "\f6d9"; +} + +i.icon.edit:before { + content: "\f044"; +} + +i.icon.egg:before { + content: "\f7fb"; +} + +i.icon.eject:before { + content: "\f052"; +} + +i.icon.ellipsis.horizontal:before { + content: "\f141"; +} + +i.icon.ellipsis.vertical:before { + content: "\f142"; +} + +i.icon.envelope:before { + content: "\f0e0"; +} + +i.icon.envelope.open:before { + content: "\f2b6"; +} + +i.icon.envelope.open.text:before { + content: "\f658"; +} + +i.icon.envelope.square:before { + content: "\f199"; +} + +i.icon.equals:before { + content: "\f52c"; +} + +i.icon.eraser:before { + content: "\f12d"; +} + +i.icon.ethernet:before { + content: "\f796"; +} + +i.icon.euro.sign:before { + content: "\f153"; +} + +i.icon.exchange.alternate:before { + content: "\f362"; +} + +i.icon.exclamation:before { + content: "\f12a"; +} + +i.icon.exclamation.circle:before { + content: "\f06a"; +} + +i.icon.exclamation.triangle:before { + content: "\f071"; +} + +i.icon.expand:before { + content: "\f065"; +} + +i.icon.expand.alternate:before { + content: "\f424"; +} + +i.icon.expand.arrows.alternate:before { + content: "\f31e"; +} + +i.icon.external.alternate:before { + content: "\f35d"; +} + +i.icon.external.link.square.alternate:before { + content: "\f360"; +} + +i.icon.eye:before { + content: "\f06e"; +} + +i.icon.eye.dropper:before { + content: "\f1fb"; +} + +i.icon.eye.slash:before { + content: "\f070"; +} + +i.icon.fan:before { + content: "\f863"; +} + +i.icon.fast.backward:before { + content: "\f049"; +} + +i.icon.fast.forward:before { + content: "\f050"; +} + +i.icon.faucet:before { + content: "\f905"; +} + +i.icon.fax:before { + content: "\f1ac"; +} + +i.icon.feather:before { + content: "\f52d"; +} + +i.icon.feather.alternate:before { + content: "\f56b"; +} + +i.icon.female:before { + content: "\f182"; +} + +i.icon.fighter.jet:before { + content: "\f0fb"; +} + +i.icon.file:before { + content: "\f15b"; +} + +i.icon.file.alternate:before { + content: "\f15c"; +} + +i.icon.file.archive:before { + content: "\f1c6"; +} + +i.icon.file.audio:before { + content: "\f1c7"; +} + +i.icon.file.code:before { + content: "\f1c9"; +} + +i.icon.file.contract:before { + content: "\f56c"; +} + +i.icon.file.csv:before { + content: "\f6dd"; +} + +i.icon.file.download:before { + content: "\f56d"; +} + +i.icon.file.excel:before { + content: "\f1c3"; +} + +i.icon.file.export:before { + content: "\f56e"; +} + +i.icon.file.image:before { + content: "\f1c5"; +} + +i.icon.file.import:before { + content: "\f56f"; +} + +i.icon.file.invoice:before { + content: "\f570"; +} + +i.icon.file.invoice.dollar:before { + content: "\f571"; +} + +i.icon.file.medical:before { + content: "\f477"; +} + +i.icon.file.medical.alternate:before { + content: "\f478"; +} + +i.icon.file.pdf:before { + content: "\f1c1"; +} + +i.icon.file.powerpoint:before { + content: "\f1c4"; +} + +i.icon.file.prescription:before { + content: "\f572"; +} + +i.icon.file.signature:before { + content: "\f573"; +} + +i.icon.file.upload:before { + content: "\f574"; +} + +i.icon.file.video:before { + content: "\f1c8"; +} + +i.icon.file.word:before { + content: "\f1c2"; +} + +i.icon.fill:before { + content: "\f575"; +} + +i.icon.fill.drip:before { + content: "\f576"; +} + +i.icon.film:before { + content: "\f008"; +} + +i.icon.filter:before { + content: "\f0b0"; +} + +i.icon.fingerprint:before { + content: "\f577"; +} + +i.icon.fire:before { + content: "\f06d"; +} + +i.icon.fire.alternate:before { + content: "\f7e4"; +} + +i.icon.fire.extinguisher:before { + content: "\f134"; +} + +i.icon.first.aid:before { + content: "\f479"; +} + +i.icon.fish:before { + content: "\f578"; +} + +i.icon.fist.raised:before { + content: "\f6de"; +} + +i.icon.flag:before { + content: "\f024"; +} + +i.icon.flag.checkered:before { + content: "\f11e"; +} + +i.icon.flag.usa:before { + content: "\f74d"; +} + +i.icon.flask:before { + content: "\f0c3"; +} + +i.icon.flushed:before { + content: "\f579"; +} + +i.icon.folder:before { + content: "\f07b"; +} + +i.icon.folder.minus:before { + content: "\f65d"; +} + +i.icon.folder.open:before { + content: "\f07c"; +} + +i.icon.folder.plus:before { + content: "\f65e"; +} + +i.icon.font:before { + content: "\f031"; +} + +i.icon.football.ball:before { + content: "\f44e"; +} + +i.icon.forward:before { + content: "\f04e"; +} + +i.icon.frog:before { + content: "\f52e"; +} + +i.icon.frown:before { + content: "\f119"; +} + +i.icon.frown.open:before { + content: "\f57a"; +} + +i.icon.fruit-apple:before { + content: "\f5d1"; +} + +i.icon.funnel.dollar:before { + content: "\f662"; +} + +i.icon.futbol:before { + content: "\f1e3"; +} + +i.icon.gamepad:before { + content: "\f11b"; +} + +i.icon.gas.pump:before { + content: "\f52f"; +} + +i.icon.gavel:before { + content: "\f0e3"; +} + +i.icon.gem:before { + content: "\f3a5"; +} + +i.icon.genderless:before { + content: "\f22d"; +} + +i.icon.ghost:before { + content: "\f6e2"; +} + +i.icon.gift:before { + content: "\f06b"; +} + +i.icon.gifts:before { + content: "\f79c"; +} + +i.icon.glass.cheers:before { + content: "\f79f"; +} + +i.icon.glass.martini:before { + content: "\f000"; +} + +i.icon.glass.martini.alternate:before { + content: "\f57b"; +} + +i.icon.glass.whiskey:before { + content: "\f7a0"; +} + +i.icon.glasses:before { + content: "\f530"; +} + +i.icon.globe:before { + content: "\f0ac"; +} + +i.icon.globe.africa:before { + content: "\f57c"; +} + +i.icon.globe.americas:before { + content: "\f57d"; +} + +i.icon.globe.asia:before { + content: "\f57e"; +} + +i.icon.globe.europe:before { + content: "\f7a2"; +} + +i.icon.golf.ball:before { + content: "\f450"; +} + +i.icon.gopuram:before { + content: "\f664"; +} + +i.icon.graduation.cap:before { + content: "\f19d"; +} + +i.icon.greater.than:before { + content: "\f531"; +} + +i.icon.greater.than.equal:before { + content: "\f532"; +} + +i.icon.grimace:before { + content: "\f57f"; +} + +i.icon.grin:before { + content: "\f580"; +} + +i.icon.grin.alternate:before { + content: "\f581"; +} + +i.icon.grin.beam:before { + content: "\f582"; +} + +i.icon.grin.beam.sweat:before { + content: "\f583"; +} + +i.icon.grin.hearts:before { + content: "\f584"; +} + +i.icon.grin.squint:before { + content: "\f585"; +} + +i.icon.grin.squint.tears:before { + content: "\f586"; +} + +i.icon.grin.stars:before { + content: "\f587"; +} + +i.icon.grin.tears:before { + content: "\f588"; +} + +i.icon.grin.tongue:before { + content: "\f589"; +} + +i.icon.grin.tongue.squint:before { + content: "\f58a"; +} + +i.icon.grin.tongue.wink:before { + content: "\f58b"; +} + +i.icon.grin.wink:before { + content: "\f58c"; +} + +i.icon.grip.horizontal:before { + content: "\f58d"; +} + +i.icon.grip.lines:before { + content: "\f7a4"; +} + +i.icon.grip.lines.vertical:before { + content: "\f7a5"; +} + +i.icon.grip.vertical:before { + content: "\f58e"; +} + +i.icon.guitar:before { + content: "\f7a6"; +} + +i.icon.h.square:before { + content: "\f0fd"; +} + +i.icon.hamburger:before { + content: "\f805"; +} + +i.icon.hammer:before { + content: "\f6e3"; +} + +i.icon.hamsa:before { + content: "\f665"; +} + +i.icon.hand.holding:before { + content: "\f4bd"; +} + +i.icon.hand.holding.heart:before { + content: "\f4be"; +} + +i.icon.hand.holding.medical:before { + content: "\f95c"; +} + +i.icon.hand.holding.usd:before { + content: "\f4c0"; +} + +i.icon.hand.holding.water:before { + content: "\f4c1"; +} + +i.icon.hand.lizard:before { + content: "\f258"; +} + +i.icon.hand.middle.finger:before { + content: "\f806"; +} + +i.icon.hand.paper:before { + content: "\f256"; +} + +i.icon.hand.peace:before { + content: "\f25b"; +} + +i.icon.hand.point.down:before { + content: "\f0a7"; +} + +i.icon.hand.point.left:before { + content: "\f0a5"; +} + +i.icon.hand.point.right:before { + content: "\f0a4"; +} + +i.icon.hand.point.up:before { + content: "\f0a6"; +} + +i.icon.hand.pointer:before { + content: "\f25a"; +} + +i.icon.hand.rock:before { + content: "\f255"; +} + +i.icon.hand.scissors:before { + content: "\f257"; +} + +i.icon.hand.sparkles:before { + content: "\f95d"; +} + +i.icon.hand.spock:before { + content: "\f259"; +} + +i.icon.hands:before { + content: "\f4c2"; +} + +i.icon.hands.helping:before { + content: "\f4c4"; +} + +i.icon.hands.wash:before { + content: "\f95e"; +} + +i.icon.handshake:before { + content: "\f2b5"; +} + +i.icon.handshake.alternate.slash:before { + content: "\f95f"; +} + +i.icon.handshake.slash:before { + content: "\f960"; +} + +i.icon.hanukiah:before { + content: "\f6e6"; +} + +i.icon.hard.hat:before { + content: "\f807"; +} + +i.icon.hashtag:before { + content: "\f292"; +} + +i.icon.hat.cowboy:before { + content: "\f8c0"; +} + +i.icon.hat.cowboy.side:before { + content: "\f8c1"; +} + +i.icon.hat.wizard:before { + content: "\f6e8"; +} + +i.icon.hdd:before { + content: "\f0a0"; +} + +i.icon.head.side.cough:before { + content: "\f961"; +} + +i.icon.head.side.cough.slash:before { + content: "\f962"; +} + +i.icon.head.side.mask:before { + content: "\f963"; +} + +i.icon.head.side.virus:before { + content: "\f964"; +} + +i.icon.heading:before { + content: "\f1dc"; +} + +i.icon.headphones:before { + content: "\f025"; +} + +i.icon.headphones.alternate:before { + content: "\f58f"; +} + +i.icon.headset:before { + content: "\f590"; +} + +i.icon.heart:before { + content: "\f004"; +} + +i.icon.heart.broken:before { + content: "\f7a9"; +} + +i.icon.heartbeat:before { + content: "\f21e"; +} + +i.icon.helicopter:before { + content: "\f533"; +} + +i.icon.highlighter:before { + content: "\f591"; +} + +i.icon.hiking:before { + content: "\f6ec"; +} + +i.icon.hippo:before { + content: "\f6ed"; +} + +i.icon.history:before { + content: "\f1da"; +} + +i.icon.hockey.puck:before { + content: "\f453"; +} + +i.icon.holly.berry:before { + content: "\f7aa"; +} + +i.icon.home:before { + content: "\f015"; +} + +i.icon.horse:before { + content: "\f6f0"; +} + +i.icon.horse.head:before { + content: "\f7ab"; +} + +i.icon.hospital:before { + content: "\f0f8"; +} + +i.icon.hospital.alternate:before { + content: "\f47d"; +} + +i.icon.hospital.symbol:before { + content: "\f47e"; +} + +i.icon.hospital.user:before { + content: "\f80d"; +} + +i.icon.hot.tub:before { + content: "\f593"; +} + +i.icon.hotdog:before { + content: "\f80f"; +} + +i.icon.hotel:before { + content: "\f594"; +} + +i.icon.hourglass:before { + content: "\f254"; +} + +i.icon.hourglass.end:before { + content: "\f253"; +} + +i.icon.hourglass.half:before { + content: "\f252"; +} + +i.icon.hourglass.start:before { + content: "\f251"; +} + +i.icon.house.damage:before { + content: "\f6f1"; +} + +i.icon.house.user:before { + content: "\f965"; +} + +i.icon.hryvnia:before { + content: "\f6f2"; +} + +i.icon.i.cursor:before { + content: "\f246"; +} + +i.icon.ice.cream:before { + content: "\f810"; +} + +i.icon.icicles:before { + content: "\f7ad"; +} + +i.icon.icons:before { + content: "\f86d"; +} + +i.icon.id.badge:before { + content: "\f2c1"; +} + +i.icon.id.card:before { + content: "\f2c2"; +} + +i.icon.id.card.alternate:before { + content: "\f47f"; +} + +i.icon.igloo:before { + content: "\f7ae"; +} + +i.icon.image:before { + content: "\f03e"; +} + +i.icon.images:before { + content: "\f302"; +} + +i.icon.inbox:before { + content: "\f01c"; +} + +i.icon.indent:before { + content: "\f03c"; +} + +i.icon.industry:before { + content: "\f275"; +} + +i.icon.infinity:before { + content: "\f534"; +} + +i.icon.info:before { + content: "\f129"; +} + +i.icon.info.circle:before { + content: "\f05a"; +} + +i.icon.italic:before { + content: "\f033"; +} + +i.icon.jedi:before { + content: "\f669"; +} + +i.icon.joint:before { + content: "\f595"; +} + +i.icon.journal.whills:before { + content: "\f66a"; +} + +i.icon.kaaba:before { + content: "\f66b"; +} + +i.icon.key:before { + content: "\f084"; +} + +i.icon.keyboard:before { + content: "\f11c"; +} + +i.icon.khanda:before { + content: "\f66d"; +} + +i.icon.kiss:before { + content: "\f596"; +} + +i.icon.kiss.beam:before { + content: "\f597"; +} + +i.icon.kiss.wink.heart:before { + content: "\f598"; +} + +i.icon.kiwi.bird:before { + content: "\f535"; +} + +i.icon.landmark:before { + content: "\f66f"; +} + +i.icon.language:before { + content: "\f1ab"; +} + +i.icon.laptop:before { + content: "\f109"; +} + +i.icon.laptop.code:before { + content: "\f5fc"; +} + +i.icon.laptop.house:before { + content: "\f966"; +} + +i.icon.laptop.medical:before { + content: "\f812"; +} + +i.icon.laugh:before { + content: "\f599"; +} + +i.icon.laugh.beam:before { + content: "\f59a"; +} + +i.icon.laugh.squint:before { + content: "\f59b"; +} + +i.icon.laugh.wink:before { + content: "\f59c"; +} + +i.icon.layer.group:before { + content: "\f5fd"; +} + +i.icon.leaf:before { + content: "\f06c"; +} + +i.icon.lemon:before { + content: "\f094"; +} + +i.icon.less.than:before { + content: "\f536"; +} + +i.icon.less.than.equal:before { + content: "\f537"; +} + +i.icon.level.down.alternate:before { + content: "\f3be"; +} + +i.icon.level.up.alternate:before { + content: "\f3bf"; +} + +i.icon.life.ring:before { + content: "\f1cd"; +} + +i.icon.lightbulb:before { + content: "\f0eb"; +} + +i.icon.linkify:before { + content: "\f0c1"; +} + +i.icon.lira.sign:before { + content: "\f195"; +} + +i.icon.list:before { + content: "\f03a"; +} + +i.icon.list.alternate:before { + content: "\f022"; +} + +i.icon.list.ol:before { + content: "\f0cb"; +} + +i.icon.list.ul:before { + content: "\f0ca"; +} + +i.icon.location.arrow:before { + content: "\f124"; +} + +i.icon.lock:before { + content: "\f023"; +} + +i.icon.lock.open:before { + content: "\f3c1"; +} + +i.icon.long.arrow.alternate.down:before { + content: "\f309"; +} + +i.icon.long.arrow.alternate.left:before { + content: "\f30a"; +} + +i.icon.long.arrow.alternate.right:before { + content: "\f30b"; +} + +i.icon.long.arrow.alternate.up:before { + content: "\f30c"; +} + +i.icon.low.vision:before { + content: "\f2a8"; +} + +i.icon.luggage.cart:before { + content: "\f59d"; +} + +i.icon.lungs:before { + content: "\f604"; +} + +i.icon.lungs.virus:before { + content: "\f967"; +} + +i.icon.magic:before { + content: "\f0d0"; +} + +i.icon.magnet:before { + content: "\f076"; +} + +i.icon.mail.bulk:before { + content: "\f674"; +} + +i.icon.male:before { + content: "\f183"; +} + +i.icon.map:before { + content: "\f279"; +} + +i.icon.map.marked:before { + content: "\f59f"; +} + +i.icon.map.marked.alternate:before { + content: "\f5a0"; +} + +i.icon.map.marker:before { + content: "\f041"; +} + +i.icon.map.marker.alternate:before { + content: "\f3c5"; +} + +i.icon.map.pin:before { + content: "\f276"; +} + +i.icon.map.signs:before { + content: "\f277"; +} + +i.icon.marker:before { + content: "\f5a1"; +} + +i.icon.mars:before { + content: "\f222"; +} + +i.icon.mars.double:before { + content: "\f227"; +} + +i.icon.mars.stroke:before { + content: "\f229"; +} + +i.icon.mars.stroke.horizontal:before { + content: "\f22b"; +} + +i.icon.mars.stroke.vertical:before { + content: "\f22a"; +} + +i.icon.mask:before { + content: "\f6fa"; +} + +i.icon.medal:before { + content: "\f5a2"; +} + +i.icon.medkit:before { + content: "\f0fa"; +} + +i.icon.meh:before { + content: "\f11a"; +} + +i.icon.meh.blank:before { + content: "\f5a4"; +} + +i.icon.meh.rolling.eyes:before { + content: "\f5a5"; +} + +i.icon.memory:before { + content: "\f538"; +} + +i.icon.menorah:before { + content: "\f676"; +} + +i.icon.mercury:before { + content: "\f223"; +} + +i.icon.meteor:before { + content: "\f753"; +} + +i.icon.microchip:before { + content: "\f2db"; +} + +i.icon.microphone:before { + content: "\f130"; +} + +i.icon.microphone.alternate:before { + content: "\f3c9"; +} + +i.icon.microphone.alternate.slash:before { + content: "\f539"; +} + +i.icon.microphone.slash:before { + content: "\f131"; +} + +i.icon.microscope:before { + content: "\f610"; +} + +i.icon.minus:before { + content: "\f068"; +} + +i.icon.minus.circle:before { + content: "\f056"; +} + +i.icon.minus.square:before { + content: "\f146"; +} + +i.icon.mitten:before { + content: "\f7b5"; +} + +i.icon.mobile:before { + content: "\f10b"; +} + +i.icon.mobile.alternate:before { + content: "\f3cd"; +} + +i.icon.money.bill:before { + content: "\f0d6"; +} + +i.icon.money.bill.alternate:before { + content: "\f3d1"; +} + +i.icon.money.bill.wave:before { + content: "\f53a"; +} + +i.icon.money.bill.wave.alternate:before { + content: "\f53b"; +} + +i.icon.money.check:before { + content: "\f53c"; +} + +i.icon.money.check.alternate:before { + content: "\f53d"; +} + +i.icon.monument:before { + content: "\f5a6"; +} + +i.icon.moon:before { + content: "\f186"; +} + +i.icon.mortar.pestle:before { + content: "\f5a7"; +} + +i.icon.mosque:before { + content: "\f678"; +} + +i.icon.motorcycle:before { + content: "\f21c"; +} + +i.icon.mountain:before { + content: "\f6fc"; +} + +i.icon.mouse:before { + content: "\f8cc"; +} + +i.icon.mouse.pointer:before { + content: "\f245"; +} + +i.icon.mug.hot:before { + content: "\f7b6"; +} + +i.icon.music:before { + content: "\f001"; +} + +i.icon.network.wired:before { + content: "\f6ff"; +} + +i.icon.neuter:before { + content: "\f22c"; +} + +i.icon.newspaper:before { + content: "\f1ea"; +} + +i.icon.not.equal:before { + content: "\f53e"; +} + +i.icon.notes.medical:before { + content: "\f481"; +} + +i.icon.object.group:before { + content: "\f247"; +} + +i.icon.object.ungroup:before { + content: "\f248"; +} + +i.icon.oil.can:before { + content: "\f613"; +} + +i.icon.om:before { + content: "\f679"; +} + +i.icon.otter:before { + content: "\f700"; +} + +i.icon.outdent:before { + content: "\f03b"; +} + +i.icon.pager:before { + content: "\f815"; +} + +i.icon.paint.brush:before { + content: "\f1fc"; +} + +i.icon.paint.roller:before { + content: "\f5aa"; +} + +i.icon.palette:before { + content: "\f53f"; +} + +i.icon.pallet:before { + content: "\f482"; +} + +i.icon.paper.plane:before { + content: "\f1d8"; +} + +i.icon.paperclip:before { + content: "\f0c6"; +} + +i.icon.parachute.box:before { + content: "\f4cd"; +} + +i.icon.paragraph:before { + content: "\f1dd"; +} + +i.icon.parking:before { + content: "\f540"; +} + +i.icon.passport:before { + content: "\f5ab"; +} + +i.icon.pastafarianism:before { + content: "\f67b"; +} + +i.icon.paste:before { + content: "\f0ea"; +} + +i.icon.pause:before { + content: "\f04c"; +} + +i.icon.pause.circle:before { + content: "\f28b"; +} + +i.icon.paw:before { + content: "\f1b0"; +} + +i.icon.peace:before { + content: "\f67c"; +} + +i.icon.pen:before { + content: "\f304"; +} + +i.icon.pen.alternate:before { + content: "\f305"; +} + +i.icon.pen.fancy:before { + content: "\f5ac"; +} + +i.icon.pen.nib:before { + content: "\f5ad"; +} + +i.icon.pen.square:before { + content: "\f14b"; +} + +i.icon.pencil.alternate:before { + content: "\f303"; +} + +i.icon.pencil.ruler:before { + content: "\f5ae"; +} + +i.icon.people.arrows:before { + content: "\f968"; +} + +i.icon.people.carry:before { + content: "\f4ce"; +} + +i.icon.pepper.hot:before { + content: "\f816"; +} + +i.icon.percent:before { + content: "\f295"; +} + +i.icon.percentage:before { + content: "\f541"; +} + +i.icon.person.booth:before { + content: "\f756"; +} + +i.icon.phone:before { + content: "\f095"; +} + +i.icon.phone.alternate:before { + content: "\f879"; +} + +i.icon.phone.slash:before { + content: "\f3dd"; +} + +i.icon.phone.square:before { + content: "\f098"; +} + +i.icon.phone.square.alternate:before { + content: "\f87b"; +} + +i.icon.phone.volume:before { + content: "\f2a0"; +} + +i.icon.photo.video:before { + content: "\f87c"; +} + +i.icon.piggy.bank:before { + content: "\f4d3"; +} + +i.icon.pills:before { + content: "\f484"; +} + +i.icon.pizza.slice:before { + content: "\f818"; +} + +i.icon.place.of.worship:before { + content: "\f67f"; +} + +i.icon.plane:before { + content: "\f072"; +} + +i.icon.plane.arrival:before { + content: "\f5af"; +} + +i.icon.plane.departure:before { + content: "\f5b0"; +} + +i.icon.plane.slash:before { + content: "\f969"; +} + +i.icon.play:before { + content: "\f04b"; +} + +i.icon.play.circle:before { + content: "\f144"; +} + +i.icon.plug:before { + content: "\f1e6"; +} + +i.icon.plus:before { + content: "\f067"; +} + +i.icon.plus.circle:before { + content: "\f055"; +} + +i.icon.plus.square:before { + content: "\f0fe"; +} + +i.icon.podcast:before { + content: "\f2ce"; +} + +i.icon.poll:before { + content: "\f681"; +} + +i.icon.poll.horizontal:before { + content: "\f682"; +} + +i.icon.poo:before { + content: "\f2fe"; +} + +i.icon.poo.storm:before { + content: "\f75a"; +} + +i.icon.poop:before { + content: "\f619"; +} + +i.icon.portrait:before { + content: "\f3e0"; +} + +i.icon.pound.sign:before { + content: "\f154"; +} + +i.icon.power.off:before { + content: "\f011"; +} + +i.icon.pray:before { + content: "\f683"; +} + +i.icon.praying.hands:before { + content: "\f684"; +} + +i.icon.prescription:before { + content: "\f5b1"; +} + +i.icon.prescription.bottle:before { + content: "\f485"; +} + +i.icon.prescription.bottle.alternate:before { + content: "\f486"; +} + +i.icon.print:before { + content: "\f02f"; +} + +i.icon.procedures:before { + content: "\f487"; +} + +i.icon.project.diagram:before { + content: "\f542"; +} + +i.icon.pump.medical:before { + content: "\f96a"; +} + +i.icon.pump.soap:before { + content: "\f96b"; +} + +i.icon.puzzle.piece:before { + content: "\f12e"; +} + +i.icon.qrcode:before { + content: "\f029"; +} + +i.icon.question:before { + content: "\f128"; +} + +i.icon.question.circle:before { + content: "\f059"; +} + +i.icon.quidditch:before { + content: "\f458"; +} + +i.icon.quote.left:before { + content: "\f10d"; +} + +i.icon.quote.right:before { + content: "\f10e"; +} + +i.icon.quran:before { + content: "\f687"; +} + +i.icon.radiation:before { + content: "\f7b9"; +} + +i.icon.radiation.alternate:before { + content: "\f7ba"; +} + +i.icon.rainbow:before { + content: "\f75b"; +} + +i.icon.random:before { + content: "\f074"; +} + +i.icon.receipt:before { + content: "\f543"; +} + +i.icon.record.vinyl:before { + content: "\f8d9"; +} + +i.icon.recycle:before { + content: "\f1b8"; +} + +i.icon.redo:before { + content: "\f01e"; +} + +i.icon.redo.alternate:before { + content: "\f2f9"; +} + +i.icon.registered:before { + content: "\f25d"; +} + +i.icon.remove.format:before { + content: "\f87d"; +} + +i.icon.reply:before { + content: "\f3e5"; +} + +i.icon.reply.all:before { + content: "\f122"; +} + +i.icon.republican:before { + content: "\f75e"; +} + +i.icon.restroom:before { + content: "\f7bd"; +} + +i.icon.retweet:before { + content: "\f079"; +} + +i.icon.ribbon:before { + content: "\f4d6"; +} + +i.icon.ring:before { + content: "\f70b"; +} + +i.icon.road:before { + content: "\f018"; +} + +i.icon.robot:before { + content: "\f544"; +} + +i.icon.rocket:before { + content: "\f135"; +} + +i.icon.route:before { + content: "\f4d7"; +} + +i.icon.rss:before { + content: "\f09e"; +} + +i.icon.rss.square:before { + content: "\f143"; +} + +i.icon.ruble.sign:before { + content: "\f158"; +} + +i.icon.ruler:before { + content: "\f545"; +} + +i.icon.ruler.combined:before { + content: "\f546"; +} + +i.icon.ruler.horizontal:before { + content: "\f547"; +} + +i.icon.ruler.vertical:before { + content: "\f548"; +} + +i.icon.running:before { + content: "\f70c"; +} + +i.icon.rupee.sign:before { + content: "\f156"; +} + +i.icon.sad.cry:before { + content: "\f5b3"; +} + +i.icon.sad.tear:before { + content: "\f5b4"; +} + +i.icon.satellite:before { + content: "\f7bf"; +} + +i.icon.satellite.dish:before { + content: "\f7c0"; +} + +i.icon.save:before { + content: "\f0c7"; +} + +i.icon.school:before { + content: "\f549"; +} + +i.icon.screwdriver:before { + content: "\f54a"; +} + +i.icon.scroll:before { + content: "\f70e"; +} + +i.icon.sd.card:before { + content: "\f7c2"; +} + +i.icon.search:before { + content: "\f002"; +} + +i.icon.search.dollar:before { + content: "\f688"; +} + +i.icon.search.location:before { + content: "\f689"; +} + +i.icon.search.minus:before { + content: "\f010"; +} + +i.icon.search.plus:before { + content: "\f00e"; +} + +i.icon.seedling:before { + content: "\f4d8"; +} + +i.icon.server:before { + content: "\f233"; +} + +i.icon.shapes:before { + content: "\f61f"; +} + +i.icon.share:before { + content: "\f064"; +} + +i.icon.share.alternate:before { + content: "\f1e0"; +} + +i.icon.share.alternate.square:before { + content: "\f1e1"; +} + +i.icon.share.square:before { + content: "\f14d"; +} + +i.icon.shekel.sign:before { + content: "\f20b"; +} + +i.icon.shield.alternate:before { + content: "\f3ed"; +} + +i.icon.shield.virus:before { + content: "\f96c"; +} + +i.icon.ship:before { + content: "\f21a"; +} + +i.icon.shipping.fast:before { + content: "\f48b"; +} + +i.icon.shoe.prints:before { + content: "\f54b"; +} + +i.icon.shopping.bag:before { + content: "\f290"; +} + +i.icon.shopping.basket:before { + content: "\f291"; +} + +i.icon.shopping.cart:before { + content: "\f07a"; +} + +i.icon.shower:before { + content: "\f2cc"; +} + +i.icon.shuttle.van:before { + content: "\f5b6"; +} + +i.icon.sign:before { + content: "\f4d9"; +} + +i.icon.sign.in.alternate:before { + content: "\f2f6"; +} + +i.icon.sign.language:before { + content: "\f2a7"; +} + +i.icon.sign.out.alternate:before { + content: "\f2f5"; +} + +i.icon.signal:before { + content: "\f012"; +} + +i.icon.signature:before { + content: "\f5b7"; +} + +i.icon.sim.card:before { + content: "\f7c4"; +} + +i.icon.sitemap:before { + content: "\f0e8"; +} + +i.icon.skating:before { + content: "\f7c5"; +} + +i.icon.skiing:before { + content: "\f7c9"; +} + +i.icon.skiing.nordic:before { + content: "\f7ca"; +} + +i.icon.skull:before { + content: "\f54c"; +} + +i.icon.skull.crossbones:before { + content: "\f714"; +} + +i.icon.slash:before { + content: "\f715"; +} + +i.icon.sleigh:before { + content: "\f7cc"; +} + +i.icon.sliders.horizontal:before { + content: "\f1de"; +} + +i.icon.smile:before { + content: "\f118"; +} + +i.icon.smile.beam:before { + content: "\f5b8"; +} + +i.icon.smile.wink:before { + content: "\f4da"; +} + +i.icon.smog:before { + content: "\f75f"; +} + +i.icon.smoking:before { + content: "\f48d"; +} + +i.icon.smoking.ban:before { + content: "\f54d"; +} + +i.icon.sms:before { + content: "\f7cd"; +} + +i.icon.snowboarding:before { + content: "\f7ce"; +} + +i.icon.snowflake:before { + content: "\f2dc"; +} + +i.icon.snowman:before { + content: "\f7d0"; +} + +i.icon.snowplow:before { + content: "\f7d2"; +} + +i.icon.soap:before { + content: "\f96e"; +} + +i.icon.socks:before { + content: "\f696"; +} + +i.icon.solar.panel:before { + content: "\f5ba"; +} + +i.icon.sort:before { + content: "\f0dc"; +} + +i.icon.sort.alphabet.down:before { + content: "\f15d"; +} + +i.icon.sort.alphabet.down.alternate:before { + content: "\f881"; +} + +i.icon.sort.alphabet.up:before { + content: "\f15e"; +} + +i.icon.sort.alphabet.up.alternate:before { + content: "\f882"; +} + +i.icon.sort.amount.down:before { + content: "\f160"; +} + +i.icon.sort.amount.down.alternate:before { + content: "\f884"; +} + +i.icon.sort.amount.up:before { + content: "\f161"; +} + +i.icon.sort.amount.up.alternate:before { + content: "\f885"; +} + +i.icon.sort.down:before { + content: "\f0dd"; +} + +i.icon.sort.numeric.down:before { + content: "\f162"; +} + +i.icon.sort.numeric.down.alternate:before { + content: "\f886"; +} + +i.icon.sort.numeric.up:before { + content: "\f163"; +} + +i.icon.sort.numeric.up.alternate:before { + content: "\f887"; +} + +i.icon.sort.up:before { + content: "\f0de"; +} + +i.icon.spa:before { + content: "\f5bb"; +} + +i.icon.space.shuttle:before { + content: "\f197"; +} + +i.icon.spell.check:before { + content: "\f891"; +} + +i.icon.spider:before { + content: "\f717"; +} + +i.icon.spinner:before { + content: "\f110"; +} + +i.icon.splotch:before { + content: "\f5bc"; +} + +i.icon.spray.can:before { + content: "\f5bd"; +} + +i.icon.square:before { + content: "\f0c8"; +} + +i.icon.square.full:before { + content: "\f45c"; +} + +i.icon.square.root.alternate:before { + content: "\f698"; +} + +i.icon.stamp:before { + content: "\f5bf"; +} + +i.icon.star:before { + content: "\f005"; +} + +i.icon.star.and.crescent:before { + content: "\f699"; +} + +i.icon.star.half:before { + content: "\f089"; +} + +i.icon.star.half.alternate:before { + content: "\f5c0"; +} + +i.icon.star.of.david:before { + content: "\f69a"; +} + +i.icon.star.of.life:before { + content: "\f621"; +} + +i.icon.step.backward:before { + content: "\f048"; +} + +i.icon.step.forward:before { + content: "\f051"; +} + +i.icon.stethoscope:before { + content: "\f0f1"; +} + +i.icon.sticky.note:before { + content: "\f249"; +} + +i.icon.stop:before { + content: "\f04d"; +} + +i.icon.stop.circle:before { + content: "\f28d"; +} + +i.icon.stopwatch:before { + content: "\f2f2"; +} + +i.icon.stopwatch.twenty:before { + content: "\f96f"; +} + +i.icon.store:before { + content: "\f54e"; +} + +i.icon.store.alternate:before { + content: "\f54f"; +} + +i.icon.store.alternate.slash:before { + content: "\f970"; +} + +i.icon.store.slash:before { + content: "\f971"; +} + +i.icon.stream:before { + content: "\f550"; +} + +i.icon.street.view:before { + content: "\f21d"; +} + +i.icon.strikethrough:before { + content: "\f0cc"; +} + +i.icon.stroopwafel:before { + content: "\f551"; +} + +i.icon.subscript:before { + content: "\f12c"; +} + +i.icon.subway:before { + content: "\f239"; +} + +i.icon.suitcase:before { + content: "\f0f2"; +} + +i.icon.suitcase.rolling:before { + content: "\f5c1"; +} + +i.icon.sun:before { + content: "\f185"; +} + +i.icon.superscript:before { + content: "\f12b"; +} + +i.icon.surprise:before { + content: "\f5c2"; +} + +i.icon.swatchbook:before { + content: "\f5c3"; +} + +i.icon.swimmer:before { + content: "\f5c4"; +} + +i.icon.swimming.pool:before { + content: "\f5c5"; +} + +i.icon.synagogue:before { + content: "\f69b"; +} + +i.icon.sync:before { + content: "\f021"; +} + +i.icon.sync.alternate:before { + content: "\f2f1"; +} + +i.icon.syringe:before { + content: "\f48e"; +} + +i.icon.table:before { + content: "\f0ce"; +} + +i.icon.table.tennis:before { + content: "\f45d"; +} + +i.icon.tablet:before { + content: "\f10a"; +} + +i.icon.tablet.alternate:before { + content: "\f3fa"; +} + +i.icon.tablets:before { + content: "\f490"; +} + +i.icon.tachometer.alternate:before { + content: "\f3fd"; +} + +i.icon.tag:before { + content: "\f02b"; +} + +i.icon.tags:before { + content: "\f02c"; +} + +i.icon.tape:before { + content: "\f4db"; +} + +i.icon.tasks:before { + content: "\f0ae"; +} + +i.icon.taxi:before { + content: "\f1ba"; +} + +i.icon.teeth:before { + content: "\f62e"; +} + +i.icon.teeth.open:before { + content: "\f62f"; +} + +i.icon.temperature.high:before { + content: "\f769"; +} + +i.icon.temperature.low:before { + content: "\f76b"; +} + +i.icon.tenge:before { + content: "\f7d7"; +} + +i.icon.terminal:before { + content: "\f120"; +} + +i.icon.text.height:before { + content: "\f034"; +} + +i.icon.text.width:before { + content: "\f035"; +} + +i.icon.th:before { + content: "\f00a"; +} + +i.icon.th.large:before { + content: "\f009"; +} + +i.icon.th.list:before { + content: "\f00b"; +} + +i.icon.theater.masks:before { + content: "\f630"; +} + +i.icon.thermometer:before { + content: "\f491"; +} + +i.icon.thermometer.empty:before { + content: "\f2cb"; +} + +i.icon.thermometer.full:before { + content: "\f2c7"; +} + +i.icon.thermometer.half:before { + content: "\f2c9"; +} + +i.icon.thermometer.quarter:before { + content: "\f2ca"; +} + +i.icon.thermometer.three.quarters:before { + content: "\f2c8"; +} + +i.icon.thumbs.down:before { + content: "\f165"; +} + +i.icon.thumbs.up:before { + content: "\f164"; +} + +i.icon.thumbtack:before { + content: "\f08d"; +} + +i.icon.ticket.alternate:before { + content: "\f3ff"; +} + +i.icon.times:before { + content: "\f00d"; +} + +i.icon.times.circle:before { + content: "\f057"; +} + +i.icon.tint:before { + content: "\f043"; +} + +i.icon.tint.slash:before { + content: "\f5c7"; +} + +i.icon.tired:before { + content: "\f5c8"; +} + +i.icon.toggle.off:before { + content: "\f204"; +} + +i.icon.toggle.on:before { + content: "\f205"; +} + +i.icon.toilet:before { + content: "\f7d8"; +} + +i.icon.toilet.paper:before { + content: "\f71e"; +} + +i.icon.toilet.paper.slash:before { + content: "\f972"; +} + +i.icon.toolbox:before { + content: "\f552"; +} + +i.icon.tools:before { + content: "\f7d9"; +} + +i.icon.tooth:before { + content: "\f5c9"; +} + +i.icon.torah:before { + content: "\f6a0"; +} + +i.icon.torii.gate:before { + content: "\f6a1"; +} + +i.icon.tractor:before { + content: "\f722"; +} + +i.icon.trademark:before { + content: "\f25c"; +} + +i.icon.traffic.light:before { + content: "\f637"; +} + +i.icon.trailer:before { + content: "\f941"; +} + +i.icon.train:before { + content: "\f238"; +} + +i.icon.tram:before { + content: "\f7da"; +} + +i.icon.transgender:before { + content: "\f224"; +} + +i.icon.transgender.alternate:before { + content: "\f225"; +} + +i.icon.trash:before { + content: "\f1f8"; +} + +i.icon.trash.alternate:before { + content: "\f2ed"; +} + +i.icon.trash.restore:before { + content: "\f829"; +} + +i.icon.trash.restore.alternate:before { + content: "\f82a"; +} + +i.icon.tree:before { + content: "\f1bb"; +} + +i.icon.trophy:before { + content: "\f091"; +} + +i.icon.truck:before { + content: "\f0d1"; +} + +i.icon.truck.monster:before { + content: "\f63b"; +} + +i.icon.truck.moving:before { + content: "\f4df"; +} + +i.icon.truck.packing:before { + content: "\f4de"; +} + +i.icon.truck.pickup:before { + content: "\f63c"; +} + +i.icon.tshirt:before { + content: "\f553"; +} + +i.icon.tty:before { + content: "\f1e4"; +} + +i.icon.tv:before { + content: "\f26c"; +} + +i.icon.umbrella:before { + content: "\f0e9"; +} + +i.icon.umbrella.beach:before { + content: "\f5ca"; +} + +i.icon.underline:before { + content: "\f0cd"; +} + +i.icon.undo:before { + content: "\f0e2"; +} + +i.icon.undo.alternate:before { + content: "\f2ea"; +} + +i.icon.universal.access:before { + content: "\f29a"; +} + +i.icon.university:before { + content: "\f19c"; +} + +i.icon.unlink:before { + content: "\f127"; +} + +i.icon.unlock:before { + content: "\f09c"; +} + +i.icon.unlock.alternate:before { + content: "\f13e"; +} + +i.icon.upload:before { + content: "\f093"; +} + +i.icon.user:before { + content: "\f007"; +} + +i.icon.user.alternate:before { + content: "\f406"; +} + +i.icon.user.alternate.slash:before { + content: "\f4fa"; +} + +i.icon.user.astronaut:before { + content: "\f4fb"; +} + +i.icon.user.check:before { + content: "\f4fc"; +} + +i.icon.user.circle:before { + content: "\f2bd"; +} + +i.icon.user.clock:before { + content: "\f4fd"; +} + +i.icon.user.cog:before { + content: "\f4fe"; +} + +i.icon.user.edit:before { + content: "\f4ff"; +} + +i.icon.user.friends:before { + content: "\f500"; +} + +i.icon.user.graduate:before { + content: "\f501"; +} + +i.icon.user.injured:before { + content: "\f728"; +} + +i.icon.user.lock:before { + content: "\f502"; +} + +i.icon.user.md:before { + content: "\f0f0"; +} + +i.icon.user.minus:before { + content: "\f503"; +} + +i.icon.user.ninja:before { + content: "\f504"; +} + +i.icon.user.nurse:before { + content: "\f82f"; +} + +i.icon.user.plus:before { + content: "\f234"; +} + +i.icon.user.secret:before { + content: "\f21b"; +} + +i.icon.user.shield:before { + content: "\f505"; +} + +i.icon.user.slash:before { + content: "\f506"; +} + +i.icon.user.tag:before { + content: "\f507"; +} + +i.icon.user.tie:before { + content: "\f508"; +} + +i.icon.user.times:before { + content: "\f235"; +} + +i.icon.users:before { + content: "\f0c0"; +} + +i.icon.users.cog:before { + content: "\f509"; +} + +i.icon.utensil.spoon:before { + content: "\f2e5"; +} + +i.icon.utensils:before { + content: "\f2e7"; +} + +i.icon.vector.square:before { + content: "\f5cb"; +} + +i.icon.venus:before { + content: "\f221"; +} + +i.icon.venus.double:before { + content: "\f226"; +} + +i.icon.venus.mars:before { + content: "\f228"; +} + +i.icon.vial:before { + content: "\f492"; +} + +i.icon.vials:before { + content: "\f493"; +} + +i.icon.video:before { + content: "\f03d"; +} + +i.icon.video.slash:before { + content: "\f4e2"; +} + +i.icon.vihara:before { + content: "\f6a7"; +} + +i.icon.virus:before { + content: "\f974"; +} + +i.icon.virus.slash:before { + content: "\f975"; +} + +i.icon.viruses:before { + content: "\f976"; +} + +i.icon.voicemail:before { + content: "\f897"; +} + +i.icon.volleyball.ball:before { + content: "\f45f"; +} + +i.icon.volume.down:before { + content: "\f027"; +} + +i.icon.volume.mute:before { + content: "\f6a9"; +} + +i.icon.volume.off:before { + content: "\f026"; +} + +i.icon.volume.up:before { + content: "\f028"; +} + +i.icon.vote.yea:before { + content: "\f772"; +} + +i.icon.vr.cardboard:before { + content: "\f729"; +} + +i.icon.walking:before { + content: "\f554"; +} + +i.icon.wallet:before { + content: "\f555"; +} + +i.icon.warehouse:before { + content: "\f494"; +} + +i.icon.water:before { + content: "\f773"; +} + +i.icon.wave.square:before { + content: "\f83e"; +} + +i.icon.weight:before { + content: "\f496"; +} + +i.icon.weight.hanging:before { + content: "\f5cd"; +} + +i.icon.wheelchair:before { + content: "\f193"; +} + +i.icon.wifi:before { + content: "\f1eb"; +} + +i.icon.wind:before { + content: "\f72e"; +} + +i.icon.window.close:before { + content: "\f410"; +} + +i.icon.window.maximize:before { + content: "\f2d0"; +} + +i.icon.window.minimize:before { + content: "\f2d1"; +} + +i.icon.window.restore:before { + content: "\f2d2"; +} + +i.icon.wine.bottle:before { + content: "\f72f"; +} + +i.icon.wine.glass:before { + content: "\f4e3"; +} + +i.icon.wine.glass.alternate:before { + content: "\f5ce"; +} + +i.icon.won.sign:before { + content: "\f159"; +} + +i.icon.wrench:before { + content: "\f0ad"; +} + +i.icon.x.ray:before { + content: "\f497"; +} + +i.icon.yen.sign:before { + content: "\f157"; +} + +i.icon.yin.yang:before { + content: "\f6ad"; +} + +/* Aliases */ + +i.icon.add:before { + content: "\f067"; +} + +i.icon.add.circle:before { + content: "\f055"; +} + +i.icon.add.square:before { + content: "\f0fe"; +} + +i.icon.add.to.calendar:before { + content: "\f271"; +} + +i.icon.add.to.cart:before { + content: "\f217"; +} + +i.icon.add.user:before { + content: "\f234"; +} + +i.icon.alarm:before { + content: "\f0f3"; +} + +i.icon.alarm.mute:before { + content: "\f1f6"; +} + +i.icon.ald:before { + content: "\f2a2"; +} + +i.icon.als:before { + content: "\f2a2"; +} + +i.icon.announcement:before { + content: "\f0a1"; +} + +i.icon.area.chart:before { + content: "\f1fe"; +} + +i.icon.area.graph:before { + content: "\f1fe"; +} + +i.icon.arrow.down.cart:before { + content: "\f218"; +} + +i.icon.asexual:before { + content: "\f22d"; +} + +i.icon.asl:before { + content: "\f2a3"; +} + +i.icon.asl.interpreting:before { + content: "\f2a3"; +} + +i.icon.assistive.listening.devices:before { + content: "\f2a2"; +} + +i.icon.attach:before { + content: "\f0c6"; +} + +i.icon.attention:before { + content: "\f06a"; +} + +i.icon.balance:before { + content: "\f24e"; +} + +i.icon.bar:before { + content: "\f0fc"; +} + +i.icon.bathtub:before { + content: "\f2cd"; +} + +i.icon.battery.four:before { + content: "\f240"; +} + +i.icon.battery.high:before { + content: "\f241"; +} + +i.icon.battery.low:before { + content: "\f243"; +} + +i.icon.battery.medium:before { + content: "\f242"; +} + +i.icon.battery.one:before { + content: "\f243"; +} + +i.icon.battery.three:before { + content: "\f241"; +} + +i.icon.battery.two:before { + content: "\f242"; +} + +i.icon.battery.zero:before { + content: "\f244"; +} + +i.icon.birthday:before { + content: "\f1fd"; +} + +i.icon.block.layout:before { + content: "\f009"; +} + +i.icon.broken.chain:before { + content: "\f127"; +} + +i.icon.browser:before { + content: "\f022"; +} + +i.icon.call:before { + content: "\f095"; +} + +i.icon.call.square:before { + content: "\f098"; +} + +i.icon.cancel:before { + content: "\f00d"; +} + +i.icon.cart:before { + content: "\f07a"; +} + +i.icon.cc:before { + content: "\f20a"; +} + +i.icon.chain:before { + content: "\f0c1"; +} + +i.icon.chat:before { + content: "\f075"; +} + +i.icon.checked.calendar:before { + content: "\f274"; +} + +i.icon.checkmark:before { + content: "\f00c"; +} + +i.icon.checkmark.box:before { + content: "\f14a"; +} + +i.icon.chess.rock:before { + content: "\f447"; +} + +i.icon.circle.notched:before { + content: "\f1ce"; +} + +i.icon.circle.thin:before { + content: "\f111"; +} + +i.icon.close:before { + content: "\f00d"; +} + +i.icon.cloud.download:before { + content: "\f381"; +} + +i.icon.cloud.upload:before { + content: "\f382"; +} + +i.icon.cny:before { + content: "\f157"; +} + +i.icon.cocktail:before { + content: "\f000"; +} + +i.icon.commenting:before { + content: "\f27a"; +} + +i.icon.compose:before { + content: "\f303"; +} + +i.icon.computer:before { + content: "\f108"; +} + +i.icon.configure:before { + content: "\f0ad"; +} + +i.icon.content:before { + content: "\f0c9"; +} + +i.icon.conversation:before { + content: "\f086"; +} + +i.icon.credit.card.alternative:before { + content: "\f09d"; +} + +i.icon.currency:before { + content: "\f3d1"; +} + +i.icon.dashboard:before { + content: "\f3fd"; +} + +i.icon.deafness:before { + content: "\f2a4"; +} + +i.icon.delete:before { + content: "\f00d"; +} + +i.icon.delete.calendar:before { + content: "\f273"; +} + +i.icon.detective:before { + content: "\f21b"; +} + +i.icon.diamond:before { + content: "\f3a5"; +} + +i.icon.discussions:before { + content: "\f086"; +} + +i.icon.disk:before { + content: "\f0a0"; +} + +i.icon.doctor:before { + content: "\f0f0"; +} + +i.icon.dollar:before { + content: "\f155"; +} + +i.icon.dont:before { + content: "\f05e"; +} + +i.icon.drivers.license:before { + content: "\f2c2"; +} + +i.icon.dropdown:before { + content: "\f0d7"; +} + +i.icon.emergency:before { + content: "\f0f9"; +} + +i.icon.erase:before { + content: "\f12d"; +} + +i.icon.eur:before { + content: "\f153"; +} + +i.icon.euro:before { + content: "\f153"; +} + +i.icon.exchange:before { + content: "\f362"; +} + +i.icon.external:before { + content: "\f35d"; +} + +i.icon.external.share:before { + content: "\f14d"; +} + +i.icon.external.square:before { + content: "\f360"; +} + +i.icon.eyedropper:before { + content: "\f1fb"; +} + +i.icon.factory:before { + content: "\f275"; +} + +i.icon.favorite:before { + content: "\f005"; +} + +i.icon.feed:before { + content: "\f09e"; +} + +i.icon.female.homosexual:before { + content: "\f226"; +} + +i.icon.file.text:before { + content: "\f15c"; +} + +i.icon.find:before { + content: "\f1e5"; +} + +i.icon.first.aid:before { + content: "\f0fa"; +} + +i.icon.food:before { + content: "\f2e7"; +} + +i.icon.fork:before { + content: "\f126"; +} + +i.icon.game:before { + content: "\f11b"; +} + +i.icon.gay:before { + content: "\f227"; +} + +i.icon.gbp:before { + content: "\f154"; +} + +i.icon.grab:before { + content: "\f255"; +} + +i.icon.graduation:before { + content: "\f19d"; +} + +i.icon.grid.layout:before { + content: "\f00a"; +} + +i.icon.group:before { + content: "\f0c0"; +} + +i.icon.h:before { + content: "\f0fd"; +} + +i.icon.hamburger:before { + content: "\f0c9"; +} + +i.icon.hand.victory:before { + content: "\f25b"; +} + +i.icon.handicap:before { + content: "\f193"; +} + +i.icon.hard.of.hearing:before { + content: "\f2a4"; +} + +i.icon.header:before { + content: "\f1dc"; +} + +i.icon.heart.empty:before { + content: "\f004"; +} + +i.icon.help:before { + content: "\f128"; +} + +i.icon.help.circle:before { + content: "\f059"; +} + +i.icon.heterosexual:before { + content: "\f228"; +} + +i.icon.hide:before { + content: "\f070"; +} + +i.icon.hotel:before { + content: "\f236"; +} + +i.icon.hourglass.four:before { + content: "\f254"; +} + +i.icon.hourglass.full:before { + content: "\f254"; +} + +i.icon.hourglass.one:before { + content: "\f251"; +} + +i.icon.hourglass.three:before { + content: "\f253"; +} + +i.icon.hourglass.two:before { + content: "\f252"; +} + +i.icon.hourglass.zero:before { + content: "\f253"; +} + +i.icon.idea:before { + content: "\f0eb"; +} + +i.icon.ils:before { + content: "\f20b"; +} + +i.icon.in.cart:before { + content: "\f218"; +} + +i.icon.inr:before { + content: "\f156"; +} + +i.icon.intergender:before { + content: "\f224"; +} + +i.icon.intersex:before { + content: "\f224"; +} + +i.icon.jpy:before { + content: "\f157"; +} + +i.icon.krw:before { + content: "\f159"; +} + +i.icon.lab:before { + content: "\f0c3"; +} + +i.icon.law:before { + content: "\f24e"; +} + +i.icon.legal:before { + content: "\f0e3"; +} + +i.icon.lesbian:before { + content: "\f226"; +} + +i.icon.level.down:before { + content: "\f3be"; +} + +i.icon.level.up:before { + content: "\f3bf"; +} + +i.icon.lightning:before { + content: "\f0e7"; +} + +i.icon.like:before { + content: "\f004"; +} + +i.icon.line.graph:before { + content: "\f201"; +} + +i.icon.linegraph:before { + content: "\f201"; +} + +i.icon.linkify:before { + content: "\f0c1"; +} + +i.icon.lira:before { + content: "\f195"; +} + +i.icon.list.layout:before { + content: "\f00b"; +} + +i.icon.log.out:before { + content: "\f2f5"; +} + +i.icon.magnify:before { + content: "\f00e"; +} + +i.icon.mail:before { + content: "\f0e0"; +} + +i.icon.mail.forward:before { + content: "\f064"; +} + +i.icon.mail.square:before { + content: "\f199"; +} + +i.icon.male.homosexual:before { + content: "\f227"; +} + +i.icon.man:before { + content: "\f222"; +} + +i.icon.marker:before { + content: "\f041"; +} + +i.icon.mars.alternate:before { + content: "\f229"; +} + +i.icon.mars.horizontal:before { + content: "\f22b"; +} + +i.icon.mars.vertical:before { + content: "\f22a"; +} + +i.icon.meanpath:before { + content: "\f0c8"; +} + +i.icon.military:before { + content: "\f0fb"; +} + +i.icon.money:before { + content: "\f3d1"; +} + +i.icon.move:before { + content: "\f0b2"; +} + +i.icon.mute:before { + content: "\f131"; +} + +i.icon.non.binary.transgender:before { + content: "\f223"; +} + +i.icon.numbered.list:before { + content: "\f0cb"; +} + +i.icon.options:before { + content: "\f1de"; +} + +i.icon.ordered.list:before { + content: "\f0cb"; +} + +i.icon.other.gender:before { + content: "\f229"; +} + +i.icon.other.gender.horizontal:before { + content: "\f22b"; +} + +i.icon.other.gender.vertical:before { + content: "\f22a"; +} + +i.icon.payment:before { + content: "\f09d"; +} + +i.icon.pencil:before { + content: "\f303"; +} + +i.icon.pencil.square:before { + content: "\f14b"; +} + +i.icon.photo:before { + content: "\f030"; +} + +i.icon.picture:before { + content: "\f03e"; +} + +i.icon.pie.chart:before { + content: "\f200"; +} + +i.icon.pie.graph:before { + content: "\f200"; +} + +i.icon.pin:before { + content: "\f08d"; +} + +i.icon.plus.cart:before { + content: "\f217"; +} + +i.icon.point:before { + content: "\f041"; +} + +i.icon.pointing.down:before { + content: "\f0a7"; +} + +i.icon.pointing.left:before { + content: "\f0a5"; +} + +i.icon.pointing.right:before { + content: "\f0a4"; +} + +i.icon.pointing.up:before { + content: "\f0a6"; +} + +i.icon.pound:before { + content: "\f154"; +} + +i.icon.power:before { + content: "\f011"; +} + +i.icon.power.cord:before { + content: "\f1e6"; +} + +i.icon.privacy:before { + content: "\f084"; +} + +i.icon.protect:before { + content: "\f023"; +} + +i.icon.puzzle:before { + content: "\f12e"; +} + +i.icon.r.circle:before { + content: "\f25d"; +} + +i.icon.radio:before { + content: "\f192"; +} + +i.icon.rain:before { + content: "\f0e9"; +} + +i.icon.record:before { + content: "\f03d"; +} + +i.icon.refresh:before { + content: "\f021"; +} + +i.icon.remove:before { + content: "\f00d"; +} + +i.icon.remove.bookmark:before { + content: "\f02e"; +} + +i.icon.remove.circle:before { + content: "\f057"; +} + +i.icon.remove.from.calendar:before { + content: "\f272"; +} + +i.icon.remove.user:before { + content: "\f235"; +} + +i.icon.repeat:before { + content: "\f01e"; +} + +i.icon.resize.horizontal:before { + content: "\f337"; +} + +i.icon.resize.vertical:before { + content: "\f338"; +} + +i.icon.rmb:before { + content: "\f157"; +} + +i.icon.rouble:before { + content: "\f158"; +} + +i.icon.rub:before { + content: "\f158"; +} + +i.icon.ruble:before { + content: "\f158"; +} + +i.icon.rupee:before { + content: "\f156"; +} + +i.icon.s15:before { + content: "\f2cd"; +} + +i.icon.selected.radio:before { + content: "\f192"; +} + +i.icon.send:before { + content: "\f1d8"; +} + +i.icon.setting:before { + content: "\f013"; +} + +i.icon.settings:before { + content: "\f085"; +} + +i.icon.shekel:before { + content: "\f20b"; +} + +i.icon.sheqel:before { + content: "\f20b"; +} + +i.icon.shield:before { + content: "\f3ed"; +} + +i.icon.shipping:before { + content: "\f0d1"; +} + +i.icon.shop:before { + content: "\f07a"; +} + +i.icon.shuffle:before { + content: "\f074"; +} + +i.icon.shutdown:before { + content: "\f011"; +} + +i.icon.sidebar:before { + content: "\f0c9"; +} + +i.icon.sign.in:before { + content: "\f2f6"; +} + +i.icon.sign.out:before { + content: "\f2f5"; +} + +i.icon.signing:before { + content: "\f2a7"; +} + +i.icon.signup:before { + content: "\f044"; +} + +i.icon.sliders:before { + content: "\f1de"; +} + +i.icon.soccer:before { + content: "\f1e3"; +} + +i.icon.sort.alphabet.ascending:before { + content: "\f15d"; +} + +i.icon.sort.alphabet.descending:before { + content: "\f15e"; +} + +i.icon.sort.ascending:before { + content: "\f0de"; +} + +i.icon.sort.content.ascending:before { + content: "\f160"; +} + +i.icon.sort.content.descending:before { + content: "\f161"; +} + +i.icon.sort.descending:before { + content: "\f0dd"; +} + +i.icon.sort.numeric.ascending:before { + content: "\f162"; +} + +i.icon.sort.numeric.descending:before { + content: "\f163"; +} + +i.icon.sound:before { + content: "\f025"; +} + +i.icon.spoon:before { + content: "\f2e5"; +} + +i.icon.spy:before { + content: "\f21b"; +} + +i.icon.star.empty:before { + content: "\f005"; +} + +i.icon.star.half.empty:before { + content: "\f089"; +} + +i.icon.star.half.full:before { + content: "\f089"; +} + +i.icon.student:before { + content: "\f19d"; +} + +i.icon.talk:before { + content: "\f27a"; +} + +i.icon.target:before { + content: "\f140"; +} + +i.icon.teletype:before { + content: "\f1e4"; +} + +i.icon.television:before { + content: "\f26c"; +} + +i.icon.text.cursor:before { + content: "\f246"; +} + +i.icon.text.telephone:before { + content: "\f1e4"; +} + +i.icon.theme:before { + content: "\f043"; +} + +i.icon.thermometer:before { + content: "\f2c7"; +} + +i.icon.thumb.tack:before { + content: "\f08d"; +} + +i.icon.ticket:before { + content: "\f3ff"; +} + +i.icon.time:before { + content: "\f017"; +} + +i.icon.times.rectangle:before { + content: "\f410"; +} + +i.icon.tm:before { + content: "\f25c"; +} + +i.icon.toggle.down:before { + content: "\f150"; +} + +i.icon.toggle.left:before { + content: "\f191"; +} + +i.icon.toggle.right:before { + content: "\f152"; +} + +i.icon.toggle.up:before { + content: "\f151"; +} + +i.icon.translate:before { + content: "\f1ab"; +} + +i.icon.travel:before { + content: "\f0b1"; +} + +i.icon.treatment:before { + content: "\f0f1"; +} + +i.icon.triangle.down:before { + content: "\f0d7"; +} + +i.icon.triangle.left:before { + content: "\f0d9"; +} + +i.icon.triangle.right:before { + content: "\f0da"; +} + +i.icon.triangle.up:before { + content: "\f0d8"; +} + +i.icon.try:before { + content: "\f195"; +} + +i.icon.unhide:before { + content: "\f06e"; +} + +i.icon.unlinkify:before { + content: "\f127"; +} + +i.icon.unmute:before { + content: "\f130"; +} + +i.icon.unordered.list:before { + content: "\f0ca"; +} + +i.icon.usd:before { + content: "\f155"; +} + +i.icon.user.cancel:before { + content: "\f235"; +} + +i.icon.user.close:before { + content: "\f235"; +} + +i.icon.user.delete:before { + content: "\f235"; +} + +i.icon.user.doctor:before { + content: "\f0f0"; +} + +i.icon.user.x:before { + content: "\f235"; +} + +i.icon.vcard:before { + content: "\f2bb"; +} + +i.icon.video.camera:before { + content: "\f03d"; +} + +i.icon.video.play:before { + content: "\f144"; +} + +i.icon.volume.control.phone:before { + content: "\f2a0"; +} + +i.icon.wait:before { + content: "\f017"; +} + +i.icon.warning:before { + content: "\f12a"; +} + +i.icon.warning.circle:before { + content: "\f06a"; +} + +i.icon.warning.sign:before { + content: "\f071"; +} + +i.icon.wi.fi:before { + content: "\f1eb"; +} + +i.icon.winner:before { + content: "\f091"; +} + +i.icon.wizard:before { + content: "\f0d0"; +} + +i.icon.woman:before { + content: "\f221"; +} + +i.icon.won:before { + content: "\f159"; +} + +i.icon.world:before { + content: "\f0ac"; +} + +i.icon.write:before { + content: "\f303"; +} + +i.icon.write.square:before { + content: "\f14b"; +} + +i.icon.x:before { + content: "\f00d"; +} + +i.icon.yen:before { + content: "\f157"; +} + +i.icon.zip:before { + content: "\f187"; +} + +i.icon.zoom:before { + content: "\f00e"; +} + +i.icon.zoom.in:before { + content: "\f00e"; +} + +i.icon.zoom.out:before { + content: "\f010"; +} + +/******************************* + Outline Icons +*******************************/ + +/* Outline Icon */ + +/* Load & Define Icon Font */ + +@font-face { + font-family: 'outline-icons'; + src: url("./themes/default/assets/fonts/outline-icons.eot"); + src: url("./themes/default/assets/fonts/outline-icons.eot?#iefix") format('embedded-opentype'), url("./themes/default/assets/fonts/outline-icons.woff2") format('woff2'), url("./themes/default/assets/fonts/outline-icons.woff") format('woff'), url("./themes/default/assets/fonts/outline-icons.ttf") format('truetype'), url("./themes/default/assets/fonts/outline-icons.svg#icons") format('svg'); + font-style: normal; + font-weight: normal; + font-variant: normal; + text-decoration: inherit; + text-transform: none; +} + +i.icon.outline { + font-family: 'outline-icons'; +} + +/* Icons */ + +i.icon.address.book.outline:before { + content: "\f2b9"; +} + +i.icon.address.card.outline:before { + content: "\f2bb"; +} + +i.icon.angry.outline:before { + content: "\f556"; +} + +i.icon.arrow.alternate.circle.down.outline:before { + content: "\f358"; +} + +i.icon.arrow.alternate.circle.left.outline:before { + content: "\f359"; +} + +i.icon.arrow.alternate.circle.right.outline:before { + content: "\f35a"; +} + +i.icon.arrow.alternate.circle.up.outline:before { + content: "\f35b"; +} + +i.icon.bell.outline:before { + content: "\f0f3"; +} + +i.icon.bell.slash.outline:before { + content: "\f1f6"; +} + +i.icon.bookmark.outline:before { + content: "\f02e"; +} + +i.icon.building.outline:before { + content: "\f1ad"; +} + +i.icon.calendar.alternate.outline:before { + content: "\f073"; +} + +i.icon.calendar.check.outline:before { + content: "\f274"; +} + +i.icon.calendar.minus.outline:before { + content: "\f272"; +} + +i.icon.calendar.outline:before { + content: "\f133"; +} + +i.icon.calendar.plus.outline:before { + content: "\f271"; +} + +i.icon.calendar.times.outline:before { + content: "\f273"; +} + +i.icon.caret.square.down.outline:before { + content: "\f150"; +} + +i.icon.caret.square.left.outline:before { + content: "\f191"; +} + +i.icon.caret.square.right.outline:before { + content: "\f152"; +} + +i.icon.caret.square.up.outline:before { + content: "\f151"; +} + +i.icon.chart.bar.outline:before { + content: "\f080"; +} + +i.icon.check.circle.outline:before { + content: "\f058"; +} + +i.icon.check.square.outline:before { + content: "\f14a"; +} + +i.icon.circle.outline:before { + content: "\f111"; +} + +i.icon.clipboard.outline:before { + content: "\f328"; +} + +i.icon.clock.outline:before { + content: "\f017"; +} + +i.icon.clone.outline:before { + content: "\f24d"; +} + +i.icon.closed.captioning.outline:before { + content: "\f20a"; +} + +i.icon.comment.alternate.outline:before { + content: "\f27a"; +} + +i.icon.comment.dots.outline:before { + content: "\f4ad"; +} + +i.icon.comment.outline:before { + content: "\f075"; +} + +i.icon.comments.outline:before { + content: "\f086"; +} + +i.icon.compass.outline:before { + content: "\f14e"; +} + +i.icon.copy.outline:before { + content: "\f0c5"; +} + +i.icon.copyright.outline:before { + content: "\f1f9"; +} + +i.icon.credit.card.outline:before { + content: "\f09d"; +} + +i.icon.dizzy.outline:before { + content: "\f567"; +} + +i.icon.dot.circle.outline:before { + content: "\f192"; +} + +i.icon.edit.outline:before { + content: "\f044"; +} + +i.icon.envelope.open.outline:before { + content: "\f2b6"; +} + +i.icon.envelope.outline:before { + content: "\f0e0"; +} + +i.icon.eye.outline:before { + content: "\f06e"; +} + +i.icon.eye.slash.outline:before { + content: "\f070"; +} + +i.icon.file.alternate.outline:before { + content: "\f15c"; +} + +i.icon.file.archive.outline:before { + content: "\f1c6"; +} + +i.icon.file.audio.outline:before { + content: "\f1c7"; +} + +i.icon.file.code.outline:before { + content: "\f1c9"; +} + +i.icon.file.excel.outline:before { + content: "\f1c3"; +} + +i.icon.file.image.outline:before { + content: "\f1c5"; +} + +i.icon.file.outline:before { + content: "\f15b"; +} + +i.icon.file.pdf.outline:before { + content: "\f1c1"; +} + +i.icon.file.powerpoint.outline:before { + content: "\f1c4"; +} + +i.icon.file.video.outline:before { + content: "\f1c8"; +} + +i.icon.file.word.outline:before { + content: "\f1c2"; +} + +i.icon.flag.outline:before { + content: "\f024"; +} + +i.icon.flushed.outline:before { + content: "\f579"; +} + +i.icon.folder.open.outline:before { + content: "\f07c"; +} + +i.icon.folder.outline:before { + content: "\f07b"; +} + +i.icon.frown.open.outline:before { + content: "\f57a"; +} + +i.icon.frown.outline:before { + content: "\f119"; +} + +i.icon.futbol.outline:before { + content: "\f1e3"; +} + +i.icon.gem.outline:before { + content: "\f3a5"; +} + +i.icon.grimace.outline:before { + content: "\f57f"; +} + +i.icon.grin.alternate.outline:before { + content: "\f581"; +} + +i.icon.grin.beam.outline:before { + content: "\f582"; +} + +i.icon.grin.beam.sweat.outline:before { + content: "\f583"; +} + +i.icon.grin.hearts.outline:before { + content: "\f584"; +} + +i.icon.grin.outline:before { + content: "\f580"; +} + +i.icon.grin.squint.outline:before { + content: "\f585"; +} + +i.icon.grin.squint.tears.outline:before { + content: "\f586"; +} + +i.icon.grin.stars.outline:before { + content: "\f587"; +} + +i.icon.grin.tears.outline:before { + content: "\f588"; +} + +i.icon.grin.tongue.outline:before { + content: "\f589"; +} + +i.icon.grin.tongue.squint.outline:before { + content: "\f58a"; +} + +i.icon.grin.tongue.wink.outline:before { + content: "\f58b"; +} + +i.icon.grin.wink.outline:before { + content: "\f58c"; +} + +i.icon.hand.lizard.outline:before { + content: "\f258"; +} + +i.icon.hand.paper.outline:before { + content: "\f256"; +} + +i.icon.hand.peace.outline:before { + content: "\f25b"; +} + +i.icon.hand.point.down.outline:before { + content: "\f0a7"; +} + +i.icon.hand.point.left.outline:before { + content: "\f0a5"; +} + +i.icon.hand.point.right.outline:before { + content: "\f0a4"; +} + +i.icon.hand.point.up.outline:before { + content: "\f0a6"; +} + +i.icon.hand.pointer.outline:before { + content: "\f25a"; +} + +i.icon.hand.rock.outline:before { + content: "\f255"; +} + +i.icon.hand.scissors.outline:before { + content: "\f257"; +} + +i.icon.hand.spock.outline:before { + content: "\f259"; +} + +i.icon.handshake.outline:before { + content: "\f2b5"; +} + +i.icon.hdd.outline:before { + content: "\f0a0"; +} + +i.icon.heart.outline:before { + content: "\f004"; +} + +i.icon.hospital.outline:before { + content: "\f0f8"; +} + +i.icon.hourglass.outline:before { + content: "\f254"; +} + +i.icon.id.badge.outline:before { + content: "\f2c1"; +} + +i.icon.id.card.outline:before { + content: "\f2c2"; +} + +i.icon.image.outline:before { + content: "\f03e"; +} + +i.icon.images.outline:before { + content: "\f302"; +} + +i.icon.keyboard.outline:before { + content: "\f11c"; +} + +i.icon.kiss.beam.outline:before { + content: "\f597"; +} + +i.icon.kiss.outline:before { + content: "\f596"; +} + +i.icon.kiss.wink.heart.outline:before { + content: "\f598"; +} + +i.icon.laugh.beam.outline:before { + content: "\f59a"; +} + +i.icon.laugh.outline:before { + content: "\f599"; +} + +i.icon.laugh.squint.outline:before { + content: "\f59b"; +} + +i.icon.laugh.wink.outline:before { + content: "\f59c"; +} + +i.icon.lemon.outline:before { + content: "\f094"; +} + +i.icon.life.ring.outline:before { + content: "\f1cd"; +} + +i.icon.lightbulb.outline:before { + content: "\f0eb"; +} + +i.icon.list.alternate.outline:before { + content: "\f022"; +} + +i.icon.map.outline:before { + content: "\f279"; +} + +i.icon.meh.blank.outline:before { + content: "\f5a4"; +} + +i.icon.meh.outline:before { + content: "\f11a"; +} + +i.icon.meh.rolling.eyes.outline:before { + content: "\f5a5"; +} + +i.icon.minus.square.outline:before { + content: "\f146"; +} + +i.icon.money.bill.alternate.outline:before { + content: "\f3d1"; +} + +i.icon.moon.outline:before { + content: "\f186"; +} + +i.icon.newspaper.outline:before { + content: "\f1ea"; +} + +i.icon.object.group.outline:before { + content: "\f247"; +} + +i.icon.object.ungroup.outline:before { + content: "\f248"; +} + +i.icon.paper.plane.outline:before { + content: "\f1d8"; +} + +i.icon.pause.circle.outline:before { + content: "\f28b"; +} + +i.icon.play.circle.outline:before { + content: "\f144"; +} + +i.icon.plus.square.outline:before { + content: "\f0fe"; +} + +i.icon.question.circle.outline:before { + content: "\f059"; +} + +i.icon.registered.outline:before { + content: "\f25d"; +} + +i.icon.sad.cry.outline:before { + content: "\f5b3"; +} + +i.icon.sad.tear.outline:before { + content: "\f5b4"; +} + +i.icon.save.outline:before { + content: "\f0c7"; +} + +i.icon.share.square.outline:before { + content: "\f14d"; +} + +i.icon.smile.beam.outline:before { + content: "\f5b8"; +} + +i.icon.smile.outline:before { + content: "\f118"; +} + +i.icon.smile.wink.outline:before { + content: "\f4da"; +} + +i.icon.snowflake.outline:before { + content: "\f2dc"; +} + +i.icon.square.outline:before { + content: "\f0c8"; +} + +i.icon.star.half.outline:before { + content: "\f089"; +} + +i.icon.star.outline:before { + content: "\f005"; +} + +i.icon.sticky.note.outline:before { + content: "\f249"; +} + +i.icon.stop.circle.outline:before { + content: "\f28d"; +} + +i.icon.sun.outline:before { + content: "\f185"; +} + +i.icon.surprise.outline:before { + content: "\f5c2"; +} + +i.icon.thumbs.down.outline:before { + content: "\f165"; +} + +i.icon.thumbs.up.outline:before { + content: "\f164"; +} + +i.icon.times.circle.outline:before { + content: "\f057"; +} + +i.icon.tired.outline:before { + content: "\f5c8"; +} + +i.icon.trash.alternate.outline:before { + content: "\f2ed"; +} + +i.icon.user.circle.outline:before { + content: "\f2bd"; +} + +i.icon.user.outline:before { + content: "\f007"; +} + +i.icon.window.close.outline:before { + content: "\f410"; +} + +i.icon.window.maximize.outline:before { + content: "\f2d0"; +} + +i.icon.window.minimize.outline:before { + content: "\f2d1"; +} + +i.icon.window.restore.outline:before { + content: "\f2d2"; +} + +/******************************* + Brand Icons +*******************************/ + +/* Load & Define Brand Font */ + +@font-face { + font-family: 'brand-icons'; + src: url("./themes/default/assets/fonts/brand-icons.eot"); + src: url("./themes/default/assets/fonts/brand-icons.eot?#iefix") format('embedded-opentype'), url("./themes/default/assets/fonts/brand-icons.woff2") format('woff2'), url("./themes/default/assets/fonts/brand-icons.woff") format('woff'), url("./themes/default/assets/fonts/brand-icons.ttf") format('truetype'), url("./themes/default/assets/fonts/brand-icons.svg#icons") format('svg'); + font-style: normal; + font-weight: normal; + font-variant: normal; + text-decoration: inherit; + text-transform: none; +} + +/* Icons */ + +i.icon.\35 00px:before { + content: "\f26e"; + font-family: 'brand-icons'; +} + +i.icon.accessible:before { + content: "\f368"; + font-family: 'brand-icons'; +} + +i.icon.accusoft:before { + content: "\f369"; + font-family: 'brand-icons'; +} + +i.icon.acquisitions.incorporated:before { + content: "\f6af"; + font-family: 'brand-icons'; +} + +i.icon.adn:before { + content: "\f170"; + font-family: 'brand-icons'; +} + +i.icon.adobe:before { + content: "\f778"; + font-family: 'brand-icons'; +} + +i.icon.adversal:before { + content: "\f36a"; + font-family: 'brand-icons'; +} + +i.icon.affiliatetheme:before { + content: "\f36b"; + font-family: 'brand-icons'; +} + +i.icon.airbnb:before { + content: "\f834"; + font-family: 'brand-icons'; +} + +i.icon.algolia:before { + content: "\f36c"; + font-family: 'brand-icons'; +} + +i.icon.alipay:before { + content: "\f642"; + font-family: 'brand-icons'; +} + +i.icon.amazon:before { + content: "\f270"; + font-family: 'brand-icons'; +} + +i.icon.amazon.pay:before { + content: "\f42c"; + font-family: 'brand-icons'; +} + +i.icon.amilia:before { + content: "\f36d"; + font-family: 'brand-icons'; +} + +i.icon.android:before { + content: "\f17b"; + font-family: 'brand-icons'; +} + +i.icon.angellist:before { + content: "\f209"; + font-family: 'brand-icons'; +} + +i.icon.angrycreative:before { + content: "\f36e"; + font-family: 'brand-icons'; +} + +i.icon.angular:before { + content: "\f420"; + font-family: 'brand-icons'; +} + +i.icon.app.store:before { + content: "\f36f"; + font-family: 'brand-icons'; +} + +i.icon.app.store.ios:before { + content: "\f370"; + font-family: 'brand-icons'; +} + +i.icon.apper:before { + content: "\f371"; + font-family: 'brand-icons'; +} + +i.icon.apple:before { + content: "\f179"; + font-family: 'brand-icons'; +} + +i.icon.apple.pay:before { + content: "\f415"; + font-family: 'brand-icons'; +} + +i.icon.artstation:before { + content: "\f77a"; + font-family: 'brand-icons'; +} + +i.icon.asymmetrik:before { + content: "\f372"; + font-family: 'brand-icons'; +} + +i.icon.atlassian:before { + content: "\f77b"; + font-family: 'brand-icons'; +} + +i.icon.audible:before { + content: "\f373"; + font-family: 'brand-icons'; +} + +i.icon.autoprefixer:before { + content: "\f41c"; + font-family: 'brand-icons'; +} + +i.icon.avianex:before { + content: "\f374"; + font-family: 'brand-icons'; +} + +i.icon.aviato:before { + content: "\f421"; + font-family: 'brand-icons'; +} + +i.icon.aws:before { + content: "\f375"; + font-family: 'brand-icons'; +} + +i.icon.bandcamp:before { + content: "\f2d5"; + font-family: 'brand-icons'; +} + +i.icon.battle.net:before { + content: "\f835"; + font-family: 'brand-icons'; +} + +i.icon.behance:before { + content: "\f1b4"; + font-family: 'brand-icons'; +} + +i.icon.behance.square:before { + content: "\f1b5"; + font-family: 'brand-icons'; +} + +i.icon.bimobject:before { + content: "\f378"; + font-family: 'brand-icons'; +} + +i.icon.bitbucket:before { + content: "\f171"; + font-family: 'brand-icons'; +} + +i.icon.bitcoin:before { + content: "\f379"; + font-family: 'brand-icons'; +} + +i.icon.bity:before { + content: "\f37a"; + font-family: 'brand-icons'; +} + +i.icon.black.tie:before { + content: "\f27e"; + font-family: 'brand-icons'; +} + +i.icon.blackberry:before { + content: "\f37b"; + font-family: 'brand-icons'; +} + +i.icon.blogger:before { + content: "\f37c"; + font-family: 'brand-icons'; +} + +i.icon.blogger.b:before { + content: "\f37d"; + font-family: 'brand-icons'; +} + +i.icon.bluetooth:before { + content: "\f293"; + font-family: 'brand-icons'; +} + +i.icon.bluetooth.b:before { + content: "\f294"; + font-family: 'brand-icons'; +} + +i.icon.bootstrap:before { + content: "\f836"; + font-family: 'brand-icons'; +} + +i.icon.btc:before { + content: "\f15a"; + font-family: 'brand-icons'; +} + +i.icon.buffer:before { + content: "\f837"; + font-family: 'brand-icons'; +} + +i.icon.buromobelexperte:before { + content: "\f37f"; + font-family: 'brand-icons'; +} + +i.icon.buy.n.large:before { + content: "\f8a6"; + font-family: 'brand-icons'; +} + +i.icon.buysellads:before { + content: "\f20d"; + font-family: 'brand-icons'; +} + +i.icon.canadian.maple.leaf:before { + content: "\f785"; + font-family: 'brand-icons'; +} + +i.icon.cc.amazon.pay:before { + content: "\f42d"; + font-family: 'brand-icons'; +} + +i.icon.cc.amex:before { + content: "\f1f3"; + font-family: 'brand-icons'; +} + +i.icon.cc.apple.pay:before { + content: "\f416"; + font-family: 'brand-icons'; +} + +i.icon.cc.diners.club:before { + content: "\f24c"; + font-family: 'brand-icons'; +} + +i.icon.cc.discover:before { + content: "\f1f2"; + font-family: 'brand-icons'; +} + +i.icon.cc.jcb:before { + content: "\f24b"; + font-family: 'brand-icons'; +} + +i.icon.cc.mastercard:before { + content: "\f1f1"; + font-family: 'brand-icons'; +} + +i.icon.cc.paypal:before { + content: "\f1f4"; + font-family: 'brand-icons'; +} + +i.icon.cc.stripe:before { + content: "\f1f5"; + font-family: 'brand-icons'; +} + +i.icon.cc.visa:before { + content: "\f1f0"; + font-family: 'brand-icons'; +} + +i.icon.centercode:before { + content: "\f380"; + font-family: 'brand-icons'; +} + +i.icon.centos:before { + content: "\f789"; + font-family: 'brand-icons'; +} + +i.icon.chrome:before { + content: "\f268"; + font-family: 'brand-icons'; +} + +i.icon.chromecast:before { + content: "\f838"; + font-family: 'brand-icons'; +} + +i.icon.cloudscale:before { + content: "\f383"; + font-family: 'brand-icons'; +} + +i.icon.cloudsmith:before { + content: "\f384"; + font-family: 'brand-icons'; +} + +i.icon.cloudversify:before { + content: "\f385"; + font-family: 'brand-icons'; +} + +i.icon.codepen:before { + content: "\f1cb"; + font-family: 'brand-icons'; +} + +i.icon.codiepie:before { + content: "\f284"; + font-family: 'brand-icons'; +} + +i.icon.confluence:before { + content: "\f78d"; + font-family: 'brand-icons'; +} + +i.icon.connectdevelop:before { + content: "\f20e"; + font-family: 'brand-icons'; +} + +i.icon.contao:before { + content: "\f26d"; + font-family: 'brand-icons'; +} + +i.icon.cotton.bureau:before { + content: "\f89e"; + font-family: 'brand-icons'; +} + +i.icon.cpanel:before { + content: "\f388"; + font-family: 'brand-icons'; +} + +i.icon.creative.commons:before { + content: "\f25e"; + font-family: 'brand-icons'; +} + +i.icon.creative.commons.by:before { + content: "\f4e7"; + font-family: 'brand-icons'; +} + +i.icon.creative.commons.nc:before { + content: "\f4e8"; + font-family: 'brand-icons'; +} + +i.icon.creative.commons.nc.eu:before { + content: "\f4e9"; + font-family: 'brand-icons'; +} + +i.icon.creative.commons.nc.jp:before { + content: "\f4ea"; + font-family: 'brand-icons'; +} + +i.icon.creative.commons.nd:before { + content: "\f4eb"; + font-family: 'brand-icons'; +} + +i.icon.creative.commons.pd:before { + content: "\f4ec"; + font-family: 'brand-icons'; +} + +i.icon.creative.commons.pd.alternate:before { + content: "\f4ed"; + font-family: 'brand-icons'; +} + +i.icon.creative.commons.remix:before { + content: "\f4ee"; + font-family: 'brand-icons'; +} + +i.icon.creative.commons.sa:before { + content: "\f4ef"; + font-family: 'brand-icons'; +} + +i.icon.creative.commons.sampling:before { + content: "\f4f0"; + font-family: 'brand-icons'; +} + +i.icon.creative.commons.sampling.plus:before { + content: "\f4f1"; + font-family: 'brand-icons'; +} + +i.icon.creative.commons.share:before { + content: "\f4f2"; + font-family: 'brand-icons'; +} + +i.icon.creative.commons.zero:before { + content: "\f4f3"; + font-family: 'brand-icons'; +} + +i.icon.critical.role:before { + content: "\f6c9"; + font-family: 'brand-icons'; +} + +i.icon.css3:before { + content: "\f13c"; + font-family: 'brand-icons'; +} + +i.icon.css3.alternate:before { + content: "\f38b"; + font-family: 'brand-icons'; +} + +i.icon.cuttlefish:before { + content: "\f38c"; + font-family: 'brand-icons'; +} + +i.icon.d.and.d:before { + content: "\f38d"; + font-family: 'brand-icons'; +} + +i.icon.d.and.d.beyond:before { + content: "\f6ca"; + font-family: 'brand-icons'; +} + +i.icon.dailymotion:before { + content: "\f952"; + font-family: 'brand-icons'; +} + +i.icon.dashcube:before { + content: "\f210"; + font-family: 'brand-icons'; +} + +i.icon.delicious:before { + content: "\f1a5"; + font-family: 'brand-icons'; +} + +i.icon.deploydog:before { + content: "\f38e"; + font-family: 'brand-icons'; +} + +i.icon.deskpro:before { + content: "\f38f"; + font-family: 'brand-icons'; +} + +i.icon.dev:before { + content: "\f6cc"; + font-family: 'brand-icons'; +} + +i.icon.deviantart:before { + content: "\f1bd"; + font-family: 'brand-icons'; +} + +i.icon.dhl:before { + content: "\f790"; + font-family: 'brand-icons'; +} + +i.icon.diaspora:before { + content: "\f791"; + font-family: 'brand-icons'; +} + +i.icon.digg:before { + content: "\f1a6"; + font-family: 'brand-icons'; +} + +i.icon.digital.ocean:before { + content: "\f391"; + font-family: 'brand-icons'; +} + +i.icon.discord:before { + content: "\f392"; + font-family: 'brand-icons'; +} + +i.icon.discourse:before { + content: "\f393"; + font-family: 'brand-icons'; +} + +i.icon.dochub:before { + content: "\f394"; + font-family: 'brand-icons'; +} + +i.icon.docker:before { + content: "\f395"; + font-family: 'brand-icons'; +} + +i.icon.draft2digital:before { + content: "\f396"; + font-family: 'brand-icons'; +} + +i.icon.dribbble:before { + content: "\f17d"; + font-family: 'brand-icons'; +} + +i.icon.dribbble.square:before { + content: "\f397"; + font-family: 'brand-icons'; +} + +i.icon.dropbox:before { + content: "\f16b"; + font-family: 'brand-icons'; +} + +i.icon.drupal:before { + content: "\f1a9"; + font-family: 'brand-icons'; +} + +i.icon.dyalog:before { + content: "\f399"; + font-family: 'brand-icons'; +} + +i.icon.earlybirds:before { + content: "\f39a"; + font-family: 'brand-icons'; +} + +i.icon.ebay:before { + content: "\f4f4"; + font-family: 'brand-icons'; +} + +i.icon.edge:before { + content: "\f282"; + font-family: 'brand-icons'; +} + +i.icon.elementor:before { + content: "\f430"; + font-family: 'brand-icons'; +} + +i.icon.ello:before { + content: "\f5f1"; + font-family: 'brand-icons'; +} + +i.icon.ember:before { + content: "\f423"; + font-family: 'brand-icons'; +} + +i.icon.empire:before { + content: "\f1d1"; + font-family: 'brand-icons'; +} + +i.icon.envira:before { + content: "\f299"; + font-family: 'brand-icons'; +} + +i.icon.erlang:before { + content: "\f39d"; + font-family: 'brand-icons'; +} + +i.icon.ethereum:before { + content: "\f42e"; + font-family: 'brand-icons'; +} + +i.icon.etsy:before { + content: "\f2d7"; + font-family: 'brand-icons'; +} + +i.icon.evernote:before { + content: "\f839"; + font-family: 'brand-icons'; +} + +i.icon.expeditedssl:before { + content: "\f23e"; + font-family: 'brand-icons'; +} + +i.icon.facebook:before { + content: "\f09a"; + font-family: 'brand-icons'; +} + +i.icon.facebook.f:before { + content: "\f39e"; + font-family: 'brand-icons'; +} + +i.icon.facebook.messenger:before { + content: "\f39f"; + font-family: 'brand-icons'; +} + +i.icon.facebook.square:before { + content: "\f082"; + font-family: 'brand-icons'; +} + +i.icon.fantasy.flight.games:before { + content: "\f6dc"; + font-family: 'brand-icons'; +} + +i.icon.fedex:before { + content: "\f797"; + font-family: 'brand-icons'; +} + +i.icon.fedora:before { + content: "\f798"; + font-family: 'brand-icons'; +} + +i.icon.figma:before { + content: "\f799"; + font-family: 'brand-icons'; +} + +i.icon.firefox:before { + content: "\f269"; + font-family: 'brand-icons'; +} + +i.icon.firefox.browser:before { + content: "\f907"; + font-family: 'brand-icons'; +} + +i.icon.first.order:before { + content: "\f2b0"; + font-family: 'brand-icons'; +} + +i.icon.first.order.alternate:before { + content: "\f50a"; + font-family: 'brand-icons'; +} + +i.icon.firstdraft:before { + content: "\f3a1"; + font-family: 'brand-icons'; +} + +i.icon.flickr:before { + content: "\f16e"; + font-family: 'brand-icons'; +} + +i.icon.flipboard:before { + content: "\f44d"; + font-family: 'brand-icons'; +} + +i.icon.fly:before { + content: "\f417"; + font-family: 'brand-icons'; +} + +i.icon.font.awesome:before { + content: "\f2b4"; + font-family: 'brand-icons'; +} + +i.icon.font.awesome.alternate:before { + content: "\f35c"; + font-family: 'brand-icons'; +} + +i.icon.font.awesome.flag:before { + content: "\f425"; + font-family: 'brand-icons'; +} + +i.icon.fonticons:before { + content: "\f280"; + font-family: 'brand-icons'; +} + +i.icon.fonticons.fi:before { + content: "\f3a2"; + font-family: 'brand-icons'; +} + +i.icon.fort.awesome:before { + content: "\f286"; + font-family: 'brand-icons'; +} + +i.icon.fort.awesome.alternate:before { + content: "\f3a3"; + font-family: 'brand-icons'; +} + +i.icon.forumbee:before { + content: "\f211"; + font-family: 'brand-icons'; +} + +i.icon.foursquare:before { + content: "\f180"; + font-family: 'brand-icons'; +} + +i.icon.free.code.camp:before { + content: "\f2c5"; + font-family: 'brand-icons'; +} + +i.icon.freebsd:before { + content: "\f3a4"; + font-family: 'brand-icons'; +} + +i.icon.fulcrum:before { + content: "\f50b"; + font-family: 'brand-icons'; +} + +i.icon.galactic.republic:before { + content: "\f50c"; + font-family: 'brand-icons'; +} + +i.icon.galactic.senate:before { + content: "\f50d"; + font-family: 'brand-icons'; +} + +i.icon.get.pocket:before { + content: "\f265"; + font-family: 'brand-icons'; +} + +i.icon.gg:before { + content: "\f260"; + font-family: 'brand-icons'; +} + +i.icon.gg.circle:before { + content: "\f261"; + font-family: 'brand-icons'; +} + +i.icon.git:before { + content: "\f1d3"; + font-family: 'brand-icons'; +} + +i.icon.git.alternate:before { + content: "\f841"; + font-family: 'brand-icons'; +} + +i.icon.git.square:before { + content: "\f1d2"; + font-family: 'brand-icons'; +} + +i.icon.github:before { + content: "\f09b"; + font-family: 'brand-icons'; +} + +i.icon.github.alternate:before { + content: "\f113"; + font-family: 'brand-icons'; +} + +i.icon.github.square:before { + content: "\f092"; + font-family: 'brand-icons'; +} + +i.icon.gitkraken:before { + content: "\f3a6"; + font-family: 'brand-icons'; +} + +i.icon.gitlab:before { + content: "\f296"; + font-family: 'brand-icons'; +} + +i.icon.gitter:before { + content: "\f426"; + font-family: 'brand-icons'; +} + +i.icon.glide:before { + content: "\f2a5"; + font-family: 'brand-icons'; +} + +i.icon.glide.g:before { + content: "\f2a6"; + font-family: 'brand-icons'; +} + +i.icon.gofore:before { + content: "\f3a7"; + font-family: 'brand-icons'; +} + +i.icon.goodreads:before { + content: "\f3a8"; + font-family: 'brand-icons'; +} + +i.icon.goodreads.g:before { + content: "\f3a9"; + font-family: 'brand-icons'; +} + +i.icon.google:before { + content: "\f1a0"; + font-family: 'brand-icons'; +} + +i.icon.google.drive:before { + content: "\f3aa"; + font-family: 'brand-icons'; +} + +i.icon.google.play:before { + content: "\f3ab"; + font-family: 'brand-icons'; +} + +i.icon.google.plus:before { + content: "\f2b3"; + font-family: 'brand-icons'; +} + +i.icon.google.plus.g:before { + content: "\f0d5"; + font-family: 'brand-icons'; +} + +i.icon.google.plus.square:before { + content: "\f0d4"; + font-family: 'brand-icons'; +} + +i.icon.google.wallet:before { + content: "\f1ee"; + font-family: 'brand-icons'; +} + +i.icon.gratipay:before { + content: "\f184"; + font-family: 'brand-icons'; +} + +i.icon.grav:before { + content: "\f2d6"; + font-family: 'brand-icons'; +} + +i.icon.gripfire:before { + content: "\f3ac"; + font-family: 'brand-icons'; +} + +i.icon.grunt:before { + content: "\f3ad"; + font-family: 'brand-icons'; +} + +i.icon.gulp:before { + content: "\f3ae"; + font-family: 'brand-icons'; +} + +i.icon.hacker.news:before { + content: "\f1d4"; + font-family: 'brand-icons'; +} + +i.icon.hacker.news.square:before { + content: "\f3af"; + font-family: 'brand-icons'; +} + +i.icon.hackerrank:before { + content: "\f5f7"; + font-family: 'brand-icons'; +} + +i.icon.hips:before { + content: "\f452"; + font-family: 'brand-icons'; +} + +i.icon.hire.a.helper:before { + content: "\f3b0"; + font-family: 'brand-icons'; +} + +i.icon.hooli:before { + content: "\f427"; + font-family: 'brand-icons'; +} + +i.icon.hornbill:before { + content: "\f592"; + font-family: 'brand-icons'; +} + +i.icon.hotjar:before { + content: "\f3b1"; + font-family: 'brand-icons'; +} + +i.icon.houzz:before { + content: "\f27c"; + font-family: 'brand-icons'; +} + +i.icon.html5:before { + content: "\f13b"; + font-family: 'brand-icons'; +} + +i.icon.hubspot:before { + content: "\f3b2"; + font-family: 'brand-icons'; +} + +i.icon.ideal:before { + content: "\f913"; + font-family: 'brand-icons'; +} + +i.icon.imdb:before { + content: "\f2d8"; + font-family: 'brand-icons'; +} + +i.icon.instagram:before { + content: "\f16d"; + font-family: 'brand-icons'; +} + +i.icon.instagram.square:before { + content: "\f955"; + font-family: 'brand-icons'; +} + +i.icon.intercom:before { + content: "\f7af"; + font-family: 'brand-icons'; +} + +i.icon.internet.explorer:before { + content: "\f26b"; + font-family: 'brand-icons'; +} + +i.icon.invision:before { + content: "\f7b0"; + font-family: 'brand-icons'; +} + +i.icon.ioxhost:before { + content: "\f208"; + font-family: 'brand-icons'; +} + +i.icon.itch.io:before { + content: "\f83a"; + font-family: 'brand-icons'; +} + +i.icon.itunes:before { + content: "\f3b4"; + font-family: 'brand-icons'; +} + +i.icon.itunes.note:before { + content: "\f3b5"; + font-family: 'brand-icons'; +} + +i.icon.java:before { + content: "\f4e4"; + font-family: 'brand-icons'; +} + +i.icon.jedi.order:before { + content: "\f50e"; + font-family: 'brand-icons'; +} + +i.icon.jenkins:before { + content: "\f3b6"; + font-family: 'brand-icons'; +} + +i.icon.jira:before { + content: "\f7b1"; + font-family: 'brand-icons'; +} + +i.icon.joget:before { + content: "\f3b7"; + font-family: 'brand-icons'; +} + +i.icon.joomla:before { + content: "\f1aa"; + font-family: 'brand-icons'; +} + +i.icon.js:before { + content: "\f3b8"; + font-family: 'brand-icons'; +} + +i.icon.js.square:before { + content: "\f3b9"; + font-family: 'brand-icons'; +} + +i.icon.jsfiddle:before { + content: "\f1cc"; + font-family: 'brand-icons'; +} + +i.icon.kaggle:before { + content: "\f5fa"; + font-family: 'brand-icons'; +} + +i.icon.keybase:before { + content: "\f4f5"; + font-family: 'brand-icons'; +} + +i.icon.keycdn:before { + content: "\f3ba"; + font-family: 'brand-icons'; +} + +i.icon.kickstarter:before { + content: "\f3bb"; + font-family: 'brand-icons'; +} + +i.icon.kickstarter.k:before { + content: "\f3bc"; + font-family: 'brand-icons'; +} + +i.icon.korvue:before { + content: "\f42f"; + font-family: 'brand-icons'; +} + +i.icon.laravel:before { + content: "\f3bd"; + font-family: 'brand-icons'; +} + +i.icon.lastfm:before { + content: "\f202"; + font-family: 'brand-icons'; +} + +i.icon.lastfm.square:before { + content: "\f203"; + font-family: 'brand-icons'; +} + +i.icon.leanpub:before { + content: "\f212"; + font-family: 'brand-icons'; +} + +i.icon.lesscss:before { + content: "\f41d"; + font-family: 'brand-icons'; +} + +i.icon.linechat:before { + content: "\f3c0"; + font-family: 'brand-icons'; +} + +i.icon.linkedin:before { + content: "\f08c"; + font-family: 'brand-icons'; +} + +i.icon.linkedin.in:before { + content: "\f0e1"; + font-family: 'brand-icons'; +} + +i.icon.linode:before { + content: "\f2b8"; + font-family: 'brand-icons'; +} + +i.icon.linux:before { + content: "\f17c"; + font-family: 'brand-icons'; +} + +i.icon.lyft:before { + content: "\f3c3"; + font-family: 'brand-icons'; +} + +i.icon.magento:before { + content: "\f3c4"; + font-family: 'brand-icons'; +} + +i.icon.mailchimp:before { + content: "\f59e"; + font-family: 'brand-icons'; +} + +i.icon.mandalorian:before { + content: "\f50f"; + font-family: 'brand-icons'; +} + +i.icon.markdown:before { + content: "\f60f"; + font-family: 'brand-icons'; +} + +i.icon.mastodon:before { + content: "\f4f6"; + font-family: 'brand-icons'; +} + +i.icon.maxcdn:before { + content: "\f136"; + font-family: 'brand-icons'; +} + +i.icon.mdb:before { + content: "\f8ca"; + font-family: 'brand-icons'; +} + +i.icon.medapps:before { + content: "\f3c6"; + font-family: 'brand-icons'; +} + +i.icon.medium:before { + content: "\f23a"; + font-family: 'brand-icons'; +} + +i.icon.medium.m:before { + content: "\f3c7"; + font-family: 'brand-icons'; +} + +i.icon.medrt:before { + content: "\f3c8"; + font-family: 'brand-icons'; +} + +i.icon.meetup:before { + content: "\f2e0"; + font-family: 'brand-icons'; +} + +i.icon.megaport:before { + content: "\f5a3"; + font-family: 'brand-icons'; +} + +i.icon.mendeley:before { + content: "\f7b3"; + font-family: 'brand-icons'; +} + +i.icon.microblog:before { + content: "\f91a"; + font-family: 'brand-icons'; +} + +i.icon.microsoft:before { + content: "\f3ca"; + font-family: 'brand-icons'; +} + +i.icon.mix:before { + content: "\f3cb"; + font-family: 'brand-icons'; +} + +i.icon.mixcloud:before { + content: "\f289"; + font-family: 'brand-icons'; +} + +i.icon.mixer:before { + content: "\f956"; + font-family: 'brand-icons'; +} + +i.icon.mizuni:before { + content: "\f3cc"; + font-family: 'brand-icons'; +} + +i.icon.modx:before { + content: "\f285"; + font-family: 'brand-icons'; +} + +i.icon.monero:before { + content: "\f3d0"; + font-family: 'brand-icons'; +} + +i.icon.napster:before { + content: "\f3d2"; + font-family: 'brand-icons'; +} + +i.icon.neos:before { + content: "\f612"; + font-family: 'brand-icons'; +} + +i.icon.nimblr:before { + content: "\f5a8"; + font-family: 'brand-icons'; +} + +i.icon.node:before { + content: "\f419"; + font-family: 'brand-icons'; +} + +i.icon.node.js:before { + content: "\f3d3"; + font-family: 'brand-icons'; +} + +i.icon.npm:before { + content: "\f3d4"; + font-family: 'brand-icons'; +} + +i.icon.ns8:before { + content: "\f3d5"; + font-family: 'brand-icons'; +} + +i.icon.nutritionix:before { + content: "\f3d6"; + font-family: 'brand-icons'; +} + +i.icon.odnoklassniki:before { + content: "\f263"; + font-family: 'brand-icons'; +} + +i.icon.odnoklassniki.square:before { + content: "\f264"; + font-family: 'brand-icons'; +} + +i.icon.old.republic:before { + content: "\f510"; + font-family: 'brand-icons'; +} + +i.icon.opencart:before { + content: "\f23d"; + font-family: 'brand-icons'; +} + +i.icon.openid:before { + content: "\f19b"; + font-family: 'brand-icons'; +} + +i.icon.opera:before { + content: "\f26a"; + font-family: 'brand-icons'; +} + +i.icon.optin.monster:before { + content: "\f23c"; + font-family: 'brand-icons'; +} + +i.icon.orcid:before { + content: "\f8d2"; + font-family: 'brand-icons'; +} + +i.icon.osi:before { + content: "\f41a"; + font-family: 'brand-icons'; +} + +i.icon.page4:before { + content: "\f3d7"; + font-family: 'brand-icons'; +} + +i.icon.pagelines:before { + content: "\f18c"; + font-family: 'brand-icons'; +} + +i.icon.palfed:before { + content: "\f3d8"; + font-family: 'brand-icons'; +} + +i.icon.patreon:before { + content: "\f3d9"; + font-family: 'brand-icons'; +} + +i.icon.paypal:before { + content: "\f1ed"; + font-family: 'brand-icons'; +} + +i.icon.penny.arcade:before { + content: "\f704"; + font-family: 'brand-icons'; +} + +i.icon.periscope:before { + content: "\f3da"; + font-family: 'brand-icons'; +} + +i.icon.phabricator:before { + content: "\f3db"; + font-family: 'brand-icons'; +} + +i.icon.phoenix.framework:before { + content: "\f3dc"; + font-family: 'brand-icons'; +} + +i.icon.phoenix.squadron:before { + content: "\f511"; + font-family: 'brand-icons'; +} + +i.icon.php:before { + content: "\f457"; + font-family: 'brand-icons'; +} + +i.icon.pied.piper:before { + content: "\f2ae"; + font-family: 'brand-icons'; +} + +i.icon.pied.piper.alternate:before { + content: "\f1a8"; + font-family: 'brand-icons'; +} + +i.icon.pied.piper.hat:before { + content: "\f4e5"; + font-family: 'brand-icons'; +} + +i.icon.pied.piper.pp:before { + content: "\f1a7"; + font-family: 'brand-icons'; +} + +i.icon.pied.piper.square:before { + content: "\f91e"; + font-family: 'brand-icons'; +} + +i.icon.pinterest:before { + content: "\f0d2"; + font-family: 'brand-icons'; +} + +i.icon.pinterest.p:before { + content: "\f231"; + font-family: 'brand-icons'; +} + +i.icon.pinterest.square:before { + content: "\f0d3"; + font-family: 'brand-icons'; +} + +i.icon.playstation:before { + content: "\f3df"; + font-family: 'brand-icons'; +} + +i.icon.product.hunt:before { + content: "\f288"; + font-family: 'brand-icons'; +} + +i.icon.pushed:before { + content: "\f3e1"; + font-family: 'brand-icons'; +} + +i.icon.python:before { + content: "\f3e2"; + font-family: 'brand-icons'; +} + +i.icon.qq:before { + content: "\f1d6"; + font-family: 'brand-icons'; +} + +i.icon.quinscape:before { + content: "\f459"; + font-family: 'brand-icons'; +} + +i.icon.quora:before { + content: "\f2c4"; + font-family: 'brand-icons'; +} + +i.icon.r.project:before { + content: "\f4f7"; + font-family: 'brand-icons'; +} + +i.icon.raspberry.pi:before { + content: "\f7bb"; + font-family: 'brand-icons'; +} + +i.icon.ravelry:before { + content: "\f2d9"; + font-family: 'brand-icons'; +} + +i.icon.react:before { + content: "\f41b"; + font-family: 'brand-icons'; +} + +i.icon.reacteurope:before { + content: "\f75d"; + font-family: 'brand-icons'; +} + +i.icon.readme:before { + content: "\f4d5"; + font-family: 'brand-icons'; +} + +i.icon.rebel:before { + content: "\f1d0"; + font-family: 'brand-icons'; +} + +i.icon.reddit:before { + content: "\f1a1"; + font-family: 'brand-icons'; +} + +i.icon.reddit.alien:before { + content: "\f281"; + font-family: 'brand-icons'; +} + +i.icon.reddit.square:before { + content: "\f1a2"; + font-family: 'brand-icons'; +} + +i.icon.redhat:before { + content: "\f7bc"; + font-family: 'brand-icons'; +} + +i.icon.redriver:before { + content: "\f3e3"; + font-family: 'brand-icons'; +} + +i.icon.redyeti:before { + content: "\f69d"; + font-family: 'brand-icons'; +} + +i.icon.renren:before { + content: "\f18b"; + font-family: 'brand-icons'; +} + +i.icon.replyd:before { + content: "\f3e6"; + font-family: 'brand-icons'; +} + +i.icon.researchgate:before { + content: "\f4f8"; + font-family: 'brand-icons'; +} + +i.icon.resolving:before { + content: "\f3e7"; + font-family: 'brand-icons'; +} + +i.icon.rev:before { + content: "\f5b2"; + font-family: 'brand-icons'; +} + +i.icon.rocketchat:before { + content: "\f3e8"; + font-family: 'brand-icons'; +} + +i.icon.rockrms:before { + content: "\f3e9"; + font-family: 'brand-icons'; +} + +i.icon.safari:before { + content: "\f267"; + font-family: 'brand-icons'; +} + +i.icon.salesforce:before { + content: "\f83b"; + font-family: 'brand-icons'; +} + +i.icon.sass:before { + content: "\f41e"; + font-family: 'brand-icons'; +} + +i.icon.schlix:before { + content: "\f3ea"; + font-family: 'brand-icons'; +} + +i.icon.scribd:before { + content: "\f28a"; + font-family: 'brand-icons'; +} + +i.icon.searchengin:before { + content: "\f3eb"; + font-family: 'brand-icons'; +} + +i.icon.sellcast:before { + content: "\f2da"; + font-family: 'brand-icons'; +} + +i.icon.sellsy:before { + content: "\f213"; + font-family: 'brand-icons'; +} + +i.icon.servicestack:before { + content: "\f3ec"; + font-family: 'brand-icons'; +} + +i.icon.shirtsinbulk:before { + content: "\f214"; + font-family: 'brand-icons'; +} + +i.icon.shopify:before { + content: "\f957"; + font-family: 'brand-icons'; +} + +i.icon.shopware:before { + content: "\f5b5"; + font-family: 'brand-icons'; +} + +i.icon.simplybuilt:before { + content: "\f215"; + font-family: 'brand-icons'; +} + +i.icon.sistrix:before { + content: "\f3ee"; + font-family: 'brand-icons'; +} + +i.icon.sith:before { + content: "\f512"; + font-family: 'brand-icons'; +} + +i.icon.sketch:before { + content: "\f7c6"; + font-family: 'brand-icons'; +} + +i.icon.skyatlas:before { + content: "\f216"; + font-family: 'brand-icons'; +} + +i.icon.skype:before { + content: "\f17e"; + font-family: 'brand-icons'; +} + +i.icon.slack:before { + content: "\f198"; + font-family: 'brand-icons'; +} + +i.icon.slack.hash:before { + content: "\f3ef"; + font-family: 'brand-icons'; +} + +i.icon.slideshare:before { + content: "\f1e7"; + font-family: 'brand-icons'; +} + +i.icon.snapchat:before { + content: "\f2ab"; + font-family: 'brand-icons'; +} + +i.icon.snapchat.ghost:before { + content: "\f2ac"; + font-family: 'brand-icons'; +} + +i.icon.snapchat.square:before { + content: "\f2ad"; + font-family: 'brand-icons'; +} + +i.icon.soundcloud:before { + content: "\f1be"; + font-family: 'brand-icons'; +} + +i.icon.sourcetree:before { + content: "\f7d3"; + font-family: 'brand-icons'; +} + +i.icon.speakap:before { + content: "\f3f3"; + font-family: 'brand-icons'; +} + +i.icon.speaker.deck:before { + content: "\f83c"; + font-family: 'brand-icons'; +} + +i.icon.spotify:before { + content: "\f1bc"; + font-family: 'brand-icons'; +} + +i.icon.squarespace:before { + content: "\f5be"; + font-family: 'brand-icons'; +} + +i.icon.stack.exchange:before { + content: "\f18d"; + font-family: 'brand-icons'; +} + +i.icon.stack.overflow:before { + content: "\f16c"; + font-family: 'brand-icons'; +} + +i.icon.stackpath:before { + content: "\f842"; + font-family: 'brand-icons'; +} + +i.icon.staylinked:before { + content: "\f3f5"; + font-family: 'brand-icons'; +} + +i.icon.steam:before { + content: "\f1b6"; + font-family: 'brand-icons'; +} + +i.icon.steam.square:before { + content: "\f1b7"; + font-family: 'brand-icons'; +} + +i.icon.steam.symbol:before { + content: "\f3f6"; + font-family: 'brand-icons'; +} + +i.icon.sticker.mule:before { + content: "\f3f7"; + font-family: 'brand-icons'; +} + +i.icon.strava:before { + content: "\f428"; + font-family: 'brand-icons'; +} + +i.icon.stripe:before { + content: "\f429"; + font-family: 'brand-icons'; +} + +i.icon.stripe.s:before { + content: "\f42a"; + font-family: 'brand-icons'; +} + +i.icon.studiovinari:before { + content: "\f3f8"; + font-family: 'brand-icons'; +} + +i.icon.stumbleupon:before { + content: "\f1a4"; + font-family: 'brand-icons'; +} + +i.icon.stumbleupon.circle:before { + content: "\f1a3"; + font-family: 'brand-icons'; +} + +i.icon.superpowers:before { + content: "\f2dd"; + font-family: 'brand-icons'; +} + +i.icon.supple:before { + content: "\f3f9"; + font-family: 'brand-icons'; +} + +i.icon.suse:before { + content: "\f7d6"; + font-family: 'brand-icons'; +} + +i.icon.swift:before { + content: "\f8e1"; + font-family: 'brand-icons'; +} + +i.icon.symfony:before { + content: "\f83d"; + font-family: 'brand-icons'; +} + +i.icon.teamspeak:before { + content: "\f4f9"; + font-family: 'brand-icons'; +} + +i.icon.telegram:before { + content: "\f2c6"; + font-family: 'brand-icons'; +} + +i.icon.telegram.plane:before { + content: "\f3fe"; + font-family: 'brand-icons'; +} + +i.icon.tencent.weibo:before { + content: "\f1d5"; + font-family: 'brand-icons'; +} + +i.icon.themeco:before { + content: "\f5c6"; + font-family: 'brand-icons'; +} + +i.icon.themeisle:before { + content: "\f2b2"; + font-family: 'brand-icons'; +} + +i.icon.think.peaks:before { + content: "\f731"; + font-family: 'brand-icons'; +} + +i.icon.trade.federation:before { + content: "\f513"; + font-family: 'brand-icons'; +} + +i.icon.trello:before { + content: "\f181"; + font-family: 'brand-icons'; +} + +i.icon.tripadvisor:before { + content: "\f262"; + font-family: 'brand-icons'; +} + +i.icon.tumblr:before { + content: "\f173"; + font-family: 'brand-icons'; +} + +i.icon.tumblr.square:before { + content: "\f174"; + font-family: 'brand-icons'; +} + +i.icon.twitch:before { + content: "\f1e8"; + font-family: 'brand-icons'; +} + +i.icon.twitter:before { + content: "\f099"; + font-family: 'brand-icons'; +} + +i.icon.twitter.square:before { + content: "\f081"; + font-family: 'brand-icons'; +} + +i.icon.typo3:before { + content: "\f42b"; + font-family: 'brand-icons'; +} + +i.icon.uber:before { + content: "\f402"; + font-family: 'brand-icons'; +} + +i.icon.ubuntu:before { + content: "\f7df"; + font-family: 'brand-icons'; +} + +i.icon.uikit:before { + content: "\f403"; + font-family: 'brand-icons'; +} + +i.icon.umbraco:before { + content: "\f8e8"; + font-family: 'brand-icons'; +} + +i.icon.uniregistry:before { + content: "\f404"; + font-family: 'brand-icons'; +} + +i.icon.unity:before { + content: "\f949"; + font-family: 'brand-icons'; +} + +i.icon.untappd:before { + content: "\f405"; + font-family: 'brand-icons'; +} + +i.icon.ups:before { + content: "\f7e0"; + font-family: 'brand-icons'; +} + +i.icon.usb:before { + content: "\f287"; + font-family: 'brand-icons'; +} + +i.icon.usps:before { + content: "\f7e1"; + font-family: 'brand-icons'; +} + +i.icon.ussunnah:before { + content: "\f407"; + font-family: 'brand-icons'; +} + +i.icon.vaadin:before { + content: "\f408"; + font-family: 'brand-icons'; +} + +i.icon.viacoin:before { + content: "\f237"; + font-family: 'brand-icons'; +} + +i.icon.viadeo:before { + content: "\f2a9"; + font-family: 'brand-icons'; +} + +i.icon.viadeo.square:before { + content: "\f2aa"; + font-family: 'brand-icons'; +} + +i.icon.viber:before { + content: "\f409"; + font-family: 'brand-icons'; +} + +i.icon.vimeo:before { + content: "\f40a"; + font-family: 'brand-icons'; +} + +i.icon.vimeo.square:before { + content: "\f194"; + font-family: 'brand-icons'; +} + +i.icon.vimeo.v:before { + content: "\f27d"; + font-family: 'brand-icons'; +} + +i.icon.vine:before { + content: "\f1ca"; + font-family: 'brand-icons'; +} + +i.icon.vk:before { + content: "\f189"; + font-family: 'brand-icons'; +} + +i.icon.vnv:before { + content: "\f40b"; + font-family: 'brand-icons'; +} + +i.icon.vuejs:before { + content: "\f41f"; + font-family: 'brand-icons'; +} + +i.icon.waze:before { + content: "\f83f"; + font-family: 'brand-icons'; +} + +i.icon.weebly:before { + content: "\f5cc"; + font-family: 'brand-icons'; +} + +i.icon.weibo:before { + content: "\f18a"; + font-family: 'brand-icons'; +} + +i.icon.weixin:before { + content: "\f1d7"; + font-family: 'brand-icons'; +} + +i.icon.whatsapp:before { + content: "\f232"; + font-family: 'brand-icons'; +} + +i.icon.whatsapp.square:before { + content: "\f40c"; + font-family: 'brand-icons'; +} + +i.icon.whmcs:before { + content: "\f40d"; + font-family: 'brand-icons'; +} + +i.icon.wikipedia.w:before { + content: "\f266"; + font-family: 'brand-icons'; +} + +i.icon.windows:before { + content: "\f17a"; + font-family: 'brand-icons'; +} + +i.icon.wix:before { + content: "\f5cf"; + font-family: 'brand-icons'; +} + +i.icon.wizards.of.the.coast:before { + content: "\f730"; + font-family: 'brand-icons'; +} + +i.icon.wolf.pack.battalion:before { + content: "\f514"; + font-family: 'brand-icons'; +} + +i.icon.wordpress:before { + content: "\f19a"; + font-family: 'brand-icons'; +} + +i.icon.wordpress.simple:before { + content: "\f411"; + font-family: 'brand-icons'; +} + +i.icon.wpbeginner:before { + content: "\f297"; + font-family: 'brand-icons'; +} + +i.icon.wpexplorer:before { + content: "\f2de"; + font-family: 'brand-icons'; +} + +i.icon.wpforms:before { + content: "\f298"; + font-family: 'brand-icons'; +} + +i.icon.wpressr:before { + content: "\f3e4"; + font-family: 'brand-icons'; +} + +i.icon.xbox:before { + content: "\f412"; + font-family: 'brand-icons'; +} + +i.icon.xing:before { + content: "\f168"; + font-family: 'brand-icons'; +} + +i.icon.xing.square:before { + content: "\f169"; + font-family: 'brand-icons'; +} + +i.icon.y.combinator:before { + content: "\f23b"; + font-family: 'brand-icons'; +} + +i.icon.yahoo:before { + content: "\f19e"; + font-family: 'brand-icons'; +} + +i.icon.yammer:before { + content: "\f840"; + font-family: 'brand-icons'; +} + +i.icon.yandex:before { + content: "\f413"; + font-family: 'brand-icons'; +} + +i.icon.yandex.international:before { + content: "\f414"; + font-family: 'brand-icons'; +} + +i.icon.yarn:before { + content: "\f7e3"; + font-family: 'brand-icons'; +} + +i.icon.yelp:before { + content: "\f1e9"; + font-family: 'brand-icons'; +} + +i.icon.yoast:before { + content: "\f2b1"; + font-family: 'brand-icons'; +} + +i.icon.youtube:before { + content: "\f167"; + font-family: 'brand-icons'; +} + +i.icon.youtube.square:before { + content: "\f431"; + font-family: 'brand-icons'; +} + +i.icon.zhihu:before { + content: "\f63f"; + font-family: 'brand-icons'; +} + +/* Aliases */ + +i.icon.american.express:before { + content: "\f1f3"; + font-family: 'brand-icons'; +} + +i.icon.american.express.card:before { + content: "\f1f3"; + font-family: 'brand-icons'; +} + +i.icon.amex:before { + content: "\f1f3"; + font-family: 'brand-icons'; +} + +i.icon.bitbucket.square:before { + content: "\f171"; + font-family: 'brand-icons'; +} + +i.icon.bluetooth.alternative:before { + content: "\f294"; + font-family: 'brand-icons'; +} + +i.icon.credit.card.amazon.pay:before { + content: "\f42d"; + font-family: 'brand-icons'; +} + +i.icon.credit.card.american.express:before { + content: "\f1f3"; + font-family: 'brand-icons'; +} + +i.icon.credit.card.diners.club:before { + content: "\f24c"; + font-family: 'brand-icons'; +} + +i.icon.credit.card.discover:before { + content: "\f1f2"; + font-family: 'brand-icons'; +} + +i.icon.credit.card.jcb:before { + content: "\f24b"; + font-family: 'brand-icons'; +} + +i.icon.credit.card.mastercard:before { + content: "\f1f1"; + font-family: 'brand-icons'; +} + +i.icon.credit.card.paypal:before { + content: "\f1f4"; + font-family: 'brand-icons'; +} + +i.icon.credit.card.stripe:before { + content: "\f1f5"; + font-family: 'brand-icons'; +} + +i.icon.credit.card.visa:before { + content: "\f1f0"; + font-family: 'brand-icons'; +} + +i.icon.diners.club:before { + content: "\f24c"; + font-family: 'brand-icons'; +} + +i.icon.diners.club.card:before { + content: "\f24c"; + font-family: 'brand-icons'; +} + +i.icon.discover:before { + content: "\f1f2"; + font-family: 'brand-icons'; +} + +i.icon.discover.card:before { + content: "\f1f2"; + font-family: 'brand-icons'; +} + +i.icon.disk.outline:before { + content: "\f369"; + font-family: 'brand-icons'; +} + +i.icon.dribble:before { + content: "\f17d"; + font-family: 'brand-icons'; +} + +i.icon.eercast:before { + content: "\f2da"; + font-family: 'brand-icons'; +} + +i.icon.envira.gallery:before { + content: "\f299"; + font-family: 'brand-icons'; +} + +i.icon.fa:before { + content: "\f2b4"; + font-family: 'brand-icons'; +} + +i.icon.facebook.official:before { + content: "\f082"; + font-family: 'brand-icons'; +} + +i.icon.five.hundred.pixels:before { + content: "\f26e"; + font-family: 'brand-icons'; +} + +i.icon.gittip:before { + content: "\f184"; + font-family: 'brand-icons'; +} + +i.icon.google.plus.circle:before { + content: "\f2b3"; + font-family: 'brand-icons'; +} + +i.icon.google.plus.official:before { + content: "\f2b3"; + font-family: 'brand-icons'; +} + +i.icon.japan.credit.bureau:before { + content: "\f24b"; + font-family: 'brand-icons'; +} + +i.icon.japan.credit.bureau.card:before { + content: "\f24b"; + font-family: 'brand-icons'; +} + +i.icon.jcb:before { + content: "\f24b"; + font-family: 'brand-icons'; +} + +i.icon.linkedin.square:before { + content: "\f08c"; + font-family: 'brand-icons'; +} + +i.icon.mastercard:before { + content: "\f1f1"; + font-family: 'brand-icons'; +} + +i.icon.mastercard.card:before { + content: "\f1f1"; + font-family: 'brand-icons'; +} + +i.icon.microsoft.edge:before { + content: "\f282"; + font-family: 'brand-icons'; +} + +i.icon.ms.edge:before { + content: "\f282"; + font-family: 'brand-icons'; +} + +i.icon.new.pied.piper:before { + content: "\f2ae"; + font-family: 'brand-icons'; +} + +i.icon.optinmonster:before { + content: "\f23c"; + font-family: 'brand-icons'; +} + +i.icon.paypal.card:before { + content: "\f1f4"; + font-family: 'brand-icons'; +} + +i.icon.pied.piper.hat:before { + content: "\f2ae"; + font-family: 'brand-icons'; +} + +i.icon.pocket:before { + content: "\f265"; + font-family: 'brand-icons'; +} + +i.icon.stripe.card:before { + content: "\f1f5"; + font-family: 'brand-icons'; +} + +i.icon.theme.isle:before { + content: "\f2b2"; + font-family: 'brand-icons'; +} + +i.icon.visa:before { + content: "\f1f0"; + font-family: 'brand-icons'; +} + +i.icon.visa.card:before { + content: "\f1f0"; + font-family: 'brand-icons'; +} + +i.icon.wechat:before { + content: "\f1d7"; + font-family: 'brand-icons'; +} + +i.icon.wikipedia:before { + content: "\f266"; + font-family: 'brand-icons'; +} + +i.icon.wordpress.beginner:before { + content: "\f297"; + font-family: 'brand-icons'; +} + +i.icon.wordpress.forms:before { + content: "\f298"; + font-family: 'brand-icons'; +} + +i.icon.yc:before { + content: "\f23b"; + font-family: 'brand-icons'; +} + +i.icon.ycombinator:before { + content: "\f23b"; + font-family: 'brand-icons'; +} + +i.icon.youtube.play:before { + content: "\f167"; + font-family: 'brand-icons'; +} + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Image + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Image +*******************************/ + +.ui.image { + position: relative; + display: inline-block; + vertical-align: middle; + max-width: 100%; + background-color: transparent; +} + +img.ui.image { + display: block; +} + +.ui.image svg, +.ui.image img { + display: block; + max-width: 100%; + height: auto; +} + +/******************************* + States +*******************************/ + +.ui.hidden.images, +.ui.ui.hidden.image { + display: none; +} + +.ui.hidden.transition.images, +.ui.hidden.transition.image { + display: block; + visibility: hidden; +} + +.ui.images > .hidden.transition { + display: inline-block; + visibility: hidden; +} + +.ui.disabled.images, +.ui.disabled.image { + cursor: default; + opacity: 0.45; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Inline + ---------------*/ + +.ui.inline.image, +.ui.inline.image svg, +.ui.inline.image img { + display: inline-block; +} + +/*------------------ + Vertical Aligned + -------------------*/ + +.ui.top.aligned.image, +.ui.top.aligned.image svg, +.ui.top.aligned.image img { + display: inline-block; + vertical-align: top; +} + +.ui.middle.aligned.image, +.ui.middle.aligned.image svg, +.ui.middle.aligned.image img { + display: inline-block; + vertical-align: middle; +} + +.ui.bottom.aligned.image, +.ui.bottom.aligned.image svg, +.ui.bottom.aligned.image img { + display: inline-block; + vertical-align: bottom; +} + +.ui.top.aligned.images .image, +.ui.images .ui.top.aligned.image { + align-self: flex-start; +} + +.ui.middle.aligned.images .image, +.ui.images .ui.middle.aligned.image { + align-self: center; +} + +.ui.bottom.aligned.images .image, +.ui.images .ui.bottom.aligned.image { + align-self: flex-end; +} + +/*-------------- + Rounded + ---------------*/ + +.ui.rounded.images .image, +.ui.rounded.image, +.ui.rounded.images .image > *, +.ui.rounded.image > * { + border-radius: 0.3125em; +} + +/*-------------- + Bordered + ---------------*/ + +.ui.bordered.images .image, +.ui.bordered.images img, +.ui.bordered.images svg, +.ui.bordered.image img, +.ui.bordered.image svg, +img.ui.bordered.image { + border: 1px solid rgba(0, 0, 0, 0.1); +} + +/*-------------- + Circular + ---------------*/ + +.ui.circular.images, +.ui.circular.image { + overflow: hidden; +} + +.ui.circular.images .image, +.ui.circular.image, +.ui.circular.images .image > *, +.ui.circular.image > * { + border-radius: 500rem; +} + +/*-------------- + Fluid + ---------------*/ + +.ui.fluid.images, +.ui.fluid.image, +.ui.fluid.images img, +.ui.fluid.images svg, +.ui.fluid.image svg, +.ui.fluid.image img { + display: block; + width: 100%; + height: auto; +} + +/*-------------- + Avatar + ---------------*/ + +.ui.avatar.images .image, +.ui.avatar.images img, +.ui.avatar.images svg, +.ui.avatar.image img, +.ui.avatar.image svg, +.ui.avatar.image { + margin-right: 0.25em; + display: inline-block; + width: 2em; + height: 2em; + border-radius: 500rem; +} + +/*------------------- + Spaced + --------------------*/ + +.ui.spaced.image { + display: inline-block !important; + margin-left: 0.5em; + margin-right: 0.5em; +} + +.ui[class*="left spaced"].image { + margin-left: 0.5em; + margin-right: 0; +} + +.ui[class*="right spaced"].image { + margin-left: 0; + margin-right: 0.5em; +} + +/*------------------- + Floated + --------------------*/ + +.ui.floated.image, +.ui.floated.images { + float: left; + margin-right: 1em; + margin-bottom: 1em; +} + +.ui.right.floated.images, +.ui.right.floated.image { + float: right; + margin-right: 0; + margin-bottom: 1em; + margin-left: 1em; +} + +.ui.floated.images:last-child, +.ui.floated.image:last-child { + margin-bottom: 0; +} + +.ui.centered.image { + display: block; + margin-left: auto; + margin-right: auto; +} + +.ui.centered.images { + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: stretch; + justify-content: center; +} + +/*-------------- + Sizes +---------------*/ + +.ui.medium.images .image, +.ui.medium.images img, +.ui.medium.images svg, +.ui.medium.image { + width: 300px; + height: auto; + font-size: 1rem; +} + +.ui.mini.images .image, +.ui.mini.images img, +.ui.mini.images svg, +.ui.mini.image { + width: 35px; + height: auto; + font-size: 0.78571429rem; +} + +.ui.tiny.images .image, +.ui.tiny.images img, +.ui.tiny.images svg, +.ui.tiny.image { + width: 80px; + height: auto; + font-size: 0.85714286rem; +} + +.ui.small.images .image, +.ui.small.images img, +.ui.small.images svg, +.ui.small.image { + width: 150px; + height: auto; + font-size: 0.92857143rem; +} + +.ui.large.images .image, +.ui.large.images img, +.ui.large.images svg, +.ui.large.image { + width: 450px; + height: auto; + font-size: 1.14285714rem; +} + +.ui.big.images .image, +.ui.big.images img, +.ui.big.images svg, +.ui.big.image { + width: 600px; + height: auto; + font-size: 1.28571429rem; +} + +.ui.huge.images .image, +.ui.huge.images img, +.ui.huge.images svg, +.ui.huge.image { + width: 800px; + height: auto; + font-size: 1.42857143rem; +} + +.ui.massive.images .image, +.ui.massive.images img, +.ui.massive.images svg, +.ui.massive.image { + width: 960px; + height: auto; + font-size: 1.71428571rem; +} + +/******************************* + Groups + *******************************/ + +.ui.images { + font-size: 0; + margin: 0 -0.25rem 0; +} + +.ui.images .image, +.ui.images > img, +.ui.images > svg { + display: inline-block; + margin: 0 0.25rem 0.5rem; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Input + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Standard +*******************************/ + +/*-------------------- + Inputs +---------------------*/ + +.ui.input { + position: relative; + font-weight: normal; + font-style: normal; + display: inline-flex; + color: rgba(0, 0, 0, 0.87); +} + +.ui.input > input { + margin: 0; + max-width: 100%; + flex: 1 0 auto; + outline: none; + -webkit-tap-highlight-color: rgba(255, 255, 255, 0); + text-align: left; + line-height: 1.21428571em; + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + padding: 0.67857143em 1em; + background: #FFFFFF; + border: 1px solid rgba(34, 36, 38, 0.15); + color: rgba(0, 0, 0, 0.87); + border-radius: 0.28571429rem; + transition: box-shadow 0.1s ease, border-color 0.1s ease; + box-shadow: none; +} + +/*-------------------- + Placeholder +---------------------*/ + +/* browsers require these rules separate */ + +.ui.input > input::-webkit-input-placeholder { + color: rgba(191, 191, 191, 0.87); +} + +.ui.input > input::-moz-placeholder { + color: rgba(191, 191, 191, 0.87); +} + +.ui.input > input:-ms-input-placeholder { + color: rgba(191, 191, 191, 0.87); +} + +/******************************* + States +*******************************/ + +/*-------------------- + Disabled + ---------------------*/ + +.ui.disabled.input, +.ui.input:not(.disabled) input[disabled] { + opacity: 0.45; +} + +.ui.disabled.input > input, +.ui.input:not(.disabled) input[disabled] { + pointer-events: none; +} + +/*-------------------- + Active +---------------------*/ + +.ui.input > input:active, +.ui.input.down input { + border-color: rgba(0, 0, 0, 0.3); + background: #FAFAFA; + color: rgba(0, 0, 0, 0.87); + box-shadow: none; +} + +/*-------------------- + Loading + ---------------------*/ + +.ui.loading.loading.input > i.icon:before { + position: absolute; + content: ''; + top: 50%; + left: 50%; + margin: -0.64285714em 0 0 -0.64285714em; + width: 1.28571429em; + height: 1.28571429em; + border-radius: 500rem; + border: 0.2em solid rgba(0, 0, 0, 0.1); +} + +.ui.loading.loading.input > i.icon:after { + position: absolute; + content: ''; + top: 50%; + left: 50%; + margin: -0.64285714em 0 0 -0.64285714em; + width: 1.28571429em; + height: 1.28571429em; + -webkit-animation: loader 0.6s infinite linear; + animation: loader 0.6s infinite linear; + border: 0.2em solid #767676; + border-radius: 500rem; + box-shadow: 0 0 0 1px transparent; +} + +/*-------------------- + Focus +---------------------*/ + +.ui.input.focus > input, +.ui.input > input:focus { + border-color: #85B7D9; + background: #FFFFFF; + color: rgba(0, 0, 0, 0.8); + box-shadow: none; +} + +.ui.input.focus > input::-webkit-input-placeholder, +.ui.input > input:focus::-webkit-input-placeholder { + color: rgba(115, 115, 115, 0.87); +} + +.ui.input.focus > input::-moz-placeholder, +.ui.input > input:focus::-moz-placeholder { + color: rgba(115, 115, 115, 0.87); +} + +.ui.input.focus > input:-ms-input-placeholder, +.ui.input > input:focus:-ms-input-placeholder { + color: rgba(115, 115, 115, 0.87); +} + +/*-------------------- + States + ---------------------*/ + +.ui.input.error > input { + background-color: #FFF6F6; + border-color: #E0B4B4; + color: #9F3A38; + box-shadow: none; +} + +/* Placeholder */ + +.ui.input.error > input::-webkit-input-placeholder { + color: #e7bdbc; +} + +.ui.input.error > input::-moz-placeholder { + color: #e7bdbc; +} + +.ui.input.error > input:-ms-input-placeholder { + color: #e7bdbc !important; +} + +/* Focused Placeholder */ + +.ui.input.error > input:focus::-webkit-input-placeholder { + color: #da9796; +} + +.ui.input.error > input:focus::-moz-placeholder { + color: #da9796; +} + +.ui.input.error > input:focus:-ms-input-placeholder { + color: #da9796 !important; +} + +.ui.input.info > input { + background-color: #F8FFFF; + border-color: #A9D5DE; + color: #276F86; + box-shadow: none; +} + +/* Placeholder */ + +.ui.input.info > input::-webkit-input-placeholder { + color: #98cfe1; +} + +.ui.input.info > input::-moz-placeholder { + color: #98cfe1; +} + +.ui.input.info > input:-ms-input-placeholder { + color: #98cfe1 !important; +} + +/* Focused Placeholder */ + +.ui.input.info > input:focus::-webkit-input-placeholder { + color: #70bdd6; +} + +.ui.input.info > input:focus::-moz-placeholder { + color: #70bdd6; +} + +.ui.input.info > input:focus:-ms-input-placeholder { + color: #70bdd6 !important; +} + +.ui.input.success > input { + background-color: #FCFFF5; + border-color: #A3C293; + color: #2C662D; + box-shadow: none; +} + +/* Placeholder */ + +.ui.input.success > input::-webkit-input-placeholder { + color: #8fcf90; +} + +.ui.input.success > input::-moz-placeholder { + color: #8fcf90; +} + +.ui.input.success > input:-ms-input-placeholder { + color: #8fcf90 !important; +} + +/* Focused Placeholder */ + +.ui.input.success > input:focus::-webkit-input-placeholder { + color: #6cbf6d; +} + +.ui.input.success > input:focus::-moz-placeholder { + color: #6cbf6d; +} + +.ui.input.success > input:focus:-ms-input-placeholder { + color: #6cbf6d !important; +} + +.ui.input.warning > input { + background-color: #FFFAF3; + border-color: #C9BA9B; + color: #573A08; + box-shadow: none; +} + +/* Placeholder */ + +.ui.input.warning > input::-webkit-input-placeholder { + color: #edad3e; +} + +.ui.input.warning > input::-moz-placeholder { + color: #edad3e; +} + +.ui.input.warning > input:-ms-input-placeholder { + color: #edad3e !important; +} + +/* Focused Placeholder */ + +.ui.input.warning > input:focus::-webkit-input-placeholder { + color: #e39715; +} + +.ui.input.warning > input:focus::-moz-placeholder { + color: #e39715; +} + +.ui.input.warning > input:focus:-ms-input-placeholder { + color: #e39715 !important; +} + +/******************************* + Variations +*******************************/ + +/*-------------------- + Transparent + ---------------------*/ + +.ui.transparent.input > textarea, +.ui.transparent.input > input { + border-color: transparent !important; + background-color: transparent !important; + padding: 0; + box-shadow: none !important; + border-radius: 0 !important; +} + +.field .ui.transparent.input > textarea { + padding: 0.67857143em 1em; +} + +/* Transparent Icon */ + +:not(.field) > .ui.transparent.icon.input > i.icon { + width: 1.1em; +} + +:not(.field) > .ui.ui.ui.transparent.icon.input > input { + padding-left: 0; + padding-right: 2em; +} + +:not(.field) > .ui.ui.ui.transparent[class*="left icon"].input > input { + padding-left: 2em; + padding-right: 0; +} + +/* Transparent Inverted */ + +.ui.transparent.inverted.input { + color: #FFFFFF; +} + +.ui.ui.transparent.inverted.input > textarea, +.ui.ui.transparent.inverted.input > input { + color: inherit; +} + +.ui.transparent.inverted.input > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.5); +} + +.ui.transparent.inverted.input > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.5); +} + +.ui.transparent.inverted.input > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.5); +} + +/*-------------------- + Icon + ---------------------*/ + +.ui.icon.input > i.icon { + cursor: default; + position: absolute; + line-height: 1; + text-align: center; + top: 0; + right: 0; + margin: 0; + height: 100%; + width: 2.67142857em; + opacity: 0.5; + border-radius: 0 0.28571429rem 0.28571429rem 0; + transition: opacity 0.3s ease; +} + +.ui.icon.input > i.icon:not(.link) { + pointer-events: none; +} + +.ui.ui.ui.ui.icon.input > textarea, +.ui.ui.ui.ui.icon.input > input { + padding-right: 2.67142857em; +} + +.ui.icon.input > i.icon:before, +.ui.icon.input > i.icon:after { + left: 0; + position: absolute; + text-align: center; + top: 50%; + width: 100%; + margin-top: -0.5em; +} + +.ui.icon.input > i.link.icon { + cursor: pointer; +} + +.ui.icon.input > i.circular.icon { + top: 0.35em; + right: 0.5em; +} + +/* Left Icon Input */ + +.ui[class*="left icon"].input > i.icon { + right: auto; + left: 1px; + border-radius: 0.28571429rem 0 0 0.28571429rem; +} + +.ui[class*="left icon"].input > i.circular.icon { + right: auto; + left: 0.5em; +} + +.ui.ui.ui.ui[class*="left icon"].input > textarea, +.ui.ui.ui.ui[class*="left icon"].input > input { + padding-left: 2.67142857em; + padding-right: 1em; +} + +/* Focus */ + +.ui.icon.input > textarea:focus ~ i.icon, +.ui.icon.input > input:focus ~ i.icon { + opacity: 1; +} + +/*-------------------- + Labeled + ---------------------*/ + +/* Adjacent Label */ + +.ui.labeled.input > .label { + flex: 0 0 auto; + margin: 0; + font-size: 1em; +} + +.ui.labeled.input > .label:not(.corner) { + padding-top: 0.78571429em; + padding-bottom: 0.78571429em; +} + +/* Regular Label on Left */ + +.ui.labeled.input:not([class*="corner labeled"]) .label:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.ui.labeled.input:not([class*="corner labeled"]) .label:first-child + input { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-left-color: transparent; +} + +.ui.labeled.input:not([class*="corner labeled"]) .label:first-child + input:focus { + border-left-color: #85B7D9; +} + +/* Regular Label on Right */ + +.ui[class*="right labeled"].input > input { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; + border-right-color: transparent !important; +} + +.ui[class*="right labeled"].input > input + .label { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.ui[class*="right labeled"].input > input:focus { + border-right-color: #85B7D9 !important; +} + +/* Corner Label */ + +.ui.labeled.input .corner.label { + top: 1px; + right: 1px; + font-size: 0.64285714em; + border-radius: 0 0.28571429rem 0 0; +} + +/* Spacing with corner label */ + +.ui[class*="corner labeled"]:not([class*="left corner labeled"]).labeled.input > textarea, +.ui[class*="corner labeled"]:not([class*="left corner labeled"]).labeled.input > input { + padding-right: 2.5em !important; +} + +.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > textarea, +.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > input { + padding-right: 3.25em !important; +} + +.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > i.icon { + margin-right: 1.25em; +} + +/* Left Labeled */ + +.ui[class*="left corner labeled"].labeled.input > textarea, +.ui[class*="left corner labeled"].labeled.input > input { + padding-left: 2.5em !important; +} + +.ui[class*="left corner labeled"].icon.input > textarea, +.ui[class*="left corner labeled"].icon.input > input { + padding-left: 3.25em !important; +} + +.ui[class*="left corner labeled"].icon.input > i.icon { + margin-left: 1.25em; +} + +.ui.icon.input > textarea ~ i.icon { + height: 3em; +} + +:not(.field) > .ui.transparent.icon.input > textarea ~ i.icon { + height: 1.3em; +} + +/* Corner Label Position */ + +.ui.input > .ui.corner.label { + top: 1px; + right: 1px; +} + +.ui.input > .ui.left.corner.label { + right: auto; + left: 1px; +} + +/* Labeled and action input states */ + +.ui.form .field.error > .ui.action.input > .ui.button, +.ui.form .field.error > .ui.labeled.input:not([class*="corner labeled"]) > .ui.label, +.ui.action.input.error > .ui.button, +.ui.labeled.input.error:not([class*="corner labeled"]) > .ui.label { + border-top: 1px solid #E0B4B4; + border-bottom: 1px solid #E0B4B4; +} + +.ui.form .field.error > .ui[class*="left action"].input > .ui.button, +.ui.form .field.error > .ui.labeled.input:not(.right):not([class*="corner labeled"]) > .ui.label, +.ui[class*="left action"].input.error > .ui.button, +.ui.labeled.input.error:not(.right):not([class*="corner labeled"]) > .ui.label { + border-left: 1px solid #E0B4B4; +} + +.ui.form .field.error > .ui.action.input:not([class*="left action"]) > input + .ui.button, +.ui.form .field.error > .ui.right.labeled.input:not([class*="corner labeled"]) > input + .ui.label, +.ui.action.input.error:not([class*="left action"]) > input + .ui.button, +.ui.right.labeled.input.error:not([class*="corner labeled"]) > input + .ui.label { + border-right: 1px solid #E0B4B4; +} + +.ui.form .field.error > .ui.right.labeled.input:not([class*="corner labeled"]) > .ui.label:first-child, +.ui.right.labeled.input.error:not([class*="corner labeled"]) > .ui.label:first-child { + border-left: 1px solid #E0B4B4; +} + +.ui.form .field.info > .ui.action.input > .ui.button, +.ui.form .field.info > .ui.labeled.input:not([class*="corner labeled"]) > .ui.label, +.ui.action.input.info > .ui.button, +.ui.labeled.input.info:not([class*="corner labeled"]) > .ui.label { + border-top: 1px solid #A9D5DE; + border-bottom: 1px solid #A9D5DE; +} + +.ui.form .field.info > .ui[class*="left action"].input > .ui.button, +.ui.form .field.info > .ui.labeled.input:not(.right):not([class*="corner labeled"]) > .ui.label, +.ui[class*="left action"].input.info > .ui.button, +.ui.labeled.input.info:not(.right):not([class*="corner labeled"]) > .ui.label { + border-left: 1px solid #A9D5DE; +} + +.ui.form .field.info > .ui.action.input:not([class*="left action"]) > input + .ui.button, +.ui.form .field.info > .ui.right.labeled.input:not([class*="corner labeled"]) > input + .ui.label, +.ui.action.input.info:not([class*="left action"]) > input + .ui.button, +.ui.right.labeled.input.info:not([class*="corner labeled"]) > input + .ui.label { + border-right: 1px solid #A9D5DE; +} + +.ui.form .field.info > .ui.right.labeled.input:not([class*="corner labeled"]) > .ui.label:first-child, +.ui.right.labeled.input.info:not([class*="corner labeled"]) > .ui.label:first-child { + border-left: 1px solid #A9D5DE; +} + +.ui.form .field.success > .ui.action.input > .ui.button, +.ui.form .field.success > .ui.labeled.input:not([class*="corner labeled"]) > .ui.label, +.ui.action.input.success > .ui.button, +.ui.labeled.input.success:not([class*="corner labeled"]) > .ui.label { + border-top: 1px solid #A3C293; + border-bottom: 1px solid #A3C293; +} + +.ui.form .field.success > .ui[class*="left action"].input > .ui.button, +.ui.form .field.success > .ui.labeled.input:not(.right):not([class*="corner labeled"]) > .ui.label, +.ui[class*="left action"].input.success > .ui.button, +.ui.labeled.input.success:not(.right):not([class*="corner labeled"]) > .ui.label { + border-left: 1px solid #A3C293; +} + +.ui.form .field.success > .ui.action.input:not([class*="left action"]) > input + .ui.button, +.ui.form .field.success > .ui.right.labeled.input:not([class*="corner labeled"]) > input + .ui.label, +.ui.action.input.success:not([class*="left action"]) > input + .ui.button, +.ui.right.labeled.input.success:not([class*="corner labeled"]) > input + .ui.label { + border-right: 1px solid #A3C293; +} + +.ui.form .field.success > .ui.right.labeled.input:not([class*="corner labeled"]) > .ui.label:first-child, +.ui.right.labeled.input.success:not([class*="corner labeled"]) > .ui.label:first-child { + border-left: 1px solid #A3C293; +} + +.ui.form .field.warning > .ui.action.input > .ui.button, +.ui.form .field.warning > .ui.labeled.input:not([class*="corner labeled"]) > .ui.label, +.ui.action.input.warning > .ui.button, +.ui.labeled.input.warning:not([class*="corner labeled"]) > .ui.label { + border-top: 1px solid #C9BA9B; + border-bottom: 1px solid #C9BA9B; +} + +.ui.form .field.warning > .ui[class*="left action"].input > .ui.button, +.ui.form .field.warning > .ui.labeled.input:not(.right):not([class*="corner labeled"]) > .ui.label, +.ui[class*="left action"].input.warning > .ui.button, +.ui.labeled.input.warning:not(.right):not([class*="corner labeled"]) > .ui.label { + border-left: 1px solid #C9BA9B; +} + +.ui.form .field.warning > .ui.action.input:not([class*="left action"]) > input + .ui.button, +.ui.form .field.warning > .ui.right.labeled.input:not([class*="corner labeled"]) > input + .ui.label, +.ui.action.input.warning:not([class*="left action"]) > input + .ui.button, +.ui.right.labeled.input.warning:not([class*="corner labeled"]) > input + .ui.label { + border-right: 1px solid #C9BA9B; +} + +.ui.form .field.warning > .ui.right.labeled.input:not([class*="corner labeled"]) > .ui.label:first-child, +.ui.right.labeled.input.warning:not([class*="corner labeled"]) > .ui.label:first-child { + border-left: 1px solid #C9BA9B; +} + +/*-------------------- + Action + ---------------------*/ + +.ui.action.input > .button, +.ui.action.input > .buttons { + display: flex; + align-items: center; + flex: 0 0 auto; +} + +.ui.action.input > .button, +.ui.action.input > .buttons > .button { + padding-top: 0.78571429em; + padding-bottom: 0.78571429em; + margin: 0; +} + +/* Input when ui Left*/ + +.ui[class*="left action"].input > input { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-left-color: transparent; +} + +/* Input when ui Right*/ + +.ui.action.input:not([class*="left action"]) > input { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right-color: transparent; +} + +/* Button and Dropdown */ + +.ui.action.input > .dropdown:first-child, +.ui.action.input > .button:first-child, +.ui.action.input > .buttons:first-child > .button { + border-radius: 0.28571429rem 0 0 0.28571429rem; +} + +.ui.action.input > .dropdown:not(:first-child), +.ui.action.input > .button:not(:first-child), +.ui.action.input > .buttons:not(:first-child) > .button { + border-radius: 0; +} + +.ui.action.input > .dropdown:last-child, +.ui.action.input > .button:last-child, +.ui.action.input > .buttons:last-child > .button { + border-radius: 0 0.28571429rem 0.28571429rem 0; +} + +/* Input Focus */ + +.ui.action.input:not([class*="left action"]) > input:focus { + border-right-color: #85B7D9; +} + +.ui.ui[class*="left action"].input > input:focus { + border-left-color: #85B7D9; +} + +/*-------------------- + Inverted + ---------------------*/ + +/* Standard */ + +.ui.inverted.input > input { + border: none; +} + +/*-------------------- + Fluid + ---------------------*/ + +.ui.fluid.input { + display: flex; +} + +.ui.fluid.input > input { + width: 0 !important; +} + +/*-------------------- + Size +---------------------*/ + +.ui.input { + font-size: 1em; +} + +.ui.mini.input { + font-size: 0.78571429em; +} + +.ui.tiny.input { + font-size: 0.85714286em; +} + +.ui.small.input { + font-size: 0.92857143em; +} + +.ui.large.input { + font-size: 1.14285714em; +} + +.ui.big.input { + font-size: 1.28571429em; +} + +.ui.huge.input { + font-size: 1.42857143em; +} + +.ui.massive.input { + font-size: 1.71428571em; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Item + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Standard +*******************************/ + +/*-------------- + Item +---------------*/ + +.ui.items > .item { + display: flex; + margin: 1em 0; + width: 100%; + min-height: 0; + background: transparent; + padding: 0; + border: none; + border-radius: 0; + box-shadow: none; + transition: box-shadow 0.1s ease; + z-index: ''; +} + +.ui.items > .item a { + cursor: pointer; +} + +/*-------------- + Items +---------------*/ + +.ui.items { + margin: 1.5em 0; +} + +.ui.items:first-child { + margin-top: 0 !important; +} + +.ui.items:last-child { + margin-bottom: 0 !important; +} + +/*-------------- + Item +---------------*/ + +.ui.items > .item:after { + display: block; + content: ' '; + height: 0; + clear: both; + overflow: hidden; + visibility: hidden; +} + +.ui.items > .item:first-child { + margin-top: 0; +} + +.ui.items > .item:last-child { + margin-bottom: 0; +} + +/*-------------- + Images +---------------*/ + +.ui.items > .item > .image { + position: relative; + flex: 0 0 auto; + display: block; + float: none; + margin: 0; + padding: 0; + max-height: ''; + align-self: start; +} + +.ui.items > .item > .image > img { + display: block; + width: 100%; + height: auto; + border-radius: 0.125rem; + border: none; +} + +.ui.items > .item > .image:only-child > img { + border-radius: 0; +} + +/*-------------- + Content +---------------*/ + +.ui.items > .item > .content { + display: block; + flex: 1 1 auto; + background: none; + color: rgba(0, 0, 0, 0.87); + margin: 0; + padding: 0; + box-shadow: none; + font-size: 1em; + border: none; + border-radius: 0; +} + +.ui.items > .item > .content:after { + display: block; + content: ' '; + height: 0; + clear: both; + overflow: hidden; + visibility: hidden; +} + +.ui.items > .item > .image + .content { + min-width: 0; + width: auto; + display: block; + margin-left: 0; + align-self: start; + padding-left: 1.5em; +} + +.ui.items > .item > .content > .header { + display: inline-block; + margin: -0.21425em 0 0; + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + font-weight: bold; + color: rgba(0, 0, 0, 0.85); +} + +/* Default Header Size */ + +.ui.items > .item > .content > .header:not(.ui) { + font-size: 1.28571429em; +} + +/*-------------- + Floated +---------------*/ + +.ui.items > .item [class*="left floated"] { + float: left; +} + +.ui.items > .item [class*="right floated"] { + float: right; +} + +/*-------------- + Content Image +---------------*/ + +.ui.items > .item .content img { + align-self: center; + width: ''; +} + +.ui.items > .item img.avatar, +.ui.items > .item .avatar img { + width: ''; + height: ''; + border-radius: 500rem; +} + +/*-------------- + Description +---------------*/ + +.ui.items > .item > .content > .description { + margin-top: 0.6em; + max-width: auto; + font-size: 1em; + line-height: 1.4285em; + color: rgba(0, 0, 0, 0.87); +} + +/*-------------- + Paragraph +---------------*/ + +.ui.items > .item > .content p { + margin: 0 0 0.5em; +} + +.ui.items > .item > .content p:last-child { + margin-bottom: 0; +} + +/*-------------- + Meta +---------------*/ + +.ui.items > .item .meta { + margin: 0.5em 0 0.5em; + font-size: 1em; + line-height: 1em; + color: rgba(0, 0, 0, 0.6); +} + +.ui.items > .item .meta * { + margin-right: 0.3em; +} + +.ui.items > .item .meta :last-child { + margin-right: 0; +} + +.ui.items > .item .meta [class*="right floated"] { + margin-right: 0; + margin-left: 0.3em; +} + +/*-------------- + Links +---------------*/ + +/* Generic */ + +.ui.items > .item > .content a:not(.ui) { + color: ''; + transition: color 0.1s ease; +} + +.ui.items > .item > .content a:not(.ui):hover { + color: ''; +} + +/* Header */ + +.ui.items > .item > .content > a.header { + color: rgba(0, 0, 0, 0.85); +} + +.ui.items > .item > .content > a.header:hover { + color: #1e70bf; +} + +/* Meta */ + +.ui.items > .item .meta > a:not(.ui) { + color: rgba(0, 0, 0, 0.4); +} + +.ui.items > .item .meta > a:not(.ui):hover { + color: rgba(0, 0, 0, 0.87); +} + +/*-------------- + Labels +---------------*/ + +/*-----Star----- */ + +/* Icon */ + +.ui.items > .item > .content .favorite.icon { + cursor: pointer; + opacity: 0.75; + transition: color 0.1s ease; +} + +.ui.items > .item > .content .favorite.icon:hover { + opacity: 1; + color: #FFB70A; +} + +.ui.items > .item > .content .active.favorite.icon { + color: #FFE623; +} + +/*-----Like----- */ + +/* Icon */ + +.ui.items > .item > .content .like.icon { + cursor: pointer; + opacity: 0.75; + transition: color 0.1s ease; +} + +.ui.items > .item > .content .like.icon:hover { + opacity: 1; + color: #FF2733; +} + +.ui.items > .item > .content .active.like.icon { + color: #FF2733; +} + +/*---------------- + Extra Content +-----------------*/ + +.ui.items > .item .extra { + display: block; + position: relative; + background: none; + margin: 0.5rem 0 0; + width: 100%; + padding: 0 0 0; + top: 0; + left: 0; + color: rgba(0, 0, 0, 0.4); + box-shadow: none; + transition: color 0.1s ease; + border-top: none; +} + +.ui.items > .item .extra > * { + margin: 0.25rem 0.5rem 0.25rem 0; +} + +.ui.items > .item .extra > [class*="right floated"] { + margin: 0.25rem 0 0.25rem 0.5rem; +} + +.ui.items > .item .extra:after { + display: block; + content: ' '; + height: 0; + clear: both; + overflow: hidden; + visibility: hidden; +} + +/******************************* + Responsive +*******************************/ + +/* Default Image Width */ + +.ui.items > .item > .image:not(.ui) { + width: 175px; +} + +/* Tablet Only */ + +@media only screen and (min-width: 768px) and (max-width: 991.98px) { + .ui.items > .item { + margin: 1em 0; + } + + .ui.items > .item > .image:not(.ui) { + width: 150px; + } + + .ui.items > .item > .image + .content { + display: block; + padding: 0 0 0 1em; + } +} + +/* Mobile Only */ + +@media only screen and (max-width: 767.98px) { + .ui.items:not(.unstackable) > .item { + flex-direction: column; + margin: 2em 0; + } + + .ui.items:not(.unstackable) > .item > .image { + display: block; + margin-left: auto; + margin-right: auto; + } + + .ui.items:not(.unstackable) > .item > .image, + .ui.items:not(.unstackable) > .item > .image > img { + max-width: 100% !important; + width: auto !important; + max-height: 250px !important; + } + + .ui.items:not(.unstackable) > .item > .image + .content { + display: block; + padding: 1.5em 0 0; + } +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Aligned + --------------------*/ + +.ui.items > .item > .image + [class*="top aligned"].content { + align-self: flex-start; +} + +.ui.items > .item > .image + [class*="middle aligned"].content { + align-self: center; +} + +.ui.items > .item > .image + [class*="bottom aligned"].content { + align-self: flex-end; +} + +/*-------------- + Relaxed + ---------------*/ + +.ui.relaxed.items > .item { + margin: 1.5em 0; +} + +.ui[class*="very relaxed"].items > .item { + margin: 2em 0; +} + +/*------------------- + Divided + --------------------*/ + +.ui.divided.items > .item { + border-top: 1px solid rgba(34, 36, 38, 0.15); + margin: 0; + padding: 1em 0; +} + +.ui.divided.items > .item:first-child { + border-top: none; + margin-top: 0 !important; + padding-top: 0 !important; +} + +.ui.divided.items > .item:last-child { + margin-bottom: 0 !important; + padding-bottom: 0 !important; +} + +/* Relaxed Divided */ + +.ui.relaxed.divided.items > .item { + margin: 0; + padding: 1.5em 0; +} + +.ui[class*="very relaxed"].divided.items > .item { + margin: 0; + padding: 2em 0; +} + +/*------------------- + Link + --------------------*/ + +.ui.items a.item:hover, +.ui.link.items > .item:hover { + cursor: pointer; +} + +.ui.items a.item:hover .content .header, +.ui.link.items > .item:hover .content .header { + color: #1e70bf; +} + +/*-------------- + Size +---------------*/ + +.ui.items > .item { + font-size: 1em; +} + +.ui.mini.items > .item { + font-size: 0.78571429em; +} + +.ui.tiny.items > .item { + font-size: 0.85714286em; +} + +.ui.small.items > .item { + font-size: 0.92857143em; +} + +.ui.large.items > .item { + font-size: 1.14285714em; +} + +.ui.big.items > .item { + font-size: 1.28571429em; +} + +.ui.huge.items > .item { + font-size: 1.42857143em; +} + +.ui.massive.items > .item { + font-size: 1.71428571em; +} + +/*--------------- + Unstackable + ----------------*/ + +@media only screen and (max-width: 767.98px) { + .ui.unstackable.items > .item > .image, + .ui.unstackable.items > .item > .image > img { + width: 125px !important; + } +} + +/*-------------- + Inverted + ---------------*/ + +.ui.inverted.items > .item { + background: transparent; +} + +.ui.inverted.items > .item > .content { + background: none; + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.items > .item .extra { + background: none; +} + +.ui.inverted.items > .item > .content > .header { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.items > .item > .content > .description { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.items > .item .meta { + color: rgba(255, 255, 255, 0.8); +} + +.ui.inverted.items > .item > .content a:not(.ui) { + color: #57a4ef; +} + +.ui.inverted.items > .item > .content a:not(.ui):hover { + color: #4183C4; +} + +.ui.inverted.items > .item > .content > a.header { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.items > .item > .content > a.header:hover { + color: #ffffff; +} + +.ui.inverted.items > .item .meta > a:not(.ui) { + color: rgba(255, 255, 255, 0.7); +} + +.ui.inverted.items > .item .meta > a:not(.ui):hover { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.items > .item > .content .favorite.icon:hover { + color: #ffc63d; +} + +.ui.inverted.items > .item > .content .active.favorite.icon { + color: #ffec56; +} + +.ui.inverted.items > .item > .content .like.icon:hover { + color: #ff5a63; +} + +.ui.inverted.items > .item > .content .active.like.icon { + color: #ff5a63; +} + +.ui.inverted.items > .item .extra { + color: rgba(255, 255, 255, 0.7); +} + +.ui.inverted.items a.item:hover .content .header, +.ui.inverted.link.items > .item:hover .content .header { + color: #ffffff; +} + +.ui.inverted.divided.items > .item { + border-top: 1px solid rgba(255, 255, 255, 0.1); +} + +.ui.inverted.divided.items > .item:first-child { + border-top: none; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + User Variable Overrides +*******************************/ +/*! + * # Fomantic-UI - Label + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Label +*******************************/ + +.ui.label { + display: inline-block; + line-height: 1; + vertical-align: baseline; + margin: 0 0.14285714em; + background-color: #E8E8E8; + background-image: none; + padding: 0.5833em 0.833em; + color: rgba(0, 0, 0, 0.6); + text-transform: none; + font-weight: bold; + border: 0 solid transparent; + border-radius: 0.28571429rem; + transition: background 0.1s ease; +} + +.ui.label:first-child { + margin-left: 0; +} + +.ui.label:last-child { + margin-right: 0; +} + +/* Link */ + +a.ui.label { + cursor: pointer; +} + +/* Inside Link */ + +.ui.label > a { + cursor: pointer; + color: inherit; + opacity: 0.5; + transition: 0.1s opacity ease; +} + +.ui.label > a:hover { + opacity: 1; +} + +/* Image */ + +.ui.label > img { + width: auto !important; + vertical-align: middle; + height: 2.1666em; +} + +/* Icon */ + +.ui.left.icon.label > .icon, +.ui.label > .icon { + width: auto; + margin: 0 0.75em 0 0; +} + +/* Detail */ + +.ui.label > .detail { + display: inline-block; + vertical-align: top; + font-weight: bold; + margin-left: 1em; + opacity: 0.8; +} + +.ui.label > .detail .icon { + margin: 0 0.25em 0 0; +} + +/* Removable label */ + +.ui.label > .close.icon, +.ui.label > .delete.icon { + cursor: pointer; + font-size: 0.92857143em; + opacity: 0.5; + transition: background 0.1s ease; +} + +.ui.label > .close.icon:hover, +.ui.label > .delete.icon:hover { + opacity: 1; +} + +/* Backward compatible positioning */ + +.ui.label.left.icon > .close.icon, +.ui.label.left.icon > .delete.icon { + margin: 0 0.5em 0 0; +} + +.ui.label:not(.icon) > .close.icon, +.ui.label:not(.icon) > .delete.icon { + margin: 0 0 0 0.5em; +} + +/* Label for only an icon */ + +.ui.icon.label > .icon { + margin: 0 auto; +} + +/* Right Side Icon */ + +.ui.right.icon.label > .icon { + margin: 0 0 0 0.75em; +} + +/*------------------- + Group +--------------------*/ + +.ui.labels > .label { + margin: 0 0.5em 0.5em 0; +} + +/*------------------- + Coupling +--------------------*/ + +.ui.header > .ui.label { + margin-top: -0.29165em; +} + +/* Remove border radius on attached segment */ + +.ui.attached.segment > .ui.top.left.attached.label, +.ui.bottom.attached.segment > .ui.top.left.attached.label { + border-top-left-radius: 0; +} + +.ui.attached.segment > .ui.top.right.attached.label, +.ui.bottom.attached.segment > .ui.top.right.attached.label { + border-top-right-radius: 0; +} + +.ui.top.attached.segment > .ui.bottom.left.attached.label { + border-bottom-left-radius: 0; +} + +.ui.top.attached.segment > .ui.bottom.right.attached.label { + border-bottom-right-radius: 0; +} + +/* Padding on next content after a label */ + +.ui.top.attached.label ~ .ui.bottom.attached.label + :not(.attached), +.ui.top.attached.label + :not(.attached) { + margin-top: 2rem !important; +} + +.ui.bottom.attached.label ~ :last-child:not(.attached) { + margin-top: 0; + margin-bottom: 2rem !important; +} + +.ui.segment:not(.basic) > .ui.top.attached.label { + margin-top: -1px; +} + +.ui.segment:not(.basic) > .ui.bottom.attached.label { + margin-bottom: -1px; +} + +.ui.segment:not(.basic) > .ui.attached.label:not(.right) { + margin-left: -1px; +} + +.ui.segment:not(.basic) > .ui.right.attached.label { + margin-right: -1px; +} + +.ui.segment:not(.basic) > .ui.attached.label:not(.left):not(.right) { + width: calc(100% + 2px); +} + +/******************************* + Types +*******************************/ + +.ui.image.label { + width: auto; + margin-top: 0; + margin-bottom: 0; + max-width: 9999px; + vertical-align: baseline; + text-transform: none; + background: #E8E8E8; + padding: 0.5833em 0.833em 0.5833em 0.5em; + border-radius: 0.28571429rem; + box-shadow: none; +} + +.ui.image.label.attached:not(.basic) { + padding: 0.5833em 0.833em 0.5833em 0.5em; +} + +.ui.image.label img { + display: inline-block; + vertical-align: top; + height: 2.1666em; + margin: -0.5833em 0.5em -0.5833em -0.5em; + border-radius: 0.28571429rem 0 0 0.28571429rem; +} + +.ui.image.label .detail { + background: rgba(0, 0, 0, 0.1); + margin: -0.5833em -0.833em -0.5833em 0.5em; + padding: 0.5833em 0.833em; + border-radius: 0 0.28571429rem 0.28571429rem 0; +} + +.ui.bottom.attached.image.label:not(.right) > img, +.ui.top.right.attached.image.label > img { + border-top-left-radius: 0; +} + +.ui.top.attached.image.label:not(.right) > img, +.ui.bottom.right.attached.image.label > img { + border-bottom-left-radius: 0; +} + +/*------------------- + Tag +--------------------*/ + +.ui.tag.labels .label, +.ui.tag.label { + margin-left: 1em; + position: relative; + padding-left: 1.5em; + padding-right: 1.5em; + border-radius: 0 0.28571429rem 0.28571429rem 0; + transition: none; +} + +.ui.tag.labels .label:before, +.ui.tag.label:before { + position: absolute; + transform: translateY(-50%) translateX(50%) rotate(-45deg); + top: 50%; + right: 100%; + content: ''; + background-color: inherit; + background-image: none; + width: 1.56em; + height: 1.56em; + transition: none; +} + +.ui.tag.labels .label:after, +.ui.tag.label:after { + position: absolute; + content: ''; + top: 50%; + left: -0.25em; + margin-top: -0.25em; + background-color: #FFFFFF; + width: 0.5em; + height: 0.5em; + box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3); + border-radius: 500rem; +} + +.ui.basic.tag.labels .label:before, +.ui.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + right: calc(100% + 1px); +} + +.ui.basic.tag.labels .label:after, +.ui.basic.tag.label:after { + box-shadow: 0 -1px 3px 0 rgba(0, 0, 0, 0.8); +} + +/*------------------- + Corner Label +--------------------*/ + +.ui.corner.label { + position: absolute; + top: 0; + right: 0; + margin: 0; + padding: 0; + text-align: center; + border-color: #E8E8E8; + width: 4em; + height: 4em; + z-index: 1; + transition: border-color 0.1s ease; +} + +/* Icon Label */ + +.ui.corner.label { + background-color: transparent !important; +} + +.ui.corner.label:after { + position: absolute; + content: ""; + right: 0; + top: 0; + z-index: -1; + width: 0; + height: 0; + background-color: transparent; + border-top: 0 solid transparent; + border-right: 4em solid transparent; + border-bottom: 4em solid transparent; + border-left: 0 solid transparent; + border-right-color: inherit; + transition: border-color 0.1s ease; +} + +.ui.corner.label .icon { + cursor: inherit; + position: absolute; + top: 0.64285714em; + left: auto; + right: 0.57142857em; + font-size: 1.14285714em; + margin: 0; +} + +/* Left Corner */ + +.ui.left.corner.label, +.ui.left.corner.label:after { + right: auto; + left: 0; +} + +.ui.left.corner.label:after { + border-top: 4em solid transparent; + border-right: 4em solid transparent; + border-bottom: 0 solid transparent; + border-left: 0 solid transparent; + border-top-color: inherit; +} + +.ui.left.corner.label .icon { + left: 0.57142857em; + right: auto; +} + +/* Segment */ + +.ui.segment > .ui.corner.label { + top: -1px; + right: -1px; +} + +.ui.segment > .ui.left.corner.label { + right: auto; + left: -1px; +} + +/*------------------- + Ribbon + --------------------*/ + +.ui.ribbon.label { + position: relative; + margin: 0; + min-width: -webkit-max-content; + min-width: -moz-max-content; + min-width: max-content; + border-radius: 0 0.28571429rem 0.28571429rem 0; + border-color: rgba(0, 0, 0, 0.15); +} + +.ui.ribbon.label:after { + position: absolute; + content: ''; + top: 100%; + left: 0; + background-color: transparent; + border-style: solid; + border-width: 0 1.2em 1.2em 0; + border-color: transparent; + border-right-color: inherit; + width: 0; + height: 0; +} + +/* Positioning */ + +.ui.ribbon.label { + left: calc(-1rem - 1.2em); + margin-right: -1.2em; + padding-left: calc(1rem + 1.2em); + padding-right: 1.2em; +} + +.ui[class*="right ribbon"].label { + left: calc(100% + 1rem + 1.2em); + padding-left: 1.2em; + padding-right: calc(1rem + 1.2em); +} + +.ui.basic.ribbon.label { + padding-top: calc(0.5833em - 1px); + padding-bottom: calc(0.5833em - 1px); +} + +.ui.basic.ribbon.label:not([class*="right ribbon"]) { + padding-left: calc(1rem + 1.2em - 1px); + padding-right: calc(1.2em - 1px); +} + +.ui.basic[class*="right ribbon"].label { + padding-left: calc(1.2em - 1px); + padding-right: calc(1rem + 1.2em - 1px); +} + +.ui.basic.ribbon.label::after { + top: calc(100% + 1px); +} + +.ui.basic.ribbon.label:not([class*="right ribbon"])::after { + left: -1px; +} + +.ui.basic[class*="right ribbon"].label::after { + right: -1px; +} + +/* Right Ribbon */ + +.ui[class*="right ribbon"].label { + text-align: left; + transform: translateX(-100%); + border-radius: 0.28571429rem 0 0 0.28571429rem; +} + +.ui[class*="right ribbon"].label:after { + left: auto; + right: 0; + border-style: solid; + border-width: 1.2em 1.2em 0 0; + border-color: transparent; + border-top-color: inherit; +} + +/* Inside Table */ + +.ui.image > .ribbon.label, +.ui.card .image > .ribbon.label { + position: absolute; + top: 1rem; +} + +.ui.card .image > .ui.ribbon.label, +.ui.image > .ui.ribbon.label { + left: calc(0.05rem - 1.2em); +} + +.ui.card .image > .ui[class*="right ribbon"].label, +.ui.image > .ui[class*="right ribbon"].label { + left: calc(100% + -0.05rem + 1.2em); + padding-left: 0.833em; +} + +/* Inside Table */ + +.ui.table td > .ui.ribbon.label { + left: calc(-1em - 1.2em); +} + +.ui.table td > .ui[class*="right ribbon"].label { + left: calc(100% + 1em + 1.2em); + padding-left: 0.833em; +} + +/*------------------- + Attached + --------------------*/ + +.ui[class*="top attached"].label, +.ui.attached.label { + width: 100%; + position: absolute; + margin: 0; + top: 0; + left: 0; + padding: 0.75em 1em; + border-radius: 0.21428571rem 0.21428571rem 0 0; +} + +.ui[class*="bottom attached"].label { + top: auto; + bottom: 0; + border-radius: 0 0 0.21428571rem 0.21428571rem; +} + +.ui[class*="top left attached"].label { + width: auto; + margin-top: 0; + border-radius: 0.21428571rem 0 0.28571429rem 0; +} + +.ui[class*="top right attached"].label { + width: auto; + left: auto; + right: 0; + border-radius: 0 0.21428571rem 0 0.28571429rem; +} + +.ui[class*="bottom left attached"].label { + width: auto; + top: auto; + bottom: 0; + border-radius: 0 0.28571429rem 0 0.21428571rem; +} + +.ui[class*="bottom right attached"].label { + top: auto; + bottom: 0; + left: auto; + right: 0; + width: auto; + border-radius: 0.28571429rem 0 0.21428571rem 0; +} + +/******************************* + States +*******************************/ + +/*------------------- + Disabled +--------------------*/ + +.ui.label.disabled { + opacity: 0.5; +} + +/*------------------- + Hover +--------------------*/ + +.ui.labels a.label:hover, +a.ui.label:hover { + background-color: #E0E0E0; + border-color: #E0E0E0; + background-image: none; + color: rgba(0, 0, 0, 0.8); +} + +.ui.labels a.label:hover:before, +a.ui.label:hover:before { + color: rgba(0, 0, 0, 0.8); +} + +/*------------------- + Active +--------------------*/ + +.ui.active.label { + background-color: #D0D0D0; + border-color: #D0D0D0; + background-image: none; + color: rgba(0, 0, 0, 0.95); +} + +.ui.active.label:before { + background-color: #D0D0D0; + background-image: none; + color: rgba(0, 0, 0, 0.95); +} + +/*------------------- + Active Hover +--------------------*/ + +.ui.labels a.active.label:hover, +a.ui.active.label:hover { + background-color: #C8C8C8; + border-color: #C8C8C8; + background-image: none; + color: rgba(0, 0, 0, 0.95); +} + +.ui.labels a.active.label:hover:before, +a.ui.active.label:hover:before { + background-color: #C8C8C8; + background-image: none; + color: rgba(0, 0, 0, 0.95); +} + +/*------------------- + Visible +--------------------*/ + +.ui.labels.visible .label, +.ui.label.visible:not(.dropdown) { + display: inline-block !important; +} + +/*------------------- + Hidden +--------------------*/ + +.ui.labels.hidden .label, +.ui.label.hidden { + display: none !important; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Basic + --------------------*/ + +.ui.basic.labels .label, +.ui.basic.label { + background: none #FFFFFF; + border: 1px solid rgba(34, 36, 38, 0.15); + color: rgba(0, 0, 0, 0.87); + box-shadow: none; + padding-top: calc(0.5833em - 1px); + padding-bottom: calc(0.5833em - 1px); + padding-right: calc(0.833em - 1px); +} + +.ui.basic.labels:not(.tag):not(.image):not(.ribbon) .label, +.ui.basic.label:not(.tag):not(.image):not(.ribbon) { + padding-left: calc(0.833em - 1px); +} + +.ui.basic.image.label { + padding-left: calc(0.5em - 1px); +} + +/* Link */ + +.ui.basic.labels a.label:hover, +a.ui.basic.label:hover { + text-decoration: none; + background: none #FFFFFF; + color: #1e70bf; + box-shadow: none; +} + +/* Pointing */ + +.ui.basic.pointing.label:before { + border-color: inherit; +} + +/*------------------- + Fluid + --------------------*/ + +.ui.label.fluid, +.ui.fluid.labels > .label { + width: 100%; + box-sizing: border-box; +} + +/*------------------- + Inverted + --------------------*/ + +.ui.inverted.labels .label, +.ui.inverted.label { + color: rgba(255, 255, 255, 0.9); + background-color: #b5b5b5; +} + +.ui.inverted.corner.label { + border-color: #b5b5b5; +} + +.ui.inverted.corner.label:hover { + border-color: #E8E8E8; + transition: none; +} + +.ui.inverted.basic.labels .label, +.ui.inverted.basic.label, +.ui.inverted.basic.label:hover { + border-color: rgba(255, 255, 255, 0.5); + background: #1B1C1D; +} + +.ui.inverted.basic.label:hover { + color: #4183C4; +} + +/*------------------- + Colors +--------------------*/ + +.ui.primary.labels .label, +.ui.ui.ui.primary.label { + background-color: #2185D0; + border-color: #2185D0; + color: rgba(255, 255, 255, 0.9); +} + +/* Link */ + +.ui.primary.labels a.label:hover, +a.ui.ui.ui.primary.label:hover { + background-color: #1678c2; + border-color: #1678c2; + color: #FFFFFF; +} + +/* Ribbon */ + +.ui.ui.ui.primary.ribbon.label { + border-color: #1a69a4; +} + +/* Basic */ + +.ui.basic.labels .primary.label, +.ui.ui.ui.basic.primary.label { + background: none #FFFFFF; + border-color: #2185D0; + color: #2185D0; +} + +.ui.basic.labels a.primary.label:hover, +a.ui.ui.ui.basic.primary.label:hover { + background: none #FFFFFF; + border-color: #1678c2; + color: #1678c2; +} + +/* Inverted */ + +.ui.inverted.labels .primary.label, +.ui.ui.ui.inverted.primary.label { + background-color: #54C8FF; + border-color: #54C8FF; + color: #1B1C1D; +} + +/* Inverted Link */ + +.ui.inverted.labels a.primary.label:hover, +a.ui.ui.ui.inverted.primary.label:hover { + background-color: #21b8ff; + border-color: #21b8ff; + color: #1B1C1D; +} + +/* Inverted Ribbon */ + +.ui.ui.ui.inverted.primary.ribbon.label { + border-color: #21b8ff; +} + +/* Inverted Basic */ + +.ui.inverted.basic.labels .primary.label, +.ui.ui.ui.inverted.basic.primary.label { + background-color: #1B1C1D; + border-color: #54C8FF; + color: #54C8FF; +} + +.ui.inverted.basic.labels a.primary.label:hover, +a.ui.ui.ui.inverted.basic.primary.label:hover { + border-color: #21b8ff; + background-color: #1B1C1D; + color: #21b8ff; +} + +/* Inverted Basic Tags */ + +.ui.inverted.basic.tag.labels .primary.label, +.ui.ui.ui.inverted.primary.basic.tag.label { + border: 1px solid #54C8FF; +} + +.ui.inverted.basic.tag.labels .primary.label:before, +.ui.ui.ui.inverted.primary.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + background-color: #1B1C1D; + right: calc(100% + 1px); +} + +.ui.secondary.labels .label, +.ui.ui.ui.secondary.label { + background-color: #1B1C1D; + border-color: #1B1C1D; + color: rgba(255, 255, 255, 0.9); +} + +/* Link */ + +.ui.secondary.labels a.label:hover, +a.ui.ui.ui.secondary.label:hover { + background-color: #27292a; + border-color: #27292a; + color: #FFFFFF; +} + +/* Ribbon */ + +.ui.ui.ui.secondary.ribbon.label { + border-color: #020203; +} + +/* Basic */ + +.ui.basic.labels .secondary.label, +.ui.ui.ui.basic.secondary.label { + background: none #FFFFFF; + border-color: #1B1C1D; + color: #1B1C1D; +} + +.ui.basic.labels a.secondary.label:hover, +a.ui.ui.ui.basic.secondary.label:hover { + background: none #FFFFFF; + border-color: #27292a; + color: #27292a; +} + +/* Inverted */ + +.ui.inverted.labels .secondary.label, +.ui.ui.ui.inverted.secondary.label { + background-color: #545454; + border-color: #545454; + color: #1B1C1D; +} + +/* Inverted Link */ + +.ui.inverted.labels a.secondary.label:hover, +a.ui.ui.ui.inverted.secondary.label:hover { + background-color: #6e6e6e; + border-color: #6e6e6e; + color: #1B1C1D; +} + +/* Inverted Ribbon */ + +.ui.ui.ui.inverted.secondary.ribbon.label { + border-color: #3b3b3b; +} + +/* Inverted Basic */ + +.ui.inverted.basic.labels .secondary.label, +.ui.ui.ui.inverted.basic.secondary.label { + background-color: #1B1C1D; + border-color: #545454; + color: #545454; +} + +.ui.inverted.basic.labels a.secondary.label:hover, +a.ui.ui.ui.inverted.basic.secondary.label:hover { + border-color: #6e6e6e; + background-color: #1B1C1D; + color: #6e6e6e; +} + +/* Inverted Basic Tags */ + +.ui.inverted.basic.tag.labels .secondary.label, +.ui.ui.ui.inverted.secondary.basic.tag.label { + border: 1px solid #545454; +} + +.ui.inverted.basic.tag.labels .secondary.label:before, +.ui.ui.ui.inverted.secondary.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + background-color: #1B1C1D; + right: calc(100% + 1px); +} + +.ui.red.labels .label, +.ui.ui.ui.red.label { + background-color: #DB2828; + border-color: #DB2828; + color: #FFFFFF; +} + +/* Link */ + +.ui.red.labels a.label:hover, +a.ui.ui.ui.red.label:hover { + background-color: #d01919; + border-color: #d01919; + color: #FFFFFF; +} + +/* Ribbon */ + +.ui.ui.ui.red.ribbon.label { + border-color: #b21e1e; +} + +/* Basic */ + +.ui.basic.labels .red.label, +.ui.ui.ui.basic.red.label { + background: none #FFFFFF; + border-color: #DB2828; + color: #DB2828; +} + +.ui.basic.labels a.red.label:hover, +a.ui.ui.ui.basic.red.label:hover { + background: none #FFFFFF; + border-color: #d01919; + color: #d01919; +} + +/* Inverted */ + +.ui.inverted.labels .red.label, +.ui.ui.ui.inverted.red.label { + background-color: #FF695E; + border-color: #FF695E; + color: #1B1C1D; +} + +/* Inverted Link */ + +.ui.inverted.labels a.red.label:hover, +a.ui.ui.ui.inverted.red.label:hover { + background-color: #ff392b; + border-color: #ff392b; + color: #1B1C1D; +} + +/* Inverted Ribbon */ + +.ui.ui.ui.inverted.red.ribbon.label { + border-color: #ff392b; +} + +/* Inverted Basic */ + +.ui.inverted.basic.labels .red.label, +.ui.ui.ui.inverted.basic.red.label { + background-color: #1B1C1D; + border-color: #FF695E; + color: #FF695E; +} + +.ui.inverted.basic.labels a.red.label:hover, +a.ui.ui.ui.inverted.basic.red.label:hover { + border-color: #ff392b; + background-color: #1B1C1D; + color: #ff392b; +} + +/* Inverted Basic Tags */ + +.ui.inverted.basic.tag.labels .red.label, +.ui.ui.ui.inverted.red.basic.tag.label { + border: 1px solid #FF695E; +} + +.ui.inverted.basic.tag.labels .red.label:before, +.ui.ui.ui.inverted.red.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + background-color: #1B1C1D; + right: calc(100% + 1px); +} + +.ui.orange.labels .label, +.ui.ui.ui.orange.label { + background-color: #F2711C; + border-color: #F2711C; + color: #FFFFFF; +} + +/* Link */ + +.ui.orange.labels a.label:hover, +a.ui.ui.ui.orange.label:hover { + background-color: #f26202; + border-color: #f26202; + color: #FFFFFF; +} + +/* Ribbon */ + +.ui.ui.ui.orange.ribbon.label { + border-color: #cf590c; +} + +/* Basic */ + +.ui.basic.labels .orange.label, +.ui.ui.ui.basic.orange.label { + background: none #FFFFFF; + border-color: #F2711C; + color: #F2711C; +} + +.ui.basic.labels a.orange.label:hover, +a.ui.ui.ui.basic.orange.label:hover { + background: none #FFFFFF; + border-color: #f26202; + color: #f26202; +} + +/* Inverted */ + +.ui.inverted.labels .orange.label, +.ui.ui.ui.inverted.orange.label { + background-color: #FF851B; + border-color: #FF851B; + color: #1B1C1D; +} + +/* Inverted Link */ + +.ui.inverted.labels a.orange.label:hover, +a.ui.ui.ui.inverted.orange.label:hover { + background-color: #e76b00; + border-color: #e76b00; + color: #1B1C1D; +} + +/* Inverted Ribbon */ + +.ui.ui.ui.inverted.orange.ribbon.label { + border-color: #e76b00; +} + +/* Inverted Basic */ + +.ui.inverted.basic.labels .orange.label, +.ui.ui.ui.inverted.basic.orange.label { + background-color: #1B1C1D; + border-color: #FF851B; + color: #FF851B; +} + +.ui.inverted.basic.labels a.orange.label:hover, +a.ui.ui.ui.inverted.basic.orange.label:hover { + border-color: #e76b00; + background-color: #1B1C1D; + color: #e76b00; +} + +/* Inverted Basic Tags */ + +.ui.inverted.basic.tag.labels .orange.label, +.ui.ui.ui.inverted.orange.basic.tag.label { + border: 1px solid #FF851B; +} + +.ui.inverted.basic.tag.labels .orange.label:before, +.ui.ui.ui.inverted.orange.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + background-color: #1B1C1D; + right: calc(100% + 1px); +} + +.ui.yellow.labels .label, +.ui.ui.ui.yellow.label { + background-color: #FBBD08; + border-color: #FBBD08; + color: #FFFFFF; +} + +/* Link */ + +.ui.yellow.labels a.label:hover, +a.ui.ui.ui.yellow.label:hover { + background-color: #eaae00; + border-color: #eaae00; + color: #FFFFFF; +} + +/* Ribbon */ + +.ui.ui.ui.yellow.ribbon.label { + border-color: #cd9903; +} + +/* Basic */ + +.ui.basic.labels .yellow.label, +.ui.ui.ui.basic.yellow.label { + background: none #FFFFFF; + border-color: #FBBD08; + color: #FBBD08; +} + +.ui.basic.labels a.yellow.label:hover, +a.ui.ui.ui.basic.yellow.label:hover { + background: none #FFFFFF; + border-color: #eaae00; + color: #eaae00; +} + +/* Inverted */ + +.ui.inverted.labels .yellow.label, +.ui.ui.ui.inverted.yellow.label { + background-color: #FFE21F; + border-color: #FFE21F; + color: #1B1C1D; +} + +/* Inverted Link */ + +.ui.inverted.labels a.yellow.label:hover, +a.ui.ui.ui.inverted.yellow.label:hover { + background-color: #ebcd00; + border-color: #ebcd00; + color: #1B1C1D; +} + +/* Inverted Ribbon */ + +.ui.ui.ui.inverted.yellow.ribbon.label { + border-color: #ebcd00; +} + +/* Inverted Basic */ + +.ui.inverted.basic.labels .yellow.label, +.ui.ui.ui.inverted.basic.yellow.label { + background-color: #1B1C1D; + border-color: #FFE21F; + color: #FFE21F; +} + +.ui.inverted.basic.labels a.yellow.label:hover, +a.ui.ui.ui.inverted.basic.yellow.label:hover { + border-color: #ebcd00; + background-color: #1B1C1D; + color: #ebcd00; +} + +/* Inverted Basic Tags */ + +.ui.inverted.basic.tag.labels .yellow.label, +.ui.ui.ui.inverted.yellow.basic.tag.label { + border: 1px solid #FFE21F; +} + +.ui.inverted.basic.tag.labels .yellow.label:before, +.ui.ui.ui.inverted.yellow.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + background-color: #1B1C1D; + right: calc(100% + 1px); +} + +.ui.olive.labels .label, +.ui.ui.ui.olive.label { + background-color: #B5CC18; + border-color: #B5CC18; + color: #FFFFFF; +} + +/* Link */ + +.ui.olive.labels a.label:hover, +a.ui.ui.ui.olive.label:hover { + background-color: #a7bd0d; + border-color: #a7bd0d; + color: #FFFFFF; +} + +/* Ribbon */ + +.ui.ui.ui.olive.ribbon.label { + border-color: #8d9e13; +} + +/* Basic */ + +.ui.basic.labels .olive.label, +.ui.ui.ui.basic.olive.label { + background: none #FFFFFF; + border-color: #B5CC18; + color: #B5CC18; +} + +.ui.basic.labels a.olive.label:hover, +a.ui.ui.ui.basic.olive.label:hover { + background: none #FFFFFF; + border-color: #a7bd0d; + color: #a7bd0d; +} + +/* Inverted */ + +.ui.inverted.labels .olive.label, +.ui.ui.ui.inverted.olive.label { + background-color: #D9E778; + border-color: #D9E778; + color: #1B1C1D; +} + +/* Inverted Link */ + +.ui.inverted.labels a.olive.label:hover, +a.ui.ui.ui.inverted.olive.label:hover { + background-color: #d2e745; + border-color: #d2e745; + color: #1B1C1D; +} + +/* Inverted Ribbon */ + +.ui.ui.ui.inverted.olive.ribbon.label { + border-color: #cddf4d; +} + +/* Inverted Basic */ + +.ui.inverted.basic.labels .olive.label, +.ui.ui.ui.inverted.basic.olive.label { + background-color: #1B1C1D; + border-color: #D9E778; + color: #D9E778; +} + +.ui.inverted.basic.labels a.olive.label:hover, +a.ui.ui.ui.inverted.basic.olive.label:hover { + border-color: #d2e745; + background-color: #1B1C1D; + color: #d2e745; +} + +/* Inverted Basic Tags */ + +.ui.inverted.basic.tag.labels .olive.label, +.ui.ui.ui.inverted.olive.basic.tag.label { + border: 1px solid #D9E778; +} + +.ui.inverted.basic.tag.labels .olive.label:before, +.ui.ui.ui.inverted.olive.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + background-color: #1B1C1D; + right: calc(100% + 1px); +} + +.ui.green.labels .label, +.ui.ui.ui.green.label { + background-color: #21BA45; + border-color: #21BA45; + color: #FFFFFF; +} + +/* Link */ + +.ui.green.labels a.label:hover, +a.ui.ui.ui.green.label:hover { + background-color: #16ab39; + border-color: #16ab39; + color: #FFFFFF; +} + +/* Ribbon */ + +.ui.ui.ui.green.ribbon.label { + border-color: #198f35; +} + +/* Basic */ + +.ui.basic.labels .green.label, +.ui.ui.ui.basic.green.label { + background: none #FFFFFF; + border-color: #21BA45; + color: #21BA45; +} + +.ui.basic.labels a.green.label:hover, +a.ui.ui.ui.basic.green.label:hover { + background: none #FFFFFF; + border-color: #16ab39; + color: #16ab39; +} + +/* Inverted */ + +.ui.inverted.labels .green.label, +.ui.ui.ui.inverted.green.label { + background-color: #2ECC40; + border-color: #2ECC40; + color: #1B1C1D; +} + +/* Inverted Link */ + +.ui.inverted.labels a.green.label:hover, +a.ui.ui.ui.inverted.green.label:hover { + background-color: #1ea92e; + border-color: #1ea92e; + color: #1B1C1D; +} + +/* Inverted Ribbon */ + +.ui.ui.ui.inverted.green.ribbon.label { + border-color: #25a233; +} + +/* Inverted Basic */ + +.ui.inverted.basic.labels .green.label, +.ui.ui.ui.inverted.basic.green.label { + background-color: #1B1C1D; + border-color: #2ECC40; + color: #2ECC40; +} + +.ui.inverted.basic.labels a.green.label:hover, +a.ui.ui.ui.inverted.basic.green.label:hover { + border-color: #1ea92e; + background-color: #1B1C1D; + color: #1ea92e; +} + +/* Inverted Basic Tags */ + +.ui.inverted.basic.tag.labels .green.label, +.ui.ui.ui.inverted.green.basic.tag.label { + border: 1px solid #2ECC40; +} + +.ui.inverted.basic.tag.labels .green.label:before, +.ui.ui.ui.inverted.green.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + background-color: #1B1C1D; + right: calc(100% + 1px); +} + +.ui.teal.labels .label, +.ui.ui.ui.teal.label { + background-color: #00B5AD; + border-color: #00B5AD; + color: #FFFFFF; +} + +/* Link */ + +.ui.teal.labels a.label:hover, +a.ui.ui.ui.teal.label:hover { + background-color: #009c95; + border-color: #009c95; + color: #FFFFFF; +} + +/* Ribbon */ + +.ui.ui.ui.teal.ribbon.label { + border-color: #00827c; +} + +/* Basic */ + +.ui.basic.labels .teal.label, +.ui.ui.ui.basic.teal.label { + background: none #FFFFFF; + border-color: #00B5AD; + color: #00B5AD; +} + +.ui.basic.labels a.teal.label:hover, +a.ui.ui.ui.basic.teal.label:hover { + background: none #FFFFFF; + border-color: #009c95; + color: #009c95; +} + +/* Inverted */ + +.ui.inverted.labels .teal.label, +.ui.ui.ui.inverted.teal.label { + background-color: #6DFFFF; + border-color: #6DFFFF; + color: #1B1C1D; +} + +/* Inverted Link */ + +.ui.inverted.labels a.teal.label:hover, +a.ui.ui.ui.inverted.teal.label:hover { + background-color: #3affff; + border-color: #3affff; + color: #1B1C1D; +} + +/* Inverted Ribbon */ + +.ui.ui.ui.inverted.teal.ribbon.label { + border-color: #3affff; +} + +/* Inverted Basic */ + +.ui.inverted.basic.labels .teal.label, +.ui.ui.ui.inverted.basic.teal.label { + background-color: #1B1C1D; + border-color: #6DFFFF; + color: #6DFFFF; +} + +.ui.inverted.basic.labels a.teal.label:hover, +a.ui.ui.ui.inverted.basic.teal.label:hover { + border-color: #3affff; + background-color: #1B1C1D; + color: #3affff; +} + +/* Inverted Basic Tags */ + +.ui.inverted.basic.tag.labels .teal.label, +.ui.ui.ui.inverted.teal.basic.tag.label { + border: 1px solid #6DFFFF; +} + +.ui.inverted.basic.tag.labels .teal.label:before, +.ui.ui.ui.inverted.teal.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + background-color: #1B1C1D; + right: calc(100% + 1px); +} + +.ui.blue.labels .label, +.ui.ui.ui.blue.label { + background-color: #2185D0; + border-color: #2185D0; + color: #FFFFFF; +} + +/* Link */ + +.ui.blue.labels a.label:hover, +a.ui.ui.ui.blue.label:hover { + background-color: #1678c2; + border-color: #1678c2; + color: #FFFFFF; +} + +/* Ribbon */ + +.ui.ui.ui.blue.ribbon.label { + border-color: #1a69a4; +} + +/* Basic */ + +.ui.basic.labels .blue.label, +.ui.ui.ui.basic.blue.label { + background: none #FFFFFF; + border-color: #2185D0; + color: #2185D0; +} + +.ui.basic.labels a.blue.label:hover, +a.ui.ui.ui.basic.blue.label:hover { + background: none #FFFFFF; + border-color: #1678c2; + color: #1678c2; +} + +/* Inverted */ + +.ui.inverted.labels .blue.label, +.ui.ui.ui.inverted.blue.label { + background-color: #54C8FF; + border-color: #54C8FF; + color: #1B1C1D; +} + +/* Inverted Link */ + +.ui.inverted.labels a.blue.label:hover, +a.ui.ui.ui.inverted.blue.label:hover { + background-color: #21b8ff; + border-color: #21b8ff; + color: #1B1C1D; +} + +/* Inverted Ribbon */ + +.ui.ui.ui.inverted.blue.ribbon.label { + border-color: #21b8ff; +} + +/* Inverted Basic */ + +.ui.inverted.basic.labels .blue.label, +.ui.ui.ui.inverted.basic.blue.label { + background-color: #1B1C1D; + border-color: #54C8FF; + color: #54C8FF; +} + +.ui.inverted.basic.labels a.blue.label:hover, +a.ui.ui.ui.inverted.basic.blue.label:hover { + border-color: #21b8ff; + background-color: #1B1C1D; + color: #21b8ff; +} + +/* Inverted Basic Tags */ + +.ui.inverted.basic.tag.labels .blue.label, +.ui.ui.ui.inverted.blue.basic.tag.label { + border: 1px solid #54C8FF; +} + +.ui.inverted.basic.tag.labels .blue.label:before, +.ui.ui.ui.inverted.blue.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + background-color: #1B1C1D; + right: calc(100% + 1px); +} + +.ui.violet.labels .label, +.ui.ui.ui.violet.label { + background-color: #6435C9; + border-color: #6435C9; + color: #FFFFFF; +} + +/* Link */ + +.ui.violet.labels a.label:hover, +a.ui.ui.ui.violet.label:hover { + background-color: #5829bb; + border-color: #5829bb; + color: #FFFFFF; +} + +/* Ribbon */ + +.ui.ui.ui.violet.ribbon.label { + border-color: #502aa1; +} + +/* Basic */ + +.ui.basic.labels .violet.label, +.ui.ui.ui.basic.violet.label { + background: none #FFFFFF; + border-color: #6435C9; + color: #6435C9; +} + +.ui.basic.labels a.violet.label:hover, +a.ui.ui.ui.basic.violet.label:hover { + background: none #FFFFFF; + border-color: #5829bb; + color: #5829bb; +} + +/* Inverted */ + +.ui.inverted.labels .violet.label, +.ui.ui.ui.inverted.violet.label { + background-color: #A291FB; + border-color: #A291FB; + color: #1B1C1D; +} + +/* Inverted Link */ + +.ui.inverted.labels a.violet.label:hover, +a.ui.ui.ui.inverted.violet.label:hover { + background-color: #745aff; + border-color: #745aff; + color: #1B1C1D; +} + +/* Inverted Ribbon */ + +.ui.ui.ui.inverted.violet.ribbon.label { + border-color: #7860f9; +} + +/* Inverted Basic */ + +.ui.inverted.basic.labels .violet.label, +.ui.ui.ui.inverted.basic.violet.label { + background-color: #1B1C1D; + border-color: #A291FB; + color: #A291FB; +} + +.ui.inverted.basic.labels a.violet.label:hover, +a.ui.ui.ui.inverted.basic.violet.label:hover { + border-color: #745aff; + background-color: #1B1C1D; + color: #745aff; +} + +/* Inverted Basic Tags */ + +.ui.inverted.basic.tag.labels .violet.label, +.ui.ui.ui.inverted.violet.basic.tag.label { + border: 1px solid #A291FB; +} + +.ui.inverted.basic.tag.labels .violet.label:before, +.ui.ui.ui.inverted.violet.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + background-color: #1B1C1D; + right: calc(100% + 1px); +} + +.ui.purple.labels .label, +.ui.ui.ui.purple.label { + background-color: #A333C8; + border-color: #A333C8; + color: #FFFFFF; +} + +/* Link */ + +.ui.purple.labels a.label:hover, +a.ui.ui.ui.purple.label:hover { + background-color: #9627ba; + border-color: #9627ba; + color: #FFFFFF; +} + +/* Ribbon */ + +.ui.ui.ui.purple.ribbon.label { + border-color: #82299f; +} + +/* Basic */ + +.ui.basic.labels .purple.label, +.ui.ui.ui.basic.purple.label { + background: none #FFFFFF; + border-color: #A333C8; + color: #A333C8; +} + +.ui.basic.labels a.purple.label:hover, +a.ui.ui.ui.basic.purple.label:hover { + background: none #FFFFFF; + border-color: #9627ba; + color: #9627ba; +} + +/* Inverted */ + +.ui.inverted.labels .purple.label, +.ui.ui.ui.inverted.purple.label { + background-color: #DC73FF; + border-color: #DC73FF; + color: #1B1C1D; +} + +/* Inverted Link */ + +.ui.inverted.labels a.purple.label:hover, +a.ui.ui.ui.inverted.purple.label:hover { + background-color: #cf40ff; + border-color: #cf40ff; + color: #1B1C1D; +} + +/* Inverted Ribbon */ + +.ui.ui.ui.inverted.purple.ribbon.label { + border-color: #cf40ff; +} + +/* Inverted Basic */ + +.ui.inverted.basic.labels .purple.label, +.ui.ui.ui.inverted.basic.purple.label { + background-color: #1B1C1D; + border-color: #DC73FF; + color: #DC73FF; +} + +.ui.inverted.basic.labels a.purple.label:hover, +a.ui.ui.ui.inverted.basic.purple.label:hover { + border-color: #cf40ff; + background-color: #1B1C1D; + color: #cf40ff; +} + +/* Inverted Basic Tags */ + +.ui.inverted.basic.tag.labels .purple.label, +.ui.ui.ui.inverted.purple.basic.tag.label { + border: 1px solid #DC73FF; +} + +.ui.inverted.basic.tag.labels .purple.label:before, +.ui.ui.ui.inverted.purple.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + background-color: #1B1C1D; + right: calc(100% + 1px); +} + +.ui.pink.labels .label, +.ui.ui.ui.pink.label { + background-color: #E03997; + border-color: #E03997; + color: #FFFFFF; +} + +/* Link */ + +.ui.pink.labels a.label:hover, +a.ui.ui.ui.pink.label:hover { + background-color: #e61a8d; + border-color: #e61a8d; + color: #FFFFFF; +} + +/* Ribbon */ + +.ui.ui.ui.pink.ribbon.label { + border-color: #c71f7e; +} + +/* Basic */ + +.ui.basic.labels .pink.label, +.ui.ui.ui.basic.pink.label { + background: none #FFFFFF; + border-color: #E03997; + color: #E03997; +} + +.ui.basic.labels a.pink.label:hover, +a.ui.ui.ui.basic.pink.label:hover { + background: none #FFFFFF; + border-color: #e61a8d; + color: #e61a8d; +} + +/* Inverted */ + +.ui.inverted.labels .pink.label, +.ui.ui.ui.inverted.pink.label { + background-color: #FF8EDF; + border-color: #FF8EDF; + color: #1B1C1D; +} + +/* Inverted Link */ + +.ui.inverted.labels a.pink.label:hover, +a.ui.ui.ui.inverted.pink.label:hover { + background-color: #ff5bd1; + border-color: #ff5bd1; + color: #1B1C1D; +} + +/* Inverted Ribbon */ + +.ui.ui.ui.inverted.pink.ribbon.label { + border-color: #ff5bd1; +} + +/* Inverted Basic */ + +.ui.inverted.basic.labels .pink.label, +.ui.ui.ui.inverted.basic.pink.label { + background-color: #1B1C1D; + border-color: #FF8EDF; + color: #FF8EDF; +} + +.ui.inverted.basic.labels a.pink.label:hover, +a.ui.ui.ui.inverted.basic.pink.label:hover { + border-color: #ff5bd1; + background-color: #1B1C1D; + color: #ff5bd1; +} + +/* Inverted Basic Tags */ + +.ui.inverted.basic.tag.labels .pink.label, +.ui.ui.ui.inverted.pink.basic.tag.label { + border: 1px solid #FF8EDF; +} + +.ui.inverted.basic.tag.labels .pink.label:before, +.ui.ui.ui.inverted.pink.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + background-color: #1B1C1D; + right: calc(100% + 1px); +} + +.ui.brown.labels .label, +.ui.ui.ui.brown.label { + background-color: #A5673F; + border-color: #A5673F; + color: #FFFFFF; +} + +/* Link */ + +.ui.brown.labels a.label:hover, +a.ui.ui.ui.brown.label:hover { + background-color: #975b33; + border-color: #975b33; + color: #FFFFFF; +} + +/* Ribbon */ + +.ui.ui.ui.brown.ribbon.label { + border-color: #805031; +} + +/* Basic */ + +.ui.basic.labels .brown.label, +.ui.ui.ui.basic.brown.label { + background: none #FFFFFF; + border-color: #A5673F; + color: #A5673F; +} + +.ui.basic.labels a.brown.label:hover, +a.ui.ui.ui.basic.brown.label:hover { + background: none #FFFFFF; + border-color: #975b33; + color: #975b33; +} + +/* Inverted */ + +.ui.inverted.labels .brown.label, +.ui.ui.ui.inverted.brown.label { + background-color: #D67C1C; + border-color: #D67C1C; + color: #1B1C1D; +} + +/* Inverted Link */ + +.ui.inverted.labels a.brown.label:hover, +a.ui.ui.ui.inverted.brown.label:hover { + background-color: #b0620f; + border-color: #b0620f; + color: #1B1C1D; +} + +/* Inverted Ribbon */ + +.ui.ui.ui.inverted.brown.ribbon.label { + border-color: #a96216; +} + +/* Inverted Basic */ + +.ui.inverted.basic.labels .brown.label, +.ui.ui.ui.inverted.basic.brown.label { + background-color: #1B1C1D; + border-color: #D67C1C; + color: #D67C1C; +} + +.ui.inverted.basic.labels a.brown.label:hover, +a.ui.ui.ui.inverted.basic.brown.label:hover { + border-color: #b0620f; + background-color: #1B1C1D; + color: #b0620f; +} + +/* Inverted Basic Tags */ + +.ui.inverted.basic.tag.labels .brown.label, +.ui.ui.ui.inverted.brown.basic.tag.label { + border: 1px solid #D67C1C; +} + +.ui.inverted.basic.tag.labels .brown.label:before, +.ui.ui.ui.inverted.brown.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + background-color: #1B1C1D; + right: calc(100% + 1px); +} + +.ui.grey.labels .label, +.ui.ui.ui.grey.label { + background-color: #767676; + border-color: #767676; + color: #FFFFFF; +} + +/* Link */ + +.ui.grey.labels a.label:hover, +a.ui.ui.ui.grey.label:hover { + background-color: #838383; + border-color: #838383; + color: #FFFFFF; +} + +/* Ribbon */ + +.ui.ui.ui.grey.ribbon.label { + border-color: #5d5d5d; +} + +/* Basic */ + +.ui.basic.labels .grey.label, +.ui.ui.ui.basic.grey.label { + background: none #FFFFFF; + border-color: #767676; + color: #767676; +} + +.ui.basic.labels a.grey.label:hover, +a.ui.ui.ui.basic.grey.label:hover { + background: none #FFFFFF; + border-color: #838383; + color: #838383; +} + +/* Inverted */ + +.ui.inverted.labels .grey.label, +.ui.ui.ui.inverted.grey.label { + background-color: #DCDDDE; + border-color: #DCDDDE; + color: #1B1C1D; +} + +/* Inverted Link */ + +.ui.inverted.labels a.grey.label:hover, +a.ui.ui.ui.inverted.grey.label:hover { + background-color: #c2c4c5; + border-color: #c2c4c5; + color: #FFFFFF; +} + +/* Inverted Ribbon */ + +.ui.ui.ui.inverted.grey.ribbon.label { + border-color: #e9eaea; +} + +/* Inverted Basic */ + +.ui.inverted.basic.labels .grey.label, +.ui.ui.ui.inverted.basic.grey.label { + background-color: #1B1C1D; + border-color: #DCDDDE; + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.basic.labels a.grey.label:hover, +a.ui.ui.ui.inverted.basic.grey.label:hover { + border-color: #c2c4c5; + background-color: #1B1C1D; +} + +/* Inverted Basic Tags */ + +.ui.inverted.basic.tag.labels .grey.label, +.ui.ui.ui.inverted.grey.basic.tag.label { + border: 1px solid #DCDDDE; +} + +.ui.inverted.basic.tag.labels .grey.label:before, +.ui.ui.ui.inverted.grey.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + background-color: #1B1C1D; + right: calc(100% + 1px); +} + +.ui.black.labels .label, +.ui.ui.ui.black.label { + background-color: #1B1C1D; + border-color: #1B1C1D; + color: #FFFFFF; +} + +/* Link */ + +.ui.black.labels a.label:hover, +a.ui.ui.ui.black.label:hover { + background-color: #27292a; + border-color: #27292a; + color: #FFFFFF; +} + +/* Ribbon */ + +.ui.ui.ui.black.ribbon.label { + border-color: #020203; +} + +/* Basic */ + +.ui.basic.labels .black.label, +.ui.ui.ui.basic.black.label { + background: none #FFFFFF; + border-color: #1B1C1D; + color: #1B1C1D; +} + +.ui.basic.labels a.black.label:hover, +a.ui.ui.ui.basic.black.label:hover { + background: none #FFFFFF; + border-color: #27292a; + color: #27292a; +} + +/* Inverted */ + +.ui.inverted.labels .black.label, +.ui.ui.ui.inverted.black.label { + background-color: #545454; + border-color: #545454; + color: #1B1C1D; +} + +/* Inverted Link */ + +.ui.inverted.labels a.black.label:hover, +a.ui.ui.ui.inverted.black.label:hover { + background-color: #000000; + border-color: #000000; + color: #FFFFFF; +} + +/* Inverted Ribbon */ + +.ui.ui.ui.inverted.black.ribbon.label { + border-color: #616161; +} + +/* Inverted Basic */ + +.ui.inverted.basic.labels .black.label, +.ui.ui.ui.inverted.basic.black.label { + background-color: #1B1C1D; + border-color: #545454; + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.basic.labels a.black.label:hover, +a.ui.ui.ui.inverted.basic.black.label:hover { + border-color: #000000; + background-color: #1B1C1D; +} + +/* Inverted Basic Tags */ + +.ui.inverted.basic.tag.labels .black.label, +.ui.ui.ui.inverted.black.basic.tag.label { + border: 1px solid #545454; +} + +.ui.inverted.basic.tag.labels .black.label:before, +.ui.ui.ui.inverted.black.basic.tag.label:before { + border-color: inherit; + border-width: 1px 0 0 1px; + border-style: inherit; + background-color: #1B1C1D; + right: calc(100% + 1px); +} + +/*------------------- + Horizontal +--------------------*/ + +.ui.horizontal.labels .label, +.ui.horizontal.label { + margin: 0 0.5em 0 0; + padding: 0.4em 0.833em; + min-width: 3em; + text-align: center; +} + +/*------------------- + Circular + --------------------*/ + +.ui.circular.labels .label, +.ui.circular.label { + min-width: 2em; + min-height: 2em; + padding: 0.5em !important; + line-height: 1em; + text-align: center; + border-radius: 500rem; +} + +.ui.empty.circular.labels .label, +.ui.empty.circular.label { + min-width: 0; + min-height: 0; + overflow: hidden; + width: 0.5em; + height: 0.5em; + vertical-align: baseline; +} + +/*------------------- + Pointing + --------------------*/ + +.ui.pointing.label { + position: relative; +} + +.ui.attached.pointing.label { + position: absolute; +} + +.ui.pointing.label:before { + background-color: inherit; + background-image: inherit; + border-width: 0; + border-style: solid; + border-color: inherit; +} + +/* Arrow */ + +.ui.pointing.label:before { + position: absolute; + content: ''; + transform: rotate(45deg); + background-image: none; + z-index: 2; + width: 0.6666em; + height: 0.6666em; + transition: none; +} + +/*--- Above ---*/ + +.ui.pointing.label, +.ui[class*="pointing above"].label { + margin-top: 1em; +} + +.ui.pointing.label:before, +.ui[class*="pointing above"].label:before { + border-width: 1px 0 0 1px; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + top: 0; + left: 50%; +} + +/*--- Below ---*/ + +.ui[class*="bottom pointing"].label, +.ui[class*="pointing below"].label { + margin-top: 0; + margin-bottom: 1em; +} + +.ui[class*="bottom pointing"].label:before, +.ui[class*="pointing below"].label:before { + border-width: 0 1px 1px 0; + top: auto; + right: auto; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + top: 100%; + left: 50%; +} + +/*--- Left ---*/ + +.ui[class*="left pointing"].label { + margin-top: 0; + margin-left: 0.6666em; +} + +.ui[class*="left pointing"].label:before { + border-width: 0 0 1px 1px; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + bottom: auto; + right: auto; + top: 50%; + left: 0; +} + +/*--- Right ---*/ + +.ui[class*="right pointing"].label { + margin-top: 0; + margin-right: 0.6666em; +} + +.ui[class*="right pointing"].label:before { + border-width: 1px 1px 0 0; + transform: translateX(50%) translateY(-50%) rotate(45deg); + top: 50%; + right: 0; + bottom: auto; + left: auto; +} + +/* Basic Pointing */ + +/*--- Above ---*/ + +.ui.basic.pointing.label:before, +.ui.basic[class*="pointing above"].label:before { + margin-top: -1px; +} + +/*--- Below ---*/ + +.ui.basic[class*="bottom pointing"].label:before, +.ui.basic[class*="pointing below"].label:before { + bottom: auto; + top: 100%; + margin-top: 1px; +} + +/*--- Left ---*/ + +.ui.basic[class*="left pointing"].label:before { + top: 50%; + left: -1px; +} + +/*--- Right ---*/ + +.ui.basic[class*="right pointing"].label:before { + top: 50%; + right: -1px; +} + +/*------------------ + Floating Label + -------------------*/ + +.ui.floating.label { + position: absolute; + z-index: 100; + top: -1em; + right: 0; + white-space: nowrap; + transform: translateX(50%); +} + +.ui.right.aligned.floating.label { + transform: translateX(1.2em); +} + +.ui.left.floating.label { + left: 0; + right: auto; + transform: translateX(-50%); +} + +.ui.left.aligned.floating.label { + transform: translateX(-1.2em); +} + +.ui.bottom.floating.label { + top: auto; + bottom: -1em; +} + +/*------------------- + Sizes +--------------------*/ + +.ui.labels .label, +.ui.label { + font-size: 0.85714286rem; +} + +.ui.mini.labels .label, +.ui.mini.label { + font-size: 0.64285714rem; +} + +.ui.tiny.labels .label, +.ui.tiny.label { + font-size: 0.71428571rem; +} + +.ui.small.labels .label, +.ui.small.label { + font-size: 0.78571429rem; +} + +.ui.large.labels .label, +.ui.large.label { + font-size: 1rem; +} + +.ui.big.labels .label, +.ui.big.label { + font-size: 1.28571429rem; +} + +.ui.huge.labels .label, +.ui.huge.label { + font-size: 1.42857143rem; +} + +.ui.massive.labels .label, +.ui.massive.label { + font-size: 1.71428571rem; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - List + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + List +*******************************/ + +ul.ui.list, +ol.ui.list, +.ui.list { + list-style-type: none; + margin: 1em 0; + padding: 0 0; +} + +ul.ui.list:first-child, +ol.ui.list:first-child, +.ui.list:first-child { + margin-top: 0; + padding-top: 0; +} + +ul.ui.list:last-child, +ol.ui.list:last-child, +.ui.list:last-child { + margin-bottom: 0; + padding-bottom: 0; +} + +/******************************* + Content +*******************************/ + +/* List Item */ + +ul.ui.list li, +ol.ui.list li, +.ui.list > .item, +.ui.list .list > .item { + display: list-item; + table-layout: fixed; + list-style-type: none; + list-style-position: outside; + padding: 0.21428571em 0; + line-height: 1.14285714em; +} + +ul.ui.list > li:first-child:after, +ol.ui.list > li:first-child:after, +.ui.list > .list > .item:after, +.ui.list > .item:after { + content: ''; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +ul.ui.list li:first-child, +ol.ui.list li:first-child, +.ui.list .list > .item:first-child, +.ui.list > .item:first-child { + padding-top: 0; +} + +ul.ui.list li:last-child, +ol.ui.list li:last-child, +.ui.list .list > .item:last-child, +.ui.list > .item:last-child { + padding-bottom: 0; +} + +/* Child List */ + +ul.ui.list ul, +ol.ui.list ol, +.ui.list .list:not(.icon) { + clear: both; + margin: 0; + padding: 0.75em 0 0.25em 0.5em; +} + +/* Child Item */ + +ul.ui.list ul li, +ol.ui.list ol li, +.ui.list .list > .item { + padding: 0.14285714em 0; + line-height: inherit; +} + +/* Icon */ + +.ui.list .list > .item > i.icon, +.ui.list > .item > i.icon { + display: table-cell; + min-width: 1.55em; + margin: 0; + padding-top: 0; + transition: color 0.1s ease; +} + +.ui.list .list > .item > i.icon:not(.loading), +.ui.list > .item > i.icon:not(.loading) { + padding-right: 0.28571429em; + vertical-align: top; +} + +.ui.list .list > .item > i.icon:only-child, +.ui.list > .item > i.icon:only-child { + display: inline-block; + min-width: auto; + vertical-align: top; +} + +/* Image */ + +.ui.list .list > .item > .image, +.ui.list > .item > .image { + display: table-cell; + background-color: transparent; + margin: 0; + vertical-align: top; +} + +.ui.list .list > .item > .image:not(:only-child):not(img), +.ui.list > .item > .image:not(:only-child):not(img) { + padding-right: 0.5em; +} + +.ui.list .list > .item > .image img, +.ui.list > .item > .image img { + vertical-align: top; +} + +.ui.list .list > .item > img.image, +.ui.list .list > .item > .image:only-child, +.ui.list > .item > img.image, +.ui.list > .item > .image:only-child { + display: inline-block; +} + +/* Content */ + +.ui.list .list > .item > .content, +.ui.list > .item > .content { + line-height: 1.14285714em; + color: rgba(0, 0, 0, 0.87); +} + +.ui.list .list > .item > .image + .content, +.ui.list .list > .item > i.icon + .content, +.ui.list > .item > .image + .content, +.ui.list > .item > i.icon + .content { + display: table-cell; + width: 100%; + padding: 0 0 0 0.5em; + vertical-align: top; +} + +.ui.list .list > .item > i.loading.icon + .content, +.ui.list > .item > i.loading.icon + .content { + padding-left: calc(0.2857142857142857em + 0.5em); +} + +.ui.list .list > .item > img.image + .content, +.ui.list > .item > img.image + .content { + display: inline-block; + width: auto; +} + +.ui.list .list > .item > .content > .list, +.ui.list > .item > .content > .list { + margin-left: 0; + padding-left: 0; +} + +/* Header */ + +.ui.list .list > .item .header, +.ui.list > .item .header { + display: block; + margin: 0; + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + font-weight: bold; + color: rgba(0, 0, 0, 0.87); +} + +/* Description */ + +.ui.list .list > .item .description, +.ui.list > .item .description { + display: block; + color: rgba(0, 0, 0, 0.7); +} + +/* Child Link */ + +.ui.list > .item a, +.ui.list .list > .item a { + cursor: pointer; +} + +/* Linking Item */ + +.ui.list .list > a.item, +.ui.list > a.item { + cursor: pointer; + color: #4183C4; +} + +.ui.list .list > a.item:hover, +.ui.list > a.item:hover { + color: #1e70bf; +} + +/* Linked Item Icons */ + +.ui.list .list > a.item > i.icons, +.ui.list > a.item > i.icons, +.ui.list .list > a.item > i.icon, +.ui.list > a.item > i.icon { + color: rgba(0, 0, 0, 0.4); +} + +/* Header Link */ + +.ui.list .list > .item a.header, +.ui.list > .item a.header { + cursor: pointer; + color: #4183C4 !important; +} + +.ui.list .list > .item > a.header:hover, +.ui.list > .item > a.header:hover { + color: #1e70bf !important; +} + +/* Floated Content */ + +.ui[class*="left floated"].list { + float: left; +} + +.ui[class*="right floated"].list { + float: right; +} + +.ui.list .list > .item [class*="left floated"], +.ui.list > .item [class*="left floated"] { + float: left; + margin: 0 1em 0 0; +} + +.ui.list .list > .item [class*="right floated"], +.ui.list > .item [class*="right floated"] { + float: right; + margin: 0 0 0 1em; +} + +/******************************* + Coupling +*******************************/ + +.ui.menu .ui.list > .item, +.ui.menu .ui.list .list > .item { + display: list-item; + table-layout: fixed; + background-color: transparent; + list-style-type: none; + list-style-position: outside; + padding: 0.21428571em 0; + line-height: 1.14285714em; +} + +.ui.menu .ui.list .list > .item:before, +.ui.menu .ui.list > .item:before { + border: none; + background: none; +} + +.ui.menu .ui.list .list > .item:first-child, +.ui.menu .ui.list > .item:first-child { + padding-top: 0; +} + +.ui.menu .ui.list .list > .item:last-child, +.ui.menu .ui.list > .item:last-child { + padding-bottom: 0; +} + +/******************************* + Types +*******************************/ + +/*------------------- + Horizontal + --------------------*/ + +.ui.horizontal.list { + display: inline-block; + font-size: 0; +} + +.ui.horizontal.list > .item { + display: inline-block; + margin-right: 1em; + font-size: 1rem; +} + +.ui.horizontal.list:not(.celled) > .item:last-child { + margin-right: 0; + padding-right: 0; +} + +.ui.horizontal.list .list:not(.icon) { + padding-left: 0; + padding-bottom: 0; +} + +.ui.horizontal.list > .item > .image, +.ui.horizontal.list .list > .item > .image, +.ui.horizontal.list > .item > i.icon, +.ui.horizontal.list .list > .item > i.icon, +.ui.horizontal.list > .item > .content, +.ui.horizontal.list .list > .item > .content { + vertical-align: middle; +} + +/* Padding on all elements */ + +.ui.horizontal.list > .item:first-child, +.ui.horizontal.list > .item:last-child { + padding-top: 0.21428571em; + padding-bottom: 0.21428571em; +} + +/* Horizontal List */ + +.ui.horizontal.list > .item > i.icon, +.ui.horizontal.list .item > i.icons > i.icon { + margin: 0; + padding: 0 0.25em 0 0; +} + +.ui.horizontal.list > .item > .image + .content, +.ui.horizontal.list > .item > i.icon, +.ui.horizontal.list > .item > i.icon + .content { + float: none; + display: inline-block; + width: auto; +} + +.ui.horizontal.list > .item > .image { + display: inline-block; +} + +/******************************* + States +*******************************/ + +/*------------------- + Disabled + --------------------*/ + +.ui.list .list > .disabled.item, +.ui.list > .disabled.item { + pointer-events: none; + color: rgba(40, 40, 40, 0.3) !important; +} + +.ui.inverted.list .list > .disabled.item, +.ui.inverted.list > .disabled.item { + color: rgba(225, 225, 225, 0.3) !important; +} + +/*------------------- + Hover +--------------------*/ + +.ui.list .list > a.item:hover > .icons, +.ui.list > a.item:hover > .icons, +.ui.list .list > a.item:hover > i.icon, +.ui.list > a.item:hover > i.icon { + color: rgba(0, 0, 0, 0.87); +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Inverted + --------------------*/ + +.ui.inverted.list .list > a.item > i.icon, +.ui.inverted.list > a.item > i.icon { + color: rgba(255, 255, 255, 0.7); +} + +.ui.inverted.list .list > .item .header, +.ui.inverted.list > .item .header { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.list .list > .item .description, +.ui.inverted.list > .item .description { + color: rgba(255, 255, 255, 0.7); +} + +.ui.inverted.list .list > .item > .content, +.ui.inverted.list > .item > .content { + color: rgba(255, 255, 255, 0.7); +} + +/* Item Link */ + +.ui.inverted.list .list > a.item, +.ui.inverted.list > a.item { + cursor: pointer; + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.list .list > a.item:hover, +.ui.inverted.list > a.item:hover { + color: #1e70bf; +} + +/* Linking Content */ + +.ui.inverted.list .item a:not(.ui) { + color: rgba(255, 255, 255, 0.9) !important; +} + +.ui.inverted.list .item a:not(.ui):hover { + color: #1e70bf !important; +} + +/*------------------- + Aligned + --------------------*/ + +.ui.list[class*="top aligned"] .image, +.ui.list[class*="top aligned"] .content, +.ui.list [class*="top aligned"] { + vertical-align: top !important; +} + +.ui.list[class*="middle aligned"] .image, +.ui.list[class*="middle aligned"] .content, +.ui.list [class*="middle aligned"] { + vertical-align: middle !important; +} + +.ui.list[class*="bottom aligned"] .image, +.ui.list[class*="bottom aligned"] .content, +.ui.list [class*="bottom aligned"] { + vertical-align: bottom !important; +} + +/*------------------- + Link + --------------------*/ + +.ui.link.list .item, +.ui.link.list a.item, +.ui.link.list .item a:not(.ui) { + color: rgba(0, 0, 0, 0.4); + transition: 0.1s color ease; +} + +.ui.link.list.list a.item:hover, +.ui.link.list.list .item a:not(.ui):hover { + color: rgba(0, 0, 0, 0.8); +} + +.ui.link.list.list a.item:active, +.ui.link.list.list .item a:not(.ui):active { + color: rgba(0, 0, 0, 0.9); +} + +.ui.link.list.list .active.item, +.ui.link.list.list .active.item a:not(.ui) { + color: rgba(0, 0, 0, 0.95); +} + +/* Inverted */ + +.ui.inverted.link.list .item, +.ui.inverted.link.list a.item, +.ui.inverted.link.list .item a:not(.ui) { + color: rgba(255, 255, 255, 0.5); +} + +.ui.inverted.link.list.list a.item:hover, +.ui.inverted.link.list.list .item a:not(.ui):hover { + color: #ffffff; +} + +.ui.inverted.link.list.list a.item:active, +.ui.inverted.link.list.list .item a:not(.ui):active { + color: #ffffff; +} + +.ui.inverted.link.list.list a.active.item, +.ui.inverted.link.list.list .active.item a:not(.ui) { + color: #ffffff; +} + +/*------------------- + Selection + --------------------*/ + +.ui.selection.list .list > .item, +.ui.selection.list > .item { + cursor: pointer; + background: transparent; + padding: 0.5em 0.5em; + margin: 0; + color: rgba(0, 0, 0, 0.4); + border-radius: 0.5em; + transition: 0.1s color ease, 0.1s padding-left ease, 0.1s background-color ease; +} + +.ui.selection.list .list > .item:last-child, +.ui.selection.list > .item:last-child { + margin-bottom: 0; +} + +.ui.selection.list .list > .item:hover, +.ui.selection.list > .item:hover { + background: rgba(0, 0, 0, 0.03); + color: rgba(0, 0, 0, 0.8); +} + +.ui.selection.list .list > .item:active, +.ui.selection.list > .item:active { + background: rgba(0, 0, 0, 0.05); + color: rgba(0, 0, 0, 0.9); +} + +.ui.selection.list .list > .item.active, +.ui.selection.list > .item.active { + background: rgba(0, 0, 0, 0.05); + color: rgba(0, 0, 0, 0.95); +} + +/* Inverted */ + +.ui.inverted.selection.list > .item { + background: transparent; + color: rgba(255, 255, 255, 0.5); +} + +.ui.inverted.selection.list > .item:hover { + background: rgba(255, 255, 255, 0.02); + color: #ffffff; +} + +.ui.inverted.selection.list > .item:active { + background: rgba(255, 255, 255, 0.08); + color: #ffffff; +} + +.ui.inverted.selection.list > .item.active { + background: rgba(255, 255, 255, 0.08); + color: #ffffff; +} + +/* Celled / Divided Selection List */ + +.ui.celled.selection.list .list > .item, +.ui.divided.selection.list .list > .item, +.ui.celled.selection.list > .item, +.ui.divided.selection.list > .item { + border-radius: 0; +} + +/*------------------- + Animated + --------------------*/ + +.ui.animated.list > .item { + transition: 0.25s color ease 0.1s, 0.25s padding-left ease 0.1s, 0.25s background-color ease 0.1s; +} + +.ui.animated.list:not(.horizontal) > .item:hover { + padding-left: 1em; +} + +/*------------------- + Fitted + --------------------*/ + +.ui.fitted.list:not(.selection) .list > .item, +.ui.fitted.list:not(.selection) > .item { + padding-left: 0; + padding-right: 0; +} + +.ui.fitted.selection.list .list > .item, +.ui.fitted.selection.list > .item { + margin-left: -0.5em; + margin-right: -0.5em; +} + +/*------------------- + Bulleted + --------------------*/ + +ul.ui.list, +.ui.bulleted.list { + margin-left: 1.25rem; +} + +ul.ui.list li, +.ui.bulleted.list .list > .item, +.ui.bulleted.list > .item { + position: relative; +} + +ul.ui.list li:before, +.ui.bulleted.list .list > .item:before, +.ui.bulleted.list > .item:before { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + pointer-events: none; + position: absolute; + top: auto; + left: auto; + font-weight: normal; + margin-left: -1.25rem; + content: '\2022'; + opacity: 1; + color: inherit; + vertical-align: top; +} + +ul.ui.list li:before, +.ui.bulleted.list .list > a.item:before, +.ui.bulleted.list > a.item:before { + color: rgba(0, 0, 0, 0.87); +} + +ul.ui.list ul, +.ui.bulleted.list .list:not(.icon) { + padding-left: 1.25rem; +} + +/* Horizontal Bulleted */ + +ul.ui.horizontal.bulleted.list, +.ui.horizontal.bulleted.list { + margin-left: 0; +} + +ul.ui.horizontal.bulleted.list li, +.ui.horizontal.bulleted.list > .item { + margin-left: 1.75rem; +} + +ul.ui.horizontal.bulleted.list li:first-child, +.ui.horizontal.bulleted.list > .item:first-child { + margin-left: 0; +} + +ul.ui.horizontal.bulleted.list li::before, +.ui.horizontal.bulleted.list > .item::before { + color: rgba(0, 0, 0, 0.87); +} + +ul.ui.horizontal.bulleted.list li:first-child::before, +.ui.horizontal.bulleted.list > .item:first-child::before { + display: none; +} + +/*------------------- + Ordered + --------------------*/ + +ol.ui.list, +.ui.ordered.list, +.ui.ordered.list .list:not(.icon), +ol.ui.list ol { + counter-reset: ordered; + margin-left: 1.25rem; + list-style-type: none; +} + +ol.ui.list li, +.ui.ordered.list .list > .item, +.ui.ordered.list > .item { + list-style-type: none; + position: relative; +} + +ol.ui.list li:before, +.ui.ordered.list .list > .item:before, +.ui.ordered.list > .item:before { + position: absolute; + top: auto; + left: auto; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + pointer-events: none; + margin-left: -1.25rem; + counter-increment: ordered; + content: counters(ordered, ".") " "; + text-align: right; + color: rgba(0, 0, 0, 0.87); + vertical-align: middle; + opacity: 0.8; +} + +ol.ui.inverted.list li:before, +.ui.ordered.inverted.list .list > .item:before, +.ui.ordered.inverted.list > .item:before { + color: rgba(255, 255, 255, 0.7); +} + +/* Value */ + +.ui.ordered.list .list > .item[data-value]:before, +.ui.ordered.list > .item[data-value]:before { + content: attr(data-value); +} + +ol.ui.list li[value]:before { + content: attr(value); +} + +/* Child Lists */ + +ol.ui.list ol, +.ui.ordered.list .list:not(.icon) { + margin-left: 1em; +} + +ol.ui.list ol li:before, +.ui.ordered.list .list > .item:before { + margin-left: -2em; +} + +/* Horizontal Ordered */ + +ol.ui.horizontal.list, +.ui.ordered.horizontal.list { + margin-left: 0; +} + +ol.ui.horizontal.list li:before, +.ui.ordered.horizontal.list .list > .item:before, +.ui.ordered.horizontal.list > .item:before { + position: static; + margin: 0 0.5em 0 0; +} + +/* Suffixed Ordered */ + +ol.ui.suffixed.list li:before, +.ui.suffixed.ordered.list .list > .item:before, +.ui.suffixed.ordered.list > .item:before { + content: counters(ordered, ".") "."; +} + +/*------------------- + Divided + --------------------*/ + +.ui.divided.list > .item { + border-top: 1px solid rgba(34, 36, 38, 0.15); +} + +.ui.divided.list .list > .item { + border-top: none; +} + +.ui.divided.list .item .list > .item { + border-top: none; +} + +.ui.divided.list .list > .item:first-child, +.ui.divided.list > .item:first-child { + border-top: none; +} + +/* Sub Menu */ + +.ui.divided.list:not(.horizontal) .list > .item:first-child { + border-top-width: 1px; +} + +/* Divided bulleted */ + +.ui.divided.bulleted.list:not(.horizontal), +.ui.divided.bulleted.list .list:not(.icon) { + margin-left: 0; + padding-left: 0; +} + +.ui.divided.bulleted.list > .item:not(.horizontal) { + padding-left: 1.25rem; +} + +/* Divided Ordered */ + +.ui.divided.ordered.list { + margin-left: 0; +} + +.ui.divided.ordered.list .list > .item, +.ui.divided.ordered.list > .item { + padding-left: 1.25rem; +} + +.ui.divided.ordered.list .item .list:not(.icon) { + margin-left: 0; + margin-right: 0; + padding-bottom: 0.21428571em; +} + +.ui.divided.ordered.list .item .list > .item { + padding-left: 1em; +} + +/* Divided Selection */ + +.ui.divided.selection.list .list > .item, +.ui.divided.selection.list > .item { + margin: 0; + border-radius: 0; +} + +/* Divided horizontal */ + +.ui.divided.horizontal.list { + margin-left: 0; +} + +.ui.divided.horizontal.list > .item { + padding-left: 0.5em; +} + +.ui.divided.horizontal.list > .item:not(:last-child) { + padding-right: 0.5em; +} + +.ui.divided.horizontal.list > .item { + border-top: none; + border-right: 1px solid rgba(34, 36, 38, 0.15); + margin: 0; + line-height: 0.6; +} + +.ui.horizontal.divided.list > .item:last-child { + border-right: none; +} + +/* Inverted */ + +.ui.divided.inverted.list > .item, +.ui.divided.inverted.list > .list, +.ui.divided.inverted.horizontal.list > .item { + border-color: rgba(255, 255, 255, 0.1); +} + +/*------------------- + Celled + --------------------*/ + +.ui.celled.list > .item, +.ui.celled.list > .list { + border-top: 1px solid rgba(34, 36, 38, 0.15); + padding-left: 0.5em; + padding-right: 0.5em; +} + +.ui.celled.list > .item:last-child { + border-bottom: 1px solid rgba(34, 36, 38, 0.15); +} + +/* Padding on all elements */ + +.ui.celled.list > .item:first-child, +.ui.celled.list > .item:last-child { + padding-top: 0.21428571em; + padding-bottom: 0.21428571em; +} + +/* Sub Menu */ + +.ui.celled.list .item .list > .item { + border-width: 0; +} + +.ui.celled.list .list > .item:first-child { + border-top-width: 0; +} + +/* Celled Bulleted */ + +.ui.celled.bulleted.list { + margin-left: 0; +} + +.ui.celled.bulleted.list .list > .item, +.ui.celled.bulleted.list > .item { + padding-left: 1.25rem; +} + +.ui.celled.bulleted.list .item .list:not(.icon) { + margin-left: -1.25rem; + margin-right: -1.25rem; + padding-bottom: 0.21428571em; +} + +/* Celled Ordered */ + +.ui.celled.ordered.list { + margin-left: 0; +} + +.ui.celled.ordered.list .list > .item, +.ui.celled.ordered.list > .item { + padding-left: 1.25rem; +} + +.ui.celled.ordered.list .item .list:not(.icon) { + margin-left: 0; + margin-right: 0; + padding-bottom: 0.21428571em; +} + +.ui.celled.ordered.list .list > .item { + padding-left: 1em; +} + +/* Celled Horizontal */ + +.ui.horizontal.celled.list { + margin-left: 0; +} + +.ui.horizontal.celled.list .list > .item, +.ui.horizontal.celled.list > .item { + border-top: none; + border-left: 1px solid rgba(34, 36, 38, 0.15); + margin: 0; + padding-left: 0.5em; + padding-right: 0.5em; + line-height: 0.6; +} + +.ui.horizontal.celled.list .list > .item:last-child, +.ui.horizontal.celled.list > .item:last-child { + border-bottom: none; + border-right: 1px solid rgba(34, 36, 38, 0.15); +} + +/* Inverted */ + +.ui.celled.inverted.list > .item, +.ui.celled.inverted.list > .list { + border-color: rgba(255, 255, 255, 0.1); +} + +.ui.celled.inverted.horizontal.list .list > .item, +.ui.celled.inverted.horizontal.list > .item { + border-color: rgba(255, 255, 255, 0.1); +} + +/*------------------- + Relaxed + --------------------*/ + +.ui.relaxed.list:not(.horizontal) > .item:not(:first-child) { + padding-top: 0.42857143em; +} + +.ui.relaxed.list:not(.horizontal) > .item:not(:last-child) { + padding-bottom: 0.42857143em; +} + +.ui.horizontal.relaxed.list .list > .item:not(:first-child), +.ui.horizontal.relaxed.list > .item:not(:first-child) { + padding-left: 1rem; +} + +.ui.horizontal.relaxed.list .list > .item:not(:last-child), +.ui.horizontal.relaxed.list > .item:not(:last-child) { + padding-right: 1rem; +} + +/* Very Relaxed */ + +.ui[class*="very relaxed"].list:not(.horizontal) > .item:not(:first-child) { + padding-top: 0.85714286em; +} + +.ui[class*="very relaxed"].list:not(.horizontal) > .item:not(:last-child) { + padding-bottom: 0.85714286em; +} + +.ui.horizontal[class*="very relaxed"].list .list > .item:not(:first-child), +.ui.horizontal[class*="very relaxed"].list > .item:not(:first-child) { + padding-left: 1.5rem; +} + +.ui.horizontal[class*="very relaxed"].list .list > .item:not(:last-child), +.ui.horizontal[class*="very relaxed"].list > .item:not(:last-child) { + padding-right: 1.5rem; +} + +/*------------------- + Sizes +--------------------*/ + +.ui.list { + font-size: 1em; +} + +.ui.mini.list { + font-size: 0.78571429em; +} + +.ui.mini.horizontal.list .list > .item, +.ui.mini.horizontal.list > .item { + font-size: 0.78571429rem; +} + +.ui.tiny.list { + font-size: 0.85714286em; +} + +.ui.tiny.horizontal.list .list > .item, +.ui.tiny.horizontal.list > .item { + font-size: 0.85714286rem; +} + +.ui.small.list { + font-size: 0.92857143em; +} + +.ui.small.horizontal.list .list > .item, +.ui.small.horizontal.list > .item { + font-size: 0.92857143rem; +} + +.ui.large.list { + font-size: 1.14285714em; +} + +.ui.large.horizontal.list .list > .item, +.ui.large.horizontal.list > .item { + font-size: 1.14285714rem; +} + +.ui.big.list { + font-size: 1.28571429em; +} + +.ui.big.horizontal.list .list > .item, +.ui.big.horizontal.list > .item { + font-size: 1.28571429rem; +} + +.ui.huge.list { + font-size: 1.42857143em; +} + +.ui.huge.horizontal.list .list > .item, +.ui.huge.horizontal.list > .item { + font-size: 1.42857143rem; +} + +.ui.massive.list { + font-size: 1.71428571em; +} + +.ui.massive.horizontal.list .list > .item, +.ui.massive.horizontal.list > .item { + font-size: 1.71428571rem; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + User Variable Overrides +*******************************/ +/*! + * # Fomantic-UI - Loader + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Loader +*******************************/ + +/* Standard Size */ + +.ui.loader { + display: none; + position: absolute; + top: 50%; + left: 50%; + margin: 0; + text-align: center; + z-index: 1000; + transform: translateX(-50%) translateY(-50%); +} + +/* Static Shape */ + +.ui.loader:before { + position: absolute; + content: ''; + top: 0; + left: 50%; + width: 100%; + height: 100%; + border-radius: 500rem; + border: 0.2em solid rgba(0, 0, 0, 0.1); +} + +/* Active Shape */ + +.ui.loader:after { + position: absolute; + content: ''; + top: 0; + left: 50%; + width: 100%; + height: 100%; + -webkit-animation: loader 0.6s infinite linear; + animation: loader 0.6s infinite linear; + border: 0.2em solid #767676; + border-radius: 500rem; + box-shadow: 0 0 0 1px transparent; +} + +/* Speeds */ + +.ui.fast.loading.loading:after, +.ui.fast.loading.loading .input > i.icon:after, +.ui.fast.loading.loading > i.icon:after, +.ui.fast.loader:after { + -webkit-animation-duration: 0.3s; + animation-duration: 0.3s; +} + +.ui.slow.loading.loading:after, +.ui.slow.loading.loading .input > i.icon:after, +.ui.slow.loading.loading > i.icon:after, +.ui.slow.loader:after { + -webkit-animation-duration: 0.9s; + animation-duration: 0.9s; +} + +/* Active Animation */ + +@-webkit-keyframes loader { + 100% { + transform: rotate(360deg); + } +} + +@keyframes loader { + 100% { + transform: rotate(360deg); + } +} + +/*------------------- + Coupling +--------------------*/ + +/* Show inside active dimmer */ + +.ui.dimmer > .loader { + display: block; +} + +/* Black Dimmer */ + +.ui.dimmer > .ui.loader { + color: rgba(255, 255, 255, 0.9); +} + +.ui.dimmer > .ui.loader:not(.elastic):before { + border-color: rgba(255, 255, 255, 0.15); +} + +/* White Dimmer (Inverted) */ + +.ui.inverted.dimmer > .ui.loader { + color: rgba(0, 0, 0, 0.87); +} + +.ui.inverted.dimmer > .ui.loader:not(.elastic):before { + border-color: rgba(0, 0, 0, 0.1); +} + +/******************************* + Types +*******************************/ + +/*------------------- + Text + --------------------*/ + +.ui.ui.ui.ui.text.loader { + width: auto; + height: auto; + text-align: center; + font-style: normal; +} + +/******************************* + States +*******************************/ + +.ui.indeterminate.loader:after { + animation-direction: reverse; + -webkit-animation-duration: 1.2s; + animation-duration: 1.2s; +} + +.ui.loader.active, +.ui.loader.visible { + display: block; +} + +.ui.loader.disabled, +.ui.loader.hidden { + display: none; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Sizes +--------------------*/ + +.ui.loader { + width: 2.28571429rem; + height: 2.28571429rem; + font-size: 1em; +} + +.ui.loader:before, +.ui.loader:after { + width: 2.28571429rem; + height: 2.28571429rem; + margin: 0 0 0 -1.14285714rem; +} + +.ui.text.loader { + min-width: 2.28571429rem; + padding-top: 3.07142857rem; +} + +.ui.mini.loader { + width: 1rem; + height: 1rem; + font-size: 0.78571429em; +} + +.ui.mini.loader:before, +.ui.mini.loader:after { + width: 1rem; + height: 1rem; + margin: 0 0 0 -0.5rem; +} + +.ui.mini.text.loader { + min-width: 1rem; + padding-top: 1.78571429rem; +} + +.ui.tiny.loader { + width: 1.14285714rem; + height: 1.14285714rem; + font-size: 0.85714286em; +} + +.ui.tiny.loader:before, +.ui.tiny.loader:after { + width: 1.14285714rem; + height: 1.14285714rem; + margin: 0 0 0 -0.57142857rem; +} + +.ui.tiny.text.loader { + min-width: 1.14285714rem; + padding-top: 1.92857143rem; +} + +.ui.small.loader { + width: 1.71428571rem; + height: 1.71428571rem; + font-size: 0.92857143em; +} + +.ui.small.loader:before, +.ui.small.loader:after { + width: 1.71428571rem; + height: 1.71428571rem; + margin: 0 0 0 -0.85714286rem; +} + +.ui.small.text.loader { + min-width: 1.71428571rem; + padding-top: 2.5rem; +} + +.ui.large.loader { + width: 3.42857143rem; + height: 3.42857143rem; + font-size: 1.14285714em; +} + +.ui.large.loader:before, +.ui.large.loader:after { + width: 3.42857143rem; + height: 3.42857143rem; + margin: 0 0 0 -1.71428571rem; +} + +.ui.large.text.loader { + min-width: 3.42857143rem; + padding-top: 4.21428571rem; +} + +.ui.big.loader { + width: 3.71428571rem; + height: 3.71428571rem; + font-size: 1.28571429em; +} + +.ui.big.loader:before, +.ui.big.loader:after { + width: 3.71428571rem; + height: 3.71428571rem; + margin: 0 0 0 -1.85714286rem; +} + +.ui.big.text.loader { + min-width: 3.71428571rem; + padding-top: 4.5rem; +} + +.ui.huge.loader { + width: 4.14285714rem; + height: 4.14285714rem; + font-size: 1.42857143em; +} + +.ui.huge.loader:before, +.ui.huge.loader:after { + width: 4.14285714rem; + height: 4.14285714rem; + margin: 0 0 0 -2.07142857rem; +} + +.ui.huge.text.loader { + min-width: 4.14285714rem; + padding-top: 4.92857143rem; +} + +.ui.massive.loader { + width: 4.57142857rem; + height: 4.57142857rem; + font-size: 1.71428571em; +} + +.ui.massive.loader:before, +.ui.massive.loader:after { + width: 4.57142857rem; + height: 4.57142857rem; + margin: 0 0 0 -2.28571429rem; +} + +.ui.massive.text.loader { + min-width: 4.57142857rem; + padding-top: 5.35714286rem; +} + +/*------------------- + Colors +--------------------*/ + +.ui.primary.elastic.loader.loader:before, +.ui.primary.basic.elastic.loading.button:before, +.ui.primary.basic.elastic.loading.button:after, +.ui.primary.elastic.loading.loading.loading:not(.segment):before, +.ui.primary.elastic.loading.loading.loading .input > i.icon:before, +.ui.primary.elastic.loading.loading.loading.loading > i.icon:before, +.ui.primary.loading.loading.loading.loading:not(.usual):not(.button):after, +.ui.primary.loading.loading.loading.loading .input > i.icon:after, +.ui.primary.loading.loading.loading.loading > i.icon:after, +.ui.primary.loader.loader.loader:after { + color: #2185D0; +} + +.ui.inverted.primary.elastic.loader:before, +.ui.inverted.primary.elastic.loading.loading.loading:not(.segment):before, +.ui.inverted.primary.elastic.loading.loading.loading .input > i.icon:before, +.ui.inverted.primary.elastic.loading.loading.loading > i.icon:before, +.ui.inverted.primary.loading.loading.loading.loading:not(.usual):after, +.ui.inverted.primary.loading.loading.loading.loading .input > i.icon:after, +.ui.inverted.primary.loading.loading.loading.loading > i.icon:after, +.ui.inverted.primary.loader.loader.loader:after { + color: #54C8FF; +} + +.ui.secondary.elastic.loader.loader:before, +.ui.secondary.basic.elastic.loading.button:before, +.ui.secondary.basic.elastic.loading.button:after, +.ui.secondary.elastic.loading.loading.loading:not(.segment):before, +.ui.secondary.elastic.loading.loading.loading .input > i.icon:before, +.ui.secondary.elastic.loading.loading.loading.loading > i.icon:before, +.ui.secondary.loading.loading.loading.loading:not(.usual):not(.button):after, +.ui.secondary.loading.loading.loading.loading .input > i.icon:after, +.ui.secondary.loading.loading.loading.loading > i.icon:after, +.ui.secondary.loader.loader.loader:after { + color: #1B1C1D; +} + +.ui.inverted.secondary.elastic.loader:before, +.ui.inverted.secondary.elastic.loading.loading.loading:not(.segment):before, +.ui.inverted.secondary.elastic.loading.loading.loading .input > i.icon:before, +.ui.inverted.secondary.elastic.loading.loading.loading > i.icon:before, +.ui.inverted.secondary.loading.loading.loading.loading:not(.usual):after, +.ui.inverted.secondary.loading.loading.loading.loading .input > i.icon:after, +.ui.inverted.secondary.loading.loading.loading.loading > i.icon:after, +.ui.inverted.secondary.loader.loader.loader:after { + color: #545454; +} + +.ui.red.elastic.loader.loader:before, +.ui.red.basic.elastic.loading.button:before, +.ui.red.basic.elastic.loading.button:after, +.ui.red.elastic.loading.loading.loading:not(.segment):before, +.ui.red.elastic.loading.loading.loading .input > i.icon:before, +.ui.red.elastic.loading.loading.loading.loading > i.icon:before, +.ui.red.loading.loading.loading.loading:not(.usual):not(.button):after, +.ui.red.loading.loading.loading.loading .input > i.icon:after, +.ui.red.loading.loading.loading.loading > i.icon:after, +.ui.red.loader.loader.loader:after { + color: #DB2828; +} + +.ui.inverted.red.elastic.loader:before, +.ui.inverted.red.elastic.loading.loading.loading:not(.segment):before, +.ui.inverted.red.elastic.loading.loading.loading .input > i.icon:before, +.ui.inverted.red.elastic.loading.loading.loading > i.icon:before, +.ui.inverted.red.loading.loading.loading.loading:not(.usual):after, +.ui.inverted.red.loading.loading.loading.loading .input > i.icon:after, +.ui.inverted.red.loading.loading.loading.loading > i.icon:after, +.ui.inverted.red.loader.loader.loader:after { + color: #FF695E; +} + +.ui.orange.elastic.loader.loader:before, +.ui.orange.basic.elastic.loading.button:before, +.ui.orange.basic.elastic.loading.button:after, +.ui.orange.elastic.loading.loading.loading:not(.segment):before, +.ui.orange.elastic.loading.loading.loading .input > i.icon:before, +.ui.orange.elastic.loading.loading.loading.loading > i.icon:before, +.ui.orange.loading.loading.loading.loading:not(.usual):not(.button):after, +.ui.orange.loading.loading.loading.loading .input > i.icon:after, +.ui.orange.loading.loading.loading.loading > i.icon:after, +.ui.orange.loader.loader.loader:after { + color: #F2711C; +} + +.ui.inverted.orange.elastic.loader:before, +.ui.inverted.orange.elastic.loading.loading.loading:not(.segment):before, +.ui.inverted.orange.elastic.loading.loading.loading .input > i.icon:before, +.ui.inverted.orange.elastic.loading.loading.loading > i.icon:before, +.ui.inverted.orange.loading.loading.loading.loading:not(.usual):after, +.ui.inverted.orange.loading.loading.loading.loading .input > i.icon:after, +.ui.inverted.orange.loading.loading.loading.loading > i.icon:after, +.ui.inverted.orange.loader.loader.loader:after { + color: #FF851B; +} + +.ui.yellow.elastic.loader.loader:before, +.ui.yellow.basic.elastic.loading.button:before, +.ui.yellow.basic.elastic.loading.button:after, +.ui.yellow.elastic.loading.loading.loading:not(.segment):before, +.ui.yellow.elastic.loading.loading.loading .input > i.icon:before, +.ui.yellow.elastic.loading.loading.loading.loading > i.icon:before, +.ui.yellow.loading.loading.loading.loading:not(.usual):not(.button):after, +.ui.yellow.loading.loading.loading.loading .input > i.icon:after, +.ui.yellow.loading.loading.loading.loading > i.icon:after, +.ui.yellow.loader.loader.loader:after { + color: #FBBD08; +} + +.ui.inverted.yellow.elastic.loader:before, +.ui.inverted.yellow.elastic.loading.loading.loading:not(.segment):before, +.ui.inverted.yellow.elastic.loading.loading.loading .input > i.icon:before, +.ui.inverted.yellow.elastic.loading.loading.loading > i.icon:before, +.ui.inverted.yellow.loading.loading.loading.loading:not(.usual):after, +.ui.inverted.yellow.loading.loading.loading.loading .input > i.icon:after, +.ui.inverted.yellow.loading.loading.loading.loading > i.icon:after, +.ui.inverted.yellow.loader.loader.loader:after { + color: #FFE21F; +} + +.ui.olive.elastic.loader.loader:before, +.ui.olive.basic.elastic.loading.button:before, +.ui.olive.basic.elastic.loading.button:after, +.ui.olive.elastic.loading.loading.loading:not(.segment):before, +.ui.olive.elastic.loading.loading.loading .input > i.icon:before, +.ui.olive.elastic.loading.loading.loading.loading > i.icon:before, +.ui.olive.loading.loading.loading.loading:not(.usual):not(.button):after, +.ui.olive.loading.loading.loading.loading .input > i.icon:after, +.ui.olive.loading.loading.loading.loading > i.icon:after, +.ui.olive.loader.loader.loader:after { + color: #B5CC18; +} + +.ui.inverted.olive.elastic.loader:before, +.ui.inverted.olive.elastic.loading.loading.loading:not(.segment):before, +.ui.inverted.olive.elastic.loading.loading.loading .input > i.icon:before, +.ui.inverted.olive.elastic.loading.loading.loading > i.icon:before, +.ui.inverted.olive.loading.loading.loading.loading:not(.usual):after, +.ui.inverted.olive.loading.loading.loading.loading .input > i.icon:after, +.ui.inverted.olive.loading.loading.loading.loading > i.icon:after, +.ui.inverted.olive.loader.loader.loader:after { + color: #D9E778; +} + +.ui.green.elastic.loader.loader:before, +.ui.green.basic.elastic.loading.button:before, +.ui.green.basic.elastic.loading.button:after, +.ui.green.elastic.loading.loading.loading:not(.segment):before, +.ui.green.elastic.loading.loading.loading .input > i.icon:before, +.ui.green.elastic.loading.loading.loading.loading > i.icon:before, +.ui.green.loading.loading.loading.loading:not(.usual):not(.button):after, +.ui.green.loading.loading.loading.loading .input > i.icon:after, +.ui.green.loading.loading.loading.loading > i.icon:after, +.ui.green.loader.loader.loader:after { + color: #21BA45; +} + +.ui.inverted.green.elastic.loader:before, +.ui.inverted.green.elastic.loading.loading.loading:not(.segment):before, +.ui.inverted.green.elastic.loading.loading.loading .input > i.icon:before, +.ui.inverted.green.elastic.loading.loading.loading > i.icon:before, +.ui.inverted.green.loading.loading.loading.loading:not(.usual):after, +.ui.inverted.green.loading.loading.loading.loading .input > i.icon:after, +.ui.inverted.green.loading.loading.loading.loading > i.icon:after, +.ui.inverted.green.loader.loader.loader:after { + color: #2ECC40; +} + +.ui.teal.elastic.loader.loader:before, +.ui.teal.basic.elastic.loading.button:before, +.ui.teal.basic.elastic.loading.button:after, +.ui.teal.elastic.loading.loading.loading:not(.segment):before, +.ui.teal.elastic.loading.loading.loading .input > i.icon:before, +.ui.teal.elastic.loading.loading.loading.loading > i.icon:before, +.ui.teal.loading.loading.loading.loading:not(.usual):not(.button):after, +.ui.teal.loading.loading.loading.loading .input > i.icon:after, +.ui.teal.loading.loading.loading.loading > i.icon:after, +.ui.teal.loader.loader.loader:after { + color: #00B5AD; +} + +.ui.inverted.teal.elastic.loader:before, +.ui.inverted.teal.elastic.loading.loading.loading:not(.segment):before, +.ui.inverted.teal.elastic.loading.loading.loading .input > i.icon:before, +.ui.inverted.teal.elastic.loading.loading.loading > i.icon:before, +.ui.inverted.teal.loading.loading.loading.loading:not(.usual):after, +.ui.inverted.teal.loading.loading.loading.loading .input > i.icon:after, +.ui.inverted.teal.loading.loading.loading.loading > i.icon:after, +.ui.inverted.teal.loader.loader.loader:after { + color: #6DFFFF; +} + +.ui.blue.elastic.loader.loader:before, +.ui.blue.basic.elastic.loading.button:before, +.ui.blue.basic.elastic.loading.button:after, +.ui.blue.elastic.loading.loading.loading:not(.segment):before, +.ui.blue.elastic.loading.loading.loading .input > i.icon:before, +.ui.blue.elastic.loading.loading.loading.loading > i.icon:before, +.ui.blue.loading.loading.loading.loading:not(.usual):not(.button):after, +.ui.blue.loading.loading.loading.loading .input > i.icon:after, +.ui.blue.loading.loading.loading.loading > i.icon:after, +.ui.blue.loader.loader.loader:after { + color: #2185D0; +} + +.ui.inverted.blue.elastic.loader:before, +.ui.inverted.blue.elastic.loading.loading.loading:not(.segment):before, +.ui.inverted.blue.elastic.loading.loading.loading .input > i.icon:before, +.ui.inverted.blue.elastic.loading.loading.loading > i.icon:before, +.ui.inverted.blue.loading.loading.loading.loading:not(.usual):after, +.ui.inverted.blue.loading.loading.loading.loading .input > i.icon:after, +.ui.inverted.blue.loading.loading.loading.loading > i.icon:after, +.ui.inverted.blue.loader.loader.loader:after { + color: #54C8FF; +} + +.ui.violet.elastic.loader.loader:before, +.ui.violet.basic.elastic.loading.button:before, +.ui.violet.basic.elastic.loading.button:after, +.ui.violet.elastic.loading.loading.loading:not(.segment):before, +.ui.violet.elastic.loading.loading.loading .input > i.icon:before, +.ui.violet.elastic.loading.loading.loading.loading > i.icon:before, +.ui.violet.loading.loading.loading.loading:not(.usual):not(.button):after, +.ui.violet.loading.loading.loading.loading .input > i.icon:after, +.ui.violet.loading.loading.loading.loading > i.icon:after, +.ui.violet.loader.loader.loader:after { + color: #6435C9; +} + +.ui.inverted.violet.elastic.loader:before, +.ui.inverted.violet.elastic.loading.loading.loading:not(.segment):before, +.ui.inverted.violet.elastic.loading.loading.loading .input > i.icon:before, +.ui.inverted.violet.elastic.loading.loading.loading > i.icon:before, +.ui.inverted.violet.loading.loading.loading.loading:not(.usual):after, +.ui.inverted.violet.loading.loading.loading.loading .input > i.icon:after, +.ui.inverted.violet.loading.loading.loading.loading > i.icon:after, +.ui.inverted.violet.loader.loader.loader:after { + color: #A291FB; +} + +.ui.purple.elastic.loader.loader:before, +.ui.purple.basic.elastic.loading.button:before, +.ui.purple.basic.elastic.loading.button:after, +.ui.purple.elastic.loading.loading.loading:not(.segment):before, +.ui.purple.elastic.loading.loading.loading .input > i.icon:before, +.ui.purple.elastic.loading.loading.loading.loading > i.icon:before, +.ui.purple.loading.loading.loading.loading:not(.usual):not(.button):after, +.ui.purple.loading.loading.loading.loading .input > i.icon:after, +.ui.purple.loading.loading.loading.loading > i.icon:after, +.ui.purple.loader.loader.loader:after { + color: #A333C8; +} + +.ui.inverted.purple.elastic.loader:before, +.ui.inverted.purple.elastic.loading.loading.loading:not(.segment):before, +.ui.inverted.purple.elastic.loading.loading.loading .input > i.icon:before, +.ui.inverted.purple.elastic.loading.loading.loading > i.icon:before, +.ui.inverted.purple.loading.loading.loading.loading:not(.usual):after, +.ui.inverted.purple.loading.loading.loading.loading .input > i.icon:after, +.ui.inverted.purple.loading.loading.loading.loading > i.icon:after, +.ui.inverted.purple.loader.loader.loader:after { + color: #DC73FF; +} + +.ui.pink.elastic.loader.loader:before, +.ui.pink.basic.elastic.loading.button:before, +.ui.pink.basic.elastic.loading.button:after, +.ui.pink.elastic.loading.loading.loading:not(.segment):before, +.ui.pink.elastic.loading.loading.loading .input > i.icon:before, +.ui.pink.elastic.loading.loading.loading.loading > i.icon:before, +.ui.pink.loading.loading.loading.loading:not(.usual):not(.button):after, +.ui.pink.loading.loading.loading.loading .input > i.icon:after, +.ui.pink.loading.loading.loading.loading > i.icon:after, +.ui.pink.loader.loader.loader:after { + color: #E03997; +} + +.ui.inverted.pink.elastic.loader:before, +.ui.inverted.pink.elastic.loading.loading.loading:not(.segment):before, +.ui.inverted.pink.elastic.loading.loading.loading .input > i.icon:before, +.ui.inverted.pink.elastic.loading.loading.loading > i.icon:before, +.ui.inverted.pink.loading.loading.loading.loading:not(.usual):after, +.ui.inverted.pink.loading.loading.loading.loading .input > i.icon:after, +.ui.inverted.pink.loading.loading.loading.loading > i.icon:after, +.ui.inverted.pink.loader.loader.loader:after { + color: #FF8EDF; +} + +.ui.brown.elastic.loader.loader:before, +.ui.brown.basic.elastic.loading.button:before, +.ui.brown.basic.elastic.loading.button:after, +.ui.brown.elastic.loading.loading.loading:not(.segment):before, +.ui.brown.elastic.loading.loading.loading .input > i.icon:before, +.ui.brown.elastic.loading.loading.loading.loading > i.icon:before, +.ui.brown.loading.loading.loading.loading:not(.usual):not(.button):after, +.ui.brown.loading.loading.loading.loading .input > i.icon:after, +.ui.brown.loading.loading.loading.loading > i.icon:after, +.ui.brown.loader.loader.loader:after { + color: #A5673F; +} + +.ui.inverted.brown.elastic.loader:before, +.ui.inverted.brown.elastic.loading.loading.loading:not(.segment):before, +.ui.inverted.brown.elastic.loading.loading.loading .input > i.icon:before, +.ui.inverted.brown.elastic.loading.loading.loading > i.icon:before, +.ui.inverted.brown.loading.loading.loading.loading:not(.usual):after, +.ui.inverted.brown.loading.loading.loading.loading .input > i.icon:after, +.ui.inverted.brown.loading.loading.loading.loading > i.icon:after, +.ui.inverted.brown.loader.loader.loader:after { + color: #D67C1C; +} + +.ui.grey.elastic.loader.loader:before, +.ui.grey.basic.elastic.loading.button:before, +.ui.grey.basic.elastic.loading.button:after, +.ui.grey.elastic.loading.loading.loading:not(.segment):before, +.ui.grey.elastic.loading.loading.loading .input > i.icon:before, +.ui.grey.elastic.loading.loading.loading.loading > i.icon:before, +.ui.grey.loading.loading.loading.loading:not(.usual):not(.button):after, +.ui.grey.loading.loading.loading.loading .input > i.icon:after, +.ui.grey.loading.loading.loading.loading > i.icon:after, +.ui.grey.loader.loader.loader:after { + color: #767676; +} + +.ui.inverted.grey.elastic.loader:before, +.ui.inverted.grey.elastic.loading.loading.loading:not(.segment):before, +.ui.inverted.grey.elastic.loading.loading.loading .input > i.icon:before, +.ui.inverted.grey.elastic.loading.loading.loading > i.icon:before, +.ui.inverted.grey.loading.loading.loading.loading:not(.usual):after, +.ui.inverted.grey.loading.loading.loading.loading .input > i.icon:after, +.ui.inverted.grey.loading.loading.loading.loading > i.icon:after, +.ui.inverted.grey.loader.loader.loader:after { + color: #DCDDDE; +} + +.ui.black.elastic.loader.loader:before, +.ui.black.basic.elastic.loading.button:before, +.ui.black.basic.elastic.loading.button:after, +.ui.black.elastic.loading.loading.loading:not(.segment):before, +.ui.black.elastic.loading.loading.loading .input > i.icon:before, +.ui.black.elastic.loading.loading.loading.loading > i.icon:before, +.ui.black.loading.loading.loading.loading:not(.usual):not(.button):after, +.ui.black.loading.loading.loading.loading .input > i.icon:after, +.ui.black.loading.loading.loading.loading > i.icon:after, +.ui.black.loader.loader.loader:after { + color: #1B1C1D; +} + +.ui.inverted.black.elastic.loader:before, +.ui.inverted.black.elastic.loading.loading.loading:not(.segment):before, +.ui.inverted.black.elastic.loading.loading.loading .input > i.icon:before, +.ui.inverted.black.elastic.loading.loading.loading > i.icon:before, +.ui.inverted.black.loading.loading.loading.loading:not(.usual):after, +.ui.inverted.black.loading.loading.loading.loading .input > i.icon:after, +.ui.inverted.black.loading.loading.loading.loading > i.icon:after, +.ui.inverted.black.loader.loader.loader:after { + color: #545454; +} + +.ui.elastic.loader.loader:before, +.ui.elastic.loading.loading.loading:before, +.ui.elastic.loading.loading.loading .input > i.icon:before, +.ui.elastic.loading.loading.loading > i.icon:before, +.ui.loading.loading.loading.loading:not(.usual):after, +.ui.loading.loading.loading.loading .input > i.icon:after, +.ui.loading.loading.loading.loading > i.icon:after, +.ui.loader.loader.loader:after { + border-color: currentColor; +} + +.ui.elastic.loading.loading.loading.loading.button:not(.inverted):not(.basic):before { + color: #FFFFFF; +} + +.ui.elastic.basic.loading.button:before, +.ui.elastic.basic.loading.button:after { + color: #767676; +} + +.ui.double.loading.loading.loading.loading.button:after { + border-bottom-color: currentColor; +} + +/*------------------- + Inline + --------------------*/ + +.ui.inline.loader { + position: relative; + vertical-align: middle; + margin: 0; + left: 0; + top: 0; + transform: none; +} + +.ui.inline.loader.active, +.ui.inline.loader.visible { + display: inline-block; +} + +/* Centered Inline */ + +.ui.centered.inline.loader.active, +.ui.centered.inline.loader.visible { + display: block; + margin-left: auto; + margin-right: auto; +} + +.ui.loading.loading.loading.loading.loading.loading:after, +.ui.loading.loading.loading.loading.loading.loading .input > i.icon:after, +.ui.loading.loading.loading.loading.loading.loading > i.icon:after, +.ui.loader.loader.loader.loader.loader:after { + border-left-color: transparent; + border-right-color: transparent; +} + +.ui.loading.loading.loading.loading.loading.loading.loading:not(.double):after, +.ui.loading.loading.loading.loading.loading.loading.loading:not(.double) .input > i.icon:after, +.ui.loading.loading.loading.loading.loading.loading.loading:not(.double) > i.icon:after, +.ui.loader.loader.loader.loader.loader.loader:not(.double):after { + border-bottom-color: transparent; +} + +.ui.loading.loading.loading.loading.loading.loading.segment:after, +.ui.loading.loading.loading.loading.loading.loading.form:after { + border-left-color: rgba(0, 0, 0, 0.1); + border-right-color: rgba(0, 0, 0, 0.1); +} + +.ui.loading.loading.loading.loading.loading.loading.segment:not(.double):after, +.ui.loading.loading.loading.loading.loading.loading.form:not(.double):after { + border-bottom-color: rgba(0, 0, 0, 0.1); +} + +/*------------------- + Elastic + --------------------*/ + +.ui.dimmer > .ui.elastic.loader { + color: #FFFFFF; +} + +.ui.inverted.dimmer > .ui.elastic.loader { + color: #767676; +} + +.ui.elastic.loading.loading:not(.form):not(.segment):after, +.ui.elastic.loading.loading .input > i.icon:after, +.ui.elastic.loading.loading > i.icon:after, +.ui.elastic.loader.loader:after { + -webkit-animation: loader 1s infinite cubic-bezier(0.27, 1.05, 0.92, 0.61); + animation: loader 1s infinite cubic-bezier(0.27, 1.05, 0.92, 0.61); + -webkit-animation-delay: 0.3s; + animation-delay: 0.3s; +} + +.ui.elastic.loading.loading.loading:not(.form):not(.segment):before, +.ui.elastic.loading.loading.loading .input > i.icon:before, +.ui.elastic.loading.loading.loading > i.icon:before, +.ui.elastic.loader.loader:before { + -webkit-animation: elastic-loader 1s infinite cubic-bezier(0.27, 1.05, 0.92, 0.61); + animation: elastic-loader 1s infinite cubic-bezier(0.27, 1.05, 0.92, 0.61); + -moz-animation: currentcolor-elastic-loader 1s infinite cubic-bezier(0.27, 1.05, 0.92, 0.61); + border-right-color: transparent; +} + +.ui.elastic.inline.loader:empty { + -webkit-animation: loader 8s infinite linear; + animation: loader 8s infinite linear; +} + +.ui.slow.elastic.loading.loading:not(.form):not(.segment):after, +.ui.slow.elastic.loading.loading .input > i.icon:after, +.ui.slow.elastic.loading.loading > i.icon:after, +.ui.slow.elastic.loader.loader:after { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; + -webkit-animation-delay: 0.45s; + animation-delay: 0.45s; +} + +.ui.slow.elastic.loading.loading.loading:not(.form):not(.segment):before, +.ui.slow.elastic.loading.loading.loading .input > i.icon:before, +.ui.slow.elastic.loading.loading.loading > i.icon:before, +.ui.slow.elastic.loader.loader:before { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; +} + +.ui.fast.elastic.loading.loading:not(.form):not(.segment):after, +.ui.fast.elastic.loading.loading .input > i.icon:after, +.ui.fast.elastic.loading.loading > i.icon:after, +.ui.fast.elastic.loader.loader:after { + -webkit-animation-duration: 0.66s; + animation-duration: 0.66s; + -webkit-animation-delay: 0.2s; + animation-delay: 0.2s; +} + +.ui.fast.elastic.loading.loading.loading:not(.form):not(.segment):before, +.ui.fast.elastic.loading.loading.loading .input > i.icon:before, +.ui.fast.elastic.loading.loading.loading > i.icon:before, +.ui.fast.elastic.loader.loader:before { + -webkit-animation-duration: 0.66s; + animation-duration: 0.66s; +} + +@-webkit-keyframes elastic-loader { + 0%, 1% { + border-left-color: transparent; + border-bottom-color: transparent; + } + + 1.1%, 50% { + border-left-color: inherit; + } + + 10%, 35.1% { + border-bottom-color: transparent; + } + + 10.1%, 35% { + border-bottom-color: inherit; + } + + 50.1% { + border-left-color: transparent; + } + + 100% { + border-left-color: transparent; + border-bottom-color: transparent; + transform: rotate(360deg); + } +} + +@keyframes elastic-loader { + 0%, 1% { + border-left-color: transparent; + border-bottom-color: transparent; + } + + 1.1%, 50% { + border-left-color: inherit; + } + + 10%, 35.1% { + border-bottom-color: transparent; + } + + 10.1%, 35% { + border-bottom-color: inherit; + } + + 50.1% { + border-left-color: transparent; + } + + 100% { + border-left-color: transparent; + border-bottom-color: transparent; + transform: rotate(360deg); + } +} + +@-webkit-keyframes currentcolor-elastic-loader { + 0%, 1% { + border-left-color: transparent; + border-bottom-color: transparent; + } + + 1.1%, 50% { + border-left-color: currentColor; + } + + 10%, 35.1% { + border-bottom-color: transparent; + } + + 10.1%, 35% { + border-bottom-color: currentColor; + } + + 50.1% { + border-left-color: transparent; + } + + 100% { + border-left-color: transparent; + border-bottom-color: transparent; + transform: rotate(360deg); + } +} + +@keyframes currentcolor-elastic-loader { + 0%, 1% { + border-left-color: transparent; + border-bottom-color: transparent; + } + + 1.1%, 50% { + border-left-color: currentColor; + } + + 10%, 35.1% { + border-bottom-color: transparent; + } + + 10.1%, 35% { + border-bottom-color: currentColor; + } + + 50.1% { + border-left-color: transparent; + } + + 100% { + border-left-color: transparent; + border-bottom-color: transparent; + transform: rotate(360deg); + } +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/* + * # Fomantic - Menu + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Copyright 2015 Contributor + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Standard +*******************************/ + +/*-------------- + Menu +---------------*/ + +.ui.menu { + display: flex; + margin: 1rem 0; + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + background: #FFFFFF; + font-weight: normal; + border: 1px solid rgba(34, 36, 38, 0.15); + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15); + border-radius: 0.28571429rem; + min-height: 2.85714286em; +} + +.ui.menu:after { + content: ''; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.ui.menu:first-child { + margin-top: 0; +} + +.ui.menu:last-child { + margin-bottom: 0; +} + +/*-------------- + Sub-Menu +---------------*/ + +.ui.menu .menu { + margin: 0; +} + +.ui.menu:not(.vertical) > .menu { + display: flex; +} + +/*-------------- + Item +---------------*/ + +.ui.menu:not(.vertical) .item { + display: flex; + align-items: center; +} + +.ui.menu .item { + position: relative; + vertical-align: middle; + line-height: 1; + text-decoration: none; + -webkit-tap-highlight-color: transparent; + flex: 0 0 auto; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + background: none; + padding: 0.92857143em 1.14285714em; + text-transform: none; + color: rgba(0, 0, 0, 0.87); + font-weight: normal; + transition: background 0.1s ease, box-shadow 0.1s ease, color 0.1s ease; +} + +.ui.menu > .item:first-child { + border-radius: 0.28571429rem 0 0 0.28571429rem; +} + +/* Border */ + +.ui.menu .item:before { + position: absolute; + content: ''; + top: 0; + right: 0; + height: 100%; + width: 1px; + background: rgba(34, 36, 38, 0.1); +} + +/*-------------- + Text Content +---------------*/ + +.ui.menu .text.item > *, +.ui.menu .item > a:not(.ui), +.ui.menu .item > p:only-child { + -webkit-user-select: text; + -moz-user-select: text; + user-select: text; + line-height: 1.3; +} + +.ui.menu .item > p:first-child { + margin-top: 0; +} + +.ui.menu .item > p:last-child { + margin-bottom: 0; +} + +/*-------------- + Icons +---------------*/ + +.ui.menu .item > i.icon { + opacity: 0.9; + float: none; + margin: 0 0.35714286em 0 0; +} + +/*-------------- + Button +---------------*/ + +.ui.menu:not(.vertical) .item > .button { + position: relative; + top: 0; + margin: -0.5em 0; + padding-bottom: 0.78571429em; + padding-top: 0.78571429em; + font-size: 1em; +} + +/*---------------- + Grid / Container +-----------------*/ + +.ui.menu > .grid, +.ui.menu > .container { + display: flex; + align-items: inherit; + flex-direction: inherit; +} + +/*-------------- + Inputs +---------------*/ + +.ui.menu .item > .input { + width: 100%; +} + +.ui.menu:not(.vertical) .item > .input { + position: relative; + top: 0; + margin: -0.5em 0; +} + +.ui.menu .item > .input input { + font-size: 1em; + padding-top: 0.57142857em; + padding-bottom: 0.57142857em; +} + +/*-------------- + Header +---------------*/ + +.ui.menu .header.item, +.ui.vertical.menu .header.item { + margin: 0; + background: ''; + text-transform: normal; + font-weight: bold; +} + +.ui.vertical.menu .item > .header:not(.ui) { + margin: 0 0 0.5em; + font-size: 1em; + font-weight: bold; +} + +/*-------------- + Dropdowns +---------------*/ + +/* Dropdown Icon */ + +.ui.menu .item > i.dropdown.icon { + padding: 0; + float: right; + margin: 0 0 0 1em; +} + +/* Menu */ + +.ui.menu .dropdown.item .menu { + min-width: calc(100% - 1px); + border-radius: 0 0 0.28571429rem 0.28571429rem; + background: #FFFFFF; + margin: 0 0 0; + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.08); + flex-direction: column !important; +} + +/* Menu Items */ + +.ui.menu .ui.dropdown .menu > .item { + margin: 0; + text-align: left; + font-size: 1em !important; + padding: 0.78571429em 1.14285714em !important; + background: transparent !important; + color: rgba(0, 0, 0, 0.87) !important; + text-transform: none !important; + font-weight: normal !important; + box-shadow: none !important; + transition: none !important; +} + +.ui.menu .ui.dropdown .menu > .item:hover { + background: rgba(0, 0, 0, 0.05) !important; + color: rgba(0, 0, 0, 0.95) !important; +} + +.ui.menu .ui.dropdown .menu > .selected.item { + background: rgba(0, 0, 0, 0.05) !important; + color: rgba(0, 0, 0, 0.95) !important; +} + +.ui.menu .ui.dropdown .menu > .active.item { + background: rgba(0, 0, 0, 0.03) !important; + font-weight: bold !important; + color: rgba(0, 0, 0, 0.95) !important; +} + +.ui.menu .ui.dropdown.item .menu .item:not(.filtered) { + display: block; +} + +.ui.menu .ui.dropdown .menu > .item > .icons, +.ui.menu .ui.dropdown .menu > .item > i.icon:not(.dropdown) { + display: inline-block; + font-size: 1em !important; + float: none; + margin: 0 0.75em 0 0 !important; +} + +/* Secondary */ + +.ui.secondary.menu .dropdown.item > .menu, +.ui.text.menu .dropdown.item > .menu { + border-radius: 0.28571429rem; + margin-top: 0.35714286em; +} + +/* Pointing */ + +.ui.menu .pointing.dropdown.item .menu { + margin-top: 0.75em; +} + +/* Inverted */ + +.ui.inverted.menu .search.dropdown.item > .search, +.ui.inverted.menu .search.dropdown.item > .text { + color: rgba(255, 255, 255, 0.9); +} + +/* Vertical */ + +.ui.vertical.menu .dropdown.item > i.icon { + float: right; + content: "\f0da"; + margin-left: 1em; +} + +.ui.vertical.menu .dropdown.item .menu { + left: 100%; + /* IE needs 0, all others support max-content to show dropdown icon inline, so keep both settings! */ + min-width: 0; + min-width: -webkit-max-content; + min-width: -moz-max-content; + min-width: max-content; + margin: 0 0 0 0; + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.08); + border-radius: 0 0.28571429rem 0.28571429rem 0.28571429rem; +} + +.ui.vertical.menu .dropdown.item.upward .menu { + bottom: 0; +} + +.ui.vertical.menu .dropdown.item:not(.upward) .menu { + top: 0; +} + +.ui.vertical.menu .active.dropdown.item { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.ui.vertical.menu .dropdown.active.item { + box-shadow: none; +} + +/* Evenly Divided */ + +.ui.item.menu .dropdown .menu .item { + width: 100%; +} + +/*-------------- + Labels +---------------*/ + +.ui.menu .item > .label:not(.floating) { + margin-left: 1em; + padding: 0.3em 0.78571429em; +} + +.ui.vertical.menu .item > .label { + margin-top: -0.15em; + margin-bottom: -0.15em; + padding: 0.3em 0.78571429em; +} + +.ui.menu .item > .floating.label { + padding: 0.3em 0.78571429em; +} + +.ui.menu .item > .label { + background: #999999; + color: #FFFFFF; +} + +.ui.menu .item > .image.label img { + margin: -0.2833em 0.8em -0.2833em -0.8em; + height: 1.5666em; +} + +/*-------------- + Images +---------------*/ + +.ui.menu .item > img:not(.ui) { + display: inline-block; + vertical-align: middle; + margin: -0.3em 0; + width: 2.5em; +} + +.ui.vertical.menu .item > img:not(.ui):only-child { + display: block; + max-width: 100%; + width: auto; +} + +/******************************* + Coupling +*******************************/ + +/*-------------- + List +---------------*/ + +/* Menu divider shouldnt apply */ + +.ui.menu .list .item:before { + background: none !important; +} + +/*-------------- + Sidebar + ---------------*/ + +/* Show vertical dividers below last */ + +.ui.vertical.sidebar.menu > .item:first-child:before { + display: block !important; +} + +.ui.vertical.sidebar.menu > .item::before { + top: auto; + bottom: 0; +} + +/*-------------- + Container +---------------*/ + +@media only screen and (max-width: 767.98px) { + .ui.menu > .ui.container { + width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + } +} + +@media only screen and (min-width: 768px) { + .ui.menu:not(.secondary):not(.text):not(.tabular):not(.borderless) > .container > .item:not(.right):not(.borderless):first-child { + border-left: 1px solid rgba(34, 36, 38, 0.1); + } + + .ui.menu:not(.secondary):not(.text):not(.tabular):not(.borderless) > .container > .right.item:not(.borderless):last-child, + .ui.menu:not(.secondary):not(.text):not(.tabular):not(.borderless) > .container > .right.menu > .item:not(.borderless):last-child { + border-right: 1px solid rgba(34, 36, 38, 0.1); + } +} + +/******************************* + States +*******************************/ + +/*-------------- + Hover +---------------*/ + +.ui.link.menu .item:hover, +.ui.menu .dropdown.item:hover, +.ui.menu .link.item:hover, +.ui.menu a.item:hover { + cursor: pointer; + background: rgba(0, 0, 0, 0.03); + color: rgba(0, 0, 0, 0.95); +} + +/*-------------- + Pressed +---------------*/ + +.ui.link.menu .item:active, +.ui.menu .link.item:active, +.ui.menu a.item:active { + background: rgba(0, 0, 0, 0.03); + color: rgba(0, 0, 0, 0.95); +} + +/*-------------- + Active +---------------*/ + +.ui.menu .active.item { + background: rgba(0, 0, 0, 0.05); + color: rgba(0, 0, 0, 0.95); + font-weight: normal; + box-shadow: none; +} + +.ui.menu .active.item > i.icon { + opacity: 1; +} + +/*-------------- + Active Hover +---------------*/ + +.ui.menu .active.item:hover, +.ui.vertical.menu .active.item:hover { + background-color: rgba(0, 0, 0, 0.05); + color: rgba(0, 0, 0, 0.95); +} + +/*-------------- + Disabled +---------------*/ + +.ui.ui.menu .item.disabled { + cursor: default; + background-color: transparent; + color: rgba(40, 40, 40, 0.3); + pointer-events: none; +} + +/******************************* + Types +*******************************/ + +/*------------------ +Floated Menu / Item +-------------------*/ + +/* Left Floated */ + +.ui.menu:not(.vertical) .left.item, +.ui.menu:not(.vertical) .left.menu { + display: flex; + margin-right: auto !important; +} + +/* Right Floated */ + +.ui.menu:not(.vertical) .right.item, +.ui.menu:not(.vertical) .right.menu { + display: flex; + margin-left: auto !important; +} + +.ui.menu:not(.vertical) :not(.dropdown) > .left.menu, +.ui.menu:not(.vertical) :not(.dropdown) > .right.menu { + display: inherit; +} + +/* Center */ + +.ui.menu:not(.vertical) .center.item, +.ui.menu:not(.vertical) .center.menu { + display: flex; + margin-left: auto !important; + margin-right: auto !important; +} + +/* Swapped Borders */ + +.ui.menu .right.item::before, +.ui.menu .right.menu > .item::before { + right: auto; + left: 0; +} + +/* Remove Outer Borders */ + +.ui.menu .center.item:last-child::before, +.ui.menu .center.menu > .item:last-child::before { + display: none; +} + +/*-------------- + Vertical + ---------------*/ + +.ui.vertical.menu { + display: block; + flex-direction: column; + background: #FFFFFF; + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15); +} + +/*--- Item ---*/ + +.ui.vertical.menu .item { + display: block; + background: none; + border-top: none; + border-right: none; +} + +.ui.vertical.menu > .item:first-child { + border-radius: 0.28571429rem 0.28571429rem 0 0; +} + +.ui.vertical.menu > .item:last-child { + border-radius: 0 0 0.28571429rem 0.28571429rem; +} + +/*--- Label ---*/ + +.ui.vertical.menu .item > .label { + float: right; + text-align: center; +} + +/*--- Icon ---*/ + +.ui.vertical.menu .item > i.icon, +.ui.vertical.menu .item > i.icons { + width: 1.18em; + float: right; + margin: 0 0 0 0.5em; +} + +.ui.vertical.menu .item > .label + i.icon { + float: none; + margin: 0 0.5em 0 0; +} + +/*--- Border ---*/ + +.ui.vertical.menu .item:before { + position: absolute; + content: ''; + top: 0; + left: 0; + width: 100%; + height: 1px; + background: rgba(34, 36, 38, 0.1); +} + +.ui.vertical.menu .item:first-child:before { + display: none !important; +} + +/*--- Sub Menu ---*/ + +.ui.vertical.menu .item > .menu { + margin: 0.5em -1.14285714em 0; +} + +.ui.vertical.menu .menu .item { + background: none; + padding: 0.5em 1.33333333em; + font-size: 0.85714286em; + color: rgba(0, 0, 0, 0.5); +} + +.ui.vertical.menu .item .menu a.item:hover, +.ui.vertical.menu .item .menu .link.item:hover { + color: rgba(0, 0, 0, 0.85); +} + +.ui.vertical.menu .menu .item:before { + display: none; +} + +/* Vertical Active */ + +.ui.vertical.menu .active.item { + background: rgba(0, 0, 0, 0.05); + border-radius: 0; + box-shadow: none; +} + +.ui.vertical.menu > .active.item:first-child { + border-radius: 0.28571429rem 0.28571429rem 0 0; +} + +.ui.vertical.menu > .active.item:last-child { + border-radius: 0 0 0.28571429rem 0.28571429rem; +} + +.ui.vertical.menu > .active.item:only-child { + border-radius: 0.28571429rem; +} + +.ui.vertical.menu .active.item .menu .active.item { + border-left: none; +} + +.ui.vertical.menu .item .menu .active.item { + background-color: transparent; + font-weight: bold; + color: rgba(0, 0, 0, 0.95); +} + +/*-------------- + Tabular + ---------------*/ + +.ui.tabular.menu { + border-radius: 0; + box-shadow: none !important; + border: none; + background: none transparent; + border-bottom: 1px solid #D4D4D5; +} + +.ui.tabular.fluid.menu { + width: calc(100% + 2px) !important; +} + +.ui.tabular.menu .item { + background: transparent; + border-bottom: none; + border-left: 1px solid transparent; + border-right: 1px solid transparent; + border-top: 2px solid transparent; + padding: 0.92857143em 1.42857143em; + color: rgba(0, 0, 0, 0.87); +} + +.ui.tabular.menu .item:before { + display: none; +} + +/* Hover */ + +.ui.tabular.menu .item:hover { + background-color: transparent; + color: rgba(0, 0, 0, 0.8); +} + +/* Active */ + +.ui.tabular.menu .active.item { + background: none #FFFFFF; + color: rgba(0, 0, 0, 0.95); + border-top-width: 1px; + border-color: #D4D4D5; + font-weight: bold; + margin-bottom: -1px; + box-shadow: none; + border-radius: 0.28571429rem 0.28571429rem 0 0 !important; +} + +/* Coupling with segment for attachment */ + +.ui.tabular.menu + .attached:not(.top).segment, +.ui.tabular.menu + .attached:not(.top).segment + .attached:not(.top).segment { + border-top: none; + margin-left: 0; + margin-top: 0; + margin-right: 0; + width: 100%; +} + +.top.attached.segment + .ui.bottom.tabular.menu { + position: relative; + width: calc(100% + 2px); + left: -1px; +} + +/* Bottom Vertical Tabular */ + +.ui.bottom.tabular.menu { + background: none transparent; + border-radius: 0; + box-shadow: none !important; + border-bottom: none; + border-top: 1px solid #D4D4D5; +} + +.ui.bottom.tabular.menu .item { + background: none; + border-left: 1px solid transparent; + border-right: 1px solid transparent; + border-bottom: 1px solid transparent; + border-top: none; +} + +.ui.bottom.tabular.menu .active.item { + background: none #FFFFFF; + color: rgba(0, 0, 0, 0.95); + border-color: #D4D4D5; + margin: -1px 0 0 0; + border-radius: 0 0 0.28571429rem 0.28571429rem !important; +} + +/* Vertical Tabular (Left) */ + +.ui.vertical.tabular.menu { + background: none transparent; + border-radius: 0; + box-shadow: none !important; + border-bottom: none; + border-right: 1px solid #D4D4D5; +} + +.ui.vertical.tabular.menu .item { + background: none; + border-left: 1px solid transparent; + border-bottom: 1px solid transparent; + border-top: 1px solid transparent; + border-right: none; +} + +.ui.vertical.tabular.menu .active.item { + background: none #FFFFFF; + color: rgba(0, 0, 0, 0.95); + border-color: #D4D4D5; + margin: 0 -1px 0 0; + border-radius: 0.28571429rem 0 0 0.28571429rem !important; +} + +/* Vertical Right Tabular */ + +.ui.vertical.right.tabular.menu { + background: none transparent; + border-radius: 0; + box-shadow: none !important; + border-bottom: none; + border-right: none; + border-left: 1px solid #D4D4D5; +} + +.ui.vertical.right.tabular.menu .item { + background: none; + border-right: 1px solid transparent; + border-bottom: 1px solid transparent; + border-top: 1px solid transparent; + border-left: none; +} + +.ui.vertical.right.tabular.menu .active.item { + background: none #FFFFFF; + color: rgba(0, 0, 0, 0.95); + border-color: #D4D4D5; + margin: 0 0 0 -1px; + border-radius: 0 0.28571429rem 0.28571429rem 0 !important; +} + +/* Dropdown */ + +.ui.tabular.menu .active.dropdown.item { + margin-bottom: 0; + border-left: 1px solid transparent; + border-right: 1px solid transparent; + border-top: 2px solid transparent; + border-bottom: none; +} + +/*-------------- + Pagination + ---------------*/ + +.ui.pagination.menu { + margin: 0; + display: inline-flex; + vertical-align: middle; +} + +.ui.pagination.menu .item:last-child { + border-radius: 0 0.28571429rem 0.28571429rem 0; +} + +.ui.compact.menu .item:last-child { + border-radius: 0 0.28571429rem 0.28571429rem 0; +} + +.ui.pagination.menu .item:last-child:before { + display: none; +} + +.ui.pagination.menu .item { + min-width: 3em; + text-align: center; +} + +.ui.pagination.menu .icon.item i.icon { + vertical-align: top; +} + +/* Active */ + +.ui.pagination.menu .active.item { + border-top: none; + padding-top: 0.92857143em; + background-color: rgba(0, 0, 0, 0.05); + color: rgba(0, 0, 0, 0.95); + box-shadow: none; +} + +/*-------------- + Secondary + ---------------*/ + +.ui.secondary.menu { + background: none; + margin-left: -0.35714286em; + margin-right: -0.35714286em; + border-radius: 0; + border: none; + box-shadow: none; +} + +/* Item */ + +.ui.secondary.menu .item { + align-self: center; + box-shadow: none; + border: none; + padding: 0.78571429em 0.92857143em; + margin: 0 0.35714286em; + background: none; + transition: color 0.1s ease; + border-radius: 0.28571429rem; +} + +/* No Divider */ + +.ui.secondary.menu .item:before { + display: none !important; +} + +/* Header */ + +.ui.secondary.menu .header.item { + border-radius: 0; + border-right: none; + background: none transparent; +} + +/* Image */ + +.ui.secondary.menu .item > img:not(.ui) { + margin: 0; +} + +/* Hover */ + +.ui.secondary.menu .dropdown.item:hover, +.ui.secondary.menu .link.item:hover, +.ui.secondary.menu a.item:hover { + background: rgba(0, 0, 0, 0.05); + color: rgba(0, 0, 0, 0.95); +} + +/* Active */ + +.ui.secondary.menu .active.item { + box-shadow: none; + background: rgba(0, 0, 0, 0.05); + color: rgba(0, 0, 0, 0.95); + border-radius: 0.28571429rem; +} + +/* Active Hover */ + +.ui.secondary.menu .active.item:hover { + box-shadow: none; + background: rgba(0, 0, 0, 0.05); + color: rgba(0, 0, 0, 0.95); +} + +/* Inverted */ + +.ui.secondary.inverted.menu .link.item:not(.disabled), +.ui.secondary.inverted.menu a.item:not(.disabled) { + color: rgba(255, 255, 255, 0.7); +} + +.ui.secondary.inverted.menu .dropdown.item:hover, +.ui.secondary.inverted.menu .link.item:hover, +.ui.secondary.inverted.menu a.item:hover { + background: rgba(255, 255, 255, 0.08); + color: #ffffff; +} + +.ui.secondary.inverted.menu .active.item { + background: rgba(255, 255, 255, 0.15); + color: #ffffff; +} + +/* Fix item margins */ + +.ui.secondary.item.menu { + margin-left: 0; + margin-right: 0; +} + +.ui.secondary.item.menu .item:last-child { + margin-right: 0; +} + +.ui.secondary.attached.menu { + box-shadow: none; +} + +/*--------------------- + Secondary Vertical + -----------------------*/ + +/* Sub Menu */ + +.ui.vertical.secondary.menu .item:not(.dropdown) > .menu { + margin: 0 -0.92857143em; +} + +.ui.vertical.secondary.menu .item:not(.dropdown) > .menu > .item { + margin: 0; + padding: 0.5em 1.33333333em; +} + +.ui.secondary.vertical.menu > .item { + border: none; + margin: 0 0 0.35714286em; + border-radius: 0.28571429rem !important; +} + +.ui.secondary.vertical.menu > .header.item { + border-radius: 0; +} + +/* Sub Menu */ + +.ui.vertical.secondary.menu .item > .menu .item { + background-color: transparent; +} + +/* Inverted */ + +.ui.secondary.inverted.menu { + background-color: transparent; +} + +/*--------------------- + Secondary Pointing + -----------------------*/ + +.ui.secondary.pointing.menu { + margin-left: 0; + margin-right: 0; + border-bottom: 2px solid rgba(34, 36, 38, 0.15); +} + +.ui.secondary.pointing.menu .item { + border-bottom-color: transparent; + border-bottom-style: solid; + border-radius: 0; + align-self: flex-end; + margin: 0 0 -2px; + padding: 0.85714286em 1.14285714em; + border-bottom-width: 2px; + transition: color 0.1s ease; +} + +.ui.secondary.pointing.menu .ui.dropdown .menu .item { + border-bottom-width: 0; +} + +.ui.secondary.pointing.menu .item > .label:not(.floating) { + margin-top: -0.3em; + margin-bottom: -0.3em; +} + +.ui.secondary.pointing.menu .item > .circular.label { + margin-top: -0.5em; + margin-bottom: -0.5em; +} + +/* Item Types */ + +.ui.secondary.pointing.menu .header.item { + color: rgba(0, 0, 0, 0.85) !important; +} + +.ui.secondary.pointing.menu .text.item { + box-shadow: none !important; +} + +.ui.secondary.pointing.menu .item:after { + display: none; +} + +/* Hover */ + +.ui.secondary.pointing.menu .dropdown.item:hover, +.ui.secondary.pointing.menu .link.item:hover, +.ui.secondary.pointing.menu a.item:hover { + background-color: transparent; + color: rgba(0, 0, 0, 0.87); +} + +/* Pressed */ + +.ui.secondary.pointing.menu .dropdown.item:active, +.ui.secondary.pointing.menu .link.item:active, +.ui.secondary.pointing.menu a.item:active { + background-color: transparent; + border-color: rgba(34, 36, 38, 0.15); +} + +/* Active */ + +.ui.secondary.pointing.menu .active.item { + background-color: transparent; + box-shadow: none; + border-color: currentColor; + font-weight: bold; + color: rgba(0, 0, 0, 0.95); +} + +/* Active Hover */ + +.ui.secondary.pointing.menu .active.item:hover { + border-color: currentColor; + color: rgba(0, 0, 0, 0.95); +} + +/* Active Dropdown */ + +.ui.secondary.pointing.menu .active.dropdown.item { + border-color: transparent; +} + +/* Vertical Pointing */ + +.ui.secondary.vertical.pointing.menu { + border-bottom-width: 0; + border-right-width: 2px; + border-right-style: solid; + border-right-color: rgba(34, 36, 38, 0.15); +} + +.ui.secondary.vertical.pointing.menu .item { + border-bottom: none; + border-right-style: solid; + border-right-color: transparent; + border-radius: 0 !important; + margin: 0 -2px 0 0; + border-right-width: 2px; +} + +/* Vertical Active */ + +.ui.secondary.vertical.pointing.menu .active.item { + border-color: currentColor; +} + +/* Inverted */ + +.ui.secondary.inverted.pointing.menu { + border-color: rgba(255, 255, 255, 0.1); +} + +.ui.secondary.inverted.pointing.menu .item:not(.disabled) { + color: rgba(255, 255, 255, 0.9); +} + +.ui.secondary.inverted.pointing.menu .header.item { + color: #FFFFFF !important; +} + +/* Hover */ + +.ui.secondary.inverted.pointing.menu .link.item:hover, +.ui.secondary.inverted.pointing.menu a.item:hover { + color: #ffffff; +} + +/* Active */ + +.ui.ui.secondary.inverted.pointing.menu .active.item { + border-color: #FFFFFF; + color: #ffffff; + background-color: transparent; +} + +/*-------------- + Text Menu + ---------------*/ + +.ui.text.menu { + background: none transparent; + border-radius: 0; + box-shadow: none; + border: none; + margin: 1em -0.5em; +} + +.ui.text.menu .item { + border-radius: 0; + box-shadow: none; + align-self: center; + margin: 0 0; + padding: 0.35714286em 0.5em; + font-weight: normal; + color: rgba(0, 0, 0, 0.6); + transition: opacity 0.1s ease; +} + +/* Border */ + +.ui.text.menu .item:before, +.ui.text.menu .menu .item:before { + display: none !important; +} + +/* Header */ + +.ui.text.menu .header.item { + background-color: transparent; + opacity: 1; + color: rgba(0, 0, 0, 0.85); + font-size: 0.92857143em; + text-transform: uppercase; + font-weight: bold; +} + +/* Image */ + +.ui.text.menu .item > img:not(.ui) { + margin: 0; +} + +/*--- fluid text ---*/ + +.ui.text.item.menu .item { + margin: 0; +} + +/*--- vertical text ---*/ + +.ui.vertical.text.menu { + margin: 1em 0; +} + +.ui.vertical.text.menu:first-child { + margin-top: 0; +} + +.ui.vertical.text.menu:last-child { + margin-bottom: 0; +} + +.ui.vertical.text.menu .item { + margin: 0.57142857em 0; + padding-left: 0; + padding-right: 0; +} + +.ui.vertical.text.menu .item > i.icon { + float: none; + margin: 0 0.35714286em 0 0; +} + +.ui.vertical.text.menu .header.item { + margin: 0.57142857em 0 0.71428571em; +} + +/* Vertical Sub Menu */ + +.ui.vertical.text.menu .item:not(.dropdown) > .menu { + margin: 0; +} + +.ui.vertical.text.menu .item:not(.dropdown) > .menu > .item { + margin: 0; + padding: 0.5em 0; +} + +/*--- hover ---*/ + +.ui.text.menu .item:hover { + opacity: 1; + background-color: transparent; +} + +/*--- active ---*/ + +.ui.text.menu .active.item { + background-color: transparent; + border: none; + box-shadow: none; + font-weight: normal; + color: rgba(0, 0, 0, 0.95); +} + +/*--- active hover ---*/ + +.ui.text.menu .active.item:hover { + background-color: transparent; +} + +/* Disable Bariations */ + +.ui.text.pointing.menu .active.item:after { + box-shadow: none; +} + +.ui.text.attached.menu { + box-shadow: none; +} + +/* Inverted */ + +.ui.inverted.text.menu, +.ui.inverted.text.menu .item, +.ui.inverted.text.menu .item:hover, +.ui.inverted.text.menu .active.item { + background-color: transparent; +} + +/* Fluid */ + +.ui.fluid.text.menu { + margin-left: 0; + margin-right: 0; +} + +/*-------------- + Icon Only +---------------*/ + +/* Vertical Menu */ + +.ui.vertical.icon.menu { + display: inline-block; + width: auto; +} + +/* Item */ + +.ui.icon.menu .item { + height: auto; + text-align: center; + color: #1B1C1D; +} + +/* Icon */ + +.ui.icon.menu .item > i.icon:not(.dropdown) { + margin: 0; + opacity: 1; +} + +/* Icon Gylph */ + +.ui.icon.menu i.icon:before { + opacity: 1; +} + +/* (x) Item Icon */ + +.ui.menu .icon.item > i.icon { + width: auto; + margin: 0 auto; +} + +/* Vertical Icon */ + +.ui.vertical.icon.menu .item > i.icon:not(.dropdown) { + display: block; + opacity: 1; + margin: 0 auto; + float: none; +} + +/* Inverted */ + +.ui.inverted.icon.menu .item { + color: #FFFFFF; +} + +/*-------------- + Labeled Icon + ---------------*/ + +/* Menu */ + +.ui.labeled.icon.menu { + text-align: center; +} + +/* Item */ + +.ui.labeled.icon.menu .item { + min-width: 6em; + flex-direction: column; +} + +/* Icon */ + +.ui.labeled.icon.menu > .item > i.icon:not(.dropdown) { + height: 1em; + display: block; + font-size: 1.71428571em !important; + margin: 0 auto 0.5rem !important; +} + +/* Fluid */ + +.ui.fluid.labeled.icon.menu > .item { + min-width: 0; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Stackable + ---------------*/ + +@media only screen and (max-width: 767.98px) { + .ui.stackable.menu { + flex-direction: column; + } + + .ui.stackable.menu .item { + width: 100% !important; + } + + .ui.stackable.menu .item:before { + position: absolute; + content: ''; + top: auto; + bottom: 0; + left: 0; + width: 100%; + height: 1px; + background: rgba(34, 36, 38, 0.1); + } + + .ui.stackable.menu .left.menu, + .ui.stackable.menu .left.item { + margin-right: 0 !important; + } + + .ui.stackable.menu .right.menu, + .ui.stackable.menu .right.item { + margin-left: 0 !important; + } + + .ui.stackable.menu .center.menu, + .ui.stackable.menu .center.item { + margin-left: 0 !important; + margin-right: 0 !important; + } + + .ui.stackable.menu .right.menu, + .ui.stackable.menu .center.menu, + .ui.stackable.menu .left.menu { + flex-direction: column; + } +} + +/*-------------- + Colors +---------------*/ + +.ui.ui.ui.menu .primary.active.item, +.ui.ui.primary.menu .active.item:hover, +.ui.ui.primary.menu .active.item { + color: #2185D0; +} + +.ui.ui.ui.menu .red.active.item, +.ui.ui.red.menu .active.item:hover, +.ui.ui.red.menu .active.item { + color: #DB2828; +} + +.ui.ui.ui.menu .orange.active.item, +.ui.ui.orange.menu .active.item:hover, +.ui.ui.orange.menu .active.item { + color: #F2711C; +} + +.ui.ui.ui.menu .yellow.active.item, +.ui.ui.yellow.menu .active.item:hover, +.ui.ui.yellow.menu .active.item { + color: #FBBD08; +} + +.ui.ui.ui.menu .olive.active.item, +.ui.ui.olive.menu .active.item:hover, +.ui.ui.olive.menu .active.item { + color: #B5CC18; +} + +.ui.ui.ui.menu .green.active.item, +.ui.ui.green.menu .active.item:hover, +.ui.ui.green.menu .active.item { + color: #21BA45; +} + +.ui.ui.ui.menu .teal.active.item, +.ui.ui.teal.menu .active.item:hover, +.ui.ui.teal.menu .active.item { + color: #00B5AD; +} + +.ui.ui.ui.menu .blue.active.item, +.ui.ui.blue.menu .active.item:hover, +.ui.ui.blue.menu .active.item { + color: #2185D0; +} + +.ui.ui.ui.menu .violet.active.item, +.ui.ui.violet.menu .active.item:hover, +.ui.ui.violet.menu .active.item { + color: #6435C9; +} + +.ui.ui.ui.menu .purple.active.item, +.ui.ui.purple.menu .active.item:hover, +.ui.ui.purple.menu .active.item { + color: #A333C8; +} + +.ui.ui.ui.menu .pink.active.item, +.ui.ui.pink.menu .active.item:hover, +.ui.ui.pink.menu .active.item { + color: #E03997; +} + +.ui.ui.ui.menu .brown.active.item, +.ui.ui.brown.menu .active.item:hover, +.ui.ui.brown.menu .active.item { + color: #A5673F; +} + +.ui.ui.ui.menu .grey.active.item, +.ui.ui.grey.menu .active.item:hover, +.ui.ui.grey.menu .active.item { + color: #767676; +} + +.ui.ui.ui.menu .black.active.item, +.ui.ui.black.menu .active.item:hover, +.ui.ui.black.menu .active.item { + color: #1B1C1D; +} + +/*-------------- + Inverted + ---------------*/ + +.ui.inverted.menu { + border: 0 solid transparent; + background: #1B1C1D; + box-shadow: none; +} + +/* Menu Item */ + +.ui.inverted.menu .item, +.ui.inverted.menu .item > a:not(.ui) { + background: transparent; + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.menu .item.menu { + background: transparent; +} + +/*--- Border ---*/ + +.ui.inverted.menu .item:before { + background: rgba(255, 255, 255, 0.08); +} + +.ui.vertical.inverted.menu .item:before { + background: rgba(255, 255, 255, 0.08); +} + +/* Sub Menu */ + +.ui.vertical.inverted.menu .menu .item, +.ui.vertical.inverted.menu .menu .item a:not(.ui) { + color: rgba(255, 255, 255, 0.5); +} + +/* Header */ + +.ui.inverted.menu .header.item { + margin: 0; + background: transparent; + box-shadow: none; +} + +/* Disabled */ + +.ui.ui.inverted.menu .item.disabled { + color: rgba(225, 225, 225, 0.3); +} + +/*--- Hover ---*/ + +.ui.link.inverted.menu .item:hover, +.ui.inverted.menu .dropdown.item:hover, +.ui.inverted.menu .link.item:hover, +.ui.inverted.menu a.item:hover { + background: rgba(255, 255, 255, 0.08); + color: #ffffff; +} + +.ui.vertical.inverted.menu .item .menu a.item:hover, +.ui.vertical.inverted.menu .item .menu .link.item:hover { + background: transparent; + color: #ffffff; +} + +/*--- Pressed ---*/ + +.ui.inverted.menu a.item:active, +.ui.inverted.menu .link.item:active { + background: rgba(255, 255, 255, 0.08); + color: #ffffff; +} + +/*--- Active ---*/ + +.ui.inverted.menu .active.item { + background: #3D3E3F; + color: #ffffff !important; +} + +.ui.inverted.vertical.menu .item .menu .active.item { + background: transparent; + color: #FFFFFF; +} + +.ui.inverted.pointing.menu .active.item:after { + background: #3D3E3F; + margin: 0 !important; + box-shadow: none !important; + border: none !important; +} + +/*--- Active Hover ---*/ + +.ui.inverted.menu .active.item:hover { + background: #3D3E3F; + color: #FFFFFF !important; +} + +.ui.inverted.pointing.menu .active.item:hover:after { + background: #3D3E3F; +} + +/*-------------- + Floated + ---------------*/ + +.ui.floated.menu { + float: left; + margin: 0 0.5rem 0 0; +} + +.ui.floated.menu .item:last-child:before { + display: none; +} + +.ui.right.floated.menu { + float: right; + margin: 0 0 0 0.5rem; +} + +/*-------------- + Inverted + ---------------*/ + +.ui.ui.ui.inverted.menu .primary.active.item, +.ui.ui.inverted.primary.menu { + background-color: #2185D0; +} + +.ui.inverted.primary.menu .item:before { + background-color: rgba(34, 36, 38, 0.1); +} + +.ui.ui.inverted.primary.menu .active.item { + background-color: rgba(0, 0, 0, 0.1); +} + +.ui.inverted.pointing.primary.menu .active.item { + background-color: #1678c2; +} + +.ui.ui.ui.inverted.menu .red.active.item, +.ui.ui.inverted.red.menu { + background-color: #DB2828; +} + +.ui.inverted.red.menu .item:before { + background-color: rgba(34, 36, 38, 0.1); +} + +.ui.ui.inverted.red.menu .active.item { + background-color: rgba(0, 0, 0, 0.1); +} + +.ui.inverted.pointing.red.menu .active.item { + background-color: #d01919; +} + +.ui.ui.ui.inverted.menu .orange.active.item, +.ui.ui.inverted.orange.menu { + background-color: #F2711C; +} + +.ui.inverted.orange.menu .item:before { + background-color: rgba(34, 36, 38, 0.1); +} + +.ui.ui.inverted.orange.menu .active.item { + background-color: rgba(0, 0, 0, 0.1); +} + +.ui.inverted.pointing.orange.menu .active.item { + background-color: #f26202; +} + +.ui.ui.ui.inverted.menu .yellow.active.item, +.ui.ui.inverted.yellow.menu { + background-color: #FBBD08; +} + +.ui.inverted.yellow.menu .item:before { + background-color: rgba(34, 36, 38, 0.1); +} + +.ui.ui.inverted.yellow.menu .active.item { + background-color: rgba(0, 0, 0, 0.1); +} + +.ui.inverted.pointing.yellow.menu .active.item { + background-color: #eaae00; +} + +.ui.ui.ui.inverted.menu .olive.active.item, +.ui.ui.inverted.olive.menu { + background-color: #B5CC18; +} + +.ui.inverted.olive.menu .item:before { + background-color: rgba(34, 36, 38, 0.1); +} + +.ui.ui.inverted.olive.menu .active.item { + background-color: rgba(0, 0, 0, 0.1); +} + +.ui.inverted.pointing.olive.menu .active.item { + background-color: #a7bd0d; +} + +.ui.ui.ui.inverted.menu .green.active.item, +.ui.ui.inverted.green.menu { + background-color: #21BA45; +} + +.ui.inverted.green.menu .item:before { + background-color: rgba(34, 36, 38, 0.1); +} + +.ui.ui.inverted.green.menu .active.item { + background-color: rgba(0, 0, 0, 0.1); +} + +.ui.inverted.pointing.green.menu .active.item { + background-color: #16ab39; +} + +.ui.ui.ui.inverted.menu .teal.active.item, +.ui.ui.inverted.teal.menu { + background-color: #00B5AD; +} + +.ui.inverted.teal.menu .item:before { + background-color: rgba(34, 36, 38, 0.1); +} + +.ui.ui.inverted.teal.menu .active.item { + background-color: rgba(0, 0, 0, 0.1); +} + +.ui.inverted.pointing.teal.menu .active.item { + background-color: #009c95; +} + +.ui.ui.ui.inverted.menu .blue.active.item, +.ui.ui.inverted.blue.menu { + background-color: #2185D0; +} + +.ui.inverted.blue.menu .item:before { + background-color: rgba(34, 36, 38, 0.1); +} + +.ui.ui.inverted.blue.menu .active.item { + background-color: rgba(0, 0, 0, 0.1); +} + +.ui.inverted.pointing.blue.menu .active.item { + background-color: #1678c2; +} + +.ui.ui.ui.inverted.menu .violet.active.item, +.ui.ui.inverted.violet.menu { + background-color: #6435C9; +} + +.ui.inverted.violet.menu .item:before { + background-color: rgba(34, 36, 38, 0.1); +} + +.ui.ui.inverted.violet.menu .active.item { + background-color: rgba(0, 0, 0, 0.1); +} + +.ui.inverted.pointing.violet.menu .active.item { + background-color: #5829bb; +} + +.ui.ui.ui.inverted.menu .purple.active.item, +.ui.ui.inverted.purple.menu { + background-color: #A333C8; +} + +.ui.inverted.purple.menu .item:before { + background-color: rgba(34, 36, 38, 0.1); +} + +.ui.ui.inverted.purple.menu .active.item { + background-color: rgba(0, 0, 0, 0.1); +} + +.ui.inverted.pointing.purple.menu .active.item { + background-color: #9627ba; +} + +.ui.ui.ui.inverted.menu .pink.active.item, +.ui.ui.inverted.pink.menu { + background-color: #E03997; +} + +.ui.inverted.pink.menu .item:before { + background-color: rgba(34, 36, 38, 0.1); +} + +.ui.ui.inverted.pink.menu .active.item { + background-color: rgba(0, 0, 0, 0.1); +} + +.ui.inverted.pointing.pink.menu .active.item { + background-color: #e61a8d; +} + +.ui.ui.ui.inverted.menu .brown.active.item, +.ui.ui.inverted.brown.menu { + background-color: #A5673F; +} + +.ui.inverted.brown.menu .item:before { + background-color: rgba(34, 36, 38, 0.1); +} + +.ui.ui.inverted.brown.menu .active.item { + background-color: rgba(0, 0, 0, 0.1); +} + +.ui.inverted.pointing.brown.menu .active.item { + background-color: #975b33; +} + +.ui.ui.ui.inverted.menu .grey.active.item, +.ui.ui.inverted.grey.menu { + background-color: #767676; +} + +.ui.inverted.grey.menu .item:before { + background-color: rgba(34, 36, 38, 0.1); +} + +.ui.ui.inverted.grey.menu .active.item { + background-color: rgba(0, 0, 0, 0.1); +} + +.ui.inverted.pointing.grey.menu .active.item { + background-color: #838383; +} + +.ui.ui.ui.inverted.menu .black.active.item, +.ui.ui.inverted.black.menu { + background-color: #1B1C1D; +} + +.ui.inverted.black.menu .item:before { + background-color: rgba(34, 36, 38, 0.1); +} + +.ui.ui.inverted.black.menu .active.item { + background-color: rgba(0, 0, 0, 0.1); +} + +.ui.inverted.pointing.black.menu .active.item { + background-color: #27292a; +} + +.ui.ui.ui.inverted.pointing.menu .active.item:after { + background-color: inherit; +} + +/*-------------- + Fitted + ---------------*/ + +.ui.fitted.menu .item, +.ui.fitted.menu .item .menu .item, +.ui.menu .fitted.item { + padding: 0; +} + +.ui.horizontally.fitted.menu .item, +.ui.horizontally.fitted.menu .item .menu .item, +.ui.menu .horizontally.fitted.item { + padding-top: 0.92857143em; + padding-bottom: 0.92857143em; +} + +.ui.vertically.fitted.menu .item, +.ui.vertically.fitted.menu .item .menu .item, +.ui.menu .vertically.fitted.item { + padding-left: 1.14285714em; + padding-right: 1.14285714em; +} + +/*-------------- + Borderless + ---------------*/ + +.ui.borderless.menu .item:before, +.ui.borderless.menu .item .menu .item:before, +.ui.menu .borderless.item:before { + background: none !important; +} + +/*------------------- + Compact + --------------------*/ + +.ui.compact.menu { + display: inline-flex; + margin: 0; + vertical-align: middle; +} + +.ui.compact.vertical.menu { + /* IE hack to make dropdown icons appear inline */ + display: -ms-inline-flexbox !important; + display: inline-block; +} + +.ui.compact.menu:not(.secondary) .item:last-child { + border-radius: 0 0.28571429rem 0.28571429rem 0; +} + +.ui.compact.menu .item:last-child:before { + display: none; +} + +.ui.compact.vertical.menu { + width: auto !important; +} + +.ui.compact.vertical.menu .item:last-child::before { + display: block; +} + +/*------------------- + Fluid + --------------------*/ + +.ui.menu.fluid, +.ui.vertical.menu.fluid { + width: 100% !important; +} + +/*------------------- + Evenly Sized +--------------------*/ + +.ui.item.menu, +.ui.item.menu .item { + width: 100%; + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; + text-align: center; + justify-content: center; +} + +.ui.attached.item.menu:not(.tabular) { + margin: 0 -1px !important; +} + +.ui.item.menu .item:last-child:before { + display: none; +} + +.ui.menu.two.item .item { + width: 50%; +} + +.ui.menu.three.item .item { + width: 33.333%; +} + +.ui.menu.four.item .item { + width: 25%; +} + +.ui.menu.five.item .item { + width: 20%; +} + +.ui.menu.six.item .item { + width: 16.666%; +} + +.ui.menu.seven.item .item { + width: 14.285%; +} + +.ui.menu.eight.item .item { + width: 12.5%; +} + +.ui.menu.nine.item .item { + width: 11.11%; +} + +.ui.menu.ten.item .item { + width: 10%; +} + +.ui.menu.eleven.item .item { + width: 9.09%; +} + +.ui.menu.twelve.item .item { + width: 8.333%; +} + +/*-------------- + Fixed + ---------------*/ + +.ui.menu.fixed { + position: fixed; + z-index: 101; + margin: 0; + width: 100%; +} + +.ui.menu.fixed, +.ui.menu.fixed .item:first-child, +.ui.menu.fixed .item:last-child { + border-radius: 0 !important; +} + +.ui.fixed.menu, +.ui[class*="top fixed"].menu { + top: 0; + left: 0; + right: auto; + bottom: auto; +} + +.ui[class*="top fixed"].menu { + border-top: none; + border-left: none; + border-right: none; +} + +.ui[class*="right fixed"].menu { + border-top: none; + border-bottom: none; + border-right: none; + top: 0; + right: 0; + left: auto; + bottom: auto; + width: auto; + height: 100%; +} + +.ui[class*="bottom fixed"].menu { + border-bottom: none; + border-left: none; + border-right: none; + bottom: 0; + left: 0; + top: auto; + right: auto; +} + +.ui[class*="left fixed"].menu { + border-top: none; + border-bottom: none; + border-left: none; + top: 0; + left: 0; + right: auto; + bottom: auto; + width: auto; + height: 100%; +} + +/* Coupling with Grid */ + +.ui.fixed.menu + .ui.grid { + padding-top: 2.75rem; +} + +/*------------------- + Pointing + --------------------*/ + +.ui.pointing.menu .item:after { + visibility: hidden; + position: absolute; + content: ''; + top: 100%; + left: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + background: none; + margin: 0.5px 0 0; + width: 0.57142857em; + height: 0.57142857em; + border: none; + border-bottom: 1px solid #D4D4D5; + border-right: 1px solid #D4D4D5; + z-index: 2; + transition: background 0.1s ease; +} + +.ui.vertical.pointing.menu .item:after { + position: absolute; + top: 50%; + right: 0; + bottom: auto; + left: auto; + transform: translateX(50%) translateY(-50%) rotate(45deg); + margin: 0 -0.5px 0 0; + border: none; + border-top: 1px solid #D4D4D5; + border-right: 1px solid #D4D4D5; +} + +.ui.pointing.menu .ui.dropdown .menu .item:after, +.ui.vertical.pointing.menu .ui.dropdown .menu .item:after { + display: none; +} + +/* Active */ + +.ui.pointing.menu .active.item:after { + visibility: visible; +} + +.ui.pointing.menu .active.dropdown.item:after { + visibility: hidden; +} + +/* Don't double up pointers */ + +.ui.pointing.menu .dropdown.active.item:after, +.ui.pointing.menu .active.item .menu .active.item:after { + display: none; +} + +/* Colors */ + +.ui.pointing.menu .active.item:hover:after { + background-color: #F2F2F2; +} + +.ui.pointing.menu .active.item:after { + background-color: #F2F2F2; +} + +.ui.pointing.menu .active.item:hover:after { + background-color: #F2F2F2; +} + +.ui.vertical.pointing.menu .active.item:hover:after { + background-color: #F2F2F2; +} + +.ui.vertical.pointing.menu .active.item:after { + background-color: #F2F2F2; +} + +.ui.vertical.pointing.menu .menu .active.item:after { + background-color: #FFFFFF; +} + +.ui.inverted.pointing.menu .primary.active.item:after { + background-color: #2185D0; +} + +.ui.inverted.pointing.menu .secondary.active.item:after { + background-color: #1B1C1D; +} + +.ui.inverted.pointing.menu .red.active.item:after { + background-color: #DB2828; +} + +.ui.inverted.pointing.menu .orange.active.item:after { + background-color: #F2711C; +} + +.ui.inverted.pointing.menu .yellow.active.item:after { + background-color: #FBBD08; +} + +.ui.inverted.pointing.menu .olive.active.item:after { + background-color: #B5CC18; +} + +.ui.inverted.pointing.menu .green.active.item:after { + background-color: #21BA45; +} + +.ui.inverted.pointing.menu .teal.active.item:after { + background-color: #00B5AD; +} + +.ui.inverted.pointing.menu .blue.active.item:after { + background-color: #2185D0; +} + +.ui.inverted.pointing.menu .violet.active.item:after { + background-color: #6435C9; +} + +.ui.inverted.pointing.menu .purple.active.item:after { + background-color: #A333C8; +} + +.ui.inverted.pointing.menu .pink.active.item:after { + background-color: #E03997; +} + +.ui.inverted.pointing.menu .brown.active.item:after { + background-color: #A5673F; +} + +.ui.inverted.pointing.menu .grey.active.item:after { + background-color: #767676; +} + +.ui.inverted.pointing.menu .black.active.item:after { + background-color: #1B1C1D; +} + +/*-------------- + Attached + ---------------*/ + +/* Middle */ + +.ui.attached.menu { + top: 0; + bottom: 0; + border-radius: 0; + margin: 0 -1px; + width: calc(100% + 2px); + max-width: calc(100% + 2px); + box-shadow: none; +} + +.ui.attached + .ui.attached.menu:not(.top) { + border-top: none; +} + +/* Top */ + +.ui[class*="top attached"].menu { + bottom: 0; + margin-bottom: 0; + top: 0; + margin-top: 1rem; + border-radius: 0.28571429rem 0.28571429rem 0 0; +} + +.ui.menu[class*="top attached"]:first-child { + margin-top: 0; +} + +/* Bottom */ + +.ui[class*="bottom attached"].menu { + bottom: 0; + margin-top: 0; + top: 0; + margin-bottom: 1rem; + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), none; + border-radius: 0 0 0.28571429rem 0.28571429rem; +} + +.ui[class*="bottom attached"].menu:last-child { + margin-bottom: 0; +} + +/* Attached Menu Item */ + +.ui.top.attached.menu > .item:first-child { + border-radius: 0.28571429rem 0 0 0; +} + +.ui.bottom.attached.menu > .item:first-child { + border-radius: 0 0 0 0.28571429rem; +} + +/* Tabular Attached */ + +.ui.attached.menu:not(.tabular) { + border: 1px solid #D4D4D5; +} + +.ui.attached.inverted.menu { + border: none; +} + +.ui.attached.tabular.menu { + margin-left: 0; + margin-right: 0; + width: 100%; +} + +/*-------------- + Sizes +---------------*/ + +.ui.menu { + font-size: 1rem; +} + +.ui.vertical.menu { + width: 15rem; +} + +.ui.mini.menu, +.ui.mini.menu .dropdown, +.ui.mini.menu .dropdown .menu > .item { + font-size: 0.78571429rem; +} + +.ui.mini.vertical.menu:not(.icon) { + width: 9rem; +} + +.ui.tiny.menu, +.ui.tiny.menu .dropdown, +.ui.tiny.menu .dropdown .menu > .item { + font-size: 0.85714286rem; +} + +.ui.tiny.vertical.menu:not(.icon) { + width: 11rem; +} + +.ui.small.menu, +.ui.small.menu .dropdown, +.ui.small.menu .dropdown .menu > .item { + font-size: 0.92857143rem; +} + +.ui.small.vertical.menu:not(.icon) { + width: 13rem; +} + +.ui.large.menu, +.ui.large.menu .dropdown, +.ui.large.menu .dropdown .menu > .item { + font-size: 1.07142857rem; +} + +.ui.large.vertical.menu:not(.icon) { + width: 18rem; +} + +.ui.big.menu, +.ui.big.menu .dropdown, +.ui.big.menu .dropdown .menu > .item { + font-size: 1.14285714rem; +} + +.ui.big.vertical.menu:not(.icon) { + width: 20rem; +} + +.ui.huge.menu, +.ui.huge.menu .dropdown, +.ui.huge.menu .dropdown .menu > .item { + font-size: 1.21428571rem; +} + +.ui.huge.vertical.menu:not(.icon) { + width: 22rem; +} + +.ui.massive.menu, +.ui.massive.menu .dropdown, +.ui.massive.menu .dropdown .menu > .item { + font-size: 1.28571429rem; +} + +.ui.massive.vertical.menu:not(.icon) { + width: 25rem; +} + +/*------------------- + Inverted dropdowns +--------------------*/ + +.ui.menu .ui.inverted.inverted.dropdown.item .menu { + background: #1B1C1D; + box-shadow: none; +} + +.ui.menu .ui.inverted.dropdown .menu > .item { + color: rgba(255, 255, 255, 0.8) !important; +} + +.ui.menu .ui.inverted.dropdown .menu > .active.item { + background: transparent !important; + color: rgba(255, 255, 255, 0.8) !important; +} + +.ui.menu .ui.inverted.dropdown .menu > .item:hover { + background: rgba(255, 255, 255, 0.08) !important; + color: rgba(255, 255, 255, 0.8) !important; +} + +.ui.menu .ui.inverted.dropdown .menu > .selected.item { + background: rgba(255, 255, 255, 0.15) !important; + color: rgba(255, 255, 255, 0.8) !important; +} + +/* Vertical */ + +.ui.vertical.menu .inverted.dropdown.item .menu { + box-shadow: none; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Message + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Message +*******************************/ + +.ui.message { + position: relative; + min-height: 1em; + margin: 1em 0; + background: #F8F8F9; + padding: 1em 1.5em; + line-height: 1.4285em; + color: rgba(0, 0, 0, 0.87); + transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, box-shadow 0.1s ease; + border-radius: 0.28571429rem; + box-shadow: 0 0 0 1px rgba(34, 36, 38, 0.22) inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.message:first-child { + margin-top: 0; +} + +.ui.message:last-child { + margin-bottom: 0; +} + +/*-------------- + Content +---------------*/ + +/* Header */ + +.ui.message .header { + display: block; + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + font-weight: bold; + margin: -0.14285714em 0 0 0; +} + +/* Default font size */ + +.ui.message .header:not(.ui) { + font-size: 1.14285714em; +} + +/* Paragraph */ + +.ui.message p { + opacity: 0.85; + margin: 0.75em 0; +} + +.ui.message p:first-child { + margin-top: 0; +} + +.ui.message p:last-child { + margin-bottom: 0; +} + +.ui.message .header + p { + margin-top: 0.25em; +} + +/* List */ + +.ui.message .list:not(.ui) { + text-align: left; + padding: 0; + opacity: 0.85; + list-style-position: inside; + margin: 0.5em 0 0; +} + +.ui.message .list:not(.ui):first-child { + margin-top: 0; +} + +.ui.message .list:not(.ui):last-child { + margin-bottom: 0; +} + +.ui.message .list:not(.ui) li { + position: relative; + list-style-type: none; + margin: 0 0 0.3em 1em; + padding: 0; +} + +.ui.message .list:not(.ui) li:before { + position: absolute; + content: '•'; + left: -1em; + height: 100%; + vertical-align: baseline; +} + +.ui.message .list:not(.ui) li:last-child { + margin-bottom: 0; +} + +/* Icon */ + +.ui.message > i.icon { + margin-right: 0.6em; +} + +/* Close Icon */ + +.ui.message > .close.icon { + cursor: pointer; + position: absolute; + margin: 0; + top: 0.78575em; + right: 0.5em; + opacity: 0.7; + transition: opacity 0.1s ease; +} + +.ui.message > .close.icon:hover { + opacity: 1; +} + +/* First / Last Element */ + +.ui.message > :first-child { + margin-top: 0; +} + +.ui.message > :last-child { + margin-bottom: 0; +} + +/******************************* + Coupling +*******************************/ + +.ui.dropdown .menu > .message { + margin: 0 -1px; +} + +/******************************* + States +*******************************/ + +/*-------------- + Visible +---------------*/ + +.ui.visible.visible.visible.visible.message { + display: block; +} + +.ui.icon.visible.visible.visible.visible.message { + display: flex; +} + +/*-------------- + Hidden +---------------*/ + +.ui.hidden.hidden.hidden.hidden.message { + display: none; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Compact + ---------------*/ + +.ui.compact.message { + display: inline-block; +} + +.ui.compact.icon.message { + display: inline-flex; + width: auto; +} + +/*-------------- + Attached + ---------------*/ + +.ui.attached.message { + margin-bottom: -1px; + border-radius: 0.28571429rem 0.28571429rem 0 0; + box-shadow: 0 0 0 1px rgba(34, 36, 38, 0.15) inset; + margin-left: -1px; + margin-right: -1px; +} + +.ui.attached + .ui.attached.message:not(.top):not(.bottom) { + margin-top: -1px; + border-radius: 0; +} + +.ui.bottom.attached.message { + margin-top: -1px; + border-radius: 0 0 0.28571429rem 0.28571429rem; + box-shadow: 0 0 0 1px rgba(34, 36, 38, 0.15) inset, 0 1px 2px 0 rgba(34, 36, 38, 0.15); +} + +.ui.bottom.attached.message:not(:last-child) { + margin-bottom: 1em; +} + +.ui.attached.icon.message { + width: auto; +} + +/*-------------- + Icon + ---------------*/ + +.ui.icon.message { + display: flex; + width: 100%; + align-items: center; +} + +.ui.icon.message > i.icon:not(.close) { + display: block; + flex: 0 0 auto; + width: auto; + line-height: 1; + vertical-align: middle; + font-size: 3em; + opacity: 0.8; +} + +.ui.icon.message > .content { + display: block; + flex: 1 1 auto; + vertical-align: middle; +} + +.ui.icon.message > i.icon:not(.close) + .content { + padding-left: 0; +} + +.ui.icon.message > i.circular.icon { + width: 1em; +} + +/*-------------- + Floating + ---------------*/ + +.ui.floating.message { + box-shadow: 0 0 0 1px rgba(34, 36, 38, 0.22) inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +/*-------------- + Colors +---------------*/ + +/*-------------- + Types +---------------*/ + +.ui.positive.message { + background-color: #FCFFF5; + color: #2C662D; +} + +.ui.positive.message, +.ui.attached.positive.message { + box-shadow: 0 0 0 1px #A3C293 inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.positive.message { + box-shadow: 0 0 0 1px #A3C293 inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.positive.message .header { + color: #1A531B; +} + +.ui.negative.message { + background-color: #FFF6F6; + color: #9F3A38; +} + +.ui.negative.message, +.ui.attached.negative.message { + box-shadow: 0 0 0 1px #E0B4B4 inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.negative.message { + box-shadow: 0 0 0 1px #E0B4B4 inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.negative.message .header { + color: #912D2B; +} + +.ui.info.message { + background-color: #F8FFFF; + color: #276F86; +} + +.ui.info.message, +.ui.attached.info.message { + box-shadow: 0 0 0 1px #A9D5DE inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.info.message { + box-shadow: 0 0 0 1px #A9D5DE inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.info.message .header { + color: #0E566C; +} + +.ui.warning.message { + background-color: #FFFAF3; + color: #573A08; +} + +.ui.warning.message, +.ui.attached.warning.message { + box-shadow: 0 0 0 1px #C9BA9B inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.warning.message { + box-shadow: 0 0 0 1px #C9BA9B inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.warning.message .header { + color: #794B02; +} + +.ui.error.message { + background-color: #FFF6F6; + color: #9F3A38; +} + +.ui.error.message, +.ui.attached.error.message { + box-shadow: 0 0 0 1px #E0B4B4 inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.error.message { + box-shadow: 0 0 0 1px #E0B4B4 inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.error.message .header { + color: #912D2B; +} + +.ui.success.message { + background-color: #FCFFF5; + color: #2C662D; +} + +.ui.success.message, +.ui.attached.success.message { + box-shadow: 0 0 0 1px #A3C293 inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.success.message { + box-shadow: 0 0 0 1px #A3C293 inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.success.message .header { + color: #1A531B; +} + +.ui.primary.message { + background-color: #DFF0FF; + color: rgba(255, 255, 255, 0.9); +} + +.ui.primary.message, +.ui.attached.primary.message { + box-shadow: 0 0 0 1px #2185D0 inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.primary.message { + box-shadow: 0 0 0 1px #2185D0 inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.primary.message .header { + color: rgba(242, 242, 242, 0.9); +} + +.ui.secondary.message { + background-color: #F4F4F4; + color: rgba(255, 255, 255, 0.9); +} + +.ui.secondary.message, +.ui.attached.secondary.message { + box-shadow: 0 0 0 1px #1B1C1D inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.secondary.message { + box-shadow: 0 0 0 1px #1B1C1D inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.secondary.message .header { + color: rgba(242, 242, 242, 0.9); +} + +.ui.red.message { + background-color: #FFE8E6; + color: #DB2828; +} + +.ui.red.message, +.ui.attached.red.message { + box-shadow: 0 0 0 1px #DB2828 inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.red.message { + box-shadow: 0 0 0 1px #DB2828 inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.red.message .header { + color: #c82121; +} + +.ui.orange.message { + background-color: #FFEDDE; + color: #F2711C; +} + +.ui.orange.message, +.ui.attached.orange.message { + box-shadow: 0 0 0 1px #F2711C inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.orange.message { + box-shadow: 0 0 0 1px #F2711C inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.orange.message .header { + color: #e7640d; +} + +.ui.yellow.message { + background-color: #FFF8DB; + color: #B58105; +} + +.ui.yellow.message, +.ui.attached.yellow.message { + box-shadow: 0 0 0 1px #B58105 inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.yellow.message { + box-shadow: 0 0 0 1px #B58105 inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.yellow.message .header { + color: #9c6f04; +} + +.ui.olive.message { + background-color: #FBFDEF; + color: #8ABC1E; +} + +.ui.olive.message, +.ui.attached.olive.message { + box-shadow: 0 0 0 1px #8ABC1E inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.olive.message { + box-shadow: 0 0 0 1px #8ABC1E inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.olive.message .header { + color: #7aa61a; +} + +.ui.green.message { + background-color: #E5F9E7; + color: #1EBC30; +} + +.ui.green.message, +.ui.attached.green.message { + box-shadow: 0 0 0 1px #1EBC30 inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.green.message { + box-shadow: 0 0 0 1px #1EBC30 inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.green.message .header { + color: #1aa62a; +} + +.ui.teal.message { + background-color: #E1F7F7; + color: #10A3A3; +} + +.ui.teal.message, +.ui.attached.teal.message { + box-shadow: 0 0 0 1px #10A3A3 inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.teal.message { + box-shadow: 0 0 0 1px #10A3A3 inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.teal.message .header { + color: #0e8c8c; +} + +.ui.blue.message { + background-color: #DFF0FF; + color: #2185D0; +} + +.ui.blue.message, +.ui.attached.blue.message { + box-shadow: 0 0 0 1px #2185D0 inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.blue.message { + box-shadow: 0 0 0 1px #2185D0 inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.blue.message .header { + color: #1e77ba; +} + +.ui.violet.message { + background-color: #EAE7FF; + color: #6435C9; +} + +.ui.violet.message, +.ui.attached.violet.message { + box-shadow: 0 0 0 1px #6435C9 inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.violet.message { + box-shadow: 0 0 0 1px #6435C9 inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.violet.message .header { + color: #5a30b5; +} + +.ui.purple.message { + background-color: #F6E7FF; + color: #A333C8; +} + +.ui.purple.message, +.ui.attached.purple.message { + box-shadow: 0 0 0 1px #A333C8 inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.purple.message { + box-shadow: 0 0 0 1px #A333C8 inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.purple.message .header { + color: #922eb4; +} + +.ui.pink.message { + background-color: #FFE3FB; + color: #E03997; +} + +.ui.pink.message, +.ui.attached.pink.message { + box-shadow: 0 0 0 1px #E03997 inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.pink.message { + box-shadow: 0 0 0 1px #E03997 inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.pink.message .header { + color: #dd238b; +} + +.ui.brown.message { + background-color: #F1E2D3; + color: #A5673F; +} + +.ui.brown.message, +.ui.attached.brown.message { + box-shadow: 0 0 0 1px #A5673F inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.brown.message { + box-shadow: 0 0 0 1px #A5673F inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.brown.message .header { + color: #935b38; +} + +.ui.grey.message { + background-color: #F4F4F4; + color: #767676; +} + +.ui.grey.message, +.ui.attached.grey.message { + box-shadow: 0 0 0 1px #767676 inset, 0 0 0 0 rgba(0, 0, 0, 0); +} + +.ui.floating.grey.message { + box-shadow: 0 0 0 1px #767676 inset, 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.grey.message .header { + color: #696969; +} + +.ui.black.message { + background-color: #1B1C1D; + color: rgba(255, 255, 255, 0.9); +} + +.ui.black.message .header { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.message { + background-color: #1B1C1D; + color: rgba(255, 255, 255, 0.9); +} + +/*-------------- + Sizes +---------------*/ + +.ui.message { + font-size: 1em; +} + +.ui.mini.message { + font-size: 0.78571429em; +} + +.ui.tiny.message { + font-size: 0.85714286em; +} + +.ui.small.message { + font-size: 0.92857143em; +} + +.ui.large.message { + font-size: 1.14285714em; +} + +.ui.big.message { + font-size: 1.28571429em; +} + +.ui.huge.message { + font-size: 1.42857143em; +} + +.ui.massive.message { + font-size: 1.71428571em; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Modal + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Modal +*******************************/ + +.ui.modal { + position: absolute; + display: none; + z-index: 1001; + text-align: left; + background: #FFFFFF; + border: none; + box-shadow: 1px 3px 3px 0 rgba(0, 0, 0, 0.2), 1px 3px 15px 2px rgba(0, 0, 0, 0.2); + transform-origin: 50% 25%; + flex: 0 0 auto; + border-radius: 0.28571429rem; + -webkit-user-select: text; + -moz-user-select: text; + user-select: text; + will-change: top, left, margin, transform, opacity; +} + +.ui.modal > :first-child:not(.icon):not(.dimmer), +.ui.modal > i.icon:first-child + *, +.ui.modal > .dimmer:first-child + *:not(.icon), +.ui.modal > .dimmer:first-child + i.icon + * { + border-top-left-radius: 0.28571429rem; + border-top-right-radius: 0.28571429rem; +} + +.ui.modal > :last-child { + border-bottom-left-radius: 0.28571429rem; + border-bottom-right-radius: 0.28571429rem; +} + +.ui.modal > .ui.dimmer { + border-radius: inherit; +} + +/******************************* + Content +*******************************/ + +/*-------------- + Close +---------------*/ + +.ui.modal > .close { + cursor: pointer; + position: absolute; + top: -2.5rem; + right: -2.5rem; + z-index: 1; + opacity: 0.8; + font-size: 1.25em; + color: #FFFFFF; + width: 2.25rem; + height: 2.25rem; + padding: 0.625rem 0 0 0; +} + +.ui.modal > .close:hover { + opacity: 1; +} + +/*-------------- + Header +---------------*/ + +.ui.modal > .header { + display: block; + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + background: #FFFFFF; + margin: 0; + padding: 1.25rem 1.5rem; + box-shadow: none; + color: rgba(0, 0, 0, 0.85); + border-bottom: 1px solid rgba(34, 36, 38, 0.15); +} + +.ui.modal > .header:not(.ui) { + font-size: 1.42857143rem; + line-height: 1.28571429em; + font-weight: bold; +} + +/*-------------- + Content +---------------*/ + +.ui.modal > .content { + display: block; + width: 100%; + font-size: 1em; + line-height: 1.4; + padding: 1.5rem; + background: #FFFFFF; +} + +.ui.modal > .image.content { + display: flex; + flex-direction: row; +} + +/* Image */ + +.ui.modal > .content > .image { + display: block; + flex: 0 1 auto; + width: ''; + align-self: start; + max-width: 100%; +} + +.ui.modal > [class*="top aligned"] { + align-self: start; +} + +.ui.modal > [class*="middle aligned"] { + align-self: center; +} + +.ui.modal > [class*="stretched"] { + align-self: stretch; +} + +/* Description */ + +.ui.modal > .content > .description { + display: block; + flex: 1 0 auto; + min-width: 0; + align-self: start; +} + +.ui.modal > .content > i.icon + .description, +.ui.modal > .content > .image + .description { + flex: 0 1 auto; + min-width: ''; + width: auto; + padding-left: 2em; +} + +/*rtl:ignore*/ + +.ui.modal > .content > .image > i.icon { + margin: 0; + opacity: 1; + width: auto; + line-height: 1; + font-size: 8rem; +} + +/*-------------- + Actions +---------------*/ + +.ui.modal > .actions { + background: #F9FAFB; + padding: 1rem 1rem; + border-top: 1px solid rgba(34, 36, 38, 0.15); + text-align: right; +} + +.ui.modal .actions > .button:not(.fluid) { + margin-left: 0.75em; +} + +.ui.basic.modal > .actions { + border-top: none; +} + +/*------------------- + Responsive +--------------------*/ + +/* Modal Width */ + +@media only screen and (max-width: 767.98px) { + .ui.modal:not(.fullscreen) { + width: 95%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 768px) { + .ui.modal:not(.fullscreen) { + width: 88%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 992px) { + .ui.modal:not(.fullscreen) { + width: 850px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1200px) { + .ui.modal:not(.fullscreen) { + width: 900px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1920px) { + .ui.modal:not(.fullscreen) { + width: 950px; + margin: 0 0 0 0; + } +} + +/* Tablet and Mobile */ + +@media only screen and (max-width: 991.98px) { + .ui.modal > .header { + padding-right: 2.25rem; + } + + .ui.modal > .close { + top: 1.0535rem; + right: 1rem; + color: rgba(0, 0, 0, 0.87); + } +} + +/* Mobile */ + +@media only screen and (max-width: 767.98px) { + .ui.modal > .header { + padding: 0.75rem 1rem !important; + padding-right: 2.25rem !important; + } + + .ui.overlay.fullscreen.modal > .content.content.content { + min-height: calc(100vh - 8.1rem); + } + + .ui.overlay.fullscreen.modal > .scrolling.content.content.content { + max-height: calc(100vh - 8.1rem); + } + + .ui.modal > .content { + display: block; + padding: 1rem !important; + } + + .ui.modal > .close { + top: 0.5rem !important; + right: 0.5rem !important; + } + + /*rtl:ignore*/ + + .ui.modal .image.content { + flex-direction: column; + } + + .ui.modal > .content > .image { + display: block; + max-width: 100%; + margin: 0 auto !important; + text-align: center; + padding: 0 0 1rem !important; + } + + .ui.modal > .content > .image > i.icon { + font-size: 5rem; + text-align: center; + } + + /*rtl:ignore*/ + + .ui.modal > .content > .description { + display: block; + width: 100% !important; + margin: 0 !important; + padding: 1rem 0 !important; + box-shadow: none; + } + + /* Let Buttons Stack */ + + .ui.modal > .actions { + padding: 1rem 1rem 0rem !important; + } + + .ui.modal .actions > .buttons, + .ui.modal .actions > .button { + margin-bottom: 1rem; + } +} + +/*-------------- + Coupling +---------------*/ + +.ui.inverted.dimmer > .ui.modal { + box-shadow: 1px 3px 10px 2px rgba(0, 0, 0, 0.2); +} + +/******************************* + Types +*******************************/ + +.ui.basic.modal { + background-color: transparent; + border: none; + border-radius: 0; + box-shadow: none !important; + color: #FFFFFF; +} + +.ui.basic.modal > .header, +.ui.basic.modal > .content, +.ui.basic.modal > .actions { + background-color: transparent; +} + +.ui.basic.modal > .header { + color: #FFFFFF; + border-bottom: none; +} + +.ui.basic.modal > .close { + top: 1rem; + right: 1.5rem; + color: #FFFFFF; +} + +.ui.inverted.dimmer > .basic.modal { + color: rgba(0, 0, 0, 0.87); +} + +.ui.inverted.dimmer > .ui.basic.modal > .header { + color: rgba(0, 0, 0, 0.85); +} + +/* Resort to margin positioning if legacy */ + +.ui.legacy.legacy.modal, +.ui.legacy.legacy.page.dimmer > .ui.modal { + left: 50% !important; +} + +.ui.legacy.legacy.modal:not(.aligned), +.ui.legacy.legacy.page.dimmer > .ui.modal:not(.aligned) { + top: 50%; +} + +.ui.legacy.legacy.page.dimmer > .ui.scrolling.modal:not(.aligned), +.ui.page.dimmer > .ui.scrolling.legacy.legacy.modal:not(.aligned), +.ui.top.aligned.legacy.legacy.page.dimmer > .ui.modal:not(.aligned), +.ui.top.aligned.dimmer > .ui.legacy.legacy.modal:not(.aligned) { + top: auto; +} + +.ui.legacy.overlay.fullscreen.modal { + margin-top: -2rem !important; +} + +/******************************* + States +*******************************/ + +.ui.loading.modal { + display: block; + visibility: hidden; + z-index: -1; +} + +.ui.active.modal { + display: block; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Aligned + ---------------*/ + +.modals.dimmer .ui.top.aligned.modal { + top: 5vh; +} + +.modals.dimmer .ui.bottom.aligned.modal { + bottom: 5vh; +} + +@media only screen and (max-width: 767.98px) { + .modals.dimmer .ui.top.aligned.modal { + top: 1rem; + } + + .modals.dimmer .ui.bottom.aligned.modal { + bottom: 1rem; + } +} + +/*-------------- + Scrolling + ---------------*/ + +/* Scrolling Dimmer */ + +.scrolling.dimmable.dimmed { + overflow: hidden; +} + +.scrolling.dimmable > .dimmer { + justify-content: flex-start; + position: fixed; +} + +.scrolling.dimmable.dimmed > .dimmer { + overflow: auto; + -webkit-overflow-scrolling: touch; +} + +.modals.dimmer .ui.scrolling.modal:not(.fullscreen) { + margin: 2rem auto; +} + +/* Fix for Firefox, Edge, IE11 */ + +.modals.dimmer .ui.scrolling.modal:not([class*="overlay fullscreen"])::after { + content: '\00A0'; + position: absolute; + height: 2rem; +} + +/* Undetached Scrolling */ + +.scrolling.undetached.dimmable.dimmed { + overflow: auto; + -webkit-overflow-scrolling: touch; +} + +.scrolling.undetached.dimmable.dimmed > .dimmer { + overflow: hidden; +} + +.scrolling.undetached.dimmable .ui.scrolling.modal:not(.fullscreen) { + position: absolute; + left: 50%; +} + +/* Scrolling Content */ + +.ui.modal > .scrolling.content { + max-height: calc(80vh - 10rem); + overflow: auto; +} + +.ui.overlay.fullscreen.modal > .content { + min-height: calc(100vh - 9.1rem); +} + +.ui.overlay.fullscreen.modal > .scrolling.content { + max-height: calc(100vh - 9.1rem); +} + +/*-------------- + Full Screen + ---------------*/ + +.ui.fullscreen.modal { + width: 95%; + left: 2.5%; + margin: 1em auto; +} + +.ui.overlay.fullscreen.modal { + width: 100%; + left: 0; + margin: 0 auto; + top: 0; + border-radius: 0; +} + +.ui.modal > .close.inside + .header, +.ui.fullscreen.modal > .header { + padding-right: 2.25rem; +} + +.ui.modal > .close.inside, +.ui.fullscreen.modal > .close { + top: 1.0535rem; + right: 1rem; + color: rgba(0, 0, 0, 0.87); +} + +.ui.basic.fullscreen.modal > .close { + color: #FFFFFF; +} + +/*-------------- + Size +---------------*/ + +.ui.modal { + font-size: 1rem; +} + +.ui.mini.modal > .header:not(.ui) { + font-size: 1.3em; +} + +@media only screen and (max-width: 767.98px) { + .ui.mini.modal { + width: 95%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 768px) { + .ui.mini.modal { + width: 35.2%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 992px) { + .ui.mini.modal { + width: 340px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1200px) { + .ui.mini.modal { + width: 360px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1920px) { + .ui.mini.modal { + width: 380px; + margin: 0 0 0 0; + } +} + +.ui.tiny.modal > .header:not(.ui) { + font-size: 1.3em; +} + +@media only screen and (max-width: 767.98px) { + .ui.tiny.modal { + width: 95%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 768px) { + .ui.tiny.modal { + width: 52.8%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 992px) { + .ui.tiny.modal { + width: 510px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1200px) { + .ui.tiny.modal { + width: 540px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1920px) { + .ui.tiny.modal { + width: 570px; + margin: 0 0 0 0; + } +} + +.ui.small.modal > .header:not(.ui) { + font-size: 1.3em; +} + +@media only screen and (max-width: 767.98px) { + .ui.small.modal { + width: 95%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 768px) { + .ui.small.modal { + width: 70.4%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 992px) { + .ui.small.modal { + width: 680px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1200px) { + .ui.small.modal { + width: 720px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1920px) { + .ui.small.modal { + width: 760px; + margin: 0 0 0 0; + } +} + +.ui.large.modal > .header:not(.ui) { + font-size: 1.6em; +} + +@media only screen and (max-width: 767.98px) { + .ui.large.modal { + width: 95%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 768px) { + .ui.large.modal { + width: 88%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 992px) { + .ui.large.modal { + width: 1020px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1200px) { + .ui.large.modal { + width: 1080px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1920px) { + .ui.large.modal { + width: 1140px; + margin: 0 0 0 0; + } +} + +.ui.big.modal > .header:not(.ui) { + font-size: 1.6em; +} + +@media only screen and (max-width: 767.98px) { + .ui.big.modal { + width: 95%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 768px) { + .ui.big.modal { + width: 88%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 992px) { + .ui.big.modal { + width: 1190px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1200px) { + .ui.big.modal { + width: 1260px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1920px) { + .ui.big.modal { + width: 1330px; + margin: 0 0 0 0; + } +} + +.ui.huge.modal > .header:not(.ui) { + font-size: 1.6em; +} + +@media only screen and (max-width: 767.98px) { + .ui.huge.modal { + width: 95%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 768px) { + .ui.huge.modal { + width: 88%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 992px) { + .ui.huge.modal { + width: 1360px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1200px) { + .ui.huge.modal { + width: 1440px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1920px) { + .ui.huge.modal { + width: 1520px; + margin: 0 0 0 0; + } +} + +.ui.massive.modal > .header:not(.ui) { + font-size: 1.8em; +} + +@media only screen and (max-width: 767.98px) { + .ui.massive.modal { + width: 95%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 768px) { + .ui.massive.modal { + width: 88%; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 992px) { + .ui.massive.modal { + width: 1530px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1200px) { + .ui.massive.modal { + width: 1620px; + margin: 0 0 0 0; + } +} + +@media only screen and (min-width: 1920px) { + .ui.massive.modal { + width: 1710px; + margin: 0 0 0 0; + } +} + +/***************************** + Inverted + *******************************/ + +.ui.inverted.modal { + background: rgba(0, 0, 0, 0.9); +} + +.ui.inverted.modal > .header, +.ui.inverted.modal > .content { + background: rgba(0, 0, 0, 0.9); + color: #FFFFFF; +} + +.ui.inverted.modal > .actions { + background: #191A1B; + border-top: 1px solid rgba(34, 36, 38, 0.85); + color: #FFFFFF; +} + +.ui.inverted.dimmer > .modal > .close { + color: rgba(0, 0, 0, 0.85); +} + +@media only screen and (max-width: 991.98px) { + .ui.dimmer .inverted.modal > .close { + color: #FFFFFF; + } +} + +.ui.inverted.modal > .close.inside, +.ui.inverted.fullscreen.modal > .close { + color: #FFFFFF; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Popup + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Popup +*******************************/ + +.ui.popup { + display: none; + position: absolute; + top: 0; + right: 0; + /* Fixes content being squished when inline (moz only) */ + min-width: -webkit-min-content; + min-width: -moz-min-content; + min-width: min-content; + z-index: 1900; + border: 1px solid #D4D4D5; + line-height: 1.4285em; + max-width: 250px; + background: #FFFFFF; + padding: 0.833em 1em; + font-weight: normal; + font-style: normal; + color: rgba(0, 0, 0, 0.87); + border-radius: 0.28571429rem; + box-shadow: 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +.ui.popup > .header { + padding: 0; + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + font-size: 1.14285714em; + line-height: 1.2; + font-weight: bold; +} + +.ui.popup > .header + .content { + padding-top: 0.5em; +} + +.ui.popup:before { + position: absolute; + content: ''; + width: 0.71428571em; + height: 0.71428571em; + background: #FFFFFF; + transform: rotate(45deg); + z-index: 1901; + box-shadow: 1px 1px 0 0 #bababc; +} + +/******************************* + Types +*******************************/ + +/*-------------- + Tooltip + ---------------*/ + +/* Content */ + +[data-tooltip] { + position: relative; +} + +/* Arrow */ + +[data-tooltip]:before { + pointer-events: none; + position: absolute; + content: ''; + font-size: 1rem; + width: 0.71428571em; + height: 0.71428571em; + background: #FFFFFF; + transform: rotate(45deg); + z-index: 1901; + box-shadow: 1px 1px 0 0 #bababc; +} + +/* Popup */ + +[data-tooltip]:after { + pointer-events: none; + content: attr(data-tooltip); + position: absolute; + text-transform: none; + text-align: left; + text-shadow: none; + white-space: nowrap; + font-size: 1rem; + border: 1px solid #D4D4D5; + line-height: 1.4285em; + max-width: none; + background: #FFFFFF; + padding: 0.833em 1em; + font-weight: normal; + font-style: normal; + color: rgba(0, 0, 0, 0.87); + border-radius: 0.28571429rem; + box-shadow: 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); + z-index: 1900; +} + +/* Default Position (Top Center) */ + +[data-tooltip]:not([data-position]):before { + top: auto; + right: auto; + bottom: 100%; + left: 50%; + background: #FFFFFF; + margin-left: -0.07142857rem; + margin-bottom: 0.14285714rem; +} + +[data-tooltip]:not([data-position]):after { + left: 50%; + transform: translateX(-50%); + bottom: 100%; + margin-bottom: 0.5em; +} + +/* Animation */ + +[data-tooltip]:before, +[data-tooltip]:after { + pointer-events: none; + visibility: hidden; + opacity: 0; + transition: transform 0.1s ease, opacity 0.1s ease; +} + +[data-tooltip]:before { + transform: rotate(45deg) scale(0) !important; + transform-origin: center top; +} + +[data-tooltip]:after { + transform-origin: center bottom; +} + +[data-tooltip]:hover:before, +[data-tooltip]:hover:after { + visibility: visible; + pointer-events: auto; + opacity: 1; +} + +[data-tooltip]:hover:before { + transform: rotate(45deg) scale(1) !important; +} + +/* Animation Position */ + +[data-tooltip]:after, +[data-tooltip][data-position="top center"]:after, +[data-tooltip][data-position="bottom center"]:after { + transform: translateX(-50%) scale(0) !important; +} + +[data-tooltip]:hover:after, +[data-tooltip][data-position="bottom center"]:hover:after { + transform: translateX(-50%) scale(1) !important; +} + +[data-tooltip][data-position="left center"]:after, +[data-tooltip][data-position="right center"]:after { + transform: translateY(-50%) scale(0) !important; +} + +[data-tooltip][data-position="left center"]:hover:after, +[data-tooltip][data-position="right center"]:hover:after { + transform: translateY(-50%) scale(1) !important; + -moz-transform: translateY(-50%) scale(1.0001) !important; +} + +[data-tooltip][data-position="top left"]:after, +[data-tooltip][data-position="top right"]:after, +[data-tooltip][data-position="bottom left"]:after, +[data-tooltip][data-position="bottom right"]:after { + transform: scale(0) !important; +} + +[data-tooltip][data-position="top left"]:hover:after, +[data-tooltip][data-position="top right"]:hover:after, +[data-tooltip][data-position="bottom left"]:hover:after, +[data-tooltip][data-position="bottom right"]:hover:after { + transform: scale(1) !important; +} + +[data-tooltip][data-variation~="fixed"]:after { + white-space: normal; + width: 250px; +} + +[data-tooltip][data-variation*="wide fixed"]:after { + width: 350px; +} + +[data-tooltip][data-variation*="very wide fixed"]:after { + width: 550px; +} + +@media only screen and (max-width: 767.98px) { + [data-tooltip][data-variation~="fixed"]:after { + width: 250px; + } +} + +/*-------------- + Inverted + ---------------*/ + +/* Arrow */ + +[data-tooltip][data-inverted]:before { + box-shadow: none !important; +} + +/* Arrow Position */ + +[data-tooltip][data-inverted]:before { + background: #1B1C1D; +} + +/* Popup */ + +[data-tooltip][data-inverted]:after { + background: #1B1C1D; + color: #FFFFFF; + border: none; + box-shadow: none; +} + +[data-tooltip][data-inverted]:after .header { + background: none; + color: #FFFFFF; +} + +/*-------------- + Position + ---------------*/ + +[data-position~="top"][data-tooltip]:before { + background: #FFFFFF; +} + +/* Top Center */ + +[data-position="top center"][data-tooltip]:after { + top: auto; + right: auto; + left: 50%; + bottom: 100%; + transform: translateX(-50%); + margin-bottom: 0.5em; +} + +[data-position="top center"][data-tooltip]:before { + top: auto; + right: auto; + bottom: 100%; + left: 50%; + background: #FFFFFF; + margin-left: -0.07142857rem; + margin-bottom: 0.14285714rem; +} + +/* Top Left */ + +[data-position="top left"][data-tooltip]:after { + top: auto; + right: auto; + left: 0; + bottom: 100%; + margin-bottom: 0.5em; +} + +[data-position="top left"][data-tooltip]:before { + top: auto; + right: auto; + bottom: 100%; + left: 1em; + margin-left: -0.07142857rem; + margin-bottom: 0.14285714rem; +} + +/* Top Right */ + +[data-position="top right"][data-tooltip]:after { + top: auto; + left: auto; + right: 0; + bottom: 100%; + margin-bottom: 0.5em; +} + +[data-position="top right"][data-tooltip]:before { + top: auto; + left: auto; + bottom: 100%; + right: 1em; + margin-left: -0.07142857rem; + margin-bottom: 0.14285714rem; +} + +[data-position~="bottom"][data-tooltip]:before { + background: #FFFFFF; + box-shadow: -1px -1px 0 0 #bababc; +} + +/* Bottom Center */ + +[data-position="bottom center"][data-tooltip]:after { + bottom: auto; + right: auto; + left: 50%; + top: 100%; + transform: translateX(-50%); + margin-top: 0.5em; +} + +[data-position="bottom center"][data-tooltip]:before { + bottom: auto; + right: auto; + top: 100%; + left: 50%; + margin-left: -0.07142857rem; + margin-top: 0.14285714rem; +} + +/* Bottom Left */ + +[data-position="bottom left"][data-tooltip]:after { + left: 0; + top: 100%; + margin-top: 0.5em; +} + +[data-position="bottom left"][data-tooltip]:before { + bottom: auto; + right: auto; + top: 100%; + left: 1em; + margin-left: -0.07142857rem; + margin-top: 0.14285714rem; +} + +/* Bottom Right */ + +[data-position="bottom right"][data-tooltip]:after { + right: 0; + top: 100%; + margin-top: 0.5em; +} + +[data-position="bottom right"][data-tooltip]:before { + bottom: auto; + left: auto; + top: 100%; + right: 1em; + margin-left: -0.14285714rem; + margin-top: 0.07142857rem; +} + +/* Left Center */ + +[data-position="left center"][data-tooltip]:after { + right: 100%; + top: 50%; + margin-right: 0.5em; + transform: translateY(-50%); +} + +[data-position="left center"][data-tooltip]:before { + right: 100%; + top: 50%; + margin-top: -0.14285714rem; + margin-right: -0.07142857rem; + background: #FFFFFF; + box-shadow: 1px -1px 0 0 #bababc; +} + +/* Right Center */ + +[data-position="right center"][data-tooltip]:after { + left: 100%; + top: 50%; + margin-left: 0.5em; + transform: translateY(-50%); +} + +[data-position="right center"][data-tooltip]:before { + left: 100%; + top: 50%; + margin-top: -0.07142857rem; + margin-left: 0.14285714rem; + background: #FFFFFF; + box-shadow: -1px 1px 0 0 #bababc; +} + +/* Inverted Arrow Color */ + +[data-inverted][data-position~="bottom"][data-tooltip]:before { + background: #1B1C1D; + box-shadow: -1px -1px 0 0 #bababc; +} + +[data-inverted][data-position="left center"][data-tooltip]:before { + background: #1B1C1D; + box-shadow: 1px -1px 0 0 #bababc; +} + +[data-inverted][data-position="right center"][data-tooltip]:before { + background: #1B1C1D; + box-shadow: -1px 1px 0 0 #bababc; +} + +[data-inverted][data-position~="top"][data-tooltip]:before { + background: #1B1C1D; +} + +[data-position~="bottom"][data-tooltip]:before { + transform-origin: center bottom; +} + +[data-position~="bottom"][data-tooltip]:after { + transform-origin: center top; +} + +[data-position="left center"][data-tooltip]:before { + transform-origin: top center; +} + +[data-position="left center"][data-tooltip]:after { + transform-origin: right center; +} + +[data-position="right center"][data-tooltip]:before { + transform-origin: right center; +} + +[data-position="right center"][data-tooltip]:after { + transform-origin: left center; +} + +/*-------------- + Basic + ---------------*/ + +[data-tooltip][data-variation~="basic"]:before { + display: none; +} + +/*-------------- + Spacing +---------------*/ + +.ui.popup { + margin: 0; +} + +/* Extending from Top */ + +.ui.top.popup { + margin: 0 0 0.71428571em; +} + +.ui.top.left.popup { + transform-origin: left bottom; +} + +.ui.top.center.popup { + transform-origin: center bottom; +} + +.ui.top.right.popup { + transform-origin: right bottom; +} + +/* Extending from Vertical Center */ + +.ui.left.center.popup { + margin: 0 0.71428571em 0 0; + transform-origin: right 50%; +} + +.ui.right.center.popup { + margin: 0 0 0 0.71428571em; + transform-origin: left 50%; +} + +/* Extending from Bottom */ + +.ui.bottom.popup { + margin: 0.71428571em 0 0; +} + +.ui.bottom.left.popup { + transform-origin: left top; +} + +.ui.bottom.center.popup { + transform-origin: center top; +} + +.ui.bottom.right.popup { + transform-origin: right top; +} + +/*-------------- + Pointer + ---------------*/ + +/*--- Below ---*/ + +.ui.bottom.center.popup:before { + margin-left: -0.30714286em; + top: -0.30714286em; + left: 50%; + right: auto; + bottom: auto; + box-shadow: -1px -1px 0 0 #bababc; +} + +.ui.bottom.left.popup { + margin-left: 0; +} + +/*rtl:rename*/ + +.ui.bottom.left.popup:before { + top: -0.30714286em; + left: 1em; + right: auto; + bottom: auto; + margin-left: 0; + box-shadow: -1px -1px 0 0 #bababc; +} + +.ui.bottom.right.popup { + margin-right: 0; +} + +/*rtl:rename*/ + +.ui.bottom.right.popup:before { + top: -0.30714286em; + right: 1em; + bottom: auto; + left: auto; + margin-left: 0; + box-shadow: -1px -1px 0 0 #bababc; +} + +/*--- Above ---*/ + +.ui.top.center.popup:before { + top: auto; + right: auto; + bottom: -0.30714286em; + left: 50%; + margin-left: -0.30714286em; +} + +.ui.top.left.popup { + margin-left: 0; +} + +/*rtl:rename*/ + +.ui.top.left.popup:before { + bottom: -0.30714286em; + left: 1em; + top: auto; + right: auto; + margin-left: 0; +} + +.ui.top.right.popup { + margin-right: 0; +} + +/*rtl:rename*/ + +.ui.top.right.popup:before { + bottom: -0.30714286em; + right: 1em; + top: auto; + left: auto; + margin-left: 0; +} + +/*--- Left Center ---*/ + +/*rtl:rename*/ + +.ui.left.center.popup:before { + top: 50%; + right: -0.30714286em; + bottom: auto; + left: auto; + margin-top: -0.30714286em; + box-shadow: 1px -1px 0 0 #bababc; +} + +/*--- Right Center ---*/ + +/*rtl:rename*/ + +.ui.right.center.popup:before { + top: 50%; + left: -0.30714286em; + bottom: auto; + right: auto; + margin-top: -0.30714286em; + box-shadow: -1px 1px 0 0 #bababc; +} + +.ui.right.center.popup:before, +.ui.left.center.popup:before { + background: #FFFFFF; +} + +/* Arrow Color By Location */ + +.ui.bottom.popup:before { + background: #FFFFFF; +} + +.ui.top.popup:before { + background: #FFFFFF; +} + +/* Inverted Arrow Color */ + +.ui.inverted.bottom.popup:before { + background: #1B1C1D; +} + +.ui.inverted.right.center.popup:before, +.ui.inverted.left.center.popup:before { + background: #1B1C1D; +} + +.ui.inverted.top.popup:before { + background: #1B1C1D; +} + +/******************************* + Coupling +*******************************/ + +/* Immediate Nested Grid */ + +.ui.popup > .ui.grid:not(.padded) { + width: calc(100% + 1.75rem); + margin: -0.7rem -0.875rem; +} + +/******************************* + States +*******************************/ + +.ui.loading.popup { + display: block; + visibility: hidden; + z-index: -1; +} + +.ui.animating.popup, +.ui.visible.popup { + display: block; +} + +.ui.visible.popup { + transform: translateZ(0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Basic + ---------------*/ + +.ui.basic.popup:before { + display: none; +} + +.ui.fixed.popup { + width: 250px; +} + +/*-------------- + Wide + ---------------*/ + +.ui.wide.popup { + max-width: 350px; +} + +.ui.wide.popup.fixed { + width: 350px; +} + +.ui[class*="very wide"].popup { + max-width: 550px; +} + +.ui[class*="very wide"].popup.fixed { + width: 550px; +} + +@media only screen and (max-width: 767.98px) { + .ui.wide.popup, + .ui[class*="very wide"].popup { + max-width: 250px; + } + + .ui.wide.popup.fixed, + .ui[class*="very wide"].popup.fixed { + width: 250px; + } +} + +/*-------------- + Fluid + ---------------*/ + +.ui.fluid.popup { + width: 100%; + max-width: none; +} + +/*-------------- + Colors + ---------------*/ + +/* Inverted colors */ + +.ui.inverted.popup { + background: #1B1C1D; + color: #FFFFFF; + border: none; + box-shadow: none; +} + +.ui.inverted.popup .header { + background-color: none; + color: #FFFFFF; +} + +.ui.inverted.popup:before { + background-color: #1B1C1D; + box-shadow: none !important; +} + +/*-------------- + Flowing + ---------------*/ + +.ui.flowing.popup { + max-width: none; +} + +/*-------------- + Sizes +---------------*/ + +.ui.popup { + font-size: 1rem; +} + +.ui.mini.popup { + font-size: 0.78571429rem; +} + +[data-tooltip][data-variation~="mini"]:before, +[data-tooltip][data-variation~="mini"]:after { + font-size: 0.78571429rem; +} + +.ui.tiny.popup { + font-size: 0.85714286rem; +} + +[data-tooltip][data-variation~="tiny"]:before, +[data-tooltip][data-variation~="tiny"]:after { + font-size: 0.85714286rem; +} + +.ui.small.popup { + font-size: 0.92857143rem; +} + +[data-tooltip][data-variation~="small"]:before, +[data-tooltip][data-variation~="small"]:after { + font-size: 0.92857143rem; +} + +.ui.large.popup { + font-size: 1.14285714rem; +} + +[data-tooltip][data-variation~="large"]:before, +[data-tooltip][data-variation~="large"]:after { + font-size: 1.14285714rem; +} + +.ui.big.popup { + font-size: 1.28571429rem; +} + +[data-tooltip][data-variation~="big"]:before, +[data-tooltip][data-variation~="big"]:after { + font-size: 1.28571429rem; +} + +.ui.huge.popup { + font-size: 1.42857143rem; +} + +[data-tooltip][data-variation~="huge"]:before, +[data-tooltip][data-variation~="huge"]:after { + font-size: 1.42857143rem; +} + +.ui.massive.popup { + font-size: 1.71428571rem; +} + +[data-tooltip][data-variation~="massive"]:before, +[data-tooltip][data-variation~="massive"]:after { + font-size: 1.71428571rem; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + User Overrides +*******************************/ +/*! + * # Fomantic-UI - Progress Bar + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Progress +*******************************/ + +.ui.progress { + position: relative; + display: block; + max-width: 100%; + border: none; + margin: 1em 0 2.5em; + box-shadow: none; + background: rgba(0, 0, 0, 0.1); + padding: 0; + border-radius: 0.28571429rem; +} + +.ui.progress:first-child { + margin: 0 0 2.5em; +} + +.ui.progress:last-child { + margin: 0 0 1.5em; +} + +/******************************* + Content +*******************************/ + +/* Activity Bar */ + +.ui.progress .bar { + display: block; + line-height: 1; + position: relative; + width: 0; + min-width: 2em; + background: #888888; + border-radius: 0.28571429rem; + transition: width 0.1s ease, background-color 0.1s ease; + overflow: hidden; +} + +.ui.ui.ui.progress:not([data-percent]):not(.indeterminate) .bar, +.ui.ui.ui.progress[data-percent="0"]:not(.indeterminate) .bar { + background: transparent; +} + +.ui.progress[data-percent="0"] .bar .progress { + color: rgba(0, 0, 0, 0.87); +} + +.ui.inverted.progress[data-percent="0"] .bar .progress { + color: rgba(255, 255, 255, 0.9); +} + +/* Percent Complete */ + +.ui.progress .bar > .progress { + white-space: nowrap; + position: absolute; + width: auto; + font-size: 0.92857143em; + top: 50%; + right: 0.5em; + left: auto; + bottom: auto; + color: rgba(255, 255, 255, 0.7); + text-shadow: none; + margin-top: -0.5em; + font-weight: bold; + text-align: left; +} + +/* Label */ + +.ui.progress > .label { + position: absolute; + width: 100%; + font-size: 1em; + top: 100%; + right: auto; + left: 0; + bottom: auto; + color: rgba(0, 0, 0, 0.87); + font-weight: bold; + text-shadow: none; + margin-top: 0.2em; + text-align: center; + transition: color 0.4s ease; +} + +/******************************* + Types +*******************************/ + +/* Indicating */ + +.ui.indicating.progress[data-percent^="1"] .bar, +.ui.indicating.progress[data-percent^="2"] .bar { + background-color: #D95C5C; +} + +.ui.indicating.progress[data-percent^="3"] .bar { + background-color: #EFBC72; +} + +.ui.indicating.progress[data-percent^="4"] .bar, +.ui.indicating.progress[data-percent^="5"] .bar { + background-color: #E6BB48; +} + +.ui.indicating.progress[data-percent^="6"] .bar { + background-color: #DDC928; +} + +.ui.indicating.progress[data-percent^="7"] .bar, +.ui.indicating.progress[data-percent^="8"] .bar { + background-color: #B4D95C; +} + +.ui.indicating.progress[data-percent^="9"] .bar, +.ui.indicating.progress[data-percent^="100"] .bar { + background-color: #66DA81; +} + +/* Indicating Label */ + +.ui.indicating.progress[data-percent^="1"] .label, +.ui.indicating.progress[data-percent^="2"] .label { + color: rgba(0, 0, 0, 0.87); +} + +.ui.indicating.progress[data-percent^="3"] .label { + color: rgba(0, 0, 0, 0.87); +} + +.ui.indicating.progress[data-percent^="4"] .label, +.ui.indicating.progress[data-percent^="5"] .label { + color: rgba(0, 0, 0, 0.87); +} + +.ui.indicating.progress[data-percent^="6"] .label { + color: rgba(0, 0, 0, 0.87); +} + +.ui.indicating.progress[data-percent^="7"] .label, +.ui.indicating.progress[data-percent^="8"] .label { + color: rgba(0, 0, 0, 0.87); +} + +.ui.indicating.progress[data-percent^="9"] .label, +.ui.indicating.progress[data-percent^="100"] .label { + color: rgba(0, 0, 0, 0.87); +} + +/* Inverted Indicating Label */ + +.ui.inverted.indicating.progress[data-percent^="1"] .label, +.ui.inverted.indicating.progress[data-percent^="2"] .label { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.indicating.progress[data-percent^="3"] .label { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.indicating.progress[data-percent^="4"] .label, +.ui.inverted.indicating.progress[data-percent^="5"] .label { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.indicating.progress[data-percent^="6"] .label { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.indicating.progress[data-percent^="7"] .label, +.ui.inverted.indicating.progress[data-percent^="8"] .label { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.indicating.progress[data-percent^="9"] .label, +.ui.inverted.indicating.progress[data-percent^="100"] .label { + color: rgba(255, 255, 255, 0.9); +} + +/* Single Digits */ + +.ui.indicating.progress[data-percent="1"] .bar, +.ui.indicating.progress[data-percent^="1."] .bar, +.ui.indicating.progress[data-percent="2"] .bar, +.ui.indicating.progress[data-percent^="2."] .bar, +.ui.indicating.progress[data-percent="3"] .bar, +.ui.indicating.progress[data-percent^="3."] .bar, +.ui.indicating.progress[data-percent="4"] .bar, +.ui.indicating.progress[data-percent^="4."] .bar, +.ui.indicating.progress[data-percent="5"] .bar, +.ui.indicating.progress[data-percent^="5."] .bar, +.ui.indicating.progress[data-percent="6"] .bar, +.ui.indicating.progress[data-percent^="6."] .bar, +.ui.indicating.progress[data-percent="7"] .bar, +.ui.indicating.progress[data-percent^="7."] .bar, +.ui.indicating.progress[data-percent="8"] .bar, +.ui.indicating.progress[data-percent^="8."] .bar, +.ui.indicating.progress[data-percent="9"] .bar, +.ui.indicating.progress[data-percent^="9."] .bar { + background-color: #D95C5C; +} + +.ui.indicating.progress[data-percent="0"] .label, +.ui.indicating.progress[data-percent^="0."] .label, +.ui.indicating.progress[data-percent="1"] .label, +.ui.indicating.progress[data-percent^="1."] .label, +.ui.indicating.progress[data-percent="2"] .label, +.ui.indicating.progress[data-percent^="2."] .label, +.ui.indicating.progress[data-percent="3"] .label, +.ui.indicating.progress[data-percent^="3."] .label, +.ui.indicating.progress[data-percent="4"] .label, +.ui.indicating.progress[data-percent^="4."] .label, +.ui.indicating.progress[data-percent="5"] .label, +.ui.indicating.progress[data-percent^="5."] .label, +.ui.indicating.progress[data-percent="6"] .label, +.ui.indicating.progress[data-percent^="6."] .label, +.ui.indicating.progress[data-percent="7"] .label, +.ui.indicating.progress[data-percent^="7."] .label, +.ui.indicating.progress[data-percent="8"] .label, +.ui.indicating.progress[data-percent^="8."] .label, +.ui.indicating.progress[data-percent="9"] .label, +.ui.indicating.progress[data-percent^="9."] .label { + color: rgba(0, 0, 0, 0.87); +} + +.ui.inverted.indicating.progress[data-percent="0"] .label, +.ui.inverted.indicating.progress[data-percent^="0."] .label, +.ui.inverted.indicating.progress[data-percent="1"] .label, +.ui.inverted.indicating.progress[data-percent^="1."] .label, +.ui.inverted.indicating.progress[data-percent="2"] .label, +.ui.inverted.indicating.progress[data-percent^="2."] .label, +.ui.inverted.indicating.progress[data-percent="3"] .label, +.ui.inverted.indicating.progress[data-percent^="3."] .label, +.ui.inverted.indicating.progress[data-percent="4"] .label, +.ui.inverted.indicating.progress[data-percent^="4."] .label, +.ui.inverted.indicating.progress[data-percent="5"] .label, +.ui.inverted.indicating.progress[data-percent^="5."] .label, +.ui.inverted.indicating.progress[data-percent="6"] .label, +.ui.inverted.indicating.progress[data-percent^="6."] .label, +.ui.inverted.indicating.progress[data-percent="7"] .label, +.ui.inverted.indicating.progress[data-percent^="7."] .label, +.ui.inverted.indicating.progress[data-percent="8"] .label, +.ui.inverted.indicating.progress[data-percent^="8."] .label, +.ui.inverted.indicating.progress[data-percent="9"] .label, +.ui.inverted.indicating.progress[data-percent^="9."] .label { + color: rgba(255, 255, 255, 0.9); +} + +/* Indicating Success */ + +.ui.ui.indicating.progress.success .label { + color: #1A531B; +} + +/* Multiple */ + +.ui.multiple.progress { + display: flex; +} + +/******************************* + States +*******************************/ + +/*-------------- + Success + ---------------*/ + +.ui.ui.progress.success .bar { + background-color: #21BA45; +} + +.ui.ui.progress.success .bar, +.ui.ui.progress.success .bar::after { + -webkit-animation: none; + animation: none; +} + +.ui.progress.success > .label { + color: #1A531B; +} + +/*-------------- + Warning + ---------------*/ + +.ui.ui.progress.warning .bar { + background-color: #F2C037; +} + +.ui.ui.progress.warning .bar, +.ui.ui.progress.warning .bar::after { + -webkit-animation: none; + animation: none; +} + +.ui.progress.warning > .label { + color: #794B02; +} + +/*-------------- + Error + ---------------*/ + +.ui.ui.progress.error .bar { + background-color: #DB2828; +} + +.ui.ui.progress.error .bar, +.ui.ui.progress.error .bar::after { + -webkit-animation: none; + animation: none; +} + +.ui.progress.error > .label { + color: #912D2B; +} + +/*-------------- + Active + ---------------*/ + +.ui.active.progress .bar { + position: relative; + min-width: 2em; +} + +.ui.active.progress .bar::after { + content: ''; + opacity: 0; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: #FFFFFF; + border-radius: 0.28571429rem; + -webkit-animation: progress-active 2s ease infinite; + animation: progress-active 2s ease infinite; + transform-origin: left; +} + +@-webkit-keyframes progress-active { + 0% { + opacity: 0.3; + transform: scale(0, 1); + } + + 100% { + opacity: 0; + transform: scale(1); + } +} + +@keyframes progress-active { + 0% { + opacity: 0.3; + transform: scale(0, 1); + } + + 100% { + opacity: 0; + transform: scale(1); + } +} + +/*-------------- + Disabled + ---------------*/ + +.ui.disabled.progress { + opacity: 0.35; +} + +.ui.ui.disabled.progress .bar, +.ui.ui.disabled.progress .bar::after { + -webkit-animation: none; + animation: none; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Inverted + ---------------*/ + +.ui.inverted.progress { + background: rgba(255, 255, 255, 0.08); + border: none; +} + +.ui.inverted.progress .bar { + background: #888888; +} + +.ui.inverted.progress .bar > .progress { + color: #1B1C1D; +} + +.ui.inverted.progress > .label { + color: #FFFFFF; +} + +.ui.inverted.progress.success > .label { + color: #21BA45; +} + +.ui.inverted.progress.warning > .label { + color: #F2C037; +} + +.ui.inverted.progress.error > .label { + color: #DB2828; +} + +/*-------------- + Attached + ---------------*/ + +/* bottom attached */ + +.ui.progress.attached { + background: transparent; + position: relative; + border: none; + margin: 0; +} + +.ui.progress.attached, +.ui.progress.attached .bar { + display: block; + height: 0.2rem; + padding: 0; + overflow: hidden; + border-radius: 0 0 0.28571429rem 0.28571429rem; +} + +.ui.progress.attached .bar { + border-radius: 0; +} + +/* top attached */ + +.ui.progress.top.attached, +.ui.progress.top.attached .bar { + top: 0; + border-radius: 0.28571429rem 0.28571429rem 0 0; +} + +.ui.progress.top.attached .bar { + border-radius: 0; +} + +/* Coupling */ + +.ui.segment > .ui.attached.progress, +.ui.card > .ui.attached.progress { + position: absolute; + top: auto; + left: 0; + bottom: 100%; + width: 100%; +} + +.ui.segment > .ui.bottom.attached.progress, +.ui.card > .ui.bottom.attached.progress { + top: 100%; + bottom: auto; +} + +/*-------------- + Colors +---------------*/ + +.ui.indeterminate.primary.progress .bar::before, +.ui.primary.progress .bar, +.ui.progress .primary.bar { + background-color: #2185D0; +} + +.ui.inverted.indeterminate.primary.progress .bar::before, +.ui.primary.inverted.progress .bar, +.ui.inverted.progress .primary.bar { + background-color: #54C8FF; +} + +.ui.indeterminate.secondary.progress .bar::before, +.ui.secondary.progress .bar, +.ui.progress .secondary.bar { + background-color: #1B1C1D; +} + +.ui.inverted.indeterminate.secondary.progress .bar::before, +.ui.secondary.inverted.progress .bar, +.ui.inverted.progress .secondary.bar { + background-color: #545454; +} + +.ui.indeterminate.red.progress .bar::before, +.ui.red.progress .bar, +.ui.progress .red.bar { + background-color: #DB2828; +} + +.ui.inverted.indeterminate.red.progress .bar::before, +.ui.red.inverted.progress .bar, +.ui.inverted.progress .red.bar { + background-color: #FF695E; +} + +.ui.indeterminate.orange.progress .bar::before, +.ui.orange.progress .bar, +.ui.progress .orange.bar { + background-color: #F2711C; +} + +.ui.inverted.indeterminate.orange.progress .bar::before, +.ui.orange.inverted.progress .bar, +.ui.inverted.progress .orange.bar { + background-color: #FF851B; +} + +.ui.indeterminate.yellow.progress .bar::before, +.ui.yellow.progress .bar, +.ui.progress .yellow.bar { + background-color: #FBBD08; +} + +.ui.inverted.indeterminate.yellow.progress .bar::before, +.ui.yellow.inverted.progress .bar, +.ui.inverted.progress .yellow.bar { + background-color: #FFE21F; +} + +.ui.indeterminate.olive.progress .bar::before, +.ui.olive.progress .bar, +.ui.progress .olive.bar { + background-color: #B5CC18; +} + +.ui.inverted.indeterminate.olive.progress .bar::before, +.ui.olive.inverted.progress .bar, +.ui.inverted.progress .olive.bar { + background-color: #D9E778; +} + +.ui.indeterminate.green.progress .bar::before, +.ui.green.progress .bar, +.ui.progress .green.bar { + background-color: #21BA45; +} + +.ui.inverted.indeterminate.green.progress .bar::before, +.ui.green.inverted.progress .bar, +.ui.inverted.progress .green.bar { + background-color: #2ECC40; +} + +.ui.indeterminate.teal.progress .bar::before, +.ui.teal.progress .bar, +.ui.progress .teal.bar { + background-color: #00B5AD; +} + +.ui.inverted.indeterminate.teal.progress .bar::before, +.ui.teal.inverted.progress .bar, +.ui.inverted.progress .teal.bar { + background-color: #6DFFFF; +} + +.ui.indeterminate.blue.progress .bar::before, +.ui.blue.progress .bar, +.ui.progress .blue.bar { + background-color: #2185D0; +} + +.ui.inverted.indeterminate.blue.progress .bar::before, +.ui.blue.inverted.progress .bar, +.ui.inverted.progress .blue.bar { + background-color: #54C8FF; +} + +.ui.indeterminate.violet.progress .bar::before, +.ui.violet.progress .bar, +.ui.progress .violet.bar { + background-color: #6435C9; +} + +.ui.inverted.indeterminate.violet.progress .bar::before, +.ui.violet.inverted.progress .bar, +.ui.inverted.progress .violet.bar { + background-color: #A291FB; +} + +.ui.indeterminate.purple.progress .bar::before, +.ui.purple.progress .bar, +.ui.progress .purple.bar { + background-color: #A333C8; +} + +.ui.inverted.indeterminate.purple.progress .bar::before, +.ui.purple.inverted.progress .bar, +.ui.inverted.progress .purple.bar { + background-color: #DC73FF; +} + +.ui.indeterminate.pink.progress .bar::before, +.ui.pink.progress .bar, +.ui.progress .pink.bar { + background-color: #E03997; +} + +.ui.inverted.indeterminate.pink.progress .bar::before, +.ui.pink.inverted.progress .bar, +.ui.inverted.progress .pink.bar { + background-color: #FF8EDF; +} + +.ui.indeterminate.brown.progress .bar::before, +.ui.brown.progress .bar, +.ui.progress .brown.bar { + background-color: #A5673F; +} + +.ui.inverted.indeterminate.brown.progress .bar::before, +.ui.brown.inverted.progress .bar, +.ui.inverted.progress .brown.bar { + background-color: #D67C1C; +} + +.ui.indeterminate.grey.progress .bar::before, +.ui.grey.progress .bar, +.ui.progress .grey.bar { + background-color: #767676; +} + +.ui.inverted.indeterminate.grey.progress .bar::before, +.ui.grey.inverted.progress .bar, +.ui.inverted.progress .grey.bar { + background-color: #DCDDDE; +} + +.ui.indeterminate.black.progress .bar::before, +.ui.black.progress .bar, +.ui.progress .black.bar { + background-color: #1B1C1D; +} + +.ui.inverted.indeterminate.black.progress .bar::before, +.ui.black.inverted.progress .bar, +.ui.inverted.progress .black.bar { + background-color: #545454; +} + +/*-------------- + Sizes +---------------*/ + +.ui.progress { + font-size: 1rem; +} + +.ui.progress .bar { + height: 1.75em; +} + +.ui.mini.progress { + font-size: 0.78571429rem; +} + +.ui.mini.progress .bar { + height: 0.3em; +} + +.ui.tiny.progress { + font-size: 0.85714286rem; +} + +.ui.tiny.progress .bar { + height: 0.5em; +} + +.ui.small.progress { + font-size: 0.92857143rem; +} + +.ui.small.progress .bar { + height: 1em; +} + +.ui.large.progress { + font-size: 1.14285714rem; +} + +.ui.large.progress .bar { + height: 2.5em; +} + +.ui.big.progress { + font-size: 1.28571429rem; +} + +.ui.big.progress .bar { + height: 3.5em; +} + +.ui.huge.progress { + font-size: 1.42857143rem; +} + +.ui.huge.progress .bar { + height: 4em; +} + +.ui.massive.progress { + font-size: 1.71428571rem; +} + +.ui.massive.progress .bar { + height: 5em; +} + +/*--------------- + Indeterminate + ----------------*/ + +.ui.indeterminate.progress .bar { + width: 100%; +} + +.ui.indeterminate.progress .bar .progress, +.ui.progress .bar .centered.progress { + text-align: center; + position: relative; +} + +.ui.indeterminate.progress .bar::before { + content: ''; + position: absolute; + top: 0; + bottom: 0; + border-radius: 0.28571429rem; + -webkit-animation: progress-pulsating 2s ease infinite; + animation: progress-pulsating 2s ease infinite; + transform-origin: center; + width: 100%; +} + +.ui.slow.indeterminate.progress .bar::before { + -webkit-animation-duration: 4s; + animation-duration: 4s; +} + +.ui.fast.indeterminate.progress .bar::before { + -webkit-animation-duration: 1s; + animation-duration: 1s; +} + +.ui.swinging.indeterminate.progress .bar::before { + transform-origin: left; + -webkit-animation-name: progress-swinging; + animation-name: progress-swinging; +} + +.ui.sliding.indeterminate.progress .bar::before { + transform-origin: left; + -webkit-animation-name: progress-sliding; + animation-name: progress-sliding; +} + +.ui.filling.indeterminate.progress .bar::before { + -webkit-animation-name: progress-filling; + animation-name: progress-filling; +} + +.ui.indeterminate.progress:not(.sliding):not(.filling):not(.swinging) .bar::before { + background: #FFFFFF; +} + +.ui.sliding.indeterminate.progress .bar, +.ui.swinging.indeterminate.progress .bar, +.ui.filling.indeterminate.progress .bar { + background: rgba(0, 0, 0, 0.1); +} + +.ui.sliding.indeterminate.progress .bar .progress, +.ui.swinging.indeterminate.progress .bar .progress { + color: #1B1C1D; +} + +.ui.inverted.sliding.indeterminate.progress .bar, +.ui.inverted.swinging.indeterminate.progress .bar, +.ui.inverted.filling.indeterminate.progress .bar { + background: rgba(255, 255, 255, 0.08); +} + +.ui.inverted.sliding.indeterminate.progress .bar .progress, +.ui.inverted.swinging.indeterminate.progress .bar .progress { + color: rgba(255, 255, 255, 0.7); +} + +@-webkit-keyframes progress-swinging { + 0%, 100% { + width: 10%; + left: -25%; + } + + 25%, 65% { + width: 70%; + } + + 50% { + width: 10%; + left: 100%; + } +} + +@keyframes progress-swinging { + 0%, 100% { + width: 10%; + left: -25%; + } + + 25%, 65% { + width: 70%; + } + + 50% { + width: 10%; + left: 100%; + } +} + +@-webkit-keyframes progress-sliding { + 0% { + width: 10%; + left: -25%; + } + + 50% { + width: 70%; + } + + 100% { + width: 10%; + left: 100%; + } +} + +@keyframes progress-sliding { + 0% { + width: 10%; + left: -25%; + } + + 50% { + width: 70%; + } + + 100% { + width: 10%; + left: 100%; + } +} + +@-webkit-keyframes progress-filling { + 0% { + transform: scale(0, 1); + } + + 80% { + transform: scale(1); + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +@keyframes progress-filling { + 0% { + transform: scale(0, 1); + } + + 80% { + transform: scale(1); + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +@-webkit-keyframes progress-pulsating { + 0% { + transform: scale(0, 1); + opacity: 0.7; + } + + 100% { + transform: scale(1); + opacity: 0; + } +} + +@keyframes progress-pulsating { + 0% { + transform: scale(0, 1); + opacity: 0.7; + } + + 100% { + transform: scale(1); + opacity: 0; + } +} + +/******************************* + Progress +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Reset + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Reset +*******************************/ + +/* Border-Box */ + +*, +*:before, +*:after { + box-sizing: inherit; +} + +html { + box-sizing: border-box; +} + +/* iPad Input Shadows */ + +input[type="text"], +input[type="email"], +input[type="search"], +input[type="password"] { + -webkit-appearance: none; + -moz-appearance: none; + /* mobile firefox too! */ +} + +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; + /* 1 */ + height: 0; + /* 1 */ + overflow: visible; + /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; + /* 1 */ + text-decoration: underline; + /* 2 */ + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + line-height: 1.15; + /* 1 */ + margin: 0; + /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { + /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { + /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; + /* 1 */ + color: inherit; + /* 2 */ + display: table; + /* 1 */ + max-width: 100%; + /* 1 */ + padding: 0; + /* 3 */ + white-space: normal; + /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Search + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Search +*******************************/ + +.ui.search { + position: relative; +} + +.ui.search > .prompt { + margin: 0; + outline: none; + -webkit-appearance: none; + -webkit-tap-highlight-color: rgba(255, 255, 255, 0); + text-shadow: none; + font-style: normal; + font-weight: normal; + line-height: 1.21428571em; + padding: 0.67857143em 1em; + font-size: 1em; + background: #FFFFFF; + border: 1px solid rgba(34, 36, 38, 0.15); + color: rgba(0, 0, 0, 0.87); + box-shadow: 0 0 0 0 transparent inset; + transition: background-color 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, border-color 0.1s ease; +} + +.ui.search .prompt { + border-radius: 500rem; +} + +/*-------------- + Icon +---------------*/ + +.ui.search .prompt ~ .search.icon { + cursor: pointer; +} + +/*-------------- + Results +---------------*/ + +.ui.search > .results { + display: none; + position: absolute; + top: 100%; + left: 0; + transform-origin: center top; + white-space: normal; + text-align: left; + text-transform: none; + background: #FFFFFF; + margin-top: 0.5em; + width: 18em; + border-radius: 0.28571429rem; + box-shadow: 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); + border: 1px solid #D4D4D5; + z-index: 998; +} + +.ui.search > .results > :first-child { + border-radius: 0.28571429rem 0.28571429rem 0 0; +} + +.ui.search > .results > :last-child { + border-radius: 0 0 0.28571429rem 0.28571429rem; +} + +/*-------------- + Result +---------------*/ + +.ui.search > .results .result { + cursor: pointer; + display: block; + overflow: hidden; + font-size: 1em; + padding: 0.85714286em 1.14285714em; + color: rgba(0, 0, 0, 0.87); + line-height: 1.33; + border-bottom: 1px solid rgba(34, 36, 38, 0.1); +} + +.ui.search > .results .result:last-child { + border-bottom: none !important; +} + +/* Image */ + +.ui.search > .results .result .image { + float: right; + overflow: hidden; + background: none; + width: 5em; + height: 3em; + border-radius: 0.25em; +} + +.ui.search > .results .result .image img { + display: block; + width: auto; + height: 100%; +} + +/*-------------- + Info +---------------*/ + +.ui.search > .results .result .image + .content { + margin: 0 6em 0 0; +} + +.ui.search > .results .result .title { + margin: -0.14285714em 0 0; + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + font-weight: bold; + font-size: 1em; + color: rgba(0, 0, 0, 0.85); +} + +.ui.search > .results .result .description { + margin-top: 0; + font-size: 0.92857143em; + color: rgba(0, 0, 0, 0.4); +} + +.ui.search > .results .result .price { + float: right; + color: #21BA45; +} + +/*-------------- + Message +---------------*/ + +.ui.search > .results > .message { + padding: 1em 1em; +} + +.ui.search > .results > .message .header { + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + font-size: 1rem; + font-weight: bold; + color: rgba(0, 0, 0, 0.87); +} + +.ui.search > .results > .message .description { + margin-top: 0.25rem; + font-size: 1em; + color: rgba(0, 0, 0, 0.87); +} + +/* View All Results */ + +.ui.search > .results > .action { + display: block; + border-top: none; + background: #F3F4F5; + padding: 0.92857143em 1em; + color: rgba(0, 0, 0, 0.87); + font-weight: bold; + text-align: center; +} + +/******************************* + States +*******************************/ + +/*-------------------- + Focus +---------------------*/ + +.ui.search > .prompt:focus { + border-color: rgba(34, 36, 38, 0.35); + background: #FFFFFF; + color: rgba(0, 0, 0, 0.95); +} + +/*-------------------- + Loading + ---------------------*/ + +.ui.loading.search .input > i.icon:before { + position: absolute; + content: ''; + top: 50%; + left: 50%; + margin: -0.64285714em 0 0 -0.64285714em; + width: 1.28571429em; + height: 1.28571429em; + border-radius: 500rem; + border: 0.2em solid rgba(0, 0, 0, 0.1); +} + +.ui.loading.search .input > i.icon:after { + position: absolute; + content: ''; + top: 50%; + left: 50%; + margin: -0.64285714em 0 0 -0.64285714em; + width: 1.28571429em; + height: 1.28571429em; + -webkit-animation: loader 0.6s infinite linear; + animation: loader 0.6s infinite linear; + border: 0.2em solid #767676; + border-radius: 500rem; + box-shadow: 0 0 0 1px transparent; +} + +/*-------------- + Hover +---------------*/ + +.ui.search > .results .result:hover, +.ui.category.search > .results .category .result:hover { + background: #F9FAFB; +} + +.ui.search .action:hover:not(div) { + background: #E0E0E0; +} + +/*-------------- + Active +---------------*/ + +.ui.category.search > .results .category.active { + background: #F3F4F5; +} + +.ui.category.search > .results .category.active > .name { + color: rgba(0, 0, 0, 0.87); +} + +.ui.search > .results .result.active, +.ui.category.search > .results .category .result.active { + position: relative; + border-left-color: rgba(34, 36, 38, 0.1); + background: #F3F4F5; + box-shadow: none; +} + +.ui.search > .results .result.active .title { + color: rgba(0, 0, 0, 0.85); +} + +.ui.search > .results .result.active .description { + color: rgba(0, 0, 0, 0.85); +} + +/*-------------------- + Disabled + ----------------------*/ + +/* Disabled */ + +.ui.disabled.search { + cursor: default; + pointer-events: none; + opacity: 0.45; +} + +/******************************* + Types +*******************************/ + +/*-------------- + Selection + ---------------*/ + +.ui.search.selection .prompt { + border-radius: 0.28571429rem; +} + +/* Remove input */ + +.ui.search.selection > .icon.input > .remove.icon { + pointer-events: none; + position: absolute; + left: auto; + opacity: 0; + color: ''; + top: 0; + right: 0; + transition: color 0.1s ease, opacity 0.1s ease; +} + +.ui.search.selection > .icon.input > .active.remove.icon { + cursor: pointer; + opacity: 0.8; + pointer-events: auto; +} + +.ui.search.selection > .icon.input:not([class*="left icon"]) > .icon ~ .remove.icon { + right: 1.85714em; +} + +.ui.search.selection > .icon.input > .remove.icon:hover { + opacity: 1; + color: #DB2828; +} + +/*-------------- + Category + ---------------*/ + +.ui.category.search .results { + width: 28em; +} + +.ui.category.search .results.animating, +.ui.category.search .results.visible { + display: table; +} + +/* Category */ + +.ui.category.search > .results .category { + display: table-row; + background: #F3F4F5; + box-shadow: none; + transition: background 0.1s ease, border-color 0.1s ease; +} + +/* Last Category */ + +.ui.category.search > .results .category:last-child { + border-bottom: none; +} + +/* First / Last */ + +.ui.category.search > .results .category:first-child .name + .result { + border-radius: 0 0.28571429rem 0 0; +} + +.ui.category.search > .results .category:last-child .result:last-child { + border-radius: 0 0 0.28571429rem 0; +} + +/* Category Result Name */ + +.ui.category.search > .results .category > .name { + display: table-cell; + text-overflow: ellipsis; + width: 100px; + white-space: nowrap; + background: transparent; + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + font-size: 1em; + padding: 0.4em 1em; + font-weight: bold; + color: rgba(0, 0, 0, 0.4); + border-bottom: 1px solid rgba(34, 36, 38, 0.1); +} + +/* Category Result */ + +.ui.category.search > .results .category .results { + display: table-cell; + background: #FFFFFF; + border-left: 1px solid rgba(34, 36, 38, 0.15); + border-bottom: 1px solid rgba(34, 36, 38, 0.1); +} + +.ui.category.search > .results .category .result { + border-bottom: 1px solid rgba(34, 36, 38, 0.1); + transition: background 0.1s ease, border-color 0.1s ease; + padding: 0.85714286em 1.14285714em; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Scrolling + --------------------*/ + +.ui.scrolling.search > .results, +.ui.search.long > .results, +.ui.search.short > .results { + overflow-x: hidden; + overflow-y: auto; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-overflow-scrolling: touch; +} + +@media only screen and (max-width: 767.98px) { + .ui.scrolling.search > .results { + max-height: 12.17714286em; + } +} + +@media only screen and (min-width: 768px) { + .ui.scrolling.search > .results { + max-height: 18.26571429em; + } +} + +@media only screen and (min-width: 992px) { + .ui.scrolling.search > .results { + max-height: 24.35428571em; + } +} + +@media only screen and (min-width: 1920px) { + .ui.scrolling.search > .results { + max-height: 36.53142857em; + } +} + +@media only screen and (max-width: 767.98px) { + .ui.search.short > .results { + max-height: 12.17714286em; + } + + .ui.search[class*="very short"] > .results { + max-height: 9.13285714em; + } + + .ui.search.long > .results { + max-height: 24.35428571em; + } + + .ui.search[class*="very long"] > .results { + max-height: 36.53142857em; + } +} + +@media only screen and (min-width: 768px) { + .ui.search.short > .results { + max-height: 18.26571429em; + } + + .ui.search[class*="very short"] > .results { + max-height: 13.69928571em; + } + + .ui.search.long > .results { + max-height: 36.53142857em; + } + + .ui.search[class*="very long"] > .results { + max-height: 54.79714286em; + } +} + +@media only screen and (min-width: 992px) { + .ui.search.short > .results { + max-height: 24.35428571em; + } + + .ui.search[class*="very short"] > .results { + max-height: 18.26571429em; + } + + .ui.search.long > .results { + max-height: 48.70857143em; + } + + .ui.search[class*="very long"] > .results { + max-height: 73.06285714em; + } +} + +@media only screen and (min-width: 1920px) { + .ui.search.short > .results { + max-height: 36.53142857em; + } + + .ui.search[class*="very short"] > .results { + max-height: 27.39857143em; + } + + .ui.search.long > .results { + max-height: 73.06285714em; + } + + .ui.search[class*="very long"] > .results { + max-height: 109.59428571em; + } +} + +/*------------------- + Left / Right + --------------------*/ + +.ui[class*="left aligned"].search > .results { + right: auto; + left: 0; +} + +.ui[class*="right aligned"].search > .results { + right: 0; + left: auto; +} + +/*-------------- + Fluid +---------------*/ + +.ui.fluid.search .results { + width: 100%; +} + +/*-------------- + Sizes +---------------*/ + +.ui.search { + font-size: 1em; +} + +.ui.mini.search { + font-size: 0.78571429em; +} + +.ui.tiny.search { + font-size: 0.85714286em; +} + +.ui.small.search { + font-size: 0.92857143em; +} + +.ui.large.search { + font-size: 1.14285714em; +} + +.ui.big.search { + font-size: 1.28571429em; +} + +.ui.huge.search { + font-size: 1.42857143em; +} + +.ui.massive.search { + font-size: 1.71428571em; +} + +/*-------------- + Mobile +---------------*/ + +@media only screen and (max-width: 767.98px) { + .ui.search .results { + max-width: calc(100vw - 2rem); + } +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Segment + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Segment +*******************************/ + +.ui.segment { + position: relative; + background: #FFFFFF; + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15); + margin: 1rem 0; + padding: 1em 1em; + border-radius: 0.28571429rem; + border: 1px solid rgba(34, 36, 38, 0.15); +} + +.ui.segment:first-child { + margin-top: 0; +} + +.ui.segment:last-child { + margin-bottom: 0; +} + +/* Vertical */ + +.ui.vertical.segment { + margin: 0; + padding-left: 0; + padding-right: 0; + background: none transparent; + border-radius: 0; + box-shadow: none; + border: none; + border-bottom: 1px solid rgba(34, 36, 38, 0.15); +} + +.ui.vertical.segment:last-child { + border-bottom: none; +} + +/*------------------- + Loose Coupling +--------------------*/ + +/* Header */ + +.ui.inverted.segment > .ui.header .sub.header, +.ui.inverted.segment > .ui.header { + color: #FFFFFF; +} + +/* Label */ + +.ui[class*="bottom attached"].segment > [class*="top attached"].label { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.ui[class*="top attached"].segment > [class*="bottom attached"].label { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.ui.attached.segment:not(.top):not(.bottom) > [class*="top attached"].label { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.ui.attached.segment:not(.top):not(.bottom) > [class*="bottom attached"].label { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +/* Grid */ + +.ui.page.grid.segment, +.ui.grid > .row > .ui.segment.column, +.ui.grid > .ui.segment.column { + padding-top: 2em; + padding-bottom: 2em; +} + +.ui.grid.segment { + margin: 1rem 0; + border-radius: 0.28571429rem; +} + +/* Table */ + +.ui.basic.table.segment { + background: #FFFFFF; + border: 1px solid rgba(34, 36, 38, 0.15); + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15); +} + +.ui[class*="very basic"].table.segment { + padding: 1em 1em; +} + +/* Tab */ + +.ui.segment.tab:last-child { + margin-bottom: 1rem; +} + +/******************************* + Types +*******************************/ + +/*------------------- + Placeholder + --------------------*/ + +.ui.placeholder.segment { + display: flex; + flex-direction: column; + justify-content: center; + align-items: stretch; + max-width: initial; + -webkit-animation: none; + animation: none; + overflow: visible; + padding: 1em 1em; + min-height: 18rem; + background: #F9FAFB; + border-color: rgba(34, 36, 38, 0.15); + box-shadow: 0 2px 25px 0 rgba(34, 36, 38, 0.05) inset; +} + +.ui.placeholder.segment .button, +.ui.placeholder.segment textarea { + display: block; +} + +.ui.placeholder.segment .field, +.ui.placeholder.segment textarea, +.ui.placeholder.segment > .ui.input, +.ui.placeholder.segment .button { + max-width: 15rem; + margin-left: auto; + margin-right: auto; +} + +.ui.placeholder.segment .column .button, +.ui.placeholder.segment .column .field, +.ui.placeholder.segment .column textarea, +.ui.placeholder.segment .column > .ui.input { + max-width: 15rem; + margin-left: auto; + margin-right: auto; +} + +.ui.placeholder.segment > .inline { + align-self: center; +} + +.ui.placeholder.segment > .inline > .button { + display: inline-block; + width: auto; + margin: 0 0.35714286rem 0 0; +} + +.ui.placeholder.segment > .inline > .button:last-child { + margin-right: 0; +} + +/*------------------- + Piled + --------------------*/ + +.ui.piled.segments, +.ui.piled.segment { + margin: 3em 0; + box-shadow: ''; + z-index: auto; +} + +.ui.piled.segment:first-child { + margin-top: 0; +} + +.ui.piled.segment:last-child { + margin-bottom: 0; +} + +.ui.piled.segments:after, +.ui.piled.segments:before, +.ui.piled.segment:after, +.ui.piled.segment:before { + background-color: #FFFFFF; + visibility: visible; + content: ''; + display: block; + height: 100%; + left: 0; + position: absolute; + width: 100%; + border: 1px solid rgba(34, 36, 38, 0.15); + box-shadow: ''; +} + +.ui.piled.segments:before, +.ui.piled.segment:before { + transform: rotate(-1.2deg); + top: 0; + z-index: -2; +} + +.ui.piled.segments:after, +.ui.piled.segment:after { + transform: rotate(1.2deg); + top: 0; + z-index: -1; +} + +/* Piled Attached */ + +.ui[class*="top attached"].piled.segment { + margin-top: 3em; + margin-bottom: 0; +} + +.ui.piled.segment[class*="top attached"]:first-child { + margin-top: 0; +} + +.ui.piled.segment[class*="bottom attached"] { + margin-top: 0; + margin-bottom: 3em; +} + +.ui.piled.segment[class*="bottom attached"]:last-child { + margin-bottom: 0; +} + +/*------------------- + Stacked + --------------------*/ + +.ui.stacked.segment { + padding-bottom: 1.4em; +} + +.ui.stacked.segments:before, +.ui.stacked.segments:after, +.ui.stacked.segment:before, +.ui.stacked.segment:after { + content: ''; + position: absolute; + bottom: -3px; + left: 0; + border-top: 1px solid rgba(34, 36, 38, 0.15); + background: rgba(0, 0, 0, 0.03); + width: 100%; + height: 6px; + visibility: visible; +} + +.ui.stacked.segments:before, +.ui.stacked.segment:before { + display: none; +} + +/* Add additional page */ + +.ui.tall.stacked.segments:before, +.ui.tall.stacked.segment:before { + display: block; + bottom: 0; +} + +/* Inverted */ + +.ui.stacked.inverted.segments:before, +.ui.stacked.inverted.segments:after, +.ui.stacked.inverted.segment:before, +.ui.stacked.inverted.segment:after { + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(34, 36, 38, 0.35); +} + +/*------------------- + Padded + --------------------*/ + +.ui.padded.segment { + padding: 1.5em; +} + +.ui[class*="very padded"].segment { + padding: 3em; +} + +/* Padded vertical */ + +.ui.padded.segment.vertical.segment, +.ui[class*="very padded"].vertical.segment { + padding-left: 0; + padding-right: 0; +} + +/*------------------- + Compact + --------------------*/ + +.ui.compact.segment { + display: table; +} + +/* Compact Group */ + +.ui.compact.segments { + display: inline-flex; +} + +.ui.compact.segments .segment, +.ui.segments .compact.segment { + display: block; + flex: 0 1 auto; +} + +/*------------------- + Circular + --------------------*/ + +.ui.circular.segment { + display: table-cell; + padding: 2em; + text-align: center; + vertical-align: middle; + border-radius: 500em; +} + +/*------------------- + Raised + --------------------*/ + +.ui.raised.raised.segments, +.ui.raised.raised.segment { + box-shadow: 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15); +} + +/******************************* + Groups + *******************************/ + +/* Group */ + +.ui.segments { + flex-direction: column; + position: relative; + margin: 1rem 0; + border: 1px solid rgba(34, 36, 38, 0.15); + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15); + border-radius: 0.28571429rem; +} + +.ui.segments:first-child { + margin-top: 0; +} + +.ui.segments:last-child { + margin-bottom: 0; +} + +/* Nested Segment */ + +.ui.segments > .segment { + top: 0; + bottom: 0; + border-radius: 0; + margin: 0; + width: auto; + box-shadow: none; + border: none; + border-top: 1px solid rgba(34, 36, 38, 0.15); +} + +.ui.segments:not(.horizontal) > .segment:first-child { + top: 0; + bottom: 0; + border-top: none; + margin-top: 0; + margin-bottom: 0; + border-radius: 0.28571429rem 0.28571429rem 0 0; +} + +/* Bottom */ + +.ui.segments:not(.horizontal) > .segment:last-child { + top: 0; + bottom: 0; + margin-top: 0; + margin-bottom: 0; + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), none; + border-radius: 0 0 0.28571429rem 0.28571429rem; +} + +/* Only */ + +.ui.segments:not(.horizontal) > .segment:only-child { + border-radius: 0.28571429rem; +} + +/* Nested Group */ + +.ui.segments > .ui.segments { + border-top: 1px solid rgba(34, 36, 38, 0.15); + margin: 1rem 1rem; +} + +.ui.segments > .segments:first-child { + border-top: none; +} + +.ui.segments > .segment + .segments:not(.horizontal) { + margin-top: 0; +} + +/* Horizontal Group */ + +.ui.horizontal.segments { + display: flex; + flex-direction: row; + background-color: transparent; + padding: 0; + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15); + margin: 1rem 0; + border-radius: 0.28571429rem; + border: 1px solid rgba(34, 36, 38, 0.15); +} + +.ui.stackable.horizontal.segments { + flex-wrap: wrap; +} + +/* Nested Horizontal Group */ + +.ui.segments > .horizontal.segments { + margin: 0; + background-color: transparent; + border-radius: 0; + border: none; + box-shadow: none; + border-top: 1px solid rgba(34, 36, 38, 0.15); +} + +/* Horizontal Segment */ + +.ui.horizontal.segments:not(.compact) > .segment:not(.compact) { + flex: 1 1 auto; + -ms-flex: 1 1 0; + /* Solves #2550 MS Flex */ +} + +.ui.horizontal.segments > .segment { + margin: 0; + min-width: 0; + border-radius: 0; + border: none; + box-shadow: none; + border-left: 1px solid rgba(34, 36, 38, 0.15); +} + +/* Border Fixes */ + +.ui.segments > .horizontal.segments:first-child { + border-top: none; +} + +.ui.horizontal.segments:not(.stackable) > .segment:first-child { + border-left: none; +} + +.ui.horizontal.segments > .segment:first-child { + border-radius: 0.28571429rem 0 0 0.28571429rem; +} + +.ui.horizontal.segments > .segment:last-child { + border-radius: 0 0.28571429rem 0.28571429rem 0; +} + +/******************************* + States +*******************************/ + +/*-------------- + Disabled + ---------------*/ + +.ui.disabled.segment { + opacity: 0.45; + color: rgba(40, 40, 40, 0.3); +} + +/*-------------- + Loading + ---------------*/ + +.ui.loading.segment { + position: relative; + cursor: default; + pointer-events: none; + text-shadow: none !important; + transition: all 0s linear; +} + +.ui.loading.segment:before { + position: absolute; + content: ''; + top: 0; + left: 0; + background: rgba(255, 255, 255, 0.8); + width: 100%; + height: 100%; + border-radius: 0.28571429rem; + z-index: 100; +} + +.ui.loading.segment:after { + position: absolute; + content: ''; + top: 50%; + left: 50%; + margin: -1.5em 0 0 -1.5em; + width: 3em; + height: 3em; + -webkit-animation: loader 0.6s infinite linear; + animation: loader 0.6s infinite linear; + border: 0.2em solid #767676; + border-radius: 500rem; + box-shadow: 0 0 0 1px transparent; + visibility: visible; + z-index: 101; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Basic + --------------------*/ + +.ui.basic.segment, +.ui.segments .ui.basic.segment, +.ui.basic.segments { + background: none transparent; + box-shadow: none; + border: none; + border-radius: 0; +} + +/*------------------- + Clearing + --------------------*/ + +.ui.clearing.segment:after { + content: ""; + display: block; + clear: both; +} + +/*------------------- + Colors +--------------------*/ + +.ui.red.segment.segment.segment.segment.segment:not(.inverted) { + border-top: 2px solid #DB2828; +} + +.ui.inverted.red.segment.segment.segment.segment.segment { + background-color: #DB2828; + color: #FFFFFF; +} + +.ui.orange.segment.segment.segment.segment.segment:not(.inverted) { + border-top: 2px solid #F2711C; +} + +.ui.inverted.orange.segment.segment.segment.segment.segment { + background-color: #F2711C; + color: #FFFFFF; +} + +.ui.yellow.segment.segment.segment.segment.segment:not(.inverted) { + border-top: 2px solid #FBBD08; +} + +.ui.inverted.yellow.segment.segment.segment.segment.segment { + background-color: #FBBD08; + color: #FFFFFF; +} + +.ui.olive.segment.segment.segment.segment.segment:not(.inverted) { + border-top: 2px solid #B5CC18; +} + +.ui.inverted.olive.segment.segment.segment.segment.segment { + background-color: #B5CC18; + color: #FFFFFF; +} + +.ui.green.segment.segment.segment.segment.segment:not(.inverted) { + border-top: 2px solid #21BA45; +} + +.ui.inverted.green.segment.segment.segment.segment.segment { + background-color: #21BA45; + color: #FFFFFF; +} + +.ui.teal.segment.segment.segment.segment.segment:not(.inverted) { + border-top: 2px solid #00B5AD; +} + +.ui.inverted.teal.segment.segment.segment.segment.segment { + background-color: #00B5AD; + color: #FFFFFF; +} + +.ui.blue.segment.segment.segment.segment.segment:not(.inverted) { + border-top: 2px solid #2185D0; +} + +.ui.inverted.blue.segment.segment.segment.segment.segment { + background-color: #2185D0; + color: #FFFFFF; +} + +.ui.violet.segment.segment.segment.segment.segment:not(.inverted) { + border-top: 2px solid #6435C9; +} + +.ui.inverted.violet.segment.segment.segment.segment.segment { + background-color: #6435C9; + color: #FFFFFF; +} + +.ui.purple.segment.segment.segment.segment.segment:not(.inverted) { + border-top: 2px solid #A333C8; +} + +.ui.inverted.purple.segment.segment.segment.segment.segment { + background-color: #A333C8; + color: #FFFFFF; +} + +.ui.pink.segment.segment.segment.segment.segment:not(.inverted) { + border-top: 2px solid #E03997; +} + +.ui.inverted.pink.segment.segment.segment.segment.segment { + background-color: #E03997; + color: #FFFFFF; +} + +.ui.brown.segment.segment.segment.segment.segment:not(.inverted) { + border-top: 2px solid #A5673F; +} + +.ui.inverted.brown.segment.segment.segment.segment.segment { + background-color: #A5673F; + color: #FFFFFF; +} + +.ui.grey.segment.segment.segment.segment.segment:not(.inverted) { + border-top: 2px solid #767676; +} + +.ui.inverted.grey.segment.segment.segment.segment.segment { + background-color: #767676; + color: #FFFFFF; +} + +.ui.black.segment.segment.segment.segment.segment:not(.inverted) { + border-top: 2px solid #1B1C1D; +} + +.ui.inverted.black.segment.segment.segment.segment.segment { + background-color: #1B1C1D; + color: #FFFFFF; +} + +/*------------------- + Aligned + --------------------*/ + +.ui[class*="left aligned"].segment { + text-align: left; +} + +.ui[class*="right aligned"].segment { + text-align: right; +} + +.ui[class*="center aligned"].segment { + text-align: center; +} + +/*------------------- + Floated + --------------------*/ + +.ui.floated.segment, +.ui[class*="left floated"].segment { + float: left; + margin-right: 1em; +} + +.ui[class*="right floated"].segment { + float: right; + margin-left: 1em; +} + +/*------------------- + Inverted + --------------------*/ + +.ui.inverted.segment { + border: none; + box-shadow: none; +} + +.ui.inverted.segment, +.ui.primary.inverted.segment { + background: #1B1C1D; + color: rgba(255, 255, 255, 0.9); +} + +/* Nested */ + +.ui.inverted.segment .segment { + color: rgba(0, 0, 0, 0.87); +} + +.ui.inverted.segment .inverted.segment { + color: rgba(255, 255, 255, 0.9); +} + +/* Attached */ + +.ui.inverted.attached.segment { + border-color: #555555; +} + +/* Loading */ + +.ui.inverted.loading.segment { + color: #FFFFFF; +} + +.ui.inverted.loading.segment:before { + background: rgba(0, 0, 0, 0.85); +} + +/*------------------- + Emphasis +--------------------*/ + +/* Secondary */ + +.ui.secondary.segment { + background: #F3F4F5; + color: rgba(0, 0, 0, 0.6); +} + +.ui.secondary.inverted.segment { + background: #4c4f52 linear-gradient(rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.2) 100%); + color: rgba(255, 255, 255, 0.8); +} + +/* Tertiary */ + +.ui.tertiary.segment { + background: #DCDDDE; + color: rgba(0, 0, 0, 0.6); +} + +.ui.tertiary.inverted.segment { + background: #717579 linear-gradient(rgba(255, 255, 255, 0.35) 0, rgba(255, 255, 255, 0.35) 100%); + color: rgba(255, 255, 255, 0.8); +} + +/*------------------- + Attached + --------------------*/ + +/* Middle */ + +.ui.attached.segment { + top: 0; + bottom: 0; + border-radius: 0; + margin: 0 -1px; + width: calc(100% + 2px); + max-width: calc(100% + 2px); + box-shadow: none; + border: 1px solid #D4D4D5; +} + +.ui.attached:not(.message) + .ui.attached.segment:not(.top) { + border-top: none; +} + +/* Top */ + +.ui[class*="top attached"].segment { + bottom: 0; + margin-bottom: 0; + top: 0; + margin-top: 1rem; + border-radius: 0.28571429rem 0.28571429rem 0 0; +} + +.ui.segment[class*="top attached"]:first-child { + margin-top: 0; +} + +/* Bottom */ + +.ui.segment[class*="bottom attached"] { + bottom: 0; + margin-top: 0; + top: 0; + margin-bottom: 1rem; + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), none; + border-radius: 0 0 0.28571429rem 0.28571429rem; +} + +.ui.segment[class*="bottom attached"]:last-child { + margin-bottom: 1rem; +} + +/*-------------- + Fitted + ---------------*/ + +.ui.fitted.segment:not(.horizontally) { + padding-top: 0; + padding-bottom: 0; +} + +.ui.fitted.segment:not(.vertically) { + padding-left: 0; + padding-right: 0; +} + +/*------------------- + Size +--------------------*/ + +.ui.segments .segment, +.ui.segment { + font-size: 1rem; +} + +.ui.mini.segments .segment, +.ui.mini.segment { + font-size: 0.78571429rem; +} + +.ui.tiny.segments .segment, +.ui.tiny.segment { + font-size: 0.85714286rem; +} + +.ui.small.segments .segment, +.ui.small.segment { + font-size: 0.92857143rem; +} + +.ui.large.segments .segment, +.ui.large.segment { + font-size: 1.14285714rem; +} + +.ui.big.segments .segment, +.ui.big.segment { + font-size: 1.28571429rem; +} + +.ui.huge.segments .segment, +.ui.huge.segment { + font-size: 1.42857143rem; +} + +.ui.massive.segments .segment, +.ui.massive.segment { + font-size: 1.71428571rem; +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Sidebar + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Sidebar +*******************************/ + +/* Sidebar Menu */ + +.ui.sidebar { + position: fixed; + top: 0; + left: 0; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: none; + will-change: transform; + transform: translate3d(0, 0, 0); + visibility: hidden; + -webkit-overflow-scrolling: touch; + height: 100% !important; + max-height: 100%; + border-radius: 0 !important; + margin: 0 !important; + overflow-y: auto !important; + z-index: 102; +} + +/* GPU Layers for Child Elements */ + +.ui.sidebar > * { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +/*-------------- + Direction +---------------*/ + +.ui.left.sidebar { + right: auto; + left: 0; + transform: translate3d(-100%, 0, 0); +} + +.ui.right.sidebar { + right: 0 !important; + left: auto !important; + transform: translate3d(100%, 0, 0); +} + +.ui.top.sidebar, +.ui.bottom.sidebar { + width: 100% !important; + height: auto !important; +} + +.ui.top.sidebar { + top: 0 !important; + bottom: auto !important; + transform: translate3d(0, -100%, 0); +} + +.ui.bottom.sidebar { + top: auto !important; + bottom: 0 !important; + transform: translate3d(0, 100%, 0); +} + +/*-------------- + Pushable +---------------*/ + +.pushable { + height: 100%; + overflow-x: hidden; + padding: 0 !important; +} + +/* Whole Page */ + +body.pushable { + background: #545454; +} + +body.pushable.dimmed { + background: inherit; +} + +/* Page Context */ + +.pushable:not(body) { + transform: translate3d(0, 0, 0); + overflow-y: hidden; +} + +.pushable:not(body) > .ui.sidebar, +.pushable:not(body) > .fixed, +.pushable:not(body) > .pusher:after { + position: absolute; +} + +/*-------------- + Fixed +---------------*/ + +.pushable > .fixed { + position: fixed; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform 500ms ease; + will-change: transform; + z-index: 101; +} + +/*-------------- + Page +---------------*/ + +.pushable > .pusher { + position: relative; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + overflow: hidden; + min-height: 100%; + transition: transform 500ms ease; + z-index: 2; + /* Pusher should inherit background from context */ + background: inherit; +} + +body.pushable > .pusher { + background: #FFFFFF; +} + +/*-------------- + Dimmer +---------------*/ + +.pushable > .pusher:after { + position: fixed; + top: 0; + right: 0; + content: ''; + background: rgba(0, 0, 0, 0.4); + overflow: hidden; + opacity: 0; + transition: opacity 500ms; + will-change: opacity; + z-index: 1000; +} + +/*-------------- + Coupling +---------------*/ + +.ui.sidebar.menu .item { + border-radius: 0 !important; +} + +/******************************* + States +*******************************/ + +/*-------------- + Dimmed +---------------*/ + +.pushable > .pusher.dimmed:after { + width: 100% !important; + height: 100% !important; + opacity: 1 !important; +} + +/*-------------- + Animating +---------------*/ + +.ui.animating.sidebar { + visibility: visible; +} + +/*-------------- + Visible +---------------*/ + +.ui.visible.sidebar { + visibility: visible; + transform: translate3d(0, 0, 0); +} + +/* Shadow Direction */ + +.ui.left.visible.sidebar, +.ui.right.visible.sidebar { + box-shadow: 0 0 20px rgba(34, 36, 38, 0.15); +} + +.ui.top.visible.sidebar, +.ui.bottom.visible.sidebar { + box-shadow: 0 0 20px rgba(34, 36, 38, 0.15); +} + +/* Visible On Load */ + +.ui.visible.left.sidebar ~ .fixed, +.ui.visible.left.sidebar ~ .pusher { + transform: translate3d(260px, 0, 0); +} + +.ui.visible.right.sidebar ~ .fixed, +.ui.visible.right.sidebar ~ .pusher { + transform: translate3d(-260px, 0, 0); +} + +.ui.visible.top.sidebar ~ .fixed, +.ui.visible.top.sidebar ~ .pusher { + transform: translate3d(0, 36px, 0); +} + +.ui.visible.bottom.sidebar ~ .fixed, +.ui.visible.bottom.sidebar ~ .pusher { + transform: translate3d(0, -36px, 0); +} + +/* opposite sides visible forces content overlay */ + +.ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .fixed, +.ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher, +.ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .fixed, +.ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher { + transform: translate3d(0, 0, 0); +} + +/*-------------- + iOS +---------------*/ + +/******************************* + Variations +*******************************/ + +/*-------------- + Width +---------------*/ + +/* Left / Right */ + +.ui.thin.left.sidebar, +.ui.thin.right.sidebar { + width: 150px; +} + +.ui[class*="very thin"].left.sidebar, +.ui[class*="very thin"].right.sidebar { + width: 60px; +} + +.ui.left.sidebar, +.ui.right.sidebar { + width: 260px; +} + +.ui.wide.left.sidebar, +.ui.wide.right.sidebar { + width: 350px; +} + +.ui[class*="very wide"].left.sidebar, +.ui[class*="very wide"].right.sidebar { + width: 475px; +} + +/* Left Visible */ + +.ui.visible.thin.left.sidebar ~ .fixed, +.ui.visible.thin.left.sidebar ~ .pusher { + transform: translate3d(150px, 0, 0); +} + +.ui.visible[class*="very thin"].left.sidebar ~ .fixed, +.ui.visible[class*="very thin"].left.sidebar ~ .pusher { + transform: translate3d(60px, 0, 0); +} + +.ui.visible.wide.left.sidebar ~ .fixed, +.ui.visible.wide.left.sidebar ~ .pusher { + transform: translate3d(350px, 0, 0); +} + +.ui.visible[class*="very wide"].left.sidebar ~ .fixed, +.ui.visible[class*="very wide"].left.sidebar ~ .pusher { + transform: translate3d(475px, 0, 0); +} + +/* Right Visible */ + +.ui.visible.thin.right.sidebar ~ .fixed, +.ui.visible.thin.right.sidebar ~ .pusher { + transform: translate3d(-150px, 0, 0); +} + +.ui.visible[class*="very thin"].right.sidebar ~ .fixed, +.ui.visible[class*="very thin"].right.sidebar ~ .pusher { + transform: translate3d(-60px, 0, 0); +} + +.ui.visible.wide.right.sidebar ~ .fixed, +.ui.visible.wide.right.sidebar ~ .pusher { + transform: translate3d(-350px, 0, 0); +} + +.ui.visible[class*="very wide"].right.sidebar ~ .fixed, +.ui.visible[class*="very wide"].right.sidebar ~ .pusher { + transform: translate3d(-475px, 0, 0); +} + +/******************************* + Animations +*******************************/ + +/*-------------- + Overlay + ---------------*/ + +/* Set-up */ + +.ui.overlay.sidebar { + z-index: 102; +} + +/* Initial */ + +.ui.left.overlay.sidebar { + transform: translate3d(-100%, 0, 0); +} + +.ui.right.overlay.sidebar { + transform: translate3d(100%, 0, 0); +} + +.ui.top.overlay.sidebar { + transform: translate3d(0%, -100%, 0); +} + +.ui.bottom.overlay.sidebar { + transform: translate3d(0%, 100%, 0); +} + +/* Animation */ + +.animating.ui.overlay.sidebar, +.ui.visible.overlay.sidebar { + transition: transform 500ms ease; +} + +/* End - Sidebar */ + +.ui.visible.left.overlay.sidebar { + transform: translate3d(0%, 0, 0); +} + +.ui.visible.right.overlay.sidebar { + transform: translate3d(0%, 0, 0); +} + +.ui.visible.top.overlay.sidebar { + transform: translate3d(0%, 0, 0); +} + +.ui.visible.bottom.overlay.sidebar { + transform: translate3d(0%, 0, 0); +} + +/* End - Pusher */ + +.ui.visible.overlay.sidebar ~ .fixed, +.ui.visible.overlay.sidebar ~ .pusher { + transform: none !important; +} + +/*-------------- + Push + ---------------*/ + +/* Initial */ + +.ui.push.sidebar { + transition: transform 500ms ease; + z-index: 102; +} + +/* Sidebar - Initial */ + +.ui.left.push.sidebar { + transform: translate3d(-100%, 0, 0); +} + +.ui.right.push.sidebar { + transform: translate3d(100%, 0, 0); +} + +.ui.top.push.sidebar { + transform: translate3d(0%, -100%, 0); +} + +.ui.bottom.push.sidebar { + transform: translate3d(0%, 100%, 0); +} + +/* End */ + +.ui.visible.push.sidebar { + transform: translate3d(0%, 0, 0); +} + +/*-------------- + Uncover + ---------------*/ + +/* Initial */ + +.ui.uncover.sidebar { + transform: translate3d(0, 0, 0); + z-index: 1; +} + +/* End */ + +.ui.visible.uncover.sidebar { + transform: translate3d(0, 0, 0); + transition: transform 500ms ease; +} + +/*-------------- + Slide Along + ---------------*/ + +/* Initial */ + +.ui.slide.along.sidebar { + z-index: 1; +} + +/* Sidebar - Initial */ + +.ui.left.slide.along.sidebar { + transform: translate3d(-50%, 0, 0); +} + +.ui.right.slide.along.sidebar { + transform: translate3d(50%, 0, 0); +} + +.ui.top.slide.along.sidebar { + transform: translate3d(0, -50%, 0); +} + +.ui.bottom.slide.along.sidebar { + transform: translate3d(0%, 50%, 0); +} + +/* Animation */ + +.ui.animating.slide.along.sidebar { + transition: transform 500ms ease; +} + +/* End */ + +.ui.visible.slide.along.sidebar { + transform: translate3d(0%, 0, 0); +} + +/*-------------- + Slide Out + ---------------*/ + +/* Initial */ + +.ui.slide.out.sidebar { + z-index: 1; +} + +/* Sidebar - Initial */ + +.ui.left.slide.out.sidebar { + transform: translate3d(50%, 0, 0); +} + +.ui.right.slide.out.sidebar { + transform: translate3d(-50%, 0, 0); +} + +.ui.top.slide.out.sidebar { + transform: translate3d(0%, 50%, 0); +} + +.ui.bottom.slide.out.sidebar { + transform: translate3d(0%, -50%, 0); +} + +/* Animation */ + +.ui.animating.slide.out.sidebar { + transition: transform 500ms ease; +} + +/* End */ + +.ui.visible.slide.out.sidebar { + transform: translate3d(0%, 0, 0); +} + +/*-------------- + Scale Down + ---------------*/ + +/* Initial */ + +.ui.scale.down.sidebar { + transition: transform 500ms ease; + z-index: 102; +} + +.ui.left.scale.down.sidebar { + transform: translate3d(-100%, 0, 0); +} + +.ui.right.scale.down.sidebar { + transform: translate3d(100%, 0, 0); +} + +.ui.top.scale.down.sidebar { + transform: translate3d(0%, -100%, 0); +} + +.ui.bottom.scale.down.sidebar { + transform: translate3d(0%, 100%, 0); +} + +/* Pusher - Initial */ + +.ui.scale.down.left.sidebar ~ .pusher { + transform-origin: 75% 50%; +} + +.ui.scale.down.right.sidebar ~ .pusher { + transform-origin: 25% 50%; +} + +.ui.scale.down.top.sidebar ~ .pusher { + transform-origin: 50% 75%; +} + +.ui.scale.down.bottom.sidebar ~ .pusher { + transform-origin: 50% 25%; +} + +/* Animation */ + +.ui.animating.scale.down > .visible.ui.sidebar { + transition: transform 500ms ease; +} + +.ui.visible.scale.down.sidebar ~ .pusher, +.ui.animating.scale.down.sidebar ~ .pusher { + display: block !important; + width: 100%; + height: 100%; + overflow: hidden !important; +} + +/* End */ + +.ui.visible.scale.down.sidebar { + transform: translate3d(0, 0, 0); +} + +.ui.visible.scale.down.sidebar ~ .pusher { + transform: scale(0.75); +} + +/******************************* + Theme Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Site + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Page +*******************************/ + +html, +body { + height: 100%; +} + +html { + font-size: 14px; +} + +body { + margin: 0; + padding: 0; + overflow-x: hidden; + min-width: 320px; + background: #FFFFFF; + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + font-size: 14px; + line-height: 1.4285em; + color: rgba(0, 0, 0, 0.87); +} + +/******************************* + Headers +*******************************/ + +h1, +h2, +h3, +h4, +h5 { + font-family: 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif; + line-height: 1.28571429em; + margin: calc(2rem - 0.1428571428571429em) 0 1rem; + font-weight: bold; + padding: 0; +} + +h1 { + min-height: 1rem; + font-size: 2rem; +} + +h2 { + font-size: 1.71428571rem; +} + +h3 { + font-size: 1.28571429rem; +} + +h4 { + font-size: 1.07142857rem; +} + +h5 { + font-size: 1rem; +} + +h1:first-child, +h2:first-child, +h3:first-child, +h4:first-child, +h5:first-child { + margin-top: 0; +} + +h1:last-child, +h2:last-child, +h3:last-child, +h4:last-child, +h5:last-child { + margin-bottom: 0; +} + +/******************************* + Text +*******************************/ + +p { + margin: 0 0 1em; + line-height: 1.4285em; +} + +p:first-child { + margin-top: 0; +} + +p:last-child { + margin-bottom: 0; +} + +/*------------------- + Links +--------------------*/ + +a { + color: #4183C4; + text-decoration: none; +} + +a:hover { + color: #1e70bf; + text-decoration: none; +} + +/******************************* + Scrollbars +*******************************/ + +/******************************* + Highlighting +*******************************/ + +/* Site */ + +::-webkit-selection { + background-color: #CCE2FF; + color: rgba(0, 0, 0, 0.87); +} + +::-moz-selection { + background-color: #CCE2FF; + color: rgba(0, 0, 0, 0.87); +} + +::selection { + background-color: #CCE2FF; + color: rgba(0, 0, 0, 0.87); +} + +/* Form */ + +textarea::-webkit-selection, +input::-webkit-selection { + background-color: rgba(100, 100, 100, 0.4); + color: rgba(0, 0, 0, 0.87); +} + +textarea::-moz-selection, +input::-moz-selection { + background-color: rgba(100, 100, 100, 0.4); + color: rgba(0, 0, 0, 0.87); +} + +textarea::-moz-selection, +input::-moz-selection { + background-color: rgba(100, 100, 100, 0.4); + color: rgba(0, 0, 0, 0.87); +} + +textarea::selection, +input::selection { + background-color: rgba(100, 100, 100, 0.4); + color: rgba(0, 0, 0, 0.87); +} + +/* Force Simple Scrollbars */ + +body ::-webkit-scrollbar { + -webkit-appearance: none; + width: 10px; + height: 10px; +} + +body ::-webkit-scrollbar-track { + background: rgba(0, 0, 0, 0.1); + border-radius: 0; +} + +body ::-webkit-scrollbar-thumb { + cursor: pointer; + border-radius: 5px; + background: rgba(0, 0, 0, 0.25); + -webkit-transition: color 0.2s ease; + transition: color 0.2s ease; +} + +body ::-webkit-scrollbar-thumb:window-inactive { + background: rgba(0, 0, 0, 0.15); +} + +body ::-webkit-scrollbar-thumb:hover { + background: rgba(128, 135, 139, 0.8); +} + +/* Inverted UI */ + +body .ui.inverted:not(.dimmer)::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0.1); +} + +body .ui.inverted:not(.dimmer)::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.25); +} + +body .ui.inverted:not(.dimmer)::-webkit-scrollbar-thumb:window-inactive { + background: rgba(255, 255, 255, 0.15); +} + +body .ui.inverted:not(.dimmer)::-webkit-scrollbar-thumb:hover { + background: rgba(255, 255, 255, 0.35); +} + +/******************************* + Global Overrides +*******************************/ + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Tab + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + UI Tabs +*******************************/ + +.ui.tab { + display: none; +} + +/******************************* + States +*******************************/ + +/*-------------------- + Active +---------------------*/ + +.ui.tab.active, +.ui.tab.open { + display: block; +} + +/*-------------------- + Loading + ---------------------*/ + +.ui.tab.loading { + position: relative; + overflow: hidden; + display: block; + min-height: 250px; +} + +.ui.tab.loading * { + position: relative !important; + left: -10000px !important; +} + +.ui.tab.loading:before, +.ui.tab.loading.segment:before { + position: absolute; + content: ''; + top: 50%; + left: 50%; + margin: -1.25em 0 0 -1.25em; + width: 2.5em; + height: 2.5em; + border-radius: 500rem; + border: 0.2em solid rgba(0, 0, 0, 0.1); +} + +.ui.tab.loading:after, +.ui.tab.loading.segment:after { + position: absolute; + content: ''; + top: 50%; + left: 50%; + margin: -1.25em 0 0 -1.25em; + width: 2.5em; + height: 2.5em; + -webkit-animation: loader 0.6s infinite linear; + animation: loader 0.6s infinite linear; + border: 0.2em solid #767676; + border-radius: 500rem; + box-shadow: 0 0 0 1px transparent; +} + +/******************************* + Tab Overrides +*******************************/ + +/******************************* + User Overrides +*******************************/ +/*! + * # Fomantic-UI - Table + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Table +*******************************/ + +/* Prototype */ + +.ui.table { + width: 100%; + background: #FFFFFF; + margin: 1em 0; + border: 1px solid rgba(34, 36, 38, 0.15); + box-shadow: none; + border-radius: 0.28571429rem; + text-align: left; + vertical-align: middle; + color: rgba(0, 0, 0, 0.87); + border-collapse: separate; + border-spacing: 0; +} + +.ui.table:first-child { + margin-top: 0; +} + +.ui.table:last-child { + margin-bottom: 0; +} + +.ui.table > thead, +.ui.table > tbody { + text-align: inherit; + vertical-align: inherit; +} + +/******************************* + Parts +*******************************/ + +/* Table Content */ + +.ui.table th, +.ui.table td { + transition: background 0.1s ease, color 0.1s ease; +} + +/* Rowspan helper class */ + +.ui.table th.rowspanned, +.ui.table td.rowspanned { + display: none; +} + +/* Headers */ + +.ui.table > thead { + box-shadow: none; +} + +.ui.table > thead > tr > th { + cursor: auto; + background: #F9FAFB; + text-align: inherit; + color: rgba(0, 0, 0, 0.87); + padding: 0.92857143em 0.78571429em; + vertical-align: inherit; + font-style: none; + font-weight: bold; + text-transform: none; + border-bottom: 1px solid rgba(34, 36, 38, 0.1); + border-left: none; +} + +.ui.table > thead > tr > th:first-child { + border-left: none; +} + +.ui.table > thead > tr:first-child > th:first-child { + border-radius: 0.28571429rem 0 0 0; +} + +.ui.table > thead > tr:first-child > th:last-child { + border-radius: 0 0.28571429rem 0 0; +} + +.ui.table > thead > tr:first-child > th:only-child { + border-radius: 0.28571429rem 0.28571429rem 0 0; +} + +/* Footer */ + +.ui.table > tfoot { + box-shadow: none; +} + +.ui.table > tfoot > tr > th, +.ui.table > tfoot > tr > td { + cursor: auto; + border-top: 1px solid rgba(34, 36, 38, 0.15); + background: #F9FAFB; + text-align: inherit; + color: rgba(0, 0, 0, 0.87); + padding: 0.78571429em 0.78571429em; + vertical-align: inherit; + font-style: normal; + font-weight: normal; + text-transform: none; +} + +.ui.table > tfoot > tr > th:first-child, +.ui.table > tfoot > tr > td:first-child { + border-left: none; +} + +.ui.table > tfoot > tr:first-child > th:first-child, +.ui.table > tfoot > tr:first-child > td:first-child { + border-radius: 0 0 0 0.28571429rem; +} + +.ui.table > tfoot > tr:first-child > th:last-child, +.ui.table > tfoot > tr:first-child > td:last-child { + border-radius: 0 0 0.28571429rem 0; +} + +.ui.table > tfoot > tr:first-child > th:only-child, +.ui.table > tfoot > tr:first-child > td:only-child { + border-radius: 0 0 0.28571429rem 0.28571429rem; +} + +/* Table Row */ + +.ui.table > tr > td, +.ui.table > tbody > tr > td { + border-top: 1px solid rgba(34, 36, 38, 0.1); +} + +.ui.table > tr:first-child > td, +.ui.table > tbody > tr:first-child > td { + border-top: none; +} + +/* Repeated tbody */ + +.ui.table > tbody + tbody tr:first-child > td { + border-top: 1px solid rgba(34, 36, 38, 0.1); +} + +/* Table Cells */ + +.ui.table > tbody > tr > td, +.ui.table > tr > td { + padding: 0.78571429em 0.78571429em; + text-align: inherit; +} + +/* Icons */ + +.ui.table > i.icon { + vertical-align: baseline; +} + +.ui.table > i.icon:only-child { + margin: 0; +} + +/* Table Segment */ + +.ui.table.segment { + padding: 0; +} + +.ui.table.segment:after { + display: none; +} + +.ui.table.segment.stacked:after { + display: block; +} + +/* Responsive */ + +@media only screen and (max-width: 767.98px) { + .ui.table:not(.unstackable) { + width: 100%; + padding: 0; + } + + .ui.table:not(.unstackable) > thead, + .ui.table:not(.unstackable) > thead > tr, + .ui.table:not(.unstackable) > tfoot, + .ui.table:not(.unstackable) > tfoot > tr, + .ui.table:not(.unstackable) > tbody, + .ui.table:not(.unstackable) > tr, + .ui.table:not(.unstackable) > tbody > tr, + .ui.table:not(.unstackable) > tr > th:not(.rowspanned), + .ui.table:not(.unstackable) > thead > tr > th:not(.rowspanned), + .ui.table:not(.unstackable) > tbody > tr > th:not(.rowspanned), + .ui.table:not(.unstackable) > tfoot > tr > th:not(.rowspanned), + .ui.table:not(.unstackable) > tr > td:not(.rowspanned), + .ui.table:not(.unstackable) > tbody > tr > td:not(.rowspanned), + .ui.table:not(.unstackable) > tfoot > tr > td:not(.rowspanned) { + display: block !important; + width: auto !important; + } + + .ui.table:not(.unstackable) > thead { + display: block; + } + + .ui.table:not(.unstackable) > tfoot { + display: block; + } + + .ui.ui.ui.ui.table:not(.unstackable) > tr, + .ui.ui.ui.ui.table:not(.unstackable) > thead > tr, + .ui.ui.ui.ui.table:not(.unstackable) > tbody > tr, + .ui.ui.ui.ui.table:not(.unstackable) > tfoot > tr { + padding-top: 1em; + padding-bottom: 1em; + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) > tr > th, + .ui.ui.ui.ui.table:not(.unstackable) > thead > tr > th, + .ui.ui.ui.ui.table:not(.unstackable) > tbody > tr > th, + .ui.ui.ui.ui.table:not(.unstackable) > tfoot > tr > th, + .ui.ui.ui.ui.table:not(.unstackable) > tr > td, + .ui.ui.ui.ui.table:not(.unstackable) > tbody > tr > td, + .ui.ui.ui.ui.table:not(.unstackable) > tfoot > tr > td { + background: none; + border: none; + padding: 0.25em 0.75em; + box-shadow: none; + } + + .ui.table:not(.unstackable) > tr > th:first-child, + .ui.table:not(.unstackable) > thead > tr > th:first-child, + .ui.table:not(.unstackable) > tbody > tr > th:first-child, + .ui.table:not(.unstackable) > tfoot > tr > th:first-child, + .ui.table:not(.unstackable) > tr > td:first-child, + .ui.table:not(.unstackable) > tbody > tr > td:first-child, + .ui.table:not(.unstackable) > tfoot > tr > td:first-child { + font-weight: bold; + } + + /* Definition Table */ + + .ui.definition.table:not(.unstackable) > thead > tr > th:first-child { + box-shadow: none !important; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.primary.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #2185D0 inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.primary.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #2185D0 inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.primary.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #54C8FF inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.primary.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #54C8FF inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.secondary.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #1B1C1D inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.secondary.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #1B1C1D inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.secondary.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #545454 inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.secondary.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #545454 inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.red.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #DB2828 inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.red.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #DB2828 inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.red.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #FF695E inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.red.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #FF695E inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.orange.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #F2711C inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.orange.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #F2711C inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.orange.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #FF851B inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.orange.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #FF851B inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.yellow.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #FBBD08 inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.yellow.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #FBBD08 inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.yellow.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #FFE21F inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.yellow.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #FFE21F inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.olive.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #B5CC18 inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.olive.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #B5CC18 inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.olive.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #D9E778 inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.olive.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #D9E778 inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.green.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #21BA45 inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.green.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #21BA45 inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.green.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #2ECC40 inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.green.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #2ECC40 inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.teal.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #00B5AD inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.teal.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #00B5AD inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.teal.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #6DFFFF inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.teal.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #6DFFFF inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.blue.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #2185D0 inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.blue.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #2185D0 inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.blue.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #54C8FF inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.blue.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #54C8FF inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.violet.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #6435C9 inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.violet.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #6435C9 inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.violet.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #A291FB inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.violet.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #A291FB inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.purple.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #A333C8 inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.purple.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #A333C8 inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.purple.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #DC73FF inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.purple.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #DC73FF inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.pink.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #E03997 inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.pink.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #E03997 inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.pink.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #FF8EDF inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.pink.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #FF8EDF inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.brown.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #A5673F inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.brown.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #A5673F inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.brown.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #D67C1C inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.brown.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #D67C1C inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.grey.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #767676 inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.grey.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #767676 inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.grey.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #DCDDDE inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.grey.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #DCDDDE inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.black.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #1B1C1D inset; + } + + .ui.ui.ui.ui.table:not(.unstackable) tr.marked.black.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #1B1C1D inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.black.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #545454 inset; + } + + .ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.black.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #545454 inset; + } +} + +/******************************* + Coupling +*******************************/ + +/* UI Image */ + +.ui.table .collapsing .image, +.ui.table .collapsing .image img { + max-width: none; +} + +/******************************* + Types +*******************************/ + +/*-------------- + Complex +---------------*/ + +.ui.structured.table { + border-collapse: collapse; +} + +.ui.structured.table > thead > tr > th { + border-left: none; + border-right: none; +} + +.ui.structured.sortable.table > thead > tr > th { + border-left: 1px solid rgba(34, 36, 38, 0.15); + border-right: 1px solid rgba(34, 36, 38, 0.15); +} + +.ui.structured.basic.table > tr > th, +.ui.structured.basic.table > thead > tr > th, +.ui.structured.basic.table > tbody > tr > th, +.ui.structured.basic.table > tfoot > tr > th { + border-left: none; + border-right: none; +} + +.ui.structured.celled.table > tr > th, +.ui.structured.celled.table > thead > tr > th, +.ui.structured.celled.table > tbody > tr > th, +.ui.structured.celled.table > tfoot > tr > th, +.ui.structured.celled.table > tr > td, +.ui.structured.celled.table > tbody > tr > td, +.ui.structured.celled.table > tfoot > tr > td { + border-left: 1px solid rgba(34, 36, 38, 0.1); + border-right: 1px solid rgba(34, 36, 38, 0.1); +} + +/*-------------- + Definition + ---------------*/ + +.ui.definition.table > thead:not(.full-width) > tr > th:first-child { + pointer-events: none; + background: #FFFFFF; + font-weight: normal; + color: rgba(0, 0, 0, 0.4); + box-shadow: -0.1em -0.2em 0 0.1em #FFFFFF; + -moz-transform: scale(1); +} + +.ui.definition.table > tfoot:not(.full-width) > tr > th:first-child { + pointer-events: none; + background: #FFFFFF; + font-weight: normal; + color: rgba(0, 0, 0, 0.4); + box-shadow: -0.1em 0.2em 0 0.1em #FFFFFF; + -moz-transform: scale(1); +} + +/* Highlight Defining Column */ + +.ui.definition.table > tr > td:first-child:not(.ignored), +.ui.definition.table > tbody > tr > td:first-child:not(.ignored), +.ui.definition.table > tfoot > tr > td:first-child:not(.ignored), +.ui.definition.table tr td.definition { + background: rgba(0, 0, 0, 0.03); + font-weight: bold; + color: rgba(0, 0, 0, 0.95); + text-transform: ''; + box-shadow: ''; + text-align: ''; + font-size: 1em; + padding-left: ''; + padding-right: ''; +} + +/* Fix 2nd Column */ + +.ui.definition.table > thead:not(.full-width) > tr > th:nth-child(2) { + border-left: 1px solid rgba(34, 36, 38, 0.15); +} + +.ui.definition.table > tfoot:not(.full-width) > tr > th:nth-child(2), +.ui.definition.table > tfoot:not(.full-width) > tr > td:nth-child(2) { + border-left: 1px solid rgba(34, 36, 38, 0.15); +} + +.ui.definition.table > tr > td:nth-child(2), +.ui.definition.table > tbody > tr > td:nth-child(2) { + border-left: 1px solid rgba(34, 36, 38, 0.15); +} + +/******************************* + States +*******************************/ + +/*-------------- + Positive + ---------------*/ + +.ui.ui.ui.ui.table tr.positive, +.ui.ui.table td.positive { + box-shadow: 0 0 0 #A3C293 inset; + background: #FCFFF5; + color: #2C662D; +} + +/*-------------- + Negative + ---------------*/ + +.ui.ui.ui.ui.table tr.negative, +.ui.ui.table td.negative { + box-shadow: 0 0 0 #E0B4B4 inset; + background: #FFF6F6; + color: #9F3A38; +} + +/*-------------- + Error + ---------------*/ + +.ui.ui.ui.ui.table tr.error, +.ui.ui.table td.error { + box-shadow: 0 0 0 #E0B4B4 inset; + background: #FFF6F6; + color: #9F3A38; +} + +/*-------------- + Warning + ---------------*/ + +.ui.ui.ui.ui.table tr.warning, +.ui.ui.table td.warning { + box-shadow: 0 0 0 #C9BA9B inset; + background: #FFFAF3; + color: #573A08; +} + +/*-------------- + Active + ---------------*/ + +.ui.ui.ui.ui.table tr.active, +.ui.ui.table td.active { + box-shadow: 0 0 0 rgba(0, 0, 0, 0.87) inset; + background: #E0E0E0; + color: rgba(0, 0, 0, 0.87); +} + +/*-------------- + Disabled + ---------------*/ + +.ui.table tr.disabled td, +.ui.table tr td.disabled, +.ui.table tr.disabled:hover, +.ui.table tr:hover td.disabled { + pointer-events: none; + color: rgba(40, 40, 40, 0.3); +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Stackable + ---------------*/ + +@media only screen and (max-width: 991.98px) { + .ui[class*="tablet stackable"].table, + .ui[class*="tablet stackable"].table > thead, + .ui[class*="tablet stackable"].table > thead > tr, + .ui[class*="tablet stackable"].table > tfoot, + .ui[class*="tablet stackable"].table > tfoot > tr, + .ui[class*="tablet stackable"].table > tbody, + .ui[class*="tablet stackable"].table > tbody > tr, + .ui[class*="tablet stackable"].table > tr, + .ui[class*="tablet stackable"].table > thead > tr > th:not(.rowspanned), + .ui[class*="tablet stackable"].table > tbody > tr > th:not(.rowspanned), + .ui[class*="tablet stackable"].table > tfoot > tr > th:not(.rowspanned), + .ui[class*="tablet stackable"].table > tr > th:not(.rowspanned), + .ui[class*="tablet stackable"].table > tbody > tr > td:not(.rowspanned), + .ui[class*="tablet stackable"].table > tfoot > tr > td:not(.rowspanned), + .ui[class*="tablet stackable"].table > tr > td:not(.rowspanned) { + display: block !important; + width: 100% !important; + } + + .ui[class*="tablet stackable"].table { + padding: 0; + } + + .ui[class*="tablet stackable"].table > thead { + display: block; + } + + .ui[class*="tablet stackable"].table > tfoot { + display: block; + } + + .ui.ui.ui.ui[class*="tablet stackable"].table > thead > tr, + .ui.ui.ui.ui[class*="tablet stackable"].table > tbody > tr, + .ui.ui.ui.ui[class*="tablet stackable"].table > tfoot > tr, + .ui.ui.ui.ui[class*="tablet stackable"].table > tr { + padding-top: 1em; + padding-bottom: 1em; + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset; + } + + .ui[class*="tablet stackable"].table > thead > tr > th, + .ui[class*="tablet stackable"].table > tbody > tr > th, + .ui[class*="tablet stackable"].table > tfoot > tr > th, + .ui[class*="tablet stackable"].table > tr > th, + .ui[class*="tablet stackable"].table > tbody > tr > td, + .ui[class*="tablet stackable"].table > tfoot > tr > td, + .ui[class*="tablet stackable"].table > tr > td { + background: none; + border: none !important; + padding: 0.25em 0.75em; + box-shadow: none; + } + + /* Definition Table */ + + .ui.definition[class*="tablet stackable"].table > thead > tr > th:first-child { + box-shadow: none !important; + } +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.primary.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #2185D0 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.primary.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #2185D0 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.primary.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #54C8FF inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.primary.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #54C8FF inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.secondary.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #1B1C1D inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.secondary.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #1B1C1D inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.secondary.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #545454 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.secondary.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #545454 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.red.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #DB2828 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.red.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #DB2828 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.red.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #FF695E inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.red.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #FF695E inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.orange.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #F2711C inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.orange.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #F2711C inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.orange.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #FF851B inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.orange.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #FF851B inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.yellow.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #FBBD08 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.yellow.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #FBBD08 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.yellow.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #FFE21F inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.yellow.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #FFE21F inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.olive.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #B5CC18 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.olive.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #B5CC18 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.olive.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #D9E778 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.olive.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #D9E778 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.green.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #21BA45 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.green.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #21BA45 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.green.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #2ECC40 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.green.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #2ECC40 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.teal.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #00B5AD inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.teal.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #00B5AD inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.teal.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #6DFFFF inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.teal.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #6DFFFF inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.blue.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #2185D0 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.blue.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #2185D0 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.blue.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #54C8FF inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.blue.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #54C8FF inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.violet.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #6435C9 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.violet.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #6435C9 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.violet.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #A291FB inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.violet.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #A291FB inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.purple.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #A333C8 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.purple.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #A333C8 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.purple.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #DC73FF inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.purple.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #DC73FF inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.pink.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #E03997 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.pink.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #E03997 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.pink.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #FF8EDF inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.pink.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #FF8EDF inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.brown.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #A5673F inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.brown.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #A5673F inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.brown.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #D67C1C inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.brown.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #D67C1C inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.grey.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #767676 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.grey.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #767676 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.grey.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #DCDDDE inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.grey.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #DCDDDE inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.black.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #1B1C1D inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.black.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #1B1C1D inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.black.left { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, 0.2em 0 0 0 #545454 inset; +} + +.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.black.right { + box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset, -0.2em 0 0 0 #545454 inset; +} + +/*-------------- + Text Alignment + ---------------*/ + +.ui.table[class*="left aligned"], +.ui.table [class*="left aligned"] { + text-align: left; +} + +.ui.table[class*="center aligned"], +.ui.table [class*="center aligned"] { + text-align: center; +} + +.ui.table[class*="right aligned"], +.ui.table [class*="right aligned"] { + text-align: right; +} + +/*------------------ + Vertical Alignment + ------------------*/ + +.ui.table[class*="top aligned"], +.ui.table [class*="top aligned"] { + vertical-align: top; +} + +.ui.table[class*="middle aligned"], +.ui.table [class*="middle aligned"] { + vertical-align: middle; +} + +.ui.table[class*="bottom aligned"], +.ui.table [class*="bottom aligned"] { + vertical-align: bottom; +} + +/*-------------- + Collapsing + ---------------*/ + +.ui.table th.collapsing, +.ui.table td.collapsing { + width: 1px; + white-space: nowrap; +} + +/*-------------- + Fixed + ---------------*/ + +.ui.fixed.table { + table-layout: fixed; +} + +.ui.fixed.table th, +.ui.fixed.table td { + overflow: hidden; + text-overflow: ellipsis; +} + +/*-------------- + Selectable + ---------------*/ + +.ui.ui.selectable.table > tbody > tr:hover, +.ui.table tbody tr td.selectable:hover { + background: rgba(0, 0, 0, 0.05); + color: rgba(0, 0, 0, 0.95); +} + +.ui.ui.selectable.inverted.table > tbody > tr:hover, +.ui.inverted.table tbody tr td.selectable:hover { + background: rgba(255, 255, 255, 0.08); + color: #ffffff; +} + +/* Selectable Cell Link */ + +.ui.table tbody tr td.selectable { + padding: 0; +} + +.ui.table tbody tr td.selectable > a:not(.ui) { + display: block; + color: inherit; + padding: 0.78571429em 0.78571429em; +} + +.ui.table > tr > td.selectable, +.ui.table > tbody > tr > td.selectable, +.ui.selectable.table > tbody > tr, +.ui.selectable.table > tr { + cursor: pointer; +} + +/* Other States */ + +.ui.ui.selectable.table tr.error:hover, +.ui.table tr td.selectable.error:hover, +.ui.selectable.table tr:hover td.error { + background: #ffe7e7; + color: #943634; +} + +.ui.ui.selectable.table tr.warning:hover, +.ui.table tr td.selectable.warning:hover, +.ui.selectable.table tr:hover td.warning { + background: #fff4e4; + color: #493107; +} + +.ui.ui.selectable.table tr.active:hover, +.ui.table tr td.selectable.active:hover, +.ui.selectable.table tr:hover td.active { + background: #E0E0E0; + color: rgba(0, 0, 0, 0.87); +} + +.ui.ui.selectable.table tr.positive:hover, +.ui.table tr td.selectable.positive:hover, +.ui.selectable.table tr:hover td.positive { + background: #f7ffe6; + color: #275b28; +} + +.ui.ui.selectable.table tr.negative:hover, +.ui.table tr td.selectable.negative:hover, +.ui.selectable.table tr:hover td.negative { + background: #ffe7e7; + color: #943634; +} + +/*------------------- + Attached + --------------------*/ + +/* Middle */ + +.ui.attached.table { + top: 0; + bottom: 0; + border-radius: 0; + margin: 0 -1px; + width: calc(100% + 2px); + max-width: calc(100% + 2px); + box-shadow: none; + border: 1px solid #D4D4D5; +} + +.ui.attached + .ui.attached.table:not(.top) { + border-top: none; +} + +/* Top */ + +.ui[class*="top attached"].table { + bottom: 0; + margin-bottom: 0; + top: 0; + margin-top: 1em; + border-radius: 0.28571429rem 0.28571429rem 0 0; +} + +.ui.table[class*="top attached"]:first-child { + margin-top: 0; +} + +/* Bottom */ + +.ui[class*="bottom attached"].table { + bottom: 0; + margin-top: 0; + top: 0; + margin-bottom: 1em; + box-shadow: none, none; + border-radius: 0 0 0.28571429rem 0.28571429rem; +} + +.ui[class*="bottom attached"].table:last-child { + margin-bottom: 0; +} + +/*-------------- + Striped + ---------------*/ + +/* Table Striping */ + +.ui.striped.table > tr:nth-child(2n), +.ui.striped.table > tbody > tr:nth-child(2n) { + background-color: rgba(0, 0, 50, 0.02); +} + +/* Stripes */ + +.ui.inverted.striped.table > tr:nth-child(2n), +.ui.inverted.striped.table > tbody > tr:nth-child(2n) { + background-color: rgba(255, 255, 255, 0.05); +} + +/* Allow striped active hover */ + +.ui.striped.selectable.selectable.selectable.table tbody tr.active:hover { + background: #EFEFEF; + color: rgba(0, 0, 0, 0.95); +} + +/*-------------- + Single Line +---------------*/ + +.ui.table[class*="single line"], +.ui.table [class*="single line"] { + white-space: nowrap; +} + +/*------------------- + Colors +--------------------*/ + +.ui.primary.table { + border-top: 0.2em solid #2185D0; +} + +.ui.inverted.primary.table { + background-color: #2185D0; + color: #FFFFFF; +} + +.ui.ui.ui.ui.table tr.primary:not(.marked), +.ui.ui.table td.primary:not(.marked) { + background: #ddf4ff; + color: rgba(255, 255, 255, 0.9); +} + +.ui.ui.selectable.table tr.primary:not(.marked):hover, +.ui.table tr td.selectable.primary:not(.marked):hover, +.ui.selectable.table tr:hover td.primary:not(.marked) { + background: #d3f1ff; + color: rgba(255, 255, 255, 0.9); +} + +.ui.table td.marked.primary.left, +.ui.table tr.marked.primary.left { + box-shadow: 0.2em 0 0 0 #2185D0 inset; +} + +.ui.table td.marked.primary.right, +.ui.table tr.marked.primary.right { + box-shadow: -0.2em 0 0 0 #2185D0 inset; +} + +.ui.inverted.table td.marked.primary.left, +.ui.inverted.table tr.marked.primary.left { + box-shadow: 0.2em 0 0 0 #54C8FF inset; +} + +.ui.inverted.table td.marked.primary.right, +.ui.inverted.table tr.marked.primary.right { + box-shadow: -0.2em 0 0 0 #54C8FF inset; +} + +.ui.secondary.table { + border-top: 0.2em solid #1B1C1D; +} + +.ui.inverted.secondary.table { + background-color: #1B1C1D; + color: #FFFFFF; +} + +.ui.ui.ui.ui.table tr.secondary:not(.marked), +.ui.ui.table td.secondary:not(.marked) { + background: #dddddd; + color: rgba(255, 255, 255, 0.9); +} + +.ui.ui.selectable.table tr.secondary:not(.marked):hover, +.ui.table tr td.selectable.secondary:not(.marked):hover, +.ui.selectable.table tr:hover td.secondary:not(.marked) { + background: #e2e2e2; + color: rgba(255, 255, 255, 0.9); +} + +.ui.table td.marked.secondary.left, +.ui.table tr.marked.secondary.left { + box-shadow: 0.2em 0 0 0 #1B1C1D inset; +} + +.ui.table td.marked.secondary.right, +.ui.table tr.marked.secondary.right { + box-shadow: -0.2em 0 0 0 #1B1C1D inset; +} + +.ui.inverted.table td.marked.secondary.left, +.ui.inverted.table tr.marked.secondary.left { + box-shadow: 0.2em 0 0 0 #545454 inset; +} + +.ui.inverted.table td.marked.secondary.right, +.ui.inverted.table tr.marked.secondary.right { + box-shadow: -0.2em 0 0 0 #545454 inset; +} + +.ui.red.table { + border-top: 0.2em solid #DB2828; +} + +.ui.inverted.red.table { + background-color: #DB2828; + color: #FFFFFF; +} + +.ui.ui.ui.ui.table tr.red:not(.marked), +.ui.ui.table td.red:not(.marked) { + background: #ffe1df; + color: #DB2828; +} + +.ui.ui.selectable.table tr.red:not(.marked):hover, +.ui.table tr td.selectable.red:not(.marked):hover, +.ui.selectable.table tr:hover td.red:not(.marked) { + background: #ffd7d5; + color: #DB2828; +} + +.ui.table td.marked.red.left, +.ui.table tr.marked.red.left { + box-shadow: 0.2em 0 0 0 #DB2828 inset; +} + +.ui.table td.marked.red.right, +.ui.table tr.marked.red.right { + box-shadow: -0.2em 0 0 0 #DB2828 inset; +} + +.ui.inverted.table td.marked.red.left, +.ui.inverted.table tr.marked.red.left { + box-shadow: 0.2em 0 0 0 #FF695E inset; +} + +.ui.inverted.table td.marked.red.right, +.ui.inverted.table tr.marked.red.right { + box-shadow: -0.2em 0 0 0 #FF695E inset; +} + +.ui.orange.table { + border-top: 0.2em solid #F2711C; +} + +.ui.inverted.orange.table { + background-color: #F2711C; + color: #FFFFFF; +} + +.ui.ui.ui.ui.table tr.orange:not(.marked), +.ui.ui.table td.orange:not(.marked) { + background: #ffe7d1; + color: #F2711C; +} + +.ui.ui.selectable.table tr.orange:not(.marked):hover, +.ui.table tr td.selectable.orange:not(.marked):hover, +.ui.selectable.table tr:hover td.orange:not(.marked) { + background: #fae1cc; + color: #F2711C; +} + +.ui.table td.marked.orange.left, +.ui.table tr.marked.orange.left { + box-shadow: 0.2em 0 0 0 #F2711C inset; +} + +.ui.table td.marked.orange.right, +.ui.table tr.marked.orange.right { + box-shadow: -0.2em 0 0 0 #F2711C inset; +} + +.ui.inverted.table td.marked.orange.left, +.ui.inverted.table tr.marked.orange.left { + box-shadow: 0.2em 0 0 0 #FF851B inset; +} + +.ui.inverted.table td.marked.orange.right, +.ui.inverted.table tr.marked.orange.right { + box-shadow: -0.2em 0 0 0 #FF851B inset; +} + +.ui.yellow.table { + border-top: 0.2em solid #FBBD08; +} + +.ui.inverted.yellow.table { + background-color: #FBBD08; + color: #FFFFFF; +} + +.ui.ui.ui.ui.table tr.yellow:not(.marked), +.ui.ui.table td.yellow:not(.marked) { + background: #fff9d2; + color: #B58105; +} + +.ui.ui.selectable.table tr.yellow:not(.marked):hover, +.ui.table tr td.selectable.yellow:not(.marked):hover, +.ui.selectable.table tr:hover td.yellow:not(.marked) { + background: #fbf5cc; + color: #B58105; +} + +.ui.table td.marked.yellow.left, +.ui.table tr.marked.yellow.left { + box-shadow: 0.2em 0 0 0 #FBBD08 inset; +} + +.ui.table td.marked.yellow.right, +.ui.table tr.marked.yellow.right { + box-shadow: -0.2em 0 0 0 #FBBD08 inset; +} + +.ui.inverted.table td.marked.yellow.left, +.ui.inverted.table tr.marked.yellow.left { + box-shadow: 0.2em 0 0 0 #FFE21F inset; +} + +.ui.inverted.table td.marked.yellow.right, +.ui.inverted.table tr.marked.yellow.right { + box-shadow: -0.2em 0 0 0 #FFE21F inset; +} + +.ui.olive.table { + border-top: 0.2em solid #B5CC18; +} + +.ui.inverted.olive.table { + background-color: #B5CC18; + color: #FFFFFF; +} + +.ui.ui.ui.ui.table tr.olive:not(.marked), +.ui.ui.table td.olive:not(.marked) { + background: #f7fae4; + color: #8ABC1E; +} + +.ui.ui.selectable.table tr.olive:not(.marked):hover, +.ui.table tr td.selectable.olive:not(.marked):hover, +.ui.selectable.table tr:hover td.olive:not(.marked) { + background: #f6fada; + color: #8ABC1E; +} + +.ui.table td.marked.olive.left, +.ui.table tr.marked.olive.left { + box-shadow: 0.2em 0 0 0 #B5CC18 inset; +} + +.ui.table td.marked.olive.right, +.ui.table tr.marked.olive.right { + box-shadow: -0.2em 0 0 0 #B5CC18 inset; +} + +.ui.inverted.table td.marked.olive.left, +.ui.inverted.table tr.marked.olive.left { + box-shadow: 0.2em 0 0 0 #D9E778 inset; +} + +.ui.inverted.table td.marked.olive.right, +.ui.inverted.table tr.marked.olive.right { + box-shadow: -0.2em 0 0 0 #D9E778 inset; +} + +.ui.green.table { + border-top: 0.2em solid #21BA45; +} + +.ui.inverted.green.table { + background-color: #21BA45; + color: #FFFFFF; +} + +.ui.ui.ui.ui.table tr.green:not(.marked), +.ui.ui.table td.green:not(.marked) { + background: #d5f5d9; + color: #1EBC30; +} + +.ui.ui.selectable.table tr.green:not(.marked):hover, +.ui.table tr td.selectable.green:not(.marked):hover, +.ui.selectable.table tr:hover td.green:not(.marked) { + background: #d2eed5; + color: #1EBC30; +} + +.ui.table td.marked.green.left, +.ui.table tr.marked.green.left { + box-shadow: 0.2em 0 0 0 #21BA45 inset; +} + +.ui.table td.marked.green.right, +.ui.table tr.marked.green.right { + box-shadow: -0.2em 0 0 0 #21BA45 inset; +} + +.ui.inverted.table td.marked.green.left, +.ui.inverted.table tr.marked.green.left { + box-shadow: 0.2em 0 0 0 #2ECC40 inset; +} + +.ui.inverted.table td.marked.green.right, +.ui.inverted.table tr.marked.green.right { + box-shadow: -0.2em 0 0 0 #2ECC40 inset; +} + +.ui.teal.table { + border-top: 0.2em solid #00B5AD; +} + +.ui.inverted.teal.table { + background-color: #00B5AD; + color: #FFFFFF; +} + +.ui.ui.ui.ui.table tr.teal:not(.marked), +.ui.ui.table td.teal:not(.marked) { + background: #e2ffff; + color: #10A3A3; +} + +.ui.ui.selectable.table tr.teal:not(.marked):hover, +.ui.table tr td.selectable.teal:not(.marked):hover, +.ui.selectable.table tr:hover td.teal:not(.marked) { + background: #d8ffff; + color: #10A3A3; +} + +.ui.table td.marked.teal.left, +.ui.table tr.marked.teal.left { + box-shadow: 0.2em 0 0 0 #00B5AD inset; +} + +.ui.table td.marked.teal.right, +.ui.table tr.marked.teal.right { + box-shadow: -0.2em 0 0 0 #00B5AD inset; +} + +.ui.inverted.table td.marked.teal.left, +.ui.inverted.table tr.marked.teal.left { + box-shadow: 0.2em 0 0 0 #6DFFFF inset; +} + +.ui.inverted.table td.marked.teal.right, +.ui.inverted.table tr.marked.teal.right { + box-shadow: -0.2em 0 0 0 #6DFFFF inset; +} + +.ui.blue.table { + border-top: 0.2em solid #2185D0; +} + +.ui.inverted.blue.table { + background-color: #2185D0; + color: #FFFFFF; +} + +.ui.ui.ui.ui.table tr.blue:not(.marked), +.ui.ui.table td.blue:not(.marked) { + background: #ddf4ff; + color: #2185D0; +} + +.ui.ui.selectable.table tr.blue:not(.marked):hover, +.ui.table tr td.selectable.blue:not(.marked):hover, +.ui.selectable.table tr:hover td.blue:not(.marked) { + background: #d3f1ff; + color: #2185D0; +} + +.ui.table td.marked.blue.left, +.ui.table tr.marked.blue.left { + box-shadow: 0.2em 0 0 0 #2185D0 inset; +} + +.ui.table td.marked.blue.right, +.ui.table tr.marked.blue.right { + box-shadow: -0.2em 0 0 0 #2185D0 inset; +} + +.ui.inverted.table td.marked.blue.left, +.ui.inverted.table tr.marked.blue.left { + box-shadow: 0.2em 0 0 0 #54C8FF inset; +} + +.ui.inverted.table td.marked.blue.right, +.ui.inverted.table tr.marked.blue.right { + box-shadow: -0.2em 0 0 0 #54C8FF inset; +} + +.ui.violet.table { + border-top: 0.2em solid #6435C9; +} + +.ui.inverted.violet.table { + background-color: #6435C9; + color: #FFFFFF; +} + +.ui.ui.ui.ui.table tr.violet:not(.marked), +.ui.ui.table td.violet:not(.marked) { + background: #ece9fe; + color: #6435C9; +} + +.ui.ui.selectable.table tr.violet:not(.marked):hover, +.ui.table tr td.selectable.violet:not(.marked):hover, +.ui.selectable.table tr:hover td.violet:not(.marked) { + background: #e3deff; + color: #6435C9; +} + +.ui.table td.marked.violet.left, +.ui.table tr.marked.violet.left { + box-shadow: 0.2em 0 0 0 #6435C9 inset; +} + +.ui.table td.marked.violet.right, +.ui.table tr.marked.violet.right { + box-shadow: -0.2em 0 0 0 #6435C9 inset; +} + +.ui.inverted.table td.marked.violet.left, +.ui.inverted.table tr.marked.violet.left { + box-shadow: 0.2em 0 0 0 #A291FB inset; +} + +.ui.inverted.table td.marked.violet.right, +.ui.inverted.table tr.marked.violet.right { + box-shadow: -0.2em 0 0 0 #A291FB inset; +} + +.ui.purple.table { + border-top: 0.2em solid #A333C8; +} + +.ui.inverted.purple.table { + background-color: #A333C8; + color: #FFFFFF; +} + +.ui.ui.ui.ui.table tr.purple:not(.marked), +.ui.ui.table td.purple:not(.marked) { + background: #f8e3ff; + color: #A333C8; +} + +.ui.ui.selectable.table tr.purple:not(.marked):hover, +.ui.table tr td.selectable.purple:not(.marked):hover, +.ui.selectable.table tr:hover td.purple:not(.marked) { + background: #f5d9ff; + color: #A333C8; +} + +.ui.table td.marked.purple.left, +.ui.table tr.marked.purple.left { + box-shadow: 0.2em 0 0 0 #A333C8 inset; +} + +.ui.table td.marked.purple.right, +.ui.table tr.marked.purple.right { + box-shadow: -0.2em 0 0 0 #A333C8 inset; +} + +.ui.inverted.table td.marked.purple.left, +.ui.inverted.table tr.marked.purple.left { + box-shadow: 0.2em 0 0 0 #DC73FF inset; +} + +.ui.inverted.table td.marked.purple.right, +.ui.inverted.table tr.marked.purple.right { + box-shadow: -0.2em 0 0 0 #DC73FF inset; +} + +.ui.pink.table { + border-top: 0.2em solid #E03997; +} + +.ui.inverted.pink.table { + background-color: #E03997; + color: #FFFFFF; +} + +.ui.ui.ui.ui.table tr.pink:not(.marked), +.ui.ui.table td.pink:not(.marked) { + background: #ffe8f9; + color: #E03997; +} + +.ui.ui.selectable.table tr.pink:not(.marked):hover, +.ui.table tr td.selectable.pink:not(.marked):hover, +.ui.selectable.table tr:hover td.pink:not(.marked) { + background: #ffdef6; + color: #E03997; +} + +.ui.table td.marked.pink.left, +.ui.table tr.marked.pink.left { + box-shadow: 0.2em 0 0 0 #E03997 inset; +} + +.ui.table td.marked.pink.right, +.ui.table tr.marked.pink.right { + box-shadow: -0.2em 0 0 0 #E03997 inset; +} + +.ui.inverted.table td.marked.pink.left, +.ui.inverted.table tr.marked.pink.left { + box-shadow: 0.2em 0 0 0 #FF8EDF inset; +} + +.ui.inverted.table td.marked.pink.right, +.ui.inverted.table tr.marked.pink.right { + box-shadow: -0.2em 0 0 0 #FF8EDF inset; +} + +.ui.brown.table { + border-top: 0.2em solid #A5673F; +} + +.ui.inverted.brown.table { + background-color: #A5673F; + color: #FFFFFF; +} + +.ui.ui.ui.ui.table tr.brown:not(.marked), +.ui.ui.table td.brown:not(.marked) { + background: #f7e5d2; + color: #A5673F; +} + +.ui.ui.selectable.table tr.brown:not(.marked):hover, +.ui.table tr td.selectable.brown:not(.marked):hover, +.ui.selectable.table tr:hover td.brown:not(.marked) { + background: #efe0cf; + color: #A5673F; +} + +.ui.table td.marked.brown.left, +.ui.table tr.marked.brown.left { + box-shadow: 0.2em 0 0 0 #A5673F inset; +} + +.ui.table td.marked.brown.right, +.ui.table tr.marked.brown.right { + box-shadow: -0.2em 0 0 0 #A5673F inset; +} + +.ui.inverted.table td.marked.brown.left, +.ui.inverted.table tr.marked.brown.left { + box-shadow: 0.2em 0 0 0 #D67C1C inset; +} + +.ui.inverted.table td.marked.brown.right, +.ui.inverted.table tr.marked.brown.right { + box-shadow: -0.2em 0 0 0 #D67C1C inset; +} + +.ui.grey.table { + border-top: 0.2em solid #767676; +} + +.ui.inverted.grey.table { + background-color: #767676; + color: #FFFFFF; +} + +.ui.ui.ui.ui.table tr.grey:not(.marked), +.ui.ui.table td.grey:not(.marked) { + background: #DCDDDE; + color: #767676; +} + +.ui.ui.selectable.table tr.grey:not(.marked):hover, +.ui.table tr td.selectable.grey:not(.marked):hover, +.ui.selectable.table tr:hover td.grey:not(.marked) { + background: #c2c4c5; + color: #767676; +} + +.ui.table td.marked.grey.left, +.ui.table tr.marked.grey.left { + box-shadow: 0.2em 0 0 0 #767676 inset; +} + +.ui.table td.marked.grey.right, +.ui.table tr.marked.grey.right { + box-shadow: -0.2em 0 0 0 #767676 inset; +} + +.ui.inverted.table td.marked.grey.left, +.ui.inverted.table tr.marked.grey.left { + box-shadow: 0.2em 0 0 0 #DCDDDE inset; +} + +.ui.inverted.table td.marked.grey.right, +.ui.inverted.table tr.marked.grey.right { + box-shadow: -0.2em 0 0 0 #DCDDDE inset; +} + +.ui.black.table { + border-top: 0.2em solid #1B1C1D; +} + +.ui.inverted.black.table { + background-color: #1B1C1D; + color: #FFFFFF; +} + +.ui.ui.ui.ui.table tr.black:not(.marked), +.ui.ui.table td.black:not(.marked) { + background: #545454; + color: #FFFFFF; +} + +.ui.ui.selectable.table tr.black:not(.marked):hover, +.ui.table tr td.selectable.black:not(.marked):hover, +.ui.selectable.table tr:hover td.black:not(.marked) { + background: #000000; + color: #FFFFFF; +} + +.ui.table td.marked.black.left, +.ui.table tr.marked.black.left { + box-shadow: 0.2em 0 0 0 #1B1C1D inset; +} + +.ui.table td.marked.black.right, +.ui.table tr.marked.black.right { + box-shadow: -0.2em 0 0 0 #1B1C1D inset; +} + +.ui.inverted.table td.marked.black.left, +.ui.inverted.table tr.marked.black.left { + box-shadow: 0.2em 0 0 0 #545454 inset; +} + +.ui.inverted.table td.marked.black.right, +.ui.inverted.table tr.marked.black.right { + box-shadow: -0.2em 0 0 0 #545454 inset; +} + +/*-------------- + Column Count +---------------*/ + +/* Grid Based */ + +.ui.one.column.table td { + width: 100%; +} + +.ui.two.column.table td { + width: 50%; +} + +.ui.three.column.table td { + width: 33.33333333%; +} + +.ui.four.column.table td { + width: 25%; +} + +.ui.five.column.table td { + width: 20%; +} + +.ui.six.column.table td { + width: 16.66666667%; +} + +.ui.seven.column.table td { + width: 14.28571429%; +} + +.ui.eight.column.table td { + width: 12.5%; +} + +.ui.nine.column.table td { + width: 11.11111111%; +} + +.ui.ten.column.table td { + width: 10%; +} + +.ui.eleven.column.table td { + width: 9.09090909%; +} + +.ui.twelve.column.table td { + width: 8.33333333%; +} + +.ui.thirteen.column.table td { + width: 7.69230769%; +} + +.ui.fourteen.column.table td { + width: 7.14285714%; +} + +.ui.fifteen.column.table td { + width: 6.66666667%; +} + +.ui.sixteen.column.table td { + width: 6.25%; +} + +/* Column Width */ + +.ui.table th.one.wide, +.ui.table td.one.wide { + width: 6.25%; +} + +.ui.table th.two.wide, +.ui.table td.two.wide { + width: 12.5%; +} + +.ui.table th.three.wide, +.ui.table td.three.wide { + width: 18.75%; +} + +.ui.table th.four.wide, +.ui.table td.four.wide { + width: 25%; +} + +.ui.table th.five.wide, +.ui.table td.five.wide { + width: 31.25%; +} + +.ui.table th.six.wide, +.ui.table td.six.wide { + width: 37.5%; +} + +.ui.table th.seven.wide, +.ui.table td.seven.wide { + width: 43.75%; +} + +.ui.table th.eight.wide, +.ui.table td.eight.wide { + width: 50%; +} + +.ui.table th.nine.wide, +.ui.table td.nine.wide { + width: 56.25%; +} + +.ui.table th.ten.wide, +.ui.table td.ten.wide { + width: 62.5%; +} + +.ui.table th.eleven.wide, +.ui.table td.eleven.wide { + width: 68.75%; +} + +.ui.table th.twelve.wide, +.ui.table td.twelve.wide { + width: 75%; +} + +.ui.table th.thirteen.wide, +.ui.table td.thirteen.wide { + width: 81.25%; +} + +.ui.table th.fourteen.wide, +.ui.table td.fourteen.wide { + width: 87.5%; +} + +.ui.table th.fifteen.wide, +.ui.table td.fifteen.wide { + width: 93.75%; +} + +.ui.table th.sixteen.wide, +.ui.table td.sixteen.wide { + width: 100%; +} + +/*-------------- + Sortable + ---------------*/ + +.ui.sortable.table > thead > tr > th { + cursor: pointer; + white-space: nowrap; + border-left: 1px solid rgba(34, 36, 38, 0.15); + color: rgba(0, 0, 0, 0.87); +} + +.ui.sortable.table > thead > tr > th:first-child { + border-left: none; +} + +.ui.sortable.table thead th.sorted, +.ui.sortable.table thead th.sorted:hover { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +.ui.sortable.table > thead > tr > th:after { + display: none; + font-style: normal; + font-weight: normal; + text-decoration: inherit; + content: ''; + height: 1em; + width: auto; + opacity: 0.8; + margin: 0 0 0 0.5em; + font-family: 'Icons'; +} + +.ui.sortable.table thead th.ascending:after { + content: '\f0d8'; +} + +.ui.sortable.table thead th.descending:after { + content: '\f0d7'; +} + +/* Hover */ + +.ui.sortable.table th.disabled:hover { + cursor: auto; + color: rgba(40, 40, 40, 0.3); +} + +.ui.sortable.table > thead > tr > th:hover { + color: rgba(0, 0, 0, 0.8); +} + +.ui.sortable.table:not(.basic) > thead > tr > th:hover { + background: rgba(0, 0, 0, 0.05); +} + +/* Sorted */ + +.ui.sortable.table thead th.sorted { + color: rgba(0, 0, 0, 0.95); +} + +.ui.sortable.table:not(.basic) thead th.sorted { + background: rgba(0, 0, 0, 0.05); +} + +.ui.sortable.table thead th.sorted:after { + display: inline-block; +} + +/* Sorted Hover */ + +.ui.sortable.table thead th.sorted:hover { + color: rgba(0, 0, 0, 0.95); +} + +.ui.sortable.table:not(.basic) thead th.sorted:hover { + background: rgba(0, 0, 0, 0.05); +} + +/* Inverted */ + +.ui.inverted.sortable.table thead th.sorted { + color: #ffffff; +} + +.ui.inverted.sortable.table:not(.basic) thead th.sorted { + background: rgba(255, 255, 255, 0.15) linear-gradient(transparent, rgba(0, 0, 0, 0.05)); +} + +.ui.inverted.sortable.table > thead > tr > th:hover { + color: #ffffff; +} + +.ui.inverted.sortable.table:not(.basic) > thead > tr > th:hover { + background: rgba(255, 255, 255, 0.08) linear-gradient(transparent, rgba(0, 0, 0, 0.05)); +} + +.ui.inverted.sortable.table:not(.basic) > thead > tr > th { + border-left-color: transparent; + border-right-color: transparent; +} + +/*-------------- + Inverted + ---------------*/ + +/* Text Color */ + +.ui.inverted.table { + background: #333333; + color: rgba(255, 255, 255, 0.9); + border: none; +} + +.ui.ui.inverted.table > thead > tr > th, +.ui.ui.inverted.table > tbody > tr > th, +.ui.ui.inverted.table > tfoot > tr > th, +.ui.ui.inverted.table > tfoot > tr > td, +.ui.ui.inverted.table > tr > th { + background-color: rgba(0, 0, 0, 0.15); + border-color: rgba(255, 255, 255, 0.1); + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.table > tbody > tr > td, +.ui.inverted.table > tfoot > tr > td, +.ui.inverted.table > tr > td { + border-color: rgba(255, 255, 255, 0.1); +} + +.ui.inverted.table tr.disabled td, +.ui.inverted.table tr td.disabled, +.ui.inverted.table tr.disabled:hover td, +.ui.inverted.table tr:hover td.disabled { + pointer-events: none; + color: rgba(225, 225, 225, 0.3); +} + +.ui.inverted.table tr td.disabled:not([class="disabled"]), +.ui.inverted.table tr.disabled:not([class="disabled"]) td, +.ui.inverted.table tr.disabled td[class]:not(.disabled), +.ui.inverted.table tr:hover td.disabled:not([class="disabled"]) { + color: rgba(40, 40, 40, 0.3); +} + +/* Definition */ + +.ui.inverted.definition.table > tfoot:not(.full-width) > tr > th:first-child, +.ui.inverted.definition.table > thead:not(.full-width) > tr > th:first-child { + background: #FFFFFF; +} + +.ui.inverted.definition.table > tbody > tr > td:first-child .ui.inverted.definition.table > tfoot > tr > td:first-child, +.ui.inverted.definition.table > tr > td:first-child { + background: rgba(255, 255, 255, 0.02); + color: #ffffff; +} + +/*-------------- + Collapsing + ---------------*/ + +.ui.collapsing.table { + width: auto; +} + +/*-------------- + Basic + ---------------*/ + +.ui.basic.table { + background: transparent; + border: 1px solid rgba(34, 36, 38, 0.15); + box-shadow: none; +} + +.ui.basic.table > thead, +.ui.basic.table > tfoot { + box-shadow: none; +} + +.ui.basic.table > thead > tr > th, +.ui.basic.table > tbody > tr > th, +.ui.basic.table > tfoot > tr > th, +.ui.basic.table > tr > th { + background: transparent; + border-left: none; +} + +.ui.basic.table > tbody > tr { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.ui.basic.table > tbody > tr > td, +.ui.basic.table > tfoot > tr > td, +.ui.basic.table > tr > td { + background: transparent; +} + +.ui.basic.striped.table > tbody > tr:nth-child(2n) { + background-color: rgba(0, 0, 0, 0.05); +} + +/* Very Basic */ + +.ui[class*="very basic"].table { + border: none; +} + +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tr > th, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > thead > tr > th, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tbody > tr > th, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tfoot > tr > th, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tr > td, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tbody > tr > td { + padding: ''; +} + +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tr > th:first-child, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > thead > tr > th:first-child, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tbody > tr > th:first-child, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tfoot > tr > th:first-child, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tr > td:first-child, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tbody > tr > td:first-child, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tfoot > tr > td:first-child { + padding-left: 0; +} + +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tr > th:last-child, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > thead > tr > th:last-child, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tbody > tr > th:last-child, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tfoot > tr > th:last-child, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tr > td:last-child, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tbody > tr > td:last-child, +.ui[class*="very basic"].table:not(.sortable):not(.striped) > tfoot > tr > td:last-child { + padding-right: 0; +} + +.ui[class*="very basic"].table:not(.sortable):not(.striped) > thead > tr:first-child > th { + padding-top: 0; +} + +/*-------------- + Celled + ---------------*/ + +.ui.celled.table > tr > th, +.ui.celled.table > thead > tr > th, +.ui.celled.table > tbody > tr > th, +.ui.celled.table > tfoot > tr > th, +.ui.celled.table > tr > td, +.ui.celled.table > tbody > tr > td, +.ui.celled.table > tfoot > tr > td { + border-left: 1px solid rgba(34, 36, 38, 0.1); +} + +.ui.inverted.celled.table > tbody > tr > td, +.ui.inverted.celled.table > tr > td { + border-left: 1px solid rgba(255, 255, 255, 0.1); +} + +.ui.celled.table > tr > th:first-child, +.ui.celled.table > thead > tr > th:first-child, +.ui.celled.table > tbody > tr > th:first-child, +.ui.celled.table > tfoot > tr > th:first-child, +.ui.celled.table > tr > td:first-child, +.ui.celled.table > tbody > tr > td:first-child, +.ui.celled.table > tfoot > tr > td:first-child { + border-left: none; +} + +/*-------------- + Padded + ---------------*/ + +.ui.padded.table > tr > th, +.ui.padded.table > thead > tr > th, +.ui.padded.table > tbody > tr > th, +.ui.padded.table > tfoot > tr > th { + padding-left: 1em; + padding-right: 1em; +} + +.ui.padded.table > tr > th, +.ui.padded.table > thead > tr > th, +.ui.padded.table > tbody > tr > th, +.ui.padded.table > tfoot > tr > th, +.ui.padded.table > tr > td, +.ui.padded.table > tbody > tr > td, +.ui.padded.table > tfoot > tr > td { + padding: 1em 1em; +} + +/* Very */ + +.ui[class*="very padded"].table > tr > th, +.ui[class*="very padded"].table > thead > tr > th, +.ui[class*="very padded"].table > tbody > tr > th, +.ui[class*="very padded"].table > tfoot > tr > th { + padding-left: 1.5em; + padding-right: 1.5em; +} + +.ui[class*="very padded"].table > tr > td, +.ui[class*="very padded"].table > tbody > tr > td, +.ui[class*="very padded"].table > tfoot > tr > td { + padding: 1.5em 1.5em; +} + +/*-------------- + Compact + ---------------*/ + +.ui.compact.table > tr > th, +.ui.compact.table > thead > tr > th, +.ui.compact.table > tbody > tr > th, +.ui.compact.table > tfoot > tr > th { + padding-left: 0.7em; + padding-right: 0.7em; +} + +.ui.compact.table > tr > td, +.ui.compact.table > tbody > tr > td, +.ui.compact.table > tfoot > tr > td { + padding: 0.5em 0.7em; +} + +/* Very */ + +.ui[class*="very compact"].table > tr > th, +.ui[class*="very compact"].table > thead > tr > th, +.ui[class*="very compact"].table > tbody > tr > th, +.ui[class*="very compact"].table > tfoot > tr > th { + padding-left: 0.6em; + padding-right: 0.6em; +} + +.ui[class*="very compact"].table > tr > td, +.ui[class*="very compact"].table > tbody > tr > td, +.ui[class*="very compact"].table > tfoot > tr > td { + padding: 0.4em 0.6em; +} + +/*-------------- + Sizes +---------------*/ + +/* Standard */ + +.ui.table { + font-size: 1em; +} + +.ui.mini.table { + font-size: 0.78571429rem; +} + +.ui.tiny.table { + font-size: 0.85714286rem; +} + +.ui.small.table { + font-size: 0.9em; +} + +.ui.large.table { + font-size: 1.1em; +} + +.ui.big.table { + font-size: 1.28571429rem; +} + +.ui.huge.table { + font-size: 1.42857143rem; +} + +.ui.massive.table { + font-size: 1.71428571rem; +} + +/******************************* + Site Overrides +*******************************/ +/*! + * # Fomantic-UI - Text + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * https://github.com/fomantic/Fomantic-UI/blob/master/LICENSE.md + * + */ + +/******************************* + Text +*******************************/ + +span.ui.text { + line-height: 1; +} + +span.ui.primary.text { + color: #2185D0; +} + +span.ui.inverted.primary.text { + color: #54C8FF; +} + +span.ui.secondary.text { + color: #1B1C1D; +} + +span.ui.inverted.secondary.text { + color: #545454; +} + +span.ui.red.text { + color: #DB2828; +} + +span.ui.inverted.red.text { + color: #FF695E; +} + +span.ui.orange.text { + color: #F2711C; +} + +span.ui.inverted.orange.text { + color: #FF851B; +} + +span.ui.yellow.text { + color: #FBBD08; +} + +span.ui.inverted.yellow.text { + color: #FFE21F; +} + +span.ui.olive.text { + color: #B5CC18; +} + +span.ui.inverted.olive.text { + color: #D9E778; +} + +span.ui.green.text { + color: #21BA45; +} + +span.ui.inverted.green.text { + color: #2ECC40; +} + +span.ui.teal.text { + color: #00B5AD; +} + +span.ui.inverted.teal.text { + color: #6DFFFF; +} + +span.ui.blue.text { + color: #2185D0; +} + +span.ui.inverted.blue.text { + color: #54C8FF; +} + +span.ui.violet.text { + color: #6435C9; +} + +span.ui.inverted.violet.text { + color: #A291FB; +} + +span.ui.purple.text { + color: #A333C8; +} + +span.ui.inverted.purple.text { + color: #DC73FF; +} + +span.ui.pink.text { + color: #E03997; +} + +span.ui.inverted.pink.text { + color: #FF8EDF; +} + +span.ui.brown.text { + color: #A5673F; +} + +span.ui.inverted.brown.text { + color: #D67C1C; +} + +span.ui.grey.text { + color: #767676; +} + +span.ui.inverted.grey.text { + color: #DCDDDE; +} + +span.ui.black.text { + color: #1B1C1D; +} + +span.ui.inverted.black.text { + color: #545454; +} + +span.ui.error.text { + color: #DB2828; +} + +span.ui.info.text { + color: #31CCEC; +} + +span.ui.success.text { + color: #21BA45; +} + +span.ui.warning.text { + color: #F2C037; +} + +span.ui.disabled.text { + opacity: 0.45; +} + +/* Sizes */ + +span.ui.medium.text { + font-size: 1em; +} + +span.ui.mini.text { + font-size: 0.4em; +} + +span.ui.tiny.text { + font-size: 0.5em; +} + +span.ui.small.text { + font-size: 0.75em; +} + +span.ui.large.text { + font-size: 1.5em; +} + +span.ui.big.text { + font-size: 2em; +} + +span.ui.huge.text { + font-size: 4em; +} + +span.ui.massive.text { + font-size: 8em; +} + +/******************************* + Theme Overrides +*******************************/ +/*! + * # Fomantic-UI - Transition + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Transitions +*******************************/ + +.transition { + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + -webkit-animation-duration: 300ms; + animation-duration: 300ms; + -webkit-animation-timing-function: ease; + animation-timing-function: ease; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +/******************************* + States +*******************************/ + +/* Animating */ + +.animating.transition { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + visibility: visible !important; +} + +/* Loading */ + +.loading.transition { + position: absolute; + top: -99999px; + left: -99999px; +} + +/* Hidden */ + +.hidden.transition { + display: none; + visibility: hidden; +} + +/* Visible */ + +.visible.transition { + display: block !important; + visibility: visible !important; + /* backface-visibility: @backfaceVisibility; + transform: @use3DAcceleration;*/ +} + +/* Disabled */ + +.disabled.transition { + -webkit-animation-play-state: paused; + animation-play-state: paused; +} + +/******************************* + Variations +*******************************/ + +.looping.transition { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} + +/******************************* + Transitions +*******************************/ + +/* + Some transitions adapted from Animate CSS + https://github.com/daneden/animate.css + + Additional transitions adapted from Glide + by Nick Pettit - https://github.com/nickpettit/glide +*/ + +/*-------------- + Browse + ---------------*/ + +.transition.browse { + -webkit-animation-duration: 500ms; + animation-duration: 500ms; +} + +.transition.browse.in { + -webkit-animation-name: browseIn; + animation-name: browseIn; +} + +.transition.browse.out, +.transition.browse.left.out { + -webkit-animation-name: browseOutLeft; + animation-name: browseOutLeft; +} + +.transition.browse.right.out { + -webkit-animation-name: browseOutRight; + animation-name: browseOutRight; +} + +/* In */ + +@-webkit-keyframes browseIn { + 0% { + transform: scale(0.8) translateZ(0px); + z-index: -1; + } + + 10% { + transform: scale(0.8) translateZ(0px); + z-index: -1; + opacity: 0.7; + } + + 80% { + transform: scale(1.05) translateZ(0px); + opacity: 1; + z-index: 999; + } + + 100% { + transform: scale(1) translateZ(0px); + z-index: 999; + } +} + +@keyframes browseIn { + 0% { + transform: scale(0.8) translateZ(0px); + z-index: -1; + } + + 10% { + transform: scale(0.8) translateZ(0px); + z-index: -1; + opacity: 0.7; + } + + 80% { + transform: scale(1.05) translateZ(0px); + opacity: 1; + z-index: 999; + } + + 100% { + transform: scale(1) translateZ(0px); + z-index: 999; + } +} + +/* Out */ + +@-webkit-keyframes browseOutLeft { + 0% { + z-index: 999; + transform: translateX(0%) rotateY(0deg) rotateX(0deg); + } + + 50% { + z-index: -1; + transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px); + } + + 80% { + opacity: 1; + } + + 100% { + z-index: -1; + transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px); + opacity: 0; + } +} + +@keyframes browseOutLeft { + 0% { + z-index: 999; + transform: translateX(0%) rotateY(0deg) rotateX(0deg); + } + + 50% { + z-index: -1; + transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px); + } + + 80% { + opacity: 1; + } + + 100% { + z-index: -1; + transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px); + opacity: 0; + } +} + +@-webkit-keyframes browseOutRight { + 0% { + z-index: 999; + transform: translateX(0%) rotateY(0deg) rotateX(0deg); + } + + 50% { + z-index: 1; + transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px); + } + + 80% { + opacity: 1; + } + + 100% { + z-index: 1; + transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px); + opacity: 0; + } +} + +@keyframes browseOutRight { + 0% { + z-index: 999; + transform: translateX(0%) rotateY(0deg) rotateX(0deg); + } + + 50% { + z-index: 1; + transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px); + } + + 80% { + opacity: 1; + } + + 100% { + z-index: 1; + transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px); + opacity: 0; + } +} + +/*-------------- + Drop + ---------------*/ + +.drop.transition { + transform-origin: top center; + -webkit-animation-duration: 400ms; + animation-duration: 400ms; + -webkit-animation-timing-function: cubic-bezier(0.34, 1.61, 0.7, 1); + animation-timing-function: cubic-bezier(0.34, 1.61, 0.7, 1); +} + +.drop.transition.in { + -webkit-animation-name: dropIn; + animation-name: dropIn; +} + +.drop.transition.out { + -webkit-animation-name: dropOut; + animation-name: dropOut; +} + +/* Drop */ + +@-webkit-keyframes dropIn { + 0% { + opacity: 0; + transform: scale(0); + } + + 100% { + opacity: 1; + transform: scale(1); + } +} + +@keyframes dropIn { + 0% { + opacity: 0; + transform: scale(0); + } + + 100% { + opacity: 1; + transform: scale(1); + } +} + +@-webkit-keyframes dropOut { + 0% { + opacity: 1; + transform: scale(1); + } + + 100% { + opacity: 0; + transform: scale(0); + } +} + +@keyframes dropOut { + 0% { + opacity: 1; + transform: scale(1); + } + + 100% { + opacity: 0; + transform: scale(0); + } +} + +/*-------------- + Fade + ---------------*/ + +.transition.fade.in { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +.transition[class*="fade up"].in { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} + +.transition[class*="fade down"].in { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +.transition[class*="fade left"].in { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} + +.transition[class*="fade right"].in { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} + +.transition.fade.out { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +.transition[class*="fade up"].out { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +.transition[class*="fade down"].out { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +.transition[class*="fade left"].out { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} + +.transition[class*="fade right"].out { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} + +/* In */ + +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +@keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + transform: translateY(10%); + } + + 100% { + opacity: 1; + transform: translateY(0%); + } +} + +@keyframes fadeInUp { + 0% { + opacity: 0; + transform: translateY(10%); + } + + 100% { + opacity: 1; + transform: translateY(0%); + } +} + +@-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + transform: translateY(-10%); + } + + 100% { + opacity: 1; + transform: translateY(0%); + } +} + +@keyframes fadeInDown { + 0% { + opacity: 0; + transform: translateY(-10%); + } + + 100% { + opacity: 1; + transform: translateY(0%); + } +} + +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + transform: translateX(10%); + } + + 100% { + opacity: 1; + transform: translateX(0%); + } +} + +@keyframes fadeInLeft { + 0% { + opacity: 0; + transform: translateX(10%); + } + + 100% { + opacity: 1; + transform: translateX(0%); + } +} + +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + transform: translateX(-10%); + } + + 100% { + opacity: 1; + transform: translateX(0%); + } +} + +@keyframes fadeInRight { + 0% { + opacity: 0; + transform: translateX(-10%); + } + + 100% { + opacity: 1; + transform: translateX(0%); + } +} + +/* Out */ + +@-webkit-keyframes fadeOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +@keyframes fadeOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +@-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + transform: translateY(0%); + } + + 100% { + opacity: 0; + transform: translateY(5%); + } +} + +@keyframes fadeOutUp { + 0% { + opacity: 1; + transform: translateY(0%); + } + + 100% { + opacity: 0; + transform: translateY(5%); + } +} + +@-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + transform: translateY(0%); + } + + 100% { + opacity: 0; + transform: translateY(-5%); + } +} + +@keyframes fadeOutDown { + 0% { + opacity: 1; + transform: translateY(0%); + } + + 100% { + opacity: 0; + transform: translateY(-5%); + } +} + +@-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + transform: translateX(0%); + } + + 100% { + opacity: 0; + transform: translateX(5%); + } +} + +@keyframes fadeOutLeft { + 0% { + opacity: 1; + transform: translateX(0%); + } + + 100% { + opacity: 0; + transform: translateX(5%); + } +} + +@-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + transform: translateX(0%); + } + + 100% { + opacity: 0; + transform: translateX(-5%); + } +} + +@keyframes fadeOutRight { + 0% { + opacity: 1; + transform: translateX(0%); + } + + 100% { + opacity: 0; + transform: translateX(-5%); + } +} + +/*-------------- + Flips + ---------------*/ + +.flip.transition.in, +.flip.transition.out { + -webkit-animation-duration: 600ms; + animation-duration: 600ms; +} + +.horizontal.flip.transition.in { + -webkit-animation-name: horizontalFlipIn; + animation-name: horizontalFlipIn; +} + +.horizontal.flip.transition.out { + -webkit-animation-name: horizontalFlipOut; + animation-name: horizontalFlipOut; +} + +.vertical.flip.transition.in { + -webkit-animation-name: verticalFlipIn; + animation-name: verticalFlipIn; +} + +.vertical.flip.transition.out { + -webkit-animation-name: verticalFlipOut; + animation-name: verticalFlipOut; +} + +/* In */ + +@-webkit-keyframes horizontalFlipIn { + 0% { + transform: perspective(2000px) rotateY(-90deg); + opacity: 0; + } + + 100% { + transform: perspective(2000px) rotateY(0deg); + opacity: 1; + } +} + +@keyframes horizontalFlipIn { + 0% { + transform: perspective(2000px) rotateY(-90deg); + opacity: 0; + } + + 100% { + transform: perspective(2000px) rotateY(0deg); + opacity: 1; + } +} + +@-webkit-keyframes verticalFlipIn { + 0% { + transform: perspective(2000px) rotateX(-90deg); + opacity: 0; + } + + 100% { + transform: perspective(2000px) rotateX(0deg); + opacity: 1; + } +} + +@keyframes verticalFlipIn { + 0% { + transform: perspective(2000px) rotateX(-90deg); + opacity: 0; + } + + 100% { + transform: perspective(2000px) rotateX(0deg); + opacity: 1; + } +} + +/* Out */ + +@-webkit-keyframes horizontalFlipOut { + 0% { + transform: perspective(2000px) rotateY(0deg); + opacity: 1; + } + + 100% { + transform: perspective(2000px) rotateY(90deg); + opacity: 0; + } +} + +@keyframes horizontalFlipOut { + 0% { + transform: perspective(2000px) rotateY(0deg); + opacity: 1; + } + + 100% { + transform: perspective(2000px) rotateY(90deg); + opacity: 0; + } +} + +@-webkit-keyframes verticalFlipOut { + 0% { + transform: perspective(2000px) rotateX(0deg); + opacity: 1; + } + + 100% { + transform: perspective(2000px) rotateX(-90deg); + opacity: 0; + } +} + +@keyframes verticalFlipOut { + 0% { + transform: perspective(2000px) rotateX(0deg); + opacity: 1; + } + + 100% { + transform: perspective(2000px) rotateX(-90deg); + opacity: 0; + } +} + +/*-------------- + Scale + ---------------*/ + +.scale.transition.in { + -webkit-animation-name: scaleIn; + animation-name: scaleIn; +} + +.scale.transition.out { + -webkit-animation-name: scaleOut; + animation-name: scaleOut; +} + +@-webkit-keyframes scaleIn { + 0% { + opacity: 0; + transform: scale(0.8); + } + + 100% { + opacity: 1; + transform: scale(1); + } +} + +@keyframes scaleIn { + 0% { + opacity: 0; + transform: scale(0.8); + } + + 100% { + opacity: 1; + transform: scale(1); + } +} + +/* Out */ + +@-webkit-keyframes scaleOut { + 0% { + opacity: 1; + transform: scale(1); + } + + 100% { + opacity: 0; + transform: scale(0.9); + } +} + +@keyframes scaleOut { + 0% { + opacity: 1; + transform: scale(1); + } + + 100% { + opacity: 0; + transform: scale(0.9); + } +} + +/*-------------- + Fly + ---------------*/ + +/* Inward */ + +.transition.fly { + -webkit-animation-duration: 0.6s; + animation-duration: 0.6s; + transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); +} + +.transition.fly.in { + -webkit-animation-name: flyIn; + animation-name: flyIn; +} + +.transition[class*="fly up"].in { + -webkit-animation-name: flyInUp; + animation-name: flyInUp; +} + +.transition[class*="fly down"].in { + -webkit-animation-name: flyInDown; + animation-name: flyInDown; +} + +.transition[class*="fly left"].in { + -webkit-animation-name: flyInLeft; + animation-name: flyInLeft; +} + +.transition[class*="fly right"].in { + -webkit-animation-name: flyInRight; + animation-name: flyInRight; +} + +/* Outward */ + +.transition.fly.out { + -webkit-animation-name: flyOut; + animation-name: flyOut; +} + +.transition[class*="fly up"].out { + -webkit-animation-name: flyOutUp; + animation-name: flyOutUp; +} + +.transition[class*="fly down"].out { + -webkit-animation-name: flyOutDown; + animation-name: flyOutDown; +} + +.transition[class*="fly left"].out { + -webkit-animation-name: flyOutLeft; + animation-name: flyOutLeft; +} + +.transition[class*="fly right"].out { + -webkit-animation-name: flyOutRight; + animation-name: flyOutRight; +} + +/* In */ + +@-webkit-keyframes flyIn { + 0% { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } + + 20% { + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + transform: scale3d(0.9, 0.9, 0.9); + } + + 60% { + opacity: 1; + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + transform: scale3d(0.97, 0.97, 0.97); + } + + 100% { + opacity: 1; + transform: scale3d(1, 1, 1); + } +} + +@keyframes flyIn { + 0% { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } + + 20% { + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + transform: scale3d(0.9, 0.9, 0.9); + } + + 60% { + opacity: 1; + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + transform: scale3d(0.97, 0.97, 0.97); + } + + 100% { + opacity: 1; + transform: scale3d(1, 1, 1); + } +} + +@-webkit-keyframes flyInUp { + 0% { + opacity: 0; + transform: translate3d(0, 1500px, 0); + } + + 60% { + opacity: 1; + transform: translate3d(0, -20px, 0); + } + + 75% { + transform: translate3d(0, 10px, 0); + } + + 90% { + transform: translate3d(0, -5px, 0); + } + + 100% { + transform: translate3d(0, 0, 0); + } +} + +@keyframes flyInUp { + 0% { + opacity: 0; + transform: translate3d(0, 1500px, 0); + } + + 60% { + opacity: 1; + transform: translate3d(0, -20px, 0); + } + + 75% { + transform: translate3d(0, 10px, 0); + } + + 90% { + transform: translate3d(0, -5px, 0); + } + + 100% { + transform: translate3d(0, 0, 0); + } +} + +@-webkit-keyframes flyInDown { + 0% { + opacity: 0; + transform: translate3d(0, -1500px, 0); + } + + 60% { + opacity: 1; + transform: translate3d(0, 25px, 0); + } + + 75% { + transform: translate3d(0, -10px, 0); + } + + 90% { + transform: translate3d(0, 5px, 0); + } + + 100% { + transform: none; + } +} + +@keyframes flyInDown { + 0% { + opacity: 0; + transform: translate3d(0, -1500px, 0); + } + + 60% { + opacity: 1; + transform: translate3d(0, 25px, 0); + } + + 75% { + transform: translate3d(0, -10px, 0); + } + + 90% { + transform: translate3d(0, 5px, 0); + } + + 100% { + transform: none; + } +} + +@-webkit-keyframes flyInLeft { + 0% { + opacity: 0; + transform: translate3d(1500px, 0, 0); + } + + 60% { + opacity: 1; + transform: translate3d(-25px, 0, 0); + } + + 75% { + transform: translate3d(10px, 0, 0); + } + + 90% { + transform: translate3d(-5px, 0, 0); + } + + 100% { + transform: none; + } +} + +@keyframes flyInLeft { + 0% { + opacity: 0; + transform: translate3d(1500px, 0, 0); + } + + 60% { + opacity: 1; + transform: translate3d(-25px, 0, 0); + } + + 75% { + transform: translate3d(10px, 0, 0); + } + + 90% { + transform: translate3d(-5px, 0, 0); + } + + 100% { + transform: none; + } +} + +@-webkit-keyframes flyInRight { + 0% { + opacity: 0; + transform: translate3d(-1500px, 0, 0); + } + + 60% { + opacity: 1; + transform: translate3d(25px, 0, 0); + } + + 75% { + transform: translate3d(-10px, 0, 0); + } + + 90% { + transform: translate3d(5px, 0, 0); + } + + 100% { + transform: none; + } +} + +@keyframes flyInRight { + 0% { + opacity: 0; + transform: translate3d(-1500px, 0, 0); + } + + 60% { + opacity: 1; + transform: translate3d(25px, 0, 0); + } + + 75% { + transform: translate3d(-10px, 0, 0); + } + + 90% { + transform: translate3d(5px, 0, 0); + } + + 100% { + transform: none; + } +} + +/* Out */ + +@-webkit-keyframes flyOut { + 20% { + transform: scale3d(0.9, 0.9, 0.9); + } + + 50%, 55% { + opacity: 1; + transform: scale3d(1.1, 1.1, 1.1); + } + + 100% { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } +} + +@keyframes flyOut { + 20% { + transform: scale3d(0.9, 0.9, 0.9); + } + + 50%, 55% { + opacity: 1; + transform: scale3d(1.1, 1.1, 1.1); + } + + 100% { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } +} + +@-webkit-keyframes flyOutUp { + 20% { + transform: translate3d(0, 10px, 0); + } + + 40%, 45% { + opacity: 1; + transform: translate3d(0, -20px, 0); + } + + 100% { + opacity: 0; + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes flyOutUp { + 20% { + transform: translate3d(0, 10px, 0); + } + + 40%, 45% { + opacity: 1; + transform: translate3d(0, -20px, 0); + } + + 100% { + opacity: 0; + transform: translate3d(0, 2000px, 0); + } +} + +@-webkit-keyframes flyOutDown { + 20% { + transform: translate3d(0, -10px, 0); + } + + 40%, 45% { + opacity: 1; + transform: translate3d(0, 20px, 0); + } + + 100% { + opacity: 0; + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes flyOutDown { + 20% { + transform: translate3d(0, -10px, 0); + } + + 40%, 45% { + opacity: 1; + transform: translate3d(0, 20px, 0); + } + + 100% { + opacity: 0; + transform: translate3d(0, -2000px, 0); + } +} + +@-webkit-keyframes flyOutRight { + 20% { + opacity: 1; + transform: translate3d(20px, 0, 0); + } + + 100% { + opacity: 0; + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes flyOutRight { + 20% { + opacity: 1; + transform: translate3d(20px, 0, 0); + } + + 100% { + opacity: 0; + transform: translate3d(-2000px, 0, 0); + } +} + +@-webkit-keyframes flyOutLeft { + 20% { + opacity: 1; + transform: translate3d(-20px, 0, 0); + } + + 100% { + opacity: 0; + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes flyOutLeft { + 20% { + opacity: 1; + transform: translate3d(-20px, 0, 0); + } + + 100% { + opacity: 0; + transform: translate3d(2000px, 0, 0); + } +} + +/*-------------- + Slide + ---------------*/ + +.transition.slide.in, +.transition[class*="slide down"].in { + -webkit-animation-name: slideInY; + animation-name: slideInY; + transform-origin: top center; +} + +.transition[class*="slide up"].in { + -webkit-animation-name: slideInY; + animation-name: slideInY; + transform-origin: bottom center; +} + +.transition[class*="slide left"].in { + -webkit-animation-name: slideInX; + animation-name: slideInX; + transform-origin: right center; +} + +.transition[class*="slide right"].in { + -webkit-animation-name: slideInX; + animation-name: slideInX; + transform-origin: left center; +} + +.transition.slide.out, +.transition[class*="slide down"].out { + -webkit-animation-name: slideOutY; + animation-name: slideOutY; + transform-origin: top center; +} + +.transition[class*="slide up"].out { + -webkit-animation-name: slideOutY; + animation-name: slideOutY; + transform-origin: bottom center; +} + +.transition[class*="slide left"].out { + -webkit-animation-name: slideOutX; + animation-name: slideOutX; + transform-origin: right center; +} + +.transition[class*="slide right"].out { + -webkit-animation-name: slideOutX; + animation-name: slideOutX; + transform-origin: left center; +} + +/* In */ + +@-webkit-keyframes slideInY { + 0% { + opacity: 0; + transform: scaleY(0); + } + + 100% { + opacity: 1; + transform: scaleY(1); + } +} + +@keyframes slideInY { + 0% { + opacity: 0; + transform: scaleY(0); + } + + 100% { + opacity: 1; + transform: scaleY(1); + } +} + +@-webkit-keyframes slideInX { + 0% { + opacity: 0; + transform: scaleX(0); + } + + 100% { + opacity: 1; + transform: scaleX(1); + } +} + +@keyframes slideInX { + 0% { + opacity: 0; + transform: scaleX(0); + } + + 100% { + opacity: 1; + transform: scaleX(1); + } +} + +/* Out */ + +@-webkit-keyframes slideOutY { + 0% { + opacity: 1; + transform: scaleY(1); + } + + 100% { + opacity: 0; + transform: scaleY(0); + } +} + +@keyframes slideOutY { + 0% { + opacity: 1; + transform: scaleY(1); + } + + 100% { + opacity: 0; + transform: scaleY(0); + } +} + +@-webkit-keyframes slideOutX { + 0% { + opacity: 1; + transform: scaleX(1); + } + + 100% { + opacity: 0; + transform: scaleX(0); + } +} + +@keyframes slideOutX { + 0% { + opacity: 1; + transform: scaleX(1); + } + + 100% { + opacity: 0; + transform: scaleX(0); + } +} + +/*-------------- + Swing + ---------------*/ + +.transition.swing { + -webkit-animation-duration: 800ms; + animation-duration: 800ms; +} + +.transition[class*="swing down"].in { + -webkit-animation-name: swingInX; + animation-name: swingInX; + transform-origin: top center; +} + +.transition[class*="swing up"].in { + -webkit-animation-name: swingInX; + animation-name: swingInX; + transform-origin: bottom center; +} + +.transition[class*="swing left"].in { + -webkit-animation-name: swingInY; + animation-name: swingInY; + transform-origin: right center; +} + +.transition[class*="swing right"].in { + -webkit-animation-name: swingInY; + animation-name: swingInY; + transform-origin: left center; +} + +.transition.swing.out, +.transition[class*="swing down"].out { + -webkit-animation-name: swingOutX; + animation-name: swingOutX; + transform-origin: top center; +} + +.transition[class*="swing up"].out { + -webkit-animation-name: swingOutX; + animation-name: swingOutX; + transform-origin: bottom center; +} + +.transition[class*="swing left"].out { + -webkit-animation-name: swingOutY; + animation-name: swingOutY; + transform-origin: right center; +} + +.transition[class*="swing right"].out { + -webkit-animation-name: swingOutY; + animation-name: swingOutY; + transform-origin: left center; +} + +/* In */ + +@-webkit-keyframes swingInX { + 0% { + transform: perspective(1000px) rotateX(90deg); + opacity: 0; + } + + 40% { + transform: perspective(1000px) rotateX(-30deg); + opacity: 1; + } + + 60% { + transform: perspective(1000px) rotateX(15deg); + } + + 80% { + transform: perspective(1000px) rotateX(-7.5deg); + } + + 100% { + transform: perspective(1000px) rotateX(0deg); + } +} + +@keyframes swingInX { + 0% { + transform: perspective(1000px) rotateX(90deg); + opacity: 0; + } + + 40% { + transform: perspective(1000px) rotateX(-30deg); + opacity: 1; + } + + 60% { + transform: perspective(1000px) rotateX(15deg); + } + + 80% { + transform: perspective(1000px) rotateX(-7.5deg); + } + + 100% { + transform: perspective(1000px) rotateX(0deg); + } +} + +@-webkit-keyframes swingInY { + 0% { + transform: perspective(1000px) rotateY(-90deg); + opacity: 0; + } + + 40% { + transform: perspective(1000px) rotateY(30deg); + opacity: 1; + } + + 60% { + transform: perspective(1000px) rotateY(-17.5deg); + } + + 80% { + transform: perspective(1000px) rotateY(7.5deg); + } + + 100% { + transform: perspective(1000px) rotateY(0deg); + } +} + +@keyframes swingInY { + 0% { + transform: perspective(1000px) rotateY(-90deg); + opacity: 0; + } + + 40% { + transform: perspective(1000px) rotateY(30deg); + opacity: 1; + } + + 60% { + transform: perspective(1000px) rotateY(-17.5deg); + } + + 80% { + transform: perspective(1000px) rotateY(7.5deg); + } + + 100% { + transform: perspective(1000px) rotateY(0deg); + } +} + +/* Out */ + +@-webkit-keyframes swingOutX { + 0% { + transform: perspective(1000px) rotateX(0deg); + } + + 40% { + transform: perspective(1000px) rotateX(-7.5deg); + } + + 60% { + transform: perspective(1000px) rotateX(17.5deg); + } + + 80% { + transform: perspective(1000px) rotateX(-30deg); + opacity: 1; + } + + 100% { + transform: perspective(1000px) rotateX(90deg); + opacity: 0; + } +} + +@keyframes swingOutX { + 0% { + transform: perspective(1000px) rotateX(0deg); + } + + 40% { + transform: perspective(1000px) rotateX(-7.5deg); + } + + 60% { + transform: perspective(1000px) rotateX(17.5deg); + } + + 80% { + transform: perspective(1000px) rotateX(-30deg); + opacity: 1; + } + + 100% { + transform: perspective(1000px) rotateX(90deg); + opacity: 0; + } +} + +@-webkit-keyframes swingOutY { + 0% { + transform: perspective(1000px) rotateY(0deg); + } + + 40% { + transform: perspective(1000px) rotateY(7.5deg); + } + + 60% { + transform: perspective(1000px) rotateY(-10deg); + } + + 80% { + transform: perspective(1000px) rotateY(30deg); + opacity: 1; + } + + 100% { + transform: perspective(1000px) rotateY(-90deg); + opacity: 0; + } +} + +@keyframes swingOutY { + 0% { + transform: perspective(1000px) rotateY(0deg); + } + + 40% { + transform: perspective(1000px) rotateY(7.5deg); + } + + 60% { + transform: perspective(1000px) rotateY(-10deg); + } + + 80% { + transform: perspective(1000px) rotateY(30deg); + opacity: 1; + } + + 100% { + transform: perspective(1000px) rotateY(-90deg); + opacity: 0; + } +} + +/*-------------- + Zoom + ---------------*/ + +.transition.zoom.in { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} + +.transition.zoom.out { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} + +@-webkit-keyframes zoomIn { + 0% { + opacity: 1; + transform: scale(0); + } + + 100% { + opacity: 1; + transform: scale(1); + } +} + +@keyframes zoomIn { + 0% { + opacity: 1; + transform: scale(0); + } + + 100% { + opacity: 1; + transform: scale(1); + } +} + +@-webkit-keyframes zoomOut { + 0% { + opacity: 1; + transform: scale(1); + } + + 100% { + opacity: 1; + transform: scale(0); + } +} + +@keyframes zoomOut { + 0% { + opacity: 1; + transform: scale(1); + } + + 100% { + opacity: 1; + transform: scale(0); + } +} + +/******************************* + Static Animations +*******************************/ + +/*-------------- + Emphasis +---------------*/ + +.flash.transition { + -webkit-animation-duration: 750ms; + animation-duration: 750ms; + -webkit-animation-name: flash; + animation-name: flash; +} + +.shake.transition { + -webkit-animation-duration: 750ms; + animation-duration: 750ms; + -webkit-animation-name: shake; + animation-name: shake; +} + +.bounce.transition { + -webkit-animation-duration: 750ms; + animation-duration: 750ms; + -webkit-animation-name: bounce; + animation-name: bounce; +} + +.tada.transition { + -webkit-animation-duration: 750ms; + animation-duration: 750ms; + -webkit-animation-name: tada; + animation-name: tada; +} + +.pulse.transition { + -webkit-animation-duration: 500ms; + animation-duration: 500ms; + -webkit-animation-name: pulse; + animation-name: pulse; +} + +.jiggle.transition { + -webkit-animation-duration: 750ms; + animation-duration: 750ms; + -webkit-animation-name: jiggle; + animation-name: jiggle; +} + +.transition.glow { + -webkit-animation-duration: 2000ms; + animation-duration: 2000ms; + -webkit-animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1); + animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1); +} + +.transition.glow { + -webkit-animation-name: glow; + animation-name: glow; +} + +/* Flash */ + +@-webkit-keyframes flash { + 0%, 50%, 100% { + opacity: 1; + } + + 25%, 75% { + opacity: 0; + } +} + +@keyframes flash { + 0%, 50%, 100% { + opacity: 1; + } + + 25%, 75% { + opacity: 0; + } +} + +/* Shake */ + +@-webkit-keyframes shake { + 0%, 100% { + transform: translateX(0); + } + + 10%, 30%, 50%, 70%, 90% { + transform: translateX(-10px); + } + + 20%, 40%, 60%, 80% { + transform: translateX(10px); + } +} + +@keyframes shake { + 0%, 100% { + transform: translateX(0); + } + + 10%, 30%, 50%, 70%, 90% { + transform: translateX(-10px); + } + + 20%, 40%, 60%, 80% { + transform: translateX(10px); + } +} + +/* Bounce */ + +@-webkit-keyframes bounce { + 0%, 20%, 50%, 80%, 100% { + transform: translateY(0); + } + + 40% { + transform: translateY(-30px); + } + + 60% { + transform: translateY(-15px); + } +} + +@keyframes bounce { + 0%, 20%, 50%, 80%, 100% { + transform: translateY(0); + } + + 40% { + transform: translateY(-30px); + } + + 60% { + transform: translateY(-15px); + } +} + +/* Tada */ + +@-webkit-keyframes tada { + 0% { + transform: scale(1); + } + + 10%, 20% { + transform: scale(0.9) rotate(-3deg); + } + + 30%, 50%, 70%, 90% { + transform: scale(1.1) rotate(3deg); + } + + 40%, 60%, 80% { + transform: scale(1.1) rotate(-3deg); + } + + 100% { + transform: scale(1) rotate(0); + } +} + +@keyframes tada { + 0% { + transform: scale(1); + } + + 10%, 20% { + transform: scale(0.9) rotate(-3deg); + } + + 30%, 50%, 70%, 90% { + transform: scale(1.1) rotate(3deg); + } + + 40%, 60%, 80% { + transform: scale(1.1) rotate(-3deg); + } + + 100% { + transform: scale(1) rotate(0); + } +} + +/* Pulse */ + +@-webkit-keyframes pulse { + 0% { + transform: scale(1); + opacity: 1; + } + + 50% { + transform: scale(0.9); + opacity: 0.7; + } + + 100% { + transform: scale(1); + opacity: 1; + } +} + +@keyframes pulse { + 0% { + transform: scale(1); + opacity: 1; + } + + 50% { + transform: scale(0.9); + opacity: 0.7; + } + + 100% { + transform: scale(1); + opacity: 1; + } +} + +/* Jiggle */ + +@-webkit-keyframes jiggle { + 0% { + transform: scale3d(1, 1, 1); + } + + 30% { + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + transform: scale3d(0.95, 1.05, 1); + } + + 75% { + transform: scale3d(1.05, 0.95, 1); + } + + 100% { + transform: scale3d(1, 1, 1); + } +} + +@keyframes jiggle { + 0% { + transform: scale3d(1, 1, 1); + } + + 30% { + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + transform: scale3d(0.95, 1.05, 1); + } + + 75% { + transform: scale3d(1.05, 0.95, 1); + } + + 100% { + transform: scale3d(1, 1, 1); + } +} + +/* Glow */ + +@-webkit-keyframes glow { + 0% { + background-color: #FCFCFD; + } + + 30% { + background-color: #FFF6CD; + } + + 100% { + background-color: #FCFCFD; + } +} + +@keyframes glow { + 0% { + background-color: #FCFCFD; + } + + 30% { + background-color: #FFF6CD; + } + + 100% { + background-color: #FCFCFD; + } +} + +/******************************* + Site Overrides +*******************************/
\ No newline at end of file diff --git a/web_src/fomantic/build/semantic.js b/web_src/fomantic/build/semantic.js new file mode 100644 index 0000000000..09460c46d5 --- /dev/null +++ b/web_src/fomantic/build/semantic.js @@ -0,0 +1,18707 @@ + /* + * # Fomantic UI - 2.8.7 + * https://github.com/fomantic/Fomantic-UI + * http://fomantic-ui.com/ + * + * Copyright 2014 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ +/*! + * # Fomantic-UI - Accordion + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +$.isFunction = $.isFunction || function(obj) { + return typeof obj === "function" && typeof obj.nodeType !== "number"; +}; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.accordion = function(parameters) { + var + $allModules = $(this), + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + returnedValue + ; + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.accordion.settings, parameters) + : $.extend({}, $.fn.accordion.settings), + + className = settings.className, + namespace = settings.namespace, + selector = settings.selector, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + moduleSelector = $allModules.selector || '', + + $module = $(this), + $title = $module.find(selector.title), + $content = $module.find(selector.content), + + element = this, + instance = $module.data(moduleNamespace), + observer, + module + ; + + module = { + + initialize: function() { + module.debug('Initializing', $module); + module.bind.events(); + if(settings.observeChanges) { + module.observeChanges(); + } + module.instantiate(); + }, + + instantiate: function() { + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.debug('Destroying previous instance', $module); + $module + .off(eventNamespace) + .removeData(moduleNamespace) + ; + }, + + refresh: function() { + $title = $module.find(selector.title); + $content = $module.find(selector.content); + }, + + observeChanges: function() { + if('MutationObserver' in window) { + observer = new MutationObserver(function(mutations) { + module.debug('DOM tree modified, updating selector cache'); + module.refresh(); + }); + observer.observe(element, { + childList : true, + subtree : true + }); + module.debug('Setting up mutation observer', observer); + } + }, + + bind: { + events: function() { + module.debug('Binding delegated events'); + $module + .on(settings.on + eventNamespace, selector.trigger, module.event.click) + ; + } + }, + + event: { + click: function() { + module.toggle.call(this); + } + }, + + toggle: function(query) { + var + $activeTitle = (query !== undefined) + ? (typeof query === 'number') + ? $title.eq(query) + : $(query).closest(selector.title) + : $(this).closest(selector.title), + $activeContent = $activeTitle.next($content), + isAnimating = $activeContent.hasClass(className.animating), + isActive = $activeContent.hasClass(className.active), + isOpen = (isActive && !isAnimating), + isOpening = (!isActive && isAnimating) + ; + module.debug('Toggling visibility of content', $activeTitle); + if(isOpen || isOpening) { + if(settings.collapsible) { + module.close.call($activeTitle); + } + else { + module.debug('Cannot close accordion content collapsing is disabled'); + } + } + else { + module.open.call($activeTitle); + } + }, + + open: function(query) { + var + $activeTitle = (query !== undefined) + ? (typeof query === 'number') + ? $title.eq(query) + : $(query).closest(selector.title) + : $(this).closest(selector.title), + $activeContent = $activeTitle.next($content), + isAnimating = $activeContent.hasClass(className.animating), + isActive = $activeContent.hasClass(className.active), + isOpen = (isActive || isAnimating) + ; + if(isOpen) { + module.debug('Accordion already open, skipping', $activeContent); + return; + } + module.debug('Opening accordion content', $activeTitle); + settings.onOpening.call($activeContent); + settings.onChanging.call($activeContent); + if(settings.exclusive) { + module.closeOthers.call($activeTitle); + } + $activeTitle + .addClass(className.active) + ; + $activeContent + .stop(true, true) + .addClass(className.animating) + ; + if(settings.animateChildren) { + if($.fn.transition !== undefined && $module.transition('is supported')) { + $activeContent + .children() + .transition({ + animation : 'fade in', + queue : false, + useFailSafe : true, + debug : settings.debug, + verbose : settings.verbose, + duration : settings.duration, + skipInlineHidden : true, + onComplete: function() { + $activeContent.children().removeClass(className.transition); + } + }) + ; + } + else { + $activeContent + .children() + .stop(true, true) + .animate({ + opacity: 1 + }, settings.duration, module.resetOpacity) + ; + } + } + $activeContent + .slideDown(settings.duration, settings.easing, function() { + $activeContent + .removeClass(className.animating) + .addClass(className.active) + ; + module.reset.display.call(this); + settings.onOpen.call(this); + settings.onChange.call(this); + }) + ; + }, + + close: function(query) { + var + $activeTitle = (query !== undefined) + ? (typeof query === 'number') + ? $title.eq(query) + : $(query).closest(selector.title) + : $(this).closest(selector.title), + $activeContent = $activeTitle.next($content), + isAnimating = $activeContent.hasClass(className.animating), + isActive = $activeContent.hasClass(className.active), + isOpening = (!isActive && isAnimating), + isClosing = (isActive && isAnimating) + ; + if((isActive || isOpening) && !isClosing) { + module.debug('Closing accordion content', $activeContent); + settings.onClosing.call($activeContent); + settings.onChanging.call($activeContent); + $activeTitle + .removeClass(className.active) + ; + $activeContent + .stop(true, true) + .addClass(className.animating) + ; + if(settings.animateChildren) { + if($.fn.transition !== undefined && $module.transition('is supported')) { + $activeContent + .children() + .transition({ + animation : 'fade out', + queue : false, + useFailSafe : true, + debug : settings.debug, + verbose : settings.verbose, + duration : settings.duration, + skipInlineHidden : true + }) + ; + } + else { + $activeContent + .children() + .stop(true, true) + .animate({ + opacity: 0 + }, settings.duration, module.resetOpacity) + ; + } + } + $activeContent + .slideUp(settings.duration, settings.easing, function() { + $activeContent + .removeClass(className.animating) + .removeClass(className.active) + ; + module.reset.display.call(this); + settings.onClose.call(this); + settings.onChange.call(this); + }) + ; + } + }, + + closeOthers: function(index) { + var + $activeTitle = (index !== undefined) + ? $title.eq(index) + : $(this).closest(selector.title), + $parentTitles = $activeTitle.parents(selector.content).prev(selector.title), + $activeAccordion = $activeTitle.closest(selector.accordion), + activeSelector = selector.title + '.' + className.active + ':visible', + activeContent = selector.content + '.' + className.active + ':visible', + $openTitles, + $nestedTitles, + $openContents + ; + if(settings.closeNested) { + $openTitles = $activeAccordion.find(activeSelector).not($parentTitles); + $openContents = $openTitles.next($content); + } + else { + $openTitles = $activeAccordion.find(activeSelector).not($parentTitles); + $nestedTitles = $activeAccordion.find(activeContent).find(activeSelector).not($parentTitles); + $openTitles = $openTitles.not($nestedTitles); + $openContents = $openTitles.next($content); + } + if( ($openTitles.length > 0) ) { + module.debug('Exclusive enabled, closing other content', $openTitles); + $openTitles + .removeClass(className.active) + ; + $openContents + .removeClass(className.animating) + .stop(true, true) + ; + if(settings.animateChildren) { + if($.fn.transition !== undefined && $module.transition('is supported')) { + $openContents + .children() + .transition({ + animation : 'fade out', + useFailSafe : true, + debug : settings.debug, + verbose : settings.verbose, + duration : settings.duration, + skipInlineHidden : true + }) + ; + } + else { + $openContents + .children() + .stop(true, true) + .animate({ + opacity: 0 + }, settings.duration, module.resetOpacity) + ; + } + } + $openContents + .slideUp(settings.duration , settings.easing, function() { + $(this).removeClass(className.active); + module.reset.display.call(this); + }) + ; + } + }, + + reset: { + + display: function() { + module.verbose('Removing inline display from element', this); + $(this).css('display', ''); + if( $(this).attr('style') === '') { + $(this) + .attr('style', '') + .removeAttr('style') + ; + } + }, + + opacity: function() { + module.verbose('Removing inline opacity from element', this); + $(this).css('opacity', ''); + if( $(this).attr('style') === '') { + $(this) + .attr('style', '') + .removeAttr('style') + ; + } + }, + + }, + + setting: function(name, value) { + module.debug('Changing setting', name, value); + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + if($.isPlainObject(settings[name])) { + $.extend(true, settings[name], value); + } + else { + settings[name] = value; + } + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + module.debug('Changing internal', name, value); + if(value !== undefined) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else { + module[name] = value; + } + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if(Array.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + instance.invoke('destroy'); + } + module.initialize(); + } + }) + ; + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.accordion.settings = { + + name : 'Accordion', + namespace : 'accordion', + + silent : false, + debug : false, + verbose : false, + performance : true, + + on : 'click', // event on title that opens accordion + + observeChanges : true, // whether accordion should automatically refresh on DOM insertion + + exclusive : true, // whether a single accordion content panel should be open at once + collapsible : true, // whether accordion content can be closed + closeNested : false, // whether nested content should be closed when a panel is closed + animateChildren : true, // whether children opacity should be animated + + duration : 350, // duration of animation + easing : 'easeOutQuad', // easing equation for animation + + onOpening : function(){}, // callback before open animation + onClosing : function(){}, // callback before closing animation + onChanging : function(){}, // callback before closing or opening animation + + onOpen : function(){}, // callback after open animation + onClose : function(){}, // callback after closing animation + onChange : function(){}, // callback after closing or opening animation + + error: { + method : 'The method you called is not defined' + }, + + className : { + active : 'active', + animating : 'animating', + transition: 'transition' + }, + + selector : { + accordion : '.accordion', + title : '.title', + trigger : '.title', + content : '.content' + } + +}; + +// Adds easing +$.extend( $.easing, { + easeOutQuad: function (x, t, b, c, d) { + return -c *(t/=d)*(t-2) + b; + } +}); + +})( jQuery, window, document ); + + +/*! + * # Fomantic-UI - API + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +$.isWindow = $.isWindow || function(obj) { + return obj != null && obj === obj.window; +}; + + window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.api = $.fn.api = function(parameters) { + + var + // use window context if none specified + $allModules = $.isFunction(this) + ? $(window) + : $(this), + moduleSelector = $allModules.selector || '', + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + returnedValue + ; + + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.api.settings, parameters) + : $.extend({}, $.fn.api.settings), + + // internal aliases + namespace = settings.namespace, + metadata = settings.metadata, + selector = settings.selector, + error = settings.error, + className = settings.className, + + // define namespaces for modules + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + // element that creates request + $module = $(this), + $form = $module.closest(selector.form), + + // context used for state + $context = (settings.stateContext) + ? $(settings.stateContext) + : $module, + + // request details + ajaxSettings, + requestSettings, + url, + data, + requestStartTime, + + // standard module + element = this, + context = $context[0], + instance = $module.data(moduleNamespace), + module + ; + + module = { + + initialize: function() { + if(!methodInvoked) { + module.bind.events(); + } + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, instance) + ; + }, + + destroy: function() { + module.verbose('Destroying previous module for', element); + $module + .removeData(moduleNamespace) + .off(eventNamespace) + ; + }, + + bind: { + events: function() { + var + triggerEvent = module.get.event() + ; + if( triggerEvent ) { + module.verbose('Attaching API events to element', triggerEvent); + $module + .on(triggerEvent + eventNamespace, module.event.trigger) + ; + } + else if(settings.on == 'now') { + module.debug('Querying API endpoint immediately'); + module.query(); + } + } + }, + + decode: { + json: function(response) { + if(response !== undefined && typeof response == 'string') { + try { + response = JSON.parse(response); + } + catch(e) { + // isnt json string + } + } + return response; + } + }, + + read: { + cachedResponse: function(url) { + var + response + ; + if(window.Storage === undefined) { + module.error(error.noStorage); + return; + } + response = sessionStorage.getItem(url); + module.debug('Using cached response', url, response); + response = module.decode.json(response); + return response; + } + }, + write: { + cachedResponse: function(url, response) { + if(response && response === '') { + module.debug('Response empty, not caching', response); + return; + } + if(window.Storage === undefined) { + module.error(error.noStorage); + return; + } + if( $.isPlainObject(response) ) { + response = JSON.stringify(response); + } + sessionStorage.setItem(url, response); + module.verbose('Storing cached response for url', url, response); + } + }, + + query: function() { + + if(module.is.disabled()) { + module.debug('Element is disabled API request aborted'); + return; + } + + if(module.is.loading()) { + if(settings.interruptRequests) { + module.debug('Interrupting previous request'); + module.abort(); + } + else { + module.debug('Cancelling request, previous request is still pending'); + return; + } + } + + // pass element metadata to url (value, text) + if(settings.defaultData) { + $.extend(true, settings.urlData, module.get.defaultData()); + } + + // Add form content + if(settings.serializeForm) { + settings.data = module.add.formData(settings.data); + } + + // call beforesend and get any settings changes + requestSettings = module.get.settings(); + + // check if before send cancelled request + if(requestSettings === false) { + module.cancelled = true; + module.error(error.beforeSend); + return; + } + else { + module.cancelled = false; + } + + // get url + url = module.get.templatedURL(); + + if(!url && !module.is.mocked()) { + module.error(error.missingURL); + return; + } + + // replace variables + url = module.add.urlData( url ); + // missing url parameters + if( !url && !module.is.mocked()) { + return; + } + + requestSettings.url = settings.base + url; + + // look for jQuery ajax parameters in settings + ajaxSettings = $.extend(true, {}, settings, { + type : settings.method || settings.type, + data : data, + url : settings.base + url, + beforeSend : settings.beforeXHR, + success : function() {}, + failure : function() {}, + complete : function() {} + }); + + module.debug('Querying URL', ajaxSettings.url); + module.verbose('Using AJAX settings', ajaxSettings); + if(settings.cache === 'local' && module.read.cachedResponse(url)) { + module.debug('Response returned from local cache'); + module.request = module.create.request(); + module.request.resolveWith(context, [ module.read.cachedResponse(url) ]); + return; + } + + if( !settings.throttle ) { + module.debug('Sending request', data, ajaxSettings.method); + module.send.request(); + } + else { + if(!settings.throttleFirstRequest && !module.timer) { + module.debug('Sending request', data, ajaxSettings.method); + module.send.request(); + module.timer = setTimeout(function(){}, settings.throttle); + } + else { + module.debug('Throttling request', settings.throttle); + clearTimeout(module.timer); + module.timer = setTimeout(function() { + if(module.timer) { + delete module.timer; + } + module.debug('Sending throttled request', data, ajaxSettings.method); + module.send.request(); + }, settings.throttle); + } + } + + }, + + should: { + removeError: function() { + return ( settings.hideError === true || (settings.hideError === 'auto' && !module.is.form()) ); + } + }, + + is: { + disabled: function() { + return ($module.filter(selector.disabled).length > 0); + }, + expectingJSON: function() { + return settings.dataType === 'json' || settings.dataType === 'jsonp'; + }, + form: function() { + return $module.is('form') || $context.is('form'); + }, + mocked: function() { + return (settings.mockResponse || settings.mockResponseAsync || settings.response || settings.responseAsync); + }, + input: function() { + return $module.is('input'); + }, + loading: function() { + return (module.request) + ? (module.request.state() == 'pending') + : false + ; + }, + abortedRequest: function(xhr) { + if(xhr && xhr.readyState !== undefined && xhr.readyState === 0) { + module.verbose('XHR request determined to be aborted'); + return true; + } + else { + module.verbose('XHR request was not aborted'); + return false; + } + }, + validResponse: function(response) { + if( (!module.is.expectingJSON()) || !$.isFunction(settings.successTest) ) { + module.verbose('Response is not JSON, skipping validation', settings.successTest, response); + return true; + } + module.debug('Checking JSON returned success', settings.successTest, response); + if( settings.successTest(response) ) { + module.debug('Response passed success test', response); + return true; + } + else { + module.debug('Response failed success test', response); + return false; + } + } + }, + + was: { + cancelled: function() { + return (module.cancelled || false); + }, + succesful: function() { + module.verbose('This behavior will be deleted due to typo. Use "was successful" instead.'); + return module.was.successful(); + }, + successful: function() { + return (module.request && module.request.state() == 'resolved'); + }, + failure: function() { + return (module.request && module.request.state() == 'rejected'); + }, + complete: function() { + return (module.request && (module.request.state() == 'resolved' || module.request.state() == 'rejected') ); + } + }, + + add: { + urlData: function(url, urlData) { + var + requiredVariables, + optionalVariables + ; + if(url) { + requiredVariables = url.match(settings.regExp.required); + optionalVariables = url.match(settings.regExp.optional); + urlData = urlData || settings.urlData; + if(requiredVariables) { + module.debug('Looking for required URL variables', requiredVariables); + $.each(requiredVariables, function(index, templatedString) { + var + // allow legacy {$var} style + variable = (templatedString.indexOf('$') !== -1) + ? templatedString.substr(2, templatedString.length - 3) + : templatedString.substr(1, templatedString.length - 2), + value = ($.isPlainObject(urlData) && urlData[variable] !== undefined) + ? urlData[variable] + : ($module.data(variable) !== undefined) + ? $module.data(variable) + : ($context.data(variable) !== undefined) + ? $context.data(variable) + : urlData[variable] + ; + // remove value + if(value === undefined) { + module.error(error.requiredParameter, variable, url); + url = false; + return false; + } + else { + module.verbose('Found required variable', variable, value); + value = (settings.encodeParameters) + ? module.get.urlEncodedValue(value) + : value + ; + url = url.replace(templatedString, value); + } + }); + } + if(optionalVariables) { + module.debug('Looking for optional URL variables', requiredVariables); + $.each(optionalVariables, function(index, templatedString) { + var + // allow legacy {/$var} style + variable = (templatedString.indexOf('$') !== -1) + ? templatedString.substr(3, templatedString.length - 4) + : templatedString.substr(2, templatedString.length - 3), + value = ($.isPlainObject(urlData) && urlData[variable] !== undefined) + ? urlData[variable] + : ($module.data(variable) !== undefined) + ? $module.data(variable) + : ($context.data(variable) !== undefined) + ? $context.data(variable) + : urlData[variable] + ; + // optional replacement + if(value !== undefined) { + module.verbose('Optional variable Found', variable, value); + url = url.replace(templatedString, value); + } + else { + module.verbose('Optional variable not found', variable); + // remove preceding slash if set + if(url.indexOf('/' + templatedString) !== -1) { + url = url.replace('/' + templatedString, ''); + } + else { + url = url.replace(templatedString, ''); + } + } + }); + } + } + return url; + }, + formData: function(data) { + var + canSerialize = ($.fn.serializeObject !== undefined), + formData = (canSerialize) + ? $form.serializeObject() + : $form.serialize(), + hasOtherData + ; + data = data || settings.data; + hasOtherData = $.isPlainObject(data); + + if(hasOtherData) { + if(canSerialize) { + module.debug('Extending existing data with form data', data, formData); + data = $.extend(true, {}, data, formData); + } + else { + module.error(error.missingSerialize); + module.debug('Cant extend data. Replacing data with form data', data, formData); + data = formData; + } + } + else { + module.debug('Adding form data', formData); + data = formData; + } + return data; + } + }, + + send: { + request: function() { + module.set.loading(); + module.request = module.create.request(); + if( module.is.mocked() ) { + module.mockedXHR = module.create.mockedXHR(); + } + else { + module.xhr = module.create.xhr(); + } + settings.onRequest.call(context, module.request, module.xhr); + } + }, + + event: { + trigger: function(event) { + module.query(); + if(event.type == 'submit' || event.type == 'click') { + event.preventDefault(); + } + }, + xhr: { + always: function() { + // nothing special + }, + done: function(response, textStatus, xhr) { + var + context = this, + elapsedTime = (new Date().getTime() - requestStartTime), + timeLeft = (settings.loadingDuration - elapsedTime), + translatedResponse = ( $.isFunction(settings.onResponse) ) + ? module.is.expectingJSON() && !settings.rawResponse + ? settings.onResponse.call(context, $.extend(true, {}, response)) + : settings.onResponse.call(context, response) + : false + ; + timeLeft = (timeLeft > 0) + ? timeLeft + : 0 + ; + if(translatedResponse) { + module.debug('Modified API response in onResponse callback', settings.onResponse, translatedResponse, response); + response = translatedResponse; + } + if(timeLeft > 0) { + module.debug('Response completed early delaying state change by', timeLeft); + } + setTimeout(function() { + if( module.is.validResponse(response) ) { + module.request.resolveWith(context, [response, xhr]); + } + else { + module.request.rejectWith(context, [xhr, 'invalid']); + } + }, timeLeft); + }, + fail: function(xhr, status, httpMessage) { + var + context = this, + elapsedTime = (new Date().getTime() - requestStartTime), + timeLeft = (settings.loadingDuration - elapsedTime) + ; + timeLeft = (timeLeft > 0) + ? timeLeft + : 0 + ; + if(timeLeft > 0) { + module.debug('Response completed early delaying state change by', timeLeft); + } + setTimeout(function() { + if( module.is.abortedRequest(xhr) ) { + module.request.rejectWith(context, [xhr, 'aborted', httpMessage]); + } + else { + module.request.rejectWith(context, [xhr, 'error', status, httpMessage]); + } + }, timeLeft); + } + }, + request: { + done: function(response, xhr) { + module.debug('Successful API Response', response); + if(settings.cache === 'local' && url) { + module.write.cachedResponse(url, response); + module.debug('Saving server response locally', module.cache); + } + settings.onSuccess.call(context, response, $module, xhr); + }, + complete: function(firstParameter, secondParameter) { + var + xhr, + response + ; + // have to guess callback parameters based on request success + if( module.was.successful() ) { + response = firstParameter; + xhr = secondParameter; + } + else { + xhr = firstParameter; + response = module.get.responseFromXHR(xhr); + } + module.remove.loading(); + settings.onComplete.call(context, response, $module, xhr); + }, + fail: function(xhr, status, httpMessage) { + var + // pull response from xhr if available + response = module.get.responseFromXHR(xhr), + errorMessage = module.get.errorFromRequest(response, status, httpMessage) + ; + if(status == 'aborted') { + module.debug('XHR Aborted (Most likely caused by page navigation or CORS Policy)', status, httpMessage); + settings.onAbort.call(context, status, $module, xhr); + return true; + } + else if(status == 'invalid') { + module.debug('JSON did not pass success test. A server-side error has most likely occurred', response); + } + else if(status == 'error') { + if(xhr !== undefined) { + module.debug('XHR produced a server error', status, httpMessage); + // make sure we have an error to display to console + if( (xhr.status < 200 || xhr.status >= 300) && httpMessage !== undefined && httpMessage !== '') { + module.error(error.statusMessage + httpMessage, ajaxSettings.url); + } + settings.onError.call(context, errorMessage, $module, xhr); + } + } + + if(settings.errorDuration && status !== 'aborted') { + module.debug('Adding error state'); + module.set.error(); + if( module.should.removeError() ) { + setTimeout(module.remove.error, settings.errorDuration); + } + } + module.debug('API Request failed', errorMessage, xhr); + settings.onFailure.call(context, response, $module, xhr); + } + } + }, + + create: { + + request: function() { + // api request promise + return $.Deferred() + .always(module.event.request.complete) + .done(module.event.request.done) + .fail(module.event.request.fail) + ; + }, + + mockedXHR: function () { + var + // xhr does not simulate these properties of xhr but must return them + textStatus = false, + status = false, + httpMessage = false, + responder = settings.mockResponse || settings.response, + asyncResponder = settings.mockResponseAsync || settings.responseAsync, + asyncCallback, + response, + mockedXHR + ; + + mockedXHR = $.Deferred() + .always(module.event.xhr.complete) + .done(module.event.xhr.done) + .fail(module.event.xhr.fail) + ; + + if(responder) { + if( $.isFunction(responder) ) { + module.debug('Using specified synchronous callback', responder); + response = responder.call(context, requestSettings); + } + else { + module.debug('Using settings specified response', responder); + response = responder; + } + // simulating response + mockedXHR.resolveWith(context, [ response, textStatus, { responseText: response }]); + } + else if( $.isFunction(asyncResponder) ) { + asyncCallback = function(response) { + module.debug('Async callback returned response', response); + + if(response) { + mockedXHR.resolveWith(context, [ response, textStatus, { responseText: response }]); + } + else { + mockedXHR.rejectWith(context, [{ responseText: response }, status, httpMessage]); + } + }; + module.debug('Using specified async response callback', asyncResponder); + asyncResponder.call(context, requestSettings, asyncCallback); + } + return mockedXHR; + }, + + xhr: function() { + var + xhr + ; + // ajax request promise + xhr = $.ajax(ajaxSettings) + .always(module.event.xhr.always) + .done(module.event.xhr.done) + .fail(module.event.xhr.fail) + ; + module.verbose('Created server request', xhr, ajaxSettings); + return xhr; + } + }, + + set: { + error: function() { + module.verbose('Adding error state to element', $context); + $context.addClass(className.error); + }, + loading: function() { + module.verbose('Adding loading state to element', $context); + $context.addClass(className.loading); + requestStartTime = new Date().getTime(); + } + }, + + remove: { + error: function() { + module.verbose('Removing error state from element', $context); + $context.removeClass(className.error); + }, + loading: function() { + module.verbose('Removing loading state from element', $context); + $context.removeClass(className.loading); + } + }, + + get: { + responseFromXHR: function(xhr) { + return $.isPlainObject(xhr) + ? (module.is.expectingJSON()) + ? module.decode.json(xhr.responseText) + : xhr.responseText + : false + ; + }, + errorFromRequest: function(response, status, httpMessage) { + return ($.isPlainObject(response) && response.error !== undefined) + ? response.error // use json error message + : (settings.error[status] !== undefined) // use server error message + ? settings.error[status] + : httpMessage + ; + }, + request: function() { + return module.request || false; + }, + xhr: function() { + return module.xhr || false; + }, + settings: function() { + var + runSettings + ; + runSettings = settings.beforeSend.call($module, settings); + if(runSettings) { + if(runSettings.success !== undefined) { + module.debug('Legacy success callback detected', runSettings); + module.error(error.legacyParameters, runSettings.success); + runSettings.onSuccess = runSettings.success; + } + if(runSettings.failure !== undefined) { + module.debug('Legacy failure callback detected', runSettings); + module.error(error.legacyParameters, runSettings.failure); + runSettings.onFailure = runSettings.failure; + } + if(runSettings.complete !== undefined) { + module.debug('Legacy complete callback detected', runSettings); + module.error(error.legacyParameters, runSettings.complete); + runSettings.onComplete = runSettings.complete; + } + } + if(runSettings === undefined) { + module.error(error.noReturnedValue); + } + if(runSettings === false) { + return runSettings; + } + return (runSettings !== undefined) + ? $.extend(true, {}, runSettings) + : $.extend(true, {}, settings) + ; + }, + urlEncodedValue: function(value) { + var + decodedValue = window.decodeURIComponent(value), + encodedValue = window.encodeURIComponent(value), + alreadyEncoded = (decodedValue !== value) + ; + if(alreadyEncoded) { + module.debug('URL value is already encoded, avoiding double encoding', value); + return value; + } + module.verbose('Encoding value using encodeURIComponent', value, encodedValue); + return encodedValue; + }, + defaultData: function() { + var + data = {} + ; + if( !$.isWindow(element) ) { + if( module.is.input() ) { + data.value = $module.val(); + } + else if( module.is.form() ) { + + } + else { + data.text = $module.text(); + } + } + return data; + }, + event: function() { + if( $.isWindow(element) || settings.on == 'now' ) { + module.debug('API called without element, no events attached'); + return false; + } + else if(settings.on == 'auto') { + if( $module.is('input') ) { + return (element.oninput !== undefined) + ? 'input' + : (element.onpropertychange !== undefined) + ? 'propertychange' + : 'keyup' + ; + } + else if( $module.is('form') ) { + return 'submit'; + } + else { + return 'click'; + } + } + else { + return settings.on; + } + }, + templatedURL: function(action) { + action = action || $module.data(metadata.action) || settings.action || false; + url = $module.data(metadata.url) || settings.url || false; + if(url) { + module.debug('Using specified url', url); + return url; + } + if(action) { + module.debug('Looking up url for action', action, settings.api); + if(settings.api[action] === undefined && !module.is.mocked()) { + module.error(error.missingAction, settings.action, settings.api); + return; + } + url = settings.api[action]; + } + else if( module.is.form() ) { + url = $module.attr('action') || $context.attr('action') || false; + module.debug('No url or action specified, defaulting to form action', url); + } + return url; + } + }, + + abort: function() { + var + xhr = module.get.xhr() + ; + if( xhr && xhr.state() !== 'resolved') { + module.debug('Cancelling API request'); + xhr.abort(); + } + }, + + // reset state + reset: function() { + module.remove.error(); + module.remove.loading(); + }, + + setting: function(name, value) { + module.debug('Changing setting', name, value); + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + if($.isPlainObject(settings[name])) { + $.extend(true, settings[name], value); + } + else { + settings[name] = value; + } + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + //'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if(Array.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + instance.invoke('destroy'); + } + module.initialize(); + } + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.api.settings = { + + name : 'API', + namespace : 'api', + + debug : false, + verbose : false, + performance : true, + + // object containing all templates endpoints + api : {}, + + // whether to cache responses + cache : true, + + // whether new requests should abort previous requests + interruptRequests : true, + + // event binding + on : 'auto', + + // context for applying state classes + stateContext : false, + + // duration for loading state + loadingDuration : 0, + + // whether to hide errors after a period of time + hideError : 'auto', + + // duration for error state + errorDuration : 2000, + + // whether parameters should be encoded with encodeURIComponent + encodeParameters : true, + + // API action to use + action : false, + + // templated URL to use + url : false, + + // base URL to apply to all endpoints + base : '', + + // data that will + urlData : {}, + + // whether to add default data to url data + defaultData : true, + + // whether to serialize closest form + serializeForm : false, + + // how long to wait before request should occur + throttle : 0, + + // whether to throttle first request or only repeated + throttleFirstRequest : true, + + // standard ajax settings + method : 'get', + data : {}, + dataType : 'json', + + // mock response + mockResponse : false, + mockResponseAsync : false, + + // aliases for mock + response : false, + responseAsync : false, + +// whether onResponse should work with response value without force converting into an object + rawResponse : false, + + // callbacks before request + beforeSend : function(settings) { return settings; }, + beforeXHR : function(xhr) {}, + onRequest : function(promise, xhr) {}, + + // after request + onResponse : false, // function(response) { }, + + // response was successful, if JSON passed validation + onSuccess : function(response, $module) {}, + + // request finished without aborting + onComplete : function(response, $module) {}, + + // failed JSON success test + onFailure : function(response, $module) {}, + + // server error + onError : function(errorMessage, $module) {}, + + // request aborted + onAbort : function(errorMessage, $module) {}, + + successTest : false, + + // errors + error : { + beforeSend : 'The before send function has aborted the request', + error : 'There was an error with your request', + exitConditions : 'API Request Aborted. Exit conditions met', + JSONParse : 'JSON could not be parsed during error handling', + legacyParameters : 'You are using legacy API success callback names', + method : 'The method you called is not defined', + missingAction : 'API action used but no url was defined', + missingSerialize : 'jquery-serialize-object is required to add form data to an existing data object', + missingURL : 'No URL specified for api event', + noReturnedValue : 'The beforeSend callback must return a settings object, beforeSend ignored.', + noStorage : 'Caching responses locally requires session storage', + parseError : 'There was an error parsing your request', + requiredParameter : 'Missing a required URL parameter: ', + statusMessage : 'Server gave an error: ', + timeout : 'Your request timed out' + }, + + regExp : { + required : /\{\$*[A-z0-9]+\}/g, + optional : /\{\/\$*[A-z0-9]+\}/g, + }, + + className: { + loading : 'loading', + error : 'error' + }, + + selector: { + disabled : '.disabled', + form : 'form' + }, + + metadata: { + action : 'action', + url : 'url' + } +}; + + + +})( jQuery, window, document ); + +/*! + * # Fomantic-UI - Checkbox + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +$.isFunction = $.isFunction || function(obj) { + return typeof obj === "function" && typeof obj.nodeType !== "number"; +}; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.checkbox = function(parameters) { + var + $allModules = $(this), + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + + $allModules + .each(function() { + var + settings = $.extend(true, {}, $.fn.checkbox.settings, parameters), + + className = settings.className, + namespace = settings.namespace, + selector = settings.selector, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + $module = $(this), + $label = $(this).children(selector.label), + $input = $(this).children(selector.input), + input = $input[0], + + initialLoad = false, + shortcutPressed = false, + instance = $module.data(moduleNamespace), + + observer, + element = this, + module + ; + + module = { + + initialize: function() { + module.verbose('Initializing checkbox', settings); + + module.create.label(); + module.bind.events(); + + module.set.tabbable(); + module.hide.input(); + + module.observeChanges(); + module.instantiate(); + module.setup(); + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.verbose('Destroying module'); + module.unbind.events(); + module.show.input(); + $module.removeData(moduleNamespace); + }, + + fix: { + reference: function() { + if( $module.is(selector.input) ) { + module.debug('Behavior called on <input> adjusting invoked element'); + $module = $module.closest(selector.checkbox); + module.refresh(); + } + } + }, + + setup: function() { + module.set.initialLoad(); + if( module.is.indeterminate() ) { + module.debug('Initial value is indeterminate'); + module.indeterminate(); + } + else if( module.is.checked() ) { + module.debug('Initial value is checked'); + module.check(); + } + else { + module.debug('Initial value is unchecked'); + module.uncheck(); + } + module.remove.initialLoad(); + }, + + refresh: function() { + $label = $module.children(selector.label); + $input = $module.children(selector.input); + input = $input[0]; + }, + + hide: { + input: function() { + module.verbose('Modifying <input> z-index to be unselectable'); + $input.addClass(className.hidden); + } + }, + show: { + input: function() { + module.verbose('Modifying <input> z-index to be selectable'); + $input.removeClass(className.hidden); + } + }, + + observeChanges: function() { + if('MutationObserver' in window) { + observer = new MutationObserver(function(mutations) { + module.debug('DOM tree modified, updating selector cache'); + module.refresh(); + }); + observer.observe(element, { + childList : true, + subtree : true + }); + module.debug('Setting up mutation observer', observer); + } + }, + + attachEvents: function(selector, event) { + var + $element = $(selector) + ; + event = $.isFunction(module[event]) + ? module[event] + : module.toggle + ; + if($element.length > 0) { + module.debug('Attaching checkbox events to element', selector, event); + $element + .on('click' + eventNamespace, event) + ; + } + else { + module.error(error.notFound); + } + }, + + preventDefaultOnInputTarget: function() { + if(typeof event !== 'undefined' && event !== null && $(event.target).is(selector.input)) { + module.verbose('Preventing default check action after manual check action'); + event.preventDefault(); + } + }, + + event: { + change: function(event) { + if( !module.should.ignoreCallbacks() ) { + settings.onChange.call(input); + } + }, + click: function(event) { + var + $target = $(event.target) + ; + if( $target.is(selector.input) ) { + module.verbose('Using default check action on initialized checkbox'); + return; + } + if( $target.is(selector.link) ) { + module.debug('Clicking link inside checkbox, skipping toggle'); + return; + } + module.toggle(); + $input.focus(); + event.preventDefault(); + }, + keydown: function(event) { + var + key = event.which, + keyCode = { + enter : 13, + space : 32, + escape : 27, + left : 37, + up : 38, + right : 39, + down : 40 + } + ; + + var r = module.get.radios(), + rIndex = r.index($module), + rLen = r.length, + checkIndex = false; + + if(key == keyCode.left || key == keyCode.up) { + checkIndex = (rIndex === 0 ? rLen : rIndex) - 1; + } else if(key == keyCode.right || key == keyCode.down) { + checkIndex = rIndex === rLen-1 ? 0 : rIndex+1; + } + + if (!module.should.ignoreCallbacks() && checkIndex !== false) { + if(settings.beforeUnchecked.apply(input)===false) { + module.verbose('Option not allowed to be unchecked, cancelling key navigation'); + return false; + } + if (settings.beforeChecked.apply($(r[checkIndex]).children(selector.input)[0])===false) { + module.verbose('Next option should not allow check, cancelling key navigation'); + return false; + } + } + + if(key == keyCode.escape) { + module.verbose('Escape key pressed blurring field'); + $input.blur(); + shortcutPressed = true; + } + else if(!event.ctrlKey && ( key == keyCode.space || (key == keyCode.enter && settings.enableEnterKey)) ) { + module.verbose('Enter/space key pressed, toggling checkbox'); + module.toggle(); + shortcutPressed = true; + } + else { + shortcutPressed = false; + } + }, + keyup: function(event) { + if(shortcutPressed) { + event.preventDefault(); + } + } + }, + + check: function() { + if( !module.should.allowCheck() ) { + return; + } + module.debug('Checking checkbox', $input); + module.set.checked(); + if( !module.should.ignoreCallbacks() ) { + settings.onChecked.call(input); + module.trigger.change(); + } + module.preventDefaultOnInputTarget(); + }, + + uncheck: function() { + if( !module.should.allowUncheck() ) { + return; + } + module.debug('Unchecking checkbox'); + module.set.unchecked(); + if( !module.should.ignoreCallbacks() ) { + settings.onUnchecked.call(input); + module.trigger.change(); + } + module.preventDefaultOnInputTarget(); + }, + + indeterminate: function() { + if( module.should.allowIndeterminate() ) { + module.debug('Checkbox is already indeterminate'); + return; + } + module.debug('Making checkbox indeterminate'); + module.set.indeterminate(); + if( !module.should.ignoreCallbacks() ) { + settings.onIndeterminate.call(input); + module.trigger.change(); + } + }, + + determinate: function() { + if( module.should.allowDeterminate() ) { + module.debug('Checkbox is already determinate'); + return; + } + module.debug('Making checkbox determinate'); + module.set.determinate(); + if( !module.should.ignoreCallbacks() ) { + settings.onDeterminate.call(input); + module.trigger.change(); + } + }, + + enable: function() { + if( module.is.enabled() ) { + module.debug('Checkbox is already enabled'); + return; + } + module.debug('Enabling checkbox'); + module.set.enabled(); + if( !module.should.ignoreCallbacks() ) { + settings.onEnable.call(input); + // preserve legacy callbacks + settings.onEnabled.call(input); + module.trigger.change(); + } + }, + + disable: function() { + if( module.is.disabled() ) { + module.debug('Checkbox is already disabled'); + return; + } + module.debug('Disabling checkbox'); + module.set.disabled(); + if( !module.should.ignoreCallbacks() ) { + settings.onDisable.call(input); + // preserve legacy callbacks + settings.onDisabled.call(input); + module.trigger.change(); + } + }, + + get: { + radios: function() { + var + name = module.get.name() + ; + return $('input[name="' + name + '"]').closest(selector.checkbox); + }, + otherRadios: function() { + return module.get.radios().not($module); + }, + name: function() { + return $input.attr('name'); + } + }, + + is: { + initialLoad: function() { + return initialLoad; + }, + radio: function() { + return ($input.hasClass(className.radio) || $input.attr('type') == 'radio'); + }, + indeterminate: function() { + return $input.prop('indeterminate') !== undefined && $input.prop('indeterminate'); + }, + checked: function() { + return $input.prop('checked') !== undefined && $input.prop('checked'); + }, + disabled: function() { + return $input.prop('disabled') !== undefined && $input.prop('disabled'); + }, + enabled: function() { + return !module.is.disabled(); + }, + determinate: function() { + return !module.is.indeterminate(); + }, + unchecked: function() { + return !module.is.checked(); + } + }, + + should: { + allowCheck: function() { + if(module.is.determinate() && module.is.checked() && !module.is.initialLoad() ) { + module.debug('Should not allow check, checkbox is already checked'); + return false; + } + if(!module.should.ignoreCallbacks() && settings.beforeChecked.apply(input) === false) { + module.debug('Should not allow check, beforeChecked cancelled'); + return false; + } + return true; + }, + allowUncheck: function() { + if(module.is.determinate() && module.is.unchecked() && !module.is.initialLoad() ) { + module.debug('Should not allow uncheck, checkbox is already unchecked'); + return false; + } + if(!module.should.ignoreCallbacks() && settings.beforeUnchecked.apply(input) === false) { + module.debug('Should not allow uncheck, beforeUnchecked cancelled'); + return false; + } + return true; + }, + allowIndeterminate: function() { + if(module.is.indeterminate() && !module.is.initialLoad() ) { + module.debug('Should not allow indeterminate, checkbox is already indeterminate'); + return false; + } + if(!module.should.ignoreCallbacks() && settings.beforeIndeterminate.apply(input) === false) { + module.debug('Should not allow indeterminate, beforeIndeterminate cancelled'); + return false; + } + return true; + }, + allowDeterminate: function() { + if(module.is.determinate() && !module.is.initialLoad() ) { + module.debug('Should not allow determinate, checkbox is already determinate'); + return false; + } + if(!module.should.ignoreCallbacks() && settings.beforeDeterminate.apply(input) === false) { + module.debug('Should not allow determinate, beforeDeterminate cancelled'); + return false; + } + return true; + }, + ignoreCallbacks: function() { + return (initialLoad && !settings.fireOnInit); + } + }, + + can: { + change: function() { + return !( $module.hasClass(className.disabled) || $module.hasClass(className.readOnly) || $input.prop('disabled') || $input.prop('readonly') ); + }, + uncheck: function() { + return (typeof settings.uncheckable === 'boolean') + ? settings.uncheckable + : !module.is.radio() + ; + } + }, + + set: { + initialLoad: function() { + initialLoad = true; + }, + checked: function() { + module.verbose('Setting class to checked'); + $module + .removeClass(className.indeterminate) + .addClass(className.checked) + ; + if( module.is.radio() ) { + module.uncheckOthers(); + } + if(!module.is.indeterminate() && module.is.checked()) { + module.debug('Input is already checked, skipping input property change'); + return; + } + module.verbose('Setting state to checked', input); + $input + .prop('indeterminate', false) + .prop('checked', true) + ; + }, + unchecked: function() { + module.verbose('Removing checked class'); + $module + .removeClass(className.indeterminate) + .removeClass(className.checked) + ; + if(!module.is.indeterminate() && module.is.unchecked() ) { + module.debug('Input is already unchecked'); + return; + } + module.debug('Setting state to unchecked'); + $input + .prop('indeterminate', false) + .prop('checked', false) + ; + }, + indeterminate: function() { + module.verbose('Setting class to indeterminate'); + $module + .addClass(className.indeterminate) + ; + if( module.is.indeterminate() ) { + module.debug('Input is already indeterminate, skipping input property change'); + return; + } + module.debug('Setting state to indeterminate'); + $input + .prop('indeterminate', true) + ; + }, + determinate: function() { + module.verbose('Removing indeterminate class'); + $module + .removeClass(className.indeterminate) + ; + if( module.is.determinate() ) { + module.debug('Input is already determinate, skipping input property change'); + return; + } + module.debug('Setting state to determinate'); + $input + .prop('indeterminate', false) + ; + }, + disabled: function() { + module.verbose('Setting class to disabled'); + $module + .addClass(className.disabled) + ; + if( module.is.disabled() ) { + module.debug('Input is already disabled, skipping input property change'); + return; + } + module.debug('Setting state to disabled'); + $input + .prop('disabled', 'disabled') + ; + }, + enabled: function() { + module.verbose('Removing disabled class'); + $module.removeClass(className.disabled); + if( module.is.enabled() ) { + module.debug('Input is already enabled, skipping input property change'); + return; + } + module.debug('Setting state to enabled'); + $input + .prop('disabled', false) + ; + }, + tabbable: function() { + module.verbose('Adding tabindex to checkbox'); + if( $input.attr('tabindex') === undefined) { + $input.attr('tabindex', 0); + } + } + }, + + remove: { + initialLoad: function() { + initialLoad = false; + } + }, + + trigger: { + change: function() { + var + inputElement = $input[0] + ; + if(inputElement) { + var events = document.createEvent('HTMLEvents'); + module.verbose('Triggering native change event'); + events.initEvent('change', true, false); + inputElement.dispatchEvent(events); + } + } + }, + + + create: { + label: function() { + if($input.prevAll(selector.label).length > 0) { + $input.prev(selector.label).detach().insertAfter($input); + module.debug('Moving existing label', $label); + } + else if( !module.has.label() ) { + $label = $('<label>').insertAfter($input); + module.debug('Creating label', $label); + } + } + }, + + has: { + label: function() { + return ($label.length > 0); + } + }, + + bind: { + events: function() { + module.verbose('Attaching checkbox events'); + $module + .on('click' + eventNamespace, module.event.click) + .on('change' + eventNamespace, module.event.change) + .on('keydown' + eventNamespace, selector.input, module.event.keydown) + .on('keyup' + eventNamespace, selector.input, module.event.keyup) + ; + } + }, + + unbind: { + events: function() { + module.debug('Removing events'); + $module + .off(eventNamespace) + ; + } + }, + + uncheckOthers: function() { + var + $radios = module.get.otherRadios() + ; + module.debug('Unchecking other radios', $radios); + $radios.removeClass(className.checked); + }, + + toggle: function() { + if( !module.can.change() ) { + if(!module.is.radio()) { + module.debug('Checkbox is read-only or disabled, ignoring toggle'); + } + return; + } + if( module.is.indeterminate() || module.is.unchecked() ) { + module.debug('Currently unchecked'); + module.check(); + } + else if( module.is.checked() && module.can.uncheck() ) { + module.debug('Currently checked'); + module.uncheck(); + } + }, + setting: function(name, value) { + module.debug('Changing setting', name, value); + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + if($.isPlainObject(settings[name])) { + $.extend(true, settings[name], value); + } + else { + settings[name] = value; + } + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if(Array.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + instance.invoke('destroy'); + } + module.initialize(); + } + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.checkbox.settings = { + + name : 'Checkbox', + namespace : 'checkbox', + + silent : false, + debug : false, + verbose : true, + performance : true, + + // delegated event context + uncheckable : 'auto', + fireOnInit : false, + enableEnterKey : true, + + onChange : function(){}, + + beforeChecked : function(){}, + beforeUnchecked : function(){}, + beforeDeterminate : function(){}, + beforeIndeterminate : function(){}, + + onChecked : function(){}, + onUnchecked : function(){}, + + onDeterminate : function() {}, + onIndeterminate : function() {}, + + onEnable : function(){}, + onDisable : function(){}, + + // preserve misspelled callbacks (will be removed in 3.0) + onEnabled : function(){}, + onDisabled : function(){}, + + className : { + checked : 'checked', + indeterminate : 'indeterminate', + disabled : 'disabled', + hidden : 'hidden', + radio : 'radio', + readOnly : 'read-only' + }, + + error : { + method : 'The method you called is not defined' + }, + + selector : { + checkbox : '.ui.checkbox', + label : 'label, .box', + input : 'input[type="checkbox"], input[type="radio"]', + link : 'a[href]' + } + +}; + +})( jQuery, window, document ); + +/*! + * # Fomantic-UI - Dimmer + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +$.isFunction = $.isFunction || function(obj) { + return typeof obj === "function" && typeof obj.nodeType !== "number"; +}; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.dimmer = function(parameters) { + var + $allModules = $(this), + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + returnedValue + ; + + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.dimmer.settings, parameters) + : $.extend({}, $.fn.dimmer.settings), + + selector = settings.selector, + namespace = settings.namespace, + className = settings.className, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + moduleSelector = $allModules.selector || '', + + clickEvent = ('ontouchstart' in document.documentElement) + ? 'touchstart' + : 'click', + + $module = $(this), + $dimmer, + $dimmable, + + element = this, + instance = $module.data(moduleNamespace), + module + ; + + module = { + + preinitialize: function() { + if( module.is.dimmer() ) { + + $dimmable = $module.parent(); + $dimmer = $module; + } + else { + $dimmable = $module; + if( module.has.dimmer() ) { + if(settings.dimmerName) { + $dimmer = $dimmable.find(selector.dimmer).filter('.' + settings.dimmerName); + } + else { + $dimmer = $dimmable.find(selector.dimmer); + } + } + else { + $dimmer = module.create(); + } + } + }, + + initialize: function() { + module.debug('Initializing dimmer', settings); + + module.bind.events(); + module.set.dimmable(); + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, instance) + ; + }, + + destroy: function() { + module.verbose('Destroying previous module', $dimmer); + module.unbind.events(); + module.remove.variation(); + $dimmable + .off(eventNamespace) + ; + }, + + bind: { + events: function() { + if(settings.on == 'hover') { + $dimmable + .on('mouseenter' + eventNamespace, module.show) + .on('mouseleave' + eventNamespace, module.hide) + ; + } + else if(settings.on == 'click') { + $dimmable + .on(clickEvent + eventNamespace, module.toggle) + ; + } + if( module.is.page() ) { + module.debug('Setting as a page dimmer', $dimmable); + module.set.pageDimmer(); + } + + if( module.is.closable() ) { + module.verbose('Adding dimmer close event', $dimmer); + $dimmable + .on(clickEvent + eventNamespace, selector.dimmer, module.event.click) + ; + } + } + }, + + unbind: { + events: function() { + $module + .removeData(moduleNamespace) + ; + $dimmable + .off(eventNamespace) + ; + } + }, + + event: { + click: function(event) { + module.verbose('Determining if event occured on dimmer', event); + if( $dimmer.find(event.target).length === 0 || $(event.target).is(selector.content) ) { + module.hide(); + event.stopImmediatePropagation(); + } + } + }, + + addContent: function(element) { + var + $content = $(element) + ; + module.debug('Add content to dimmer', $content); + if($content.parent()[0] !== $dimmer[0]) { + $content.detach().appendTo($dimmer); + } + }, + + create: function() { + var + $element = $( settings.template.dimmer(settings) ) + ; + if(settings.dimmerName) { + module.debug('Creating named dimmer', settings.dimmerName); + $element.addClass(settings.dimmerName); + } + $element + .appendTo($dimmable) + ; + return $element; + }, + + show: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + module.debug('Showing dimmer', $dimmer, settings); + module.set.variation(); + if( (!module.is.dimmed() || module.is.animating()) && module.is.enabled() ) { + module.animate.show(callback); + settings.onShow.call(element); + settings.onChange.call(element); + } + else { + module.debug('Dimmer is already shown or disabled'); + } + }, + + hide: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if( module.is.dimmed() || module.is.animating() ) { + module.debug('Hiding dimmer', $dimmer); + module.animate.hide(callback); + settings.onHide.call(element); + settings.onChange.call(element); + } + else { + module.debug('Dimmer is not visible'); + } + }, + + toggle: function() { + module.verbose('Toggling dimmer visibility', $dimmer); + if( !module.is.dimmed() ) { + module.show(); + } + else { + if ( module.is.closable() ) { + module.hide(); + } + } + }, + + animate: { + show: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if(settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) { + if(settings.useFlex) { + module.debug('Using flex dimmer'); + module.remove.legacy(); + } + else { + module.debug('Using legacy non-flex dimmer'); + module.set.legacy(); + } + if(settings.opacity !== 'auto') { + module.set.opacity(); + } + $dimmer + .transition({ + displayType : settings.useFlex + ? 'flex' + : 'block', + animation : settings.transition + ' in', + queue : false, + duration : module.get.duration(), + useFailSafe : true, + onStart : function() { + module.set.dimmed(); + }, + onComplete : function() { + module.set.active(); + callback(); + } + }) + ; + } + else { + module.verbose('Showing dimmer animation with javascript'); + module.set.dimmed(); + if(settings.opacity == 'auto') { + settings.opacity = 0.8; + } + $dimmer + .stop() + .css({ + opacity : 0, + width : '100%', + height : '100%' + }) + .fadeTo(module.get.duration(), settings.opacity, function() { + $dimmer.removeAttr('style'); + module.set.active(); + callback(); + }) + ; + } + }, + hide: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if(settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) { + module.verbose('Hiding dimmer with css'); + $dimmer + .transition({ + displayType : settings.useFlex + ? 'flex' + : 'block', + animation : settings.transition + ' out', + queue : false, + duration : module.get.duration(), + useFailSafe : true, + onComplete : function() { + module.remove.dimmed(); + module.remove.variation(); + module.remove.active(); + callback(); + } + }) + ; + } + else { + module.verbose('Hiding dimmer with javascript'); + $dimmer + .stop() + .fadeOut(module.get.duration(), function() { + module.remove.dimmed(); + module.remove.active(); + $dimmer.removeAttr('style'); + callback(); + }) + ; + } + } + }, + + get: { + dimmer: function() { + return $dimmer; + }, + duration: function() { + if(typeof settings.duration == 'object') { + if( module.is.active() ) { + return settings.duration.hide; + } + else { + return settings.duration.show; + } + } + return settings.duration; + } + }, + + has: { + dimmer: function() { + if(settings.dimmerName) { + return ($module.find(selector.dimmer).filter('.' + settings.dimmerName).length > 0); + } + else { + return ( $module.find(selector.dimmer).length > 0 ); + } + } + }, + + is: { + active: function() { + return $dimmer.hasClass(className.active); + }, + animating: function() { + return ( $dimmer.is(':animated') || $dimmer.hasClass(className.animating) ); + }, + closable: function() { + if(settings.closable == 'auto') { + if(settings.on == 'hover') { + return false; + } + return true; + } + return settings.closable; + }, + dimmer: function() { + return $module.hasClass(className.dimmer); + }, + dimmable: function() { + return $module.hasClass(className.dimmable); + }, + dimmed: function() { + return $dimmable.hasClass(className.dimmed); + }, + disabled: function() { + return $dimmable.hasClass(className.disabled); + }, + enabled: function() { + return !module.is.disabled(); + }, + page: function () { + return $dimmable.is('body'); + }, + pageDimmer: function() { + return $dimmer.hasClass(className.pageDimmer); + } + }, + + can: { + show: function() { + return !$dimmer.hasClass(className.disabled); + } + }, + + set: { + opacity: function(opacity) { + var + color = $dimmer.css('background-color'), + colorArray = color.split(','), + isRGB = (colorArray && colorArray.length >= 3) + ; + opacity = settings.opacity === 0 ? 0 : settings.opacity || opacity; + if(isRGB) { + colorArray[2] = colorArray[2].replace(')',''); + colorArray[3] = opacity + ')'; + color = colorArray.join(','); + } + else { + color = 'rgba(0, 0, 0, ' + opacity + ')'; + } + module.debug('Setting opacity to', opacity); + $dimmer.css('background-color', color); + }, + legacy: function() { + $dimmer.addClass(className.legacy); + }, + active: function() { + $dimmer.addClass(className.active); + }, + dimmable: function() { + $dimmable.addClass(className.dimmable); + }, + dimmed: function() { + $dimmable.addClass(className.dimmed); + }, + pageDimmer: function() { + $dimmer.addClass(className.pageDimmer); + }, + disabled: function() { + $dimmer.addClass(className.disabled); + }, + variation: function(variation) { + variation = variation || settings.variation; + if(variation) { + $dimmer.addClass(variation); + } + } + }, + + remove: { + active: function() { + $dimmer + .removeClass(className.active) + ; + }, + legacy: function() { + $dimmer.removeClass(className.legacy); + }, + dimmed: function() { + $dimmable.removeClass(className.dimmed); + }, + disabled: function() { + $dimmer.removeClass(className.disabled); + }, + variation: function(variation) { + variation = variation || settings.variation; + if(variation) { + $dimmer.removeClass(variation); + } + } + }, + + setting: function(name, value) { + module.debug('Changing setting', name, value); + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + if($.isPlainObject(settings[name])) { + $.extend(true, settings[name], value); + } + else { + settings[name] = value; + } + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.length > 1) { + title += ' ' + '(' + $allModules.length + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if(Array.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + module.preinitialize(); + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + instance.invoke('destroy'); + } + module.initialize(); + } + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.dimmer.settings = { + + name : 'Dimmer', + namespace : 'dimmer', + + silent : false, + debug : false, + verbose : false, + performance : true, + + // whether should use flex layout + useFlex : true, + + // name to distinguish between multiple dimmers in context + dimmerName : false, + + // whether to add a variation type + variation : false, + + // whether to bind close events + closable : 'auto', + + // whether to use css animations + useCSS : true, + + // css animation to use + transition : 'fade', + + // event to bind to + on : false, + + // overriding opacity value + opacity : 'auto', + + // transition durations + duration : { + show : 500, + hide : 500 + }, +// whether the dynamically created dimmer should have a loader + displayLoader: false, + loaderText : false, + loaderVariation : '', + + onChange : function(){}, + onShow : function(){}, + onHide : function(){}, + + error : { + method : 'The method you called is not defined.' + }, + + className : { + active : 'active', + animating : 'animating', + dimmable : 'dimmable', + dimmed : 'dimmed', + dimmer : 'dimmer', + disabled : 'disabled', + hide : 'hide', + legacy : 'legacy', + pageDimmer : 'page', + show : 'show', + loader : 'ui loader' + }, + + selector: { + dimmer : '> .ui.dimmer', + content : '.ui.dimmer > .content, .ui.dimmer > .content > .center' + }, + + template: { + dimmer: function(settings) { + var d = $('<div/>').addClass('ui dimmer'),l; + if(settings.displayLoader) { + l = $('<div/>') + .addClass(settings.className.loader) + .addClass(settings.loaderVariation); + if(!!settings.loaderText){ + l.text(settings.loaderText); + l.addClass('text'); + } + d.append(l); + } + return d; + } + } + +}; + +})( jQuery, window, document ); + +/*! + * # Fomantic-UI - Dropdown + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +$.isFunction = $.isFunction || function(obj) { + return typeof obj === "function" && typeof obj.nodeType !== "number"; +}; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.dropdown = function(parameters) { + var + $allModules = $(this), + $document = $(document), + + moduleSelector = $allModules.selector || '', + + hasTouch = ('ontouchstart' in document.documentElement), + clickEvent = hasTouch + ? 'touchstart' + : 'click', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + + $allModules + .each(function(elementIndex) { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.dropdown.settings, parameters) + : $.extend({}, $.fn.dropdown.settings), + + className = settings.className, + message = settings.message, + fields = settings.fields, + keys = settings.keys, + metadata = settings.metadata, + namespace = settings.namespace, + regExp = settings.regExp, + selector = settings.selector, + error = settings.error, + templates = settings.templates, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + $module = $(this), + $context = $(settings.context), + $text = $module.find(selector.text), + $search = $module.find(selector.search), + $sizer = $module.find(selector.sizer), + $input = $module.find(selector.input), + $icon = $module.find(selector.icon), + $clear = $module.find(selector.clearIcon), + + $combo = ($module.prev().find(selector.text).length > 0) + ? $module.prev().find(selector.text) + : $module.prev(), + + $menu = $module.children(selector.menu), + $item = $menu.find(selector.item), + $divider = settings.hideDividers ? $item.parent().children(selector.divider) : $(), + + activated = false, + itemActivated = false, + internalChange = false, + iconClicked = false, + element = this, + instance = $module.data(moduleNamespace), + + selectActionActive, + initialLoad, + pageLostFocus, + willRefocus, + elementNamespace, + id, + selectObserver, + menuObserver, + classObserver, + module + ; + + module = { + + initialize: function() { + module.debug('Initializing dropdown', settings); + + if( module.is.alreadySetup() ) { + module.setup.reference(); + } + else { + if (settings.ignoreDiacritics && !String.prototype.normalize) { + settings.ignoreDiacritics = false; + module.error(error.noNormalize, element); + } + + module.setup.layout(); + + if(settings.values) { + module.set.initialLoad(); + module.change.values(settings.values); + module.remove.initialLoad(); + } + + module.refreshData(); + + module.save.defaults(); + module.restore.selected(); + + module.create.id(); + module.bind.events(); + + module.observeChanges(); + module.instantiate(); + } + + }, + + instantiate: function() { + module.verbose('Storing instance of dropdown', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.verbose('Destroying previous dropdown', $module); + module.remove.tabbable(); + module.remove.active(); + $menu.transition('stop all'); + $menu.removeClass(className.visible).addClass(className.hidden); + $module + .off(eventNamespace) + .removeData(moduleNamespace) + ; + $menu + .off(eventNamespace) + ; + $document + .off(elementNamespace) + ; + module.disconnect.menuObserver(); + module.disconnect.selectObserver(); + module.disconnect.classObserver(); + }, + + observeChanges: function() { + if('MutationObserver' in window) { + selectObserver = new MutationObserver(module.event.select.mutation); + menuObserver = new MutationObserver(module.event.menu.mutation); + classObserver = new MutationObserver(module.event.class.mutation); + module.debug('Setting up mutation observer', selectObserver, menuObserver, classObserver); + module.observe.select(); + module.observe.menu(); + module.observe.class(); + } + }, + + disconnect: { + menuObserver: function() { + if(menuObserver) { + menuObserver.disconnect(); + } + }, + selectObserver: function() { + if(selectObserver) { + selectObserver.disconnect(); + } + }, + classObserver: function() { + if(classObserver) { + classObserver.disconnect(); + } + } + }, + observe: { + select: function() { + if(module.has.input() && selectObserver) { + selectObserver.observe($module[0], { + childList : true, + subtree : true + }); + } + }, + menu: function() { + if(module.has.menu() && menuObserver) { + menuObserver.observe($menu[0], { + childList : true, + subtree : true + }); + } + }, + class: function() { + if(module.has.search() && classObserver) { + classObserver.observe($module[0], { + attributes : true + }); + } + } + }, + + create: { + id: function() { + id = (Math.random().toString(16) + '000000000').substr(2, 8); + elementNamespace = '.' + id; + module.verbose('Creating unique id for element', id); + }, + userChoice: function(values) { + var + $userChoices, + $userChoice, + isUserValue, + html + ; + values = values || module.get.userValues(); + if(!values) { + return false; + } + values = Array.isArray(values) + ? values + : [values] + ; + $.each(values, function(index, value) { + if(module.get.item(value) === false) { + html = settings.templates.addition( module.add.variables(message.addResult, value) ); + $userChoice = $('<div />') + .html(html) + .attr('data-' + metadata.value, value) + .attr('data-' + metadata.text, value) + .addClass(className.addition) + .addClass(className.item) + ; + if(settings.hideAdditions) { + $userChoice.addClass(className.hidden); + } + $userChoices = ($userChoices === undefined) + ? $userChoice + : $userChoices.add($userChoice) + ; + module.verbose('Creating user choices for value', value, $userChoice); + } + }); + return $userChoices; + }, + userLabels: function(value) { + var + userValues = module.get.userValues() + ; + if(userValues) { + module.debug('Adding user labels', userValues); + $.each(userValues, function(index, value) { + module.verbose('Adding custom user value'); + module.add.label(value, value); + }); + } + }, + menu: function() { + $menu = $('<div />') + .addClass(className.menu) + .appendTo($module) + ; + }, + sizer: function() { + $sizer = $('<span />') + .addClass(className.sizer) + .insertAfter($search) + ; + } + }, + + search: function(query) { + query = (query !== undefined) + ? query + : module.get.query() + ; + module.verbose('Searching for query', query); + if(module.has.minCharacters(query)) { + module.filter(query); + } + else { + module.hide(null,true); + } + }, + + select: { + firstUnfiltered: function() { + module.verbose('Selecting first non-filtered element'); + module.remove.selectedItem(); + $item + .not(selector.unselectable) + .not(selector.addition + selector.hidden) + .eq(0) + .addClass(className.selected) + ; + }, + nextAvailable: function($selected) { + $selected = $selected.eq(0); + var + $nextAvailable = $selected.nextAll(selector.item).not(selector.unselectable).eq(0), + $prevAvailable = $selected.prevAll(selector.item).not(selector.unselectable).eq(0), + hasNext = ($nextAvailable.length > 0) + ; + if(hasNext) { + module.verbose('Moving selection to', $nextAvailable); + $nextAvailable.addClass(className.selected); + } + else { + module.verbose('Moving selection to', $prevAvailable); + $prevAvailable.addClass(className.selected); + } + } + }, + + setup: { + api: function() { + var + apiSettings = { + debug : settings.debug, + urlData : { + value : module.get.value(), + query : module.get.query() + }, + on : false + } + ; + module.verbose('First request, initializing API'); + $module + .api(apiSettings) + ; + }, + layout: function() { + if( $module.is('select') ) { + module.setup.select(); + module.setup.returnedObject(); + } + if( !module.has.menu() ) { + module.create.menu(); + } + if ( module.is.selection() && module.is.clearable() && !module.has.clearItem() ) { + module.verbose('Adding clear icon'); + $clear = $('<i />') + .addClass('remove icon') + .insertBefore($text) + ; + } + if( module.is.search() && !module.has.search() ) { + module.verbose('Adding search input'); + $search = $('<input />') + .addClass(className.search) + .prop('autocomplete', 'off') + .insertBefore($text) + ; + } + if( module.is.multiple() && module.is.searchSelection() && !module.has.sizer()) { + module.create.sizer(); + } + if(settings.allowTab) { + module.set.tabbable(); + } + }, + select: function() { + var + selectValues = module.get.selectValues() + ; + module.debug('Dropdown initialized on a select', selectValues); + if( $module.is('select') ) { + $input = $module; + } + // see if select is placed correctly already + if($input.parent(selector.dropdown).length > 0) { + module.debug('UI dropdown already exists. Creating dropdown menu only'); + $module = $input.closest(selector.dropdown); + if( !module.has.menu() ) { + module.create.menu(); + } + $menu = $module.children(selector.menu); + module.setup.menu(selectValues); + } + else { + module.debug('Creating entire dropdown from select'); + $module = $('<div />') + .attr('class', $input.attr('class') ) + .addClass(className.selection) + .addClass(className.dropdown) + .html( templates.dropdown(selectValues, fields, settings.preserveHTML, settings.className) ) + .insertBefore($input) + ; + if($input.hasClass(className.multiple) && $input.prop('multiple') === false) { + module.error(error.missingMultiple); + $input.prop('multiple', true); + } + if($input.is('[multiple]')) { + module.set.multiple(); + } + if ($input.prop('disabled')) { + module.debug('Disabling dropdown'); + $module.addClass(className.disabled); + } + $input + .removeAttr('required') + .removeAttr('class') + .detach() + .prependTo($module) + ; + } + module.refresh(); + }, + menu: function(values) { + $menu.html( templates.menu(values, fields,settings.preserveHTML,settings.className)); + $item = $menu.find(selector.item); + $divider = settings.hideDividers ? $item.parent().children(selector.divider) : $(); + }, + reference: function() { + module.debug('Dropdown behavior was called on select, replacing with closest dropdown'); + // replace module reference + $module = $module.parent(selector.dropdown); + instance = $module.data(moduleNamespace); + element = $module.get(0); + module.refresh(); + module.setup.returnedObject(); + }, + returnedObject: function() { + var + $firstModules = $allModules.slice(0, elementIndex), + $lastModules = $allModules.slice(elementIndex + 1) + ; + // adjust all modules to use correct reference + $allModules = $firstModules.add($module).add($lastModules); + } + }, + + refresh: function() { + module.refreshSelectors(); + module.refreshData(); + }, + + refreshItems: function() { + $item = $menu.find(selector.item); + $divider = settings.hideDividers ? $item.parent().children(selector.divider) : $(); + }, + + refreshSelectors: function() { + module.verbose('Refreshing selector cache'); + $text = $module.find(selector.text); + $search = $module.find(selector.search); + $input = $module.find(selector.input); + $icon = $module.find(selector.icon); + $combo = ($module.prev().find(selector.text).length > 0) + ? $module.prev().find(selector.text) + : $module.prev() + ; + $menu = $module.children(selector.menu); + $item = $menu.find(selector.item); + $divider = settings.hideDividers ? $item.parent().children(selector.divider) : $(); + }, + + refreshData: function() { + module.verbose('Refreshing cached metadata'); + $item + .removeData(metadata.text) + .removeData(metadata.value) + ; + }, + + clearData: function() { + module.verbose('Clearing metadata'); + $item + .removeData(metadata.text) + .removeData(metadata.value) + ; + $module + .removeData(metadata.defaultText) + .removeData(metadata.defaultValue) + .removeData(metadata.placeholderText) + ; + }, + + toggle: function() { + module.verbose('Toggling menu visibility'); + if( !module.is.active() ) { + module.show(); + } + else { + module.hide(); + } + }, + + show: function(callback, preventFocus) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if(!module.can.show() && module.is.remote()) { + module.debug('No API results retrieved, searching before show'); + module.queryRemote(module.get.query(), module.show); + } + if( module.can.show() && !module.is.active() ) { + module.debug('Showing dropdown'); + if(module.has.message() && !(module.has.maxSelections() || module.has.allResultsFiltered()) ) { + module.remove.message(); + } + if(module.is.allFiltered()) { + return true; + } + if(settings.onShow.call(element) !== false) { + module.animate.show(function() { + if( module.can.click() ) { + module.bind.intent(); + } + if(module.has.search() && !preventFocus) { + module.focusSearch(); + } + module.set.visible(); + callback.call(element); + }); + } + } + }, + + hide: function(callback, preventBlur) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if( module.is.active() && !module.is.animatingOutward() ) { + module.debug('Hiding dropdown'); + if(settings.onHide.call(element) !== false) { + module.animate.hide(function() { + module.remove.visible(); + // hidding search focus + if ( module.is.focusedOnSearch() && preventBlur !== true ) { + $search.blur(); + } + callback.call(element); + }); + } + } else if( module.can.click() ) { + module.unbind.intent(); + } + iconClicked = false; + }, + + hideOthers: function() { + module.verbose('Finding other dropdowns to hide'); + $allModules + .not($module) + .has(selector.menu + '.' + className.visible) + .dropdown('hide') + ; + }, + + hideMenu: function() { + module.verbose('Hiding menu instantaneously'); + module.remove.active(); + module.remove.visible(); + $menu.transition('hide'); + }, + + hideSubMenus: function() { + var + $subMenus = $menu.children(selector.item).find(selector.menu) + ; + module.verbose('Hiding sub menus', $subMenus); + $subMenus.transition('hide'); + }, + + bind: { + events: function() { + module.bind.keyboardEvents(); + module.bind.inputEvents(); + module.bind.mouseEvents(); + }, + keyboardEvents: function() { + module.verbose('Binding keyboard events'); + $module + .on('keydown' + eventNamespace, module.event.keydown) + ; + if( module.has.search() ) { + $module + .on(module.get.inputEvent() + eventNamespace, selector.search, module.event.input) + ; + } + if( module.is.multiple() ) { + $document + .on('keydown' + elementNamespace, module.event.document.keydown) + ; + } + }, + inputEvents: function() { + module.verbose('Binding input change events'); + $module + .on('change' + eventNamespace, selector.input, module.event.change) + ; + }, + mouseEvents: function() { + module.verbose('Binding mouse events'); + if(module.is.multiple()) { + $module + .on(clickEvent + eventNamespace, selector.label, module.event.label.click) + .on(clickEvent + eventNamespace, selector.remove, module.event.remove.click) + ; + } + if( module.is.searchSelection() ) { + $module + .on('mousedown' + eventNamespace, module.event.mousedown) + .on('mouseup' + eventNamespace, module.event.mouseup) + .on('mousedown' + eventNamespace, selector.menu, module.event.menu.mousedown) + .on('mouseup' + eventNamespace, selector.menu, module.event.menu.mouseup) + .on(clickEvent + eventNamespace, selector.icon, module.event.icon.click) + .on(clickEvent + eventNamespace, selector.clearIcon, module.event.clearIcon.click) + .on('focus' + eventNamespace, selector.search, module.event.search.focus) + .on(clickEvent + eventNamespace, selector.search, module.event.search.focus) + .on('blur' + eventNamespace, selector.search, module.event.search.blur) + .on(clickEvent + eventNamespace, selector.text, module.event.text.focus) + ; + if(module.is.multiple()) { + $module + .on(clickEvent + eventNamespace, module.event.click) + ; + } + } + else { + if(settings.on == 'click') { + $module + .on(clickEvent + eventNamespace, selector.icon, module.event.icon.click) + .on(clickEvent + eventNamespace, module.event.test.toggle) + ; + } + else if(settings.on == 'hover') { + $module + .on('mouseenter' + eventNamespace, module.delay.show) + .on('mouseleave' + eventNamespace, module.delay.hide) + ; + } + else { + $module + .on(settings.on + eventNamespace, module.toggle) + ; + } + $module + .on('mousedown' + eventNamespace, module.event.mousedown) + .on('mouseup' + eventNamespace, module.event.mouseup) + .on('focus' + eventNamespace, module.event.focus) + .on(clickEvent + eventNamespace, selector.clearIcon, module.event.clearIcon.click) + ; + if(module.has.menuSearch() ) { + $module + .on('blur' + eventNamespace, selector.search, module.event.search.blur) + ; + } + else { + $module + .on('blur' + eventNamespace, module.event.blur) + ; + } + } + $menu + .on((hasTouch ? 'touchstart' : 'mouseenter') + eventNamespace, selector.item, module.event.item.mouseenter) + .on('mouseleave' + eventNamespace, selector.item, module.event.item.mouseleave) + .on('click' + eventNamespace, selector.item, module.event.item.click) + ; + }, + intent: function() { + module.verbose('Binding hide intent event to document'); + if(hasTouch) { + $document + .on('touchstart' + elementNamespace, module.event.test.touch) + .on('touchmove' + elementNamespace, module.event.test.touch) + ; + } + $document + .on(clickEvent + elementNamespace, module.event.test.hide) + ; + } + }, + + unbind: { + intent: function() { + module.verbose('Removing hide intent event from document'); + if(hasTouch) { + $document + .off('touchstart' + elementNamespace) + .off('touchmove' + elementNamespace) + ; + } + $document + .off(clickEvent + elementNamespace) + ; + } + }, + + filter: function(query) { + var + searchTerm = (query !== undefined) + ? query + : module.get.query(), + afterFiltered = function() { + if(module.is.multiple()) { + module.filterActive(); + } + if(query || (!query && module.get.activeItem().length == 0)) { + module.select.firstUnfiltered(); + } + if( module.has.allResultsFiltered() ) { + if( settings.onNoResults.call(element, searchTerm) ) { + if(settings.allowAdditions) { + if(settings.hideAdditions) { + module.verbose('User addition with no menu, setting empty style'); + module.set.empty(); + module.hideMenu(); + } + } + else { + module.verbose('All items filtered, showing message', searchTerm); + module.add.message(message.noResults); + } + } + else { + module.verbose('All items filtered, hiding dropdown', searchTerm); + module.hideMenu(); + } + } + else { + module.remove.empty(); + module.remove.message(); + } + if(settings.allowAdditions) { + module.add.userSuggestion(module.escape.htmlEntities(query)); + } + if(module.is.searchSelection() && module.can.show() && module.is.focusedOnSearch() ) { + module.show(); + } + } + ; + if(settings.useLabels && module.has.maxSelections()) { + return; + } + if(settings.apiSettings) { + if( module.can.useAPI() ) { + module.queryRemote(searchTerm, function() { + if(settings.filterRemoteData) { + module.filterItems(searchTerm); + } + var preSelected = $input.val(); + if(!Array.isArray(preSelected)) { + preSelected = preSelected && preSelected!=="" ? preSelected.split(settings.delimiter) : []; + } + $.each(preSelected,function(index,value){ + $item.filter('[data-value="'+value+'"]') + .addClass(className.filtered) + ; + }); + afterFiltered(); + }); + } + else { + module.error(error.noAPI); + } + } + else { + module.filterItems(searchTerm); + afterFiltered(); + } + }, + + queryRemote: function(query, callback) { + var + apiSettings = { + errorDuration : false, + cache : 'local', + throttle : settings.throttle, + urlData : { + query: query + }, + onError: function() { + module.add.message(message.serverError); + callback(); + }, + onFailure: function() { + module.add.message(message.serverError); + callback(); + }, + onSuccess : function(response) { + var + values = response[fields.remoteValues] + ; + if (!Array.isArray(values)){ + values = []; + } + module.remove.message(); + var menuConfig = {}; + menuConfig[fields.values] = values; + module.setup.menu(menuConfig); + + if(values.length===0 && !settings.allowAdditions) { + module.add.message(message.noResults); + } + callback(); + } + } + ; + if( !$module.api('get request') ) { + module.setup.api(); + } + apiSettings = $.extend(true, {}, apiSettings, settings.apiSettings); + $module + .api('setting', apiSettings) + .api('query') + ; + }, + + filterItems: function(query) { + var + searchTerm = module.remove.diacritics(query !== undefined + ? query + : module.get.query() + ), + results = null, + escapedTerm = module.escape.string(searchTerm), + regExpFlags = (settings.ignoreSearchCase ? 'i' : '') + 'gm', + beginsWithRegExp = new RegExp('^' + escapedTerm, regExpFlags) + ; + // avoid loop if we're matching nothing + if( module.has.query() ) { + results = []; + + module.verbose('Searching for matching values', searchTerm); + $item + .each(function(){ + var + $choice = $(this), + text, + value + ; + if($choice.hasClass(className.unfilterable)) { + results.push(this); + return true; + } + if(settings.match === 'both' || settings.match === 'text') { + text = module.remove.diacritics(String(module.get.choiceText($choice, false))); + if(text.search(beginsWithRegExp) !== -1) { + results.push(this); + return true; + } + else if (settings.fullTextSearch === 'exact' && module.exactSearch(searchTerm, text)) { + results.push(this); + return true; + } + else if (settings.fullTextSearch === true && module.fuzzySearch(searchTerm, text)) { + results.push(this); + return true; + } + } + if(settings.match === 'both' || settings.match === 'value') { + value = module.remove.diacritics(String(module.get.choiceValue($choice, text))); + if(value.search(beginsWithRegExp) !== -1) { + results.push(this); + return true; + } + else if (settings.fullTextSearch === 'exact' && module.exactSearch(searchTerm, value)) { + results.push(this); + return true; + } + else if (settings.fullTextSearch === true && module.fuzzySearch(searchTerm, value)) { + results.push(this); + return true; + } + } + }) + ; + } + module.debug('Showing only matched items', searchTerm); + module.remove.filteredItem(); + if(results) { + $item + .not(results) + .addClass(className.filtered) + ; + } + + if(!module.has.query()) { + $divider + .removeClass(className.hidden); + } else if(settings.hideDividers === true) { + $divider + .addClass(className.hidden); + } else if(settings.hideDividers === 'empty') { + $divider + .removeClass(className.hidden) + .filter(function() { + // First find the last divider in this divider group + // Dividers which are direct siblings are considered a group + var lastDivider = $(this).nextUntil(selector.item); + + return (lastDivider.length ? lastDivider : $(this)) + // Count all non-filtered items until the next divider (or end of the dropdown) + .nextUntil(selector.divider) + .filter(selector.item + ":not(." + className.filtered + ")") + // Hide divider if no items are found + .length === 0; + }) + .addClass(className.hidden); + } + }, + + fuzzySearch: function(query, term) { + var + termLength = term.length, + queryLength = query.length + ; + query = (settings.ignoreSearchCase ? query.toLowerCase() : query); + term = (settings.ignoreSearchCase ? term.toLowerCase() : term); + if(queryLength > termLength) { + return false; + } + if(queryLength === termLength) { + return (query === term); + } + search: for (var characterIndex = 0, nextCharacterIndex = 0; characterIndex < queryLength; characterIndex++) { + var + queryCharacter = query.charCodeAt(characterIndex) + ; + while(nextCharacterIndex < termLength) { + if(term.charCodeAt(nextCharacterIndex++) === queryCharacter) { + continue search; + } + } + return false; + } + return true; + }, + exactSearch: function (query, term) { + query = (settings.ignoreSearchCase ? query.toLowerCase() : query); + term = (settings.ignoreSearchCase ? term.toLowerCase() : term); + return term.indexOf(query) > -1; + + }, + filterActive: function() { + if(settings.useLabels) { + $item.filter('.' + className.active) + .addClass(className.filtered) + ; + } + }, + + focusSearch: function(skipHandler) { + if( module.has.search() && !module.is.focusedOnSearch() ) { + if(skipHandler) { + $module.off('focus' + eventNamespace, selector.search); + $search.focus(); + $module.on('focus' + eventNamespace, selector.search, module.event.search.focus); + } + else { + $search.focus(); + } + } + }, + + blurSearch: function() { + if( module.has.search() ) { + $search.blur(); + } + }, + + forceSelection: function() { + var + $currentlySelected = $item.not(className.filtered).filter('.' + className.selected).eq(0), + $activeItem = $item.not(className.filtered).filter('.' + className.active).eq(0), + $selectedItem = ($currentlySelected.length > 0) + ? $currentlySelected + : $activeItem, + hasSelected = ($selectedItem.length > 0) + ; + if(settings.allowAdditions || (hasSelected && !module.is.multiple())) { + module.debug('Forcing partial selection to selected item', $selectedItem); + module.event.item.click.call($selectedItem, {}, true); + } + else { + module.remove.searchTerm(); + } + }, + + change: { + values: function(values) { + if(!settings.allowAdditions) { + module.clear(); + } + module.debug('Creating dropdown with specified values', values); + var menuConfig = {}; + menuConfig[fields.values] = values; + module.setup.menu(menuConfig); + $.each(values, function(index, item) { + if(item.selected == true) { + module.debug('Setting initial selection to', item[fields.value]); + module.set.selected(item[fields.value]); + if(!module.is.multiple()) { + return false; + } + } + }); + + if(module.has.selectInput()) { + module.disconnect.selectObserver(); + $input.html(''); + $input.append('<option disabled selected value></option>'); + $.each(values, function(index, item) { + var + value = settings.templates.deQuote(item[fields.value]), + name = settings.templates.escape( + item[fields.name] || '', + settings.preserveHTML + ) + ; + $input.append('<option value="' + value + '">' + name + '</option>'); + }); + module.observe.select(); + } + } + }, + + event: { + change: function() { + if(!internalChange) { + module.debug('Input changed, updating selection'); + module.set.selected(); + } + }, + focus: function() { + if(settings.showOnFocus && !activated && module.is.hidden() && !pageLostFocus) { + module.show(); + } + }, + blur: function(event) { + pageLostFocus = (document.activeElement === this); + if(!activated && !pageLostFocus) { + module.remove.activeLabel(); + module.hide(); + } + }, + mousedown: function() { + if(module.is.searchSelection()) { + // prevent menu hiding on immediate re-focus + willRefocus = true; + } + else { + // prevents focus callback from occurring on mousedown + activated = true; + } + }, + mouseup: function() { + if(module.is.searchSelection()) { + // prevent menu hiding on immediate re-focus + willRefocus = false; + } + else { + activated = false; + } + }, + click: function(event) { + var + $target = $(event.target) + ; + // focus search + if($target.is($module)) { + if(!module.is.focusedOnSearch()) { + module.focusSearch(); + } + else { + module.show(); + } + } + }, + search: { + focus: function(event) { + activated = true; + if(module.is.multiple()) { + module.remove.activeLabel(); + } + if(settings.showOnFocus || (event.type !== 'focus' && event.type !== 'focusin')) { + module.search(); + } + }, + blur: function(event) { + pageLostFocus = (document.activeElement === this); + if(module.is.searchSelection() && !willRefocus) { + if(!itemActivated && !pageLostFocus) { + if(settings.forceSelection) { + module.forceSelection(); + } else if(!settings.allowAdditions){ + module.remove.searchTerm(); + } + module.hide(); + } + } + willRefocus = false; + } + }, + clearIcon: { + click: function(event) { + module.clear(); + if(module.is.searchSelection()) { + module.remove.searchTerm(); + } + module.hide(); + event.stopPropagation(); + } + }, + icon: { + click: function(event) { + iconClicked=true; + if(module.has.search()) { + if(!module.is.active()) { + if(settings.showOnFocus){ + module.focusSearch(); + } else { + module.toggle(); + } + } else { + module.blurSearch(); + } + } else { + module.toggle(); + } + } + }, + text: { + focus: function(event) { + activated = true; + module.focusSearch(); + } + }, + input: function(event) { + if(module.is.multiple() || module.is.searchSelection()) { + module.set.filtered(); + } + clearTimeout(module.timer); + module.timer = setTimeout(module.search, settings.delay.search); + }, + label: { + click: function(event) { + var + $label = $(this), + $labels = $module.find(selector.label), + $activeLabels = $labels.filter('.' + className.active), + $nextActive = $label.nextAll('.' + className.active), + $prevActive = $label.prevAll('.' + className.active), + $range = ($nextActive.length > 0) + ? $label.nextUntil($nextActive).add($activeLabels).add($label) + : $label.prevUntil($prevActive).add($activeLabels).add($label) + ; + if(event.shiftKey) { + $activeLabels.removeClass(className.active); + $range.addClass(className.active); + } + else if(event.ctrlKey) { + $label.toggleClass(className.active); + } + else { + $activeLabels.removeClass(className.active); + $label.addClass(className.active); + } + settings.onLabelSelect.apply(this, $labels.filter('.' + className.active)); + } + }, + remove: { + click: function() { + var + $label = $(this).parent() + ; + if( $label.hasClass(className.active) ) { + // remove all selected labels + module.remove.activeLabels(); + } + else { + // remove this label only + module.remove.activeLabels( $label ); + } + } + }, + test: { + toggle: function(event) { + var + toggleBehavior = (module.is.multiple()) + ? module.show + : module.toggle + ; + if(module.is.bubbledLabelClick(event) || module.is.bubbledIconClick(event)) { + return; + } + if( module.determine.eventOnElement(event, toggleBehavior) ) { + event.preventDefault(); + } + }, + touch: function(event) { + module.determine.eventOnElement(event, function() { + if(event.type == 'touchstart') { + module.timer = setTimeout(function() { + module.hide(); + }, settings.delay.touch); + } + else if(event.type == 'touchmove') { + clearTimeout(module.timer); + } + }); + event.stopPropagation(); + }, + hide: function(event) { + if(module.determine.eventInModule(event, module.hide)){ + if(element.id && $(event.target).attr('for') === element.id){ + event.preventDefault(); + } + } + } + }, + class: { + mutation: function(mutations) { + mutations.forEach(function(mutation) { + if(mutation.attributeName === "class") { + module.check.disabled(); + } + }); + } + }, + select: { + mutation: function(mutations) { + module.debug('<select> modified, recreating menu'); + if(module.is.selectMutation(mutations)) { + module.disconnect.selectObserver(); + module.refresh(); + module.setup.select(); + module.set.selected(); + module.observe.select(); + } + } + }, + menu: { + mutation: function(mutations) { + var + mutation = mutations[0], + $addedNode = mutation.addedNodes + ? $(mutation.addedNodes[0]) + : $(false), + $removedNode = mutation.removedNodes + ? $(mutation.removedNodes[0]) + : $(false), + $changedNodes = $addedNode.add($removedNode), + isUserAddition = $changedNodes.is(selector.addition) || $changedNodes.closest(selector.addition).length > 0, + isMessage = $changedNodes.is(selector.message) || $changedNodes.closest(selector.message).length > 0 + ; + if(isUserAddition || isMessage) { + module.debug('Updating item selector cache'); + module.refreshItems(); + } + else { + module.debug('Menu modified, updating selector cache'); + module.refresh(); + } + }, + mousedown: function() { + itemActivated = true; + }, + mouseup: function() { + itemActivated = false; + } + }, + item: { + mouseenter: function(event) { + var + $target = $(event.target), + $item = $(this), + $subMenu = $item.children(selector.menu), + $otherMenus = $item.siblings(selector.item).children(selector.menu), + hasSubMenu = ($subMenu.length > 0), + isBubbledEvent = ($subMenu.find($target).length > 0) + ; + if( !isBubbledEvent && hasSubMenu ) { + clearTimeout(module.itemTimer); + module.itemTimer = setTimeout(function() { + module.verbose('Showing sub-menu', $subMenu); + $.each($otherMenus, function() { + module.animate.hide(false, $(this)); + }); + module.animate.show(false, $subMenu); + }, settings.delay.show); + event.preventDefault(); + } + }, + mouseleave: function(event) { + var + $subMenu = $(this).children(selector.menu) + ; + if($subMenu.length > 0) { + clearTimeout(module.itemTimer); + module.itemTimer = setTimeout(function() { + module.verbose('Hiding sub-menu', $subMenu); + module.animate.hide(false, $subMenu); + }, settings.delay.hide); + } + }, + click: function (event, skipRefocus) { + var + $choice = $(this), + $target = (event) + ? $(event.target) + : $(''), + $subMenu = $choice.find(selector.menu), + text = module.get.choiceText($choice), + value = module.get.choiceValue($choice, text), + hasSubMenu = ($subMenu.length > 0), + isBubbledEvent = ($subMenu.find($target).length > 0) + ; + // prevents IE11 bug where menu receives focus even though `tabindex=-1` + if (document.activeElement.tagName.toLowerCase() !== 'input') { + $(document.activeElement).blur(); + } + if(!isBubbledEvent && (!hasSubMenu || settings.allowCategorySelection)) { + if(module.is.searchSelection()) { + if(settings.allowAdditions) { + module.remove.userAddition(); + } + module.remove.searchTerm(); + if(!module.is.focusedOnSearch() && !(skipRefocus == true)) { + module.focusSearch(true); + } + } + if(!settings.useLabels) { + module.remove.filteredItem(); + module.set.scrollPosition($choice); + } + module.determine.selectAction.call(this, text, value); + } + } + }, + + document: { + // label selection should occur even when element has no focus + keydown: function(event) { + var + pressedKey = event.which, + isShortcutKey = module.is.inObject(pressedKey, keys) + ; + if(isShortcutKey) { + var + $label = $module.find(selector.label), + $activeLabel = $label.filter('.' + className.active), + activeValue = $activeLabel.data(metadata.value), + labelIndex = $label.index($activeLabel), + labelCount = $label.length, + hasActiveLabel = ($activeLabel.length > 0), + hasMultipleActive = ($activeLabel.length > 1), + isFirstLabel = (labelIndex === 0), + isLastLabel = (labelIndex + 1 == labelCount), + isSearch = module.is.searchSelection(), + isFocusedOnSearch = module.is.focusedOnSearch(), + isFocused = module.is.focused(), + caretAtStart = (isFocusedOnSearch && module.get.caretPosition(false) === 0), + isSelectedSearch = (caretAtStart && module.get.caretPosition(true) !== 0), + $nextLabel + ; + if(isSearch && !hasActiveLabel && !isFocusedOnSearch) { + return; + } + + if(pressedKey == keys.leftArrow) { + // activate previous label + if((isFocused || caretAtStart) && !hasActiveLabel) { + module.verbose('Selecting previous label'); + $label.last().addClass(className.active); + } + else if(hasActiveLabel) { + if(!event.shiftKey) { + module.verbose('Selecting previous label'); + $label.removeClass(className.active); + } + else { + module.verbose('Adding previous label to selection'); + } + if(isFirstLabel && !hasMultipleActive) { + $activeLabel.addClass(className.active); + } + else { + $activeLabel.prev(selector.siblingLabel) + .addClass(className.active) + .end() + ; + } + event.preventDefault(); + } + } + else if(pressedKey == keys.rightArrow) { + // activate first label + if(isFocused && !hasActiveLabel) { + $label.first().addClass(className.active); + } + // activate next label + if(hasActiveLabel) { + if(!event.shiftKey) { + module.verbose('Selecting next label'); + $label.removeClass(className.active); + } + else { + module.verbose('Adding next label to selection'); + } + if(isLastLabel) { + if(isSearch) { + if(!isFocusedOnSearch) { + module.focusSearch(); + } + else { + $label.removeClass(className.active); + } + } + else if(hasMultipleActive) { + $activeLabel.next(selector.siblingLabel).addClass(className.active); + } + else { + $activeLabel.addClass(className.active); + } + } + else { + $activeLabel.next(selector.siblingLabel).addClass(className.active); + } + event.preventDefault(); + } + } + else if(pressedKey == keys.deleteKey || pressedKey == keys.backspace) { + if(hasActiveLabel) { + module.verbose('Removing active labels'); + if(isLastLabel) { + if(isSearch && !isFocusedOnSearch) { + module.focusSearch(); + } + } + $activeLabel.last().next(selector.siblingLabel).addClass(className.active); + module.remove.activeLabels($activeLabel); + event.preventDefault(); + } + else if(caretAtStart && !isSelectedSearch && !hasActiveLabel && pressedKey == keys.backspace) { + module.verbose('Removing last label on input backspace'); + $activeLabel = $label.last().addClass(className.active); + module.remove.activeLabels($activeLabel); + } + } + else { + $activeLabel.removeClass(className.active); + } + } + } + }, + + keydown: function(event) { + var + pressedKey = event.which, + isShortcutKey = module.is.inObject(pressedKey, keys) + ; + if(isShortcutKey) { + var + $currentlySelected = $item.not(selector.unselectable).filter('.' + className.selected).eq(0), + $activeItem = $menu.children('.' + className.active).eq(0), + $selectedItem = ($currentlySelected.length > 0) + ? $currentlySelected + : $activeItem, + $visibleItems = ($selectedItem.length > 0) + ? $selectedItem.siblings(':not(.' + className.filtered +')').addBack() + : $menu.children(':not(.' + className.filtered +')'), + $subMenu = $selectedItem.children(selector.menu), + $parentMenu = $selectedItem.closest(selector.menu), + inVisibleMenu = ($parentMenu.hasClass(className.visible) || $parentMenu.hasClass(className.animating) || $parentMenu.parent(selector.menu).length > 0), + hasSubMenu = ($subMenu.length> 0), + hasSelectedItem = ($selectedItem.length > 0), + selectedIsSelectable = ($selectedItem.not(selector.unselectable).length > 0), + delimiterPressed = (pressedKey == keys.delimiter && settings.allowAdditions && module.is.multiple()), + isAdditionWithoutMenu = (settings.allowAdditions && settings.hideAdditions && (pressedKey == keys.enter || delimiterPressed) && selectedIsSelectable), + $nextItem, + isSubMenuItem, + newIndex + ; + // allow selection with menu closed + if(isAdditionWithoutMenu) { + module.verbose('Selecting item from keyboard shortcut', $selectedItem); + module.event.item.click.call($selectedItem, event); + if(module.is.searchSelection()) { + module.remove.searchTerm(); + } + if(module.is.multiple()){ + event.preventDefault(); + } + } + + // visible menu keyboard shortcuts + if( module.is.visible() ) { + + // enter (select or open sub-menu) + if(pressedKey == keys.enter || delimiterPressed) { + if(pressedKey == keys.enter && hasSelectedItem && hasSubMenu && !settings.allowCategorySelection) { + module.verbose('Pressed enter on unselectable category, opening sub menu'); + pressedKey = keys.rightArrow; + } + else if(selectedIsSelectable) { + module.verbose('Selecting item from keyboard shortcut', $selectedItem); + module.event.item.click.call($selectedItem, event); + if(module.is.searchSelection()) { + module.remove.searchTerm(); + if(module.is.multiple()) { + $search.focus(); + } + } + } + event.preventDefault(); + } + + // sub-menu actions + if(hasSelectedItem) { + + if(pressedKey == keys.leftArrow) { + + isSubMenuItem = ($parentMenu[0] !== $menu[0]); + + if(isSubMenuItem) { + module.verbose('Left key pressed, closing sub-menu'); + module.animate.hide(false, $parentMenu); + $selectedItem + .removeClass(className.selected) + ; + $parentMenu + .closest(selector.item) + .addClass(className.selected) + ; + event.preventDefault(); + } + } + + // right arrow (show sub-menu) + if(pressedKey == keys.rightArrow) { + if(hasSubMenu) { + module.verbose('Right key pressed, opening sub-menu'); + module.animate.show(false, $subMenu); + $selectedItem + .removeClass(className.selected) + ; + $subMenu + .find(selector.item).eq(0) + .addClass(className.selected) + ; + event.preventDefault(); + } + } + } + + // up arrow (traverse menu up) + if(pressedKey == keys.upArrow) { + $nextItem = (hasSelectedItem && inVisibleMenu) + ? $selectedItem.prevAll(selector.item + ':not(' + selector.unselectable + ')').eq(0) + : $item.eq(0) + ; + if($visibleItems.index( $nextItem ) < 0) { + module.verbose('Up key pressed but reached top of current menu'); + event.preventDefault(); + return; + } + else { + module.verbose('Up key pressed, changing active item'); + $selectedItem + .removeClass(className.selected) + ; + $nextItem + .addClass(className.selected) + ; + module.set.scrollPosition($nextItem); + if(settings.selectOnKeydown && module.is.single()) { + module.set.selectedItem($nextItem); + } + } + event.preventDefault(); + } + + // down arrow (traverse menu down) + if(pressedKey == keys.downArrow) { + $nextItem = (hasSelectedItem && inVisibleMenu) + ? $nextItem = $selectedItem.nextAll(selector.item + ':not(' + selector.unselectable + ')').eq(0) + : $item.eq(0) + ; + if($nextItem.length === 0) { + module.verbose('Down key pressed but reached bottom of current menu'); + event.preventDefault(); + return; + } + else { + module.verbose('Down key pressed, changing active item'); + $item + .removeClass(className.selected) + ; + $nextItem + .addClass(className.selected) + ; + module.set.scrollPosition($nextItem); + if(settings.selectOnKeydown && module.is.single()) { + module.set.selectedItem($nextItem); + } + } + event.preventDefault(); + } + + // page down (show next page) + if(pressedKey == keys.pageUp) { + module.scrollPage('up'); + event.preventDefault(); + } + if(pressedKey == keys.pageDown) { + module.scrollPage('down'); + event.preventDefault(); + } + + // escape (close menu) + if(pressedKey == keys.escape) { + module.verbose('Escape key pressed, closing dropdown'); + module.hide(); + } + + } + else { + // delimiter key + if(delimiterPressed) { + event.preventDefault(); + } + // down arrow (open menu) + if(pressedKey == keys.downArrow && !module.is.visible()) { + module.verbose('Down key pressed, showing dropdown'); + module.show(); + event.preventDefault(); + } + } + } + else { + if( !module.has.search() ) { + module.set.selectedLetter( String.fromCharCode(pressedKey) ); + } + } + } + }, + + trigger: { + change: function() { + var + inputElement = $input[0] + ; + if(inputElement) { + var events = document.createEvent('HTMLEvents'); + module.verbose('Triggering native change event'); + events.initEvent('change', true, false); + inputElement.dispatchEvent(events); + } + } + }, + + determine: { + selectAction: function(text, value) { + selectActionActive = true; + module.verbose('Determining action', settings.action); + if( $.isFunction( module.action[settings.action] ) ) { + module.verbose('Triggering preset action', settings.action, text, value); + module.action[ settings.action ].call(element, text, value, this); + } + else if( $.isFunction(settings.action) ) { + module.verbose('Triggering user action', settings.action, text, value); + settings.action.call(element, text, value, this); + } + else { + module.error(error.action, settings.action); + } + selectActionActive = false; + }, + eventInModule: function(event, callback) { + var + $target = $(event.target), + inDocument = ($target.closest(document.documentElement).length > 0), + inModule = ($target.closest($module).length > 0) + ; + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if(inDocument && !inModule) { + module.verbose('Triggering event', callback); + callback(); + return true; + } + else { + module.verbose('Event occurred in dropdown, canceling callback'); + return false; + } + }, + eventOnElement: function(event, callback) { + var + $target = $(event.target), + $label = $target.closest(selector.siblingLabel), + inVisibleDOM = document.body.contains(event.target), + notOnLabel = ($module.find($label).length === 0 || !(module.is.multiple() && settings.useLabels)), + notInMenu = ($target.closest($menu).length === 0) + ; + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if(inVisibleDOM && notOnLabel && notInMenu) { + module.verbose('Triggering event', callback); + callback(); + return true; + } + else { + module.verbose('Event occurred in dropdown menu, canceling callback'); + return false; + } + } + }, + + action: { + + nothing: function() {}, + + activate: function(text, value, element) { + value = (value !== undefined) + ? value + : text + ; + if( module.can.activate( $(element) ) ) { + module.set.selected(value, $(element)); + if(!module.is.multiple()) { + module.hideAndClear(); + } + } + }, + + select: function(text, value, element) { + value = (value !== undefined) + ? value + : text + ; + if( module.can.activate( $(element) ) ) { + module.set.value(value, text, $(element)); + if(!module.is.multiple()) { + module.hideAndClear(); + } + } + }, + + combo: function(text, value, element) { + value = (value !== undefined) + ? value + : text + ; + module.set.selected(value, $(element)); + module.hideAndClear(); + }, + + hide: function(text, value, element) { + module.set.value(value, text, $(element)); + module.hideAndClear(); + } + + }, + + get: { + id: function() { + return id; + }, + defaultText: function() { + return $module.data(metadata.defaultText); + }, + defaultValue: function() { + return $module.data(metadata.defaultValue); + }, + placeholderText: function() { + if(settings.placeholder != 'auto' && typeof settings.placeholder == 'string') { + return settings.placeholder; + } + return $module.data(metadata.placeholderText) || ''; + }, + text: function() { + return settings.preserveHTML ? $text.html() : $text.text(); + }, + query: function() { + return String($search.val()).trim(); + }, + searchWidth: function(value) { + value = (value !== undefined) + ? value + : $search.val() + ; + $sizer.text(value); + // prevent rounding issues + return Math.ceil( $sizer.width() + 1); + }, + selectionCount: function() { + var + values = module.get.values(), + count + ; + count = ( module.is.multiple() ) + ? Array.isArray(values) + ? values.length + : 0 + : (module.get.value() !== '') + ? 1 + : 0 + ; + return count; + }, + transition: function($subMenu) { + return (settings.transition == 'auto') + ? module.is.upward($subMenu) + ? 'slide up' + : 'slide down' + : settings.transition + ; + }, + userValues: function() { + var + values = module.get.values() + ; + if(!values) { + return false; + } + values = Array.isArray(values) + ? values + : [values] + ; + return $.grep(values, function(value) { + return (module.get.item(value) === false); + }); + }, + uniqueArray: function(array) { + return $.grep(array, function (value, index) { + return $.inArray(value, array) === index; + }); + }, + caretPosition: function(returnEndPos) { + var + input = $search.get(0), + range, + rangeLength + ; + if(returnEndPos && 'selectionEnd' in input){ + return input.selectionEnd; + } + else if(!returnEndPos && 'selectionStart' in input) { + return input.selectionStart; + } + if (document.selection) { + input.focus(); + range = document.selection.createRange(); + rangeLength = range.text.length; + if(returnEndPos) { + return rangeLength; + } + range.moveStart('character', -input.value.length); + return range.text.length - rangeLength; + } + }, + value: function() { + var + value = ($input.length > 0) + ? $input.val() + : $module.data(metadata.value), + isEmptyMultiselect = (Array.isArray(value) && value.length === 1 && value[0] === '') + ; + // prevents placeholder element from being selected when multiple + return (value === undefined || isEmptyMultiselect) + ? '' + : value + ; + }, + values: function() { + var + value = module.get.value() + ; + if(value === '') { + return ''; + } + return ( !module.has.selectInput() && module.is.multiple() ) + ? (typeof value == 'string') // delimited string + ? module.escape.htmlEntities(value).split(settings.delimiter) + : '' + : value + ; + }, + remoteValues: function() { + var + values = module.get.values(), + remoteValues = false + ; + if(values) { + if(typeof values == 'string') { + values = [values]; + } + $.each(values, function(index, value) { + var + name = module.read.remoteData(value) + ; + module.verbose('Restoring value from session data', name, value); + if(name) { + if(!remoteValues) { + remoteValues = {}; + } + remoteValues[value] = name; + } + }); + } + return remoteValues; + }, + choiceText: function($choice, preserveHTML) { + preserveHTML = (preserveHTML !== undefined) + ? preserveHTML + : settings.preserveHTML + ; + if($choice) { + if($choice.find(selector.menu).length > 0) { + module.verbose('Retrieving text of element with sub-menu'); + $choice = $choice.clone(); + $choice.find(selector.menu).remove(); + $choice.find(selector.menuIcon).remove(); + } + return ($choice.data(metadata.text) !== undefined) + ? $choice.data(metadata.text) + : (preserveHTML) + ? $choice.html().trim() + : $choice.text().trim() + ; + } + }, + choiceValue: function($choice, choiceText) { + choiceText = choiceText || module.get.choiceText($choice); + if(!$choice) { + return false; + } + return ($choice.data(metadata.value) !== undefined) + ? String( $choice.data(metadata.value) ) + : (typeof choiceText === 'string') + ? String( + settings.ignoreSearchCase + ? choiceText.toLowerCase() + : choiceText + ).trim() + : String(choiceText) + ; + }, + inputEvent: function() { + var + input = $search[0] + ; + if(input) { + return (input.oninput !== undefined) + ? 'input' + : (input.onpropertychange !== undefined) + ? 'propertychange' + : 'keyup' + ; + } + return false; + }, + selectValues: function() { + var + select = {}, + oldGroup = [], + values = [] + ; + $module + .find('option') + .each(function() { + var + $option = $(this), + name = $option.html(), + disabled = $option.attr('disabled'), + value = ( $option.attr('value') !== undefined ) + ? $option.attr('value') + : name, + text = ( $option.data(metadata.text) !== undefined ) + ? $option.data(metadata.text) + : name, + group = $option.parent('optgroup') + ; + if(settings.placeholder === 'auto' && value === '') { + select.placeholder = name; + } + else { + if(group.length !== oldGroup.length || group[0] !== oldGroup[0]) { + values.push({ + type: 'header', + divider: settings.headerDivider, + name: group.attr('label') || '' + }); + oldGroup = group; + } + values.push({ + name : name, + value : value, + text : text, + disabled : disabled + }); + } + }) + ; + if(settings.placeholder && settings.placeholder !== 'auto') { + module.debug('Setting placeholder value to', settings.placeholder); + select.placeholder = settings.placeholder; + } + if(settings.sortSelect) { + if(settings.sortSelect === true) { + values.sort(function(a, b) { + return a.name.localeCompare(b.name); + }); + } else if(settings.sortSelect === 'natural') { + values.sort(function(a, b) { + return (a.name.toLowerCase().localeCompare(b.name.toLowerCase())); + }); + } else if($.isFunction(settings.sortSelect)) { + values.sort(settings.sortSelect); + } + select[fields.values] = values; + module.debug('Retrieved and sorted values from select', select); + } + else { + select[fields.values] = values; + module.debug('Retrieved values from select', select); + } + return select; + }, + activeItem: function() { + return $item.filter('.' + className.active); + }, + selectedItem: function() { + var + $selectedItem = $item.not(selector.unselectable).filter('.' + className.selected) + ; + return ($selectedItem.length > 0) + ? $selectedItem + : $item.eq(0) + ; + }, + itemWithAdditions: function(value) { + var + $items = module.get.item(value), + $userItems = module.create.userChoice(value), + hasUserItems = ($userItems && $userItems.length > 0) + ; + if(hasUserItems) { + $items = ($items.length > 0) + ? $items.add($userItems) + : $userItems + ; + } + return $items; + }, + item: function(value, strict) { + var + $selectedItem = false, + shouldSearch, + isMultiple + ; + value = (value !== undefined) + ? value + : ( module.get.values() !== undefined) + ? module.get.values() + : module.get.text() + ; + isMultiple = (module.is.multiple() && Array.isArray(value)); + shouldSearch = (isMultiple) + ? (value.length > 0) + : (value !== undefined && value !== null) + ; + strict = (value === '' || value === false || value === true) + ? true + : strict || false + ; + if(shouldSearch) { + $item + .each(function() { + var + $choice = $(this), + optionText = module.get.choiceText($choice), + optionValue = module.get.choiceValue($choice, optionText) + ; + // safe early exit + if(optionValue === null || optionValue === undefined) { + return; + } + if(isMultiple) { + if($.inArray(module.escape.htmlEntities(String(optionValue)), value.map(function(v){return String(v);})) !== -1) { + $selectedItem = ($selectedItem) + ? $selectedItem.add($choice) + : $choice + ; + } + } + else if(strict) { + module.verbose('Ambiguous dropdown value using strict type check', $choice, value); + if( optionValue === value) { + $selectedItem = $choice; + return true; + } + } + else { + if(settings.ignoreCase) { + optionValue = optionValue.toLowerCase(); + value = value.toLowerCase(); + } + if(module.escape.htmlEntities(String(optionValue)) === module.escape.htmlEntities(String(value))) { + module.verbose('Found select item by value', optionValue, value); + $selectedItem = $choice; + return true; + } + } + }) + ; + } + return $selectedItem; + } + }, + + check: { + maxSelections: function(selectionCount) { + if(settings.maxSelections) { + selectionCount = (selectionCount !== undefined) + ? selectionCount + : module.get.selectionCount() + ; + if(selectionCount >= settings.maxSelections) { + module.debug('Maximum selection count reached'); + if(settings.useLabels) { + $item.addClass(className.filtered); + module.add.message(message.maxSelections); + } + return true; + } + else { + module.verbose('No longer at maximum selection count'); + module.remove.message(); + module.remove.filteredItem(); + if(module.is.searchSelection()) { + module.filterItems(); + } + return false; + } + } + return true; + }, + disabled: function(){ + $search.attr('tabindex',module.is.disabled() ? -1 : 0); + } + }, + + restore: { + defaults: function(preventChangeTrigger) { + module.clear(preventChangeTrigger); + module.restore.defaultText(); + module.restore.defaultValue(); + }, + defaultText: function() { + var + defaultText = module.get.defaultText(), + placeholderText = module.get.placeholderText + ; + if(defaultText === placeholderText) { + module.debug('Restoring default placeholder text', defaultText); + module.set.placeholderText(defaultText); + } + else { + module.debug('Restoring default text', defaultText); + module.set.text(defaultText); + } + }, + placeholderText: function() { + module.set.placeholderText(); + }, + defaultValue: function() { + var + defaultValue = module.get.defaultValue() + ; + if(defaultValue !== undefined) { + module.debug('Restoring default value', defaultValue); + if(defaultValue !== '') { + module.set.value(defaultValue); + module.set.selected(); + } + else { + module.remove.activeItem(); + module.remove.selectedItem(); + } + } + }, + labels: function() { + if(settings.allowAdditions) { + if(!settings.useLabels) { + module.error(error.labels); + settings.useLabels = true; + } + module.debug('Restoring selected values'); + module.create.userLabels(); + } + module.check.maxSelections(); + }, + selected: function() { + module.restore.values(); + if(module.is.multiple()) { + module.debug('Restoring previously selected values and labels'); + module.restore.labels(); + } + else { + module.debug('Restoring previously selected values'); + } + }, + values: function() { + // prevents callbacks from occurring on initial load + module.set.initialLoad(); + if(settings.apiSettings && settings.saveRemoteData && module.get.remoteValues()) { + module.restore.remoteValues(); + } + else { + module.set.selected(); + } + var value = module.get.value(); + if(value && value !== '' && !(Array.isArray(value) && value.length === 0)) { + $input.removeClass(className.noselection); + } else { + $input.addClass(className.noselection); + } + module.remove.initialLoad(); + }, + remoteValues: function() { + var + values = module.get.remoteValues() + ; + module.debug('Recreating selected from session data', values); + if(values) { + if( module.is.single() ) { + $.each(values, function(value, name) { + module.set.text(name); + }); + } + else { + $.each(values, function(value, name) { + module.add.label(value, name); + }); + } + } + } + }, + + read: { + remoteData: function(value) { + var + name + ; + if(window.Storage === undefined) { + module.error(error.noStorage); + return; + } + name = sessionStorage.getItem(value); + return (name !== undefined) + ? name + : false + ; + } + }, + + save: { + defaults: function() { + module.save.defaultText(); + module.save.placeholderText(); + module.save.defaultValue(); + }, + defaultValue: function() { + var + value = module.get.value() + ; + module.verbose('Saving default value as', value); + $module.data(metadata.defaultValue, value); + }, + defaultText: function() { + var + text = module.get.text() + ; + module.verbose('Saving default text as', text); + $module.data(metadata.defaultText, text); + }, + placeholderText: function() { + var + text + ; + if(settings.placeholder !== false && $text.hasClass(className.placeholder)) { + text = module.get.text(); + module.verbose('Saving placeholder text as', text); + $module.data(metadata.placeholderText, text); + } + }, + remoteData: function(name, value) { + if(window.Storage === undefined) { + module.error(error.noStorage); + return; + } + module.verbose('Saving remote data to session storage', value, name); + sessionStorage.setItem(value, name); + } + }, + + clear: function(preventChangeTrigger) { + if(module.is.multiple() && settings.useLabels) { + module.remove.labels(); + } + else { + module.remove.activeItem(); + module.remove.selectedItem(); + module.remove.filteredItem(); + } + module.set.placeholderText(); + module.clearValue(preventChangeTrigger); + }, + + clearValue: function(preventChangeTrigger) { + module.set.value('', null, null, preventChangeTrigger); + }, + + scrollPage: function(direction, $selectedItem) { + var + $currentItem = $selectedItem || module.get.selectedItem(), + $menu = $currentItem.closest(selector.menu), + menuHeight = $menu.outerHeight(), + currentScroll = $menu.scrollTop(), + itemHeight = $item.eq(0).outerHeight(), + itemsPerPage = Math.floor(menuHeight / itemHeight), + maxScroll = $menu.prop('scrollHeight'), + newScroll = (direction == 'up') + ? currentScroll - (itemHeight * itemsPerPage) + : currentScroll + (itemHeight * itemsPerPage), + $selectableItem = $item.not(selector.unselectable), + isWithinRange, + $nextSelectedItem, + elementIndex + ; + elementIndex = (direction == 'up') + ? $selectableItem.index($currentItem) - itemsPerPage + : $selectableItem.index($currentItem) + itemsPerPage + ; + isWithinRange = (direction == 'up') + ? (elementIndex >= 0) + : (elementIndex < $selectableItem.length) + ; + $nextSelectedItem = (isWithinRange) + ? $selectableItem.eq(elementIndex) + : (direction == 'up') + ? $selectableItem.first() + : $selectableItem.last() + ; + if($nextSelectedItem.length > 0) { + module.debug('Scrolling page', direction, $nextSelectedItem); + $currentItem + .removeClass(className.selected) + ; + $nextSelectedItem + .addClass(className.selected) + ; + if(settings.selectOnKeydown && module.is.single()) { + module.set.selectedItem($nextSelectedItem); + } + $menu + .scrollTop(newScroll) + ; + } + }, + + set: { + filtered: function() { + var + isMultiple = module.is.multiple(), + isSearch = module.is.searchSelection(), + isSearchMultiple = (isMultiple && isSearch), + searchValue = (isSearch) + ? module.get.query() + : '', + hasSearchValue = (typeof searchValue === 'string' && searchValue.length > 0), + searchWidth = module.get.searchWidth(), + valueIsSet = searchValue !== '' + ; + if(isMultiple && hasSearchValue) { + module.verbose('Adjusting input width', searchWidth, settings.glyphWidth); + $search.css('width', searchWidth); + } + if(hasSearchValue || (isSearchMultiple && valueIsSet)) { + module.verbose('Hiding placeholder text'); + $text.addClass(className.filtered); + } + else if(!isMultiple || (isSearchMultiple && !valueIsSet)) { + module.verbose('Showing placeholder text'); + $text.removeClass(className.filtered); + } + }, + empty: function() { + $module.addClass(className.empty); + }, + loading: function() { + $module.addClass(className.loading); + }, + placeholderText: function(text) { + text = text || module.get.placeholderText(); + module.debug('Setting placeholder text', text); + module.set.text(text); + $text.addClass(className.placeholder); + }, + tabbable: function() { + if( module.is.searchSelection() ) { + module.debug('Added tabindex to searchable dropdown'); + $search + .val('') + ; + module.check.disabled(); + $menu + .attr('tabindex', -1) + ; + } + else { + module.debug('Added tabindex to dropdown'); + if( $module.attr('tabindex') === undefined) { + $module + .attr('tabindex', 0) + ; + $menu + .attr('tabindex', -1) + ; + } + } + }, + initialLoad: function() { + module.verbose('Setting initial load'); + initialLoad = true; + }, + activeItem: function($item) { + if( settings.allowAdditions && $item.filter(selector.addition).length > 0 ) { + $item.addClass(className.filtered); + } + else { + $item.addClass(className.active); + } + }, + partialSearch: function(text) { + var + length = module.get.query().length + ; + $search.val( text.substr(0, length)); + }, + scrollPosition: function($item, forceScroll) { + var + edgeTolerance = 5, + $menu, + hasActive, + offset, + itemHeight, + itemOffset, + menuOffset, + menuScroll, + menuHeight, + abovePage, + belowPage + ; + + $item = $item || module.get.selectedItem(); + $menu = $item.closest(selector.menu); + hasActive = ($item && $item.length > 0); + forceScroll = (forceScroll !== undefined) + ? forceScroll + : false + ; + if(module.get.activeItem().length === 0){ + forceScroll = false; + } + if($item && $menu.length > 0 && hasActive) { + itemOffset = $item.position().top; + + $menu.addClass(className.loading); + menuScroll = $menu.scrollTop(); + menuOffset = $menu.offset().top; + itemOffset = $item.offset().top; + offset = menuScroll - menuOffset + itemOffset; + if(!forceScroll) { + menuHeight = $menu.height(); + belowPage = menuScroll + menuHeight < (offset + edgeTolerance); + abovePage = ((offset - edgeTolerance) < menuScroll); + } + module.debug('Scrolling to active item', offset); + if(forceScroll || abovePage || belowPage) { + $menu.scrollTop(offset); + } + $menu.removeClass(className.loading); + } + }, + text: function(text) { + if(settings.action === 'combo') { + module.debug('Changing combo button text', text, $combo); + if(settings.preserveHTML) { + $combo.html(text); + } + else { + $combo.text(text); + } + } + else if(settings.action === 'activate') { + if(text !== module.get.placeholderText()) { + $text.removeClass(className.placeholder); + } + module.debug('Changing text', text, $text); + $text + .removeClass(className.filtered) + ; + if(settings.preserveHTML) { + $text.html(text); + } + else { + $text.text(text); + } + } + }, + selectedItem: function($item) { + var + value = module.get.choiceValue($item), + searchText = module.get.choiceText($item, false), + text = module.get.choiceText($item, true) + ; + module.debug('Setting user selection to item', $item); + module.remove.activeItem(); + module.set.partialSearch(searchText); + module.set.activeItem($item); + module.set.selected(value, $item); + module.set.text(text); + }, + selectedLetter: function(letter) { + var + $selectedItem = $item.filter('.' + className.selected), + alreadySelectedLetter = $selectedItem.length > 0 && module.has.firstLetter($selectedItem, letter), + $nextValue = false, + $nextItem + ; + // check next of same letter + if(alreadySelectedLetter) { + $nextItem = $selectedItem.nextAll($item).eq(0); + if( module.has.firstLetter($nextItem, letter) ) { + $nextValue = $nextItem; + } + } + // check all values + if(!$nextValue) { + $item + .each(function(){ + if(module.has.firstLetter($(this), letter)) { + $nextValue = $(this); + return false; + } + }) + ; + } + // set next value + if($nextValue) { + module.verbose('Scrolling to next value with letter', letter); + module.set.scrollPosition($nextValue); + $selectedItem.removeClass(className.selected); + $nextValue.addClass(className.selected); + if(settings.selectOnKeydown && module.is.single()) { + module.set.selectedItem($nextValue); + } + } + }, + direction: function($menu) { + if(settings.direction == 'auto') { + // reset position, remove upward if it's base menu + if (!$menu) { + module.remove.upward(); + } else if (module.is.upward($menu)) { + //we need make sure when make assertion openDownward for $menu, $menu does not have upward class + module.remove.upward($menu); + } + + if(module.can.openDownward($menu)) { + module.remove.upward($menu); + } + else { + module.set.upward($menu); + } + if(!module.is.leftward($menu) && !module.can.openRightward($menu)) { + module.set.leftward($menu); + } + } + else if(settings.direction == 'upward') { + module.set.upward($menu); + } + }, + upward: function($currentMenu) { + var $element = $currentMenu || $module; + $element.addClass(className.upward); + }, + leftward: function($currentMenu) { + var $element = $currentMenu || $menu; + $element.addClass(className.leftward); + }, + value: function(value, text, $selected, preventChangeTrigger) { + if(value !== undefined && value !== '' && !(Array.isArray(value) && value.length === 0)) { + $input.removeClass(className.noselection); + } else { + $input.addClass(className.noselection); + } + var + escapedValue = module.escape.value(value), + hasInput = ($input.length > 0), + currentValue = module.get.values(), + stringValue = (value !== undefined) + ? String(value) + : value, + newValue + ; + if(hasInput) { + if(!settings.allowReselection && stringValue == currentValue) { + module.verbose('Skipping value update already same value', value, currentValue); + if(!module.is.initialLoad()) { + return; + } + } + + if( module.is.single() && module.has.selectInput() && module.can.extendSelect() ) { + module.debug('Adding user option', value); + module.add.optionValue(value); + } + module.debug('Updating input value', escapedValue, currentValue); + internalChange = true; + $input + .val(escapedValue) + ; + if(settings.fireOnInit === false && module.is.initialLoad()) { + module.debug('Input native change event ignored on initial load'); + } + else if(preventChangeTrigger !== true) { + module.trigger.change(); + } + internalChange = false; + } + else { + module.verbose('Storing value in metadata', escapedValue, $input); + if(escapedValue !== currentValue) { + $module.data(metadata.value, stringValue); + } + } + if(settings.fireOnInit === false && module.is.initialLoad()) { + module.verbose('No callback on initial load', settings.onChange); + } + else if(preventChangeTrigger !== true) { + settings.onChange.call(element, value, text, $selected); + } + }, + active: function() { + $module + .addClass(className.active) + ; + }, + multiple: function() { + $module.addClass(className.multiple); + }, + visible: function() { + $module.addClass(className.visible); + }, + exactly: function(value, $selectedItem) { + module.debug('Setting selected to exact values'); + module.clear(); + module.set.selected(value, $selectedItem); + }, + selected: function(value, $selectedItem) { + var + isMultiple = module.is.multiple() + ; + $selectedItem = (settings.allowAdditions) + ? $selectedItem || module.get.itemWithAdditions(value) + : $selectedItem || module.get.item(value) + ; + if(!$selectedItem) { + return; + } + module.debug('Setting selected menu item to', $selectedItem); + if(module.is.multiple()) { + module.remove.searchWidth(); + } + if(module.is.single()) { + module.remove.activeItem(); + module.remove.selectedItem(); + } + else if(settings.useLabels) { + module.remove.selectedItem(); + } + // select each item + $selectedItem + .each(function() { + var + $selected = $(this), + selectedText = module.get.choiceText($selected), + selectedValue = module.get.choiceValue($selected, selectedText), + + isFiltered = $selected.hasClass(className.filtered), + isActive = $selected.hasClass(className.active), + isUserValue = $selected.hasClass(className.addition), + shouldAnimate = (isMultiple && $selectedItem.length == 1) + ; + if(isMultiple) { + if(!isActive || isUserValue) { + if(settings.apiSettings && settings.saveRemoteData) { + module.save.remoteData(selectedText, selectedValue); + } + if(settings.useLabels) { + module.add.label(selectedValue, selectedText, shouldAnimate); + module.add.value(selectedValue, selectedText, $selected); + module.set.activeItem($selected); + module.filterActive(); + module.select.nextAvailable($selectedItem); + } + else { + module.add.value(selectedValue, selectedText, $selected); + module.set.text(module.add.variables(message.count)); + module.set.activeItem($selected); + } + } + else if(!isFiltered && (settings.useLabels || selectActionActive)) { + module.debug('Selected active value, removing label'); + module.remove.selected(selectedValue); + } + } + else { + if(settings.apiSettings && settings.saveRemoteData) { + module.save.remoteData(selectedText, selectedValue); + } + module.set.text(selectedText); + module.set.value(selectedValue, selectedText, $selected); + $selected + .addClass(className.active) + .addClass(className.selected) + ; + } + }) + ; + module.remove.searchTerm(); + } + }, + + add: { + label: function(value, text, shouldAnimate) { + var + $next = module.is.searchSelection() + ? $search + : $text, + escapedValue = module.escape.value(value), + $label + ; + if(settings.ignoreCase) { + escapedValue = escapedValue.toLowerCase(); + } + $label = $('<a />') + .addClass(className.label) + .attr('data-' + metadata.value, escapedValue) + .html(templates.label(escapedValue, text, settings.preserveHTML, settings.className)) + ; + $label = settings.onLabelCreate.call($label, escapedValue, text); + + if(module.has.label(value)) { + module.debug('User selection already exists, skipping', escapedValue); + return; + } + if(settings.label.variation) { + $label.addClass(settings.label.variation); + } + if(shouldAnimate === true) { + module.debug('Animating in label', $label); + $label + .addClass(className.hidden) + .insertBefore($next) + .transition({ + animation : settings.label.transition, + debug : settings.debug, + verbose : settings.verbose, + duration : settings.label.duration + }) + ; + } + else { + module.debug('Adding selection label', $label); + $label + .insertBefore($next) + ; + } + }, + message: function(message) { + var + $message = $menu.children(selector.message), + html = settings.templates.message(module.add.variables(message)) + ; + if($message.length > 0) { + $message + .html(html) + ; + } + else { + $message = $('<div/>') + .html(html) + .addClass(className.message) + .appendTo($menu) + ; + } + }, + optionValue: function(value) { + var + escapedValue = module.escape.value(value), + $option = $input.find('option[value="' + module.escape.string(escapedValue) + '"]'), + hasOption = ($option.length > 0) + ; + if(hasOption) { + return; + } + // temporarily disconnect observer + module.disconnect.selectObserver(); + if( module.is.single() ) { + module.verbose('Removing previous user addition'); + $input.find('option.' + className.addition).remove(); + } + $('<option/>') + .prop('value', escapedValue) + .addClass(className.addition) + .html(value) + .appendTo($input) + ; + module.verbose('Adding user addition as an <option>', value); + module.observe.select(); + }, + userSuggestion: function(value) { + var + $addition = $menu.children(selector.addition), + $existingItem = module.get.item(value), + alreadyHasValue = $existingItem && $existingItem.not(selector.addition).length, + hasUserSuggestion = $addition.length > 0, + html + ; + if(settings.useLabels && module.has.maxSelections()) { + return; + } + if(value === '' || alreadyHasValue) { + $addition.remove(); + return; + } + if(hasUserSuggestion) { + $addition + .data(metadata.value, value) + .data(metadata.text, value) + .attr('data-' + metadata.value, value) + .attr('data-' + metadata.text, value) + .removeClass(className.filtered) + ; + if(!settings.hideAdditions) { + html = settings.templates.addition( module.add.variables(message.addResult, value) ); + $addition + .html(html) + ; + } + module.verbose('Replacing user suggestion with new value', $addition); + } + else { + $addition = module.create.userChoice(value); + $addition + .prependTo($menu) + ; + module.verbose('Adding item choice to menu corresponding with user choice addition', $addition); + } + if(!settings.hideAdditions || module.is.allFiltered()) { + $addition + .addClass(className.selected) + .siblings() + .removeClass(className.selected) + ; + } + module.refreshItems(); + }, + variables: function(message, term) { + var + hasCount = (message.search('{count}') !== -1), + hasMaxCount = (message.search('{maxCount}') !== -1), + hasTerm = (message.search('{term}') !== -1), + count, + query + ; + module.verbose('Adding templated variables to message', message); + if(hasCount) { + count = module.get.selectionCount(); + message = message.replace('{count}', count); + } + if(hasMaxCount) { + count = module.get.selectionCount(); + message = message.replace('{maxCount}', settings.maxSelections); + } + if(hasTerm) { + query = term || module.get.query(); + message = message.replace('{term}', query); + } + return message; + }, + value: function(addedValue, addedText, $selectedItem) { + var + currentValue = module.get.values(), + newValue + ; + if(module.has.value(addedValue)) { + module.debug('Value already selected'); + return; + } + if(addedValue === '') { + module.debug('Cannot select blank values from multiselect'); + return; + } + // extend current array + if(Array.isArray(currentValue)) { + newValue = currentValue.concat([addedValue]); + newValue = module.get.uniqueArray(newValue); + } + else { + newValue = [addedValue]; + } + // add values + if( module.has.selectInput() ) { + if(module.can.extendSelect()) { + module.debug('Adding value to select', addedValue, newValue, $input); + module.add.optionValue(addedValue); + } + } + else { + newValue = newValue.join(settings.delimiter); + module.debug('Setting hidden input to delimited value', newValue, $input); + } + + if(settings.fireOnInit === false && module.is.initialLoad()) { + module.verbose('Skipping onadd callback on initial load', settings.onAdd); + } + else { + settings.onAdd.call(element, addedValue, addedText, $selectedItem); + } + module.set.value(newValue, addedText, $selectedItem); + module.check.maxSelections(); + }, + }, + + remove: { + active: function() { + $module.removeClass(className.active); + }, + activeLabel: function() { + $module.find(selector.label).removeClass(className.active); + }, + empty: function() { + $module.removeClass(className.empty); + }, + loading: function() { + $module.removeClass(className.loading); + }, + initialLoad: function() { + initialLoad = false; + }, + upward: function($currentMenu) { + var $element = $currentMenu || $module; + $element.removeClass(className.upward); + }, + leftward: function($currentMenu) { + var $element = $currentMenu || $menu; + $element.removeClass(className.leftward); + }, + visible: function() { + $module.removeClass(className.visible); + }, + activeItem: function() { + $item.removeClass(className.active); + }, + filteredItem: function() { + if(settings.useLabels && module.has.maxSelections() ) { + return; + } + if(settings.useLabels && module.is.multiple()) { + $item.not('.' + className.active).removeClass(className.filtered); + } + else { + $item.removeClass(className.filtered); + } + if(settings.hideDividers) { + $divider.removeClass(className.hidden); + } + module.remove.empty(); + }, + optionValue: function(value) { + var + escapedValue = module.escape.value(value), + $option = $input.find('option[value="' + module.escape.string(escapedValue) + '"]'), + hasOption = ($option.length > 0) + ; + if(!hasOption || !$option.hasClass(className.addition)) { + return; + } + // temporarily disconnect observer + if(selectObserver) { + selectObserver.disconnect(); + module.verbose('Temporarily disconnecting mutation observer'); + } + $option.remove(); + module.verbose('Removing user addition as an <option>', escapedValue); + if(selectObserver) { + selectObserver.observe($input[0], { + childList : true, + subtree : true + }); + } + }, + message: function() { + $menu.children(selector.message).remove(); + }, + searchWidth: function() { + $search.css('width', ''); + }, + searchTerm: function() { + module.verbose('Cleared search term'); + $search.val(''); + module.set.filtered(); + }, + userAddition: function() { + $item.filter(selector.addition).remove(); + }, + selected: function(value, $selectedItem) { + $selectedItem = (settings.allowAdditions) + ? $selectedItem || module.get.itemWithAdditions(value) + : $selectedItem || module.get.item(value) + ; + + if(!$selectedItem) { + return false; + } + + $selectedItem + .each(function() { + var + $selected = $(this), + selectedText = module.get.choiceText($selected), + selectedValue = module.get.choiceValue($selected, selectedText) + ; + if(module.is.multiple()) { + if(settings.useLabels) { + module.remove.value(selectedValue, selectedText, $selected); + module.remove.label(selectedValue); + } + else { + module.remove.value(selectedValue, selectedText, $selected); + if(module.get.selectionCount() === 0) { + module.set.placeholderText(); + } + else { + module.set.text(module.add.variables(message.count)); + } + } + } + else { + module.remove.value(selectedValue, selectedText, $selected); + } + $selected + .removeClass(className.filtered) + .removeClass(className.active) + ; + if(settings.useLabels) { + $selected.removeClass(className.selected); + } + }) + ; + }, + selectedItem: function() { + $item.removeClass(className.selected); + }, + value: function(removedValue, removedText, $removedItem) { + var + values = module.get.values(), + newValue + ; + removedValue = module.escape.htmlEntities(removedValue); + if( module.has.selectInput() ) { + module.verbose('Input is <select> removing selected option', removedValue); + newValue = module.remove.arrayValue(removedValue, values); + module.remove.optionValue(removedValue); + } + else { + module.verbose('Removing from delimited values', removedValue); + newValue = module.remove.arrayValue(removedValue, values); + newValue = newValue.join(settings.delimiter); + } + if(settings.fireOnInit === false && module.is.initialLoad()) { + module.verbose('No callback on initial load', settings.onRemove); + } + else { + settings.onRemove.call(element, removedValue, removedText, $removedItem); + } + module.set.value(newValue, removedText, $removedItem); + module.check.maxSelections(); + }, + arrayValue: function(removedValue, values) { + if( !Array.isArray(values) ) { + values = [values]; + } + values = $.grep(values, function(value){ + return (removedValue != value); + }); + module.verbose('Removed value from delimited string', removedValue, values); + return values; + }, + label: function(value, shouldAnimate) { + var + $labels = $module.find(selector.label), + $removedLabel = $labels.filter('[data-' + metadata.value + '="' + module.escape.string(settings.ignoreCase ? value.toLowerCase() : value) +'"]') + ; + module.verbose('Removing label', $removedLabel); + $removedLabel.remove(); + }, + activeLabels: function($activeLabels) { + $activeLabels = $activeLabels || $module.find(selector.label).filter('.' + className.active); + module.verbose('Removing active label selections', $activeLabels); + module.remove.labels($activeLabels); + }, + labels: function($labels) { + $labels = $labels || $module.find(selector.label); + module.verbose('Removing labels', $labels); + $labels + .each(function(){ + var + $label = $(this), + value = $label.data(metadata.value), + stringValue = (value !== undefined) + ? String(value) + : value, + isUserValue = module.is.userValue(stringValue) + ; + if(settings.onLabelRemove.call($label, value) === false) { + module.debug('Label remove callback cancelled removal'); + return; + } + module.remove.message(); + if(isUserValue) { + module.remove.value(stringValue); + module.remove.label(stringValue); + } + else { + // selected will also remove label + module.remove.selected(stringValue); + } + }) + ; + }, + tabbable: function() { + if( module.is.searchSelection() ) { + module.debug('Searchable dropdown initialized'); + $search + .removeAttr('tabindex') + ; + $menu + .removeAttr('tabindex') + ; + } + else { + module.debug('Simple selection dropdown initialized'); + $module + .removeAttr('tabindex') + ; + $menu + .removeAttr('tabindex') + ; + } + }, + diacritics: function(text) { + return settings.ignoreDiacritics ? text.normalize('NFD').replace(/[\u0300-\u036f]/g, '') : text; + } + }, + + has: { + menuSearch: function() { + return (module.has.search() && $search.closest($menu).length > 0); + }, + clearItem: function() { + return ($clear.length > 0); + }, + search: function() { + return ($search.length > 0); + }, + sizer: function() { + return ($sizer.length > 0); + }, + selectInput: function() { + return ( $input.is('select') ); + }, + minCharacters: function(searchTerm) { + if(settings.minCharacters && !iconClicked) { + searchTerm = (searchTerm !== undefined) + ? String(searchTerm) + : String(module.get.query()) + ; + return (searchTerm.length >= settings.minCharacters); + } + iconClicked=false; + return true; + }, + firstLetter: function($item, letter) { + var + text, + firstLetter + ; + if(!$item || $item.length === 0 || typeof letter !== 'string') { + return false; + } + text = module.get.choiceText($item, false); + letter = letter.toLowerCase(); + firstLetter = String(text).charAt(0).toLowerCase(); + return (letter == firstLetter); + }, + input: function() { + return ($input.length > 0); + }, + items: function() { + return ($item.length > 0); + }, + menu: function() { + return ($menu.length > 0); + }, + message: function() { + return ($menu.children(selector.message).length !== 0); + }, + label: function(value) { + var + escapedValue = module.escape.value(value), + $labels = $module.find(selector.label) + ; + if(settings.ignoreCase) { + escapedValue = escapedValue.toLowerCase(); + } + return ($labels.filter('[data-' + metadata.value + '="' + module.escape.string(escapedValue) +'"]').length > 0); + }, + maxSelections: function() { + return (settings.maxSelections && module.get.selectionCount() >= settings.maxSelections); + }, + allResultsFiltered: function() { + var + $normalResults = $item.not(selector.addition) + ; + return ($normalResults.filter(selector.unselectable).length === $normalResults.length); + }, + userSuggestion: function() { + return ($menu.children(selector.addition).length > 0); + }, + query: function() { + return (module.get.query() !== ''); + }, + value: function(value) { + return (settings.ignoreCase) + ? module.has.valueIgnoringCase(value) + : module.has.valueMatchingCase(value) + ; + }, + valueMatchingCase: function(value) { + var + values = module.get.values(), + hasValue = Array.isArray(values) + ? values && ($.inArray(value, values) !== -1) + : (values == value) + ; + return (hasValue) + ? true + : false + ; + }, + valueIgnoringCase: function(value) { + var + values = module.get.values(), + hasValue = false + ; + if(!Array.isArray(values)) { + values = [values]; + } + $.each(values, function(index, existingValue) { + if(String(value).toLowerCase() == String(existingValue).toLowerCase()) { + hasValue = true; + return false; + } + }); + return hasValue; + } + }, + + is: { + active: function() { + return $module.hasClass(className.active); + }, + animatingInward: function() { + return $menu.transition('is inward'); + }, + animatingOutward: function() { + return $menu.transition('is outward'); + }, + bubbledLabelClick: function(event) { + return $(event.target).is('select, input') && $module.closest('label').length > 0; + }, + bubbledIconClick: function(event) { + return $(event.target).closest($icon).length > 0; + }, + alreadySetup: function() { + return ($module.is('select') && $module.parent(selector.dropdown).data(moduleNamespace) !== undefined && $module.prev().length === 0); + }, + animating: function($subMenu) { + return ($subMenu) + ? $subMenu.transition && $subMenu.transition('is animating') + : $menu.transition && $menu.transition('is animating') + ; + }, + leftward: function($subMenu) { + var $selectedMenu = $subMenu || $menu; + return $selectedMenu.hasClass(className.leftward); + }, + clearable: function() { + return ($module.hasClass(className.clearable) || settings.clearable); + }, + disabled: function() { + return $module.hasClass(className.disabled); + }, + focused: function() { + return (document.activeElement === $module[0]); + }, + focusedOnSearch: function() { + return (document.activeElement === $search[0]); + }, + allFiltered: function() { + return( (module.is.multiple() || module.has.search()) && !(settings.hideAdditions == false && module.has.userSuggestion()) && !module.has.message() && module.has.allResultsFiltered() ); + }, + hidden: function($subMenu) { + return !module.is.visible($subMenu); + }, + initialLoad: function() { + return initialLoad; + }, + inObject: function(needle, object) { + var + found = false + ; + $.each(object, function(index, property) { + if(property == needle) { + found = true; + return true; + } + }); + return found; + }, + multiple: function() { + return $module.hasClass(className.multiple); + }, + remote: function() { + return settings.apiSettings && module.can.useAPI(); + }, + single: function() { + return !module.is.multiple(); + }, + selectMutation: function(mutations) { + var + selectChanged = false + ; + $.each(mutations, function(index, mutation) { + if($(mutation.target).is('select') || $(mutation.addedNodes).is('select')) { + selectChanged = true; + return false; + } + }); + return selectChanged; + }, + search: function() { + return $module.hasClass(className.search); + }, + searchSelection: function() { + return ( module.has.search() && $search.parent(selector.dropdown).length === 1 ); + }, + selection: function() { + return $module.hasClass(className.selection); + }, + userValue: function(value) { + return ($.inArray(value, module.get.userValues()) !== -1); + }, + upward: function($menu) { + var $element = $menu || $module; + return $element.hasClass(className.upward); + }, + visible: function($subMenu) { + return ($subMenu) + ? $subMenu.hasClass(className.visible) + : $menu.hasClass(className.visible) + ; + }, + verticallyScrollableContext: function() { + var + overflowY = ($context.get(0) !== window) + ? $context.css('overflow-y') + : false + ; + return (overflowY == 'auto' || overflowY == 'scroll'); + }, + horizontallyScrollableContext: function() { + var + overflowX = ($context.get(0) !== window) + ? $context.css('overflow-X') + : false + ; + return (overflowX == 'auto' || overflowX == 'scroll'); + } + }, + + can: { + activate: function($item) { + if(settings.useLabels) { + return true; + } + if(!module.has.maxSelections()) { + return true; + } + if(module.has.maxSelections() && $item.hasClass(className.active)) { + return true; + } + return false; + }, + openDownward: function($subMenu) { + var + $currentMenu = $subMenu || $menu, + canOpenDownward = true, + onScreen = {}, + calculations + ; + $currentMenu + .addClass(className.loading) + ; + calculations = { + context: { + offset : ($context.get(0) === window) + ? { top: 0, left: 0} + : $context.offset(), + scrollTop : $context.scrollTop(), + height : $context.outerHeight() + }, + menu : { + offset: $currentMenu.offset(), + height: $currentMenu.outerHeight() + } + }; + if(module.is.verticallyScrollableContext()) { + calculations.menu.offset.top += calculations.context.scrollTop; + } + onScreen = { + above : (calculations.context.scrollTop) <= calculations.menu.offset.top - calculations.context.offset.top - calculations.menu.height, + below : (calculations.context.scrollTop + calculations.context.height) >= calculations.menu.offset.top - calculations.context.offset.top + calculations.menu.height + }; + if(onScreen.below) { + module.verbose('Dropdown can fit in context downward', onScreen); + canOpenDownward = true; + } + else if(!onScreen.below && !onScreen.above) { + module.verbose('Dropdown cannot fit in either direction, favoring downward', onScreen); + canOpenDownward = true; + } + else { + module.verbose('Dropdown cannot fit below, opening upward', onScreen); + canOpenDownward = false; + } + $currentMenu.removeClass(className.loading); + return canOpenDownward; + }, + openRightward: function($subMenu) { + var + $currentMenu = $subMenu || $menu, + canOpenRightward = true, + isOffscreenRight = false, + calculations + ; + $currentMenu + .addClass(className.loading) + ; + calculations = { + context: { + offset : ($context.get(0) === window) + ? { top: 0, left: 0} + : $context.offset(), + scrollLeft : $context.scrollLeft(), + width : $context.outerWidth() + }, + menu: { + offset : $currentMenu.offset(), + width : $currentMenu.outerWidth() + } + }; + if(module.is.horizontallyScrollableContext()) { + calculations.menu.offset.left += calculations.context.scrollLeft; + } + isOffscreenRight = (calculations.menu.offset.left - calculations.context.offset.left + calculations.menu.width >= calculations.context.scrollLeft + calculations.context.width); + if(isOffscreenRight) { + module.verbose('Dropdown cannot fit in context rightward', isOffscreenRight); + canOpenRightward = false; + } + $currentMenu.removeClass(className.loading); + return canOpenRightward; + }, + click: function() { + return (hasTouch || settings.on == 'click'); + }, + extendSelect: function() { + return settings.allowAdditions || settings.apiSettings; + }, + show: function() { + return !module.is.disabled() && (module.has.items() || module.has.message()); + }, + useAPI: function() { + return $.fn.api !== undefined; + } + }, + + animate: { + show: function(callback, $subMenu) { + var + $currentMenu = $subMenu || $menu, + start = ($subMenu) + ? function() {} + : function() { + module.hideSubMenus(); + module.hideOthers(); + module.set.active(); + }, + transition + ; + callback = $.isFunction(callback) + ? callback + : function(){} + ; + module.verbose('Doing menu show animation', $currentMenu); + module.set.direction($subMenu); + transition = module.get.transition($subMenu); + if( module.is.selection() ) { + module.set.scrollPosition(module.get.selectedItem(), true); + } + if( module.is.hidden($currentMenu) || module.is.animating($currentMenu) ) { + var displayType = $module.hasClass('column') ? 'flex' : false; + if(transition == 'none') { + start(); + $currentMenu.transition({ + displayType: displayType + }).transition('show'); + callback.call(element); + } + else if($.fn.transition !== undefined && $module.transition('is supported')) { + $currentMenu + .transition({ + animation : transition + ' in', + debug : settings.debug, + verbose : settings.verbose, + duration : settings.duration, + queue : true, + onStart : start, + displayType: displayType, + onComplete : function() { + callback.call(element); + } + }) + ; + } + else { + module.error(error.noTransition, transition); + } + } + }, + hide: function(callback, $subMenu) { + var + $currentMenu = $subMenu || $menu, + start = ($subMenu) + ? function() {} + : function() { + if( module.can.click() ) { + module.unbind.intent(); + } + module.remove.active(); + }, + transition = module.get.transition($subMenu) + ; + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if( module.is.visible($currentMenu) || module.is.animating($currentMenu) ) { + module.verbose('Doing menu hide animation', $currentMenu); + + if(transition == 'none') { + start(); + $currentMenu.transition('hide'); + callback.call(element); + } + else if($.fn.transition !== undefined && $module.transition('is supported')) { + $currentMenu + .transition({ + animation : transition + ' out', + duration : settings.duration, + debug : settings.debug, + verbose : settings.verbose, + queue : false, + onStart : start, + onComplete : function() { + callback.call(element); + } + }) + ; + } + else { + module.error(error.transition); + } + } + } + }, + + hideAndClear: function() { + module.remove.searchTerm(); + if( module.has.maxSelections() ) { + return; + } + if(module.has.search()) { + module.hide(function() { + module.remove.filteredItem(); + }); + } + else { + module.hide(); + } + }, + + delay: { + show: function() { + module.verbose('Delaying show event to ensure user intent'); + clearTimeout(module.timer); + module.timer = setTimeout(module.show, settings.delay.show); + }, + hide: function() { + module.verbose('Delaying hide event to ensure user intent'); + clearTimeout(module.timer); + module.timer = setTimeout(module.hide, settings.delay.hide); + } + }, + + escape: { + value: function(value) { + var + multipleValues = Array.isArray(value), + stringValue = (typeof value === 'string'), + isUnparsable = (!stringValue && !multipleValues), + hasQuotes = (stringValue && value.search(regExp.quote) !== -1), + values = [] + ; + if(isUnparsable || !hasQuotes) { + return value; + } + module.debug('Encoding quote values for use in select', value); + if(multipleValues) { + $.each(value, function(index, value){ + values.push(value.replace(regExp.quote, '"')); + }); + return values; + } + return value.replace(regExp.quote, '"'); + }, + string: function(text) { + text = String(text); + return text.replace(regExp.escape, '\\$&'); + }, + htmlEntities: function(string) { + var + badChars = /[<>"'`]/g, + shouldEscape = /[&<>"'`]/, + escape = { + "<": "<", + ">": ">", + '"': """, + "'": "'", + "`": "`" + }, + escapedChar = function(chr) { + return escape[chr]; + } + ; + if(shouldEscape.test(string)) { + string = string.replace(/&(?![a-z0-9#]{1,6};)/, "&"); + return string.replace(badChars, escapedChar); + } + return string; + } + }, + + setting: function(name, value) { + module.debug('Changing setting', name, value); + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + if($.isPlainObject(settings[name])) { + $.extend(true, settings[name], value); + } + else { + settings[name] = value; + } + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if(Array.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + instance.invoke('destroy'); + } + module.initialize(); + } + }) + ; + return (returnedValue !== undefined) + ? returnedValue + : $allModules + ; +}; + +$.fn.dropdown.settings = { + + silent : false, + debug : false, + verbose : false, + performance : true, + + on : 'click', // what event should show menu action on item selection + action : 'activate', // action on item selection (nothing, activate, select, combo, hide, function(){}) + + values : false, // specify values to use for dropdown + + clearable : false, // whether the value of the dropdown can be cleared + + apiSettings : false, + selectOnKeydown : true, // Whether selection should occur automatically when keyboard shortcuts used + minCharacters : 0, // Minimum characters required to trigger API call + + filterRemoteData : false, // Whether API results should be filtered after being returned for query term + saveRemoteData : true, // Whether remote name/value pairs should be stored in sessionStorage to allow remote data to be restored on page refresh + + throttle : 200, // How long to wait after last user input to search remotely + + context : window, // Context to use when determining if on screen + direction : 'auto', // Whether dropdown should always open in one direction + keepOnScreen : true, // Whether dropdown should check whether it is on screen before showing + + match : 'both', // what to match against with search selection (both, text, or label) + fullTextSearch : false, // search anywhere in value (set to 'exact' to require exact matches) + ignoreDiacritics : false, // match results also if they contain diacritics of the same base character (for example searching for "a" will also match "á" or "â" or "à ", etc...) + hideDividers : false, // Whether to hide any divider elements (specified in selector.divider) that are sibling to any items when searched (set to true will hide all dividers, set to 'empty' will hide them when they are not followed by a visible item) + + placeholder : 'auto', // whether to convert blank <select> values to placeholder text + preserveHTML : true, // preserve html when selecting value + sortSelect : false, // sort selection on init + + forceSelection : true, // force a choice on blur with search selection + + allowAdditions : false, // whether multiple select should allow user added values + ignoreCase : false, // whether to consider case sensitivity when creating labels + ignoreSearchCase : true, // whether to consider case sensitivity when filtering items + hideAdditions : true, // whether or not to hide special message prompting a user they can enter a value + + maxSelections : false, // When set to a number limits the number of selections to this count + useLabels : true, // whether multiple select should filter currently active selections from choices + delimiter : ',', // when multiselect uses normal <input> the values will be delimited with this character + + showOnFocus : true, // show menu on focus + allowReselection : false, // whether current value should trigger callbacks when reselected + allowTab : true, // add tabindex to element + allowCategorySelection : false, // allow elements with sub-menus to be selected + + fireOnInit : false, // Whether callbacks should fire when initializing dropdown values + + transition : 'auto', // auto transition will slide down or up based on direction + duration : 200, // duration of transition + + glyphWidth : 1.037, // widest glyph width in em (W is 1.037 em) used to calculate multiselect input width + + headerDivider : true, // whether option headers should have an additional divider line underneath when converted from <select> <optgroup> + + // label settings on multi-select + label: { + transition : 'scale', + duration : 200, + variation : false + }, + + // delay before event + delay : { + hide : 300, + show : 200, + search : 20, + touch : 50 + }, + + /* Callbacks */ + onChange : function(value, text, $selected){}, + onAdd : function(value, text, $selected){}, + onRemove : function(value, text, $selected){}, + + onLabelSelect : function($selectedLabels){}, + onLabelCreate : function(value, text) { return $(this); }, + onLabelRemove : function(value) { return true; }, + onNoResults : function(searchTerm) { return true; }, + onShow : function(){}, + onHide : function(){}, + + /* Component */ + name : 'Dropdown', + namespace : 'dropdown', + + message: { + addResult : 'Add <b>{term}</b>', + count : '{count} selected', + maxSelections : 'Max {maxCount} selections', + noResults : 'No results found.', + serverError : 'There was an error contacting the server' + }, + + error : { + action : 'You called a dropdown action that was not defined', + alreadySetup : 'Once a select has been initialized behaviors must be called on the created ui dropdown', + labels : 'Allowing user additions currently requires the use of labels.', + missingMultiple : '<select> requires multiple property to be set to correctly preserve multiple values', + method : 'The method you called is not defined.', + noAPI : 'The API module is required to load resources remotely', + noStorage : 'Saving remote data requires session storage', + noTransition : 'This module requires ui transitions <https://github.com/Semantic-Org/UI-Transition>', + noNormalize : '"ignoreDiacritics" setting will be ignored. Browser does not support String().normalize(). You may consider including <https://cdn.jsdelivr.net/npm/unorm@1.4.1/lib/unorm.min.js> as a polyfill.' + }, + + regExp : { + escape : /[-[\]{}()*+?.,\\^$|#\s:=@]/g, + quote : /"/g + }, + + metadata : { + defaultText : 'defaultText', + defaultValue : 'defaultValue', + placeholderText : 'placeholder', + text : 'text', + value : 'value' + }, + + // property names for remote query + fields: { + remoteValues : 'results', // grouping for api results + values : 'values', // grouping for all dropdown values + disabled : 'disabled', // whether value should be disabled + name : 'name', // displayed dropdown text + value : 'value', // actual dropdown value + text : 'text', // displayed text when selected + type : 'type', // type of dropdown element + image : 'image', // optional image path + imageClass : 'imageClass', // optional individual class for image + icon : 'icon', // optional icon name + iconClass : 'iconClass', // optional individual class for icon (for example to use flag instead) + class : 'class', // optional individual class for item/header + divider : 'divider' // optional divider append for group headers + }, + + keys : { + backspace : 8, + delimiter : 188, // comma + deleteKey : 46, + enter : 13, + escape : 27, + pageUp : 33, + pageDown : 34, + leftArrow : 37, + upArrow : 38, + rightArrow : 39, + downArrow : 40 + }, + + selector : { + addition : '.addition', + divider : '.divider, .header', + dropdown : '.ui.dropdown', + hidden : '.hidden', + icon : '> .dropdown.icon', + input : '> input[type="hidden"], > select', + item : '.item', + label : '> .label', + remove : '> .label > .delete.icon', + siblingLabel : '.label', + menu : '.menu', + message : '.message', + menuIcon : '.dropdown.icon', + search : 'input.search, .menu > .search > input, .menu input.search', + sizer : '> span.sizer', + text : '> .text:not(.icon)', + unselectable : '.disabled, .filtered', + clearIcon : '> .remove.icon' + }, + + className : { + active : 'active', + addition : 'addition', + animating : 'animating', + disabled : 'disabled', + empty : 'empty', + dropdown : 'ui dropdown', + filtered : 'filtered', + hidden : 'hidden transition', + icon : 'icon', + image : 'image', + item : 'item', + label : 'ui label', + loading : 'loading', + menu : 'menu', + message : 'message', + multiple : 'multiple', + placeholder : 'default', + sizer : 'sizer', + search : 'search', + selected : 'selected', + selection : 'selection', + upward : 'upward', + leftward : 'left', + visible : 'visible', + clearable : 'clearable', + noselection : 'noselection', + delete : 'delete', + header : 'header', + divider : 'divider', + groupIcon : '', + unfilterable : 'unfilterable' + } + +}; + +/* Templates */ +$.fn.dropdown.settings.templates = { + deQuote: function(string) { + return String(string).replace(/"/g,""); + }, + escape: function(string, preserveHTML) { + if (preserveHTML){ + return string; + } + var + badChars = /[<>"'`]/g, + shouldEscape = /[&<>"'`]/, + escape = { + "<": "<", + ">": ">", + '"': """, + "'": "'", + "`": "`" + }, + escapedChar = function(chr) { + return escape[chr]; + } + ; + if(shouldEscape.test(string)) { + string = string.replace(/&(?![a-z0-9#]{1,6};)/, "&"); + return string.replace(badChars, escapedChar); + } + return string; + }, + // generates dropdown from select values + dropdown: function(select, fields, preserveHTML, className) { + var + placeholder = select.placeholder || false, + html = '', + escape = $.fn.dropdown.settings.templates.escape + ; + html += '<i class="dropdown icon"></i>'; + if(placeholder) { + html += '<div class="default text">' + escape(placeholder,preserveHTML) + '</div>'; + } + else { + html += '<div class="text"></div>'; + } + html += '<div class="'+className.menu+'">'; + html += $.fn.dropdown.settings.templates.menu(select, fields, preserveHTML,className); + html += '</div>'; + return html; + }, + + // generates just menu from select + menu: function(response, fields, preserveHTML, className) { + var + values = response[fields.values] || [], + html = '', + escape = $.fn.dropdown.settings.templates.escape, + deQuote = $.fn.dropdown.settings.templates.deQuote + ; + $.each(values, function(index, option) { + var + itemType = (option[fields.type]) + ? option[fields.type] + : 'item' + ; + + if( itemType === 'item' ) { + var + maybeText = (option[fields.text]) + ? ' data-text="' + deQuote(option[fields.text]) + '"' + : '', + maybeDisabled = (option[fields.disabled]) + ? className.disabled+' ' + : '' + ; + html += '<div class="'+ maybeDisabled + (option[fields.class] ? deQuote(option[fields.class]) : className.item)+'" data-value="' + deQuote(option[fields.value]) + '"' + maybeText + '>'; + if(option[fields.image]) { + html += '<img class="'+(option[fields.imageClass] ? deQuote(option[fields.imageClass]) : className.image)+'" src="' + deQuote(option[fields.image]) + '">'; + } + if(option[fields.icon]) { + html += '<i class="'+deQuote(option[fields.icon])+' '+(option[fields.iconClass] ? deQuote(option[fields.iconClass]) : className.icon)+'"></i>'; + } + html += escape(option[fields.name] || '', preserveHTML); + html += '</div>'; + } else if (itemType === 'header') { + var groupName = escape(option[fields.name] || '', preserveHTML), + groupIcon = option[fields.icon] ? deQuote(option[fields.icon]) : className.groupIcon + ; + if(groupName !== '' || groupIcon !== '') { + html += '<div class="' + (option[fields.class] ? deQuote(option[fields.class]) : className.header) + '">'; + if (groupIcon !== '') { + html += '<i class="' + groupIcon + ' ' + (option[fields.iconClass] ? deQuote(option[fields.iconClass]) : className.icon) + '"></i>'; + } + html += groupName; + html += '</div>'; + } + if(option[fields.divider]){ + html += '<div class="'+className.divider+'"></div>'; + } + } + }); + return html; + }, + + // generates label for multiselect + label: function(value, text, preserveHTML, className) { + var + escape = $.fn.dropdown.settings.templates.escape; + return escape(text,preserveHTML) + '<i class="'+className.delete+' icon"></i>'; + }, + + + // generates messages like "No results" + message: function(message) { + return message; + }, + + // generates user addition to selection menu + addition: function(choice) { + return choice; + } + +}; + +})( jQuery, window, document ); + +/*! + * # Fomantic-UI - Form Validation + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +$.isFunction = $.isFunction || function(obj) { + return typeof obj === "function" && typeof obj.nodeType !== "number"; +}; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.form = function(parameters) { + var + $allModules = $(this), + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + legacyParameters = arguments[1], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + $allModules + .each(function() { + var + $module = $(this), + element = this, + + formErrors = [], + keyHeldDown = false, + + // set at run-time + $field, + $group, + $message, + $prompt, + $submit, + $clear, + $reset, + + settings, + validation, + + metadata, + selector, + className, + regExp, + error, + + namespace, + moduleNamespace, + eventNamespace, + + submitting = false, + dirty = false, + history = ['clean', 'clean'], + + instance, + module + ; + + module = { + + initialize: function() { + + // settings grabbed at run time + module.get.settings(); + if(methodInvoked) { + if(instance === undefined) { + module.instantiate(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + instance.invoke('destroy'); + } + module.verbose('Initializing form validation', $module, settings); + module.bindEvents(); + module.set.defaults(); + if (settings.autoCheckRequired) { + module.set.autoCheck(); + } + module.instantiate(); + } + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.verbose('Destroying previous module', instance); + module.removeEvents(); + $module + .removeData(moduleNamespace) + ; + }, + + refresh: function() { + module.verbose('Refreshing selector cache'); + $field = $module.find(selector.field); + $group = $module.find(selector.group); + $message = $module.find(selector.message); + $prompt = $module.find(selector.prompt); + + $submit = $module.find(selector.submit); + $clear = $module.find(selector.clear); + $reset = $module.find(selector.reset); + }, + + submit: function() { + module.verbose('Submitting form', $module); + submitting = true; + $module.submit(); + }, + + attachEvents: function(selector, action) { + action = action || 'submit'; + $(selector).on('click' + eventNamespace, function(event) { + module[action](); + event.preventDefault(); + }); + }, + + bindEvents: function() { + module.verbose('Attaching form events'); + $module + .on('submit' + eventNamespace, module.validate.form) + .on('blur' + eventNamespace, selector.field, module.event.field.blur) + .on('click' + eventNamespace, selector.submit, module.submit) + .on('click' + eventNamespace, selector.reset, module.reset) + .on('click' + eventNamespace, selector.clear, module.clear) + ; + if(settings.keyboardShortcuts) { + $module.on('keydown' + eventNamespace, selector.field, module.event.field.keydown); + } + $field.each(function(index, el) { + var + $input = $(el), + type = $input.prop('type'), + inputEvent = module.get.changeEvent(type, $input) + ; + $input.on(inputEvent + eventNamespace, module.event.field.change); + }); + + // Dirty events + if (settings.preventLeaving) { + $(window).on('beforeunload' + eventNamespace, module.event.beforeUnload); + } + + $field.on('change click keyup keydown blur', function(e) { + $(this).triggerHandler(e.type + ".dirty"); + }); + + $field.on('change.dirty click.dirty keyup.dirty keydown.dirty blur.dirty', module.determine.isDirty); + + $module.on('dirty' + eventNamespace, function(e) { + settings.onDirty.call(); + }); + + $module.on('clean' + eventNamespace, function(e) { + settings.onClean.call(); + }) + }, + + clear: function() { + $field.each(function (index, el) { + var + $field = $(el), + $element = $field.parent(), + $fieldGroup = $field.closest($group), + $prompt = $fieldGroup.find(selector.prompt), + $calendar = $field.closest(selector.uiCalendar), + defaultValue = $field.data(metadata.defaultValue) || '', + isCheckbox = $element.is(selector.uiCheckbox), + isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown'), + isCalendar = ($calendar.length > 0 && module.can.useElement('calendar')), + isErrored = $fieldGroup.hasClass(className.error) + ; + if(isErrored) { + module.verbose('Resetting error on field', $fieldGroup); + $fieldGroup.removeClass(className.error); + $prompt.remove(); + } + if(isDropdown) { + module.verbose('Resetting dropdown value', $element, defaultValue); + $element.dropdown('clear', true); + } + else if(isCheckbox) { + $field.prop('checked', false); + } + else if (isCalendar) { + $calendar.calendar('clear'); + } + else { + module.verbose('Resetting field value', $field, defaultValue); + $field.val(''); + } + }); + module.remove.states(); + }, + + reset: function() { + $field.each(function (index, el) { + var + $field = $(el), + $element = $field.parent(), + $fieldGroup = $field.closest($group), + $calendar = $field.closest(selector.uiCalendar), + $prompt = $fieldGroup.find(selector.prompt), + defaultValue = $field.data(metadata.defaultValue), + isCheckbox = $element.is(selector.uiCheckbox), + isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown'), + isCalendar = ($calendar.length > 0 && module.can.useElement('calendar')), + isErrored = $fieldGroup.hasClass(className.error) + ; + if(defaultValue === undefined) { + return; + } + if(isErrored) { + module.verbose('Resetting error on field', $fieldGroup); + $fieldGroup.removeClass(className.error); + $prompt.remove(); + } + if(isDropdown) { + module.verbose('Resetting dropdown value', $element, defaultValue); + $element.dropdown('restore defaults', true); + } + else if(isCheckbox) { + module.verbose('Resetting checkbox value', $element, defaultValue); + $field.prop('checked', defaultValue); + } + else if (isCalendar) { + $calendar.calendar('set date', defaultValue); + } + else { + module.verbose('Resetting field value', $field, defaultValue); + $field.val(defaultValue); + } + }); + module.remove.states(); + }, + + determine: { + isValid: function() { + var + allValid = true + ; + $.each(validation, function(fieldName, field) { + if( !( module.validate.field(field, fieldName, true) ) ) { + allValid = false; + } + }); + return allValid; + }, + isDirty: function(e) { + var formIsDirty = false; + + $field.each(function(index, el) { + var + $el = $(el), + isCheckbox = ($el.filter(selector.checkbox).length > 0), + isDirty + ; + + if (isCheckbox) { + isDirty = module.is.checkboxDirty($el); + } else { + isDirty = module.is.fieldDirty($el); + } + + $el.data(settings.metadata.isDirty, isDirty); + + formIsDirty |= isDirty; + }); + + if (formIsDirty) { + module.set.dirty(); + } else { + module.set.clean(); + } + + if (e && e.namespace === 'dirty') { + e.stopImmediatePropagation(); + e.preventDefault(); + } + } + }, + + is: { + bracketedRule: function(rule) { + return (rule.type && rule.type.match(settings.regExp.bracket)); + }, + shorthandFields: function(fields) { + var + fieldKeys = Object.keys(fields), + firstRule = fields[fieldKeys[0]] + ; + return module.is.shorthandRules(firstRule); + }, + // duck type rule test + shorthandRules: function(rules) { + return (typeof rules == 'string' || Array.isArray(rules)); + }, + empty: function($field) { + if(!$field || $field.length === 0) { + return true; + } + else if($field.is(selector.checkbox)) { + return !$field.is(':checked'); + } + else { + return module.is.blank($field); + } + }, + blank: function($field) { + return String($field.val()).trim() === ''; + }, + valid: function(field, showErrors) { + var + allValid = true + ; + if(field) { + module.verbose('Checking if field is valid', field); + return module.validate.field(validation[field], field, !!showErrors); + } + else { + module.verbose('Checking if form is valid'); + $.each(validation, function(fieldName, field) { + if( !module.is.valid(fieldName, showErrors) ) { + allValid = false; + } + }); + return allValid; + } + }, + dirty: function() { + return dirty; + }, + clean: function() { + return !dirty; + }, + fieldDirty: function($el) { + var initialValue = $el.data(metadata.defaultValue); + // Explicitly check for null/undefined here as value may be `false`, so ($el.data(dataInitialValue) || '') would not work + if (initialValue == null) { initialValue = ''; } + else if(Array.isArray(initialValue)) { + initialValue = initialValue.toString(); + } + var currentValue = $el.val(); + if (currentValue == null) { currentValue = ''; } + // multiple select values are returned as arrays which are never equal, so do string conversion first + else if(Array.isArray(currentValue)) { + currentValue = currentValue.toString(); + } + // Boolean values can be encoded as "true/false" or "True/False" depending on underlying frameworks so we need a case insensitive comparison + var boolRegex = /^(true|false)$/i; + var isBoolValue = boolRegex.test(initialValue) && boolRegex.test(currentValue); + if (isBoolValue) { + var regex = new RegExp("^" + initialValue + "$", "i"); + return !regex.test(currentValue); + } + + return currentValue !== initialValue; + }, + checkboxDirty: function($el) { + var initialValue = $el.data(metadata.defaultValue); + var currentValue = $el.is(":checked"); + + return initialValue !== currentValue; + }, + justDirty: function() { + return (history[0] === 'dirty'); + }, + justClean: function() { + return (history[0] === 'clean'); + } + }, + + removeEvents: function() { + $module.off(eventNamespace); + $field.off(eventNamespace); + $submit.off(eventNamespace); + $field.off(eventNamespace); + }, + + event: { + field: { + keydown: function(event) { + var + $field = $(this), + key = event.which, + isInput = $field.is(selector.input), + isCheckbox = $field.is(selector.checkbox), + isInDropdown = ($field.closest(selector.uiDropdown).length > 0), + keyCode = { + enter : 13, + escape : 27 + } + ; + if( key == keyCode.escape) { + module.verbose('Escape key pressed blurring field'); + $field + .blur() + ; + } + if(!event.ctrlKey && key == keyCode.enter && isInput && !isInDropdown && !isCheckbox) { + if(!keyHeldDown) { + $field.one('keyup' + eventNamespace, module.event.field.keyup); + module.submit(); + module.debug('Enter pressed on input submitting form'); + } + keyHeldDown = true; + } + }, + keyup: function() { + keyHeldDown = false; + }, + blur: function(event) { + var + $field = $(this), + $fieldGroup = $field.closest($group), + validationRules = module.get.validation($field) + ; + if( $fieldGroup.hasClass(className.error) ) { + module.debug('Revalidating field', $field, validationRules); + if(validationRules) { + module.validate.field( validationRules ); + } + } + else if(settings.on == 'blur') { + if(validationRules) { + module.validate.field( validationRules ); + } + } + }, + change: function(event) { + var + $field = $(this), + $fieldGroup = $field.closest($group), + validationRules = module.get.validation($field) + ; + if(validationRules && (settings.on == 'change' || ( $fieldGroup.hasClass(className.error) && settings.revalidate) )) { + clearTimeout(module.timer); + module.timer = setTimeout(function() { + module.debug('Revalidating field', $field, module.get.validation($field)); + module.validate.field( validationRules ); + if(!settings.inline) { + module.validate.form(false,true); + } + }, settings.delay); + } + } + }, + beforeUnload: function(event) { + if (module.is.dirty() && !submitting) { + var event = event || window.event; + + // For modern browsers + if (event) { + event.returnValue = settings.text.leavingMessage; + } + + // For olders... + return settings.text.leavingMessage; + } + } + + }, + + get: { + ancillaryValue: function(rule) { + if(!rule.type || (!rule.value && !module.is.bracketedRule(rule))) { + return false; + } + return (rule.value !== undefined) + ? rule.value + : rule.type.match(settings.regExp.bracket)[1] + '' + ; + }, + ruleName: function(rule) { + if( module.is.bracketedRule(rule) ) { + return rule.type.replace(rule.type.match(settings.regExp.bracket)[0], ''); + } + return rule.type; + }, + changeEvent: function(type, $input) { + if(type == 'checkbox' || type == 'radio' || type == 'hidden' || $input.is('select')) { + return 'change'; + } + else { + return module.get.inputEvent(); + } + }, + inputEvent: function() { + return (document.createElement('input').oninput !== undefined) + ? 'input' + : (document.createElement('input').onpropertychange !== undefined) + ? 'propertychange' + : 'keyup' + ; + }, + fieldsFromShorthand: function(fields) { + var + fullFields = {} + ; + $.each(fields, function(name, rules) { + if(typeof rules == 'string') { + rules = [rules]; + } + fullFields[name] = { + rules: [] + }; + $.each(rules, function(index, rule) { + fullFields[name].rules.push({ type: rule }); + }); + }); + return fullFields; + }, + prompt: function(rule, field) { + var + ruleName = module.get.ruleName(rule), + ancillary = module.get.ancillaryValue(rule), + $field = module.get.field(field.identifier), + value = $field.val(), + prompt = $.isFunction(rule.prompt) + ? rule.prompt(value) + : rule.prompt || settings.prompt[ruleName] || settings.text.unspecifiedRule, + requiresValue = (prompt.search('{value}') !== -1), + requiresName = (prompt.search('{name}') !== -1), + $label, + name + ; + if(requiresValue) { + prompt = prompt.replace(/\{value\}/g, $field.val()); + } + if(requiresName) { + $label = $field.closest(selector.group).find('label').eq(0); + name = ($label.length == 1) + ? $label.text() + : $field.prop('placeholder') || settings.text.unspecifiedField + ; + prompt = prompt.replace(/\{name\}/g, name); + } + prompt = prompt.replace(/\{identifier\}/g, field.identifier); + prompt = prompt.replace(/\{ruleValue\}/g, ancillary); + if(!rule.prompt) { + module.verbose('Using default validation prompt for type', prompt, ruleName); + } + return prompt; + }, + settings: function() { + if($.isPlainObject(parameters)) { + var + keys = Object.keys(parameters), + isLegacySettings = (keys.length > 0) + ? (parameters[keys[0]].identifier !== undefined && parameters[keys[0]].rules !== undefined) + : false + ; + if(isLegacySettings) { + // 1.x (ducktyped) + settings = $.extend(true, {}, $.fn.form.settings, legacyParameters); + validation = $.extend({}, $.fn.form.settings.defaults, parameters); + module.error(settings.error.oldSyntax, element); + module.verbose('Extending settings from legacy parameters', validation, settings); + } + else { + // 2.x + if(parameters.fields && module.is.shorthandFields(parameters.fields)) { + parameters.fields = module.get.fieldsFromShorthand(parameters.fields); + } + settings = $.extend(true, {}, $.fn.form.settings, parameters); + validation = $.extend({}, $.fn.form.settings.defaults, settings.fields); + module.verbose('Extending settings', validation, settings); + } + } + else { + settings = $.fn.form.settings; + validation = $.fn.form.settings.defaults; + module.verbose('Using default form validation', validation, settings); + } + + // shorthand + namespace = settings.namespace; + metadata = settings.metadata; + selector = settings.selector; + className = settings.className; + regExp = settings.regExp; + error = settings.error; + moduleNamespace = 'module-' + namespace; + eventNamespace = '.' + namespace; + + // grab instance + instance = $module.data(moduleNamespace); + + // refresh selector cache + module.refresh(); + }, + field: function(identifier) { + module.verbose('Finding field with identifier', identifier); + identifier = module.escape.string(identifier); + var t; + if((t=$field.filter('#' + identifier)).length > 0 ) { + return t; + } + if((t=$field.filter('[name="' + identifier +'"]')).length > 0 ) { + return t; + } + if((t=$field.filter('[name="' + identifier +'[]"]')).length > 0 ) { + return t; + } + if((t=$field.filter('[data-' + metadata.validate + '="'+ identifier +'"]')).length > 0 ) { + return t; + } + return $('<input/>'); + }, + fields: function(fields) { + var + $fields = $() + ; + $.each(fields, function(index, name) { + $fields = $fields.add( module.get.field(name) ); + }); + return $fields; + }, + validation: function($field) { + var + fieldValidation, + identifier + ; + if(!validation) { + return false; + } + $.each(validation, function(fieldName, field) { + identifier = field.identifier || fieldName; + $.each(module.get.field(identifier), function(index, groupField) { + if(groupField == $field[0]) { + field.identifier = identifier; + fieldValidation = field; + return false; + } + }); + }); + return fieldValidation || false; + }, + value: function (field) { + var + fields = [], + results + ; + fields.push(field); + results = module.get.values.call(element, fields); + return results[field]; + }, + values: function (fields) { + var + $fields = Array.isArray(fields) + ? module.get.fields(fields) + : $field, + values = {} + ; + $fields.each(function(index, field) { + var + $field = $(field), + $calendar = $field.closest(selector.uiCalendar), + name = $field.prop('name'), + value = $field.val(), + isCheckbox = $field.is(selector.checkbox), + isRadio = $field.is(selector.radio), + isMultiple = (name.indexOf('[]') !== -1), + isCalendar = ($calendar.length > 0 && module.can.useElement('calendar')), + isChecked = (isCheckbox) + ? $field.is(':checked') + : false + ; + if(name) { + if(isMultiple) { + name = name.replace('[]', ''); + if(!values[name]) { + values[name] = []; + } + if(isCheckbox) { + if(isChecked) { + values[name].push(value || true); + } + else { + values[name].push(false); + } + } + else { + values[name].push(value); + } + } + else { + if(isRadio) { + if(values[name] === undefined || values[name] === false) { + values[name] = (isChecked) + ? value || true + : false + ; + } + } + else if(isCheckbox) { + if(isChecked) { + values[name] = value || true; + } + else { + values[name] = false; + } + } + else if(isCalendar) { + var date = $calendar.calendar('get date'); + + if (date !== null) { + if (settings.dateHandling == 'date') { + values[name] = date; + } else if(settings.dateHandling == 'input') { + values[name] = $calendar.calendar('get input date') + } else if (settings.dateHandling == 'formatter') { + var type = $calendar.calendar('setting', 'type'); + + switch(type) { + case 'date': + values[name] = settings.formatter.date(date); + break; + + case 'datetime': + values[name] = settings.formatter.datetime(date); + break; + + case 'time': + values[name] = settings.formatter.time(date); + break; + + case 'month': + values[name] = settings.formatter.month(date); + break; + + case 'year': + values[name] = settings.formatter.year(date); + break; + + default: + module.debug('Wrong calendar mode', $calendar, type); + values[name] = ''; + } + } + } else { + values[name] = ''; + } + } else { + values[name] = value; + } + } + } + }); + return values; + }, + dirtyFields: function() { + return $field.filter(function(index, e) { + return $(e).data(metadata.isDirty); + }); + } + }, + + has: { + + field: function(identifier) { + module.verbose('Checking for existence of a field with identifier', identifier); + identifier = module.escape.string(identifier); + if(typeof identifier !== 'string') { + module.error(error.identifier, identifier); + } + if($field.filter('#' + identifier).length > 0 ) { + return true; + } + else if( $field.filter('[name="' + identifier +'"]').length > 0 ) { + return true; + } + else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').length > 0 ) { + return true; + } + return false; + } + + }, + + can: { + useElement: function(element){ + if ($.fn[element] !== undefined) { + return true; + } + module.error(error.noElement.replace('{element}',element)); + return false; + } + }, + + escape: { + string: function(text) { + text = String(text); + return text.replace(regExp.escape, '\\$&'); + } + }, + + add: { + // alias + rule: function(name, rules) { + module.add.field(name, rules); + }, + field: function(name, rules) { + // Validation should have at least a standard format + if(validation[name] === undefined || validation[name].rules === undefined) { + validation[name] = { + rules: [] + }; + } + var + newValidation = { + rules: [] + } + ; + if(module.is.shorthandRules(rules)) { + rules = Array.isArray(rules) + ? rules + : [rules] + ; + $.each(rules, function(_index, rule) { + newValidation.rules.push({ type: rule }); + }); + } + else { + newValidation.rules = rules.rules; + } + // For each new rule, check if there's not already one with the same type + $.each(newValidation.rules, function (_index, rule) { + if ($.grep(validation[name].rules, function(item){ return item.type == rule.type; }).length == 0) { + validation[name].rules.push(rule); + } + }); + module.debug('Adding rules', newValidation.rules, validation); + }, + fields: function(fields) { + var + newValidation + ; + if(fields && module.is.shorthandFields(fields)) { + newValidation = module.get.fieldsFromShorthand(fields); + } + else { + newValidation = fields; + } + validation = $.extend({}, validation, newValidation); + }, + prompt: function(identifier, errors, internal) { + var + $field = module.get.field(identifier), + $fieldGroup = $field.closest($group), + $prompt = $fieldGroup.children(selector.prompt), + promptExists = ($prompt.length !== 0) + ; + errors = (typeof errors == 'string') + ? [errors] + : errors + ; + module.verbose('Adding field error state', identifier); + if(!internal) { + $fieldGroup + .addClass(className.error) + ; + } + if(settings.inline) { + if(!promptExists) { + $prompt = settings.templates.prompt(errors, className.label); + $prompt + .appendTo($fieldGroup) + ; + } + $prompt + .html(errors[0]) + ; + if(!promptExists) { + if(settings.transition && module.can.useElement('transition') && $module.transition('is supported')) { + module.verbose('Displaying error with css transition', settings.transition); + $prompt.transition(settings.transition + ' in', settings.duration); + } + else { + module.verbose('Displaying error with fallback javascript animation'); + $prompt + .fadeIn(settings.duration) + ; + } + } + else { + module.verbose('Inline errors are disabled, no inline error added', identifier); + } + } + }, + errors: function(errors) { + module.debug('Adding form error messages', errors); + module.set.error(); + $message + .html( settings.templates.error(errors) ) + ; + } + }, + + remove: { + errors: function() { + module.debug('Removing form error messages'); + $message.empty(); + }, + states: function() { + $module.removeClass(className.error).removeClass(className.success); + if(!settings.inline) { + module.remove.errors(); + } + module.determine.isDirty(); + }, + rule: function(field, rule) { + var + rules = Array.isArray(rule) + ? rule + : [rule] + ; + if(validation[field] === undefined || !Array.isArray(validation[field].rules)) { + return; + } + if(rule === undefined) { + module.debug('Removed all rules'); + validation[field].rules = []; + return; + } + $.each(validation[field].rules, function(index, rule) { + if(rule && rules.indexOf(rule.type) !== -1) { + module.debug('Removed rule', rule.type); + validation[field].rules.splice(index, 1); + } + }); + }, + field: function(field) { + var + fields = Array.isArray(field) + ? field + : [field] + ; + $.each(fields, function(index, field) { + module.remove.rule(field); + }); + }, + // alias + rules: function(field, rules) { + if(Array.isArray(field)) { + $.each(field, function(index, field) { + module.remove.rule(field, rules); + }); + } + else { + module.remove.rule(field, rules); + } + }, + fields: function(fields) { + module.remove.field(fields); + }, + prompt: function(identifier) { + var + $field = module.get.field(identifier), + $fieldGroup = $field.closest($group), + $prompt = $fieldGroup.children(selector.prompt) + ; + $fieldGroup + .removeClass(className.error) + ; + if(settings.inline && $prompt.is(':visible')) { + module.verbose('Removing prompt for field', identifier); + if(settings.transition && module.can.useElement('transition') && $module.transition('is supported')) { + $prompt.transition(settings.transition + ' out', settings.duration, function() { + $prompt.remove(); + }); + } + else { + $prompt + .fadeOut(settings.duration, function(){ + $prompt.remove(); + }) + ; + } + } + } + }, + + set: { + success: function() { + $module + .removeClass(className.error) + .addClass(className.success) + ; + }, + defaults: function () { + $field.each(function (index, el) { + var + $el = $(el), + $parent = $el.parent(), + isCheckbox = ($el.filter(selector.checkbox).length > 0), + isDropdown = $parent.is(selector.uiDropdown) && module.can.useElement('dropdown'), + $calendar = $el.closest(selector.uiCalendar), + isCalendar = ($calendar.length > 0 && module.can.useElement('calendar')), + value = (isCheckbox) + ? $el.is(':checked') + : $el.val() + ; + if (isDropdown) { + $parent.dropdown('save defaults'); + } + else if (isCalendar) { + $calendar.calendar('refresh'); + } + $el.data(metadata.defaultValue, value); + $el.data(metadata.isDirty, false); + }); + }, + error: function() { + $module + .removeClass(className.success) + .addClass(className.error) + ; + }, + value: function (field, value) { + var + fields = {} + ; + fields[field] = value; + return module.set.values.call(element, fields); + }, + values: function (fields) { + if($.isEmptyObject(fields)) { + return; + } + $.each(fields, function(key, value) { + var + $field = module.get.field(key), + $element = $field.parent(), + $calendar = $field.closest(selector.uiCalendar), + isMultiple = Array.isArray(value), + isCheckbox = $element.is(selector.uiCheckbox) && module.can.useElement('checkbox'), + isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown'), + isRadio = ($field.is(selector.radio) && isCheckbox), + isCalendar = ($calendar.length > 0 && module.can.useElement('calendar')), + fieldExists = ($field.length > 0), + $multipleField + ; + if(fieldExists) { + if(isMultiple && isCheckbox) { + module.verbose('Selecting multiple', value, $field); + $element.checkbox('uncheck'); + $.each(value, function(index, value) { + $multipleField = $field.filter('[value="' + value + '"]'); + $element = $multipleField.parent(); + if($multipleField.length > 0) { + $element.checkbox('check'); + } + }); + } + else if(isRadio) { + module.verbose('Selecting radio value', value, $field); + $field.filter('[value="' + value + '"]') + .parent(selector.uiCheckbox) + .checkbox('check') + ; + } + else if(isCheckbox) { + module.verbose('Setting checkbox value', value, $element); + if(value === true || value === 1) { + $element.checkbox('check'); + } + else { + $element.checkbox('uncheck'); + } + } + else if(isDropdown) { + module.verbose('Setting dropdown value', value, $element); + $element.dropdown('set selected', value); + } + else if (isCalendar) { + $calendar.calendar('set date',value); + } + else { + module.verbose('Setting field value', value, $field); + $field.val(value); + } + } + }); + }, + dirty: function() { + module.verbose('Setting state dirty'); + dirty = true; + history[0] = history[1]; + history[1] = 'dirty'; + + if (module.is.justClean()) { + $module.trigger('dirty'); + } + }, + clean: function() { + module.verbose('Setting state clean'); + dirty = false; + history[0] = history[1]; + history[1] = 'clean'; + + if (module.is.justDirty()) { + $module.trigger('clean'); + } + }, + asClean: function() { + module.set.defaults(); + module.set.clean(); + }, + asDirty: function() { + module.set.defaults(); + module.set.dirty(); + }, + autoCheck: function() { + module.debug('Enabling auto check on required fields'); + $field.each(function (_index, el) { + var + $el = $(el), + $elGroup = $(el).closest($group), + isCheckbox = ($el.filter(selector.checkbox).length > 0), + isRequired = $el.prop('required') || $elGroup.hasClass(className.required) || $elGroup.parent().hasClass(className.required), + isDisabled = $el.is(':disabled') || $elGroup.hasClass(className.disabled) || $elGroup.parent().hasClass(className.disabled), + validation = module.get.validation($el), + hasEmptyRule = validation + ? $.grep(validation.rules, function(rule) { return rule.type == "empty" }) !== 0 + : false, + identifier = validation.identifier || $el.attr('id') || $el.attr('name') || $el.data(metadata.validate) + ; + if (isRequired && !isDisabled && !hasEmptyRule && identifier !== undefined) { + if (isCheckbox) { + module.verbose("Adding 'checked' rule on field", identifier); + module.add.rule(identifier, "checked"); + } else { + module.verbose("Adding 'empty' rule on field", identifier); + module.add.rule(identifier, "empty"); + } + } + }); + } + }, + + validate: { + + form: function(event, ignoreCallbacks) { + var values = module.get.values(); + + // input keydown event will fire submit repeatedly by browser default + if(keyHeldDown) { + return false; + } + + // reset errors + formErrors = []; + if( module.determine.isValid() ) { + module.debug('Form has no validation errors, submitting'); + module.set.success(); + if(!settings.inline) { + module.remove.errors(); + } + if(ignoreCallbacks !== true) { + return settings.onSuccess.call(element, event, values); + } + } + else { + module.debug('Form has errors'); + submitting = false; + module.set.error(); + if(!settings.inline) { + module.add.errors(formErrors); + } + // prevent ajax submit + if(event && $module.data('moduleApi') !== undefined) { + event.stopImmediatePropagation(); + } + if(ignoreCallbacks !== true) { + return settings.onFailure.call(element, formErrors, values); + } + } + }, + + // takes a validation object and returns whether field passes validation + field: function(field, fieldName, showErrors) { + showErrors = (showErrors !== undefined) + ? showErrors + : true + ; + if(typeof field == 'string') { + module.verbose('Validating field', field); + fieldName = field; + field = validation[field]; + } + var + identifier = field.identifier || fieldName, + $field = module.get.field(identifier), + $dependsField = (field.depends) + ? module.get.field(field.depends) + : false, + fieldValid = true, + fieldErrors = [] + ; + if(!field.identifier) { + module.debug('Using field name as identifier', identifier); + field.identifier = identifier; + } + var isDisabled = !$field.filter(':not(:disabled)').length; + if(isDisabled) { + module.debug('Field is disabled. Skipping', identifier); + } + else if(field.optional && module.is.blank($field)){ + module.debug('Field is optional and blank. Skipping', identifier); + } + else if(field.depends && module.is.empty($dependsField)) { + module.debug('Field depends on another value that is not present or empty. Skipping', $dependsField); + } + else if(field.rules !== undefined) { + if(showErrors) { + $field.closest($group).removeClass(className.error); + } + $.each(field.rules, function(index, rule) { + if( module.has.field(identifier)) { + var invalidFields = module.validate.rule(field, rule,true) || []; + if (invalidFields.length>0){ + module.debug('Field is invalid', identifier, rule.type); + fieldErrors.push(module.get.prompt(rule, field)); + fieldValid = false; + if(showErrors){ + $(invalidFields).closest($group).addClass(className.error); + } + } + } + }); + } + if(fieldValid) { + if(showErrors) { + module.remove.prompt(identifier, fieldErrors); + settings.onValid.call($field); + } + } + else { + if(showErrors) { + formErrors = formErrors.concat(fieldErrors); + module.add.prompt(identifier, fieldErrors, true); + settings.onInvalid.call($field, fieldErrors); + } + return false; + } + return true; + }, + + // takes validation rule and returns whether field passes rule + rule: function(field, rule, internal) { + var + $field = module.get.field(field.identifier), + ancillary = module.get.ancillaryValue(rule), + ruleName = module.get.ruleName(rule), + ruleFunction = settings.rules[ruleName], + invalidFields = [], + isCheckbox = $field.is(selector.checkbox), + isValid = function(field){ + var value = (isCheckbox ? $(field).filter(':checked').val() : $(field).val()); + // cast to string avoiding encoding special values + value = (value === undefined || value === '' || value === null) + ? '' + : (settings.shouldTrim) ? String(value + '').trim() : String(value + '') + ; + return ruleFunction.call(field, value, ancillary, $module); + } + ; + if( !$.isFunction(ruleFunction) ) { + module.error(error.noRule, ruleName); + return; + } + if(isCheckbox) { + if (!isValid($field)) { + invalidFields = $field; + } + } else { + $.each($field, function (index, field) { + if (!isValid(field)) { + invalidFields.push(field); + } + }); + } + return internal ? invalidFields : !(invalidFields.length>0); + } + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.length > 1) { + title += ' ' + '(' + $allModules.length + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + return false; + } + }); + } + if( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if(Array.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + module.initialize(); + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.form.settings = { + + name : 'Form', + namespace : 'form', + + debug : false, + verbose : false, + performance : true, + + fields : false, + + keyboardShortcuts : true, + on : 'submit', + inline : false, + + delay : 200, + revalidate : true, + shouldTrim : true, + + transition : 'scale', + duration : 200, + + autoCheckRequired : false, + preventLeaving : false, + dateHandling : 'date', // 'date', 'input', 'formatter' + + onValid : function() {}, + onInvalid : function() {}, + onSuccess : function() { return true; }, + onFailure : function() { return false; }, + onDirty : function() {}, + onClean : function() {}, + + metadata : { + defaultValue : 'default', + validate : 'validate', + isDirty : 'isDirty' + }, + + regExp: { + htmlID : /^[a-zA-Z][\w:.-]*$/g, + bracket : /\[(.*)\]/i, + decimal : /^\d+\.?\d*$/, + email : /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i, + escape : /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|:,=@]/g, + flags : /^\/(.*)\/(.*)?/, + integer : /^\-?\d+$/, + number : /^\-?\d*(\.\d+)?$/, + url : /(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/i + }, + + text: { + unspecifiedRule : 'Please enter a valid value', + unspecifiedField : 'This field', + leavingMessage : 'There are unsaved changes on this page which will be discarded if you continue.' + }, + + prompt: { + empty : '{name} must have a value', + checked : '{name} must be checked', + email : '{name} must be a valid e-mail', + url : '{name} must be a valid url', + regExp : '{name} is not formatted correctly', + integer : '{name} must be an integer', + decimal : '{name} must be a decimal number', + number : '{name} must be set to a number', + is : '{name} must be "{ruleValue}"', + isExactly : '{name} must be exactly "{ruleValue}"', + not : '{name} cannot be set to "{ruleValue}"', + notExactly : '{name} cannot be set to exactly "{ruleValue}"', + contain : '{name} must contain "{ruleValue}"', + containExactly : '{name} must contain exactly "{ruleValue}"', + doesntContain : '{name} cannot contain "{ruleValue}"', + doesntContainExactly : '{name} cannot contain exactly "{ruleValue}"', + minLength : '{name} must be at least {ruleValue} characters', + length : '{name} must be at least {ruleValue} characters', + exactLength : '{name} must be exactly {ruleValue} characters', + maxLength : '{name} cannot be longer than {ruleValue} characters', + match : '{name} must match {ruleValue} field', + different : '{name} must have a different value than {ruleValue} field', + creditCard : '{name} must be a valid credit card number', + minCount : '{name} must have at least {ruleValue} choices', + exactCount : '{name} must have exactly {ruleValue} choices', + maxCount : '{name} must have {ruleValue} or less choices' + }, + + selector : { + checkbox : 'input[type="checkbox"], input[type="radio"]', + clear : '.clear', + field : 'input:not(.search), textarea, select', + group : '.field', + input : 'input', + message : '.error.message', + prompt : '.prompt.label', + radio : 'input[type="radio"]', + reset : '.reset:not([type="reset"])', + submit : '.submit:not([type="submit"])', + uiCheckbox : '.ui.checkbox', + uiDropdown : '.ui.dropdown', + uiCalendar : '.ui.calendar' + }, + + className : { + error : 'error', + label : 'ui basic red pointing prompt label', + pressed : 'down', + success : 'success', + required : 'required', + disabled : 'disabled' + }, + + error: { + identifier : 'You must specify a string identifier for each field', + method : 'The method you called is not defined.', + noRule : 'There is no rule matching the one you specified', + oldSyntax : 'Starting in 2.0 forms now only take a single settings object. Validation settings converted to new syntax automatically.', + noElement : 'This module requires ui {element}' + }, + + templates: { + + // template that produces error message + error: function(errors) { + var + html = '<ul class="list">' + ; + $.each(errors, function(index, value) { + html += '<li>' + value + '</li>'; + }); + html += '</ul>'; + return $(html); + }, + + // template that produces label + prompt: function(errors, labelClasses) { + return $('<div/>') + .addClass(labelClasses) + .html(errors[0]) + ; + } + }, + + formatter: { + date: function(date) { + return Intl.DateTimeFormat('en-GB').format(date); + }, + datetime: function(date) { + return Intl.DateTimeFormat('en-GB', { + year: "numeric", + month: "2-digit", + day: "2-digit", + hour: '2-digit', + minute: '2-digit', + second: '2-digit' + }).format(date); + }, + time: function(date) { + return Intl.DateTimeFormat('en-GB', { + hour: '2-digit', + minute: '2-digit', + second: '2-digit' + }).format(date); + }, + month: function(date) { + return Intl.DateTimeFormat('en-GB', { + month: '2-digit', + year: 'numeric' + }).format(date); + }, + year: function(date) { + return Intl.DateTimeFormat('en-GB', { + year: 'numeric' + }).format(date); + } + }, + + rules: { + + // is not empty or blank string + empty: function(value) { + return !(value === undefined || '' === value || Array.isArray(value) && value.length === 0); + }, + + // checkbox checked + checked: function() { + return ($(this).filter(':checked').length > 0); + }, + + // is most likely an email + email: function(value){ + return $.fn.form.settings.regExp.email.test(value); + }, + + // value is most likely url + url: function(value) { + return $.fn.form.settings.regExp.url.test(value); + }, + + // matches specified regExp + regExp: function(value, regExp) { + if(regExp instanceof RegExp) { + return value.match(regExp); + } + var + regExpParts = regExp.match($.fn.form.settings.regExp.flags), + flags + ; + // regular expression specified as /baz/gi (flags) + if(regExpParts) { + regExp = (regExpParts.length >= 2) + ? regExpParts[1] + : regExp + ; + flags = (regExpParts.length >= 3) + ? regExpParts[2] + : '' + ; + } + return value.match( new RegExp(regExp, flags) ); + }, + + // is valid integer or matches range + integer: function(value, range) { + var + intRegExp = $.fn.form.settings.regExp.integer, + min, + max, + parts + ; + if( !range || ['', '..'].indexOf(range) !== -1) { + // do nothing + } + else if(range.indexOf('..') == -1) { + if(intRegExp.test(range)) { + min = max = range - 0; + } + } + else { + parts = range.split('..', 2); + if(intRegExp.test(parts[0])) { + min = parts[0] - 0; + } + if(intRegExp.test(parts[1])) { + max = parts[1] - 0; + } + } + return ( + intRegExp.test(value) && + (min === undefined || value >= min) && + (max === undefined || value <= max) + ); + }, + + // is valid number (with decimal) + decimal: function(value) { + return $.fn.form.settings.regExp.decimal.test(value); + }, + + // is valid number + number: function(value) { + return $.fn.form.settings.regExp.number.test(value); + }, + + // is value (case insensitive) + is: function(value, text) { + text = (typeof text == 'string') + ? text.toLowerCase() + : text + ; + value = (typeof value == 'string') + ? value.toLowerCase() + : value + ; + return (value == text); + }, + + // is value + isExactly: function(value, text) { + return (value == text); + }, + + // value is not another value (case insensitive) + not: function(value, notValue) { + value = (typeof value == 'string') + ? value.toLowerCase() + : value + ; + notValue = (typeof notValue == 'string') + ? notValue.toLowerCase() + : notValue + ; + return (value != notValue); + }, + + // value is not another value (case sensitive) + notExactly: function(value, notValue) { + return (value != notValue); + }, + + // value contains text (insensitive) + contains: function(value, text) { + // escape regex characters + text = text.replace($.fn.form.settings.regExp.escape, "\\$&"); + return (value.search( new RegExp(text, 'i') ) !== -1); + }, + + // value contains text (case sensitive) + containsExactly: function(value, text) { + // escape regex characters + text = text.replace($.fn.form.settings.regExp.escape, "\\$&"); + return (value.search( new RegExp(text) ) !== -1); + }, + + // value contains text (insensitive) + doesntContain: function(value, text) { + // escape regex characters + text = text.replace($.fn.form.settings.regExp.escape, "\\$&"); + return (value.search( new RegExp(text, 'i') ) === -1); + }, + + // value contains text (case sensitive) + doesntContainExactly: function(value, text) { + // escape regex characters + text = text.replace($.fn.form.settings.regExp.escape, "\\$&"); + return (value.search( new RegExp(text) ) === -1); + }, + + // is at least string length + minLength: function(value, requiredLength) { + return (value !== undefined) + ? (value.length >= requiredLength) + : false + ; + }, + + // see rls notes for 2.0.6 (this is a duplicate of minLength) + length: function(value, requiredLength) { + return (value !== undefined) + ? (value.length >= requiredLength) + : false + ; + }, + + // is exactly length + exactLength: function(value, requiredLength) { + return (value !== undefined) + ? (value.length == requiredLength) + : false + ; + }, + + // is less than length + maxLength: function(value, maxLength) { + return (value !== undefined) + ? (value.length <= maxLength) + : false + ; + }, + + // matches another field + match: function(value, identifier, $module) { + var + matchingValue, + matchingElement + ; + if((matchingElement = $module.find('[data-validate="'+ identifier +'"]')).length > 0 ) { + matchingValue = matchingElement.val(); + } + else if((matchingElement = $module.find('#' + identifier)).length > 0) { + matchingValue = matchingElement.val(); + } + else if((matchingElement = $module.find('[name="' + identifier +'"]')).length > 0) { + matchingValue = matchingElement.val(); + } + else if((matchingElement = $module.find('[name="' + identifier +'[]"]')).length > 0 ) { + matchingValue = matchingElement; + } + return (matchingValue !== undefined) + ? ( value.toString() == matchingValue.toString() ) + : false + ; + }, + + // different than another field + different: function(value, identifier, $module) { + // use either id or name of field + var + matchingValue, + matchingElement + ; + if((matchingElement = $module.find('[data-validate="'+ identifier +'"]')).length > 0 ) { + matchingValue = matchingElement.val(); + } + else if((matchingElement = $module.find('#' + identifier)).length > 0) { + matchingValue = matchingElement.val(); + } + else if((matchingElement = $module.find('[name="' + identifier +'"]')).length > 0) { + matchingValue = matchingElement.val(); + } + else if((matchingElement = $module.find('[name="' + identifier +'[]"]')).length > 0 ) { + matchingValue = matchingElement; + } + return (matchingValue !== undefined) + ? ( value.toString() !== matchingValue.toString() ) + : false + ; + }, + + creditCard: function(cardNumber, cardTypes) { + var + cards = { + visa: { + pattern : /^4/, + length : [16] + }, + amex: { + pattern : /^3[47]/, + length : [15] + }, + mastercard: { + pattern : /^5[1-5]/, + length : [16] + }, + discover: { + pattern : /^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)/, + length : [16] + }, + unionPay: { + pattern : /^(62|88)/, + length : [16, 17, 18, 19] + }, + jcb: { + pattern : /^35(2[89]|[3-8][0-9])/, + length : [16] + }, + maestro: { + pattern : /^(5018|5020|5038|6304|6759|676[1-3])/, + length : [12, 13, 14, 15, 16, 17, 18, 19] + }, + dinersClub: { + pattern : /^(30[0-5]|^36)/, + length : [14] + }, + laser: { + pattern : /^(6304|670[69]|6771)/, + length : [16, 17, 18, 19] + }, + visaElectron: { + pattern : /^(4026|417500|4508|4844|491(3|7))/, + length : [16] + } + }, + valid = {}, + validCard = false, + requiredTypes = (typeof cardTypes == 'string') + ? cardTypes.split(',') + : false, + unionPay, + validation + ; + + if(typeof cardNumber !== 'string' || cardNumber.length === 0) { + return; + } + + // allow dashes in card + cardNumber = cardNumber.replace(/[\-]/g, ''); + + // verify card types + if(requiredTypes) { + $.each(requiredTypes, function(index, type){ + // verify each card type + validation = cards[type]; + if(validation) { + valid = { + length : ($.inArray(cardNumber.length, validation.length) !== -1), + pattern : (cardNumber.search(validation.pattern) !== -1) + }; + if(valid.length && valid.pattern) { + validCard = true; + } + } + }); + + if(!validCard) { + return false; + } + } + + // skip luhn for UnionPay + unionPay = { + number : ($.inArray(cardNumber.length, cards.unionPay.length) !== -1), + pattern : (cardNumber.search(cards.unionPay.pattern) !== -1) + }; + if(unionPay.number && unionPay.pattern) { + return true; + } + + // verify luhn, adapted from <https://gist.github.com/2134376> + var + length = cardNumber.length, + multiple = 0, + producedValue = [ + [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], + [0, 2, 4, 6, 8, 1, 3, 5, 7, 9] + ], + sum = 0 + ; + while (length--) { + sum += producedValue[multiple][parseInt(cardNumber.charAt(length), 10)]; + multiple ^= 1; + } + return (sum % 10 === 0 && sum > 0); + }, + + minCount: function(value, minCount) { + if(minCount == 0) { + return true; + } + if(minCount == 1) { + return (value !== ''); + } + return (value.split(',').length >= minCount); + }, + + exactCount: function(value, exactCount) { + if(exactCount == 0) { + return (value === ''); + } + if(exactCount == 1) { + return (value !== '' && value.search(',') === -1); + } + return (value.split(',').length == exactCount); + }, + + maxCount: function(value, maxCount) { + if(maxCount == 0) { + return false; + } + if(maxCount == 1) { + return (value.search(',') === -1); + } + return (value.split(',').length <= maxCount); + } + } + +}; + +})( jQuery, window, document ); + +/*! + * # Fomantic-UI - Modal + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +$.isFunction = $.isFunction || function(obj) { + return typeof obj === "function" && typeof obj.nodeType !== "number"; +}; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.modal = function(parameters) { + var + $allModules = $(this), + $window = $(window), + $document = $(document), + $body = $('body'), + + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + requestAnimationFrame = window.requestAnimationFrame + || window.mozRequestAnimationFrame + || window.webkitRequestAnimationFrame + || window.msRequestAnimationFrame + || function(callback) { setTimeout(callback, 0); }, + + returnedValue + ; + + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.modal.settings, parameters) + : $.extend({}, $.fn.modal.settings), + + selector = settings.selector, + className = settings.className, + namespace = settings.namespace, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + $module = $(this), + $context = $(settings.context), + $close = $module.find(selector.close), + + $allModals, + $otherModals, + $focusedElement, + $dimmable, + $dimmer, + + element = this, + instance = $module.data(moduleNamespace), + + ignoreRepeatedEvents = false, + + initialMouseDownInModal, + initialMouseDownInScrollbar, + initialBodyMargin = '', + tempBodyMargin = '', + + elementEventNamespace, + id, + observer, + module + ; + module = { + + initialize: function() { + module.cache = {}; + module.verbose('Initializing dimmer', $context); + + module.create.id(); + module.create.dimmer(); + + if ( settings.allowMultiple ) { + module.create.innerDimmer(); + } + if (!settings.centered){ + $module.addClass('top aligned'); + } + module.refreshModals(); + + module.bind.events(); + if(settings.observeChanges) { + module.observeChanges(); + } + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of modal'); + instance = module; + $module + .data(moduleNamespace, instance) + ; + }, + + create: { + dimmer: function() { + var + defaultSettings = { + debug : settings.debug, + dimmerName : 'modals' + }, + dimmerSettings = $.extend(true, defaultSettings, settings.dimmerSettings) + ; + if($.fn.dimmer === undefined) { + module.error(error.dimmer); + return; + } + module.debug('Creating dimmer'); + $dimmable = $context.dimmer(dimmerSettings); + if(settings.detachable) { + module.verbose('Modal is detachable, moving content into dimmer'); + $dimmable.dimmer('add content', $module); + } + else { + module.set.undetached(); + } + $dimmer = $dimmable.dimmer('get dimmer'); + }, + id: function() { + id = (Math.random().toString(16) + '000000000').substr(2, 8); + elementEventNamespace = '.' + id; + module.verbose('Creating unique id for element', id); + }, + innerDimmer: function() { + if ( $module.find(selector.dimmer).length == 0 ) { + $module.prepend('<div class="ui inverted dimmer"></div>'); + } + } + }, + + destroy: function() { + if (observer) { + observer.disconnect(); + } + module.verbose('Destroying previous modal'); + $module + .removeData(moduleNamespace) + .off(eventNamespace) + ; + $window.off(elementEventNamespace); + $dimmer.off(elementEventNamespace); + $close.off(eventNamespace); + $context.dimmer('destroy'); + }, + + observeChanges: function() { + if('MutationObserver' in window) { + observer = new MutationObserver(function(mutations) { + module.debug('DOM tree modified, refreshing'); + module.refresh(); + }); + observer.observe(element, { + childList : true, + subtree : true + }); + module.debug('Setting up mutation observer', observer); + } + }, + + refresh: function() { + module.remove.scrolling(); + module.cacheSizes(); + if(!module.can.useFlex()) { + module.set.modalOffset(); + } + module.set.screenHeight(); + module.set.type(); + }, + + refreshModals: function() { + $otherModals = $module.siblings(selector.modal); + $allModals = $otherModals.add($module); + }, + + attachEvents: function(selector, event) { + var + $toggle = $(selector) + ; + event = $.isFunction(module[event]) + ? module[event] + : module.toggle + ; + if($toggle.length > 0) { + module.debug('Attaching modal events to element', selector, event); + $toggle + .off(eventNamespace) + .on('click' + eventNamespace, event) + ; + } + else { + module.error(error.notFound, selector); + } + }, + + bind: { + events: function() { + module.verbose('Attaching events'); + $module + .on('click' + eventNamespace, selector.close, module.event.close) + .on('click' + eventNamespace, selector.approve, module.event.approve) + .on('click' + eventNamespace, selector.deny, module.event.deny) + ; + $window + .on('resize' + elementEventNamespace, module.event.resize) + ; + }, + scrollLock: function() { + // touch events default to passive, due to changes in chrome to optimize mobile perf + $dimmable.get(0).addEventListener('touchmove', module.event.preventScroll, { passive: false }); + } + }, + + unbind: { + scrollLock: function() { + $dimmable.get(0).removeEventListener('touchmove', module.event.preventScroll, { passive: false }); + } + }, + + get: { + id: function() { + return (Math.random().toString(16) + '000000000').substr(2, 8); + } + }, + + event: { + approve: function() { + if(ignoreRepeatedEvents || settings.onApprove.call(element, $(this)) === false) { + module.verbose('Approve callback returned false cancelling hide'); + return; + } + ignoreRepeatedEvents = true; + module.hide(function() { + ignoreRepeatedEvents = false; + }); + }, + preventScroll: function(event) { + if(event.target.className.indexOf('dimmer') !== -1) { + event.preventDefault(); + } + }, + deny: function() { + if(ignoreRepeatedEvents || settings.onDeny.call(element, $(this)) === false) { + module.verbose('Deny callback returned false cancelling hide'); + return; + } + ignoreRepeatedEvents = true; + module.hide(function() { + ignoreRepeatedEvents = false; + }); + }, + close: function() { + module.hide(); + }, + mousedown: function(event) { + var + $target = $(event.target), + isRtl = module.is.rtl(); + ; + initialMouseDownInModal = ($target.closest(selector.modal).length > 0); + if(initialMouseDownInModal) { + module.verbose('Mouse down event registered inside the modal'); + } + initialMouseDownInScrollbar = module.is.scrolling() && ((!isRtl && $(window).outerWidth() - settings.scrollbarWidth <= event.clientX) || (isRtl && settings.scrollbarWidth >= event.clientX)); + if(initialMouseDownInScrollbar) { + module.verbose('Mouse down event registered inside the scrollbar'); + } + }, + mouseup: function(event) { + if(!settings.closable) { + module.verbose('Dimmer clicked but closable setting is disabled'); + return; + } + if(initialMouseDownInModal) { + module.debug('Dimmer clicked but mouse down was initially registered inside the modal'); + return; + } + if(initialMouseDownInScrollbar){ + module.debug('Dimmer clicked but mouse down was initially registered inside the scrollbar'); + return; + } + var + $target = $(event.target), + isInModal = ($target.closest(selector.modal).length > 0), + isInDOM = $.contains(document.documentElement, event.target) + ; + if(!isInModal && isInDOM && module.is.active() && $module.hasClass(className.front) ) { + module.debug('Dimmer clicked, hiding all modals'); + if(settings.allowMultiple) { + if(!module.hideAll()) { + return; + } + } + else if(!module.hide()){ + return; + } + module.remove.clickaway(); + } + }, + debounce: function(method, delay) { + clearTimeout(module.timer); + module.timer = setTimeout(method, delay); + }, + keyboard: function(event) { + var + keyCode = event.which, + escapeKey = 27 + ; + if(keyCode == escapeKey) { + if(settings.closable) { + module.debug('Escape key pressed hiding modal'); + if ( $module.hasClass(className.front) ) { + module.hide(); + } + } + else { + module.debug('Escape key pressed, but closable is set to false'); + } + event.preventDefault(); + } + }, + resize: function() { + if( $dimmable.dimmer('is active') && ( module.is.animating() || module.is.active() ) ) { + requestAnimationFrame(module.refresh); + } + } + }, + + toggle: function() { + if( module.is.active() || module.is.animating() ) { + module.hide(); + } + else { + module.show(); + } + }, + + show: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + module.refreshModals(); + module.set.dimmerSettings(); + module.set.dimmerStyles(); + + module.showModal(callback); + }, + + hide: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + module.refreshModals(); + return module.hideModal(callback); + }, + + showModal: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if( module.is.animating() || !module.is.active() ) { + module.showDimmer(); + module.cacheSizes(); + module.set.bodyMargin(); + if(module.can.useFlex()) { + module.remove.legacy(); + } + else { + module.set.legacy(); + module.set.modalOffset(); + module.debug('Using non-flex legacy modal positioning.'); + } + module.set.screenHeight(); + module.set.type(); + module.set.clickaway(); + + if( !settings.allowMultiple && module.others.active() ) { + module.hideOthers(module.showModal); + } + else { + ignoreRepeatedEvents = false; + if( settings.allowMultiple ) { + if ( module.others.active() ) { + $otherModals.filter('.' + className.active).find(selector.dimmer).addClass('active'); + } + + if ( settings.detachable ) { + $module.detach().appendTo($dimmer); + } + } + settings.onShow.call(element); + if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { + module.debug('Showing modal with css animations'); + $module + .transition({ + debug : settings.debug, + animation : settings.transition + ' in', + queue : settings.queue, + duration : settings.duration, + useFailSafe : true, + onComplete : function() { + settings.onVisible.apply(element); + if(settings.keyboardShortcuts) { + module.add.keyboardShortcuts(); + } + module.save.focus(); + module.set.active(); + if(settings.autofocus) { + module.set.autofocus(); + } + callback(); + } + }) + ; + } + else { + module.error(error.noTransition); + } + } + } + else { + module.debug('Modal is already visible'); + } + }, + + hideModal: function(callback, keepDimmed, hideOthersToo) { + var + $previousModal = $otherModals.filter('.' + className.active).last() + ; + callback = $.isFunction(callback) + ? callback + : function(){} + ; + module.debug('Hiding modal'); + if(settings.onHide.call(element, $(this)) === false) { + module.verbose('Hide callback returned false cancelling hide'); + ignoreRepeatedEvents = false; + return false; + } + + if( module.is.animating() || module.is.active() ) { + if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { + module.remove.active(); + $module + .transition({ + debug : settings.debug, + animation : settings.transition + ' out', + queue : settings.queue, + duration : settings.duration, + useFailSafe : true, + onStart : function() { + if(!module.others.active() && !module.others.animating() && !keepDimmed) { + module.hideDimmer(); + } + if( settings.keyboardShortcuts && !module.others.active() ) { + module.remove.keyboardShortcuts(); + } + }, + onComplete : function() { + module.unbind.scrollLock(); + if ( settings.allowMultiple ) { + $previousModal.addClass(className.front); + $module.removeClass(className.front); + + if ( hideOthersToo ) { + $allModals.find(selector.dimmer).removeClass('active'); + } + else { + $previousModal.find(selector.dimmer).removeClass('active'); + } + } + settings.onHidden.call(element); + module.remove.dimmerStyles(); + module.restore.focus(); + callback(); + } + }) + ; + } + else { + module.error(error.noTransition); + } + } + }, + + showDimmer: function() { + if($dimmable.dimmer('is animating') || !$dimmable.dimmer('is active') ) { + module.save.bodyMargin(); + module.debug('Showing dimmer'); + $dimmable.dimmer('show'); + } + else { + module.debug('Dimmer already visible'); + } + }, + + hideDimmer: function() { + if( $dimmable.dimmer('is animating') || ($dimmable.dimmer('is active')) ) { + module.unbind.scrollLock(); + $dimmable.dimmer('hide', function() { + module.restore.bodyMargin(); + module.remove.clickaway(); + module.remove.screenHeight(); + }); + } + else { + module.debug('Dimmer is not visible cannot hide'); + return; + } + }, + + hideAll: function(callback) { + var + $visibleModals = $allModals.filter('.' + className.active + ', .' + className.animating) + ; + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if( $visibleModals.length > 0 ) { + module.debug('Hiding all visible modals'); + var hideOk = true; +//check in reverse order trying to hide most top displayed modal first + $($visibleModals.get().reverse()).each(function(index,element){ + if(hideOk){ + hideOk = $(element).modal('hide modal', callback, false, true); + } + }); + if(hideOk) { + module.hideDimmer(); + } + return hideOk; + } + }, + + hideOthers: function(callback) { + var + $visibleModals = $otherModals.filter('.' + className.active + ', .' + className.animating) + ; + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if( $visibleModals.length > 0 ) { + module.debug('Hiding other modals', $otherModals); + $visibleModals + .modal('hide modal', callback, true) + ; + } + }, + + others: { + active: function() { + return ($otherModals.filter('.' + className.active).length > 0); + }, + animating: function() { + return ($otherModals.filter('.' + className.animating).length > 0); + } + }, + + + add: { + keyboardShortcuts: function() { + module.verbose('Adding keyboard shortcuts'); + $document + .on('keyup' + eventNamespace, module.event.keyboard) + ; + } + }, + + save: { + focus: function() { + var + $activeElement = $(document.activeElement), + inCurrentModal = $activeElement.closest($module).length > 0 + ; + if(!inCurrentModal) { + $focusedElement = $(document.activeElement).blur(); + } + }, + bodyMargin: function() { + initialBodyMargin = $body.css('margin-'+(module.can.leftBodyScrollbar() ? 'left':'right')); + var bodyMarginRightPixel = parseInt(initialBodyMargin.replace(/[^\d.]/g, '')), + bodyScrollbarWidth = window.innerWidth - document.documentElement.clientWidth; + tempBodyMargin = bodyMarginRightPixel + bodyScrollbarWidth; + } + }, + + restore: { + focus: function() { + if($focusedElement && $focusedElement.length > 0 && settings.restoreFocus) { + $focusedElement.focus(); + } + }, + bodyMargin: function() { + var position = module.can.leftBodyScrollbar() ? 'left':'right'; + $body.css('margin-'+position, initialBodyMargin); + $body.find(selector.bodyFixed.replace('right',position)).css('padding-'+position, initialBodyMargin); + } + }, + + remove: { + active: function() { + $module.removeClass(className.active); + }, + legacy: function() { + $module.removeClass(className.legacy); + }, + clickaway: function() { + if (!settings.detachable) { + $module + .off('mousedown' + elementEventNamespace) + ; + } + $dimmer + .off('mousedown' + elementEventNamespace) + ; + $dimmer + .off('mouseup' + elementEventNamespace) + ; + }, + dimmerStyles: function() { + $dimmer.removeClass(className.inverted); + $dimmable.removeClass(className.blurring); + }, + bodyStyle: function() { + if($body.attr('style') === '') { + module.verbose('Removing style attribute'); + $body.removeAttr('style'); + } + }, + screenHeight: function() { + module.debug('Removing page height'); + $body + .css('height', '') + ; + }, + keyboardShortcuts: function() { + module.verbose('Removing keyboard shortcuts'); + $document + .off('keyup' + eventNamespace) + ; + }, + scrolling: function() { + $dimmable.removeClass(className.scrolling); + $module.removeClass(className.scrolling); + } + }, + + cacheSizes: function() { + $module.addClass(className.loading); + var + scrollHeight = $module.prop('scrollHeight'), + modalWidth = $module.outerWidth(), + modalHeight = $module.outerHeight() + ; + if(module.cache.pageHeight === undefined || modalHeight !== 0) { + $.extend(module.cache, { + pageHeight : $(document).outerHeight(), + width : modalWidth, + height : modalHeight + settings.offset, + scrollHeight : scrollHeight + settings.offset, + contextHeight : (settings.context == 'body') + ? $(window).height() + : $dimmable.height(), + }); + module.cache.topOffset = -(module.cache.height / 2); + } + $module.removeClass(className.loading); + module.debug('Caching modal and container sizes', module.cache); + }, + + can: { + leftBodyScrollbar: function(){ + if(module.cache.leftBodyScrollbar === undefined) { + module.cache.leftBodyScrollbar = module.is.rtl() && ((module.is.iframe && !module.is.firefox()) || module.is.safari() || module.is.edge() || module.is.ie()); + } + return module.cache.leftBodyScrollbar; + }, + useFlex: function() { + if (settings.useFlex === 'auto') { + return settings.detachable && !module.is.ie(); + } + if(settings.useFlex && module.is.ie()) { + module.debug('useFlex true is not supported in IE'); + } else if(settings.useFlex && !settings.detachable) { + module.debug('useFlex true in combination with detachable false is not supported'); + } + return settings.useFlex; + }, + fit: function() { + var + contextHeight = module.cache.contextHeight, + verticalCenter = module.cache.contextHeight / 2, + topOffset = module.cache.topOffset, + scrollHeight = module.cache.scrollHeight, + height = module.cache.height, + paddingHeight = settings.padding, + startPosition = (verticalCenter + topOffset) + ; + return (scrollHeight > height) + ? (startPosition + scrollHeight + paddingHeight < contextHeight) + : (height + (paddingHeight * 2) < contextHeight) + ; + } + }, + + is: { + active: function() { + return $module.hasClass(className.active); + }, + ie: function() { + if(module.cache.isIE === undefined) { + var + isIE11 = (!(window.ActiveXObject) && 'ActiveXObject' in window), + isIE = ('ActiveXObject' in window) + ; + module.cache.isIE = (isIE11 || isIE); + } + return module.cache.isIE; + }, + animating: function() { + return $module.transition('is supported') + ? $module.transition('is animating') + : $module.is(':visible') + ; + }, + scrolling: function() { + return $dimmable.hasClass(className.scrolling); + }, + modernBrowser: function() { + // appName for IE11 reports 'Netscape' can no longer use + return !(window.ActiveXObject || 'ActiveXObject' in window); + }, + rtl: function() { + if(module.cache.isRTL === undefined) { + module.cache.isRTL = $body.attr('dir') === 'rtl' || $body.css('direction') === 'rtl'; + } + return module.cache.isRTL; + }, + safari: function() { + if(module.cache.isSafari === undefined) { + module.cache.isSafari = /constructor/i.test(window.HTMLElement) || !!window.ApplePaySession; + } + return module.cache.isSafari; + }, + edge: function(){ + if(module.cache.isEdge === undefined) { + module.cache.isEdge = !!window.setImmediate && !module.is.ie(); + } + return module.cache.isEdge; + }, + firefox: function(){ + if(module.cache.isFirefox === undefined) { + module.cache.isFirefox = !!window.InstallTrigger; + } + return module.cache.isFirefox; + }, + iframe: function() { + return !(self === top); + } + }, + + set: { + autofocus: function() { + var + $inputs = $module.find('[tabindex], :input').filter(':visible').filter(function() { + return $(this).closest('.disabled').length === 0; + }), + $autofocus = $inputs.filter('[autofocus]'), + $input = ($autofocus.length > 0) + ? $autofocus.first() + : $inputs.first() + ; + if($input.length > 0) { + $input.focus(); + } + }, + bodyMargin: function() { + var position = module.can.leftBodyScrollbar() ? 'left':'right'; + if(settings.detachable || module.can.fit()) { + $body.css('margin-'+position, tempBodyMargin + 'px'); + } + $body.find(selector.bodyFixed.replace('right',position)).css('padding-'+position, tempBodyMargin + 'px'); + }, + clickaway: function() { + if (!settings.detachable) { + $module + .on('mousedown' + elementEventNamespace, module.event.mousedown) + ; + } + $dimmer + .on('mousedown' + elementEventNamespace, module.event.mousedown) + ; + $dimmer + .on('mouseup' + elementEventNamespace, module.event.mouseup) + ; + }, + dimmerSettings: function() { + if($.fn.dimmer === undefined) { + module.error(error.dimmer); + return; + } + var + defaultSettings = { + debug : settings.debug, + dimmerName : 'modals', + closable : 'auto', + useFlex : module.can.useFlex(), + duration : { + show : settings.duration, + hide : settings.duration + } + }, + dimmerSettings = $.extend(true, defaultSettings, settings.dimmerSettings) + ; + if(settings.inverted) { + dimmerSettings.variation = (dimmerSettings.variation !== undefined) + ? dimmerSettings.variation + ' inverted' + : 'inverted' + ; + } + $context.dimmer('setting', dimmerSettings); + }, + dimmerStyles: function() { + if(settings.inverted) { + $dimmer.addClass(className.inverted); + } + else { + $dimmer.removeClass(className.inverted); + } + if(settings.blurring) { + $dimmable.addClass(className.blurring); + } + else { + $dimmable.removeClass(className.blurring); + } + }, + modalOffset: function() { + if (!settings.detachable) { + var canFit = module.can.fit(); + $module + .css({ + top: (!$module.hasClass('aligned') && canFit) + ? $(document).scrollTop() + (module.cache.contextHeight - module.cache.height) / 2 + : !canFit || $module.hasClass('top') + ? $(document).scrollTop() + settings.padding + : $(document).scrollTop() + (module.cache.contextHeight - module.cache.height - settings.padding), + marginLeft: -(module.cache.width / 2) + }) + ; + } else { + $module + .css({ + marginTop: (!$module.hasClass('aligned') && module.can.fit()) + ? -(module.cache.height / 2) + : settings.padding / 2, + marginLeft: -(module.cache.width / 2) + }) + ; + } + module.verbose('Setting modal offset for legacy mode'); + }, + screenHeight: function() { + if( module.can.fit() ) { + $body.css('height', ''); + } + else if(!$module.hasClass('bottom')) { + module.debug('Modal is taller than page content, resizing page height'); + $body + .css('height', module.cache.height + (settings.padding * 2) ) + ; + } + }, + active: function() { + $module.addClass(className.active + ' ' + className.front); + $otherModals.filter('.' + className.active).removeClass(className.front); + }, + scrolling: function() { + $dimmable.addClass(className.scrolling); + $module.addClass(className.scrolling); + module.unbind.scrollLock(); + }, + legacy: function() { + $module.addClass(className.legacy); + }, + type: function() { + if(module.can.fit()) { + module.verbose('Modal fits on screen'); + if(!module.others.active() && !module.others.animating()) { + module.remove.scrolling(); + module.bind.scrollLock(); + } + } + else if (!$module.hasClass('bottom')){ + module.verbose('Modal cannot fit on screen setting to scrolling'); + module.set.scrolling(); + } else { + module.verbose('Bottom aligned modal not fitting on screen is unsupported for scrolling'); + } + }, + undetached: function() { + $dimmable.addClass(className.undetached); + } + }, + + setting: function(name, value) { + module.debug('Changing setting', name, value); + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + if($.isPlainObject(settings[name])) { + $.extend(true, settings[name], value); + } + else { + settings[name] = value; + } + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if(Array.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + instance.invoke('destroy'); + } + module.initialize(); + } + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.modal.settings = { + + name : 'Modal', + namespace : 'modal', + + useFlex : 'auto', + offset : 0, + + silent : false, + debug : false, + verbose : false, + performance : true, + + observeChanges : false, + + allowMultiple : false, + detachable : true, + closable : true, + autofocus : true, + restoreFocus : true, + + inverted : false, + blurring : false, + + centered : true, + + dimmerSettings : { + closable : false, + useCSS : true + }, + + // whether to use keyboard shortcuts + keyboardShortcuts: true, + + context : 'body', + + queue : false, + duration : 500, + transition : 'scale', + + // padding with edge of page + padding : 50, + scrollbarWidth: 10, + + // called before show animation + onShow : function(){}, + + // called after show animation + onVisible : function(){}, + + // called before hide animation + onHide : function(){ return true; }, + + // called after hide animation + onHidden : function(){}, + + // called after approve selector match + onApprove : function(){ return true; }, + + // called after deny selector match + onDeny : function(){ return true; }, + + selector : { + close : '> .close', + approve : '.actions .positive, .actions .approve, .actions .ok', + deny : '.actions .negative, .actions .deny, .actions .cancel', + modal : '.ui.modal', + dimmer : '> .ui.dimmer', + bodyFixed: '> .ui.fixed.menu, > .ui.right.toast-container, > .ui.right.sidebar' + }, + error : { + dimmer : 'UI Dimmer, a required component is not included in this page', + method : 'The method you called is not defined.', + notFound : 'The element you specified could not be found' + }, + className : { + active : 'active', + animating : 'animating', + blurring : 'blurring', + inverted : 'inverted', + legacy : 'legacy', + loading : 'loading', + scrolling : 'scrolling', + undetached : 'undetached', + front : 'front' + } +}; + + +})( jQuery, window, document ); + +/*! + * # Fomantic-UI - Popup + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +$.isFunction = $.isFunction || function(obj) { + return typeof obj === "function" && typeof obj.nodeType !== "number"; +}; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.popup = function(parameters) { + var + $allModules = $(this), + $document = $(document), + $window = $(window), + $body = $('body'), + + moduleSelector = $allModules.selector || '', + + clickEvent = ('ontouchstart' in document.documentElement) + ? 'touchstart' + : 'click', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + returnedValue + ; + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.popup.settings, parameters) + : $.extend({}, $.fn.popup.settings), + + selector = settings.selector, + className = settings.className, + error = settings.error, + metadata = settings.metadata, + namespace = settings.namespace, + + eventNamespace = '.' + settings.namespace, + moduleNamespace = 'module-' + namespace, + + $module = $(this), + $context = $(settings.context), + $scrollContext = $(settings.scrollContext), + $boundary = $(settings.boundary), + $target = (settings.target) + ? $(settings.target) + : $module, + + $popup, + $offsetParent, + + searchDepth = 0, + triedPositions = false, + openedWithTouch = false, + + element = this, + instance = $module.data(moduleNamespace), + + documentObserver, + elementNamespace, + id, + module + ; + + module = { + + // binds events + initialize: function() { + module.debug('Initializing', $module); + module.createID(); + module.bind.events(); + if(!module.exists() && settings.preserve) { + module.create(); + } + if(settings.observeChanges) { + module.observeChanges(); + } + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance', module); + instance = module; + $module + .data(moduleNamespace, instance) + ; + }, + + observeChanges: function() { + if('MutationObserver' in window) { + documentObserver = new MutationObserver(module.event.documentChanged); + documentObserver.observe(document, { + childList : true, + subtree : true + }); + module.debug('Setting up mutation observer', documentObserver); + } + }, + + refresh: function() { + if(settings.popup) { + $popup = $(settings.popup).eq(0); + } + else { + if(settings.inline) { + $popup = $target.nextAll(selector.popup).eq(0); + settings.popup = $popup; + } + } + if(settings.popup) { + $popup.addClass(className.loading); + $offsetParent = module.get.offsetParent(); + $popup.removeClass(className.loading); + if(settings.movePopup && module.has.popup() && module.get.offsetParent($popup)[0] !== $offsetParent[0]) { + module.debug('Moving popup to the same offset parent as target'); + $popup + .detach() + .appendTo($offsetParent) + ; + } + } + else { + $offsetParent = (settings.inline) + ? module.get.offsetParent($target) + : module.has.popup() + ? module.get.offsetParent($popup) + : $body + ; + } + if( $offsetParent.is('html') && $offsetParent[0] !== $body[0] ) { + module.debug('Setting page as offset parent'); + $offsetParent = $body; + } + if( module.get.variation() ) { + module.set.variation(); + } + }, + + reposition: function() { + module.refresh(); + module.set.position(); + }, + + destroy: function() { + module.debug('Destroying previous module'); + if(documentObserver) { + documentObserver.disconnect(); + } + // remove element only if was created dynamically + if($popup && !settings.preserve) { + module.removePopup(); + } + // clear all timeouts + clearTimeout(module.hideTimer); + clearTimeout(module.showTimer); + // remove events + module.unbind.close(); + module.unbind.events(); + $module + .removeData(moduleNamespace) + ; + }, + + event: { + start: function(event) { + var + delay = ($.isPlainObject(settings.delay)) + ? settings.delay.show + : settings.delay + ; + clearTimeout(module.hideTimer); + if(!openedWithTouch || (openedWithTouch && settings.addTouchEvents) ) { + module.showTimer = setTimeout(module.show, delay); + } + }, + end: function() { + var + delay = ($.isPlainObject(settings.delay)) + ? settings.delay.hide + : settings.delay + ; + clearTimeout(module.showTimer); + module.hideTimer = setTimeout(module.hide, delay); + }, + touchstart: function(event) { + openedWithTouch = true; + if(settings.addTouchEvents) { + module.show(); + } + }, + resize: function() { + if( module.is.visible() ) { + module.set.position(); + } + }, + documentChanged: function(mutations) { + [].forEach.call(mutations, function(mutation) { + if(mutation.removedNodes) { + [].forEach.call(mutation.removedNodes, function(node) { + if(node == element || $(node).find(element).length > 0) { + module.debug('Element removed from DOM, tearing down events'); + module.destroy(); + } + }); + } + }); + }, + hideGracefully: function(event) { + var + $target = $(event.target), + isInDOM = $.contains(document.documentElement, event.target), + inPopup = ($target.closest(selector.popup).length > 0) + ; + // don't close on clicks inside popup + if(event && !inPopup && isInDOM) { + module.debug('Click occurred outside popup hiding popup'); + module.hide(); + } + else { + module.debug('Click was inside popup, keeping popup open'); + } + } + }, + + // generates popup html from metadata + create: function() { + var + html = module.get.html(), + title = module.get.title(), + content = module.get.content() + ; + + if(html || content || title) { + module.debug('Creating pop-up html'); + if(!html) { + html = settings.templates.popup({ + title : title, + content : content + }); + } + $popup = $('<div/>') + .addClass(className.popup) + .data(metadata.activator, $module) + .html(html) + ; + if(settings.inline) { + module.verbose('Inserting popup element inline', $popup); + $popup + .insertAfter($module) + ; + } + else { + module.verbose('Appending popup element to body', $popup); + $popup + .appendTo( $context ) + ; + } + module.refresh(); + module.set.variation(); + + if(settings.hoverable) { + module.bind.popup(); + } + settings.onCreate.call($popup, element); + } + else if(settings.popup) { + $(settings.popup).data(metadata.activator, $module); + module.verbose('Used popup specified in settings'); + module.refresh(); + if(settings.hoverable) { + module.bind.popup(); + } + } + else if($target.next(selector.popup).length !== 0) { + module.verbose('Pre-existing popup found'); + settings.inline = true; + settings.popup = $target.next(selector.popup).data(metadata.activator, $module); + module.refresh(); + if(settings.hoverable) { + module.bind.popup(); + } + } + else { + module.debug('No content specified skipping display', element); + } + }, + + createID: function() { + id = (Math.random().toString(16) + '000000000').substr(2, 8); + elementNamespace = '.' + id; + module.verbose('Creating unique id for element', id); + }, + + // determines popup state + toggle: function() { + module.debug('Toggling pop-up'); + if( module.is.hidden() ) { + module.debug('Popup is hidden, showing pop-up'); + module.unbind.close(); + module.show(); + } + else { + module.debug('Popup is visible, hiding pop-up'); + module.hide(); + } + }, + + show: function(callback) { + callback = callback || function(){}; + module.debug('Showing pop-up', settings.transition); + if(module.is.hidden() && !( module.is.active() && module.is.dropdown()) ) { + if( !module.exists() ) { + module.create(); + } + if(settings.onShow.call($popup, element) === false) { + module.debug('onShow callback returned false, cancelling popup animation'); + return; + } + else if(!settings.preserve && !settings.popup) { + module.refresh(); + } + if( $popup && module.set.position() ) { + module.save.conditions(); + if(settings.exclusive) { + module.hideAll(); + } + module.animate.show(callback); + } + } + }, + + + hide: function(callback) { + callback = callback || function(){}; + if( module.is.visible() || module.is.animating() ) { + if(settings.onHide.call($popup, element) === false) { + module.debug('onHide callback returned false, cancelling popup animation'); + return; + } + module.remove.visible(); + module.unbind.close(); + module.restore.conditions(); + module.animate.hide(callback); + } + }, + + hideAll: function() { + $(selector.popup) + .filter('.' + className.popupVisible) + .each(function() { + $(this) + .data(metadata.activator) + .popup('hide') + ; + }) + ; + }, + exists: function() { + if(!$popup) { + return false; + } + if(settings.inline || settings.popup) { + return ( module.has.popup() ); + } + else { + return ( $popup.closest($context).length >= 1 ) + ? true + : false + ; + } + }, + + removePopup: function() { + if( module.has.popup() && !settings.popup) { + module.debug('Removing popup', $popup); + $popup.remove(); + $popup = undefined; + settings.onRemove.call($popup, element); + } + }, + + save: { + conditions: function() { + module.cache = { + title: $module.attr('title') + }; + if (module.cache.title) { + $module.removeAttr('title'); + } + module.verbose('Saving original attributes', module.cache.title); + } + }, + restore: { + conditions: function() { + if(module.cache && module.cache.title) { + $module.attr('title', module.cache.title); + module.verbose('Restoring original attributes', module.cache.title); + } + return true; + } + }, + supports: { + svg: function() { + return (typeof SVGGraphicsElement !== 'undefined'); + } + }, + animate: { + show: function(callback) { + callback = $.isFunction(callback) ? callback : function(){}; + if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { + module.set.visible(); + $popup + .transition({ + animation : settings.transition + ' in', + queue : false, + debug : settings.debug, + verbose : settings.verbose, + duration : settings.duration, + onComplete : function() { + module.bind.close(); + callback.call($popup, element); + settings.onVisible.call($popup, element); + } + }) + ; + } + else { + module.error(error.noTransition); + } + }, + hide: function(callback) { + callback = $.isFunction(callback) ? callback : function(){}; + module.debug('Hiding pop-up'); + if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { + $popup + .transition({ + animation : settings.transition + ' out', + queue : false, + duration : settings.duration, + debug : settings.debug, + verbose : settings.verbose, + onComplete : function() { + module.reset(); + callback.call($popup, element); + settings.onHidden.call($popup, element); + } + }) + ; + } + else { + module.error(error.noTransition); + } + } + }, + + change: { + content: function(html) { + $popup.html(html); + } + }, + + get: { + html: function() { + $module.removeData(metadata.html); + return $module.data(metadata.html) || settings.html; + }, + title: function() { + $module.removeData(metadata.title); + return $module.data(metadata.title) || settings.title; + }, + content: function() { + $module.removeData(metadata.content); + return $module.data(metadata.content) || settings.content || $module.attr('title'); + }, + variation: function() { + $module.removeData(metadata.variation); + return $module.data(metadata.variation) || settings.variation; + }, + popup: function() { + return $popup; + }, + popupOffset: function() { + return $popup.offset(); + }, + calculations: function() { + var + $popupOffsetParent = module.get.offsetParent($popup), + targetElement = $target[0], + isWindow = ($boundary[0] == window), + targetOffset = $target.offset(), + parentOffset = settings.inline || (settings.popup && settings.movePopup) + ? $target.offsetParent().offset() + : { top: 0, left: 0 }, + screenPosition = (isWindow) + ? { top: 0, left: 0 } + : $boundary.offset(), + calculations = {}, + scroll = (isWindow) + ? { top: $window.scrollTop(), left: $window.scrollLeft() } + : { top: 0, left: 0}, + screen + ; + calculations = { + // element which is launching popup + target : { + element : $target[0], + width : $target.outerWidth(), + height : $target.outerHeight(), + top : targetOffset.top - parentOffset.top, + left : targetOffset.left - parentOffset.left, + margin : {} + }, + // popup itself + popup : { + width : $popup.outerWidth(), + height : $popup.outerHeight() + }, + // offset container (or 3d context) + parent : { + width : $offsetParent.outerWidth(), + height : $offsetParent.outerHeight() + }, + // screen boundaries + screen : { + top : screenPosition.top, + left : screenPosition.left, + scroll: { + top : scroll.top, + left : scroll.left + }, + width : $boundary.width(), + height : $boundary.height() + } + }; + + // if popup offset context is not same as target, then adjust calculations + if($popupOffsetParent.get(0) !== $offsetParent.get(0)) { + var + popupOffset = $popupOffsetParent.offset() + ; + calculations.target.top -= popupOffset.top; + calculations.target.left -= popupOffset.left; + calculations.parent.width = $popupOffsetParent.outerWidth(); + calculations.parent.height = $popupOffsetParent.outerHeight(); + } + + // add in container calcs if fluid + if( settings.setFluidWidth && module.is.fluid() ) { + calculations.container = { + width: $popup.parent().outerWidth() + }; + calculations.popup.width = calculations.container.width; + } + + // add in margins if inline + calculations.target.margin.top = (settings.inline) + ? parseInt( window.getComputedStyle(targetElement).getPropertyValue('margin-top'), 10) + : 0 + ; + calculations.target.margin.left = (settings.inline) + ? module.is.rtl() + ? parseInt( window.getComputedStyle(targetElement).getPropertyValue('margin-right'), 10) + : parseInt( window.getComputedStyle(targetElement).getPropertyValue('margin-left'), 10) + : 0 + ; + // calculate screen boundaries + screen = calculations.screen; + calculations.boundary = { + top : screen.top + screen.scroll.top, + bottom : screen.top + screen.scroll.top + screen.height, + left : screen.left + screen.scroll.left, + right : screen.left + screen.scroll.left + screen.width + }; + return calculations; + }, + id: function() { + return id; + }, + startEvent: function() { + if(settings.on == 'hover') { + return 'mouseenter'; + } + else if(settings.on == 'focus') { + return 'focus'; + } + return false; + }, + scrollEvent: function() { + return 'scroll'; + }, + endEvent: function() { + if(settings.on == 'hover') { + return 'mouseleave'; + } + else if(settings.on == 'focus') { + return 'blur'; + } + return false; + }, + distanceFromBoundary: function(offset, calculations) { + var + distanceFromBoundary = {}, + popup, + boundary + ; + calculations = calculations || module.get.calculations(); + + // shorthand + popup = calculations.popup; + boundary = calculations.boundary; + + if(offset) { + distanceFromBoundary = { + top : (offset.top - boundary.top), + left : (offset.left - boundary.left), + right : (boundary.right - (offset.left + popup.width) ), + bottom : (boundary.bottom - (offset.top + popup.height) ) + }; + module.verbose('Distance from boundaries determined', offset, distanceFromBoundary); + } + return distanceFromBoundary; + }, + offsetParent: function($element) { + var + element = ($element !== undefined) + ? $element[0] + : $target[0], + parentNode = element.parentNode, + $node = $(parentNode) + ; + if(parentNode) { + var + is2D = ($node.css('transform') === 'none'), + isStatic = ($node.css('position') === 'static'), + isBody = $node.is('body') + ; + while(parentNode && !isBody && isStatic && is2D) { + parentNode = parentNode.parentNode; + $node = $(parentNode); + is2D = ($node.css('transform') === 'none'); + isStatic = ($node.css('position') === 'static'); + isBody = $node.is('body'); + } + } + return ($node && $node.length > 0) + ? $node + : $() + ; + }, + positions: function() { + return { + 'top left' : false, + 'top center' : false, + 'top right' : false, + 'bottom left' : false, + 'bottom center' : false, + 'bottom right' : false, + 'left center' : false, + 'right center' : false + }; + }, + nextPosition: function(position) { + var + positions = position.split(' '), + verticalPosition = positions[0], + horizontalPosition = positions[1], + opposite = { + top : 'bottom', + bottom : 'top', + left : 'right', + right : 'left' + }, + adjacent = { + left : 'center', + center : 'right', + right : 'left' + }, + backup = { + 'top left' : 'top center', + 'top center' : 'top right', + 'top right' : 'right center', + 'right center' : 'bottom right', + 'bottom right' : 'bottom center', + 'bottom center' : 'bottom left', + 'bottom left' : 'left center', + 'left center' : 'top left' + }, + adjacentsAvailable = (verticalPosition == 'top' || verticalPosition == 'bottom'), + oppositeTried = false, + adjacentTried = false, + nextPosition = false + ; + if(!triedPositions) { + module.verbose('All available positions available'); + triedPositions = module.get.positions(); + } + + module.debug('Recording last position tried', position); + triedPositions[position] = true; + + if(settings.prefer === 'opposite') { + nextPosition = [opposite[verticalPosition], horizontalPosition]; + nextPosition = nextPosition.join(' '); + oppositeTried = (triedPositions[nextPosition] === true); + module.debug('Trying opposite strategy', nextPosition); + } + if((settings.prefer === 'adjacent') && adjacentsAvailable ) { + nextPosition = [verticalPosition, adjacent[horizontalPosition]]; + nextPosition = nextPosition.join(' '); + adjacentTried = (triedPositions[nextPosition] === true); + module.debug('Trying adjacent strategy', nextPosition); + } + if(adjacentTried || oppositeTried) { + module.debug('Using backup position', nextPosition); + nextPosition = backup[position]; + } + return nextPosition; + } + }, + + set: { + position: function(position, calculations) { + + // exit conditions + if($target.length === 0 || $popup.length === 0) { + module.error(error.notFound); + return; + } + var + offset, + distanceAway, + target, + popup, + parent, + positioning, + popupOffset, + distanceFromBoundary + ; + + calculations = calculations || module.get.calculations(); + position = position || $module.data(metadata.position) || settings.position; + + offset = $module.data(metadata.offset) || settings.offset; + distanceAway = settings.distanceAway; + + // shorthand + target = calculations.target; + popup = calculations.popup; + parent = calculations.parent; + + if(module.should.centerArrow(calculations)) { + module.verbose('Adjusting offset to center arrow on small target element'); + if(position == 'top left' || position == 'bottom left') { + offset += (target.width / 2); + offset -= settings.arrowPixelsFromEdge; + } + if(position == 'top right' || position == 'bottom right') { + offset -= (target.width / 2); + offset += settings.arrowPixelsFromEdge; + } + } + + if(target.width === 0 && target.height === 0 && !module.is.svg(target.element)) { + module.debug('Popup target is hidden, no action taken'); + return false; + } + + if(settings.inline) { + module.debug('Adding margin to calculation', target.margin); + if(position == 'left center' || position == 'right center') { + offset += target.margin.top; + distanceAway += -target.margin.left; + } + else if (position == 'top left' || position == 'top center' || position == 'top right') { + offset += target.margin.left; + distanceAway -= target.margin.top; + } + else { + offset += target.margin.left; + distanceAway += target.margin.top; + } + } + + module.debug('Determining popup position from calculations', position, calculations); + + if (module.is.rtl()) { + position = position.replace(/left|right/g, function (match) { + return (match == 'left') + ? 'right' + : 'left' + ; + }); + module.debug('RTL: Popup position updated', position); + } + + // if last attempt use specified last resort position + if(searchDepth == settings.maxSearchDepth && typeof settings.lastResort === 'string') { + position = settings.lastResort; + } + + switch (position) { + case 'top left': + positioning = { + top : 'auto', + bottom : parent.height - target.top + distanceAway, + left : target.left + offset, + right : 'auto' + }; + break; + case 'top center': + positioning = { + bottom : parent.height - target.top + distanceAway, + left : target.left + (target.width / 2) - (popup.width / 2) + offset, + top : 'auto', + right : 'auto' + }; + break; + case 'top right': + positioning = { + bottom : parent.height - target.top + distanceAway, + right : parent.width - target.left - target.width - offset, + top : 'auto', + left : 'auto' + }; + break; + case 'left center': + positioning = { + top : target.top + (target.height / 2) - (popup.height / 2) + offset, + right : parent.width - target.left + distanceAway, + left : 'auto', + bottom : 'auto' + }; + break; + case 'right center': + positioning = { + top : target.top + (target.height / 2) - (popup.height / 2) + offset, + left : target.left + target.width + distanceAway, + bottom : 'auto', + right : 'auto' + }; + break; + case 'bottom left': + positioning = { + top : target.top + target.height + distanceAway, + left : target.left + offset, + bottom : 'auto', + right : 'auto' + }; + break; + case 'bottom center': + positioning = { + top : target.top + target.height + distanceAway, + left : target.left + (target.width / 2) - (popup.width / 2) + offset, + bottom : 'auto', + right : 'auto' + }; + break; + case 'bottom right': + positioning = { + top : target.top + target.height + distanceAway, + right : parent.width - target.left - target.width - offset, + left : 'auto', + bottom : 'auto' + }; + break; + } + if(positioning === undefined) { + module.error(error.invalidPosition, position); + } + + module.debug('Calculated popup positioning values', positioning); + + // tentatively place on stage + $popup + .css(positioning) + .removeClass(className.position) + .addClass(position) + .addClass(className.loading) + ; + + popupOffset = module.get.popupOffset(); + + // see if any boundaries are surpassed with this tentative position + distanceFromBoundary = module.get.distanceFromBoundary(popupOffset, calculations); + + if(!settings.forcePosition && module.is.offstage(distanceFromBoundary, position) ) { + module.debug('Position is outside viewport', position); + if(searchDepth < settings.maxSearchDepth) { + searchDepth++; + position = module.get.nextPosition(position); + module.debug('Trying new position', position); + return ($popup) + ? module.set.position(position, calculations) + : false + ; + } + else { + if(settings.lastResort) { + module.debug('No position found, showing with last position'); + } + else { + module.debug('Popup could not find a position to display', $popup); + module.error(error.cannotPlace, element); + module.remove.attempts(); + module.remove.loading(); + module.reset(); + settings.onUnplaceable.call($popup, element); + return false; + } + } + } + module.debug('Position is on stage', position); + module.remove.attempts(); + module.remove.loading(); + if( settings.setFluidWidth && module.is.fluid() ) { + module.set.fluidWidth(calculations); + } + return true; + }, + + fluidWidth: function(calculations) { + calculations = calculations || module.get.calculations(); + module.debug('Automatically setting element width to parent width', calculations.parent.width); + $popup.css('width', calculations.container.width); + }, + + variation: function(variation) { + variation = variation || module.get.variation(); + if(variation && module.has.popup() ) { + module.verbose('Adding variation to popup', variation); + $popup.addClass(variation); + } + }, + + visible: function() { + $module.addClass(className.visible); + } + }, + + remove: { + loading: function() { + $popup.removeClass(className.loading); + }, + variation: function(variation) { + variation = variation || module.get.variation(); + if(variation) { + module.verbose('Removing variation', variation); + $popup.removeClass(variation); + } + }, + visible: function() { + $module.removeClass(className.visible); + }, + attempts: function() { + module.verbose('Resetting all searched positions'); + searchDepth = 0; + triedPositions = false; + } + }, + + bind: { + events: function() { + module.debug('Binding popup events to module'); + if(settings.on == 'click') { + $module + .on(clickEvent + eventNamespace, module.toggle) + ; + } + if(settings.on == 'hover') { + $module + .on('touchstart' + eventNamespace, module.event.touchstart) + ; + } + if( module.get.startEvent() ) { + $module + .on(module.get.startEvent() + eventNamespace, module.event.start) + .on(module.get.endEvent() + eventNamespace, module.event.end) + ; + } + if(settings.target) { + module.debug('Target set to element', $target); + } + $window.on('resize' + elementNamespace, module.event.resize); + }, + popup: function() { + module.verbose('Allowing hover events on popup to prevent closing'); + if( $popup && module.has.popup() ) { + $popup + .on('mouseenter' + eventNamespace, module.event.start) + .on('mouseleave' + eventNamespace, module.event.end) + ; + } + }, + close: function() { + if(settings.hideOnScroll === true || (settings.hideOnScroll == 'auto' && settings.on != 'click')) { + module.bind.closeOnScroll(); + } + if(module.is.closable()) { + module.bind.clickaway(); + } + else if(settings.on == 'hover' && openedWithTouch) { + module.bind.touchClose(); + } + }, + closeOnScroll: function() { + module.verbose('Binding scroll close event to document'); + $scrollContext + .one(module.get.scrollEvent() + elementNamespace, module.event.hideGracefully) + ; + }, + touchClose: function() { + module.verbose('Binding popup touchclose event to document'); + $document + .on('touchstart' + elementNamespace, function(event) { + module.verbose('Touched away from popup'); + module.event.hideGracefully.call(element, event); + }) + ; + }, + clickaway: function() { + module.verbose('Binding popup close event to document'); + $document + .on(clickEvent + elementNamespace, function(event) { + module.verbose('Clicked away from popup'); + module.event.hideGracefully.call(element, event); + }) + ; + } + }, + + unbind: { + events: function() { + $window + .off(elementNamespace) + ; + $module + .off(eventNamespace) + ; + }, + close: function() { + $document + .off(elementNamespace) + ; + $scrollContext + .off(elementNamespace) + ; + }, + }, + + has: { + popup: function() { + return ($popup && $popup.length > 0); + } + }, + + should: { + centerArrow: function(calculations) { + return !module.is.basic() && calculations.target.width <= (settings.arrowPixelsFromEdge * 2); + }, + }, + + is: { + closable: function() { + if(settings.closable == 'auto') { + if(settings.on == 'hover') { + return false; + } + return true; + } + return settings.closable; + }, + offstage: function(distanceFromBoundary, position) { + var + offstage = [] + ; + // return boundaries that have been surpassed + $.each(distanceFromBoundary, function(direction, distance) { + if(distance < -settings.jitter) { + module.debug('Position exceeds allowable distance from edge', direction, distance, position); + offstage.push(direction); + } + }); + if(offstage.length > 0) { + return true; + } + else { + return false; + } + }, + svg: function(element) { + return module.supports.svg() && (element instanceof SVGGraphicsElement); + }, + basic: function() { + return $module.hasClass(className.basic); + }, + active: function() { + return $module.hasClass(className.active); + }, + animating: function() { + return ($popup !== undefined && $popup.hasClass(className.animating) ); + }, + fluid: function() { + return ($popup !== undefined && $popup.hasClass(className.fluid)); + }, + visible: function() { + return ($popup !== undefined && $popup.hasClass(className.popupVisible)); + }, + dropdown: function() { + return $module.hasClass(className.dropdown); + }, + hidden: function() { + return !module.is.visible(); + }, + rtl: function () { + return $module.attr('dir') === 'rtl' || $module.css('direction') === 'rtl'; + } + }, + + reset: function() { + module.remove.visible(); + if(settings.preserve) { + if($.fn.transition !== undefined) { + $popup + .transition('remove transition') + ; + } + } + else { + module.removePopup(); + } + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if(Array.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + instance.invoke('destroy'); + } + module.initialize(); + } + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.popup.settings = { + + name : 'Popup', + + // module settings + silent : false, + debug : false, + verbose : false, + performance : true, + namespace : 'popup', + + // whether it should use dom mutation observers + observeChanges : true, + + // callback only when element added to dom + onCreate : function(){}, + + // callback before element removed from dom + onRemove : function(){}, + + // callback before show animation + onShow : function(){}, + + // callback after show animation + onVisible : function(){}, + + // callback before hide animation + onHide : function(){}, + + // callback when popup cannot be positioned in visible screen + onUnplaceable : function(){}, + + // callback after hide animation + onHidden : function(){}, + + // when to show popup + on : 'hover', + + // element to use to determine if popup is out of boundary + boundary : window, + + // whether to add touchstart events when using hover + addTouchEvents : true, + + // default position relative to element + position : 'top left', + + // if given position should be used regardless if popup fits + forcePosition : false, + + // name of variation to use + variation : '', + + // whether popup should be moved to context + movePopup : true, + + // element which popup should be relative to + target : false, + + // jq selector or element that should be used as popup + popup : false, + + // popup should remain inline next to activator + inline : false, + + // popup should be removed from page on hide + preserve : false, + + // popup should not close when being hovered on + hoverable : false, + + // explicitly set content + content : false, + + // explicitly set html + html : false, + + // explicitly set title + title : false, + + // whether automatically close on clickaway when on click + closable : true, + + // automatically hide on scroll + hideOnScroll : 'auto', + + // hide other popups on show + exclusive : false, + + // context to attach popups + context : 'body', + + // context for binding scroll events + scrollContext : window, + + // position to prefer when calculating new position + prefer : 'opposite', + + // specify position to appear even if it doesn't fit + lastResort : false, + + // number of pixels from edge of popup to pointing arrow center (used from centering) + arrowPixelsFromEdge: 20, + + // delay used to prevent accidental refiring of animations due to user error + delay : { + show : 50, + hide : 70 + }, + + // whether fluid variation should assign width explicitly + setFluidWidth : true, + + // transition settings + duration : 200, + transition : 'scale', + + // distance away from activating element in px + distanceAway : 0, + + // number of pixels an element is allowed to be "offstage" for a position to be chosen (allows for rounding) + jitter : 2, + + // offset on aligning axis from calculated position + offset : 0, + + // maximum times to look for a position before failing (9 positions total) + maxSearchDepth : 15, + + error: { + invalidPosition : 'The position you specified is not a valid position', + cannotPlace : 'Popup does not fit within the boundaries of the viewport', + method : 'The method you called is not defined.', + noTransition : 'This module requires ui transitions <https://github.com/Semantic-Org/UI-Transition>', + notFound : 'The target or popup you specified does not exist on the page' + }, + + metadata: { + activator : 'activator', + content : 'content', + html : 'html', + offset : 'offset', + position : 'position', + title : 'title', + variation : 'variation' + }, + + className : { + active : 'active', + basic : 'basic', + animating : 'animating', + dropdown : 'dropdown', + fluid : 'fluid', + loading : 'loading', + popup : 'ui popup', + position : 'top left center bottom right', + visible : 'visible', + popupVisible : 'visible' + }, + + selector : { + popup : '.ui.popup' + }, + + templates: { + escape: function(string) { + var + badChars = /[<>"'`]/g, + shouldEscape = /[&<>"'`]/, + escape = { + "<": "<", + ">": ">", + '"': """, + "'": "'", + "`": "`" + }, + escapedChar = function(chr) { + return escape[chr]; + } + ; + if(shouldEscape.test(string)) { + string = string.replace(/&(?![a-z0-9#]{1,6};)/, "&"); + return string.replace(badChars, escapedChar); + } + return string; + }, + popup: function(text) { + var + html = '', + escape = $.fn.popup.settings.templates.escape + ; + if(typeof text !== undefined) { + if(typeof text.title !== undefined && text.title) { + text.title = escape(text.title); + html += '<div class="header">' + text.title + '</div>'; + } + if(typeof text.content !== undefined && text.content) { + text.content = escape(text.content); + html += '<div class="content">' + text.content + '</div>'; + } + } + return html; + } + } + +}; + + +})( jQuery, window, document ); + +/*! + * # Fomantic-UI - Progress + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +$.isFunction = $.isFunction || function(obj) { + return typeof obj === "function" && typeof obj.nodeType !== "number"; +}; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.progress = function(parameters) { + var + $allModules = $(this), + + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + returnedValue + ; + + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.progress.settings, parameters) + : $.extend({}, $.fn.progress.settings), + + className = settings.className, + metadata = settings.metadata, + namespace = settings.namespace, + selector = settings.selector, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + $module = $(this), + $bars = $(this).find(selector.bar), + $progresses = $(this).find(selector.progress), + $label = $(this).find(selector.label), + + element = this, + instance = $module.data(moduleNamespace), + + animating = false, + transitionEnd, + module + ; + module = { + helper: { + sum: function (nums) { + return Array.isArray(nums) ? nums.reduce(function (left, right) { + return left + Number(right); + }, 0) : 0; + }, + /** + * Derive precision for multiple progress with total and values. + * + * This helper dervices a precision that is sufficiently large to show minimum value of multiple progress. + * + * Example1 + * - total: 1122 + * - values: [325, 111, 74, 612] + * - min ratio: 74/1122 = 0.0659... + * - required precision: 100 + * + * Example2 + * - total: 10541 + * - values: [3235, 1111, 74, 6121] + * - min ratio: 74/10541 = 0.0070... + * - required precision: 1000 + * + * @param min A minimum value within multiple values + * @param total A total amount of multiple values + * @returns {number} A precison. Could be 1, 10, 100, ... 1e+10. + */ + derivePrecision: function(min, total) { + var precisionPower = 0 + var precision = 1; + var ratio = min / total; + while (precisionPower < 10) { + ratio = ratio * precision; + if (ratio > 1) { + break; + } + precision = Math.pow(10, precisionPower++); + } + return precision; + }, + forceArray: function (element) { + return Array.isArray(element) + ? element + : !isNaN(element) + ? [element] + : typeof element == 'string' + ? element.split(',') + : [] + ; + } + }, + + initialize: function() { + module.set.duration(); + module.set.transitionEvent(); + module.debug(element); + + module.read.metadata(); + module.read.settings(); + + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of progress', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + destroy: function() { + module.verbose('Destroying previous progress for', $module); + clearInterval(instance.interval); + module.remove.state(); + $module.removeData(moduleNamespace); + instance = undefined; + }, + + reset: function() { + module.remove.nextValue(); + module.update.progress(0); + }, + + complete: function(keepState) { + if(module.percent === undefined || module.percent < 100) { + module.remove.progressPoll(); + if(keepState !== true){ + module.set.percent(100); + } + } + }, + + read: { + metadata: function() { + var + data = { + percent : module.helper.forceArray($module.data(metadata.percent)), + total : $module.data(metadata.total), + value : module.helper.forceArray($module.data(metadata.value)) + } + ; + if(data.total !== undefined) { + module.debug('Total value set from metadata', data.total); + module.set.total(data.total); + } + if(data.value.length > 0) { + module.debug('Current value set from metadata', data.value); + module.set.value(data.value); + module.set.progress(data.value); + } + if(data.percent.length > 0) { + module.debug('Current percent value set from metadata', data.percent); + module.set.percent(data.percent); + } + }, + settings: function() { + if(settings.total !== false) { + module.debug('Current total set in settings', settings.total); + module.set.total(settings.total); + } + if(settings.value !== false) { + module.debug('Current value set in settings', settings.value); + module.set.value(settings.value); + module.set.progress(module.value); + } + if(settings.percent !== false) { + module.debug('Current percent set in settings', settings.percent); + module.set.percent(settings.percent); + } + } + }, + + bind: { + transitionEnd: function(callback) { + var + transitionEnd = module.get.transitionEnd() + ; + $bars + .one(transitionEnd + eventNamespace, function(event) { + clearTimeout(module.failSafeTimer); + callback.call(this, event); + }) + ; + module.failSafeTimer = setTimeout(function() { + $bars.triggerHandler(transitionEnd); + }, settings.duration + settings.failSafeDelay); + module.verbose('Adding fail safe timer', module.timer); + } + }, + + increment: function(incrementValue) { + var + startValue, + newValue + ; + if( module.has.total() ) { + startValue = module.get.value(); + incrementValue = incrementValue || 1; + } + else { + startValue = module.get.percent(); + incrementValue = incrementValue || module.get.randomValue(); + } + newValue = startValue + incrementValue; + module.debug('Incrementing percentage by', startValue, newValue, incrementValue); + newValue = module.get.normalizedValue(newValue); + module.set.progress(newValue); + }, + decrement: function(decrementValue) { + var + total = module.get.total(), + startValue, + newValue + ; + if(total) { + startValue = module.get.value(); + decrementValue = decrementValue || 1; + newValue = startValue - decrementValue; + module.debug('Decrementing value by', decrementValue, startValue); + } + else { + startValue = module.get.percent(); + decrementValue = decrementValue || module.get.randomValue(); + newValue = startValue - decrementValue; + module.debug('Decrementing percentage by', decrementValue, startValue); + } + newValue = module.get.normalizedValue(newValue); + module.set.progress(newValue); + }, + + has: { + progressPoll: function() { + return module.progressPoll; + }, + total: function() { + return (module.get.total() !== false); + } + }, + + get: { + text: function(templateText, index) { + var + index_ = index || 0, + value = module.get.value(index_), + total = module.get.total(), + percent = (animating) + ? module.get.displayPercent(index_) + : module.get.percent(index_), + left = (total !== false) + ? Math.max(0,total - value) + : (100 - percent) + ; + templateText = templateText || ''; + templateText = templateText + .replace('{value}', value) + .replace('{total}', total || 0) + .replace('{left}', left) + .replace('{percent}', percent) + .replace('{bar}', settings.text.bars[index_] || '') + ; + module.verbose('Adding variables to progress bar text', templateText); + return templateText; + }, + + normalizedValue: function(value) { + if(value < 0) { + module.debug('Value cannot decrement below 0'); + return 0; + } + if(module.has.total()) { + if(value > module.total) { + module.debug('Value cannot increment above total', module.total); + return module.total; + } + } + else if(value > 100 ) { + module.debug('Value cannot increment above 100 percent'); + return 100; + } + return value; + }, + + updateInterval: function() { + if(settings.updateInterval == 'auto') { + return settings.duration; + } + return settings.updateInterval; + }, + + randomValue: function() { + module.debug('Generating random increment percentage'); + return Math.floor((Math.random() * settings.random.max) + settings.random.min); + }, + + numericValue: function(value) { + return (typeof value === 'string') + ? (value.replace(/[^\d.]/g, '') !== '') + ? +(value.replace(/[^\d.]/g, '')) + : false + : value + ; + }, + + transitionEnd: function() { + var + element = document.createElement('element'), + transitions = { + 'transition' :'transitionend', + 'OTransition' :'oTransitionEnd', + 'MozTransition' :'transitionend', + 'WebkitTransition' :'webkitTransitionEnd' + }, + transition + ; + for(transition in transitions){ + if( element.style[transition] !== undefined ){ + return transitions[transition]; + } + } + }, + + // gets current displayed percentage (if animating values this is the intermediary value) + displayPercent: function(index) { + var + $bar = $($bars[index]), + barWidth = $bar.width(), + totalWidth = $module.width(), + minDisplay = parseInt($bar.css('min-width'), 10), + displayPercent = (barWidth > minDisplay) + ? (barWidth / totalWidth * 100) + : module.percent + ; + return (settings.precision > 0) + ? Math.round(displayPercent * (10 * settings.precision)) / (10 * settings.precision) + : Math.round(displayPercent) + ; + }, + + percent: function(index) { + return module.percent && module.percent[index || 0] || 0; + }, + value: function(index) { + return module.nextValue || module.value && module.value[index || 0] || 0; + }, + total: function() { + return module.total !== undefined ? module.total : false; + } + }, + + create: { + progressPoll: function() { + module.progressPoll = setTimeout(function() { + module.update.toNextValue(); + module.remove.progressPoll(); + }, module.get.updateInterval()); + }, + }, + + is: { + complete: function() { + return module.is.success() || module.is.warning() || module.is.error(); + }, + success: function() { + return $module.hasClass(className.success); + }, + warning: function() { + return $module.hasClass(className.warning); + }, + error: function() { + return $module.hasClass(className.error); + }, + active: function() { + return $module.hasClass(className.active); + }, + visible: function() { + return $module.is(':visible'); + } + }, + + remove: { + progressPoll: function() { + module.verbose('Removing progress poll timer'); + if(module.progressPoll) { + clearTimeout(module.progressPoll); + delete module.progressPoll; + } + }, + nextValue: function() { + module.verbose('Removing progress value stored for next update'); + delete module.nextValue; + }, + state: function() { + module.verbose('Removing stored state'); + delete module.total; + delete module.percent; + delete module.value; + }, + active: function() { + module.verbose('Removing active state'); + $module.removeClass(className.active); + }, + success: function() { + module.verbose('Removing success state'); + $module.removeClass(className.success); + }, + warning: function() { + module.verbose('Removing warning state'); + $module.removeClass(className.warning); + }, + error: function() { + module.verbose('Removing error state'); + $module.removeClass(className.error); + } + }, + + set: { + barWidth: function(values) { + module.debug("set bar width with ", values); + values = module.helper.forceArray(values); + var firstNonZeroIndex = -1; + var lastNonZeroIndex = -1; + var valuesSum = module.helper.sum(values); + var barCounts = $bars.length; + var isMultiple = barCounts > 1; + var percents = values.map(function(value, index) { + var allZero = (index === barCounts - 1 && valuesSum === 0); + var $bar = $($bars[index]); + if (value === 0 && isMultiple && !allZero) { + $bar.css('display', 'none'); + } else { + if (isMultiple && allZero) { + $bar.css('background', 'transparent'); + } + if (firstNonZeroIndex == -1) { + firstNonZeroIndex = index; + } + lastNonZeroIndex = index; + $bar.css({ + display: 'block', + width: value + '%' + }); + } + return parseFloat(value); + }); + values.forEach(function(_, index) { + var $bar = $($bars[index]); + $bar.css({ + borderTopLeftRadius: index == firstNonZeroIndex ? '' : 0, + borderBottomLeftRadius: index == firstNonZeroIndex ? '' : 0, + borderTopRightRadius: index == lastNonZeroIndex ? '' : 0, + borderBottomRightRadius: index == lastNonZeroIndex ? '' : 0 + }); + }); + $module + .attr('data-percent', percents) + ; + }, + duration: function(duration) { + duration = duration || settings.duration; + duration = (typeof duration == 'number') + ? duration + 'ms' + : duration + ; + module.verbose('Setting progress bar transition duration', duration); + $bars + .css({ + 'transition-duration': duration + }) + ; + }, + percent: function(percents) { + percents = module.helper.forceArray(percents).map(function(percent) { + return (typeof percent == 'string') + ? +(percent.replace('%', '')) + : percent + ; + }); + var hasTotal = module.has.total(); + var totalPercent = module.helper.sum(percents); + var isMultipleValues = percents.length > 1 && hasTotal; + var sumTotal = module.helper.sum(module.helper.forceArray(module.value)); + if (isMultipleValues && sumTotal > module.total) { + // Sum values instead of pecents to avoid precision issues when summing floats + module.error(error.sumExceedsTotal, sumTotal, module.total); + } else if (!isMultipleValues && totalPercent > 100) { + // Sum before rounding since sum of rounded may have error though sum of actual is fine + module.error(error.tooHigh, totalPercent); + } else if (totalPercent < 0) { + module.error(error.tooLow, totalPercent); + } else { + var autoPrecision = settings.precision > 0 + ? settings.precision + : isMultipleValues + ? module.helper.derivePrecision(Math.min.apply(null, module.value), module.total) + : 0; + + // round display percentage + var roundedPercents = percents.map(function (percent) { + return (autoPrecision > 0) + ? Math.round(percent * (10 * autoPrecision)) / (10 * autoPrecision) + : Math.round(percent) + ; + }); + module.percent = roundedPercents; + if (hasTotal) { + module.value = roundedPercents.map(function (percent) { + return (autoPrecision > 0) + ? Math.round((percent / 100) * module.total * (10 * autoPrecision)) / (10 * autoPrecision) + : Math.round((percent / 100) * module.total * 10) / 10 + ; + }); + if (settings.limitValues) { + module.value = module.value.map(function (value) { + return Math.max(0, Math.min(100, value)); + }); + } + } + module.set.barWidth(percents); + module.set.labelInterval(); + module.set.labels(); + } + settings.onChange.call(element, percents, module.value, module.total); + }, + labelInterval: function() { + var + animationCallback = function() { + module.verbose('Bar finished animating, removing continuous label updates'); + clearInterval(module.interval); + animating = false; + module.set.labels(); + } + ; + clearInterval(module.interval); + module.bind.transitionEnd(animationCallback); + animating = true; + module.interval = setInterval(function() { + var + isInDOM = $.contains(document.documentElement, element) + ; + if(!isInDOM) { + clearInterval(module.interval); + animating = false; + } + module.set.labels(); + }, settings.framerate); + }, + labels: function() { + module.verbose('Setting both bar progress and outer label text'); + module.set.barLabel(); + module.set.state(); + }, + label: function(text) { + text = text || ''; + if(text) { + text = module.get.text(text); + module.verbose('Setting label to text', text); + $label.text(text); + } + }, + state: function(percent) { + percent = (percent !== undefined) + ? percent + : module.helper.sum(module.percent) + ; + if(percent === 100) { + if(settings.autoSuccess && $bars.length === 1 && !(module.is.warning() || module.is.error() || module.is.success())) { + module.set.success(); + module.debug('Automatically triggering success at 100%'); + } + else { + module.verbose('Reached 100% removing active state'); + module.remove.active(); + module.remove.progressPoll(); + } + } + else if(percent > 0) { + module.verbose('Adjusting active progress bar label', percent); + module.set.active(); + } + else { + module.remove.active(); + module.set.label(settings.text.active); + } + }, + barLabel: function(text) { + $progresses.map(function(index, element){ + var $progress = $(element); + if (text !== undefined) { + $progress.text( module.get.text(text, index) ); + } + else if (settings.label == 'ratio' && module.has.total()) { + module.verbose('Adding ratio to bar label'); + $progress.text( module.get.text(settings.text.ratio, index) ); + } + else if (settings.label == 'percent') { + module.verbose('Adding percentage to bar label'); + $progress.text( module.get.text(settings.text.percent, index) ); + } + }); + }, + active: function(text) { + text = text || settings.text.active; + module.debug('Setting active state'); + if(settings.showActivity && !module.is.active() ) { + $module.addClass(className.active); + } + module.remove.warning(); + module.remove.error(); + module.remove.success(); + text = settings.onLabelUpdate('active', text, module.value, module.total); + if(text) { + module.set.label(text); + } + module.bind.transitionEnd(function() { + settings.onActive.call(element, module.value, module.total); + }); + }, + success : function(text, keepState) { + text = text || settings.text.success || settings.text.active; + module.debug('Setting success state'); + $module.addClass(className.success); + module.remove.active(); + module.remove.warning(); + module.remove.error(); + module.complete(keepState); + if(settings.text.success) { + text = settings.onLabelUpdate('success', text, module.value, module.total); + module.set.label(text); + } + else { + text = settings.onLabelUpdate('active', text, module.value, module.total); + module.set.label(text); + } + module.bind.transitionEnd(function() { + settings.onSuccess.call(element, module.total); + }); + }, + warning : function(text, keepState) { + text = text || settings.text.warning; + module.debug('Setting warning state'); + $module.addClass(className.warning); + module.remove.active(); + module.remove.success(); + module.remove.error(); + module.complete(keepState); + text = settings.onLabelUpdate('warning', text, module.value, module.total); + if(text) { + module.set.label(text); + } + module.bind.transitionEnd(function() { + settings.onWarning.call(element, module.value, module.total); + }); + }, + error : function(text, keepState) { + text = text || settings.text.error; + module.debug('Setting error state'); + $module.addClass(className.error); + module.remove.active(); + module.remove.success(); + module.remove.warning(); + module.complete(keepState); + text = settings.onLabelUpdate('error', text, module.value, module.total); + if(text) { + module.set.label(text); + } + module.bind.transitionEnd(function() { + settings.onError.call(element, module.value, module.total); + }); + }, + transitionEvent: function() { + transitionEnd = module.get.transitionEnd(); + }, + total: function(totalValue) { + module.total = totalValue; + }, + value: function(value) { + module.value = module.helper.forceArray(value); + }, + progress: function(value) { + if(!module.has.progressPoll()) { + module.debug('First update in progress update interval, immediately updating', value); + module.update.progress(value); + module.create.progressPoll(); + } + else { + module.debug('Updated within interval, setting next update to use new value', value); + module.set.nextValue(value); + } + }, + nextValue: function(value) { + module.nextValue = value; + } + }, + + update: { + toNextValue: function() { + var + nextValue = module.nextValue + ; + if(nextValue) { + module.debug('Update interval complete using last updated value', nextValue); + module.update.progress(nextValue); + module.remove.nextValue(); + } + }, + progress: function(values) { + var hasTotal = module.has.total(); + if (hasTotal) { + module.set.value(values); + } + var percentCompletes = module.helper.forceArray(values).map(function(value) { + var + percentComplete + ; + value = module.get.numericValue(value); + if (value === false) { + module.error(error.nonNumeric, value); + } + value = module.get.normalizedValue(value); + if (hasTotal) { + percentComplete = module.total > 0 ? (value / module.total) * 100 : 100; + module.debug('Calculating percent complete from total', percentComplete); + } + else { + percentComplete = value; + module.debug('Setting value to exact percentage value', percentComplete); + } + return percentComplete; + }); + module.set.percent( percentCompletes ); + } + }, + + setting: function(name, value) { + module.debug('Changing setting', name, value); + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + if($.isPlainObject(settings[name])) { + $.extend(true, settings[name], value); + } + else { + settings[name] = value; + } + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if(Array.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + instance.invoke('destroy'); + } + module.initialize(); + } + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.progress.settings = { + + name : 'Progress', + namespace : 'progress', + + silent : false, + debug : false, + verbose : false, + performance : true, + + random : { + min : 2, + max : 5 + }, + + duration : 300, + + updateInterval : 'auto', + + autoSuccess : true, + showActivity : true, + limitValues : true, + + label : 'percent', + precision : 0, + framerate : (1000 / 30), /// 30 fps + + percent : false, + total : false, + value : false, + + // delay in ms for fail safe animation callback + failSafeDelay : 100, + + onLabelUpdate : function(state, text, value, total){ + return text; + }, + onChange : function(percent, value, total){}, + onSuccess : function(total){}, + onActive : function(value, total){}, + onError : function(value, total){}, + onWarning : function(value, total){}, + + error : { + method : 'The method you called is not defined.', + nonNumeric : 'Progress value is non numeric', + tooHigh : 'Value specified is above 100%', + tooLow : 'Value specified is below 0%', + sumExceedsTotal : 'Sum of multple values exceed total', + }, + + regExp: { + variable: /\{\$*[A-z0-9]+\}/g + }, + + metadata: { + percent : 'percent', + total : 'total', + value : 'value' + }, + + selector : { + bar : '> .bar', + label : '> .label', + progress : '.bar > .progress' + }, + + text : { + active : false, + error : false, + success : false, + warning : false, + percent : '{percent}%', + ratio : '{value} of {total}', + bars : [''] + }, + + className : { + active : 'active', + error : 'error', + success : 'success', + warning : 'warning' + } + +}; + + +})( jQuery, window, document ); + +/*! + * # Fomantic-UI - Search + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +$.isFunction = $.isFunction || function(obj) { + return typeof obj === "function" && typeof obj.nodeType !== "number"; +}; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.search = function(parameters) { + var + $allModules = $(this), + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + $(this) + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.search.settings, parameters) + : $.extend({}, $.fn.search.settings), + + className = settings.className, + metadata = settings.metadata, + regExp = settings.regExp, + fields = settings.fields, + selector = settings.selector, + error = settings.error, + namespace = settings.namespace, + + eventNamespace = '.' + namespace, + moduleNamespace = namespace + '-module', + + $module = $(this), + $prompt = $module.find(selector.prompt), + $searchButton = $module.find(selector.searchButton), + $results = $module.find(selector.results), + $result = $module.find(selector.result), + $category = $module.find(selector.category), + + element = this, + instance = $module.data(moduleNamespace), + + disabledBubbled = false, + resultsDismissed = false, + + module + ; + + module = { + + initialize: function() { + module.verbose('Initializing module'); + module.get.settings(); + module.determine.searchFields(); + module.bind.events(); + module.set.type(); + module.create.results(); + module.instantiate(); + }, + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + destroy: function() { + module.verbose('Destroying instance'); + $module + .off(eventNamespace) + .removeData(moduleNamespace) + ; + }, + + refresh: function() { + module.debug('Refreshing selector cache'); + $prompt = $module.find(selector.prompt); + $searchButton = $module.find(selector.searchButton); + $category = $module.find(selector.category); + $results = $module.find(selector.results); + $result = $module.find(selector.result); + }, + + refreshResults: function() { + $results = $module.find(selector.results); + $result = $module.find(selector.result); + }, + + bind: { + events: function() { + module.verbose('Binding events to search'); + if(settings.automatic) { + $module + .on(module.get.inputEvent() + eventNamespace, selector.prompt, module.event.input) + ; + $prompt + .attr('autocomplete', 'off') + ; + } + $module + // prompt + .on('focus' + eventNamespace, selector.prompt, module.event.focus) + .on('blur' + eventNamespace, selector.prompt, module.event.blur) + .on('keydown' + eventNamespace, selector.prompt, module.handleKeyboard) + // search button + .on('click' + eventNamespace, selector.searchButton, module.query) + // results + .on('mousedown' + eventNamespace, selector.results, module.event.result.mousedown) + .on('mouseup' + eventNamespace, selector.results, module.event.result.mouseup) + .on('click' + eventNamespace, selector.result, module.event.result.click) + ; + } + }, + + determine: { + searchFields: function() { + // this makes sure $.extend does not add specified search fields to default fields + // this is the only setting which should not extend defaults + if(parameters && parameters.searchFields !== undefined) { + settings.searchFields = parameters.searchFields; + } + } + }, + + event: { + input: function() { + if(settings.searchDelay) { + clearTimeout(module.timer); + module.timer = setTimeout(function() { + if(module.is.focused()) { + module.query(); + } + }, settings.searchDelay); + } + else { + module.query(); + } + }, + focus: function() { + module.set.focus(); + if(settings.searchOnFocus && module.has.minimumCharacters() ) { + module.query(function() { + if(module.can.show() ) { + module.showResults(); + } + }); + } + }, + blur: function(event) { + var + pageLostFocus = (document.activeElement === this), + callback = function() { + module.cancel.query(); + module.remove.focus(); + module.timer = setTimeout(module.hideResults, settings.hideDelay); + } + ; + if(pageLostFocus) { + return; + } + resultsDismissed = false; + if(module.resultsClicked) { + module.debug('Determining if user action caused search to close'); + $module + .one('click.close' + eventNamespace, selector.results, function(event) { + if(module.is.inMessage(event) || disabledBubbled) { + $prompt.focus(); + return; + } + disabledBubbled = false; + if( !module.is.animating() && !module.is.hidden()) { + callback(); + } + }) + ; + } + else { + module.debug('Input blurred without user action, closing results'); + callback(); + } + }, + result: { + mousedown: function() { + module.resultsClicked = true; + }, + mouseup: function() { + module.resultsClicked = false; + }, + click: function(event) { + module.debug('Search result selected'); + var + $result = $(this), + $title = $result.find(selector.title).eq(0), + $link = $result.is('a[href]') + ? $result + : $result.find('a[href]').eq(0), + href = $link.attr('href') || false, + target = $link.attr('target') || false, + // title is used for result lookup + value = ($title.length > 0) + ? $title.text() + : false, + results = module.get.results(), + result = $result.data(metadata.result) || module.get.result(value, results) + ; + if(value) { + module.set.value(value); + } + if( $.isFunction(settings.onSelect) ) { + if(settings.onSelect.call(element, result, results) === false) { + module.debug('Custom onSelect callback cancelled default select action'); + disabledBubbled = true; + return; + } + } + module.hideResults(); + if(href) { + event.preventDefault(); + module.verbose('Opening search link found in result', $link); + if(target == '_blank' || event.ctrlKey) { + window.open(href); + } + else { + window.location.href = (href); + } + } + } + } + }, + ensureVisible: function ensureVisible($el) { + var elTop, elBottom, resultsScrollTop, resultsHeight; + + elTop = $el.position().top; + elBottom = elTop + $el.outerHeight(true); + + resultsScrollTop = $results.scrollTop(); + resultsHeight = $results.height() + parseInt($results.css('paddingTop'), 0) + + parseInt($results.css('paddingBottom'), 0); + + if (elTop < 0) { + $results.scrollTop(resultsScrollTop + elTop); + } + + else if (resultsHeight < elBottom) { + $results.scrollTop(resultsScrollTop + (elBottom - resultsHeight)); + } + }, + handleKeyboard: function(event) { + var + // force selector refresh + $result = $module.find(selector.result), + $category = $module.find(selector.category), + $activeResult = $result.filter('.' + className.active), + currentIndex = $result.index( $activeResult ), + resultSize = $result.length, + hasActiveResult = $activeResult.length > 0, + + keyCode = event.which, + keys = { + backspace : 8, + enter : 13, + escape : 27, + upArrow : 38, + downArrow : 40 + }, + newIndex + ; + // search shortcuts + if(keyCode == keys.escape) { + module.verbose('Escape key pressed, blurring search field'); + module.hideResults(); + resultsDismissed = true; + } + if( module.is.visible() ) { + if(keyCode == keys.enter) { + module.verbose('Enter key pressed, selecting active result'); + if( $result.filter('.' + className.active).length > 0 ) { + module.event.result.click.call($result.filter('.' + className.active), event); + event.preventDefault(); + return false; + } + } + else if(keyCode == keys.upArrow && hasActiveResult) { + module.verbose('Up key pressed, changing active result'); + newIndex = (currentIndex - 1 < 0) + ? currentIndex + : currentIndex - 1 + ; + $category + .removeClass(className.active) + ; + $result + .removeClass(className.active) + .eq(newIndex) + .addClass(className.active) + .closest($category) + .addClass(className.active) + ; + module.ensureVisible($result.eq(newIndex)); + event.preventDefault(); + } + else if(keyCode == keys.downArrow) { + module.verbose('Down key pressed, changing active result'); + newIndex = (currentIndex + 1 >= resultSize) + ? currentIndex + : currentIndex + 1 + ; + $category + .removeClass(className.active) + ; + $result + .removeClass(className.active) + .eq(newIndex) + .addClass(className.active) + .closest($category) + .addClass(className.active) + ; + module.ensureVisible($result.eq(newIndex)); + event.preventDefault(); + } + } + else { + // query shortcuts + if(keyCode == keys.enter) { + module.verbose('Enter key pressed, executing query'); + module.query(); + module.set.buttonPressed(); + $prompt.one('keyup', module.remove.buttonFocus); + } + } + }, + + setup: { + api: function(searchTerm, callback) { + var + apiSettings = { + debug : settings.debug, + on : false, + cache : settings.cache, + action : 'search', + urlData : { + query : searchTerm + }, + onSuccess : function(response) { + module.parse.response.call(element, response, searchTerm); + callback(); + }, + onFailure : function() { + module.displayMessage(error.serverError); + callback(); + }, + onAbort : function(response) { + }, + onError : module.error + } + ; + $.extend(true, apiSettings, settings.apiSettings); + module.verbose('Setting up API request', apiSettings); + $module.api(apiSettings); + } + }, + + can: { + useAPI: function() { + return $.fn.api !== undefined; + }, + show: function() { + return module.is.focused() && !module.is.visible() && !module.is.empty(); + }, + transition: function() { + return settings.transition && $.fn.transition !== undefined && $module.transition('is supported'); + } + }, + + is: { + animating: function() { + return $results.hasClass(className.animating); + }, + hidden: function() { + return $results.hasClass(className.hidden); + }, + inMessage: function(event) { + if(!event.target) { + return; + } + var + $target = $(event.target), + isInDOM = $.contains(document.documentElement, event.target) + ; + return (isInDOM && $target.closest(selector.message).length > 0); + }, + empty: function() { + return ($results.html() === ''); + }, + visible: function() { + return ($results.filter(':visible').length > 0); + }, + focused: function() { + return ($prompt.filter(':focus').length > 0); + } + }, + + get: { + settings: function() { + if($.isPlainObject(parameters) && parameters.searchFullText) { + settings.fullTextSearch = parameters.searchFullText; + module.error(settings.error.oldSearchSyntax, element); + } + if (settings.ignoreDiacritics && !String.prototype.normalize) { + settings.ignoreDiacritics = false; + module.error(error.noNormalize, element); + } + }, + inputEvent: function() { + var + prompt = $prompt[0], + inputEvent = (prompt !== undefined && prompt.oninput !== undefined) + ? 'input' + : (prompt !== undefined && prompt.onpropertychange !== undefined) + ? 'propertychange' + : 'keyup' + ; + return inputEvent; + }, + value: function() { + return $prompt.val(); + }, + results: function() { + var + results = $module.data(metadata.results) + ; + return results; + }, + result: function(value, results) { + var + result = false + ; + value = (value !== undefined) + ? value + : module.get.value() + ; + results = (results !== undefined) + ? results + : module.get.results() + ; + if(settings.type === 'category') { + module.debug('Finding result that matches', value); + $.each(results, function(index, category) { + if(Array.isArray(category.results)) { + result = module.search.object(value, category.results)[0]; + // don't continue searching if a result is found + if(result) { + return false; + } + } + }); + } + else { + module.debug('Finding result in results object', value); + result = module.search.object(value, results)[0]; + } + return result || false; + }, + }, + + select: { + firstResult: function() { + module.verbose('Selecting first result'); + $result.first().addClass(className.active); + } + }, + + set: { + focus: function() { + $module.addClass(className.focus); + }, + loading: function() { + $module.addClass(className.loading); + }, + value: function(value) { + module.verbose('Setting search input value', value); + $prompt + .val(value) + ; + }, + type: function(type) { + type = type || settings.type; + if(settings.type == 'category') { + $module.addClass(settings.type); + } + }, + buttonPressed: function() { + $searchButton.addClass(className.pressed); + } + }, + + remove: { + loading: function() { + $module.removeClass(className.loading); + }, + focus: function() { + $module.removeClass(className.focus); + }, + buttonPressed: function() { + $searchButton.removeClass(className.pressed); + }, + diacritics: function(text) { + return settings.ignoreDiacritics ? text.normalize('NFD').replace(/[\u0300-\u036f]/g, '') : text; + } + }, + + query: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + var + searchTerm = module.get.value(), + cache = module.read.cache(searchTerm) + ; + callback = callback || function() {}; + if( module.has.minimumCharacters() ) { + if(cache) { + module.debug('Reading result from cache', searchTerm); + module.save.results(cache.results); + module.addResults(cache.html); + module.inject.id(cache.results); + callback(); + } + else { + module.debug('Querying for', searchTerm); + if($.isPlainObject(settings.source) || Array.isArray(settings.source)) { + module.search.local(searchTerm); + callback(); + } + else if( module.can.useAPI() ) { + module.search.remote(searchTerm, callback); + } + else { + module.error(error.source); + callback(); + } + } + settings.onSearchQuery.call(element, searchTerm); + } + else { + module.hideResults(); + } + }, + + search: { + local: function(searchTerm) { + var + results = module.search.object(searchTerm, settings.source), + searchHTML + ; + module.set.loading(); + module.save.results(results); + module.debug('Returned full local search results', results); + if(settings.maxResults > 0) { + module.debug('Using specified max results', results); + results = results.slice(0, settings.maxResults); + } + if(settings.type == 'category') { + results = module.create.categoryResults(results); + } + searchHTML = module.generateResults({ + results: results + }); + module.remove.loading(); + module.addResults(searchHTML); + module.inject.id(results); + module.write.cache(searchTerm, { + html : searchHTML, + results : results + }); + }, + remote: function(searchTerm, callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if($module.api('is loading')) { + $module.api('abort'); + } + module.setup.api(searchTerm, callback); + $module + .api('query') + ; + }, + object: function(searchTerm, source, searchFields) { + searchTerm = module.remove.diacritics(String(searchTerm)); + var + results = [], + exactResults = [], + fuzzyResults = [], + searchExp = searchTerm.replace(regExp.escape, '\\$&'), + matchRegExp = new RegExp(regExp.beginsWith + searchExp, 'i'), + + // avoid duplicates when pushing results + addResult = function(array, result) { + var + notResult = ($.inArray(result, results) == -1), + notFuzzyResult = ($.inArray(result, fuzzyResults) == -1), + notExactResults = ($.inArray(result, exactResults) == -1) + ; + if(notResult && notFuzzyResult && notExactResults) { + array.push(result); + } + } + ; + source = source || settings.source; + searchFields = (searchFields !== undefined) + ? searchFields + : settings.searchFields + ; + + // search fields should be array to loop correctly + if(!Array.isArray(searchFields)) { + searchFields = [searchFields]; + } + + // exit conditions if no source + if(source === undefined || source === false) { + module.error(error.source); + return []; + } + // iterate through search fields looking for matches + $.each(searchFields, function(index, field) { + $.each(source, function(label, content) { + var + fieldExists = (typeof content[field] == 'string') || (typeof content[field] == 'number') + ; + if(fieldExists) { + var text; + if (typeof content[field] === 'string'){ + text = module.remove.diacritics(content[field]); + } else { + text = content[field].toString(); + } + if( text.search(matchRegExp) !== -1) { + // content starts with value (first in results) + addResult(results, content); + } + else if(settings.fullTextSearch === 'exact' && module.exactSearch(searchTerm, text) ) { + // content fuzzy matches (last in results) + addResult(exactResults, content); + } + else if(settings.fullTextSearch == true && module.fuzzySearch(searchTerm, text) ) { + // content fuzzy matches (last in results) + addResult(fuzzyResults, content); + } + } + }); + }); + $.merge(exactResults, fuzzyResults); + $.merge(results, exactResults); + return results; + } + }, + exactSearch: function (query, term) { + query = query.toLowerCase(); + term = term.toLowerCase(); + return term.indexOf(query) > -1; + }, + fuzzySearch: function(query, term) { + var + termLength = term.length, + queryLength = query.length + ; + if(typeof query !== 'string') { + return false; + } + query = query.toLowerCase(); + term = term.toLowerCase(); + if(queryLength > termLength) { + return false; + } + if(queryLength === termLength) { + return (query === term); + } + search: for (var characterIndex = 0, nextCharacterIndex = 0; characterIndex < queryLength; characterIndex++) { + var + queryCharacter = query.charCodeAt(characterIndex) + ; + while(nextCharacterIndex < termLength) { + if(term.charCodeAt(nextCharacterIndex++) === queryCharacter) { + continue search; + } + } + return false; + } + return true; + }, + + parse: { + response: function(response, searchTerm) { + if(Array.isArray(response)){ + var o={}; + o[fields.results]=response; + response = o; + } + var + searchHTML = module.generateResults(response) + ; + module.verbose('Parsing server response', response); + if(response !== undefined) { + if(searchTerm !== undefined && response[fields.results] !== undefined) { + module.addResults(searchHTML); + module.inject.id(response[fields.results]); + module.write.cache(searchTerm, { + html : searchHTML, + results : response[fields.results] + }); + module.save.results(response[fields.results]); + } + } + } + }, + + cancel: { + query: function() { + if( module.can.useAPI() ) { + $module.api('abort'); + } + } + }, + + has: { + minimumCharacters: function() { + var + searchTerm = module.get.value(), + numCharacters = searchTerm.length + ; + return (numCharacters >= settings.minCharacters); + }, + results: function() { + if($results.length === 0) { + return false; + } + var + html = $results.html() + ; + return html != ''; + } + }, + + clear: { + cache: function(value) { + var + cache = $module.data(metadata.cache) + ; + if(!value) { + module.debug('Clearing cache', value); + $module.removeData(metadata.cache); + } + else if(value && cache && cache[value]) { + module.debug('Removing value from cache', value); + delete cache[value]; + $module.data(metadata.cache, cache); + } + } + }, + + read: { + cache: function(name) { + var + cache = $module.data(metadata.cache) + ; + if(settings.cache) { + module.verbose('Checking cache for generated html for query', name); + return (typeof cache == 'object') && (cache[name] !== undefined) + ? cache[name] + : false + ; + } + return false; + } + }, + + create: { + categoryResults: function(results) { + var + categoryResults = {} + ; + $.each(results, function(index, result) { + if(!result.category) { + return; + } + if(categoryResults[result.category] === undefined) { + module.verbose('Creating new category of results', result.category); + categoryResults[result.category] = { + name : result.category, + results : [result] + }; + } + else { + categoryResults[result.category].results.push(result); + } + }); + return categoryResults; + }, + id: function(resultIndex, categoryIndex) { + var + resultID = (resultIndex + 1), // not zero indexed + letterID, + id + ; + if(categoryIndex !== undefined) { + // start char code for "A" + letterID = String.fromCharCode(97 + categoryIndex); + id = letterID + resultID; + module.verbose('Creating category result id', id); + } + else { + id = resultID; + module.verbose('Creating result id', id); + } + return id; + }, + results: function() { + if($results.length === 0) { + $results = $('<div />') + .addClass(className.results) + .appendTo($module) + ; + } + } + }, + + inject: { + result: function(result, resultIndex, categoryIndex) { + module.verbose('Injecting result into results'); + var + $selectedResult = (categoryIndex !== undefined) + ? $results + .children().eq(categoryIndex) + .children(selector.results) + .first() + .children(selector.result) + .eq(resultIndex) + : $results + .children(selector.result).eq(resultIndex) + ; + module.verbose('Injecting results metadata', $selectedResult); + $selectedResult + .data(metadata.result, result) + ; + }, + id: function(results) { + module.debug('Injecting unique ids into results'); + var + // since results may be object, we must use counters + categoryIndex = 0, + resultIndex = 0 + ; + if(settings.type === 'category') { + // iterate through each category result + $.each(results, function(index, category) { + if(category.results.length > 0){ + resultIndex = 0; + $.each(category.results, function(index, result) { + if(result.id === undefined) { + result.id = module.create.id(resultIndex, categoryIndex); + } + module.inject.result(result, resultIndex, categoryIndex); + resultIndex++; + }); + categoryIndex++; + } + }); + } + else { + // top level + $.each(results, function(index, result) { + if(result.id === undefined) { + result.id = module.create.id(resultIndex); + } + module.inject.result(result, resultIndex); + resultIndex++; + }); + } + return results; + } + }, + + save: { + results: function(results) { + module.verbose('Saving current search results to metadata', results); + $module.data(metadata.results, results); + } + }, + + write: { + cache: function(name, value) { + var + cache = ($module.data(metadata.cache) !== undefined) + ? $module.data(metadata.cache) + : {} + ; + if(settings.cache) { + module.verbose('Writing generated html to cache', name, value); + cache[name] = value; + $module + .data(metadata.cache, cache) + ; + } + } + }, + + addResults: function(html) { + if( $.isFunction(settings.onResultsAdd) ) { + if( settings.onResultsAdd.call($results, html) === false ) { + module.debug('onResultsAdd callback cancelled default action'); + return false; + } + } + if(html) { + $results + .html(html) + ; + module.refreshResults(); + if(settings.selectFirstResult) { + module.select.firstResult(); + } + module.showResults(); + } + else { + module.hideResults(function() { + $results.empty(); + }); + } + }, + + showResults: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if(resultsDismissed) { + return; + } + if(!module.is.visible() && module.has.results()) { + if( module.can.transition() ) { + module.debug('Showing results with css animations'); + $results + .transition({ + animation : settings.transition + ' in', + debug : settings.debug, + verbose : settings.verbose, + duration : settings.duration, + onShow : function() { + var $firstResult = $module.find(selector.result).eq(0); + if($firstResult.length > 0) { + module.ensureVisible($firstResult); + } + }, + onComplete : function() { + callback(); + }, + queue : true + }) + ; + } + else { + module.debug('Showing results with javascript'); + $results + .stop() + .fadeIn(settings.duration, settings.easing) + ; + } + settings.onResultsOpen.call($results); + } + }, + hideResults: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if( module.is.visible() ) { + if( module.can.transition() ) { + module.debug('Hiding results with css animations'); + $results + .transition({ + animation : settings.transition + ' out', + debug : settings.debug, + verbose : settings.verbose, + duration : settings.duration, + onComplete : function() { + callback(); + }, + queue : true + }) + ; + } + else { + module.debug('Hiding results with javascript'); + $results + .stop() + .fadeOut(settings.duration, settings.easing) + ; + } + settings.onResultsClose.call($results); + } + }, + + generateResults: function(response) { + module.debug('Generating html from response', response); + var + template = settings.templates[settings.type], + isProperObject = ($.isPlainObject(response[fields.results]) && !$.isEmptyObject(response[fields.results])), + isProperArray = (Array.isArray(response[fields.results]) && response[fields.results].length > 0), + html = '' + ; + if(isProperObject || isProperArray ) { + if(settings.maxResults > 0) { + if(isProperObject) { + if(settings.type == 'standard') { + module.error(error.maxResults); + } + } + else { + response[fields.results] = response[fields.results].slice(0, settings.maxResults); + } + } + if($.isFunction(template)) { + html = template(response, fields, settings.preserveHTML); + } + else { + module.error(error.noTemplate, false); + } + } + else if(settings.showNoResults) { + html = module.displayMessage(error.noResults, 'empty', error.noResultsHeader); + } + settings.onResults.call(element, response); + return html; + }, + + displayMessage: function(text, type, header) { + type = type || 'standard'; + module.debug('Displaying message', text, type, header); + module.addResults( settings.templates.message(text, type, header) ); + return settings.templates.message(text, type, header); + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.length > 1) { + title += ' ' + '(' + $allModules.length + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + return false; + } + }); + } + if( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if(Array.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + instance.invoke('destroy'); + } + module.initialize(); + } + + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.search.settings = { + + name : 'Search', + namespace : 'search', + + silent : false, + debug : false, + verbose : false, + performance : true, + + // template to use (specified in settings.templates) + type : 'standard', + + // minimum characters required to search + minCharacters : 1, + + // whether to select first result after searching automatically + selectFirstResult : false, + + // API config + apiSettings : false, + + // object to search + source : false, + + // Whether search should query current term on focus + searchOnFocus : true, + + // fields to search + searchFields : [ + 'id', + 'title', + 'description' + ], + + // field to display in standard results template + displayField : '', + + // search anywhere in value (set to 'exact' to require exact matches + fullTextSearch : 'exact', + + // match results also if they contain diacritics of the same base character (for example searching for "a" will also match "á" or "â" or "à ", etc...) + ignoreDiacritics : false, + + // whether to add events to prompt automatically + automatic : true, + + // delay before hiding menu after blur + hideDelay : 0, + + // delay before searching + searchDelay : 200, + + // maximum results returned from search + maxResults : 7, + + // whether to store lookups in local cache + cache : true, + + // whether no results errors should be shown + showNoResults : true, + + // preserve possible html of resultset values + preserveHTML : true, + + // transition settings + transition : 'scale', + duration : 200, + easing : 'easeOutExpo', + + // callbacks + onSelect : false, + onResultsAdd : false, + + onSearchQuery : function(query){}, + onResults : function(response){}, + + onResultsOpen : function(){}, + onResultsClose : function(){}, + + className: { + animating : 'animating', + active : 'active', + empty : 'empty', + focus : 'focus', + hidden : 'hidden', + loading : 'loading', + results : 'results', + pressed : 'down' + }, + + error : { + source : 'Cannot search. No source used, and Semantic API module was not included', + noResultsHeader : 'No Results', + noResults : 'Your search returned no results', + logging : 'Error in debug logging, exiting.', + noEndpoint : 'No search endpoint was specified', + noTemplate : 'A valid template name was not specified.', + oldSearchSyntax : 'searchFullText setting has been renamed fullTextSearch for consistency, please adjust your settings.', + serverError : 'There was an issue querying the server.', + maxResults : 'Results must be an array to use maxResults setting', + method : 'The method you called is not defined.', + noNormalize : '"ignoreDiacritics" setting will be ignored. Browser does not support String().normalize(). You may consider including <https://cdn.jsdelivr.net/npm/unorm@1.4.1/lib/unorm.min.js> as a polyfill.' + }, + + metadata: { + cache : 'cache', + results : 'results', + result : 'result' + }, + + regExp: { + escape : /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, + beginsWith : '(?:\s|^)' + }, + + // maps api response attributes to internal representation + fields: { + categories : 'results', // array of categories (category view) + categoryName : 'name', // name of category (category view) + categoryResults : 'results', // array of results (category view) + description : 'description', // result description + image : 'image', // result image + price : 'price', // result price + results : 'results', // array of results (standard) + title : 'title', // result title + url : 'url', // result url + action : 'action', // "view more" object name + actionText : 'text', // "view more" text + actionURL : 'url' // "view more" url + }, + + selector : { + prompt : '.prompt', + searchButton : '.search.button', + results : '.results', + message : '.results > .message', + category : '.category', + result : '.result', + title : '.title, .name' + }, + + templates: { + escape: function(string, preserveHTML) { + if (preserveHTML){ + return string; + } + var + badChars = /[<>"'`]/g, + shouldEscape = /[&<>"'`]/, + escape = { + "<": "<", + ">": ">", + '"': """, + "'": "'", + "`": "`" + }, + escapedChar = function(chr) { + return escape[chr]; + } + ; + if(shouldEscape.test(string)) { + string = string.replace(/&(?![a-z0-9#]{1,6};)/, "&"); + return string.replace(badChars, escapedChar); + } + return string; + }, + message: function(message, type, header) { + var + html = '' + ; + if(message !== undefined && type !== undefined) { + html += '' + + '<div class="message ' + type + '">' + ; + if(header) { + html += '' + + '<div class="header">' + header + '</div>' + ; + } + html += ' <div class="description">' + message + '</div>'; + html += '</div>'; + } + return html; + }, + category: function(response, fields, preserveHTML) { + var + html = '', + escape = $.fn.search.settings.templates.escape + ; + if(response[fields.categoryResults] !== undefined) { + + // each category + $.each(response[fields.categoryResults], function(index, category) { + if(category[fields.results] !== undefined && category.results.length > 0) { + + html += '<div class="category">'; + + if(category[fields.categoryName] !== undefined) { + html += '<div class="name">' + escape(category[fields.categoryName], preserveHTML) + '</div>'; + } + + // each item inside category + html += '<div class="results">'; + $.each(category.results, function(index, result) { + if(result[fields.url]) { + html += '<a class="result" href="' + result[fields.url].replace(/"/g,"") + '">'; + } + else { + html += '<a class="result">'; + } + if(result[fields.image] !== undefined) { + html += '' + + '<div class="image">' + + ' <img src="' + result[fields.image].replace(/"/g,"") + '">' + + '</div>' + ; + } + html += '<div class="content">'; + if(result[fields.price] !== undefined) { + html += '<div class="price">' + escape(result[fields.price], preserveHTML) + '</div>'; + } + if(result[fields.title] !== undefined) { + html += '<div class="title">' + escape(result[fields.title], preserveHTML) + '</div>'; + } + if(result[fields.description] !== undefined) { + html += '<div class="description">' + escape(result[fields.description], preserveHTML) + '</div>'; + } + html += '' + + '</div>' + ; + html += '</a>'; + }); + html += '</div>'; + html += '' + + '</div>' + ; + } + }); + if(response[fields.action]) { + if(fields.actionURL === false) { + html += '' + + '<div class="action">' + + escape(response[fields.action][fields.actionText], preserveHTML) + + '</div>'; + } else { + html += '' + + '<a href="' + response[fields.action][fields.actionURL].replace(/"/g,"") + '" class="action">' + + escape(response[fields.action][fields.actionText], preserveHTML) + + '</a>'; + } + } + return html; + } + return false; + }, + standard: function(response, fields, preserveHTML) { + var + html = '', + escape = $.fn.search.settings.templates.escape + ; + if(response[fields.results] !== undefined) { + + // each result + $.each(response[fields.results], function(index, result) { + if(result[fields.url]) { + html += '<a class="result" href="' + result[fields.url].replace(/"/g,"") + '">'; + } + else { + html += '<a class="result">'; + } + if(result[fields.image] !== undefined) { + html += '' + + '<div class="image">' + + ' <img src="' + result[fields.image].replace(/"/g,"") + '">' + + '</div>' + ; + } + html += '<div class="content">'; + if(result[fields.price] !== undefined) { + html += '<div class="price">' + escape(result[fields.price], preserveHTML) + '</div>'; + } + if(result[fields.title] !== undefined) { + html += '<div class="title">' + escape(result[fields.title], preserveHTML) + '</div>'; + } + if(result[fields.description] !== undefined) { + html += '<div class="description">' + escape(result[fields.description], preserveHTML) + '</div>'; + } + html += '' + + '</div>' + ; + html += '</a>'; + }); + if(response[fields.action]) { + if(fields.actionURL === false) { + html += '' + + '<div class="action">' + + escape(response[fields.action][fields.actionText], preserveHTML) + + '</div>'; + } else { + html += '' + + '<a href="' + response[fields.action][fields.actionURL].replace(/"/g,"") + '" class="action">' + + escape(response[fields.action][fields.actionText], preserveHTML) + + '</a>'; + } + } + return html; + } + return false; + } + } +}; + +})( jQuery, window, document ); + +/*! + * # Fomantic-UI - Sidebar + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +$.isFunction = $.isFunction || function(obj) { + return typeof obj === "function" && typeof obj.nodeType !== "number"; +}; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.sidebar = function(parameters) { + var + $allModules = $(this), + $window = $(window), + $document = $(document), + $html = $('html'), + $head = $('head'), + + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + requestAnimationFrame = window.requestAnimationFrame + || window.mozRequestAnimationFrame + || window.webkitRequestAnimationFrame + || window.msRequestAnimationFrame + || function(callback) { setTimeout(callback, 0); }, + + returnedValue + ; + + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.sidebar.settings, parameters) + : $.extend({}, $.fn.sidebar.settings), + + selector = settings.selector, + className = settings.className, + namespace = settings.namespace, + regExp = settings.regExp, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + $module = $(this), + $context = $(settings.context), + + $sidebars = $module.children(selector.sidebar), + $fixed = $context.children(selector.fixed), + $pusher = $context.children(selector.pusher), + $style, + + element = this, + instance = $module.data(moduleNamespace), + + elementNamespace, + id, + currentScroll, + transitionEvent, + + module + ; + + module = { + + initialize: function() { + module.debug('Initializing sidebar', parameters); + + module.create.id(); + + transitionEvent = module.get.transitionEvent(); + + // avoids locking rendering if initialized in onReady + if(settings.delaySetup) { + requestAnimationFrame(module.setup.layout); + } + else { + module.setup.layout(); + } + + requestAnimationFrame(function() { + module.setup.cache(); + }); + + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + create: { + id: function() { + id = (Math.random().toString(16) + '000000000').substr(2,8); + elementNamespace = '.' + id; + module.verbose('Creating unique id for element', id); + } + }, + + destroy: function() { + module.verbose('Destroying previous module for', $module); + $module + .off(eventNamespace) + .removeData(moduleNamespace) + ; + if(module.is.ios()) { + module.remove.ios(); + } + // bound by uuid + $context.off(elementNamespace); + $window.off(elementNamespace); + $document.off(elementNamespace); + }, + + event: { + clickaway: function(event) { + if(settings.closable){ + var + clickedInPusher = ($pusher.find(event.target).length > 0 || $pusher.is(event.target)), + clickedContext = ($context.is(event.target)) + ; + if(clickedInPusher) { + module.verbose('User clicked on dimmed page'); + module.hide(); + } + if(clickedContext) { + module.verbose('User clicked on dimmable context (scaled out page)'); + module.hide(); + } + } + }, + touch: function(event) { + //event.stopPropagation(); + }, + containScroll: function(event) { + if(element.scrollTop <= 0) { + element.scrollTop = 1; + } + if((element.scrollTop + element.offsetHeight) >= element.scrollHeight) { + element.scrollTop = element.scrollHeight - element.offsetHeight - 1; + } + }, + scroll: function(event) { + if( $(event.target).closest(selector.sidebar).length === 0 ) { + event.preventDefault(); + } + } + }, + + bind: { + clickaway: function() { + module.verbose('Adding clickaway events to context', $context); + $context + .on('click' + elementNamespace, module.event.clickaway) + .on('touchend' + elementNamespace, module.event.clickaway) + ; + }, + scrollLock: function() { + if(settings.scrollLock) { + module.debug('Disabling page scroll'); + $window + .on('DOMMouseScroll' + elementNamespace, module.event.scroll) + ; + } + module.verbose('Adding events to contain sidebar scroll'); + $document + .on('touchmove' + elementNamespace, module.event.touch) + ; + $module + .on('scroll' + eventNamespace, module.event.containScroll) + ; + } + }, + unbind: { + clickaway: function() { + module.verbose('Removing clickaway events from context', $context); + $context.off(elementNamespace); + }, + scrollLock: function() { + module.verbose('Removing scroll lock from page'); + $document.off(elementNamespace); + $window.off(elementNamespace); + $module.off('scroll' + eventNamespace); + } + }, + + add: { + inlineCSS: function() { + var + width = module.cache.width || $module.outerWidth(), + height = module.cache.height || $module.outerHeight(), + isRTL = module.is.rtl(), + direction = module.get.direction(), + distance = { + left : width, + right : -width, + top : height, + bottom : -height + }, + style + ; + + if(isRTL){ + module.verbose('RTL detected, flipping widths'); + distance.left = -width; + distance.right = width; + } + + style = '<style>'; + + if(direction === 'left' || direction === 'right') { + module.debug('Adding CSS rules for animation distance', width); + style += '' + + ' .ui.visible.' + direction + '.sidebar ~ .fixed,' + + ' .ui.visible.' + direction + '.sidebar ~ .pusher {' + + ' -webkit-transform: translate3d('+ distance[direction] + 'px, 0, 0);' + + ' transform: translate3d('+ distance[direction] + 'px, 0, 0);' + + ' }' + ; + } + else if(direction === 'top' || direction == 'bottom') { + style += '' + + ' .ui.visible.' + direction + '.sidebar ~ .fixed,' + + ' .ui.visible.' + direction + '.sidebar ~ .pusher {' + + ' -webkit-transform: translate3d(0, ' + distance[direction] + 'px, 0);' + + ' transform: translate3d(0, ' + distance[direction] + 'px, 0);' + + ' }' + ; + } + + /* IE is only browser not to create context with transforms */ + /* https://www.w3.org/Bugs/Public/show_bug.cgi?id=16328 */ + if( module.is.ie() ) { + if(direction === 'left' || direction === 'right') { + module.debug('Adding CSS rules for animation distance', width); + style += '' + + ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher:after {' + + ' -webkit-transform: translate3d('+ distance[direction] + 'px, 0, 0);' + + ' transform: translate3d('+ distance[direction] + 'px, 0, 0);' + + ' }' + ; + } + else if(direction === 'top' || direction == 'bottom') { + style += '' + + ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher:after {' + + ' -webkit-transform: translate3d(0, ' + distance[direction] + 'px, 0);' + + ' transform: translate3d(0, ' + distance[direction] + 'px, 0);' + + ' }' + ; + } + /* opposite sides visible forces content overlay */ + style += '' + + ' body.pushable > .ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher:after,' + + ' body.pushable > .ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher:after {' + + ' -webkit-transform: translate3d(0, 0, 0);' + + ' transform: translate3d(0, 0, 0);' + + ' }' + ; + } + style += '</style>'; + $style = $(style) + .appendTo($head) + ; + module.debug('Adding sizing css to head', $style); + } + }, + + refresh: function() { + module.verbose('Refreshing selector cache'); + $context = $(settings.context); + $sidebars = $context.children(selector.sidebar); + $pusher = $context.children(selector.pusher); + $fixed = $context.children(selector.fixed); + module.clear.cache(); + }, + + refreshSidebars: function() { + module.verbose('Refreshing other sidebars'); + $sidebars = $context.children(selector.sidebar); + }, + + repaint: function() { + module.verbose('Forcing repaint event'); + element.style.display = 'none'; + var ignored = element.offsetHeight; + element.scrollTop = element.scrollTop; + element.style.display = ''; + }, + + setup: { + cache: function() { + module.cache = { + width : $module.outerWidth(), + height : $module.outerHeight() + }; + }, + layout: function() { + if( $context.children(selector.pusher).length === 0 ) { + module.debug('Adding wrapper element for sidebar'); + module.error(error.pusher); + $pusher = $('<div class="pusher" />'); + $context + .children() + .not(selector.omitted) + .not($sidebars) + .wrapAll($pusher) + ; + module.refresh(); + } + if($module.nextAll(selector.pusher).length === 0 || $module.nextAll(selector.pusher)[0] !== $pusher[0]) { + module.debug('Moved sidebar to correct parent element'); + module.error(error.movedSidebar, element); + $module.detach().prependTo($context); + module.refresh(); + } + module.clear.cache(); + module.set.pushable(); + module.set.direction(); + } + }, + + attachEvents: function(selector, event) { + var + $toggle = $(selector) + ; + event = $.isFunction(module[event]) + ? module[event] + : module.toggle + ; + if($toggle.length > 0) { + module.debug('Attaching sidebar events to element', selector, event); + $toggle + .on('click' + eventNamespace, event) + ; + } + else { + module.error(error.notFound, selector); + } + }, + + show: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if(module.is.hidden()) { + module.refreshSidebars(); + if(settings.overlay) { + module.error(error.overlay); + settings.transition = 'overlay'; + } + module.refresh(); + if(module.othersActive()) { + module.debug('Other sidebars currently visible'); + if(settings.exclusive) { + // if not overlay queue animation after hide + if(settings.transition != 'overlay') { + module.hideOthers(module.show); + return; + } + else { + module.hideOthers(); + } + } + else { + settings.transition = 'overlay'; + } + } + module.pushPage(function() { + callback.call(element); + settings.onShow.call(element); + }); + settings.onChange.call(element); + settings.onVisible.call(element); + } + else { + module.debug('Sidebar is already visible'); + } + }, + + hide: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if(module.is.visible() || module.is.animating()) { + module.debug('Hiding sidebar', callback); + module.refreshSidebars(); + module.pullPage(function() { + callback.call(element); + settings.onHidden.call(element); + }); + settings.onChange.call(element); + settings.onHide.call(element); + } + }, + + othersAnimating: function() { + return ($sidebars.not($module).filter('.' + className.animating).length > 0); + }, + othersVisible: function() { + return ($sidebars.not($module).filter('.' + className.visible).length > 0); + }, + othersActive: function() { + return(module.othersVisible() || module.othersAnimating()); + }, + + hideOthers: function(callback) { + var + $otherSidebars = $sidebars.not($module).filter('.' + className.visible), + sidebarCount = $otherSidebars.length, + callbackCount = 0 + ; + callback = callback || function(){}; + $otherSidebars + .sidebar('hide', function() { + callbackCount++; + if(callbackCount == sidebarCount) { + callback(); + } + }) + ; + }, + + toggle: function() { + module.verbose('Determining toggled direction'); + if(module.is.hidden()) { + module.show(); + } + else { + module.hide(); + } + }, + + pushPage: function(callback) { + var + transition = module.get.transition(), + $transition = (transition === 'overlay' || module.othersActive()) + ? $module + : $pusher, + animate, + dim, + transitionEnd + ; + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if(settings.transition == 'scale down') { + module.scrollToTop(); + } + module.set.transition(transition); + module.repaint(); + animate = function() { + module.bind.clickaway(); + module.add.inlineCSS(); + module.set.animating(); + module.set.visible(); + }; + dim = function() { + module.set.dimmed(); + }; + transitionEnd = function(event) { + if( event.target == $transition[0] ) { + $transition.off(transitionEvent + elementNamespace, transitionEnd); + module.remove.animating(); + module.bind.scrollLock(); + callback.call(element); + } + }; + $transition.off(transitionEvent + elementNamespace); + $transition.on(transitionEvent + elementNamespace, transitionEnd); + requestAnimationFrame(animate); + if(settings.dimPage && !module.othersVisible()) { + requestAnimationFrame(dim); + } + }, + + pullPage: function(callback) { + var + transition = module.get.transition(), + $transition = (transition == 'overlay' || module.othersActive()) + ? $module + : $pusher, + animate, + transitionEnd + ; + callback = $.isFunction(callback) + ? callback + : function(){} + ; + module.verbose('Removing context push state', module.get.direction()); + + module.unbind.clickaway(); + module.unbind.scrollLock(); + + animate = function() { + module.set.transition(transition); + module.set.animating(); + module.remove.visible(); + if(settings.dimPage && !module.othersVisible()) { + $pusher.removeClass(className.dimmed); + } + }; + transitionEnd = function(event) { + if( event.target == $transition[0] ) { + $transition.off(transitionEvent + elementNamespace, transitionEnd); + module.remove.animating(); + module.remove.transition(); + module.remove.inlineCSS(); + if(transition == 'scale down' || (settings.returnScroll && module.is.mobile()) ) { + module.scrollBack(); + } + callback.call(element); + } + }; + $transition.off(transitionEvent + elementNamespace); + $transition.on(transitionEvent + elementNamespace, transitionEnd); + requestAnimationFrame(animate); + }, + + scrollToTop: function() { + module.verbose('Scrolling to top of page to avoid animation issues'); + currentScroll = $(window).scrollTop(); + $module.scrollTop(0); + window.scrollTo(0, 0); + }, + + scrollBack: function() { + module.verbose('Scrolling back to original page position'); + window.scrollTo(0, currentScroll); + }, + + clear: { + cache: function() { + module.verbose('Clearing cached dimensions'); + module.cache = {}; + } + }, + + set: { + + // ios only (scroll on html not document). This prevent auto-resize canvas/scroll in ios + // (This is no longer necessary in latest iOS) + ios: function() { + $html.addClass(className.ios); + }, + + // container + pushed: function() { + $context.addClass(className.pushed); + }, + pushable: function() { + $context.addClass(className.pushable); + }, + + // pusher + dimmed: function() { + $pusher.addClass(className.dimmed); + }, + + // sidebar + active: function() { + $module.addClass(className.active); + }, + animating: function() { + $module.addClass(className.animating); + }, + transition: function(transition) { + transition = transition || module.get.transition(); + $module.addClass(transition); + }, + direction: function(direction) { + direction = direction || module.get.direction(); + $module.addClass(className[direction]); + }, + visible: function() { + $module.addClass(className.visible); + }, + overlay: function() { + $module.addClass(className.overlay); + } + }, + remove: { + + inlineCSS: function() { + module.debug('Removing inline css styles', $style); + if($style && $style.length > 0) { + $style.remove(); + } + }, + + // ios scroll on html not document + ios: function() { + $html.removeClass(className.ios); + }, + + // context + pushed: function() { + $context.removeClass(className.pushed); + }, + pushable: function() { + $context.removeClass(className.pushable); + }, + + // sidebar + active: function() { + $module.removeClass(className.active); + }, + animating: function() { + $module.removeClass(className.animating); + }, + transition: function(transition) { + transition = transition || module.get.transition(); + $module.removeClass(transition); + }, + direction: function(direction) { + direction = direction || module.get.direction(); + $module.removeClass(className[direction]); + }, + visible: function() { + $module.removeClass(className.visible); + }, + overlay: function() { + $module.removeClass(className.overlay); + } + }, + + get: { + direction: function() { + if($module.hasClass(className.top)) { + return className.top; + } + else if($module.hasClass(className.right)) { + return className.right; + } + else if($module.hasClass(className.bottom)) { + return className.bottom; + } + return className.left; + }, + transition: function() { + var + direction = module.get.direction(), + transition + ; + transition = ( module.is.mobile() ) + ? (settings.mobileTransition == 'auto') + ? settings.defaultTransition.mobile[direction] + : settings.mobileTransition + : (settings.transition == 'auto') + ? settings.defaultTransition.computer[direction] + : settings.transition + ; + module.verbose('Determined transition', transition); + return transition; + }, + transitionEvent: function() { + var + element = document.createElement('element'), + transitions = { + 'transition' :'transitionend', + 'OTransition' :'oTransitionEnd', + 'MozTransition' :'transitionend', + 'WebkitTransition' :'webkitTransitionEnd' + }, + transition + ; + for(transition in transitions){ + if( element.style[transition] !== undefined ){ + return transitions[transition]; + } + } + } + }, + + is: { + + ie: function() { + var + isIE11 = (!(window.ActiveXObject) && 'ActiveXObject' in window), + isIE = ('ActiveXObject' in window) + ; + return (isIE11 || isIE); + }, + + ios: function() { + var + userAgent = navigator.userAgent, + isIOS = userAgent.match(regExp.ios), + isMobileChrome = userAgent.match(regExp.mobileChrome) + ; + if(isIOS && !isMobileChrome) { + module.verbose('Browser was found to be iOS', userAgent); + return true; + } + else { + return false; + } + }, + mobile: function() { + var + userAgent = navigator.userAgent, + isMobile = userAgent.match(regExp.mobile) + ; + if(isMobile) { + module.verbose('Browser was found to be mobile', userAgent); + return true; + } + else { + module.verbose('Browser is not mobile, using regular transition', userAgent); + return false; + } + }, + hidden: function() { + return !module.is.visible(); + }, + visible: function() { + return $module.hasClass(className.visible); + }, + // alias + open: function() { + return module.is.visible(); + }, + closed: function() { + return module.is.hidden(); + }, + vertical: function() { + return $module.hasClass(className.top); + }, + animating: function() { + return $context.hasClass(className.animating); + }, + rtl: function () { + if(module.cache.rtl === undefined) { + module.cache.rtl = $module.attr('dir') === 'rtl' || $module.css('direction') === 'rtl'; + } + return module.cache.rtl; + } + }, + + setting: function(name, value) { + module.debug('Changing setting', name, value); + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + if($.isPlainObject(settings[name])) { + $.extend(true, settings[name], value); + } + else { + settings[name] = value; + } + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if(Array.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + } + ; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.invoke('destroy'); + } + module.initialize(); + } + }); + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.sidebar.settings = { + + name : 'Sidebar', + namespace : 'sidebar', + + silent : false, + debug : false, + verbose : false, + performance : true, + + transition : 'auto', + mobileTransition : 'auto', + + defaultTransition : { + computer: { + left : 'uncover', + right : 'uncover', + top : 'overlay', + bottom : 'overlay' + }, + mobile: { + left : 'uncover', + right : 'uncover', + top : 'overlay', + bottom : 'overlay' + } + }, + + context : 'body', + exclusive : false, + closable : true, + dimPage : true, + scrollLock : false, + returnScroll : false, + delaySetup : false, + + duration : 500, + + onChange : function(){}, + onShow : function(){}, + onHide : function(){}, + + onHidden : function(){}, + onVisible : function(){}, + + className : { + active : 'active', + animating : 'animating', + dimmed : 'dimmed', + ios : 'ios', + pushable : 'pushable', + pushed : 'pushed', + right : 'right', + top : 'top', + left : 'left', + bottom : 'bottom', + visible : 'visible' + }, + + selector: { + fixed : '.fixed', + omitted : 'script, link, style, .ui.modal, .ui.dimmer, .ui.nag, .ui.fixed', + pusher : '.pusher', + sidebar : '.ui.sidebar' + }, + + regExp: { + ios : /(iPad|iPhone|iPod)/g, + mobileChrome : /(CriOS)/g, + mobile : /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/g + }, + + error : { + method : 'The method you called is not defined.', + pusher : 'Had to add pusher element. For optimal performance make sure body content is inside a pusher element', + movedSidebar : 'Had to move sidebar. For optimal performance make sure sidebar and pusher are direct children of your body tag', + overlay : 'The overlay setting is no longer supported, use animation: overlay', + notFound : 'There were no elements that matched the specified selector' + } + +}; + + +})( jQuery, window, document ); + +/*! + * # Fomantic-UI - Site + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +$.isFunction = $.isFunction || function(obj) { + return typeof obj === "function" && typeof obj.nodeType !== "number"; +}; + +$.site = $.fn.site = function(parameters) { + var + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.site.settings, parameters) + : $.extend({}, $.site.settings), + + namespace = settings.namespace, + error = settings.error, + + moduleNamespace = 'module-' + namespace, + + $document = $(document), + $module = $document, + element = this, + instance = $module.data(moduleNamespace), + + module, + returnedValue + ; + module = { + + initialize: function() { + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of site', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + normalize: function() { + module.fix.console(); + module.fix.requestAnimationFrame(); + }, + + fix: { + console: function() { + module.debug('Normalizing window.console'); + if (console === undefined || console.log === undefined) { + module.verbose('Console not available, normalizing events'); + module.disable.console(); + } + if (typeof console.group == 'undefined' || typeof console.groupEnd == 'undefined' || typeof console.groupCollapsed == 'undefined') { + module.verbose('Console group not available, normalizing events'); + window.console.group = function() {}; + window.console.groupEnd = function() {}; + window.console.groupCollapsed = function() {}; + } + if (typeof console.markTimeline == 'undefined') { + module.verbose('Mark timeline not available, normalizing events'); + window.console.markTimeline = function() {}; + } + }, + consoleClear: function() { + module.debug('Disabling programmatic console clearing'); + window.console.clear = function() {}; + }, + requestAnimationFrame: function() { + module.debug('Normalizing requestAnimationFrame'); + if(window.requestAnimationFrame === undefined) { + module.debug('RequestAnimationFrame not available, normalizing event'); + window.requestAnimationFrame = window.requestAnimationFrame + || window.mozRequestAnimationFrame + || window.webkitRequestAnimationFrame + || window.msRequestAnimationFrame + || function(callback) { setTimeout(callback, 0); } + ; + } + } + }, + + moduleExists: function(name) { + return ($.fn[name] !== undefined && $.fn[name].settings !== undefined); + }, + + enabled: { + modules: function(modules) { + var + enabledModules = [] + ; + modules = modules || settings.modules; + $.each(modules, function(index, name) { + if(module.moduleExists(name)) { + enabledModules.push(name); + } + }); + return enabledModules; + } + }, + + disabled: { + modules: function(modules) { + var + disabledModules = [] + ; + modules = modules || settings.modules; + $.each(modules, function(index, name) { + if(!module.moduleExists(name)) { + disabledModules.push(name); + } + }); + return disabledModules; + } + }, + + change: { + setting: function(setting, value, modules, modifyExisting) { + modules = (typeof modules === 'string') + ? (modules === 'all') + ? settings.modules + : [modules] + : modules || settings.modules + ; + modifyExisting = (modifyExisting !== undefined) + ? modifyExisting + : true + ; + $.each(modules, function(index, name) { + var + namespace = (module.moduleExists(name)) + ? $.fn[name].settings.namespace || false + : true, + $existingModules + ; + if(module.moduleExists(name)) { + module.verbose('Changing default setting', setting, value, name); + $.fn[name].settings[setting] = value; + if(modifyExisting && namespace) { + $existingModules = $(':data(module-' + namespace + ')'); + if($existingModules.length > 0) { + module.verbose('Modifying existing settings', $existingModules); + $existingModules[name]('setting', setting, value); + } + } + } + }); + }, + settings: function(newSettings, modules, modifyExisting) { + modules = (typeof modules === 'string') + ? [modules] + : modules || settings.modules + ; + modifyExisting = (modifyExisting !== undefined) + ? modifyExisting + : true + ; + $.each(modules, function(index, name) { + var + $existingModules + ; + if(module.moduleExists(name)) { + module.verbose('Changing default setting', newSettings, name); + $.extend(true, $.fn[name].settings, newSettings); + if(modifyExisting && namespace) { + $existingModules = $(':data(module-' + namespace + ')'); + if($existingModules.length > 0) { + module.verbose('Modifying existing settings', $existingModules); + $existingModules[name]('setting', newSettings); + } + } + } + }); + } + }, + + enable: { + console: function() { + module.console(true); + }, + debug: function(modules, modifyExisting) { + modules = modules || settings.modules; + module.debug('Enabling debug for modules', modules); + module.change.setting('debug', true, modules, modifyExisting); + }, + verbose: function(modules, modifyExisting) { + modules = modules || settings.modules; + module.debug('Enabling verbose debug for modules', modules); + module.change.setting('verbose', true, modules, modifyExisting); + } + }, + disable: { + console: function() { + module.console(false); + }, + debug: function(modules, modifyExisting) { + modules = modules || settings.modules; + module.debug('Disabling debug for modules', modules); + module.change.setting('debug', false, modules, modifyExisting); + }, + verbose: function(modules, modifyExisting) { + modules = modules || settings.modules; + module.debug('Disabling verbose debug for modules', modules); + module.change.setting('verbose', false, modules, modifyExisting); + } + }, + + console: function(enable) { + if(enable) { + if(instance.cache.console === undefined) { + module.error(error.console); + return; + } + module.debug('Restoring console function'); + window.console = instance.cache.console; + } + else { + module.debug('Disabling console function'); + instance.cache.console = window.console; + window.console = { + clear : function(){}, + error : function(){}, + group : function(){}, + groupCollapsed : function(){}, + groupEnd : function(){}, + info : function(){}, + log : function(){}, + markTimeline : function(){}, + warn : function(){} + }; + } + }, + + destroy: function() { + module.verbose('Destroying previous site for', $module); + $module + .removeData(moduleNamespace) + ; + }, + + cache: {}, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if(Array.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.site.settings = { + + name : 'Site', + namespace : 'site', + + error : { + console : 'Console cannot be restored, most likely it was overwritten outside of module', + method : 'The method you called is not defined.' + }, + + debug : false, + verbose : false, + performance : true, + + modules: [ + 'accordion', + 'api', + 'calendar', + 'checkbox', + 'dimmer', + 'dropdown', + 'embed', + 'form', + 'modal', + 'nag', + 'popup', + 'slider', + 'rating', + 'shape', + 'sidebar', + 'state', + 'sticky', + 'tab', + 'toast', + 'transition', + 'visibility', + 'visit' + ], + + siteNamespace : 'site', + namespaceStub : { + cache : {}, + config : {}, + sections : {}, + section : {}, + utilities : {} + } + +}; + +// allows for selection of elements with data attributes +$.extend($.expr[ ":" ], { + data: ($.expr.createPseudo) + ? $.expr.createPseudo(function(dataName) { + return function(elem) { + return !!$.data(elem, dataName); + }; + }) + : function(elem, i, match) { + // support: jQuery < 1.8 + return !!$.data(elem, match[ 3 ]); + } +}); + + +})( jQuery, window, document ); + +/*! + * # Fomantic-UI - Tab + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +$.isWindow = $.isWindow || function(obj) { + return obj != null && obj === obj.window; +}; +$.isFunction = $.isFunction || function(obj) { + return typeof obj === "function" && typeof obj.nodeType !== "number"; +}; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.tab = function(parameters) { + + var + // use window context if none specified + $allModules = $.isFunction(this) + ? $(window) + : $(this), + + moduleSelector = $allModules.selector || '', + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + initializedHistory = false, + returnedValue + ; + + $allModules + .each(function() { + var + + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.tab.settings, parameters) + : $.extend({}, $.fn.tab.settings), + + className = settings.className, + metadata = settings.metadata, + selector = settings.selector, + error = settings.error, + regExp = settings.regExp, + + eventNamespace = '.' + settings.namespace, + moduleNamespace = 'module-' + settings.namespace, + + $module = $(this), + $context, + $tabs, + + cache = {}, + firstLoad = true, + recursionDepth = 0, + element = this, + instance = $module.data(moduleNamespace), + + activeTabPath, + parameterArray, + module, + + historyEvent + + ; + + module = { + + initialize: function() { + module.debug('Initializing tab menu item', $module); + module.fix.callbacks(); + module.determineTabs(); + + module.debug('Determining tabs', settings.context, $tabs); + // set up automatic routing + if(settings.auto) { + module.set.auto(); + } + module.bind.events(); + + if(settings.history && !initializedHistory) { + module.initializeHistory(); + initializedHistory = true; + } + + if(settings.autoTabActivation && instance === undefined && module.determine.activeTab() == null) { + module.debug('No active tab detected, setting first tab active', module.get.initialPath()); + module.changeTab(settings.autoTabActivation === true ? module.get.initialPath() : settings.autoTabActivation); + }; + + module.instantiate(); + }, + + instantiate: function () { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.debug('Destroying tabs', $module); + $module + .removeData(moduleNamespace) + .off(eventNamespace) + ; + }, + + bind: { + events: function() { + // if using $.tab don't add events + if( !$.isWindow( element ) ) { + module.debug('Attaching tab activation events to element', $module); + $module + .on('click' + eventNamespace, module.event.click) + ; + } + } + }, + + determineTabs: function() { + var + $reference + ; + + // determine tab context + if(settings.context === 'parent') { + if($module.closest(selector.ui).length > 0) { + $reference = $module.closest(selector.ui); + module.verbose('Using closest UI element as parent', $reference); + } + else { + $reference = $module; + } + $context = $reference.parent(); + module.verbose('Determined parent element for creating context', $context); + } + else if(settings.context) { + $context = $(settings.context); + module.verbose('Using selector for tab context', settings.context, $context); + } + else { + $context = $('body'); + } + // find tabs + if(settings.childrenOnly) { + $tabs = $context.children(selector.tabs); + module.debug('Searching tab context children for tabs', $context, $tabs); + } + else { + $tabs = $context.find(selector.tabs); + module.debug('Searching tab context for tabs', $context, $tabs); + } + }, + + fix: { + callbacks: function() { + if( $.isPlainObject(parameters) && (parameters.onTabLoad || parameters.onTabInit) ) { + if(parameters.onTabLoad) { + parameters.onLoad = parameters.onTabLoad; + delete parameters.onTabLoad; + module.error(error.legacyLoad, parameters.onLoad); + } + if(parameters.onTabInit) { + parameters.onFirstLoad = parameters.onTabInit; + delete parameters.onTabInit; + module.error(error.legacyInit, parameters.onFirstLoad); + } + settings = $.extend(true, {}, $.fn.tab.settings, parameters); + } + } + }, + + initializeHistory: function() { + module.debug('Initializing page state'); + if( $.address === undefined ) { + module.error(error.state); + return false; + } + else { + if(settings.historyType == 'state') { + module.debug('Using HTML5 to manage state'); + if(settings.path !== false) { + $.address + .history(true) + .state(settings.path) + ; + } + else { + module.error(error.path); + return false; + } + } + $.address + .bind('change', module.event.history.change) + ; + } + }, + + event: { + click: function(event) { + var + tabPath = $(this).data(metadata.tab) + ; + if(tabPath !== undefined) { + if(settings.history) { + module.verbose('Updating page state', event); + $.address.value(tabPath); + } + else { + module.verbose('Changing tab', event); + module.changeTab(tabPath); + } + event.preventDefault(); + } + else { + module.debug('No tab specified'); + } + }, + history: { + change: function(event) { + var + tabPath = event.pathNames.join('/') || module.get.initialPath(), + pageTitle = settings.templates.determineTitle(tabPath) || false + ; + module.performance.display(); + module.debug('History change event', tabPath, event); + historyEvent = event; + if(tabPath !== undefined) { + module.changeTab(tabPath); + } + if(pageTitle) { + $.address.title(pageTitle); + } + } + } + }, + + refresh: function() { + if(activeTabPath) { + module.debug('Refreshing tab', activeTabPath); + module.changeTab(activeTabPath); + } + }, + + cache: { + + read: function(cacheKey) { + return (cacheKey !== undefined) + ? cache[cacheKey] + : false + ; + }, + add: function(cacheKey, content) { + cacheKey = cacheKey || activeTabPath; + module.debug('Adding cached content for', cacheKey); + cache[cacheKey] = content; + }, + remove: function(cacheKey) { + cacheKey = cacheKey || activeTabPath; + module.debug('Removing cached content for', cacheKey); + delete cache[cacheKey]; + } + }, + + escape: { + string: function(text) { + text = String(text); + return text.replace(regExp.escape, '\\$&'); + } + }, + + set: { + auto: function() { + var + url = (typeof settings.path == 'string') + ? settings.path.replace(/\/$/, '') + '/{$tab}' + : '/{$tab}' + ; + module.verbose('Setting up automatic tab retrieval from server', url); + if($.isPlainObject(settings.apiSettings)) { + settings.apiSettings.url = url; + } + else { + settings.apiSettings = { + url: url + }; + } + }, + loading: function(tabPath) { + var + $tab = module.get.tabElement(tabPath), + isLoading = $tab.hasClass(className.loading) + ; + if(!isLoading) { + module.verbose('Setting loading state for', $tab); + $tab + .addClass(className.loading) + .siblings($tabs) + .removeClass(className.active + ' ' + className.loading) + ; + if($tab.length > 0) { + settings.onRequest.call($tab[0], tabPath); + } + } + }, + state: function(state) { + $.address.value(state); + } + }, + + changeTab: function(tabPath) { + var + pushStateAvailable = (window.history && window.history.pushState), + shouldIgnoreLoad = (pushStateAvailable && settings.ignoreFirstLoad && firstLoad), + remoteContent = (settings.auto || $.isPlainObject(settings.apiSettings) ), + // only add default path if not remote content + pathArray = (remoteContent && !shouldIgnoreLoad) + ? module.utilities.pathToArray(tabPath) + : module.get.defaultPathArray(tabPath) + ; + tabPath = module.utilities.arrayToPath(pathArray); + $.each(pathArray, function(index, tab) { + var + currentPathArray = pathArray.slice(0, index + 1), + currentPath = module.utilities.arrayToPath(currentPathArray), + + isTab = module.is.tab(currentPath), + isLastIndex = (index + 1 == pathArray.length), + + $tab = module.get.tabElement(currentPath), + $anchor, + nextPathArray, + nextPath, + isLastTab + ; + module.verbose('Looking for tab', tab); + if(isTab) { + module.verbose('Tab was found', tab); + // scope up + activeTabPath = currentPath; + parameterArray = module.utilities.filterArray(pathArray, currentPathArray); + + if(isLastIndex) { + isLastTab = true; + } + else { + nextPathArray = pathArray.slice(0, index + 2); + nextPath = module.utilities.arrayToPath(nextPathArray); + isLastTab = ( !module.is.tab(nextPath) ); + if(isLastTab) { + module.verbose('Tab parameters found', nextPathArray); + } + } + if(isLastTab && remoteContent) { + if(!shouldIgnoreLoad) { + module.activate.navigation(currentPath); + module.fetch.content(currentPath, tabPath); + } + else { + module.debug('Ignoring remote content on first tab load', currentPath); + firstLoad = false; + module.cache.add(tabPath, $tab.html()); + module.activate.all(currentPath); + settings.onFirstLoad.call($tab[0], currentPath, parameterArray, historyEvent); + settings.onLoad.call($tab[0], currentPath, parameterArray, historyEvent); + } + return false; + } + else { + module.debug('Opened local tab', currentPath); + module.activate.all(currentPath); + if( !module.cache.read(currentPath) ) { + module.cache.add(currentPath, true); + module.debug('First time tab loaded calling tab init'); + settings.onFirstLoad.call($tab[0], currentPath, parameterArray, historyEvent); + } + settings.onLoad.call($tab[0], currentPath, parameterArray, historyEvent); + } + + } + else if(tabPath.search('/') == -1 && tabPath !== '') { + // look for in page anchor + tabPath = module.escape.string(tabPath); + $anchor = $('#' + tabPath + ', a[name="' + tabPath + '"]'); + currentPath = $anchor.closest('[data-tab]').data(metadata.tab); + $tab = module.get.tabElement(currentPath); + // if anchor exists use parent tab + if($anchor && $anchor.length > 0 && currentPath) { + module.debug('Anchor link used, opening parent tab', $tab, $anchor); + if( !$tab.hasClass(className.active) ) { + setTimeout(function() { + module.scrollTo($anchor); + }, 0); + } + module.activate.all(currentPath); + if( !module.cache.read(currentPath) ) { + module.cache.add(currentPath, true); + module.debug('First time tab loaded calling tab init'); + settings.onFirstLoad.call($tab[0], currentPath, parameterArray, historyEvent); + } + settings.onLoad.call($tab[0], currentPath, parameterArray, historyEvent); + return false; + } + } + else { + module.error(error.missingTab, $module, $context, currentPath); + return false; + } + }); + }, + + scrollTo: function($element) { + var + scrollOffset = ($element && $element.length > 0) + ? $element.offset().top + : false + ; + if(scrollOffset !== false) { + module.debug('Forcing scroll to an in-page link in a hidden tab', scrollOffset, $element); + $(document).scrollTop(scrollOffset); + } + }, + + update: { + content: function(tabPath, html, evaluateScripts) { + var + $tab = module.get.tabElement(tabPath), + tab = $tab[0] + ; + evaluateScripts = (evaluateScripts !== undefined) + ? evaluateScripts + : settings.evaluateScripts + ; + if(typeof settings.cacheType == 'string' && settings.cacheType.toLowerCase() == 'dom' && typeof html !== 'string') { + $tab + .empty() + .append($(html).clone(true)) + ; + } + else { + if(evaluateScripts) { + module.debug('Updating HTML and evaluating inline scripts', tabPath, html); + $tab.html(html); + } + else { + module.debug('Updating HTML', tabPath, html); + tab.innerHTML = html; + } + } + } + }, + + fetch: { + + content: function(tabPath, fullTabPath) { + var + $tab = module.get.tabElement(tabPath), + apiSettings = { + dataType : 'html', + encodeParameters : false, + on : 'now', + cache : settings.alwaysRefresh, + headers : { + 'X-Remote': true + }, + onSuccess : function(response) { + if(settings.cacheType == 'response') { + module.cache.add(fullTabPath, response); + } + module.update.content(tabPath, response); + if(tabPath == activeTabPath) { + module.debug('Content loaded', tabPath); + module.activate.tab(tabPath); + } + else { + module.debug('Content loaded in background', tabPath); + } + settings.onFirstLoad.call($tab[0], tabPath, parameterArray, historyEvent); + settings.onLoad.call($tab[0], tabPath, parameterArray, historyEvent); + + if(settings.loadOnce) { + module.cache.add(fullTabPath, true); + } + else if(typeof settings.cacheType == 'string' && settings.cacheType.toLowerCase() == 'dom' && $tab.children().length > 0) { + setTimeout(function() { + var + $clone = $tab.children().clone(true) + ; + $clone = $clone.not('script'); + module.cache.add(fullTabPath, $clone); + }, 0); + } + else { + module.cache.add(fullTabPath, $tab.html()); + } + }, + urlData: { + tab: fullTabPath + } + }, + request = $tab.api('get request') || false, + existingRequest = ( request && request.state() === 'pending' ), + requestSettings, + cachedContent + ; + + fullTabPath = fullTabPath || tabPath; + cachedContent = module.cache.read(fullTabPath); + + + if(settings.cache && cachedContent) { + module.activate.tab(tabPath); + module.debug('Adding cached content', fullTabPath); + if(!settings.loadOnce) { + if(settings.evaluateScripts == 'once') { + module.update.content(tabPath, cachedContent, false); + } + else { + module.update.content(tabPath, cachedContent); + } + } + settings.onLoad.call($tab[0], tabPath, parameterArray, historyEvent); + } + else if(existingRequest) { + module.set.loading(tabPath); + module.debug('Content is already loading', fullTabPath); + } + else if($.api !== undefined) { + requestSettings = $.extend(true, {}, settings.apiSettings, apiSettings); + module.debug('Retrieving remote content', fullTabPath, requestSettings); + module.set.loading(tabPath); + $tab.api(requestSettings); + } + else { + module.error(error.api); + } + } + }, + + activate: { + all: function(tabPath) { + module.activate.tab(tabPath); + module.activate.navigation(tabPath); + }, + tab: function(tabPath) { + var + $tab = module.get.tabElement(tabPath), + $deactiveTabs = (settings.deactivate == 'siblings') + ? $tab.siblings($tabs) + : $tabs.not($tab), + isActive = $tab.hasClass(className.active) + ; + module.verbose('Showing tab content for', $tab); + if(!isActive) { + $tab + .addClass(className.active) + ; + $deactiveTabs + .removeClass(className.active + ' ' + className.loading) + ; + if($tab.length > 0) { + settings.onVisible.call($tab[0], tabPath); + } + } + }, + navigation: function(tabPath) { + var + $navigation = module.get.navElement(tabPath), + $deactiveNavigation = (settings.deactivate == 'siblings') + ? $navigation.siblings($allModules) + : $allModules.not($navigation), + isActive = $navigation.hasClass(className.active) + ; + module.verbose('Activating tab navigation for', $navigation, tabPath); + if(!isActive) { + $navigation + .addClass(className.active) + ; + $deactiveNavigation + .removeClass(className.active + ' ' + className.loading) + ; + } + } + }, + + deactivate: { + all: function() { + module.deactivate.navigation(); + module.deactivate.tabs(); + }, + navigation: function() { + $allModules + .removeClass(className.active) + ; + }, + tabs: function() { + $tabs + .removeClass(className.active + ' ' + className.loading) + ; + } + }, + + is: { + tab: function(tabName) { + return (tabName !== undefined) + ? ( module.get.tabElement(tabName).length > 0 ) + : false + ; + } + }, + + get: { + initialPath: function() { + return $allModules.eq(0).data(metadata.tab) || $tabs.eq(0).data(metadata.tab); + }, + path: function() { + return $.address.value(); + }, + // adds default tabs to tab path + defaultPathArray: function(tabPath) { + return module.utilities.pathToArray( module.get.defaultPath(tabPath) ); + }, + defaultPath: function(tabPath) { + var + $defaultNav = $allModules.filter('[data-' + metadata.tab + '^="' + module.escape.string(tabPath) + '/"]').eq(0), + defaultTab = $defaultNav.data(metadata.tab) || false + ; + if( defaultTab ) { + module.debug('Found default tab', defaultTab); + if(recursionDepth < settings.maxDepth) { + recursionDepth++; + return module.get.defaultPath(defaultTab); + } + module.error(error.recursion); + } + else { + module.debug('No default tabs found for', tabPath, $tabs); + } + recursionDepth = 0; + return tabPath; + }, + navElement: function(tabPath) { + tabPath = tabPath || activeTabPath; + return $allModules.filter('[data-' + metadata.tab + '="' + module.escape.string(tabPath) + '"]'); + }, + tabElement: function(tabPath) { + var + $fullPathTab, + $simplePathTab, + tabPathArray, + lastTab + ; + tabPath = tabPath || activeTabPath; + tabPathArray = module.utilities.pathToArray(tabPath); + lastTab = module.utilities.last(tabPathArray); + $fullPathTab = $tabs.filter('[data-' + metadata.tab + '="' + module.escape.string(tabPath) + '"]'); + $simplePathTab = $tabs.filter('[data-' + metadata.tab + '="' + module.escape.string(lastTab) + '"]'); + return ($fullPathTab.length > 0) + ? $fullPathTab + : $simplePathTab + ; + }, + tab: function() { + return activeTabPath; + } + }, + + determine: { + activeTab: function() { + var activeTab = null; + + $tabs.each(function(_index, tab) { + var $tab = $(tab); + + if( $tab.hasClass(className.active) ) { + var + tabPath = $(this).data(metadata.tab), + $anchor = $allModules.filter('[data-' + metadata.tab + '="' + module.escape.string(tabPath) + '"]') + ; + + if( $anchor.hasClass(className.active) ) { + activeTab = tabPath; + } + } + }); + + return activeTab; + } + }, + + utilities: { + filterArray: function(keepArray, removeArray) { + return $.grep(keepArray, function(keepValue) { + return ( $.inArray(keepValue, removeArray) == -1); + }); + }, + last: function(array) { + return Array.isArray(array) + ? array[ array.length - 1] + : false + ; + }, + pathToArray: function(pathName) { + if(pathName === undefined) { + pathName = activeTabPath; + } + return typeof pathName == 'string' + ? pathName.split('/') + : [pathName] + ; + }, + arrayToPath: function(pathArray) { + return Array.isArray(pathArray) + ? pathArray.join('/') + : false + ; + } + }, + + setting: function(name, value) { + module.debug('Changing setting', name, value); + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + if($.isPlainObject(settings[name])) { + $.extend(true, settings[name], value); + } + else { + settings[name] = value; + } + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if(Array.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + instance.invoke('destroy'); + } + module.initialize(); + } + }) + ; + return (returnedValue !== undefined) + ? returnedValue + : this + ; + +}; + +// shortcut for tabbed content with no defined navigation +$.tab = function() { + $(window).tab.apply(this, arguments); +}; + +$.fn.tab.settings = { + + name : 'Tab', + namespace : 'tab', + + silent : false, + debug : false, + verbose : false, + performance : true, + + auto : false, // uses pjax style endpoints fetching content from same url with remote-content headers + history : false, // use browser history + historyType : 'hash', // #/ or html5 state + path : false, // base path of url + + context : false, // specify a context that tabs must appear inside + childrenOnly : false, // use only tabs that are children of context + maxDepth : 25, // max depth a tab can be nested + + deactivate : 'siblings', // whether tabs should deactivate sibling menu elements or all elements initialized together + + alwaysRefresh : false, // load tab content new every tab click + cache : true, // cache the content requests to pull locally + loadOnce : false, // Whether tab data should only be loaded once when using remote content + cacheType : 'response', // Whether to cache exact response, or to html cache contents after scripts execute + ignoreFirstLoad : false, // don't load remote content on first load + + apiSettings : false, // settings for api call + evaluateScripts : 'once', // whether inline scripts should be parsed (true/false/once). Once will not re-evaluate on cached content + autoTabActivation: true, // whether a non existing active tab will auto activate the first available tab + + onFirstLoad : function(tabPath, parameterArray, historyEvent) {}, // called first time loaded + onLoad : function(tabPath, parameterArray, historyEvent) {}, // called on every load + onVisible : function(tabPath, parameterArray, historyEvent) {}, // called every time tab visible + onRequest : function(tabPath, parameterArray, historyEvent) {}, // called ever time a tab beings loading remote content + + templates : { + determineTitle: function(tabArray) {} // returns page title for path + }, + + error: { + api : 'You attempted to load content without API module', + method : 'The method you called is not defined', + missingTab : 'Activated tab cannot be found. Tabs are case-sensitive.', + noContent : 'The tab you specified is missing a content url.', + path : 'History enabled, but no path was specified', + recursion : 'Max recursive depth reached', + legacyInit : 'onTabInit has been renamed to onFirstLoad in 2.0, please adjust your code.', + legacyLoad : 'onTabLoad has been renamed to onLoad in 2.0. Please adjust your code', + state : 'History requires Asual\'s Address library <https://github.com/asual/jquery-address>' + }, + + regExp : { + escape : /[-[\]{}()*+?.,\\^$|#\s:=@]/g + }, + + metadata : { + tab : 'tab', + loaded : 'loaded', + promise: 'promise' + }, + + className : { + loading : 'loading', + active : 'active' + }, + + selector : { + tabs : '.ui.tab', + ui : '.ui' + } + +}; + +})( jQuery, window, document ); + +/*! + * # Fomantic-UI - Transition + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +$.isFunction = $.isFunction || function(obj) { + return typeof obj === "function" && typeof obj.nodeType !== "number"; +}; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.transition = function() { + var + $allModules = $(this), + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + moduleArguments = arguments, + query = moduleArguments[0], + queryArguments = [].slice.call(arguments, 1), + methodInvoked = (typeof query === 'string'), + + returnedValue + ; + $allModules + .each(function(index) { + var + $module = $(this), + element = this, + + // set at run time + settings, + instance, + + error, + className, + metadata, + animationEnd, + + moduleNamespace, + eventNamespace, + module + ; + + module = { + + initialize: function() { + + // get full settings + settings = module.get.settings.apply(element, moduleArguments); + + // shorthand + className = settings.className; + error = settings.error; + metadata = settings.metadata; + + // define namespace + eventNamespace = '.' + settings.namespace; + moduleNamespace = 'module-' + settings.namespace; + instance = $module.data(moduleNamespace) || module; + + // get vendor specific events + animationEnd = module.get.animationEndEvent(); + + if(methodInvoked) { + methodInvoked = module.invoke(query); + } + + // method not invoked, lets run an animation + if(methodInvoked === false) { + module.verbose('Converted arguments into settings object', settings); + if(settings.interval) { + module.delay(settings.animate); + } + else { + module.animate(); + } + module.instantiate(); + } + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, instance) + ; + }, + + destroy: function() { + module.verbose('Destroying previous module for', element); + $module + .removeData(moduleNamespace) + ; + }, + + refresh: function() { + module.verbose('Refreshing display type on next animation'); + delete module.displayType; + }, + + forceRepaint: function() { + module.verbose('Forcing element repaint'); + var + $parentElement = $module.parent(), + $nextElement = $module.next() + ; + if($nextElement.length === 0) { + $module.detach().appendTo($parentElement); + } + else { + $module.detach().insertBefore($nextElement); + } + }, + + repaint: function() { + module.verbose('Repainting element'); + var + fakeAssignment = element.offsetWidth + ; + }, + + delay: function(interval) { + var + direction = module.get.animationDirection(), + shouldReverse, + delay + ; + if(!direction) { + direction = module.can.transition() + ? module.get.direction() + : 'static' + ; + } + interval = (interval !== undefined) + ? interval + : settings.interval + ; + shouldReverse = (settings.reverse == 'auto' && direction == className.outward); + delay = (shouldReverse || settings.reverse == true) + ? ($allModules.length - index) * settings.interval + : index * settings.interval + ; + module.debug('Delaying animation by', delay); + setTimeout(module.animate, delay); + }, + + animate: function(overrideSettings) { + settings = overrideSettings || settings; + if(!module.is.supported()) { + module.error(error.support); + return false; + } + module.debug('Preparing animation', settings.animation); + if(module.is.animating()) { + if(settings.queue) { + if(!settings.allowRepeats && module.has.direction() && module.is.occurring() && module.queuing !== true) { + module.debug('Animation is currently occurring, preventing queueing same animation', settings.animation); + } + else { + module.queue(settings.animation); + } + return false; + } + else if(!settings.allowRepeats && module.is.occurring()) { + module.debug('Animation is already occurring, will not execute repeated animation', settings.animation); + return false; + } + else { + module.debug('New animation started, completing previous early', settings.animation); + instance.complete(); + } + } + if( module.can.animate() ) { + module.set.animating(settings.animation); + } + else { + module.error(error.noAnimation, settings.animation, element); + } + }, + + reset: function() { + module.debug('Resetting animation to beginning conditions'); + module.remove.animationCallbacks(); + module.restore.conditions(); + module.remove.animating(); + }, + + queue: function(animation) { + module.debug('Queueing animation of', animation); + module.queuing = true; + $module + .one(animationEnd + '.queue' + eventNamespace, function() { + module.queuing = false; + module.repaint(); + module.animate.apply(this, settings); + }) + ; + }, + + complete: function (event) { + if(event && event.target === element) { + event.stopPropagation(); + } + module.debug('Animation complete', settings.animation); + module.remove.completeCallback(); + module.remove.failSafe(); + if(!module.is.looping()) { + if( module.is.outward() ) { + module.verbose('Animation is outward, hiding element'); + module.restore.conditions(); + module.hide(); + } + else if( module.is.inward() ) { + module.verbose('Animation is outward, showing element'); + module.restore.conditions(); + module.show(); + } + else { + module.verbose('Static animation completed'); + module.restore.conditions(); + settings.onComplete.call(element); + } + } + }, + + force: { + visible: function() { + var + style = $module.attr('style'), + userStyle = module.get.userStyle(style), + displayType = module.get.displayType(), + overrideStyle = userStyle + 'display: ' + displayType + ' !important;', + inlineDisplay = $module[0].style.display, + mustStayHidden = !displayType || (inlineDisplay === 'none' && settings.skipInlineHidden) || $module[0].tagName.match(/(script|link|style)/i) + ; + if (mustStayHidden){ + module.remove.transition(); + return false; + } + module.verbose('Overriding default display to show element', displayType); + $module + .attr('style', overrideStyle) + ; + return true; + }, + hidden: function() { + var + style = $module.attr('style'), + currentDisplay = $module.css('display'), + emptyStyle = (style === undefined || style === '') + ; + if(currentDisplay !== 'none' && !module.is.hidden()) { + module.verbose('Overriding default display to hide element'); + $module + .css('display', 'none') + ; + } + else if(emptyStyle) { + $module + .removeAttr('style') + ; + } + } + }, + + has: { + direction: function(animation) { + var + hasDirection = false + ; + animation = animation || settings.animation; + if(typeof animation === 'string') { + animation = animation.split(' '); + $.each(animation, function(index, word){ + if(word === className.inward || word === className.outward) { + hasDirection = true; + } + }); + } + return hasDirection; + }, + inlineDisplay: function() { + var + style = $module.attr('style') || '' + ; + return Array.isArray(style.match(/display.*?;/, '')); + } + }, + + set: { + animating: function(animation) { + // remove previous callbacks + module.remove.completeCallback(); + + // determine exact animation + animation = animation || settings.animation; + var animationClass = module.get.animationClass(animation); + + // save animation class in cache to restore class names + module.save.animation(animationClass); + + if(module.force.visible()) { + module.remove.hidden(); + module.remove.direction(); + + module.start.animation(animationClass); + } + }, + duration: function(animationName, duration) { + duration = duration || settings.duration; + duration = (typeof duration == 'number') + ? duration + 'ms' + : duration + ; + if(duration || duration === 0) { + module.verbose('Setting animation duration', duration); + $module + .css({ + 'animation-duration': duration + }) + ; + } + }, + direction: function(direction) { + direction = direction || module.get.direction(); + if(direction == className.inward) { + module.set.inward(); + } + else { + module.set.outward(); + } + }, + looping: function() { + module.debug('Transition set to loop'); + $module + .addClass(className.looping) + ; + }, + hidden: function() { + $module + .addClass(className.transition) + .addClass(className.hidden) + ; + }, + inward: function() { + module.debug('Setting direction to inward'); + $module + .removeClass(className.outward) + .addClass(className.inward) + ; + }, + outward: function() { + module.debug('Setting direction to outward'); + $module + .removeClass(className.inward) + .addClass(className.outward) + ; + }, + visible: function() { + $module + .addClass(className.transition) + .addClass(className.visible) + ; + } + }, + + start: { + animation: function(animationClass) { + animationClass = animationClass || module.get.animationClass(); + module.debug('Starting tween', animationClass); + $module + .addClass(animationClass) + .one(animationEnd + '.complete' + eventNamespace, module.complete) + ; + if(settings.useFailSafe) { + module.add.failSafe(); + } + module.set.duration(settings.duration); + settings.onStart.call(element); + } + }, + + save: { + animation: function(animation) { + if(!module.cache) { + module.cache = {}; + } + module.cache.animation = animation; + }, + displayType: function(displayType) { + if(displayType !== 'none') { + $module.data(metadata.displayType, displayType); + } + }, + transitionExists: function(animation, exists) { + $.fn.transition.exists[animation] = exists; + module.verbose('Saving existence of transition', animation, exists); + } + }, + + restore: { + conditions: function() { + var + animation = module.get.currentAnimation() + ; + if(animation) { + $module + .removeClass(animation) + ; + module.verbose('Removing animation class', module.cache); + } + module.remove.duration(); + } + }, + + add: { + failSafe: function() { + var + duration = module.get.duration() + ; + module.timer = setTimeout(function() { + $module.triggerHandler(animationEnd); + }, duration + settings.failSafeDelay); + module.verbose('Adding fail safe timer', module.timer); + } + }, + + remove: { + animating: function() { + $module.removeClass(className.animating); + }, + animationCallbacks: function() { + module.remove.queueCallback(); + module.remove.completeCallback(); + }, + queueCallback: function() { + $module.off('.queue' + eventNamespace); + }, + completeCallback: function() { + $module.off('.complete' + eventNamespace); + }, + display: function() { + $module.css('display', ''); + }, + direction: function() { + $module + .removeClass(className.inward) + .removeClass(className.outward) + ; + }, + duration: function() { + $module + .css('animation-duration', '') + ; + }, + failSafe: function() { + module.verbose('Removing fail safe timer', module.timer); + if(module.timer) { + clearTimeout(module.timer); + } + }, + hidden: function() { + $module.removeClass(className.hidden); + }, + visible: function() { + $module.removeClass(className.visible); + }, + looping: function() { + module.debug('Transitions are no longer looping'); + if( module.is.looping() ) { + module.reset(); + $module + .removeClass(className.looping) + ; + } + }, + transition: function() { + $module + .removeClass(className.transition) + .removeClass(className.visible) + .removeClass(className.hidden) + ; + } + }, + get: { + settings: function(animation, duration, onComplete) { + // single settings object + if(typeof animation == 'object') { + return $.extend(true, {}, $.fn.transition.settings, animation); + } + // all arguments provided + else if(typeof onComplete == 'function') { + return $.extend({}, $.fn.transition.settings, { + animation : animation, + onComplete : onComplete, + duration : duration + }); + } + // only duration provided + else if(typeof duration == 'string' || typeof duration == 'number') { + return $.extend({}, $.fn.transition.settings, { + animation : animation, + duration : duration + }); + } + // duration is actually settings object + else if(typeof duration == 'object') { + return $.extend({}, $.fn.transition.settings, duration, { + animation : animation + }); + } + // duration is actually callback + else if(typeof duration == 'function') { + return $.extend({}, $.fn.transition.settings, { + animation : animation, + onComplete : duration + }); + } + // only animation provided + else { + return $.extend({}, $.fn.transition.settings, { + animation : animation + }); + } + }, + animationClass: function(animation) { + var + animationClass = animation || settings.animation, + directionClass = (module.can.transition() && !module.has.direction()) + ? module.get.direction() + ' ' + : '' + ; + return className.animating + ' ' + + className.transition + ' ' + + directionClass + + animationClass + ; + }, + currentAnimation: function() { + return (module.cache && module.cache.animation !== undefined) + ? module.cache.animation + : false + ; + }, + currentDirection: function() { + return module.is.inward() + ? className.inward + : className.outward + ; + }, + direction: function() { + return module.is.hidden() || !module.is.visible() + ? className.inward + : className.outward + ; + }, + animationDirection: function(animation) { + var + direction + ; + animation = animation || settings.animation; + if(typeof animation === 'string') { + animation = animation.split(' '); + // search animation name for out/in class + $.each(animation, function(index, word){ + if(word === className.inward) { + direction = className.inward; + } + else if(word === className.outward) { + direction = className.outward; + } + }); + } + // return found direction + if(direction) { + return direction; + } + return false; + }, + duration: function(duration) { + duration = duration || settings.duration; + if(duration === false) { + duration = $module.css('animation-duration') || 0; + } + return (typeof duration === 'string') + ? (duration.indexOf('ms') > -1) + ? parseFloat(duration) + : parseFloat(duration) * 1000 + : duration + ; + }, + displayType: function(shouldDetermine) { + shouldDetermine = (shouldDetermine !== undefined) + ? shouldDetermine + : true + ; + if(settings.displayType) { + return settings.displayType; + } + if(shouldDetermine && $module.data(metadata.displayType) === undefined) { + var currentDisplay = $module.css('display'); + if(currentDisplay === '' || currentDisplay === 'none'){ + // create fake element to determine display state + module.can.transition(true); + } else { + module.save.displayType(currentDisplay); + } + } + return $module.data(metadata.displayType); + }, + userStyle: function(style) { + style = style || $module.attr('style') || ''; + return style.replace(/display.*?;/, ''); + }, + transitionExists: function(animation) { + return $.fn.transition.exists[animation]; + }, + animationStartEvent: function() { + var + element = document.createElement('div'), + animations = { + 'animation' :'animationstart', + 'OAnimation' :'oAnimationStart', + 'MozAnimation' :'mozAnimationStart', + 'WebkitAnimation' :'webkitAnimationStart' + }, + animation + ; + for(animation in animations){ + if( element.style[animation] !== undefined ){ + return animations[animation]; + } + } + return false; + }, + animationEndEvent: function() { + var + element = document.createElement('div'), + animations = { + 'animation' :'animationend', + 'OAnimation' :'oAnimationEnd', + 'MozAnimation' :'mozAnimationEnd', + 'WebkitAnimation' :'webkitAnimationEnd' + }, + animation + ; + for(animation in animations){ + if( element.style[animation] !== undefined ){ + return animations[animation]; + } + } + return false; + } + + }, + + can: { + transition: function(forced) { + var + animation = settings.animation, + transitionExists = module.get.transitionExists(animation), + displayType = module.get.displayType(false), + elementClass, + tagName, + $clone, + currentAnimation, + inAnimation, + directionExists + ; + if( transitionExists === undefined || forced) { + module.verbose('Determining whether animation exists'); + elementClass = $module.attr('class'); + tagName = $module.prop('tagName'); + + $clone = $('<' + tagName + ' />').addClass( elementClass ).insertAfter($module); + currentAnimation = $clone + .addClass(animation) + .removeClass(className.inward) + .removeClass(className.outward) + .addClass(className.animating) + .addClass(className.transition) + .css('animationName') + ; + inAnimation = $clone + .addClass(className.inward) + .css('animationName') + ; + if(!displayType) { + displayType = $clone + .attr('class', elementClass) + .removeAttr('style') + .removeClass(className.hidden) + .removeClass(className.visible) + .show() + .css('display') + ; + module.verbose('Determining final display state', displayType); + module.save.displayType(displayType); + } + + $clone.remove(); + if(currentAnimation != inAnimation) { + module.debug('Direction exists for animation', animation); + directionExists = true; + } + else if(currentAnimation == 'none' || !currentAnimation) { + module.debug('No animation defined in css', animation); + return; + } + else { + module.debug('Static animation found', animation, displayType); + directionExists = false; + } + module.save.transitionExists(animation, directionExists); + } + return (transitionExists !== undefined) + ? transitionExists + : directionExists + ; + }, + animate: function() { + // can transition does not return a value if animation does not exist + return (module.can.transition() !== undefined); + } + }, + + is: { + animating: function() { + return $module.hasClass(className.animating); + }, + inward: function() { + return $module.hasClass(className.inward); + }, + outward: function() { + return $module.hasClass(className.outward); + }, + looping: function() { + return $module.hasClass(className.looping); + }, + occurring: function(animation) { + animation = animation || settings.animation; + animation = '.' + animation.replace(' ', '.'); + return ( $module.filter(animation).length > 0 ); + }, + visible: function() { + return $module.is(':visible'); + }, + hidden: function() { + return $module.css('visibility') === 'hidden'; + }, + supported: function() { + return(animationEnd !== false); + } + }, + + hide: function() { + module.verbose('Hiding element'); + if( module.is.animating() ) { + module.reset(); + } + element.blur(); // IE will trigger focus change if element is not blurred before hiding + module.remove.display(); + module.remove.visible(); + if($.isFunction(settings.onBeforeHide)){ + settings.onBeforeHide.call(element,function(){ + module.hideNow(); + }); + } else { + module.hideNow(); + } + + }, + + hideNow: function() { + module.set.hidden(); + module.force.hidden(); + settings.onHide.call(element); + settings.onComplete.call(element); + // module.repaint(); + }, + + show: function(display) { + module.verbose('Showing element', display); + if(module.force.visible()) { + module.remove.hidden(); + module.set.visible(); + settings.onShow.call(element); + settings.onComplete.call(element); + // module.repaint(); + } + }, + + toggle: function() { + if( module.is.visible() ) { + module.hide(); + } + else { + module.show(); + } + }, + + stop: function() { + module.debug('Stopping current animation'); + $module.triggerHandler(animationEnd); + }, + + stopAll: function() { + module.debug('Stopping all animation'); + module.remove.queueCallback(); + $module.triggerHandler(animationEnd); + }, + + clear: { + queue: function() { + module.debug('Clearing animation queue'); + module.remove.queueCallback(); + } + }, + + enable: function() { + module.verbose('Starting animation'); + $module.removeClass(className.disabled); + }, + + disable: function() { + module.debug('Stopping animation'); + $module.addClass(className.disabled); + }, + + setting: function(name, value) { + module.debug('Changing setting', name, value); + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + if($.isPlainObject(settings[name])) { + $.extend(true, settings[name], value); + } + else { + settings[name] = value; + } + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.length > 1) { + title += ' ' + '(' + $allModules.length + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + // modified for transition to return invoke success + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + + if(Array.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return (found !== undefined) + ? found + : false + ; + } + }; + module.initialize(); + }) + ; + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +// Records if CSS transition is available +$.fn.transition.exists = {}; + +$.fn.transition.settings = { + + // module info + name : 'Transition', + + // hide all output from this component regardless of other settings + silent : false, + + // debug content outputted to console + debug : false, + + // verbose debug output + verbose : false, + + // performance data output + performance : true, + + // event namespace + namespace : 'transition', + + // delay between animations in group + interval : 0, + + // whether group animations should be reversed + reverse : 'auto', + + // animation callback event + onStart : function() {}, + onComplete : function() {}, + onShow : function() {}, + onHide : function() {}, + + // whether timeout should be used to ensure callback fires in cases animationend does not + useFailSafe : true, + + // delay in ms for fail safe + failSafeDelay : 100, + + // whether EXACT animation can occur twice in a row + allowRepeats : false, + + // Override final display type on visible + displayType : false, + + // animation duration + animation : 'fade', + duration : false, + + // new animations will occur after previous ones + queue : true, + +// whether initially inline hidden objects should be skipped for transition + skipInlineHidden: false, + + metadata : { + displayType: 'display' + }, + + className : { + animating : 'animating', + disabled : 'disabled', + hidden : 'hidden', + inward : 'in', + loading : 'loading', + looping : 'looping', + outward : 'out', + transition : 'transition', + visible : 'visible' + }, + + // possible errors + error: { + noAnimation : 'Element is no longer attached to DOM. Unable to animate. Use silent setting to surpress this warning in production.', + repeated : 'That animation is already occurring, cancelling repeated animation', + method : 'The method you called is not defined', + support : 'This browser does not support CSS animations' + } + +}; + + +})( jQuery, window, document ); diff --git a/web_src/fomantic/build/themes/default/assets/fonts/icons.woff2 b/web_src/fomantic/build/themes/default/assets/fonts/icons.woff2 Binary files differnew file mode 100644 index 0000000000..978a681a10 --- /dev/null +++ b/web_src/fomantic/build/themes/default/assets/fonts/icons.woff2 diff --git a/web_src/fomantic/build/themes/default/assets/fonts/outline-icons.woff2 b/web_src/fomantic/build/themes/default/assets/fonts/outline-icons.woff2 Binary files differnew file mode 100644 index 0000000000..7e0118e526 --- /dev/null +++ b/web_src/fomantic/build/themes/default/assets/fonts/outline-icons.woff2 |