/*
 * Software by John Liddiard (aka JohntheFish)
 * www.c5magic.co.uk
 *
 * This package contains software copyright and proprietary to John Liddiard
 *
 * https://github.com/fkranenburg/bootstrap-pincode-input
 * https://getbootstrap.com/docs/5.3/forms/validation/
 *
 *
 */

.form-reform-control.form-reform-id-code .input-group-text {
    min-width: 2.5em;
}

.form-reform-control.form-reform-id-code .form-reform-id-code-group {
    display: inline-block;
    width: auto;
    margin-right: 1em;
}

.form-reform-control.form-reform-id-code .form-reform-id-code-group.last-input-group,
.form-reform-control.form-reform-id-code .form-reform-id-code-group.last-input-group-with-suffix {
    margin-right: 0;
}

.form-reform-control.form-reform-id-code .form-reform-id-code-group.first-input-group-with-prefix .first-input-in-group {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.form-reform-control.form-reform-id-code .form-reform-id-code-group.last-input-group-with-suffix .last-input-in-group {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.form-reform-control.form-reform-id-code .form-reform-id-code-group input {
    width: 2.5em;
    text-align: center;
}

/*.form-reform-id-code.was-validated .form-reform-id-code-input-component:invalid,*/
.form-reform-id-code.was-validated.is-invalid .form-reform-id-code-input-component {
    border-color: var(--bs-form-invalid-border-color) !important;
    color: var(--bs-form-invalid-border-color) !important;
}

/*
 * An is-invalid class on the form-control trumps any :valid on a digit input.
 */
/*.form-reform-id-code.was-validated:not(.is-invalid) .form-reform-id-code-input-component:valid,*/
.form-reform-id-code.was-validated.is-valid .form-reform-id-code-input-component {
    border-color: var(--bs-form-valid-border-color) !important;
}

.form-reform-id-code.was-validated.is-invalid .form-reform-id-code-input-component,
.form-reform-id-code.was-validated.is-valid .form-reform-id-code-input-component,
.form-reform-id-code .form-reform-id-code-input-component:invalid,
.form-reform-id-code .form-reform-id-code-input-component:valid{
    background-image: none !important;
    background-position: center center !important;
    padding-right: 0.75rem !important;
    background-image: none !important;
}


.form-reform-control.form-reform-id-code .form-reform-id-code-input-component {
    display: inline-block;
}

.form-reform-control.form-reform-id-code .form-reform-id-code-input {
    display: none;
}

/*
 * https://css-tricks.com/touch-devices-not-judged-size/
 * https://developer.mozilla.org/en-US/docs/Web/CSS/@media/any-hover
 */
@media (any-hover: none) {
    .form-reform-control.form-reform-id-code.revert-on-touch .form-reform-id-code-input-component {
        display: none;
    }

    .form-reform-control.form-reform-id-code.revert-on-touch .form-reform-id-code-input {
        display: inline-block;
    }
}



/*
 * Software by John Liddiard (aka JohntheFish)
 * www.c5magic.co.uk
 *
 * This package contains software copyright and proprietary to John Liddiard
 *
 */
.form-group.form-reform-like .form-icon-only {
    margin-right: 0;
    margin-left: 0;
    padding-left: 0;
}

.form-group.form-reform-like .form-reform-like-checkbox .icon-on {
    display: none;
}

.form-group.form-reform-like .form-reform-like-checkbox.form-reform-liked .icon-off {
    display: none;
}

.form-group.form-reform-like .form-reform-like-checkbox.form-reform-liked .icon-on {
    display: inline-block;
}

.form-group.form-reform-like .form-reform-like-checkbox input[type="checkbox"] { /* Also set in view.php*/
    display: none;
}

/*
 * Software by John Liddiard (aka JohntheFish)
 * www.c5magic.co.uk
 *
 * This package contains software copyright and proprietary to John Liddiard
 *
 */
.form-group.form-reform-rating .form-icon-only { /* bootstrap5 */
    margin-right: 0;
    margin-left: 0;
    padding-left: 0;
}

.form-group.form-reform-rating .form-reform-rating-radioset .form-rating-item.form-rating-zero {
    display: none;
}

.form-group.form-reform-rating .form-reform-rating-radioset .form-rating-item.form-rating-zero.zero-selected {
    display: inline-block;
}

.form-group.form-reform-rating .form-reform-rating-radioset .form-rating-item.form-rating-one {
    display: none;
}

.form-group.form-reform-rating .form-reform-rating-radioset .form-rating-item.form-rating-one.star-selected {
    display: inline-block;
}

.form-group.form-reform-rating .form-reform-rating-radioset .form-rating-item .icon-on {
    display: none;
}

.form-group.form-reform-rating .form-reform-rating-radioset .form-rating-item.star-selected .icon-off {
    display: none;
}

.form-group.form-reform-rating .form-reform-rating-radioset .form-rating-item.star-selected .icon-on {
    display: inline-block;
}

.form-group.form-reform-rating .form-check-inline input[type="radio"] { /* Also set in view.php*/
    display: none;
}

/*
 * Software by John Liddiard (aka JohntheFish)
 * www.c5magic.co.uk
 *
 * This package contains software copyright and proprietary to John Liddiard
 *
 */

/*
 * Style the CK editable areas to match the core styling for disabled/readonly
 * (This may be different for a theme, especially for non-bootstrap)
 */

.form-reform-control .cke_contents .cke_source[readonly="readonly"],
.form-reform-control .cke_contents .cke_wysiwyg_div[aria-readonly="true"] {
    background-color: #e9ecef;
    opacity: 1;
}

.cke_toolgroup a.cke_button__concrete_save{background-color:#337ab7;background-image:linear-gradient(180deg,#337ab7,#336fad);text-shadow:none}.cke_toolgroup a.cke_button__concrete_save:hover{background:#286090!important;background-image:linear-gradient(180deg,#336fad,#315f9b)!important}.cke_toolgroup .cke_button__concrete_cancel .cke_button__concrete_cancel_label,.cke_toolgroup .cke_button__concrete_save .cke_button__concrete_save_label{display:inline-block;padding-left:4px;padding-right:4px}.cke_toolgroup .cke_button__concrete_save .cke_button__concrete_save_label{color:#fff;text-shadow:none}.cke_toolgroup .cke_button__concrete_cancel .cke_button__concrete_cancel_icon,.cke_toolgroup .cke_button__concrete_save .cke_button__concrete_save_icon{display:none}.cke_editable:after,.cke_editable:before{content:"";display:table}.cke_editable:after{clear:both}.cke_panel{z-index:2500!important}


/*
 * Software by John Liddiard (aka JohntheFish)
 * www.c5magic.co.uk
 *
 * This package contains software copyright and proprietary to John Liddiard
 *
 */
.ccm-page .form-reform-select-combi .input-group > .form-reform-vertical-group:not(:first-child) > .form-control {
    border-bottom-left-radius: 0;
    border-top-left-radius: 0;
    margin-left: -1px;
}

.ccm-page .form-reform-select-combi .input-group > .form-reform-vertical-group:not(:last-child) > .form-control {
    border-bottom-right-radius: 0;
    border-top-right-radius: 0;
    margin-right: -1px;
}

.ccm-page .form-reform-select-combi .input-group > .form-reform-vertical-group {
    flex: 1 1 auto;
    min-width: 0;
    position: relative;
    width: 1%;
}

/*
 * Special case, regress for BS3
 */
.ccm-page .bootstrap3.form-reform-select-combi .input-group > .form-reform-vertical-group {
    flex: 1 1 auto;
    min-width: inherit;
    position: relative;
    width: inherit;
}


.ccm-page .form-reform-select-combi.combi-open select {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.ccm-page .form-reform-select-combi input {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}


/*
 * Software by John Liddiard (aka JohntheFish)
 * www.c5magic.co.uk
 *
 * This package contains software copyright and proprietary to John Liddiard
 *
 */
/*
 * A div styled like a form input. We sit this behind everything, then
 * overlay it with our actual input element and with the canvas.
 */
.form-reform-signature .form-reform-signature-dummy{
    position:relative;
}

/*
 * The input is actually a textarea that holds the b64/png for the
 * scribble in the canvas
 */
.form-reform-signature .form-reform-signature-input{
    display:none;
    height:0;
}

.form-reform-signature .form-reform-signature-dummy .form-reform-signature-input{
    position:absolute;
    border-color:transparent;
    color:transparent;
    overflow:hidden;
    resize: none;
    top:0;
    bottom:0;
    left:0;
    right:0;
    z-index:2;
    display:block;
    height:inherit;
    border-radius:inherit;
}
.form-reform-signature:not([disabled]) .form-reform-signature-dummy .form-reform-signature-input{
    background-color:transparent;
}

/*
 * Our top layer is the canvas. This gets scribbled in and the png extracted into the
 * textarea below it.
 */
.form-reform-signature.form-reform-signature-canvas-wrapper{
    display:none;
    height:0;
}
.form-reform-signature.form-reform-signature-canvas-wrapper .form-reform-signature-canvas{
    display:none;
}

.form-reform-signature .form-reform-signature-dummy .form-reform-signature-canvas-wrapper{
    position:absolute;
    top:3px;
    bottom:3px;
    left:3px;
    right:3px;
    z-index:4;
    background-color: transparent;
    display:block;
    height:inherit;
    padding:2px;
}
.form-reform-signature .form-reform-signature-dummy .form-reform-signature-canvas-wrapper .form-reform-signature-canvas{
    width:100%;
    height:calc(100% - 5px);
    display:block;
    border:1px dashed lightgrey;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center center;
}

/*
 * When disabled, we move it down below the textarea which acts as a mask for it.
 */
.jl_form_reform_temporarily_disabled .form-reform-signature-canvas-wrapper,
.jl_form_reform_disabled_by_state .form-reform-signature-canvas-wrapper,
.form-reform-signature[disabled=disabled] .form-reform-signature-canvas-wrapper,
.form-reform-signature[disabled] .form-reform-signature-canvas-wrapper,
.form-reform-signature[readonly=readonly] .form-reform-signature-canvas-wrapper,
.form-reform-signature[readonly] .form-reform-signature-canvas-wrapper{
    z-index:1!important;
}



/*
 * Software by John Liddiard (aka JohntheFish)
 * www.c5magic.co.uk
 *
 * This package contains software copyright and proprietary to John Liddiard
 *
 */
.form-group.form-reform-up-down-vote .form-icon-only {
    margin-right: 0;
    margin-left: 0;
    padding-left: 0;
}

.form-group.form-reform-up-down-vote .form-reform-up-down-vote-radioset .form-no-vote-control,
.form-group.form-reform-up-down-vote .form-reform-up-down-vote-radioset .icon-on {
    display: none;
}

.form-group.form-reform-up-down-vote .form-reform-up-down-vote-radioset.form-reform-vote-down .form-down-vote-control {
    display: none;
}

.form-group.form-reform-up-down-vote .form-reform-up-down-vote-radioset.form-reform-vote-down .form-no-vote-control,
.form-group.form-reform-up-down-vote .form-reform-up-down-vote-radioset.form-reform-vote-down .icon-down-on {
    display: inline-block;
}

.form-group.form-reform-up-down-vote .form-reform-up-down-vote-radioset.form-reform-vote-up .form-no-vote-control,
.form-group.form-reform-up-down-vote .form-reform-up-down-vote-radioset.form-reform-vote-up .icon-up-on {
    display: inline-block;
}

.form-group.form-reform-up-down-vote .form-reform-up-down-vote-radioset.form-reform-vote-up .form-up-vote-control {
    display: none;
}


.form-group.form-reform-up-down-vote .form-reform-up-down-vote-radioset input[type="radio"] { /* Also set in view.php*/
    display: none;
}


/*
 * Software by John Liddiard (aka JohntheFish)
 * www.c5magic.co.uk
 *
 * This package contains software copyright and proprietary to John Liddiard
 *
 */

/*
 * In the each control mode, the button is rendered hidden and used as a proforma
 * But we always show it in edit mode as a marker for the block.
 */
.form-reform-qr-attachment-each-control{
    display:none;
}
.ccm-edit-mode .form-reform-qr-attachment-each-control{
    display:inline-block;
}

/*
 * A simple modal overlay for the QR reader widget
 */

.qr-reader-modal-wrapper {
    position: fixed;
    width: 100vw;
    height: 100vh;
    align-items: center;
    justify-content: center;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(11, 11, 11, 0.9);
    z-index: 3000;
}

.qr-reader-modal-wrapper .qr-reader-widget{
    width: min(600px, 100vw);
    background: rgba(255, 255, 255, 1);
    margin-left:auto;
    margin-right:auto;
    padding:5px;
}

.qr-reader-modal-wrapper .qr-reader-widget{
    position:relative;
    top: 50%;
    transform: translateY(-50%);
}

.qr-reader-modal-wrapper .qr-modal-cancel{
    position:absolute;
    top:-30px;
    right:-30px;
    color:white;
    cursor:pointer;
}


/*
 * Software by John Liddiard (aka JohntheFish)
 * www.c5magic.co.uk
 *
 * This package contains software copyright and proprietary to John Liddiard
 *
 */

/*
 * Toolbar
 */
.form-reform-repeatable-group-toolbar {
    display: inline-block;
}

.form-reform-repeatable-group-toolbar .form-reform-group-tool {
    margin-left: 0.5rem;
}

.form-reform-tool-hide {
    display: none;
}

/*
 * The actual group. Groups are marked with CSS after the toolbar javascript
 * has located them
 */

.form-reform-repeatable-group-marker.form-reform-repeatable-group-moving {
    position: relative;
}

.form-reform-repeatable-group-marker.form-reform-repeatable-group-moving:after {
    position: absolute;
    display: block;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0.5;
    border: 2px dotted #aaa;
    border-radius: 5px;
    content: '';
}

/*
 * Mark blocks not compatible with repeatable groups
 */

@keyframes attention_pulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(0.95);
        opacity: 10%
    }
    100% {
        transform: scale(1);
    }
}

.form-reform-repeatable-group-marker .form-reform-block-not-repeatable.form-reform-user-can-edit {
    outline: 5px dashed red;
    animation-name: attention_pulse;
    animation-duration: 1000ms;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
    display: block;
}

.form-reform-repeatable-group-marker .form-reform-block-not-repeatable.form-reform-user-can-edit:before {
    content: "This block cannot be used inside repeatable groups";
    color: red;
    font-size: 150%;
    display: block;
}


/*
 * Software by John Liddiard (aka JohntheFish)
 * www.c5magic.co.uk
 *
 * This package contains software copyright and proprietary to John Liddiard
 *
 */
.ccm-page .show-when-loading {
    display: none;
}

/*
.ccm-page.form-reform-loading .show-when-loading,
.ccm-page .form-reform-loading .show-when-loading,
.ccm-page .form-reform-loading.show-when-loading {
    display: inherit;
}
 */

.ccm-page .form-reform-spinner {
    position: relative;
}

.ccm-page .form-reform-spinner.overlay-window {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1000;
}

.ccm-page .form-reform-spinner.show-in-block {
    margin-left: auto;
    margin-right: auto;
}

/*
 * Colours and position come from edit dialogue. Here are just defaults
 */
.ccm-page .form-reform-spinner .form-reform-spinner-adjust {
    position: absolute;
    margin: auto;
    color: #2d7ac0;
    background-color: rgba(240, 240, 240, 0.6);
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 100;
}

.ccm-page .form-reform-spinner.overlay-window .form-reform-spinner-adjust {
    width: 100vw;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ccm-page .form-reform-spinner .form-reform-spinner-position {
    margin: 0;
    position: absolute;
    width: 100%;
    top: 50%;
    transform: translateY(-50%);
}

/*
 * From here downward is adapted from https://github.com/lukehaas/css-loaders
 * MIT license https://github.com/lukehaas/css-loaders/blob/step2/LICENSE
 * More spinners there if you want to code new templates.
 * Prefix with scope .ccm-page .form-reform-spinner
 * load4.css
 */
.ccm-page .form-reform-spinner .loader4 {
    margin: 0 auto;
    width: 1em;
    height: 1em;
    border-radius: 50%;
    position: relative;
    text-indent: -9999em;
    -webkit-animation: load4 1.3s infinite linear;
    animation: load4 1.3s infinite linear;
    -webkit-transform: translateZ(0);
    -ms-transform: translateZ(0);
    transform: translateZ(0);
}

.ccm-page .form-reform-spinner.overlay-input-adapt .loader4 {
    font-size: 0.5em;
}

.ccm-page .form-reform-spinner.overlay-form-elements .loader4 {
    font-size: 2em;
}

@-webkit-keyframes load4 {
    0%,
    100% {
        box-shadow: 0 -3em 0 0.2em, 2em -2em 0 0em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 0;
    }
    12.5% {
        box-shadow: 0 -3em 0 0, 2em -2em 0 0.2em, 3em 0 0 0, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
    }
    25% {
        box-shadow: 0 -3em 0 -0.5em, 2em -2em 0 0, 3em 0 0 0.2em, 2em 2em 0 0, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
    }
    37.5% {
        box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 0, 2em 2em 0 0.2em, 0 3em 0 0em, -2em 2em 0 -1em, -3em 0em 0 -1em, -2em -2em 0 -1em;
    }
    50% {
        box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 0em, 0 3em 0 0.2em, -2em 2em 0 0, -3em 0em 0 -1em, -2em -2em 0 -1em;
    }
    62.5% {
        box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 0, -2em 2em 0 0.2em, -3em 0 0 0, -2em -2em 0 -1em;
    }
    75% {
        box-shadow: 0em -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0.2em, -2em -2em 0 0;
    }
    87.5% {
        box-shadow: 0em -3em 0 0, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0, -2em -2em 0 0.2em;
    }
}

@keyframes load4 {
    0%,
    100% {
        box-shadow: 0 -3em 0 0.2em, 2em -2em 0 0em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 0;
    }
    12.5% {
        box-shadow: 0 -3em 0 0, 2em -2em 0 0.2em, 3em 0 0 0, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
    }
    25% {
        box-shadow: 0 -3em 0 -0.5em, 2em -2em 0 0, 3em 0 0 0.2em, 2em 2em 0 0, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
    }
    37.5% {
        box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 0, 2em 2em 0 0.2em, 0 3em 0 0em, -2em 2em 0 -1em, -3em 0em 0 -1em, -2em -2em 0 -1em;
    }
    50% {
        box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 0em, 0 3em 0 0.2em, -2em 2em 0 0, -3em 0em 0 -1em, -2em -2em 0 -1em;
    }
    62.5% {
        box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 0, -2em 2em 0 0.2em, -3em 0 0 0, -2em -2em 0 -1em;
    }
    75% {
        box-shadow: 0em -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0.2em, -2em -2em 0 0;
    }
    87.5% {
        box-shadow: 0em -3em 0 0, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0, -2em -2em 0 0.2em;
    }
}


/*
 * Software by John Liddiard (aka JohntheFish)
 * www.c5magic.co.uk
 *
 * This package contains software copyright and proprietary to John Liddiard
 *
 */

/*
 * Show a down caret (as per a select input) to show on hover/focus
 */
.ccm-page .form-reform-text-has-datalist:focus,
.ccm-page .form-reform-text-has-datalist:hover {
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E") right 0.75rem center no-repeat;
    background-size: 16px 12px;
}


/*
 * Software by John Liddiard (aka JohntheFish)
 * www.c5magic.co.uk
 *
 * This package contains software copyright and proprietary to John Liddiard
 *
 */

.jl-package-info code{
    //line-break:anywhere;
    color: inherit;
    background-color: transparent;
    font:inherit;
}

.jl-package-info li{
    margin-bottom:20px;
}

.jl-package-info ul.item-select-list{
    list-style-type: none;
    margin: 0 0 25px;
    padding: 2px 0 0;
    width:100%;
    display:flex;
    flex-wrap:wrap;
}
.jl-package-info ul.item-select-list li{
    margin-bottom: 2px;
    padding-bottom: 2px;
    position: relative;
    min-width:350px;
    width:33%;
}

.jl-package-info ul.item-select-list li a{
    background-repeat: no-repeat;
    border: 1px solid transparent;
    color: #4c4f56;
    display: block;
    padding: 8px;
    text-decoration: none;
}

.jl-package-info ul.item-select-list li a img{
    display: Inline-block;
    margin-right: 5px;
    max-width: 40px;
    vertical-align: middle;
}

