.hide-errors .alert-danger,
.hide-errors .invalid-feedback {
    display: none;
}

.cmxform .invalid-feedback {
    padding-top: 5px;
}

.cmxform .invalid-feedback,
.cmxform .alert-danger {
    color: darkred !important;
}

.hidden {
    display: none !important;
}

.cmxform .mceEditor + .help-text,
.cmxform .mceEditor + .invalid-feedback {
    margin-left: 0;
}

.cmxform .sortable-container {
    margin: 0;
    padding: 0 0 0 10px;
    list-style-type: none;
}

.cmxform .sortable-container li.sortable-item {
    padding: 2px 0 2px 5px;
    cursor: move;
}

.cmxform .sortable-container li.sortable-item::marker {
    content: "\2630";
}

.cmxform .break-after-label {
    flex-wrap: wrap;
}

.cmxform .break-after-label > .col-form-label {
    flex-basis: 100%;
}

.cmxform .row,
.cmxform .row .row.keep-margin {
    margin: 7px 0;
    display: flex;
}

.cmxform .row .row {
    margin: 0;
}

.cmxform .row-margin {
    display: grid;
}

.cmxform .row-margin > .row {
    margin: 7px 0;
}

.cmxform .row-margin > .row:first-child {
    margin-top: 0;
}

.cmxform .is-invalid {
    border-color: darkred;
}

.cmxform textarea {
    margin-bottom: -6px;
}

.cmxform select,
.cmxform input,
.cmxform textarea {
    width: 100%;
    padding: 3px 5px;
    box-sizing: border-box;
    display: inline-block;
    max-width: unset;
    line-height: 16px;
    margin: 0;
}

.cmxform select {
    line-height: 16px;
}

ul.tagit {
    width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    padding: 0;
}

ul.tagit li.tagit-new {
    flex-grow: 1;
}

ul.tagit li.tagit-choice {
    margin-left: 5px;
}

input.tagit-hidden-field {
    display: none !important;
}

.autocomplete-selected:empty {
    display: none;
}

.autocomplete-selected li {
    display: flex;
    gap: 3px;
    align-items: center;
}

/* @todo: remove. it's just here to show if a field is disabled (instead of readonly?) */
.cmxform [disabled] {
    border: 1px solid red !important;
}

.ui-dialog .ui-dialog-title {
    float: none;
    display: flex;
    flex-wrap: wrap;
}

.ui-tabs-anchor {
    display: flex;
    align-items: center;
    gap: 2px;
}

.cmxform .btn-danger {
    background: rgb(139, 0, 0, 0.9);
    font-weight: bold;
    color: white;
    border: 1px solid rgb(80, 80, 80);
}

.cmxform .btn-danger:hover {
    background: rgb(139, 0, 0);
    border: 1px solid black;
}

.cmxform .btn-success {
    background: rgb(0, 128, 0, 0.9);
    font-weight: bold;
    color: white;
    border: 1px solid rgb(80, 80, 80);
}

.cmxform .btn-success:hover {
    background: rgb(0, 128, 0);
    border: 1px solid black;
}

.cmxform .btn-disabled {
    opacity: .35;
    color: #f0f0f0;
}

/* rc styling */
.cmxform:not(.ui-tabs-nav) .form-label {
    text-transform: uppercase;
}

.cmxform fieldset {
    border: none;
    margin: 0;
    padding: 0;
}

.cmxform .form-check-padding .form-check {
    padding: 3px 0;
}

.cmxform .col-form-label.required:not(.ui-tabs-nav .col-form-label, .ui-accordion-header):after {
    content: '*';
    color: darkred;
    margin-left: 1px;
}

.cmxform input[type=radio] + label.required:after {
    content: '';
}

.cmxform .form-row-inline {
    display: flex;
    gap: 1.5rem;
}

.cmxform .form-row-inline-right {
    gap: 0 !important;
}

.cmxform .form-row-inline-right > * {
    flex-grow: 0 !important;
}

.cmxform .form-row-inline-right :first-child {
    margin-left: auto;
}

.cmxform .form-row-inline > * {
    flex-grow: 1;
}

.cmxform .form-check {
    display: inline-flex;
    gap: 4px;
    justify-content: flex-start;
    align-items: flex-start;
    width: 100%;
}

.cmxform .align-items-center .form-check {
    align-items: center;
}

.cmxform .form-check-label {
    cursor: pointer;
}

.cmxform .form-check-label[disabled],
.cmxform .form-check-label[readonly],
.cmxform .form-check-label[aria-readonly] {
    cursor: default;
}

/*
.cmxform .form-check input[type='checkbox'] {
    display: inline;
    vertical-align: sub;
    margin: 0 2px 0 0;
}

.cmxform .form-check + .form-text {
    display: inline;
}
*/
.cmxform #share_research_object_share_help input {
    width: 90%;
}

.cmxform #share_research_object_share_help span {
    display: inline-block;
    vertical-align: sub;
}

.error-icon {
    margin: -1px 0 -1px 2px;
}

.rc-icon {
    --rc-icon-url: none;
    display: inline-block;
    width: 16px;
    height: 16px;
    color: black;
    flex-shrink: 0;
    vertical-align: middle;
    background-color: currentColor;
    -webkit-mask-image: var(--rc-icon-url);
    mask-image: var(--rc-icon-url);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    cursor: pointer;
}

.menu-icon.rc-icon {
    width: 40px;
    height: 40px;
    color: #333;
}

.error-icon.rc-icon {
    color: darkred;
}

.rc-icon-close {
    --rc-icon-url: url('/rc/icons/tabler/x.svg');
}

.rc-icon-collapse {
    --rc-icon-url: url('/rc/icons/tabler/chevron-right.svg');
}

.rc-icon-copy {
    --rc-icon-url: url('/rc/icons/tabler/copy.svg');
}

.rc-icon-delete {
    --rc-icon-url: url('/rc/icons/tabler/trash.svg');
}

.rc-icon-edit {
    --rc-icon-url: url('/rc/icons/tabler/pencil.svg');
}

.rc-icon-expand {
    --rc-icon-url: url('/rc/icons/tabler/chevron-down.svg');
}

.rc-icon-hide {
    --rc-icon-url: url('/rc/icons/tabler/eye-off.svg');
}

.rc-icon-info {
    --rc-icon-url: url('/rc/icons/tabler/info-circle.svg');
}

.rc-icon-message {
    --rc-icon-url: url('/rc/icons/tabler/mail-opened.svg');
}

.rc-icon-minus {
    --rc-icon-url: url('/rc/icons/tabler/minus.svg');
}

.rc-icon-preview {
    --rc-icon-url: url('/rc/icons/tabler/eye.svg');
}

.row .col-form-label,
.row .col-sm-10:has(>div:empty) .help-text {
    padding: 2px 0;
}

.col-sm-10 {
    flex-grow: 1;
}

*:focus-visible {
    outline: none;
}

.cmxform .selection-remove-all,
.cmxform .info-tooltip {
    position: absolute;
    margin: 3px 0 0 3px;
    padding: 0;
}

.mceEditor {
    margin: 10px 0 0 0;
    display: block;
}

.mceEditor table.mceLayout {
    width: 100% !important;
}

.cmxform .ui-accordion-header {
    flex-basis: 100%;
    padding: 5px 10px 5px 25px;
    display: flex;
    align-items: center;
}

.cmxform .ui-accordion > .row {
    flex-wrap: wrap;
}

.cmxform .ui-accordion .row .row {
    margin: 10px 0;
}

.cmxform .ui-accordion .row .row .row {
    margin: 0;
}

.cmxform .ui-accordion .handle {
    font-size: 16px;
    margin-left: auto;
    cursor: move;
}

.cmxform .ui-accordion .ui-accordion-header .ui-icon::before {
    content: "\25B6"; /* Unicode for ▶ */
    font-size: 16px;
}

.cmxform .ui-accordion .ui-accordion-header-active .ui-icon::before {
    content: "\25BC"; /* Unicode for ▼ */
}

.cmxform .ui-accordion-header .icon-remove {
    margin: 0 -4px 0 4px;
}

.cmxform .collection-add-link {
    cursor: pointer;
    float: right;
}

.cmxform .collection-add-link:hover {
    text-decoration: underline;
    color: black;
}

.ui-tabs-panel {
    min-height: 100px;
}

.ui-tabs-panel.loading {
    background-position: center;
}

.content-medium {
    max-width: 650px;
}

.flash-container {
    position: fixed;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 9999;
    width: 100%;
    max-width: 500px;
    padding: 0 20px;
}

.flash-message {
    display: flex;
    align-items: center;
    padding: 16px;
    margin-bottom: 12px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    border-left: 5px solid #ccc;
    animation: slideDown 0.3s ease-out;
}

.flash-success {
    border-left-color: #28a745;
    background-color: #f8fff9;
}

.flash-error {
    border-left-color: #dc3545;
    background-color: #fff8f8;
}

.flash-content {
    flex-grow: 1;
    color: #333;
    font-family: sans-serif;
    line-height: 1.4;
}

.flash-close {
    background: none;
    border: none;
    font-size: 20px;
    cursor: pointer;
    color: #999;
    padding-left: 10px;
}

.flash-close:hover { color: #333; }

/* Animation */
@keyframes slideDown {
    from { opacity: 0; transform: translateY(-20px); }
    to { opacity: 1; transform: translateY(0); }
}

.ui-tabs-nav:has(> :only-child) {
    display: none;
}

.dialog-button-group {
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-start;
    padding: 10px 5px 0;
    box-sizing: border-box;
    border-top: 1px solid lightgray;
    width: 100%;
}

.cmxform .dialog-button-group .row {
    margin: 0;
}

.ui-dialog-overlay {
    z-index: 90001
}
.ui-dialog {
    z-index: 90002
}
.ui-autocomplete {
    z-index: 99999
}
