/**
 * OneHR: form and admin UI spacing — separate crowded buttons, titles, and controls.
 */

/* ---- Required fields: asterisk on label (not ! icon or footer legend) ---- */
.mform .text-danger[aria-hidden="true"] {
    display: none !important;
}

.mform span.req {
    display: none !important;
}

.mform .fdescription.required {
    display: none !important;
}

.mform .fitem:has(.form-label-addon .text-danger[aria-hidden="true"]) .col-form-label > label::after,
.mform .fitem:has(.form-label-addon .text-danger[aria-hidden="true"]) .col-form-label > .d-inline-block::after,
.mform .fitem:has(.form-check .text-danger[aria-hidden="true"]) .col-form-label > label::after,
.mform .fitem:has(.form-check .text-danger[aria-hidden="true"]) .col-form-label > .d-inline-block::after {
    content: " *";
    color: var(--bs-danger, #ca3120);
    font-weight: 700;
}

/* ---- Label row: icons vs label ---- */
.mform .col-form-label .form-label-addon {
    margin-left: 0.5rem;
    gap: 0.35rem;
}

/* ---- File picker (upload course, restore backup, …) ---- */
/* Core renders: #filepicker-wrapper-* > div (Choose button) + .filepicker-filelist */
[id^="filepicker-wrapper-"] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
    width: 100%;
    max-width: 100%;
}

[id^="filepicker-wrapper-"] .fp-btn-choose {
    margin: 0;
}

.mform .filepicker-filelist,
.mform .filemanager-container,
.filepicker-filelist {
    margin-top: 0 !important;
    width: 100%;
    max-width: 100%;
}

.mform [data-fieldtype="filepicker"] .felement,
.mform [data-fieldtype="filemanager"] .felement {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
    width: 100%;
}

/* ---- Roles permissions: Filter + Clear (YUI capabilitysearchui) ---- */
.capabilitysearchui {
    gap: 0.75rem 1rem !important;
    margin-top: 0.75rem !important;
    margin-bottom: 1.25rem !important;
    padding: 0.5rem 0 1rem !important;
}

.capabilitysearchui label {
    margin: 0 0.5rem 0 0 !important;
    flex-shrink: 0;
}

.capabilitysearchui .form-control {
    margin: 0 0.5rem !important;
    min-width: 12rem;
}

.capabilitysearchui .btn,
.capabilitysearchui input[type="button"] {
    margin: 0 0 0 0.25rem !important;
}

/* ---- Filter manage & legacy admin forms: Save + back link ---- */
#page .buttons,
form .buttons,
div.buttons {
    margin-top: 1.25rem !important;
    margin-bottom: 1rem !important;
    padding-top: 0.75rem !important;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

#page .buttons .btn,
form .buttons input[type="submit"],
div.buttons .btn {
    margin: 0 !important;
}

#page .backlink,
.backlink {
    display: block;
    margin-top: 1.25rem !important;
    margin-bottom: 1.5rem !important;
    padding-top: 0.5rem !important;
}

.buttons + .backlink,
form .buttons + .backlink {
    margin-top: 1.25rem !important;
}

/* ---- Cohort / report pages: action buttons below tables ---- */
#page-content .singlebutton,
#page .singlebutton,
.reportbuilder-wrapper + .singlebutton {
    margin-top: 1.25rem !important;
    margin-bottom: 1rem !important;
    padding-top: 0.5rem !important;
}

#page-content .singlebutton form,
.singlebutton .btn {
    margin: 0;
}

/* ---- Moodle forms: inline controls ---- */
.mform .felement.d-flex,
.mform .fitem .form-inline,
.mform .fdate_selector,
.mform .fdate_time_selector {
    gap: 0.5rem 0.75rem;
}

/* ---- Section headers ---- */
.mform fieldset {
    margin-bottom: 1.25rem;
    padding-bottom: 0.75rem;
}

/* Collapsible section row: chevron + title (core_form/element-header). */
.mform .d-flex.align-items-center.mb-2:has(.ftoggler) {
    align-items: center;
}

.mform .ftoggler {
    display: flex;
    align-items: center;
    transform: translateY(2px);
}

.mform .ftoggler > h3 {
    margin: 0 !important;
    align-self: center !important;
    padding: 0;
    line-height: 1.5;
}

.mform a.icons-collapse-expand.fheader {
    margin: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.mform a.icons-collapse-expand.fheader .expanded-icon,
.mform a.icons-collapse-expand.fheader .collapsed-icon {
    padding: 0.4375rem !important;
}

.mform fieldset.collapsible > legend:not(.visually-hidden) {
    margin-bottom: 0.75rem;
    padding-top: 0.5rem;
}

.mform .fitem.fheader {
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
}

#adminsettings fieldset,
form#adminsettings fieldset,
.adminsettings fieldset {
    margin-top: 0.75rem;
    margin-bottom: 1.25rem;
    padding-top: 0.5rem;
}

#adminsettings .fitem,
form#adminsettings .fitem {
    margin-bottom: 0.75rem;
}

/* ---- mform submit rows (Save changes, Filter, …) ---- */
.mform #fgroup_id_buttonar {
    margin-top: 1.25rem !important;
    margin-bottom: 1.25rem !important;
    padding-top: 0.75rem !important;
}

.mform #fgroup_id_buttonar .felement {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
}

.mform #fgroup_id_buttonar .btn {
    margin: 0 !important;
}

/* ---- Sticky footer (course edit, etc.) ---- */
.stickyfooter .sticky-footer-content {
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.25rem !important;
    padding-top: 0.875rem !important;
    padding-bottom: 0.875rem !important;
}

.stickyfooter .sticky-footer-content .btn,
.stickyfooter .sticky-footer-content a {
    margin: 0 !important;
}

/* Continue / back links in forms */
.mform .continuebutton,
.mform a.continuebutton,
.mform .singlebutton {
    display: inline-block;
    margin-top: 1rem;
    margin-bottom: 0.75rem;
}

/* General vertical rhythm */
.mform > .fitem {
    margin-bottom: 0.35rem;
}

.mform .fitem .col-form-label {
    padding-bottom: 0.35rem;
}

#adminsettings h2,
#adminsettings h3,
.mform h2.main,
.mform h3 {
    margin-top: 1.25rem;
    margin-bottom: 0.75rem;
}

/* Role permissions table: space after filter bar */
.capabilitysearchui + table.rolecap,
table.rolecap {
    margin-top: 0.5rem;
}

/* ---- My courses cards (block_myoverview) ---- */
.block_myoverview .course-card,
.course-card[data-region="course-content"] {
    overflow: hidden;
}

.course-card > .d-flex.align-items-start {
    width: 100%;
    margin: 0;
}

.onehr-course-card-footer {
    border-top: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.125));
}

.course-card .text-muted.muted.d-flex.flex-wrap {
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
}

.onehr-course-meta {
    gap: 0.25rem;
}

.onehr-course-status {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.35rem;
    width: fit-content;
    max-width: 100%;
    padding: 0.2rem 0.55rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.3;
}

.onehr-course-status-inprogress {
    background: #fff3cd;
    color: #664d03;
}

.onehr-course-status-completed {
    background: #d1e7dd;
    color: #0f5132;
}

.onehr-course-status-overdue {
    background: #f8d7da;
    color: #842029;
}

.onehr-course-enddate {
    margin-top: 0.35rem;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color, #6c757d);
}

.onehr-course-progress-bar {
    height: 0.4rem;
}

.course-card .course-info-container {
    padding-bottom: 0.5rem;
}
