Skip to content
Snippets Groups Projects
Select Git revision
  • 62dc1a39f5e7a06e41df836a5299cabdb2872518
  • develop default
  • documentation
  • F10114glyphiconToFontAwesome
  • F21622-settings-table-changes
  • F17481_BS_Modal_window
  • F20975_Dynamic_DateTimePicker
  • revertB5221downloadModal
  • B21533-Hidden-Pill-Required
  • B21510_Validation_error_when_date_field_is_left_empty
  • F8044-Transactions
  • master protected
  • F12532-view-sip-in-Browser-consol-log
  • S21288-Store-Parent-Remove-Prefix
  • F21203-Render-MultiSql-Columns-like-Subrecord
  • F11535_ipa-qfq-db-editor
  • F21130-multiform-toggle
  • S20463-V-Store-not-updated-after-form-save
  • B18601-typeahead-sanatize-applied-to-value
  • F16113-MultiAction
  • F20931-inotify-service-file
  • v25.6.0
  • v24.12.0
  • v24.10.0
  • v24.7.0
  • v24.5.1
  • v24.5.0
  • v24.3.0
  • test-alfred20
  • v23.10.1
  • v23.10.0
  • v23.6.4
  • v23.6.3
  • v23.6.2
  • v23.6.1
  • v23.6.0
  • v23.3.1
  • v23.3.0
  • v23.2.0
  • v23.1.1
  • v23.1.0
41 results

qfq-bs.css.less

Blame
  • qfq-bs.css.less 32.54 KiB
    @spinner : url(data:image/gif;base64,R0lGODlhEAAQAKIAAP///9bW1szMzL29vXt7e3Nzc2ZmZv4BAiH/C05FVFNDQVBFMi4wAwEAAAAh+QQFBwAHACwAAAAAEAAQAAADPAi6QRQrymJMkcwFatuLXOFt1bWEYBmNq6awGDCicUhjIYzBwTBAmc9CQBSkLJGiYKZi+EgdV60ZCwIjCQAh+QQFBwAHACwAAAYABgAIAAADE3gz1/LCwaYYbYTQYkxpnEdlRwIAIfkEBQcABwAsAAACAAYACAAAAxN4OqMnUKgoVzuEuGJMUZznZE4CACH5BAUHAAcALAIAAAAIAAYAAAMUeKozqyKKQ8iRohhTTjsa91DWkwAAIfkEBQcABwAsBgAAAAgABgAAAxR4RNddxhR3oDxjtHWEF9QHUtmRAAAh+QQFBwAHACwKAAIABgAIAAADFHhE12WmOCjbaviMgYUXzQc225EAACH5BAUHAAcALAoABgAGAAgAAAMTeEqkV8YUBaVjagwnulDel21KAgAh+QQFBwAHACwGAAoACAAGAAADFHiqRKvFmHLGOHGKLU47XPdYz5EAADs=);
    
    @alert_container_id : #qfqAlertContainer;
    @spinner_class : spinner;
    @CodeMirror_border_color: #ccc;
    
    @{alert_container_id} {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      z-index: 1000;
    
      .alert {
        padding: 30px;
        border-radius: 0px;
        margin-bottom: 2px;
        border-top: none;
        border-left: none;
        border-right: none;
      }
    
      .alert + .alert {
        margin-top: -2px;
      }
    }
    
    i.@{spinner_class} {
      display: inline-block;
      background: @spinner no-repeat;
      //height: image-height(@spinner);
      //width: image-width(@spinner);
      height: 16px;
      width: 16px;
    }
    
    .qfq-dot {
      display: inline-block;
      height: 9px;
      width: 9px;
      margin: 1px;
      margin-left: 5px;
      background-color: #f2b867;
      border-radius: 50%;
    }
    
    .alert-buttons {
      margin-top: 10px;
    }
    
    /* CUSTOM RADIOS */
    
    /* Hide the browser's default radio */
    .radio-inline>input[type=radio], .radio>input[type=radio] {
      position: absolute;
      opacity: 0;
      cursor: pointer;
      height: 0;
      width: 0;
      -moz-appearance: none;
      /*Radios don't scale correctly on Firefox with zoom*/
    }
    
    /* Customize the label (the container) */
    .radio-inline, .radio {
      display: inline-block;
      position: relative;
      padding-left: 25px;
      padding-top: 0 !important;
      margin-top: 7px !important;
      margin-right: 10px;
      cursor: pointer;
      font-size: 1em;
      line-height: 20px;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }
    
    .radio {
      display: block;
    }
    
    /* Create a custom radio button */
    .radio-inline .checkmark, .radio .checkmark {
      position: absolute;
      top: 0;
      left: 0;
      height: 20px;
      width: 20px;
      background-color: #fff;
      border-radius: 50%;
      border: 2px solid #ccc;
    }
    
    .qfq-image-border, .qfq-image-border-left, .qfq-image-border-right {
      border: 1px solid #333;
    }
    
    .radio-inline:hover input ~ .checkmark, .radio:hover input ~ .checkmark {
      border-color: #2196F3;
    }
    
    .radio-inline input[type=radio]:checked ~ .checkmark, .radio input[type=radio]:checked ~ .checkmark {
      background-color: #2196F3;
      border-color: #2196F3;
    }
    
    /* Create the indicator (the dot/circle - hidden when not checked) */
    .checkmark:after {
      content: "";
      position: absolute;
      display: none;
    }
    
    /* Show the indicator (dot/circle) when checked */
    .radio-inline input[type=radio]:checked ~ .checkmark:after, .radio input[type=radio]:checked ~ .checkmark:after {
      display: block;
    }
    
    /* Style the indicator (dot/circle) */
    .radio-inline .checkmark:after, .radio .checkmark:after {
      top: 4px;
      left: 4px;
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: #fff;
    }
    
    /* CUSTOM CHECKBOXES */
    /* Hide the browser's default radio */
    .checkbox-inline>input[type=checkbox], .checkbox>input[type=checkbox] {
      position: absolute;
      opacity: 0;
      cursor: pointer;
      height: 0;
      width: 0;
      -moz-appearance: none;
      /*Checkboxes don't scale correctly on Firefox with zoom*/
    }
    
    /* Customize the label (the container) */
    .checkbox-inline, .checkbox {
      display: inline-block;
      position: relative;
      padding-left: 26px;
      padding-top: 0 !important;
      margin-top: 7px !important;
      margin-right: 10px;
      cursor: pointer;
      font-size: 1em;
      line-height: 20px;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
      font-weight: normal;
    }
    
    .checkbox-inline input:read-only ~ .checkmark {
      cursor: not-allowed;
      pointer-events: none;
    }
    
    .checkbox {
      display: block;
    }
    
    .qfq-disabled {
      cursor: not-allowed !important;
      pointer-events: none !important;
      background: #eee !important;
    }
    
    
    /* Create a custom radio button */
    .checkbox-inline .checkmark, .checkbox .checkmark {
      position: absolute;
      top: 0;
      left: 0;
      height: 20px;
      width: 20px;
      background-color: #fff;
      border-radius: 5px;
      border: 2px solid #ccc;
    }
    
    .checkbox-inline:hover input ~ .checkmark, .checkbox:hover input ~ .checkmark,
    .checkbox-inline input:focus ~ .checkmark, .checkbox input:focus ~ .checkmark,
    .checkbox-inline input:active ~ .checkmark, .checkbox input:active ~ .checkmark {
      border-color: #66afe9;
    }
    
    .checkbox-inline input:checked ~ .checkmark, .checkbox input:checked ~ .checkmark {
      background-color: #2196F3;
      border-color: #2196F3;
    }
    
    .checkbox-inline.qfq-disabled input ~ .checkmark, .checkbox.qfq-disabled input ~ .checkmark,
    .checkbox-inline.qfq-disabled:hover input ~ .checkmark, .checkbox.qfq-disabled:hover input ~ .checkmark,
    .radio-inline.qfq-disabled:hover input ~ .checkmark, .radio.qfq-disabled:hover input ~ .checkmark,
    .radio-inline.qfq-disabled .checkmark, .radio.qfq-disabled .checkmark {
      background-color: #eee;
      border-color: #bbb;
    }
    
    .checkbox-inline.qfq-disabled input:checked ~ .checkmark, .checkbox.qfq-disabled input:checked ~ .checkmark,
    .radio-inline.qfq-disabled input[type=radio]:checked ~ .checkmark, .radio.qfq-disabled input[type=radio]:checked ~ .checkmark {
      background-color: #ccc;
      border-color: #ccc;
    }
    
    /* Show the indicator (dot/circle) when checked */
    .checkbox-inline input:checked ~ .checkmark:after, .checkbox input:checked ~ .checkmark:after {
      display: block;
    }
    
    /* Style the indicator (dot/circle) */
    .checkbox-inline .checkmark:after, .checkbox .checkmark:after {
      top: 1px;
      left: 5px;
      width: 6px;
      height: 12px;
      border: solid white;
      border-width: 0 3px 3px 0;
      -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
      transform: rotate(45deg);
    }
    
    /* ERROR HIGHLIGHTING */
    
    /* Error Marking for Checkboxes */
    .has-error .checkmark {
      background-color: #fcf8e3;
      border-color: #f2b867;
    }
    .has-error .radio-inline:hover input ~ .checkmark, .has-error .radio:hover input ~ .checkmark, .has-error .checkbox-inline:hover input ~ .checkmark, .has-error .checkbox:hover input ~ .checkmark {
      background-color: #f2b867;
    }
    
    .has-error .radio-inline, .has-error .radio, .has-error .checkbox, .has-error .checkbox-inline {
      color: #ca7a0a;
    }
    /* END CUSTOM CHECKBOX / RADIO */
    
    .has-error .help-block {
      display: inline-block;
      padding: 6px 12px;
      padding-left: 25px;
      background-color: #f2b867;
      border-radius: 4px;
      color: #333;
    }
    
    .has-error .help-block:before {
      content: "\f0e7";  /* this is your text. You can also use UTF-8 character codes as I do here */
      font-family: FontAwesome;
      left:25px;
      position:absolute;
    }
    
    .qfq-only-active-error .with-errors.help-block {
      display: none;
      /* visibility: hidden;
      margin-bottom: 0;
      max-height: 0;
      padding-top: 0;
      padding-bottom: 0;
      margin-top: 0;
      overflow: hidden;
      opacity: 0;
      transition: opacity 1s linear, max-height 0.25s ease-out; */
    }
    
    /* all anchors in form-group divs can only be created by users using #!report in forms. These anchors without a target href (#) like some elements which use js functions (example datetimepicker) dont need to be marked as required.*/
    .form-group.has-error .btn:not(a[href="#"]) {
      background-color: #f0ad4e;
      background-image: linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);
      background-repeat: repeat-x;
      border-color: #e38d13;
      font-weight: 200;
      color: #fff;
    }
    
    .input-group ~ .with-errors.help-block:not(.hidden), input:focus ~ .with-errors.help-block:not(.hidden), textarea:focus ~ .with-errors.help-block:not(.hidden) {
      display: inline-block;
      /* visibility: visible;
      max-height: 150px;
      padding-top: 5px;
      padding-bottom: 5px;
      margin-top: 7px;
      opacity: 1;
      transition: opacity 1s linear, max-height 0.25s ease-out; */
    }
    
    .has-error .control-label {
      color: #333;
    }
    
    .help-block.with-errors ul {
      margin-bottom: 0px;
    }
    
    .has-error .form-control {
      background-color: #fcf8e3;
      border-width: medium;
      border-color: #f2b867;
    }
    
    .has-error .form-control:focus {
      background-color: #fcf8e3;
      border-color: #f2b867;
    }
    
    /* Color Variation Example Start */
    .rebel-yell .has-error .form-control, .rebel-yell .has-error .form-control:focus {
      border-color: #d30b6f;
      background-color: #eb92be;
    }
    
    .rebel-yell .form-group.has-error .btn, .btn-rebel {
      background-color: #e72a89;
      background-image: linear-gradient(to bottom,#e72a89 0,#d30b6f 100%);
      background-repeat: repeat-x;
      border-color: #d30b6f;
      font-weight: 200;
      text-shadow: #e72a89 0 1px 0;
      color: #333;
    }
    
    .rebel-yell .has-error .help-block {
      background-color: #e72a89;
    }
    
    .rebel-yell .qfq-dot {
      background-color: #e72a89;
    }
    
    .rebel-yell .checkbox-inline input:checked ~ .checkmark, .rebel-yell .checkbox input:checked ~ .checkmark,
    .rebel-yell .radio-inline input[type=radio]:checked ~ .checkmark, .rebel-yell .radio input[type=radio]:checked ~ .checkmark {
      background-color: #e72a89;
      border-color: #e72a89;
    }
    
    
    /* Error Color Example End 
       Error Soft Example Start */
    
    .qfq-notify .has-error .form-control {
      border-width: 1px;
    }
    
    .qfq-notify .has-error .help-block {
      padding-left: 12px;
      border: 0;
      padding: 0 12px;
      background-color: transparent;
      color: #ca7a0a;
    }
    
    .qfq-notify .has-error .help-block:before {
      content: "";  /* this is your text. You can also use UTF-8 character codes as I do here */
    }
    
    /* ERROR END */
    
    .qfq-tinymce-readonly .mce-panel {
      background-color: #eee;
    }
    
    .mono-space {
      font-family: "Roboto Mono", "Menlo", "Segoe UI", monospace;
    }
    
    /* inline elements in horizontal mode are too much left */
    .form-horizontal {
      .form-inline {
        .form-group {
          margin: 0;
        }
      }
    
      /* reduce unwished padding-top offset */
      .checkbox {
        padding-top: 7px;
      }
    
      .checkbox-inline {
        padding-top: 7px;
        padding-right: 12px;
        margin-top: 0;
      }
    
      .checkbox-inline+.checkbox-inline, .radio-inline+.radio-inline {
        margin-left: 0;
      }
    
      .radio {
        padding-top: 7px;
      }
    
      input[type=file] {
        display: inline;
      }
    }
    
    // select:invalid: Dropdown with 'emptyItemAtStart' and required are grey on form load.
    select.qfq-locked:invalid {
      color: #a0a0a0;
    }
    
    .form-inline {
      .control-label {
        font-weight: normal;
      }
    }
    
    .lower-canvas {
      background-color: #fff;
    }
    
    //.form-group.required.control-label:before{
    //  color: red;/home/a/bbaer/PhpstormProjects/uzh_cd_template
    //  content: "*";
    //  position: absolute;
    //  margin-left: -10px;
    //}
    
    .required-right:after {
      color: #d00;
      content: "*";
      //position: absolute;
      margin-left: 3px;
      //top: 10px;
    }
    
    .required-left:before {
      color: #d00;
      content: "*";
      //position: absolute;
      margin-right: 3px;
      //top: 10px;
    }
    
    .qfq-table-50 {
      min-width: 50%;
      width: auto !important;
    }
    
    .qfq-table-80 {
      min-width: 80%;
      width: auto !important;
    }
    
    .qfq-table-100 {
      min-width: 100%;
      width: auto !important;
    }
    
    
    
    .qfq-form-pill {
      /*
      border-top-right-radius: 4px;
      border-top-left-radius: 4px; */
      border: 1px solid #ccc;
      border-top: none;
    }
    
    
    .qfq-form-body {
      padding-top: 5px;
      padding-bottom: 5px;
      border-bottom-right-radius: 4px;
      border-bottom-left-radius: 4px;
      border: 1px solid #ccc;
      border-top: none;
    }
    
    .qfq-form-no-title {
      border-top-right-radius: 4px;
      border-top-left-radius: 4px;
      border: 1px solid #ccc;
    }
    
    /* adjust BS padding of input elements: center */
    .form-group {
      padding-top: 5px;
      margin-bottom: 0;
    }
    
    /* adjust BS padding: Filename (=Text) of the uploaded file should be on the same base line as the label text left of it. */
    .uploaded-file {
      padding-top: 4px;
    }
    
    .qfq-subrecord-table {
      border: 1px solid #ccc;
      border-top: none;
      width: ~"calc(100% - 10px)";
      margin: 0 5px;
      border-radius: 0 0 4px 4px;
    }
    
    .qfq-subrecord-title {
      padding: 8px 10px;
      font-weight: bold;
      color: #333;
      min-height: 20px;
      border-radius: 4px 4px 0 0;
      border: 1px solid #ccc;
      background-color: #ededed;
      /* background-color: #fefefe; */
    }
    
    .qfq-subrecord-table thead {
      background-color: #e1e1e1;
    }
    
    .qfq-subrecord-table > thead > tr > th {
      border-bottom: 1px solid #ccc;
    }
    
    
    .qfq-subrecord-table caption {
      background-color: #d9d9d9 !important;
    }
    
    
    .qfq-subrecord-table thead > tr > th, .qfq-subrecord-table tbody > tr > td {
      padding: 4px 8px;
    }
    
    .qfq-subrecord-table .btn, .btn-small {
      padding: 5px 6px !important;
      font-size: 11px !important;
      height: unset !important;
      min-width: unset !important;
    }
    
    .btn-tiny {
      padding: 2px 3px !important;
      font-size: 9px !important;
      height: unset !important;
      min-width: unset !important;
    }
    
    .qfq-form-title {
      border: 1px solid #ccc;
      border-radius: 4px 4px 0 0;
      background-image: linear-gradient(to bottom, #fefefe 0, #dedede 100%);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
      min-height: 30px;
      font-size: 1.2em;
      padding: 13px 15px;
      font-weight: bold;
    }
    
    .qfq-table-button-width {
      width: 44px;
    }
    
    .qfq-comment-marker {
      position: absolute;
      right: 22px;
      z-index: 2;
    }
    
    .nav-pills>li>a {
      border-radius: 0;
    }
    
    .qfq-color-white {
      background-color: #ffffff;
      border-color: #fff;
    }
    
    .qfq-color-grey-1 {
      background-color: #dedede;
    }
    
    .qfq-color-grey-2 {
      background-color: #ededed;
    }
    
    .qfq-color-blue-1 {
      background-color: #d2dded;
    }
    
    .qfq-color-blue-2 {
      background-color: #e2eeff;
    }
    
    .qfq-form-right .qfq-label {
      text-align: right;
      padding-right: 0;
    }
    
    .qfq-child-margin-top + .qfq-child-margin-top {
      margin-top: 15px;
    }
    
    .qfq-note {
      padding-top: 2px;
    }
    
    .control-label .small, .control-label small {
      font-weight: normal;
    }
    
    .label-rebel {
      background-color: #e72a89;
    }
    
    // Fabric Plugin classes
    
    .qfq-fabric-fullscreen {
      position: absolute;
      top: 0;
      left: 0;
      z-index: 200;
      width: 100vw;
      height: 100vh;
    }
    
    .qfq-fabric-bar {
      position: -webkit-sticky;
      position: sticky;
      top: 0;
      width: 100%;
      min-height: 41px;
      z-index: 100;
      border: 1px solid #ccc;
      background-color: #ededed;
      padding: 5px;
    }
    
    .qfq-fabric-bar .btn {
      padding: 3px 8px;
    }
    
    .fabric-text {
      width: 100%;
      height: 80px;
    }
    
    #text-bg-submit {
      background-color: #ccc;
      height: 24px;
      border: none;
    }
    
    .text-bg-toggle {
      width: 24px;
      height: 24px;
      background-size: contain;
      border: none;
    }
    
    .color-picker {
      margin-top: 2px;
    }
    
    .color-picker > button {
      margin-right: 2px;
    }
    
    .qfq-fabric-image {
      display: none;
    }
    
    // Emoji
    
    .emoji {
      display: inline-block;
      border: none;
      /*background-color: #fff;*/
      width: 32px;
      height: 32px;
      margin: 5px;
    }
    
    
    // typeAhead Input: Default Bootstrap column width
    .twitter-typeahead {
      display: block !important;
    }
    
    .qfq-cc-style {
      font-size: 0.8em;
      color: #777;
      //position: relative;
      //top: -24px;
      //right: 10px;
      //text-align: right;
      //display: block;
    }
    
    .qfq-vertical {
      vertical-align: bottom; 
      text-align: center;
    }
    
    .qfq-vertical span, .qfq-vertical .qfq-vertical-text {
      -ms-writing-mode: tb-rl;
      -webkit-writing-mode: vertical-rl;
      writing-mode: vertical-rl;
      transform: rotate(180deg);
      white-space: nowrap;
    }
    
    // TypeAhead Suggestions
    .tt-menu {
      background-color: #fff;
      border-left: 1px solid #66afe9;
      border-right: 1px solid #66afe9;
      border-bottom: 1px solid #66afe9;
      border-bottom-left-radius: 5px;
      border-bottom-right-radius: 5px;
      -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
      box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
      width: 100%;
    }
    
    // typeAhead tags
    span.qfq-typeahead-tag {
      margin-right: 5px;
    }
    
    @media (min-width: 768px) {
      .form-horizontal .control-label {
        text-align: unset;
      }
    }
    
    .qfq-image-left, .qfq-image-border-left {
      float: left;
    }
    
    .qfq-image-right, .qfq-image-border-right {
      float: right;
    }
    
    .tt-suggestion {
      cursor: pointer;
      cursor: hand;
      padding-left: 12px;
      padding-right: 12px;
      padding-bottom: 6px;
      padding-top: 12px;
    }
    
    .tt-suggestion + .tt-suggestion {
      padding-top: 6px;
    }
    
    .tt-suggestion:hover {
      background-color: rgba(102, 175, 233, .6);
    }
    
    // Workaround as long as rendering of notes can't be specific.
    .qfq-note-no-padding {
      margin-top: -7px;
    }
    
    // Mit BB anschauen wie man die NOTE Felder formatiert
    //
    //.text-input {
    //  padding-top: 7px;
    //}
    //
    //.text-note {
    //  padding-top: 7px;
    //}
    
    .CodeMirror {
      border: 1px solid @CodeMirror_border_color;
      border-radius: 4px;
    }
    
    //}
    
    /* classes for toggleable note mockup, bb */
    .qfq-icon-inside {
      position: relative;
      top: -22px;
      left: calc(100% - 26px);
    }
    
    .qfq-margin-top {
      margin-top: 10px;
    }
    
    /* spinning icons */
    
    .text-large-with-margin {
      font-size: 92px;
      line-height: normal;
      margin: 0.4em;
    }
    
    .qfq-icon-gear {
      height: 190px;
      width: 190px;
      margin: 1em;
    }
    
    .glyphicon-spin {
      -webkit-animation: spin 2350ms infinite linear;
      animation: spin 2350ms infinite linear;
    }
    
    @-webkit-keyframes spin {
      0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
      }
      100% {
        -webkit-transform: rotate(359deg);
        transform: rotate(359deg);
      }
    }
    
    @keyframes spin {
      0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
      }
      100% {
        -webkit-transform: rotate(359deg);
        transform: rotate(359deg);
      }
    }
    
    .noclick {
      pointer-events: none;
    }
    
    // Buttons: full width
    .qfq-100 {
      width: 100%;
    }
    
    // Buttons: text left aligned
    .qfq-left {
      text-align: left;
    }
    
    .alert-interactive {
      position: fixed;
      display: block;
      left: 50%;
      transform: translate(-50%,0);
      top: 200px;
      max-height: 60%;
      padding: 30px 20px 20px;
      color: #333;
      min-width: 300px;
      max-width: 90%;
      border: 1px solid;
      border-left: 10px solid;
      border-radius: 5px;
      background-color: #fff;
      box-shadow: 10px 10px 10px #ccc;
      overflow-y: auto;
      overflow-x: hidden;
    }
    
    .darkmode .alert-interactive {
       color: #d0d0d0;
       border-left: 5px solid;
       background-color: #333;
     }
    
    .alert-interactive .qfq-alert-reference {
      position: absolute;
      right: 10px;
      top: 3px;
      font-size: .7em;
      color: #888;
    }
    
    .alert-interactive .qfq-alert-timestamp {
      position: absolute;
      left: 10px;
      top: 3px;
      font-size: .7em;
      color: #888;
    }
    
    .alert-warning .qfq-alert-timestamp::after {
      content: ", ";
    }
    
    .alert-interactive .qfq-alert-hidden {
      display: none;
    }
    
    .darkmode .alert-interactive tr td {
      color: #d0d0d0;
    }
    
    .alert-interactive tr:hover td {
      color: #0E2231;
    }
    
    .alert-side > p.body {
      margin: 0px;
      overflow: hidden;
      white-space: nowrap;
    }
    
    .alert-side {
      position: fixed;
      display: block;
      right: 0px;
      top: 20px;
      padding: 20px;
      color: #333;
      border-top: 1px solid;
      border-bottom: 1px solid;
      border-left: 10px solid;
      background-color: #fff;
      border-top-left-radius: 5px;
      border-bottom-left-radius: 5px;
      z-index: 10000; /* Always on top */
    }
    
    .darkmode .alert-side {
      color: #d0d0d0;
      background-color: #333;
    }
    
    .border-success {
      border-color: #79AC78;
    }
    
    .border-success .qfq-alert-reference, .border-success .qfq-alert-timestamp {
      color: #79AC78;
    }
    
    .border-error {
      border-color: #FF8080;
    }
    
    .border-error .qfq-alert-reference, .border-error .qfq-alert-timestamp {
      color: #FF8080;
    }
    
    .border-warning {
      border-color: #F9B572;
    }
    
    .border-warning .qfq-alert-reference, .border-warning .qfq-alert-timestamp {
      color: #F9B572;
    }
    
    .border-info {
      border-color: #7286D3;
    }
    
    .border-info .qfq-alert-reference, .border-info .qfq-alert-timestamp {
      color: #7286D3;
    }
    
    .darkmode .border-success {
      border-color: #5cb85c;
    }
    
    .darkmode .border-error {
      border-color: #fb4f4f;
    }
    
    .darkmode .border-warning {
      border-color: #fbb64f;
    }
    
    .darkmode .border-info {
      border-color: #25adf1;
    }
    
    .blockscreenQfq {
      position: fixed;
      left: 0px;
      right: 0px;
      top: 0px;
      z-index: 998;
      filter: blur(23px);
      background: rgba(255, 255, 255, 0.5);
    }
    
    .blur {
      filter: blur(2px);
    }
    
    .alert-interactive p.title {
      font-size: 1.5em;
      margin-bottom: 0px;
    }
    
    .alert-interactive p.buttons {
      margin-top: 20px;
      text-align: center;
    }
    
    .alert-interactive .table-hover>tbody>tr:hover {
      color: #333;
      background-image: linear-gradient(to bottom,#b9def0 0,#9acfea 100%)
    }
    
    
    // Code Correction
    
    .codeCorrectionWrap {
      border: 1px solid #ccc;
      border-top: unset;
      margin-bottom: 10px;
    }
    
    .qfqCodeCorrectionTitle {
      border: 1px solid #ccc;
      border-radius: 10px 10px 0 0;
      background-image: linear-gradient(to bottom, #fff 0, #e0e0e0 100%);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
      height: 40px;
    };
    
    .qfqLineCount {
      user-select: none;
      width: 50px;
      height: 100%;
      text-align: right;
      border-right: 1px solid #ccc;
      padding-right: 10px;
      line-height: 23px;
      background-color: #efefef;
    }
    
    .qfqCode  {
      width: ~"calc(100% - 50px)";
      min-height: 23px;
      padding-left: 15px;
      padding-right: 15px;
      text-align: left;
      font-size: 1.2em;
      font-family: monospace;
      word-break: break-word;
    }
    
    .qfqCodeLine {
      background-color: #fff;
    }
    
    .qfqCodeLine:hover {
      background-color: #efefef;
    }
    
    .qfqCodeLine:hover .qfqLineCount {
      background-color: #b9def0;
      border-color: #9acfea;
      color: #31708f;
    }
    
    .qfqCommentContainer {
      color: #333;
      height: 100%;
      padding-bottom: 20px;
    }
    
    .qfqComment {
      display: grid;
      position: relative;
      grid-template-columns: 110px auto;
      grid-template-rows: 30px auto;
      margin: 10px;
      margin-top: 20px;
    }
    
    .qfqCommentAvatar {
      background-color: #fff;
      grid-column: 1;
      grid-row-start: 1;
      grid-row-end: 2;
      align-self: start;
      width: 100px;
      height: 120px;
      border: 1px solid #ccc;
      padding: 4px;
      padding-bottom: 20px;
      /*transform: rotate(20deg);*/
    }
    
    .qfqCommentAuthor {
      position: absolute;
      top: 10px;
      left: 10px;
      font-weight: bold;
    }
    
    .qfqCommentText {
      position: relative;
      grid-column: 2;
      grid-row: 2;
      background-color: #fff;
      width: 100%;
      min-height: 90px;
      height: 100%;
      padding: 10px;
      padding-bottom: 25px;
      border: 1px solid #ccc;
      border-top: none;
      border-radius: 0 0 5px 5px;
    }
    
    .qfqCommentCommands {
      position: absolute;
      bottom: 5px;
      right: 15px;
      width: 100%;
      color: #ccc;
      text-align: right;
    }
    
    .qfqCommentCommand {
      cursor: pointer;
      margin-left: 9px;
    }
    
    .qfqCommentCommand:hover {
      color: #9acfea;
    }
    
    .qfqCommentTopLine {
      position: relative;
      grid-row: 1;
      grid-column: 2;
      border: 1px solid #ccc;
      border-bottom: none;
      border-radius: 5px 5px 0 0;
      background-color: #fff;
    }
    
    .qfqCommentDateTime {
      position: absolute;
      right: 10px;
      top: 10px;
      color: grey;
      font-size: 0.8em;
    }
    
    .qfqEditorContainer {
      display: grid;
      position: relative;
      width: 100%;
      grid-template-columns: auto 110px;
      grid-template-rows: auto;
      margin: 20px 10px 10px;
    }
    
    .qfqEditor {
      z-index: 1;
      position: relative;
      grid-column: 1;
      width: 100%;
      min-height: 100px;
      background-color: #fff;
      border: 1px solid #ccc;
      border-radius: 8px;
      padding: 10px;
      padding-left: 40px;
    }
    
    .qfqEditorControls {
      grid-column: 2;
      width: 100%;
      padding-left: 10px;
    }
    
    .qfqCodeElement {
      display: block;
      background: #333;
      color: #eee;
      margin: 10px;
      padding: 15px;
      border-left: 2px solid #5cb85c;
    }
    
    .qfqEditor ul {
      margin: 10px;
    }
    
    .qfqEditorControl {
      z-index: 5;
      cursor: pointer;
      color: #ccc;
      position: absolute;
      left: 10px;
    }
    
    .qfqEditorControl:hover {
      color: #9acfea;
    }
    
    .qfqCodeAdd {
      top: 10px;
    }
    
    .qfqCodeList {
      top: 35px;
    }
    
    .qfqSyntaxDoc {
      color: #888;
    }
    
    .qfqSyntaxWord {
      font-weight: bold;
      color: #31708f;
    }
    
    .qfqSyntaxData {
      color: #5cb85c;
    }
    
    .qfqDropTarget {
      height: 50px;
      margin: 0;
      border: 1px dashed #ccc;
    }
    
    .qfqTargetDisplay {
      border: 1px dashed #25adf1;
    }
    
    span.qfq-more-text {
      display: none;
    }
    
    
    .qfq-clear-me-button {
      display: block;
      right: 12px;
      top: 2px;
      font-size: 18px;
      line-height: 18px;
      color: #d8d8d8;
      padding: 4px 14px;
      position: absolute;
      cursor: pointer;
    }
    
    .qfq-clear-me-multiform-button {
      display: block;
      width: 4%;
      margin-left: 1%;
      margin-top: 5px;
      font-size: 18px;
      line-height: 18px;
      color: #888;
      cursor: pointer;
      position: unset;
      float: right;
    }
    
    .qfq-clear-me-multiform {
      width: 95%;
      float: left;
    }
    
    // Droplets
    
    .qfq-droplet-container {
      position: absolute;
      border-radius: 6px;
      padding: 15px;
    }
    
    .qfq-droplet-container:before {
      content: ' ';
      position: absolute;
      left: 10px;
      top: -10px;
      border: 5px solid;
    }
    
    .qfq-droplet-container:after {
      content: ' ';
      position: absolute;
      left: 20px;
      top: -10px;
      border: 5px solid;
    }
    
    .qfq-droplet-grey {
      border: 2px solid #ccc;
      background-image: linear-gradient(to bottom,#f0f0f0 0,#e0e0e0 100%);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
    }
    
    .qfq-droplet-container.qfq-droplet-grey:after {
      border-color: transparent transparent #ccc #ccc;
    }
    
    .qfq-droplet-container.qfq-droplet-grey:before {
      border-color: transparent #ccc #ccc transparent;
    }
    
    .qfq-droplet-blue {
      border: 2px solid #25adf1;
      background-image: linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);
    }
    
    .qfq-droplet-container.qfq-droplet-blue:after {
      border-color: transparent transparent #25adf1 #25adf1;
    }
    
    .qfq-droplet-container.qfq-droplet-blue:before {
      border-color: transparent #25adf1 #25adf1 transparent;
    }
    
    .qfq-wavy-underline {
      background: url('../icons/wavy-underline.gif') bottom repeat-x
    }
    
    /* old fieldset
    legend {
      margin-bottom: 25px;
      padding-bottom: 5px;
      font-size: 17px;
    }
    
    .qfq-fieldset {
      margin-top: 5px;
      margin-bottom: 15px;
    }
    
    */
    
    legend {
      /* margin-bottom: 25px; */
      padding-bottom: 0px !important;
      font-size: 17px;
      width: ~"calc(100% + 22px)";
      border: 1px solid #ccc;
      border-radius: 4px 4px 0 0;
      border-bottom: none;
      padding: 7px 10px;
      margin: 0 -11px;
      /* background-color: #e2e2e2; */
    }
    
    .qfq-fieldset {
      /* margin-top: 38px; */
      border: 1px solid #ccc;
      padding: 10px;
      margin: 5px -10px;
      border-radius: 0 0 4px 4px;
    }
    
    .qfq-fieldset-borderless {
      border: none;
    }
    
    .qfq-fieldset-borderless legend {
      border: none;
    }
    
    /* glyphicon functions */
    .icon-flipped {
      transform: scaleX(-1);
      -moz-transform: scaleX(-1);
      -webkit-transform: scaleX(-1);
      -ms-transform: scaleX(-1);
    }
    
    .icon-spin {
      display: block;
    }
    
    .icon-spin:hover {
      -webkit-animation: spin 850ms 1 ease-in;
      animation: spin 850ms 1 ease-in;
    }
    
    .icon-spin-reverse {
      display: block;
    }
    
    .icon-spin-reverse:hover {
      -webkit-animation: spin-reverse 850ms 1 ease-in;
      animation: spin-reverse 850ms 1 ease-in;
    }
    
    @keyframes spin-reverse {
      0% {
        transform: scaleX(-1) rotate(-360deg);
      }
      100% {
        transform: scaleX(-1) rotate(0deg);
      }
    }
    
    .qfq-sticky {
      position: -webkit-sticky; /* Safari */
      position: sticky;
      top: 0;
      z-index: 10;
    }
    
    thead.qfq-sticky th, thead.qfq-sticky td {
      position: -webkit-sticky; /* Safari */
      position: sticky;
      top: 0;
      background-color: white;
      z-index: 900;
    }
    
    thead.qfq-sticky td {
      top: 33px;
    }
    
    .dropdown-menu {
      z-index: 991;
      min-width: max-content;
    }
    
    // No colorized badges in BS3: make our own
    .qfq-badge {
      padding: 1px 9px 2px;
      font-size: 12.025px;
      font-weight: bold;
      white-space: nowrap;
      margin: 2px;
      color: #ffffff;
      display: inline-block;
      background-color: #999999;
      -webkit-border-radius: 9px;
      -moz-border-radius: 9px;
      border-radius: 9px;
    }
    
    .qfq-badge:hover {
      color: #ffffff;
      text-decoration: none;
      cursor: pointer;
    }
    
    .qfq-badge-error {
      background-color: #b94a48;
    }
    
    .qfq-badge-error:hover {
      background-color: #953b39;
    }
    
    .qfq-badge-danger {
      background-color: #b94a48;
    }
    
    .qfq-badge-danger:hover {
      background-color: #953b39;
    }
    
    .qfq-badge-warning {
      background-color: #f89406;
    }
    
    .qfq-badge-warning:hover {
      background-color: #c67605;
    }
    
    .qfq-badge-success {
      background-color: #468847;
    }
    
    .qfq-badge-success:hover {
      background-color: #356635;
    }
    
    .qfq-badge-info {
      background-color: #5bc0de;
    }
    
    .qfq-badge-info:hover {
      background-color: #4bb0ce;
    }
    
    .qfq-badge-primary {
      background-color: #3a87ad;
    }
    
    .qfq-badge-primary:hover {
      background-color: #2d6987;
    }
    
    .qfq-badge-inverse {
      background-color: #333333;
    }
    
    .qfq-badge-inverse:hover {
      background-color: #1a1a1a;
    }
    
    .qfq-max-width-1280 {
      max-width: 1280px;
    }
    
    .qfq-max-width-1600 {
      max-width: 1600px;
    }
    
    
    
    @font-face {
      font-family: 'password';
      font-style: normal;
      font-size: 15px;
      src: url(../fonts/password-dots.ttf);
    }
    
    input.qfq-password {
      font-family: 'password';
      letter-spacing: -3px;
    }
    
    .qfq-subrecord-additional {
      background-color: #d6d8db;
    }
    
    /* bootstrap correction for better looking arrows in datetimepicker */
    [data-action="decrementHours"]>span.glyphicon-chevron-down, [data-action="incrementHours"]>span.glyphicon-chevron-up, [data-action="incrementMinutes"]>span.glyphicon-chevron-up, [data-action="decrementMinutes"]>span.glyphicon-chevron-down, [data-action="incrementSeconds"]>span.glyphicon-chevron-up, [data-action="decrementSeconds"]>span.glyphicon-chevron-down {
      top: -19px;
    }
    
    .input-group-btn > span > .glyphicon-info-sign {
      font-size: 10pt;
    }
    
    .CodeMirror:not(.externWindow > .CodeMirror) {
      resize: both;
    }
    
    // lower min-height for checkbox in header
    .process-row-label-header {
      min-height: 20px !important;
      font-weight: bold;
    }
    
    //
    .table-multi-form > tbody > tr > td {
      vertical-align: middle;
    }
    
    // gray text and corrected padding for inactive dropdown options (render mode 3)
    .dropdown-menu>li {
      padding: 3px 20px;
      color: gray;
    }
    
    // compensate previous rule for active options (render mode 0)
    .dropdown-menu>li>a {
      margin: -3px -20px;
      color: #333;
    }
    
    // FilePond Upload label color
    .filepond--item[data-filepond-item-state="idle"] .filepond--item-panel {
      background-color:#d7d7d7 !important;
    }
    
    // Filepond css adjustments
    .filepond--file-info > .filepond--file-info-sub {
      opacity: 0.5 !important;
    }
    
    // Clean filename position
    .filepond--file > .filepond--file-info {
      transform: translate3d(0px, 0px, 0px) !important;
      color: black;
    }
    
    // Text mute for upload elements
    label[id^="filepond--drop-label-"] {
      color: #6c757d !important;
    }
    
    // Hide complete indicator because its never needed
    .filepond--processing-complete-indicator {
      opacity: 0 !important;
    }
    
    // Uploaded file background
    .filepond--drip{
      background-color:#EDEDED !important;
      opacity: 1 !important;
    }
    
    // FilePond upload styling for form
    .filepond--drop-label-form {
      background-color: white;
      border-radius: 5px;
    }
    .filepond--list-form {
      width: 100%;
      left: -3px !important;
    }
    
    
    // QFQ chat rules
    .chat-highlight {
      background-color: yellow;
      color: black;
    }
    
    .chat-search {
      text-align: center;
      display: none;
      opacity: 0;
      transition: opacity 1s ease;
    }
    
    .chat-search-input {
      width: 70%;
      margin-right: 5px;
    }
    
    .chat-search-btn {}
    
    .qfq-chat-window {
      position: relative;
      margin-right: 10px;
      margin-left: 10px;
      margin-bottom: 10px;
    }
    
    .chat-messages {
      max-height: 320px;
      overflow-y: auto;
      overflow-x: hidden;
      position: relative;
    }
    
    .chat-top-symbol {
      position: sticky;
      top: 0;
      display: block;
      z-index: 2;
      text-align: center;
      font-size: 2em;
      opacity: 0.4;
      width: fit-content;
      margin: auto;
    }
    
    .chat-container {
      max-width: 70%;
      min-width: 30%;
      margin: 10px;
      padding: 8px;
      border-radius: 10px;
      position: relative;
      font-family: Arial, sans-serif;
      width: fit-content;
      margin-right: 15px;
    }
    
    .chat-left-bubble {
      background-color: #E2E3E5;
      align-self: flex-start;
      margin-left: 15px;
    }
    
    .chat-left-bubble::before {
      width: 0;
      height: 0;
      position: absolute;
      left: -10px;
      top: 10px;
      border: 5px solid transparent;
      border-right-color: #E2E3E5;
      border-left: 0;
      border-bottom: 0;
      margin-top: -5px;
    }
    
    .chat-right-bubble {
      background-color:  #ADD8E6;
      align-self: flex-end;
      margin-left: auto;
    }
    
    .chat-right-bubble::before {
      width: 0;
      height: 0;
      position: absolute;
      right: -10px;
      top: 10px;
      border: 5px solid transparent;
      border-left-color: #ADD8E6;
      border-right: 0;
      border-bottom: 0;
      margin-top: -5px;
    }
    
    .chat-message-content {
      display: flex;
      justify-content: space-between;
      align-items: flex-end;
    }
    
    .chat-time {
      font-size: 0.8em;
      color: #666;
      margin-left: 10px;
    }
    
    .chat-pointed-corner {
      width: 0;
      height: 0;
      position: absolute;
      border: 20px solid transparent;
      margin-top: -20px;
    }
    
    .chat-left-bubble .chat-pointed-corner {
      left: -14px;
      top: 20px;
      border-right-color: #E2E3E5;
      border-left: 0;
      border-bottom: 0;
    }
    
    .chat-right-bubble .chat-pointed-corner {
      right: -14px;
      top: 20px;
      border-left-color: #ADD8E6;
      border-right: 0;
      border-bottom: 0;
    }
    
    .chat-message-user {
      font-weight: bold;
      color: #FF5349;
    }
    
    .chat-no-message {
      text-align: center;
      margin-top: 15px;
      margin-bottom: 10px;
    }
    
    .chat-no-message > span {
      font-size: 10pt !important;
    }
    
    .chat-input-field {
      resize: vertical;
    }
    
    .chat-search-activate {
      position: absolute;
      top: 0;
      left: 0;
      display: flex;
      font-size: 12pt;
      width: 25px;
      height: 25px;
      align-items: center;
      justify-content: center;
      opacity: 0.4;
      background: lightgray;
      border-radius: 5px;
      border-width: 2px;
      z-index: 3;
    }
    
    .chat-search-activate:hover {
      border-style: solid;
      opacity: 1;
    }
    
    // END QFQ chat rules