/* ==========================================================================
   Forms — "Outline"
   White fields with a clear 1px edge, 10px corners like the menu pills,
   Figtree labels and buttons, brand-blue primary, tinted pill badges.

   Covers labels, help text, errors, text inputs, selects (native and
   Choices.js), input groups, checkboxes, radios, switches, buttons
   (primary, light, soft, danger, page buttons, radio option cards, icon
   buttons), badges, card headers and form section headings.

   Loaded after skeleton.css and menu.css, in the order background, tabs, forms, tables, services. Rules are prefixed with #kt_body
   (specificity 1,x,x) so Metronic and custom.css lose without !important
   where possible; scoped overrides elsewhere should start with #kt_body too.
   ========================================================================== */

:root {
    --sk-accent: #009ef7;
    --sk-accent-hover: #008bd9;
    --sk-primary: #009ef7;
    --sk-primary-hover: #008bd9;
    --sk-accent-soft: #e3f2fd;
    --sk-focus: rgba(0, 158, 247, .45);
    --sk-radius: 10px;

    --fm-ui-font: Figtree, Helvetica, Arial, sans-serif;
    --fm-input-font: Figtree, Helvetica, Arial, sans-serif;
    --fm-label-size: 13.5px;
    --fm-label-weight: 600;
    --fm-label-color: #2a3240;
    --fm-label-gap: 7px;
    --fm-help-size: 12.5px;
    --fm-help-color: #6b7585;
    --fm-h: 42px;
    --fm-h-sm: 34px;
    --fm-h-lg: 48px;
    --fm-px: 14px;
    --fm-px-sm: 11px;
    --fm-px-lg: 16px;
    --fm-input-size: 14px;
    --fm-input-size-sm: 13px;
    --fm-input-size-lg: 15px;
    --fm-input-weight: 500;
    --fm-input-color: #1f2733;
    --fm-placeholder: #8b94a3;
    --fm-r: 10px;
    --fm-r-sm: 8px;
    --fm-r-lg: 12px;
    --fm-bw: 1px;
    --fm-border: #cdd4de;
    --fm-border-hover: #aab4c1;
    --fm-bg: var(--sk-card);
    --fm-bg-hover: var(--sk-card);
    --fm-focus-border: var(--sk-accent);
    --fm-focus-bg: var(--sk-card);
    --fm-ring: 0 0 0 3px rgba(0, 158, 247, .18);
    --fm-fill: #f1f4f7;
    --fm-fill-border: #f1f4f7;
    --fm-fill-hover: #eaeef2;
    --fm-fill-border-hover: #eaeef2;
    --fm-disabled-bg: var(--sk-sunken);
    --fm-disabled-color: #8a93a3;
    --fm-disabled-border: #e1e6ec;
    --fm-disabled-style: solid;
    --fm-readonly-bg: var(--sk-sunken);
    --fm-readonly-border: var(--sk-sunken);
    --fm-readonly-style: solid;
    --fm-danger: #c81f48;
    --fm-danger-bg: var(--sk-card);
    --fm-danger-ring: rgba(200, 31, 72, .15);
    --fm-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%236b7585' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M3.5 6l4.5 4.5L12.5 6'/%3E%3C/svg%3E");
    --fm-check-size: 20px;
    --fm-check-r: 6px;
    --fm-check-bw: 1.5px;
    --fm-check-border: #b6c0cc;
    --fm-check-bg: var(--sk-card);
    --fm-switch-w: 40px;
    --fm-switch-h: 22px;
    --fm-switch-w-sm: 34px;
    --fm-switch-h-sm: 19px;
    --fm-switch-off: #c4ccd7;
    --fm-btn-h: 42px;
    --fm-btn-h-sm: 34px;
    --fm-btn-h-lg: 48px;
    --fm-btn-px: 18px;
    --fm-btn-px-sm: 13px;
    --fm-btn-px-lg: 22px;
    --fm-btn-size: 14px;
    --fm-btn-size-sm: 13px;
    --fm-btn-size-lg: 15px;
    --fm-btn-weight: 700;
    --fm-btn-tracking: 0;
    --fm-btn-r: 10px;
    --fm-btn-r-sm: 8px;
    --fm-btn-r-lg: 12px;
    --fm-primary: var(--sk-primary);
    --fm-primary-hover: var(--sk-primary-hover);
    --fm-primary-active: #0077bd;
    --fm-primary-text: #fff;
    --fm-link: #0a7cc4;
    --fm-neutral-bg: #eef1f5;
    --fm-neutral-bg-hover: #e2e7ed;
    --fm-neutral-text: #2a3240;
    --fm-soft-bg: var(--sk-accent-soft);
    --fm-soft-bg-hover: #cfe8fb;
    --fm-soft-text: #0a69a8;
    --fm-danger-solid: #d0204a;
    --fm-danger-solid-hover: #b81b40;
    --fm-danger-soft: #fdecf0;
    --fm-danger-soft-hover: #fbdbe3;
    --fm-page-h: 38px;
    --fm-page-bg: var(--sk-card);
    --fm-page-border: #d5dbe3;
    --fm-page-text: #2a3240;
    --fm-page-bg-hover: #f5f7fa;
    --fm-page-border-hover: #bfc8d3;
    --fm-page-text-hover: #10233a;
    --fm-badge-h: 22px;
    --fm-badge-px: 9px;
    --fm-badge-r: 999px;
    --fm-badge-size: 11.5px;
    --fm-badge-weight: 700;
    --fm-badge-font: Figtree, Helvetica, Arial, sans-serif;
    --fm-success-text: #13723f;
    --fm-success-bg: #e2f5ea;
    --fm-warning-text: #875400;
    --fm-warning-bg: #fff1d1;
    --fm-danger-text: #bb2147;
    --fm-danger-bg2: #fde6ec;
    --fm-info-text: #5a2dc2;
    --fm-info-bg: #eee8fd;
    --fm-primary-tint-text: #0a69a8;
    --fm-primary-tint-bg: #e1f1fd;
    --fm-success-solid: #177a49;
    --fm-warning-solid: #f5b700;
    --fm-info-solid: #6a35d9;
    --fm-head-font: Figtree, Helvetica, Arial, sans-serif;
    --fm-head-size: 16.5px;
    --fm-head-weight: 700;
    --fm-head-color: #141c28;
    --fm-head-tracking: -.005em;
    --fm-head-h: 64px;
    --fm-head-px: 2.25rem;
    --fm-head-border: var(--sk-line-soft);
    --fm-sub-size: 13px;
    --fm-sub-color: #6b7585;
    --fm-section-size: 18px;
    --fm-modal-size: 22px;
}

/* --- Labels, help and errors ---------------------------------------------- */
#kt_body .form-label {
    margin-bottom: var(--fm-label-gap);
    font-family: var(--fm-ui-font);
    font-size: var(--fm-label-size);
    font-weight: var(--fm-label-weight);
    line-height: 1.4;
    color: var(--fm-label-color);
}

#kt_body .form-text {
    display: block;
    margin-top: 6px;
    font-size: var(--fm-help-size);
    line-height: 1.45;
    color: var(--fm-help-color) !important;
}

#kt_body .invalid-feedback {
    margin-top: 6px;
    font-size: var(--fm-help-size);
    font-weight: 500;
    color: var(--fm-danger);
}

/* --- Text inputs and selects ------------------------------------------------ */
#kt_body .form-control,
#kt_body .form-select {
    min-height: var(--fm-h);
    padding: 0 var(--fm-px);
    font-family: var(--fm-input-font);
    font-size: var(--fm-input-size);
    font-weight: var(--fm-input-weight);
    line-height: 1.5;
    color: var(--fm-input-color);
    background-color: var(--fm-bg);
    border: var(--fm-bw) solid var(--fm-border);
    border-radius: var(--fm-r);
    transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}

#kt_body textarea.form-control {
    min-height: calc(var(--fm-h) * 2);
    padding-top: calc((var(--fm-h) - var(--fm-input-size) * 1.5) / 2 - var(--fm-bw));
    padding-bottom: calc((var(--fm-h) - var(--fm-input-size) * 1.5) / 2 - var(--fm-bw));
    line-height: 1.5;
}

#kt_body .form-control::placeholder {
    color: var(--fm-placeholder);
    opacity: 1;
}

#kt_body .form-control:hover:not(:disabled):not([readonly]):not(:focus):not(.is-invalid),
#kt_body .form-select:hover:not(:disabled):not(:focus) {
    background-color: var(--fm-bg-hover);
    border-color: var(--fm-border-hover) !important;
}

#kt_body .form-control:focus,
#kt_body .form-select:focus {
    color: var(--fm-input-color);
    background-color: var(--fm-focus-bg);
    border-color: var(--fm-focus-border) !important;
    box-shadow: var(--fm-ring) !important;
    outline: 0;
}

#kt_body .form-control:disabled,
#kt_body .form-select:disabled {
    color: var(--fm-disabled-color);
    background-color: var(--fm-disabled-bg);
    border-color: var(--fm-disabled-border);
    opacity: 1;
    cursor: not-allowed;
}

/* Read-only reads as a value, not as a field you can't use. */
#kt_body .form-control[readonly]:not(:disabled) {
    color: var(--fm-input-color);
    background-color: var(--fm-readonly-bg);
    border-color: var(--fm-readonly-border);
    border-style: var(--fm-readonly-style);
}

#kt_body .form-control:disabled,
#kt_body .form-select:disabled {
    border-style: var(--fm-disabled-style);
}

#kt_body .form-control.form-control-solid,
#kt_body .form-select.form-select-solid {
    color: var(--fm-input-color);
    background-color: var(--fm-fill);
    border-color: var(--fm-fill-border);
}

#kt_body .form-control.form-control-solid:hover:not(:disabled):not(:focus),
#kt_body .form-select.form-select-solid:hover:not(:disabled):not(:focus) {
    background-color: var(--fm-fill-hover);
    border-color: var(--fm-fill-border-hover) !important;
}

#kt_body .form-control.form-control-solid:focus,
#kt_body .form-select.form-select-solid:focus {
    background-color: var(--fm-focus-bg);
}

#kt_body .form-control.form-control-sm,
#kt_body .form-select.form-select-sm {
    min-height: var(--fm-h-sm);
    padding-left: var(--fm-px-sm);
    font-size: var(--fm-input-size-sm);
    border-radius: var(--fm-r-sm);
}

#kt_body .form-control.form-control-lg,
#kt_body .form-select.form-select-lg {
    min-height: var(--fm-h-lg);
    padding-left: var(--fm-px-lg);
    font-size: var(--fm-input-size-lg);
    border-radius: var(--fm-r-lg);
}

#kt_body .form-control.form-control-sm {
    padding-right: var(--fm-px-sm);
}

#kt_body .form-control.form-control-lg {
    padding-right: var(--fm-px-lg);
}

#kt_body .form-select {
    padding-right: calc(var(--fm-px) + 22px);
    background-image: var(--fm-chevron);
    background-repeat: no-repeat;
    background-position: right var(--fm-px) center;
    background-size: 15px 15px;
}

#kt_body .form-control.is-invalid,
#kt_body .form-select.is-invalid {
    background-color: var(--fm-danger-bg);
    border-color: var(--fm-danger) !important;
}

#kt_body .form-control.is-invalid:focus,
#kt_body .form-select.is-invalid:focus {
    box-shadow: 0 0 0 3px var(--fm-danger-ring) !important;
}

/* Input groups: re-join the corners the radius above rounds off. */
#kt_body .input-group-text {
    min-height: var(--fm-h);
    padding: 0 var(--fm-px);
    font-family: var(--fm-input-font);
    font-size: var(--fm-input-size);
    font-weight: 500;
    color: var(--fm-help-color);
    background-color: var(--sk-sunken);
    border: var(--fm-bw) solid var(--fm-border);
    border-radius: var(--fm-r);
}

#kt_body .input-group > .btn {
    min-height: var(--fm-h);
}

#kt_body .input-group > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

#kt_body .input-group > :not(:first-child):not(.dropdown-menu) {
    margin-left: calc(var(--fm-bw) * -1);
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

#kt_body .input-group > .form-control:focus {
    z-index: 3;
}

/* Choices.js (searchable selects) dressed as the inputs above. */
#kt_body .choices {
    margin-bottom: 0;
    font-family: var(--fm-input-font);
    font-size: var(--fm-input-size);
}

#kt_body .choices .choices__inner {
    display: flex;
    align-items: center;
    min-height: var(--fm-h);
    padding: 0 calc(var(--fm-px) + 22px) 0 var(--fm-px);
    font-size: var(--fm-input-size);
    font-weight: var(--fm-input-weight);
    color: var(--fm-input-color);
    background-color: var(--fm-bg);
    border: var(--fm-bw) solid var(--fm-border);
    border-radius: var(--fm-r);
    transition: border-color .15s ease, box-shadow .15s ease;
}

#kt_body .choices:hover:not(.is-open) .choices__inner {
    border-color: var(--fm-border-hover);
}

#kt_body .choices.is-focused .choices__inner,
#kt_body .choices.is-open .choices__inner {
    background-color: var(--fm-focus-bg);
    border-color: var(--fm-focus-border);
    border-radius: var(--fm-r);
    box-shadow: var(--fm-ring);
}

#kt_body .choices .choices__list--single {
    padding: 0;
}

#kt_body .choices[data-type*=select-one]::after,
#kt_body .choices[data-type*=select-one].is-open::after {
    width: 15px;
    height: 15px;
    margin-top: -7.5px;
    right: var(--fm-px);
    border: 0;
    background: var(--fm-chevron) center / 15px 15px no-repeat;
    transition: transform .15s ease;
}

#kt_body .choices[data-type*=select-one].is-open::after {
    transform: rotate(180deg);
}

#kt_body .choices .choices__list--dropdown {
    margin-top: 6px;
    padding: 4px;
    background-color: var(--sk-card);
    border: 1px solid var(--sk-line);
    border-radius: var(--fm-r);
    box-shadow: 0 12px 28px rgba(16, 35, 58, .12);
}

#kt_body .choices .choices__list--dropdown .choices__item {
    padding: 9px 10px;
    font-size: var(--fm-input-size);
    color: var(--fm-input-color);
    border-radius: var(--fm-r-sm);
}

#kt_body .choices .choices__list--dropdown .choices__item--selectable.is-highlighted {
    color: var(--fm-soft-text);
    background-color: var(--fm-soft-bg);
}

#kt_body .choices[data-type*=select-one] .choices__input {
    margin-bottom: 4px;
    padding: 9px 10px;
    font-size: var(--fm-input-size);
    background-color: var(--fm-fill);
    border: 0;
    border-radius: var(--fm-r-sm);
}

/* --- Checkboxes, radios, switches ------------------------------------------- */
#kt_body .form-check-input {
    width: var(--fm-check-size);
    height: var(--fm-check-size);
    background-color: var(--fm-check-bg);
    border: var(--fm-check-bw) solid var(--fm-check-border);
    transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}

#kt_body .form-check-input[type=checkbox] {
    border-radius: var(--fm-check-r);
}

#kt_body .form-check.form-check-solid .form-check-input {
    background-color: var(--fm-check-bg);
    border: var(--fm-check-bw) solid var(--fm-check-border);
}

#kt_body .form-check-input:hover:not(:checked):not(:disabled) {
    border-color: var(--fm-border-hover);
}

#kt_body .form-check-input:checked,
#kt_body .form-check.form-check-solid .form-check-input:checked {
    background-color: var(--fm-primary);
    border-color: var(--fm-primary);
}

#kt_body .form-check-input:checked[type=checkbox] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.3l3 3 6-6.6'/%3E%3C/svg%3E");
    background-size: 78% 78%;
}

#kt_body .form-check-input[type=checkbox]:indeterminate {
    background-color: var(--fm-primary);
    border-color: var(--fm-primary);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' d='M4 8h8'/%3E%3C/svg%3E");
    background-size: 78% 78%;
}

#kt_body .form-check-input:checked[type=radio] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='1.6' fill='%23fff'/%3E%3C/svg%3E");
    background-size: 100% 100%;
}

/* Plain (non-custom) checks: centre on the first line of the label. */
#kt_body .form-check:not(.form-check-custom):not(.form-switch) .form-check-input {
    margin-top: calc((1.5em - var(--fm-check-size)) / 2);
}

#kt_body .form-check-input:focus-visible {
    box-shadow: 0 0 0 3px var(--sk-focus);
}

#kt_body .form-check .form-check-label {
    font-size: var(--fm-input-size);
    color: var(--fm-input-color);
}

#kt_body .form-check.form-switch .form-check-input,
#kt_body .form-check.form-switch.form-check-solid .form-check-input {
    width: var(--fm-switch-w);
    height: var(--fm-switch-h);
    background-color: var(--fm-switch-off);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E");
    background-position: left center;
    background-size: contain;
    border: 0;
    border-radius: 999px;
    transition: background-color .15s ease, background-position .15s ease;
}

#kt_body .form-check.form-switch.form-switch-sm .form-check-input {
    width: var(--fm-switch-w-sm);
    height: var(--fm-switch-h-sm);
}

#kt_body .form-check.form-switch .form-check-input:checked {
    background-color: var(--fm-primary);
    background-position: right center;
}

/* --- Buttons --------------------------------------------------------------- */
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)) {
    padding: calc((var(--fm-btn-h) - var(--fm-btn-size) * 1.5) / 2) var(--fm-btn-px);
    font-family: var(--fm-ui-font);
    font-size: var(--fm-btn-size);
    font-weight: var(--fm-btn-weight);
    line-height: 1.5;
    letter-spacing: var(--fm-btn-tracking);
    border-radius: var(--fm-btn-r);
    transition: color .15s ease, background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-sm {
    padding: calc((var(--fm-btn-h-sm) - var(--fm-btn-size-sm) * 1.5) / 2) var(--fm-btn-px-sm);
    font-size: var(--fm-btn-size-sm);
    border-radius: var(--fm-btn-r-sm);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-lg {
    padding: calc((var(--fm-btn-h-lg) - var(--fm-btn-size-lg) * 1.5) / 2) var(--fm-btn-px-lg);
    font-size: var(--fm-btn-size-lg);
    border-radius: var(--fm-btn-r-lg);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-icon {
    width: var(--fm-btn-h);
    height: var(--fm-btn-h);
    padding: 0;
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-icon.btn-sm {
    width: var(--fm-btn-h-sm);
    height: var(--fm-btn-h-sm);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-circle {
    border-radius: 50%;
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)):focus-visible {
    box-shadow: 0 0 0 3px var(--sk-focus) !important;
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)):disabled,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).disabled {
    opacity: .5;
}

/* Metronic's animated gradient on hover goes; hover is a plain step darker. */
#kt_body .btn-primary-effect:hover,
#kt_body .btn-secondary-effect:hover,
#kt_body .btn-success-effect:hover,
#kt_body .btn-danger-effect:hover,
#kt_body .btn-warning-effect:hover,
#kt_body .btn-info-effect:hover,
#kt_body .btn-light-effect:hover,
#kt_body .btn-dark-effect:hover {
    background-image: none !important;
    animation: none !important;
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-primary {
    color: var(--fm-primary-text);
    background-color: var(--fm-primary);
    border-color: var(--fm-primary);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-primary:hover,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-primary:focus,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-primary.show {
    color: var(--fm-primary-text);
    background-color: var(--fm-primary-hover) !important;
    border-color: var(--fm-primary-hover);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-primary:active,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-primary.active {
    color: var(--fm-primary-text);
    background-color: var(--fm-primary-active) !important;
    border-color: var(--fm-primary-active);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-secondary {
    color: var(--fm-neutral-text);
    background-color: var(--fm-neutral-bg);
    border-color: var(--fm-neutral-bg);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light:hover,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light:focus,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light.active,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light.show,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-secondary:hover,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-secondary:focus,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-secondary.active {
    color: var(--fm-neutral-text);
    background-color: var(--fm-neutral-bg-hover) !important;
    border-color: var(--fm-neutral-bg-hover);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light-primary {
    color: var(--fm-soft-text);
    background-color: var(--fm-soft-bg);
    border-color: var(--fm-soft-bg);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light-primary:hover,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light-primary:focus,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light-primary.active,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light-primary.show {
    color: var(--fm-soft-text);
    background-color: var(--fm-soft-bg-hover) !important;
    border-color: var(--fm-soft-bg-hover);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-active-light-primary:hover:not(.btn-light-primary):not(.btn-primary) {
    color: var(--fm-soft-text);
    background-color: var(--fm-soft-bg) !important;
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-danger {
    color: #fff;
    background-color: var(--fm-danger-solid);
    border-color: var(--fm-danger-solid);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-danger:hover,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-danger:focus,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-danger.active {
    color: #fff;
    background-color: var(--fm-danger-solid-hover) !important;
    border-color: var(--fm-danger-solid-hover);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light-danger {
    color: var(--fm-danger);
    background-color: var(--fm-danger-soft);
    border-color: var(--fm-danger-soft);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light-danger:hover,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light-danger:focus,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light-danger.active {
    color: var(--fm-danger);
    background-color: var(--fm-danger-soft-hover) !important;
    border-color: var(--fm-danger-soft-hover);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-success { color: #fff; background-color: var(--fm-success-solid); border-color: var(--fm-success-solid); }
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-info    { color: #fff; background-color: var(--fm-info-solid); border-color: var(--fm-info-solid); }
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-warning { color: #3a2a00; background-color: var(--fm-warning-solid); border-color: var(--fm-warning-solid); }
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-dark    { color: #fff; background-color: #1f2733; border-color: #1f2733; }

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-success:hover,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-info:hover,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-warning:hover,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-dark:hover {
    filter: brightness(.92);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light-success { color: var(--fm-success-text); background-color: var(--fm-success-bg); border-color: var(--fm-success-bg); }
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light-info    { color: var(--fm-info-text);    background-color: var(--fm-info-bg);    border-color: var(--fm-info-bg); }
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light-warning { color: var(--fm-warning-text); background-color: var(--fm-warning-bg); border-color: var(--fm-warning-bg); }

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light-success:hover,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light-info:hover,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-light-warning:hover {
    background-image: linear-gradient(rgba(16, 35, 58, .05), rgba(16, 35, 58, .05)) !important;
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-link {
    padding-top: 0;
    padding-bottom: 0;
    color: var(--fm-link);
    font-weight: var(--fm-btn-weight);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-link:hover {
    color: var(--fm-primary-hover);
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

/* Page-level actions (top bar and content): white buttons that stood
   invisible on the white bar get an edge. */
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-white.btn-bg-white {
    gap: 8px;
    align-items: center !important;
    padding-top: calc((var(--fm-btn-h) - var(--fm-btn-size) * 1.5) / 2 - 1px);
    padding-bottom: calc((var(--fm-btn-h) - var(--fm-btn-size) * 1.5) / 2 - 1px);
    color: var(--fm-page-text) !important;
    background-color: var(--fm-page-bg) !important;
    border: 1px solid var(--fm-page-border) !important;
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-white.btn-bg-white:hover,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-white.btn-bg-white:focus {
    color: var(--fm-page-text-hover) !important;
    background-color: var(--fm-page-bg-hover) !important;
    border-color: var(--fm-page-border-hover) !important;
}

/* In the 60px top bar they stay a notch smaller than in-page buttons. */
#kt_body #kt_header .btn.btn-white.btn-bg-white {
    padding-top: calc((var(--fm-page-h) - var(--fm-btn-size) * 1.5) / 2 - 1px);
    padding-bottom: calc((var(--fm-page-h) - var(--fm-btn-size) * 1.5) / 2 - 1px);
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-white.btn-bg-white svg {
    width: 18px !important;
    height: 18px !important;
    flex: none;
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-white.btn-bg-white > span {
    margin: 0 !important;
}

/* Radio option cards (x-input.radio): solid edge, clear selected state. */
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-outline.btn-outline-dashed.btn-outline-default {
    color: var(--fm-input-color);
    background-color: var(--fm-bg) !important;
    border: var(--fm-bw) solid var(--fm-border);
    border-radius: var(--fm-r);
    font-weight: 600;
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-outline.btn-outline-dashed.btn-outline-default:hover {
    color: var(--fm-input-color);
    border-color: var(--fm-border-hover);
    background-color: var(--fm-bg-hover) !important;
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-outline.btn-outline-dashed.btn-outline-default.active,
#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-outline.btn-outline-dashed.btn-outline-default:has(> .btn-check:checked),
#kt_body .btn-check:checked + .btn.btn-outline.btn-outline-dashed.btn-outline-default {
    color: var(--fm-soft-text);
    background-color: var(--fm-soft-bg) !important;
    border-color: var(--fm-primary);
    box-shadow: inset 0 0 0 1px var(--fm-primary) !important;
}

#kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)).btn-outline.btn-outline-dashed.btn-outline-default:has(> .btn-check:focus-visible) {
    box-shadow: 0 0 0 3px var(--sk-focus) !important;
}

/* --- Badges ---------------------------------------------------------------- */
#kt_body .badge:not(:where(.menu-title > .badge)) {
    height: var(--fm-badge-h);
    padding: 0 var(--fm-badge-px);
    font-family: var(--fm-badge-font);
    font-size: var(--fm-badge-size);
    font-weight: var(--fm-badge-weight);
    line-height: var(--fm-badge-h);
    letter-spacing: 0;
    vertical-align: middle;
    border-radius: var(--fm-badge-r) !important;
}

#kt_body .badge:not(:where(.menu-title > .badge)).badge-circle,
#kt_body .badge:not(:where(.menu-title > .badge)).badge-square {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--fm-badge-h);
    padding: 0 5px;
}

#kt_body .badge:not(:where(.menu-title > .badge)).badge-circle {
    width: var(--fm-badge-h);
    padding: 0;
    border-radius: 50% !important;
}

#kt_body .badge:not(:where(.menu-title > .badge)).badge-light-success { color: var(--fm-success-text); background-color: var(--fm-success-bg); }
#kt_body .badge:not(:where(.menu-title > .badge)).badge-light-warning { color: var(--fm-warning-text); background-color: var(--fm-warning-bg); }
#kt_body .badge:not(:where(.menu-title > .badge)).badge-light-danger  { color: var(--fm-danger-text);  background-color: var(--fm-danger-bg2); }
#kt_body .badge:not(:where(.menu-title > .badge)).badge-light-info    { color: var(--fm-info-text);    background-color: var(--fm-info-bg); }
#kt_body .badge:not(:where(.menu-title > .badge)).badge-light-primary { color: var(--fm-primary-tint-text); background-color: var(--fm-primary-tint-bg); }
#kt_body .badge:not(:where(.menu-title > .badge)).badge-light-dark,
#kt_body .badge:not(:where(.menu-title > .badge)).badge-light         { color: var(--fm-neutral-text); background-color: var(--fm-neutral-bg); }

#kt_body .badge:not(:where(.menu-title > .badge)).badge-success   { color: #fff; background-color: var(--fm-success-solid); }
#kt_body .badge:not(:where(.menu-title > .badge)).badge-warning   { color: #3a2a00; background-color: var(--fm-warning-solid); }
#kt_body .badge:not(:where(.menu-title > .badge)).badge-danger    { color: #fff; background-color: var(--fm-danger-solid); }
#kt_body .badge:not(:where(.menu-title > .badge)).badge-info      { color: #fff; background-color: var(--fm-info-solid); }
#kt_body .badge:not(:where(.menu-title > .badge)).badge-primary   { color: var(--fm-primary-text); background-color: var(--fm-primary); }
#kt_body .badge:not(:where(.menu-title > .badge)).badge-secondary { color: var(--fm-neutral-text); background-color: var(--fm-neutral-bg-hover); }
#kt_body .badge:not(:where(.menu-title > .badge)).badge-dark      { color: #fff; background-color: #1f2733; }

/* --- Card headers and form section headings ---------------------------------- */
#kt_body .card .card-header {
    min-height: var(--fm-head-h);
    padding-left: var(--fm-head-px);
    padding-right: var(--fm-head-px);
    border-bottom: 1px solid var(--fm-head-border);
}

#kt_body .card .card-header .card-title,
#kt_body .card .card-header .card-title .card-label,
#kt_body .card .card-header .card-title h1,
#kt_body .card .card-header .card-title h2,
#kt_body .card .card-header .card-title h3,
#kt_body .card .card-header .card-title h4 {
    font-family: var(--fm-head-font);
    font-size: var(--fm-head-size) !important;
    font-weight: var(--fm-head-weight) !important;
    letter-spacing: var(--fm-head-tracking);
    color: var(--fm-head-color) !important;
}

#kt_body .card .card-header .card-title .text-muted,
#kt_body .card .card-header .card-title + .text-muted,
#kt_body .card .card-header .card-toolbar > .text-muted {
    font-family: var(--fm-input-font);
    font-size: var(--fm-sub-size) !important;
    font-weight: 500 !important;
    letter-spacing: 0;
    color: var(--fm-sub-color) !important;
}

#kt_body .form-heading > p {
    margin-bottom: 0;
    font-family: var(--fm-head-font);
    font-size: var(--fm-section-size) !important;
    font-weight: var(--fm-head-weight);
    letter-spacing: var(--fm-head-tracking);
    line-height: 1.35;
    color: var(--fm-head-color);
}

#kt_body .form-heading > p > span {
    margin-top: 4px;
    font-family: var(--fm-input-font);
    font-size: var(--fm-sub-size) !important;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.55;
    color: var(--fm-sub-color) !important;
}

#kt_body .modal .modal-title {
    font-family: var(--fm-head-font);
    font-size: var(--fm-modal-size) !important;
    font-weight: var(--fm-head-weight);
    letter-spacing: var(--fm-head-tracking);
    color: var(--fm-head-color) !important;
}

@media (prefers-reduced-motion: reduce) {
    #kt_body .form-control,
    #kt_body .form-select,
    #kt_body .form-check-input,
    #kt_body .choices .choices__inner,
    #kt_body .choices[data-type*=select-one]::after,
    #kt_body .btn:not(:where(.btn-custom, .aside-toggle, .nav-link, #kt_aside_mobile_toggle)) {
        transition: none;
    }
}
