@font-face {
   font-family: "Montserrat";
   font-style: normal;
   font-weight: normal;
   src: url("../fonts/Montserrat-Regular.ttf") format("truetype");
}

@font-face {
   font-family: "Montserrat";
   font-style: normal;
   font-weight: bold;
   src: url("../fonts/Montserrat-Bold.ttf") format("truetype");
}

@font-face {
   font-family: "Montserrat";
   font-style: italic;
   font-weight: normal;
   src: url("../fonts/Montserrat-Italic.ttf") format("truetype");
}

@font-face {
   font-family: "Montserrat";
   font-style: italic;
   font-weight: bold;
   src: url("../fonts/Montserrat-BoldItalic.ttf") format("truetype");
}

@font-face {
   font-family: "Montserrat";
   font-style: normal;
   font-weight: 900;
   src: url("../fonts/Montserrat-ExtraBold.ttf") format("truetype");
}

@font-face {
   font-family: 'koolihoov';
   src: url('../fonts/koolihoov.ttf') format('truetype');
   font-weight: normal;
   font-style: normal;
   font-display: block;
}

@font-face {
   font-family: 'icomoon';
   src:
         url('../fonts/icomoon.ttf?v3cqhn') format('truetype'),
         url('../fonts/icomoon.woff?v3cqhn') format('woff'),
         url('../fonts/icomoon.svg?v3cqhn#icomoon') format('svg');
   font-weight: normal;
   font-style: normal;
   font-display: block;
}

[class^="icon-"], [class*=" icon-"] {
   font-family: 'icomoon' !important;
   speak: never;
   font-style: normal;
   font-weight: normal;
   font-variant: normal;
   text-transform: none;
   line-height: 1;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
}

.icon-edit:before {
   content: "\e902";
}

.icon-add:before {
   content: "\e900";
}

.icon-remove:before {
   content: "\e901";
}

.icon-chart:before {
   content: "\e904";
}

.icon-clock:before {
   content: "\e903";
}

::-webkit-scrollbar {
   width: 10px;
   height: 10px;
}

::-webkit-scrollbar-button:start:decrement, ::-webkit-scrollbar-button:end:increment, ::-webkit-scrollbar-corner {
   display: none;
}

::-webkit-scrollbar-track-piece {
   background-color: transparent;
}

::-webkit-scrollbar-thumb:vertical, ::-webkit-scrollbar-thumb:horizontal {
   border-radius: 5px;
   background-color: #adeded;
}

[class*='cid'] { background-color: #000000; } .category-tile[class*='cid']:hover { background-color: #000000; } [class*='cid'] .bar { background-color: #000000; }

body {
   font-family: 'Montserrat', serif;
   padding: 0;
   font-size: 16px;
   margin: 0 auto;
   max-width: 1100px;
}

header {
   padding: 20px 0;
   position: relative;
   line-height: 50px;
}

.header-title, .header-title:hover, .header-title:visited, .error-title {
   font-weight: 900;
   text-transform: uppercase;
   font-size: 50px;
   color: #000;
   text-decoration: none;
}

.header-login {
   position: absolute;
   right: 60px;
   top: 20px;
}

.header-login img {
   height: 40px;
}

.header-login a {
   text-decoration: none;
   padding-left: 20px;
   color: #000;
}

.error-description, .error-contact {
   display: none;
}

input#login {
   display: none;
}

input#login + label {
   cursor: pointer;
}

input#login + label + div {
   display: none;
}

input#login:checked + label {
   display: none;
}

input#login:checked + label + .login-container {
   display: block;
}

.login-container {
   position: absolute;
   right: 0;
   top: 0;
   border: 1px inset #000;
   border-radius: 4px;
   padding: 10px;
   z-index: 1;
   background: #fff;
}

.login-form-row {
   display: flex;
   margin-bottom: 10px;
}

.login-form-row > * {
   flex: 1;
}

.login-form-row label {
   margin-right: 10px;
   line-height: 35px;
   white-space: nowrap;
}

.login-form-row input {
   width: 200px !important;
}

.login-button {
   float: right;
}

.home-intro {
   line-height: 40px;
   margin: 0 auto;
   max-width: 1100px;
}

.home-intro > :last-child {
   margin-right: 0;
}

.home-intro .tile {
   width: 200px;
   float: left;
   margin-top: 20px;
   margin-right: 24px;
   text-decoration: none;
   font-size: 20px;
   line-height: 36px !important;
}

.home-intro .tile:hover, .home-intro .tile:visited {
   color: #fff;
   text-decoration: none;
}

.home-intro .tile:last-of-type {
   margin-right: 0;
   margin-bottom: 40px;
}

/* Override any CKeditor added <p>'s... */
.home-intro p {
   margin: 0 !important;
   line-height: 36px !important;
   max-width: 100% !important;
}

.home-stats {
   clear: both;
   background: #f3f3f4;
   margin: 0 auto;
   display: inline-block;
   margin-bottom: 40px;
}

.home-stats:after {
   content: "";
   display: table;
   clear: both;
}

.home-stat {
   display: inline-flex;
   flex-direction: column;
   padding: 20px 20px 0 20px;
   width: 205px;
}

.home-stat span:first-child {
   display: inline-block;
   padding: 10px 20px;
   min-width: 155px;
   background: #fff;
   font-size: 50px;
   font-weight: bold;
}

.home-stat span:last-child {
   display: inline-block;
   padding: 10px 20px;
   font-size: 16px;
   font-weight: normal;
}

.sponsor-label {
   text-transform: uppercase;
   font-weight: bold;
   padding-left: 20px;
   margin-bottom: 20px;
}

.sponsor-label:before {
   content: "";
   display: table;
   clear: both;
}

.sponsor-theme {
   background-color: #f3f3f4;
   width: 300px;
   float: left;
   margin-bottom: 20px;
   margin-right: 20px;
   color: #fff;
   font-size: 16px;
   line-height: 24px;
   font-weight: bold;
   text-decoration: none;
}

.f3-password-error {
   background: red;
   color: #fff;
   padding: 5px 10px;
   margin-bottom: 5px;
}

.f3-menu {
   list-style: none;
   display: flex;
   font-size: 18px;
   white-space: nowrap;
   padding: 0;
   margin: 0 0 20px;
}

.f3-menu-item:after {
   display: inline-block;
   margin: 0 20px;
   content: "|";
   font-weight: normal;
}

.f3-menu-item:last-child:after {
   content: none;
}

.f3-menu a {
   text-decoration: none;
   color: #000;
}

.f3-selected-menu-item a {
   font-weight: bold;
}

.f3-default-menu-item a {
   font-weight: normal;
}

.f3-menu a:hover {
}

.f3-sub-menu {
   display: none;
   z-index: 10000;
}

.f3-menu-parent > a:after {
   font-family: icomoon;
   content: "\e906";
   font-size: 80%;
   color: #888;
   padding-left: 10px;
}

.f3-menu-parent:hover .f3-sub-menu {
   display: block;
   position: absolute;
   background: rgba(255,255,255,0.9)
}

.f3-sub-menu .f3-menu-item {
   padding: 10px;
}

.f3-sub-menu .f3-menu-item:after {
   content: none;
}

.page-wrapper {
   max-width: 1100px;
}

.page-wrapper > .f3-item, .page-wrapper > .f3-item-wrapper .f3-item {
   background: #faf8fa;
   box-sizing: border-box;
   padding: 40px 60px;
}

h1, h2, h3 {
   padding: 0;
   margin: 0;
}

h1 {
   font-size: 22px;
}

h2 {
   font-size: 18px;
}

h3 {
   font-size: 16px;
}

body .f3-item p, body .f3-item ol, body .f3-item ul {
   line-height: 160%;
   margin: 24px 0;
   max-width: 85%;
}

.tile {
   border-radius: 4px;
   padding: 20px;
   display: flex;
   flex-direction: column;
   -webkit-user-select: none;
   user-select: none;
}

.tile > * {
   flex: 0;
}

.category-tiles {
   display: flex;
}

.category-tile {
   position: relative;
   color: #fff;
   font-size: 22px;
   font-weight: bold;
   height: 200px;
   cursor: pointer;
   hyphens: none;
}

.big-number {
   font-size: 50px;
   font-weight: bold;
}

.unit {
   font-size: 16px;
   font-weight: normal;
}

.tile .big-number, .tile .unit {
   display: block;
}

.tile .big-number, .tile .question-header + div {
   flex: 1;
   display: flex;
   align-items: flex-end;
   flex-wrap: wrap;
}

.tile .unit {
}

.category-tile .subtitle {
   font-size: 16px;
   font-weight: normal;
   position: absolute;
   right: 20px;
   bottom: 20px;
}

.category-menu-container {
   position: relative;
}

.category-menu {
   list-style: none;
   padding: 0;
   margin: 0;
   display: grid;
   grid-template-columns: 2.5fr 2.5fr 2.5fr 2.5fr;
   grid-gap: 20px;
}

.category-menu-container .scroll-left, .category-menu-container .scroll-right {
   display: none;
   position: absolute;
   font-size: 32px;
   font-weight: bold;
   color: #fff;
   top: 0;
   align-items: center;
   width: 40px;
   height: 140px;
   cursor: pointer;
   z-index: 10;
   background: rgba(0, 0, 0, 0.2);
}

.scroll-left:before {
   content: "‹";
   display: block;
   width: 100%;
   text-align: center;
}

.scroll-right:before {
   content: "›";
   display: block;
   width: 100%;
   text-align: center;
}

.left.category-menu-container .scroll-left {
   display: flex;
   left: 0;
}

.right.category-menu-container .scroll-right {
   display: flex;
   right: 0;
}

.category-items > li {
   display: none;
}

.category-menu[data-category] {
   display: block;
   white-space: nowrap;
   overflow: auto;
   overflow-y: hidden;
   height: 165px;
   width: 100%;
   position: relative;
}

.category-menu[data-category] li {
   display: inline-block;
}

.category-menu[data-category] .category-tile, .invite-category .category-tile {
   width: 160px;
   height: 120px;
   font-size: 16px;
   padding: 10px;
   border-radius: 0;
   margin-right: 10px;
   margin-bottom: 0;
}

.category-menu[data-category] .category-tile {
   white-space: break-spaces;
}

.invite-category .category-tile {
   margin-top: 10px;
}

.category-menu[data-category] li:last-child .category-tile {
   margin-right: 0;
}

.chart-summary .big-number {
   font-size: 40px;
}

.category-menu[data-category] .label {
   display: -webkit-box;
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 3;
   overflow: hidden;
   text-overflow: ellipsis;
   min-height: 60px;
   position: absolute;
}

.category-menu[data-category] .big-number {
   font-size: 40px;
   padding-bottom: 10px;
}

.category-menu[data-category] .unit {
   font-size: 13px;
   position: absolute;
   bottom: 8px;
   left: 10px;
}

.invite-category .category-tile .big-number {
   font-size: 40px;
   padding-bottom: 10px;
}

.invite-category .category-tile .unit {
   font-size: 13px;
   position: absolute;
   bottom: 8px;
   left: 10px;
}

.category-menu[data-category] .category-tile .subtitle {
   font-size: 13px;
   right: 8px;
   bottom: 8px;
}

.category-items li.opened {
   display: block;
}

.category-items {
   padding: 0;
   margin: 0;
   list-style: none;
   margin-top: -25px;
   position: relative;
}

.category-items > li {
   margin-top: 10px;
   padding: 40px 60px;
   color: #fff;
}

.category-header, .back.question-header {
   font-size: 26px;
   font-weight: bold;
   margin-bottom: 20px;
   position: relative;
   color: #fff;
}

.category-header:before, .back.question-header:before {
   content: "←";
   font-size: 32px;
   position: absolute;
   cursor: pointer;
   top: -5px;
   left: -30px;
}

.category-description {
   font-size: 18px;
   font-weight: bold;
   margin-bottom: 40px;
   line-height: 34px;
   max-width: 85%;
}

.category-background, .question-background {
   font-size: 18px;
   line-height: 34px;
   background: #fff !important;
   color: #000;
   padding: 10px calc(15% + 100px) 10px 60px;
   margin: 20px -60px 40px -60px;
   height: 100%;
}

.category-background a, .question-background a {
   color: #000 !important;
   text-decoration: none;
}

.category-background font {
   color: inherit;
}

.column-2 {
   display: flex;
   flex-direction: row;
}

.question-description {
   max-width: 85%;
   font-size: 18px;
   font-weight: bold;
   line-height: 34px;
   color: #fff;
   padding: 0 20px;
   margin-top: 30px;
}

.category-questions {
   margin: 0;
   padding: 0 20px 0 0;
   list-style: none;
   display: grid;
   grid-template-columns: 3.3fr 3.3fr 3.3fr;
   grid-gap: 20px;
}

.category-questions > li {
   color: #000;
}

.category-questions > li {
   padding: 20px;
}

.question {
   cursor: pointer;
   background: #fff;
   font-size: 18px;
   font-weight: normal;
   -webkit-user-select: none;
   user-select: none;
}

.concept.question {
   background: inherit;
   margin-bottom: 70px;
}

li.question {
   min-height: 180px;
}

.chart-area {
   display: none;
   font-size: 18px;
   cursor: default;
}

.chart-filters {
   position: relative;
}

.chart-filters:after {
   display: block;
   width: 100%;
   content: attr(data-legend);
   font-weight: bold;
   color: #fff;
}

.opened.chart-summary + .chart-area {
   display: block;
   padding: 40px 60px;
   position: absolute;
   top: 0;
   right: 0;
   left: 0;
   bottom: 0;
}

.chart-container {
   flex: 1;
   background: #fff;
   padding: 30px 40px;
   margin-top: 30px;
}

div.filter {
   display: flex;
   margin-bottom: 10px;
}

input[type="checkbox"] + label + .filters {
   display: none;
}

.bar-group, .bar-header {
   width: calc(100% - 60px);
   margin: 15px 5px;
}

.bar-container, .bar-header {
   display: flex;
}

.bar-group .bar-container + .bar-container {
   margin-top: 5px;
}

.bar-group .bar-container + .highlight.bar-container label:before {
   content: "";
   display: inline-block;
   width: 20px;
}

.highlight.bar-container label {
   color: transparent;
}

.bar-header {
   margin: 10px 5px 40px;
}

.bar-header label {
   font-weight: bold;
}

.bar-header span {
   font-weight: normal;
   font-style: italic;
   position: absolute;
   right: 20px;
}

.bar-container > *, .bar-header > * {
   flex: 1;
}

.highlight.bar-container, .highlight.bar {
   font-weight: bold;
}

.highlight.bar {
   margin-top: 5px;
}

.bar {
   position: relative;
   height: 30px;
   width: 0;
   transition-delay: 1s;
   transition: width 0.5s linear;
}

.highlight .bar, .highlight.bar {
   background: #bd2025 !important;
}

.bar:after {
   content: attr(data-label);
   position: absolute;
   left: calc(100% + 15px);
   line-height: 30px;
}

.filter > label {
   background: #fff;
   font-size: 18px;
   border-radius: 4px / 8px;
   padding: 10px 20px;
   margin-right: 10px;
   font-weight: bold;
   white-space: nowrap;
}

.filter > label.compare {
   background: #b62025;
   color: #fff;
   border-radius: 0;
}

.filter > label.reset {
   background: transparent;
   color: #000;
   cursor: pointer;
   padding: 10px 0 10px;
}

.filter > label span {
   cursor: pointer;
}

.filter > input:checked + label {
   background: #000;
   color: #fff;
}

select + input[id^="o-"], .filter > input[type="radio"], input.filter-toggle {
   display: none;
}

input[type="checkbox"] + label + .filters {
   display: none;
}

input[type="checkbox"]:checked + label + .filters {
   display: block;
   position: absolute;
   margin-top: 15px;
   z-index: 1;
   padding: 30px 20px 20px;
   margin-left: -20px;
   border: 1px inset #000;
   max-height: 400px;
   overflow: auto;
   border-radius: 4px;
}

input[type="checkbox"]:checked + label + .filters:after {
   position: absolute;
   top: 5px;
   right: 10px;
   cursor: pointer;
   content: "✖";
}

[data-filtered]:after {
   content: " (" attr(data-filtered) ")";
}

[data-count]:after {
   content: " (" attr(data-count) ")";
   font-weight: normal;
   font-style: italic;
}

.bar-container [data-count]:after {
   content: attr(data-count);
   position: absolute;
   right: 20px;
   top: 4px;
   color: #000;
}

.bar-container label, .bar-header label:first-of-type {
   padding-right: 50px;
}

.readonly button[type="submit"] {
   display: none;
}

.BOOLEAN.answer .nullable li:last-child > label:before, .RANGE.answer .nullable li:last-child > label:after {
   content: none;
}

ul.filters {
   list-style: none;
   padding: 0;
   margin: 0;
   background: #fff;
   color: #000;
}

ul.filters ul.filters {
   margin-left: 40px;
}

ul.filters li {
   font-weight: normal;
   padding: 5px 0;
}

ul.filters input {
   display: none;
}

ul.filters input + label {
   position: relative;
   padding-left: 30px;
   cursor: pointer;
}

ul.filters input + label:before {
   content: "";
   top: 0;
   left: 0;
   position: absolute;
   display: inline-block;
   width: 16px;
   height: 16px;
   border-radius: 50%;
   border: 2px solid #000;
}

ul.filters input:checked + label:after {
   background-color: #000;
   content: "";
   position: absolute;
   top: 4px;
   left: 4px;
   display: inline-block;
   width: 12px;
   height: 12px;
   border-radius: 50%;
}

.school-classes {
   padding: 0 20px;
}

.school-classes + h1 {
   padding-top: 50px;
}

.school-class {
   position: relative;
   display: inline-block;
   background: #b62025;
   color: #fff;
   border: 3px solid #b62025;
   padding: 2px 7px;
   font-size: 18px;
   font-weight: bold;
   margin: 10px 10px 10px 0;
}

.school-class:hover, .selected.school-class {
   border-color: #b62025;
   background: #fff;
}

.school-class a {
   color: #fff;
   text-decoration: none;
}

.school-class:hover a, .selected.school-class a {
   color: #b62025;
}

.preset-class-list .school-class {
   padding-right: 37px;
}

.preset-class-list a {
   position: relative;
}

.preset-class-list a:before {
   font-family: icomoon;
   font-weight: normal;
   position: absolute;
   right: -32px;
   font-size: 16px;
   top: 3px;
}

.preset-class-list a:after {
   content: "";
   position: absolute;
   top: -1px;
   right: -10px;
   width: 2px;
   background-color: #fff;
   height: 110%;
}

.preset-label a {
   text-decoration: none;
}

.preset-label a:before {
   position: relative;
   right: 0;
   top: 0;
}

[data-concept="preset"] h1 {
    margin-bottom: 10px;
}

[data-concept="preset"] h1:first-letter {
   text-transform: uppercase;
}

.school-class.DRAFT a:before {
   content: "\e902";
}

.school-class.OPEN a:before {
   content: "\e903";
}

.school-class.CLOSED a:before {
   content: "\e904";
}

.class-action, .preset-action {
   opacity: 0.5;
   padding-left: 10px;
   position: relative;
}

a:first-child + .class-action {
   padding-left: 20px;
}

a:first-child + .class-action:after {
   content: "";
   position: absolute;
   top: 0;
   left: 10px;
   width: 2px;
   background-color: #fff;
   height: 110%;
}

.class-action:hover, .preset-action:hover {
   opacity: 1;
}

.preset-action {
   color: #aeaeae;
}

.class-invites {
   padding-left: 40px;
   padding-bottom: 50px;
}

.class-invite, .class-header {
   display: flex;
   flex-direction: row;
   padding: 10px 0;
}

.class-invite label, .class-header label {
   flex: 1;
   line-height: 40px;
   white-space: nowrap;
}

.invite-header {
   font-weight: bold;
   margin-bottom: 20px;
   font-size: 20px;
}

input[id^="th-"] {
   display: none;
}

.toggle-header {
   display: block;
   padding: 20px;
   margin: 0;
   margin-left: -40px;
   border-top: 10px solid #fff;
   width: calc(100% + 20px);
   padding-left: 40px;
   cursor: pointer;
}

.toggle-header div:after {
   transform: rotate(-90deg) translateY(10px);
   content: "‹";
   display: inline-block;
}

input + .toggle-header + * {
   display: none;
}

input:checked + .toggle-header + * {
   display: block;
}

.invite-category.OPEN > .toggle-header {
   display: none;
}

.invite-category.OPEN > .toggle-header + * {
   display: block;
}

input:checked + .toggle-header div:after {
   transform: rotate(90deg) translateY(-15px);
}

.invite-category .question {
   padding: 20px 0;
   border-top: 1px solid #eee;
}

.invite-category .category-header + .question {
   border-top: none;
}

.invite-category .question-description {
   font-style: italic;
   margin: 20px 0;
}

.invite-intro {
   width: calc(100% - 40px);
}

textarea.invite-intro {
   height: 100px;
}

div.invite-intro {
   white-space: pre-line;
   margin-bottom: 20px;
   font-size: 18px;
}

select, input[type="text"], input[type="number"], input[type="password"], input[type="date"], input[type="email"], textarea, var.f3-var {
   border: 2px solid #000;
   border-radius: 4px / 8px;
   padding: 10px 20px;
   width: calc(40% - 40px);
}

.f3-menu-editor .f3-var {
   width: 100%;
}

.nullable li.selected > label {
   opacity: 1;
}

.BOOLEAN.answer li:last-child > input + label, .RANGE.answer li:last-child > input + label {
   padding-left: 0;
}

.answer ul {
   list-style: none;
   padding: 0;
   margin: 0;
}

.question label {
   position: relative;
}

form .question input + label {
   left: 30px;
   display: inline-block;
   width: calc(100% - 30px);
   line-height: 30px;
   padding: 5px 0;
}

.answer label {
   display: block;
}

.question input[type="radio"], .question input[type="checkbox"] {
   display: none;
}

form .question input + label:before {
   content: "";
   top: 10px;
   left: -25px;
   position: absolute;
   display: inline-block;
   width: 16px;
   height: 16px;
   border-radius: 50%;
   border: 2px solid #000;
}

form .question input:checked + label:after {
   background-color: #000;
   content: "";
   position: absolute;
   top: 14px;
   left: -21px;
   display: inline-block;
   width: 12px;
   height: 12px;
   border-radius: 50%;
}

.point-label {
   display: flex;
   flex-wrap: wrap;
   margin-bottom: 10px;
}

.point-label > * {
   white-space: nowrap;
}

.point-label :first-child {
   flex: 2;
   line-height: 40px;
}

.point-label :last-child {
   margin-left: auto;
}

form .question .point-button {
   width: 30px;
   height: 30px;
   min-width: 30px;
   border: 2px solid #000;
   border-radius: 4px / 8px;
   margin: 5px;
   padding: 0;
   left: 0;
}

form .question .point-button:before, form .question .point-button:after {
   content: none !important;
}

.incomplete :checked + .point-button {
   background: #000 !important;
}

.question-help {
   font-style: italic;
   margin: 10px 0;
   font-size: 15px;
}

.chart-area label.filter {
   margin-left: 10px;
   padding: 0;
}

.chart-area .filter label:before {
   content: none;
}

.chart-area .filter .filters label:before {
   content: "";
}

.chart-area label.filter:before {
   content: "\e900";
   font-family: koolihoov;
   color: #000;
   position: relative;
   top: 1px;
   border: none;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
   cursor: pointer;
}

.chart-area input:checked + label.filter:after {
   content: none;
}

input:checked + label label.filter:before {
   color: #fff;
}

label.filter[data-filtered]:before {
   color: red !important;
}

.filter .sub {
   display: none;
}

.filtered.filter .sub {
   display: inline;
}

.filtered.filter .all {
   display: none;
}

.readonly input, .readonly select, .readonly textarea, .readonly input + label {
   pointer-events: none;
   opacity: 0.5;
}

.disabled {
   opacity: 0.5;
   pointer-events: none;
}

.nullable > li:last-child label {
   padding-top: 0;
   pointer-events: none;
}

.nullable .selected label, .nullable > li:last-child label > * {
   pointer-events: all !important;
}

[data-dimension="question-nullable"] .select-element[data-value=""] span:before {
   content: none;
}

.answer {
   margin-top: 20px;
}

.BOOLEAN.answer .nullable > li:last-child input + label:before, .RANGE.answer .nullable > li:last-child input + label:before  {
   top: 0;
}

.BOOLEAN.answer .nullable > li:last-child input + label:after, .RANGE.answer .nullable > li:last-child input + label:after {
   top: 4px;
}

.answer .unit:before {
   content: " ";
}

.answer .unit {
   text-transform: lowercase;
}

#invite form {
   margin-bottom: 200px;
}

.buttons {
   position: fixed;
   bottom: 0;
   left: 0;
   right: 0;
   background: #fff;
   box-shadow: 0 1px 4px rgba(0,0,0,0.8);
   padding: 20px;
   text-align: right;
}

.buttons > div {
   max-width: 1100px;
   margin: 0 auto;
}

button, input[type="submit"], .button, .f3-var {
   display: inline-block;
   border: 2px solid #000;
   background: #fff;
   border-radius: 4px / 8px;
   color: #000;
   cursor: pointer;
   padding: 10px 20px;
}

button, .button {
   user-select: none;
}

.class-button {
   background: #cecece;
   border: 3px solid #cecece;
   color: #fff;
   font-weight: bold;
   cursor: pointer;
   padding: 3px 7px;
   text-decoration: none;
   font-size: 18px;
   margin: 10px 10px 10px 0;
   display: inline-block;
}

.class-button:first-child {
   margin-left: 0;
}

.class-button:hover {
   color: #000;
   border-color: #000;
   background-color: #fff;
}

.hidden.f3-var {
   display: none;
}

.f3-var input {
   padding: 0;
   width: 100%;
   border: none;
}

.f3-active.f3-select {
   min-height: 40px;
}

button:hover, input[type="submit"]:hover, .button:hover {
   background: #000;
   color: #fff;
}

a.button, span.button {
   margin-right: 20px;
   text-decoration: none;
   white-space: nowrap;
   font-weight: normal;
}

.form-row a.button {
   margin-left: 20px;
   margin-right: 0;
}

.buttons .qr {
   float: right;
   border: none;
}

.qr img {
   height: 150px;
}

.invite-share {
   text-align: left;
}

.invite-share .button {
   margin-bottom: 10px;
}

.invite-date {
   text-align: left;
}

.invite-date input {
   margin-left: 20px;
   margin-bottom: 20px;
   width: 200px;
}

input[type="range"] + .value {
   position: relative;
   top: -4px;
   padding-left: 20px;
}

input[type="range"] + .value + .unit {
   position: relative;
   top: -4px;
}

.select-container {
   margin-bottom: 10px;
   display: flex;
}

.select-container select {
   flex: 1;
   max-width: 50%;
}

.select-container input {
   margin-left: 20px;
}

::placeholder {
   font-style: italic;
}

:focus {
   outline: none;
}

#invite .f3-website-submit {
   Xdisplay: none;
}

.form-row {
   display: flex;
   flex-wrap: wrap;
   margin-bottom: 10px;
}

.form-row label {
   width: 20%;
   line-height: 45px;
}

label.inactive {
   opacity: 0.5;
}

form[data-concept] {
   background: #f8f8f8;
   padding: 40px;
   margin-bottom: 60px;
}

.form-row .f3-var {
   width: 200px;
   flex: 1;
   font-weight: bold;
}

.f3-var[data-dimension*="text"], .form-row optgroup .f3-var {
   font-weight: normal;
}

input#f3-menu, input#f3-menu + label {
   display: none;
}

.select-answers {
   display: none;
}

[data-value="SELECT"] + .select-answers, [data-value="POINTS"] + .select-answers {
   display: flex;
   margin-top: 10px;
   flex-basis: 100%;
}

.select-answers > div {
   flex: 1;
}

.select-answers textarea {
   width: calc(100% - 44px);
   height: 200px;
}

.new-concept {
   float: right;
}

.f3-concept-search [data-role="results"] {
   margin-top: 20px;
}

.search-result {
   clear: right;
   display: flex;
   flex-direction: row;
   padding: 10px 20px;
}

.search-result:nth-child(2n+1) {
   background: #f8f8f8;
}

.search-result label {
   flex: 1;
   line-height: 40px;
}

.search-result .button:last-child {
   margin-right: 0;
}

.select-wrapper.f3-focussed {
   margin-top: 50px;
}

.f3-focussed {
   z-index: 1;
}

.concept {
   padding: 0 20px;
}

#submit-invite:fullscreen, .fullscreen #submit-invite {
   background: #fff;
   padding: 20px;
   overflow: auto;
}

.concept .category-question, .concept .question-constraint {
   background: #fff;
   margin: 10px 0;
   padding: 5px 10px;
   cursor: grab;
   border: 1px solid transparent;
   display: flex;
   justify-content: space-between;
   box-shadow: none;
}

.concept .category-question {
   margin-left: 20%;
}

.concept .category-question a {
   flex: 0;
   padding-left: 10px;
}

.concept .category-question span {
   flex: 1;
}

.link-question:visited, .unlink-question:visited {
   color: blue;
}

.category-question a, .question-constraint a {
   align-self: center;
   white-space: nowrap;
}

[data-role="ordered"] .f3-var {
   width: auto;
   font-weight: normal;
}

.concept .new-question {
   min-height: 1.3em;
   cursor: auto;
}

.link-question select {
   width: 100%;
   margin-right: 20px;
   padding: 0;
   border-color: #fff;
   border-width: 1px;
   margin-left: -5px;
}

.link-question:hover select {
   border-color: #aaa;
}

.concept .f3-dragging {
   border-color: #000;
   margin-left: calc(20% + 20px);
}

.table-content {
   flex-grow: 1;
}

.translations {
   margin-bottom: 100px;
   width: 100%;
}

.translations > div[class^="cat"] {
   padding: 20px;
   margin-bottom: 20px;
}

.translations input {
   display: block;
   width: 100%;
   box-sizing: border-box;
   margin: 10px 0;
   font-weight: bold;
   padding: 10px;
}

.translations [data-level="2"] {
   margin-left: 50px;
   width: calc(100% - 50px);
   font-weight: normal;
}

.translations [data-level="3"] {
   margin-left: 100px;
   width: calc(100% - 100px);
   font-weight: normal;
}

.translations input:placeholder-shown {
   border: 2px solid red;
}

.translations input:-ms-input-placeholder {
   border: 2px solid red;
}

.translation-page .f3-item-wrapper {
   margin: 30px 0;
}

.translation-item {
   background: #f8f8f8;
   padding: 10px 30px;
}

.translation-item + h1 {
   margin-top: 30px;
}

.compare-selector {
   text-align: right;
}

.compare-selector select {
   width: 100px;
}

.user-schools {
   display: flex;
   flex-direction: column;
   flex: 1;
}

.form-row .user-schools .f3-var {
   width: auto;
   margin-bottom: 10px;
}

.cke_widget_drag_handler_container {
   display: none;
}

.preset {
   margin-bottom: 20px;
}

.presets-page h1 {
   font-size: 18px;
}

.presets-list .preset {
   line-height: 160%;
}

.presets-list .preset > div, .presets-list .preset > ol  {
   max-width: 75%;
}

.presets-list h1 {
   margin-bottom: 10px;
}

.presets-list ol {
   margin-top: 0.5em;
   margin-bottom: 2em;
}

.presets-list .button {
   float: right;
}

.preset-questions {
   width: 80%;
   display: flex;
   flex-direction: column;
}

.preset-questions select {
   width: 100%;
   font-style: italic;
}

.preset-questions select option {
   font-style: normal;
}

.preset-questions select :first-child {
   font-style: italic;
   opacity: 0.6;
}

.preset-category {
   font-weight: bold;
   font-size: 20px;
   margin: 5px 0;
}

.preset-theme {
   background: #f3f3f4;
   padding: 10px;
   margin-bottom: 20px;
}

.highlight.preset-theme {
   animation-duration: 2.5s;
   animation-name: darken;
}

@keyframes darken {
   from {
      filter: brightness(100%);
   }

   20% {
      filter: brightness(90%);
   }

   to {
      filter: brightness(100%);
   }
}

.theme-header {
   display: flex;
   align-items: center;
}

.theme-details {
   padding: 10px 0;
   display: none;
}

.theme-description {
   margin: 10px 5px 30px;
}

.opened.theme-header + .theme-details {
   display: block;
}

.opened.theme-header .button {
   display: none;
}

.theme-header img, .theme-header .q3 {
   width: 100px;
   height: 50px;
   margin-right: 20px;
   object-fit: contain;
}

.theme-header .q3 > div {
   width: 30px;
   display: inline-block;
   height: 30px;
   margin-top: 10px;
   margin-right: 3px;
}

.theme-header h1 {
   flex: 1;
   margin-bottom: 0;
}

.theme-header a.button, .theme-collapse.button {
   margin-right: 10px;
}

.theme-presets .button {
   display: none;
}

.theme-presets .opened .button {
   display: block;
}

.theme-details .preset {
   margin-bottom: 5px;
}

.theme-details .opened.preset {
   background: #ebeced;
}

.theme-presets {
   margin: 10px 0 0 -10px;
}

.theme-details .preset > h1 {
   background-color: #fff;
   padding: 10px;
   cursor: pointer;
}

.theme-details .opened.preset > h1, .theme-details .preset > h1:hover {
   background-color: #ebeced;
}

.theme-details .preset > div, .theme-details .preset > ol {
   display: none;
}

.theme-details .opened.preset > div, .theme-details .opened.preset > ol {
   display: block;
   margin: 0 10px;
}

.theme-details .opened.preset > ol {
   padding-bottom: 20px;
}

.feedback-button {
   background-color: #00aeef;
   padding: 10px 20px;
   color: #fff;
   font-weight: bold;
   position: relative;
   top: -12px;
   margin-left: 20px;
   text-decoration: none;
}

.category-header > div {
   display: inline;
}

.category-header[data-count]:after {
   padding-left: 30px;
   font-size: 16px;
   position: relative;
   top: -4px;
}

[lang="en_US"] .category-header[data-count]:after {
   content: '(' attr(data-count) ' selected)';
}

[lang="nl_NL"] .category-header[data-count]:after {
   content: '(' attr(data-count) ' geselecteerd)';
}

.f3-var[data-editor*="koolihoov"]:not([data-value]):before {
   content: "(type to search)";
   color: #ccc;
   font-weight: normal;
   position: absolute;
   right: 20px;
   font-style: italic;
}

.question-info {
   display: inline-block;
   margin-left: 10px;
   width: 16px;
   height: 16px;
   border-radius: 50%;
   color: #ccc;
   border: 2px solid #ccc;
   font-style: italic;
   text-align: center;
   font-size: 12px;
   line-height: 16px;
   font-family: Georgia;
   position: relative;
   top: -2px;
}

.question-info:after {
   text-align: left;
   white-space: pre-wrap;
}

.question-info:hover {
   background: #ccc;
   color: #fff;
}

header select {
   width: auto;
   padding: 10px 0;
   border: none;
}

.header-language {
   position: absolute;
   right: 0px;
   top: 20px;
}

.register-page .click-to-toggle {
   background: #00aaba;
   border-radius: 10px;
   padding: 20px;
   margin-top: 20px;
   color: #fff;
}

.register-page h1 {
   display: block !important;
   pointer-events: none;
}

.register-page input {
   flex: 1;
   color: #000;
}

.click-to-toggle {
   cursor: pointer;
}

.register-page .toggled h1 {
   margin-bottom: 20px;
}

.click-to-toggle > * {
   display: none;
}

.toggled.click-to-toggle {
}

.toggled.click-to-toggle > * {
   display: flex;
}

.toggled .school-details {
   margin-top: 20px;
   display: block;
}

.school-details > * {
   display: flex;
}

.preset-class-list {
   font-size: 18px;
}

.preset-class-list .new-class {
   display: inline-block;
   height: 20px;
   position: relative;
}

.preset-class-list .preset-label {
   vertical-align: top;
   line-height: 30px;
   padding: 10px 10px 0 0;
}

.class-dropdown {
   display: none;
   z-index: 1;
   background: #fff;
   border: 3px solid #000;
}

.class-dropdown > * {
   color: #000;
   text-decoration: none;
   display: block;
   white-space: nowrap;
   padding: 3px;
}

.class-dropdown > div {
   cursor: default;
}

.class-dropdown a:hover {
   color: #fff;
   background-color: #b62025;
}

.new-class:hover .class-dropdown {
   display: block;
   position: absolute;
   top: -3px;
   left: -3px;
   min-width: 135px;
   margin-top: -1px;
}

.class-dropdown :only-child:after {
   display: block;
   padding: 5px;
   color: #ccc;
   white-space: nowrap;
}

[lang^='nl'] .class-dropdown :only-child:after {
   content: "geen huidige klassen";
}

[lang^='en'] .class-dropdown :only-child:after {
   content: "no current classes";
}

.DRAFT.invite-category {
   display: grid;
   grid-template-columns: 140px;
   grid-gap: 10px;
}

.DRAFT.invite-category .invite-question {
   order: 1;
   grid-column-start: 1;
   grid-column-end: 10;
   visibility: hidden;
   height: 0;
   list-style-type: decimal;
}

.DRAFT.invite-category .category-tile > * {
   pointer-events: none;
}

.DRAFT.invite-category .toggled.category-tile + .invite-question {
   visibility: visible;
   padding: 30px 30px 30px 50px;
   height: auto;
}

.DRAFT.invite-category .question {
   padding: 5px 0;
   border: none;
   display: list-item;
   background: initial;
   color: #fff;
}

[data-concept="preset"] [data-name="label"].f3-active:not([data-value]):before {
   content: none;
}

.form-row .color-swatch {
   width: 25px;
   flex: 0;
   margin-left: 5px;
   border-radius: 8px;
}

.color-swatch input, .logo input {
   height: 0;
   opacity: 0;
}

.logo[data-concept-name="sponsor"] {
   width: 200px;
   height: 100px;
   float: right;
   margin-left: 10px;
   border: 1px solid #ccc;
   padding: 0;
   text-align: center;
   position: relative;
}

.logo[data-concept-name="sponsor"]:before {
   content: "(logo)";
   position: absolute;
   top: 40%;
   left: 0;
   right: 0;
   color: #ccc;
   text-align: center;
}

[data-concept="sponsor"] .form-row:nth-child(n+4) {
   margin-right: 210px;
}

.logo img {
   max-width: 100%;
   max-height: 100%;
   pointer-events: none;
   position: relative;
}

.logo-small {
   display: inline-block;
   width: 80px;
   height: 40px;
   object-fit: contain;
   margin-left: 10px;
   vertical-align: middle;
}

@media screen and (max-width: 1180px) {
   .toggle-header {
      width: auto;
      margin-left: 0;
      padding-left: 20px;
   }

   .page-wrapper {
      padding: 0 20px;
   }

   .page-wrapper > .f3-item, .page-wrapper > .f3-item-wrapper .f3-item {
      margin-left: -20px;
      margin-right: -20px;
   }
}

@media screen and (max-width: 1100px) {
   .category-menu {
      grid-template-columns: 3.3fr 3.3fr 3.3fr;
   }

   .category-questions {
      grid-template-columns: 5fr 5fr;
   }

   .home-intro, header, .f3-menu, .category-menu-container, .home-sponsors {
      padding-left: 20px;
      padding-right: 20px;
   }

   .preset-class-header, .preset-class-list {
      margin-left: 20px;
   }

   .item-opened.category-menu-container {
      padding-left: 0;
      padding-right: 0;
   }

   .invite-header {
      padding: 0 20px;
    }

    .invite-question {
       padding: 0 20px;
    }

   .invite-intro {
      width: calc(100% - 120px);
      margin: 0 20px;
   }

   .presets-list {
      padding: 0 20px;
   }

   .select-container select {
      max-width: 60%;
   }

   .header-language {
      right: 10px;
   }

   .sponsor-theme {
      width: calc(50% - 60px);
   }
}

@media screen and (max-width: 980px) {
   .home-stat {
      width: calc(50% - 40px);
   }

   .category-background, .question-background {
      padding-right: 15%;
   }
}

@media screen and (max-width: 900px) {
   .select-container select {
      max-width: none;
   }

   .home-intro .tile {
      width: calc(50% - 50px);
   }

   .home-intro > :nth-child(2n) {
      margin-right: 0;
   }
}

@media screen and (max-width: 800px) {
   header {
      padding: 5px 10px;
      height: 70px;
   }

   .fixed-header header {
      height: 70px;
   }

   .header-title {
      font-size: 40px !important;
      padding-left: 40px;
   }

   .header-login {
      right: 70px;
      top: 35px;
   }

   .header-language {
      top: 35px;
   }

   .home-intro {
      padding: 20px;
   }

   .home-intro .tile {
      width: calc(100% - 40px);
      height: auto;
   }

   .category-menu {
      grid-template-columns: 5fr 5fr;
   }

   input#f3-menu + label {
      display: block;
      background: #000;
      height: 4px;
      position: absolute;
      width: 20px;
      left: 15px;
      top: 27px;
   }

   input#f3-menu + label:before, input#f3-menu + label:after {
      position: absolute;
      display: block;
      content: "";
      width: 20px;
      height: 4px;
      left: 0;
      background: #000;
   }

   input#f3-menu + label:before {
      top: -8px;
   }

   input#f3-menu + label:after {
      top: 8px;
   }

   input#f3-menu:checked + label {
      transform: rotate(45deg);
      transform-origin: 50% 50%;
   }

   input#f3-menu:checked + label:before {
      transform-origin: 50% 50%;
      transform: rotate(-90deg) translate(-8px,0px);
   }

   input#f3-menu:checked + label:after {
      content: none;
   }

   .f3-menu {
      display: none;
   }

   input:checked + label + .f3-menu {
      display: block;
      position: fixed;
      top: 50px;
      left: 0;
      background: #fff;
      height: 100%;
      width: 100%;
      z-index: 10;
   }

   .f3-menu-item:after {
      content: "";
   }

   .f3-menu-item {
      font-weight: bold;
      font-size: 24px;
      padding: 10px 20px;
   }

   .f3-default-menu-item a {
      font-weight: bold;
   }

   .category-menu-container {
      padding: 0 20px;
      margin-bottom: 50px;
      width: calc(100% - 60px);
   }

   .category-tile {
      height: auto;
   }

   .fixed-header header {
      position: fixed;
      top: 0;
      width: 100%;
      z-index: 1;
      background: #fff;
      box-shadow: 0 1px 4px rgba(0,0,0,0.8);
      height: 50px;
   }

   .fixed-header .header-login {
      right: 30px;
   }

   .fixed-header input#f3-menu + label {
      position: fixed;
      top: 27px;
      z-index: 2;
   }

   .invite-category {
      padding: 0 20px;
   }

   .item-opened.category-menu-container {
      display: none;
   }

   .opened.chart-summary + .chart-area {
      padding: 20px;
   }

   .column-2 {
      display: block;
   }

   .chart-container {
      padding: 10px;
   }

   .question-header.back {
      margin-left: 30px;
   }

   .tile .question-header + .chart-filters {
      display: block;
   }

   div.filter {
      display: inline-block;
      line-height: 50px;
      margin-bottom: 0;
   }

   .tile .question-header + .chart-filters {
      display: block;
   }

   input[type="checkbox"]:checked + label + .filters {
      position: fixed;
      top: 40px;
      left: 20px;
      max-height: none;
      bottom: 0;
      border: none;
      right: 0;
      border-radius: 0;
      padding: 20px;
      display: block;
   }

   ul.filters li {
      line-height: 25px;
   }

   .invite-header {
      position: relative;
      padding-left: 20px;
   }

   body .f3-item p {
      max-width: 100%;
   }

   .form-row label {
      width: 100%;
      line-height: 30px;
   }

   .form-row::before {
      content: '';
      width: 100%;
      order: 1;
   }

   .form-row a.button {
      margin-left: auto;
      margin-top: 10px;
      order: 2;
   }

   .preset-class-list {
      display: block;
   }

   .preset-label, .preset-classes {
      display: block;
   }

   .preset-classes .school-class:first-of-type {
      margin-left: 0;
   }
}

@media screen and (max-width: 720px) {
   .sponsor-theme {
      width: calc(100% - 40px);
   }

   .point-label {
      display: block;
   }
}

@media screen and (max-width: 600px) {
   .home-stat span:first-child {
      min-width: 0;
   }

   .category-menu {
      grid-template-columns: 10fr;
   }

   .category-questions {
      grid-template-columns: 10fr;
   }

   .category-menu-container {
      width: auto;
   }

   .category-items {
      margin-top: -15px;
   }

   .category-items > li {
      padding: 40px 0px 40px 20px
   }

   .category-items li.opened {
      padding: 40px 40px;
   }

   input[type="checkbox"]:checked + label + .filters {
      top: 55px;
   }
}
